@makaio/framework 1.0.0-dev-1781729807808 → 1.0.0-dev-1781884053376
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/{account-identity-D-9gunfD.mjs → account-identity-D5TUafYg.mjs} +1 -1
- package/dist/adapter-BmdC3QwV.mjs +1 -0
- package/dist/adapter-subsystem/index.mjs +1 -1
- package/dist/adapters/config/index.d.mts +1 -1
- package/dist/adapters/config/index.mjs +1 -1
- package/dist/adapters/index.d.mts +2 -2
- package/dist/adapters/index.mjs +1 -1
- package/dist/adapters/node.d.mts +1 -1
- package/dist/adapters/node.mjs +1 -1
- package/dist/await-trigger-DwVldnMt.mjs +1 -0
- package/dist/bus/index.d.mts +20 -20
- package/dist/bus/index.mjs +1 -1
- package/dist/canonical-model-BM5WAnQW.mjs +1 -0
- package/dist/{client-D24ebgGH.mjs → client-BO-0jTSV.mjs} +1 -1
- package/dist/clients/index.mjs +1 -1
- package/dist/compression-CXEHx0rS.mjs +1 -0
- 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 +1 -1
- package/dist/contracts/canonical-model/index.d.mts +1 -1
- package/dist/contracts/canonical-model/index.mjs +1 -1
- package/dist/contracts/client/index.d.mts +2 -2
- package/dist/contracts/client/index.mjs +1 -1
- package/dist/contracts/common/index.d.mts +1 -1
- package/dist/contracts/config/index.d.mts +7 -7
- package/dist/contracts/config/index.mjs +1 -1
- package/dist/contracts/extension/index.d.mts +3 -3
- 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 +202 -9904
- package/dist/contracts/index.mjs +1 -1
- package/dist/contracts/materialization/index.d.mts +3 -3
- package/dist/contracts/materialization/index.mjs +1 -1
- package/dist/contracts/model-registry/index.d.mts +1 -1
- package/dist/contracts/model-registry/index.mjs +1 -1
- package/dist/contracts/native-session-supervisor/index.d.mts +1 -1
- package/dist/contracts/native-session-supervisor/index.mjs +1 -1
- package/dist/contracts/platform/index.d.mts +1 -1
- package/dist/contracts/platform/index.mjs +1 -1
- package/dist/contracts/provider/index.d.mts +2 -2
- package/dist/contracts/session/index.d.mts +2 -2
- package/dist/contracts/session/index.mjs +1 -1
- package/dist/contracts/shared/index.d.mts +2 -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/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/workflow/index.d.mts +3 -0
- package/dist/contracts/workflow/index.mjs +1 -0
- package/dist/{definition-CZcVOhXZ.d.mts → definition-D_3U4OLJ.d.mts} +1 -1
- package/dist/{detached-extension-handle-BYxNmLfv.mjs → detached-extension-handle-Cx6-0eqg.mjs} +1 -1
- package/dist/{extension-CTkoi8MV.mjs → extension-BJHRahFl.mjs} +1 -1
- package/dist/{extension-CkU_hqra.mjs → extension-CfL70C5n.mjs} +1 -1
- package/dist/{filesystem-service-T8JOIWeP.mjs → filesystem-service-Bmyqo6po.mjs} +1 -1
- package/dist/git/index.mjs +1 -1
- package/dist/{globby-Bos1vjKj.mjs → globby-D4SANVoq.mjs} +1 -1
- package/dist/{handlers-dnpT_hsm.mjs → handlers-BAycjV02.mjs} +1 -1
- package/dist/{harness-HEpELa_v.mjs → harness-DkUpbsuY.mjs} +1 -1
- package/dist/{index-HiAth5G0.d.mts → index--diIlm1t.d.mts} +42 -42
- package/dist/{index-Cy75lJ1O.d.mts → index-BUrNl0QJ.d.mts} +16 -16
- package/dist/{index-XcnFGiKL.d.mts → index-BvjLe_w9.d.mts} +8 -8
- package/dist/{index-WWYQEH0q.d.mts → index-BwZpSUql.d.mts} +16 -16
- package/dist/{index-Dn73XrXA.d.mts → index-CBN898N1.d.mts} +13 -460
- package/dist/{index-xeg-bqxO.d.mts → index-CqImyhjX.d.mts} +100 -100
- package/dist/{index-CkpGuNLe.d.mts → index-D2WJ0Zpt.d.mts} +10 -10
- package/dist/index-D6sjCuQA.d.mts +10036 -0
- package/dist/{index-6QvT0ljq.d.mts → index-D9-vOJvZ.d.mts} +1 -1
- package/dist/{index-BQ8H7cvY.d.mts → index-D94cDExW2.d.mts} +16 -16
- package/dist/{index-CUYDEQvN.d.mts → index-DYcyc2rR.d.mts} +5 -5
- package/dist/{index-Dbd0Tgba.d.mts → index-Di84JjS0.d.mts} +1 -1
- package/dist/{index-ByRAbcZd.d.mts → index-DiifAKRu.d.mts} +7 -2
- package/dist/{index-BuaP2Q0b.d.mts → index-DoWQjCE-.d.mts} +336 -336
- package/dist/{index-C2XLjebs.d.mts → index-Mi_UJoUV.d.mts} +8 -8
- package/dist/{index-BZuF4I8O.d.mts → index-NkNbYFud.d.mts} +1 -55
- package/dist/{index-BFW1X6SW.d.mts → index-SAGZBNB0.d.mts} +363 -363
- package/dist/{index-Dpu4e9NK.d.mts → index-UKndP4iV.d.mts} +3 -3
- package/dist/{index-cN4DkU5Y2.d.mts → index-q8nLr74m.d.mts} +9 -9
- package/dist/{index-DLPjliGd.d.mts → index-wfSedMR9.d.mts} +1 -1
- package/dist/{index-DUI1W-zN.d.mts → index-xyXYG5WO.d.mts} +8 -8
- package/dist/json-value-DtIkQN7g.d.mts +57 -0
- package/dist/kernel/cli/index.d.mts +2 -2
- package/dist/kernel/cli/index.mjs +1 -1
- package/dist/kernel/cli/register.d.mts +1 -1
- package/dist/kernel/cli/register.mjs +1 -1
- package/dist/kernel/cli/schemas.mjs +1 -1
- package/dist/kernel/extension/index.d.mts +1 -1
- package/dist/kernel/extension/index.mjs +1 -1
- package/dist/kernel/index.d.mts +5 -5
- package/dist/kernel/index.mjs +1 -1
- package/dist/kernel/namespace/index.d.mts +1 -1
- package/dist/kernel/namespace/index.mjs +1 -1
- package/dist/kernel/observability/index.d.mts +1 -1
- package/dist/kernel/observability/index.mjs +1 -1
- package/dist/kernel/providers/index.d.mts +1 -1
- package/dist/kernel/providers/index.mjs +1 -1
- package/dist/kernel/window/index.d.mts +1 -1
- package/dist/kernel/window/index.mjs +1 -1
- package/dist/{lib-B-R6VZW0.mjs → lib-Ba55od_d.mjs} +1 -1
- package/dist/{lib-BwYODPdd.mjs → lib-CM_BUxN8.mjs} +1 -1
- package/dist/{load-extensions-D-DyzN4j.mjs → load-extensions-Cze1RHcG.mjs} +1 -1
- package/dist/{load-extensions-CQqw0Smr.d.mts → load-extensions-DNRIy4zC.d.mts} +1 -1
- package/dist/loop-gate-handlers-BLoGCWMQ.mjs +1 -0
- package/dist/mcp-http-server/index.mjs +2 -2
- package/dist/{namespace-Ba1gUpUu.d.mts → namespace-3yGm4WF9.d.mts} +2 -2
- package/dist/{namespace-B091meTj.d.mts → namespace-65uwTpbg.d.mts} +6 -6
- package/dist/{namespace-Daq_-170.d.mts → namespace-Bcn5EuKq.d.mts} +5 -5
- package/dist/{namespace-B1Bldc48.d.mts → namespace-BeMGmLrp.d.mts} +9 -9
- package/dist/{namespace-BxrHvS5c.mjs → namespace-C-piH3w4.mjs} +1 -1
- package/dist/{namespace-BQgZChZl.d.mts → namespace-CGGzwaCj.d.mts} +154 -154
- package/dist/{namespace-6u1Uf-iw2.d.mts → namespace-D8P8Sxce2.d.mts} +2 -2
- package/dist/namespace-DibbhCPP.mjs +1 -0
- package/dist/{namespace-CZgcOQTh.d.mts → namespace-d_0I6P7N.d.mts} +26 -26
- package/dist/{namespace-CO3DK1v_.d.mts → namespace-qC3OUGCB.d.mts} +42 -42
- package/dist/{native-session-supervisor-DbrqcFq9.mjs → native-session-supervisor-7ElwM6Is.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-yFP8e7d5.mjs → orchestrator-shared-Cxk3x8Vs.mjs} +1 -1
- package/dist/package-B1AXe-oz.mjs +1 -0
- package/dist/{package-fwIv7zzj.d.mts → package-MmQvNJ3u.d.mts} +1 -1
- package/dist/package.json +1 -1
- package/dist/{profile-r4G32bCH.mjs → profile-BMBXUqqh.mjs} +1 -1
- package/dist/{provider-context-Ds6GNYnE.mjs → provider-context-DC_eq7es.mjs} +1 -1
- package/dist/provider-context-DjSUpHSM.mjs +1 -0
- package/dist/rules/index.d.mts +1 -1
- package/dist/rules/index.mjs +1 -1
- package/dist/rules/schemas.d.mts +1 -1
- package/dist/runtime-bun/index.mjs +1 -1
- package/dist/runtime-node/extension-discovery.d.mts +1 -1
- package/dist/runtime-node/extension-validation.d.mts +1 -1
- package/dist/runtime-node/extension-validation.mjs +1 -1
- package/dist/runtime-node/index.d.mts +3 -3
- package/dist/runtime-node/index.mjs +2 -2
- 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-DcZifH6p.d.mts → schema-BD0TvgFP.d.mts} +2 -2
- package/dist/{schema-atatXwNg.mjs → schema-D6WAI8OL.mjs} +1 -1
- package/dist/schemas-CE1gbhxu.mjs +1 -0
- package/dist/{schemas-IDGAJ_zv.d.mts → schemas-CscdPqCt.d.mts} +3 -3
- package/dist/{schemas-fEoe6H0K.d.mts → schemas-CyL5UEV7.d.mts} +154 -154
- package/dist/{schemas-BqscWIoC.d.mts → schemas-D4zaFE2p.d.mts} +6 -6
- package/dist/{schemas-BbFAwUpf.d.mts → schemas-DXjyGVpx.d.mts} +5 -5
- package/dist/{schemas-CTIaU6Rt2.d.mts → schemas-TQPiRl642.d.mts} +13 -13
- package/dist/schemas-yNBjlOKi.mjs +1 -0
- 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 +2 -2
- 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/capability/index.d.mts +1 -1
- package/dist/services/capability/index.mjs +1 -1
- package/dist/services/codebase/index.d.mts +2 -2
- package/dist/services/codebase/namespace.d.mts +1 -1
- package/dist/services/codebase/schemas.d.mts +1 -1
- package/dist/services/compression/index.d.mts +2 -2
- package/dist/services/compression/namespace.d.mts +1 -1
- package/dist/services/compression/schemas.d.mts +1 -1
- package/dist/services/context-rules/index.d.mts +12 -12
- package/dist/services/context-rules/index.mjs +1 -1
- package/dist/services/execution-target/index.d.mts +3 -3
- package/dist/services/execution-target/index.mjs +1 -1
- package/dist/services/execution-target/namespace.d.mts +1 -1
- package/dist/services/execution-target/schemas.d.mts +1 -1
- package/dist/services/filesystem/index.d.mts +1 -1
- package/dist/services/filesystem/index.mjs +1 -1
- package/dist/services/filesystem/namespace.d.mts +6 -6
- package/dist/services/filesystem/schemas.d.mts +3 -3
- package/dist/services/git/namespace.mjs +1 -1
- package/dist/services/git/schemas.mjs +1 -1
- package/dist/services/harness/index.mjs +1 -1
- package/dist/services/index.d.mts +141 -141
- package/dist/services/index.mjs +1 -1
- package/dist/services/log-import/browser.d.mts +2 -2
- package/dist/services/log-import/index.d.mts +2 -2
- package/dist/services/log-import/log-import.d.mts +1 -1
- package/dist/services/log-import/log-import.mjs +1 -1
- package/dist/services/log-import/namespace.d.mts +2 -2
- package/dist/services/log-import/namespace.mjs +1 -1
- package/dist/services/log-import/schemas.d.mts +1 -1
- package/dist/services/log-import/schemas.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 +1 -1
- package/dist/services/session/testing/orchestrator-shared.d.mts +1 -1
- package/dist/services/session/testing/orchestrator-shared.mjs +1 -1
- package/dist/services/session/turns/namespace.d.mts +1 -1
- package/dist/services/session/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 +10 -10
- 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/{session-R-wciAdJ.mjs → session-0nWT4st6.mjs} +1 -1
- package/dist/{session-DApMcL_0.mjs → session-DLTZOum3.mjs} +1 -1
- package/dist/{session-lineage-D_8W1MI0.d.mts → session-lineage-5-wRBzuC.d.mts} +1 -1
- package/dist/{skill-B_VlGon5.mjs → skill-N-ttlp1i.mjs} +1 -1
- package/dist/{src-6n-8M8EU.mjs → src-Ck2sbaDa.mjs} +1 -1
- package/dist/storage/drizzle/client.d.mts +1 -1
- package/dist/storage/drizzle/client.mjs +1 -1
- package/dist/storage/drizzle/index.d.mts +1 -1
- package/dist/storage/drizzle/index.mjs +1 -1
- package/dist/storage/handlers/drizzle/index.d.mts +1 -1
- package/dist/storage/handlers/drizzle/index.mjs +1 -1
- package/dist/storage/handlers/index.d.mts +1 -1
- package/dist/storage/handlers/index.mjs +1 -1
- package/dist/{tool-approval-service-DhAqQqev.mjs → tool-approval-service-DEQiipxj.mjs} +1 -1
- package/dist/{tools-DeZIVtxe.mjs → tools-DFOsOboy.mjs} +1 -1
- package/dist/transition-CCflZ6JS.d.mts +454 -0
- package/dist/{types-CCsvoUTA.d.mts → types-BXUm60GF.d.mts} +258 -257
- package/dist/{types-BB8iIAjZ.d.mts → types-InWSdi-V.d.mts} +1 -1
- package/dist/ui-kernel/index.d.mts +1 -1
- package/dist/ui-kernel/pages/schemas.d.mts +1 -1
- package/dist/{version-SYP_DX4M.mjs → version-DoV_pSzT.mjs} +1 -1
- package/dist/workflow-BCKOJ4UC.mjs +1 -0
- package/dist/workflow-engine/index.d.mts +78 -72
- package/dist/workflow-engine/index.mjs +1 -1
- package/dist/workflow-engine/package.d.mts +1 -1
- package/dist/workflow-engine/package.mjs +1 -1
- package/dist/workflow-engine/workflow-orchestrator.d.mts +3 -1
- package/dist/workflow-engine/workflow-orchestrator.mjs +1 -1
- package/dist/{workflow-worker-DMFhz1q_.mjs → workflow-worker-BIpYi6o7.mjs} +1 -1
- package/package.json +5 -1
- package/dist/adapter-Cxcqmp04.mjs +0 -1
- package/dist/await-trigger-Cjfj0yp_.mjs +0 -1
- package/dist/canonical-model-C-jhofjd.mjs +0 -1
- package/dist/compression-BPOKUc6y.mjs +0 -1
- package/dist/namespace-CH_NWUKW.mjs +0 -1
- package/dist/package-DP8lk0-a.mjs +0 -1
- package/dist/primitive-runtime-Dw6OC8w5.mjs +0 -1
- package/dist/schemas-dNCdjOLB.mjs +0 -1
- /package/dist/{ajv-Cx19PP7Q.mjs → ajv-B5dPIck0.mjs} +0 -0
- /package/dist/{base-orchestrator-BRq4MXa7.d.mts → base-orchestrator-Cw0vpNgB.d.mts} +0 -0
- /package/dist/{capability-service-CHl8rrwb.mjs → capability-service-XlymTzz1.mjs} +0 -0
- /package/dist/{cleanEnvForAdapter-D32WnVuy.mjs → cleanEnvForAdapter-BooAgM2R.mjs} +0 -0
- /package/dist/{client-D2ZftNb6.d.mts → client-CebV_fZc.d.mts} +0 -0
- /package/dist/{clients-namespace-CeAB0t06.d.mts → clients-namespace-Bt_VTkEU.d.mts} +0 -0
- /package/dist/{config-namespace-DW5KHKPW.mjs → config-namespace-CY9leBnE.mjs} +0 -0
- /package/dist/{config-namespace-DloU-hNB.d.mts → config-namespace-DqdFE6zk.d.mts} +0 -0
- /package/dist/{create-static-mount-Bi0VpYS8.mjs → create-static-mount-DkK28kKW.mjs} +0 -0
- /package/dist/{cross-spawn-C58yEvsS.mjs → cross-spawn-CDXy3BjE.mjs} +0 -0
- /package/dist/{cursor-storage-CpuT5POU.mjs → cursor-storage-luQAg7E_.mjs} +0 -0
- /package/dist/{definition-GOb_oOmb.d.mts → definition-Cllhr9mi.d.mts} +0 -0
- /package/dist/{definition-BdxbXbrq.d.mts → definition-CuJvtYeG.d.mts} +0 -0
- /package/dist/{descriptor-to-package-D-FNxohm.mjs → descriptor-to-package-DdpjpT7n.mjs} +0 -0
- /package/dist/{drizzle-D7dkDEB5.mjs → drizzle-DVTAl7Us.mjs} +0 -0
- /package/dist/{esm-CP2zvvlx.mjs → esm-CQG9Pc7n.mjs} +0 -0
- /package/dist/{event-DaXakaHo.mjs → event-DguYjV6D.mjs} +0 -0
- /package/dist/{execution-target-Da6Vjvba.mjs → execution-target-BR8bLkCR.mjs} +0 -0
- /package/dist/{extension-discovery-Bv5FDtrM.d.mts → extension-discovery-CIZn5bkq.d.mts} +0 -0
- /package/dist/{extension-namespace-O3sKdnY9.mjs → extension-namespace-v3K0qVry.mjs} +0 -0
- /package/dist/{facet-Q_vgXb23.mjs → facet-BM4y4aQP.mjs} +0 -0
- /package/dist/{filesystem-service-89fN-2Dd.d.mts → filesystem-service-Cwp0sWNc.d.mts} +0 -0
- /package/dist/{handler-BIA3ld4C.mjs → handler-2bPhRn0u.mjs} +0 -0
- /package/dist/{host-DFqmG2qO.mjs → host-vY07gek-.mjs} +0 -0
- /package/dist/{identity-CA5MzB19.mjs → identity-BarL3JYI.mjs} +0 -0
- /package/dist/{index-BVhnqzDC2.d.mts → index-B92mToDo2.d.mts} +0 -0
- /package/dist/{index-cFuQpzIm.d.mts → index-BjoOSg95.d.mts} +0 -0
- /package/dist/{index-BeNVLvtk2.d.mts → index-BvLXySoB2.d.mts} +0 -0
- /package/dist/{index-DJSffYTW2.d.mts → index-C23g_M_J2.d.mts} +0 -0
- /package/dist/{index-kOSSuOcK.d.mts → index-C4nStEdA.d.mts} +0 -0
- /package/dist/{index-DHHKwLww.d.mts → index-COI1tjAf.d.mts} +0 -0
- /package/dist/{index-orAkFukT.d.mts → index-CpKikwK4.d.mts} +0 -0
- /package/dist/{index-DNmENr9M.d.mts → index-CqCe7Phc.d.mts} +0 -0
- /package/dist/{index-CkPIPbx9.d.mts → index-Cr9lh21j.d.mts} +0 -0
- /package/dist/{index-CBTp2XuF.d.mts → index-CuHqL95P.d.mts} +0 -0
- /package/dist/{index-CfpfkKih.d.mts → index-D3ahzHwb.d.mts} +0 -0
- /package/dist/{index-BE-yMFTz.d.mts → index-D7Hkmrr3.d.mts} +0 -0
- /package/dist/{index-DWqSqcpW.d.mts → index-DOOrKin9.d.mts} +0 -0
- /package/dist/{index-CYZqADXY2.d.mts → index-DUD7wikz2.d.mts} +0 -0
- /package/dist/{index-BUilJdHr.d.mts → index-Dfi8Rorw.d.mts} +0 -0
- /package/dist/{index-BplsE3qw.d.mts → index-DtwGhFFQ.d.mts} +0 -0
- /package/dist/{index-DVgKfgh1.d.mts → index-OGIC4puQ.d.mts} +0 -0
- /package/dist/{index-D0RWuwl5.d.mts → index-Y8rMeYYX.d.mts} +0 -0
- /package/dist/{index-BtL_9HBk.d.mts → index-gAFwNiJT.d.mts} +0 -0
- /package/dist/{index-DdCyeZ59.d.mts → index-wq7XeqyG.d.mts} +0 -0
- /package/dist/{jsonl-transport-Bb8ltqOe.mjs → jsonl-transport-CGPgD8iU.mjs} +0 -0
- /package/dist/{lib-BmcGxHXH.mjs → lib-ZKtnbCqH.mjs} +0 -0
- /package/dist/{materialization-DsPIGQP1.mjs → materialization-DBXjSiBn.mjs} +0 -0
- /package/dist/{model-registry-DQDclqdw.mjs → model-registry-C2VXobZj.mjs} +0 -0
- /package/dist/{model-registry-DLeMw3l8.mjs → model-registry-rYICIwyR.mjs} +0 -0
- /package/dist/{namespace-q5dD3acO.d.mts → namespace-B3ol3pc-.d.mts} +0 -0
- /package/dist/{namespace-DrpHLJAy.mjs → namespace-BO3tODGC.mjs} +0 -0
- /package/dist/{namespace-uGUGfpGQ.mjs → namespace-BdO4e1Fm.mjs} +0 -0
- /package/dist/{namespace-2G7A4Sza.d.mts → namespace-BsYKEMd8.d.mts} +0 -0
- /package/dist/{namespace-DMhz3yvr.d.mts → namespace-CQ8uza7o.d.mts} +0 -0
- /package/dist/{namespace-zWB-ULrX.mjs → namespace-CVMZVqB5.mjs} +0 -0
- /package/dist/{namespace-nQS4XwnT.d.mts → namespace-D2s-4pyg.d.mts} +0 -0
- /package/dist/{namespace-FJsnoEQy.mjs → namespace-DBHwyhME.mjs} +0 -0
- /package/dist/{namespace-CN-Llu7H.mjs → namespace-DYSFDC2G.mjs} +0 -0
- /package/dist/{namespace-DcUwOJ4f.d.mts → namespace-Dk4OslmY.d.mts} +0 -0
- /package/dist/{namespace-DKnJL0Ja.d.mts → namespace-LUNf8zo5.d.mts} +0 -0
- /package/dist/{namespace-UUw-S7ia.mjs → namespace-wke7juzy.mjs} +0 -0
- /package/dist/{orchestrator-shared-CbS4ueeq.d.mts → orchestrator-shared-ChOdIgh6.d.mts} +0 -0
- /package/dist/{out-BUHr98Xe.mjs → out-BoEZjBNz.mjs} +0 -0
- /package/dist/{package-YQeRE8bV.mjs → package-CF_Zm2v4.mjs} +0 -0
- /package/dist/{platform-CsO-MRJP.mjs → platform-DnbSvm2u.mjs} +0 -0
- /package/dist/{providers-FEZT2bQG.mjs → providers-Bd7BOZs0.mjs} +0 -0
- /package/dist/{providers-namespace-B4INLPUc.d.mts → providers-namespace-5GoTlHXz.d.mts} +0 -0
- /package/dist/{quick-lru-C7AXdpbU.mjs → quick-lru-6e7I1Bgf.mjs} +0 -0
- /package/dist/{registry-CwjZvH2s.mjs → registry-U_3aYSin.mjs} +0 -0
- /package/dist/{schema-Ba64XQjo.mjs → schema-DHlTAy0N.mjs} +0 -0
- /package/dist/{schema-introspection-D5FaI5B_.mjs → schema-introspection-B7xODt4I.mjs} +0 -0
- /package/dist/{schemas-9QC3nvYP.mjs → schemas-ArqQTC0Q.mjs} +0 -0
- /package/dist/{schemas-DznsZ0bq.d.mts → schemas-B6tEKf9T.d.mts} +0 -0
- /package/dist/{schemas-CRS7tkFP.d.mts → schemas-BemsLc_V.d.mts} +0 -0
- /package/dist/{schemas-5kegIs9D.mjs → schemas-CPI00yvh.mjs} +0 -0
- /package/dist/{schemas-9Ifo5zSf.d.mts → schemas-DKncXGnb.d.mts} +0 -0
- /package/dist/{schemas-DZfBym73.d.mts → schemas-DWfo0wp4.d.mts} +0 -0
- /package/dist/{schemas-BxI5Yq8d.d.mts → schemas-DmGRSeIq.d.mts} +0 -0
- /package/dist/{schemas-BSAKbVyd.d.mts → schemas-KlH1hB7u.d.mts} +0 -0
- /package/dist/{schemas-DAYPhB5K.mjs → schemas-XeIBqwvE.mjs} +0 -0
- /package/dist/{semver-ClOD8k8c.mjs → semver-CIhHqMkw.mjs} +0 -0
- /package/dist/{server-lifecycle-CFQaPTf7.mjs → server-lifecycle-C5Z5PSMD.mjs} +0 -0
- /package/dist/{server-lifecycle-5iHxcgBO.d.mts → server-lifecycle-_AA6EfzL.d.mts} +0 -0
- /package/dist/{shared-schemas-jG3EtHZT.mjs → shared-schemas-BEVG96xW.mjs} +0 -0
- /package/dist/{src-CRDOZl7K.mjs → src-_VODAJnf.mjs} +0 -0
- /package/dist/{storage-namespace-C1JVmZF1.mjs → storage-namespace-D5q9CrBp.mjs} +0 -0
- /package/dist/{storage-namespace-gey7EUhM.d.mts → storage-namespace-Di1A3DMm.d.mts} +0 -0
- /package/dist/{storage-namespace-definition-BPYSLTfN.d.mts → storage-namespace-definition-BffdI5Bz.d.mts} +0 -0
- /package/dist/{storage-namespace-definition-Df8S3E3r.mjs → storage-namespace-definition-CzXPW45M.mjs} +0 -0
- /package/dist/{supports-color-AnssSSH9.mjs → supports-color-DcXkvGDF.mjs} +0 -0
- /package/dist/{telemetry-DdbvlZ8s.mjs → telemetry-Cvi4rxiE.mjs} +0 -0
- /package/dist/{tray-menu-service-am356993.mjs → tray-menu-service-B2AxiQqL.mjs} +0 -0
- /package/dist/{types-DhlQpVEb.d.mts → types-BMS6yfLS.d.mts} +0 -0
- /package/dist/{types-xLd-e0wf.d.mts → types-Bo78h9e3.d.mts} +0 -0
- /package/dist/{types-D-GeeSdd.d.mts → types-CPmOg4X7.d.mts} +0 -0
- /package/dist/{types-Bj7cOrBQ.d.mts → types-DCvp_swt.d.mts} +0 -0
- /package/dist/{variant-BdNN5edM.mjs → variant-5huHjUTm.mjs} +0 -0
- /package/dist/{window-registry-LRjWPwr4.mjs → window-registry-PkrFIwX2.mjs} +0 -0
- /package/dist/{window-registry-CA6AC8n7.d.mts → window-registry-ofIUQnfo.d.mts} +0 -0
package/dist/.makaio-build.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 1,
|
|
3
|
-
"fingerprint": "
|
|
4
|
-
"builtAt": "2026-06-
|
|
3
|
+
"fingerprint": "cdb4e0687b42094d685d0b2a6716d7a490e92dc316becdf7e265926409ac4d10",
|
|
4
|
+
"builtAt": "2026-06-19T15:48:57.889Z"
|
|
5
5
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./json-value-CmhSGMLv.mjs";import"./shared-DpOEfD8F.mjs";import{g as t,h as n}from"./profile-
|
|
1
|
+
import{t as e}from"./json-value-CmhSGMLv.mjs";import"./shared-DpOEfD8F.mjs";import{g as t,h as n}from"./profile-BMBXUqqh.mjs";import{n as r}from"./version-DoV_pSzT.mjs";import{z as i}from"zod";const a=i.enum([`strong`,`alias`]),o=i.object({scheme:t,value:t,strength:a}),s=i.object({key:t,label:i.string(),usedPercentage:i.number().finite().min(0).max(100),resetsAt:n.optional()}),c=i.object({windows:i.array(s)}),l=i.record(i.string(),i.unknown()).optional(),u=i.object({clientId:t,found:i.boolean(),version:i.string().optional(),warningMessage:i.string().optional()}),d=i.object({clientId:t,binaryName:t,supportedVersions:r.optional()}),f=i.object({clientAccountId:t,clientId:t,observedAt:n,source:t,displayLabel:i.string().optional(),usage:c,metadata:l}),p=i.discriminatedUnion(`kind`,[i.object({kind:i.literal(`session`),sessionId:t}),i.object({kind:i.literal(`adapter-session`),adapterSessionId:t}),i.object({kind:i.literal(`both`),sessionId:t,adapterSessionId:t})]),m=i.object({clientId:i.string(),source:i.string(),kind:i.string(),observedAt:n,payload:e}),h={request:i.object({clientId:t,observedAt:n.optional(),displayLabel:i.string().optional(),identifiers:i.array(o).min(1),metadata:l}),response:i.object({clientAccountId:t,displayLabel:i.string().optional()})},g={request:m.extend({locator:p}),response:i.object({handled:i.boolean(),sessionId:t.nullable(),clientAccountId:t.nullable(),changed:i.boolean()})},_={request:i.object({clientId:t,observedAt:n,source:t,account:i.object({displayLabel:i.string().optional(),identifiers:i.array(o).min(1)}),usage:c,metadata:l}),response:i.object({clientAccountId:t,snapshot:f})};export{l as a,g as c,f as d,s as f,m as i,p as l,h as n,u as o,c as p,a as r,d as s,o as t,_ as u};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as e,a as t,c as n,d as r,f as i,g as a,h as o,i as s,l as c,m as l,o as u,p as d,s as f,st as p,t as m,u as h,v as g}from"./schemas-yNBjlOKi.mjs";import"./compression-CXEHx0rS.mjs";import"./provider-context-DjSUpHSM.mjs";import"./contracts/adapter/schemas/session-lineage.mjs";import{createBusNamespace as _}from"@makaio/framework/core";const v={getCapabilities:p,startAgent:g,infer:e,listAgents:a,getAgent:o,stopAgent:l,rehydrateAgent:d,getConfigSchema:i,"agent.created":r,"session.created":h,"session.discovered":m,"session.usage":c,"session.closed":n,log:f,error:u,initialized:t,quota:s},y=_(`adapter`,v),b=y.subjects;export{b as n,v as r,y as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import*as e from"node:fs/promises";import*as t from"node:path";import{randomUUID as n}from"node:crypto";import{MakaioBus as r}from"@makaio/framework/bus";import{AdapterSubjects as i,CapabilitySubjects as a,CredentialSubjects as o,ProviderDefinitionSchema as s,extensionToken as c,isUniversalRange as l,versionSatisfies as u}from"@makaio/framework/contracts";import{BaseService as d}from"@makaio/framework/service-base";import{ADAPTER_FILE_SCHEMA_VERSION as f,AdapterFileSchema as p,PROVIDER_CONFIG_SCHEMA_VERSION as m,ProviderConfigFileSchema as h,brandCredentialRecord as g,isAccountManagerRef as _,resolveCanonicalProviderConfigName as ee,slugifyProviderConfigName as v}from"@makaio/framework/contracts/config";import{resolveModelVisibility as y}from"@makaio/framework/contracts/provider";import{buildDeterministicAdapterId as b}from"@makaio/framework/services/adapter-runtime";import{ClientSubjects as te}from"@makaio/framework/contracts/client";import{ProviderStorageSubjects as x}from"@makaio/framework/services/settings/storage";import{AdapterSubsystemSubjects as S}from"@makaio/framework/services/adapter-subsystem";import{ExtensionSubjects as C}from"@makaio/framework/kernel";import{ModelRegistryProviderNotFoundError as w,ModelRegistrySubjects as T}from"@makaio/framework/services/model-registry";function E(e){return e?{...e}:void 0}function D(e){return e?{...e}:void 0}function ne(e){return e?structuredClone(e):void 0}function re(e,t){let n=[];for(let[r,i]of t.providerConfigs){let t=e.providerConfigs.get(r);t!==i&&n.push({kind:`write-provider`,key:`provider:${r}`,id:r,next:i,previous:t})}for(let[r,i]of t.adapters){let t=e.adapters.get(r);t!==i&&n.push({kind:`write-adapter`,key:`adapter:${r}`,name:r,next:i,previous:t})}for(let[r,i]of e.providerConfigs)t.providerConfigs.has(r)||n.push({kind:`delete-provider`,key:`provider-delete:${r}`,id:r,previous:i});return n}async function ie(e,t){switch(t.kind){case`write-provider`:await e.writeProviderConfig(t.id,t.next);return;case`write-adapter`:await e.writeAdapterFile(t.name,t.next);return;case`delete-provider`:if(!await e.deleteProviderConfig(t.id))throw Error(`Provider config file missing during delete: ${t.id}`);return}}async function ae(e,t){switch(t.kind){case`write-provider`:if(t.previous){await e.writeProviderConfig(t.id,t.previous);return}await e.deleteProviderConfig(t.id);return;case`write-adapter`:if(t.previous){await e.writeAdapterFile(t.name,t.previous);return}await e.deleteAdapterFile(t.name);return;case`delete-provider`:await e.writeProviderConfig(t.id,t.previous);return}}async function oe(e,t,n){let r=re(t,n);if(r.length===0)return;let i=[];try{for(let t of r)i.push(t),await ie(e,t)}catch(t){try{await se(e,i)}catch(e){throw AggregateError([t,e],`Adapter subsystem snapshot commit failed and rollback could not restore the previous state.`,{cause:e})}throw t}}async function se(e,t){let n=[];for(let r of[...t].reverse())try{await ae(e,r)}catch(e){n.push(e instanceof Error?Error(`[${r.key}] ${e.message}`,{cause:e}):Error(`[${r.key}] ${String(e)}`))}if(n.length>0)throw AggregateError(n,`Snapshot rollback failed.`)}function ce(e,t){let n=t.credentials!==void 0&&Object.keys(t.credentials).length>0,r=ue(t.credentials);return{id:e,definitionId:t.definitionId,name:t.name??t.definitionId,...t.endpointOverrides?{endpointOverrides:{...t.endpointOverrides}}:{},...t.modelVisibility?{modelVisibility:{...t.modelVisibility}}:{},modelFilterMode:t.modelFilterMode??`show-all`,isDefault:t.isDefault??!1,enabled:t.enabled??!0,isSentinel:t.isSentinel??!1,hasCredentials:n,...r?{sourceRef:r}:{}}}function O(e,t){return(t??[]).map(t=>({adapterName:e,providerConfigId:t.providerConfigId,isDefault:t.isDefault??!1}))}function le(e,t,n){return{name:e,enabled:t.enabled??!0,...t.displayName===void 0?{}:{displayName:t.displayName},...t.description===void 0?{}:{description:t.description},...t.helpLinks===void 0?{}:{helpLinks:t.helpLinks.map(e=>({...e}))},...t.instructions===void 0?{}:{instructions:t.instructions},...t.clientId===void 0?{}:{clientId:t.clientId},...t.protocol===void 0?{}:{protocol:t.protocol},...t.providerDefinitionIds===void 0?{}:{providerDefinitionIds:[...t.providerDefinitionIds]},...t.settings?{settings:structuredClone(t.settings)}:{},bindings:n.map(e=>({...e}))}}function ue(e){if(e){for(let t of Object.values(e))if(_(t))return t}}function de(e,t){let n=[],r=new Set;for(let i of e){let e=t.get(i.providerConfigId);!e||r.has(e.definitionId)||(r.add(e.definitionId),n.push(e.definitionId))}return n}function k(e){let t=new Map,n=new Map,r=new Map;for(let[i,a]of e.providerConfigs){let e=ce(i,a);t.set(i,e),n.set(v(e.name),i);let o=r.get(e.definitionId)??[];o.push(i),r.set(e.definitionId,o)}let i=new Map,a=new Map,o=new Map,s=new Map;for(let[n,r]of e.adapters){let e=O(n,r.bindings),c=le(n,r,e),l=e.filter(e=>t.get(e.providerConfigId)?.enabled);i.set(n,c),a.set(n,e),s.set(n,l.find(e=>e.isDefault)??l[0]??null);for(let t of e){let e=o.get(t.providerConfigId)??[];e.push(t),o.set(t.providerConfigId,e)}}return{providerConfigRecords:t,providerConfigSlugToId:n,providerConfigIdsByDefinition:r,adapterRecords:i,bindingsByAdapter:a,bindingsByConfig:o,defaultBindingByAdapter:s,adapterNames:new Set(i.keys())}}function A(e,t){return e.get(t)?.enabled??!1}function j(e,t){return e.some(e=>A(t,e.providerConfigId))}function M(e,t){let n=e.find(e=>A(t,e.providerConfigId));return{bindings:e.map(e=>({...e,isDefault:e.providerConfigId===n?.providerConfigId})),...n?{promoted:{...n,isDefault:!0}}:{}}}function N(e,t,n){let r=[...n.entries()].filter(([n,r])=>n!==t&&r.definitionId===e).map(([e,t])=>({id:e,config:t})),i=r.find(({id:e})=>A(n,e))?.id??null;for(let{id:e,config:t}of r)n.set(e,{...t,isDefault:i!==null&&e===i});return i}async function P(e,t,n){let{provider:r}=await e.request(x.get,{id:n.definitionId});if(!r)throw Error(`ProviderDefinition '${n.definitionId}' not found for config '${t}'`);let i=await F(e,r),a={...r.endpoints??{},...n.endpointOverrides??{}},o=I(i);return{providerConfigId:t,definitionId:r.id,...Object.keys(a).length>0?{endpointOverrides:a}:{},credentialRefs:g(n.credentials)??{},...r.credentialEnvVars?{credentialEnvVars:{...r.credentialEnvVars}}:{},...o.length>0?{ambientCredentialEnvVars:o}:{},...r.capabilities?{capabilities:r.capabilities}:{}}}async function F(e,t){try{let n=await e.requestOptional(x.list,{});if(!n.handled)return[t];let r=n.data.providers;return r.some(e=>e.id===t.id)?r:[t,...r]}catch(e){return console.debug(`[AdapterSubsystem] Provider list unavailable for ambient credential discovery`,e),[t]}}function I(e){return[...new Set(e.flatMap(e=>e.credentialEnvVars?Object.values(e.credentialEnvVars):[]))]}var L=class{tail=Promise.resolve();async run(e){let t=this.tail.then(e,e);return this.tail=t.then(()=>void 0,()=>void 0),await t}},R=class{configRepository;bus;snapshot={providerConfigs:new Map,adapters:new Map};providerConfigRecords=new Map;providerConfigSlugToId=new Map;adapterRecords=new Map;bindingsByAdapter=new Map;bindingsByConfig=new Map;defaultBindingByAdapter=new Map;providerConfigIdsByDefinition=new Map;knownAdapterNames=new Set;logImportProviderKeysPromise=null;snapshotMutationQueue=new L;constructor(e){this.configRepository=e.configRepository,this.bus=e.bus}async loadSnapshot(){let[e,t]=await Promise.all([this.configRepository.loadProviderConfigs(),this.configRepository.loadAdapterConfigs()]);this.replaceSnapshot({providerConfigs:new Map(e.configs),adapters:new Map(t.configs)})}registerListeners(e){let t=()=>{this.logImportProviderKeysPromise=null};e(this.bus.on(a.register,t,{filter:{capabilityId:`log-import`}})),e(this.bus.on(a.unregister,t,{filter:{capabilityId:`log-import`}}))}clear(){this.snapshot={providerConfigs:new Map,adapters:new Map},this.providerConfigRecords.clear(),this.providerConfigSlugToId.clear(),this.adapterRecords.clear(),this.bindingsByAdapter.clear(),this.bindingsByConfig.clear(),this.defaultBindingByAdapter.clear(),this.providerConfigIdsByDefinition.clear(),this.knownAdapterNames.clear(),this.logImportProviderKeysPromise=null}replaceSnapshot(e){this.snapshot=e,this.applyDerivedState()}cloneSnapshot(){return{providerConfigs:new Map(this.snapshot.providerConfigs),adapters:new Map(this.snapshot.adapters)}}async commitSnapshotMutation(e,t){return await this.snapshotMutationQueue.run(async()=>{let n=this.cloneSnapshot();return await e(n),await this.commitSnapshot(n),await t?.()})}async commitSnapshot(e){await oe(this.configRepository,this.snapshot,e),this.replaceSnapshot(e)}applyDerivedState(){let e=k(this.snapshot);this.providerConfigRecords=e.providerConfigRecords,this.providerConfigSlugToId=e.providerConfigSlugToId,this.providerConfigIdsByDefinition=e.providerConfigIdsByDefinition,this.adapterRecords=e.adapterRecords,this.bindingsByAdapter=e.bindingsByAdapter,this.bindingsByConfig=e.bindingsByConfig,this.defaultBindingByAdapter=e.defaultBindingByAdapter,(e.adapterNames.size!==this.knownAdapterNames.size||[...e.adapterNames].some(e=>!this.knownAdapterNames.has(e)))&&(this.knownAdapterNames=e.adapterNames,this.logImportProviderKeysPromise=null)}getProviderConfig(e){let t=this.providerConfigRecords.get(e);return t?structuredClone(t):null}requireProviderConfig(e,t){let n=this.getProviderConfig(e);if(!n)throw Error(`Provider config could not be loaded after ${t}: ${e}`);return n}getAdapterConfig(e){let t=this.adapterRecords.get(e);return t?structuredClone(t):null}requireAdapterConfig(e,t){let n=this.getAdapterConfig(e);if(!n)throw Error(`Adapter config could not be loaded after ${t}: ${e}`);return n}isAdapterEnabled(e){return this.getAdapterConfig(e)?.enabled??!1}listProviderConfigs(e){let t=[...this.providerConfigRecords.values()].map(e=>structuredClone(e));return e===void 0?t:t.filter(t=>t.enabled===e)}listProviderConfigsByDefinition(e){return this.getProviderConfigIdsByDefinition(e).map(e=>this.getProviderConfig(e)).filter(e=>e!==null)}listAdapterConfigs(){return[...this.adapterRecords.values()].map(e=>structuredClone(e))}listBindings(e){return structuredClone(this.bindingsByAdapter.get(e)??[])}listBindingsByConfig(e){return structuredClone(this.bindingsByConfig.get(e)??[])}getDefaultBinding(e){let t=this.defaultBindingByAdapter.get(e)??null;return t?structuredClone(t):null}findConfigForDefinitionAndAdapter(e,t){let n=new Set((this.bindingsByAdapter.get(t)??[]).map(e=>e.providerConfigId)),r=this.getProviderConfigIdsByDefinition(e).map(e=>this.providerConfigRecords.get(e)).filter(e=>e!==void 0&&e.enabled&&n.has(e.id)),i=r.find(e=>e.isDefault)??r[0]??null;return i?structuredClone(i):null}getRawProviderConfig(e){return this.snapshot.providerConfigs.get(e)}getProviderConfigIdsByDefinition(e){return[...this.providerConfigIdsByDefinition.get(e)??[]]}assertProviderConfigNameUnique(e,t){let n=v(e),r=this.providerConfigSlugToId.get(n);if(r!==void 0&&r!==t){let t=this.providerConfigRecords.get(r)?.name??r;throw Error(`Provider config name "${e}" conflicts with existing config "${t}": both slugify to "${n}". Choose a different name.`)}}async setAdapterConfig(e,t){return{config:await this.commitSnapshotMutation(n=>{let r=n.adapters.get(e);n.adapters.set(e,this.buildNextAdapterFile(r,t))},()=>this.requireAdapterConfig(e,`update`))}}buildNextAdapterFile(e,t){return{...e??{},$schema:f,...this.applyAdapterPatch(e,t),bindings:e?.bindings}}applyAdapterPatch(e,t){let n=e??{},r=t.helpLinks?.map(e=>({...e}))??n.helpLinks,i=t.providerDefinitionIds?[...t.providerDefinitionIds]:n.providerDefinitionIds;return{enabled:t.enabled??n.enabled??!0,displayName:t.displayName??n.displayName,description:t.description??n.description,helpLinks:r,instructions:t.instructions??n.instructions,clientId:t.clientId??n.clientId,protocol:t.protocol??n.protocol,providerDefinitionIds:i,settings:t.settings===void 0?n.settings:ne(t.settings)}}async setAdapterEnabled(e,t){await this.setAdapterConfig(e,{enabled:t})}async buildEffectiveAdapters(){let e=await this.getLogImportProviderKeys();return[...this.adapterRecords.values()].map(t=>{let n=this.bindingsByAdapter.get(t.name)??[],r=n.filter(e=>this.providerConfigRecords.get(e.providerConfigId)?.enabled),i=[...t.providerDefinitionIds??de(n,this.providerConfigRecords)];return{name:t.name,displayName:t.displayName??t.name,...t.description===void 0?{}:{description:t.description},enabled:t.enabled,configCount:n.length,readiness:r.length>0?`ready`:`needs-setup`,supportsLogImport:e.has(t.name),...t.helpLinks===void 0?{}:{helpLinks:t.helpLinks.map(e=>({...e}))},...t.instructions===void 0?{}:{instructions:t.instructions},...t.clientId===void 0?{}:{clientId:t.clientId},...t.protocol===void 0?{}:{protocol:t.protocol},...t.providerDefinitionIds!==void 0||i.length>0?{providerDefinitionIds:i}:{}}})}async getLogImportProviderKeys(){if(!this.logImportProviderKeysPromise){let e=this.bus.requestOptional(a.listProviders,{capabilityId:`log-import`}).then(t=>t.handled?new Set(t.data.providers.map(e=>e.providerKey??e.id)):(this.logImportProviderKeysPromise===e&&(this.logImportProviderKeysPromise=null),new Set)).catch(e=>{throw this.logImportProviderKeysPromise=null,e});this.logImportProviderKeysPromise=e}return await this.logImportProviderKeysPromise}async buildProviderContext(e){let t=this.snapshot.providerConfigs.get(e);return t?P(this.bus,e,t):null}removeBindingsForConfig(e,t,n){let r=new Map,i=[],a=[];for(let[o,s]of t){let t=O(o,s.bindings),c=t.findIndex(t=>t.providerConfigId===e);if(c===-1)continue;let[l]=t.splice(c,1);if(l&&i.push(l),l?.isDefault&&t.length>0){let e=M(t,n);t.splice(0,t.length,...e.bindings),e.promoted&&a.push({adapterName:o,providerConfigId:e.promoted.providerConfigId})}r.set(o,{...s,bindings:t.map(({adapterName:e,...t})=>t)})}return{changedAdapters:r,deletedBindings:i,defaultChangedBindings:a}}promoteProviderConfigDefault(e,t,n){return N(e,t,n)}};function z(e){if(!(e===void 0||e.length===0))return e.map(e=>({...e}))}function B(e,t){return e.clientId!==void 0&&t?.some(t=>t.id===e.clientId)?e.clientId:t?.[0]?.id}async function V(e,t,n,r,i={}){if(t===void 0||t.length===0)return;let a=new Map(n.map(e=>[e.definition.id,e.definition]));for(let n of t){let t=a.get(n.id);if(t===void 0)throw Error(`Adapter "${e}" references missing client "${n.id}"`);H(t.version,n.version,`Adapter "${e}" client "${n.id}" definition version ${t.version}`)}if(i.checkBinaryVersions===!1)return;let o=t.filter(e=>e.binaryVersion!==void 0);await Promise.all(o.map(async t=>{if(l(t.binaryVersion))return;let n=await r.requestOptional(te.resolveBinary,{clientId:t.id});if(!n.handled)throw Error(`Adapter "${e}" client "${t.id}" declares binaryVersion ${t.binaryVersion}, but no client.resolveBinary handler is registered`);let i=n.data.version;if(i===null)throw Error(`Adapter "${e}" client "${t.id}" binary did not report a version; requires ${t.binaryVersion}`);H(i,t.binaryVersion,`Adapter "${e}" client "${t.id}" binary version ${i}`)}))}function H(e,t,n){if(!u(e,t))throw Error(`${n} does not satisfy ${t}`)}function fe(e){let t=e.split(`/`).pop()?.replace(/^ai-adapters-/,``)?.trim();return t&&t.length>0?t:e}function U(e){let t=B(e.options,e.clients);return{name:e.name,displayName:e.displayName??e.name,description:e.description,helpLinks:e.helpLinks?.map(e=>({...e})),instructions:e.instructions,clientId:t,protocol:e.protocol,providerDefinitionIds:e.providers.map(e=>e.definition.id)}}async function W(e){for(let[t,n]of e){let e=n;if(typeof e.shutdown==`function`)try{await e.shutdown()}catch(e){console.error(`[adapter-runtime] Error shutting down adapter ${t}:`,e)}}e.clear()}async function pe(e,t,n){try{let e=t;typeof e.shutdown==`function`&&await e.shutdown()}finally{n.delete(e)}}async function me(e,t){let{config:n}=await e.request(S.getAdapterConfig,{name:t});return n?.enabled??!1}function he(e,t){return e.options.adapterId??b(t,e.name)}async function G(e,t,n,r,a){let o=[];for(let s of n)try{if(!await me(e,s.name)){console.info(`Skipping disabled adapter: ${s.name}`);continue}let n=he(s,t),o=B(s.options,s.clients),c=await s.factory({...s.options,adapterId:n,platformDefaults:a,definitionProviders:s.providers,clientId:o});if(c.adapterId!==n)throw Error(`Adapter '${s.name}' initialized with mismatched adapterId (expected '${n}', got '${c.adapterId}')`);r.set(n,c);let l=c;try{await e.emit(i.initialized,{adapterId:n,adapterName:s.name,capabilities:[...l.capabilities??[]],...l.nativeTools===void 0?{}:{nativeTools:[...l.nativeTools]}})}catch(e){try{await pe(n,c,r)}catch(e){console.error(`[adapter-runtime] Error rolling back adapter ${s.name}:`,e)}throw e}console.info(`Initialized adapter: ${s.name} (${s.packageName})`)}catch(e){o.push({adapterName:s.name,error:e})}if(o.length>0){let e=o.map(({adapterName:e,error:t})=>`${e}: ${t instanceof Error?t.message:String(t)}`).join(`; `);throw Error(`Failed to initialize enabled adapters: ${e}`)}}async function ge(e,t){await t.request(S.ensureReady,{});let n=await Promise.all(e.map(async e=>({adapter:e,config:(await t.request(S.getAdapterConfig,{name:e.name})).config})));await Promise.all(n.filter(({config:e})=>!e).map(({adapter:e})=>t.request(S.setAdapterConfig,{name:e.name,patch:{displayName:e.displayName,description:e.description,helpLinks:e.helpLinks?.map(e=>({...e})),instructions:e.instructions,clientId:B(e.options,e.clients),protocol:e.protocol,providerDefinitionIds:e.providers.map(e=>e.definition.id),enabled:!1}})))}var _e=class{bus;machineId;loadedAdapters=new Map;adapterInstances=new Map;packageAdapters=new Map;publicationChain=Promise.resolve();constructor(e){this.bus=e.bus,this.machineId=e.machineId}getLoadedAdapters(){return[...this.loadedAdapters.values()]}getAdapterInstances(){return this.adapterInstances}getSettingsAvailableAdapters(){return[...this.loadedAdapters.values()].map(U)}registerAdapter(e,t){let n=this.loadedAdapters.get(e.name);if(n)throw Error(`Duplicate adapter name '${e.name}' from owners '${n.packageName}' and '${t}'.`);this.loadedAdapters.set(e.name,e);let r=this.packageAdapters.get(t)??[];this.packageAdapters.set(t,[...r,e.name])}async deregisterAdapter(e){let t=this.loadedAdapters.get(e);if(t){let n=t.options.adapterId??b(this.machineId,e),r=this.adapterInstances.get(n);if(r){let e=r;typeof e.shutdown==`function`&&await e.shutdown(),this.adapterInstances.delete(n)}}this.loadedAdapters.delete(e)}removePackageTracking(e){this.packageAdapters.delete(e)}async deregisterPackage(e){let t=this.packageAdapters.get(e);if(t?.length){for(let e of t)try{await this.deregisterAdapter(e)}catch(t){console.error(`[AdapterRuntimeRegistry] Error shutting down adapter "${e}":`,t)}this.packageAdapters.delete(e)}}publishAdapterRegistered(e){let{adapterName:t,displayName:n,packageName:r,enabled:i,adapterId:a,providerDefinitionIds:o}=e,s=this.adapterInstances.has(a),c=this.publicationChain.catch(()=>void 0).then(()=>this.bus.emit(S.adapter.registered,{adapterName:t,displayName:n??t,packageName:r,enabled:i,initialized:s,providerDefinitionIds:[...o]}));return this.publicationChain=c.catch(()=>void 0),c}async initializeAdapter(e,t){await G(this.bus,this.machineId,[e],this.adapterInstances,t)}async shutdownAll(){await W(this.adapterInstances),this.loadedAdapters.clear(),this.packageAdapters.clear()}},ve=class{configStore;bus;constructor(e){this.configStore=e.configStore,this.bus=e.bus}async createProviderConfig(e){let t=await this.resolveProviderConfigName(e.definitionId,e.name),n=v(t),r=this.cloneCreateCredentialRefs(e),i=E(e.endpointOverrides),a=D(e.modelVisibility),o=await this.configStore.commitSnapshotMutation(o=>{if(this.configStore.assertProviderConfigNameUnique(t),o.providerConfigs.has(n))throw Error(`Provider config already exists: ${n}`);o.providerConfigs.set(n,{$schema:m,definitionId:e.definitionId,name:t,credentials:r,endpointOverrides:i,modelVisibility:a,modelFilterMode:e.modelFilterMode??`show-all`,isDefault:![...o.providerConfigs.values()].some(t=>t.definitionId===e.definitionId),enabled:!0,isSentinel:e.isSentinel??!1})},()=>this.configStore.requireProviderConfig(n,`creation`));return await this.bus.emit(S.providerConfig.created,o),{config:o}}async updateProviderConfig(e,t){let n=await this.configStore.commitSnapshotMutation(n=>{let r=n.providerConfigs.get(e);if(!r)throw Error(`Provider config not found: ${e}`);let i=t.name??r.name??r.definitionId;t.name!==void 0&&this.configStore.assertProviderConfigNameUnique(i,e),n.providerConfigs.set(e,{...r,name:i,endpointOverrides:t.endpointOverrides===null?void 0:t.endpointOverrides===void 0?r.endpointOverrides:E(t.endpointOverrides),modelVisibility:t.modelVisibility===void 0?r.modelVisibility:D(t.modelVisibility),enabled:t.enabled??r.enabled})},()=>this.configStore.requireProviderConfig(e,`update`));return await this.bus.emit(S.providerConfig.updated,n),{config:n}}async setProviderConfigCredentialRefs(e,t){let n=this.normalizeCredentialRefs(t),r=await this.configStore.commitSnapshotMutation(t=>{let r=t.providerConfigs.get(e);if(!r)throw Error(`Provider config not found: ${e}`);t.providerConfigs.set(e,{...r,credentials:n})},()=>this.configStore.requireProviderConfig(e,`credential update`));return await this.bus.emit(S.providerConfig.updated,r),{config:r}}async deleteProviderConfig(e){let t=!1,n,r=``,i=!1,a=null,o={changedAdapters:new Map,deletedBindings:[],defaultChangedBindings:[]},s=await this.configStore.commitSnapshotMutation(s=>{let c=s.providerConfigs.get(e);if(c){if(c.isSentinel){c.enabled&&(s.providerConfigs.set(e,{...c,enabled:!1}),n=e);return}o=this.configStore.removeBindingsForConfig(e,s.adapters,s.providerConfigs),i=c.isDefault??!1,r=c.definitionId,t=!0,s.providerConfigs.delete(e),a=i?this.configStore.promoteProviderConfigDefault(c.definitionId,e,s.providerConfigs):null;for(let[e,t]of o.changedAdapters)s.adapters.set(e,t)}},()=>n?this.configStore.requireProviderConfig(e,`sentinel disable`):null);if(!t)return n&&await this.bus.emit(S.providerConfig.updated,s),{deleted:!1};await this.cleanupDeletedProviderCredentials(e);for(let e of o.deletedBindings)await this.bus.emit(S.binding.deleted,e);for(let e of o.defaultChangedBindings)await this.bus.emit(S.binding.defaultChanged,e);return await this.bus.emit(S.providerConfig.deleted,{id:e}),i&&await this.bus.emit(S.providerConfig.defaultChanged,{definitionId:r,configId:a}),{deleted:!0}}async setDefaultProviderConfig(e){let t=``,n=await this.configStore.commitSnapshotMutation(n=>{let r=n.providerConfigs.get(e);if(!r)throw Error(`Provider config not found: ${e}`);if(!(r.enabled??!0))throw Error(`Disabled provider config cannot be default: ${e}`);t=r.definitionId;for(let[r,i]of n.providerConfigs)i.definitionId===t&&n.providerConfigs.set(r,{...i,isDefault:r===e})},()=>this.configStore.requireProviderConfig(e,`setDefault`));return await this.bus.emit(S.providerConfig.updated,n),await this.bus.emit(S.providerConfig.defaultChanged,{definitionId:t,configId:e}),{config:n}}async setModelFilterMode(e,t,n){let r=await this.configStore.commitSnapshotMutation(async r=>{let i=r.providerConfigs.get(e);if(!i)throw Error(`Provider config not found: ${e}`);let a=i.modelVisibility;if(t===`allowlist`){let e=await this.selectAllowlistKeeper(i.definitionId,i,n);e&&(a={...i.modelVisibility??{},[e]:`visible`})}r.providerConfigs.set(e,{...i,modelFilterMode:t,modelVisibility:a})},()=>this.configStore.requireProviderConfig(e,`setModelFilterMode`));return await this.bus.emit(S.providerConfig.updated,r),{config:r}}normalizeCredentialRefs(e){if(!(!e||Object.keys(e).length===0))return g(e)}cloneCreateCredentialRefs(e){return this.normalizeCredentialRefs(e.credentialRefs)}async cleanupDeletedProviderCredentials(e){try{await this.bus.requestOptional(o.delete,{configId:e})}catch(t){console.warn(`[AdapterProviderConfigService] Failed to delete credentials for removed provider config "${e}":`,t)}}async resolveProviderConfigName(e,t){let n=ee({requestedName:t,providerName:(await this.getProviderDefinitionOrThrow(e)).name,definitionId:e});if(n)return n;throw Error(`Unable to derive a canonical provider config name for definition: ${e}`)}async getProviderDefinitionOrThrow(e){let{provider:t}=await this.bus.request(x.get,{id:e});if(!t)throw Error(`Provider definition not found: ${e}`);return t}async selectAllowlistKeeper(e,t,n){let{provider:r}=await this.bus.request(x.get,{id:e}),i=[n,...r?.availableModels?.map(e=>e.name)??[],...Object.keys(t.modelVisibility??{})].filter(e=>typeof e==`string`&&e.length>0);for(let e of i){let n=y(e,`allowlist`,t.modelVisibility);if(n===`enabled`||n===`visible`)return}return i[0]}},ye=class{configStore;bus;constructor(e){this.configStore=e.configStore,this.bus=e.bus}async bind(e,t){let n,r=!1;if(await this.configStore.commitSnapshotMutation(i=>{let a=i.providerConfigs.get(t);if(!a)throw Error(`Provider config not found: ${t}`);let o=i.adapters.get(e);if(!o)throw Error(`Adapter config not found: ${e}`);let s=O(e,o.bindings),c=s.find(e=>e.providerConfigId===t);if(c){n={...c};return}r=!0,n={adapterName:e,providerConfigId:t,isDefault:(a.enabled??!0)&&!j(s,i.providerConfigs)};let l=[...s,n];i.adapters.set(e,{...o,bindings:l.map(({adapterName:e,...t})=>t)})}),!n)throw Error(`Binding could not be loaded after bind: ${e}/${t}`);return r&&await this.bus.emit(S.binding.created,n),n}async unbind(e,t){let n,r=!1;await this.configStore.commitSnapshotMutation(i=>{let a=i.adapters.get(e);if(!a)return;let o=O(e,a.bindings),s=o.findIndex(e=>e.providerConfigId===t);if(s===-1)return;let[c]=o.splice(s,1);if(r=!0,c?.isDefault&&o.length>0){let e=M(o,i.providerConfigs);n=e.promoted,o.splice(0,o.length,...e.bindings)}i.adapters.set(e,{...a,bindings:o.map(({adapterName:e,...t})=>t)})}),r&&(await this.bus.emit(S.binding.deleted,{adapterName:e,providerConfigId:t}),n&&await this.bus.emit(S.binding.defaultChanged,{adapterName:e,providerConfigId:n.providerConfigId}))}async setDefaultBinding(e,t){let n=!1;await this.configStore.commitSnapshotMutation(r=>{let i=r.adapters.get(e);if(!i)throw Error(`Adapter config not found: ${e}`);let a=O(e,i.bindings),o=a.find(e=>e.providerConfigId===t);if(!o)throw Error(`Binding not found for adapter ${e} and provider config ${t}`);if(!A(r.providerConfigs,o.providerConfigId))throw Error(`Disabled provider config cannot be default binding: ${t}`);o.isDefault||(n=!0,r.adapters.set(e,{...i,bindings:a.map(({adapterName:e,...n})=>({...n,isDefault:n.providerConfigId===t}))}))}),n&&await this.bus.emit(S.binding.defaultChanged,{adapterName:e,providerConfigId:t})}};function K(e){return e.map(e=>({...e}))}function q(e){if(e instanceof w)return!0;if(typeof e!=`object`||!e)return!1;let t=e;return t.name===`ModelRegistryProviderNotFoundError`&&typeof t.providerId==`string`||e instanceof Error&&/^Request to "getProviderModels" failed: Provider ".+" is not present in the model registry$/.test(e.message)||e instanceof Error&&/^Provider ".+" is not present in the model registry$/.test(e.message)?!0:q(t.cause)}function be(e){let t=new Set;for(let n of e){if(typeof n==`string`){(n===`anthropic`||n===`openai`)&&t.add(n);continue}n.anthropic!==void 0&&t.add(`anthropic`),n.openai!==void 0&&t.add(`openai`)}return[...t]}function xe(e,t,n){let r=be(n);if(t!==void 0){if(!r.includes(t))throw Error(`Adapter "${e}" definition protocol "${t}" must be declared in manifest.protocols [${r.join(`, `)}].`);return t}return r.length===1?r[0]:void 0}var Se=class{configStore;registry;coordinator;machineId;platformDefaults;constructor(e){this.configStore=e.configStore,this.registry=e.registry,this.coordinator=e.coordinator,this.machineId=e.machineId,this.platformDefaults=e.platformDefaults}register(e){e(this.coordinator.registerContributionProcessor({filter:e=>!!e.adapters?.length,processActivated:async(e,t,n)=>{await this.onPackageActivated(e,t,n)},processStopped:async e=>{await this.onPackageStopped(e)}}))}async onPackageActivated(e,t,n){let r=t.adapters??[],i=[],a=[],o=new Map,s=await n.bus.request(C.contributions.catalog,{}),c=new Map;for(let e of s.providers)c.set(e.definition.id,e);for(let n of t.providers??[])c.set(n.id,{packageName:e,definition:n});let l=s.clients;try{for(let t of r){let r=await this.activateAdapterContribution(e,t,n.bus,o,c,l);i.push(t.definition.name),a.push(r)}}catch(t){for(let e of i.reverse())try{await this.registry.deregisterAdapter(e)}catch(t){console.error(`[AdapterContributionProcessor] Rollback error for adapter "${e}":`,t)}throw this.registry.removePackageTracking(e),t}await this.publishActivatedAdapters(a)}async processAdapterContribution(e,t,n=r){let i=await this.activateAdapterContribution(e,t,n,new Map);await this.publishActivatedAdapters([i])}async activateAdapterContribution(e,t,n,r,i,a){let o=await this.buildLoadedAdapter(e,t,n,r,i,a),s=!1;try{await this.ensureAdapterConfig(o);let t=this.configStore.isAdapterEnabled(o.name);t&&await this.validateEnabledAdapterClientRefs(o,n,a),this.registry.registerAdapter(o,e),s=!0,t&&(await this.registry.initializeAdapter(o,this.platformDefaults),console.info(`[AdapterContributionProcessor] Initialized adapter: ${o.name} (${o.packageName})`))}catch(e){if(s)try{await this.registry.deregisterAdapter(o.name)}catch(e){console.error(`[AdapterContributionProcessor] Rollback error for adapter "${o.name}":`,e)}throw e}return o}async validateEnabledAdapterClientRefs(e,t,n){if(e.clients===void 0||e.clients.length===0)return;let r=n??(await t.request(C.contributions.catalog,{})).clients;await V(e.name,e.clients,r,t)}async resolveProviderDefinitions(e,t,n,r,i,a){let o=a;if(!o){o=new Map;let t=await e.request(C.contributions.catalog,{});for(let e of t.providers)o.set(e.definition.id,e)}let s=[],c=[];for(let e of t){let t=o.get(e.definitionId);if(!t){c.push(e.definitionId);continue}s.push({definition:t.definition,providerPackageName:t.packageName,configSchema:e.configSchema??r,credentialSchema:e.credentialSchema??i})}if(c.length>0)throw Error(`Adapter "${n}" declares providers [${c.join(`, `)}] but no active extension registers them. Ensure provider extensions are listed in the adapter's dependencies.`);return s}async buildLoadedAdapter(e,t,n=r,i=new Map,a,o){let s=t.definition,c=t.manifest,l=s.name,u=o??(await n.request(C.contributions.catalog,{})).clients;await V(l,c.clients,u,n,{checkBinaryVersions:!1});let d=await this.resolveProviderDefinitions(n,s.providers,l,s.providerConfigSchema,s.providerCredentialSchema,a),f=await Promise.all(d.map(async e=>{let t=e.definition.id;try{let r=i.get(t);if(r===void 0){let a=await n.requestOptional(T.getProviderModels,{providerId:t});r=a.handled?a.data.models:e.definition.availableModels??[],i.set(t,r)}return{...e,definition:{...e.definition,availableModels:K(r)}}}catch(n){if(q(n))return{...e,definition:{...e.definition,availableModels:K(e.definition.availableModels??[])}};throw Error(`[AdapterContributionProcessor] Failed to populate available models for provider "${t}" on adapter "${l}"`,{cause:n})}}));return{name:l,displayName:s.displayName??c.displayName,description:s.description,packageName:e,factory:s.createAdapter,options:{adapterId:b(this.machineId,l)},adapterConfigSchema:s.adapterConfigSchema,providers:f,helpLinks:s.helpLinks,instructions:s.instructions,defaultPresetId:s.defaultPresetId,clients:z(c.clients),protocol:xe(l,s.protocol,c.protocols)}}async ensureAdapterConfig(e){this.configStore.getAdapterConfig(e.name)||await this.configStore.setAdapterConfig(e.name,{displayName:e.displayName,description:e.description,helpLinks:e.helpLinks?.map(e=>({...e})),instructions:e.instructions,clientId:B(e.options,e.clients),protocol:e.protocol,providerDefinitionIds:e.providers.map(e=>e.definition.id),enabled:!1})}async onPackageStopped(e){await this.registry.deregisterPackage(e)}publishAdapterRegistered(e){let t=this.configStore.isAdapterEnabled(e.name),n=e.options.adapterId??b(this.machineId,e.name),r=e.providers.map(e=>e.definition.id);return this.registry.publishAdapterRegistered({adapterName:e.name,displayName:e.displayName,packageName:e.packageName,enabled:t,adapterId:n,providerDefinitionIds:r})}async publishActivatedAdapters(e){for(let t of e)try{await this.publishAdapterRegistered(t)}catch(e){console.error(`[AdapterContributionProcessor] Failed to publish adapter "${t.name}" registration:`,e)}}};const J=-100;function Ce(e,t){let n=e.on(x.get,e=>{let n=Y(t()).get(e.payload.id)??null;e.setResult({provider:n})},{priority:J}),r=e.on(x.list,e=>{e.setResult({providers:[...Y(t()).values()]})},{priority:J}),i=e.on(x.listByProtocol,e=>{let n=[...Y(t()).values()].filter(t=>t.endpoints!==void 0&&e.payload.protocol in t.endpoints);e.setResult({providers:n})},{priority:J});return()=>{n(),r(),i()}}function Y(e){let t=new Map;for(let n of e)for(let e of n.providers){let n=s.parse(e.definition);t.has(n.id)||t.set(n.id,{id:n.id,packageName:e.providerPackageName,name:n.name,...n.description===void 0?{}:{description:n.description},...n.endpoints===void 0?{}:{endpoints:n.endpoints},...n.defaultModel===void 0?{}:{defaultModel:n.defaultModel},...n.fastModel===void 0?{}:{fastModel:n.fastModel},availableModels:n.availableModels,defaultModelFilterMode:n.defaultModelFilterMode??`show-all`,...n.credentialEnvVars===void 0?{}:{credentialEnvVars:n.credentialEnvVars},...n.capabilities===void 0?{}:{capabilities:n.capabilities},enabled:!0,createdAt:0,updatedAt:0})}return t}var X=class extends d{configStore;registry;providerConfigService;bindingService;contributionProcessor;constructor(e){super(e.bus),this.configStore=new R({configRepository:e.configRepository,bus:e.bus}),this.registry=new _e({bus:e.bus,machineId:e.machineId}),this.providerConfigService=new ve({configStore:this.configStore,bus:e.bus}),this.bindingService=new ye({configStore:this.configStore,bus:e.bus}),this.contributionProcessor=new Se({configStore:this.configStore,registry:this.registry,coordinator:e.coordinator,machineId:e.machineId,platformDefaults:e.platformDefaults})}async onInit(){await this.configStore.loadSnapshot(),this.configStore.registerListeners(e=>this.addCleanup(e)),this.registerBusHandlers(),await this.bus.emit(S.ready,{})}registerBusHandlers(){this.addCleanup(Ce(this.bus,()=>this.registry.getLoadedAdapters())),this.registerReadHandlers(),this.registerMutationHandlers()}registerReadHandlers(){this.registerHandler(S.getAdapterConfig,e=>{e.setResult({config:this.configStore.getAdapterConfig(e.payload.name)})}),this.registerHandler(S.listAdapterConfigs,e=>{e.setResult({configs:this.configStore.listAdapterConfigs()})}),this.registerHandler(S.getProviderConfig,e=>{e.setResult({config:this.configStore.getProviderConfig(e.payload.id)})}),this.registerHandler(S.listProviderConfigs,e=>{e.setResult({configs:this.configStore.listProviderConfigs(e.payload.enabled)})}),this.registerHandler(S.listProviderConfigsByDefinition,e=>{e.setResult({configs:this.configStore.listProviderConfigsByDefinition(e.payload.definitionId)})}),this.registerHandler(S.listBindings,e=>{e.setResult({bindings:this.configStore.listBindings(e.payload.adapterName)})}),this.registerHandler(S.listBindingsByConfig,e=>{e.setResult({bindings:this.configStore.listBindingsByConfig(e.payload.providerConfigId)})}),this.registerHandler(S.getDefaultBinding,e=>{e.setResult({binding:this.configStore.getDefaultBinding(e.payload.adapterName)})}),this.registerHandler(S.findConfigForDefinitionAndAdapter,e=>{e.setResult({config:this.configStore.findConfigForDefinitionAndAdapter(e.payload.definitionId,e.payload.adapterName)})}),this.registerHandler(S.buildProviderContext,async e=>{e.setResult({context:await this.configStore.buildProviderContext(e.payload.providerConfigId)})}),this.registerHandler(S.listAdapters,async e=>{e.setResult({adapters:await this.configStore.buildEffectiveAdapters()})}),this.registerHandler(S.getProviderDefinitionsByAdapter,e=>{let t=(this.registry.getLoadedAdapters().find(t=>t.name===e.payload.adapterName)?.providers??[]).map(e=>s.parse(e.definition));e.setResult({definitions:t})}),this.registerHandler(S.ensureReady,e=>{e.setResult({ready:!0})})}registerMutationHandlers(){this.registerHandler(S.createProviderConfig,async e=>{e.setResult(await this.providerConfigService.createProviderConfig(e.payload))}),this.registerHandler(S.updateProviderConfig,async e=>{e.setResult(await this.providerConfigService.updateProviderConfig(e.payload.id,e.payload.patch))}),this.registerHandler(S.setProviderConfigCredentialRefs,async e=>{e.setResult(await this.providerConfigService.setProviderConfigCredentialRefs(e.payload.id,e.payload.credentialRefs))}),this.registerHandler(S.deleteProviderConfig,async e=>{e.setResult(await this.providerConfigService.deleteProviderConfig(e.payload.id))}),this.registerHandler(S.setDefaultProviderConfig,async e=>{e.setResult(await this.providerConfigService.setDefaultProviderConfig(e.payload.id))}),this.registerHandler(S.setModelFilterMode,async e=>{e.setResult(await this.providerConfigService.setModelFilterMode(e.payload.id,e.payload.modelFilterMode,e.payload.preferredModel))}),this.registerHandler(S.setAdapterConfig,async e=>{e.setResult(await this.configStore.setAdapterConfig(e.payload.name,e.payload.patch))}),this.registerHandler(S.setAdapterEnabled,async e=>{await this.configStore.setAdapterEnabled(e.payload.name,e.payload.enabled),e.setResult({success:!0})}),this.registerHandler(S.bind,async e=>{e.setResult({binding:await this.bindingService.bind(e.payload.adapterName,e.payload.providerConfigId)})}),this.registerHandler(S.unbind,async e=>{await this.bindingService.unbind(e.payload.adapterName,e.payload.providerConfigId),e.setResult({})}),this.registerHandler(S.setDefaultBinding,async e=>{await this.bindingService.setDefaultBinding(e.payload.adapterName,e.payload.providerConfigId),e.setResult({})})}async onDestroy(){await this.registry.shutdownAll(),this.configStore.clear()}getLoadedAdapters(){return this.registry.getLoadedAdapters()}getAdapterInstances(){return this.registry.getAdapterInstances()}getSettingsAvailableAdapters(){return this.registry.getSettingsAvailableAdapters()}async processAdapterContributions(e,t,n){await this.contributionProcessor.onPackageActivated(e,t,n)}async stopAdapterContributions(e){await this.contributionProcessor.onPackageStopped(e)}};const Z=`.json`;var we=class{providerConfigsDir;adaptersDir;constructor(e){this.providerConfigsDir=e.providerConfigsDir,this.adaptersDir=e.adaptersDir}async loadAdapterConfigs(){let e=new Map,t=await this.readJsonFiles(this.adaptersDir,`adapter`);for(let n of t){let t=this.getCanonicalLoadedStem(n.stem,`adapter`,n.filePath);if(!t)continue;let r=p.safeParse(n.jsonData);if(!r.success){this.warnInvalidFile(`adapter`,n.filePath);continue}e.set(t,r.data)}return{configs:e}}async loadProviderConfigs(){let e=new Map,t=await this.readJsonFiles(this.providerConfigsDir,`provider config`);for(let n of t){let t=this.getCanonicalLoadedStem(n.stem,`provider config`,n.filePath);if(!t)continue;let r=h.safeParse(n.jsonData);if(!r.success){this.warnInvalidFile(`provider config`,n.filePath);continue}e.set(t,r.data)}return{configs:e}}async writeProviderConfig(e,n){let r=this.assertCanonicalFileStem(e,`provider config id`),i=h.parse(n);await this.writeJsonFile(t.join(this.providerConfigsDir,`${r}${Z}`),i)}async deleteProviderConfig(e){let n=this.assertCanonicalFileStem(e,`provider config id`);try{return await this.unlinkFile(t.join(this.providerConfigsDir,`${n}${Z}`)),!0}catch(e){if(e.code===`ENOENT`)return!1;throw e}}async writeAdapterFile(e,n){let r=this.assertCanonicalFileStem(e,`adapter name`),i=p.parse(n);await this.writeJsonFile(t.join(this.adaptersDir,`${r}${Z}`),i)}async deleteAdapterFile(e){let n=this.assertCanonicalFileStem(e,`adapter name`);try{return await this.unlinkFile(t.join(this.adaptersDir,`${n}${Z}`)),!0}catch(e){if(e.code===`ENOENT`)return!1;throw e}}async readJsonFiles(n,r){try{let i=(await e.readdir(n,{withFileTypes:!0})).filter(e=>e.isFile()&&t.extname(e.name)===Z).sort((e,t)=>e.name.localeCompare(t.name));return(await Promise.all(i.map(async i=>{let a=t.join(n,i.name);try{let n=await e.readFile(a,`utf-8`);return{filePath:a,stem:t.parse(i.name).name,jsonData:JSON.parse(n)}}catch(e){if(e instanceof SyntaxError||e instanceof Error&&e.code===`ENOENT`)return this.warnInvalidFile(r,a),null;throw e}}))).filter(e=>e!==null)}catch(e){if(e.code===`ENOENT`)return[];throw e}}warnInvalidFile(e,t){console.warn(`[FileAdapterConfigRepository] Skipping invalid %s file: %s`,e,t)}getCanonicalLoadedStem(e,t,n){try{return this.assertCanonicalFileStem(e,`${t} file stem`)}catch{return this.warnInvalidFile(t,n),null}}async writeJsonFile(r,i){let a=t.dirname(r),o=t.join(a,`.${t.basename(r)}.${n()}.tmp`);await e.mkdir(a,{recursive:!0});try{await e.writeFile(o,`${JSON.stringify(i,null,2)}\n`,{encoding:`utf-8`,mode:384}),await this.replaceFile(o,r)}catch(e){throw await this.removeFileIfPresent(o),e}}async replaceFile(e,t){try{await this.renameFile(e,t);return}catch(e){let t=e;if(![`EEXIST`,`EPERM`,`EACCES`].includes(t.code??``))throw e}let r=`${t}.${n()}.bak`,i=!1;try{await this.renameFile(t,r),i=!0}catch(e){if(e.code!==`ENOENT`)throw e}try{await this.renameFile(e,t)}catch(e){throw i&&await this.renameFile(r,t).catch(()=>void 0),e}i&&await this.removeFileIfPresent(r)}async renameFile(t,n){await e.rename(t,n)}async unlinkFile(t){await e.unlink(t)}async removeFileIfPresent(t){try{await e.unlink(t)}catch(e){e.code!==`ENOENT`&&console.warn(`[FileAdapterConfigRepository] Failed to remove temp file: %s`,t,e)}}assertCanonicalFileStem(e,n){let r=e.trim(),i=t.basename(r);if(!r||e!==r||r!==i||!/^[a-z0-9._-]+$/.test(r)||r.includes(`/`)||r.includes(`\\`)||r.toLowerCase().endsWith(`.json`)||r===`.`||r===`..`)throw Error(`Invalid canonical ${n}: ${e}`);return r}};function Q(e){return{filter:e=>!!e.adapters?.length,async processActivated(t,n,r){let i=e.getAdapterSubsystemService();if(!i)throw Error(`AdapterSubsystemService is not available. Ensure the adapter subsystem package starts before adapter-contributing packages.`);await i.processAdapterContributions(t,n,r)},async processStopped(t){let n=e.getAdapterSubsystemService();n&&await n.stopAdapterContributions(t)}}}const $=c(`adapter-subsystem`);function Te(e){return{name:$.name,displayName:`Adapter Subsystem`,version:`0.1.0`,provides:[`adapters`],critical:!0,create:t=>new X({bus:t.bus,configRepository:e.configRepository,coordinator:e.coordinator,machineId:t.machineId,platformDefaults:e.platformDefaults})}}export{X as AdapterSubsystemService,$ as AdapterSubsystemToken,we as FileAdapterConfigRepository,Q as createAdapterSubsystemContributionProcessor,Te as createAdapterSubsystemPackage,ge as ensureAdapterConfigs,fe as extractAdapterIdFromPackageName,G as initializeEnabledAdapters,W as shutdownAdapterInstances,U as toAvailableAdapter};
|
|
1
|
+
import*as e from"node:fs/promises";import*as t from"node:path";import{randomUUID as n}from"node:crypto";import{MakaioBus as r}from"@makaio/framework/bus";import{AdapterSubjects as i,CapabilitySubjects as a,CredentialSubjects as o,ProviderDefinitionSchema as s,extensionToken as c,isUniversalRange as l,versionSatisfies as u}from"@makaio/framework/contracts";import{BaseService as d}from"@makaio/framework/service-base";import{ADAPTER_FILE_SCHEMA_VERSION as f,AdapterFileSchema as p,PROVIDER_CONFIG_SCHEMA_VERSION as m,ProviderConfigFileSchema as h,brandCredentialRecord as g,isAccountManagerRef as _,resolveCanonicalProviderConfigName as ee,slugifyProviderConfigName as v}from"@makaio/framework/contracts/config";import{resolveModelVisibility as y}from"@makaio/framework/contracts/provider";import{buildDeterministicAdapterId as b}from"@makaio/framework/services/adapter-runtime";import{ClientSubjects as te}from"@makaio/framework/contracts/client";import{ProviderStorageSubjects as x}from"@makaio/framework/services/settings/storage";import{AdapterSubsystemSubjects as S}from"@makaio/framework/services/adapter-subsystem";import{ExtensionSubjects as C}from"@makaio/framework/kernel";import{ModelRegistryProviderNotFoundError as w,ModelRegistrySubjects as T}from"@makaio/framework/services/model-registry";function E(e){return e?{...e}:void 0}function D(e){return e?{...e}:void 0}function ne(e){return e?structuredClone(e):void 0}function re(e,t){let n=[];for(let[r,i]of t.providerConfigs){let t=e.providerConfigs.get(r);t!==i&&n.push({kind:`write-provider`,key:`provider:${r}`,id:r,next:i,previous:t})}for(let[r,i]of t.adapters){let t=e.adapters.get(r);t!==i&&n.push({kind:`write-adapter`,key:`adapter:${r}`,name:r,next:i,previous:t})}for(let[r,i]of e.providerConfigs)t.providerConfigs.has(r)||n.push({kind:`delete-provider`,key:`provider-delete:${r}`,id:r,previous:i});return n}async function ie(e,t){switch(t.kind){case`write-provider`:await e.writeProviderConfig(t.id,t.next);return;case`write-adapter`:await e.writeAdapterFile(t.name,t.next);return;case`delete-provider`:if(!await e.deleteProviderConfig(t.id))throw Error(`Provider config file missing during delete: ${t.id}`);return}}async function ae(e,t){switch(t.kind){case`write-provider`:if(t.previous){await e.writeProviderConfig(t.id,t.previous);return}await e.deleteProviderConfig(t.id);return;case`write-adapter`:if(t.previous){await e.writeAdapterFile(t.name,t.previous);return}await e.deleteAdapterFile(t.name);return;case`delete-provider`:await e.writeProviderConfig(t.id,t.previous);return}}async function oe(e,t,n){let r=re(t,n);if(r.length===0)return;let i=[];try{for(let t of r)i.push(t),await ie(e,t)}catch(t){try{await se(e,i)}catch(e){throw AggregateError([t,e],`Adapter subsystem snapshot commit failed and rollback could not restore the previous state.`,{cause:e})}throw t}}async function se(e,t){let n=[];for(let r of[...t].reverse())try{await ae(e,r)}catch(e){n.push(e instanceof Error?Error(`[${r.key}] ${e.message}`,{cause:e}):Error(`[${r.key}] ${String(e)}`))}if(n.length>0)throw AggregateError(n,`Snapshot rollback failed.`)}function ce(e,t){let n=t.credentials!==void 0&&Object.keys(t.credentials).length>0,r=ue(t.credentials);return{id:e,definitionId:t.definitionId,name:t.name??t.definitionId,...t.endpointOverrides?{endpointOverrides:{...t.endpointOverrides}}:{},...t.modelVisibility?{modelVisibility:{...t.modelVisibility}}:{},modelFilterMode:t.modelFilterMode??`show-all`,isDefault:t.isDefault??!1,enabled:t.enabled??!0,isSentinel:t.isSentinel??!1,hasCredentials:n,...r?{sourceRef:r}:{}}}function O(e,t){return(t??[]).map(t=>({adapterName:e,providerConfigId:t.providerConfigId,isDefault:t.isDefault??!1}))}function le(e,t,n){return{name:e,enabled:t.enabled??!0,...t.displayName===void 0?{}:{displayName:t.displayName},...t.description===void 0?{}:{description:t.description},...t.helpLinks===void 0?{}:{helpLinks:t.helpLinks.map(e=>({...e}))},...t.instructions===void 0?{}:{instructions:t.instructions},...t.clientId===void 0?{}:{clientId:t.clientId},...t.protocol===void 0?{}:{protocol:t.protocol},...t.providerDefinitionIds===void 0?{}:{providerDefinitionIds:[...t.providerDefinitionIds]},...t.settings?{settings:structuredClone(t.settings)}:{},bindings:n.map(e=>({...e}))}}function ue(e){if(e){for(let t of Object.values(e))if(_(t))return t}}function de(e,t){let n=[],r=new Set;for(let i of e){let e=t.get(i.providerConfigId);!e||r.has(e.definitionId)||(r.add(e.definitionId),n.push(e.definitionId))}return n}function k(e){let t=new Map,n=new Map,r=new Map;for(let[i,a]of e.providerConfigs){let e=ce(i,a);t.set(i,e),n.set(v(e.name),i);let o=r.get(e.definitionId)??[];o.push(i),r.set(e.definitionId,o)}let i=new Map,a=new Map,o=new Map,s=new Map;for(let[n,r]of e.adapters){let e=O(n,r.bindings),c=le(n,r,e),l=e.filter(e=>t.get(e.providerConfigId)?.enabled);i.set(n,c),a.set(n,e),s.set(n,l.find(e=>e.isDefault)??l[0]??null);for(let t of e){let e=o.get(t.providerConfigId)??[];e.push(t),o.set(t.providerConfigId,e)}}return{providerConfigRecords:t,providerConfigSlugToId:n,providerConfigIdsByDefinition:r,adapterRecords:i,bindingsByAdapter:a,bindingsByConfig:o,defaultBindingByAdapter:s,adapterNames:new Set(i.keys())}}function A(e,t){return e.get(t)?.enabled??!1}function j(e,t){return e.some(e=>A(t,e.providerConfigId))}function M(e,t){let n=e.find(e=>A(t,e.providerConfigId));return{bindings:e.map(e=>({...e,isDefault:e.providerConfigId===n?.providerConfigId})),...n?{promoted:{...n,isDefault:!0}}:{}}}function N(e,t,n){let r=[...n.entries()].filter(([n,r])=>n!==t&&r.definitionId===e).map(([e,t])=>({id:e,config:t})),i=r.find(({id:e})=>A(n,e))?.id??null;for(let{id:e,config:t}of r)n.set(e,{...t,isDefault:i!==null&&e===i});return i}async function P(e,t,n){let{provider:r}=await e.request(x.get,{id:n.definitionId});if(!r)throw Error(`ProviderDefinition '${n.definitionId}' not found for config '${t}'`);let i=await F(e,r),a={...r.endpoints??{},...n.endpointOverrides??{}},o=I(i);return{providerConfigId:t,definitionId:r.id,...Object.keys(a).length>0?{endpointOverrides:a}:{},credentialRefs:g(n.credentials)??{},...r.credentialEnvVars?{credentialEnvVars:{...r.credentialEnvVars}}:{},...o.length>0?{ambientCredentialEnvVars:o}:{},...r.capabilities?{capabilities:r.capabilities}:{}}}async function F(e,t){try{let n=await e.requestOptional(x.list,{});if(!n.handled)return[t];let r=n.data.providers;return r.some(e=>e.id===t.id)?r:[t,...r]}catch(e){return console.debug(`[AdapterSubsystem] Provider list unavailable for ambient credential discovery`,e),[t]}}function I(e){return[...new Set(e.flatMap(e=>e.credentialEnvVars?Object.values(e.credentialEnvVars):[]))]}var L=class{tail=Promise.resolve();async run(e){let t=this.tail.then(e,e);return this.tail=t.then(()=>void 0,()=>void 0),await t}},R=class{configRepository;bus;snapshot={providerConfigs:new Map,adapters:new Map};providerConfigRecords=new Map;providerConfigSlugToId=new Map;adapterRecords=new Map;bindingsByAdapter=new Map;bindingsByConfig=new Map;defaultBindingByAdapter=new Map;providerConfigIdsByDefinition=new Map;knownAdapterNames=new Set;logImportProviderKeysPromise=null;snapshotMutationQueue=new L;constructor(e){this.configRepository=e.configRepository,this.bus=e.bus}async loadSnapshot(){let[e,t]=await Promise.all([this.configRepository.loadProviderConfigs(),this.configRepository.loadAdapterConfigs()]);this.replaceSnapshot({providerConfigs:new Map(e.configs),adapters:new Map(t.configs)})}registerListeners(e){let t=()=>{this.logImportProviderKeysPromise=null};e(this.bus.on(a.register,t,{filter:{capabilityId:`log-import`}})),e(this.bus.on(a.unregister,t,{filter:{capabilityId:`log-import`}}))}clear(){this.snapshot={providerConfigs:new Map,adapters:new Map},this.providerConfigRecords.clear(),this.providerConfigSlugToId.clear(),this.adapterRecords.clear(),this.bindingsByAdapter.clear(),this.bindingsByConfig.clear(),this.defaultBindingByAdapter.clear(),this.providerConfigIdsByDefinition.clear(),this.knownAdapterNames.clear(),this.logImportProviderKeysPromise=null}replaceSnapshot(e){this.snapshot=e,this.applyDerivedState()}cloneSnapshot(){return{providerConfigs:new Map(this.snapshot.providerConfigs),adapters:new Map(this.snapshot.adapters)}}async commitSnapshotMutation(e,t){return await this.snapshotMutationQueue.run(async()=>{let n=this.cloneSnapshot();return await e(n),await this.commitSnapshot(n),await t?.()})}async commitSnapshot(e){await oe(this.configRepository,this.snapshot,e),this.replaceSnapshot(e)}applyDerivedState(){let e=k(this.snapshot);this.providerConfigRecords=e.providerConfigRecords,this.providerConfigSlugToId=e.providerConfigSlugToId,this.providerConfigIdsByDefinition=e.providerConfigIdsByDefinition,this.adapterRecords=e.adapterRecords,this.bindingsByAdapter=e.bindingsByAdapter,this.bindingsByConfig=e.bindingsByConfig,this.defaultBindingByAdapter=e.defaultBindingByAdapter,(e.adapterNames.size!==this.knownAdapterNames.size||[...e.adapterNames].some(e=>!this.knownAdapterNames.has(e)))&&(this.knownAdapterNames=e.adapterNames,this.logImportProviderKeysPromise=null)}getProviderConfig(e){let t=this.providerConfigRecords.get(e);return t?structuredClone(t):null}requireProviderConfig(e,t){let n=this.getProviderConfig(e);if(!n)throw Error(`Provider config could not be loaded after ${t}: ${e}`);return n}getAdapterConfig(e){let t=this.adapterRecords.get(e);return t?structuredClone(t):null}requireAdapterConfig(e,t){let n=this.getAdapterConfig(e);if(!n)throw Error(`Adapter config could not be loaded after ${t}: ${e}`);return n}isAdapterEnabled(e){return this.getAdapterConfig(e)?.enabled??!1}listProviderConfigs(e){let t=[...this.providerConfigRecords.values()].map(e=>structuredClone(e));return e===void 0?t:t.filter(t=>t.enabled===e)}listProviderConfigsByDefinition(e){return this.getProviderConfigIdsByDefinition(e).map(e=>this.getProviderConfig(e)).filter(e=>e!==null)}listAdapterConfigs(){return[...this.adapterRecords.values()].map(e=>structuredClone(e))}listBindings(e){return structuredClone(this.bindingsByAdapter.get(e)??[])}listBindingsByConfig(e){return structuredClone(this.bindingsByConfig.get(e)??[])}getDefaultBinding(e){let t=this.defaultBindingByAdapter.get(e)??null;return t?structuredClone(t):null}findConfigForDefinitionAndAdapter(e,t){let n=new Set((this.bindingsByAdapter.get(t)??[]).map(e=>e.providerConfigId)),r=this.getProviderConfigIdsByDefinition(e).map(e=>this.providerConfigRecords.get(e)).filter(e=>e!==void 0&&e.enabled&&n.has(e.id)),i=r.find(e=>e.isDefault)??r[0]??null;return i?structuredClone(i):null}getRawProviderConfig(e){return this.snapshot.providerConfigs.get(e)}getProviderConfigIdsByDefinition(e){return[...this.providerConfigIdsByDefinition.get(e)??[]]}assertProviderConfigNameUnique(e,t){let n=v(e),r=this.providerConfigSlugToId.get(n);if(r!==void 0&&r!==t){let t=this.providerConfigRecords.get(r)?.name??r;throw Error(`Provider config name "${e}" conflicts with existing config "${t}": both slugify to "${n}". Choose a different name.`)}}async setAdapterConfig(e,t){return{config:await this.commitSnapshotMutation(n=>{let r=n.adapters.get(e);n.adapters.set(e,this.buildNextAdapterFile(r,t))},()=>this.requireAdapterConfig(e,`update`))}}buildNextAdapterFile(e,t){return{...e??{},$schema:f,...this.applyAdapterPatch(e,t),bindings:e?.bindings}}applyAdapterPatch(e,t){let n=e??{},r=t.helpLinks?.map(e=>({...e}))??n.helpLinks,i=t.providerDefinitionIds?[...t.providerDefinitionIds]:n.providerDefinitionIds;return{enabled:t.enabled??n.enabled??!0,displayName:t.displayName??n.displayName,description:t.description??n.description,helpLinks:r,instructions:t.instructions??n.instructions,clientId:t.clientId??n.clientId,protocol:t.protocol??n.protocol,providerDefinitionIds:i,settings:t.settings===void 0?n.settings:ne(t.settings)}}async setAdapterEnabled(e,t){await this.setAdapterConfig(e,{enabled:t})}async buildEffectiveAdapters(){let e=await this.getLogImportProviderKeys();return[...this.adapterRecords.values()].map(t=>{let n=this.bindingsByAdapter.get(t.name)??[],r=n.filter(e=>this.providerConfigRecords.get(e.providerConfigId)?.enabled),i=[...t.providerDefinitionIds??de(n,this.providerConfigRecords)];return{name:t.name,displayName:t.displayName??t.name,...t.description===void 0?{}:{description:t.description},enabled:t.enabled,configCount:n.length,readiness:r.length>0?`ready`:`needs-setup`,supportsLogImport:e.has(t.name),...t.helpLinks===void 0?{}:{helpLinks:t.helpLinks.map(e=>({...e}))},...t.instructions===void 0?{}:{instructions:t.instructions},...t.clientId===void 0?{}:{clientId:t.clientId},...t.protocol===void 0?{}:{protocol:t.protocol},...t.providerDefinitionIds!==void 0||i.length>0?{providerDefinitionIds:i}:{}}})}async getLogImportProviderKeys(){if(!this.logImportProviderKeysPromise){let e=this.bus.requestOptional(a.listProviders,{capabilityId:`log-import`}).then(t=>t.handled?new Set(t.data.providers.map(e=>e.providerKey??e.id)):(this.logImportProviderKeysPromise===e&&(this.logImportProviderKeysPromise=null),new Set)).catch(e=>{throw this.logImportProviderKeysPromise=null,e});this.logImportProviderKeysPromise=e}return await this.logImportProviderKeysPromise}async buildProviderContext(e){let t=this.snapshot.providerConfigs.get(e);return t?P(this.bus,e,t):null}removeBindingsForConfig(e,t,n){let r=new Map,i=[],a=[];for(let[o,s]of t){let t=O(o,s.bindings),c=t.findIndex(t=>t.providerConfigId===e);if(c===-1)continue;let[l]=t.splice(c,1);if(l&&i.push(l),l?.isDefault&&t.length>0){let e=M(t,n);t.splice(0,t.length,...e.bindings),e.promoted&&a.push({adapterName:o,providerConfigId:e.promoted.providerConfigId})}r.set(o,{...s,bindings:t.map(({adapterName:e,...t})=>t)})}return{changedAdapters:r,deletedBindings:i,defaultChangedBindings:a}}promoteProviderConfigDefault(e,t,n){return N(e,t,n)}};const z=process.env.MAKAIO_SKIP_CLIENT_VERSION_CHECK===`1`;function B(e){if(!(e===void 0||e.length===0))return e.map(e=>({...e}))}function V(e,t){return e.clientId!==void 0&&t?.some(t=>t.id===e.clientId)?e.clientId:t?.[0]?.id}async function H(e,t,n,r,i={}){if(t===void 0||t.length===0)return;let a=new Map(n.map(e=>[e.definition.id,e.definition]));for(let n of t){let t=a.get(n.id);if(t===void 0)throw Error(`Adapter "${e}" references missing client "${n.id}"`);fe(t.version,n.version,`Adapter "${e}" client "${n.id}" definition version ${t.version}`)}if(i.checkBinaryVersions===!1)return;let o=t.filter(e=>e.binaryVersion!==void 0);await Promise.all(o.map(async t=>{if(l(t.binaryVersion))return;let n=await r.requestOptional(te.resolveBinary,{clientId:t.id});if(!n.handled){if(z){console.warn(`[SKIP_VERSION_CHECK] Adapter "${e}" client "${t.id}" declares binaryVersion ${t.binaryVersion}, but no client.resolveBinary handler is registered — check bypassed`);return}throw Error(`Adapter "${e}" client "${t.id}" declares binaryVersion ${t.binaryVersion}, but no client.resolveBinary handler is registered`)}let i=n.data.version;if(i===null){if(z){console.warn(`[SKIP_VERSION_CHECK] Adapter "${e}" client "${t.id}" binary did not report a version; requires ${t.binaryVersion} — check bypassed`);return}throw Error(`Adapter "${e}" client "${t.id}" binary did not report a version; requires ${t.binaryVersion}`)}if(!u(i,t.binaryVersion)){let n=`Adapter "${e}" client "${t.id}" binary version ${i}`;if(z){console.warn(`[SKIP_VERSION_CHECK] ${n} does not satisfy ${t.binaryVersion} — check bypassed`);return}throw Error(`${n} does not satisfy ${t.binaryVersion}`)}}))}function fe(e,t,n){if(!u(e,t))throw Error(`${n} does not satisfy ${t}`)}function pe(e){let t=e.split(`/`).pop()?.replace(/^ai-adapters-/,``)?.trim();return t&&t.length>0?t:e}function U(e){let t=V(e.options,e.clients);return{name:e.name,displayName:e.displayName??e.name,description:e.description,helpLinks:e.helpLinks?.map(e=>({...e})),instructions:e.instructions,clientId:t,protocol:e.protocol,providerDefinitionIds:e.providers.map(e=>e.definition.id)}}async function W(e){for(let[t,n]of e){let e=n;if(typeof e.shutdown==`function`)try{await e.shutdown()}catch(e){console.error(`[adapter-runtime] Error shutting down adapter ${t}:`,e)}}e.clear()}async function me(e,t,n){try{let e=t;typeof e.shutdown==`function`&&await e.shutdown()}finally{n.delete(e)}}async function he(e,t){let{config:n}=await e.request(S.getAdapterConfig,{name:t});return n?.enabled??!1}function ge(e,t){return e.options.adapterId??b(t,e.name)}async function G(e,t,n,r,a){let o=[];for(let s of n)try{if(!await he(e,s.name)){console.info(`Skipping disabled adapter: ${s.name}`);continue}let n=ge(s,t),o=V(s.options,s.clients),c=await s.factory({...s.options,adapterId:n,platformDefaults:a,definitionProviders:s.providers,clientId:o});if(c.adapterId!==n)throw Error(`Adapter '${s.name}' initialized with mismatched adapterId (expected '${n}', got '${c.adapterId}')`);r.set(n,c);let l=c;try{await e.emit(i.initialized,{adapterId:n,adapterName:s.name,capabilities:[...l.capabilities??[]],...l.nativeTools===void 0?{}:{nativeTools:[...l.nativeTools]}})}catch(e){try{await me(n,c,r)}catch(e){console.error(`[adapter-runtime] Error rolling back adapter ${s.name}:`,e)}throw e}console.info(`Initialized adapter: ${s.name} (${s.packageName})`)}catch(e){o.push({adapterName:s.name,error:e})}if(o.length>0){let e=o.map(({adapterName:e,error:t})=>`${e}: ${t instanceof Error?t.message:String(t)}`).join(`; `);throw Error(`Failed to initialize enabled adapters: ${e}`)}}async function _e(e,t){await t.request(S.ensureReady,{});let n=await Promise.all(e.map(async e=>({adapter:e,config:(await t.request(S.getAdapterConfig,{name:e.name})).config})));await Promise.all(n.filter(({config:e})=>!e).map(({adapter:e})=>t.request(S.setAdapterConfig,{name:e.name,patch:{displayName:e.displayName,description:e.description,helpLinks:e.helpLinks?.map(e=>({...e})),instructions:e.instructions,clientId:V(e.options,e.clients),protocol:e.protocol,providerDefinitionIds:e.providers.map(e=>e.definition.id),enabled:!1}})))}var ve=class{bus;machineId;loadedAdapters=new Map;adapterInstances=new Map;packageAdapters=new Map;publicationChain=Promise.resolve();constructor(e){this.bus=e.bus,this.machineId=e.machineId}getLoadedAdapters(){return[...this.loadedAdapters.values()]}getAdapterInstances(){return this.adapterInstances}getSettingsAvailableAdapters(){return[...this.loadedAdapters.values()].map(U)}registerAdapter(e,t){let n=this.loadedAdapters.get(e.name);if(n)throw Error(`Duplicate adapter name '${e.name}' from owners '${n.packageName}' and '${t}'.`);this.loadedAdapters.set(e.name,e);let r=this.packageAdapters.get(t)??[];this.packageAdapters.set(t,[...r,e.name])}async deregisterAdapter(e){let t=this.loadedAdapters.get(e);if(t){let n=t.options.adapterId??b(this.machineId,e),r=this.adapterInstances.get(n);if(r){let e=r;typeof e.shutdown==`function`&&await e.shutdown(),this.adapterInstances.delete(n)}}this.loadedAdapters.delete(e)}removePackageTracking(e){this.packageAdapters.delete(e)}async deregisterPackage(e){let t=this.packageAdapters.get(e);if(t?.length){for(let e of t)try{await this.deregisterAdapter(e)}catch(t){console.error(`[AdapterRuntimeRegistry] Error shutting down adapter "${e}":`,t)}this.packageAdapters.delete(e)}}publishAdapterRegistered(e){let{adapterName:t,displayName:n,packageName:r,enabled:i,adapterId:a,providerDefinitionIds:o}=e,s=this.adapterInstances.has(a),c=this.publicationChain.catch(()=>void 0).then(()=>this.bus.emit(S.adapter.registered,{adapterName:t,displayName:n??t,packageName:r,enabled:i,initialized:s,providerDefinitionIds:[...o]}));return this.publicationChain=c.catch(()=>void 0),c}async initializeAdapter(e,t){await G(this.bus,this.machineId,[e],this.adapterInstances,t)}async shutdownAll(){await W(this.adapterInstances),this.loadedAdapters.clear(),this.packageAdapters.clear()}},ye=class{configStore;bus;constructor(e){this.configStore=e.configStore,this.bus=e.bus}async createProviderConfig(e){let t=await this.resolveProviderConfigName(e.definitionId,e.name),n=v(t),r=this.cloneCreateCredentialRefs(e),i=E(e.endpointOverrides),a=D(e.modelVisibility),o=await this.configStore.commitSnapshotMutation(o=>{if(this.configStore.assertProviderConfigNameUnique(t),o.providerConfigs.has(n))throw Error(`Provider config already exists: ${n}`);o.providerConfigs.set(n,{$schema:m,definitionId:e.definitionId,name:t,credentials:r,endpointOverrides:i,modelVisibility:a,modelFilterMode:e.modelFilterMode??`show-all`,isDefault:![...o.providerConfigs.values()].some(t=>t.definitionId===e.definitionId),enabled:!0,isSentinel:e.isSentinel??!1})},()=>this.configStore.requireProviderConfig(n,`creation`));return await this.bus.emit(S.providerConfig.created,o),{config:o}}async updateProviderConfig(e,t){let n=await this.configStore.commitSnapshotMutation(n=>{let r=n.providerConfigs.get(e);if(!r)throw Error(`Provider config not found: ${e}`);let i=t.name??r.name??r.definitionId;t.name!==void 0&&this.configStore.assertProviderConfigNameUnique(i,e),n.providerConfigs.set(e,{...r,name:i,endpointOverrides:t.endpointOverrides===null?void 0:t.endpointOverrides===void 0?r.endpointOverrides:E(t.endpointOverrides),modelVisibility:t.modelVisibility===void 0?r.modelVisibility:D(t.modelVisibility),enabled:t.enabled??r.enabled})},()=>this.configStore.requireProviderConfig(e,`update`));return await this.bus.emit(S.providerConfig.updated,n),{config:n}}async setProviderConfigCredentialRefs(e,t){let n=this.normalizeCredentialRefs(t),r=await this.configStore.commitSnapshotMutation(t=>{let r=t.providerConfigs.get(e);if(!r)throw Error(`Provider config not found: ${e}`);t.providerConfigs.set(e,{...r,credentials:n})},()=>this.configStore.requireProviderConfig(e,`credential update`));return await this.bus.emit(S.providerConfig.updated,r),{config:r}}async deleteProviderConfig(e){let t=!1,n,r=``,i=!1,a=null,o={changedAdapters:new Map,deletedBindings:[],defaultChangedBindings:[]},s=await this.configStore.commitSnapshotMutation(s=>{let c=s.providerConfigs.get(e);if(c){if(c.isSentinel){c.enabled&&(s.providerConfigs.set(e,{...c,enabled:!1}),n=e);return}o=this.configStore.removeBindingsForConfig(e,s.adapters,s.providerConfigs),i=c.isDefault??!1,r=c.definitionId,t=!0,s.providerConfigs.delete(e),a=i?this.configStore.promoteProviderConfigDefault(c.definitionId,e,s.providerConfigs):null;for(let[e,t]of o.changedAdapters)s.adapters.set(e,t)}},()=>n?this.configStore.requireProviderConfig(e,`sentinel disable`):null);if(!t)return n&&await this.bus.emit(S.providerConfig.updated,s),{deleted:!1};await this.cleanupDeletedProviderCredentials(e);for(let e of o.deletedBindings)await this.bus.emit(S.binding.deleted,e);for(let e of o.defaultChangedBindings)await this.bus.emit(S.binding.defaultChanged,e);return await this.bus.emit(S.providerConfig.deleted,{id:e}),i&&await this.bus.emit(S.providerConfig.defaultChanged,{definitionId:r,configId:a}),{deleted:!0}}async setDefaultProviderConfig(e){let t=``,n=await this.configStore.commitSnapshotMutation(n=>{let r=n.providerConfigs.get(e);if(!r)throw Error(`Provider config not found: ${e}`);if(!(r.enabled??!0))throw Error(`Disabled provider config cannot be default: ${e}`);t=r.definitionId;for(let[r,i]of n.providerConfigs)i.definitionId===t&&n.providerConfigs.set(r,{...i,isDefault:r===e})},()=>this.configStore.requireProviderConfig(e,`setDefault`));return await this.bus.emit(S.providerConfig.updated,n),await this.bus.emit(S.providerConfig.defaultChanged,{definitionId:t,configId:e}),{config:n}}async setModelFilterMode(e,t,n){let r=await this.configStore.commitSnapshotMutation(async r=>{let i=r.providerConfigs.get(e);if(!i)throw Error(`Provider config not found: ${e}`);let a=i.modelVisibility;if(t===`allowlist`){let e=await this.selectAllowlistKeeper(i.definitionId,i,n);e&&(a={...i.modelVisibility??{},[e]:`visible`})}r.providerConfigs.set(e,{...i,modelFilterMode:t,modelVisibility:a})},()=>this.configStore.requireProviderConfig(e,`setModelFilterMode`));return await this.bus.emit(S.providerConfig.updated,r),{config:r}}normalizeCredentialRefs(e){if(!(!e||Object.keys(e).length===0))return g(e)}cloneCreateCredentialRefs(e){return this.normalizeCredentialRefs(e.credentialRefs)}async cleanupDeletedProviderCredentials(e){try{await this.bus.requestOptional(o.delete,{configId:e})}catch(t){console.warn(`[AdapterProviderConfigService] Failed to delete credentials for removed provider config "${e}":`,t)}}async resolveProviderConfigName(e,t){let n=ee({requestedName:t,providerName:(await this.getProviderDefinitionOrThrow(e)).name,definitionId:e});if(n)return n;throw Error(`Unable to derive a canonical provider config name for definition: ${e}`)}async getProviderDefinitionOrThrow(e){let{provider:t}=await this.bus.request(x.get,{id:e});if(!t)throw Error(`Provider definition not found: ${e}`);return t}async selectAllowlistKeeper(e,t,n){let{provider:r}=await this.bus.request(x.get,{id:e}),i=[n,...r?.availableModels?.map(e=>e.name)??[],...Object.keys(t.modelVisibility??{})].filter(e=>typeof e==`string`&&e.length>0);for(let e of i){let n=y(e,`allowlist`,t.modelVisibility);if(n===`enabled`||n===`visible`)return}return i[0]}},be=class{configStore;bus;constructor(e){this.configStore=e.configStore,this.bus=e.bus}async bind(e,t){let n,r=!1;if(await this.configStore.commitSnapshotMutation(i=>{let a=i.providerConfigs.get(t);if(!a)throw Error(`Provider config not found: ${t}`);let o=i.adapters.get(e);if(!o)throw Error(`Adapter config not found: ${e}`);let s=O(e,o.bindings),c=s.find(e=>e.providerConfigId===t);if(c){n={...c};return}r=!0,n={adapterName:e,providerConfigId:t,isDefault:(a.enabled??!0)&&!j(s,i.providerConfigs)};let l=[...s,n];i.adapters.set(e,{...o,bindings:l.map(({adapterName:e,...t})=>t)})}),!n)throw Error(`Binding could not be loaded after bind: ${e}/${t}`);return r&&await this.bus.emit(S.binding.created,n),n}async unbind(e,t){let n,r=!1;await this.configStore.commitSnapshotMutation(i=>{let a=i.adapters.get(e);if(!a)return;let o=O(e,a.bindings),s=o.findIndex(e=>e.providerConfigId===t);if(s===-1)return;let[c]=o.splice(s,1);if(r=!0,c?.isDefault&&o.length>0){let e=M(o,i.providerConfigs);n=e.promoted,o.splice(0,o.length,...e.bindings)}i.adapters.set(e,{...a,bindings:o.map(({adapterName:e,...t})=>t)})}),r&&(await this.bus.emit(S.binding.deleted,{adapterName:e,providerConfigId:t}),n&&await this.bus.emit(S.binding.defaultChanged,{adapterName:e,providerConfigId:n.providerConfigId}))}async setDefaultBinding(e,t){let n=!1;await this.configStore.commitSnapshotMutation(r=>{let i=r.adapters.get(e);if(!i)throw Error(`Adapter config not found: ${e}`);let a=O(e,i.bindings),o=a.find(e=>e.providerConfigId===t);if(!o)throw Error(`Binding not found for adapter ${e} and provider config ${t}`);if(!A(r.providerConfigs,o.providerConfigId))throw Error(`Disabled provider config cannot be default binding: ${t}`);o.isDefault||(n=!0,r.adapters.set(e,{...i,bindings:a.map(({adapterName:e,...n})=>({...n,isDefault:n.providerConfigId===t}))}))}),n&&await this.bus.emit(S.binding.defaultChanged,{adapterName:e,providerConfigId:t})}};function K(e){return e.map(e=>({...e}))}function q(e){if(e instanceof w)return!0;if(typeof e!=`object`||!e)return!1;let t=e;return t.name===`ModelRegistryProviderNotFoundError`&&typeof t.providerId==`string`||e instanceof Error&&/^Request to "getProviderModels" failed: Provider ".+" is not present in the model registry$/.test(e.message)||e instanceof Error&&/^Provider ".+" is not present in the model registry$/.test(e.message)?!0:q(t.cause)}function xe(e){let t=new Set;for(let n of e){if(typeof n==`string`){(n===`anthropic`||n===`openai`)&&t.add(n);continue}n.anthropic!==void 0&&t.add(`anthropic`),n.openai!==void 0&&t.add(`openai`)}return[...t]}function Se(e,t,n){let r=xe(n);if(t!==void 0){if(!r.includes(t))throw Error(`Adapter "${e}" definition protocol "${t}" must be declared in manifest.protocols [${r.join(`, `)}].`);return t}return r.length===1?r[0]:void 0}var Ce=class{configStore;registry;coordinator;machineId;platformDefaults;constructor(e){this.configStore=e.configStore,this.registry=e.registry,this.coordinator=e.coordinator,this.machineId=e.machineId,this.platformDefaults=e.platformDefaults}register(e){e(this.coordinator.registerContributionProcessor({filter:e=>!!e.adapters?.length,processActivated:async(e,t,n)=>{await this.onPackageActivated(e,t,n)},processStopped:async e=>{await this.onPackageStopped(e)}}))}async onPackageActivated(e,t,n){let r=t.adapters??[],i=[],a=[],o=new Map,s=await n.bus.request(C.contributions.catalog,{}),c=new Map;for(let e of s.providers)c.set(e.definition.id,e);for(let n of t.providers??[])c.set(n.id,{packageName:e,definition:n});let l=s.clients;try{for(let t of r){let r=await this.activateAdapterContribution(e,t,n.bus,o,c,l);i.push(t.definition.name),a.push(r)}}catch(t){for(let e of i.reverse())try{await this.registry.deregisterAdapter(e)}catch(t){console.error(`[AdapterContributionProcessor] Rollback error for adapter "${e}":`,t)}throw this.registry.removePackageTracking(e),t}await this.publishActivatedAdapters(a)}async processAdapterContribution(e,t,n=r){let i=await this.activateAdapterContribution(e,t,n,new Map);await this.publishActivatedAdapters([i])}async activateAdapterContribution(e,t,n,r,i,a){let o=await this.buildLoadedAdapter(e,t,n,r,i,a),s=!1;try{await this.ensureAdapterConfig(o);let t=this.configStore.isAdapterEnabled(o.name);t&&await this.validateEnabledAdapterClientRefs(o,n,a),this.registry.registerAdapter(o,e),s=!0,t&&(await this.registry.initializeAdapter(o,this.platformDefaults),console.info(`[AdapterContributionProcessor] Initialized adapter: ${o.name} (${o.packageName})`))}catch(e){if(s)try{await this.registry.deregisterAdapter(o.name)}catch(e){console.error(`[AdapterContributionProcessor] Rollback error for adapter "${o.name}":`,e)}throw e}return o}async validateEnabledAdapterClientRefs(e,t,n){if(e.clients===void 0||e.clients.length===0)return;let r=n??(await t.request(C.contributions.catalog,{})).clients;await H(e.name,e.clients,r,t)}async resolveProviderDefinitions(e,t,n,r,i,a){let o=a;if(!o){o=new Map;let t=await e.request(C.contributions.catalog,{});for(let e of t.providers)o.set(e.definition.id,e)}let s=[],c=[];for(let e of t){let t=o.get(e.definitionId);if(!t){c.push(e.definitionId);continue}s.push({definition:t.definition,providerPackageName:t.packageName,configSchema:e.configSchema??r,credentialSchema:e.credentialSchema??i})}if(c.length>0)throw Error(`Adapter "${n}" declares providers [${c.join(`, `)}] but no active extension registers them. Ensure provider extensions are listed in the adapter's dependencies.`);return s}async buildLoadedAdapter(e,t,n=r,i=new Map,a,o){let s=t.definition,c=t.manifest,l=s.name,u=o??(await n.request(C.contributions.catalog,{})).clients;await H(l,c.clients,u,n,{checkBinaryVersions:!1});let d=await this.resolveProviderDefinitions(n,s.providers,l,s.providerConfigSchema,s.providerCredentialSchema,a),f=await Promise.all(d.map(async e=>{let t=e.definition.id;try{let r=i.get(t);if(r===void 0){let a=await n.requestOptional(T.getProviderModels,{providerId:t});r=a.handled?a.data.models:e.definition.availableModels??[],i.set(t,r)}return{...e,definition:{...e.definition,availableModels:K(r)}}}catch(n){if(q(n))return{...e,definition:{...e.definition,availableModels:K(e.definition.availableModels??[])}};throw Error(`[AdapterContributionProcessor] Failed to populate available models for provider "${t}" on adapter "${l}"`,{cause:n})}}));return{name:l,displayName:s.displayName??c.displayName,description:s.description,packageName:e,factory:s.createAdapter,options:{adapterId:b(this.machineId,l)},adapterConfigSchema:s.adapterConfigSchema,providers:f,helpLinks:s.helpLinks,instructions:s.instructions,defaultPresetId:s.defaultPresetId,clients:B(c.clients),protocol:Se(l,s.protocol,c.protocols)}}async ensureAdapterConfig(e){this.configStore.getAdapterConfig(e.name)||await this.configStore.setAdapterConfig(e.name,{displayName:e.displayName,description:e.description,helpLinks:e.helpLinks?.map(e=>({...e})),instructions:e.instructions,clientId:V(e.options,e.clients),protocol:e.protocol,providerDefinitionIds:e.providers.map(e=>e.definition.id),enabled:!1})}async onPackageStopped(e){await this.registry.deregisterPackage(e)}publishAdapterRegistered(e){let t=this.configStore.isAdapterEnabled(e.name),n=e.options.adapterId??b(this.machineId,e.name),r=e.providers.map(e=>e.definition.id);return this.registry.publishAdapterRegistered({adapterName:e.name,displayName:e.displayName,packageName:e.packageName,enabled:t,adapterId:n,providerDefinitionIds:r})}async publishActivatedAdapters(e){for(let t of e)try{await this.publishAdapterRegistered(t)}catch(e){console.error(`[AdapterContributionProcessor] Failed to publish adapter "${t.name}" registration:`,e)}}};const J=-100;function we(e,t){let n=e.on(x.get,e=>{let n=Y(t()).get(e.payload.id)??null;e.setResult({provider:n})},{priority:J}),r=e.on(x.list,e=>{e.setResult({providers:[...Y(t()).values()]})},{priority:J}),i=e.on(x.listByProtocol,e=>{let n=[...Y(t()).values()].filter(t=>t.endpoints!==void 0&&e.payload.protocol in t.endpoints);e.setResult({providers:n})},{priority:J});return()=>{n(),r(),i()}}function Y(e){let t=new Map;for(let n of e)for(let e of n.providers){let n=s.parse(e.definition);t.has(n.id)||t.set(n.id,{id:n.id,packageName:e.providerPackageName,name:n.name,...n.description===void 0?{}:{description:n.description},...n.endpoints===void 0?{}:{endpoints:n.endpoints},...n.defaultModel===void 0?{}:{defaultModel:n.defaultModel},...n.fastModel===void 0?{}:{fastModel:n.fastModel},availableModels:n.availableModels,defaultModelFilterMode:n.defaultModelFilterMode??`show-all`,...n.credentialEnvVars===void 0?{}:{credentialEnvVars:n.credentialEnvVars},...n.capabilities===void 0?{}:{capabilities:n.capabilities},enabled:!0,createdAt:0,updatedAt:0})}return t}var X=class extends d{configStore;registry;providerConfigService;bindingService;contributionProcessor;constructor(e){super(e.bus),this.configStore=new R({configRepository:e.configRepository,bus:e.bus}),this.registry=new ve({bus:e.bus,machineId:e.machineId}),this.providerConfigService=new ye({configStore:this.configStore,bus:e.bus}),this.bindingService=new be({configStore:this.configStore,bus:e.bus}),this.contributionProcessor=new Ce({configStore:this.configStore,registry:this.registry,coordinator:e.coordinator,machineId:e.machineId,platformDefaults:e.platformDefaults})}async onInit(){await this.configStore.loadSnapshot(),this.configStore.registerListeners(e=>this.addCleanup(e)),this.registerBusHandlers(),await this.bus.emit(S.ready,{})}registerBusHandlers(){this.addCleanup(we(this.bus,()=>this.registry.getLoadedAdapters())),this.registerReadHandlers(),this.registerMutationHandlers()}registerReadHandlers(){this.registerHandler(S.getAdapterConfig,e=>{e.setResult({config:this.configStore.getAdapterConfig(e.payload.name)})}),this.registerHandler(S.listAdapterConfigs,e=>{e.setResult({configs:this.configStore.listAdapterConfigs()})}),this.registerHandler(S.getProviderConfig,e=>{e.setResult({config:this.configStore.getProviderConfig(e.payload.id)})}),this.registerHandler(S.listProviderConfigs,e=>{e.setResult({configs:this.configStore.listProviderConfigs(e.payload.enabled)})}),this.registerHandler(S.listProviderConfigsByDefinition,e=>{e.setResult({configs:this.configStore.listProviderConfigsByDefinition(e.payload.definitionId)})}),this.registerHandler(S.listBindings,e=>{e.setResult({bindings:this.configStore.listBindings(e.payload.adapterName)})}),this.registerHandler(S.listBindingsByConfig,e=>{e.setResult({bindings:this.configStore.listBindingsByConfig(e.payload.providerConfigId)})}),this.registerHandler(S.getDefaultBinding,e=>{e.setResult({binding:this.configStore.getDefaultBinding(e.payload.adapterName)})}),this.registerHandler(S.findConfigForDefinitionAndAdapter,e=>{e.setResult({config:this.configStore.findConfigForDefinitionAndAdapter(e.payload.definitionId,e.payload.adapterName)})}),this.registerHandler(S.buildProviderContext,async e=>{e.setResult({context:await this.configStore.buildProviderContext(e.payload.providerConfigId)})}),this.registerHandler(S.listAdapters,async e=>{e.setResult({adapters:await this.configStore.buildEffectiveAdapters()})}),this.registerHandler(S.getProviderDefinitionsByAdapter,e=>{let t=(this.registry.getLoadedAdapters().find(t=>t.name===e.payload.adapterName)?.providers??[]).map(e=>s.parse(e.definition));e.setResult({definitions:t})}),this.registerHandler(S.ensureReady,e=>{e.setResult({ready:!0})})}registerMutationHandlers(){this.registerHandler(S.createProviderConfig,async e=>{e.setResult(await this.providerConfigService.createProviderConfig(e.payload))}),this.registerHandler(S.updateProviderConfig,async e=>{e.setResult(await this.providerConfigService.updateProviderConfig(e.payload.id,e.payload.patch))}),this.registerHandler(S.setProviderConfigCredentialRefs,async e=>{e.setResult(await this.providerConfigService.setProviderConfigCredentialRefs(e.payload.id,e.payload.credentialRefs))}),this.registerHandler(S.deleteProviderConfig,async e=>{e.setResult(await this.providerConfigService.deleteProviderConfig(e.payload.id))}),this.registerHandler(S.setDefaultProviderConfig,async e=>{e.setResult(await this.providerConfigService.setDefaultProviderConfig(e.payload.id))}),this.registerHandler(S.setModelFilterMode,async e=>{e.setResult(await this.providerConfigService.setModelFilterMode(e.payload.id,e.payload.modelFilterMode,e.payload.preferredModel))}),this.registerHandler(S.setAdapterConfig,async e=>{e.setResult(await this.configStore.setAdapterConfig(e.payload.name,e.payload.patch))}),this.registerHandler(S.setAdapterEnabled,async e=>{await this.configStore.setAdapterEnabled(e.payload.name,e.payload.enabled),e.setResult({success:!0})}),this.registerHandler(S.bind,async e=>{e.setResult({binding:await this.bindingService.bind(e.payload.adapterName,e.payload.providerConfigId)})}),this.registerHandler(S.unbind,async e=>{await this.bindingService.unbind(e.payload.adapterName,e.payload.providerConfigId),e.setResult({})}),this.registerHandler(S.setDefaultBinding,async e=>{await this.bindingService.setDefaultBinding(e.payload.adapterName,e.payload.providerConfigId),e.setResult({})})}async onDestroy(){await this.registry.shutdownAll(),this.configStore.clear()}getLoadedAdapters(){return this.registry.getLoadedAdapters()}getAdapterInstances(){return this.registry.getAdapterInstances()}getSettingsAvailableAdapters(){return this.registry.getSettingsAvailableAdapters()}async processAdapterContributions(e,t,n){await this.contributionProcessor.onPackageActivated(e,t,n)}async stopAdapterContributions(e){await this.contributionProcessor.onPackageStopped(e)}};const Z=`.json`;var Q=class{providerConfigsDir;adaptersDir;constructor(e){this.providerConfigsDir=e.providerConfigsDir,this.adaptersDir=e.adaptersDir}async loadAdapterConfigs(){let e=new Map,t=await this.readJsonFiles(this.adaptersDir,`adapter`);for(let n of t){let t=this.getCanonicalLoadedStem(n.stem,`adapter`,n.filePath);if(!t)continue;let r=p.safeParse(n.jsonData);if(!r.success){this.warnInvalidFile(`adapter`,n.filePath);continue}e.set(t,r.data)}return{configs:e}}async loadProviderConfigs(){let e=new Map,t=await this.readJsonFiles(this.providerConfigsDir,`provider config`);for(let n of t){let t=this.getCanonicalLoadedStem(n.stem,`provider config`,n.filePath);if(!t)continue;let r=h.safeParse(n.jsonData);if(!r.success){this.warnInvalidFile(`provider config`,n.filePath);continue}e.set(t,r.data)}return{configs:e}}async writeProviderConfig(e,n){let r=this.assertCanonicalFileStem(e,`provider config id`),i=h.parse(n);await this.writeJsonFile(t.join(this.providerConfigsDir,`${r}${Z}`),i)}async deleteProviderConfig(e){let n=this.assertCanonicalFileStem(e,`provider config id`);try{return await this.unlinkFile(t.join(this.providerConfigsDir,`${n}${Z}`)),!0}catch(e){if(e.code===`ENOENT`)return!1;throw e}}async writeAdapterFile(e,n){let r=this.assertCanonicalFileStem(e,`adapter name`),i=p.parse(n);await this.writeJsonFile(t.join(this.adaptersDir,`${r}${Z}`),i)}async deleteAdapterFile(e){let n=this.assertCanonicalFileStem(e,`adapter name`);try{return await this.unlinkFile(t.join(this.adaptersDir,`${n}${Z}`)),!0}catch(e){if(e.code===`ENOENT`)return!1;throw e}}async readJsonFiles(n,r){try{let i=(await e.readdir(n,{withFileTypes:!0})).filter(e=>e.isFile()&&t.extname(e.name)===Z).sort((e,t)=>e.name.localeCompare(t.name));return(await Promise.all(i.map(async i=>{let a=t.join(n,i.name);try{let n=await e.readFile(a,`utf-8`);return{filePath:a,stem:t.parse(i.name).name,jsonData:JSON.parse(n)}}catch(e){if(e instanceof SyntaxError||e instanceof Error&&e.code===`ENOENT`)return this.warnInvalidFile(r,a),null;throw e}}))).filter(e=>e!==null)}catch(e){if(e.code===`ENOENT`)return[];throw e}}warnInvalidFile(e,t){console.warn(`[FileAdapterConfigRepository] Skipping invalid %s file: %s`,e,t)}getCanonicalLoadedStem(e,t,n){try{return this.assertCanonicalFileStem(e,`${t} file stem`)}catch{return this.warnInvalidFile(t,n),null}}async writeJsonFile(r,i){let a=t.dirname(r),o=t.join(a,`.${t.basename(r)}.${n()}.tmp`);await e.mkdir(a,{recursive:!0});try{await e.writeFile(o,`${JSON.stringify(i,null,2)}\n`,{encoding:`utf-8`,mode:384}),await this.replaceFile(o,r)}catch(e){throw await this.removeFileIfPresent(o),e}}async replaceFile(e,t){try{await this.renameFile(e,t);return}catch(e){let t=e;if(![`EEXIST`,`EPERM`,`EACCES`].includes(t.code??``))throw e}let r=`${t}.${n()}.bak`,i=!1;try{await this.renameFile(t,r),i=!0}catch(e){if(e.code!==`ENOENT`)throw e}try{await this.renameFile(e,t)}catch(e){throw i&&await this.renameFile(r,t).catch(()=>void 0),e}i&&await this.removeFileIfPresent(r)}async renameFile(t,n){await e.rename(t,n)}async unlinkFile(t){await e.unlink(t)}async removeFileIfPresent(t){try{await e.unlink(t)}catch(e){e.code!==`ENOENT`&&console.warn(`[FileAdapterConfigRepository] Failed to remove temp file: %s`,t,e)}}assertCanonicalFileStem(e,n){let r=e.trim(),i=t.basename(r);if(!r||e!==r||r!==i||!/^[a-z0-9._-]+$/.test(r)||r.includes(`/`)||r.includes(`\\`)||r.toLowerCase().endsWith(`.json`)||r===`.`||r===`..`)throw Error(`Invalid canonical ${n}: ${e}`);return r}};function Te(e){return{filter:e=>!!e.adapters?.length,async processActivated(t,n,r){let i=e.getAdapterSubsystemService();if(!i)throw Error(`AdapterSubsystemService is not available. Ensure the adapter subsystem package starts before adapter-contributing packages.`);await i.processAdapterContributions(t,n,r)},async processStopped(t){let n=e.getAdapterSubsystemService();n&&await n.stopAdapterContributions(t)}}}const $=c(`adapter-subsystem`);function Ee(e){return{name:$.name,displayName:`Adapter Subsystem`,version:`0.1.0`,provides:[`adapters`],critical:!0,create:t=>new X({bus:t.bus,configRepository:e.configRepository,coordinator:e.coordinator,machineId:t.machineId,platformDefaults:e.platformDefaults})}}export{X as AdapterSubsystemService,$ as AdapterSubsystemToken,Q as FileAdapterConfigRepository,Te as createAdapterSubsystemContributionProcessor,Ee as createAdapterSubsystemPackage,_e as ensureAdapterConfigs,pe as extractAdapterIdFromPackageName,G as initializeEnabledAdapters,W as shutdownAdapterInstances,U as toAvailableAdapter};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { g as BaseAgentConnectorConfig } from "../../types-
|
|
1
|
+
import { g as BaseAgentConnectorConfig } from "../../types-CPmOg4X7.mjs";
|
|
2
2
|
import { z } from "zod";
|
|
3
3
|
import { IMakaioBus, MakaioBusContext } from "@makaio/framework/bus";
|
|
4
4
|
import { AIModelSchema, ProtocolId, ProviderContext } from "@makaio/framework/contracts";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"../../cleanEnvForAdapter-
|
|
1
|
+
import{t as e}from"../../cleanEnvForAdapter-BooAgM2R.mjs";import{z as t}from"zod";import n from"node:fs/promises";import{createBusInstance as r,openChannel as i}from"@makaio/framework/bus";import{AIModelSchema as a,CredentialSubjects as o}from"@makaio/framework/contracts";import{BaseAdapterConfigSchema as s,ProviderConfigSchema as c,ProviderDefaultsSchema as l}from"@makaio/framework/contracts/config";import{ProviderStorageSubjects as u}from"@makaio/framework/services/settings/storage";import{resolveTimeouts as d}from"@makaio/framework/utils";import{AdapterSubsystemSubjects as f}from"@makaio/framework/services/adapter-subsystem";import{resolveClientBinary as p}from"@makaio/framework/clients";async function m(e,t={}){if(e.startsWith(`env:`)){let n=e.slice(4);if(!n)throw Error(`Credential reference is missing environment variable name`);return(t.readEnv??(e=>process.env[e]))(n)||null}if(e.startsWith(`file:`)){let r=e.slice(5);if(!r)throw Error(`Credential reference is missing file path`);return(await(t.readFile??(async e=>await n.readFile(e,`utf-8`)))(r)).trim()||null}if(e.startsWith(`keychain:`)){let[n,...r]=e.slice(9).split(`:`);if(!n||r.length===0)throw Error(`Credential reference is missing keychain service or account`);if(!t.resolveKeychain)throw Error(`Keychain credential resolution is not configured`);return t.resolveKeychain(n,r.join(`:`))}return e||null}function h(e,t){let n=e.find(e=>e.id===t);if(!n)throw Error(`Provider definition not found: '${t}'`);if(!g(n))throw Error(`Provider definition '${t}' is missing a defaultModel`);return n}function g(e){return typeof e.defaultModel==`string`&&e.defaultModel.length>0}const _=t.record(t.string(),t.unknown());function v(e){return{getDefaults:()=>e().adapterDefaults,getConfig:async t=>{let{adapterName:n,adapterDefaults:r,adapterDefinition:i,protocol:a}=e(),{providerContext:o}=t,s=o.endpointOverrides?.[a]??null,c=d([{layer:`adapter`,source:n,config:i.defaultTimeouts},{layer:`runtime`,source:`config.ts`,config:t.runtimeTimeouts}]),l={...r.providerConfig,...t.providerConfig,baseUrl:s??t.providerConfig?.baseUrl??r.providerConfig?.baseUrl},u=t.model??r.model;if(!u)throw Error(`No model resolved for adapter "${n}" (agentId: ${t.agentId}). Provide a model explicitly or configure adapterDefaults.model.`);return{...r,...t,adapterName:t.adapterName,model:u,cwd:t.cwd??r.cwd??process.cwd(),timeouts:c,providerConfig:l}}}}async function y(e,t){let n=Object.entries(t);if(n.length===0)return{};let a={},s=e.getContext(),{token:c}=await r({context:s}).request(o.getChannelToken,{}),l=await i(s,`credentials`,{token:c,transports:[]});try{let e=await Promise.allSettled(n.map(([,e])=>l.request(o.resolve,{ref:e})));for(let t=0;t<n.length;t++){let[r,i]=n[t],o=e[t];if(o.status===`fulfilled`)if(o.value.value!==null)a[r]=o.value.value;else if(o.value.error){let e=JSON.stringify(i);console.warn(`[resolveConnectorCredentials] Failed to resolve field '${r}' (ref ${e}):`,o.value.error)}else{let e=JSON.stringify(i);console.info(`[resolveConnectorCredentials] Credential unavailable for field '${r}' (ref ${e}); omitting it from the resolved connector credentials.`)}else{let e=JSON.stringify(i);console.warn(`[resolveConnectorCredentials] Failed to resolve field '${r}' (ref ${e}):`,o.reason)}}}finally{l.close()}return a}async function b(e,t,n){let{config:r}=await e.request(f.getProviderConfig,{id:t});if(!r)throw Error(`ProviderConfig '${t}' not found`);let{context:i}=await e.request(f.buildProviderContext,{providerConfigId:t});if(!i)throw Error(`ProviderConfig '${t}' not found`);if(i.definitionId!==r.definitionId)throw Error(`ProviderConfig '${t}' changed during resolution; retry`);let{provider:a}=await e.request(u.get,{id:i.definitionId});if(!a)throw Error(`ProviderDefinition '${r.definitionId}' not found for config '${t}'`);return{config:r,definition:a,baseUrl:i.endpointOverrides?.[n]??a.endpoints?.[n]??null,credentials:await y(e,i.credentialRefs)}}async function x(e,t,n){let{baseUrl:r,credentials:i}=await b(e,t,n);if(!r)throw Error(`Could not resolve baseUrl for ProviderConfig '${t}' with protocol '${n}'. Ensure the provider definition or config override declares an endpoint for this protocol.`);let a=i.apiKey;if(!a)throw Error(`Could not resolve apiKey for ProviderConfig '${t}'. Store credentials via settings before using this provider.`);return{baseUrl:r,apiKey:a}}function S(e,t){if(!t)return{};let n={};for(let[r,i]of Object.entries(t)){let t=e[r];t!==void 0&&(n[i]=t)}return n}async function C(t){let{bus:n,providerContext:r,clientId:i,baseEnv:a={}}=t,o=await y(n,r?.credentialRefs??{}),s=S(o,r?.credentialEnvVars),c=await p(i);return{credentials:o,credEnv:s,resolvedBinary:c,spawnEnv:{...e(a,{omitEnvVars:r?.ambientCredentialEnvVars}),...s,...c?.env??{}}}}export{a as AIModelSchema,s as BaseAdapterConfigSchema,_ as BaseProviderConfigSchema,c as ProviderConfigSchema,l as ProviderDefaultsSchema,S as buildCredentialEnv,v as createAdapterConfigFactory,h as getDefinitionOrThrow,y as resolveConnectorCredentials,m as resolveCredentialRef,x as resolveProviderEndpoint,b as resolveProviderResolution,C as resolveSessionEnvironment};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { A as MessageHandle, B as ReasoningLevelMap, C as SendMessageRequestPayload, D as IAdapterConfigFactory, E as ConfigFactoryInput, F as MessageState, H as LedgerSessionContext, I as ProcessingState, L as SendMessageOptions, M as NormalizedMessageInput, N as normalizeMessageInput, O as AIAgentConnector, P as MessageResult, R as AIModel, S as NormalizedCallUsage, T as StartAgentOptions, U as SessionToolLedger, V as ISessionToolLedger, W as ToolLedgerEntry, _ as ConnectorSendMessageOptions, a as AgentCwdChangeRequestPayload, b as ExecutionContext, c as AgentInterruptRequestPayload, d as AgentMcpServersSetResponsePayload, f as AgentModelChangeRequestPayload, g as BaseAgentConnectorConfig, h as AgentStartResult, i as AgentCredentialChangeResponsePayload, j as markCompletedWithFinalResult, k as MessageDeliveryMode, l as AgentInterruptResponsePayload, m as AgentSendMessageOptions, n as AgentContext, o as AgentCwdChangeResponsePayload, p as AgentModelChangeResponsePayload, r as AgentCredentialChangeRequestPayload, s as AgentIdentity, t as AIAgentConfig, u as AgentMcpServersSetRequestPayload, v as ConnectorStartOptions, w as SendMessageResponsePayload, x as GetCapabilitiesResponsePayload, y as ContextWindowInput, z as AIReasoningLevel } from "../types-
|
|
2
|
-
import { _ as LogImporterConfig, a as CompactionMetadata, b as StorageMessagePayload, c as ExternalToolIdentifiers, d as ImportMetadata, f as ImportSegment, g as LogImporter, h as LogImportTestConfig, l as ExternalToolMeta, m as LogImportSessionContext, n as LogOrchestratorConfig, o as DiscoveryMetadata, p as ImportSegmentLineage, r as ParseFileResult, s as ExternalToolIdentifier, u as ImportCursorPosition, v as NormalizedEvent, x as toImportSegment, y as ProcessLogFileResult } from "../base-orchestrator-
|
|
1
|
+
import { A as MessageHandle, B as ReasoningLevelMap, C as SendMessageRequestPayload, D as IAdapterConfigFactory, E as ConfigFactoryInput, F as MessageState, H as LedgerSessionContext, I as ProcessingState, L as SendMessageOptions, M as NormalizedMessageInput, N as normalizeMessageInput, O as AIAgentConnector, P as MessageResult, R as AIModel, S as NormalizedCallUsage, T as StartAgentOptions, U as SessionToolLedger, V as ISessionToolLedger, W as ToolLedgerEntry, _ as ConnectorSendMessageOptions, a as AgentCwdChangeRequestPayload, b as ExecutionContext, c as AgentInterruptRequestPayload, d as AgentMcpServersSetResponsePayload, f as AgentModelChangeRequestPayload, g as BaseAgentConnectorConfig, h as AgentStartResult, i as AgentCredentialChangeResponsePayload, j as markCompletedWithFinalResult, k as MessageDeliveryMode, l as AgentInterruptResponsePayload, m as AgentSendMessageOptions, n as AgentContext, o as AgentCwdChangeResponsePayload, p as AgentModelChangeResponsePayload, r as AgentCredentialChangeRequestPayload, s as AgentIdentity, t as AIAgentConfig, u as AgentMcpServersSetRequestPayload, v as ConnectorStartOptions, w as SendMessageResponsePayload, x as GetCapabilitiesResponsePayload, y as ContextWindowInput, z as AIReasoningLevel } from "../types-CPmOg4X7.mjs";
|
|
2
|
+
import { _ as LogImporterConfig, a as CompactionMetadata, b as StorageMessagePayload, c as ExternalToolIdentifiers, d as ImportMetadata, f as ImportSegment, g as LogImporter, h as LogImportTestConfig, l as ExternalToolMeta, m as LogImportSessionContext, n as LogOrchestratorConfig, o as DiscoveryMetadata, p as ImportSegmentLineage, r as ParseFileResult, s as ExternalToolIdentifier, u as ImportCursorPosition, v as NormalizedEvent, x as toImportSegment, y as ProcessLogFileResult } from "../base-orchestrator-Cw0vpNgB.mjs";
|
|
3
3
|
import { z } from "zod";
|
|
4
4
|
import * as _$_makaio_core0 from "@makaio/framework/core";
|
|
5
5
|
import { CreateBusNamespaceOptions, ExtractSubjectPayload, FilterablePayloadIntersection, HandlerForSubjectDefinition, RequestContext, SchemaRecord, ScopedSubjectDefinition, SubjectDefinition, SubjectRecordFromSchemaRecord } from "@makaio/framework/core";
|
package/dist/adapters/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{o as e,t}from"../chunk-DTipWd-i.mjs";import{t as n}from"../cleanEnvForAdapter-
|
|
1
|
+
import{o as e,t}from"../chunk-DTipWd-i.mjs";import{t as n}from"../cleanEnvForAdapter-BooAgM2R.mjs";import{i as r,n as i,r as a,t as o}from"../cursor-storage-luQAg7E_.mjs";import{_ as s,a as c,c as l,d as u,f as d,g as f,h as p,i as m,l as h,m as g,n as _,o as v,p as y,r as ee,s as b,t as te,u as x,v as S}from"../ajv-B5dPIck0.mjs";import{z as C}from"zod";import*as ne from"node:fs";import{AuthenticationError as re,DirectoryNotFoundError as ie,ModelUnavailableError as ae,QuotaExceededError as oe,RateLimitError as se,createBusNamespace as ce}from"@makaio/framework/core";import{MakaioBus as w,NoHandlerError as le,RequestError as ue}from"@makaio/framework/bus";import{AdapterSubjects as T,AgentSubjects as E,AgentToolApproveSchema as D,HarnessSubjects as O,MCP_CALL_TOOL_NAME as de,McpSubjects as k,SessionContextSchema as A,SessionSubjects as j}from"@makaio/framework/contracts";import{TurnStorageSubjects as fe}from"@makaio/framework/services/turn";import{CredentialRefSchema as pe}from"@makaio/framework/contracts/config";import{runPostUserMessageHooks as me,runPreUserMessageHooks as he}from"@makaio/framework/hooks";import{activateProviderContextStrict as ge,buildProviderContext as _e}from"@makaio/framework/services/provider-context";import ve from"node:os";import{AgentStorageSubjects as M}from"@makaio/framework/services/session";import{DeferredPromise as N,resolveTimeouts as ye}from"@makaio/framework/utils";import*as be from"node:process";function xe(e,t,n){return w.registerNamespace(ce(e,t,n))}function P(e){let t=[];try{return JSON.stringify(e,function(e,n){if(typeof n==`bigint`)return n.toString();if(typeof n==`object`&&n){for(;t.length>0&&t[t.length-1]!==this;)t.pop();if(t.includes(n))return`[Circular]`;t.push(n)}return n},2)??`[Non-serializable value]`}catch{try{return String(e)}catch{return`[Non-serializable value]`}}}function Se(e){return e.replaceAll(`&`,`&`).replaceAll(`<`,`<`).replaceAll(`>`,`>`).replaceAll(`'`,`'`)}function Ce(e){let t=e.replace(/[^a-zA-Z0-9_-]/g,`_`);return t.length===0?`context`:/^[A-Za-z_]/.test(t)?t:`context_${t}`}function we(e,t){let n=Ce(e);return`<${n}>\n${Se(t)}\n</${n}>`}function Te(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 Ee(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 De(e){if(!Array.isArray(e))return;let t=e.filter(Te).sort((e,t)=>e.name.localeCompare(t.name)).map(e=>e.compatibility?`- ${e.name}: ${e.description} Compatibility: ${e.compatibility}`:`- ${e.name}: ${e.description}`);return t.length>0?t.join(`
|
|
2
2
|
`):void 0}function Oe(e){if(!Array.isArray(e))return;let t=e.filter(Ee).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
|
|
package/dist/adapters/node.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { g as LogImporter, i as LogFileChangeEvent, n as LogOrchestratorConfig, t as BaseLogOrchestrator } from "../base-orchestrator-
|
|
1
|
+
import { g as LogImporter, i as LogFileChangeEvent, n as LogOrchestratorConfig, t as BaseLogOrchestrator } from "../base-orchestrator-Cw0vpNgB.mjs";
|
|
2
2
|
|
|
3
3
|
//#region adapters/core/src/log-importer/jsonl-parser.d.ts
|
|
4
4
|
/**
|
package/dist/adapters/node.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{o as e,t}from"../chunk-DTipWd-i.mjs";import{i as n,r}from"../cursor-storage-
|
|
1
|
+
import{o as e,t}from"../chunk-DTipWd-i.mjs";import{i as n,r}from"../cursor-storage-luQAg7E_.mjs";import{t as i}from"../globby-D4SANVoq.mjs";import*as a from"node:fs/promises";import*as o from"node:path";import{MakaioBus as s}from"@makaio/framework/bus";import{AdapterSubjects as c,SessionStorageSubjects as l,SessionSubjects as u}from"@makaio/framework/contracts";const d=65536;async function f(e){let{filePath:t,startOffset:n=0}=e,r=[],i=[],o=n,s;try{s=await a.open(t,`r`);let e=await s.stat();if(n>=e.size)return{records:r,bytesRead:n,errors:i};let c=Buffer.alloc(d),l=``,u=n,f=0;for(n>0&&(f=await _(s,n));u<e.size;){let{bytesRead:e}=await s.read(c,0,d,u);if(e===0)break;l+=c.toString(`utf8`,0,e),u+=e;let t=l.split(`
|
|
2
2
|
`),n=t.pop();for(let e of t){if(f++,e.trim()===``){o+=Buffer.byteLength(e,`utf8`)+1;continue}let t=h(e,f);t.success?r.push(t.record):i.push(t.error),o+=Buffer.byteLength(e,`utf8`)+1}l=n??``}return{records:r,bytesRead:o,errors:i}}finally{s&&await s.close()}}async function p(e,t){let n=[],r;try{r=await a.open(e,`r`);let i=Buffer.alloc(d),o=``,s=0;for(;n.length<t;){let{bytesRead:e}=await r.read(i,0,d,s);if(e===0)break;o+=i.toString(`utf8`,0,e),s+=e;let a=o.split(`
|
|
3
3
|
`);o=a.pop()??``;for(let e of a){if(n.length>=t)break;let r=e.trim();if(r!==``)try{n.push(JSON.parse(r))}catch{}}}return n}finally{r&&await r.close()}}async function m(e,t){let n;try{n=await a.open(e,`r`);let r=Buffer.alloc(d),i=``,o=0;for(;;){let{bytesRead:e}=await n.read(r,0,d,o);if(e===0)break;i+=r.toString(`utf8`,0,e),o+=e;let a=i.split(`
|
|
4
4
|
`);i=a.pop()??``;for(let e of a){let n=e.trim();if(n!==``)try{if(t(JSON.parse(n)))return!0}catch{}}}return!1}finally{n&&await n.close()}}function h(e,t){try{return{success:!0,record:JSON.parse(e)}}catch(n){return{success:!1,error:{line:t,error:n instanceof Error?n.message:String(n),content:g(e)}}}}function g(e){return e.length<=200?e:e.slice(0,200)+`...`}async function _(e,t){let n=0,r=Buffer.alloc(d),i=0;for(;i<t;){let a=Math.min(d,t-i),{bytesRead:o}=await e.read(r,0,a,i);if(o===0)break;for(let e=0;e<o;e++)r[e]===10&&n++;i+=o}return n}var v=e(t(((e,t)=>{var n=Object.prototype.hasOwnProperty,r=`~`;function i(){}Object.create&&(i.prototype=Object.create(null),new i().__proto__||(r=!1));function a(e,t,n){this.fn=e,this.context=t,this.once=n||!1}function o(e,t,n,i,o){if(typeof n!=`function`)throw TypeError(`The listener must be a function`);var s=new a(n,i||e,o),c=r?r+t:t;return e._events[c]?e._events[c].fn?e._events[c]=[e._events[c],s]:e._events[c].push(s):(e._events[c]=s,e._eventsCount++),e}function s(e,t){--e._eventsCount===0?e._events=new i:delete e._events[t]}function c(){this._events=new i,this._eventsCount=0}c.prototype.eventNames=function(){var e=[],t,i;if(this._eventsCount===0)return e;for(i in t=this._events)n.call(t,i)&&e.push(r?i.slice(1):i);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(t)):e},c.prototype.listeners=function(e){var t=r?r+e:e,n=this._events[t];if(!n)return[];if(n.fn)return[n.fn];for(var i=0,a=n.length,o=Array(a);i<a;i++)o[i]=n[i].fn;return o},c.prototype.listenerCount=function(e){var t=r?r+e:e,n=this._events[t];return n?n.fn?1:n.length:0},c.prototype.emit=function(e,t,n,i,a,o){var s=r?r+e:e;if(!this._events[s])return!1;var c=this._events[s],l=arguments.length,u,d;if(c.fn){switch(c.once&&this.removeListener(e,c.fn,void 0,!0),l){case 1:return c.fn.call(c.context),!0;case 2:return c.fn.call(c.context,t),!0;case 3:return c.fn.call(c.context,t,n),!0;case 4:return c.fn.call(c.context,t,n,i),!0;case 5:return c.fn.call(c.context,t,n,i,a),!0;case 6:return c.fn.call(c.context,t,n,i,a,o),!0}for(d=1,u=Array(l-1);d<l;d++)u[d-1]=arguments[d];c.fn.apply(c.context,u)}else{var f=c.length,p;for(d=0;d<f;d++)switch(c[d].once&&this.removeListener(e,c[d].fn,void 0,!0),l){case 1:c[d].fn.call(c[d].context);break;case 2:c[d].fn.call(c[d].context,t);break;case 3:c[d].fn.call(c[d].context,t,n);break;case 4:c[d].fn.call(c[d].context,t,n,i);break;default:if(!u)for(p=1,u=Array(l-1);p<l;p++)u[p-1]=arguments[p];c[d].fn.apply(c[d].context,u)}}return!0},c.prototype.on=function(e,t,n){return o(this,e,t,n,!1)},c.prototype.once=function(e,t,n){return o(this,e,t,n,!0)},c.prototype.removeListener=function(e,t,n,i){var a=r?r+e:e;if(!this._events[a])return this;if(!t)return s(this,a),this;var o=this._events[a];if(o.fn)o.fn===t&&(!i||o.once)&&(!n||o.context===n)&&s(this,a);else{for(var c=0,l=[],u=o.length;c<u;c++)(o[c].fn!==t||i&&!o[c].once||n&&o[c].context!==n)&&l.push(o[c]);l.length?this._events[a]=l.length===1?l[0]:l:s(this,a)}return this},c.prototype.removeAllListeners=function(e){var t;return e?(t=r?r+e:e,this._events[t]&&s(this,t)):(this._events=new i,this._eventsCount=0),this},c.prototype.off=c.prototype.removeListener,c.prototype.addListener=c.prototype.on,c.prefixed=r,c.EventEmitter=c,t!==void 0&&(t.exports=c)}))(),1),y=class e extends Error{name=`TimeoutError`;constructor(t,n){super(t,n),Error.captureStackTrace?.(this,e)}};const b=e=>e.reason??new DOMException(`This operation was aborted.`,`AbortError`);function x(e,t){let{milliseconds:n,fallback:r,message:i,customTimers:a={setTimeout,clearTimeout},signal:o}=t,s,c,l=new Promise((t,l)=>{if(typeof n!=`number`||Math.sign(n)!==1)throw TypeError(`Expected \`milliseconds\` to be a positive number, got \`${n}\``);if(o?.aborted){l(b(o));return}if(o&&(c=()=>{l(b(o))},o.addEventListener(`abort`,c,{once:!0})),e.then(t,l),n===1/0)return;let u=new y;s=a.setTimeout.call(void 0,()=>{if(r){try{t(r())}catch(e){l(e)}return}typeof e.cancel==`function`&&e.cancel(),i===!1?t():i instanceof Error?l(i):(u.message=i??`Promise timed out after ${n} milliseconds`,l(u))},n)}).finally(()=>{l.clear(),c&&o&&o.removeEventListener(`abort`,c)});return l.clear=()=>{a.clearTimeout.call(void 0,s),s=void 0},l}function S(e,t,n){let r=0,i=e.length;for(;i>0;){let a=Math.trunc(i/2),o=r+a;n(e[o],t)<=0?(r=++o,i-=a+1):i=a}return r}var C=class{#e=[];#t=0;enqueue(e,t){let{priority:n=0,id:r}=t??{},{size:i}=this,a={priority:n,id:r,run:e};if(i===0){this.#e.length=0,this.#t=0,this.#e.push(a);return}if(this.#e.at(-1).priority>=n){this.#e.push(a);return}this.#n();let o=S(this.#e,a,(e,t)=>t.priority-e.priority);this.#e.splice(o,0,a)}setPriority(e,t){let n=this.#e.findIndex((t,n)=>n>=this.#t&&t.id===e);if(n===-1)throw ReferenceError(`No promise function with the id "${e}" exists in the queue.`);let[r]=this.#e.splice(n,1);this.enqueue(r.run,{priority:t,id:e})}remove(e){let t=this.#e.findIndex((t,n)=>n<this.#t?!1:typeof e==`string`?t.id===e:t.run===e);t!==-1&&this.#e.splice(t,1)}dequeue(){if(this.#t===this.#e.length)return;let e=this.#e[this.#t];return this.#t++,this.#t===this.#e.length?(this.#e.length=0,this.#t=0):this.#t>100&&this.#t>this.#e.length/2&&this.#n(),e?.run}filter(e){let t=[];for(let n=this.#t;n<this.#e.length;n++){let r=this.#e[n];r.priority===e.priority&&t.push(r.run)}return t}get size(){return this.#e.length-this.#t}#n(){this.#t!==0&&(this.#e.splice(0,this.#t),this.#t=0)}},w=class extends v.default{#e;#t;#n=0;#r;#i=!1;#a=!1;#o;#s=0;#c=0;#l;#u;#d;#f=[];#p=0;#m;#h;#g=0;#_;#v;#y=1n;#b=new Map;#x=new Set;timeout;constructor(e){if(super(),e={carryoverIntervalCount:!1,intervalCap:1/0,interval:0,concurrency:1/0,autoStart:!0,queueClass:C,strict:!1,...e},!(typeof e.intervalCap==`number`&&e.intervalCap>=1))throw TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${e.intervalCap?.toString()??``}\` (${typeof e.intervalCap})`);if(e.interval===void 0||!(Number.isFinite(e.interval)&&e.interval>=0))throw TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${e.interval?.toString()??``}\` (${typeof e.interval})`);if(e.strict&&e.interval===0)throw TypeError("The `strict` option requires a non-zero `interval`");if(e.strict&&e.intervalCap===1/0)throw TypeError("The `strict` option requires a finite `intervalCap`");if(this.#e=e.carryoverIntervalCount??e.carryoverConcurrencyCount??!1,this.#t=e.intervalCap===1/0||e.interval===0,this.#r=e.intervalCap,this.#o=e.interval,this.#d=e.strict,this.#m=new e.queueClass,this.#h=e.queueClass,this.concurrency=e.concurrency,e.timeout!==void 0&&!(Number.isFinite(e.timeout)&&e.timeout>0))throw TypeError(`Expected \`timeout\` to be a positive finite number, got \`${e.timeout}\` (${typeof e.timeout})`);this.timeout=e.timeout,this.#v=e.autoStart===!1,this.#z()}#S(e){for(;this.#p<this.#f.length;){let t=this.#f[this.#p];if(t!==void 0&&e-t>=this.#o)this.#p++;else break}(this.#p>100&&this.#p>this.#f.length/2||this.#p===this.#f.length)&&(this.#f=this.#f.slice(this.#p),this.#p=0)}#C(e){this.#d?this.#f.push(e):this.#n++}#w(){this.#d?this.#f.length>this.#p&&this.#f.pop():this.#n>0&&this.#n--}#T(){return this.#f.length-this.#p}get#E(){return this.#t?!0:this.#d?this.#T()<this.#r:this.#n<this.#r}get#D(){return this.#g<this.#_}#O(){this.#g--,this.#g===0&&this.emit(`pendingZero`),this.#P(),this.emit(`next`)}#k(){this.#u=void 0,this.#I(),this.#F()}#A(e){if(this.#d){if(this.#S(e),this.#T()>=this.#r){let t=this.#f[this.#p],n=this.#o-(e-t);return this.#j(n),!0}return!1}if(this.#l===void 0){let t=this.#s-e;if(t<0){if(this.#c>0){let t=e-this.#c;if(t<this.#o)return this.#j(this.#o-t),!0}this.#n=this.#e?this.#g:0}else return this.#j(t),!0}return!1}#j(e){this.#u===void 0&&(this.#u=setTimeout(()=>{this.#k()},e))}#M(){this.#l&&=(clearInterval(this.#l),void 0)}#N(){this.#u&&=(clearTimeout(this.#u),void 0)}#P(){if(this.#m.size===0){if(this.#M(),this.emit(`empty`),this.#g===0){if(this.#N(),this.#d&&this.#p>0){let e=Date.now();this.#S(e)}this.emit(`idle`)}return!1}let e=!1;if(!this.#v){let t=Date.now(),n=!this.#A(t);if(this.#E&&this.#D){let r=this.#m.dequeue();this.#t||(this.#C(t),this.#B()),this.emit(`active`),r(),n&&this.#F(),e=!0}}return e}#F(){this.#t||this.#l!==void 0||this.#d||(this.#l=setInterval(()=>{this.#I()},this.#o),this.#s=Date.now()+this.#o)}#I(){this.#d||(this.#n===0&&this.#g===0&&this.#l&&this.#M(),this.#n=this.#e?this.#g:0),this.#L(),this.#B()}#L(){for(;this.#P(););}get concurrency(){return this.#_}set concurrency(e){if(!(typeof e==`number`&&e>=1))throw TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${e}\` (${typeof e})`);this.#_=e,this.#L()}setPriority(e,t){if(typeof t!=`number`||!Number.isFinite(t))throw TypeError(`Expected \`priority\` to be a finite number, got \`${t}\` (${typeof t})`);this.#m.setPriority(e,t)}async add(e,t={}){return t={timeout:this.timeout,...t,id:t.id??(this.#y++).toString()},new Promise((n,r)=>{let i=Symbol(`task-${t.id}`),a=()=>void 0,o=async()=>{a(),this.#g++,this.#b.set(i,{id:t.id,priority:t.priority??0,startTime:Date.now(),timeout:t.timeout});let o;try{try{t.signal?.throwIfAborted()}catch(e){throw this.#V(),this.#b.delete(i),e}this.#c=Date.now();let r=e({signal:t.signal});if(t.timeout&&(r=x(Promise.resolve(r),{milliseconds:t.timeout,message:`Task timed out after ${t.timeout}ms (queue has ${this.#g} running, ${this.#m.size} waiting)`})),t.signal){let{signal:e}=t;r=Promise.race([r,new Promise((t,n)=>{o=()=>{n(e.reason)},e.addEventListener(`abort`,o,{once:!0})})])}let a=await r;n(a),this.emit(`completed`,a)}catch(e){r(e),this.emit(`error`,e)}finally{o&&t.signal?.removeEventListener(`abort`,o),this.#b.delete(i),queueMicrotask(()=>{this.#O()})}};this.#m.enqueue(o,t);let s=()=>{if(this.#m instanceof C){this.#m.remove(o);return}this.#m.remove?.(t.id)};if(t.signal){let{signal:e}=t,n=()=>{a(),s(),r(e.reason),this.#P(),this.emit(`next`)};if(a=()=>{e.removeEventListener(`abort`,n),this.#x.delete(a)},e.aborted){n();return}e.addEventListener(`abort`,n,{once:!0}),this.#x.add(a)}this.emit(`add`),this.#P()})}async addAll(e,t){return Promise.all(e.map(async e=>this.add(e,t)))}start(){return this.#v?(this.#v=!1,this.#L(),this):this}pause(){this.#v=!0}clear(){for(let e of this.#x)e();this.#m=new this.#h,this.#M(),this.#H(),this.emit(`empty`),this.#g===0&&(this.#N(),this.emit(`idle`)),this.emit(`next`)}async onEmpty(){this.#m.size!==0&&await this.#R(`empty`)}async onSizeLessThan(e){this.#m.size<e||await this.#R(`next`,()=>this.#m.size<e)}async onIdle(){this.#g===0&&this.#m.size===0||await this.#R(`idle`)}async onPendingZero(){this.#g!==0&&await this.#R(`pendingZero`)}async onRateLimit(){this.isRateLimited||await this.#R(`rateLimit`)}async onRateLimitCleared(){this.isRateLimited&&await this.#R(`rateLimitCleared`)}onError(){return new Promise((e,t)=>{let n=e=>{this.off(`error`,n),t(e)};this.on(`error`,n)})}async#R(e,t){return new Promise(n=>{let r=()=>{t&&!t()||(this.off(e,r),n())};this.on(e,r)})}get size(){return this.#m.size}sizeBy(e){return this.#m.filter(e).length}get pending(){return this.#g}get isPaused(){return this.#v}#z(){this.#t||(this.on(`add`,()=>{this.#m.size>0&&this.#B()}),this.on(`next`,()=>{this.#B()}))}#B(){this.#t||this.#a||(this.#a=!0,queueMicrotask(()=>{this.#a=!1,this.#H()}))}#V(){this.#t||(this.#w(),this.#B())}#H(){let e=this.#i;if(this.#t||this.#m.size===0){e&&(this.#i=!1,this.emit(`rateLimitCleared`));return}let t;if(this.#d){let e=Date.now();this.#S(e),t=this.#T()}else t=this.#n;let n=t>=this.#r;n!==e&&(this.#i=n,this.emit(n?`rateLimit`:`rateLimitCleared`))}get isRateLimited(){return this.#i}get isSaturated(){return this.#g===this.#_&&this.#m.size>0||this.isRateLimited&&this.#m.size>0}get runningTasks(){return[...this.#b.values()].map(e=>({...e,timeoutRemaining:e.timeout?Math.max(0,e.startTime+e.timeout-Date.now()):void 0}))}},T=class{eventQueue;cursorQueue;onEventEmitted;constructor(e){this.onEventEmitted=e.onEventEmitted,this.eventQueue=new w({concurrency:1,interval:1e3,intervalCap:e.eventsPerSecond}),this.cursorQueue=new w({concurrency:1})}queueEvent(e){return this.eventQueue.add(async()=>{await s.emit(e.subject,e.payload),this.onEventEmitted()})}queueAfterEvents(e,t=[]){let n=Promise.all(t);return n.catch(()=>void 0),this.cursorQueue.add(async()=>{await n,await e()})}async drain(){await Promise.all([this.eventQueue.onIdle(),this.cursorQueue.onIdle()])}async onIdle(){await this.drain()}},E=class{options;emittery=new n;trackedFiles=new Map;pollTimer;isPolling=!1;isDisposed=!1;inFlightChecks=new Map;constructor(e){if(!o.isAbsolute(e.directory))throw Error(`Directory must be an absolute path: ${e.directory}`);this.options={directory:e.directory,pattern:e.pattern,pollIntervalMs:e.pollIntervalMs??1e4}}on(e,t){return this.emittery.on(e,t)}once(e,t){return this.emittery.once(e,t)}async start(){this.isDisposed||this.pollTimer===void 0&&(await this.poll(),this.pollTimer=setInterval(()=>{this.poll()},this.options.pollIntervalMs))}stop(){this.pollTimer!==void 0&&(clearInterval(this.pollTimer),this.pollTimer=void 0)}dispose(){this.isDisposed=!0,this.stop(),this.emittery.clearListeners(),this.trackedFiles.clear(),this.inFlightChecks.clear()}isRunning(){return this.pollTimer!==void 0}getTrackedFiles(){return this.trackedFiles}seedFromCursors(e){for(let t of e)this.trackedFiles.set(t.filePath,{size:t.bytesRead,mtimeMs:new Date(t.lastModified).getTime()})}async poll(){if(!this.isDisposed&&!this.isPolling){this.isPolling=!0;try{let e=await this.discoverFiles(),t=new Set(e);for(let e of this.trackedFiles.keys())if(!t.has(e)){if(this.isDisposed)return;this.trackedFiles.delete(e),await this.emittery.emit(`deleted`,{filePath:e})}for(let t of e)try{await this.runFileCheck(t)}catch(e){await this.emitWatcherError(e,t)}if(this.isDisposed)return;await this.emittery.emit(`polled`,{trackedFilePaths:new Set(this.trackedFiles.keys())})}catch(e){await this.emitWatcherError(e)}finally{this.isPolling=!1}}}async discoverFiles(){return i(this.options.pattern,{cwd:this.options.directory,absolute:!0,onlyFiles:!0})}async checkFile(e){if(this.isDisposed)return;let t=await a.stat(e);if(this.isDisposed)return;let n={size:t.size,mtimeMs:t.mtimeMs},r=this.trackedFiles.get(e);if(!r){if(this.trackedFiles.set(e,n),this.isDisposed){this.trackedFiles.delete(e);return}await this.emittery.emit(`change`,{filePath:e,stat:{size:t.size,mtime:t.mtime},changeType:`created`});return}if(n.mtimeMs!==r.mtimeMs){let i=n.size<r.size?`rotated`:`modified`;if(this.trackedFiles.set(e,n),this.isDisposed)return;await this.emittery.emit(`change`,{filePath:e,stat:{size:t.size,mtime:t.mtime},changeType:i})}}clearTrackedFile(e){return this.trackedFiles.delete(e)}clearAllTrackedFiles(){this.trackedFiles.clear()}triggerImmediatePoll(e){this.runFileCheck(e).catch(t=>{this.emitWatcherError(t,e)})}async runFileCheck(e){if(this.isDisposed)return;let t=this.inFlightChecks.get(e);if(t){await t;return}let n=(async()=>{try{await this.checkFile(e)}finally{this.inFlightChecks.delete(e)}})();this.inFlightChecks.set(e,n),await n}async emitWatcherError(e,t){let n=e instanceof Error?e:Error(String(e));try{await this.emittery.emit(`error`,{error:n,filePath:t})}catch(e){console.error(`[LogFileWatcher] Error listener failed:`,e instanceof Error?e.message:String(e))}}},D=class{watcher;constructor(e){this.watcher=new E(e)}isRunning(){return this.watcher.isRunning()}async start(){await this.watcher.start()}stop(){this.watcher.stop()}dispose(){this.watcher.dispose()}onChange(e){return this.watcher.on(`change`,e)}onError(e){return this.watcher.on(`error`,e)}onDeleted(e){return this.watcher.on(`deleted`,e)}onPolled(e){return this.watcher.on(`polled`,({trackedFilePaths:t})=>e(t))}getTrackedFileMtimeMs(e){return this.watcher.getTrackedFiles().get(e)?.mtimeMs}triggerImmediatePoll(e){this.watcher.triggerImmediatePoll(e)}seedFromCursors(e){this.watcher.seedFromCursors(e)}},O=class{filesProcessed=0;eventsEmitted=0;sessionsImported=new Set;sessionsSkipped=new Set;lastLoggedEventCount=0;lastLoggedSnapshot=``;reset(){this.filesProcessed=0,this.eventsEmitted=0,this.sessionsImported.clear(),this.sessionsSkipped.clear(),this.lastLoggedEventCount=0,this.lastLoggedSnapshot=``}recordFileProcessed(){this.filesProcessed++}recordEventEmitted(e){this.eventsEmitted++,!(this.eventsEmitted-this.lastLoggedEventCount<1e3)&&(console.info(`${e} Imported ${this.eventsEmitted} events (${this.sessionsImported.size} sessions)...`),this.lastLoggedEventCount=this.eventsEmitted)}recordSessionImported(e){this.sessionsImported.add(e)}recordSessionSkipped(e){this.sessionsSkipped.add(e)}hasActivity(){return this.eventsEmitted>0||this.filesProcessed>0}stoppedMessage(e){return`${e} Stopped - ${this.eventsEmitted} events from ${this.sessionsImported.size} sessions (${this.sessionsSkipped.size} skipped)`}logProgress(e){if(!this.hasActivity())return;let t=JSON.stringify({eventsEmitted:this.eventsEmitted,filesProcessed:this.filesProcessed,sessionsImported:this.sessionsImported.size,sessionsSkipped:this.sessionsSkipped.size});t!==this.lastLoggedSnapshot&&(this.lastLoggedSnapshot=t,console.info(`${e} Progress: ${this.eventsEmitted} events, ${this.sessionsImported.size} sessions, ${this.filesProcessed} files, ${this.sessionsSkipped.size} skipped`))}};function k(){return async e=>{try{let t=await s.request(u.getByAdapterSessionId,{adapterSessionId:e});return t.session!==null&&!t.session.isImported}catch{return!1}}}var A=class{checkedSessions=new Map;inFlight=new Map;async isSkipped(e,t,n){let r=this.checkedSessions.get(e);if(r!==void 0)return r;let i=this.inFlight.get(e);return i||(i=t(e).then(t=>(this.checkedSessions.set(e,t),t&&n(e),t)).finally(()=>{this.inFlight.delete(e)}),this.inFlight.set(e,i)),i}clear(){this.checkedSessions.clear(),this.inFlight.clear()}};function j(e,t,n,r){return!n||!e||r===`rotated`?!1:new Date(e)>=t}function M(e,t,n){for(let r of n??[]){let n=r.line===void 0?``:` at line ${r.line}`;console.warn(`${e} Parse error in ${t}${n}: ${r.error}`)}}async function N(e,t,n,i){let{cursor:a}=await s.request(r.get,{filePath:e});return a&&a.bytesRead>0&&!a.sessionContext&&!t?(await s.request(r.delete,{filePath:e}).catch(()=>{}),i(n),`retry`):a}async function P(e,t,n,r,i,a){let o=await a.parseFile(e,0);M(i,e,o.errors);let s=a.validateRecords(o.records);s.length>0&&await a.handleFirstRead(e,s,o.bytesRead??0,t,n,0,r)}function F(e,t,n,r,i){let a=[];n&&(a.push(i(t.sessionEvent)),a.push(i(t.startedEvent)));let o=r(e,t);for(let e of o)a.push(i(e));return a}function I(e,t){let n=[];for(let r of e)n.push(t(r));return n}function L(e){return typeof e==`object`&&!!e&&`compactionDetected`in e&&e.compactionDetected===!0}function R(e,t,n){return{...e,state:n(t)}}var z=class{tasks=new Set;track(e){this.tasks.add(e),e.finally(()=>{this.tasks.delete(e)})}async drain(){for(;this.tasks.size>0;)await Promise.allSettled([...this.tasks])}},B=class{config;watcher;eventQueue;importer;managedSessionCache=new A;unsubscribeChange;unsubscribeError;unsubscribeDeleted;stats=new O;watcherTasks=new z;progressTimer;constructor(e,t){this.importer=t;let n=e.directory??t.getLogDirectory();this.config={enabled:e.enabled,directory:e.directory,pollIntervalMs:e.pollIntervalMs??1e4,eventsPerSecond:e.eventsPerSecond??100,adapterId:e.adapterId,adapterName:e.adapterName,checkMakaioManaged:e.checkMakaioManaged},this.watcher=new D({directory:n,pattern:this.getLogFilePattern(),pollIntervalMs:this.config.pollIntervalMs}),this.eventQueue=new T({eventsPerSecond:this.config.eventsPerSecond,onEventEmitted:()=>{this.stats.recordEventEmitted(this.logPrefix)}})}shouldSkipFile(e){return!1}validateRecords(e){return e}getMaxRecords(){}buildCursorSessionContext(e){let{adapterSessionId:t,sessionEvent:n,startedEvent:r,state:i,...a}=e;return{...a,adapterSessionId:t,sessionEvent:n,startedEvent:r,state:this.importer.serializeState(i)}}usesJsonFormat(){let e=this.getLogFilePattern();return e.includes(`.json`)&&!e.includes(`.jsonl`)}isEnabled(){return this.config.enabled}isRunning(){return this.watcher.isRunning()}async start(){if(!this.config.enabled||this.isRunning())return;let e=this.config.directory??this.importer.getLogDirectory();console.info(`${this.logPrefix} Starting - watching ${e}`),this.stats.reset(),this.managedSessionCache.clear(),this.progressTimer=setInterval(()=>this.stats.logProgress(this.logPrefix),1e4),this.unsubscribeChange=this.watcher.onChange(e=>{this.trackFileChange(e)}),this.unsubscribeError=this.watcher.onError(({error:e,filePath:t})=>{console.warn(`${this.logPrefix} Error${t?` for ${t}`:``}: ${e.message}`)}),this.unsubscribeDeleted=this.watcher.onDeleted(({filePath:e})=>{this.watcherTasks.track(s.request(r.delete,{filePath:e}).then(()=>void 0).catch(()=>{}))}),await this.watcher.start()}async stop(){this.progressTimer&&=(clearInterval(this.progressTimer),void 0),this.unsubscribeChange?.(),this.unsubscribeError?.(),this.unsubscribeDeleted?.(),this.unsubscribeChange=void 0,this.unsubscribeError=void 0,this.unsubscribeDeleted=void 0,this.watcher.stop(),await this.watcherTasks.drain(),await this.eventQueue.drain(),this.stats.hasActivity()&&console.info(this.stats.stoppedMessage(this.logPrefix))}async dispose(){await this.stop(),this.watcher.dispose(),this.managedSessionCache.clear()}static createDefaultCheckMakaioManaged(){return k()}async updateCursor(e,t,n,i){await s.request(r.set,{filePath:e,bytesRead:t,lastModified:n.toISOString(),sessionContext:i})}async handleFileChange(e){let{filePath:t,changeType:n,stat:i}=e;if(this.shouldSkipFile(t))return;let a=this.usesJsonFormat();n===`rotated`&&await s.request(r.delete,{filePath:t}).catch(()=>{});let o=await N(t,a,e,e=>this.trackFileChange(e));if(o===`retry`)return;let c=o?.sessionContext!==void 0,l=c?o?.bytesRead??0:0;if(j(o?.lastModified,i.mtime,a,n))return;let u=await this.parseFile(t,a?0:l,this.getMaxRecords());M(this.logPrefix,t,u.errors),this.stats.recordFileProcessed();let d=this.validateRecords(u.records),f=u.bytesRead??0;if(d.length===0){await this.maybeUpdateCursor(t,f,l,i.mtime,a,o?.sessionContext);return}c&&o?.sessionContext?await this.handleIncrementalRead(t,d,o.sessionContext,f,i.mtime,a,l):await this.handleFirstRead(t,d,f,i.mtime,a,l)}trackFileChange(e){let t=this.handleFileChange(e).catch(e=>{console.error(`${this.logPrefix} Error handling file change:`,e instanceof Error?e.message:String(e))});this.watcherTasks.track(t)}async handleFirstRead(e,t,n,r,i,a,o=!0){let s=this.importer.extractSessionContext(t);if(await this.isSessionSkipped(s.adapterSessionId)){await this.maybeUpdateCursor(e,n,a,r,i,this.buildCursorSessionContext(s));return}let c=F(t,s,o,(e,t)=>this.importer.processRecords(e,t),e=>this.queueEvent(e));this.trackImportedSession(s.adapterSessionId),await this.queueCursorUpdate(e,n,a,r,i,this.buildCursorSessionContext(s),c)}trackImportedSession(e){this.stats.recordSessionImported(e)}async handleIncrementalRead(e,t,n,i,a,o,c){if(await this.isSessionSkipped(n.adapterSessionId)){await this.maybeUpdateCursor(e,i,c,a,o,n);return}let l;try{l=this.importer.deserializeState(n.state)}catch(t){console.warn(`${this.logPrefix} Corrupted cursor state for ${e}, deleting cursor and re-importing.`,t instanceof Error?t.message:String(t)),await s.request(r.delete,{filePath:e}).catch(t=>{console.warn(`${this.logPrefix} Failed to delete corrupted cursor for ${e}.`,t instanceof Error?t.message:String(t))}),await P(e,a,o,!0,this.logPrefix,{parseFile:(e,t)=>this.parseFile(e,t),validateRecords:e=>this.validateRecords(e),handleFirstRead:(e,t,n,r,i,a,o)=>this.handleFirstRead(e,t,n,r,i,a,o)});return}let u={adapterSessionId:n.adapterSessionId,model:n.model,cwd:n.cwd,sessionEvent:n.sessionEvent,startedEvent:n.startedEvent,state:l},d=this.importer.processRecords(t,u);if(L(u.state)){await P(e,a,o,!1,this.logPrefix,{parseFile:(e,t)=>this.parseFile(e,t),validateRecords:e=>this.validateRecords(e),handleFirstRead:(e,t,n,r,i,a,o)=>this.handleFirstRead(e,t,n,r,i,a,o)});return}let f=I(d,e=>this.queueEvent(e)),p=R(n,u.state,e=>this.importer.serializeState(e));await this.queueCursorUpdate(e,i,c,a,o,p,f)}async maybeUpdateCursor(e,t,n,r,i,a){(t>n||i)&&await this.updateCursor(e,t,r,a)}async isSessionSkipped(e){return this.managedSessionCache.isSkipped(e,e=>this.importer.isMakaioManaged(e),e=>this.stats.recordSessionSkipped(e))}queueEvent(e){return this.eventQueue.queueEvent(e)}queueCursorUpdate(e,t,n,r,i,a,o=[]){return this.eventQueue.queueAfterEvents(()=>this.maybeUpdateCursor(e,t,n,r,i,a),o)}},V=class extends B{trackingFilePaths=new Set;trackingInactiveCount=new Map;lastSeenMtimeMs=new Map;unsubscribePolled;constructor(e,t){super(e,t)}clearTrackingState(e){this.trackingFilePaths.delete(e),this.trackingInactiveCount.delete(e),this.lastSeenMtimeMs.delete(e)}async persistImportedStatus(e){let{session:t}=await s.request(l.getByLogFilePath,{logFilePath:e});return!t||t.importStatus!==`tracking`||(await s.request(l.updateImportStatus,{sessionId:t.sessionId,importStatus:`imported`})).success?!0:(console.warn(`${this.logPrefix} Failed to persist imported status for ${e}`),!1)}async start(){!this.isEnabled()||this.isRunning()||(await super.start(),this.unsubscribePolled=this.watcher.onPolled(e=>{this.onPollCycle(e).catch(e=>{console.error(`${this.logPrefix} Error handling poll cycle:`,e instanceof Error?e.message:String(e))})}),await this.restorePersistedTrackingState())}async stop(){this.unsubscribePolled?.(),this.unsubscribePolled=void 0,await super.stop()}async dispose(){this.trackingFilePaths.clear(),this.trackingInactiveCount.clear(),this.lastSeenMtimeMs.clear(),await super.dispose()}async handleFileChange(e){let{filePath:t,changeType:n,stat:i}=e;if(this.shouldSkipFile(t))return;let{cursor:a}=await s.request(r.get,{filePath:t});if(!a){await this.discoverNewFile(e);return}n===`modified`&&await this.handleModifiedImportedFile(t,e,i.mtime)}async restorePersistedTrackingState(){this.trackingFilePaths.clear(),this.trackingInactiveCount.clear(),this.lastSeenMtimeMs.clear();try{let{sessions:e}=await s.request(l.listImported,{source:this.config.adapterName,importStatus:`tracking`});for(let t of e){if(t.source!==this.config.adapterName)continue;if(!t.logFilePath){(await s.request(l.updateImportStatus,{sessionId:t.sessionId,importStatus:`imported`})).success||console.warn(`${this.logPrefix} Failed to reset tracking status for session ${t.sessionId}`);continue}let e=this.watcher.getTrackedFileMtimeMs(t.logFilePath);if(e===void 0){(await s.request(l.updateImportStatus,{sessionId:t.sessionId,importStatus:`imported`})).success||console.warn(`${this.logPrefix} Failed to reset tracking status for ${t.logFilePath}`);continue}this.trackingFilePaths.add(t.logFilePath),this.trackingInactiveCount.set(t.logFilePath,0),this.lastSeenMtimeMs.set(t.logFilePath,e)}}catch(e){console.warn(`[DiscoveryOrchestrator] Failed to restore persisted tracking state:`,e instanceof Error?e.message:String(e))}}async discoverNewFile(e){let{filePath:t,stat:n}=e,r=await this.importer.extractDiscoveryMetadata(t);if(!(r.hasMessages??!1)){await this.updateCursor(t,0,n.mtime);return}if(await this.isSessionSkipped(r.adapterSessionId)){await this.updateCursor(t,0,n.mtime);return}let i=this.queueEvent({subject:c.session.discovered,payload:{adapterId:this.config.adapterId,adapterName:this.config.adapterName,adapterSessionId:r.adapterSessionId,model:r.model??null,cwd:r.cwd??null,title:r.title,parentAdapterSessionId:r.parentAdapterSessionId??null,forkPointMessageId:r.forkPointMessageId??null,kind:r.kind??`root`,startedAt:r.startedAt,logFilePath:t}});await this.eventQueue.queueAfterEvents(()=>this.updateCursor(t,0,n.mtime),[i])}async handleModifiedImportedFile(e,t,n){let{session:r}=await s.request(l.getByLogFilePath,{logFilePath:e});if(!r){await this.discoverNewFile(t);return}if(r.source===this.config.adapterName&&!(r.importStatus!==`imported`&&r.importStatus!==`tracking`)){if(await super.handleFileChange(t),r.importStatus===`imported`&&!(await s.request(l.updateImportStatus,{sessionId:r.sessionId,importStatus:`tracking`})).success){console.warn(`${this.logPrefix} Failed to persist tracking status for ${e}`);return}this.trackingFilePaths.add(e),this.lastSeenMtimeMs.set(e,n.getTime()),this.trackingInactiveCount.delete(e),this.watcher.triggerImmediatePoll(e)}}async onPollCycle(e){for(let t of[...this.trackingFilePaths]){if(!e.has(t)){await this.persistImportedStatus(t)&&this.clearTrackingState(t);continue}let n=this.watcher.getTrackedFileMtimeMs(t),r=this.lastSeenMtimeMs.get(t);if(!(n===void 0||r===void 0))try{if(n===r){let e=(this.trackingInactiveCount.get(t)??0)+1;e>=3?await this.persistImportedStatus(t)&&this.clearTrackingState(t):this.trackingInactiveCount.set(t,e)}else this.lastSeenMtimeMs.set(t,n),this.trackingInactiveCount.delete(t)}catch(e){console.warn(`${this.logPrefix} Failed to process tracked file ${t}:`,e instanceof Error?e.message:String(e))}}}};export{B as BaseLogOrchestrator,V as DiscoveryOrchestrator,f as parseJsonlFile,p as readFirstJsonlRecords,m as someJsonlRecord};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{pathToFileURL as e}from"node:url";import{mkdir as t,rm as n,writeFile as r}from"node:fs/promises";import{basename as i,join as a}from"node:path";import{randomBytes as o}from"node:crypto";import{WorkflowDefinitionSchema as s,WorkflowError as c,WorkflowErrorCode as l}from"@makaio/framework/contracts";import{tmpdir as u}from"node:os";function d(e,t,n=[]){return{type:`makaio.workflow-worker.ready`,executionId:e,cancelSubject:t,adapters:n}}function f(e){if(typeof e!=`object`||!e)return!1;let t=e;return t.type===`makaio.workflow-worker.ready`&&typeof t.executionId==`string`&&typeof t.cancelSubject==`string`&&Array.isArray(t.adapters)&&t.adapters.every(e=>typeof e==`string`)}function p(e){if(typeof e!=`object`||!e)throw new c(l.NOT_EXECUTABLE,`Invalid workflow module default export: expected an object with 'definition' and 'runtimeHandlers', got ${typeof e}.`);let t=e;if(!(t.runtimeHandlers instanceof Map))throw new c(l.NOT_EXECUTABLE,`Invalid workflow module default export: 'runtimeHandlers' must be a Map instance.`);let n=s.safeParse(t.definition);if(!n.success)throw new c(l.NOT_EXECUTABLE,`Invalid workflow module default export: 'definition' must satisfy WorkflowDefinitionSchema. `+n.error.message);let r=m(t.zodSchemas)?t.zodSchemas:void 0,i=t.runtimeLoopGates;if(i!==void 0&&!(i instanceof Map))throw new c(l.NOT_EXECUTABLE,`Invalid workflow module default export: 'runtimeLoopGates' must be a Map instance when provided.`);return{definition:n.data,runtimeHandlers:t.runtimeHandlers,...r===void 0?{}:{zodSchemas:r},...i===void 0?{}:{runtimeLoopGates:i}}}function m(e){return typeof e==`object`&&!!e&&!Array.isArray(e)&&`gates`in e}async function h(e,s){let c=i(e);if(!c||c===`.`||c===`..`)throw Error(`Invalid workflow source filename: ${e}`);let l=a(u(),`makaio-wf-${o(6).toString(`hex`)}`);await t(l,{recursive:!0});let d=a(l,c.endsWith(`.mjs`)?c:`${c}.mjs`);try{await r(d,s,`utf8`)}catch(e){throw await n(l,{recursive:!0,force:!0}).catch(()=>{}),e}return{tempDir:l,tempPath:d}}function g(e){return typeof e==`object`&&e&&Array.isArray(e.workflows)?e.workflows.map(p):[p(e)]}async function _(t){if(t.kind===`path`)return g((await import(e(t.path).href)).default);let{tempDir:r,tempPath:i}=await h(t.filename,t.source);try{return g((await import(e(i).href)).default)}finally{await n(r,{recursive:!0,force:!0})}}async function v(e){if(e.kind===`definition`)throw new c(l.NOT_EXECUTABLE,`Definition-sourced workers are handled by the workflow executor, not the file loader. Received source: ${JSON.stringify(e)}`);let t=await _(e);if(t.length!==1)throw new c(l.NOT_EXECUTABLE,`loadWorkflowModule expects a single workflow export, but the module exported ${String(t.length)} workflows. Use loadWorkflowModules for bundle exports.`);return t[0]}async function y(e){if(e.source.kind===`definition`){if(e.definition===void 0)throw Error(`Definition-sourced worker config for workflowId "${e.source.workflowId}" is missing the required 'definition' field. Ensure the executor populates WorkflowWorkerConfig.definition before dispatching.`);return{definition:e.definition,runtimeHandlers:new Map}}let t=await v(e.source);return b(e,t),e.definition===void 0?t:{...t,definition:e.definition}}function b(e,t){if(e.workflowId!==e.executionId&&t.definition.id!==e.workflowId)throw new c(l.SOURCE_MISMATCH,`Source-backed workflow for logical workflow '${e.workflowId}' loaded definition '${t.definition.id}'.`)}function x(e){let t=e.indexOf(`.`);if(t<=0||t===e.length-1)throw Error(`Invalid trigger subject: ${e}`);return{subject:e.slice(t+1),$meta:{namespace:e.slice(0,t),isRequest:!1,payload:{},local:!1,channel:!1}}}function S(e,t,n){return new Promise((r,i)=>{if(n.aborted){i(n.reason??Error(`Await-trigger aborted`));return}let a=[];function o(){for(let e of a)e();a.length=0}let s=()=>{o(),i(n.reason??Error(`Await-trigger aborted`))};n.addEventListener(`abort`,s,{once:!0}),a.push(()=>n.removeEventListener(`abort`,s));try{for(let n of t){let t=x(n.subject),i=e.on(t,e=>{o(),r(e.payload)},n.filter?{filter:n.filter}:void 0);a.push(i)}}catch(e){o(),i(e)}})}async function C(e,t,n,r){let i=(t.definition.triggers??[]).filter(e=>e.type===`bus-event`);if(Object.keys(e.triggerPayload).length!==0||i.length===0)return e;let a=await S(n,i,r);return{...e,triggerPayload:a}}export{d as a,_ as i,y as n,f as o,v as r,C as t};
|
package/dist/bus/index.d.mts
CHANGED
|
@@ -3598,6 +3598,25 @@ declare const CanonicalModelSelectionSchema: z.ZodObject<{
|
|
|
3598
3598
|
env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
3599
3599
|
mcpSessionContext: z.ZodOptional<z.ZodObject<{
|
|
3600
3600
|
sessionId: z.ZodString;
|
|
3601
|
+
directTools: z.ZodArray<z.ZodObject<{
|
|
3602
|
+
fullName: z.ZodString;
|
|
3603
|
+
originalName: z.ZodString;
|
|
3604
|
+
serverName: z.ZodString;
|
|
3605
|
+
description: z.ZodOptional<z.ZodString>;
|
|
3606
|
+
inputSchema: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
3607
|
+
exposureMode: z.ZodEnum<{
|
|
3608
|
+
discovery: "discovery";
|
|
3609
|
+
direct: "direct";
|
|
3610
|
+
hidden: "hidden";
|
|
3611
|
+
}>;
|
|
3612
|
+
enabled: z.ZodBoolean;
|
|
3613
|
+
enabledBy: z.ZodOptional<z.ZodEnum<{
|
|
3614
|
+
discovery: "discovery";
|
|
3615
|
+
toolset: "toolset";
|
|
3616
|
+
}>>;
|
|
3617
|
+
enabledAt: z.ZodOptional<z.ZodNumber>;
|
|
3618
|
+
exposed: z.ZodBoolean;
|
|
3619
|
+
}, z.core.$strip>>;
|
|
3601
3620
|
servers: z.ZodArray<z.ZodObject<{
|
|
3602
3621
|
name: z.ZodString;
|
|
3603
3622
|
transport: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
@@ -3634,28 +3653,9 @@ declare const CanonicalModelSelectionSchema: z.ZodObject<{
|
|
|
3634
3653
|
type: z.ZodLiteral<"http">;
|
|
3635
3654
|
}, z.core.$strip>], "type">;
|
|
3636
3655
|
exposureMode: z.ZodEnum<{
|
|
3637
|
-
direct: "direct";
|
|
3638
3656
|
discovery: "discovery";
|
|
3639
|
-
}>;
|
|
3640
|
-
}, z.core.$strip>>;
|
|
3641
|
-
directTools: z.ZodArray<z.ZodObject<{
|
|
3642
|
-
fullName: z.ZodString;
|
|
3643
|
-
originalName: z.ZodString;
|
|
3644
|
-
serverName: z.ZodString;
|
|
3645
|
-
description: z.ZodOptional<z.ZodString>;
|
|
3646
|
-
inputSchema: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
3647
|
-
exposureMode: z.ZodEnum<{
|
|
3648
3657
|
direct: "direct";
|
|
3649
|
-
discovery: "discovery";
|
|
3650
|
-
hidden: "hidden";
|
|
3651
3658
|
}>;
|
|
3652
|
-
enabled: z.ZodBoolean;
|
|
3653
|
-
enabledBy: z.ZodOptional<z.ZodEnum<{
|
|
3654
|
-
discovery: "discovery";
|
|
3655
|
-
toolset: "toolset";
|
|
3656
|
-
}>>;
|
|
3657
|
-
enabledAt: z.ZodOptional<z.ZodNumber>;
|
|
3658
|
-
exposed: z.ZodBoolean;
|
|
3659
3659
|
}, z.core.$strip>>;
|
|
3660
3660
|
discoverableTools: z.ZodArray<z.ZodObject<{
|
|
3661
3661
|
fullName: z.ZodString;
|
|
@@ -3664,8 +3664,8 @@ declare const CanonicalModelSelectionSchema: z.ZodObject<{
|
|
|
3664
3664
|
description: z.ZodOptional<z.ZodString>;
|
|
3665
3665
|
inputSchema: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
3666
3666
|
exposureMode: z.ZodEnum<{
|
|
3667
|
-
direct: "direct";
|
|
3668
3667
|
discovery: "discovery";
|
|
3668
|
+
direct: "direct";
|
|
3669
3669
|
hidden: "hidden";
|
|
3670
3670
|
}>;
|
|
3671
3671
|
enabled: z.ZodBoolean;
|