@makaio/framework 1.0.0-dev-1790614475240 → 1.0.0-dev-1790750768917
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.makaio-build.json +2 -2
- package/dist/adapters/config/index.d.mts +1 -1
- package/dist/adapters/config/index.mjs +1 -1
- package/dist/adapters/index.d.mts +2 -2
- package/dist/adapters/index.mjs +1 -1
- package/dist/adapters/node.d.mts +1 -1
- package/dist/adapters/node.mjs +1 -1
- package/dist/{attempt-record-codec-DXpdMgyI.mjs → attempt-record-codec-zQnXwJF-.mjs} +1 -1
- package/dist/{caller-owned-adapter-stub-D8RZEdRn.mjs → caller-owned-adapter-stub-BLbPeCP9.mjs} +1 -1
- package/dist/clients/hook-subjects.d.mts +158 -0
- package/dist/clients/hook-subjects.mjs +1 -0
- package/dist/clients/index.d.mts +3 -129
- package/dist/clients/index.mjs +1 -1
- package/dist/clients/managed-install.d.mts +1 -1
- package/dist/clients/managed-install.mjs +1 -1
- package/dist/code-execution/worker-entry.d.mts +1 -1
- package/dist/code-execution/worker-entry.mjs +1 -1
- package/dist/{code-execution-BspFbEdT.mjs → code-execution-Bdqurit9.mjs} +1 -1
- package/dist/{code-execution-DWSux6k1.mjs → code-execution-BwqsnOwu.mjs} +1 -1
- package/dist/contracts/adapter/index.d.mts +2 -2
- package/dist/contracts/adapter/schemas/session-lineage.d.mts +1 -1
- package/dist/contracts/artifact/index.d.mts +2 -2
- package/dist/contracts/auth/index.d.mts +2 -2
- package/dist/contracts/automation-trigger/index.d.mts +3 -3
- package/dist/contracts/canonical-model/index.d.mts +1 -1
- package/dist/contracts/capabilities/index.d.mts +1 -1
- package/dist/contracts/client/index.d.mts +2 -2
- package/dist/contracts/code-execution/index.d.mts +1 -1
- package/dist/contracts/common/index.d.mts +1 -1
- package/dist/contracts/config/index.d.mts +2 -2
- package/dist/contracts/extension/index.d.mts +5 -5
- package/dist/contracts/facet/index.d.mts +1 -1
- package/dist/contracts/harness/index.d.mts +1 -1
- package/dist/contracts/host/index.d.mts +1 -1
- package/dist/contracts/index.d.mts +90 -90
- package/dist/contracts/materialization/index.d.mts +2 -2
- package/dist/contracts/model-registry/index.d.mts +1 -1
- package/dist/contracts/native-session-supervisor/index.d.mts +1 -1
- package/dist/contracts/platform/index.d.mts +1 -1
- package/dist/contracts/provider/index.d.mts +2 -2
- package/dist/contracts/reaction/index.d.mts +1 -1
- package/dist/contracts/session/index.d.mts +2 -2
- package/dist/contracts/shared/index.d.mts +2 -2
- package/dist/contracts/skill/index.d.mts +1 -1
- package/dist/contracts/telemetry/index.d.mts +1 -1
- package/dist/contracts/timeout/index.d.mts +1 -1
- package/dist/contracts/variant/index.d.mts +1 -1
- package/dist/contracts/worker/index.d.mts +2 -2
- package/dist/contracts/workflow/index.d.mts +2 -2
- package/dist/{contribution-DTb65rRN.d.mts → contribution-CCVRsaNB.d.mts} +2 -2
- package/dist/{definition-DWhjp0db.d.mts → definition-i4PufQpo.d.mts} +1 -1
- package/dist/{detached-extension-handle-QrXVNUR2.mjs → detached-extension-handle-DtnyN7vI.mjs} +1 -1
- package/dist/{execution-attempt-owner-recovery-BZOEVYFH.mjs → execution-attempt-owner-recovery-CvnTavxP.mjs} +1 -1
- package/dist/{execution-target-CDeIBu4b.mjs → execution-target-BumuKpUR.mjs} +1 -1
- package/dist/{extension-kOwzAMud.mjs → extension-C9EyvptA.mjs} +1 -1
- package/dist/{extension-context-DH84KOm9.d.mts → extension-context-BWrjVPXR.d.mts} +1 -1
- package/dist/fast-connection-CAm0eRI4.mjs +1 -0
- package/dist/{filesystem-service-CIaAqTRi.mjs → filesystem-service-yIGQgXXP.mjs} +1 -1
- package/dist/{framework-packages-D2fycy02.mjs → framework-packages-blqho6Nk.mjs} +1 -1
- package/dist/git/index.mjs +1 -1
- package/dist/{globby-CxGKRBGC.mjs → globby-DBl3Lybh.mjs} +1 -1
- package/dist/{handlers-CfWqy2KP.mjs → handlers-DmEPQqPX.mjs} +1 -1
- package/dist/{hook-responses-OETFKaAL.d.mts → hook-responses-v6EA_7WC.d.mts} +1 -1
- package/dist/inbound-hooks/fast-connection.d.mts +37 -0
- package/dist/inbound-hooks/fast-connection.mjs +1 -0
- package/dist/inbound-hooks/index.d.mts +3 -42
- package/dist/inbound-hooks/index.mjs +1 -1
- package/dist/inbound-hooks/stdio.d.mts +42 -0
- package/dist/inbound-hooks/stdio.mjs +1 -0
- package/dist/{index-B1uHTa1l.d.mts → index-BBrLhtLK.d.mts} +1 -1
- package/dist/{index-DPsQ_cFG2.d.mts → index-BIf8JHBp2.d.mts} +1 -1
- package/dist/{index-wQB90bP1.d.mts → index-BytbaguH.d.mts} +4 -4
- package/dist/{index-_CsKmUOy.d.mts → index-C0NhPcTU.d.mts} +6 -6
- package/dist/{index-1mY0aNe3.d.mts → index-CBzHX2vt.d.mts} +1 -1
- package/dist/{index-DyWD9bfP.d.mts → index-CE6cAf_r.d.mts} +1 -1
- package/dist/{index-C0Jfr8UK.d.mts → index-CPPulAkE.d.mts} +2 -2
- package/dist/{index-3G70bNLs.d.mts → index-CexFpJGs.d.mts} +17 -17
- package/dist/{index-CU0AgN84.d.mts → index-CfGPuR1W.d.mts} +3 -3
- package/dist/{index-BfFi98B_.d.mts → index-CrZ-G2qH.d.mts} +1 -1
- package/dist/{index-BRXETFym.d.mts → index-Cxx1aoPR.d.mts} +1 -1
- package/dist/{index-DDCixELI.d.mts → index-D-1RUdHM.d.mts} +1 -1
- package/dist/{index-e3AB0Iyv.d.mts → index-DKPap20V.d.mts} +33 -33
- package/dist/{index-DHTLIeW62.d.mts → index-DUqPPB_X2.d.mts} +7 -7
- package/dist/{index-CLwnkYRD.d.mts → index-DWWP2cUb.d.mts} +1 -1
- package/dist/{index-bXozN5vc.d.mts → index-DZkpkd7L.d.mts} +8 -8
- package/dist/{index-DrfwkH1x.d.mts → index-D_fMdJbU.d.mts} +8 -8
- package/dist/{index-CdkIg4Gu.d.mts → index-DeXQczqV.d.mts} +1 -1
- package/dist/{index-CVRQS5jk.d.mts → index-Di2-G_3M.d.mts} +1 -1
- package/dist/{index-C-tLT_IE.d.mts → index-DpqO6tbz.d.mts} +14 -14
- package/dist/{index-CtwkMknv.d.mts → index-Fmdwbgei.d.mts} +8 -8
- package/dist/{index-D9BLsMs8.d.mts → index-OLasQ7NP.d.mts} +1 -1
- package/dist/{index-BM8oUon_.d.mts → index-gOYLLgKk.d.mts} +12 -12
- package/dist/{index-BYMgvz_a2.d.mts → index-hoGiyiqe2.d.mts} +8 -8
- package/dist/{index-t6LnywuE.d.mts → index-l8b_NgVk.d.mts} +1 -1
- package/dist/{index-6UlianLY2.d.mts → index-zD2RYwIn2.d.mts} +11 -11
- 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 +2 -2
- package/dist/kernel/extension/index.mjs +1 -1
- package/dist/kernel/index.d.mts +5 -5
- package/dist/kernel/index.mjs +1 -1
- package/dist/kernel/namespace/index.d.mts +1 -1
- package/dist/kernel/namespace/index.mjs +1 -1
- package/dist/kernel/observability/index.d.mts +1 -1
- package/dist/kernel/observability/index.mjs +1 -1
- package/dist/kernel/providers/index.d.mts +1 -1
- package/dist/kernel/providers/index.mjs +1 -1
- package/dist/kernel/window/index.d.mts +1 -1
- package/dist/kernel/window/index.mjs +1 -1
- package/dist/{lib-BdyGVjpO.mjs → lib-BvRpcV8o.mjs} +1 -1
- package/dist/{lib-DxP3tPm9.mjs → lib-C0osDjMk.mjs} +1 -1
- package/dist/{load-extensions-eyXZhbRn.mjs → load-extensions-C4HK679X.mjs} +1 -1
- package/dist/{load-extensions-CCzTHlUE.d.mts → load-extensions-CMdXwAq-.d.mts} +1 -1
- package/dist/mcp-http-server/index.mjs +1 -1
- package/dist/{namespace-CHSwZhH7.d.mts → namespace-BH9U2C1O.d.mts} +2 -2
- package/dist/{namespace-B9iQN3FQ.d.mts → namespace-C42bZCbK.d.mts} +5 -5
- package/dist/namespace-CUKQ8osk.mjs +1 -0
- package/dist/{namespace-CMntzAPI.mjs → namespace-D-_gP6_l.mjs} +1 -1
- package/dist/{namespace-DAzOxaux.d.mts → namespace-D74MefGI.d.mts} +2 -2
- package/dist/{namespace-CNX4llM5.d.mts → namespace-DK5qZpST.d.mts} +6 -6
- package/dist/{namespace-D38Fmd0E.d.mts → namespace-DYnHI_Nk.d.mts} +6 -6
- 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-CF-jPH91.mjs → orchestrator-shared-yQ-cLSjx.mjs} +1 -1
- package/dist/{ownership-memory-handler-C-y9zQf8.mjs → ownership-memory-handler-BkB4ondL.mjs} +1 -1
- package/dist/{package-CeEUAKHI.mjs → package-C-XcWpYW.mjs} +1 -1
- package/dist/{package-BSz4hbav.mjs → package-C_PVR-xw.mjs} +1 -1
- package/dist/{package-AlsbnlSt.mjs → package-CuXEeVP0.mjs} +1 -1
- package/dist/{package-BjtsXnaA.d.mts → package-Ir6SEHkA.d.mts} +1 -1
- package/dist/package.json +1 -1
- package/dist/{provider-context-D6GIZ5DC.mjs → provider-context-DHS1LRQA.mjs} +1 -1
- package/dist/rules/index.d.mts +1 -1
- package/dist/rules/index.mjs +1 -1
- package/dist/rules/schemas.d.mts +1 -1
- package/dist/runtime-bun/index.mjs +1 -1
- package/dist/runtime-node/code-execution/index.d.mts +2 -2
- package/dist/runtime-node/code-execution/index.mjs +1 -1
- package/dist/runtime-node/extension-discovery.d.mts +1 -1
- package/dist/runtime-node/extension-validation.d.mts +1 -1
- package/dist/runtime-node/extension-validation.mjs +1 -1
- package/dist/runtime-node/index.d.mts +5 -5
- package/dist/runtime-node/index.mjs +3 -3
- 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-Cz6-4_Dn.mjs → schema-C0lK_6u-.mjs} +1 -1
- package/dist/{schemas-BjhhkGN_.d.mts → schemas-BBMHnFq8.d.mts} +4 -4
- package/dist/{schemas-DnyXA-9o.d.mts → schemas-C8YaJLKz.d.mts} +2 -2
- package/dist/{schemas-BXkSHQaF.d.mts → schemas-CEc_v3dl.d.mts} +2 -2
- package/dist/{schemas-D9pXu76T.d.mts → schemas-CtL2su-K.d.mts} +4 -4
- package/dist/{schemas-feb64ScA.d.mts → schemas-DNP5mdxx.d.mts} +7 -7
- package/dist/{schemas-CBDNnyz4.d.mts → schemas-DnwAE1ao.d.mts} +1 -1
- package/dist/{schemas-RwAlAMbq2.d.mts → schemas-DrrpHMbF2.d.mts} +7 -7
- package/dist/services/adapter-runtime/index.d.mts +3 -3
- package/dist/services/adapter-runtime/index.mjs +1 -1
- package/dist/services/adapter-runtime/namespace.d.mts +1 -1
- package/dist/services/adapter-runtime/schemas.d.mts +1 -1
- package/dist/services/adapter-subsystem/index.d.mts +3 -3
- package/dist/services/adapter-subsystem/index.mjs +1 -1
- package/dist/services/adapter-subsystem/namespace.d.mts +1 -1
- package/dist/services/adapter-subsystem/namespace.mjs +1 -1
- package/dist/services/agent-runtime/index.d.mts +2 -2
- package/dist/services/agent-runtime/namespace.d.mts +1 -1
- package/dist/services/agent-runtime/schemas.d.mts +1 -1
- package/dist/services/automation-trigger/index.mjs +1 -1
- package/dist/services/capability/index.d.mts +2 -2
- package/dist/services/capability/index.mjs +1 -1
- package/dist/services/code-execution/index.d.mts +1 -1
- package/dist/services/code-execution/index.mjs +1 -1
- package/dist/services/codebase/index.d.mts +2 -2
- package/dist/services/codebase/namespace.d.mts +1 -1
- package/dist/services/codebase/schemas.d.mts +1 -1
- package/dist/services/compression/index.d.mts +2 -2
- package/dist/services/compression/namespace.d.mts +1 -1
- package/dist/services/compression/schemas.d.mts +1 -1
- package/dist/services/context-rules/index.d.mts +4 -4
- package/dist/services/context-rules/index.mjs +1 -1
- package/dist/services/execution-target/index.d.mts +3 -3
- package/dist/services/execution-target/index.mjs +1 -1
- package/dist/services/execution-target/namespace.d.mts +1 -1
- package/dist/services/execution-target/namespace.mjs +1 -1
- package/dist/services/execution-target/schemas.d.mts +1 -1
- package/dist/services/execution-target/schemas.mjs +1 -1
- package/dist/services/filesystem/index.d.mts +1 -1
- package/dist/services/filesystem/index.mjs +1 -1
- package/dist/services/filesystem/namespace.d.mts +6 -6
- package/dist/services/filesystem/schemas.d.mts +3 -3
- package/dist/services/git/namespace.mjs +1 -1
- package/dist/services/git/schemas.mjs +1 -1
- package/dist/services/harness/index.d.mts +3 -3
- package/dist/services/harness/index.mjs +1 -1
- package/dist/services/index.d.mts +60 -60
- package/dist/services/index.mjs +1 -1
- package/dist/services/log-import/browser.d.mts +2 -2
- package/dist/services/log-import/index.d.mts +2 -2
- package/dist/services/log-import/log-import.d.mts +1 -1
- package/dist/services/log-import/log-import.mjs +1 -1
- package/dist/services/log-import/namespace.mjs +1 -1
- package/dist/services/log-import/schemas.mjs +1 -1
- package/dist/services/materialization/index.d.mts +1 -1
- package/dist/services/materialization/index.mjs +1 -1
- package/dist/services/model-registry/index.d.mts +1 -1
- package/dist/services/model-registry/index.mjs +1 -1
- package/dist/services/preferences/index.d.mts +2 -2
- package/dist/services/preferences/schemas.d.mts +1 -1
- package/dist/services/preferences/storage-namespace.d.mts +2 -2
- package/dist/services/provider-context/index.d.mts +1 -1
- package/dist/services/provider-context/index.mjs +1 -1
- package/dist/services/provider-runtime/index.mjs +1 -1
- package/dist/services/session/handlers/index.d.mts +1 -1
- package/dist/services/session/handlers/index.mjs +1 -1
- package/dist/services/session/index.d.mts +9 -9
- package/dist/services/session/index.mjs +1 -1
- package/dist/services/session/messages/namespace.d.mts +1 -1
- package/dist/services/session/messages/namespace.mjs +1 -1
- package/dist/services/session/orchestrator-testing/index.d.mts +1 -1
- package/dist/services/session/orchestrator-testing/index.mjs +1 -1
- package/dist/services/session/session-events/namespace.d.mts +1 -1
- package/dist/services/session/session-events/namespace.mjs +1 -1
- package/dist/services/session/storage/namespace.d.mts +1 -1
- package/dist/services/session/storage/schema.d.mts +1 -1
- package/dist/services/session/testing/index.mjs +1 -1
- package/dist/services/session/testing/orchestrator-shared.d.mts +1 -1
- package/dist/services/session/testing/orchestrator-shared.mjs +1 -1
- package/dist/services/session/turns/namespace.d.mts +1 -1
- package/dist/services/session/turns/namespace.mjs +1 -1
- package/dist/services/session-editor/index.d.mts +1 -1
- package/dist/services/session-editor/index.mjs +1 -1
- package/dist/services/settings/index.d.mts +3 -3
- package/dist/services/settings/index.mjs +1 -1
- package/dist/services/settings/namespace.d.mts +2 -2
- 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/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-Tj_635zr.mjs → session-BjV4HPCQ.mjs} +1 -1
- package/dist/{session-lineage-BQ9NWlt6.d.mts → session-lineage-CLrQb1Hz.d.mts} +1 -1
- package/dist/{src-CkKKoY0M.mjs → src-BDw_ijvA.mjs} +1 -1
- package/dist/src-CnTMHQm0.mjs +1 -0
- package/dist/storage/drizzle/client.d.mts +1 -1
- package/dist/storage/drizzle/client.mjs +1 -1
- package/dist/storage/drizzle/index.d.mts +1 -1
- package/dist/storage/drizzle/index.mjs +1 -1
- package/dist/storage/handlers/drizzle/index.d.mts +1 -1
- package/dist/storage/handlers/drizzle/index.mjs +1 -1
- package/dist/storage/handlers/index.d.mts +1 -1
- package/dist/storage/handlers/index.mjs +1 -1
- package/dist/{storage-namespace-NHTWAjaX.d.mts → storage-namespace-DoxNJ9Cg.d.mts} +10 -10
- package/dist/{tool-approval-service-BCN4W8eS.mjs → tool-approval-service-Bc0IC6Hj.mjs} +1 -1
- package/dist/{tools-BCL_dtHe.mjs → tools-Cbuj-ClQ.mjs} +1 -1
- package/dist/{transition-DK43U3QJ.d.mts → transition-DNNBGMtx.d.mts} +2 -2
- package/dist/{types-CW-4Y0k_2.d.mts → types-BfuE1-1V2.d.mts} +1 -1
- package/dist/{types-jmH0Yad4.d.mts → types-DsZBnL7z.d.mts} +6 -6
- package/dist/ui-kernel/index.d.mts +4 -4
- package/dist/ui-kernel/pages/namespace.d.mts +4 -4
- package/dist/ui-kernel/pages/schemas.d.mts +1 -1
- package/dist/{view-builder-tgwZ1ucc.d.mts → view-builder-HU_v1Jg7.d.mts} +2 -2
- package/dist/workflow-engine/execution-attempt-repository.d.mts +1 -1
- package/dist/workflow-engine/execution-attempt-repository.mjs +1 -1
- package/dist/workflow-engine/index.d.mts +19 -19
- package/dist/workflow-engine/index.mjs +1 -1
- package/dist/workflow-engine/package.d.mts +1 -1
- package/dist/workflow-engine/package.mjs +1 -1
- package/dist/workflow-engine/provider-operation.d.mts +1 -1
- package/dist/workflow-engine/testing/conformance.d.mts +1 -1
- package/dist/workflow-engine/testing/conformance.mjs +1 -1
- package/dist/workflow-engine/testing/index.d.mts +1 -1
- package/dist/workflow-engine/testing/index.mjs +1 -1
- package/dist/workflow-engine/testing/sqlite.d.mts +1 -1
- package/dist/workflow-engine/testing/sqlite.mjs +1 -1
- package/dist/workflow-engine/workflow-orchestrator.mjs +1 -1
- package/dist/{workflow-transitions-7d9lGi08.mjs → workflow-transitions-CvT6P03B.mjs} +1 -1
- package/dist/{workflow-worker-BCLy_g_a.mjs → workflow-worker-CvQN2dmX.mjs} +1 -1
- package/package.json +13 -1
- package/dist/namespace-BPf6AbBO.mjs +0 -1
- package/dist/src-BZdw54VU.mjs +0 -1
- /package/dist/{adapter-auth-runtime-B6yX_QfG.mjs → adapter-auth-runtime-CYgj-Ht4.mjs} +0 -0
- /package/dist/{adapter-binding-DF-j-XHg.d.mts → adapter-binding-DG877aQO.d.mts} +0 -0
- /package/dist/{attach-error-wNJ8Q5uU.mjs → attach-error-mkj6SVd2.mjs} +0 -0
- /package/dist/{attempt-control-evidence-CHBnJoqN.mjs → attempt-control-evidence-DmNT2Wkb.mjs} +0 -0
- /package/dist/{attempt-fixtures-D3IsP0KH.mjs → attempt-fixtures-DPGw7peT.mjs} +0 -0
- /package/dist/{authority-state-bootstrap-4F5Wc_6l.mjs → authority-state-bootstrap-kIU-C2nI.mjs} +0 -0
- /package/dist/{base-orchestrator-DH6W4NQg.d.mts → base-orchestrator-CYU2iHqB.d.mts} +0 -0
- /package/dist/{bootstrap-start-client-9nOdeDYl.mjs → bootstrap-start-client-DyKCj6Eu.mjs} +0 -0
- /package/dist/{capability-service-BHcRd1td.d.mts → capability-service-BEVVEaTj.d.mts} +0 -0
- /package/dist/{client-Sx_N8LXo.d.mts → client-CkfU-f8m.d.mts} +0 -0
- /package/dist/{client-binary-version-verifier-DcHCFmsI.mjs → client-binary-version-verifier-CITusS9s.mjs} +0 -0
- /package/dist/{client-binary-version-verifier-C8gtKQFO.d.mts → client-binary-version-verifier-DgGke3gW.d.mts} +0 -0
- /package/dist/{clients-namespace-CASHxXUM.d.mts → clients-namespace-BRijqVIc.d.mts} +0 -0
- /package/dist/{config-namespace-Ctia-VDG.d.mts → config-namespace-9pC41Rtl.d.mts} +0 -0
- /package/dist/{create-static-mount-4B-mNtx1.mjs → create-static-mount-Dt-iC0Uq.mjs} +0 -0
- /package/dist/{credential-ref-MsnUkz9G.d.mts → credential-ref-DHhA4VTS.d.mts} +0 -0
- /package/dist/{cross-spawn-DGqEuNyT.mjs → cross-spawn-DIqCmSCD.mjs} +0 -0
- /package/dist/{cursor-storage-BvjxwBW6.mjs → cursor-storage-TgG0XBrI.mjs} +0 -0
- /package/dist/{definition-Cx175qXh.d.mts → definition-RnEMoWgj.d.mts} +0 -0
- /package/dist/{descriptor-to-package-BPIArq6N.mjs → descriptor-to-package-BmbVrmaM.mjs} +0 -0
- /package/dist/{drizzle-_w6sUR8p.mjs → drizzle-C9VHmFKj.mjs} +0 -0
- /package/dist/{esm-DwiWcwH0.mjs → esm-CC8hYyqN.mjs} +0 -0
- /package/dist/{event-D5_UaIBZ.mjs → event-DK8N_EOT.mjs} +0 -0
- /package/dist/{execution-attempt-repository-CY289HlC.mjs → execution-attempt-repository-BMbbbk7n.mjs} +0 -0
- /package/dist/{execution-attempt-repository-C2XKRZ3O.d.mts → execution-attempt-repository-Dyluu7wy.d.mts} +0 -0
- /package/dist/{extension-discovery-BqSPn73R.d.mts → extension-discovery-DmV1H6kV.d.mts} +0 -0
- /package/dist/{extension-namespace-CeRpt6C8.mjs → extension-namespace-BwNmFrd3.mjs} +0 -0
- /package/dist/{extension-package-provenance-ClpN3GHp.mjs → extension-package-provenance-DAc6EC8S.mjs} +0 -0
- /package/dist/{filesystem-service-5Ecp3nSV.d.mts → filesystem-service-RvR9ogzG.d.mts} +0 -0
- /package/dist/{handler-Cc1MhaR4.mjs → handler-BY2DDdyI.mjs} +0 -0
- /package/dist/{identity-DgTjgflr.mjs → identity-DBdzjf61.mjs} +0 -0
- /package/dist/{index-CwVSr7Ow.d.mts → index-2XwNyZAw.d.mts} +0 -0
- /package/dist/{index-B_Hf4XPX.d.mts → index-AtnMf7Qf.d.mts} +0 -0
- /package/dist/{index-BCuWtlv5.d.mts → index-B-ZgZuHg.d.mts} +0 -0
- /package/dist/{index-u0EteHlR2.d.mts → index-B4MBx8vA2.d.mts} +0 -0
- /package/dist/{index-Bmb7jPIe2.d.mts → index-BN4sKsLl2.d.mts} +0 -0
- /package/dist/{index-BjrbddkU.d.mts → index-BS3GYAN9.d.mts} +0 -0
- /package/dist/{index-CURT4JaX.d.mts → index-BrJ_6xi2.d.mts} +0 -0
- /package/dist/{index-w1AeWV4F.d.mts → index-BuRaseJB.d.mts} +0 -0
- /package/dist/{index-DmV9ybgT.d.mts → index-C5u82-qr.d.mts} +0 -0
- /package/dist/{index-DMgbNdEU.d.mts → index-C9G0Namh.d.mts} +0 -0
- /package/dist/{index-C9vF42jh.d.mts → index-CE-VlXE2.d.mts} +0 -0
- /package/dist/{index-2YW8DTb62.d.mts → index-CFet5T7v2.d.mts} +0 -0
- /package/dist/{index-rik4Uc5G.d.mts → index-CVQ852YA.d.mts} +0 -0
- /package/dist/{index-By1UhKYU2.d.mts → index-CVlnG_H22.d.mts} +0 -0
- /package/dist/{index-DOui-7u2.d.mts → index-C_LQ5NSy.d.mts} +0 -0
- /package/dist/{index-_OD_Nz3m.d.mts → index-Cc5kDe9y.d.mts} +0 -0
- /package/dist/{index-DDnY7JhE.d.mts → index-CnyQ2N42.d.mts} +0 -0
- /package/dist/{index-BOxMyaqG.d.mts → index-D-rTv5WO.d.mts} +0 -0
- /package/dist/{index-BEPn58tG.d.mts → index-D1es2sEA.d.mts} +0 -0
- /package/dist/{index-62OoZLGr.d.mts → index-DJZZS_H0.d.mts} +0 -0
- /package/dist/{index-N0-r5Hcd.d.mts → index-DggZJ6TT.d.mts} +0 -0
- /package/dist/{index-BV3nQpdO.d.mts → index-Do3__CB3.d.mts} +0 -0
- /package/dist/{index-DsmyofuM.d.mts → index-lJLrusa5.d.mts} +0 -0
- /package/dist/{index-BleQ0SR7.d.mts → index-riopop0h.d.mts} +0 -0
- /package/dist/{index-DAqAa9aL.d.mts → index-yfLm_tCv.d.mts} +0 -0
- /package/dist/{json-value--pv1-OHx.d.mts → json-value-B2gMynW3.d.mts} +0 -0
- /package/dist/{jsonl-transport-Ct1RWs0h.mjs → jsonl-transport-_zPQoMpM.mjs} +0 -0
- /package/dist/{lib-DomKag_k.mjs → lib-l8EW0aRq.mjs} +0 -0
- /package/dist/{model-registry-CeDu27XL.mjs → model-registry-BJbUh4uw.mjs} +0 -0
- /package/dist/{namespace-HLrZerLd.d.mts → namespace-B6S7ZFyX.d.mts} +0 -0
- /package/dist/{namespace-CqJhR19O.mjs → namespace-BG-DwVwA.mjs} +0 -0
- /package/dist/{namespace-Bo6-o_rW.mjs → namespace-BWTEnslo.mjs} +0 -0
- /package/dist/{namespace-Sd6qj6w22.d.mts → namespace-CO9J3NB-2.d.mts} +0 -0
- /package/dist/{namespace-CJ5sH_Bp.d.mts → namespace-CVO6bZ4F.d.mts} +0 -0
- /package/dist/{namespace-KomML5ti.d.mts → namespace-CytKzWBF.d.mts} +0 -0
- /package/dist/{namespace-C9xmGXbW.mjs → namespace-D1tJewLB.mjs} +0 -0
- /package/dist/{namespace-DbtfwD5Z.d.mts → namespace-D8pSI--d.d.mts} +0 -0
- /package/dist/{namespace-CnRQ8tCJ.mjs → namespace-DS4y8Kv9.mjs} +0 -0
- /package/dist/{namespace-J87EeVTm.mjs → namespace-DaFbUCqO.mjs} +0 -0
- /package/dist/{namespace-QV_2m25r.d.mts → namespace-Dcs8KeNG.d.mts} +0 -0
- /package/dist/{namespace-C_NGRHKs.d.mts → namespace-Dt7hJA-a.d.mts} +0 -0
- /package/dist/{namespace-CL9OyrHs.d.mts → namespace-F8g5LZte.d.mts} +0 -0
- /package/dist/{namespace-Bz0ZDWhE.d.mts → namespace-u4eoUCLp.d.mts} +0 -0
- /package/dist/{node-bridge-backend-DtRT--yn.mjs → node-bridge-backend-CsJ3_7CF.mjs} +0 -0
- /package/dist/{node-pty-backend-C72EgRws.mjs → node-pty-backend-o9xyqPMi.mjs} +0 -0
- /package/dist/{orchestrator-shared-Bvo0u-1D.d.mts → orchestrator-shared-B96yveBr.d.mts} +0 -0
- /package/dist/{out-EjlaPopg.mjs → out-GD8gVf9J.mjs} +0 -0
- /package/dist/{ownership-recovery-guard-C9h8K1jo.mjs → ownership-recovery-guard-C00rcqvz.mjs} +0 -0
- /package/dist/{package-BCKYMTYG.mjs → package-B6mFblgK.mjs} +0 -0
- /package/dist/{package-BwlW7N32.mjs → package-Dke3gaTJ.mjs} +0 -0
- /package/dist/{packages-vF9F4M41.mjs → packages-CZ2x-Ver.mjs} +0 -0
- /package/dist/{packages-KX9yofCa.d.mts → packages-Fy4a6vQy.d.mts} +0 -0
- /package/dist/{providers-CahjB0Kh.mjs → providers-CIb7WiA8.mjs} +0 -0
- /package/dist/{providers-namespace-B-l-OQZk.d.mts → providers-namespace-Bg03KVpr.d.mts} +0 -0
- /package/dist/{quick-lru-C1yB5RCQ.mjs → quick-lru-BgvUj18f.mjs} +0 -0
- /package/dist/{registry-DtaRGU8i.mjs → registry-mZnnYsTk.mjs} +0 -0
- /package/dist/{runtime-inputs-B7nWstrY.d.mts → runtime-inputs-qWXJyPAC.d.mts} +0 -0
- /package/dist/{schema-DLE6Dqyc.d.mts → schema-C58MdqlI.d.mts} +0 -0
- /package/dist/{schema-BnuyCklU.mjs → schema-CdUStsjr.mjs} +0 -0
- /package/dist/{schema-introspection-_Yw9L_mB.mjs → schema-introspection-CRLs6TZU.mjs} +0 -0
- /package/dist/{schemas-BNQtL3Ln.d.mts → schemas-BKE3qw_w.d.mts} +0 -0
- /package/dist/{schemas-C0Fb2-LN.d.mts → schemas-BNG5UOHC.d.mts} +0 -0
- /package/dist/{schemas-BNRFKQdz.mjs → schemas-BzzkGp4E.mjs} +0 -0
- /package/dist/{schemas-BOT1HUv6.d.mts → schemas-CUfqNSQj.d.mts} +0 -0
- /package/dist/{schemas-Djjq4LLs.mjs → schemas-D9hVAoP5.mjs} +0 -0
- /package/dist/{schemas-DekYSXka.mjs → schemas-dPLES84M.mjs} +0 -0
- /package/dist/{schemas-Dxfk39-v.d.mts → schemas-hXVl5GeF.d.mts} +0 -0
- /package/dist/{schemas-BGTuiO3u.d.mts → schemas-zWy59x9Y.d.mts} +0 -0
- /package/dist/{server-lifecycle-BjbuCO-s.mjs → server-lifecycle-CmsnIyst.mjs} +0 -0
- /package/dist/{server-lifecycle-BINetU26.d.mts → server-lifecycle-DJcc_FqN.d.mts} +0 -0
- /package/dist/{shared-schemas-CnOyMY42.mjs → shared-schemas-DwAPAqeD.mjs} +0 -0
- /package/dist/{src-CqQSqLQI.mjs → src-CHyuN-wv.mjs} +0 -0
- /package/dist/{storage-namespace-TBX8VgK3.mjs → storage-namespace-CYZOP3RS.mjs} +0 -0
- /package/dist/{storage-namespace-definition-DV3IipmH.d.mts → storage-namespace-definition--9lrtKns.d.mts} +0 -0
- /package/dist/{supports-color-CjiFmM1U.mjs → supports-color-BZuv8Isw.mjs} +0 -0
- /package/dist/{tray-menu-service-BRrnoqaY.mjs → tray-menu-service-DGhHTNyy.mjs} +0 -0
- /package/dist/{types-CjoaGe_E.d.mts → types-BfQSVqtV.d.mts} +0 -0
- /package/dist/{types-B_mVEuYd.d.mts → types-CA6i6flt.d.mts} +0 -0
- /package/dist/{types-wwuw7RkB.mjs → types-CGL_-qT6.mjs} +0 -0
- /package/dist/{types-CqVuKsLC.d.mts → types-D-Q9gxe2.d.mts} +0 -0
- /package/dist/{types-D7WtaoMR.d.mts → types-DEDjIt3d.d.mts} +0 -0
- /package/dist/{types-MFZzmywp.d.mts → types-DVZYa4bZ.d.mts} +0 -0
- /package/dist/{window-registry-2MZdZPdA.mjs → window-registry-BB_bd5Yu.mjs} +0 -0
- /package/dist/{window-registry-1jI3f9ir.d.mts → window-registry-DqVHgb6Y.d.mts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
import{wt as e,x as t}from"./handlers-CfWqy2KP.mjs";import{SessionStorageSubjects as n}from"./services/session/storage/namespace.mjs";import{E as r,I as i,J as a,N as o,U as s,a as c,b as l,c as u,d,et as ee,i as te,k as ne,n as re,nt as ie,r as ae}from"./session-Tj_635zr.mjs";import{r as f,t as oe}from"./namespace-J87EeVTm.mjs";import{_ as se,a as ce,c as le,o as ue,s as de}from"./packages-vF9F4M41.mjs";import{n as fe}from"./package-BCKYMTYG.mjs";import"./services/adapter-subsystem/index.mjs";import{i as pe,s as me}from"./model-registry-CeDu27XL.mjs";import{d as he,f as ge,n as _e}from"./package-BwlW7N32.mjs";import{t as ve}from"./tool-approval-service-BCN4W8eS.mjs";import{t as ye}from"./tray-menu-service-BRrnoqaY.mjs";import{r as p,t as be}from"./handler-Cc1MhaR4.mjs";import{r as xe}from"./package-BSz4hbav.mjs";import{t as Se}from"./filesystem-service-CIaAqTRi.mjs";import{z as m}from"zod";import{createHash as Ce}from"node:crypto";import{getErrorString as h}from"@makaio/framework/utils";import{MakaioError as we,createMakaioContext as Te}from"@makaio/framework/core";import{AdapterSubjects as Ee,ArtifactSubjects as g,CanonicalModelSubjects as De,DEFAULT_HARNESSES as Oe,HarnessDefinitionCreateSchema as ke,HarnessSubjects as _,JsonValueSchema as Ae,ReactionDescriptorSchema as je,ToolSubjects as v,TransitionRuleDefinitionSchema as Me,WorkflowBlocksSubjects as y,WorkflowSubjects as Ne,dep as b,extensionToken as x,validateToolAdapterIdentity as Pe,zodSchemaToJsonRecord as S}from"@makaio/framework/contracts";import{MakaioBus as C}from"@makaio/framework/bus";import{BaseService as w}from"@makaio/framework/service-base";import{registerDrizzleHandlers as T}from"@makaio/framework/storage/drizzle";import{slugifyProviderConfigName as E}from"@makaio/framework/contracts/config";import{ClientAccountIdentifierSchema as Fe,ClientSessionAccountObserveSchema as Ie,ClientSubjects as D}from"@makaio/framework/contracts/client";import{FacetSubjects as O}from"@makaio/framework/contracts/facet";import{FILE_ACCESS_RULES_KEY as Le,ToolErrorCodes as k,errorToToolResult as Re,toolError as A,toolSuccess as ze}from"@makaio/framework/tools";import{ConditionSchema as Be,evaluate as Ve}from"@makaio/framework/rules";import{evaluateSync as He}from"@makaio/framework/expression";import{GitService as Ue}from"@makaio/framework/git";var j=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 M(e,t){return e?!(e.kind!==void 0&&e.kind!==`*`&&e.kind!==t.kind||e.schemaVersion!==void 0&&e.schemaVersion!==t.schemaVersion):!0}function N(e){return e.priority??0}function We(e,t,n){return e.filter(e=>e.event===t&&M(e.filter,n)).sort((e,t)=>N(t)-N(e))}function Ge(e,t,n){return e.filter(e=>e.event===t&&M(e.filter,n)).sort((e,t)=>N(t)-N(e))}function Ke(e,t){return{...e,...`data`in t?{data:t.data}:{},...`relations`in t?{relations:t.relations}:{},...`evidence`in t?{evidence:t.evidence}:{},...`confidence`in t?{confidence:t.confidence}:{},...`representations`in t?{representations:t.representations}:{},...`actor`in t?{actor:t.actor}:{}}}function qe(e,t){let{evidence:n,confidence:r,representations:i,...a}=e;return{...a,data:t.data,relations:[...t.relations],...t.evidence===void 0?{}:{evidence:t.evidence},...t.confidence===void 0?{}:{confidence:t.confidence},...t.representations===void 0?{}:{representations:t.representations},actor:t.actor}}var P=class extends w{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=We(this.allHooks(),e,n),o=new Map,s={kind:n.kind,schemaVersion:n.schemaVersion,scope:n.scope,data:n.data,relations:n.relations,...n.evidence===void 0?{}:{evidence:n.evidence},...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=Ke(s,e)}};if(await t.handler(a),n)throw new j(n.reason,t.id)}return{draft:qe(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,skipDefaultProjection:s,meta:c}=n,l=Ge(this.allHooks(),e,r),u=this.bus,d=!1;for(let n of l){if(s&&(n.priority??0)<0||d&&(n.priority??0)<0)continue;let l={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,bus:u,meta:c,preventDefault(){d=!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 u.request(g.resolve,{ref:e});r&&n.push(r)}}return n}};try{await n.handler(l)}catch(t){console.error(`[ArtifactLifecycleHookRegistry] Hook '${n.id}' threw during '${e}':`,t)}}}};function F(e){return structuredClone(e)}var I=class extends w{namespaces=new Map;constructor(e){super(e)}async onInit(){this.registerHandler(O.namespace.register,e=>{this.registerNamespace(e.payload),e.setResult({registered:!0})}),this.registerHandler(O.namespace.list,e=>{let{namespace:t}=e.payload,n=[...this.namespaces.values()].filter(e=>!t||e.namespace===t).map(F);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,F(e)),this.bus.emit(O.namespace.changed,{namespace:e.namespace})}deregisterNamespace(e){this.namespaces.delete(e)&&this.bus.emit(O.namespace.changed,{namespace:e})}getNamespace(e){let t=this.namespaces.get(e);return t?F(t):void 0}onDestroy(){this.namespaces.clear()}},L=class extends we{code;suggestions;constructor(e,t,n){super(e),this.code=t,this.suggestions=n}},R=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 L(`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 L(`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 L(`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 L(`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 L(`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 L(`"${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 L(`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 L(`"${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 L(`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 L(`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]}},z=class e extends w{constructor(e=C){super(e)}async onInit(){await this.bus.request(f.ensureReady,{});let e=new R(this.createDeps());this.registerHandler(De.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(f.listAdapters,{});return t.filter(e=>e.enabled).map(e=>e.name)},n=async t=>{let[n,r]=await Promise.all([e.request(f.getDefaultBinding,{adapterName:t}),this.listEnabledProviderConfigIds()]);if(n.binding&&r.has(n.binding.providerConfigId))return n.binding;let{bindings:i}=await e.request(f.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(f.getProviderDefinitionsByAdapter,{adapterName:t});return n},i=async t=>{let{bindings:n}=await e.request(f.listBindingsByConfig,{providerConfigId:t});return n},a=async t=>{let{configs:n}=await e.request(f.listProviderConfigs,{enabled:!0}),r=E(t);return n.find(e=>E(e.name)===r)},o=this.buildFindProviderDefinition(t,r),s=async t=>{let{configs:n}=await e.request(f.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(f.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(me.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(f.listProviderConfigs,{enabled:!0});return new Set(e.map(e=>e.id))}};const B={name:`makaio.canonical-model`,displayName:`Canonical Model`,version:`0.1.0`,dependencies:[b(oe)],critical:!1,create:e=>new z(e.bus)};var V=class extends w{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,`unknown-reaction`,`Reaction kind '${e}' is not registered`);let a=Ye(n.deadlineEpochMs),o=this.cancelledBeforeValidation(e,r,n,a);if(o)return o;let s=Xe(n.hostSignal,a),c=Ze(r,s.controller.signal,n);try{let n;try{n=await i.parameterSchema.safeParseAsync(t)}catch(t){return this.cancelledAfterValidation(e,r,c.correlationId,s,a)||this.failure(e,r,c.correlationId,`invalid-parameters`,`Parameter validation for Reaction '${e}' threw: ${h(t)}`,t)}return this.cancelledAfterValidation(e,r,c.correlationId,s,a)||(n.success?(await i.handler(n.data,c),{success:!0}):this.failure(e,r,c.correlationId,`invalid-parameters`,`Invalid parameters for Reaction '${e}': ${n.error.message}`))}catch(t){return this.logFailure(e,r,c.correlationId,`Reaction '${e}' handler threw`,t),{success:!1,error:{code:`handler-failed`,message:h(t)}}}finally{s.release()}}failure(e,t,n,r,i,a){return this.logFailure(e,t,n,i,a),{success:!1,error:{code:r,message:i}}}cancelledBeforeHandler(e,t,n,r){return this.failure(e,t,n,`cancelled`,`Reaction '${e}' cancelled before handler entry: ${h(r)}`,r)}cancelledBeforeValidation(e,t,n,r){if(n.hostSignal?.aborted)return this.failure(e,t,n.correlationId,`cancelled`,`Reaction '${e}' host signal already aborted`);if(r!==void 0&&r<=Date.now())return this.failure(e,t,n.correlationId,`cancelled`,`Reaction '${e}' deadline already passed`)}cancelledAfterValidation(e,t,n,r,i){return i!==void 0&&H(r.controller,i),r.controller.signal.aborted?this.cancelledBeforeHandler(e,t,n,r.controller.signal.reason):void 0}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=je.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 Je=()=>{};function Ye(e){return e!==void 0&&Number.isFinite(e)?e:void 0}function Xe(e,t){let n=new AbortController;if(e===void 0&&t===void 0)return{controller:n,release:Je};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(H(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 H(e,t){return t>Date.now()?!1:(e.abort(Error(`Reaction invocation deadline reached (deadlineEpochMs: ${t})`)),!0)}function Ze(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 U=x(`reaction-registry`),W={name:U.name,displayName:`Reaction Registry`,version:`0.1.0`,critical:!0,create:e=>new V(e.bus)};function Qe(e){let t=Pe({adapterId:e?.adapterId,adapterName:e?.adapterName,contextOverrides:{adapterId:e?.contextOverrides?.adapterId,adapterName:e?.contextOverrides?.adapterName}}),n=t.issues[0];return n?A(k.VALIDATION_FAILED,n.message):ze(t.effectiveIdentity)}function $e(e){let t=e?.allowedDirectories;if(Array.isArray(t))return t.filter(e=>typeof e==`string`)}async function et(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 tt(){return`exec_${Date.now()}_${Math.random().toString(36).substring(2,9)}`}var G=class{bus;toolsets=new Map;tools=new Map;cleanupHandlers=[];handlerPriority;policyProvider;fileAccessRuleProvider;revision=0;constructor(e){this.bus=e?.bus??C,this.handlerPriority=e?.handlerPriority??0,this.policyProvider=e?.policyProvider,this.fileAccessRuleProvider=e?.fileAccessRuleProvider,this.registerHandlers()}registerHandlers(){let e=this.bus.on(v.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(v.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 ${v.registryChanged.subject} for '${e.metadata.name}':`,t)),await this.bus.emit(v.registered,{toolsetName:e.metadata.name,toolsetVersion:e.metadata.version,toolNames:t}).catch(t=>console.warn(`[ToolRegistry] Failed to emit ${v.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 ${v.registryChanged.subject} for '${e}':`,t))}async emitRegistryChanged(e,t){this.revision+=1,await this.bus.emit(v.registryChanged,{revision:this.revision,reason:e,toolsetName:t})}async execute(e,t,n){let r=this.tools.get(e);if(!r)return A(k.TOOL_NOT_FOUND,`Tool '${e}' not found`);let i=Qe(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=tt(),l=Date.now();await this.bus.emit(v.started,{toolName:e,toolsetName:o,executionId:c,timestamp:l});try{let r=a.inputSchema.safeParse(t);if(!r.success){let t=A(k.VALIDATION_FAILED,`Input validation failed`,{issues:r.error.issues});return await this.bus.emit(v.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(v.completed,{toolName:e,toolsetName:o,executionId:c,timestamp:Date.now(),durationMs:Date.now()-l}):await this.bus.emit(v.error,{toolName:e,toolsetName:o,executionId:c,timestamp:Date.now(),error:u.error}),u}catch(t){let n=Re(t);return await this.bus.emit(v.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=$e(n),i=await this.fileAccessRuleProvider(t,r);n={...n,[Le]:i}}let r=Te({...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 A(k.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 A(k.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}=m.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}=m.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 et(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 w{stepsByExtension=new Map;revision=0;cache=null;constructor(e){super(e)}onInit(){this.registerHandler(y.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:S(r.configSchema),inputSchema:S(r.inputSchema),outputSchema:S(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(y.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(Ne.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=He(n,st(t)),i=Ae.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=Me.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:Be.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 w{ruleRegistry;actionRegistry;depthMap=new Map;constructor(e){super(e),this.ruleRegistry=new lt,this.actionRegistry=new ct(e)}onInit(){this.registerHandler(g.created,async e=>{await this.handleArtifactEvent(`artifact.created`,{artifact:e.payload.artifact})}),this.registerHandler(g.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(g.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(g.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(g.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=Ve(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(D.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 m.array(Fe).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=x(`session-storage`).name;var St=class extends w{constructor(e=C){super(e)}onInit(){let e=dt(this.bus);this.registerHandler(D.session.account.observe,async t=>{t.setResult(await e(Ie.request.parse(t.payload)))})}};const Ct={name:`makaio.session-client-account-linking`,displayName:`Session Client Account Linking`,version:`0.1.0`,dependencies:[b(xt),b(`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(p.list,{}),n=new Set(t.map(e=>e.id));for(let t of Oe){if(n.has(t.id))continue;let r={...t};await e.request(p.set,{harness:r})}}function J(e,t,n){return e??t??n}var Et=class extends w{static storage={drizzle:be};constructor(e=C){super(e)}async onInit(){await Tt(this.bus),this.registerHandlers()}registerHandlers(){this.registerHandler(_.get,async e=>{let t=await this.loadHarness(e.payload);if(!t)throw Error(`Harness not found`);e.setResult(t)}),this.registerHandler(_.list,async e=>{let{harnesses:t}=await this.bus.request(p.list,e.payload);e.setResult({harnesses:t})}),this.registerHandler(_.set,async e=>{let t=await this.upsertHarness(e.payload);e.setResult({id:t})}),this.registerHandler(_.delete,async e=>{let{deleted:t}=await this.bus.request(p.delete,{id:e.payload.id});e.setResult({success:t})}),this.registerHandler(_.getDefault,async e=>{let t=await this.getDefaultHarness(e.payload.adapterName,e.payload.clientId);e.setResult(t)}),this.registerHandler(_.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(_.getSchema,({setResult:e})=>{let{$schema:t,...n}=m.toJSONSchema(ke);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(p.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(p.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(p.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(p.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(p.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(p.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(Ee.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-${Ce(`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:T(be)},create:e=>new Et(e.bus)},Y=x(`session-storage`),X=x(`session-bridge`),Z=x(`session`),Ot=x(`session-orchestrator`),kt=x(`observed-session-ingestion`),Q=x(`tool-registry`),At=x(`tool-approval`),jt=x(`tray-menu`),Mt=x(`model-registry`),Nt=x(`workflow-block-registry`),Pt=x(`transition-pipeline`),Ft=x(`filesystem`),It=x(`git`),Lt=x(`artifact-lifecycle-hook-registry`),Rt=x(`facet-namespace-registry`),zt={name:Lt.name,displayName:`Artifact Lifecycle Hook Registry`,version:`0.1.0`,critical:!0,create:e=>new P(e.bus)},Bt={name:Rt.name,displayName:`Facet Namespace Registry`,version:`0.1.0`,critical:!0,create:e=>new I(e.bus)},$={name:Y.name,displayName:`Session Storage`,version:`0.1.0`,critical:!0,storage:{registerHandlers:T((n,i)=>{let s=[],d=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(ne(n,i)),s.push(e(n,i)),s.push(ee(n,i)),s.push(a(n,i)),s.push(t(n,i)),s.push(o(n,i)),s.push(r(n,i)),s.push(u(n,i)),s.push(l(n,i)),s.push(c(n,i)),s.push(te(n)),s.push(ae(n)),s.push(re(n))}catch(e){throw d(`rollback`),e}return()=>{d(`shutdown`)}})}},Vt={name:X.name,displayName:`Session Bridge`,version:`0.1.0`,dependencies:[b(Y.name)],critical:!0,create:e=>new i(e.bus)},Ht={name:Z.name,displayName:`Session`,version:`0.1.0`,dependencies:[b(X.name)],critical:!0,create:e=>new ie(e.bus,{machineId:e.machineId,topology:`shared-machine`})},Ut={name:Ot.name,displayName:`Session Orchestrator`,version:`0.1.0`,dependencies:[b(Z.name),b(B.name)],critical:!0,runtimeOwnership:{sessionOrchestrator:!0},create:e=>new s(e.bus,e.machineId)},Wt={name:kt.name,displayName:`Observed-Session Ingestion`,version:`0.1.0`,dependencies:[b(X.name)],critical:!1,create:e=>new d(e.bus)};function Gt(e={}){return{name:Q.name,displayName:`Tool Registry`,version:`0.1.0`,critical:!0,create:t=>new G({...e,bus:t.bus})}}const Kt=Gt();function qt(e={}){return{name:At.name,displayName:`Tool Approval`,version:`0.1.0`,dependencies:[b(Q.name)],critical:!0,create:t=>new ve(t.bus,e)}}const Jt=qt(),Yt={name:jt.name,displayName:`Tray Menu`,version:`0.1.0`,critical:!0,create:e=>new ye(e.bus)},Xt={name:Nt.name,displayName:`Workflow Block Registry`,version:`0.1.0`,critical:!0,create:e=>new nt(e.bus)},Zt={name:Pt.name,displayName:`Transition Pipeline`,version:`0.1.0`,critical:!0,create:e=>new ut(e.bus)},Qt={name:Ft.name,displayName:`Filesystem`,version:`0.1.0`,critical:!0,create:e=>new Se(e.bus,e.machineId)},$t={name:It.name,displayName:`Git`,version:`0.1.0`,dependencies:[b(Ft.name)],critical:!0,create:e=>new Ue(e.bus)};function en(e){return{name:Mt.name,displayName:`Model Registry`,version:`0.1.0`,critical:!0,create:t=>new pe({bus:t.bus,fetcher:e})}}const tn=rn(Kt,Jt);function nn(e={}){return e.fileAccessRuleProvider?rn(Gt(e),qt(e)):tn}function rn(e,t){return[se,zt,Bt,le,de,ce,ue,$,Vt,Ct,Ht,Ut,Wt,xe,e,t,Yt,fe,Dt,B,wt,Xt,W,ge,he,_e,Zt,$t,Qt]}export{K as A,I as B,Kt as C,ut as D,Xt as E,V as F,j as H,B as I,z as L,G as M,U as N,lt as O,W as P,R,Jt as S,Yt as T,P as V,tn as _,Ot as a,Ht as b,At as c,jt as d,Nt as f,Bt as g,en as h,X as i,nt as j,ct as k,Q as l,nn as m,Rt as n,Y as o,zt as p,Mt as r,Z as s,Lt as t,Pt as u,Vt as v,Zt as w,$ as x,Ut as y,L as z};
|
|
1
|
+
import{wt as e,x as t}from"./handlers-DmEPQqPX.mjs";import{SessionStorageSubjects as n}from"./services/session/storage/namespace.mjs";import{E as r,I as i,J as a,N as o,U as s,a as c,b as l,c as u,d,et as ee,i as te,k as ne,n as re,nt as ie,r as ae}from"./session-BjV4HPCQ.mjs";import{r as f,t as oe}from"./namespace-DaFbUCqO.mjs";import{_ as se,a as ce,c as le,o as ue,s as de}from"./packages-CZ2x-Ver.mjs";import{n as fe}from"./package-B6mFblgK.mjs";import"./services/adapter-subsystem/index.mjs";import{i as pe,s as me}from"./model-registry-BJbUh4uw.mjs";import{d as he,f as ge,n as _e}from"./package-Dke3gaTJ.mjs";import{t as ve}from"./tool-approval-service-Bc0IC6Hj.mjs";import{t as ye}from"./tray-menu-service-DGhHTNyy.mjs";import{r as p,t as be}from"./handler-BY2DDdyI.mjs";import{r as xe}from"./package-C_PVR-xw.mjs";import{t as Se}from"./filesystem-service-yIGQgXXP.mjs";import{z as m}from"zod";import{createHash as Ce}from"node:crypto";import{getErrorString as h}from"@makaio/framework/utils";import{MakaioError as we,createMakaioContext as Te}from"@makaio/framework/core";import{AdapterSubjects as Ee,ArtifactSubjects as g,CanonicalModelSubjects as De,DEFAULT_HARNESSES as Oe,HarnessDefinitionCreateSchema as ke,HarnessSubjects as _,JsonValueSchema as Ae,ReactionDescriptorSchema as je,ToolSubjects as v,TransitionRuleDefinitionSchema as Me,WorkflowBlocksSubjects as y,WorkflowSubjects as Ne,dep as b,extensionToken as x,validateToolAdapterIdentity as Pe,zodSchemaToJsonRecord as S}from"@makaio/framework/contracts";import{MakaioBus as C}from"@makaio/framework/bus";import{BaseService as w}from"@makaio/framework/service-base";import{registerDrizzleHandlers as T}from"@makaio/framework/storage/drizzle";import{slugifyProviderConfigName as E}from"@makaio/framework/contracts/config";import{ClientAccountIdentifierSchema as Fe,ClientSessionAccountObserveSchema as Ie,ClientSubjects as D}from"@makaio/framework/contracts/client";import{FacetSubjects as O}from"@makaio/framework/contracts/facet";import{FILE_ACCESS_RULES_KEY as Le,ToolErrorCodes as k,errorToToolResult as Re,toolError as A,toolSuccess as ze}from"@makaio/framework/tools";import{ConditionSchema as Be,evaluate as Ve}from"@makaio/framework/rules";import{evaluateSync as He}from"@makaio/framework/expression";import{GitService as Ue}from"@makaio/framework/git";var j=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 M(e,t){return e?!(e.kind!==void 0&&e.kind!==`*`&&e.kind!==t.kind||e.schemaVersion!==void 0&&e.schemaVersion!==t.schemaVersion):!0}function N(e){return e.priority??0}function We(e,t,n){return e.filter(e=>e.event===t&&M(e.filter,n)).sort((e,t)=>N(t)-N(e))}function Ge(e,t,n){return e.filter(e=>e.event===t&&M(e.filter,n)).sort((e,t)=>N(t)-N(e))}function Ke(e,t){return{...e,...`data`in t?{data:t.data}:{},...`relations`in t?{relations:t.relations}:{},...`evidence`in t?{evidence:t.evidence}:{},...`confidence`in t?{confidence:t.confidence}:{},...`representations`in t?{representations:t.representations}:{},...`actor`in t?{actor:t.actor}:{}}}function qe(e,t){let{evidence:n,confidence:r,representations:i,...a}=e;return{...a,data:t.data,relations:[...t.relations],...t.evidence===void 0?{}:{evidence:t.evidence},...t.confidence===void 0?{}:{confidence:t.confidence},...t.representations===void 0?{}:{representations:t.representations},actor:t.actor}}var P=class extends w{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=We(this.allHooks(),e,n),o=new Map,s={kind:n.kind,schemaVersion:n.schemaVersion,scope:n.scope,data:n.data,relations:n.relations,...n.evidence===void 0?{}:{evidence:n.evidence},...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=Ke(s,e)}};if(await t.handler(a),n)throw new j(n.reason,t.id)}return{draft:qe(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,skipDefaultProjection:s,meta:c}=n,l=Ge(this.allHooks(),e,r),u=this.bus,d=!1;for(let n of l){if(s&&(n.priority??0)<0||d&&(n.priority??0)<0)continue;let l={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,bus:u,meta:c,preventDefault(){d=!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 u.request(g.resolve,{ref:e});r&&n.push(r)}}return n}};try{await n.handler(l)}catch(t){console.error(`[ArtifactLifecycleHookRegistry] Hook '${n.id}' threw during '${e}':`,t)}}}};function F(e){return structuredClone(e)}var I=class extends w{namespaces=new Map;constructor(e){super(e)}async onInit(){this.registerHandler(O.namespace.register,e=>{this.registerNamespace(e.payload),e.setResult({registered:!0})}),this.registerHandler(O.namespace.list,e=>{let{namespace:t}=e.payload,n=[...this.namespaces.values()].filter(e=>!t||e.namespace===t).map(F);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,F(e)),this.bus.emit(O.namespace.changed,{namespace:e.namespace})}deregisterNamespace(e){this.namespaces.delete(e)&&this.bus.emit(O.namespace.changed,{namespace:e})}getNamespace(e){let t=this.namespaces.get(e);return t?F(t):void 0}onDestroy(){this.namespaces.clear()}},L=class extends we{code;suggestions;constructor(e,t,n){super(e),this.code=t,this.suggestions=n}},R=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 L(`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 L(`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 L(`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 L(`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 L(`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 L(`"${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 L(`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 L(`"${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 L(`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 L(`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]}},z=class e extends w{constructor(e=C){super(e)}async onInit(){await this.bus.request(f.ensureReady,{});let e=new R(this.createDeps());this.registerHandler(De.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(f.listAdapters,{});return t.filter(e=>e.enabled).map(e=>e.name)},n=async t=>{let[n,r]=await Promise.all([e.request(f.getDefaultBinding,{adapterName:t}),this.listEnabledProviderConfigIds()]);if(n.binding&&r.has(n.binding.providerConfigId))return n.binding;let{bindings:i}=await e.request(f.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(f.getProviderDefinitionsByAdapter,{adapterName:t});return n},i=async t=>{let{bindings:n}=await e.request(f.listBindingsByConfig,{providerConfigId:t});return n},a=async t=>{let{configs:n}=await e.request(f.listProviderConfigs,{enabled:!0}),r=E(t);return n.find(e=>E(e.name)===r)},o=this.buildFindProviderDefinition(t,r),s=async t=>{let{configs:n}=await e.request(f.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(f.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(me.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(f.listProviderConfigs,{enabled:!0});return new Set(e.map(e=>e.id))}};const B={name:`makaio.canonical-model`,displayName:`Canonical Model`,version:`0.1.0`,dependencies:[b(oe)],critical:!1,create:e=>new z(e.bus)};var V=class extends w{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,`unknown-reaction`,`Reaction kind '${e}' is not registered`);let a=Ye(n.deadlineEpochMs),o=this.cancelledBeforeValidation(e,r,n,a);if(o)return o;let s=Xe(n.hostSignal,a),c=Ze(r,s.controller.signal,n);try{let n;try{n=await i.parameterSchema.safeParseAsync(t)}catch(t){return this.cancelledAfterValidation(e,r,c.correlationId,s,a)||this.failure(e,r,c.correlationId,`invalid-parameters`,`Parameter validation for Reaction '${e}' threw: ${h(t)}`,t)}return this.cancelledAfterValidation(e,r,c.correlationId,s,a)||(n.success?(await i.handler(n.data,c),{success:!0}):this.failure(e,r,c.correlationId,`invalid-parameters`,`Invalid parameters for Reaction '${e}': ${n.error.message}`))}catch(t){return this.logFailure(e,r,c.correlationId,`Reaction '${e}' handler threw`,t),{success:!1,error:{code:`handler-failed`,message:h(t)}}}finally{s.release()}}failure(e,t,n,r,i,a){return this.logFailure(e,t,n,i,a),{success:!1,error:{code:r,message:i}}}cancelledBeforeHandler(e,t,n,r){return this.failure(e,t,n,`cancelled`,`Reaction '${e}' cancelled before handler entry: ${h(r)}`,r)}cancelledBeforeValidation(e,t,n,r){if(n.hostSignal?.aborted)return this.failure(e,t,n.correlationId,`cancelled`,`Reaction '${e}' host signal already aborted`);if(r!==void 0&&r<=Date.now())return this.failure(e,t,n.correlationId,`cancelled`,`Reaction '${e}' deadline already passed`)}cancelledAfterValidation(e,t,n,r,i){return i!==void 0&&H(r.controller,i),r.controller.signal.aborted?this.cancelledBeforeHandler(e,t,n,r.controller.signal.reason):void 0}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=je.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 Je=()=>{};function Ye(e){return e!==void 0&&Number.isFinite(e)?e:void 0}function Xe(e,t){let n=new AbortController;if(e===void 0&&t===void 0)return{controller:n,release:Je};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(H(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 H(e,t){return t>Date.now()?!1:(e.abort(Error(`Reaction invocation deadline reached (deadlineEpochMs: ${t})`)),!0)}function Ze(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 U=x(`reaction-registry`),W={name:U.name,displayName:`Reaction Registry`,version:`0.1.0`,critical:!0,create:e=>new V(e.bus)};function Qe(e){let t=Pe({adapterId:e?.adapterId,adapterName:e?.adapterName,contextOverrides:{adapterId:e?.contextOverrides?.adapterId,adapterName:e?.contextOverrides?.adapterName}}),n=t.issues[0];return n?A(k.VALIDATION_FAILED,n.message):ze(t.effectiveIdentity)}function $e(e){let t=e?.allowedDirectories;if(Array.isArray(t))return t.filter(e=>typeof e==`string`)}async function et(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 tt(){return`exec_${Date.now()}_${Math.random().toString(36).substring(2,9)}`}var G=class{bus;toolsets=new Map;tools=new Map;cleanupHandlers=[];handlerPriority;policyProvider;fileAccessRuleProvider;revision=0;constructor(e){this.bus=e?.bus??C,this.handlerPriority=e?.handlerPriority??0,this.policyProvider=e?.policyProvider,this.fileAccessRuleProvider=e?.fileAccessRuleProvider,this.registerHandlers()}registerHandlers(){let e=this.bus.on(v.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(v.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 ${v.registryChanged.subject} for '${e.metadata.name}':`,t)),await this.bus.emit(v.registered,{toolsetName:e.metadata.name,toolsetVersion:e.metadata.version,toolNames:t}).catch(t=>console.warn(`[ToolRegistry] Failed to emit ${v.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 ${v.registryChanged.subject} for '${e}':`,t))}async emitRegistryChanged(e,t){this.revision+=1,await this.bus.emit(v.registryChanged,{revision:this.revision,reason:e,toolsetName:t})}async execute(e,t,n){let r=this.tools.get(e);if(!r)return A(k.TOOL_NOT_FOUND,`Tool '${e}' not found`);let i=Qe(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=tt(),l=Date.now();await this.bus.emit(v.started,{toolName:e,toolsetName:o,executionId:c,timestamp:l});try{let r=a.inputSchema.safeParse(t);if(!r.success){let t=A(k.VALIDATION_FAILED,`Input validation failed`,{issues:r.error.issues});return await this.bus.emit(v.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(v.completed,{toolName:e,toolsetName:o,executionId:c,timestamp:Date.now(),durationMs:Date.now()-l}):await this.bus.emit(v.error,{toolName:e,toolsetName:o,executionId:c,timestamp:Date.now(),error:u.error}),u}catch(t){let n=Re(t);return await this.bus.emit(v.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=$e(n),i=await this.fileAccessRuleProvider(t,r);n={...n,[Le]:i}}let r=Te({...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 A(k.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 A(k.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}=m.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}=m.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 et(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 w{stepsByExtension=new Map;revision=0;cache=null;constructor(e){super(e)}onInit(){this.registerHandler(y.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:S(r.configSchema),inputSchema:S(r.inputSchema),outputSchema:S(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(y.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(Ne.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=He(n,st(t)),i=Ae.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=Me.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:Be.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 w{ruleRegistry;actionRegistry;depthMap=new Map;constructor(e){super(e),this.ruleRegistry=new lt,this.actionRegistry=new ct(e)}onInit(){this.registerHandler(g.created,async e=>{await this.handleArtifactEvent(`artifact.created`,{artifact:e.payload.artifact})}),this.registerHandler(g.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(g.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(g.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(g.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=Ve(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(D.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 m.array(Fe).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=x(`session-storage`).name;var St=class extends w{constructor(e=C){super(e)}onInit(){let e=dt(this.bus);this.registerHandler(D.session.account.observe,async t=>{t.setResult(await e(Ie.request.parse(t.payload)))})}};const Ct={name:`makaio.session-client-account-linking`,displayName:`Session Client Account Linking`,version:`0.1.0`,dependencies:[b(xt),b(`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(p.list,{}),n=new Set(t.map(e=>e.id));for(let t of Oe){if(n.has(t.id))continue;let r={...t};await e.request(p.set,{harness:r})}}function J(e,t,n){return e??t??n}var Et=class extends w{static storage={drizzle:be};constructor(e=C){super(e)}async onInit(){await Tt(this.bus),this.registerHandlers()}registerHandlers(){this.registerHandler(_.get,async e=>{let t=await this.loadHarness(e.payload);if(!t)throw Error(`Harness not found`);e.setResult(t)}),this.registerHandler(_.list,async e=>{let{harnesses:t}=await this.bus.request(p.list,e.payload);e.setResult({harnesses:t})}),this.registerHandler(_.set,async e=>{let t=await this.upsertHarness(e.payload);e.setResult({id:t})}),this.registerHandler(_.delete,async e=>{let{deleted:t}=await this.bus.request(p.delete,{id:e.payload.id});e.setResult({success:t})}),this.registerHandler(_.getDefault,async e=>{let t=await this.getDefaultHarness(e.payload.adapterName,e.payload.clientId);e.setResult(t)}),this.registerHandler(_.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(_.getSchema,({setResult:e})=>{let{$schema:t,...n}=m.toJSONSchema(ke);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(p.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(p.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(p.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(p.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(p.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(p.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(Ee.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-${Ce(`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:T(be)},create:e=>new Et(e.bus)},Y=x(`session-storage`),X=x(`session-bridge`),Z=x(`session`),Ot=x(`session-orchestrator`),kt=x(`observed-session-ingestion`),Q=x(`tool-registry`),At=x(`tool-approval`),jt=x(`tray-menu`),Mt=x(`model-registry`),Nt=x(`workflow-block-registry`),Pt=x(`transition-pipeline`),Ft=x(`filesystem`),It=x(`git`),Lt=x(`artifact-lifecycle-hook-registry`),Rt=x(`facet-namespace-registry`),zt={name:Lt.name,displayName:`Artifact Lifecycle Hook Registry`,version:`0.1.0`,critical:!0,create:e=>new P(e.bus)},Bt={name:Rt.name,displayName:`Facet Namespace Registry`,version:`0.1.0`,critical:!0,create:e=>new I(e.bus)},$={name:Y.name,displayName:`Session Storage`,version:`0.1.0`,critical:!0,storage:{registerHandlers:T((n,i)=>{let s=[],d=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(ne(n,i)),s.push(e(n,i)),s.push(ee(n,i)),s.push(a(n,i)),s.push(t(n,i)),s.push(o(n,i)),s.push(r(n,i)),s.push(u(n,i)),s.push(l(n,i)),s.push(c(n,i)),s.push(te(n)),s.push(ae(n)),s.push(re(n))}catch(e){throw d(`rollback`),e}return()=>{d(`shutdown`)}})}},Vt={name:X.name,displayName:`Session Bridge`,version:`0.1.0`,dependencies:[b(Y.name)],critical:!0,create:e=>new i(e.bus)},Ht={name:Z.name,displayName:`Session`,version:`0.1.0`,dependencies:[b(X.name)],critical:!0,create:e=>new ie(e.bus,{machineId:e.machineId,topology:`shared-machine`})},Ut={name:Ot.name,displayName:`Session Orchestrator`,version:`0.1.0`,dependencies:[b(Z.name),b(B.name)],critical:!0,runtimeOwnership:{sessionOrchestrator:!0},create:e=>new s(e.bus,e.machineId)},Wt={name:kt.name,displayName:`Observed-Session Ingestion`,version:`0.1.0`,dependencies:[b(X.name)],critical:!1,create:e=>new d(e.bus)};function Gt(e={}){return{name:Q.name,displayName:`Tool Registry`,version:`0.1.0`,critical:!0,create:t=>new G({...e,bus:t.bus})}}const Kt=Gt();function qt(e={}){return{name:At.name,displayName:`Tool Approval`,version:`0.1.0`,dependencies:[b(Q.name)],critical:!0,create:t=>new ve(t.bus,e)}}const Jt=qt(),Yt={name:jt.name,displayName:`Tray Menu`,version:`0.1.0`,critical:!0,create:e=>new ye(e.bus)},Xt={name:Nt.name,displayName:`Workflow Block Registry`,version:`0.1.0`,critical:!0,create:e=>new nt(e.bus)},Zt={name:Pt.name,displayName:`Transition Pipeline`,version:`0.1.0`,critical:!0,create:e=>new ut(e.bus)},Qt={name:Ft.name,displayName:`Filesystem`,version:`0.1.0`,critical:!0,create:e=>new Se(e.bus,e.machineId)},$t={name:It.name,displayName:`Git`,version:`0.1.0`,dependencies:[b(Ft.name)],critical:!0,create:e=>new Ue(e.bus)};function en(e){return{name:Mt.name,displayName:`Model Registry`,version:`0.1.0`,critical:!0,create:t=>new pe({bus:t.bus,fetcher:e})}}const tn=rn(Kt,Jt);function nn(e={}){return e.fileAccessRuleProvider?rn(Gt(e),qt(e)):tn}function rn(e,t){return[se,zt,Bt,le,de,ce,ue,$,Vt,Ct,Ht,Ut,Wt,xe,e,t,Yt,fe,Dt,B,wt,Xt,W,ge,he,_e,Zt,$t,Qt]}export{K as A,I as B,Kt as C,ut as D,Xt as E,V as F,j as H,B as I,z as L,G as M,U as N,lt as O,W as P,R,Jt as S,Yt as T,P as V,tn as _,Ot as a,Ht as b,At as c,jt as d,Nt as f,Bt as g,en as h,X as i,nt as j,ct as k,Q as l,nn as m,Rt as n,Y as o,zt as p,Mt as r,Z as s,Lt as t,Pt as u,Vt as v,Zt as w,$ as x,Ut as y,L as 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-BZuv8Isw.mjs";import{t as i}from"../quick-lru-BgvUj18f.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-GD8gVf9J.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};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e,t}from"./schema-
|
|
1
|
+
import{n as e,t}from"./schema-CdUStsjr.mjs";import{i as n,n as r,r as i}from"./namespace-D-_gP6_l.mjs";import{TurnStorageSubjects as a}from"./services/turn/namespace.mjs";import{a as o,n as s}from"./ownership-recovery-guard-C00rcqvz.mjs";import{SessionStorageSubjects as c}from"./services/session/storage/namespace.mjs";import{AdapterRuntimeSubjects as l}from"./services/adapter-runtime/namespace.mjs";import{r as u}from"./namespace-DaFbUCqO.mjs";import{ProviderStorageSubjects as d}from"./services/settings/storage/providers-namespace.mjs";import{ExecutionTargetSubjects as f}from"./services/execution-target/namespace.mjs";import{MessageStorageSubjects as p}from"./services/session/messages/namespace.mjs";import{a as m,o as h}from"./provider-context-DHS1LRQA.mjs";import"./services/session/turns/namespace.mjs";import{n as g}from"./identity-DBdzjf61.mjs";import{n as _,t as v}from"./attach-error-mkj6SVd2.mjs";import{ExtractedContextSchema as ee}from"./services/compression/schemas.mjs";import{PreferencesSubjects as te}from"./services/preferences/storage-namespace.mjs";import{AdapterSubjects as y,AgentResolutionSubjects as b,AgentSubjects as x,ProviderContextSchema as S,SessionOwnershipStorageSubjects as C,SessionSubjects as w,TurnInitiatorSchema as ne,TurnUsageSchema as re,normalizeSessionOwnershipReserveStartServiceRequest as ie,resolveResumableAdapterSessionId as ae,teardownWasObserved as oe}from"@makaio/framework/contracts";import{defineDialectSchema as se,getRawSqlExecutor as ce,getStorageEngine as le,resolveSchema as T}from"@makaio/framework/storage/drizzle";import{and as E,asc as D,desc as ue,eq as O,gt as de,inArray as fe,lt as pe,sql as k}from"drizzle-orm";import{HookAbortError as me}from"@makaio/framework/hooks";import{AdapterRuntimeSubjects as he}from"@makaio/framework/services/adapter-runtime";import{resolveRuntimeProviderContext as ge}from"@makaio/framework/services/provider-context";function _e(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 ve(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 ye(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 be(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 xe(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 Se(e){let t=new Map,n=new Map,r=1,i=[_e(e,t,n,()=>r++),ve(e,t,n),ye(e,t),be(e,t,n),xe(e,t)];return()=>i.forEach(e=>e())}const Ce=n.postgres,we=se({sessionEvents:i},{sessionEvents:Ce}),Te=[`sessionId`,`agentId`,`adapterId`,`messageId`,`turnId`];function Ee(e){let t=e.payload,n={};for(let[e,r]of Object.entries(t))Te.includes(e)||(n[e]=r);return n}function De(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 Oe(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
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 ke(e.payload)}}function ke(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 Ae({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:Oe(r),payload:JSON.stringify(Ee(r))};await t.insert(n).values(u).onConflictDoNothing(),e.setResult({success:!0})})}function je({bus:e,db:t,sessionEvents:n}){return e.on(r.getEvents,async e=>{let{sessionId:r,options:i}=e.payload,a=[O(n.sessionId,r)],o=i?.order??`asc`;if(i?.after){let e=parseInt(i.after,10);!isNaN(e)&&e>0&&(o===`desc`?a.push(pe(n.id,e)):a.push(de(n.id,e)))}i?.types&&i.types.length>0&&a.push(fe(n.type,i.types));let s=i?.limit??100,c=o===`desc`?ue:D,l=await t.select().from(n).where(E(...a)).orderBy(c(n.id)).limit(s+1),u=l.length>s,d=u?l.slice(0,s):l,f=d.map(De),p=u&&d.length>0?d[d.length-1].id.toString():null;e.setResult({events:f,nextCursor:p})})}function Me({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(E(O(n.sessionId,r),fe(n.eventId,i))).orderBy(D(n.timestamp))).map(De);e.setResult({events:a})})}function Ne({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(O(n.sessionId,r))).length;await t.delete(n).where(O(n.sessionId,r)),e.setResult({success:!0,deletedCount:i})})}function Pe({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(E(O(n.sessionId,e),fe(n.type,i))).orderBy(ue(n.timestamp)).limit(a);r.length>0&&(o[e]=r.map(De))}e.setResult({eventsBySession:o})})}function Fe(e,t){let{sessionEvents:n}=T(t,we),r={bus:e,db:t,sessionEvents:n},i=[Ae(r),je(r),Me(r),Ne(r),Pe(r)];return()=>i.forEach(e=>e())}async function A(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 Ie(e,t){await A(e,{type:`turn.started`,sessionId:t.sessionId,eventId:`turn.started:${t.turnId}`,payload:t});try{await e.emit(w.turn.started,t)}catch(e){console.error(`[SessionLifecycle] Failed to emit turn.started for turn ${t.turnId}:`,e)}}async function Le(e,t){try{await e.emit(w.user_message.sent,t)}catch(e){console.error(`[SessionLifecycle] Failed to emit user_message.sent for turn ${t.turnId}:`,e)}}function Re(e,t){let n=[e.on(w.agent.added,async n=>{await ze(e,{type:`agent.added`,sessionId:n.payload.sessionId,payload:n.payload},t)}),e.on(w.branch.created,async n=>{await ze(e,{type:`branch.created`,sessionId:n.payload.sessionId,payload:n.payload},t)})];return()=>{for(let e of n)e()}}async function ze(e,t,n){try{await A(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 j(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 A(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(w.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 Be(e,t){let n=await M(e,t.sessionId);if(n===null)return{outcome:`not-found`};let r=await He(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(c.update,{sessionId:i.sessionId,status:`active`,expectedStatus:[`closed`]});return!a.handled||!a.data.success?Ve(e,i.sessionId):(await e.bus.emit(w.updated,{sessionId:i.sessionId,changedProperties:[`status`]}),{outcome:`reopened`,sessionId:i.sessionId})}async function Ve(e,t){return await M(e,t)===null?{outcome:`not-found`}:{outcome:`unchanged`,sessionId:t}}async function M(e,t){let n=await e.bus.requestOptional(c.get,{sessionId:t});return n.handled?n.data.session:null}async function He(e,t){if(t.branchKind!==`compress`)return{kind:`root`,session:t};if(t.rootSessionId!==void 0){let n=await M(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 M(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 Ue(e,t,n){let r=await Ke(e,n.agentId);return r===Ge?null:r===null?`agent-gone`:r.status===`disposed`?`agent-disposed`:await We(e,n)?`owner-instance-retired`:t===`machine-exclusive`?await qe(e,n.adapterId)?null:`adapter-instance-gone`:null}async function We(e,t){if(t.ownerInstanceId===null)return!1;try{let n=await e.requestOptional(C.getRuntimeInstance,{instanceId:t.ownerInstanceId,machineId:t.machineId});return n.handled&&n.data.instance!==null&&n.data.instance.retiredAt!==null}catch{return!1}}const Ge=Symbol(`inconclusive`);async function Ke(e,t){try{let n=await e.requestOptional(o.get,{agentId:t});return n.handled?n.data.agent:Ge}catch{return Ge}}async function qe(e,t){try{return(await e.requestOptional(y.listAgents,{adapterId:t})).handled}catch{return!1}}async function Je(e){let{machineId:t}=e;if(t===void 0)return{outcome:`skipped`,reason:`machine-identity-unavailable`};let n=await e.bus.requestOptional(C.listClaims,{machineId:t});if(!n.handled)return{outcome:`reconciled`,machineId:t,claims:[]};let r=[];for(let t of n.data.claims){let n=await Ue(e.bus,e.topology,t);if(n===null){r.push({claim:t,verdict:`retained`});continue}let i=await e.bus.request(C.release,{agentId:t.agentId,claimToken:t.claimToken,disposition:`abandoned`});r.push({...Ye(t,i),reason:n})}return{outcome:`reconciled`,machineId:t,claims:r}}function Ye(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 Xe(e,t){let n=await e.bus.requestOptional(C.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 N(){return crypto.randomUUID()}const Ze={machineId:`keyless-designation`,adapterId:`keyless-designation`,adapterName:`keyless-designation`};async function Qe(e,t){let n=await e.requestOptional(C.claim,{...Ze,providerSessionId:null,sessionId:t.sessionId,agentId:t.agentId,claimToken:N(),designateLead:{expectedLeadAgentId:t.expectedLeadAgentId,...t.clear===!0&&{clear:!0},...t.restore===!0&&{restore:!0}}});return n.handled?n.data:void 0}function $e(e,t){return t??e.machineId}function et(e,t,n,r){return{machineId:n,adapterId:t.adapterId,adapterName:t.adapterName,providerSessionId:t.resumeProviderSessionId,sessionId:t.sessionId,agentId:t.agentId,claimToken:t.claimToken,topology:e.topology,...t.recoveryGuard!==void 0&&{recoveryGuard:t.recoveryGuard},...t.recoveryAttemptId!==void 0&&{recoveryAttemptId:t.recoveryAttemptId},...!r||t.recoveryGuard!==void 0?{ownerInstance:{instanceId:t.ownerInstanceId}}:{},...t.role===`lead`&&{designateLead:{expectedLeadAgentId:t.expectedLeadAgentId??null}}}}async function tt(e,t){let n=ie(t);if(n.ownerInstanceId!==e.instanceId)throw Error(`reserveStart routed to owner ${e.instanceId} for target ${n.ownerInstanceId}`);let r=$e(e,n.machineId),i=n.resumeProviderSessionId===null;if(r===void 0&&!i)return{outcome:`machine-identity-unavailable`};let a=et(e,n,r??Ze.machineId,i),o=await e.bus.request(C.claim,a);switch(o.outcome){case`claimed`:case`idempotent`:{let e={agentId:n.agentId,sessionId:n.sessionId,adapterId:n.adapterId,ownerInstanceId:n.ownerInstanceId,leadDesignated:o.leadDesignated,previousLeadAgentId:o.previousLeadAgentId,...o.recovery!==void 0&&{recovery:o.recovery}};if(o.claim===null)return{outcome:`reserved`,reservation:{...e,...r!==void 0&&{machineId:r},claim:null}};if(r===void 0)throw Error(`A keyed ownership claim was returned without a resolved machine identity`);return{outcome:`reserved`,reservation:{...e,machineId:r,claim:o.claim}}}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`session-not-active`:return{outcome:`session-not-active`,status:o.status};case`not-found`:return{outcome:`not-found`,missing:o.missing};case`currency-changed`:case`recovery-conflict`:return o}}function nt(e,t){return e.confirmed?{kind:`confirmed`,providerSessionId:e.providerSessionId,claimToken:t}:{kind:`demote`,claimToken:t}}async function rt(e,t){if(t.ownerInstanceId!==e.instanceId)throw Error(`settleMovement routed to owner ${e.instanceId} for target ${t.ownerInstanceId}`);let n=$e(e,t.machineId);if(n===void 0)return{outcome:`machine-identity-unavailable`};let r=t.claimToken??N();for(let i=0;;i+=1){let{ownership:a}=await e.bus.request(C.read,{agentId:t.agentId});if(a===null)return{outcome:`not-found`};let o=await e.bus.request(C.settleMovement,{machineId:n,adapterId:t.adapterId,adapterName:t.adapterName,sessionId:t.sessionId,agentId:t.agentId,expectedRevision:a.revision,movement:nt(t.movement,r),ownerInstance:{instanceId:t.ownerInstanceId},topology:e.topology});if(o.outcome!==`currency-changed`||i>=1)return o}}var it=class extends Error{constructor(){super(`The session ownership authority is closed`),this.name=`OwnershipAuthorityClosedError`}},at=class{closed=!1;active=new Set;drainWaiters=[];async run(e){if(this.closed)throw new it;let t=Symbol(`ownership-operation`);this.active.add(t);try{return await e()}finally{if(this.active.delete(t),this.closed&&this.active.size===0){let e=this.drainWaiters;this.drainWaiters=[];for(let t of e)t()}}}close(){this.closed=!0}drain(){return this.active.size===0?Promise.resolve():new Promise(e=>this.drainWaiters.push(e))}};function ot(e){let{bus:t}=e,n={...e,instanceId:e.instanceId??crypto.randomUUID()},r=new at,i,a,o=[t.on(w.ownership.reserveStart,async e=>{e.setResult(await r.run(()=>tt(n,e.payload)))},{filter:{ownerInstanceId:n.instanceId}}),t.on(w.ownership.settleMovement,async e=>{e.setResult(await r.run(()=>rt(n,e.payload)))},{filter:{ownerInstanceId:n.instanceId}}),t.on(w.ownership.release,async e=>{e.setResult(await r.run(()=>Xe(n,e.payload)))}),t.on(w.ownership.reconcile,async e=>{e.setResult(await r.run(()=>Je(n)))}),t.on(w.ownership.continuation,async e=>{e.setResult(await r.run(()=>Be(n,e.payload)))})],s=t.on(l.teardownCompleted,e=>{i=e.payload.evidence},{filter:{ownerInstanceId:n.instanceId}}),c=!1,u=()=>{if(!c){c=!0;for(let e=o.length-1;e>=0;--e)o[e]?.()}},d={instanceId:n.instanceId,close:()=>a===void 0?(r.close(),u(),a=(async()=>{await r.drain(),!(i===void 0||!oe(i))&&await t.requestOptional(C.retireInstance,{instanceId:n.instanceId})})(),a):a};return{cleanups:[u,s],ownership:d}}const P=new Map;function st(e,t){let n=(P.get(e)??Promise.resolve()).then(t),r=n.then(()=>void 0,()=>void 0);return P.set(e,r),r.then(()=>{P.get(e)===r&&P.delete(e)}),n}function ct(e){return e.on(x.adapterSession.moved,async t=>{let{agentId:n,adapterId:r,adapterName:i,machineId:a,ownerInstanceId:o,sessionId:s,adapterSessionId:c,confirmed:l}=t.payload;if(s===void 0||l!==(c!==void 0))return;let u=c===void 0?{confirmed:!1}:{confirmed:!0,providerSessionId:c};await st(n,async()=>{await lt(e,{agentId:n,adapterId:r,adapterName:i,machineId:a,ownerInstanceId:o,sessionId:s},u)})})}var F=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 lt(e,t,n){let r;try{let i=await e.requestOptional(o.get,{agentId:t.agentId}),a=i.handled?i.data.agent:null;if(a===null)throw new F(t.agentId,`agent-row-unreadable`);if(a.adapterName!==t.adapterName||a.adapterId!==t.adapterId)throw new F(t.agentId,`adapter-mismatch`);if(a.runtimeOwner===void 0||a.runtimeOwner.machineId!==t.machineId||a.runtimeOwner.instanceId!==t.ownerInstanceId)throw new F(t.agentId,`runtime-owner-mismatch`);let s=await e.requestOptional(w.ownership.settleMovement,{sessionId:t.sessionId,agentId:t.agentId,adapterId:t.adapterId,adapterName:t.adapterName,ownerInstanceId:t.ownerInstanceId,machineId:t.machineId,movement:n});if(!s.handled)throw new F(t.agentId,`authority-unavailable`);if(s.data.outcome===`settled`||s.data.outcome===`idempotent`)return;r=s.data.outcome}catch(e){throw e instanceof F?e:new F(t.agentId,`settle-failed`,{cause:e})}throw new F(t.agentId,r)}const I=new Map;function ut(e,t){let n=I.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{I.get(e)===a&&I.delete(e)}})();return a={settled:o},I.set(e,a),r(),{joined:!1,settled:o}}function dt(e){return I.get(e)}function ft(e,t){return t?.hasNewTransforms===!0||e.forkTransforms!==void 0}function pt(e,t){return e.adapterName!==void 0&&t!==e.adapterName}function mt(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 ht(e){let{session:t,sessionContext:n}=e;return e.adapterSupportsNative?pt(t,e.targetAdapterName)?{kind:`degrade`,reason:`adapter-mismatch`}:mt(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`}:ft(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 gt=Object.freeze({kind:`fresh-with-history`});function _t(e,t){return e.kind!==`native`||t===void 0?gt:{kind:`native-resume`,resumeAdapterSessionId:t}}function vt(e){return e.kind===`native-resume`?e.resumeAdapterSessionId:void 0}function yt(e){return e.kind===`fresh-with-history`}function bt(e){return{adapterSessionId:e.adapterSessionId??null,currentAdapterSessionId:e.currentAdapterSessionId??null,currentAdapterSessionIdState:e.currentAdapterSessionIdState??`inherited`}}function xt(e){return{adapterSessionId:ae(e)??void 0,movedUnconfirmed:e.currentAdapterSessionIdState===`moved`}}function L(e){return xt(bt(e))}function St(e,t){return(t.currencyFence??0)>0?xt(bt(t)):e.leadAgentId===t.agentId||e.leadAgentId===void 0&&e.isImported===!0?L(e):xt(bt(t))}async function Ct(e,t,n){let{adapterId:r}=await e.request(l.resolveId,{adapterName:t,...n!==void 0&&{machineId:n}});return r}function R(e){if(!(e===void 0||e.machineId===void 0||e.machineId.length===0||e.ownerInstanceId===void 0||e.ownerInstanceId.length===0))return{adapterId:e.adapterId,machineId:e.machineId,ownerInstanceId:e.ownerInstanceId}}async function wt(e,t){try{let n=await e.request(l.resolveLiveIdentity,t);return{adapterId:n.adapterId,machineId:n.machineId,ownerInstanceId:n.ownerInstanceId}}catch(e){console.debug(`[resolveAnnouncedAdapterInstance] adapter ${t.adapterId} is not live as ${t.adapterName} on ${t.machineId}:`,e);return}}async function z(e,t){let{adapterName:n,adapterId:r,machineId:i,storedAdapterId:a}=t;if(r!==void 0)return i===void 0?void 0:await wt(e,{adapterId:r,adapterName:n,machineId:i});let o=await Ct(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}:await wt(e,{adapterId:o,adapterName:n,machineId:i})}async function Tt(e,t,n){if(!(!t||!n))try{let{config:r}=await e.request(u.getProviderConfig,{id:t});if(!r)return;let{provider:i}=await e.request(d.get,{id:r.definitionId}),a=i?.availableModels?.find(e=>e.name===n);return a?{supportedReasoningLevels:a.supportedReasoningLevels}:void 0}catch{return}}async function Et(e,t){let{executionTarget:n}=await e.request(f.resolve,t);return n}async function Dt(e,t){let{instance:n}=t;return e.request(w.ownership.reserveStart,{sessionId:t.sessionId,agentId:t.agentId,adapterId:n.adapterId,adapterName:t.adapterName,ownerInstanceId:n.ownerInstanceId,role:t.role,resumeProviderSessionId:t.resumeProviderSessionId,claimToken:t.claimToken,...t.recoveryGuard!==void 0&&{recoveryGuard:t.recoveryGuard},...t.recoveryAttemptId!==void 0&&{recoveryAttemptId:t.recoveryAttemptId},...t.role===`lead`&&{expectedLeadAgentId:t.expectedLeadAgentId},...n.machineId!==void 0&&{machineId:n.machineId}})}var B=class extends Error{code;deferredAgentIds;sessionStatus;constructor(e,t,n,r,i){super(t,{cause:n}),this.code=e,this.name=`SessionStartError`,r!==void 0&&(this.deferredAgentIds=r),i!==void 0&&(this.sessionStatus=i)}},Ot=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 kt(e,t,n,r){try{await e.requestOptional(w.ownership.release,{agentId:t,disposition:n,claimToken:r})}catch(e){console.debug(`[session.start] release for agent ${t} failed:`,e)}}async function At(e,t,n,r){for(let i of r.toArray())await kt(e,t,n,i)}async function jt(e,t){let n=t.previousLeadAgentId,r=await Qe(e,{sessionId:t.sessionId,agentId:n??t.agentId,expectedLeadAgentId:t.agentId,...n===null&&{clear:!0},...n!==null&&{restore:!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 Mt(e,t){if(t!==void 0)try{if(!t.leadDesignated)return;await jt(e,t)}catch(e){console.debug(`[session.start] clearing the designation of agent ${t.agentId} failed:`,e)}}async function Nt(e,t){if(t!==void 0)try{await jt(e,{sessionId:t.sessionId,agentId:t.agentId,previousLeadAgentId:t.transition===`replace`?t.expectedLeadAgentId:null})}catch(e){console.debug(`[session.start] clearing uncertain designation of agent ${t.agentId} failed:`,e)}}async function V(e,t,n,r){n!==void 0&&(n.claim!==null&&await kt(e,t,`released`,n.claim.claimToken),await Mt(e,n)),await Nt(e,r);try{let n=await e.requestOptional(o.delete,{agentId:t});return{rowDeleted:n.handled&&n.data.success?!0:await Pt(e,t)}}catch(n){return console.debug(`[session.start] deleting agent ${t} during rollback failed:`,n),{rowDeleted:await Pt(e,t)}}}async function Pt(e,t){try{let n=await e.requestOptional(o.get,{agentId:t});return n.handled&&n.data.agent===null}catch(e){return console.debug(`[session.start] verifying rollback deletion of agent ${t} failed:`,e),!1}}async function H(e,t,n,r){await It(e,t,`abandoned`,n,r)}async function Ft(e,t,n,r){await It(e,t,`released`,n,r)}async function It(e,t,n,r,i){await At(e,t,n,i),await Mt(e,r.reservation),r.writesAgentStatus&&await Lt(e,t)}async function Lt(e,t){try{await e.requestOptional(o.updateStatus,{agentId:t,status:`dead`,expectedStatus:[`starting`]})}catch(e){console.debug(`[session.start] marking agent ${t} dead failed:`,e)}}function Rt(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 U(e,t,n,r,i=!1){try{await e.requestOptional(y.stopAgent,{adapterId:t,agentId:n,ownerInstanceId:r,...i&&{teardown:`connector-only`}})}catch(e){console.debug(`[session.start] stopping agent ${n} failed:`,e)}}async function zt(e,t,n,r,i,a,o){o.record(i);let s=Rt(i.outcome);if(s!==void 0)throw s.disposition!==null&&await At(e,n,s.disposition,o),await Mt(e,a.reservation),s.stopConnector&&await U(e,t,n,r,a.connectorOnlyTeardown),s.markDead&&a.writesAgentStatus&&await Lt(e,n),new B(s.code,`[session.start] settlement for agent ${n} was refused: ${i.outcome}`)}function Bt(e){return typeof e==`string`?e:(Array.isArray(e.blocks)?e.blocks:[e.blocks]).filter(e=>e.type===`text`).map(e=>e.content).join(`
|
|
3
3
|
`)}function Vt(e){return e}function Ht(e){return typeof e==`string`?[{type:`text`,content:e}]:(Array.isArray(e.blocks)?e.blocks:[e.blocks]).map(Vt)}async function Ut(e,t,n,r,i){let{session:a}=await e.request(w.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(w.create,{sessionId:t,originWindowId:r,...i!==void 0&&{machineId:i}});let{session:o}=await e.request(w.get,{sessionId:t});if(!o)throw Error(`[getOrCreateSession] Failed to create session: ${t}`);return{sessionId:t,session:o}}function Wt(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 Gt(e,t){for(let n of e.values())if(n.hasAgent(t))return n}function Kt(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 qt(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(p.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 W=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 Jt(e,t,n){let r=e,i,a;for(let e of t){let t=W.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 Yt(e){return e.map(e=>({...e,blocks:e.blocks.filter(e=>e.type!==`reasoning`)}))}const Xt={id:`strip-reasoning`,label:`Strip Reasoning`,description:`Remove reasoning/thinking blocks from messages`,category:`transformation`,async execute(e){return{kind:`messages`,messages:Yt(e)}}};function Zt(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 Qt={id:`strip-tool-outputs`,label:`Strip Tool Outputs`,description:`Remove tool output contents, keep structure`,category:`transformation`,async execute(e){return{kind:`messages`,messages:Zt(e)}}};async function G(e,t){let n=[],r=[],i=[],a=!1,o=!1,s=!1,l=[],u,d=t,f;for(;d;){let n=await e.request(c.get,{sessionId:d});if(!n.session){s=!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:s}=l[t],c=t===l.length-1,u=l[t+1]?.forkPointMessageId;n.push(s);let d=await qt(e,{sessionId:s});if(d.hasSquashBoundary&&(a=!0,c||(r.length=0)),d.truncated&&(o=!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 $t(r,u)),{messages:[...r,...i],hasSquashBoundary:a,sessionChain:n,truncated:o,incomplete:s}}async function $t(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 tn(e,t.segments);let o=e.slice(0,i),s=e.slice(i,a+1),c=e.slice(a+1),l=tn(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 Jt(n,t.appliedPipeline)).messages),n}function en(e,t){let n=e;return t.stripReasoning&&(n=Yt(n)),t.stripToolOutputs&&(n=Zt(n)),n}function tn(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=en(s,i),r.push(...s)}return r}function K(e){return{role:e.role,blocks:e.blocks}}async function nn(e,t){return{messageHistory:(await G(e,t.sessionId)).messages.map(K),isFirstTurn:!0}}async function rn(e,t,n){if(yt(n))return nn(e,t)}function an(e){return ae(e.guard.expectedCurrency)}function q(e){return e.agent.status===`idle`||e.agent.status===`active`||e.agent.status===`dead`}async function J(e,t){let n=await e.requestOptional(o.get,{agentId:t}),r=n.handled?n.data.agent:null;if(r===null)return null;let i=await e.requestOptional(C.read,{agentId:t}),a=i.handled?i.data.ownership:null;if(a===null)return null;let{currency:s}=a,c={...r,adapterSessionId:s.adapterSessionId??void 0,currentAdapterSessionId:s.currentAdapterSessionId??void 0,currentAdapterSessionIdState:s.currentAdapterSessionIdState,revision:a.revision,currencyFence:a.currencyFence};return{agent:c,guard:{expectedStatus:c.status,expectedPreimage:{status:c.status,adapterId:c.adapterId,...c.runtimeOwner===void 0?{}:{binding:{adapterId:c.adapterId,ownerMachineId:c.runtimeOwner.machineId,ownerInstanceId:c.runtimeOwner.instanceId}},...c.recoveryAttemptId===void 0?{}:{recoveryAttemptId:c.recoveryAttemptId}},expectedRevision:a.revision,expectedCurrencyFence:a.currencyFence,expectedCurrency:s}}}async function on(e,t,n,r){if(n.machineId===void 0||r===null)return{...t.guard,ownerGeneration:null};let i=await e.request(C.listClaims,{machineId:n.machineId,adapterId:n.adapterId,providerSessionId:r});return{...t.guard,ownerGeneration:s(i.claims[0]??null)}}async function sn(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 cn(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 ln(e,t,n){let r=[],i=new Set,a=new Set;for(let o of t){if(o.runtimeOwner===void 0){a.add(o.agentId);continue}let t=await e.requestOptional(y.getAgent,{adapterId:o.adapterId,ownerInstanceId:o.runtimeOwner.instanceId,agentId:o.agentId});if(t.handled&&t.data.agent!==null){o.status===`dead`&&await Gn(e,o.agentId),r.push(o);continue}let s=await dn(e,o,n);if(s.kind===`deferred`){a.add(o.agentId);continue}r.push(s.agent),i.add(s.agent.agentId)}return{usable:r,recoveredAgentIds:i,deferredAgentIds:a}}async function un(e,t,n){let r=await G(e,t.sessionId),i=n?.pipeline??[];return{messageHistory:(i.length>0?(await Jt(r.messages,i)).messages:r.messages).map(K),isFirstTurn:!0}}async function dn(e,t,n){for(let r=0;r<=1;r+=1){let i=await $n(e,t,()=>fn(e,t,n));if(!(i?.kind===`stale-plan`&&r<1))return pn(t,i)}return pn(t,{kind:`stale-plan`})}async function fn(e,t,n){let r=await J(e,t.agentId);if(r===null||!q(r))return{kind:`lost`};let i=vt(n.plan),a=i===void 0?null:an(r);if(a===null&&i!==void 0)return{kind:`stale-plan`};Object.assign(t,r.agent);let o=R(await z(e,{adapterName:t.adapterName,...t.runtimeOwner===void 0?{storedAdapterId:t.adapterId,...n.machineId!==void 0&&{machineId:n.machineId}}:{adapterId:t.adapterId,machineId:t.runtimeOwner.machineId}}));return o===void 0?{kind:`deferred`,reason:`machine-identity-unavailable`}:{agent:t,sessionId:t.sessionId,instance:o,resumeProviderSessionId:a,recoveryGuard:await on(e,r,o,a),...n.cwd!==void 0&&{cwd:n.cwd},...(n.model??t.model)!==void 0&&{model:n.model??t.model}}}function pn(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 Pn(e.agentId,t)}}function mn(e){if(e instanceof me)return e;if(e instanceof Error&&e.cause instanceof me)return e.cause}async function hn(e,t){try{await e.emit(w.user_message.acknowledged,t)}catch(e){console.error(`[SessionRouting] Failed to emit user-message acknowledgement:`,e)}}async function gn(e,t,n,r){await e.emit(w.turn.assistantPersistenceSettled,{sessionId:t.sessionId,turnId:t.turnId,messageId:n,agentId:r})}async function _n(e){let{bus:t,turn:n,messageId:r,agentId:i,outcome:a,error:o,onTurnComplete:s,turnManager:c}=e;try{await gn(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 vn(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 hn(e,{sessionId:a.sessionId,turnId:a.turnId,turnNumber:a.turnNumber,messageId:i,agentId:n.agentId}),{agentId:n.agentId,kind:`dispatched`}}catch(t){if(mn(t)!==void 0)return await _n({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 _n({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 yn(e,t){let{session:n}=await e.request(w.get,{sessionId:t});if(n?.status===`active`)return;let r=n?.status===`closed`||n?.status===`archived`||n?.status===`discovered`?n.status:void 0;throw new B(`session-not-active`,`[attach-handler] Session is no longer active after agent startup: ${t}`,void 0,void 0,r)}async function bn(e,t,n,r,i,a,o,s,c){try{return await Sn(e,t,n,i,a,o,s,c)}catch(e){throw console.error(`[attach-handler] Failed to set up initial-message turn`,{sessionId:i,agentId:a,adapterId:r.adapterId,error:e}),e}}async function xn(e,t,n,r,i,a,o,s,c,l){l?.();let u=await bn(e,t,n,r,i.sessionId,r.agentId,crypto.randomUUID(),a,s),d;try{d=await vn(e,i,[{agentId:r.agentId,adapterId:r.adapterId}],a,u.messageId,u.turn,void 0,t.completeTurn.bind(t),t,c,o,l)}catch(e){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 e}let f=d[0];if(!f||f.kind===`dispatched`)return{messageId:u.messageId,turnId:u.turn.turnId};throw f.error}async function Sn(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(p.append,{message:{messageId:a,turnId:c.turnId,sessionId:r,role:`user`,contentText:Bt(o),blocks:Ht(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 Cn(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 Cn(e,t,n,r,i,a){await Ie(e,{sessionId:t,turnId:n.turnId,turnNumber:n.turnNumber,messageId:r,agentIds:[...n.agentIds],initiator:n.initiator,ingestionMarker:`live`}),await Le(e,{sessionId:t,turnId:n.turnId,turnNumber:n.turnNumber,messageId:r,content:i,agentIds:[...n.agentIds],source:a})}async function wn(e,t){try{let n=await e.requestOptional(o.get,{agentId:t});if(!n.handled)return!1;let r=n.data.agent;return r===null||r.status===`disposed`}catch(e){return console.debug(`[session.start] re-reading agent ${t} during failure cleanup failed:`,e),!1}}async function Tn(e,t,n,r,i,a=!1){let o;try{o=await Dn(e,t,n)}catch(n){throw await kn(e,t,i,n)}o!==void 0&&await zt(e,t.adapterId,t.agentId,i,o,t.policy,t.claimTokens);try{await On(e,t,n,i),t.admitSessionBeforeFinalAdoption&&await yn(e,t.sessionId),await En(e,t,r,i,a)}catch(n){throw await kn(e,t,i,n)}}async function En(e,t,n,r,i=!1){if(n===void 0)throw Error(`[session.start] adapter omitted the settlement acknowledgement token for agent ${t.agentId}`);let a=await e.request(y.acknowledgeCallerSettlement,{adapterId:t.adapterId,ownerInstanceId:r,agentId:t.agentId,settlementAckToken:n,...i&&{recovery:!0}});if(!a.acknowledged)throw Error(`[session.start] adapter refused the settlement acknowledgement for agent ${t.agentId}: ${a.reason}`)}async function Dn(e,t,n){let{agentId:r,adapterId:i}=t;if(n!==void 0)return e.request(w.ownership.settleMovement,{sessionId:t.sessionId,agentId:r,adapterId:i,adapterName:t.adapterName,ownerInstanceId:t.ownerInstanceId,movement:{confirmed:!0,providerSessionId:n},...t.settlementClaimToken!==void 0&&{claimToken:t.settlementClaimToken},machineId:t.machineId})}async function On(e,t,n,r){let{agentId:i,providerConfigId:a,machineId:s}=t;if(!(await e.request(o.updateRuntime,{agentId:i,runtimeOwner:{machineId:s,instanceId:r},...n!==void 0&&{adapterSessionId:n},...a!==void 0&&{providerConfigId:a}})).success)throw Error(`[session.start] recording the origin session of agent ${i} was refused`)}async function kn(e,t,n,r){return An(e,{adapterId:t.adapterId,ownerInstanceId:n,agentId:t.agentId,attemptKind:`start`,policy:t.policy,claimTokens:t.claimTokens},r)}async function An(e,t,n){let{adapterId:r,ownerInstanceId:i,agentId:a,attemptKind:o,policy:s,claimTokens:c}=t;return await H(e,a,s,c),await U(e,r,a,i,s.connectorOnlyTeardown),await wn(e,a)?new B(`agent-unavailable`,`[session.start] agent ${a} was removed while its ${o} was completing`,n):n instanceof B&&n.code===`session-not-active`?n:new B(`settlement-unresolved`,`[session.start] completing the ${o} of agent ${a} did not resolve`,n)}async function jn(e,t){return e.request(y.rehydrateAgent,{adapterId:t.adapterId,ownerInstanceId:t.ownerInstanceId,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 Mn={writesAgentStatus:!1,connectorOnlyTeardown:!0},Nn={writesAgentStatus:!1};function Pn(e,t){return t===void 0?new B(`start-failed`,`[session.start] recovery of agent ${e} produced no result`):t.kind===`lost`?new B(`agent-unavailable`,`[session.start] agent ${e} was removed or claimed by another runtime while it was recovered`):t.kind===`stale-plan`?new B(`start-unresolved`,`[session.start] recovery plan for agent ${e} remained stale after its bounded retry`):new B(t.outcome===`session-not-active`?`session-not-active`:t.outcome===`agent-disposed`||t.outcome===`not-found`?`agent-unavailable`:`start-failed`,`[session.start] recovery of agent ${e} was refused: ${t.message??t.outcome}`,void 0,void 0,t.status)}async function Fn(e,t){if(R(t.instance)===void 0)return{kind:`deferred`,reason:`machine-identity-unavailable`};let{agent:n}=t;if(n.status===`disposed`)return{kind:`refused`,outcome:`agent-disposed`};if(t.recoveryGuard===void 0)throw Error(`[session.start] recovery of agent ${n.agentId} omitted its atomic recovery guard`);let r=await In(e,t);return r.kind===`settled`?r.outcome:Rn(e,t,r.reservation)}async function In(e,t){let{agent:n,instance:r,resumeProviderSessionId:i,sessionId:a}=t,o=t.recoveryGuard;if(o===void 0)throw Error(`[session.start] recovery of agent ${n.agentId} omitted its guard`);let s=N(),c=N(),l;try{l=await Dt(e,{sessionId:a,agentId:n.agentId,adapterName:n.adapterName,instance:r,role:`member`,resumeProviderSessionId:i,claimToken:s,recoveryGuard:o,recoveryAttemptId:c})}catch(r){throw await Ln(e,n.agentId,s),await Un(e,n.agentId,t.instance,c,o.expectedPreimage),r}return l.outcome===`reserved`?{kind:`reserved`,reservation:l.reservation}:l.outcome===`occupied`||l.outcome===`machine-identity-unavailable`?{kind:`settled`,outcome:{kind:`deferred`,reason:l.outcome}}:l.outcome===`currency-changed`?{kind:`settled`,outcome:{kind:`stale-plan`}}:l.outcome===`recovery-conflict`?{kind:`settled`,outcome:l.status===`disposed`?{kind:`refused`,outcome:`agent-disposed`}:{kind:`lost`}}:l.outcome===`session-not-active`?{kind:`settled`,outcome:{kind:`refused`,outcome:l.outcome,status:l.status}}:{kind:`settled`,outcome:{kind:`refused`,outcome:l.outcome}}}async function Ln(e,t,n){try{let r=await e.request(w.ownership.release,{agentId:t,claimToken:n,disposition:`released`});return r.releasedProviderSessionIds.length>0&&!r.claimTokenNotFound}catch{return!1}}async function Rn(e,t,n){let{agent:r,resumeProviderSessionId:i}=t,{adapterId:a}=t.instance,o=r.agentId,{ownerInstanceId:s}=n,c=Hn(n);if(c===void 0)throw Error(`[session.start] recovery reservation for agent ${o} omitted its terminal authority`);let l=N(),u=new Ot([n.claim?.claimToken,l]),d;try{d=await jn(e,{agentId:o,adapterId:a,ownerInstanceId:s,resumeProviderSessionId:i,callerOwnsAgentRow:!0,...t.cwd!==void 0&&{cwd:t.cwd},...t.model!==void 0&&{model:t.model}})}catch(t){throw await H(e,o,Mn,u),await Y(e,o,c,`failed`),await U(e,a,o,s,!0),t}if(!d.success)return await Ft(e,o,Nn,u),await Y(e,o,c,`rollback`),{kind:`refused`,outcome:`rehydrate-refused`,message:d.message};if(d.ownerInstanceId!==s)throw await Vn(e,a,o,u,Error(`Adapter owner mismatch for rehydrated agent ${o}: expected ${s}, received ${d.ownerInstanceId??`none`}`),s,c);let f=d.adapterSessionId??i;r.adapterId=a;let p;try{f!==null&&(p=await zn(e,t,f,l))}catch(t){throw await Vn(e,a,o,u,t,s,c)}if(p!==void 0)try{await zt(e,a,o,s,p,Mn,u)}catch(t){throw await Y(e,o,c,`failed`),t}try{return await Bn(e,t,d.settlementAckToken,s,c)}catch(t){throw await Vn(e,a,o,u,t,s,c)}}async function zn(e,t,n,r){let{agent:i,sessionId:a}=t,{adapterId:o,machineId:s}=t.instance;return e.request(w.ownership.settleMovement,{sessionId:a,agentId:i.agentId,adapterId:o,adapterName:i.adapterName,ownerInstanceId:t.instance.ownerInstanceId,movement:{confirmed:!0,providerSessionId:n},claimToken:r,...s!==void 0&&{machineId:s}})}async function Bn(e,t,n,r,i){let{agent:a,resumeProviderSessionId:o}=t,{adapterId:s}=t.instance;return await yn(e,t.sessionId),await En(e,{adapterId:s,agentId:a.agentId},n,r,!0),await Y(e,a.agentId,i,`succeeded`),{kind:`rehydrated`,agent:a,native:o!==null}}async function Vn(e,t,n,r,i,a,o){let s=await An(e,{adapterId:t,ownerInstanceId:a,agentId:n,attemptKind:`rehydrate`,policy:Mn,claimTokens:r},i);return await Y(e,n,o,`failed`),s}function Hn(e){if(!(e.recovery===void 0||e.machineId===void 0))return{...e.recovery,binding:{adapterId:e.adapterId,ownerMachineId:e.machineId,ownerInstanceId:e.ownerInstanceId}}}async function Y(e,t,n,r){if(n===void 0)return;let i=r===`rollback`?{kind:`rollback`,preimage:n.preimage}:{kind:r},a=await e.request(C.finalizeRecovery,{agentId:t,attemptId:n.attemptId,binding:n.binding,action:i});if(r===`succeeded`&&!a.applied)throw Error(`[session.start] recovery ${n.attemptId} for agent ${t} was superseded before ${r}`)}async function Un(e,t,n,r,i){await e.request(C.finalizeRecovery,{agentId:t,attemptId:r,binding:{adapterId:n.adapterId,ownerMachineId:n.machineId,ownerInstanceId:n.ownerInstanceId},action:{kind:`rollback`,preimage:i}})}function Wn(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 Gn(e,t){await e.requestOptional(o.updateStatus,{agentId:t,status:`idle`,expectedStatus:[`dead`]})}async function X(e,t,n){let r=await e.requestOptional(o.get,{agentId:t});return r.handled?r.data.agent:n}async function Kn(e,t){let n=t.runtimeOwner;if(n===void 0)return!1;try{let t=await e.requestOptional(C.getRuntimeInstance,{instanceId:n.instanceId,machineId:n.machineId});return t.handled&&t.data.instance!==null&&t.data.instance.retiredAt!==null}catch{return!1}}async function qn(e,t){let n=t,r=!1;for(let i=0;i<2;i+=1){let i=dt(t.agentId);if(i!==void 0)await i.settled.catch(()=>void 0),r=!0;else if(n=await X(e,t.agentId,n??t),n?.status===`starting`&&n.recoveryAttemptId!==void 0){let t=n.runtimeOwner;if(t===void 0||!await Kn(e,n))return{resolution:`defer`,row:n,arbitrated:!1,joined:r};await e.request(C.finalizeRecovery,{agentId:n.agentId,attemptId:n.recoveryAttemptId,binding:{adapterId:n.adapterId,ownerMachineId:t.machineId,ownerInstanceId:t.instanceId},action:{kind:`failed`}})}else{let i=await e.requestOptional(o.updateStatus,{agentId:t.agentId,status:`dead`,expectedStatus:[`starting`]});if(!i.handled||i.data.transitioned)return{resolution:`recover`,row:await X(e,t.agentId,n??t),arbitrated:!0,joined:r}}n=await X(e,t.agentId,n??t);let a=Wn(n);if(a!==void 0)return{resolution:a,row:n,arbitrated:!1,joined:r}}throw new B(`start-unresolved`,`[session.start] agent ${t.agentId} is still starting after joining and arbitrating its start`)}function Jn(e,t,n){let{resolution:r,row:i,arbitrated:a}=t;n.droppedAgentIds.delete(e),n.recoveringAgentIds.delete(e),n.deferredAgentIds.delete(e),n.arbitratedAgentIds.delete(e),r===`drop`&&n.droppedAgentIds.add(e),r===`recover`&&(n.recoveringAgentIds.add(e),a&&n.arbitratedAgentIds.add(e)),r===`defer`&&n.deferredAgentIds.add(e),i!==null&&n.refreshed.set(e,i)}function Yn(e,t,n){switch(Wn(t)){case`drop`:n.recoveringAgentIds.delete(e),n.deferredAgentIds.delete(e),n.arbitratedAgentIds.delete(e),n.droppedAgentIds.add(e);return;case`use`:n.droppedAgentIds.delete(e),n.recoveringAgentIds.delete(e),n.deferredAgentIds.delete(e),n.arbitratedAgentIds.delete(e),t!==null&&n.refreshed.set(e,t);return;case`recover`:n.droppedAgentIds.delete(e),n.deferredAgentIds.delete(e),t!==null&&n.refreshed.set(e,t);return;case void 0:throw Error(`[session.start] a starting sibling must be resolved before it is recorded`)}}async function Xn(e,t,n){let r=0;for(;;){let i=!1;for(let r of t.agents){let t=await X(e,r.agentId,r);if(t?.status===`starting`){let a=await qn(e,t);i||=a.joined,Jn(r.agentId,a,n)}else Yn(r.agentId,t,n)}if(!i)return;if(r+=1,r>2)throw new B(`start-unresolved`,`[session.start] session ${t.sessionId} did not stabilize after 2 joined refresh passes`)}}async function Zn(e,t){let n=new Set,r=new Set,i=new Set,a=new Set,o=new Map,s={droppedAgentIds:n,recoveringAgentIds:r,deferredAgentIds:i,arbitratedAgentIds:a,refreshed:o},c=!1;for(let n of t.agents){if(n.status!==`starting`)continue;let t=await qn(e,n);c||=t.joined,Jn(n.agentId,t,s)}return c&&await Xn(e,t,s),(n.size>0||o.size>0)&&(t.agents=t.agents.filter(e=>!n.has(e.agentId)).map(e=>o.get(e.agentId)??e)),{droppedAgentIds:n,recoveringAgentIds:r,deferredAgentIds:i,arbitratedAgentIds:a}}function Qn(e){return`resumeProviderSessionId`in e}async function $n(e,t,n){for(let r=0;r<=1;r+=1){let r,i=ut(t.agentId,async()=>{let t=await n();return r=Qn(t)?await Fn(e,t):t,r.kind===`rehydrated`?`connected`:`no-connector`});if(!i.joined)return await i.settled,r;let a=await er(e,t,i.settled);if(a!==`retry`)return a}throw new B(`start-unresolved`,`[session.start] recovery of agent ${t.agentId} did not resolve after joining and re-entering its start`)}async function er(e,t,n){let r,i=await n.catch(e=>(r={error:e},`no-connector`));if(r!==void 0)throw new B(`start-failed`,`[session.start] recovery of agent ${t.agentId} was joined from another attempt, which failed`,r.error);let a=await X(e,t.agentId,t);if(a!==null&&Object.assign(t,a),i===`no-connector`)return`retry`;switch(Wn(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`defer`:throw Error(`[session.start] joined-row classification returned an unsupported ownership deferral`);case void 0:return`retry`}}async function tr(e,t,n){let{agentId:r}=t;if(n.resumeProviderSessionId===null)return nr(r,await $n(e,t,async()=>{let i=await J(e,r);if(i===null||!q(i))return{kind:`lost`};Object.assign(t,i.agent);let a=R(await z(e,{adapterName:t.adapterName,storedAdapterId:t.adapterId,...n.machineId!==void 0&&{machineId:n.machineId}}));return a===void 0?{kind:`deferred`,reason:`machine-identity-unavailable`}:{agent:t,sessionId:t.sessionId,instance:a,resumeProviderSessionId:null,recoveryGuard:{...i.guard,ownerGeneration:null}}}));for(let i=0;i<=1;i+=1){let a=await $n(e,t,async()=>{let i=await J(e,r);if(i===null||!q(i))return{kind:`lost`};let a=an(i);if(a===null)return{kind:`stale-plan`};Object.assign(t,i.agent);let o=R(await z(e,{adapterName:t.adapterName,storedAdapterId:t.adapterId,...n.machineId!==void 0&&{machineId:n.machineId}}));if(o===void 0)return{kind:`deferred`,reason:`machine-identity-unavailable`};let s=await on(e,i,o,a);return{agent:t,sessionId:t.sessionId,instance:o,resumeProviderSessionId:a,recoveryGuard:s}});if(!(a?.kind===`stale-plan`&&i<1))return nr(r,a)}return nr(r,{kind:`stale-plan`})}function nr(e,t){switch(t?.kind){case`rehydrated`:case`joined`:return{deferred:!1};case`deferred`:return{deferred:!0};default:throw Pn(e,t)}}const rr=e.postgres,Z=se({turns:t},{turns:rr});async function ir(e,t){let n=le(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 ar(e){if(e)try{let t=JSON.parse(e),n=re.safeParse(t);return n.success?n.data:void 0}catch{return}}function or(e){return e?JSON.stringify(e):null}function sr(e){if(e)try{let t=JSON.parse(e),n=ne.safeParse(t);return n.success?n.data:void 0}catch{return}}function Q(e){let t=sr(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:ar(e.usage),...t!==void 0&&{initiator:t}}}function cr(e,t){let n=[lr(e,t),ur(e,t),dr(e,t),fr(e,t),pr(e,t),mr(e,t),hr(e,t),gr(e,t)];return()=>n.forEach(e=>e())}function lr(e,t){let n=ce(t),{turns:r}=T(t,Z);return e.on(a.create,async e=>{let{sessionId:i,turnId:a,initiator:o}=e.payload,s=Date.now(),c=a??crypto.randomUUID(),l=or(o);await ir(n,()=>k`
|
|
4
4
|
WITH next_num AS (
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { IMakaioBus } from "@makaio/framework/bus";
|
|
2
|
+
|
|
3
|
+
//#region packages/inbound-hooks/src/fast-connection.d.ts
|
|
4
|
+
/** Bus URL used when neither an option nor `MAKAIO_BUS_URL` is set. */
|
|
5
|
+
declare const DEFAULT_FAST_HOOK_BUS_URL = "ws://127.0.0.1:6252/bus";
|
|
6
|
+
/**
|
|
7
|
+
* Options for {@link connectFastHookBus}.
|
|
8
|
+
*/
|
|
9
|
+
interface ConnectFastHookBusOptions {
|
|
10
|
+
/** Transport name, e.g. `hook-git`, `client-hook-claude-code`. */
|
|
11
|
+
readonly name: string;
|
|
12
|
+
/** WebSocket URL; falls back to MAKAIO_BUS_URL, then ws://127.0.0.1:6252/bus. */
|
|
13
|
+
readonly busUrl?: string;
|
|
14
|
+
/** HMAC secret; falls back to MAKAIO_BUS_SECRET. Blank means no auth. */
|
|
15
|
+
readonly secret?: string;
|
|
16
|
+
/** Deadline for the connect step in ms (non-negative finite, else 250). */
|
|
17
|
+
readonly timeoutMs?: number;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* A connected short-lived hook bus.
|
|
21
|
+
*/
|
|
22
|
+
interface FastHookBusConnection {
|
|
23
|
+
/** The connected bus instance. */
|
|
24
|
+
readonly bus: IMakaioBus;
|
|
25
|
+
/** Best-effort disconnect; never throws. */
|
|
26
|
+
dispose(): void;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Connect a short-lived bus (autoReconnect off) within the deadline.
|
|
30
|
+
*
|
|
31
|
+
* Never rejects: any connect failure or timeout disposes the bus and resolves `null`.
|
|
32
|
+
* @param options - Connection options.
|
|
33
|
+
* @returns The connection, or `null` when the bus could not be reached in time.
|
|
34
|
+
*/
|
|
35
|
+
declare function connectFastHookBus(options: ConnectFastHookBusOptions): Promise<FastHookBusConnection | null>;
|
|
36
|
+
//#endregion
|
|
37
|
+
export { ConnectFastHookBusOptions, DEFAULT_FAST_HOOK_BUS_URL, FastHookBusConnection, connectFastHookBus };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as e,t}from"../fast-connection-CAm0eRI4.mjs";export{t as DEFAULT_FAST_HOOK_BUS_URL,e as connectFastHookBus};
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { ConnectFastHookBusOptions, DEFAULT_FAST_HOOK_BUS_URL, FastHookBusConnection, connectFastHookBus } from "./fast-connection.mjs";
|
|
2
|
+
import { parseJsonMetadata, parseJsonPayload, readProcessStdinText, safeReadStdinText } from "./stdio.mjs";
|
|
1
3
|
import * as _$zod from "zod";
|
|
2
4
|
import { z } from "zod";
|
|
3
5
|
import * as _$_makaio_core0 from "@makaio/framework/core";
|
|
@@ -130,45 +132,4 @@ declare function createInboundHookNamespace(source: string): _$_makaio_core0.Bus
|
|
|
130
132
|
*/
|
|
131
133
|
declare function createInboundHookReceivedSubject(source: string): RawInboundHookReceivedSubject;
|
|
132
134
|
//#endregion
|
|
133
|
-
|
|
134
|
-
/**
|
|
135
|
-
* Read the current process stdin as UTF-8 text.
|
|
136
|
-
*
|
|
137
|
-
* Returns an empty string when stdin is an interactive TTY so the command
|
|
138
|
-
* does not hang waiting for user input.
|
|
139
|
-
* @param stdin - The stdin stream to consume (defaults to `process.stdin`).
|
|
140
|
-
* @returns The full stdin text, or an empty string for a TTY.
|
|
141
|
-
*/
|
|
142
|
-
declare function readProcessStdinText(stdin?: NodeJS.ReadStream): Promise<string>;
|
|
143
|
-
/**
|
|
144
|
-
* Read stdin without surfacing failures to the caller.
|
|
145
|
-
*
|
|
146
|
-
* Wraps any provided `readStdinText` function and swallows errors, returning
|
|
147
|
-
* an empty string on any failure. Preserves fail-open semantics: a hook
|
|
148
|
-
* bridge should never crash because stdin is unavailable.
|
|
149
|
-
* @param readStdinText - Function that reads stdin text; defaults to {@link readProcessStdinText}.
|
|
150
|
-
* @returns The full stdin text, or an empty string on any failure.
|
|
151
|
-
*/
|
|
152
|
-
declare function safeReadStdinText(readStdinText?: () => Promise<string>): Promise<string>;
|
|
153
|
-
/**
|
|
154
|
-
* Parse a JSON object from raw stdin text.
|
|
155
|
-
*
|
|
156
|
-
* Returns an empty object when the input is blank, non-JSON, or does not
|
|
157
|
-
* parse to an object. This preserves fail-open semantics: an event is always
|
|
158
|
-
* emitted even when the native caller sends nothing or malformed data.
|
|
159
|
-
* @param text - Raw text to parse.
|
|
160
|
-
* @returns A plain `Record<string, unknown>` or `{}` on failure.
|
|
161
|
-
*/
|
|
162
|
-
declare function parseJsonPayload(text: string): Record<string, unknown>;
|
|
163
|
-
/**
|
|
164
|
-
* Parse an optional JSON metadata string from a CLI flag.
|
|
165
|
-
*
|
|
166
|
-
* Returns `undefined` when absent or unparseable so the caller can omit the
|
|
167
|
-
* `metadata` field from the emitted payload entirely (rather than emitting
|
|
168
|
-
* `{}`).
|
|
169
|
-
* @param raw - Raw JSON string from a `--metadata-json` flag, or `undefined`.
|
|
170
|
-
* @returns A parsed metadata record, or `undefined` on absence or parse failure.
|
|
171
|
-
*/
|
|
172
|
-
declare function parseJsonMetadata(raw: string | undefined): Record<string, unknown> | undefined;
|
|
173
|
-
//#endregion
|
|
174
|
-
export { type FastHookBusOptions, type InboundHookEmitOptions, type InboundHookSource, InboundHookSourceSchema, type RawInboundHookPayload, RawInboundHookPayloadSchema, type RawInboundHookReceivedSubject, createInboundHookNamespace, createInboundHookReceivedSubject, emitInboundHookReceived, emitInboundHookReceivedFast, normalizeInboundHookSource, parseJsonMetadata, parseJsonPayload, readProcessStdinText, safeReadStdinText };
|
|
135
|
+
export { type ConnectFastHookBusOptions, DEFAULT_FAST_HOOK_BUS_URL, type FastHookBusConnection, type FastHookBusOptions, type InboundHookEmitOptions, type InboundHookSource, InboundHookSourceSchema, type RawInboundHookPayload, RawInboundHookPayloadSchema, type RawInboundHookReceivedSubject, connectFastHookBus, createInboundHookNamespace, createInboundHookReceivedSubject, emitInboundHookReceived, emitInboundHookReceivedFast, normalizeInboundHookSource, parseJsonMetadata, parseJsonPayload, readProcessStdinText, safeReadStdinText };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{i as e,n as t,r as n,t as r}from"../fast-connection-CAm0eRI4.mjs";import{parseJsonMetadata as i,parseJsonPayload as a,readProcessStdinText as o,safeReadStdinText as s}from"./stdio.mjs";import{z as c}from"zod";import{createBusNamespace as l}from"@makaio/framework/core";const u=c.string().regex(/^[a-z0-9-]+$/,`source must contain only lowercase letters, numbers, and hyphens`),d=c.object({eventName:c.string().min(1),receivedAt:c.number().int().finite().nonnegative(),argv:c.array(c.string()),stdinText:c.string(),payload:c.record(c.string(),c.unknown()),metadata:c.record(c.string(),c.unknown()).optional()});function f(e){return u.parse(e.trim().toLowerCase())}function p(e){return l(`hook:${f(e)}`,{received:d})}function m(e){return{subject:`received`,$meta:{namespace:`hook:${f(e)}`,isRequest:!1,local:!1,channel:!1}}}async function h(e,t,n,r={}){let i=r.failOpen??!0;try{await e.emit(m(t),n)}catch(e){if(!i)throw e}}async function g(r,i,a={}){let o=n(a.timeoutMs??a.connectTimeoutMs),s=e(o),c=await t({name:`hook-${r}`,busUrl:a.busUrl,secret:a.secret,timeoutMs:o});if(!c)return;let l,u=h(c.bus,r,i,{failOpen:!0});u.catch(()=>void 0);try{await Promise.race([u,new Promise((e,t)=>{l=setTimeout(()=>{t(Error(`hook bus delivery timeout`))},s())})])}catch{return}finally{clearTimeout(l),c.dispose()}}export{r as DEFAULT_FAST_HOOK_BUS_URL,u as InboundHookSourceSchema,d as RawInboundHookPayloadSchema,t as connectFastHookBus,p as createInboundHookNamespace,m as createInboundHookReceivedSubject,h as emitInboundHookReceived,g as emitInboundHookReceivedFast,f as normalizeInboundHookSource,i as parseJsonMetadata,a as parseJsonPayload,o as readProcessStdinText,s as safeReadStdinText};
|