@makaio/framework 1.0.0-dev-1785409369816 → 1.0.0-dev-1786014320559
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 +4 -3
- package/dist/{account-identity-DFx8pwKL.mjs → account-identity-DGpXd8h_.mjs} +1 -1
- package/dist/adapter-BkdJaOOG.mjs +1 -0
- package/dist/adapter-subsystem/index.d.mts +138 -6
- package/dist/adapter-subsystem/index.mjs +1 -1
- package/dist/adapters/acp-client/index.d.mts +105 -7
- package/dist/adapters/acp-client/index.mjs +2 -2
- package/dist/adapters/config/index.d.mts +1 -1
- package/dist/adapters/config/index.mjs +1 -1
- package/dist/adapters/index.d.mts +362 -801
- package/dist/adapters/index.mjs +6 -6
- package/dist/adapters/node.d.mts +1 -1
- package/dist/adapters/node.mjs +1 -1
- package/dist/adapters/stream-session/index.d.mts +28 -7
- package/dist/adapters/stream-session/index.mjs +1 -1
- package/dist/agent-namespace-D51PODFf.mjs +1 -0
- package/dist/{ajv-DD3SIL2i.mjs → ajv-L5fKxaia.mjs} +2 -2
- package/dist/artifact-k3veR4Yx.mjs +1 -0
- package/dist/attach-error-BSlc7JfL.mjs +1 -0
- package/dist/{auth-DGEdiHF6.mjs → auth-A1K_7q-8.mjs} +1 -1
- package/dist/authority-state-bootstrap-YwtEImIB.mjs +1 -0
- package/dist/automation-trigger-CuSdQwir.mjs +1 -0
- package/dist/await-trigger-ph1S0zVI.mjs +1 -0
- package/dist/bus/index.d.mts +19 -5
- package/dist/bus/index.mjs +1 -1
- package/dist/bus-BIj0_aG6.mjs +1 -0
- package/dist/bus-CqgrphNE.mjs +2 -0
- package/dist/{canonical-model-BAytQ4NV.mjs → canonical-model-DJASlL4m.mjs} +1 -1
- package/dist/{capabilities-BQEp34ir.mjs → capabilities-Bqckjh7G.mjs} +1 -1
- package/dist/{client-DbS847wW.mjs → client-BL5__WT0.mjs} +1 -1
- package/dist/clients/index.d.mts +2 -2
- package/dist/clients/index.mjs +1 -1
- package/dist/clients/managed-install.d.mts +1 -1
- package/dist/clients/managed-install.mjs +1 -1
- package/dist/{compression-74fFeBha.mjs → compression-BbttSqm8.mjs} +1 -1
- package/dist/{config-namespace-TVX-hG4I.mjs → config-namespace-CyzeLWSg.mjs} +1 -1
- package/dist/{context-resolution-DdyhpH4L.d.mts → context-resolution-CW0ya4QO.d.mts} +13 -13
- package/dist/contracts/adapter/index.d.mts +3 -3
- package/dist/contracts/adapter/index.mjs +1 -1
- package/dist/contracts/adapter/schemas/session-lineage.d.mts +1 -1
- package/dist/contracts/artifact/index.d.mts +3 -3
- package/dist/contracts/artifact/index.mjs +1 -1
- package/dist/contracts/auth/index.d.mts +2 -2
- package/dist/contracts/auth/index.mjs +1 -1
- package/dist/contracts/automation-trigger/index.d.mts +4 -0
- package/dist/contracts/automation-trigger/index.mjs +1 -0
- package/dist/contracts/canonical-model/index.d.mts +1 -1
- package/dist/contracts/canonical-model/index.mjs +1 -1
- package/dist/contracts/capabilities/index.d.mts +1 -1
- package/dist/contracts/capabilities/index.mjs +1 -1
- package/dist/contracts/client/index.d.mts +2 -2
- package/dist/contracts/client/index.mjs +1 -1
- package/dist/contracts/common/index.d.mts +1 -1
- package/dist/contracts/config/index.d.mts +1 -1
- package/dist/contracts/config/index.mjs +1 -1
- package/dist/contracts/extension/index.d.mts +6 -5
- package/dist/contracts/extension/index.mjs +1 -1
- package/dist/contracts/facet/index.d.mts +1 -1
- package/dist/contracts/facet/index.mjs +1 -1
- package/dist/contracts/harness/index.d.mts +1 -1
- package/dist/contracts/harness/index.mjs +1 -1
- package/dist/contracts/host/index.d.mts +1 -1
- package/dist/contracts/host/index.mjs +1 -1
- package/dist/contracts/index.d.mts +181 -120
- package/dist/contracts/index.mjs +1 -1
- package/dist/contracts/materialization/index.d.mts +3 -3
- package/dist/contracts/materialization/index.mjs +1 -1
- package/dist/contracts/model-registry/index.d.mts +1 -1
- package/dist/contracts/model-registry/index.mjs +1 -1
- package/dist/contracts/native-session-supervisor/index.d.mts +1 -1
- package/dist/contracts/native-session-supervisor/index.mjs +1 -1
- package/dist/contracts/platform/index.d.mts +1 -1
- package/dist/contracts/platform/index.mjs +1 -1
- package/dist/contracts/provider/index.d.mts +2 -2
- package/dist/contracts/provider/index.mjs +1 -1
- package/dist/contracts/reaction/index.d.mts +2 -0
- package/dist/contracts/reaction/index.mjs +1 -0
- package/dist/contracts/session/index.d.mts +3 -3
- package/dist/contracts/session/index.mjs +1 -1
- package/dist/contracts/shared/index.d.mts +3 -3
- package/dist/contracts/shared/index.mjs +1 -1
- package/dist/contracts/skill/index.d.mts +1 -1
- package/dist/contracts/skill/index.mjs +1 -1
- package/dist/contracts/telemetry/index.d.mts +1 -1
- package/dist/contracts/telemetry/index.mjs +1 -1
- package/dist/contracts/timeout/index.d.mts +1 -1
- package/dist/contracts/timeout/index.mjs +1 -1
- package/dist/contracts/toast/index.mjs +1 -1
- package/dist/contracts/variant/index.d.mts +1 -1
- package/dist/contracts/variant/index.mjs +1 -1
- package/dist/contracts/worker-node/index.d.mts +1 -1
- package/dist/contracts/worker-node/index.mjs +1 -1
- package/dist/contracts/workflow/index.d.mts +3 -3
- package/dist/contracts/workflow/index.mjs +1 -1
- package/dist/contribution-BH-wKsWI.d.mts +35 -0
- package/dist/core/index.d.mts +60 -1
- package/dist/core/index.mjs +1 -1
- package/dist/definition-BYgHlmMw.d.mts +375 -0
- package/dist/{definition-CJfiv8xm.mjs → definition-CDg-Jq1T.mjs} +1 -1
- package/dist/{detached-extension-handle-Ddfquy5_.mjs → detached-extension-handle-DKd17UB6.mjs} +1 -1
- package/dist/drizzle/0031_adapter_session_currency.sql +66 -0
- package/dist/drizzle/0032_native_session_ownership.sql +77 -0
- package/dist/drizzle/0033_m_msf3hu2s.sql +1 -0
- package/dist/drizzle/meta/_journal.json +21 -0
- package/dist/{execution-attempt-repository-DWXKY41_.d.mts → execution-attempt-repository-DFyAnchJ.d.mts} +1 -1
- package/dist/{execution-target-Cf645pDj.mjs → execution-target-ByNwZh5-.mjs} +1 -1
- package/dist/extension-DMdmj9gi.mjs +1 -0
- package/dist/extension-DUmibvMk.mjs +1 -0
- package/dist/extension-context-CqfddWXs.d.mts +295 -0
- package/dist/{extension-discovery-CQRdbVQ6.d.mts → extension-discovery-Fhps4icD.d.mts} +2 -0
- package/dist/{extension-namespace-Yu41YepM.mjs → extension-namespace-B554RmCp.mjs} +1 -1
- package/dist/extension-package-provenance-Dh_-Z-tE.mjs +1 -0
- package/dist/{filesystem-service-DlP2HfDg.mjs → filesystem-service-FAtd9gWH.mjs} +1 -1
- package/dist/framework-packages-D_2hBZ-p.mjs +1 -0
- package/dist/git/index.mjs +1 -1
- package/dist/{globby-1yCVCk8s.mjs → globby-BBLuT_vy.mjs} +1 -1
- package/dist/handlers-2yd00VEq.mjs +57 -0
- package/dist/{harness-DpwsFsE7.mjs → harness-KxbWGL4I.mjs} +1 -1
- package/dist/{hook-responses-Dh1PWXqJ.d.mts → hook-responses-CQZIv3L3.d.mts} +2 -293
- package/dist/{index-DCZ8BX9S.d.mts → index-3eUIRy7T.d.mts} +304 -74
- package/dist/{index-brqfk9JQ.d.mts → index-B4xdTT3c.d.mts} +6 -6
- package/dist/{index-4VfqCjl2.d.mts → index-B5op6AsV.d.mts} +49 -39
- package/dist/{index-CMgLxw14.d.mts → index-B6GOuxVy2.d.mts} +18 -18
- package/dist/index-BFhJe-Sb.d.mts +302 -0
- package/dist/{index-EjsSBQXy2.d.mts → index-BSQ30wYP.d.mts} +1 -1
- package/dist/{index-DlsHL9Jg.d.mts → index-BiAYXjgM.d.mts} +25 -25
- package/dist/{index-B9UW_vPM.d.mts → index-ByZi9bml.d.mts} +4967 -1509
- package/dist/{index-BVlXneHH.d.mts → index-C7HcDpHE.d.mts} +14 -10
- package/dist/{index-BskPjMet.d.mts → index-CB4aIUoF.d.mts} +16 -16
- package/dist/{index-cqLS1eFV.d.mts → index-CDusRXio.d.mts} +70 -71
- package/dist/{index-DnG-QFpG.d.mts → index-CSN_0sCo.d.mts} +18 -1
- package/dist/{index-BAXkicoQ.d.mts → index-C__EQfKa.d.mts} +1 -1
- package/dist/{index-CLvQsL6s2.d.mts → index-CqQYgsbB.d.mts} +1660 -218
- package/dist/{index-BNMnIe-j.d.mts → index-CwDiyJkJ.d.mts} +276 -705
- package/dist/{index-GHASUiem.d.mts → index-DBadVauL.d.mts} +1 -1
- package/dist/{index-gUhidukN.d.mts → index-DI7-tIL3.d.mts} +299 -2
- package/dist/index-DP3o_13U.d.mts +165 -0
- package/dist/{index-DSBT83c0.d.mts → index-DcYAAJ0V.d.mts} +24 -3
- package/dist/{index-D5Nb7IEP.d.mts → index-Dch_AxUg.d.mts} +77 -39
- package/dist/{index-D_ODXsBv.d.mts → index-DcqSUsX6.d.mts} +35 -79
- package/dist/{index-B0Kf_OWi.d.mts → index-DgOfgjx3.d.mts} +1 -1
- package/dist/{index-Ds5_rDEJ.d.mts → index-DwLRZscE.d.mts} +1 -12
- package/dist/{index-DkiTJM5p.d.mts → index-DxYDRoDE2.d.mts} +17 -3
- package/dist/{index-CRvpVIqA.d.mts → index-OsbtyMgx2.d.mts} +10 -1
- package/dist/{index-BaZeoZoS.d.mts → index-bIe_57cL.d.mts} +1 -1
- package/dist/{json-value-Brslhqbm.d.mts → json-value-C1RGgS0a.d.mts} +16 -1
- package/dist/{json-value-DmU8ibo_.mjs → json-value-D57aJhVn.mjs} +1 -1
- 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 +9 -9
- package/dist/kernel/index.mjs +1 -1
- package/dist/kernel/namespace/index.d.mts +2 -2
- 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-C7-s68uf.mjs → lib-B_rJ6r0T.mjs} +1 -1
- package/dist/{lib-DErgth_E.mjs → lib-CnOAtohU.mjs} +1 -1
- package/dist/load-extensions-CW9uzNR5.mjs +1 -0
- package/dist/{load-extensions-BxsDB87B.d.mts → load-extensions-DUpaMQ7G.d.mts} +17 -13
- package/dist/{materialization-Jd198K3y.mjs → materialization-CcpCDhXh.mjs} +1 -1
- package/dist/mcp-http-server/index.mjs +1 -1
- package/dist/model-ZH3L1dPW.mjs +1 -0
- package/dist/{namespace-BqxtpNAn.mjs → namespace-B7bntOB8.mjs} +1 -1
- package/dist/{namespace-CWUDFGOy.mjs → namespace-BFqkUTJp.mjs} +1 -1
- package/dist/{namespace-CjjFvrIA2.d.mts → namespace-CAy4P5mW.d.mts} +29 -29
- package/dist/{namespace-B8uKAzWJ.mjs → namespace-CFjdyNXG.mjs} +1 -1
- package/dist/{namespace-DV-Hr9sZ.d.mts → namespace-ChnRTUG4.d.mts} +11 -1
- package/dist/namespace-CxrOLeeP.mjs +1 -0
- package/dist/{namespace-g_mbIZq_.d.mts → namespace-DSlfFhB1.d.mts} +410 -26
- package/dist/{namespace-CupOzbRv.d.mts → namespace-DwZwGXgF.d.mts} +24 -20
- package/dist/{namespace-TseEI3Pu.d.mts → namespace-Rge9mMI-.d.mts} +36 -28
- package/dist/{native-session-supervisor-DRx0MX-d.mjs → native-session-supervisor-fZYPUk0-.mjs} +1 -1
- package/dist/node/bus-server/index.d.mts +1 -1
- package/dist/node/bus-server/index.mjs +1 -1
- package/dist/node/bus-server/server-lifecycle.d.mts +1 -1
- package/dist/node/bus-server/server-lifecycle.mjs +1 -1
- package/dist/{orchestrator-shared-BHCv-l2O.d.mts → orchestrator-shared-B-KRW1Z0.d.mts} +1 -0
- package/dist/orchestrator-shared-CTCZc6Vl.mjs +1 -0
- package/dist/ownership-memory-handler-Bblp93YC.mjs +1 -0
- package/dist/{package-DWMxGfzK.d.mts → package-Bf3hyuzs.d.mts} +234 -84
- package/dist/package-CBdvjyyZ.mjs +1 -0
- package/dist/package-CddkNbZI.mjs +1 -0
- package/dist/package-ypz4rKvn.mjs +7 -0
- package/dist/package.json +1 -1
- package/dist/{profile-BTAI31Nt.mjs → profile-BtznZlq3.mjs} +1 -1
- package/dist/{provider-context-Dq53Cgzz.mjs → provider-context-BrLZYnDW.mjs} +1 -1
- package/dist/{provider-context-PZIQWcqQ.mjs → provider-context-Dh-VOOYF.mjs} +1 -1
- package/dist/reaction-BS0k4eNN.mjs +1 -0
- package/dist/{registry-wfF2uTty.mjs → registry-BO_bOoky.mjs} +2 -2
- package/dist/{resolved-DZgqql2Z.mjs → resolved-DMByz1_2.mjs} +1 -1
- package/dist/rules/index.d.mts +1 -1
- package/dist/rules/index.mjs +1 -1
- package/dist/rules/schemas.d.mts +1 -1
- package/dist/runtime-bun/index.mjs +1 -1
- package/dist/runtime-node/extension-discovery.d.mts +1 -1
- package/dist/runtime-node/extension-validation.d.mts +1 -1
- package/dist/runtime-node/extension-validation.mjs +1 -1
- package/dist/runtime-node/index.d.mts +4 -4
- package/dist/runtime-node/index.mjs +24 -24
- package/dist/runtime-node/makaio-config.d.mts +1 -1
- package/dist/runtime-node/makaio-config.mjs +1 -1
- package/dist/runtime-node/workflow-worker/index.d.mts +1 -1
- package/dist/runtime-node/workflow-worker/index.mjs +1 -1
- package/dist/runtime-node/workflow-worker/worker-entry.mjs +1 -1
- package/dist/{schema-Dd-e89MO.mjs → schema-DBG7Jq5_.mjs} +1 -1
- package/dist/{schema-DKUb4rkr.d.mts → schema-DKTzriEY.d.mts} +519 -9
- package/dist/{schemas-DrVg4aQQ.d.mts → schemas-9qeeHGBf.d.mts} +8 -8
- package/dist/{schemas-CRB2O5zo.mjs → schemas-BqD8LlQw.mjs} +1 -1
- package/dist/{schemas-DaHQzpgm.mjs → schemas-CsjN7cmM.mjs} +1 -1
- package/dist/schemas-DSkBOdx_.mjs +1 -0
- package/dist/schemas-DplrlAyR.mjs +1 -0
- package/dist/{schemas-DnYiAvfz.d.mts → schemas-VbB1FTxx.d.mts} +24 -20
- package/dist/scoped-bus-ClwTWqX8.mjs +1 -0
- package/dist/{selection-BNwTKEVT.mjs → selection-7Ku8DBnh.mjs} +1 -1
- package/dist/services/adapter-runtime/index.d.mts +3 -3
- package/dist/services/adapter-runtime/index.mjs +1 -1
- package/dist/services/adapter-runtime/namespace.d.mts +1 -1
- package/dist/services/adapter-runtime/schemas.d.mts +1 -1
- package/dist/services/adapter-subsystem/index.d.mts +4 -4
- package/dist/services/adapter-subsystem/index.mjs +1 -1
- package/dist/services/adapter-subsystem/namespace.d.mts +2 -2
- package/dist/services/adapter-subsystem/namespace.mjs +1 -1
- package/dist/services/agent-runtime/index.d.mts +2 -2
- package/dist/services/agent-runtime/namespace.d.mts +1 -1
- package/dist/services/agent-runtime/schemas.d.mts +1 -1
- package/dist/services/automation-trigger/index.d.mts +943 -0
- package/dist/services/automation-trigger/index.mjs +1 -0
- package/dist/services/capability/index.d.mts +1 -1
- package/dist/services/capability/index.mjs +1 -1
- package/dist/services/codebase/index.d.mts +2 -2
- package/dist/services/codebase/namespace.d.mts +1 -1
- package/dist/services/codebase/schemas.d.mts +1 -1
- package/dist/services/compression/index.d.mts +2 -2
- package/dist/services/compression/namespace.d.mts +1 -1
- package/dist/services/compression/schemas.d.mts +1 -1
- package/dist/services/context-rules/index.d.mts +4 -4
- package/dist/services/context-rules/index.mjs +1 -1
- package/dist/services/execution-target/index.d.mts +3 -3
- package/dist/services/execution-target/index.mjs +1 -1
- package/dist/services/execution-target/namespace.d.mts +1 -1
- package/dist/services/execution-target/namespace.mjs +1 -1
- package/dist/services/execution-target/schemas.d.mts +1 -1
- package/dist/services/execution-target/schemas.mjs +1 -1
- package/dist/services/filesystem/index.d.mts +1 -1
- package/dist/services/filesystem/index.mjs +1 -1
- package/dist/services/filesystem/namespace.d.mts +6 -6
- package/dist/services/filesystem/schemas.d.mts +3 -3
- package/dist/services/git/namespace.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 +459 -93
- package/dist/services/index.mjs +1 -1
- package/dist/services/log-import/browser.d.mts +2 -2
- package/dist/services/log-import/index.d.mts +3 -3
- package/dist/services/log-import/log-import.d.mts +1 -1
- package/dist/services/log-import/log-import.mjs +1 -1
- package/dist/services/log-import/namespace.mjs +1 -1
- package/dist/services/log-import/schemas.mjs +1 -1
- package/dist/services/materialization/index.d.mts +1 -1
- package/dist/services/materialization/index.mjs +1 -1
- package/dist/services/model-registry/index.d.mts +1 -1
- package/dist/services/model-registry/index.mjs +1 -1
- package/dist/services/preferences/index.d.mts +2 -2
- package/dist/services/preferences/schemas.d.mts +1 -1
- package/dist/services/preferences/storage-namespace.d.mts +2 -2
- package/dist/services/provider-context/index.d.mts +1 -1
- package/dist/services/provider-context/index.mjs +1 -1
- package/dist/services/provider-runtime/index.mjs +1 -1
- package/dist/services/session/handlers/index.d.mts +2 -2
- package/dist/services/session/handlers/index.mjs +1 -1
- package/dist/services/session/index.d.mts +10 -10
- package/dist/services/session/index.mjs +1 -1
- package/dist/services/session/messages/namespace.d.mts +1 -1
- package/dist/services/session/messages/namespace.mjs +1 -1
- package/dist/services/session/orchestrator-testing/index.d.mts +1 -1
- package/dist/services/session/orchestrator-testing/index.mjs +1 -1
- package/dist/services/session/session-events/namespace.d.mts +1 -1
- package/dist/services/session/session-events/namespace.mjs +1 -1
- package/dist/services/session/storage/namespace.d.mts +1 -1
- package/dist/services/session/storage/schema.d.mts +2 -2
- package/dist/services/session/storage/schema.mjs +1 -1
- package/dist/services/session/testing/index.d.mts +12 -4
- package/dist/services/session/testing/index.mjs +36 -4
- 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 +8 -8
- package/dist/services/settings/namespace.mjs +1 -1
- package/dist/services/settings/storage/clients-namespace.d.mts +1 -1
- package/dist/services/settings/storage/clients-namespace.mjs +1 -1
- package/dist/services/settings/storage/extension-configs/namespace.d.mts +3 -3
- package/dist/services/settings/storage/index.d.mts +3 -3
- package/dist/services/settings/storage/index.mjs +1 -1
- package/dist/services/settings/storage/providers-namespace.d.mts +1 -1
- package/dist/services/settings/storage/providers-namespace.mjs +1 -1
- package/dist/services/subagent/index.d.mts +1 -1
- package/dist/services/subagent/index.mjs +1 -1
- package/dist/services/subagent-template/index.d.mts +2 -2
- package/dist/services/subagent-template/namespace.d.mts +1 -1
- package/dist/services/subagent-template/schemas.d.mts +1 -1
- package/dist/services/tool-approval/index.d.mts +1 -1
- package/dist/services/tool-approval/index.mjs +1 -1
- package/dist/services/tools/index.d.mts +1 -1
- package/dist/services/tools/index.mjs +1 -1
- package/dist/services/tray-menu/index.d.mts +3 -3
- package/dist/services/tray-menu/index.mjs +1 -1
- package/dist/services/tray-menu/namespace.d.mts +1 -1
- package/dist/services/tray-menu/schemas.d.mts +1 -1
- package/dist/services/turn/index.d.mts +1 -1
- package/dist/services/turn/namespace.d.mts +1 -1
- package/dist/services/workflow-transitions/index.d.mts +1 -1
- package/dist/services/workflow-transitions/index.mjs +1 -1
- package/dist/session-BMy2kRpX.mjs +90 -0
- package/dist/session-Cipx34j6.mjs +1 -0
- package/dist/{session-lineage-B_JW5LpF.d.mts → session-lineage-B_PVa1XN.d.mts} +1 -1
- package/dist/shared-BFVuCDPx.mjs +1 -0
- package/dist/{skill-BR6rkfLe.mjs → skill-C1D51nhh.mjs} +1 -1
- package/dist/{src-DD0v-nIj.mjs → src-xbmzokNe.mjs} +1 -1
- package/dist/storage/drizzle/client.d.mts +1 -1
- package/dist/storage/drizzle/client.mjs +1 -1
- package/dist/storage/drizzle/index.d.mts +42 -2
- package/dist/storage/drizzle/index.mjs +1 -1
- package/dist/storage/handlers/drizzle/index.d.mts +1 -1
- package/dist/storage/handlers/drizzle/index.mjs +1 -1
- package/dist/storage/handlers/index.d.mts +1 -1
- package/dist/storage/handlers/index.mjs +1 -1
- package/dist/tool-approval-service-BVgN9Q1r.mjs +1 -0
- package/dist/{tools-PdG9fO1M.mjs → tools-DxwHox1a.mjs} +1 -1
- package/dist/{transition-Du3MQzJV.d.mts → transition-BF1nevaC.d.mts} +7 -34
- package/dist/{types-DMLDHFR9.d.mts → types-BNjPhj_a.d.mts} +1 -1
- package/dist/{types-Dzrwa1GY.d.mts → types-CijlWGwb.d.mts} +2036 -618
- package/dist/types-ClpEaoAm.d.mts +2917 -0
- package/dist/{types-D7_kevBK.d.mts → types-xCdGghb2.d.mts} +1 -1
- package/dist/ui-hooks/index.d.mts +29 -2
- package/dist/ui-hooks/index.mjs +1 -1
- package/dist/ui-kernel/index.d.mts +2 -2
- package/dist/ui-kernel/pages/schemas.d.mts +1 -1
- package/dist/ui-views/index.d.mts +1 -1
- package/dist/utils/index.d.mts +77 -1
- package/dist/utils/index.mjs +2 -2
- package/dist/{version-CoCeMxDT.mjs → version-BfNnVAGr.mjs} +1 -1
- package/dist/{view-builder-DeFd-k7C.d.mts → view-builder-Bc9dx6jF.d.mts} +1 -1
- package/dist/{visibility-qhGWmpSJ.mjs → visibility-Dl1o2I01.mjs} +1 -1
- package/dist/{worker-node-Bl9_vqYi.mjs → worker-node-BDOYPEpi.mjs} +1 -1
- package/dist/{worker-node-DZTuT1DS.mjs → worker-node-DJ41Tr-F.mjs} +1 -1
- package/dist/workflow-Hzc5jlnV.mjs +1 -0
- package/dist/workflow-engine/execution-attempt-repository.d.mts +1 -1
- package/dist/workflow-engine/index.d.mts +114 -395
- package/dist/workflow-engine/index.mjs +1 -1
- package/dist/workflow-engine/package.d.mts +1 -1
- package/dist/workflow-engine/package.mjs +1 -1
- package/dist/workflow-engine/provider-operation.d.mts +1 -1
- package/dist/workflow-engine/testing/index.d.mts +2 -2
- package/dist/workflow-engine/testing/index.mjs +1 -1
- package/dist/workflow-engine/testing/sqlite.d.mts +1 -1
- package/dist/workflow-engine/testing/sqlite.mjs +27 -27
- package/dist/workflow-engine/workflow-orchestrator.mjs +1 -1
- package/dist/workflow-engine/workflow-trigger-binding-consumer.d.mts +46 -0
- package/dist/workflow-engine/workflow-trigger-binding-consumer.mjs +1 -0
- package/dist/{workflow-transitions-DSc45ixc.mjs → workflow-transitions-DM0fN_eP.mjs} +1 -1
- package/dist/workflow-worker-DARC7UZl.mjs +1 -0
- package/dist/zod-json-schema-BAGAFfCN.mjs +1 -0
- package/package.json +29 -1
- package/dist/adapter-D5c5LrPN.mjs +0 -1
- package/dist/artifact-DGiXqb11.mjs +0 -1
- package/dist/attach-error-C3tngg6J.mjs +0 -1
- package/dist/authority-state-bootstrap-GPL_tqaT.mjs +0 -1
- package/dist/await-trigger-I3lrepb8.mjs +0 -1
- package/dist/bus-B6SAjgOC.mjs +0 -2
- package/dist/bus-C2l3K74u.mjs +0 -1
- package/dist/extension-DCA4pYrY.mjs +0 -1
- package/dist/extension-hjOPs10e.mjs +0 -1
- package/dist/framework-packages-C3RWfJDk.mjs +0 -1
- package/dist/handlers-CfnLyLfE.mjs +0 -57
- package/dist/load-extensions-D0DfjYLC.mjs +0 -1
- package/dist/model-BGgVmRnN.mjs +0 -1
- package/dist/namespace-DJfUADSV.mjs +0 -1
- package/dist/orchestrator-shared-BxmHCPvx.mjs +0 -1
- package/dist/package-CNUPPcU1.mjs +0 -7
- package/dist/package-Dft_RItb.mjs +0 -1
- package/dist/schemas-Cm09dXL4.mjs +0 -1
- package/dist/scoped-bus-C9BdNwfM.mjs +0 -1
- package/dist/session-BOGCd18q.mjs +0 -1
- package/dist/session-BTFiDoGz.mjs +0 -76
- package/dist/shared-BQ0CHIVy.mjs +0 -1
- package/dist/tool-approval-service-kBA0fRzm.mjs +0 -1
- package/dist/types-CJ_QZ1yW.d.mts +0 -1487
- package/dist/workflow-BfDbgtIQ.mjs +0 -1
- package/dist/workflow-worker-BN9XPxQO.mjs +0 -1
- package/dist/{adapter-auth-runtime-DO-FVTXg.mjs → adapter-auth-runtime-D9Lnl7cc.mjs} +0 -0
- package/dist/{adapter-binding-DQchUtrK.d.mts → adapter-binding-B-FBoCys.d.mts} +0 -0
- package/dist/{attempt-record-codec-CqO1_XnE.mjs → attempt-record-codec-DaFLKR5C.mjs} +0 -0
- package/dist/{base-orchestrator-BilsQNW1.d.mts → base-orchestrator-D9u4NyiM.d.mts} +0 -0
- package/dist/{capability-service-BqiLlRGA.mjs → capability-service-CJHNkjvm.mjs} +0 -0
- package/dist/{client-B--e2qcU.d.mts → client-4ihewPUm.d.mts} +0 -0
- package/dist/{client-binary-version-verifier-taewmKTY.mjs → client-binary-version-verifier-DJajc_Ff.mjs} +0 -0
- package/dist/{client-binary-version-verifier-CgjM_vGF.d.mts → client-binary-version-verifier-jDDZ64Ah.d.mts} +0 -0
- package/dist/{clients-namespace-DfxjG2ZP.d.mts → clients-namespace-DFWuUawf.d.mts} +0 -0
- package/dist/{config-namespace-BCqvufbD.d.mts → config-namespace-D1kyZj0B.d.mts} +0 -0
- package/dist/{create-static-mount-bbQhTt6W.mjs → create-static-mount-9tnGpIeK.mjs} +0 -0
- package/dist/{cross-spawn-B57KZuns.mjs → cross-spawn-BIgueAqr.mjs} +0 -0
- package/dist/{cursor-storage-DIFK_9hg.mjs → cursor-storage-ROWfiTh1.mjs} +0 -0
- package/dist/{definition-gnKgXU91.d.mts → definition-DB-kKc0d.d.mts} +0 -0
- package/dist/{definitions-xrrY0wgz.mjs → definitions-CF6YmEhL.mjs} +0 -0
- package/dist/{descriptor-to-package-DvF08krT.mjs → descriptor-to-package-BecVCopf.mjs} +0 -0
- package/dist/{drizzle-z_0SiGY8.mjs → drizzle-CPv3vdTE.mjs} +0 -0
- package/dist/{esm-CltRnX8_.mjs → esm-CBFWM8u_.mjs} +0 -0
- package/dist/{event-CmVjR6Ib.mjs → event-DR8U9Efx.mjs} +0 -0
- package/dist/{facet-BCI00njh.mjs → facet-DVsW12iF.mjs} +0 -0
- package/dist/{filesystem-service-CQ9yVkSz.d.mts → filesystem-service-Cm2RHKBa.d.mts} +0 -0
- package/dist/{handler-Cbv9FqDO.mjs → handler-Bqlk-6BY.mjs} +0 -0
- package/dist/{host-Caq6ZfSJ.mjs → host-k5yoyKHg.mjs} +0 -0
- package/dist/{identity-D6guMtmi.mjs → identity-DC3Pk0ps.mjs} +0 -0
- package/dist/{index-dtsLKOID.d.mts → index-42UdYStR.d.mts} +0 -0
- package/dist/{index-DR40QWlw.d.mts → index-BJAB-BW_.d.mts} +0 -0
- package/dist/{index-Dm1nUxCF.d.mts → index-BJMezANn.d.mts} +0 -0
- package/dist/{index-CnMu8BQl.d.mts → index-BQprJNA_.d.mts} +0 -0
- package/dist/{index-Cv-o5Krs.d.mts → index-BRCrFirq.d.mts} +0 -0
- package/dist/{index-BVRQEpAg.d.mts → index-BRzHs7Bx.d.mts} +6 -6
- /package/dist/{index-DXN_L5D6.d.mts → index-BSbGB23v.d.mts} +0 -0
- /package/dist/{index-vA--0lOM.d.mts → index-BVcQcphK.d.mts} +0 -0
- /package/dist/{index-ye0oklfU.d.mts → index-BcvqDfcN.d.mts} +0 -0
- /package/dist/{index-CGZQVTid.d.mts → index-BeENojSx2.d.mts} +0 -0
- /package/dist/{index-DjgLchuQ.d.mts → index-Beo_Ik8-.d.mts} +0 -0
- /package/dist/{index-sS6KUlrx.d.mts → index-BgGe9WZz.d.mts} +0 -0
- /package/dist/{index-CWHfOz6d.d.mts → index-CK3f0bAL.d.mts} +0 -0
- /package/dist/{index-DZunhZec.d.mts → index-CQuRTeRa.d.mts} +0 -0
- /package/dist/{index-jTaAHsul.d.mts → index-CRmE88hi.d.mts} +0 -0
- /package/dist/{index-CjdRdsd0.d.mts → index-CvW9_SzR.d.mts} +0 -0
- /package/dist/{index-ByKi34v5.d.mts → index-CxSSdIZz.d.mts} +0 -0
- /package/dist/{index-vcSj12YQ.d.mts → index-E4SET1AA.d.mts} +0 -0
- /package/dist/{index-DN4NOCqN2.d.mts → index-Ol9RBB0W2.d.mts} +0 -0
- /package/dist/{index-BIdsFcQs2.d.mts → index-aoxdnhJ42.d.mts} +0 -0
- /package/dist/{index-SsBHjUqA.d.mts → index-nydhGvXa.d.mts} +0 -0
- /package/dist/{jsonl-transport-bQl3JwIu.mjs → jsonl-transport-Bp_6pB2a.mjs} +0 -0
- /package/dist/{lib-DOBXZmYX.mjs → lib-Bwdd2m81.mjs} +0 -0
- /package/dist/{model-registry-CmgcPDH3.mjs → model-registry-Y854mUml.mjs} +0 -0
- /package/dist/{model-registry-xyBKSye-.mjs → model-registry-yURX738J.mjs} +0 -0
- /package/dist/{modes-BheyN7SS.mjs → modes-DmUsjHdV.mjs} +0 -0
- /package/dist/{namespace-HO2J9sO8.mjs → namespace-B9FEGuEu.mjs} +0 -0
- /package/dist/{namespace-jDhZjw-i.d.mts → namespace-Bi3CmYQy.d.mts} +0 -0
- /package/dist/{namespace-GPA7zots.d.mts → namespace-BusZERU8.d.mts} +0 -0
- /package/dist/{namespace-BOkKoq34.d.mts → namespace-ByP1Iipi.d.mts} +0 -0
- /package/dist/{namespace-YytVKIgI.d.mts → namespace-C1D77w7U.d.mts} +0 -0
- /package/dist/{namespace-CErHuXtb.d.mts → namespace-C6CVEGH8.d.mts} +0 -0
- /package/dist/{namespace-C-9si-fV.mjs → namespace-CfIW0hpQ.mjs} +0 -0
- /package/dist/{namespace-YxU1xf-K.mjs → namespace-CkBbNFSU.mjs} +0 -0
- /package/dist/{namespace-DWCEo-9M.d.mts → namespace-DX1Ec15L.d.mts} +0 -0
- /package/dist/{namespace-CWGKCNZm.mjs → namespace-DbNWsPFY.mjs} +0 -0
- /package/dist/{namespace-Cv1RFP7n.d.mts → namespace-Dgg0uoe6.d.mts} +0 -0
- /package/dist/{namespace-tGRAod3o.d.mts → namespace-s2y_NFKf.d.mts} +0 -0
- /package/dist/{namespace-Blp4c8GK.d.mts → namespace-yREpGJgG.d.mts} +0 -0
- /package/dist/{out-CvjtANXN.mjs → out-DrhwCgqM.mjs} +0 -0
- /package/dist/{packages-DtEEP0Vt.mjs → packages-FBv3fAOR.mjs} +0 -0
- /package/dist/{packages-BZ6pzFIq.d.mts → packages-N3-2Kl-Y.d.mts} +0 -0
- /package/dist/{platform-Bv8llU9c.mjs → platform-BrsMv_S3.mjs} +0 -0
- /package/dist/{provider-operation-Cxoe2SUr.d.mts → provider-operation-DJ_TLZFf.d.mts} +0 -0
- /package/dist/{providers-Co5UszRH.mjs → providers-CCcn4Ndp.mjs} +0 -0
- /package/dist/{providers-namespace-DjFkmvBR.d.mts → providers-namespace-DeJBh6MP.d.mts} +0 -0
- /package/dist/{quick-lru-CrOpWwrf.mjs → quick-lru-uwB0hP-y.mjs} +0 -0
- /package/dist/{schema-introspection-DgWQCpwx.mjs → schema-introspection-C1wvklj9.mjs} +0 -0
- /package/dist/{schema-Db-y-09L.mjs → schema-jIapW8Kb.mjs} +0 -0
- /package/dist/{schemas-CR8hSqTy.d.mts → schemas-B7zo7Zcx.d.mts} +0 -0
- /package/dist/{schemas-CqRm0i9a.mjs → schemas-BNdiVBWh.mjs} +0 -0
- /package/dist/{schemas-B1NWNASS.d.mts → schemas-C-Bm6Oac.d.mts} +0 -0
- /package/dist/{schemas-BO7uOum6.d.mts → schemas-CD0wOQxx.d.mts} +0 -0
- /package/dist/{schemas-N6x2z7Lf.d.mts → schemas-CeUI2i5j.d.mts} +0 -0
- /package/dist/{schemas-CwbYk_kZ.d.mts → schemas-Cg-Kwp8c.d.mts} +0 -0
- /package/dist/{schemas-BtZqovRH.d.mts → schemas-Cv3rR9Sz.d.mts} +0 -0
- /package/dist/{schemas-tDf_WiC8.mjs → schemas-CvHFbzdy.mjs} +0 -0
- /package/dist/{schemas-BsVYZviy.d.mts → schemas-DZH9lpxs.d.mts} +0 -0
- /package/dist/{schemas-BGExwp3j.mjs → schemas-DgwEVUt-.mjs} +0 -0
- /package/dist/{schemas-Bfxskx_2.mjs → schemas-mLpOfMoN.mjs} +0 -0
- /package/dist/{schemas-CQyRBqD6.d.mts → schemas-qA279_j_.d.mts} +0 -0
- /package/dist/{schemas-miYxK_Z1.d.mts → schemas-sMoRnBdZ.d.mts} +0 -0
- /package/dist/{semver-DlM8znk4.mjs → semver-DTXuyLcK.mjs} +0 -0
- /package/dist/{server-lifecycle-Dsq56aqC.d.mts → server-lifecycle-C_8iKgat.d.mts} +0 -0
- /package/dist/{server-lifecycle-kmQ5PUDv.mjs → server-lifecycle-DKx_fWlq.mjs} +0 -0
- /package/dist/{shared-schemas-DXwyMCwZ.mjs → shared-schemas-aahW97QW.mjs} +0 -0
- /package/dist/{src-CCu8TwL6.mjs → src-DHqsl5Pg.mjs} +0 -0
- /package/dist/{storage-namespace-BSrv0vXR.mjs → storage-namespace-Dz2jsssp.mjs} +0 -0
- /package/dist/{storage-namespace-dfywhXR3.d.mts → storage-namespace-Tf3P5yJ5.d.mts} +0 -0
- /package/dist/{storage-namespace-definition-BvlX0QV_.d.mts → storage-namespace-definition-BsnYAPot.d.mts} +0 -0
- /package/dist/{storage-namespace-definition-CkMKt7-I.mjs → storage-namespace-definition-CDef0E20.mjs} +0 -0
- /package/dist/{supports-color-DUugCQsK.mjs → supports-color-i7OTnKcZ.mjs} +0 -0
- /package/dist/{telemetry-Pr3oP2rk.mjs → telemetry-BvCBUjFg.mjs} +0 -0
- /package/dist/{timeout-DWDhddRJ.mjs → timeout-B0nYjLc8.mjs} +0 -0
- /package/dist/{tray-menu-service-BBLa-Rcv.mjs → tray-menu-service-Deo6yyP8.mjs} +0 -0
- /package/dist/{types-BrcjaNPZ.d.mts → types-CNS55jvt.d.mts} +0 -0
- /package/dist/{types-b54n1o57.d.mts → types-Ce6LL25v.d.mts} +0 -0
- /package/dist/{ui-config-CyCdlns_.mjs → ui-config-BIyGzMNL.mjs} +0 -0
- /package/dist/{variant-krjlTdJt.mjs → variant-B4uWdxW7.mjs} +0 -0
- /package/dist/{window-registry-BDnZLPVx.d.mts → window-registry-BLtVx3Iw.d.mts} +0 -0
- /package/dist/{window-registry-I-imZHV_.mjs → window-registry-CoBJq3u4.mjs} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{R as e,vt as t}from"./handlers-2yd00VEq.mjs";import{SessionStorageSubjects as n}from"./services/session/storage/namespace.mjs";import{$ as r,D as i,E as a,G as o,P as s,V as c,Z as l,a as u,b as d,c as f,d as ee,i as te,j as ne,n as re,r as ie}from"./session-BMy2kRpX.mjs";import{r as p,t as ae}from"./namespace-BFqkUTJp.mjs";import{a as oe,c as se,o as ce,s as le,v as ue}from"./packages-FBv3fAOR.mjs";import{t as de}from"./capability-service-CJHNkjvm.mjs";import"./services/adapter-subsystem/index.mjs";import{i as fe,s as pe}from"./model-registry-Y854mUml.mjs";import{d as me,f as he,n as ge}from"./package-CBdvjyyZ.mjs";import{t as _e}from"./tool-approval-service-BVgN9Q1r.mjs";import{t as ve}from"./tray-menu-service-Deo6yyP8.mjs";import{r as m,t as ye}from"./handler-Bqlk-6BY.mjs";import{r as be}from"./package-CddkNbZI.mjs";import{t as xe}from"./filesystem-service-FAtd9gWH.mjs";import{z as h}from"zod";import{createHash as Se}from"node:crypto";import{getErrorString as g}from"@makaio/framework/utils";import{MakaioError as Ce,createMakaioContext as we}from"@makaio/framework/core";import{MakaioBus as _}from"@makaio/framework/bus";import{AdapterSubjects as Te,ArtifactSubjects as v,CanonicalModelSubjects as Ee,DEFAULT_HARNESSES as De,HarnessDefinitionCreateSchema as Oe,HarnessSubjects as y,JsonValueSchema as ke,ReactionDescriptorSchema as Ae,ToolSubjects as b,TransitionRuleDefinitionSchema as je,WorkflowBlocksSubjects as x,WorkflowSubjects as Me,dep as S,extensionToken as C,validateToolAdapterIdentity as Ne,zodSchemaToJsonRecord as w}from"@makaio/framework/contracts";import{BaseService as T}from"@makaio/framework/service-base";import{registerDrizzleHandlers as E}from"@makaio/framework/storage/drizzle";import{slugifyProviderConfigName as D}from"@makaio/framework/contracts/config";import{ClientAccountIdentifierSchema as Pe,ClientSessionAccountObserveSchema as Fe,ClientSubjects as O}from"@makaio/framework/contracts/client";import{FacetSubjects as k}from"@makaio/framework/contracts/facet";import{FILE_ACCESS_RULES_KEY as Ie,ToolErrorCodes as A,errorToToolResult as Le,toolError as j,toolSuccess as Re}from"@makaio/framework/tools";import{ConditionSchema as ze,evaluate as Be}from"@makaio/framework/rules";import{evaluateSync as Ve}from"@makaio/framework/expression";import{GitService as He}from"@makaio/framework/git";var M=class extends Error{reason;hookId;constructor(e,t){super(`Artifact write rejected by hook '${t}': ${e}`),this.reason=e,this.hookId=t,this.name=`ArtifactLifecycleHookRejectedError`}};function N(e,t){return e?!(e.kind!==void 0&&e.kind!==`*`&&e.kind!==t.kind||e.schemaVersion!==void 0&&e.schemaVersion!==t.schemaVersion):!0}function P(e){return e.priority??0}function Ue(e,t,n){return e.filter(e=>e.event===t&&N(e.filter,n)).sort((e,t)=>P(t)-P(e))}function We(e,t,n){return e.filter(e=>e.event===t&&N(e.filter,n)).sort((e,t)=>P(t)-P(e))}function Ge(e,t){return{...e,...`data`in t?{data:t.data}:{},...`relations`in t?{relations:t.relations}:{},...`confidence`in t?{confidence:t.confidence}:{},...`representations`in t?{representations:t.representations}:{},...`actor`in t?{actor:t.actor}:{}}}function Ke(e,t){let{confidence:n,representations:r,...i}=e;return{...i,data:t.data,relations:[...t.relations],...t.confidence===void 0?{}:{confidence:t.confidence},...t.representations===void 0?{}:{representations:t.representations},actor:t.actor}}var F=class extends T{registrations=new Map;constructor(e){super(e)}async onInit(){}onDestroy(){this.registrations.clear()}registerHooks(e,t){let n=[...t];this.registrations.set(e,n);let r=!1;return()=>{r||(r=!0,this.registrations.get(e)===n&&this.registrations.delete(e))}}allHooks(){let e=[];for(let t of this.registrations.values())e.push(...t);return e}async runBeforeCreate(e){return this.runBeforeHooks(`beforeCreate`,e)}async runBeforeRevise(e){return this.runBeforeHooks(`beforeRevise`,e)}async runBeforeHooks(e,t){let{draft:n,previous:r,kindRegistration:i}=t,a=Ue(this.allHooks(),e,n),o=new Map,s={kind:n.kind,schemaVersion:n.schemaVersion,scope:n.scope,data:n.data,relations:n.relations,...n.confidence===void 0?{}:{confidence:n.confidence},...n.representations===void 0?{}:{representations:n.representations},actor:n.actor},c=!1;for(let t of a){let n,a={event:e,get draft(){return s},previous:r,kindRegistration:i,bus:this.bus,meta:o,rejectCreation(e){n={reason:e}},skipMaterialization(){c=!0},updateDraft(e){s=Ge(s,e)}};if(await t.handler(a),n)throw new M(n.reason,t.id)}return{draft:Ke(n,s),skipMaterialization:c,meta:o}}async runAfterCreate(e){await this.runAfterHooks(`afterCreate`,`created`,e)}async runAfterRevise(e){await this.runAfterHooks(`afterRevise`,`revised`,e)}async runAfterStatusChanged(e){await this.runAfterHooks(`afterStatusChanged`,`status-changed`,e)}async runAfterObservationAdded(e){await this.runAfterHooks(`afterObservationAdded`,`observation-added`,e)}async runAfterHooks(e,t,n){let{artifact:r,previous:i,observation:a,kindRegistration:o,projectionPolicy:s,skipDefaultProjection:c,meta:l}=n,u=We(this.allHooks(),e,r),d=this.bus,f=!1;for(let n of u){if(c&&(n.priority??0)<0||f&&(n.priority??0)<0)continue;let u={event:e,semanticEvent:t,artifact:r,previous:i?{refClass:`artifact`,id:i.id,revision:i.revision,kind:i.kind}:void 0,observation:a,kindRegistration:o,projectionPolicy:s,bus:d,meta:l,preventDefault(){f=!0},async resolveRelations(e){let t=r.relations.filter(t=>t.type===e).map(e=>e.target),n=[];for(let e of t){let t=e;if(t.refClass===`artifact`){let e=t,{artifact:r}=await d.request(v.resolve,{ref:e});r&&n.push(r)}}return n}};try{await n.handler(u)}catch(t){console.error(`[ArtifactLifecycleHookRegistry] Hook '${n.id}' threw during '${e}':`,t)}}}};function I(e){return structuredClone(e)}var L=class extends T{namespaces=new Map;constructor(e){super(e)}async onInit(){this.registerHandler(k.namespace.register,e=>{this.registerNamespace(e.payload),e.setResult({registered:!0})}),this.registerHandler(k.namespace.list,e=>{let{namespace:t}=e.payload,n=[...this.namespaces.values()].filter(e=>!t||e.namespace===t).map(I);e.setResult({namespaces:n})})}registerNamespace(e){let t=this.namespaces.get(e.namespace);if(t){if(JSON.stringify(t)!==JSON.stringify(e))throw Error(`Facet namespace '${e.namespace}' is already registered with a different definition`);return}this.namespaces.set(e.namespace,I(e)),this.bus.emit(k.namespace.changed,{namespace:e.namespace})}deregisterNamespace(e){this.namespaces.delete(e)&&this.bus.emit(k.namespace.changed,{namespace:e})}getNamespace(e){let t=this.namespaces.get(e);return t?I(t):void 0}onDestroy(){this.namespaces.clear()}},R=class extends Ce{code;suggestions;constructor(e,t,n){super(e),this.code=t,this.suggestions=n}},z=class{deps;constructor(e){this.deps=e}async resolve(e,t){switch(e.kind){case`bare`:return this.resolveBare(e.model);case`qualified`:return this.resolveQualified(e.segment1,e.segment2,e.model)}}async resolveBare(e){let t=await this.deps.resolveDefaultModelTarget(e);switch(t.kind){case`resolved`:return{kind:`adapter`,adapterName:t.target.adapterName,providerConfigId:t.target.providerConfigId,model:t.target.model};case`ambiguous`:throw new R(`Model "${e}" is available via multiple providers. Use a qualified reference to select one.`,`ambiguous-model`,t.matches.map(e=>e.qualifiedName));case`not-found`:throw new R(`Model "${e}" was not found in any enabled adapter's registry.`,`model-not-found`)}}async resolveQualified(e,t,n){return t===void 0?this.resolveQualifiedOneSegment(e,n):this.resolveQualifiedTwoSegments(e,t,n)}async resolveQualifiedTwoSegments(e,t,n){let r=await this.deps.listEnabledAdapterNames();if(!r.includes(e))throw new R(`Adapter "${e}" is not enabled or does not exist.`,`adapter-not-found`);return{kind:`adapter`,adapterName:e,providerConfigId:await this.resolveProviderSegment(t,e,r),model:n}}async resolveQualifiedOneSegment(e,t){let n=await this.deps.listEnabledAdapterNames();if(n.includes(e)){let n=await this.deps.getDefaultBinding(e);if(!n)throw new R(`Adapter "${e}" has no enabled provider binding. Configure or enable a provider binding first.`,`no-binding`);return{kind:`adapter`,adapterName:e,providerConfigId:n.providerConfigId,model:t}}let r=await this.deps.findProviderConfigByName(e);if(r)return{kind:`adapter`,adapterName:(await this.pickBindingForConfig(r.id,n)).adapterName,providerConfigId:r.id,model:t};let i=await this.deps.findProviderDefinition(e,n);if(i){let r=await this.deps.findDefaultConfigForDefinition(i.id);if(!r)throw new R(`Provider definition "${e}" exists but has no configured provider config. Create a provider config first.`,`provider-not-found`);return{kind:`adapter`,adapterName:(await this.pickBindingForConfig(r.id,n)).adapterName,providerConfigId:r.id,model:t}}throw new R(`"${e}" does not match any enabled adapter name, provider config name, or provider definition ID.`,`adapter-not-found`)}async resolveProviderSegment(e,t,n){let r=await this.deps.findProviderConfigByName(e);if(r)return await this.requireBindingForAdapterAndConfig(t,r.id,e),r.id;let i=await this.deps.findProviderDefinition(e,n);if(i){let n=await this.deps.findConfigForDefinitionAndAdapter(i.id,t);if(!n)throw new R(`Provider definition "${e}" has no enabled config bound to adapter "${t}". Create a provider config and binding first.`,`no-binding`);return n.id}throw new R(`"${e}" does not match any provider config name or provider definition ID.`,`provider-not-found`)}async requireBindingForAdapterAndConfig(e,t,n){if(!(await this.deps.listBindingsForConfig(t)).some(t=>t.adapterName===e))throw new R(`No binding exists between adapter "${e}" and provider "${n}". Create a binding first.`,`no-binding`)}async pickBindingForConfig(e,t){let n=(await this.deps.listBindingsForConfig(e)).filter(e=>t.includes(e.adapterName));if(n.length===0)throw new R(`Provider config "${e}" has no bindings to enabled adapters. Bind it to an enabled adapter first.`,`no-binding`);return n.find(e=>e.isDefault)??n[0]}},B=class e extends T{constructor(e=_){super(e)}async onInit(){await this.bus.request(p.ensureReady,{});let e=new z(this.createDeps());this.registerHandler(Ee.resolve,async t=>{let n=await e.resolve(t.payload.parsed,t.payload.context);t.setResult(n)})}createDeps(){let e=this.bus,t=async()=>{let{adapters:t}=await e.request(p.listAdapters,{});return t.filter(e=>e.enabled).map(e=>e.name)},n=async t=>{let[n,r]=await Promise.all([e.request(p.getDefaultBinding,{adapterName:t}),this.listEnabledProviderConfigIds()]);if(n.binding&&r.has(n.binding.providerConfigId))return n.binding;let{bindings:i}=await e.request(p.listBindings,{adapterName:t}),a=i.filter(e=>r.has(e.providerConfigId));return a.find(e=>e.isDefault)??a[0]},r=async t=>{let{definitions:n}=await e.request(p.getProviderDefinitionsByAdapter,{adapterName:t});return n},i=async t=>{let{bindings:n}=await e.request(p.listBindingsByConfig,{providerConfigId:t});return n},a=async t=>{let{configs:n}=await e.request(p.listProviderConfigs,{enabled:!0}),r=D(t);return n.find(e=>D(e.name)===r)},o=this.buildFindProviderDefinition(t,r),s=async t=>{let{configs:n}=await e.request(p.listProviderConfigsByDefinition,{definitionId:t}),r=n.filter(e=>e.enabled);return r.find(e=>e.isDefault)??r[0]},c=async(t,n)=>{let{config:r}=await e.request(p.findConfigForDefinitionAndAdapter,{definitionId:t,adapterName:n});return r?{id:r.id}:void 0};return{listEnabledAdapterNames:t,getDefaultBinding:n,findProviderConfigByName:a,findProviderDefinition:o,listBindingsForConfig:i,findDefaultConfigForDefinition:s,findConfigForDefinitionAndAdapter:c,resolveDefaultModelTarget:this.buildResolveDefaultModelTarget(t,r,c)}}buildFindProviderDefinition(e,t){return async(n,r)=>{let i=r??await e();for(let e of i){let r=(await t(e)).find(e=>e.id===n);if(r)return r}}}buildResolveDefaultModelTarget(t,n,r){let i=this.bus;return async a=>{let o=await t(),s=await Promise.all(o.map(async e=>({adapterName:e,definitions:await n(e)}))),c=Array.from(new Set(s.flatMap(({definitions:e})=>e.map(e=>e.id))));if(c.length===0)return{kind:`not-found`};let{matches:l}=await i.request(pe.checkModelInProviders,{providerIds:c,model:a}),u=(await Promise.all(s.map(({adapterName:e,definitions:t})=>this.collectAdapterCandidates(e,t,a,l,r)))).flat();return e.buildResolution(u)}}async collectAdapterCandidates(e,t,n,r,i){let a=t.filter(e=>e.id in r),o=await Promise.all(a.map(t=>i(t.id,e)));return a.flatMap((t,r)=>{let i=o[r];return i?[{adapterName:e,definitionId:t.id,providerConfigId:i.id,qualifiedName:`${e}/${t.id}::${n}`,model:n}]:[]})}static buildResolution(e){let t=Array.from(new Map(e.map(e=>[this.routeKey(e),e])).values());if(t.length===0)return{kind:`not-found`};if(t.length>1)return{kind:`ambiguous`,matches:t.map(({adapterName:e,definitionId:t,qualifiedName:n})=>({adapterName:e,definitionId:t,qualifiedName:n}))};let[n]=t;return{kind:`resolved`,target:{adapterName:n.adapterName,providerConfigId:n.providerConfigId,definitionId:n.definitionId,model:n.model}}}static routeKey(e){return`${e.adapterName}\0${e.definitionId}\0${e.providerConfigId}`}async listEnabledProviderConfigIds(){let{configs:e}=await this.bus.request(p.listProviderConfigs,{enabled:!0});return new Set(e.map(e=>e.id))}};const V={name:`makaio.canonical-model`,displayName:`Canonical Model`,version:`0.1.0`,dependencies:[S(ae)],critical:!1,create:e=>new B(e.bus)};var H=class extends T{definitionsByExtension=new Map;definitionsByKind=new Map;constructor(e){super(e)}onInit(){}onDestroy(){this.definitionsByExtension.clear(),this.definitionsByKind.clear()}register(e,t){let n=this.validateBatch(e,t),r=new Map(this.definitionsByExtension);n.length===0?r.delete(e):r.set(e,n);let i=new Map;for(let e of r.values())for(let t of e)i.set(t.descriptor.kind,t);this.definitionsByExtension=r,this.definitionsByKind=i}deregister(e){this.definitionsByExtension.has(e)&&this.register(e,[])}listDescriptors(){return Array.from(this.definitionsByKind.values(),({descriptor:e})=>structuredClone(e))}async invoke(e,t,n){let r=crypto.randomUUID(),i=this.definitionsByKind.get(e);if(!i)return this.failure(e,r,n.correlationId,`Reaction kind '${e}' is not registered`);if(n.hostSignal?.aborted)return this.failure(e,r,n.correlationId,`Reaction '${e}' host signal already aborted`);let a=Je(n.deadlineEpochMs);if(a!==void 0&&a<=Date.now())return this.failure(e,r,n.correlationId,`Reaction '${e}' deadline already passed`);let o=Ye(n.hostSignal,a),s=Xe(r,o.controller.signal,n);try{let n;try{n=await i.parameterSchema.safeParseAsync(t)}catch(t){return this.failure(e,r,s.correlationId,`Parameter validation for Reaction '${e}' threw: ${g(t)}`,t)}return n.success?(a!==void 0&&U(o.controller,a),o.controller.signal.aborted?this.failure(e,r,s.correlationId,`Reaction '${e}' cancelled before handler entry: ${g(o.controller.signal.reason)}`,o.controller.signal.reason):(await i.handler(n.data,s),{success:!0})):this.failure(e,r,s.correlationId,`Invalid parameters for Reaction '${e}': ${n.error.message}`)}catch(t){return this.logFailure(e,r,s.correlationId,`Reaction '${e}' handler threw`,t),{success:!1,error:{message:g(t)}}}finally{o.release()}}failure(e,t,n,r,i){return this.logFailure(e,t,n,r,i),{success:!1,error:{message:r}}}logFailure(e,t,n,r,i){let a=n===void 0?``:` (correlationId: ${n})`;console.error(`[ReactionRegistry] Reaction '${e}' invocation '${t}' failed${a}: ${r}`,...i===void 0?[]:[i])}validateBatch(e,t){let n=`${e}.`,r=new Set,i=new Set(this.definitionsByExtension.get(e)?.map(e=>e.descriptor.kind)),a=[];for(let o of t){if(!o.kind.startsWith(n)||o.kind.length===n.length)throw Error(`Reaction '${o.kind}' must be namespaced by extension '${n}'`);if(r.has(o.kind))throw Error(`Reaction kind collision: '${o.kind}' appears twice in batch from '${e}'`);if(this.definitionsByKind.has(o.kind)&&!i.has(o.kind))throw Error(`Reaction kind collision: '${o.kind}' is already registered`);r.add(o.kind);let t=Ae.parse(o.toDescriptor());if(t.kind!==o.kind)throw Error(`Reaction descriptor kind '${t.kind}' does not match definition kind '${o.kind}'`);a.push({parameterSchema:o.parameterSchema,handler:o.handler,descriptor:t})}return a}};const qe=()=>{};function Je(e){return e!==void 0&&Number.isFinite(e)?e:void 0}function Ye(e,t){let n=new AbortController;if(e===void 0&&t===void 0)return{controller:n,release:qe};let r=[];if(e){let t=()=>{n.abort(e.reason)};e.addEventListener(`abort`,t,{once:!0}),r.push(()=>{e.removeEventListener(`abort`,t)})}if(t!==void 0){let e,i=()=>{if(U(n,t)){e=void 0;return}let r=t-Date.now();e=setTimeout(i,Math.min(r,2147483647)),e.unref?.()};i(),r.push(()=>{clearTimeout(e)})}return{controller:n,release:()=>{for(let e of r)e()}}}function U(e,t){return t>Date.now()?!1:(e.abort(Error(`Reaction invocation deadline reached (deadlineEpochMs: ${t})`)),!0)}function Xe(e,t,n){return Object.freeze({invocationId:e,ruleRef:n.ruleRef,eventKind:n.eventKind,eventPayload:n.eventPayload,hostContext:n.hostContext,correlationId:n.correlationId,signal:t,deadlineEpochMs:n.deadlineEpochMs})}const W=C(`reaction-registry`),G={name:W.name,displayName:`Reaction Registry`,version:`0.1.0`,critical:!0,create:e=>new H(e.bus)};function Ze(e){let t=Ne({adapterId:e?.adapterId,adapterName:e?.adapterName,contextOverrides:{adapterId:e?.contextOverrides?.adapterId,adapterName:e?.contextOverrides?.adapterName}}),n=t.issues[0];return n?j(A.VALIDATION_FAILED,n.message):Re(t.effectiveIdentity)}function Qe(e){let t=e?.allowedDirectories;if(Array.isArray(t))return t.filter(e=>typeof e==`string`)}async function $e(e,t,n,r){let i=new Map;for(let e of t)i.set(e.name,await r(e.name));let a=t.filter(e=>{let t=i.get(e.name);return!t?.allowedAdapters||t.allowedAdapters.length===0?!0:t.allowedAdapters.includes(n)}),o=new Set(a.map(e=>e.name));return{filteredTools:e.filter(e=>!(!o.has(e.toolsetName)||i.get(e.toolsetName)?.disabledTools?.includes(e.name))),filteredToolsets:a}}function et(){return`exec_${Date.now()}_${Math.random().toString(36).substring(2,9)}`}var tt=class{bus;toolsets=new Map;tools=new Map;cleanupHandlers=[];handlerPriority;policyProvider;fileAccessRuleProvider;revision=0;constructor(e){this.bus=e?.bus??_,this.handlerPriority=e?.handlerPriority??0,this.policyProvider=e?.policyProvider,this.fileAccessRuleProvider=e?.fileAccessRuleProvider,this.registerHandlers()}registerHandlers(){let e=this.bus.on(b.list,async e=>{let{toolsetName:t,adapterId:n,adapterName:r}=e.payload,{tools:i,toolsets:a}=await this.listToolsWithToolsets({toolsetName:t,adapterId:n,adapterName:r});e.setResult({tools:i,toolsets:a})},{priority:this.handlerPriority});this.cleanupHandlers.push(e);let t=this.bus.on(b.execute,async e=>{let{toolName:t,input:n,adapterId:r,adapterName:i,contextOverrides:a}=e.payload,o=await this.execute(t,n,{contextOverrides:a,adapterId:r,adapterName:i});e.setResult(o)},{priority:this.handlerPriority});this.cleanupHandlers.push(t)}async register(e){if(this.toolsets.has(e.metadata.name))throw Error(`Toolset '${e.metadata.name}' is already registered`);let t=[],n=[];for(let[,r]of Object.entries(e.tools)){let i=r.metadata.name;if(this.tools.has(i))throw Error(`Tool '${i}' is already registered (from toolset '${this.tools.get(i).toolsetName}')`);n.push({tool:r,toolsetName:e.metadata.name}),t.push(i)}this.toolsets.set(e.metadata.name,e);for(let e=0;e<n.length;e+=1)this.tools.set(t[e],n[e]);await this.emitRegistryChanged(`toolset-registered`,e.metadata.name).catch(t=>console.warn(`[ToolRegistry] Failed to emit ${b.registryChanged.subject} for '${e.metadata.name}':`,t)),await this.bus.emit(b.registered,{toolsetName:e.metadata.name,toolsetVersion:e.metadata.version,toolNames:t}).catch(t=>console.warn(`[ToolRegistry] Failed to emit ${b.registered.subject} for '${e.metadata.name}':`,t))}async deregister(e){let t=this.toolsets.get(e);if(!t)throw Error(`Toolset '${e}' is not registered`);for(let e of Object.values(t.tools))this.tools.delete(e.metadata.name);this.toolsets.delete(e),await this.emitRegistryChanged(`toolset-unregistered`,e).catch(t=>console.warn(`[ToolRegistry] Failed to emit ${b.registryChanged.subject} for '${e}':`,t))}async emitRegistryChanged(e,t){this.revision+=1,await this.bus.emit(b.registryChanged,{revision:this.revision,reason:e,toolsetName:t})}async execute(e,t,n){let r=this.tools.get(e);if(!r)return j(A.TOOL_NOT_FOUND,`Tool '${e}' not found`);let i=Ze(n);if(!i.success)return i;let{tool:a,toolsetName:o}=r,s=await this.checkPolicy(o,e,i.data.adapterId,i.data.adapterName);if(s)return s;let c=et(),l=Date.now();await this.bus.emit(b.started,{toolName:e,toolsetName:o,executionId:c,timestamp:l});try{let r=a.inputSchema.safeParse(t);if(!r.success){let t=j(A.VALIDATION_FAILED,`Input validation failed`,{issues:r.error.issues});return await this.bus.emit(b.error,{toolName:e,toolsetName:o,executionId:c,timestamp:Date.now(),error:t.error}),t}let s=await this.buildExecutionContext(n,i.data),u=await a.execute(r.data,s);return u.success?await this.bus.emit(b.completed,{toolName:e,toolsetName:o,executionId:c,timestamp:Date.now(),durationMs:Date.now()-l}):await this.bus.emit(b.error,{toolName:e,toolsetName:o,executionId:c,timestamp:Date.now(),error:u.error}),u}catch(t){let n=Le(t);return await this.bus.emit(b.error,{toolName:e,toolsetName:o,executionId:c,timestamp:Date.now(),error:n.error}),n}}async buildExecutionContext(e,t){let n=e?.contextOverrides?.constraints;if(this.fileAccessRuleProvider){let t=e?.contextOverrides?.cwd??process.cwd(),r=Qe(n),i=await this.fileAccessRuleProvider(t,r);n={...n,[Ie]:i}}let r=we({...e?.contextOverrides,constraints:n}),i=e?.contextOverrides;return{...r,bus:this.bus,sessionId:i?.sessionId,agentId:i?.agentId,adapterId:t.adapterId,adapterName:t.adapterName,adapterSessionId:i?.adapterSessionId,turnId:i?.turnId,turnContext:i?.turnContext,toolCallId:i?.toolCallId}}async checkPolicy(e,t,n,r){if(!this.policyProvider)return null;let i=await this.policyProvider(e);if(!i)return null;if(i.disabledTools?.includes(t))return j(A.PERMISSION_DENIED,`Tool '${t}' is disabled`,{toolsetName:e,toolName:t});if(i.allowedAdapters&&i.allowedAdapters.length>0){let t=r??n;if(!t||!i.allowedAdapters.includes(t))return j(A.PERMISSION_DENIED,`Adapter not allowed for toolset '${e}'`,{toolsetName:e,adapterId:n,adapterName:r,allowedAdapters:i.allowedAdapters})}return null}listTools(e){let t=[];for(let[,n]of this.tools){if(e?.toolsetName&&n.toolsetName!==e.toolsetName)continue;let{$schema:r,...i}=h.toJSONSchema(n.tool.inputSchema);t.push({name:n.tool.metadata.name,description:n.tool.metadata.description,toolsetName:n.toolsetName,annotations:n.tool.metadata.annotations,inputSchema:i})}return t}listToolsets(){let e=[];for(let[,t]of this.toolsets){let n={name:t.metadata.name,description:t.metadata.description,version:t.metadata.version,toolCount:Object.keys(t.tools).length};if(t.configSchema){let{$schema:e,...r}=h.toJSONSchema(t.configSchema);n.configSchema=r}e.push(n)}return e}async listToolsWithToolsets(e){let t=this.listTools(e),n=this.listToolsets(),r=e?.toolsetName?n.filter(t=>t.name===e.toolsetName):n,i=e?.adapterName??e?.adapterId;if(this.policyProvider&&i){let{filteredTools:e,filteredToolsets:n}=await $e(t,r,i,this.policyProvider);return{tools:e,toolsets:n}}return{tools:t,toolsets:r}}getTool(e){return this.tools.get(e)?.tool}getToolset(e){return this.toolsets.get(e)}dispose(){for(let e of this.cleanupHandlers)e();this.cleanupHandlers.length=0}destroy(){this.dispose()}},nt=class extends T{stepsByExtension=new Map;revision=0;cache=null;constructor(e){super(e)}onInit(){this.registerHandler(x.list,e=>{e.setResult({steps:this.listSteps()})})}async register(e,t){let n=[],r=this.snapshotExtensionState(e),i=new Set;for(let e of this.stepsByExtension.values())for(let t of e)i.add(t.metadata.name);for(let r of t.steps??[])this.assertExtensionNamespace(e,r.metadata),this.assertNoCollision(r.metadata,i),i.add(r.metadata.name),n.push({metadata:{...r.metadata,extensionName:e},configSchema:w(r.configSchema),inputSchema:w(r.inputSchema),outputSchema:w(r.outputSchema),runs:structuredClone(r.runs)});if(n.length!==0){this.stepsByExtension.set(e,n),this.revision+=1;try{await this.emitChanged(e,`registered`)}catch(t){throw this.restoreExtensionState(e,r),t}}}async deregister(e){let t=this.snapshotExtensionState(e);if(this.stepsByExtension.delete(e)){this.revision+=1;try{await this.emitChanged(e,`deregistered`)}catch(n){throw this.restoreExtensionState(e,t),n}}}listSteps(){return this.getCache().steps.map(rt)}async emitChanged(e,t){await this.bus.emit(x.changed,{extensionName:e,revision:this.revision,reason:t})}getCache(){return(!this.cache||this.cache.revision!==this.revision)&&(this.cache={revision:this.revision,steps:[...this.stepsByExtension.values()].flat()}),this.cache}snapshotExtensionState(e){return{steps:this.stepsByExtension.get(e),revision:this.revision,cache:this.cache}}restoreExtensionState(e,t){t.steps?this.stepsByExtension.set(e,t.steps):this.stepsByExtension.delete(e),this.revision=t.revision,this.cache=t.cache}assertNoCollision(e,t){if(t.has(e.name))throw Error(`Workflow block name collision: '${e.name}' is already registered`)}assertExtensionNamespace(e,t){let n=`${e}.`;if(!t.name.startsWith(n))throw Error(`Workflow block '${t.name}' must be namespaced by extension '${n}'`)}};function rt(e){return{metadata:it(e.metadata),configSchema:structuredClone(e.configSchema),inputSchema:structuredClone(e.inputSchema),outputSchema:structuredClone(e.outputSchema),runs:structuredClone(e.runs)}}function it(e){return e.categories?{...e,categories:[...e.categories]}:{...e}}const K=`workflow.start`;function at(e){return()=>({async execute(t,n){let{input:r={}}=t,{workflowId:i}=r;if(typeof i!=`string`||i.length===0)throw Error(`[TransitionActionRegistry] 'workflow.start' action requires a non-empty 'input.workflowId' string`);await e.request(Me.start,{workflowId:i,input:ot(r,n),config:r.config,artifactRef:r.artifactRef,scope:r.scope,triggerPayload:{_transitionRuleId:n._transition.ruleId,_transitionDepth:n._transition.depth,_transitionEventType:n._transition.eventType}})}})}function ot(e,t){let n=e.inputExpression;if(typeof n!=`string`)return e.input;let r=Ve(n,st(t)),i=ke.safeParse(r);if(!i.success)throw Error(`[TransitionActionRegistry] 'workflow.start' inputExpression for rule '${t._transition.ruleId}' must resolve to a JSON value`);return i.data}function st(e){let t={...e};return{...t,ctx:t}}var ct=class{factories=new Map;factoriesBySource=new Map;constructor(e){this.factories.set(K,at(e)),this.factoriesBySource.set(`__builtin__`,[K])}register(e,t){let n=Object.keys(t);if(n.length!==0){if(this.factoriesBySource.has(e))throw Error(`TransitionActionRegistry: duplicate source '${e}'`);for(let t of n)if(this.factories.has(t))throw Error(`TransitionActionRegistry: duplicate action type '${t}' from source '${e}'`);for(let e of n)this.factories.set(e,t[e]);this.factoriesBySource.set(e,n)}}deregister(e){if(e===`__builtin__`)return;let t=this.factoriesBySource.get(e);if(t){for(let e of t)this.factories.delete(e);this.factoriesBySource.delete(e)}}async dispatch(e,t){let n=this.factories.get(e.type);if(!n)throw Error(`TransitionActionRegistry: unknown action type '${e.type}'. Registered types: ${[...this.factories.keys()].join(`, `)}`);await n().execute(e,t)}has(e){return this.factories.has(e)}listTypes(){return[...this.factories.keys()]}},lt=class{rulesBySource=new Map;rulesByEventType=new Map;ruleIdSet=new Set;register(e,t){if(t.length===0)return;if(this.rulesBySource.has(e))throw Error(`TransitionRuleRegistry: duplicate source '${e}'`);let n=new Set,r=[];for(let i of t){let t=je.parse(i);if(n.has(t.id))throw Error(`TransitionRuleRegistry: duplicate rule ID '${t.id}' within source '${e}'`);if(this.ruleIdSet.has(t.id))throw Error(`TransitionRuleRegistry: duplicate rule ID '${t.id}' from source '${e}'`);n.add(t.id),r.push({rule:t,condition:t.when===void 0?void 0:ze.parse(t.when)})}for(let e of r){let{rule:t}=e;this.ruleIdSet.add(t.id);let n=this.rulesByEventType.get(t.on)??[];n.push(e),this.rulesByEventType.set(t.on,n)}this.rulesBySource.set(e,r)}deregister(e){let t=this.rulesBySource.get(e);if(t){for(let{rule:e}of t){this.ruleIdSet.delete(e.id);let t=this.rulesByEventType.get(e.on);if(t){let n=t.filter(t=>t.rule.id!==e.id);n.length>0?this.rulesByEventType.set(e.on,n):this.rulesByEventType.delete(e.on)}}this.rulesBySource.delete(e)}}getRulesForEvent(e){let t=this.rulesByEventType.get(e);return t?t.filter(e=>e.rule.enabled):[]}snapshotSource(e){let t=this.rulesBySource.get(e);if(t)return{ruleIds:t.map(e=>e.rule.id)}}},ut=class extends T{ruleRegistry;actionRegistry;depthMap=new Map;constructor(e){super(e),this.ruleRegistry=new lt,this.actionRegistry=new ct(e)}onInit(){this.registerHandler(v.created,async e=>{await this.handleArtifactEvent(`artifact.created`,{artifact:e.payload.artifact})}),this.registerHandler(v.revised,async e=>{let t=await this.resolvePreviousRevisedArtifact(e.payload.previous);await this.handleArtifactEvent(`artifact.revised`,{artifact:e.payload.artifact,previous:e.payload.previous,...t===void 0?{}:{previousArtifact:t}})}),this.registerHandler(v.status.changed,async e=>{let t=await this.resolveStatusChangedArtifact(e.payload.artifact);t!==void 0&&await this.handleArtifactEvent(`artifact.status.changed`,{artifact:t,path:e.payload.path,previous:e.payload.previous,current:e.payload.current})})}async handleArtifactEvent(e,t){let n=this.artifactKey(t.artifact),r=this.readDepth(n);if(r>=10){console.warn(`[TransitionPipelineService] Transition depth limit (10) reached for event '${e}' on artifact '${n}'. Loop protection active — skipping rule evaluation.`);return}let i=this.ruleRegistry.getRulesForEvent(e);if(i.length!==0)for(let a of i)await this.evaluateAndDispatch(a,e,t,n,r)}async resolveStatusChangedArtifact(e){let t=await this.bus.requestOptional(v.resolve,{ref:e});if(!t.handled){console.warn(`[TransitionPipelineService] No artifact resolver is registered for status transition on artifact '${this.artifactKey(e)}'. Skipping rule evaluation.`);return}if(t.data.artifact===null){console.warn(`[TransitionPipelineService] Could not resolve status transition artifact '${this.artifactKey(e)}'. Skipping rule evaluation.`);return}return t.data.artifact}async resolvePreviousRevisedArtifact(e){let t=await this.bus.requestOptional(v.resolve,{ref:e});if(!(!t.handled||t.data.artifact===null))return t.data.artifact}async evaluateAndDispatch(e,t,n,r,i){let{rule:a,condition:o}=e,s={...n,_transition:{ruleId:a.id,eventType:t,depth:i+1}};if(o!==void 0){let e={...s},t;try{t=Be(o,e)}catch(e){console.error(`[TransitionPipelineService] Condition evaluation error for rule '${a.id}':`,e);return}if(!t)return}try{await this.actionRegistry.dispatch(a.action,s),a.action.type===`workflow.start`&&this.incrementDepth(r)}catch(e){console.error(`[TransitionPipelineService] Action dispatch error for rule '${a.id}' (action type '${a.action.type}'):`,e)}}artifactKey(e){return`${typeof e.kind==`string`?e.kind:`unknown`}:${typeof e.id==`string`?e.id:`unknown`}`}readDepth(e){let t=this.depthMap.get(e);return t===void 0?0:Date.now()>t.expiresAt?(this.depthMap.delete(e),0):t.count}incrementDepth(e){let t=this.depthMap.get(e);this.depthMap.set(e,{count:t===void 0?1:t.count+1,expiresAt:Date.now()+6e4})}};function dt(e){return async t=>{let n=await ft(e,t);if(!n)return{handled:!1,sessionId:null,clientAccountId:null,changed:!1};let{sessionId:r}=n,{observation:i,accountObserveRequest:a}=pt(t),o=await e.requestOptional(O.account.observe,a);if(!o.handled)return{handled:!1,sessionId:r,clientAccountId:null,changed:!1};let{clientAccountId:s}=o.data;return{handled:!0,sessionId:r,clientAccountId:s,changed:await bt(e,r,i,s)}}}async function ft(e,t){switch(t.locator.kind){case`session`:{let{session:r}=await e.request(n.get,{sessionId:t.locator.sessionId});return r?{sessionId:r.sessionId,session:r}:null}case`adapter-session`:{let{session:r}=await e.request(n.getByAdapterSessionId,{adapterSessionId:t.locator.adapterSessionId});return r?{sessionId:r.sessionId,session:r}:null}case`both`:{let[{session:r},{session:i}]=await Promise.all([e.request(n.get,{sessionId:t.locator.sessionId}),e.request(n.getByAdapterSessionId,{adapterSessionId:t.locator.adapterSessionId})]);if(!r&&!i)return null;if(!r||!i)throw Error(`Session locator mismatch: sessionId "${t.locator.sessionId}" and adapterSessionId "${t.locator.adapterSessionId}" must both resolve the same session`);if(r.sessionId!==i.sessionId)throw Error(`Session locator mismatch: sessionId "${t.locator.sessionId}" and adapterSessionId "${t.locator.adapterSessionId}" resolve to different sessions`);return{sessionId:r.sessionId,session:r}}}}function pt(e){let t={clientId:e.clientId,source:e.source,kind:e.kind,observedAt:e.observedAt,payload:vt(e.payload)};return{observation:t,accountObserveRequest:mt(t)}}function mt(e){let t=e.payload,n=ht(t),r=gt(t);if(r.length>0)return{clientId:e.clientId,observedAt:e.observedAt,displayLabel:_t(t,n),identifiers:r};throw Error(`client.session.account.observe for "${e.clientId}" requires canonical client account identifiers`)}function ht(e){return yt(e.accountInfo)??e}function gt(e){let t=e.identifiers;if(!Array.isArray(t))return[];try{return h.array(Pe).min(1).parse(t)}catch(e){throw Error(`client.session.account.observe received malformed canonical client account identifiers`,{cause:e})}}function _t(e,t){return q(e.displayLabel)??q(t.displayLabel)??q(t.email)??q(t.label)}function vt(e){return structuredClone(e)}function yt(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:void 0}function q(e){return typeof e==`string`&&e.trim().length>0?e.trim():void 0}async function bt(e,t,r,i){let a=await e.request(n.update,{sessionId:t,clientId:r.clientId,clientAccountId:i,lastClientIdentityObservation:r});if(!a.success)throw Error(`Failed to update session "${t}" with client account linkage`);return a.clientAccountChanged??!1}const xt=C(`session-storage`).name;var St=class extends T{constructor(e=_){super(e)}onInit(){let e=dt(this.bus);this.registerHandler(O.session.account.observe,async t=>{t.setResult(await e(Fe.request.parse(t.payload)))})}};const Ct={name:`makaio.session-client-account-linking`,displayName:`Session Client Account Linking`,version:`0.1.0`,dependencies:[S(xt),S(`makaio.clients-core`)],critical:!1,create:e=>new St(e.bus)},wt={name:`framework-shell`,displayName:`Shell`,version:`0.1.0`,surface:`interactive`,windows:[{id:`main`,style:`utility`,width:1e3,height:700,singleton:!0}]};async function Tt(e){let{harnesses:t}=await e.request(m.list,{}),n=new Set(t.map(e=>e.id));for(let t of De){if(n.has(t.id))continue;let r={...t};await e.request(m.set,{harness:r})}}function J(e,t,n){return e??t??n}var Et=class extends T{static storage={drizzle:ye};constructor(e=_){super(e)}async onInit(){await Tt(this.bus),this.registerHandlers()}registerHandlers(){this.registerHandler(y.get,async e=>{let t=await this.loadHarness(e.payload);if(!t)throw Error(`Harness not found`);e.setResult(t)}),this.registerHandler(y.list,async e=>{let{harnesses:t}=await this.bus.request(m.list,e.payload);e.setResult({harnesses:t})}),this.registerHandler(y.set,async e=>{let t=await this.upsertHarness(e.payload);e.setResult({id:t})}),this.registerHandler(y.delete,async e=>{let{deleted:t}=await this.bus.request(m.delete,{id:e.payload.id});e.setResult({success:t})}),this.registerHandler(y.getDefault,async e=>{let t=await this.getDefaultHarness(e.payload.adapterName,e.payload.clientId);e.setResult(t)}),this.registerHandler(y.resolve,async e=>{let{adapterName:t,clientId:n,personaHarnessId:r,profileHarnessId:i}=e.payload;if(r){let i=await this.resolveAndValidateHarness(r,t,`persona`,n);e.setResult(i);return}if(i){let r=await this.resolveAndValidateHarness(i,t,`profile`,n);e.setResult(r);return}let a=await this.getDefaultHarness(t,n);e.setResult(a)}),this.registerHandler(y.getSchema,({setResult:e})=>{let{$schema:t,...n}=h.toJSONSchema(Oe);e({schema:n,uiConfig:{editMode:`fullPage`,hiddenFields:[`isDefault`]}})})}async upsertHarness(e){let t=await this.resolveHarnessId(e.name,e.adapterName,e.clientId),n=await this.loadHarness({id:t,adapterName:e.adapterName,clientId:e.clientId}),r=this.mergeHarnessPayload(t,e,n);return r.adapterName&&await this.validateNativeTools(r.adapterName,r.nativeTools),await this.bus.request(m.set,{harness:r}),t}mergeHarnessPayload(e,t,n){let r={enabled:[],disabled:[]};return{id:e,name:t.name,description:J(t.description,n?.description,void 0),adapterName:t.adapterName,clientId:J(t.clientId,n?.clientId,void 0),env:J(t.env,n?.env,void 0),credentials:J(t.credentials,n?.credentials,void 0),cwd:J(t.cwd,n?.cwd,void 0),approvalPolicy:J(t.approvalPolicy,n?.approvalPolicy,`always-ask`),nativeTools:J(t.nativeTools,n?.nativeTools,r),registryTools:J(t.registryTools,n?.registryTools,r),skills:J(t.skills,n?.skills,void 0),toolCapabilityMap:t.toolCapabilityMap??n?.toolCapabilityMap,capabilityOverrides:t.capabilityOverrides??n?.capabilityOverrides,toolApprovalOverrides:t.toolApprovalOverrides??n?.toolApprovalOverrides,isDefault:J(t.isDefault,n?.isDefault,!1),enabled:J(t.enabled,n?.enabled,!0)}}async resolveHarnessId(e,t,n){let r=n??t,{harnesses:i}=await this.bus.request(m.list,{name:e}),a=i.find(t=>t.name===e&&(t.clientId??t.adapterName)===r);if(a)return a.id;let o=i.find(t=>t.name===e&&(t.clientId??t.adapterName)!==r);if(o){let t=o.clientId?`client '${o.clientId}'`:`adapter '${o.adapterName}'`;throw Error(`Harness "${e}" already exists with scope ${t}; cannot change scope to ${r??`(none)`}`)}return this.createStableHarnessId(e,r)}async loadHarness(e){if(e.id){let{harness:t}=await this.bus.request(m.get,{id:e.id});return t&&(!e.adapterName||t.adapterName===e.adapterName)&&(!e.clientId||t.clientId===e.clientId)?t:null}if(!e.name)return null;let{harnesses:t}=await this.bus.request(m.list,{name:e.name,adapterName:e.adapterName,clientId:e.clientId});return e.clientId?t.find(t=>t.clientId===e.clientId)??null:e.adapterName?t.find(t=>t.adapterName===e.adapterName)??null:t[0]??null}async getDefaultHarness(e,t){if(t){let{harnesses:e}=await this.bus.request(m.list,{clientId:t}),n=e.find(e=>e.isDefault&&e.enabled);if(n)return n;let r=e.find(e=>e.enabled);if(r)return r}if(e){let{harnesses:t}=await this.bus.request(m.list,{adapterName:e}),n=t.find(e=>e.isDefault&&e.enabled);if(n)return n;let r=t.find(e=>e.enabled);if(r)return r}let n=t?e?`client '${t}' or adapter '${e}'`:`client '${t}'`:`adapter '${e}'`;throw Error(`No harness available for ${n}`)}assertHarnessAdapterMatch(e,t,n,r){if(e.adapterName&&t&&e.adapterName!==t)throw Error(`Resolved ${n} harness adapter mismatch: expected "${t}", got "${e.adapterName}"`);if(e.clientId&&r&&e.clientId!==r)throw Error(`Resolved ${n} harness client mismatch: expected "${r}", got "${e.clientId}"`)}assertHarnessEnabled(e,t){if(!e.enabled)throw Error(`Resolved ${t} harness is disabled: ${e.id}`)}async validateNativeTools(e,t){let n=await this.bus.requestOptional(Te.getCapabilities,{adapterName:e});if(!n.handled)return;let r=new Set(n.data.nativeTools),i=[...t.enabled,...t.disabled].filter(e=>!r.has(e));if(i.length>0)throw Error(`Tool '${i[0]}' not found in adapter '${e}' native tools. Declared tools: ${[...r].join(`, `)}`)}createStableHarnessId(e,t){return`harness-${Se(`sha256`).update(`${t??``}\0${e}`).digest(`hex`).slice(0,24)}`}async resolveAndValidateHarness(e,t,n,r){let i=await this.loadHarness({id:e});if(!i)throw Error(`${n===`persona`?`Persona`:`Profile`} harness not found: ${e}`);return this.assertHarnessAdapterMatch(i,t,n,r),this.assertHarnessEnabled(i,n),i}};const Dt={name:`makaio.harness`,displayName:`Harness`,version:`0.1.0`,critical:!0,storage:{registerHandlers:E(ye)},create:e=>new Et(e.bus)},Y=C(`session-storage`),X=C(`session-bridge`),Z=C(`session`),Ot=C(`session-orchestrator`),kt=C(`observed-session-ingestion`),Q=C(`tool-registry`),At=C(`tool-approval`),jt=C(`tray-menu`),Mt=C(`capability`),Nt=C(`model-registry`),Pt=C(`workflow-block-registry`),Ft=C(`transition-pipeline`),It=C(`filesystem`),Lt=C(`git`),Rt=C(`artifact-lifecycle-hook-registry`),zt=C(`facet-namespace-registry`),Bt={name:Rt.name,displayName:`Artifact Lifecycle Hook Registry`,version:`0.1.0`,critical:!0,create:e=>new F(e.bus)},$={name:zt.name,displayName:`Facet Namespace Registry`,version:`0.1.0`,critical:!0,create:e=>new L(e.bus)},Vt={name:Y.name,displayName:`Session Storage`,version:`0.1.0`,critical:!0,storage:{registerHandlers:E((n,r)=>{let s=[],c=e=>{for(let t=s.length-1;t>=0;--t)try{s[t]?.()}catch(t){console.warn(`[sessionStoragePackage] cleanup failed during ${e}:`,t)}s.length=0};try{s.push(i(n,r)),s.push(t(n,r)),s.push(l(n,r)),s.push(o(n,r)),s.push(e(n,r)),s.push(ne(n,r)),s.push(a(n,r)),s.push(f(n,r)),s.push(d(n,r)),s.push(u(n,r)),s.push(te(n)),s.push(ie(n)),s.push(re(n))}catch(e){throw c(`rollback`),e}return()=>{c(`shutdown`)}})}},Ht={name:X.name,displayName:`Session Bridge`,version:`0.1.0`,dependencies:[S(Y.name)],critical:!0,create:e=>new s(e.bus)},Ut={name:Z.name,displayName:`Session`,version:`0.1.0`,dependencies:[S(X.name)],critical:!0,create:e=>new r(e.bus,{machineId:e.machineId,topology:`shared-machine`})},Wt={name:Ot.name,displayName:`Session Orchestrator`,version:`0.1.0`,dependencies:[S(Z.name),S(V.name)],critical:!0,runtimeOwnership:{sessionOrchestrator:!0},create:e=>new c(e.bus,e.machineId)},Gt={name:kt.name,displayName:`Observed-Session Ingestion`,version:`0.1.0`,dependencies:[S(X.name)],critical:!1,create:e=>new ee(e.bus)},Kt={name:Q.name,displayName:`Tool Registry`,version:`0.1.0`,critical:!0,create:e=>new tt({bus:e.bus})},qt={name:At.name,displayName:`Tool Approval`,version:`0.1.0`,dependencies:[S(Q.name)],critical:!0,create:e=>new _e(e.bus)},Jt={name:jt.name,displayName:`Tray Menu`,version:`0.1.0`,critical:!0,create:e=>new ve(e.bus)},Yt={name:Mt.name,displayName:`Capability`,version:`0.1.0`,critical:!0,create:e=>new de(e.bus)},Xt={name:Pt.name,displayName:`Workflow Block Registry`,version:`0.1.0`,critical:!0,create:e=>new nt(e.bus)},Zt={name:Ft.name,displayName:`Transition Pipeline`,version:`0.1.0`,critical:!0,create:e=>new ut(e.bus)},Qt={name:It.name,displayName:`Filesystem`,version:`0.1.0`,critical:!0,create:e=>new xe(e.bus,e.machineId)},$t={name:Lt.name,displayName:`Git`,version:`0.1.0`,dependencies:[S(It.name)],critical:!0,create:e=>new He(e.bus)};function en(e){return{name:Nt.name,displayName:`Model Registry`,version:`0.1.0`,critical:!0,create:t=>new fe({bus:t.bus,fetcher:e})}}const tn=[ue,Bt,$,se,le,oe,ce,Vt,Ht,Ct,Ut,Wt,Gt,be,Kt,qt,Jt,Yt,Dt,V,wt,Xt,G,he,me,ge,Zt,$t,Qt];export{ct as A,R as B,qt as C,Xt as D,Jt as E,G as F,F as H,H as I,V as L,nt as M,tt as N,ut as O,W as P,B as R,Vt as S,Zt as T,M as U,L as V,$ as _,X as a,Wt as b,Z as c,Ft as d,jt as f,en as g,Yt as h,Nt as i,K as j,lt as k,At as l,Bt as m,Mt as n,Ot as o,Pt as p,zt as r,Y as s,Rt as t,Q as u,tn as v,Kt as w,Ut as x,Ht as y,z};
|
package/dist/git/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{i as e,o as t,t as n}from"../chunk-DTipWd-i.mjs";import{t as r}from"../supports-color-
|
|
1
|
+
import{i as e,o as t,t as n}from"../chunk-DTipWd-i.mjs";import{t as r}from"../supports-color-i7OTnKcZ.mjs";import{t as i}from"../quick-lru-uwB0hP-y.mjs";import*as a from"node:fs/promises";import{readFile as o}from"node:fs/promises";import*as s from"node:path";import c,{normalize as l}from"node:path";import{createHash as u}from"node:crypto";import{GitHookSubjects as d}from"@makaio/framework/contracts";import{BaseService as f}from"@makaio/framework/service-base";import{FsSubjects as p}from"@makaio/framework/services/filesystem/namespace";import{GitSubjects as m,GitSubjects as h}from"@makaio/framework/services/git/namespace";import{promisify as ee}from"util";import{exec as g,spawn as _}from"child_process";import{EventEmitter as te}from"node:events";import v from"path";import{FsSubjects as ne}from"@makaio/framework/services/filesystem";var y=n(((e,t)=>{var n=1e3,r=n*60,i=r*60,a=i*24,o=a*7,s=a*365.25;t.exports=function(e,t){t||={};var n=typeof e;if(n===`string`&&e.length>0)return c(e);if(n===`number`&&isFinite(e))return t.long?u(e):l(e);throw Error(`val is not a non-empty string or a valid number. val=`+JSON.stringify(e))};function c(e){if(e=String(e),!(e.length>100)){var t=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(t){var c=parseFloat(t[1]);switch((t[2]||`ms`).toLowerCase()){case`years`:case`year`:case`yrs`:case`yr`:case`y`:return c*s;case`weeks`:case`week`:case`w`:return c*o;case`days`:case`day`:case`d`:return c*a;case`hours`:case`hour`:case`hrs`:case`hr`:case`h`:return c*i;case`minutes`:case`minute`:case`mins`:case`min`:case`m`:return c*r;case`seconds`:case`second`:case`secs`:case`sec`:case`s`:return c*n;case`milliseconds`:case`millisecond`:case`msecs`:case`msec`:case`ms`:return c;default:return}}}}function l(e){var t=Math.abs(e);return t>=a?Math.round(e/a)+`d`:t>=i?Math.round(e/i)+`h`:t>=r?Math.round(e/r)+`m`:t>=n?Math.round(e/n)+`s`:e+`ms`}function u(e){var t=Math.abs(e);return t>=a?d(e,t,a,`day`):t>=i?d(e,t,i,`hour`):t>=r?d(e,t,r,`minute`):t>=n?d(e,t,n,`second`):e+` ms`}function d(e,t,n,r){var i=t>=n*1.5;return Math.round(e/n)+` `+r+(i?`s`:``)}})),b=n(((e,t)=>{function n(e){n.debug=n,n.default=n,n.coerce=c,n.disable=o,n.enable=i,n.enabled=s,n.humanize=y(),n.destroy=l,Object.keys(e).forEach(t=>{n[t]=e[t]}),n.names=[],n.skips=[],n.formatters={};function t(e){let t=0;for(let n=0;n<e.length;n++)t=(t<<5)-t+e.charCodeAt(n),t|=0;return n.colors[Math.abs(t)%n.colors.length]}n.selectColor=t;function n(e){let t,i=null,a,o;function s(...e){if(!s.enabled)return;let r=s,i=Number(new Date);r.diff=i-(t||i),r.prev=t,r.curr=i,t=i,e[0]=n.coerce(e[0]),typeof e[0]!=`string`&&e.unshift(`%O`);let a=0;e[0]=e[0].replace(/%([a-zA-Z%])/g,(t,i)=>{if(t===`%%`)return`%`;a++;let o=n.formatters[i];if(typeof o==`function`){let n=e[a];t=o.call(r,n),e.splice(a,1),a--}return t}),n.formatArgs.call(r,e),(r.log||n.log).apply(r,e)}return s.namespace=e,s.useColors=n.useColors(),s.color=n.selectColor(e),s.extend=r,s.destroy=n.destroy,Object.defineProperty(s,`enabled`,{enumerable:!0,configurable:!1,get:()=>i===null?(a!==n.namespaces&&(a=n.namespaces,o=n.enabled(e)),o):i,set:e=>{i=e}}),typeof n.init==`function`&&n.init(s),s}function r(e,t){let r=n(this.namespace+(t===void 0?`:`:t)+e);return r.log=this.log,r}function i(e){n.save(e),n.namespaces=e,n.names=[],n.skips=[];let t=(typeof e==`string`?e:``).trim().replace(/\s+/g,`,`).split(`,`).filter(Boolean);for(let e of t)e[0]===`-`?n.skips.push(e.slice(1)):n.names.push(e)}function a(e,t){let n=0,r=0,i=-1,a=0;for(;n<e.length;)if(r<t.length&&(t[r]===e[n]||t[r]===`*`))t[r]===`*`?(i=r,a=n,r++):(n++,r++);else if(i!==-1)r=i+1,a++,n=a;else return!1;for(;r<t.length&&t[r]===`*`;)r++;return r===t.length}function o(){let e=[...n.names,...n.skips.map(e=>`-`+e)].join(`,`);return n.enable(``),e}function s(e){for(let t of n.skips)if(a(e,t))return!1;for(let t of n.names)if(a(e,t))return!0;return!1}function c(e){return e instanceof Error?e.stack||e.message:e}function l(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return n.enable(n.load()),n}t.exports=n})),x=n(((e,t)=>{e.formatArgs=r,e.save=i,e.load=a,e.useColors=n,e.storage=o(),e.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),e.colors=`#0000CC.#0000FF.#0033CC.#0033FF.#0066CC.#0066FF.#0099CC.#0099FF.#00CC00.#00CC33.#00CC66.#00CC99.#00CCCC.#00CCFF.#3300CC.#3300FF.#3333CC.#3333FF.#3366CC.#3366FF.#3399CC.#3399FF.#33CC00.#33CC33.#33CC66.#33CC99.#33CCCC.#33CCFF.#6600CC.#6600FF.#6633CC.#6633FF.#66CC00.#66CC33.#9900CC.#9900FF.#9933CC.#9933FF.#99CC00.#99CC33.#CC0000.#CC0033.#CC0066.#CC0099.#CC00CC.#CC00FF.#CC3300.#CC3333.#CC3366.#CC3399.#CC33CC.#CC33FF.#CC6600.#CC6633.#CC9900.#CC9933.#CCCC00.#CCCC33.#FF0000.#FF0033.#FF0066.#FF0099.#FF00CC.#FF00FF.#FF3300.#FF3333.#FF3366.#FF3399.#FF33CC.#FF33FF.#FF6600.#FF6633.#FF9900.#FF9933.#FFCC00.#FFCC33`.split(`.`);function n(){if(typeof window<`u`&&window.process&&(window.process.type===`renderer`||window.process.__nwjs))return!0;if(typeof navigator<`u`&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let e;return typeof document<`u`&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<`u`&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<`u`&&navigator.userAgent&&(e=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(e[1],10)>=31||typeof navigator<`u`&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function r(e){if(e[0]=(this.useColors?`%c`:``)+this.namespace+(this.useColors?` %c`:` `)+e[0]+(this.useColors?`%c `:` `)+`+`+t.exports.humanize(this.diff),!this.useColors)return;let n=`color: `+this.color;e.splice(1,0,n,`color: inherit`);let r=0,i=0;e[0].replace(/%[a-zA-Z%]/g,e=>{e!==`%%`&&(r++,e===`%c`&&(i=r))}),e.splice(i,0,n)}e.log=console.debug||console.log||(()=>{});function i(t){try{t?e.storage.setItem(`debug`,t):e.storage.removeItem(`debug`)}catch{}}function a(){let t;try{t=e.storage.getItem(`debug`)||e.storage.getItem(`DEBUG`)}catch{}return!t&&typeof process<`u`&&`env`in process&&(t=process.env.DEBUG),t}function o(){try{return localStorage}catch{}}t.exports=b()(e);let{formatters:s}=t.exports;s.j=function(e){try{return JSON.stringify(e)}catch(e){return`[UnexpectedJSONParseError]: `+e.message}}})),re=n(((t,n)=>{let i=e(`tty`),a=e(`util`);t.init=f,t.log=l,t.formatArgs=s,t.save=u,t.load=d,t.useColors=o,t.destroy=a.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."),t.colors=[6,2,3,4,5,1];try{let e=r();e&&(e.stderr||e).level>=2&&(t.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch{}t.inspectOpts=Object.keys(process.env).filter(e=>/^debug_/i.test(e)).reduce((e,t)=>{let n=t.substring(6).toLowerCase().replace(/_([a-z])/g,(e,t)=>t.toUpperCase()),r=process.env[t];return r=/^(yes|on|true|enabled)$/i.test(r)?!0:/^(no|off|false|disabled)$/i.test(r)?!1:r===`null`?null:Number(r),e[n]=r,e},{});function o(){return`colors`in t.inspectOpts?!!t.inspectOpts.colors:i.isatty(process.stderr.fd)}function s(e){let{namespace:t,useColors:r}=this;if(r){let r=this.color,i=`\x1B[3`+(r<8?r:`8;5;`+r),a=` ${i};1m${t} \u001B[0m`;e[0]=a+e[0].split(`
|
|
2
2
|
`).join(`
|
|
3
3
|
`+a),e.push(i+`m+`+n.exports.humanize(this.diff)+`\x1B[0m`)}else e[0]=c()+t+` `+e[0]}function c(){return t.inspectOpts.hideDate?``:new Date().toISOString()+` `}function l(...e){return process.stderr.write(a.formatWithOptions(t.inspectOpts,...e)+`
|
|
4
4
|
`)}function u(e){e?process.env.DEBUG=e:delete process.env.DEBUG}function d(){return process.env.DEBUG}function f(e){e.inspectOpts={};let n=Object.keys(t.inspectOpts);for(let r=0;r<n.length;r++)e.inspectOpts[n[r]]=t.inspectOpts[n[r]]}n.exports=b()(t);let{formatters:p}=n.exports;p.o=function(e){return this.inspectOpts.colors=this.useColors,a.inspect(e,this.inspectOpts).split(`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e,r as t,t as n}from"./chunk-DTipWd-i.mjs";import{t as r}from"./out-
|
|
1
|
+
import{o as e,r as t,t as n}from"./chunk-DTipWd-i.mjs";import{t as r}from"./out-DrhwCgqM.mjs";import{execFile as i}from"node:child_process";import{promisify as a}from"node:util";import{fileURLToPath as o}from"node:url";import s from"node:fs/promises";import c from"node:path";import l from"node:fs";import"node:events";import u from"node:process";import"node:stream";import"node:stream/promises";var d=e(r(),1);async function f(e,t,n){if(typeof n!=`string`)throw TypeError(`Expected a string, got ${typeof n}`);try{return(await s[e](n))[t]()}catch(e){if(e.code===`ENOENT`)return!1;throw e}}function p(e,t,n){if(typeof n!=`string`)throw TypeError(`Expected a string, got ${typeof n}`);try{return l[e](n)[t]()}catch(e){if(e.code===`ENOENT`)return!1;throw e}}f.bind(void 0,`stat`,`isFile`);const m=f.bind(void 0,`stat`,`isDirectory`);f.bind(void 0,`lstat`,`isSymbolicLink`),p.bind(void 0,`statSync`,`isFile`),p.bind(void 0,`statSync`,`isDirectory`),p.bind(void 0,`lstatSync`,`isSymbolicLink`),a(i);function h(e){return e instanceof URL?o(e):e}var g=e(n(((e,t)=>{function n(e){return Array.isArray(e)?e:[e]}let r=/^\s+$/,i=/(?:[^\\]|^)\\$/,a=/^\\!/,o=/^\\#/,s=/\r?\n/g,c=/^\.{0,2}\/|^\.{1,2}$/,l=/\/$/,u=`node-ignore`;typeof Symbol<`u`&&(u=Symbol.for(`node-ignore`));let d=u,f=(e,t,n)=>(Object.defineProperty(e,t,{value:n}),n),p=/([0-z])-([0-z])/g,m=()=>!1,h=e=>e.replace(p,(e,t,n)=>t.charCodeAt(0)<=n.charCodeAt(0)?e:``),g=e=>{let{length:t}=e;return e.slice(0,t-t%2)},_=[[/^\uFEFF/,()=>``],[/((?:\\\\)*?)(\\?\s+)$/,(e,t,n)=>t+(n.indexOf(`\\`)===0?` `:``)],[/(\\+?)\s/g,(e,t)=>{let{length:n}=t;return t.slice(0,n-n%2)+` `}],[/[\\$.|*+(){^]/g,e=>`\\${e}`],[/(?!\\)\?/g,()=>`[^/]`],[/^\//,()=>`^`],[/\//g,()=>`\\/`],[/^\^*\\\*\\\*\\\//,()=>`^(?:.*\\/)?`],[/^(?=[^^])/,function(){return/\/(?!$)/.test(this)?`^`:`(?:^|\\/)`}],[/\\\/\\\*\\\*(?=\\\/|$)/g,(e,t,n)=>t+6<n.length?`(?:\\/[^\\/]+)*`:`\\/.+`],[/(^|[^\\]+)(\\\*)+(?=.+)/g,(e,t,n)=>t+n.replace(/\\\*/g,`[^\\/]*`)],[/\\\\\\(?=[$.|*+(){^])/g,()=>`\\`],[/\\\\/g,()=>`\\`],[/(\\)?\[([^\]/]*?)(\\*)($|\])/g,(e,t,n,r,i)=>t===`\\`?`\\[${n}${g(r)}${i}`:i===`]`&&r.length%2==0?`[${h(n)}${r}]`:`[]`],[/(?:[^*])$/,e=>/\/$/.test(e)?`${e}$`:`${e}(?=$|\\/$)`]],v=/(^|\\\/)?\\\*$/,y=`regex`,b=`checkRegex`,x={[y](e,t){return`${t?`${t}[^/]+`:`[^/]*`}(?=$|\\/$)`},[b](e,t){return`${t?`${t}[^/]*`:`[^/]*`}(?=$|\\/$)`}},S=e=>_.reduce((t,[n,r])=>t.replace(n,r.bind(e)),e),C=e=>typeof e==`string`,w=e=>e&&C(e)&&!r.test(e)&&!i.test(e)&&e.indexOf(`#`)!==0,T=e=>e.split(s).filter(Boolean);var E=class{constructor(e,t,n,r,i,a){this.pattern=e,this.mark=t,this.negative=i,f(this,`body`,n),f(this,`ignoreCase`,r),f(this,`regexPrefix`,a)}get regex(){let e=`_`+y;return this[e]?this[e]:this._make(y,e)}get checkRegex(){let e=`_`+b;return this[e]?this[e]:this._make(b,e)}_make(e,t){let n=this.regexPrefix.replace(v,x[e]),r=this.ignoreCase?new RegExp(n,`i`):new RegExp(n);return f(this,t,r)}};let D=({pattern:e,mark:t},n)=>{let r=!1,i=e;i.indexOf(`!`)===0&&(r=!0,i=i.substr(1)),i=i.replace(a,`!`).replace(o,`#`);let s=S(i);return new E(e,t,i,n,r,s)};var O=class{constructor(e){this._ignoreCase=e,this._rules=[]}_add(e){if(e&&e[d]){this._rules=this._rules.concat(e._rules._rules),this._added=!0;return}if(C(e)&&(e={pattern:e}),w(e.pattern)){let t=D(e,this._ignoreCase);this._added=!0,this._rules.push(t)}}add(e){return this._added=!1,n(C(e)?T(e):e).forEach(this._add,this),this._added}test(e,t,n){let r=!1,i=!1,a;this._rules.forEach(o=>{let{negative:s}=o;i===s&&r!==i||s&&!r&&!i&&!t||o[n].test(e)&&(r=!s,i=s,a=s?void 0:o)});let o={ignored:r,unignored:i};return a&&(o.rule=a),o}};let k=(e,t)=>{throw new t(e)},A=(e,t,n)=>C(e)?e?A.isNotRelative(e)?n(`path should be a \`path.relative()\`d string, but got "${t}"`,RangeError):!0:n(`path must not be empty`,TypeError):n(`path must be a string, but got \`${t}\``,TypeError),j=e=>c.test(e);A.isNotRelative=j,A.convert=e=>e;var M=class{constructor({ignorecase:e=!0,ignoreCase:t=e,allowRelativePaths:n=!1}={}){f(this,d,!0),this._rules=new O(t),this._strictPathCheck=!n,this._initCache()}_initCache(){this._ignoreCache=Object.create(null),this._testCache=Object.create(null)}add(e){return this._rules.add(e)&&this._initCache(),this}addPattern(e){return this.add(e)}_test(e,t,n,r){let i=e&&A.convert(e);return A(i,e,this._strictPathCheck?k:m),this._t(i,t,n,r)}checkIgnore(e){if(!l.test(e))return this.test(e);let t=e.split(`/`).filter(Boolean);if(t.pop(),t.length){let e=this._t(t.join(`/`)+`/`,this._testCache,!0,t);if(e.ignored)return e}return this._rules.test(e,!1,b)}_t(e,t,n,r){if(e in t)return t[e];if(r||=e.split(`/`).filter(Boolean),r.pop(),!r.length)return t[e]=this._rules.test(e,n,y);let i=this._t(r.join(`/`)+`/`,t,n,r);return t[e]=i.ignored?i:this._rules.test(e,n,y)}ignores(e){return this._test(e,this._ignoreCache,!1).ignored}createFilter(){return e=>!this.ignores(e)}filter(e){return n(e).filter(this.createFilter())}test(e){return this._test(e,this._testCache,!0)}};let N=e=>new M(e),P=e=>A(e&&A.convert(e),e,m),F=()=>{A.convert=e=>/^\\\\\?\\/.test(e)||/["<>|\u0000-\u001F]+/u.test(e)?e:e.replace(/\\/g,`/`);let e=/^[a-z]:\//i;A.isNotRelative=t=>e.test(t)||j(t)};typeof process<`u`&&process.platform===`win32`&&F(),t.exports=N,N.default=N,t.exports.isPathValid=P,f(t.exports,Symbol.for(`setupWindows`),F)}))(),1);function _(e){return e.startsWith(`\\\\?\\`)?e:e.replace(/\\/g,`/`)}const v=e=>e[0]===`!`,y=[`**/node_modules`,`**/flow-typed`,`**/coverage`,`**/.git`],b={absolute:!0,dot:!0},x=(e,t)=>v(e)?`!`+c.posix.join(t,e.slice(1)):c.posix.join(t,e),S=(e,t)=>{let n=_(c.relative(t,c.dirname(e.filePath)));return e.content.split(/\r?\n/).filter(e=>e&&!e.startsWith(`#`)).map(e=>x(e,n))},C=(e,t)=>{if(t=_(t),c.isAbsolute(e)){if(_(e).startsWith(t))return c.relative(t,e);throw Error(`Path ${e} is not in cwd ${t}`)}return e},w=(e,t)=>{let n=e.flatMap(e=>S(e,t)),r=(0,g.default)().add(n);return e=>(e=h(e),e=C(e,t),e?r.ignores(_(e)):!1)},T=(e={})=>({cwd:h(e.cwd)??u.cwd(),suppressErrors:!!e.suppressErrors,deep:typeof e.deep==`number`?e.deep:1/0,ignore:[...e.ignore??[],...y]}),E=async(e,t)=>{let{cwd:n,suppressErrors:r,deep:i,ignore:a}=T(t),o=await(0,d.default)(e,{cwd:n,suppressErrors:r,deep:i,ignore:a,...b});return w(await Promise.all(o.map(async e=>({filePath:e,content:await s.readFile(e,`utf8`)}))),n)};var D=t({globby:()=>U});const O=e=>{if(e.some(e=>typeof e!=`string`))throw TypeError(`Patterns must be a string or an array of strings`)},k=(e,t)=>{let n=v(e)?e.slice(1):e;return c.isAbsolute(n)?n:c.join(t,n)},A=({directoryPath:e,files:t,extensions:n})=>{let r=n?.length>0?`.${n.length>1?`{${n.join(`,`)}}`:n[0]}`:``;return t?t.map(t=>c.posix.join(e,`**/${c.extname(t)?t:`${t}${r}`}`)):[c.posix.join(e,`**${r?`/*${r}`:``}`)]},j=async(e,{cwd:t=u.cwd(),files:n,extensions:r}={})=>(await Promise.all(e.map(async e=>await m(k(e,t))?A({directoryPath:e,files:n,extensions:r}):e))).flat(),M=e=>(e=[...new Set([e].flat())],O(e),e),N=e=>{if(!e)return;let t;try{t=l.statSync(e)}catch{return}if(!t.isDirectory())throw Error("The `cwd` option must be a path to a directory")},P=(e={})=>(e={...e,ignore:e.ignore??[],expandDirectories:e.expandDirectories??!0,cwd:h(e.cwd)},N(e.cwd),e),F=e=>async(t,n)=>e(M(t),P(n)),I=e=>{let{ignoreFiles:t,gitignore:n}=e,r=t?M(t):[];return n&&r.push(`**/.gitignore`),r},L=async e=>{let t=I(e);return R(t.length>0&&await E(t,e))},R=e=>{let t=new Set;return n=>{let r=c.normalize(n.path??n);return t.has(r)||e&&e(r)?!1:(t.add(r),!0)}},z=(e,t)=>e.flat().filter(e=>t(e)),B=(e,t)=>{let n=[];for(;e.length>0;){let r=e.findIndex(e=>v(e));if(r===-1){n.push({patterns:e,options:t});break}let i=e[r].slice(1);for(let e of n)e.options.ignore.push(i);r!==0&&n.push({patterns:e.slice(0,r),options:{...t,ignore:[...t.ignore,i]}}),e=e.slice(r+1)}return n},V=(e,t)=>({...t?{cwd:t}:{},...Array.isArray(e)?{files:e}:e}),H=async(e,t)=>{let n=B(e,t),{cwd:r,expandDirectories:i}=t;if(!i)return n;let a=V(i,r);return Promise.all(n.map(async e=>{let{patterns:t,options:n}=e;return[t,n.ignore]=await Promise.all([j(t,a),j(n.ignore,{cwd:r})]),{patterns:t,options:n}}))},U=F(async(e,t)=>{let[n,r]=await Promise.all([H(e,t),L(t)]);return z(await Promise.all(n.map(e=>(0,d.default)(e.patterns,e.options))),r)}),{convertPathToPattern:W}=d.default;export{D as n,U as t};
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import{n as e,t}from"./schema-jIapW8Kb.mjs";import{i as n,n as r,r as i}from"./namespace-B7bntOB8.mjs";import{TurnStorageSubjects as a}from"./services/turn/namespace.mjs";import{SessionStorageSubjects as o}from"./services/session/storage/namespace.mjs";import{n as s}from"./agent-namespace-D51PODFf.mjs";import{AdapterRuntimeSubjects as c}from"./services/adapter-runtime/namespace.mjs";import{r as l}from"./namespace-BFqkUTJp.mjs";import{ProviderStorageSubjects as u}from"./services/settings/storage/providers-namespace.mjs";import{ExecutionTargetSubjects as d}from"./services/execution-target/namespace.mjs";import"./services/session/turns/namespace.mjs";import{MessageStorageSubjects as f}from"./services/session/messages/namespace.mjs";import{n as p}from"./identity-DC3Pk0ps.mjs";import{a as m,o as h}from"./provider-context-Dh-VOOYF.mjs";import{n as g,t as _}from"./attach-error-BSlc7JfL.mjs";import{ExtractedContextSchema as v}from"./services/compression/schemas.mjs";import{PreferencesSubjects as ee}from"./services/preferences/storage-namespace.mjs";import{AdapterSubjects as y,AgentResolutionSubjects as b,AgentSubjects as x,ProviderContextSchema as te,SessionOwnershipStorageSubjects as S,SessionSubjects as C,TurnInitiatorSchema as ne,TurnUsageSchema as re,resolveResumableAdapterSessionId as ie}from"@makaio/framework/contracts";import{defineDialectSchema as ae,getRawSqlExecutor as oe,getStorageEngine as se,resolveSchema as w}from"@makaio/framework/storage/drizzle";import{and as T,asc as E,desc as ce,eq as D,gt as le,inArray as ue,lt as de,sql as O}from"drizzle-orm";import{HookAbortError as fe}from"@makaio/framework/hooks";import{AdapterRuntimeSubjects as pe}from"@makaio/framework/services/adapter-runtime";import{resolveRuntimeProviderContext as me}from"@makaio/framework/services/provider-context";function he(e,t,n,i){return e.on(r.append,e=>{let{event:r}=e.payload,a=t.get(r.sessionId)??[];if(n.has(r.eventId)){e.setResult({success:!0});return}a.push(r),t.set(r.sessionId,a),n.set(r.eventId,i()),e.setResult({success:!0})})}function ge(e,t,n){return e.on(r.getEvents,e=>{let{sessionId:r,options:i}=e.payload,a=t.get(r)??[],o=i?.order??`asc`,s=o===`desc`?[...a].reverse():a,c=0;if(i?.after&&/^\d+$/.test(i.after)){let t=Number(i.after),r=s.findIndex(e=>{let r=n.get(e.eventId)??-1;return o===`desc`?r<t:r>t});if(r===-1){e.setResult({events:[],nextCursor:null,totalCount:a.length});return}c=r}let l=s.slice(c);if(i?.types&&i.types.length>0){let e=new Set(i.types);l=l.filter(t=>e.has(t.type))}let u=i?.limit??100,d=l.length>u,f=l.slice(0,u),p=null;if(d&&f.length>0){let e=f[f.length-1],t=n.get(e.eventId);t!==void 0&&(p=t.toString())}e.setResult({events:f,nextCursor:p,totalCount:a.length})})}function _e(e,t){return e.on(r.getByIds,e=>{let{sessionId:n,eventIds:r}=e.payload,i=t.get(n)??[],a=new Set(r),o=i.filter(e=>a.has(e.eventId));e.setResult({events:o})})}function ve(e,t,n){return e.on(r.deleteBySession,e=>{let{sessionId:r}=e.payload,i=t.get(r);if(i)for(let e of i)n.delete(e.eventId);let a=i?.length??0;t.delete(r),e.setResult({success:!0,deletedCount:a})})}function ye(e,t){return e.on(r.getEventsBySessions,e=>{let{sessionIds:n,types:r,limitPerSession:i=50}=e.payload;if(n.length===0||r.length===0){e.setResult({eventsBySession:{}});return}let a=new Set(r),o={};for(let e of n){let n=(t.get(e)??[]).filter(e=>a.has(e.type)).reverse().slice(0,i);n.length>0&&(o[e]=n)}e.setResult({eventsBySession:o})})}function be(e){let t=new Map,n=new Map,r=1,i=[he(e,t,n,()=>r++),ge(e,t,n),_e(e,t),ve(e,t,n),ye(e,t)];return()=>i.forEach(e=>e())}const xe=n.postgres,Se=ae({sessionEvents:i},{sessionEvents:xe}),Ce=[`sessionId`,`agentId`,`adapterId`,`messageId`,`turnId`];function we(e){let t=e.payload,n={};for(let[e,r]of Object.entries(t))Ce.includes(e)||(n[e]=r);return n}function Te(e){let t=JSON.parse(e.payload),n=e.type===`message`?e.messageId:e.originatingMessageId,r={...t,sessionId:e.sessionId,...e.agentId&&{agentId:e.agentId},...e.adapterId&&{adapterId:e.adapterId},...n&&{messageId:n},...e.type===`message`?{turnId:e.turnId??null}:e.turnId&&{turnId:e.turnId}};return{sessionId:e.sessionId,eventId:e.eventId,timestamp:e.timestamp,type:e.type,payload:r}}function Ee(e){switch(e.type){case`user_message.sent`:{let t=e.payload.content;return typeof t==`string`?t:(Array.isArray(t.blocks)?t.blocks:[t.blocks]).filter(e=>e.type===`text`).map(e=>e.content).join(`
|
|
2
|
+
`)}case`agent.added`:case`user_message.acknowledged`:case`user_message.completed`:case`turn.started`:case`turn.completed`:case`message`:case`branch.created`:case`branch.merged`:case`squash`:return null;default:return De(e.payload)}}function De(e){let t=e.contentText;if(typeof t==`string`&&t.length>0)return t;let n=e.summary;return typeof n==`string`&&n.length>0?n:null}function Oe({bus:e,db:t,sessionEvents:n}){return e.on(r.append,async e=>{let{event:r}=e.payload,i=`payload`in r&&`agentId`in r.payload?r.payload.agentId:null,a=`payload`in r&&`adapterId`in r.payload?r.payload.adapterId:null,o=`payload`in r&&`turnId`in r.payload?r.payload.turnId:null,s=`payload`in r&&`messageId`in r.payload?r.payload.messageId:null,c=r.type===`message`?s:null,l=r.type===`message`?null:s,u={sessionId:r.sessionId,eventId:r.eventId,timestamp:r.timestamp,type:r.type,agentId:i,adapterId:a,messageId:c,originatingMessageId:l,turnId:o,contentText:Ee(r),payload:JSON.stringify(we(r))};await t.insert(n).values(u).onConflictDoNothing(),e.setResult({success:!0})})}function ke({bus:e,db:t,sessionEvents:n}){return e.on(r.getEvents,async e=>{let{sessionId:r,options:i}=e.payload,a=[D(n.sessionId,r)],o=i?.order??`asc`;if(i?.after){let e=parseInt(i.after,10);!isNaN(e)&&e>0&&(o===`desc`?a.push(de(n.id,e)):a.push(le(n.id,e)))}i?.types&&i.types.length>0&&a.push(ue(n.type,i.types));let s=i?.limit??100,c=o===`desc`?ce:E,l=await t.select().from(n).where(T(...a)).orderBy(c(n.id)).limit(s+1),u=l.length>s,d=u?l.slice(0,s):l,f=d.map(Te),p=u&&d.length>0?d[d.length-1].id.toString():null;e.setResult({events:f,nextCursor:p})})}function Ae({bus:e,db:t,sessionEvents:n}){return e.on(r.getByIds,async e=>{let{sessionId:r,eventIds:i}=e.payload,a=(await t.select().from(n).where(T(D(n.sessionId,r),ue(n.eventId,i))).orderBy(E(n.timestamp))).map(Te);e.setResult({events:a})})}function je({bus:e,db:t,sessionEvents:n}){return e.on(r.deleteBySession,async e=>{let{sessionId:r}=e.payload,i=(await t.select().from(n).where(D(n.sessionId,r))).length;await t.delete(n).where(D(n.sessionId,r)),e.setResult({success:!0,deletedCount:i})})}function Me({bus:e,db:t,sessionEvents:n}){return e.on(r.getEventsBySessions,async e=>{let{sessionIds:r,types:i,limitPerSession:a=50}=e.payload;if(r.length===0||i.length===0){e.setResult({eventsBySession:{}});return}let o={};for(let e of r){let r=await t.select().from(n).where(T(D(n.sessionId,e),ue(n.type,i))).orderBy(ce(n.timestamp)).limit(a);r.length>0&&(o[e]=r.map(Te))}e.setResult({eventsBySession:o})})}function Ne(e,t){let{sessionEvents:n}=w(t,Se),r={bus:e,db:t,sessionEvents:n},i=[Oe(r),ke(r),Ae(r),je(r),Me(r)];return()=>i.forEach(e=>e())}async function k(e,t,n){let i={sessionId:t.sessionId,eventId:t.eventId??crypto.randomUUID(),timestamp:t.timestamp??Date.now(),type:t.type,payload:t.payload},a=n?n(i):i;a&&await e.requestOptional(r.append,{event:a})}async function Pe(e,t){await k(e,{type:`turn.started`,sessionId:t.sessionId,eventId:`turn.started:${t.turnId}`,payload:t});try{await e.emit(C.turn.started,t)}catch(e){console.error(`[SessionLifecycle] Failed to emit turn.started for turn ${t.turnId}:`,e)}}async function Fe(e,t){try{await e.emit(C.user_message.sent,t)}catch(e){console.error(`[SessionLifecycle] Failed to emit user_message.sent for turn ${t.turnId}:`,e)}}function Ie(e,t){let n=[e.on(C.agent.added,async n=>{await Le(e,{type:`agent.added`,sessionId:n.payload.sessionId,payload:n.payload},t)}),e.on(C.branch.created,async n=>{await Le(e,{type:`branch.created`,sessionId:n.payload.sessionId,payload:n.payload},t)})];return()=>{for(let e of n)e()}}async function Le(e,t,n){try{await k(e,t,n)}catch(e){console.warn(`[session-lifecycle-events] Failed to persist subscription lifecycle event`,{type:t.type,sessionId:t.sessionId,error:e instanceof Error?e.message:String(e)})}}async function A(e,t){let{verdict:n}=t;if(n.kind===`native`)return;let r=crypto.randomUUID(),i=Date.now(),a={sessionId:t.sessionId,eventId:r,timestamp:i,intent:t.intent,...t.agentId!==void 0&&{agentId:t.agentId},...t.adapterId!==void 0&&{adapterId:t.adapterId},...t.turnId!==void 0&&{turnId:t.turnId}},o=n.kind===`degrade`?{...a,verdictKind:`degrade`,reason:n.reason}:{...a,verdictKind:`foreign`,foreignMachineId:n.machineId};try{await k(e,{type:`locality.degraded`,sessionId:t.sessionId,eventId:r,timestamp:i,payload:o})}catch(e){console.warn(`[session-lifecycle-events] Failed to persist locality.degraded event`,{sessionId:t.sessionId,error:e instanceof Error?e.message:String(e)})}try{await e.emit(C.locality.degraded,o)}catch(e){console.warn(`[session-lifecycle-events] Failed to emit live locality.degraded event`,{sessionId:t.sessionId,error:e instanceof Error?e.message:String(e)})}}async function Re(e,t){let n=await j(e,t.sessionId);if(n===null)return{outcome:`not-found`};let r=await Be(e,n);if(r.kind===`unresolved`)return{outcome:`unresolved`,sessionId:n.sessionId};let i=r.session;if(i.status!==`closed`)return{outcome:`unchanged`,sessionId:i.sessionId};let a=await e.bus.requestOptional(o.update,{sessionId:i.sessionId,status:`active`,expectedStatus:[`closed`]});return!a.handled||!a.data.success?ze(e,i.sessionId):(await e.bus.emit(C.updated,{sessionId:i.sessionId,changedProperties:[`status`]}),{outcome:`reopened`,sessionId:i.sessionId})}async function ze(e,t){return await j(e,t)===null?{outcome:`not-found`}:{outcome:`unchanged`,sessionId:t}}async function j(e,t){let n=await e.bus.requestOptional(o.get,{sessionId:t});return n.handled?n.data.session:null}async function Be(e,t){if(t.branchKind!==`compress`)return{kind:`root`,session:t};if(t.rootSessionId!==void 0){let n=await j(e,t.rootSessionId);return n===null||n.branchKind===`compress`?{kind:`unresolved`}:{kind:`root`,session:n}}let n=t;for(let t=0;t<64;t+=1){if(n.parentSessionId===void 0)return{kind:`unresolved`};let t=await j(e,n.parentSessionId);if(t===null)return{kind:`unresolved`};if(t.branchKind!==`compress`)return{kind:`root`,session:t};n=t}return{kind:`unresolved`}}async function Ve(e,t,n){let r=await Ue(e,n.agentId);return r===He?null:r===null?`agent-gone`:r.status===`disposed`?`agent-disposed`:t===`machine-exclusive`?await We(e,n.adapterId)?null:`adapter-instance-gone`:null}const He=Symbol(`inconclusive`);async function Ue(e,t){try{let n=await e.requestOptional(s.get,{agentId:t});return n.handled?n.data.agent:He}catch{return He}}async function We(e,t){try{return(await e.requestOptional(y.listAgents,{adapterId:t})).handled}catch{return!1}}async function Ge(e){let{machineId:t}=e;if(t===void 0)return{outcome:`skipped`,reason:`machine-identity-unavailable`};let n=await e.bus.requestOptional(S.listClaims,{machineId:t});if(!n.handled)return{outcome:`reconciled`,machineId:t,claims:[]};let r=[];for(let t of n.data.claims){let n=await Ve(e.bus,e.topology,t);if(n===null){r.push({claim:t,verdict:`retained`});continue}let i=await e.bus.request(S.release,{agentId:t.agentId,claimToken:t.claimToken,disposition:`abandoned`});r.push({...Ke(t,i),reason:n})}return{outcome:`reconciled`,machineId:t,claims:r}}function Ke(e,t){switch(t.outcome){case`marked`:return{claim:t.claim,verdict:`abandoned`};case`not-owner`:return{claim:t.holder,verdict:`vanished`};case`released`:case`not-found`:return{claim:e,verdict:`vanished`}}}async function qe(e,t){let n=await e.bus.requestOptional(S.releaseAgentClaims,{agentId:t.agentId,...t.claimToken!==void 0&&{claimToken:t.claimToken},disposition:t.disposition});return n.handled?n.data:{releasedProviderSessionIds:[],markedClaims:[],claimTokenNotFound:t.claimToken!==void 0}}function M(){return crypto.randomUUID()}const Je={machineId:`keyless-designation`,adapterId:`keyless-designation`,adapterName:`keyless-designation`};async function Ye(e,t){let n=await e.requestOptional(S.claim,{...Je,providerSessionId:null,sessionId:t.sessionId,agentId:t.agentId,claimToken:M(),designateLead:{expectedLeadAgentId:t.expectedLeadAgentId,...t.clear===!0&&{clear:!0}}});return n.handled?n.data:void 0}function Xe(e,t){return t??e.machineId}async function Ze(e,t){let n=Xe(e,t.machineId),r=t.resumeProviderSessionId===null;if(n===void 0&&!r)return{outcome:`machine-identity-unavailable`};let i=n??Je.machineId,a={machineId:i,adapterId:t.adapterId,adapterName:t.adapterName,providerSessionId:t.resumeProviderSessionId,sessionId:t.sessionId,agentId:t.agentId,claimToken:M(),...t.role===`lead`&&{designateLead:{expectedLeadAgentId:t.expectedLeadAgentId??null}}},o=await e.bus.request(S.claim,a);switch(o.outcome){case`claimed`:case`idempotent`:return{outcome:`reserved`,reservation:{agentId:t.agentId,sessionId:t.sessionId,machineId:i,adapterId:t.adapterId,claim:o.claim,leadDesignated:o.leadDesignated,previousLeadAgentId:o.previousLeadAgentId}};case`already-claimed`:return{outcome:`occupied`,holder:o.holder};case`lead-conflict`:return{outcome:`lead-conflict`,currentLeadAgentId:o.currentLeadAgentId};case`agent-disposed`:return{outcome:`agent-disposed`};case`not-found`:return{outcome:`not-found`,missing:o.missing}}}function Qe(e,t){return e.confirmed?{kind:`confirmed`,providerSessionId:e.providerSessionId,claimToken:t}:{kind:`demote`,claimToken:t}}async function $e(e,t){let n=Xe(e,t.machineId);if(n===void 0)return{outcome:`machine-identity-unavailable`};let r=t.claimToken??M();for(let i=0;;i+=1){let{ownership:a}=await e.bus.request(S.read,{agentId:t.agentId});if(a===null)return{outcome:`not-found`};let o=await e.bus.request(S.settleMovement,{machineId:n,adapterId:t.adapterId,adapterName:t.adapterName,sessionId:t.sessionId,agentId:t.agentId,expectedRevision:a.revision,movement:Qe(t.movement,r)});if(o.outcome!==`currency-changed`||i>=1)return o}}function et(e){let{bus:t}=e,n=[t.on(C.ownership.reserveStart,async t=>{t.setResult(await Ze(e,t.payload))}),t.on(C.ownership.settleMovement,async t=>{t.setResult(await $e(e,t.payload))}),t.on(C.ownership.release,async t=>{t.setResult(await qe(e,t.payload))}),t.on(C.ownership.reconcile,async t=>{t.setResult(await Ge(e))}),t.on(C.ownership.continuation,async t=>{t.setResult(await Re(e,t.payload))})];return()=>{for(let e=n.length-1;e>=0;--e)n[e]?.()}}const N=new Map;function tt(e,t){let n=(N.get(e)??Promise.resolve()).then(t),r=n.then(()=>void 0,()=>void 0);return N.set(e,r),r.then(()=>{N.get(e)===r&&N.delete(e)}),n}function nt(e){return e.on(x.adapterSession.moved,async t=>{let{agentId:n,adapterId:r,adapterName:i,sessionId:a,adapterSessionId:o,confirmed:s}=t.payload;if(a===void 0||s!==(o!==void 0))return;let c=o===void 0?{confirmed:!1}:{confirmed:!0,providerSessionId:o};await tt(n,async()=>{await rt(e,{agentId:n,adapterId:r,adapterName:i,sessionId:a},c)})})}var P=class extends Error{outcome;constructor(e,t,n){super(`[session.ownership] movement for agent ${e} was not settled: ${t}`,n),this.name=`MovementNotSettledError`,this.outcome=t}};async function rt(e,t,n){let r;try{let i=await e.requestOptional(s.get,{agentId:t.agentId}),a=i.handled?i.data.agent:null;if(a===null)throw new P(t.agentId,`agent-row-unreadable`);if(a.adapterName!==t.adapterName||a.adapterId!==t.adapterId)throw new P(t.agentId,`adapter-mismatch`);let o=await e.requestOptional(C.ownership.settleMovement,{sessionId:t.sessionId,agentId:t.agentId,adapterId:t.adapterId,adapterName:t.adapterName,movement:n});if(!o.handled)throw new P(t.agentId,`authority-unavailable`);if(o.data.outcome===`settled`||o.data.outcome===`idempotent`)return;r=o.data.outcome}catch(e){throw e instanceof P?e:new P(t.agentId,`settle-failed`,{cause:e})}throw new P(t.agentId,r)}const F=new Map;function I(e,t){let n=F.get(e);if(n!==void 0)return{joined:!0,settled:n.settled};let r=()=>void 0,i=new Promise(e=>{r=e}),a,o=(async()=>{await i;try{return await t()}finally{F.get(e)===a&&F.delete(e)}})();return a={settled:o},F.set(e,a),r(),{joined:!1,settled:o}}function it(e){return F.get(e)}function at(e,t){return t?.hasNewTransforms===!0||e.forkTransforms!==void 0}function ot(e,t){return e.adapterName!==void 0&&t!==e.adapterName}function st(e){if(e.resumeIdentity?.movedUnconfirmed===!0)return{kind:`degrade`,reason:`adapter-session-moved`};if(!(e.resumeIdentity?e.resumeIdentity.adapterSessionId:e.session.adapterSessionId))return{kind:`degrade`,reason:`no-adapter-session`}}function ct(e){let{session:t,sessionContext:n}=e;return e.adapterSupportsNative?ot(t,e.targetAdapterName)?{kind:`degrade`,reason:`adapter-mismatch`}:st(e)||(!t.machineId||!e.localMachineId?{kind:`degrade`,reason:`missing-machine-id`}:t.machineId===e.localMachineId?t.isImported&&t.isOrchestrated===!0?{kind:`degrade`,reason:`hybrid-imported-orchestrated`}:n?.hasCompression?{kind:`degrade`,reason:`compression-present`}:at(t,n)?{kind:`degrade`,reason:`transforms-present`}:n?.hasConnectorSwap?{kind:`degrade`,reason:`connector-swap`}:e.currentCwd&&e.targetCwd&&e.currentCwd!==e.targetCwd?{kind:`degrade`,reason:`cwd-mismatch`}:e.intent===`fork`&&t.forkPointMessageId&&e.midHistoryForkSupported!==!0?{kind:`degrade`,reason:`mid-history-unsupported`}:{kind:`native`}:{kind:`foreign`,machineId:t.machineId}):{kind:`degrade`,reason:`adapter-unsupported`}}const lt=Object.freeze({kind:`fresh-with-history`});function ut(e,t){return e.kind!==`native`||t===void 0?lt:{kind:`native-resume`,resumeAdapterSessionId:t}}function dt(e){return e.kind===`native-resume`?e.resumeAdapterSessionId:void 0}function ft(e){return e.kind===`fresh-with-history`}function pt(e){return{adapterSessionId:e.adapterSessionId??null,currentAdapterSessionId:e.currentAdapterSessionId??null,currentAdapterSessionIdState:e.currentAdapterSessionIdState??`inherited`}}function mt(e){return{adapterSessionId:ie(e)??void 0,movedUnconfirmed:e.currentAdapterSessionIdState===`moved`}}function L(e){return mt(pt(e))}function ht(e,t){return(t.currencyFence??0)>0?mt(pt(t)):e.leadAgentId===t.agentId||e.leadAgentId===void 0&&e.isImported===!0?L(e):mt(pt(t))}async function gt(e,t,n){let{adapterId:r}=await e.request(c.resolveId,{adapterName:t,...n!==void 0&&{machineId:n}});return r}async function R(e,t){let{adapterName:n,adapterId:r,machineId:i,storedAdapterId:a}=t;if(r!==void 0)return i===void 0?void 0:{adapterId:r,machineId:i};let o=await gt(e,n,i).catch(e=>{console.debug(`[resolveOwnedAdapterInstance] no instance of ${n} resolvable for machine ${i??`<unscoped>`}:`,e)})??(i===void 0?a:void 0);if(o!==void 0)return i===void 0?{adapterId:o}:{adapterId:o,machineId:i}}async function _t(e,t,n){if(!(!t||!n))try{let{config:r}=await e.request(l.getProviderConfig,{id:t});if(!r)return;let{provider:i}=await e.request(u.get,{id:r.definitionId}),a=i?.availableModels?.find(e=>e.name===n);return a?{supportedReasoningLevels:a.supportedReasoningLevels}:void 0}catch{return}}async function vt(e,t){let{executionTarget:n}=await e.request(d.resolve,t);return n}async function yt(e,t){let{instance:n}=t;return e.request(C.ownership.reserveStart,{sessionId:t.sessionId,agentId:t.agentId,adapterId:n.adapterId,adapterName:t.adapterName,role:t.role,resumeProviderSessionId:t.resumeProviderSessionId,...t.role===`lead`&&{expectedLeadAgentId:t.expectedLeadAgentId},...n.machineId!==void 0&&{machineId:n.machineId}})}var z=class extends Error{code;deferredAgentIds;constructor(e,t,n,r){super(t,{cause:n}),this.code=e,this.name=`SessionStartError`,r!==void 0&&(this.deferredAgentIds=r)}},bt=class{tokens=new Set;constructor(e=[]){for(let t of e)this.add(t)}add(e){e!=null&&this.tokens.add(e)}record(e){(e.outcome===`settled`||e.outcome===`idempotent`)&&this.add(e.claim?.claimToken)}toArray(){return[...this.tokens]}};async function xt(e,t,n,r){try{await e.requestOptional(C.ownership.release,{agentId:t,disposition:n,claimToken:r})}catch(e){console.debug(`[session.start] release for agent ${t} failed:`,e)}}async function St(e,t,n,r){for(let i of r.toArray())await xt(e,t,n,i)}async function Ct(e,t){if(!t.leadDesignated)return;let n=t.previousLeadAgentId,r=await Ye(e,{sessionId:t.sessionId,agentId:n??t.agentId,expectedLeadAgentId:t.agentId,...n===null&&{clear:!0}});r!==void 0&&r.outcome===`lead-conflict`&&console.debug(`[session.start] lead restore for session ${t.sessionId} abandoned: a newer designation stands`)}async function wt(e,t){if(t!==void 0)try{await Ct(e,t)}catch(e){console.debug(`[session.start] clearing the designation of agent ${t.agentId} failed:`,e)}}async function B(e,t,n){n!==void 0&&(n.claim!==null&&await xt(e,t,`released`,n.claim.claimToken),await wt(e,n)),await e.requestOptional(s.delete,{agentId:t})}async function V(e,t,n,r){await Et(e,t,`abandoned`,n,r)}async function Tt(e,t,n,r){await Et(e,t,`released`,n,r)}async function Et(e,t,n,r,i){await St(e,t,n,i),await wt(e,r.reservation),r.writesAgentStatus&&await Dt(e,t)}async function Dt(e,t){try{await e.requestOptional(s.updateStatus,{agentId:t,status:`dead`,expectedStatus:[`starting`]})}catch(e){console.debug(`[session.start] marking agent ${t} dead failed:`,e)}}function Ot(e){switch(e){case`settled`:case`idempotent`:return;case`already-claimed`:case`superseded`:case`not-owner`:return{code:`ownership-refused`,disposition:`abandoned`,stopConnector:!0,markDead:!0};case`agent-disposed`:case`not-found`:return{code:`agent-unavailable`,disposition:`released`,stopConnector:!0,markDead:!1};case`currency-changed`:case`machine-identity-unavailable`:return{code:`settlement-unresolved`,disposition:null,stopConnector:!1,markDead:!1}}}async function H(e,t,n){try{await e.requestOptional(y.stopAgent,{adapterId:t,agentId:n})}catch(e){console.debug(`[session.start] stopping agent ${n} failed:`,e)}}async function kt(e,t,n,r,i,a){a.record(r);let o=Ot(r.outcome);if(o!==void 0)throw o.disposition!==null&&await St(e,n,o.disposition,a),await wt(e,i.reservation),o.stopConnector&&await H(e,t,n),o.markDead&&i.writesAgentStatus&&await Dt(e,n),new z(o.code,`[session.start] settlement for agent ${n} was refused: ${r.outcome}`)}async function At(e,t){let n=await e.requestOptional(s.updateStatus,{agentId:t,status:`idle`,expectedStatus:[`starting`,`dead`]});return!n.handled||n.data.transitioned?`committed`:n.data.success?await jt(e,t)?`lost`:`no-op`:`lost`}async function jt(e,t){let n=await e.requestOptional(s.get,{agentId:t});if(!n.handled)return!1;let r=n.data.agent;return r===null||r.status===`disposed`}async function Mt(e,t,n){let r;try{r=await Nt(e,t,n)}catch(n){throw await Ft(e,t,n)}r!==void 0&&await kt(e,t.adapterId,t.agentId,r,t.policy,t.claimTokens);let i;try{await Pt(e,t,n),i=await At(e,t.agentId)}catch(n){throw await Ft(e,t,n)}if(i===`lost`)throw await V(e,t.agentId,t.policy,t.claimTokens),await H(e,t.adapterId,t.agentId),new z(`agent-unavailable`,`[session.start] agent ${t.agentId} was removed while its start was completing`)}async function Nt(e,t,n){let{agentId:r,adapterId:i}=t;if(n!==void 0)return e.request(C.ownership.settleMovement,{sessionId:t.sessionId,agentId:r,adapterId:i,adapterName:t.adapterName,movement:{confirmed:!0,providerSessionId:n},...t.settlementClaimToken!==void 0&&{claimToken:t.settlementClaimToken},...t.machineId!==void 0&&{machineId:t.machineId}})}async function Pt(e,t,n){let{agentId:r,providerConfigId:i}=t;if(!(n===void 0&&i===void 0)&&!(await e.request(s.updateRuntime,{agentId:r,...n!==void 0&&{adapterSessionId:n},...i!==void 0&&{providerConfigId:i}})).success)throw Error(`[session.start] recording the origin session of agent ${r} was refused`)}async function Ft(e,t,n){return It(e,{adapterId:t.adapterId,agentId:t.agentId,attemptKind:`start`,policy:t.policy,claimTokens:t.claimTokens},n)}async function It(e,t,n){let{adapterId:r,agentId:i,attemptKind:a,policy:o,claimTokens:s}=t;return await V(e,i,o,s),await H(e,r,i),await jt(e,i)?new z(`agent-unavailable`,`[session.start] agent ${i} was removed while its ${a} was completing`,n):new z(`settlement-unresolved`,`[session.start] completing the ${a} of agent ${i} did not resolve`,n)}async function Lt(e,t){return e.request(y.rehydrateAgent,{adapterId:t.adapterId,agentId:t.agentId,...t.cwd!==void 0&&{cwd:t.cwd},...t.model!==void 0&&{model:t.model},...t.resumeProviderSessionId!==null&&{resumeAdapterSessionId:t.resumeProviderSessionId},...t.callerOwnsAgentRow===!0&&{callerOwnsAgentRow:!0}})}const U={writesAgentStatus:!0},Rt={writesAgentStatus:!1};function zt(e,t){return t===void 0?new z(`start-failed`,`[session.start] recovery of agent ${e} produced no result`):t.kind===`lost`?new z(`agent-unavailable`,`[session.start] agent ${e} was removed or claimed by another runtime while it was recovered`):new z(t.outcome===`agent-disposed`||t.outcome===`not-found`?`agent-unavailable`:`start-failed`,`[session.start] recovery of agent ${e} was refused: ${t.message??t.outcome}`)}async function Bt(e,t){let{agent:n}=t;if(n.status===`disposed`)return{kind:`refused`,outcome:`agent-disposed`};let r=await Vt(e,n);if(r===`not-found`)return{kind:`refused`,outcome:`not-found`};if(r===`lost`)return{kind:`lost`};let i=await Ut(e,t,r);return i.kind===`settled`?i.outcome:Wt(e,t,i.reservation,r)}async function Vt(e,t){let n=Ht(t.status),r=await e.requestOptional(s.updateStatus,{agentId:t.agentId,status:`starting`,expectedStatus:[n]});return!r.handled||r.data.transitioned?{agentId:t.agentId,priorStatus:n}:r.data.success?`lost`:`not-found`}function Ht(e){return e===`idle`||e===`active`?e:`dead`}async function W(e,t){await e.requestOptional(s.updateStatus,{agentId:t.agentId,status:t.priorStatus,expectedStatus:[`starting`]})}async function Ut(e,t,n){let{agent:r,instance:i,resumeProviderSessionId:a,sessionId:o}=t,s;try{s=await yt(e,{sessionId:o,agentId:r.agentId,adapterName:r.adapterName,instance:i,role:`member`,resumeProviderSessionId:a})}catch(t){throw await W(e,n),t}return s.outcome===`reserved`?{kind:`reserved`,reservation:s.reservation}:(await W(e,n),s.outcome===`occupied`||s.outcome===`machine-identity-unavailable`?{kind:`settled`,outcome:{kind:`deferred`,reason:s.outcome}}:{kind:`settled`,outcome:{kind:`refused`,outcome:s.outcome}})}async function Wt(e,t,n,r){let{agent:i,resumeProviderSessionId:a}=t,{adapterId:o}=t.instance,s=i.agentId,c=M(),l=new bt([n.claim?.claimToken,c]),u;try{u=await Lt(e,{agentId:s,adapterId:o,resumeProviderSessionId:a,callerOwnsAgentRow:!0,...t.cwd!==void 0&&{cwd:t.cwd},...t.model!==void 0&&{model:t.model}})}catch(t){throw await V(e,s,U,l),await H(e,o,s),t}if(!u.success)return await Tt(e,s,Rt,l),await W(e,r),{kind:`refused`,outcome:`rehydrate-refused`,message:u.message};let d=u.adapterSessionId??a;i.adapterId=o;let f;try{d!==null&&(f=await Kt(e,t,d,c))}catch(t){throw await Jt(e,o,s,l,t)}f!==void 0&&await kt(e,o,s,f,U,l);try{return await Gt(e,s,o),await qt(e,t,l)}catch(t){throw await Jt(e,o,s,l,t)}}async function Gt(e,t,n){if(!(await e.request(s.updateRuntime,{agentId:t,adapterId:n})).success)throw Error(`[session.start] binding agent ${t} to adapter instance ${n} was refused`)}async function Kt(e,t,n,r){let{agent:i,sessionId:a}=t,{adapterId:o,machineId:s}=t.instance;return e.request(C.ownership.settleMovement,{sessionId:a,agentId:i.agentId,adapterId:o,adapterName:i.adapterName,movement:{confirmed:!0,providerSessionId:n},claimToken:r,...s!==void 0&&{machineId:s}})}async function qt(e,t,n){let{agent:r,resumeProviderSessionId:i}=t,{adapterId:a}=t.instance;return await At(e,r.agentId)===`lost`?(await V(e,r.agentId,U,n),await H(e,a,r.agentId),{kind:`lost`}):{kind:`rehydrated`,agent:r,native:i!==null}}async function Jt(e,t,n,r,i){return It(e,{adapterId:t,agentId:n,attemptKind:`rehydrate`,policy:U,claimTokens:r},i)}function Yt(e){if(e===null)return`drop`;switch(e.status){case`idle`:case`active`:return`use`;case`dead`:return`recover`;case`disposed`:return`drop`;case`starting`:return}}async function Xt(e,t){await e.requestOptional(s.updateStatus,{agentId:t,status:`idle`,expectedStatus:[`dead`]})}async function Zt(e,t,n){let r=await e.requestOptional(s.get,{agentId:t});return r.handled?r.data.agent:n}async function Qt(e,t){let n=t;for(let r=0;r<2;r+=1){let r=it(t.agentId);if(r!==void 0)await r.settled.catch(()=>void 0);else{let r=await e.requestOptional(s.updateStatus,{agentId:t.agentId,status:`dead`,expectedStatus:[`starting`]});if(!r.handled||r.data.transitioned)return{resolution:`recover`,row:await Zt(e,t.agentId,n??t),arbitrated:!0}}n=await Zt(e,t.agentId,n??t);let i=Yt(n);if(i!==void 0)return{resolution:i,row:n,arbitrated:!1}}throw new z(`start-unresolved`,`[session.start] agent ${t.agentId} is still starting after joining and arbitrating its start`)}async function $t(e,t){let n=new Set,r=new Set,i=new Set,a=new Map;for(let o of t.agents){if(o.status!==`starting`)continue;let{resolution:t,row:s,arbitrated:c}=await Qt(e,o);t===`drop`&&n.add(o.agentId),t===`recover`&&(r.add(o.agentId),c&&i.add(o.agentId)),s!==null&&a.set(o.agentId,s)}return(n.size>0||a.size>0)&&(t.agents=t.agents.filter(e=>!n.has(e.agentId)).map(e=>a.get(e.agentId)??e)),{droppedAgentIds:n,recoveringAgentIds:r,arbitratedAgentIds:i}}async function en(e,t){let{agent:n}=t;for(let r=0;r<=1;r+=1){let r,i=I(n.agentId,async()=>(r=await Bt(e,t),r.kind===`rehydrated`?`connected`:`no-connector`));if(!i.joined)return await i.settled,r;let a=await tn(e,n,i.settled);if(a!==`retry`)return a}throw new z(`start-unresolved`,`[session.start] recovery of agent ${n.agentId} did not resolve after joining and re-entering its start`)}async function tn(e,t,n){let r,i=await n.catch(e=>(r={error:e},`no-connector`));if(r!==void 0)throw new z(`start-failed`,`[session.start] recovery of agent ${t.agentId} was joined from another attempt, which failed`,r.error);let a=await Zt(e,t.agentId,t);if(a!==null&&Object.assign(t,a),i===`no-connector`)return`retry`;switch(Yt(a)){case`use`:return{kind:`joined`,agent:t};case`drop`:return{kind:`refused`,outcome:a===null?`not-found`:`agent-disposed`};case`recover`:return`retry`;case void 0:return`retry`}}async function nn(e,t,n){let r=await R(e,{adapterName:t.adapterName,storedAdapterId:t.adapterId,...n.machineId!==void 0&&{machineId:n.machineId}});if(r===void 0)return{deferred:!0};let i=await en(e,{agent:t,sessionId:t.sessionId,instance:r,resumeProviderSessionId:n.resumeProviderSessionId});return rn(t.agentId,i)}function rn(e,t){switch(t?.kind){case`rehydrated`:case`joined`:return{deferred:!1};case`deferred`:return{deferred:!0};default:throw zt(e,t)}}const an=e.postgres,G=ae({turns:t},{turns:an});async function on(e,t){let n=se(e.dialect);for(let r=1;;r++)try{await e.run(t());return}catch(e){if(r>=32||!n.capabilities.maxCounterAssignmentRaces||!n.errors.isUniqueViolationError(e,`uniq_turns_session_number`))throw e}}function sn(e){if(e)try{let t=JSON.parse(e),n=re.safeParse(t);return n.success?n.data:void 0}catch{return}}function cn(e){return e?JSON.stringify(e):null}function ln(e){if(e)try{let t=JSON.parse(e),n=ne.safeParse(t);return n.success?n.data:void 0}catch{return}}function K(e){let t=ln(e.initiator);return{turnId:e.turnId,sessionId:e.sessionId,turnNumber:e.turnNumber,startedAt:e.startedAt,completedAt:e.completedAt??void 0,status:e.status,error:e.error??void 0,usage:sn(e.usage),...t!==void 0&&{initiator:t}}}function un(e,t){let n=[dn(e,t),fn(e,t),pn(e,t),mn(e,t),hn(e,t),gn(e,t),_n(e,t),vn(e,t)];return()=>n.forEach(e=>e())}function dn(e,t){let n=oe(t),{turns:r}=w(t,G);return e.on(a.create,async e=>{let{sessionId:i,turnId:a,initiator:o}=e.payload,s=Date.now(),c=a??crypto.randomUUID(),l=cn(o);await on(n,()=>O`
|
|
3
|
+
WITH next_num AS (
|
|
4
|
+
SELECT COALESCE(MAX(turn_number), 0) + 1 AS n
|
|
5
|
+
FROM turns
|
|
6
|
+
WHERE session_id = ${i}
|
|
7
|
+
)
|
|
8
|
+
INSERT INTO turns (turn_id, session_id, turn_number, started_at, status, initiator)
|
|
9
|
+
SELECT ${c}, ${i}, n, ${s}, ${`active`}, ${l}
|
|
10
|
+
FROM next_num
|
|
11
|
+
`);let[u]=await t.select({turnNumber:r.turnNumber}).from(r).where(D(r.turnId,c)),d={turnId:c,sessionId:i,turnNumber:u.turnNumber,startedAt:s,status:`active`,...o!==void 0&&{initiator:o}};e.setResult({turn:d})})}function fn(e,t){let n=oe(t),{turns:r}=w(t,G);return e.on(a.ingestCompleted,async e=>{let{sessionId:i,turnAnchorId:a,startedAt:o,completedAt:s,status:c,error:l,usage:u,initiator:d}=e.payload,f=crypto.randomUUID(),p=cn(d),m=u===void 0?null:JSON.stringify(u);await on(n,()=>O`
|
|
12
|
+
WITH next_num AS (
|
|
13
|
+
SELECT COALESCE(MAX(turn_number), 0) + 1 AS n
|
|
14
|
+
FROM turns
|
|
15
|
+
WHERE session_id = ${i}
|
|
16
|
+
)
|
|
17
|
+
INSERT INTO turns (turn_id, session_id, turn_number, started_at, completed_at, status, error, usage, initiator, turn_anchor_id)
|
|
18
|
+
SELECT ${f}, ${i}, n, ${o}, ${s}, ${c}, ${l??null}, ${m}, ${p}, ${a}
|
|
19
|
+
FROM next_num
|
|
20
|
+
WHERE true
|
|
21
|
+
ON CONFLICT(session_id, turn_anchor_id) DO UPDATE SET
|
|
22
|
+
completed_at = excluded.completed_at,
|
|
23
|
+
status = excluded.status,
|
|
24
|
+
error = excluded.error,
|
|
25
|
+
usage = excluded.usage
|
|
26
|
+
`);let[h]=await t.select().from(r).where(T(D(r.sessionId,i),D(r.turnAnchorId,a))).limit(1);e.setResult({turn:K(h),created:h.turnId===f})})}function pn(e,t){let{turns:n}=w(t,G);return e.on(a.complete,async e=>{let{turnId:r,status:i,expectedStatus:a,error:o,usage:s}=e.payload,c=Date.now(),l=a?T(D(n.turnId,r),D(n.status,a),O`${n.status} not in ('completed', 'error')`):T(D(n.turnId,r),O`${n.status} not in ('completed', 'error')`),u={completedAt:c,status:i,error:o??null,...s!==void 0&&{usage:s===null?null:JSON.stringify(s)}},[d]=await t.update(n).set(u).where(l).returning();if(d){e.setResult({turn:K(d),transitioned:!0});return}let[f]=await t.select().from(n).where(D(n.turnId,r)).limit(1);if(!f)throw Error(`Turn not found: ${r}`);if(a){e.setResult({turn:K(f),transitioned:!1});return}if(!(f.status===`completed`||f.status===`error`)||s===void 0){e.setResult({turn:K(f),transitioned:!1});return}let[p]=await t.update(n).set({usage:s===null?null:JSON.stringify(s)}).where(T(D(n.turnId,r),O`${n.status} in ('completed', 'error')`)).returning();e.setResult({turn:K(p??f),transitioned:!1})})}function mn(e,t){let{turns:n}=w(t,G);return e.on(a.set,async e=>{let{turn:r}=e.payload,i={turnId:r.turnId,sessionId:r.sessionId,turnNumber:r.turnNumber,startedAt:r.startedAt,completedAt:r.completedAt??null,status:r.status,error:r.error??null,usage:r.usage?JSON.stringify(r.usage):null,initiator:cn(r.initiator)};await t.insert(n).values(i).onConflictDoUpdate({target:n.turnId,set:i}),e.setResult({turn:r})})}function hn(e,t){let{turns:n}=w(t,G);return e.on(a.get,async e=>{let{turnId:r}=e.payload,[i]=await t.select().from(n).where(D(n.turnId,r)).limit(1);e.setResult({turn:i?K(i):null})})}function gn(e,t){let{turns:n}=w(t,G);return e.on(a.getBySession,async e=>{let{sessionId:r,limit:i,status:a}=e.payload,o=t.select().from(n).where(D(n.sessionId,r)).orderBy(E(n.turnNumber));a&&(o=t.select().from(n).where(T(D(n.sessionId,r),D(n.status,a))).orderBy(E(n.turnNumber))),i&&(o=o.limit(i));let s=await o;e.setResult({turns:s.map(K)})})}function _n(e,t){let{turns:n}=w(t,G);return e.on(a.getActive,async e=>{let{sessionId:r}=e.payload,[i]=await t.select().from(n).where(T(D(n.sessionId,r),D(n.status,`active`))).orderBy(ce(n.turnNumber)).limit(1);e.setResult({turn:i?K(i):null})})}function vn(e,t){let{turns:n}=w(t,G);return e.on(a.listActive,async e=>{let r=await t.select().from(n).where(D(n.status,`active`)).orderBy(E(n.startedAt));e.setResult({turns:r.map(K)})})}function yn(e){let t=new Map,n=new Map,r=new Map,i=bn(t,n,r),a=new Map,o=[xn(e,i,r),Sn(e,t,i,r,a),Cn(e,t,i),wn(e,i),Tn(e,t),En(e,t,n),Dn(e,t,n),On(e,t)];return()=>o.forEach(e=>e())}function bn(e,t,n){return r=>{e.set(r.turnId,r);let i=t.get(r.sessionId)??[];i.includes(r.turnId)||i.push(r.turnId),t.set(r.sessionId,i);let a=n.get(r.sessionId)??0;r.turnNumber>a&&n.set(r.sessionId,r.turnNumber)}}function xn(e,t,n){return e.on(a.create,e=>{let{sessionId:r,turnId:i,initiator:a}=e.payload,o=Date.now(),s={turnId:i??crypto.randomUUID(),sessionId:r,turnNumber:(n.get(r)??0)+1,startedAt:o,status:`active`,...a!==void 0&&{initiator:a}};t(s),e.setResult({turn:s})})}function Sn(e,t,n,r,i){return e.on(a.ingestCompleted,e=>{let{sessionId:a,turnAnchorId:o,startedAt:s,completedAt:c,status:l,error:u,usage:d,initiator:f}=e.payload,p=i.get(a)??new Map,m=p.get(o);if(m!==void 0){let r=t.get(m);if(!r)throw Error(`Turn not found for anchor in session: ${a}`);let i={...r,completedAt:c,status:l,error:u??void 0,usage:d??void 0};n(i),e.setResult({turn:i,created:!1});return}let h={turnId:crypto.randomUUID(),sessionId:a,turnNumber:(r.get(a)??0)+1,startedAt:s,completedAt:c,status:l,error:u??void 0,usage:d??void 0,...f!==void 0&&{initiator:f}};n(h),p.set(o,h.turnId),i.set(a,p),e.setResult({turn:h,created:!0})})}function Cn(e,t,n){return e.on(a.complete,e=>{let{turnId:r,status:i,expectedStatus:a,error:o,usage:s}=e.payload,c=t.get(r);if(!c)throw Error(`Turn not found: ${r}`);if(a&&c.status!==a){e.setResult({turn:c,transitioned:!1});return}let l=c.status===`completed`||c.status===`error`,u=s===null?void 0:s??c.usage,d=l?{...c,usage:u}:{...c,completedAt:Date.now(),status:i,error:o??void 0,usage:u};n(d),e.setResult({turn:d,transitioned:!l})})}function wn(e,t){return e.on(a.set,e=>{let{turn:n}=e.payload;t(n),e.setResult({turn:n})})}function Tn(e,t){return e.on(a.get,e=>{e.setResult({turn:t.get(e.payload.turnId)??null})})}function En(e,t,n){return e.on(a.getBySession,e=>{let{sessionId:r,status:i,limit:a}=e.payload,o=(n.get(r)??[]).map(e=>t.get(e)).filter(e=>!!e);i&&(o=o.filter(e=>e.status===i)),o.sort((e,t)=>e.turnNumber-t.turnNumber),a&&(o=o.slice(0,a)),e.setResult({turns:o})})}function Dn(e,t,n){return e.on(a.getActive,e=>{let{sessionId:r}=e.payload,i=(n.get(r)??[]).map(e=>t.get(e)).filter(e=>!!e).filter(e=>e.status===`active`).sort((e,t)=>t.turnNumber-e.turnNumber).at(0);e.setResult({turn:i??null})})}function On(e,t){return e.on(a.listActive,e=>{let n=[...t.values()].filter(e=>e.status===`active`).sort((e,t)=>e.startedAt-t.startedAt);e.setResult({turns:n})})}function kn(e){return e===void 0?`lead-default`:e===`all`?`all`:`explicit`}function An(e){return kn(e)===`explicit`}function jn(e,t,n,r){if(!(n.agents.length>0||kn(r)===`lead-default`)){if(An(r)){let n=[...r];throw new z(`agent-unavailable`,`${e} session ${t} has no agents, so it cannot have the ${n.length===1?`agent`:`agents`} this send named: ${n.join(`, `)}`,void 0,n)}throw new z(`agent-unavailable`,`${e} session ${t} has no agents, so a send targeting all of them has none to reach`)}}function Mn(e,t,n){return n.size===0?[...t]:(e.agents=e.agents.filter(e=>!n.has(e.agentId)),t.filter(e=>!n.has(e.agentId)))}function Nn(e,t,n){let r=[...n];throw new z(`agent-unavailable`,`${e} session ${t} has no agent this runtime may drive: ${r.join(`, `)} ${r.length===1?`is`:`are`} held by another generation's provider session`,void 0,r)}function Pn(e,t){return{adapterId:t.adapterId,sessionId:t.sessionId,role:`lead`,...t.providerContext!==void 0&&{providerContext:t.providerContext},...t.sessionContext!==void 0&&{sessionContext:t.sessionContext},...e.model!==void 0&&{model:e.model},...e.reasoningEffort!==void 0&&{reasoningEffort:e.reasoningEffort},...e.cwd!==void 0&&{cwd:e.cwd},...e.systemPrompt!==void 0&&{systemPrompt:e.systemPrompt},...e.allowedTools!==void 0&&{allowedTools:e.allowedTools},...e.disallowedTools!==void 0&&{disallowedTools:e.disallowedTools},...e.env!==void 0&&{env:e.env},...e.mcpSessionContext!==void 0&&{mcpSessionContext:e.mcpSessionContext},...e.allowedDirectories!==void 0&&{allowedDirectories:e.allowedDirectories},...e.adapterConfig!==void 0&&{adapterConfig:e.adapterConfig}}}function Fn(e){let t=Date.now(),{model:n,cwd:r,allowedDirectories:i,clientId:a,harnessId:o}=e.runtime;return{agentId:e.agentId,adapterId:e.adapterId,adapterName:e.adapterName,sessionId:e.sessionId,role:e.role,status:`starting`,createdAt:t,lastActivityAt:t,...n!==void 0&&{model:n},...r!==void 0&&{cwd:r},...i!==void 0&&{allowedDirectories:i},...a!==void 0&&{clientId:a},...o!==void 0&&{harnessId:o},...e.providerConfigId!==void 0&&{providerConfigId:e.providerConfigId},...e.personaId!==void 0&&{personaId:e.personaId},...e.profileId!==void 0&&{profileId:e.profileId},...e.compressionMode!==void 0&&{compressionMode:e.compressionMode}}}function In(e,t){let n=p(t,e.adapterName)===e.adapterId;return{kind:`adapter`,adapterName:e.adapterName,...n&&{adapterId:e.adapterId,machineId:t},...e.model!==void 0&&{model:e.model},...e.cwd!==void 0&&{cwd:e.cwd},...e.allowedDirectories!==void 0&&{allowedDirectories:e.allowedDirectories},...e.providerConfigId!==void 0&&{providerConfigId:e.providerConfigId}}}function Ln(e){return typeof e==`string`?e:(Array.isArray(e.blocks)?e.blocks:[e.blocks]).filter(e=>e.type===`text`).map(e=>e.content).join(`
|
|
27
|
+
`)}function Rn(e){return e}function zn(e){return typeof e==`string`?[{type:`text`,content:e}]:(Array.isArray(e.blocks)?e.blocks:[e.blocks]).map(Rn)}async function Bn(e,t,n,r,i){let{session:a}=await e.request(C.get,{sessionId:t});if(a){if(a.status!==`active`)throw Error(`[getOrCreateSession] Session is not active: ${t}`);return{sessionId:t,session:a}}await e.request(C.create,{sessionId:t,originWindowId:r,...i!==void 0&&{machineId:i}});let{session:o}=await e.request(C.get,{sessionId:t});if(!o)throw Error(`[getOrCreateSession] Failed to create session: ${t}`);return{sessionId:t,session:o}}function Vn(e,t){if(t===void 0){let t=e.agents.find(t=>t.agentId===e.leadAgentId);if(!t)throw Error(`[resolveTargetAgents] Lead agent not found: ${e.leadAgentId}`);return[t]}if(t===`all`)return e.agents;let n=new Set(t);return e.agents.filter(e=>n.has(e.agentId))}function Hn(e,t){for(let n of e.values())if(n.hasAgent(t))return n}function Un(e,t){if(e===`extension`){let e=t?.trim();if(!e)throw Error(`extensionId is required when source is "extension"`);return{source:`extension`,sourceId:e}}return e?{source:e}:{source:`user`}}async function Wn(e,t){let{sessionId:n,limit:i}=t,a=[],o=!1,s=!1,c;do{let{events:t,nextCursor:l}=await e.request(r.getEvents,{sessionId:n,options:{limit:1e4,...c&&{after:c}}});for(let r of t){if(r.type===`squash`){o=!0,a.length=0;let e=r.payload,t={messageId:`squash-${r.eventId}`,sessionId:n,turnId:null,role:`assistant`,contentText:e.summaryJson,blocks:[{type:`text`,content:e.summaryJson}],timestamp:r.timestamp};a.push(t)}else if(r.type===`message`){let t=r.payload,{message:n}=await e.request(f.get,{messageId:t.messageId});n&&a.push(n)}if(i&&a.length>=i){s=!0;break}}if(i&&a.length>=i)break;c=l??void 0}while(c);return{messages:a,hasSquashBoundary:o,sessionChain:[n],truncated:s,incomplete:!1}}const q=new class{actions=new Map;register(e){if(this.actions.has(e.id))throw Error(`Action already registered: ${e.id}`);this.actions.set(e.id,e)}get(e){return this.actions.get(e)}getAll(){return Array.from(this.actions.values())}getByCategory(e){return this.getAll().filter(t=>t.category===e)}reset(){this.actions.clear()}};async function Gn(e,t,n){let r=e,i,a;for(let e of t){let t=q.get(e.actionId);if(!t)throw Error(`Unknown action: ${e.actionId}`);let o={...n,...e.options},s=await t.execute(r,o);if(s.kind===`messages`)r=s.messages;else{i=s.json,a=s.tokenEstimate,r=[];break}}if(!i&&r.length>0){let e=r.reduce((e,t)=>e+JSON.stringify(t.blocks).length,0);a=Math.ceil(e/4)}return{messages:r,contextJson:i,tokenEstimate:a}}function Kn(e){return e.map(e=>({...e,blocks:e.blocks.filter(e=>e.type!==`reasoning`)}))}const qn={id:`strip-reasoning`,label:`Strip Reasoning`,description:`Remove reasoning/thinking blocks from messages`,category:`transformation`,async execute(e){return{kind:`messages`,messages:Kn(e)}}};function Jn(e){return e.map(e=>({...e,blocks:e.blocks.map(e=>{if(e.type===`tool_output`){let t=e.output.length;return{...e,output:`[output removed - ${t} chars]`}}return e})}))}const Yn={id:`strip-tool-outputs`,label:`Strip Tool Outputs`,description:`Remove tool output contents, keep structure`,category:`transformation`,async execute(e){return{kind:`messages`,messages:Jn(e)}}};async function J(e,t){let n=[],r=[],i=[],a=!1,s=!1,c=!1,l=[],u,d=t,f;for(;d;){let n=await e.request(o.get,{sessionId:d});if(!n.session){c=!0;break}d===t&&(u=n.session.forkTransforms??void 0),l.unshift({sessionId:d,forkPointMessageId:n.session.forkPointMessageId??void 0}),f=n.session.parentSessionId??void 0,d=f}for(let t=0;t<l.length;t++){let{sessionId:o}=l[t],c=t===l.length-1,u=l[t+1]?.forkPointMessageId;n.push(o);let d=await Wn(e,{sessionId:o});if(d.hasSquashBoundary&&(a=!0,c||(r.length=0)),d.truncated&&(s=!0),c)i=d.messages;else for(let e of d.messages)if(r.push(e),u&&e.messageId===u)break}return u&&(r=await Xn(r,u)),{messages:[...r,...i],hasSquashBoundary:a,sessionChain:n,truncated:s,incomplete:c}}async function Xn(e,t){if(t.segments?.length){let n=t.segments[0].fromMessageId,r=t.segments[t.segments.length-1].toMessageId,i=e.findIndex(e=>e.messageId===n),a=e.findIndex(e=>e.messageId===r);if(i===-1||a===-1||i>a)return Qn(e,t.segments);let o=e.slice(0,i),s=e.slice(i,a+1),c=e.slice(a+1),l=Qn(s,t.segments);return[...o,...l,...c]}let n=e;if(t.removedMessageIds?.length){let e=new Set(t.removedMessageIds);n=n.filter(t=>!e.has(t.messageId))}return t.appliedPipeline?.length&&(n=(await Gn(n,t.appliedPipeline)).messages),n}function Zn(e,t){let n=e;return t.stripReasoning&&(n=Kn(n)),t.stripToolOutputs&&(n=Jn(n)),n}function Qn(e,t){let n=new Map;for(let t=0;t<e.length;t++)n.set(e[t].messageId,t);let r=[];for(let i of t){let t=n.get(i.fromMessageId),a=n.get(i.toMessageId);if(t===void 0||a===void 0){console.warn(`[getFullConversation] Skipping segment with missing boundary IDs`,{segmentKey:`${i.fromMessageId}..${i.toMessageId}`,fromMessageId:i.fromMessageId,toMessageId:i.toMessageId,hasFrom:t!==void 0,hasTo:a!==void 0});continue}let o=e.slice(t,a+1),s;switch(i.policy){case`exclude`:s=[];break;case`summarize`:if(i.summaryText){if(o.length===0)throw Error(`Cannot create synthetic summary message for empty segment: ${i.fromMessageId}..${i.toMessageId}`);s=[{messageId:`summary-${i.fromMessageId}-${i.toMessageId}`,turnId:null,sessionId:o[0].sessionId,role:`assistant`,contentText:i.summaryText,blocks:[{type:`text`,content:i.summaryText}],timestamp:o[o.length-1].timestamp}]}else s=o;break;default:s=o;break}if((i.policy!==`summarize`||!i.summaryText)&&i.overrides&&Object.keys(i.overrides).length>0){let e=new Set(Object.entries(i.overrides).filter(([,e])=>e===`exclude`).map(([e])=>e));s=s.filter(t=>!e.has(t.messageId))}s=Zn(s,i),r.push(...s)}return r}function Y(e){return{role:e.role,blocks:e.blocks}}async function $n(e,t){return{messageHistory:(await J(e,t.sessionId)).messages.map(Y),isFirstTurn:!0}}async function er(e,t,n){if(ft(n))return $n(e,t)}function X(e){return typeof e==`string`&&e.trim().length>0?e.trim():void 0}function tr(e,t){let{sessionId:n,errorPrefix:r}=t;if(e.adapterId===void 0)return e.machineId===void 0?void 0:`${r}agent selection named machine ${e.machineId} without an adapter instance on it (sessionId=${n}); an instance resolved without one named is derived for the runtime that resolves it, so the named machine would be read by nothing`;if(e.machineId===void 0)return`${r}agent selection named adapter instance ${e.adapterId} without its machine (sessionId=${n}); an instance ID cannot be inverted, so its ownership acts have no namespace`}async function nr(e,t,n,r){let{adapterName:i}=await e.request(c.resolveName,{adapterId:t});if(n&&i!==n)throw Error(`${r}adapterName "${n}" does not match adapterId "${t}"`);return i}async function rr(e,t,n,r){if(t.cwd===n)return{swapped:!1};let i=await e.request(x.cwd.change,{agentId:t.agentId,adapterId:t.adapterId,adapterName:t.adapterName,adapterSessionId:t.adapterSessionId??``,sessionId:t.sessionId,newCwd:n,...r?.skipWarning?{skipWarning:!0}:{}});if(!i.success)throw Error(`Failed to change cwd for agent ${t.agentId}: ${i.reason??`unknown`}`);return i.previousCwd?(t.cwd=n,{swapped:!0,previousCwd:i.previousCwd}):(t.cwd=n,{swapped:!1})}async function ir(e,t,n,r){let i=n===void 0||t.model===n,a=r?.reasoningEffort===void 0,o=!r?.providerConfigId;if(i&&a&&o)return{changed:!1};let s=r?.providerConfigId?await h(e,{adapterName:t.adapterName,providerConfigId:r.providerConfigId}):void 0,c=await e.request(x.model.change,{agentId:t.agentId,adapterId:t.adapterId,adapterName:t.adapterName,adapterSessionId:t.adapterSessionId??``,...n!==void 0&&{newModel:n},...r?.reasoningEffort!==void 0&&{reasoningEffort:r.reasoningEffort},...r?.skipWarning!==void 0&&{skipWarning:r.skipWarning},...s!==void 0&&{providerContext:s}});if(!c.success)throw Error(`Failed to change model for agent ${t.agentId}: ${c.reason??`unknown`}`);return n!==void 0&&(t.model=n),{changed:!0,swapped:c.swapped??!1}}async function ar(e,t,n){let r=[],i=new Set,a=new Set;for(let o of t){let t=await e.requestOptional(y.getAgent,{adapterId:o.adapterId,agentId:o.agentId});if(t.handled&&t.data.agent!==null){o.status===`dead`&&await Xt(e,o.agentId),r.push(o);continue}let s=await R(e,{adapterName:o.adapterName,storedAdapterId:o.adapterId,...n.machineId!==void 0&&{machineId:n.machineId}});if(s===void 0){a.add(o.agentId);continue}let c=await sr(e,o,n,s);if(c.kind===`deferred`){a.add(o.agentId);continue}r.push(c.agent),i.add(c.agent.agentId)}return{usable:r,recoveredAgentIds:i,deferredAgentIds:a}}async function or(e,t,n){let r=await J(e,t.sessionId),i=n?.pipeline??[];return{messageHistory:(i.length>0?(await Gn(r.messages,i)).messages:r.messages).map(Y),isFirstTurn:!0}}async function sr(e,t,n,r){let i=dt(n.plan);return cr(t,await en(e,{agent:t,sessionId:t.sessionId,instance:r,resumeProviderSessionId:i??null,...n.cwd!==void 0&&{cwd:n.cwd},...(n.model??t.model)!==void 0&&{model:n.model??t.model}}))}function cr(e,t){switch(t?.kind){case`rehydrated`:case`joined`:return{kind:`recovered`,agent:t.agent};case`deferred`:return{kind:`deferred`,reason:t.reason};default:throw zt(e.agentId,t)}}const Z=`[attach-handler] `;async function lr(e,t){let n=ur(t.selection,t.resolved),r=X(n.adapterName),i={adapterId:X(n.adapterId),machineId:X(n.machineId)};if(!r&&i.adapterId===void 0)throw Error(`${Z}adapterName or adapterId is required — provide one explicitly or via persona/profile/virtualModel resolution`);let a=tr(i,{sessionId:t.sessionId,errorPrefix:Z});if(a!==void 0)throw Error(a);if(i.adapterId!==void 0){let n=await nr(e,i.adapterId,r,Z),a=await R(e,{adapterName:n,adapterId:i.adapterId,...i.machineId!==void 0&&{machineId:i.machineId}});if(a===void 0)throw Error(`${Z}adapter instance resolution for ${i.adapterId} produced no machine (sessionId=${t.sessionId})`);return{adapterName:n,instance:a}}let o=r;return{adapterName:o,instance:{adapterId:await gt(e,o,t.localMachineId),...t.localMachineId!==void 0&&{machineId:t.localMachineId}}}}function ur(e,t){let n=e.kind===`adapter`;return{adapterName:n&&`adapterName`in e?e.adapterName:t?.adapterName,adapterId:n&&`adapterId`in e?e.adapterId:void 0,machineId:n&&`machineId`in e?e.machineId:void 0}}async function dr(e,t,n,r,i){let a=i?.state===`resolved`?i.providerConfigId:void 0;if(a!==void 0&&n!==void 0&&n!==a)throw Error(`[attach-handler] providerConfigId '${n}' does not match resolved provider context '${a}'`);let o=n??a??r?.providerConfigId;if(i!==void 0){if(i.state!==`resolved`&&o!==void 0)throw new m(`provider-context-unresolved`,t,o);return{providerConfigId:o,providerContext:i}}return{providerConfigId:o,providerContext:o===void 0?void 0:await h(e,{adapterName:t,providerConfigId:o})}}function fr(e){if(e instanceof fe)return e;if(e instanceof Error&&e.cause instanceof fe)return e.cause}async function pr(e,t){try{await e.emit(C.user_message.acknowledged,t)}catch(e){console.error(`[SessionRouting] Failed to emit user-message acknowledgement:`,e)}}async function mr(e,t,n,r){await e.emit(C.turn.assistantPersistenceSettled,{sessionId:t.sessionId,turnId:t.turnId,messageId:n,agentId:r})}async function Q(e){let{bus:t,turn:n,messageId:r,agentId:i,outcome:a,error:o,onTurnComplete:s,turnManager:c}=e;try{await mr(t,n,r,i)}catch(e){console.error(`[SessionRouting] Failed to emit terminal routing settlement:`,e)}await c.recordAgentCompletion(i,r,a,o,s,n.turnId)}async function hr(e,t,n,r,i,a,o,s,c,l,u,d){if(n.some(e=>!a.hasAdmittedPair(i,e.agentId)))throw Error(`Turn ${a.turnId} has no admitted fanout for message ${i}`);let f=n.map(async n=>{try{return d?.(),await e.request(x.sendMessage,{agentId:n.agentId,adapterId:n.adapterId,message:r,deliveryMode:o,messageId:i,turnId:a.turnId,sessionId:t.sessionId,sessionContext:l,...u!==void 0&&{responseSchema:u}}),await pr(e,{sessionId:a.sessionId,turnId:a.turnId,turnNumber:a.turnNumber,messageId:i,agentId:n.agentId}),{agentId:n.agentId,kind:`dispatched`}}catch(t){if(fr(t)!==void 0)return await Q({bus:e,turn:a,messageId:i,agentId:n.agentId,outcome:`cancelled`,onTurnComplete:s,turnManager:c}),{agentId:n.agentId,kind:`cancelled`,error:t};let r=t instanceof Error?t.message:String(t);return await Q({bus:e,turn:a,messageId:i,agentId:n.agentId,outcome:`error`,error:r,onTurnComplete:s,turnManager:c}),{agentId:n.agentId,kind:`failed`,error:t}}});return await Promise.all(f)}async function gr(e,t,n){try{let{session:t}=await e.request(C.get,{sessionId:n});if(!t||t.status!==`active`)throw Error(`[attach-handler] Session is no longer active after agent startup: ${n}`)}catch(r){throw await $(e,t,n,`session closed during agent startup`),r}}async function _r(e,t,n,r,i,a,o,s,c){try{return await yr(e,t,n,i,a,o,s,c)}catch(t){throw console.error(`[attach-handler] Failed to set up initial-message turn, rolling back started agent`,{sessionId:i,agentId:a,adapterId:r.adapterId,error:t}),await $(e,r,i,`initial-message turn setup failure`),t}}async function vr(e,t,n,r,i,a,o,s,c,l){try{l?.()}catch(t){throw await $(e,r,i.sessionId,`initial-message admission rejection`),t}let u=await _r(e,t,n,r,i.sessionId,r.agentId,crypto.randomUUID(),a,s),d;try{d=await hr(e,i,[{agentId:r.agentId,adapterId:r.adapterId}],a,u.messageId,u.turn,void 0,t.completeTurn.bind(t),t,c,o,l)}catch(n){try{await t.retryTurnCompletion(u.turn.turnId)}catch(e){console.error(`[attach-handler] Failed to retry initial-message completion after routing failure`,{sessionId:i.sessionId,turnId:u.turn.turnId,error:e})}throw await $(e,r,i.sessionId,`initial-message routing failure`),n}let f=d[0];if(!f||f.kind===`dispatched`)return{messageId:u.messageId,turnId:u.turn.turnId};throw await $(e,r,i.sessionId,`initial-message routing failure`),f.error}async function $(e,t,n,r){try{await e.request(y.stopAgent,{adapterId:t.adapterId,agentId:t.agentId})}catch(e){console.error(`[attach-handler] Failed to rollback started agent after ${r}`,{sessionId:n,agentId:t.agentId,adapterId:t.adapterId,error:e})}}async function yr(e,t,n,r,i,a,o,s){let c=await t.createReservedTurn(n,[i],s),l=t.admitReservedMessage(c,a,[i]);try{if(!(await e.requestOptional(f.append,{message:{messageId:a,turnId:c.turnId,sessionId:r,role:`user`,contentText:Ln(o),blocks:zn(o),timestamp:Date.now()}})).handled)throw Error(`Message storage append handler is not registered`)}catch(e){console.warn(`[attach-handler] Failed to store initial user message`,{sessionId:r,messageId:a,error:e instanceof Error?e.message:String(e)});try{await l.rollback(`initial-message-persistence-failed`)}catch(e){console.error(`[attach-handler] Failed to finalize rejected initial-message persistence:`,e)}throw e}try{await br(e,r,c,a,o,s.source)}catch(e){try{await l.rollback(`initial-message-lifecycle-failed`)}catch(e){console.error(`[attach-handler] Failed to finalize rejected initial-message lifecycle:`,e)}throw e}return l.commit(),{messageId:a,turn:c}}async function br(e,t,n,r,i,a){await Pe(e,{sessionId:t,turnId:n.turnId,turnNumber:n.turnNumber,messageId:r,agentIds:[...n.agentIds],initiator:n.initiator,ingestionMarker:`live`}),await Fe(e,{sessionId:t,turnId:n.turnId,turnNumber:n.turnNumber,messageId:r,content:i,agentIds:[...n.agentIds],source:a})}async function xr(e,t,n){let r=await J(e,t);if(r.messages.length===0)return n;let i=r.messages.map(Y);return{...n,messageHistory:i,isFirstTurn:!0}}async function Sr(e,t){let{identity:n}=t;await e.requestOptional(s.set,{agentId:t.agentId,agent:Fn({agentId:t.agentId,adapterId:t.adapterId,adapterName:n.adapterName,sessionId:n.sessionId,role:n.role,runtime:t.runtime,...n.providerConfigId!==void 0&&{providerConfigId:n.providerConfigId},...n.personaId!==void 0&&{personaId:n.personaId},...n.profileId!==void 0&&{profileId:n.profileId},...n.compressionMode!==void 0&&{compressionMode:n.compressionMode}})})}async function Cr(e,t){let n=await Tr(e,t,t.resumeProviderSessionId);switch(n.outcome){case`reserved`:return{kind:`reserved`,reservation:n.reservation};case`lead-conflict`:return{kind:`conflict`,currentLeadAgentId:n.currentLeadAgentId};case`agent-disposed`:case`not-found`:return{kind:`refused`,outcome:n.outcome};case`occupied`:case`machine-identity-unavailable`:return wr(e,t)}}async function wr(e,t){let n={kind:`degrade`,reason:`agent-already-started`};if(t.role!==`lead`)return{...n,reservation:void 0};let r=await Tr(e,t,null);switch(r.outcome){case`reserved`:return{...n,reservation:r.reservation};case`lead-conflict`:return{kind:`conflict`,currentLeadAgentId:r.currentLeadAgentId};case`agent-disposed`:case`not-found`:return{kind:`refused`,outcome:r.outcome};case`occupied`:case`machine-identity-unavailable`:return{kind:`refused`,outcome:`not-found`}}}async function Tr(e,t,n){return yt(e,{sessionId:t.sessionId,agentId:t.agentId,adapterName:t.adapterName,instance:t.instance,resumeProviderSessionId:n,...t.role===`lead`?{role:t.role,expectedLeadAgentId:t.expectedLeadAgentId}:{role:t.role}})}function Er(e){return{...e.model!==void 0&&{model:e.model},...e.reasoningEffort!==void 0&&{reasoningEffort:e.reasoningEffort},...e.cwd!==void 0&&{cwd:e.cwd},...e.allowedTools!==void 0&&{allowedTools:e.allowedTools},...e.disallowedTools!==void 0&&{disallowedTools:e.disallowedTools},...e.allowedDirectories!==void 0&&{allowedDirectories:e.allowedDirectories},...e.env!==void 0&&{env:e.env},...e.mcpSessionContext!==void 0&&{mcpSessionContext:e.mcpSessionContext},...e.adapterConfig!==void 0&&{adapterConfig:e.adapterConfig},...e.systemPrompt!==void 0&&{systemPrompt:e.systemPrompt}}}function Dr(e,t,n){let r=e.model??t?.model,i=e.cwd;return{runtimeOptions:kr({model:r,reasoningEffort:e.reasoningEffort??t?.reasoningEffort,cwd:i,allowedTools:e.allowedTools??t?.allowedTools,disallowedTools:e.disallowedTools??t?.disallowedTools,allowedDirectories:e.allowedDirectories??t?.allowedDirectories,env:e.env,mcpSessionContext:e.mcpSessionContext,adapterConfig:e.adapterConfig,systemPrompt:e.systemPrompt??t?.systemPrompt,providerContext:n}),mergedModel:r,mergedCwd:i}}function Or(e,t,n){let r=e??t;return{effectiveCwd:r,effectiveRuntimeOptions:r!==void 0&&n.cwd===void 0?{...n,cwd:r}:n}}function kr(e){return Object.fromEntries(Object.entries(e).filter(([,e])=>e!==void 0))}function Ar(e,t,n,r,i,a,o){return i?{mode:`resume`,adapterId:e,sessionId:t,adapterSessionId:i,role:n,...r,...a!==void 0&&{harnessId:a}}:{adapterId:e,sessionId:t,role:n,...r,...a!==void 0&&{harnessId:a},...o!==void 0&&{sessionContext:o}}}async function jr(e,t){let{agentId:n,adapterId:r,sessionId:i,role:a,effectiveRuntimeOptions:o,resumeAdapterSessionId:s,harnessId:c,attachSessionContext:l}=t,u=Ar(r,i,a,o,s,c,l),d=await e.request(y.startAgent,{...u,agentId:n});if(!d.success)throw new _(`start-failed`,`[attach-handler] Failed to start agent: ${d.message}`,d.dispatch);return d}async function Mr(e,t){let{agentId:n,launch:r,identity:i}=t;try{await Sr(e,{agentId:n,adapterId:r.adapterId,identity:i,runtime:{...r.effectiveRuntimeOptions,...r.harnessId!==void 0&&{harnessId:r.harnessId}}})}catch(t){throw await B(e,n,void 0),new _(`start-failed`,`[attach-handler] persisting the agent row for ${n} failed`,`not-dispatched`,{cause:t})}let a=await Pr(e,t),o=a.reservation,s=a.kind===`reserved`&&o?.claim!=null;a.kind===`degrade`&&A(e,{sessionId:i.sessionId,intent:`resume`,verdict:{kind:`degrade`,reason:a.reason},adapterId:r.adapterId});let c;try{c=s?void 0:await Fr(e,t)}catch(t){throw await B(e,n,o),new _(`start-failed`,`[attach-handler] seeding the conversation for agent ${n} failed`,`not-dispatched`,{cause:t})}let l=new bt([o?.claim?.claimToken]),u=M();l.add(u);let d={sessionId:i.sessionId,agentId:n,adapterId:r.adapterId,adapterName:i.adapterName,claimTokens:l,settlementClaimToken:u,policy:{writesAgentStatus:!0,...o!==void 0&&{reservation:o}},...i.providerConfigId!==void 0&&{providerConfigId:i.providerConfigId},...t.instance.machineId!==void 0&&{machineId:t.instance.machineId}},f=await Ir(e,t,d,{...r,agentId:n,...s&&t.locality.resumeAdapterSessionId!==void 0?{resumeAdapterSessionId:t.locality.resumeAdapterSessionId}:{},...c!==void 0&&{attachSessionContext:c}});return await Mt(e,d,f.adapterSessionId),{startResult:f,sessionContext:c,dispatched:d}}async function Nr(e,t){let{dispatched:n}=t;await V(e,n.agentId,n.policy,n.claimTokens),await e.requestOptional(s.updateStatus,{agentId:n.agentId,status:`dead`,expectedStatus:[`idle`,`active`]})}async function Pr(e,t){let{agentId:n,identity:r}=t,i;try{i=await Cr(e,{sessionId:r.sessionId,agentId:n,instance:t.instance,adapterName:r.adapterName,role:r.role,resumeProviderSessionId:t.locality.resumeAdapterSessionId??null,expectedLeadAgentId:t.expectedLeadAgentId})}catch(t){throw await B(e,n,void 0),new _(`reservation-refused`,`[attach-handler] reserving the start of agent ${n} failed`,`not-dispatched`,{cause:t})}if(i.kind===`reserved`||i.kind===`degrade`)return i;throw await B(e,n,void 0),i.kind===`conflict`?new _(`lead-conflict`,`[attach-handler] session ${r.sessionId} is led by ${i.currentLeadAgentId??`no agent`}, not by ${n}`,`not-dispatched`):new _(`reservation-refused`,`[attach-handler] reservation for agent ${n} was refused: ${i.outcome}`,`not-dispatched`)}async function Fr(e,t){let n=t.locality.attachSessionContext??{nativeLocality:{kind:`degrade`,reason:`agent-already-started`}};return xr(e,t.identity.sessionId,n)}async function Ir(e,t,n,r){let{agentId:i}=t,a;try{a=await jr(e,r)}catch(t){throw t instanceof _&&t.dispatch===`not-dispatched`?await B(e,i,n.policy.reservation):await V(e,i,n.policy,n.claimTokens),t}return{...a,agentId:i}}var Lr=class{closeClaims=new Map;registerCloseMiddleware(e){return e.on(C.close,async e=>{let t=this.beginClose(e.payload.sessionId);try{await e.next()}finally{t()}},{priority:1e4})}assertAttachCommitAllowed(e){if((this.closeClaims.get(e)??0)>0)throw Error(`[attach-handler] Session close won before agent attach committed: ${e}`)}beginClose(e){this.closeClaims.set(e,(this.closeClaims.get(e)??0)+1);let t=!1;return()=>{if(t)return;t=!0;let n=(this.closeClaims.get(e)??1)-1;n===0?this.closeClaims.delete(e):this.closeClaims.set(e,n)}}};function Rr(e,t,n){let r=new Lr,i=e.on(C.agent.attach,async i=>{i.setResult(await Ur(e,t,n,{...i.payload,assertAttachCommitAllowed:()=>r.assertAttachCommitAllowed(i.payload.sessionId)}))}),a=e.on(C.agent.attachResolved,async i=>{if(!i.origin.local)throw Error(`[attach-handler] session.agent.attachResolved requires a local-origin request`);let a=i.payload.assertInitialMessageAdmission;if(a!==void 0&&typeof a!=`function`)throw Error(`[attach-handler] assertInitialMessageAdmission must be a function`);i.setResult(await Ur(e,t,n,{...i.payload,assertAttachCommitAllowed:()=>r.assertAttachCommitAllowed(i.payload.sessionId),assertInitialMessageAdmission:a,resolvedProviderContext:i.payload.agent.providerContext===void 0?void 0:te.parse(i.payload.agent.providerContext)}))}),o=r.registerCloseMiddleware(e);return()=>{i(),a(),o()}}async function zr(e,t){try{let n=await e();return n.handled?t(n.data):!1}catch{return!1}}async function Br(e,t){return zr(()=>e.requestOptional(y.getCapabilities,{adapterId:t}),e=>new Set(e.capabilities).has(`session:resume`))}async function Vr(e){let{bus:t,adapterName:n,session:r,effectiveCwd:i}=e,{adapterId:a,machineId:o}=e.instance,[s,c]=await Promise.all([t.request(C.get,{sessionId:r.sessionId}),Br(t,a)]),l=L(s.session??r),u=ct({intent:`resume`,session:r,localMachineId:o,adapterSupportsNative:c,targetAdapterName:n,currentCwd:r.targetWorkingDirectory,targetCwd:i,resumeIdentity:l});return u.kind===`native`?{resumeAdapterSessionId:l.adapterSessionId,attachSessionContext:void 0}:Hr(t,r,a,u)}function Hr(e,t,n,r){return A(e,{sessionId:t.sessionId,intent:`resume`,verdict:r,adapterId:n}),{resumeAdapterSessionId:void 0,attachSessionContext:{nativeLocality:r}}}async function Ur(e,t,n,r){let{sessionId:i,agent:a,initialMessage:o,responseSchema:s,source:c,extensionId:l,assertAttachCommitAllowed:u,assertInitialMessageAdmission:d,role:f,resolvedProviderContext:p}=r,m=Er(a),h=await Jr(e,i),g=await qr(e,i,o,a),{adapterName:_,instance:v}=await lr(e,{selection:a,resolved:g,sessionId:i,localMachineId:n}),{providerConfigId:ee,providerContext:y}=await dr(e,_,a.providerConfigId,g,p),{runtimeOptions:b,mergedModel:x,mergedCwd:te}=Dr(m,g,y),{effectiveCwd:S,effectiveRuntimeOptions:C}=Or(te,h.targetWorkingDirectory,b),ne=Yr(h,f),re=await Vr({bus:e,session:h,effectiveCwd:S,instance:v,adapterName:_});return Wr(e,t,{launch:{adapterId:v.adapterId,sessionId:i,role:ne,effectiveRuntimeOptions:C,harnessId:r.harnessId??g?.harnessId},identity:{adapterName:_,sessionId:i,role:ne,personaId:Kr(a),profileId:g?.profileId,harnessId:r.harnessId??g?.harnessId,providerConfigId:ee,compressionMode:g?.compressionMode,model:x,cwd:S},locality:re,expectedLeadAgentId:h.leadAgentId??null,instance:v,session:h,initialMessage:o,responseSchema:s,initiator:Un(c,l),assertAttachCommitAllowed:()=>u?.(),assertInitialMessageAdmission:d})}async function Wr(e,t,n){let r=crypto.randomUUID(),i;if(await I(r,async()=>(i=await Gr(e,t,r,n),`connected`)).settled,i===void 0)throw new g(`agent_attach`,Error(`[attach-handler] attach for agent ${r} produced no result`));return i}async function Gr(e,t,n,r){let i;try{i=r.initialMessage===void 0?void 0:await t.reserveTurn(r.session.sessionId)}catch(e){throw new g(`initial_message`,e)}try{let a;try{a=await Mr(e,{agentId:n,launch:r.launch,identity:r.identity,locality:r.locality,expectedLeadAgentId:r.expectedLeadAgentId,instance:r.instance})}catch(e){throw new g(`agent_attach`,e)}let{startResult:o}=a;try{await gr(e,o,r.session.sessionId)}catch(t){throw await Nr(e,a),new g(`agent_attach`,t)}let s;if(i===void 0||r.initialMessage===void 0)try{r.assertAttachCommitAllowed()}catch(t){throw await Nr(e,a),await $(e,o,r.session.sessionId,`session close won attach commit`),new g(`agent_attach`,t)}else s=await vr(e,t,i,o,r.session,r.initialMessage,r.responseSchema,r.initiator,a.sessionContext,()=>{r.assertAttachCommitAllowed(),r.assertInitialMessageAdmission?.()}).catch(async t=>{throw await Nr(e,a),new g(`initial_message`,t)});return{agentId:n,adapterSessionId:o.adapterSessionId,role:r.identity.role,...s&&{messageId:s.messageId,turnId:s.turnId}}}finally{i!==void 0&&t.releaseTurnReservation(i)}}function Kr(e){return e.kind===`persona`?e.personaId:void 0}async function qr(e,t,n,r){if(r.kind===`adapter`)return null;let i=n?Ln(n):void 0;return e.request(b.resolve,{selection:r,context:{sessionId:t,promptText:i}})}async function Jr(e,t){let{session:n}=await e.request(C.get,{sessionId:t});if(!n)throw Error(`[attach-handler] Session not found: ${t}`);if(n.status!==`active`)throw Error(`[attach-handler] Session is not active: ${t}`);return n}function Yr(e,t){let n=e.agents.length===0;return t??(n?`lead`:`member`)}function Xr(e){return e.on(C.abandon,async t=>{let{parentSessionId:n,childSessionId:r}=t.payload,{session:i}=await e.request(C.get,{sessionId:r});if(!i)throw Error(`[abandon-handler] Child session not found: ${r}`);if(i.parentSessionId!==n)throw Error(`[abandon-handler] Invalid parent-child relationship: session ${r} is not a child of ${n}`+(i.parentSessionId?` (actual parent: ${i.parentSessionId})`:` (session has no parent)`));if(!(await e.request(C.close,{sessionId:r})).success)throw Error(`[abandon-handler] Failed to close child session: ${r}`);await e.emit(C.abandoned,{sessionId:r,parentSessionId:n}),t.setResult({success:!0})})}const Zr={id:`messages-to-context`,label:`Export as Context`,description:`Convert messages to context JSON (final step)`,category:`extraction`,async execute(e){let t=e.map(e=>({role:e.role,content:e.blocks.map(e=>e.type===`text`?e.content:e.type===`reasoning`?`[reasoning: ${e.content}]`:e.type===`tool_call`?`[tool: ${e.name}]`:e.type===`tool_output`?e.output:``).filter(Boolean).join(`
|
|
28
|
+
`)})),n=t.reduce((e,t)=>e+t.content.length,0),r=Math.ceil(n/4);return{kind:`context`,json:{type:`compressed-messages`,messageCount:e.length,messages:t},tokenEstimate:r}}},Qr={id:`llm-summarize`,label:`Summarize`,description:`LLM-generated summary of selected messages`,category:`transformation`,async execute(e){return{kind:`messages`,messages:e}}};function $r(e){let t=[];for(let n of e){let e=n.blocks.filter(e=>e.type===`text`).map(e=>e.content).join(`
|
|
29
|
+
`);e&&(n.role===`user`?t.push(`[human]\n${e}\n[/human]`):n.role===`assistant`&&t.push(`[assistant]\n${e}\n[/assistant]`))}return`<conversation>\n${t.join(`
|
|
30
|
+
|
|
31
|
+
`)}\n</conversation>`}function ei(e){return{id:`llm-extract`,label:`LLM Extract`,description:`Extract structured context using a cheap LLM model (requires virtualModelId in options)`,category:`extraction`,async execute(t,n){let r={kind:`messages`,messages:t},i=n?.virtualModelId;if(typeof i!=`string`)return r;let a=(typeof n?.sessionId==`string`&&n.sessionId.length>0?n.sessionId:void 0)??t[0]?.sessionId;if(typeof a!=`string`||a.length===0)return r;try{let n=await e.request(b.resolve,{selection:{kind:`virtual-model`,virtualModelId:i},context:{sessionId:a}}),{adapterId:r}=await e.request(pe.resolveId,{adapterName:n.adapterName}),o=$r(t),s=n.providerConfigId?await me(e,{adapterName:n.adapterName,providerConfigId:n.providerConfigId}):void 0,{text:c}=await e.request(y.infer,{adapterId:r,prompt:o,model:n.model,systemPrompt:`You are a context extraction assistant. Analyze the following conversation and extract structured information. Respond with ONLY valid JSON matching this exact schema — no markdown, no explanation, no code fences:
|
|
32
|
+
|
|
33
|
+
{
|
|
34
|
+
"resolved_items": ["string — completed work with resolution details"],
|
|
35
|
+
"known_bugs": [{ "issue": "string", "location": "string", "impact": "string" }],
|
|
36
|
+
"todos": [{ "issue": "string", "location": "string", "priority": "high|medium|low" }],
|
|
37
|
+
"key_decisions_and_rationale": ["string — decision with reasoning"],
|
|
38
|
+
"technical_details": {
|
|
39
|
+
"files": ["string — file paths mentioned"],
|
|
40
|
+
"schemas": {},
|
|
41
|
+
"apis": ["string — API endpoints or contracts"],
|
|
42
|
+
"config": {}
|
|
43
|
+
},
|
|
44
|
+
"constraints_and_requirements": ["string — constraints or non-negotiable requirements"],
|
|
45
|
+
"current_state": "string — one paragraph summary of where work stands now",
|
|
46
|
+
"roadmap": ["string — future work items in priority order"],
|
|
47
|
+
"data_flows": ["string — key data movement patterns"],
|
|
48
|
+
"component_interactions": { "ComponentName": "string — description of its role" },
|
|
49
|
+
"key_files": { "filepath": "string — what this file does" },
|
|
50
|
+
"helpful_hint": ["string — quick reference hints for resuming work"]
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
Rules:
|
|
54
|
+
- Omit array items you have no evidence for (prefer empty array over fabrication).
|
|
55
|
+
- current_state MUST be present; write "No summary available" if you cannot determine it.
|
|
56
|
+
- Extract only facts stated or clearly implied in the conversation. Do not invent.
|
|
57
|
+
- key_files and component_interactions should only include items explicitly mentioned.`,...s!==void 0&&{providerContext:s}}),l=c.trim().replace(/^```(?:json)?\s*/i,``).replace(/\s*```$/i,``).trim(),u=JSON.parse(l),d=v.parse(u),f=Math.ceil(JSON.stringify(d).length/4);return{kind:`context`,json:{...d},tokenEstimate:f}}catch(e){return console.warn(`[llm-extract] action failed`,{action:`llm-extract`,sessionId:a,error:e}),r}}}}let ti=!1,ni=!1;function ri(e){ti||(ti=!0,q.register(qn),q.register(Yn),q.register(Zr),q.register(Qr)),e&&!ni&&(ni=!0,q.register(ei(e)))}function ii(){ti=!1,ni=!1}function ai(e){return ri(e),e.on(C.compress,async t=>{let{sessionId:n,pipeline:i}=t.payload,{messages:a}=await e.request(f.getBySession,{sessionId:n,limit:1e4}),o=await Gn(a,i,{sessionId:n});if(!o.contextJson)throw Error(`[compress-handler] Compress pipeline must produce context JSON (sessionId=${n})`);let s=a.map(e=>e.messageId),c=Math.ceil(a.reduce((e,t)=>e+JSON.stringify(t.blocks).length/4,0)),l=crypto.randomUUID();await e.request(r.append,{event:{sessionId:n,eventId:l,timestamp:Date.now(),type:`squash`,payload:{summaryJson:JSON.stringify(o.contextJson),tokensBefore:c,tokensAfter:o.tokenEstimate,compressedMessageIds:s}}}),await e.emit(C.compressed,{sessionId:n,eventId:l}),t.setResult({eventId:l,contextJson:o.contextJson,tokensBefore:c,tokensAfter:o.tokenEstimate})})}async function oi(e,t,n,r){if(!n.segments?.length)return!1;let i=[],a;do{let{messages:n,nextCursor:o}=await e.request(f.getBySession,{sessionId:t,order:`asc`,limit:200,after:a});i.push(...n),a=r&&n.some(e=>e.messageId===r)?void 0:o??void 0}while(a);if(i.length===0)throw Error(`[fork-handler] Segment transforms require at least one source message (sourceSessionId=${t})`);let o=i;if(r){let e=i.findIndex(e=>e.messageId===r);if(e===-1)throw Error(`[fork-handler] Fork point message not found in source message list: ${r} (sourceSessionId=${t})`);o=i.slice(0,e+1)}let s=new Map;o.forEach((e,t)=>{s.set(e.messageId,t)});let c=-1;for(let e of n.segments){if(!e.fromMessageId||!e.toMessageId)throw Error(`[fork-handler] Segment must have fromMessageId and toMessageId (sourceSessionId=${t})`);let n=s.get(e.fromMessageId),r=s.get(e.toMessageId);if(n===void 0||r===void 0)throw Error(`[fork-handler] Segment boundaries must reference source messages: ${e.fromMessageId}..${e.toMessageId} (sourceSessionId=${t})`);if(n>r)throw Error(`[fork-handler] Segment range is reversed: ${e.fromMessageId}..${e.toMessageId} (sourceSessionId=${t})`);if(n<=c)throw Error(`[fork-handler] Segments must not overlap and must be ordered (sourceSessionId=${t})`);if(n!==c+1)throw Error(`[fork-handler] Segments must be contiguous without gaps (sourceSessionId=${t})`);c=r}if(c!==o.length-1)throw Error(`[fork-handler] Segments must cover the entire source message range (sourceSessionId=${t})`);return!0}function si(e){if(!e.segments?.length&&e.appliedPipeline?.length)for(let t of e.appliedPipeline){let e=q.get(t.actionId);if(!e)throw Error(`[fork-handler] Unknown action in pipeline: ${t.actionId}`);if(e.category!==`transformation`)throw Error(`[fork-handler] Action '${t.actionId}' is category '${e.category}', but only 'transformation' actions are allowed in fork transforms`)}}function ci(e,t){return e.on(C.fork,async n=>{let{sourceSessionId:r,fromMessageId:i,name:a,branchKind:o=`fork`,transforms:s,targetWorkingDirectory:c,metadata:l,existingSessionId:u}=n.payload,{session:d}=await e.request(C.get,{sessionId:r});if(!d)throw Error(`[fork-handler] Source session not found: ${r}`);if(i){let{message:t}=await e.request(f.get,{messageId:i});if(!t)throw Error(`[fork-handler] Fork point message not found: ${i} (sourceSessionId=${r})`);if(t.sessionId!==r)throw Error(`[fork-handler] Fork point message ${i} does not belong to session ${r}`)}s&&(await oi(e,r,s,i)||si(s));let{sessionId:p}=await e.request(C.create,{...u?{sessionId:u}:{},parentSessionId:r,forkPointMessageId:i,branchKind:o,forkTransforms:s,...t!==void 0&&{machineId:t},...a?{title:a}:{},...c?{targetWorkingDirectory:c}:{},...l?{metadata:l}:{}});await e.emit(C.branch.created,{sessionId:r,childSessionId:p,parentSessionId:r,kind:o,forkPointMessageId:i,transforms:s}),await e.emit(C.forked,{parentSessionId:r,childSessionId:p,forkPoint:i}),n.setResult({sessionId:p})})}function li(e){return e.on(C.merge,async t=>{let{parentSessionId:n,childSessionId:i,summary:a}=t.payload,o=`merge:${n}:${i}`,{session:s}=await e.request(C.get,{sessionId:n});if(!s)throw Error(`[merge-handler] Parent session not found: ${n}`);if(s.status!==`active`)throw Error(`[merge-handler] Parent session is not active: ${n}`);let{session:c}=await e.request(C.get,{sessionId:i});if(!c)throw Error(`[merge-handler] Child session not found: ${i}`);if(c.parentSessionId!==n)throw Error(`[merge-handler] Invalid parent-child relationship: session ${i} is not a child of ${n}`+(c.parentSessionId?` (actual parent: ${c.parentSessionId})`:` (session has no parent)`));await e.emit(C.merging,{parentSessionId:n,childSessionId:i});let l=a??`Child session ${i} merged.`;if(!(await e.request(C.close,{sessionId:i})).success)throw Error(`[merge-handler] Failed to close child session: ${i}`);let u=JSON.stringify({handoff:l});await e.request(r.append,{event:{sessionId:n,eventId:o,timestamp:Date.now(),type:`branch.merged`,payload:{childSessionId:i,parentSessionId:n,resultJson:u}}}),await e.emit(C.branch.merged,{sessionId:n,childSessionId:i,parentSessionId:n,resultJson:u}),await e.emit(C.merged,{parentSessionId:n,childSessionId:i,handoff:l}),t.setResult({success:!0,handoff:l})})}const ui={enabled:!0,template:`User changed working directory from {oldCwd} to {newCwd}`};function di(e,t,n){return e.replace(/\{oldCwd\}/g,t).replace(/\{newCwd\}/g,n)}function fi(e){if(typeof e!=`object`||!e)return!1;let t=e;return typeof t.enabled==`boolean`&&typeof t.template==`string`}async function pi(e){try{let t=await e.request(ee.get,{key:{scope:`global`,surface:`ui`,context:`cwdChangeNotification`},category:`chat-display`});if(t.value!==null&&t.value!==void 0)return fi(t.value)?t.value:ui}catch{}return ui}function mi(e,t){return e??t.adapterName??``}function hi(e){let{targetWorkingDirectory:t}=e.forkSession;return{sourceSessionId:e.sourceSessionId,sourceAdapterSessionId:e.sourceAdapterSessionId,...e.forkPointAdapterMessageId!==void 0&&{forkPointMessageId:e.forkPointAdapterMessageId},...t!==void 0&&{targetWorkingDirectory:t}}}async function gi(e,t,n,r,i){A(e,{sessionId:t,intent:`fork`,verdict:i});let a=(await J(e,t)).messages.map(Y);return{...n,messageHistory:a,isFirstTurn:!0,hasNewTransforms:r.forkTransforms!==void 0,nativeLocality:i}}async function _i(e,t){let{message:n}=await e.request(f.get,{messageId:t});return n?.adapterMessageId??void 0}async function vi(e,t,n,r,i,s,c,l,u){if(!(t.parentSessionId!==void 0&&(t.contextInheritance===`parent-history`||t.contextInheritance===void 0&&t.branchKind!==`subagent`))||r?.messageHistory)return r;let{turns:d}=await e.request(a.getBySession,{sessionId:n,limit:2});if(!(i&&d.length<=1))return r;let f=t.parentSessionId;if(f===void 0)return r;let{session:p}=await e.request(o.get,{sessionId:f});if(p===null)return r;let m=l??t.targetWorkingDirectory,h=L(p),g=ct({intent:`fork`,session:{...p,forkPointMessageId:t.forkPointMessageId,forkTransforms:t.forkTransforms},localMachineId:s,adapterSupportsNative:c?.adapterSupportsNativeFork===!0,targetAdapterName:mi(u,p),currentCwd:p.targetWorkingDirectory,targetCwd:m,sessionContext:r,midHistoryForkSupported:c?.midHistoryForkSupported===!0,resumeIdentity:h}),_=h.adapterSessionId;if(g.kind===`native`&&_!==void 0){let i;if(t.forkPointMessageId!==void 0&&(i=await _i(e,t.forkPointMessageId),i===void 0))return gi(e,n,r,t,{kind:`degrade`,reason:`fork-point-unresolvable`});let a=hi({sourceSessionId:f,sourceAdapterSessionId:_,forkSession:t,forkPointAdapterMessageId:i});return{...r,nativeLocality:g,nativeFork:a,isFirstTurn:!0}}return gi(e,n,r,t,g)}async function yi(e,t,n){if(t.parentSessionId===void 0)return;let r=[...new Set(n.map(e=>e.adapterId))];if(r.length===0)return{adapterSupportsNativeFork:!1,midHistoryForkSupported:!1};let i=await Promise.all(r.map(async t=>{try{let n=await e.requestOptional(y.getCapabilities,{adapterId:t}),r=n.handled?new Set(n.data.capabilities):new Set;return{supportsNativeFork:r.has(`session:fork`),supportsMidHistoryFork:r.has(`session:forkAtMessage`)}}catch{return{supportsNativeFork:!1,supportsMidHistoryFork:!1}}}));return{adapterSupportsNativeFork:i.every(e=>e.supportsNativeFork),midHistoryForkSupported:i.every(e=>e.supportsMidHistoryFork)}}function bi(e){let{baseContext:t,recoveryContext:n,isRecovered:r,isSwapped:i,swapMeta:a,cwdMessage:o,freshMessageHistory:s}=e,c=r&&n?{...t,...n}:t;if(!i)return c;let l=a&&o!==void 0?{cwdChange:{previousCwd:a.previousCwd,newCwd:a.newCwd,message:o}}:void 0;return c={...c,hasConnectorSwap:!0,...s!==void 0&&{messageHistory:s},...l&&{turnContext:{...c?.turnContext,...l}}},c}async function xi(e,t){let{agentId:n,adapterId:r,message:i,deliveryMode:a,messageId:o,turnId:s,sessionId:c,sessionContext:l,responseSchema:u,turn:d}=t;await e.request(x.sendMessage,{agentId:n,adapterId:r,message:i,deliveryMode:a,messageId:o,turnId:s,sessionId:c,sessionContext:l,...u!==void 0&&{responseSchema:u}}),await pr(e,{sessionId:d.sessionId,turnId:d.turnId,turnNumber:d.turnNumber,messageId:o,agentId:n})}async function Si(e,t,n){return{messageHistory:(await J(e,t.sessionId)).messages.filter(e=>e.messageId!==n).map(Y),isFirstTurn:!0}}async function Ci(e,t,n,r){let{agentId:i,adapterId:a,message:o,deliveryMode:s,messageId:c,turnId:l,sessionId:u,responseSchema:d,turn:f}=n;try{await e.request(x.sendMessage,{agentId:i,adapterId:a,message:o,deliveryMode:s,messageId:c,turnId:l,sessionId:u,sessionContext:r,...d!==void 0&&{responseSchema:d}})}catch(n){if(fr(n))throw n;let o={kind:`degrade`,reason:`native-attempt-failed`};A(e,{sessionId:u,intent:r.nativeFork?`fork`:`resume`,verdict:o,agentId:i,adapterId:a,turnId:l});let s=await Si(e,t,c);return{...r,...s,nativeLocality:o,nativeFork:void 0}}return await pr(e,{sessionId:f.sessionId,turnId:f.turnId,turnNumber:f.turnNumber,messageId:c,agentId:i}),null}async function wi(e){let{bus:t,session:n,turn:r,message:i,messageId:a,deliveryMode:o,onTurnComplete:s,agent:c,responseSchema:l,turnManager:u}=e,{agentContext:d}=e,f={agentId:c.agentId,adapterId:c.adapterId,message:i,deliveryMode:o,messageId:a,turnId:r.turnId,sessionId:n.sessionId,responseSchema:l,turn:r};try{if(d?.nativeLocality?.kind===`native`){let e=await Ci(t,n,f,d);if(e===null)return;d=e}await xi(t,{agentId:c.agentId,adapterId:c.adapterId,message:i,deliveryMode:o,messageId:a,turnId:r.turnId,sessionId:n.sessionId,sessionContext:d,responseSchema:l,turn:r})}catch(e){if(fr(e)){await Q({bus:t,turn:r,messageId:a,agentId:c.agentId,outcome:`cancelled`,onTurnComplete:s,turnManager:u});return}let n=e instanceof Error?e.message:String(e);await Q({bus:t,turn:r,messageId:a,agentId:c.agentId,outcome:`error`,error:n,onTurnComplete:s,turnManager:u})}}async function Ti(e,t,n){let r={kind:`degrade`,reason:`agent-already-started`};A(e,{sessionId:t.sessionId,intent:`fork`,verdict:r});let i=(await J(e,t.sessionId)).messages.map(Y);return{...n,messageHistory:i,nativeFork:void 0,nativeLocality:r}}async function Ei(e){let{bus:t,session:n,agents:r,message:i,messageId:a,turn:o,deliveryMode:s,onTurnComplete:c,turnManager:l,sessionContext:u,turnContextEnricher:d,isNewTurn:f,recoveryContext:p,recoveredAgentIds:m,swappedAgentIds:h,swappedAgentCwd:g,freshMessageHistory:_,responseSchema:v,localMachineId:ee}=e,y=await yi(t,n,r),b=await vi(t,n,n.sessionId,u,f,ee,y);b?.nativeFork&&(b=await Ti(t,n,b));let x=d?await d.enrichForDeliveryMode(b?.messageHistory,o.turnId,s):b?.messageHistory,te=b?{...b,messageHistory:x}:void 0,S=h?.size?await pi(t):ui,C=r.map(async e=>{let r=g?.get(e.agentId),u=r&&S.enabled?di(S.template,r.previousCwd,r.newCwd):void 0;await wi({bus:t,session:n,turn:o,message:i,messageId:a,deliveryMode:s,onTurnComplete:c,turnManager:l,agent:e,agentContext:bi({baseContext:te,recoveryContext:p,isRecovered:m?.has(e.agentId)??!1,isSwapped:h?.has(e.agentId)??!1,swapMeta:r,cwdMessage:u,freshMessageHistory:_}),responseSchema:v})});await Promise.all(C)}export{ht as $,Fn as A,$t as B,Wn as C,Vn as D,Bn as E,Nn as F,V as G,en as H,kn as I,yt as J,B as K,yn as L,In as M,jn as N,Ln as O,Mn as P,R as Q,un as R,q as S,Hn as T,Mt as U,Xt as V,bt as W,vt as X,gt as Y,_t as Z,X as _,Ie as _t,ai as a,ct as at,$n as b,Xr as c,nt as ct,or as d,Ye as dt,L as et,rr as f,M as ft,tr as g,Fe as gt,ar as h,Pe as ht,ci as i,dt as it,Pn as j,zn as k,Rr as l,tt as lt,sr as m,k as mt,vi as n,ut as nt,ri as o,it as ot,ir as p,Ve as pt,z as q,li as r,ft as rt,ii as s,I as st,Ei as t,lt as tt,hr as u,et as ut,nr as v,Ne as vt,Un as w,J as x,er as y,be as yt,nn as z};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./ui-config-
|
|
1
|
+
import{t as e}from"./ui-config-BIyGzMNL.mjs";import{i as t,r as n}from"./schemas-DgwEVUt-.mjs";import{z as r}from"zod";import{createBusNamespace as i}from"@makaio/framework/core";const a=`At least one of adapterName or clientId must be provided`,o=e=>!!(e.adapterName||e.clientId);function s(e){return!!(e.id||e.name)}function c(e){return e.id||!e.name?!0:!!e.adapterName}const l={get:{request:r.object({id:r.string().optional(),name:r.string().optional(),adapterName:r.string().optional()}).refine(s,{message:`Either id or name is required`,path:[`id`]}).refine(c,{message:`adapterName is required when looking up by name`,path:[`adapterName`]}),response:t},list:{request:r.object({adapterName:r.string().optional(),clientId:r.string().optional(),name:r.string().optional()}),response:r.object({harnesses:r.array(t)})},set:{request:n,response:r.object({id:r.string()})},delete:{request:r.object({id:r.string()}),response:r.object({success:r.boolean()})},getDefault:{request:r.object({adapterName:r.string().optional(),clientId:r.string().optional()}).refine(o,{message:a,path:[`adapterName`]}),response:t},resolve:{request:r.object({adapterName:r.string().optional(),clientId:r.string().optional(),personaHarnessId:r.string().optional(),profileHarnessId:r.string().optional()}).refine(o,{message:a,path:[`adapterName`]}),response:t},getSchema:{request:r.object({}),response:r.object({schema:r.record(r.string(),r.unknown()),uiConfig:e})},created:t,updated:t,deleted:r.object({id:r.string()})},u=i(`harness`,l),d=u.subjects;function f(e,t){return t[e]??[]}function p(e){let{registeredTools:t,allowedCapabilities:n,disallowedCapabilities:r,capabilityMap:i}=e,a=new Set(n),o=new Set(r),s=[],c=[];for(let e of t){let t=f(e,i);n.length>0&&t.length>0&&t.every(e=>a.has(e))&&s.push(e),t.some(e=>o.has(e))&&c.push(e)}return{allowedTools:s,disallowedTools:c}}function m(e,t){return t.length===0?e?[...e]:void 0:[...new Set([...e??[],...t])]}function h(e,t){return{allowedTools:m(e,[]),disallowedTools:m(t,[])}}async function g(e,t){let{allowedCapabilities:n,disallowedCapabilities:r,harnessId:i,allowedTools:a,disallowedTools:o}=t;if(!((n?.length??0)||(r?.length??0))||!i)return h(a,o);let s=await e.request(d.get,{id:i});if(!s.toolCapabilityMap)return h(a,o);let c=p({registeredTools:s.nativeTools.enabled,allowedCapabilities:n??[],disallowedCapabilities:r??[],capabilityMap:s.toolCapabilityMap});return{allowedTools:m(a,c.allowedTools),disallowedTools:m(o,c.disallowedTools)}}const _={bash:[`shell.execute`,`file.read`,`file.write`,`file.delete`,`network.request`,`process.manage`],patch:[`file.write`]};function v(e){return{id:e.id,name:e.name,description:e.description,adapterName:e.adapterName,clientId:e.clientId,approvalPolicy:`always-ask`,nativeTools:{enabled:[],disabled:[]},registryTools:{enabled:[],disabled:[]},isDefault:!0,enabled:!0}}const y={id:`harness-codex-app-server-native`,name:`Codex Native`,description:`Codex app server with built-in native tools`,adapterName:`codex-app-server`,clientId:`codex`,approvalPolicy:`always-ask`,nativeTools:{enabled:[`bash`,`patch`],disabled:[]},registryTools:{enabled:[],disabled:[]},toolCapabilityMap:_,isDefault:!0,enabled:!0},b=v({id:`harness-openai-node-registry`,name:`OpenAI Registry`,description:`OpenAI adapter with registry-managed tools`,adapterName:`openai-node`}),x=v({id:`harness-claude-code-registry`,name:`Claude Code Registry`,description:`Claude Code adapter with registry-managed tools`,adapterName:`claude-code`,clientId:`claude-code`}),S=v({id:`harness-gemini-sdk-registry`,name:`Gemini SDK Registry`,description:`Gemini SDK adapter with registry-managed tools`,adapterName:`gemini-sdk`,clientId:`gemini`}),C=[y,b,x,S];export{b as a,g as c,l as d,d as f,S as i,f as l,y as n,_ as o,C as r,p as s,x as t,u};
|