@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{n as e}from"./namespace-
|
|
1
|
+
import{n as e}from"./namespace-D-_gP6_l.mjs";import"./ownership-memory-handler-BkB4ondL.mjs";import{t}from"./caller-owned-adapter-stub-BLbPeCP9.mjs";import{AdapterSubjects as n,AgentSubjects as r,SessionSubjects as i}from"@makaio/framework/contracts";import{MakaioBus as a}from"@makaio/framework/bus";function o(){a.__resetHandlers?.()}function s(e=10){return new Promise(t=>setTimeout(t,e))}function c(e,t){let n=Date.now();return{agentId:e,adapterId:`adapter-${e}`,adapterName:`test-adapter`,sessionId:t?.sessionId??`test-session`,role:`member`,status:`idle`,createdAt:n,lastActivityAt:n,...t}}async function l(e,t=e,r=`test-machine`){await a.emit(n.initialized,{adapterName:e,adapterId:t,machineId:r,ownerInstanceId:`owner-${t}`,capabilities:[]})}async function u(t){return(await a.request(e.getEvents,{sessionId:t})).events}function d(e,t,n){let r=[];return n.push(a.on(e,(e=>{let n=e.payload;r.push(t(n))}))),{received:r,clear:()=>{r.length=0}}}function f(e){return d(i.turn.started,e=>({sessionId:e.sessionId,turnId:e.turnId,turnNumber:e.turnNumber,messageId:e.messageId,agentIds:[...e.agentIds],initiator:e.initiator,ingestionMarker:e.ingestionMarker}),e)}function p(e){return d(i.turn.completed,e=>({sessionId:e.sessionId,turnId:e.turnId,turnNumber:e.turnNumber,success:e.success,error:e.error,initiator:e.initiator,ingestionMarker:e.ingestionMarker}),e)}function m(e){return d(i.user_message.sent,e=>({sessionId:e.sessionId,turnId:e.turnId,messageId:e.messageId,content:e.content,agentIds:[...e.agentIds],origin:e.origin}),e)}function h(e){return d(i.user_message.acknowledged,e=>({sessionId:e.sessionId,turnId:e.turnId,messageId:e.messageId,agentId:e.agentId}),e)}function g(e){return d(i.user_message.completed,e=>({sessionId:e.sessionId,turnId:e.turnId,messageId:e.messageId,agentId:e.agentId,outcome:e.outcome,error:e.error}),e)}function _(e,t){return c(e,{runtimeOwner:{machineId:`test-machine`,instanceId:`test-runtime-owner`},...t})}function v(e){let t=Date.now();return{sessionId:e.sessionId,createdAt:t,lastActivityAt:t,status:e.status??`active`,agents:e.agents??[],leadAgentId:e.leadAgentId,targetWorkingDirectory:e.targetWorkingDirectory}}function y(e){return a.on(i.create,t=>{let n=t.payload.sessionId??`session-${crypto.randomUUID().slice(0,8)}`;e.set(n,v({sessionId:n,agents:[]})),t.setResult({sessionId:n})})}function b(e){return a.on(i.agent.added,t=>{let n=e.get(t.payload.sessionId);if(!n)return;let r=n.agents.length===0,i=t.payload.role??(r?`lead`:`member`);r&&(n.adapterSessionId=t.payload.adapterSessionId,n.adapterName=t.payload.adapterName,n.adapterId=t.payload.adapterId);let a=Date.now();n.agents.push({agentId:t.payload.agentId,adapterId:t.payload.adapterId,adapterName:t.payload.adapterName,sessionId:t.payload.sessionId,role:i,status:`idle`,createdAt:a,lastActivityAt:a}),i===`lead`&&(n.leadAgentId=t.payload.agentId),n.lastActivityAt=Date.now()})}function x(e){return a.on(i.get,t=>{t.setResult({session:e.get(t.payload.sessionId)??null})})}function S(e){return a.on(n.getAgent,t=>{for(let n of e.values()){let e=n.agents.find(e=>e.agentId===t.payload.agentId);if(e){t.setResult({agent:{agentId:e.agentId,sessionId:n.sessionId,adapterSessionId:``}});return}}t.setResult({agent:null})})}function C(){return a.on(n.rehydrateAgent,e=>{e.setResult({success:!0,...t(e.payload)})})}function w(e=`/previous/cwd`){return a.on(r.cwd.change,t=>{t.setResult({success:!0,previousCwd:e})})}function T(){return a.on(r.model.change,e=>{e.setResult({success:!0,swapped:!1})})}function E(e){return a.on(n.startAgent,n=>{let{adapterId:r,initialMessage:i}=n.payload,a=n.payload.sessionId??`session-${crypto.randomUUID().slice(0,8)}`,o=n.payload.agentId??`agent-${crypto.randomUUID().slice(0,8)}`,s=i?`msg-${crypto.randomUUID().slice(0,8)}`:void 0,c=`adapter-session-${a}`;e?.({adapterId:r,sessionId:a,initialMessage:i}),n.setResult({success:!0,agentId:o,adapterId:r,adapterSessionId:c,sessionId:a,...t(n.payload),...s&&{messageId:s}}),M({sessionId:a,agentId:o,adapterId:r,adapterSessionId:c})})}function D(e){return a.on(n.startAgent,t=>{t.setResult({success:!1,dispatch:`not-dispatched`,message:e})})}function O(e){return a.on(r.sendMessage,t=>{let{agentId:n,adapterId:r,message:i,messageId:a,sessionContext:o,responseSchema:s}=t.payload,c=a??`msg-${crypto.randomUUID().slice(0,8)}`;e?.({agentId:n,adapterId:r,message:i,messageId:c,sessionContext:o,responseSchema:s}),t.setResult({messageId:c})})}function k(e,t){return a.on(r.sendMessage,n=>{if(e.has(n.payload.agentId))throw Error(t);n.setResult({messageId:n.payload.messageId??`generated-id`})})}async function A(e){await a.emit(r.complete,{agentId:e.agentId,adapterId:`adapter-${e.agentId}`,adapterName:`test-adapter`,adapterSessionId:`adapter-session-${e.agentId}`,messageId:e.messageId,turnId:e.turnId})}async function j(e){await a.emit(r.complete,{agentId:e.agentId,adapterId:`adapter-${e.agentId}`,adapterName:`test-adapter`,adapterSessionId:`adapter-session-${e.agentId}`,messageId:e.messageId,turnId:e.turnId,outcome:`error`,error:e.error})}function M(e){setImmediate(()=>{a.emit(i.agent.added,{sessionId:e.sessionId,agentId:e.agentId,adapterId:e.adapterId,adapterName:e.adapterId,adapterSessionId:e.adapterSessionId,role:e.role})})}function N(e,r){let i=new Map,o=a.on(n.startAgent,n=>{r.payload=n.payload;let a=n.payload.agentId??`agent-${crypto.randomUUID().slice(0,8)}`,o=n.payload.initialMessage?`msg-${crypto.randomUUID().slice(0,8)}`:void 0,s=`adapter-session-${e}`;i.set(a,{agentId:a,sessionId:e,adapterSessionId:s,adapterId:n.payload.adapterId}),n.setResult({success:!0,agentId:a,adapterId:n.payload.adapterId,adapterSessionId:s,sessionId:e,...t(n.payload),...o&&{messageId:o}}),M({sessionId:e,agentId:a,adapterId:n.payload.adapterId,adapterSessionId:s})}),s=a.on(n.getAgent,e=>{let t=i.get(e.payload.agentId);e.setResult({agent:t?{agentId:t.agentId,sessionId:t.sessionId,adapterSessionId:t.adapterSessionId}:null})});return()=>{o(),s()}}export{l as C,s as E,m as S,o as T,E as _,j as a,h as b,y as c,D as d,S as f,O as g,C as h,A as i,w as l,T as m,v as n,b as o,x as p,M as r,N as s,_ as t,k as u,p as v,u as w,g as x,f as y};
|
package/dist/{ownership-memory-handler-C-y9zQf8.mjs → ownership-memory-handler-BkB4ondL.mjs}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e,t}from"./ownership-recovery-guard-C9h8K1jo.mjs";import{SessionStorageSubjects as n}from"./services/session/storage/namespace.mjs";import{SessionOwnershipSettleMovementRequestSchema as r,SessionOwnershipStorageSubjects as i,SessionStorageSetRequestSchema as a,SessionStorageUpdateSchema as o,SessionSubjects as s,resolveResumableAdapterSessionId as c}from"@makaio/framework/contracts";import{isInactiveSafeLeadDesignationMutation as l,normalizeSessionOwnershipClaimRequest as u}from"@makaio/framework/contracts/session";function d(){return{sessions:new Map,sessionOwnerPrincipalIds:new Map,agents:new Map,claims:new Map,runtimeInstances:new Map}}function f(e,t){for(let[n,r]of e.claims)t(r)&&e.claims.delete(n)}function ee(e,t){let n=e?.clientAccountId??null,r=t.clientAccountId??null;return!r||n===r?null:{previousClientAccountId:n,clientAccountId:r}}function p(e,t){let n=t.lastClientIdentityObservation;if(t.clientAccountId!==void 0&&!n)throw Error(`Session "${t.sessionId}" cannot persist clientAccountId without lastClientIdentityObservation`);if(t.clientAccountId!==void 0&&t.clientId===void 0)throw Error(`Session "${t.sessionId}" cannot persist clientAccountId without clientId`);if(n&&t.clientId!==void 0&&t.clientId!==n.clientId)throw Error(`Session "${t.sessionId}" cannot persist clientId "${t.clientId}" because lastClientIdentityObservation belongs to "${n.clientId}"`)}function m(e,t,n){let r=ee(t,n);if(!r)return;let i=n.lastClientIdentityObservation;if(!i)return;let a={sessionId:n.sessionId,clientId:i.clientId,previousClientAccountId:r.previousClientAccountId,clientAccountId:r.clientAccountId,source:i.source,observedAt:i.observedAt,lastClientIdentityObservation:structuredClone(i)};queueMicrotask(()=>{Promise.resolve().then(()=>e.emit(s.clientAccount.changed,a)).catch(e=>{console.error(`[SessionStorage] Failed to emit session.clientAccount.changed:`,e)})})}function h(e){switch(e){case`fork`:return`fork`;case`subagent`:return`subagent`;case`compress`:return`compress`;case`root`:return;default:return}}function g(e){switch(e.kind){case`root`:return{kind:`root`,parentAdapterSessionId:null,forkPointMessageId:null};case`fork`:return{kind:`fork`,parentAdapterSessionId:e.parentAdapterSessionId,forkPointMessageId:e.forkPointMessageId};case`subagent`:return{kind:`subagent`,parentAdapterSessionId:e.parentAdapterSessionId,forkPointMessageId:null};case`compress`:return{kind:`compress`,parentAdapterSessionId:e.parentAdapterSessionId,forkPointMessageId:null};default:return e.kind}}function _(){let e=0;return()=>{let t=Date.now();return e=t>e?t:e+1,e}}function v(e){return e.activation===`live`?`active`:`discovered`}const y=_();function te(e,t){return e===`imported`||t===`imported`?`imported`:e===`tracking`||t===`tracking`?`tracking`:e??t??`discovered`}function b(e,t,n){n!==void 0&&(e[t]=n)}function ne(e){return e.status===`closed`||e.status===`archived`||e.status===`active`&&e.isImported===!0}function re(e,t,n){if(!ne(e)){if(n===`live`){e.status===`discovered`&&(e.status=`active`);return}t===`discovered`&&(e.status=`discovered`)}}function x(e,t,n){let r=e.startedAt??n,i=h(e.kind);return{sessionId:t,createdAt:r,lastActivityAt:r,agents:[],status:v(e),branchKind:i,generation:0,adapterName:e.source,adapterSessionId:e.externalSessionId,adapterId:e.adapterId,clientId:e.clientId,isOrchestrated:!1,isImported:!0,title:e.title??void 0,targetWorkingDirectory:e.cwd??void 0,source:e.source,parentExternalSessionId:e.parentAdapterSessionId??void 0,logFilePath:e.logFilePath??void 0,discoveredAt:n,importStatus:e.importStatus??`discovered`,forkPointMessageId:e.forkPointMessageId??void 0,metadata:e.metadata,lastClientIdentityObservation:e.lastClientIdentityObservation,isSidechain:e.isSidechain,machineId:e.machineId??void 0}}function ie(e,t,n){let r=te(e.importStatus,t.importStatus);re(e,r,t.activation),e.isImported=!0,e.importStatus=r,e.adapterName??=t.source,e.adapterSessionId??=t.externalSessionId,e.source??=t.source,e.discoveredAt??=n}function ae(e,t){t.logFilePath!==void 0&&t.logFilePath!==null&&(e.logFilePath??=t.logFilePath),t.cwd!==null&&(e.targetWorkingDirectory=t.cwd),t.title!==void 0&&t.title!==null&&(e.title=t.title),e.forkPointMessageId===void 0&&t.forkPointMessageId!==null&&(e.forkPointMessageId=t.forkPointMessageId),e.parentExternalSessionId===void 0&&t.parentAdapterSessionId!==null&&(e.parentExternalSessionId=t.parentAdapterSessionId);let n=h(t.kind);n!==void 0&&e.branchKind===void 0&&(e.branchKind=n),b(e,`adapterId`,t.adapterId),b(e,`clientId`,t.clientId),t.metadata!==void 0&&(e.metadata={...t.metadata,...e.metadata??{}}),b(e,`isSidechain`,t.isSidechain),b(e,`lastClientIdentityObservation`,t.lastClientIdentityObservation),t.machineId===null?e.machineId=void 0:t.machineId!==void 0&&(e.machineId??=t.machineId)}function oe(e,t,n){t.startedAt!==void 0&&((n===void 0||e.createdAt===n)&&(e.createdAt=t.startedAt),(n===void 0||e.lastActivityAt===n)&&(e.lastActivityAt=t.startedAt))}function se(e,t,n){let r=e.discoveredAt;ie(e,t,n),ae(e,t),oe(e,t,r)}function S(e,t){if(t.parentExternalSessionId===void 0)return;let n=t.source??t.adapterName,r=Array.from(e.values()).find(e=>e.adapterSessionId===t.parentExternalSessionId&&(e.source??e.adapterName)===n);r&&(t.parentSessionId=r.sessionId,t.rootSessionId=r.rootSessionId??r.sessionId)}function C(e,t,n){if(n){e.emit(s.created,{sessionId:t.sessionId,parentSessionId:t.parentSessionId??null,branchKind:t.branchKind??null,createdAt:t.createdAt}).catch(e=>console.error(`[SessionStorage] Failed to emit session.created:`,e));return}e.emit(s.updated,{sessionId:t.sessionId,changedProperties:[`source`,`targetWorkingDirectory`,`title`]}).catch(e=>console.error(`[SessionStorage] Failed to emit session.updated:`,e))}function ce(e){let t=0,n=0,r=0;for(let i of e)i.importStatus===`imported`&&(t+=1),i.importStatus===`tracking`&&(n+=1),i.importStatus===`discovered`&&(r+=1);return{total:e.length,imported:t,tracking:n,discovered:r}}function w(e,t,n){return Array.from(e.values()).find(e=>e.adapterSessionId===n&&e.source===t)}function le(e,t){let n=[];return t.cwd!==void 0&&(e.targetWorkingDirectory=t.cwd,n.push(`targetWorkingDirectory`)),t.logFilePath!==void 0&&(e.logFilePath=t.logFilePath,n.push(`logFilePath`)),t.machineId!==void 0&&(e.machineId=t.machineId??void 0,n.push(`machineId`)),t.startMode===`compact`&&(e.generation=(e.generation??0)+1,n.push(`generation`)),n}function ue(e,t,n){e.emit(s.importStatusChanged,{sessionId:t.sessionId,importStatus:n}).catch(e=>console.error(`[SessionStorage] Failed to emit session.importStatusChanged:`,e));let r=t.source??t.adapterName;n!==`imported`||t.adapterSessionId===void 0||r===void 0||e.emit(s.import.completed,{sessionId:t.sessionId,adapterSessionId:t.adapterSessionId,source:r}).catch(e=>console.error(`[SessionStorage] Failed to emit session.import.completed:`,e))}function de(e,t){return e.on(n.rebindObserved,n=>{let r=n.payload,i=w(t,r.source,r.externalSessionId);if(!i){n.setResult({outcome:`not-found`});return}let a=le(i,r);n.setResult({outcome:`rebound`,sessionId:i.sessionId}),a.length>0&&e.emit(s.updated,{sessionId:i.sessionId,changedProperties:a}).catch(e=>console.error(`[SessionStorage] Failed to emit session.updated:`,e))})}function fe(e,t,r){return e.on(n.registerOwnedImport,n=>{let i=structuredClone(n.payload),a=w(t,i.import.source,i.import.externalSessionId);if(a){let e=r.get(a.sessionId);e===void 0?n.setResult({outcome:`unowned`}):e===i.ownerPrincipalId?n.setResult({outcome:`owned`,sessionId:a.sessionId}):n.setResult({outcome:`foreign`});return}let o=x(i.import,crypto.randomUUID(),y());t.set(o.sessionId,o),r.set(o.sessionId,i.ownerPrincipalId),S(t,o),C(e,o,!0),n.setResult({outcome:`created`,sessionId:o.sessionId})})}function pe(e,t,r){return e.on(n.verifyOwner,e=>{let n=t.get(e.payload.sessionId);if(!n){e.setResult({outcome:`missing`});return}let i=r.get(n.sessionId);i===void 0?e.setResult({outcome:`unowned`}):i===e.payload.ownerPrincipalId?e.setResult({outcome:`owned`}):e.setResult({outcome:`foreign`})})}function me(e){let{bus:t,store:r,sessionOwnerPrincipalIds:i,cloneSession:a,populateAgents:o}=e;return[t.on(n.importUpsert,e=>{let n=structuredClone(e.payload),i=w(r,n.source,n.externalSessionId),a=y(),o=i===void 0,s=i??x(n,crypto.randomUUID(),a);i?(se(i,n,a),i.parentExternalSessionId!==void 0&&i.parentSessionId===void 0&&S(r,i)):(r.set(s.sessionId,s),S(r,s)),C(t,s,o),e.setResult({sessionId:s.sessionId,created:o})}),fe(t,r,i),pe(t,r,i),de(t,r),t.on(n.getByLogFilePath,async e=>{let n=Array.from(r.values()).find(t=>t.logFilePath===e.payload.logFilePath);if(!n){e.setResult({session:null});return}let i=await o(t,n.sessionId);e.setResult({session:{...a(n),agents:i}})}),t.on(n.listImported,async e=>{let{source:n,importStatus:i}=e.payload,s=Array.from(r.values()).filter(e=>e.isImported===!0).filter(e=>n===void 0||e.source===n).filter(e=>i===void 0||e.importStatus===i).sort((e,t)=>t.createdAt-e.createdAt),c=await Promise.all(s.map(async e=>({...a(e),agents:await o(t,e.sessionId)})));e.setResult({sessions:c})}),t.on(n.countBySource,e=>{let t=Array.from(r.values()).filter(t=>t.isImported===!0&&t.source===e.payload.source);e.setResult(ce(t))}),t.on(n.updateImportStatus,e=>{let n=r.get(e.payload.sessionId),i=e.payload.importStatus;if(!n||n.importStatus===i){e.setResult({success:!1});return}n.importStatus=i,i===`imported`&&n.status===`discovered`&&(n.status=`active`),e.setResult({success:!0}),ue(t,n,i)})]}function T(e,t){e.emit(s.updated,{sessionId:t,changedProperties:[`generation`]}).catch(e=>console.error(`[SessionStorage] Failed to emit session.updated:`,e))}function E(e,t){let n=t.expectIdentityOpenForLead;return n===void 0?!1:e.adapterName!==void 0||e.adapterId!==void 0?!0:(e.leadAgentId??null)!==n}function D(e,t){let n=t.reconcileAdapterSession;if(n===void 0)return!1;if(e.adapterSessionId!==void 0||e.leadAgentId!==n.agentId)return!0;let r=e.adapterName===void 0&&e.adapterId===void 0,i=e.adapterName===n.adapterName&&e.adapterId===n.adapterId;return!r&&!i}async function O(t,n){let r=await t.requestOptional(e.listBySession,{sessionId:n});return r.handled?r.data.agents:[]}function k(e){return structuredClone(e)}function A(e,t,n){n!==void 0&&(e[t]=n)}function j(e,t,n){n!==void 0&&(e[t]=n??void 0)}function he(e,t){let n=e;return t.status!==`all`&&(n=n.filter(e=>e.status===t.status)),t.executionTargetId!==void 0&&(n=n.filter(e=>e.executionTargetId===t.executionTargetId)),n}function M(e,t){e.currentAdapterSessionId=t?.currentAdapterSessionId,e.currentAdapterSessionIdState=t?.currentAdapterSessionIdState??`inherited`,t!==null&&(e.leadAgentId=t.leadAgentId),e.generation=t?.generation??e.generation??0}function N(e,t){A(e,`status`,t.status),t.parentSessionId!==void 0&&(e.parentSessionId=t.parentSessionId??void 0),A(e,`contextInheritance`,t.contextInheritance),A(e,`rootSessionId`,t.rootSessionId),A(e,`forkPointMessageId`,t.forkPointMessageId),A(e,`branchKind`,t.branchKind),A(e,`isOrchestrated`,t.isOrchestrated),A(e,`clientId`,t.clientId),A(e,`clientAccountId`,t.clientAccountId),A(e,`lastClientIdentityObservation`,t.lastClientIdentityObservation),A(e,`title`,t.title),A(e,`targetWorkingDirectory`,t.targetWorkingDirectory),A(e,`createdAt`,t.createdAt),A(e,`lastActivityAt`,t.lastActivityAt),A(e,`machineId`,t.machineId),t.identity!==void 0&&(e.adapterName=t.identity.adapterName,e.adapterId=t.identity.adapterId,A(e,`adapterSessionId`,t.identity.adapterSessionId)),t.reconcileAdapterSession!==void 0&&(e.adapterName=t.reconcileAdapterSession.adapterName,e.adapterId=t.reconcileAdapterSession.adapterId,e.adapterSessionId=t.reconcileAdapterSession.adapterSessionId,e.lastActivityAt=t.reconcileAdapterSession.lastActivityAt),j(e,`executionTargetId`,t.executionTargetId),j(e,`approvalPolicyOverride`,t.approvalPolicyOverride),j(e,`metadata`,t.metadata),t.spawningToolCallId===null?e.spawningToolCallId=void 0:t.spawningToolCallId!==void 0&&e.spawningToolCallId===void 0&&(e.spawningToolCallId=t.spawningToolCallId),t.advanceGeneration===!0&&(e.generation=(e.generation??0)+1)}function P(e,t){return e.on(n.list,async n=>{let{status:r=`all`,limit:i,offset:a=0,includePreview:o=!1,executionTargetId:s}=n.payload,c=he(Array.from(t.values()),{status:r,executionTargetId:s});c.sort((e,t)=>t.lastActivityAt-e.lastActivityAt);let l=c.length;i!==void 0&&(c=c.slice(a,a+i));let u=await Promise.all(c.map(async t=>({...k(t),agents:await O(e,t.sessionId)}))),d=o?u.map(e=>({...e,preview:{messageCount:0,firstUserMessage:null}})):u;n.setResult({sessions:d,total:l})})}function F(e,t){return e.on(n.update,async n=>{let r=structuredClone(o.request.parse(n.payload)),i=t.get(r.sessionId);if(!i){n.setResult({success:!1,clientAccountChanged:!1});return}if(r.expectedStatus!==void 0&&!r.expectedStatus.includes(i.status)){n.setResult({success:!1,clientAccountChanged:!1});return}if(E(i,r)){n.setResult({success:!1,clientAccountChanged:!1});return}if(D(i,r)){n.setResult({success:!1,clientAccountChanged:!1});return}let a=k(i);p(a,{sessionId:i.sessionId,clientId:r.clientId??i.clientId,clientAccountId:r.clientAccountId??i.clientAccountId,lastClientIdentityObservation:r.lastClientIdentityObservation??i.lastClientIdentityObservation}),N(i,r),n.setResult({success:!0,clientAccountChanged:(a.clientAccountId??null)!==(i.clientAccountId??null)}),m(e,a,k(i)),r.advanceGeneration===!0&&T(e,r.sessionId)})}function I(e,t=d()){let r=t.sessions,i=[];return i.push(e.on(n.get,async t=>{let n=r.get(t.payload.sessionId);if(!n){t.setResult({session:null});return}let i=await O(e,t.payload.sessionId);t.setResult({session:{...k(n),agents:i}})})),i.push(e.on(n.set,async t=>{let{sessionId:n,session:i,ifAbsent:o}=a.parse(t.payload);if(o&&r.has(n)){t.setResult({success:!1,clientAccountChanged:!1});return}let s=structuredClone(i),c=r.get(n)??null,l=c?k(c):null;M(s,l),p(c,s),r.set(n,s),t.setResult({success:!0,clientAccountChanged:(l?.clientAccountId??null)!==(s.clientAccountId??null)}),m(e,l,k(s))})),i.push(e.on(n.delete,async e=>{let n=new Set;for(let[r,i]of t.agents)i.sessionId===e.payload.sessionId&&(n.add(r),t.agents.delete(r));f(t,t=>t.sessionId===e.payload.sessionId||n.has(t.agentId)),t.sessionOwnerPrincipalIds.delete(e.payload.sessionId),r.delete(e.payload.sessionId),e.setResult({success:!0}),await e.next()})),i.push(P(e,r)),i.push(e.on(n.getChildren,e=>{let{sessionId:t}=e.payload,n=Array.from(r.values()),i=n.filter(e=>e.parentSessionId===t),a=new Set(n.map(e=>e.parentSessionId).filter(e=>!!e)),o=i.map(e=>({sessionId:e.sessionId,title:e.title??null,forkPointMessageId:e.forkPointMessageId??null,branchKind:e.branchKind??null,messageCount:0,hasChildren:a.has(e.sessionId),spawningToolCallId:e.spawningToolCallId}));e.setResult({children:o})})),i.push(e.on(n.getStatusCounts,e=>{e.payload;let t=Array.from(r.values()),n=t.filter(e=>e.status===`active`).length,i=t.filter(e=>e.status===`closed`).length,a=t.filter(e=>e.status===`archived`).length,o=t.filter(e=>e.status===`discovered`).length;e.setResult({all:n+i+a+o,active:n,closed:i,archived:a,discovered:o})})),i.push(F(e,r)),i.push(L(e,r)),i.push(...me({bus:e,store:r,sessionOwnerPrincipalIds:t.sessionOwnerPrincipalIds,populateAgents:O,cloneSession:k})),()=>i.forEach(e=>e())}function L(t,r){return t.on(n.getByAdapterSessionId,async n=>{let{adapterSessionId:i,source:a,adapterName:o}=n.payload,s=Array.from(r.values()).filter(e=>e.adapterSessionId!==void 0&&e.adapterSessionId===i&&(a===void 0||e.source===a)&&(o===void 0||e.adapterName===o)),c=s[0];if(s.length!==1||c===void 0){n.setResult({session:null});return}let l=await t.requestOptional(e.listBySession,{sessionId:c.sessionId}),u=l.handled?l.data.agents:[];n.setResult({session:{...k(c),agents:u}})})}function R(e){return structuredClone(e)}function ge(e,t){let{adapterId:n,runtimeOwner:r,adapterSessionId:i,cwd:a,model:o,allowedDirectories:s,providerConfigId:c}=t;return n===void 0&&r===void 0&&i===void 0&&a===void 0&&o===void 0&&s===void 0&&c===void 0?!1:(n!==void 0&&(e.adapterId=n),r!==void 0&&(e.runtimeOwner=structuredClone(r)),i!==void 0&&(e.adapterSessionId=i),a!==void 0&&(e.cwd=a),o!==void 0&&(e.model=o),s!==void 0&&(e.allowedDirectories=s),c===null?delete e.providerConfigId:c!==void 0&&(e.providerConfigId=c),!0)}function _e(e){return{status:e.status,recoveryAttemptId:e.recoveryAttemptId,adapterSessionId:e.adapterSessionId,runtimeOwner:structuredClone(e.runtimeOwner),currentAdapterSessionId:e.currentAdapterSessionId,currentAdapterSessionIdState:e.currentAdapterSessionIdState,revision:e.revision,currencyFence:e.currencyFence}}function ve(e,t,n){let r=e.get(t),i=r===void 0?void 0:_e(r);e.set(t,{...structuredClone(n),status:i?.status===`disposed`?`disposed`:n.status,recoveryAttemptId:i===void 0?n.recoveryAttemptId:i.recoveryAttemptId,adapterSessionId:i===void 0?n.adapterSessionId:i.adapterSessionId,runtimeOwner:i===void 0?structuredClone(n.runtimeOwner):i.runtimeOwner,currentAdapterSessionId:i?.currentAdapterSessionId,currentAdapterSessionIdState:i?.currentAdapterSessionIdState??`inherited`,revision:i?.revision??0,currencyFence:i?.currencyFence??0})}function z(e,t,n){let r=e.get(t);return r===void 0?!1:n(r)}function ye(e,t,n,r){let i=e.get(t);return i===void 0?{success:!1,transitioned:!1}:i.status===`disposed`||r!==void 0&&!r.includes(i.status)?{success:!0,transitioned:!1}:(i.status=n,i.lastActivityAt=Date.now(),{success:!0,transitioned:!0})}function be(e,t){return f(e,e=>e.agentId===t),e.agents.delete(t)}function xe(t,n=d()){let r=n.agents,i=[];return i.push(t.on(e.get,e=>{let t=r.get(e.payload.agentId);e.setResult({agent:t===void 0?null:R(t)})})),i.push(t.on(e.set,e=>{ve(r,e.payload.agentId,e.payload.agent),e.setResult({success:!0})})),i.push(t.on(e.delete,e=>{e.setResult({success:be(n,e.payload.agentId)})})),i.push(t.on(e.listByAdapter,e=>{let{adapterName:t,status:n}=e.payload,i=Array.from(r.values()).filter(e=>e.adapterName===t);n&&n!==`all`&&(i=i.filter(e=>e.status===n)),e.setResult({agents:i.map(R)})})),i.push(t.on(e.listBySession,e=>{let t=Array.from(r.values()).filter(t=>t.sessionId===e.payload.sessionId);e.setResult({agents:t.map(R)})})),i.push(t.on(e.updateStatus,e=>{let{agentId:t,status:n,expectedStatus:i}=e.payload;e.setResult(ye(r,t,n,i))})),i.push(t.on(e.updateActivity,e=>{let t=z(r,e.payload.agentId,t=>(t.lastActivityAt=e.payload.lastActivityAt,!0));e.setResult({success:t})})),i.push(t.on(e.updateRuntime,e=>{let{agentId:t,adapterId:n,runtimeOwner:i,adapterSessionId:a,cwd:o,model:s,allowedDirectories:c,providerConfigId:l}=structuredClone(e.payload),u=z(r,t,e=>ge(e,{adapterId:n,runtimeOwner:i,adapterSessionId:a,cwd:o,model:s,allowedDirectories:c,providerConfigId:l})?(e.lastActivityAt=Date.now(),!0):!1);e.setResult({success:u})})),()=>i.forEach(e=>e())}function B(e,t,n,r){for(let i of e.values())if(i.machineId===t&&i.adapterId===n&&i.providerSessionId===r)return i}function V(e,t){for(let n of e.values())if(n.claimToken===t)return n}function Se(e,t){let n=0;for(let r of e.values())r.agentId===t&&r.fence>n&&(n=r.fence);return n}function H(e,t,n){let r=e.agents.get(t)?.currencyFence??0;return 1+Math.max(n,r,Se(e.claims,t))}function U(e,t){return`${e.length}:${e}${t}`}function W(e,t,n,r){let i=U(t,n),a=e.runtimeInstances.get(i);if(a!==void 0)return a;let o=1;for(let t of e.runtimeInstances.values())t.machineId===n&&t.incarnation>=o&&(o=t.incarnation+1);let s={instanceId:t,machineId:n,incarnation:o,startedAt:r,retiredAt:null};return e.runtimeInstances.set(i,structuredClone(s)),s}function G(e,t,n){if(n.ownerInstanceId===null)return!1;if(t.supersededClaimToken===n.claimToken||n.status===`held`&&n.agentId===t.agentId&&n.ownerInstanceId===t.ownerInstanceId)return!0;let r=e.runtimeInstances.get(U(n.ownerInstanceId,n.machineId));if(r?.retiredAt!==null&&r?.retiredAt!==void 0)return!0;if(t.topology===`machine-exclusive`){let n=e.runtimeInstances.get(U(t.ownerInstanceId,t.machineId));if(n!==void 0&&r!==void 0&&n.incarnation>r.incarnation)return!0}return!1}function K(e,t){let n=e.currentAdapterSessionIdState??`inherited`;if(n!==`inherited`)return{currentAdapterSessionId:e.currentAdapterSessionId,currentAdapterSessionIdState:n};let r=e.adapterSessionId??null;return r===t?{currentAdapterSessionId:void 0,currentAdapterSessionIdState:`inherited`}:r===null?{currentAdapterSessionId:void 0,currentAdapterSessionIdState:`moved`}:{currentAdapterSessionId:r,currentAdapterSessionIdState:`confirmed`}}function Ce(e,t){if(t===`confirmed`!=(e!==null))throw Error(`Currency pairing invariant violated: confirmed ↔ id !== null (state="${t}", id=${e===null?`null`:`present`})`)}function q(e){return{adapterSessionId:e.adapterSessionId??null,currentAdapterSessionId:e.currentAdapterSessionId??null,currentAdapterSessionIdState:e.currentAdapterSessionIdState??`inherited`}}function J(e,t,n){if(t.recoveryGuard!==void 0&&e!==void 0&&(n.outcome===`claimed`||n.outcome===`idempotent`)){let r=t.recoveryAttemptId;if(r===void 0)throw Error(`guarded recovery claim requires recoveryAttemptId`);let i={status:e.status,adapterId:e.adapterId,...e.runtimeOwner===void 0?{}:{binding:{adapterId:e.adapterId,ownerMachineId:e.runtimeOwner.machineId,ownerInstanceId:e.runtimeOwner.instanceId}},...e.recoveryAttemptId===void 0?{}:{recoveryAttemptId:e.recoveryAttemptId}};if(e.status=`starting`,e.adapterId=t.adapterId,t.ownerInstance===void 0)throw Error(`guarded recovery claim requires ownerInstance`);return e.runtimeOwner={machineId:t.machineId,instanceId:t.ownerInstance.instanceId},e.recoveryAttemptId=r,e.lastActivityAt=Date.now(),{...n,recovery:{attemptId:r,preimage:i}}}return n}function Y(e,t,n){let r=e.sessions.get(t.sessionId);if(r===void 0)return{kind:`refused`,result:{outcome:`not-found`,missing:`session`}};if(r.status!==`active`&&(r.status!==`closed`||!l(t)))return{kind:`refused`,result:{outcome:`session-not-active`,status:r.status}};let i=r.leadAgentId??null,a=t.designateLead;if(a===void 0)return{kind:`ok`,leadDesignated:!1,previousLeadAgentId:i};let o=a.clear===!0,s=o?null:n.agentId;if(!o&&n.status===`disposed`)return{kind:`refused`,result:{outcome:`agent-disposed`}};if(!o&&i===n.agentId)return{kind:`ok`,leadDesignated:!1,previousLeadAgentId:i};if(i!==a.expectedLeadAgentId)return{kind:`conflict`,currentLeadAgentId:i};if(r.leadAgentId=s??void 0,!o){let e=K(n,r.adapterSessionId??null);r.currentAdapterSessionId=e.currentAdapterSessionId,r.currentAdapterSessionIdState=e.currentAdapterSessionIdState}return{kind:`ok`,leadDesignated:!0,previousLeadAgentId:i}}function X(e,t,n){if(!e.sessions.has(t.sessionId))return{kind:`refused`,result:{outcome:`not-found`,missing:`session`}};let r=e.agents.get(t.agentId);if(r===void 0||r.sessionId!==t.sessionId)return{kind:`refused`,result:{outcome:`not-found`,missing:`agent`}};if(r.status===`disposed`)return{kind:`refused`,result:{outcome:`agent-disposed`}};let i=V(e.claims,t.claimToken);if(i!==void 0&&i.claimId!==n?.claimId)throw Error(`UNIQUE constraint failed: adapter_session_claims.claim_token (uniq_adapter_session_claims_token): "${t.claimToken}" is already in use`);return{kind:`ok`,agent:r}}function Z(e,t,n){return{outcome:e,claim:t===null?null:structuredClone(t),leadDesignated:n.leadDesignated,previousLeadAgentId:n.previousLeadAgentId}}function we(e,t){let n=X(e,t);if(n.kind===`refused`)return n.result;let r=Date.now(),i=crypto.randomUUID(),a={claimId:i,machineId:t.machineId,adapterId:t.adapterId,adapterName:t.adapterName,providerSessionId:t.providerSessionId,sessionId:t.sessionId,agentId:t.agentId,ownerInstanceId:t.ownerInstance.instanceId,claimToken:t.claimToken,fence:H(e,t.agentId,0),status:`held`,claimedAt:r,updatedAt:r};e.claims.set(i,structuredClone(a));let o=Y(e,t,n.agent);return o.kind===`ok`?Z(`claimed`,a,o):(e.claims.delete(i),o.kind===`conflict`?{outcome:`lead-conflict`,currentLeadAgentId:o.currentLeadAgentId}:o.result)}function Te(e,t,n){let r=X(e,t,n);if(r.kind===`refused`)return r.result;let i=Date.now(),a={...n,claimToken:t.claimToken,fence:H(e,t.agentId,n.fence),agentId:t.agentId,sessionId:t.sessionId,adapterName:t.adapterName,ownerInstanceId:t.ownerInstance.instanceId,status:`held`,claimedAt:i,updatedAt:i};e.claims.set(n.claimId,structuredClone(a));let o=Y(e,t,r.agent);return o.kind===`ok`?Z(`claimed`,a,o):(e.claims.set(n.claimId,structuredClone(n)),o.kind===`conflict`?{outcome:`lead-conflict`,currentLeadAgentId:o.currentLeadAgentId}:o.result)}function Ee(e,t,n){if(n.status!==`held`)return{outcome:`already-claimed`,holder:structuredClone(n)};let r=X(e,t,n);if(r.kind===`refused`)return r.result;let i=Y(e,t,r.agent);return i.kind===`conflict`?{outcome:`lead-conflict`,currentLeadAgentId:i.currentLeadAgentId}:i.kind===`refused`?i.result:Z(`idempotent`,n,i)}function De(e,t){let n=e.agents.get(t.agentId);if(n===void 0||n.sessionId!==t.sessionId)return{outcome:`not-found`,missing:`agent`};if(n.status===`disposed`&&t.designateLead?.clear!==!0)return{outcome:`agent-disposed`};let r=Y(e,t,n);return r.kind===`conflict`?{outcome:`lead-conflict`,currentLeadAgentId:r.currentLeadAgentId}:r.kind===`refused`?r.result:Z(`claimed`,null,r)}function Oe(e,t,n,r,i){let a=t.ownerInstance;if(a===void 0)throw Error(`keyed session ownership claim requires ownerInstance`);let o=U(a.instanceId,t.machineId),s=e.runtimeInstances.has(o);W(e,a.instanceId,t.machineId,Date.now());let c={...t,providerSessionId:n,ownerInstance:a};if(i===void 0){let n=we(e,c);return!s&&n.outcome!==`claimed`&&e.runtimeInstances.delete(o),J(r,t,n)}if(i.claimToken===c.claimToken){if(i.agentId===c.agentId&&i.sessionId===c.sessionId){let n=Ee(e,c,i);return s||e.runtimeInstances.delete(o),J(r,t,n)}return s||e.runtimeInstances.delete(o),{outcome:`already-claimed`,holder:structuredClone(i)}}if(G(e,{machineId:c.machineId,agentId:c.agentId,ownerInstanceId:c.ownerInstance.instanceId,topology:c.topology,supersededClaimToken:c.supersedes?.claimToken},i)){let n=Te(e,c,i);return!s&&n.outcome!==`claimed`&&e.runtimeInstances.delete(o),J(r,t,n)}return s||e.runtimeInstances.delete(o),{outcome:`already-claimed`,holder:structuredClone(i)}}function ke(e,t,n){let r=t.ownerInstance,i=t.recoveryGuard===void 0||r===void 0?void 0:U(r.instanceId,t.machineId),a=i===void 0||e.runtimeInstances.has(i);i!==void 0&&r!==void 0&&W(e,r.instanceId,t.machineId,Date.now());let o=De(e,t);return i!==void 0&&!a&&o.outcome!==`claimed`&&e.runtimeInstances.delete(i),J(n,t,o)}function Ae(e,n){let r=u(n),{providerSessionId:i}=r,a=e.agents.get(r.agentId),o=i===null?void 0:B(e.claims,r.machineId,r.adapterId,i);if(r.recoveryGuard!==void 0&&a!==void 0){let e=t(r,{status:a.status,adapterId:a.adapterId,runtimeOwner:a.runtimeOwner,recoveryAttemptId:a.recoveryAttemptId,revision:a.revision??0,currencyFence:a.currencyFence??0,currency:q(a)},o??null);if(e!==void 0)return e}return i===null?ke(e,r,a):Oe(e,r,i,a,o)}function je(e,t,n){let{agentId:r,claimToken:i,fence:a,expectedRevision:o,target:s}=n,c=t.revision??0,l=t.currencyFence??0;if(t.status===`disposed`)return{outcome:`agent-disposed`};let u=V(e.claims,i);if(u===void 0||u.agentId!==r||u.sessionId!==t.sessionId||u.status!==`held`||u.fence!==a)return{outcome:`not-owner`};if(a<l)return{outcome:`superseded`,currentFence:l};let d=q(t);if(d.currentAdapterSessionId===s.currentAdapterSessionId&&d.currentAdapterSessionIdState===s.currentAdapterSessionIdState&&l===a)return{outcome:`idempotent`,revision:c,currency:d,sessionSnapshotUpdated:!1};if(c!==o)return{outcome:`currency-changed`,revision:c,currency:d}}function Q(e,t,n){let r=je(e,t,n);if(r!==void 0)return r;let{agentId:i,fence:a,expectedRevision:o,target:s}=n;Ce(s.currentAdapterSessionId,s.currentAdapterSessionIdState);let c=t.adapterSessionId??null;t.currentAdapterSessionId=s.currentAdapterSessionId??void 0,t.currentAdapterSessionIdState=s.currentAdapterSessionIdState,t.currencyFence=a,t.revision=o+1,t.lastActivityAt=Date.now();let l=e.sessions.get(t.sessionId),u=!1;if(l!==void 0&&l.leadAgentId===i){let e=K(t,l.adapterSessionId??null);l.currentAdapterSessionId=e.currentAdapterSessionId,l.currentAdapterSessionIdState=e.currentAdapterSessionIdState,u=!0}return{outcome:`settled`,revision:o+1,currency:{adapterSessionId:c,...s},sessionSnapshotUpdated:u}}function Me(e,t,n){let r=V(e.claims,t);if(!(r===void 0||r.claimId===n))throw Error(`UNIQUE constraint failed: adapter_session_claims.claim_token (uniq_adapter_session_claims_token): "${t}" is already in use`)}function Ne(e,t){if(!(t===void 0||t.agentId!==e.agentId||t.status!==`held`||t.ownerInstanceId!==null&&t.ownerInstanceId!==e.ownerInstance.instanceId))return{generation:t,rollback:()=>{}}}function Pe(e,t,n){if(t.ownerInstanceId!==null)return t;let r={...t,ownerInstanceId:n};return e.claims.set(r.claimId,structuredClone(r)),r}function Fe(e,t,n){let{machineId:r,adapterId:i,agentId:a}=t,o=B(e.claims,r,i,n),s,c,l=Ne(t,o);if(l!==void 0)s=l.generation,c=l.rollback;else if(o!==void 0&&!G(e,{machineId:r,agentId:a,ownerInstanceId:t.ownerInstance.instanceId,topology:t.topology},o))return{outcome:`already-claimed`,holder:structuredClone(o)};else{let l=Date.now(),u=o?.claimId??crypto.randomUUID();Me(e,t.movement.claimToken,u),s={claimId:u,machineId:r,adapterId:i,adapterName:t.adapterName,providerSessionId:n,sessionId:t.sessionId,agentId:a,ownerInstanceId:t.ownerInstance.instanceId,claimToken:t.movement.claimToken,fence:H(e,a,o?.fence??0),status:`held`,claimedAt:l,updatedAt:l},e.claims.set(u,structuredClone(s)),c=o===void 0?()=>{e.claims.delete(u)}:()=>{e.claims.set(u,structuredClone(o))}}let u=t.movement.kind===`confirmed`?Array.from(e.claims.values()).filter(e=>e.agentId===a&&e.status===`held`&&e.claimId!==s.claimId):[];for(let t of u)e.claims.delete(t.claimId);return{generation:s,releasedProviderSessionIds:u.map(e=>e.providerSessionId),rollback:()=>{for(let t of u)e.claims.set(t.claimId,structuredClone(t));c()}}}function Ie(e,t){if(e.kind===`confirmed`)return{providerSessionId:e.providerSessionId,currency:{currentAdapterSessionId:e.providerSessionId,currentAdapterSessionIdState:`confirmed`}};let n=c(q(t));return n===null?null:{providerSessionId:n,currency:{currentAdapterSessionId:null,currentAdapterSessionIdState:`moved`}}}function Le(e,t){return e.on(i.read,e=>{let{agentId:n}=e.payload,r=t.agents.get(n);if(r===void 0){e.setResult({ownership:null});return}let i=Array.from(t.claims.values()).filter(e=>e.agentId===n).sort((e,t)=>e.fence-t.fence||e.claimId.localeCompare(t.claimId));e.setResult({ownership:{agentId:n,sessionId:r.sessionId,currency:q(r),revision:r.revision??0,currencyFence:r.currencyFence??0,claims:i.map(e=>structuredClone(e))}})})}function $(e,t){return e.on(i.settleCurrency,e=>{let n=t.agents.get(e.payload.agentId);if(n===void 0){e.setResult({outcome:`not-found`});return}e.setResult(Q(t,n,e.payload))})}function Re(e,t){return e.on(i.finalizeRecovery,e=>{let{agentId:n,attemptId:r,binding:i,action:a}=e.payload,o=t.agents.get(n);if(o===void 0||o.status!==`starting`||o.recoveryAttemptId!==r||o.adapterId!==i.adapterId||o.runtimeOwner?.machineId!==i.ownerMachineId||o.runtimeOwner?.instanceId!==i.ownerInstanceId){e.setResult({applied:!1});return}a.kind===`rollback`?(o.status=a.preimage.status,o.adapterId=a.preimage.adapterId,o.runtimeOwner=a.preimage.binding===void 0?void 0:{machineId:a.preimage.binding.ownerMachineId,instanceId:a.preimage.binding.ownerInstanceId},o.recoveryAttemptId=a.preimage.recoveryAttemptId):(o.status=a.kind===`succeeded`?`idle`:`dead`,o.recoveryAttemptId=void 0),o.lastActivityAt=Date.now(),e.setResult({applied:!0})})}function ze(e,t){return e.on(i.settleMovement,e=>{let n=r.parse(e.payload),i=n.ownerInstance;if(i===void 0)throw Error(`session ownership movement requires ownerInstance`);let a=U(i.instanceId,n.machineId),o=t.runtimeInstances.has(a);W(t,i.instanceId,n.machineId,Date.now());let s={...n,ownerInstance:i},c=t.agents.get(n.agentId);if(c===void 0||c.sessionId!==n.sessionId){o||t.runtimeInstances.delete(a),e.setResult({outcome:`not-found`});return}if(c.status===`disposed`){o||t.runtimeInstances.delete(a),e.setResult({outcome:`agent-disposed`});return}let l=Ie(s.movement,c);if(l===null){o||t.runtimeInstances.delete(a),e.setResult({outcome:`idempotent`,revision:c.revision??0,currency:q(c),sessionSnapshotUpdated:!1,claim:null});return}let u=Fe(t,s,l.providerSessionId);if(!(`generation`in u)){o||t.runtimeInstances.delete(a),e.setResult(u);return}let d=Q(t,c,{agentId:n.agentId,claimToken:u.generation.claimToken,fence:u.generation.fence,expectedRevision:n.expectedRevision,target:l.currency});if(d.outcome!==`settled`){u.rollback(),o||t.runtimeInstances.delete(a),e.setResult(d.outcome===`idempotent`?{...d,claim:structuredClone(u.generation)}:d);return}let f=Pe(t,u.generation,i.instanceId);e.setResult({outcome:`settled`,revision:d.revision,currency:d.currency,sessionSnapshotUpdated:d.sessionSnapshotUpdated,releasedProviderSessionIds:u.releasedProviderSessionIds,claim:structuredClone(f)})})}function Be(e,t){return e.on(i.releaseAgentClaims,e=>{let{agentId:n,claimToken:r,disposition:i}=e.payload,a=Array.from(t.claims.values()).filter(e=>e.agentId===n&&(r===void 0||e.claimToken===r));if(i===`released`){for(let e of a)t.claims.delete(e.claimId);e.setResult({releasedProviderSessionIds:a.map(e=>e.providerSessionId),markedClaims:[],claimTokenNotFound:r!==void 0&&a.length===0});return}let o=Date.now(),s=a.map(e=>{let n={...e,status:i,updatedAt:o};return t.claims.set(e.claimId,structuredClone(n)),n});e.setResult({releasedProviderSessionIds:[],markedClaims:s,claimTokenNotFound:r!==void 0&&a.length===0})})}function Ve(e,t){return e.on(i.release,e=>{let{agentId:n,claimToken:r,disposition:i}=e.payload,a=V(t.claims,r);if(a===void 0){e.setResult({outcome:`not-found`});return}if(a.agentId!==n){e.setResult({outcome:`not-owner`,holder:structuredClone(a)});return}if(i===`released`){t.claims.delete(a.claimId),e.setResult({outcome:`released`});return}let o={...a,status:i,updatedAt:Date.now()};t.claims.set(a.claimId,structuredClone(o)),e.setResult({outcome:`marked`,claim:structuredClone(o)})})}function He(e,t){return e.on(i.listClaims,e=>{let{machineId:n,adapterId:r,providerSessionId:i,statuses:a}=e.payload,o=Array.from(t.claims.values()).filter(e=>e.machineId===n&&(r===void 0||e.adapterId===r)&&(i===void 0||e.providerSessionId===i)&&(a===void 0||a.includes(e.status)));o.sort((e,t)=>e.claimedAt-t.claimedAt||e.claimId.localeCompare(t.claimId)),e.setResult({claims:o.map(e=>structuredClone(e))})})}function Ue(e,t){return e.on(i.retireInstance,e=>{let n=Date.now(),r=0;for(let[i,a]of t.runtimeInstances)a.instanceId!==e.payload.instanceId||a.retiredAt!==null||(t.runtimeInstances.set(i,{...a,retiredAt:n}),r+=1);e.setResult({retiredMachines:r})})}function We(e,t){return e.on(i.getRuntimeInstance,e=>{let n=t.runtimeInstances.get(U(e.payload.instanceId,e.payload.machineId));e.setResult({instance:n===void 0?null:structuredClone(n)})})}function Ge(e,t=d()){let n=[Le(e,t),Re(e,t),e.on(i.claim,e=>{e.setResult(Ae(t,e.payload))}),$(e,t),ze(e,t),Ve(e,t),Be(e,t),He(e,t),Ue(e,t),We(e,t)];return()=>{for(let e=n.length-1;e>=0;--e)n[e]?.()}}export{E as a,_ as c,p as d,m as f,D as i,h as l,xe as n,T as o,d as p,I as r,v as s,Ge as t,g as u};
|
|
1
|
+
import{a as e,t}from"./ownership-recovery-guard-C00rcqvz.mjs";import{SessionStorageSubjects as n}from"./services/session/storage/namespace.mjs";import{SessionOwnershipSettleMovementRequestSchema as r,SessionOwnershipStorageSubjects as i,SessionStorageSetRequestSchema as a,SessionStorageUpdateSchema as o,SessionSubjects as s,resolveResumableAdapterSessionId as c}from"@makaio/framework/contracts";import{isInactiveSafeLeadDesignationMutation as l,normalizeSessionOwnershipClaimRequest as u}from"@makaio/framework/contracts/session";function d(){return{sessions:new Map,sessionOwnerPrincipalIds:new Map,agents:new Map,claims:new Map,runtimeInstances:new Map}}function f(e,t){for(let[n,r]of e.claims)t(r)&&e.claims.delete(n)}function ee(e,t){let n=e?.clientAccountId??null,r=t.clientAccountId??null;return!r||n===r?null:{previousClientAccountId:n,clientAccountId:r}}function p(e,t){let n=t.lastClientIdentityObservation;if(t.clientAccountId!==void 0&&!n)throw Error(`Session "${t.sessionId}" cannot persist clientAccountId without lastClientIdentityObservation`);if(t.clientAccountId!==void 0&&t.clientId===void 0)throw Error(`Session "${t.sessionId}" cannot persist clientAccountId without clientId`);if(n&&t.clientId!==void 0&&t.clientId!==n.clientId)throw Error(`Session "${t.sessionId}" cannot persist clientId "${t.clientId}" because lastClientIdentityObservation belongs to "${n.clientId}"`)}function m(e,t,n){let r=ee(t,n);if(!r)return;let i=n.lastClientIdentityObservation;if(!i)return;let a={sessionId:n.sessionId,clientId:i.clientId,previousClientAccountId:r.previousClientAccountId,clientAccountId:r.clientAccountId,source:i.source,observedAt:i.observedAt,lastClientIdentityObservation:structuredClone(i)};queueMicrotask(()=>{Promise.resolve().then(()=>e.emit(s.clientAccount.changed,a)).catch(e=>{console.error(`[SessionStorage] Failed to emit session.clientAccount.changed:`,e)})})}function h(e){switch(e){case`fork`:return`fork`;case`subagent`:return`subagent`;case`compress`:return`compress`;case`root`:return;default:return}}function g(e){switch(e.kind){case`root`:return{kind:`root`,parentAdapterSessionId:null,forkPointMessageId:null};case`fork`:return{kind:`fork`,parentAdapterSessionId:e.parentAdapterSessionId,forkPointMessageId:e.forkPointMessageId};case`subagent`:return{kind:`subagent`,parentAdapterSessionId:e.parentAdapterSessionId,forkPointMessageId:null};case`compress`:return{kind:`compress`,parentAdapterSessionId:e.parentAdapterSessionId,forkPointMessageId:null};default:return e.kind}}function _(){let e=0;return()=>{let t=Date.now();return e=t>e?t:e+1,e}}function v(e){return e.activation===`live`?`active`:`discovered`}const y=_();function te(e,t){return e===`imported`||t===`imported`?`imported`:e===`tracking`||t===`tracking`?`tracking`:e??t??`discovered`}function b(e,t,n){n!==void 0&&(e[t]=n)}function ne(e){return e.status===`closed`||e.status===`archived`||e.status===`active`&&e.isImported===!0}function re(e,t,n){if(!ne(e)){if(n===`live`){e.status===`discovered`&&(e.status=`active`);return}t===`discovered`&&(e.status=`discovered`)}}function x(e,t,n){let r=e.startedAt??n,i=h(e.kind);return{sessionId:t,createdAt:r,lastActivityAt:r,agents:[],status:v(e),branchKind:i,generation:0,adapterName:e.source,adapterSessionId:e.externalSessionId,adapterId:e.adapterId,clientId:e.clientId,isOrchestrated:!1,isImported:!0,title:e.title??void 0,targetWorkingDirectory:e.cwd??void 0,source:e.source,parentExternalSessionId:e.parentAdapterSessionId??void 0,logFilePath:e.logFilePath??void 0,discoveredAt:n,importStatus:e.importStatus??`discovered`,forkPointMessageId:e.forkPointMessageId??void 0,metadata:e.metadata,lastClientIdentityObservation:e.lastClientIdentityObservation,isSidechain:e.isSidechain,machineId:e.machineId??void 0}}function ie(e,t,n){let r=te(e.importStatus,t.importStatus);re(e,r,t.activation),e.isImported=!0,e.importStatus=r,e.adapterName??=t.source,e.adapterSessionId??=t.externalSessionId,e.source??=t.source,e.discoveredAt??=n}function ae(e,t){t.logFilePath!==void 0&&t.logFilePath!==null&&(e.logFilePath??=t.logFilePath),t.cwd!==null&&(e.targetWorkingDirectory=t.cwd),t.title!==void 0&&t.title!==null&&(e.title=t.title),e.forkPointMessageId===void 0&&t.forkPointMessageId!==null&&(e.forkPointMessageId=t.forkPointMessageId),e.parentExternalSessionId===void 0&&t.parentAdapterSessionId!==null&&(e.parentExternalSessionId=t.parentAdapterSessionId);let n=h(t.kind);n!==void 0&&e.branchKind===void 0&&(e.branchKind=n),b(e,`adapterId`,t.adapterId),b(e,`clientId`,t.clientId),t.metadata!==void 0&&(e.metadata={...t.metadata,...e.metadata??{}}),b(e,`isSidechain`,t.isSidechain),b(e,`lastClientIdentityObservation`,t.lastClientIdentityObservation),t.machineId===null?e.machineId=void 0:t.machineId!==void 0&&(e.machineId??=t.machineId)}function oe(e,t,n){t.startedAt!==void 0&&((n===void 0||e.createdAt===n)&&(e.createdAt=t.startedAt),(n===void 0||e.lastActivityAt===n)&&(e.lastActivityAt=t.startedAt))}function se(e,t,n){let r=e.discoveredAt;ie(e,t,n),ae(e,t),oe(e,t,r)}function S(e,t){if(t.parentExternalSessionId===void 0)return;let n=t.source??t.adapterName,r=Array.from(e.values()).find(e=>e.adapterSessionId===t.parentExternalSessionId&&(e.source??e.adapterName)===n);r&&(t.parentSessionId=r.sessionId,t.rootSessionId=r.rootSessionId??r.sessionId)}function C(e,t,n){if(n){e.emit(s.created,{sessionId:t.sessionId,parentSessionId:t.parentSessionId??null,branchKind:t.branchKind??null,createdAt:t.createdAt}).catch(e=>console.error(`[SessionStorage] Failed to emit session.created:`,e));return}e.emit(s.updated,{sessionId:t.sessionId,changedProperties:[`source`,`targetWorkingDirectory`,`title`]}).catch(e=>console.error(`[SessionStorage] Failed to emit session.updated:`,e))}function ce(e){let t=0,n=0,r=0;for(let i of e)i.importStatus===`imported`&&(t+=1),i.importStatus===`tracking`&&(n+=1),i.importStatus===`discovered`&&(r+=1);return{total:e.length,imported:t,tracking:n,discovered:r}}function w(e,t,n){return Array.from(e.values()).find(e=>e.adapterSessionId===n&&e.source===t)}function le(e,t){let n=[];return t.cwd!==void 0&&(e.targetWorkingDirectory=t.cwd,n.push(`targetWorkingDirectory`)),t.logFilePath!==void 0&&(e.logFilePath=t.logFilePath,n.push(`logFilePath`)),t.machineId!==void 0&&(e.machineId=t.machineId??void 0,n.push(`machineId`)),t.startMode===`compact`&&(e.generation=(e.generation??0)+1,n.push(`generation`)),n}function ue(e,t,n){e.emit(s.importStatusChanged,{sessionId:t.sessionId,importStatus:n}).catch(e=>console.error(`[SessionStorage] Failed to emit session.importStatusChanged:`,e));let r=t.source??t.adapterName;n!==`imported`||t.adapterSessionId===void 0||r===void 0||e.emit(s.import.completed,{sessionId:t.sessionId,adapterSessionId:t.adapterSessionId,source:r}).catch(e=>console.error(`[SessionStorage] Failed to emit session.import.completed:`,e))}function de(e,t){return e.on(n.rebindObserved,n=>{let r=n.payload,i=w(t,r.source,r.externalSessionId);if(!i){n.setResult({outcome:`not-found`});return}let a=le(i,r);n.setResult({outcome:`rebound`,sessionId:i.sessionId}),a.length>0&&e.emit(s.updated,{sessionId:i.sessionId,changedProperties:a}).catch(e=>console.error(`[SessionStorage] Failed to emit session.updated:`,e))})}function fe(e,t,r){return e.on(n.registerOwnedImport,n=>{let i=structuredClone(n.payload),a=w(t,i.import.source,i.import.externalSessionId);if(a){let e=r.get(a.sessionId);e===void 0?n.setResult({outcome:`unowned`}):e===i.ownerPrincipalId?n.setResult({outcome:`owned`,sessionId:a.sessionId}):n.setResult({outcome:`foreign`});return}let o=x(i.import,crypto.randomUUID(),y());t.set(o.sessionId,o),r.set(o.sessionId,i.ownerPrincipalId),S(t,o),C(e,o,!0),n.setResult({outcome:`created`,sessionId:o.sessionId})})}function pe(e,t,r){return e.on(n.verifyOwner,e=>{let n=t.get(e.payload.sessionId);if(!n){e.setResult({outcome:`missing`});return}let i=r.get(n.sessionId);i===void 0?e.setResult({outcome:`unowned`}):i===e.payload.ownerPrincipalId?e.setResult({outcome:`owned`}):e.setResult({outcome:`foreign`})})}function me(e){let{bus:t,store:r,sessionOwnerPrincipalIds:i,cloneSession:a,populateAgents:o}=e;return[t.on(n.importUpsert,e=>{let n=structuredClone(e.payload),i=w(r,n.source,n.externalSessionId),a=y(),o=i===void 0,s=i??x(n,crypto.randomUUID(),a);i?(se(i,n,a),i.parentExternalSessionId!==void 0&&i.parentSessionId===void 0&&S(r,i)):(r.set(s.sessionId,s),S(r,s)),C(t,s,o),e.setResult({sessionId:s.sessionId,created:o})}),fe(t,r,i),pe(t,r,i),de(t,r),t.on(n.getByLogFilePath,async e=>{let n=Array.from(r.values()).find(t=>t.logFilePath===e.payload.logFilePath);if(!n){e.setResult({session:null});return}let i=await o(t,n.sessionId);e.setResult({session:{...a(n),agents:i}})}),t.on(n.listImported,async e=>{let{source:n,importStatus:i}=e.payload,s=Array.from(r.values()).filter(e=>e.isImported===!0).filter(e=>n===void 0||e.source===n).filter(e=>i===void 0||e.importStatus===i).sort((e,t)=>t.createdAt-e.createdAt),c=await Promise.all(s.map(async e=>({...a(e),agents:await o(t,e.sessionId)})));e.setResult({sessions:c})}),t.on(n.countBySource,e=>{let t=Array.from(r.values()).filter(t=>t.isImported===!0&&t.source===e.payload.source);e.setResult(ce(t))}),t.on(n.updateImportStatus,e=>{let n=r.get(e.payload.sessionId),i=e.payload.importStatus;if(!n||n.importStatus===i){e.setResult({success:!1});return}n.importStatus=i,i===`imported`&&n.status===`discovered`&&(n.status=`active`),e.setResult({success:!0}),ue(t,n,i)})]}function T(e,t){e.emit(s.updated,{sessionId:t,changedProperties:[`generation`]}).catch(e=>console.error(`[SessionStorage] Failed to emit session.updated:`,e))}function E(e,t){let n=t.expectIdentityOpenForLead;return n===void 0?!1:e.adapterName!==void 0||e.adapterId!==void 0?!0:(e.leadAgentId??null)!==n}function D(e,t){let n=t.reconcileAdapterSession;if(n===void 0)return!1;if(e.adapterSessionId!==void 0||e.leadAgentId!==n.agentId)return!0;let r=e.adapterName===void 0&&e.adapterId===void 0,i=e.adapterName===n.adapterName&&e.adapterId===n.adapterId;return!r&&!i}async function O(t,n){let r=await t.requestOptional(e.listBySession,{sessionId:n});return r.handled?r.data.agents:[]}function k(e){return structuredClone(e)}function A(e,t,n){n!==void 0&&(e[t]=n)}function j(e,t,n){n!==void 0&&(e[t]=n??void 0)}function he(e,t){let n=e;return t.status!==`all`&&(n=n.filter(e=>e.status===t.status)),t.executionTargetId!==void 0&&(n=n.filter(e=>e.executionTargetId===t.executionTargetId)),n}function M(e,t){e.currentAdapterSessionId=t?.currentAdapterSessionId,e.currentAdapterSessionIdState=t?.currentAdapterSessionIdState??`inherited`,t!==null&&(e.leadAgentId=t.leadAgentId),e.generation=t?.generation??e.generation??0}function N(e,t){A(e,`status`,t.status),t.parentSessionId!==void 0&&(e.parentSessionId=t.parentSessionId??void 0),A(e,`contextInheritance`,t.contextInheritance),A(e,`rootSessionId`,t.rootSessionId),A(e,`forkPointMessageId`,t.forkPointMessageId),A(e,`branchKind`,t.branchKind),A(e,`isOrchestrated`,t.isOrchestrated),A(e,`clientId`,t.clientId),A(e,`clientAccountId`,t.clientAccountId),A(e,`lastClientIdentityObservation`,t.lastClientIdentityObservation),A(e,`title`,t.title),A(e,`targetWorkingDirectory`,t.targetWorkingDirectory),A(e,`createdAt`,t.createdAt),A(e,`lastActivityAt`,t.lastActivityAt),A(e,`machineId`,t.machineId),t.identity!==void 0&&(e.adapterName=t.identity.adapterName,e.adapterId=t.identity.adapterId,A(e,`adapterSessionId`,t.identity.adapterSessionId)),t.reconcileAdapterSession!==void 0&&(e.adapterName=t.reconcileAdapterSession.adapterName,e.adapterId=t.reconcileAdapterSession.adapterId,e.adapterSessionId=t.reconcileAdapterSession.adapterSessionId,e.lastActivityAt=t.reconcileAdapterSession.lastActivityAt),j(e,`executionTargetId`,t.executionTargetId),j(e,`approvalPolicyOverride`,t.approvalPolicyOverride),j(e,`metadata`,t.metadata),t.spawningToolCallId===null?e.spawningToolCallId=void 0:t.spawningToolCallId!==void 0&&e.spawningToolCallId===void 0&&(e.spawningToolCallId=t.spawningToolCallId),t.advanceGeneration===!0&&(e.generation=(e.generation??0)+1)}function P(e,t){return e.on(n.list,async n=>{let{status:r=`all`,limit:i,offset:a=0,includePreview:o=!1,executionTargetId:s}=n.payload,c=he(Array.from(t.values()),{status:r,executionTargetId:s});c.sort((e,t)=>t.lastActivityAt-e.lastActivityAt);let l=c.length;i!==void 0&&(c=c.slice(a,a+i));let u=await Promise.all(c.map(async t=>({...k(t),agents:await O(e,t.sessionId)}))),d=o?u.map(e=>({...e,preview:{messageCount:0,firstUserMessage:null}})):u;n.setResult({sessions:d,total:l})})}function F(e,t){return e.on(n.update,async n=>{let r=structuredClone(o.request.parse(n.payload)),i=t.get(r.sessionId);if(!i){n.setResult({success:!1,clientAccountChanged:!1});return}if(r.expectedStatus!==void 0&&!r.expectedStatus.includes(i.status)){n.setResult({success:!1,clientAccountChanged:!1});return}if(E(i,r)){n.setResult({success:!1,clientAccountChanged:!1});return}if(D(i,r)){n.setResult({success:!1,clientAccountChanged:!1});return}let a=k(i);p(a,{sessionId:i.sessionId,clientId:r.clientId??i.clientId,clientAccountId:r.clientAccountId??i.clientAccountId,lastClientIdentityObservation:r.lastClientIdentityObservation??i.lastClientIdentityObservation}),N(i,r),n.setResult({success:!0,clientAccountChanged:(a.clientAccountId??null)!==(i.clientAccountId??null)}),m(e,a,k(i)),r.advanceGeneration===!0&&T(e,r.sessionId)})}function I(e,t=d()){let r=t.sessions,i=[];return i.push(e.on(n.get,async t=>{let n=r.get(t.payload.sessionId);if(!n){t.setResult({session:null});return}let i=await O(e,t.payload.sessionId);t.setResult({session:{...k(n),agents:i}})})),i.push(e.on(n.set,async t=>{let{sessionId:n,session:i,ifAbsent:o}=a.parse(t.payload);if(o&&r.has(n)){t.setResult({success:!1,clientAccountChanged:!1});return}let s=structuredClone(i),c=r.get(n)??null,l=c?k(c):null;M(s,l),p(c,s),r.set(n,s),t.setResult({success:!0,clientAccountChanged:(l?.clientAccountId??null)!==(s.clientAccountId??null)}),m(e,l,k(s))})),i.push(e.on(n.delete,async e=>{let n=new Set;for(let[r,i]of t.agents)i.sessionId===e.payload.sessionId&&(n.add(r),t.agents.delete(r));f(t,t=>t.sessionId===e.payload.sessionId||n.has(t.agentId)),t.sessionOwnerPrincipalIds.delete(e.payload.sessionId),r.delete(e.payload.sessionId),e.setResult({success:!0}),await e.next()})),i.push(P(e,r)),i.push(e.on(n.getChildren,e=>{let{sessionId:t}=e.payload,n=Array.from(r.values()),i=n.filter(e=>e.parentSessionId===t),a=new Set(n.map(e=>e.parentSessionId).filter(e=>!!e)),o=i.map(e=>({sessionId:e.sessionId,title:e.title??null,forkPointMessageId:e.forkPointMessageId??null,branchKind:e.branchKind??null,messageCount:0,hasChildren:a.has(e.sessionId),spawningToolCallId:e.spawningToolCallId}));e.setResult({children:o})})),i.push(e.on(n.getStatusCounts,e=>{e.payload;let t=Array.from(r.values()),n=t.filter(e=>e.status===`active`).length,i=t.filter(e=>e.status===`closed`).length,a=t.filter(e=>e.status===`archived`).length,o=t.filter(e=>e.status===`discovered`).length;e.setResult({all:n+i+a+o,active:n,closed:i,archived:a,discovered:o})})),i.push(F(e,r)),i.push(L(e,r)),i.push(...me({bus:e,store:r,sessionOwnerPrincipalIds:t.sessionOwnerPrincipalIds,populateAgents:O,cloneSession:k})),()=>i.forEach(e=>e())}function L(t,r){return t.on(n.getByAdapterSessionId,async n=>{let{adapterSessionId:i,source:a,adapterName:o}=n.payload,s=Array.from(r.values()).filter(e=>e.adapterSessionId!==void 0&&e.adapterSessionId===i&&(a===void 0||e.source===a)&&(o===void 0||e.adapterName===o)),c=s[0];if(s.length!==1||c===void 0){n.setResult({session:null});return}let l=await t.requestOptional(e.listBySession,{sessionId:c.sessionId}),u=l.handled?l.data.agents:[];n.setResult({session:{...k(c),agents:u}})})}function R(e){return structuredClone(e)}function ge(e,t){let{adapterId:n,runtimeOwner:r,adapterSessionId:i,cwd:a,model:o,allowedDirectories:s,providerConfigId:c}=t;return n===void 0&&r===void 0&&i===void 0&&a===void 0&&o===void 0&&s===void 0&&c===void 0?!1:(n!==void 0&&(e.adapterId=n),r!==void 0&&(e.runtimeOwner=structuredClone(r)),i!==void 0&&(e.adapterSessionId=i),a!==void 0&&(e.cwd=a),o!==void 0&&(e.model=o),s!==void 0&&(e.allowedDirectories=s),c===null?delete e.providerConfigId:c!==void 0&&(e.providerConfigId=c),!0)}function _e(e){return{status:e.status,recoveryAttemptId:e.recoveryAttemptId,adapterSessionId:e.adapterSessionId,runtimeOwner:structuredClone(e.runtimeOwner),currentAdapterSessionId:e.currentAdapterSessionId,currentAdapterSessionIdState:e.currentAdapterSessionIdState,revision:e.revision,currencyFence:e.currencyFence}}function ve(e,t,n){let r=e.get(t),i=r===void 0?void 0:_e(r);e.set(t,{...structuredClone(n),status:i?.status===`disposed`?`disposed`:n.status,recoveryAttemptId:i===void 0?n.recoveryAttemptId:i.recoveryAttemptId,adapterSessionId:i===void 0?n.adapterSessionId:i.adapterSessionId,runtimeOwner:i===void 0?structuredClone(n.runtimeOwner):i.runtimeOwner,currentAdapterSessionId:i?.currentAdapterSessionId,currentAdapterSessionIdState:i?.currentAdapterSessionIdState??`inherited`,revision:i?.revision??0,currencyFence:i?.currencyFence??0})}function z(e,t,n){let r=e.get(t);return r===void 0?!1:n(r)}function ye(e,t,n,r){let i=e.get(t);return i===void 0?{success:!1,transitioned:!1}:i.status===`disposed`||r!==void 0&&!r.includes(i.status)?{success:!0,transitioned:!1}:(i.status=n,i.lastActivityAt=Date.now(),{success:!0,transitioned:!0})}function be(e,t){return f(e,e=>e.agentId===t),e.agents.delete(t)}function xe(t,n=d()){let r=n.agents,i=[];return i.push(t.on(e.get,e=>{let t=r.get(e.payload.agentId);e.setResult({agent:t===void 0?null:R(t)})})),i.push(t.on(e.set,e=>{ve(r,e.payload.agentId,e.payload.agent),e.setResult({success:!0})})),i.push(t.on(e.delete,e=>{e.setResult({success:be(n,e.payload.agentId)})})),i.push(t.on(e.listByAdapter,e=>{let{adapterName:t,status:n}=e.payload,i=Array.from(r.values()).filter(e=>e.adapterName===t);n&&n!==`all`&&(i=i.filter(e=>e.status===n)),e.setResult({agents:i.map(R)})})),i.push(t.on(e.listBySession,e=>{let t=Array.from(r.values()).filter(t=>t.sessionId===e.payload.sessionId);e.setResult({agents:t.map(R)})})),i.push(t.on(e.updateStatus,e=>{let{agentId:t,status:n,expectedStatus:i}=e.payload;e.setResult(ye(r,t,n,i))})),i.push(t.on(e.updateActivity,e=>{let t=z(r,e.payload.agentId,t=>(t.lastActivityAt=e.payload.lastActivityAt,!0));e.setResult({success:t})})),i.push(t.on(e.updateRuntime,e=>{let{agentId:t,adapterId:n,runtimeOwner:i,adapterSessionId:a,cwd:o,model:s,allowedDirectories:c,providerConfigId:l}=structuredClone(e.payload),u=z(r,t,e=>ge(e,{adapterId:n,runtimeOwner:i,adapterSessionId:a,cwd:o,model:s,allowedDirectories:c,providerConfigId:l})?(e.lastActivityAt=Date.now(),!0):!1);e.setResult({success:u})})),()=>i.forEach(e=>e())}function B(e,t,n,r){for(let i of e.values())if(i.machineId===t&&i.adapterId===n&&i.providerSessionId===r)return i}function V(e,t){for(let n of e.values())if(n.claimToken===t)return n}function Se(e,t){let n=0;for(let r of e.values())r.agentId===t&&r.fence>n&&(n=r.fence);return n}function H(e,t,n){let r=e.agents.get(t)?.currencyFence??0;return 1+Math.max(n,r,Se(e.claims,t))}function U(e,t){return`${e.length}:${e}${t}`}function W(e,t,n,r){let i=U(t,n),a=e.runtimeInstances.get(i);if(a!==void 0)return a;let o=1;for(let t of e.runtimeInstances.values())t.machineId===n&&t.incarnation>=o&&(o=t.incarnation+1);let s={instanceId:t,machineId:n,incarnation:o,startedAt:r,retiredAt:null};return e.runtimeInstances.set(i,structuredClone(s)),s}function G(e,t,n){if(n.ownerInstanceId===null)return!1;if(t.supersededClaimToken===n.claimToken||n.status===`held`&&n.agentId===t.agentId&&n.ownerInstanceId===t.ownerInstanceId)return!0;let r=e.runtimeInstances.get(U(n.ownerInstanceId,n.machineId));if(r?.retiredAt!==null&&r?.retiredAt!==void 0)return!0;if(t.topology===`machine-exclusive`){let n=e.runtimeInstances.get(U(t.ownerInstanceId,t.machineId));if(n!==void 0&&r!==void 0&&n.incarnation>r.incarnation)return!0}return!1}function K(e,t){let n=e.currentAdapterSessionIdState??`inherited`;if(n!==`inherited`)return{currentAdapterSessionId:e.currentAdapterSessionId,currentAdapterSessionIdState:n};let r=e.adapterSessionId??null;return r===t?{currentAdapterSessionId:void 0,currentAdapterSessionIdState:`inherited`}:r===null?{currentAdapterSessionId:void 0,currentAdapterSessionIdState:`moved`}:{currentAdapterSessionId:r,currentAdapterSessionIdState:`confirmed`}}function Ce(e,t){if(t===`confirmed`!=(e!==null))throw Error(`Currency pairing invariant violated: confirmed ↔ id !== null (state="${t}", id=${e===null?`null`:`present`})`)}function q(e){return{adapterSessionId:e.adapterSessionId??null,currentAdapterSessionId:e.currentAdapterSessionId??null,currentAdapterSessionIdState:e.currentAdapterSessionIdState??`inherited`}}function J(e,t,n){if(t.recoveryGuard!==void 0&&e!==void 0&&(n.outcome===`claimed`||n.outcome===`idempotent`)){let r=t.recoveryAttemptId;if(r===void 0)throw Error(`guarded recovery claim requires recoveryAttemptId`);let i={status:e.status,adapterId:e.adapterId,...e.runtimeOwner===void 0?{}:{binding:{adapterId:e.adapterId,ownerMachineId:e.runtimeOwner.machineId,ownerInstanceId:e.runtimeOwner.instanceId}},...e.recoveryAttemptId===void 0?{}:{recoveryAttemptId:e.recoveryAttemptId}};if(e.status=`starting`,e.adapterId=t.adapterId,t.ownerInstance===void 0)throw Error(`guarded recovery claim requires ownerInstance`);return e.runtimeOwner={machineId:t.machineId,instanceId:t.ownerInstance.instanceId},e.recoveryAttemptId=r,e.lastActivityAt=Date.now(),{...n,recovery:{attemptId:r,preimage:i}}}return n}function Y(e,t,n){let r=e.sessions.get(t.sessionId);if(r===void 0)return{kind:`refused`,result:{outcome:`not-found`,missing:`session`}};if(r.status!==`active`&&(r.status!==`closed`||!l(t)))return{kind:`refused`,result:{outcome:`session-not-active`,status:r.status}};let i=r.leadAgentId??null,a=t.designateLead;if(a===void 0)return{kind:`ok`,leadDesignated:!1,previousLeadAgentId:i};let o=a.clear===!0,s=o?null:n.agentId;if(!o&&n.status===`disposed`)return{kind:`refused`,result:{outcome:`agent-disposed`}};if(!o&&i===n.agentId)return{kind:`ok`,leadDesignated:!1,previousLeadAgentId:i};if(i!==a.expectedLeadAgentId)return{kind:`conflict`,currentLeadAgentId:i};if(r.leadAgentId=s??void 0,!o){let e=K(n,r.adapterSessionId??null);r.currentAdapterSessionId=e.currentAdapterSessionId,r.currentAdapterSessionIdState=e.currentAdapterSessionIdState}return{kind:`ok`,leadDesignated:!0,previousLeadAgentId:i}}function X(e,t,n){if(!e.sessions.has(t.sessionId))return{kind:`refused`,result:{outcome:`not-found`,missing:`session`}};let r=e.agents.get(t.agentId);if(r===void 0||r.sessionId!==t.sessionId)return{kind:`refused`,result:{outcome:`not-found`,missing:`agent`}};if(r.status===`disposed`)return{kind:`refused`,result:{outcome:`agent-disposed`}};let i=V(e.claims,t.claimToken);if(i!==void 0&&i.claimId!==n?.claimId)throw Error(`UNIQUE constraint failed: adapter_session_claims.claim_token (uniq_adapter_session_claims_token): "${t.claimToken}" is already in use`);return{kind:`ok`,agent:r}}function Z(e,t,n){return{outcome:e,claim:t===null?null:structuredClone(t),leadDesignated:n.leadDesignated,previousLeadAgentId:n.previousLeadAgentId}}function we(e,t){let n=X(e,t);if(n.kind===`refused`)return n.result;let r=Date.now(),i=crypto.randomUUID(),a={claimId:i,machineId:t.machineId,adapterId:t.adapterId,adapterName:t.adapterName,providerSessionId:t.providerSessionId,sessionId:t.sessionId,agentId:t.agentId,ownerInstanceId:t.ownerInstance.instanceId,claimToken:t.claimToken,fence:H(e,t.agentId,0),status:`held`,claimedAt:r,updatedAt:r};e.claims.set(i,structuredClone(a));let o=Y(e,t,n.agent);return o.kind===`ok`?Z(`claimed`,a,o):(e.claims.delete(i),o.kind===`conflict`?{outcome:`lead-conflict`,currentLeadAgentId:o.currentLeadAgentId}:o.result)}function Te(e,t,n){let r=X(e,t,n);if(r.kind===`refused`)return r.result;let i=Date.now(),a={...n,claimToken:t.claimToken,fence:H(e,t.agentId,n.fence),agentId:t.agentId,sessionId:t.sessionId,adapterName:t.adapterName,ownerInstanceId:t.ownerInstance.instanceId,status:`held`,claimedAt:i,updatedAt:i};e.claims.set(n.claimId,structuredClone(a));let o=Y(e,t,r.agent);return o.kind===`ok`?Z(`claimed`,a,o):(e.claims.set(n.claimId,structuredClone(n)),o.kind===`conflict`?{outcome:`lead-conflict`,currentLeadAgentId:o.currentLeadAgentId}:o.result)}function Ee(e,t,n){if(n.status!==`held`)return{outcome:`already-claimed`,holder:structuredClone(n)};let r=X(e,t,n);if(r.kind===`refused`)return r.result;let i=Y(e,t,r.agent);return i.kind===`conflict`?{outcome:`lead-conflict`,currentLeadAgentId:i.currentLeadAgentId}:i.kind===`refused`?i.result:Z(`idempotent`,n,i)}function De(e,t){let n=e.agents.get(t.agentId);if(n===void 0||n.sessionId!==t.sessionId)return{outcome:`not-found`,missing:`agent`};if(n.status===`disposed`&&t.designateLead?.clear!==!0)return{outcome:`agent-disposed`};let r=Y(e,t,n);return r.kind===`conflict`?{outcome:`lead-conflict`,currentLeadAgentId:r.currentLeadAgentId}:r.kind===`refused`?r.result:Z(`claimed`,null,r)}function Oe(e,t,n,r,i){let a=t.ownerInstance;if(a===void 0)throw Error(`keyed session ownership claim requires ownerInstance`);let o=U(a.instanceId,t.machineId),s=e.runtimeInstances.has(o);W(e,a.instanceId,t.machineId,Date.now());let c={...t,providerSessionId:n,ownerInstance:a};if(i===void 0){let n=we(e,c);return!s&&n.outcome!==`claimed`&&e.runtimeInstances.delete(o),J(r,t,n)}if(i.claimToken===c.claimToken){if(i.agentId===c.agentId&&i.sessionId===c.sessionId){let n=Ee(e,c,i);return s||e.runtimeInstances.delete(o),J(r,t,n)}return s||e.runtimeInstances.delete(o),{outcome:`already-claimed`,holder:structuredClone(i)}}if(G(e,{machineId:c.machineId,agentId:c.agentId,ownerInstanceId:c.ownerInstance.instanceId,topology:c.topology,supersededClaimToken:c.supersedes?.claimToken},i)){let n=Te(e,c,i);return!s&&n.outcome!==`claimed`&&e.runtimeInstances.delete(o),J(r,t,n)}return s||e.runtimeInstances.delete(o),{outcome:`already-claimed`,holder:structuredClone(i)}}function ke(e,t,n){let r=t.ownerInstance,i=t.recoveryGuard===void 0||r===void 0?void 0:U(r.instanceId,t.machineId),a=i===void 0||e.runtimeInstances.has(i);i!==void 0&&r!==void 0&&W(e,r.instanceId,t.machineId,Date.now());let o=De(e,t);return i!==void 0&&!a&&o.outcome!==`claimed`&&e.runtimeInstances.delete(i),J(n,t,o)}function Ae(e,n){let r=u(n),{providerSessionId:i}=r,a=e.agents.get(r.agentId),o=i===null?void 0:B(e.claims,r.machineId,r.adapterId,i);if(r.recoveryGuard!==void 0&&a!==void 0){let e=t(r,{status:a.status,adapterId:a.adapterId,runtimeOwner:a.runtimeOwner,recoveryAttemptId:a.recoveryAttemptId,revision:a.revision??0,currencyFence:a.currencyFence??0,currency:q(a)},o??null);if(e!==void 0)return e}return i===null?ke(e,r,a):Oe(e,r,i,a,o)}function je(e,t,n){let{agentId:r,claimToken:i,fence:a,expectedRevision:o,target:s}=n,c=t.revision??0,l=t.currencyFence??0;if(t.status===`disposed`)return{outcome:`agent-disposed`};let u=V(e.claims,i);if(u===void 0||u.agentId!==r||u.sessionId!==t.sessionId||u.status!==`held`||u.fence!==a)return{outcome:`not-owner`};if(a<l)return{outcome:`superseded`,currentFence:l};let d=q(t);if(d.currentAdapterSessionId===s.currentAdapterSessionId&&d.currentAdapterSessionIdState===s.currentAdapterSessionIdState&&l===a)return{outcome:`idempotent`,revision:c,currency:d,sessionSnapshotUpdated:!1};if(c!==o)return{outcome:`currency-changed`,revision:c,currency:d}}function Q(e,t,n){let r=je(e,t,n);if(r!==void 0)return r;let{agentId:i,fence:a,expectedRevision:o,target:s}=n;Ce(s.currentAdapterSessionId,s.currentAdapterSessionIdState);let c=t.adapterSessionId??null;t.currentAdapterSessionId=s.currentAdapterSessionId??void 0,t.currentAdapterSessionIdState=s.currentAdapterSessionIdState,t.currencyFence=a,t.revision=o+1,t.lastActivityAt=Date.now();let l=e.sessions.get(t.sessionId),u=!1;if(l!==void 0&&l.leadAgentId===i){let e=K(t,l.adapterSessionId??null);l.currentAdapterSessionId=e.currentAdapterSessionId,l.currentAdapterSessionIdState=e.currentAdapterSessionIdState,u=!0}return{outcome:`settled`,revision:o+1,currency:{adapterSessionId:c,...s},sessionSnapshotUpdated:u}}function Me(e,t,n){let r=V(e.claims,t);if(!(r===void 0||r.claimId===n))throw Error(`UNIQUE constraint failed: adapter_session_claims.claim_token (uniq_adapter_session_claims_token): "${t}" is already in use`)}function Ne(e,t){if(!(t===void 0||t.agentId!==e.agentId||t.status!==`held`||t.ownerInstanceId!==null&&t.ownerInstanceId!==e.ownerInstance.instanceId))return{generation:t,rollback:()=>{}}}function Pe(e,t,n){if(t.ownerInstanceId!==null)return t;let r={...t,ownerInstanceId:n};return e.claims.set(r.claimId,structuredClone(r)),r}function Fe(e,t,n){let{machineId:r,adapterId:i,agentId:a}=t,o=B(e.claims,r,i,n),s,c,l=Ne(t,o);if(l!==void 0)s=l.generation,c=l.rollback;else if(o!==void 0&&!G(e,{machineId:r,agentId:a,ownerInstanceId:t.ownerInstance.instanceId,topology:t.topology},o))return{outcome:`already-claimed`,holder:structuredClone(o)};else{let l=Date.now(),u=o?.claimId??crypto.randomUUID();Me(e,t.movement.claimToken,u),s={claimId:u,machineId:r,adapterId:i,adapterName:t.adapterName,providerSessionId:n,sessionId:t.sessionId,agentId:a,ownerInstanceId:t.ownerInstance.instanceId,claimToken:t.movement.claimToken,fence:H(e,a,o?.fence??0),status:`held`,claimedAt:l,updatedAt:l},e.claims.set(u,structuredClone(s)),c=o===void 0?()=>{e.claims.delete(u)}:()=>{e.claims.set(u,structuredClone(o))}}let u=t.movement.kind===`confirmed`?Array.from(e.claims.values()).filter(e=>e.agentId===a&&e.status===`held`&&e.claimId!==s.claimId):[];for(let t of u)e.claims.delete(t.claimId);return{generation:s,releasedProviderSessionIds:u.map(e=>e.providerSessionId),rollback:()=>{for(let t of u)e.claims.set(t.claimId,structuredClone(t));c()}}}function Ie(e,t){if(e.kind===`confirmed`)return{providerSessionId:e.providerSessionId,currency:{currentAdapterSessionId:e.providerSessionId,currentAdapterSessionIdState:`confirmed`}};let n=c(q(t));return n===null?null:{providerSessionId:n,currency:{currentAdapterSessionId:null,currentAdapterSessionIdState:`moved`}}}function Le(e,t){return e.on(i.read,e=>{let{agentId:n}=e.payload,r=t.agents.get(n);if(r===void 0){e.setResult({ownership:null});return}let i=Array.from(t.claims.values()).filter(e=>e.agentId===n).sort((e,t)=>e.fence-t.fence||e.claimId.localeCompare(t.claimId));e.setResult({ownership:{agentId:n,sessionId:r.sessionId,currency:q(r),revision:r.revision??0,currencyFence:r.currencyFence??0,claims:i.map(e=>structuredClone(e))}})})}function $(e,t){return e.on(i.settleCurrency,e=>{let n=t.agents.get(e.payload.agentId);if(n===void 0){e.setResult({outcome:`not-found`});return}e.setResult(Q(t,n,e.payload))})}function Re(e,t){return e.on(i.finalizeRecovery,e=>{let{agentId:n,attemptId:r,binding:i,action:a}=e.payload,o=t.agents.get(n);if(o===void 0||o.status!==`starting`||o.recoveryAttemptId!==r||o.adapterId!==i.adapterId||o.runtimeOwner?.machineId!==i.ownerMachineId||o.runtimeOwner?.instanceId!==i.ownerInstanceId){e.setResult({applied:!1});return}a.kind===`rollback`?(o.status=a.preimage.status,o.adapterId=a.preimage.adapterId,o.runtimeOwner=a.preimage.binding===void 0?void 0:{machineId:a.preimage.binding.ownerMachineId,instanceId:a.preimage.binding.ownerInstanceId},o.recoveryAttemptId=a.preimage.recoveryAttemptId):(o.status=a.kind===`succeeded`?`idle`:`dead`,o.recoveryAttemptId=void 0),o.lastActivityAt=Date.now(),e.setResult({applied:!0})})}function ze(e,t){return e.on(i.settleMovement,e=>{let n=r.parse(e.payload),i=n.ownerInstance;if(i===void 0)throw Error(`session ownership movement requires ownerInstance`);let a=U(i.instanceId,n.machineId),o=t.runtimeInstances.has(a);W(t,i.instanceId,n.machineId,Date.now());let s={...n,ownerInstance:i},c=t.agents.get(n.agentId);if(c===void 0||c.sessionId!==n.sessionId){o||t.runtimeInstances.delete(a),e.setResult({outcome:`not-found`});return}if(c.status===`disposed`){o||t.runtimeInstances.delete(a),e.setResult({outcome:`agent-disposed`});return}let l=Ie(s.movement,c);if(l===null){o||t.runtimeInstances.delete(a),e.setResult({outcome:`idempotent`,revision:c.revision??0,currency:q(c),sessionSnapshotUpdated:!1,claim:null});return}let u=Fe(t,s,l.providerSessionId);if(!(`generation`in u)){o||t.runtimeInstances.delete(a),e.setResult(u);return}let d=Q(t,c,{agentId:n.agentId,claimToken:u.generation.claimToken,fence:u.generation.fence,expectedRevision:n.expectedRevision,target:l.currency});if(d.outcome!==`settled`){u.rollback(),o||t.runtimeInstances.delete(a),e.setResult(d.outcome===`idempotent`?{...d,claim:structuredClone(u.generation)}:d);return}let f=Pe(t,u.generation,i.instanceId);e.setResult({outcome:`settled`,revision:d.revision,currency:d.currency,sessionSnapshotUpdated:d.sessionSnapshotUpdated,releasedProviderSessionIds:u.releasedProviderSessionIds,claim:structuredClone(f)})})}function Be(e,t){return e.on(i.releaseAgentClaims,e=>{let{agentId:n,claimToken:r,disposition:i}=e.payload,a=Array.from(t.claims.values()).filter(e=>e.agentId===n&&(r===void 0||e.claimToken===r));if(i===`released`){for(let e of a)t.claims.delete(e.claimId);e.setResult({releasedProviderSessionIds:a.map(e=>e.providerSessionId),markedClaims:[],claimTokenNotFound:r!==void 0&&a.length===0});return}let o=Date.now(),s=a.map(e=>{let n={...e,status:i,updatedAt:o};return t.claims.set(e.claimId,structuredClone(n)),n});e.setResult({releasedProviderSessionIds:[],markedClaims:s,claimTokenNotFound:r!==void 0&&a.length===0})})}function Ve(e,t){return e.on(i.release,e=>{let{agentId:n,claimToken:r,disposition:i}=e.payload,a=V(t.claims,r);if(a===void 0){e.setResult({outcome:`not-found`});return}if(a.agentId!==n){e.setResult({outcome:`not-owner`,holder:structuredClone(a)});return}if(i===`released`){t.claims.delete(a.claimId),e.setResult({outcome:`released`});return}let o={...a,status:i,updatedAt:Date.now()};t.claims.set(a.claimId,structuredClone(o)),e.setResult({outcome:`marked`,claim:structuredClone(o)})})}function He(e,t){return e.on(i.listClaims,e=>{let{machineId:n,adapterId:r,providerSessionId:i,statuses:a}=e.payload,o=Array.from(t.claims.values()).filter(e=>e.machineId===n&&(r===void 0||e.adapterId===r)&&(i===void 0||e.providerSessionId===i)&&(a===void 0||a.includes(e.status)));o.sort((e,t)=>e.claimedAt-t.claimedAt||e.claimId.localeCompare(t.claimId)),e.setResult({claims:o.map(e=>structuredClone(e))})})}function Ue(e,t){return e.on(i.retireInstance,e=>{let n=Date.now(),r=0;for(let[i,a]of t.runtimeInstances)a.instanceId!==e.payload.instanceId||a.retiredAt!==null||(t.runtimeInstances.set(i,{...a,retiredAt:n}),r+=1);e.setResult({retiredMachines:r})})}function We(e,t){return e.on(i.getRuntimeInstance,e=>{let n=t.runtimeInstances.get(U(e.payload.instanceId,e.payload.machineId));e.setResult({instance:n===void 0?null:structuredClone(n)})})}function Ge(e,t=d()){let n=[Le(e,t),Re(e,t),e.on(i.claim,e=>{e.setResult(Ae(t,e.payload))}),$(e,t),ze(e,t),Ve(e,t),Be(e,t),He(e,t),Ue(e,t),We(e,t)];return()=>{for(let e=n.length-1;e>=0;--e)n[e]?.()}}export{E as a,_ as c,p as d,m as f,D as i,h as l,xe as n,T as o,d as p,I as r,v as s,Ge as t,g as u};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{$ as e,A as t,At as n,Ct as r,Dt as i,Et as a,F as o,Ft as s,G as c,H as l,I as u,J as d,K as f,L as p,M as m,Mt as ee,N as te,Nt as ne,Ot as re,P as ie,Pt as ae,Q as oe,R as h,St as se,Tt as ce,U as le,V as ue,W as g,X as de,Y as fe,Z as pe,_ as me,_t as he,a as ge,at as _e,bt as ve,c as ye,ct as be,dt as xe,et as Se,f as Ce,ft as we,g as Te,gt as Ee,h as De,ht as Oe,i as ke,it as Ae,j as je,jt as Me,k as Ne,kt as Pe,l as Fe,lt as Ie,m as Le,mt as Re,n as ze,nt as Be,o as Ve,ot as He,p as Ue,pt as We,q as _,r as Ge,rt as Ke,st as qe,tt as Je,u as Ye,ut as Xe,vt as Ze,wt as Qe,xt as $e,y as et,yt as tt,z as nt}from"./authority-state-bootstrap-4F5Wc_6l.mjs";import{d as rt,f as it,p as at}from"./execution-attempt-repository-CY289HlC.mjs";import{assertWorkflowTriggerPayload as ot,compileWorkflowTriggerBindingFilter as st}from"./workflow-engine/workflow-trigger-binding-consumer.mjs";import{a as ct,r as lt}from"./execution-attempt-owner-recovery-BZOEVYFH.mjs";import{SerialLane as ut}from"@makaio/framework/utils";import{ArtifactSubjects as dt,AutomationTriggerSubjects as ft,CRON_AUTOMATION_TRIGGER_KIND as pt,EXECUTION_LIST_DEFAULT_LIMIT as mt,EXECUTION_LIST_MAX_LIMIT as v,EXECUTION_LIST_MIN_LIMIT as y,EXTERNAL_EXECUTION_ID_PREFIX as b,ExecutionAttemptSchemas as x,ExecutionAttemptSubjects as S,ExecutionsByArtifactRefsQuerySchema as ht,JsonPatchOperationSchema as gt,JsonValueSchema as _t,SessionSubjects as vt,WORKFLOW_CANCELLED_REASON as C,WorkLogFrameEntrySchema as yt,WorkerSubjects as bt,WorkflowAutomationTriggerBindingSchema as xt,WorkflowError as w,WorkflowErrorCode as St,WorkflowNamespace as Ct,WorkflowRunContextSchema as wt,WorkflowRunResultSchema as Tt,WorkflowStepTypeSchema as Et,WorkflowSubjects as T,createWorkflowCancelSubject as Dt,createWorkflowDelegateResultFinalizerNamespace as Ot,createWorkflowFinalizerNamespace as kt,dep as At,extensionToken as jt,serializeArtifactRef as Mt,walkWorkflowDefinition as Nt}from"@makaio/framework/contracts";import{BaseService as Pt}from"@makaio/framework/service-base";import{defineDialectSchema as Ft,executeTransaction as E,getDatabaseDialect as It,registerDrizzleHandlers as Lt,resolveSchema as D,serializeDatabaseOperation as O}from"@makaio/framework/storage/drizzle";import{and as k,asc as A,count as j,desc as M,eq as N,getTableColumns as Rt,gte as zt,isNotNull as Bt,isNull as P,lt as Vt,lte as Ht,notInArray as Ut,or as Wt,sql as F,sum as I}from"drizzle-orm";import{SessionToken as Gt}from"@makaio/framework/services";import{AutomationTriggerBindingRuntimeToken as Kt}from"@makaio/framework/services/automation-trigger";const qt=fe.postgres,Jt=_e.postgres,Yt=pe.postgres,Xt=qe.postgres,Zt=xe.postgres,Qt=e.postgres,$t=Ie.postgres,en=tt.postgres,tn=Oe.postgres,nn=We.postgres,rn=he.postgres,an=Je.postgres,on=Ke.postgres,sn=ne.postgres,cn=Pe.postgres,ln=$e.postgres,un=i.postgres,dn=Me.postgres,fn=r.postgres,pn=ce.postgres,L=Ft({workflowDefinitions:d,workflowExecutions:Ae,workflowExecutionFrames:de,workflowGateInstances:He,workflowStepSpans:Xe,workflowExecutionLinks:oe,workflowRunContexts:be,worklogSummaries:Ze,worklogFrameEntries:Re,worklogArtifactWrites:we,worklogGateEvents:Ee,workflowExecutionState:Se,workflowExecutionStateEvents:Be,workflowFinalizations:ee,executionAttempts:re,activeExecutionAttempts:ve,executionAttemptRequests:a,providerOperations:n,executionAttemptCancellations:se,executionAttemptControlEvidence:Qe},{workflowDefinitions:qt,workflowExecutions:Jt,workflowExecutionFrames:Yt,workflowGateInstances:Xt,workflowStepSpans:Zt,workflowExecutionLinks:Qt,workflowRunContexts:$t,worklogSummaries:en,worklogFrameEntries:tn,worklogArtifactWrites:nn,worklogGateEvents:rn,workflowExecutionState:an,workflowExecutionStateEvents:on,workflowFinalizations:sn,executionAttempts:cn,activeExecutionAttempts:ln,executionAttemptRequests:un,providerOperations:dn,executionAttemptCancellations:fn,executionAttemptControlEvidence:pn});function R(e){return e.type===`global`?{scopeType:`global`,scopeKind:``,scopeId:``}:e.type===`external`?{scopeType:`external`,scopeKind:e.kind,scopeId:e.id}:{scopeType:e.type,scopeKind:``,scopeId:e.id}}function z(e){switch(e.scopeType){case`global`:return{type:`global`};case`external`:if(!e.scopeKind||!e.scopeId)throw Error(`Invalid external workflow scope row: scopeKind and scopeId are required`);return{type:`external`,kind:e.scopeKind,id:e.scopeId};case`workspace`:case`session`:if(!e.scopeId)throw Error(`Invalid ${e.scopeType} workflow scope row: scopeId is required`);return{type:e.scopeType,id:e.scopeId};default:{let t=e.scopeType;throw Error(`Unknown scope type: ${String(t)}`)}}}function mn(e,t){let{scopeType:n,scopeKind:r,scopeId:i}=R(t);return[N(e.scopeType,n),N(e.scopeKind,r),N(e.scopeId,i)]}function B(e){return{id:e.id,name:e.name,description:e.description??void 0,root:e.root,inputSchema:e.inputSchema??void 0,configSchema:e.configSchema??void 0,outputSchema:e.outputSchema??void 0,state:e.state??void 0,artifact:e.artifact??void 0,triggers:e.triggers??void 0,scope:z(e),canvasLayout:e.canvasLayout??void 0,source:e.source??void 0,executableSource:e.executableSource??void 0,requirements:e.requirements??void 0,successFinalizerId:e.successFinalizerId??void 0}}function hn(e,t){let n=R(e.scope);return{id:e.id,name:e.name??e.id,root:e.root,description:e.description??null,inputSchema:e.inputSchema??null,configSchema:e.configSchema??null,outputSchema:e.outputSchema??null,state:e.state??null,artifact:e.artifact??null,triggers:e.triggers??null,canvasLayout:e.canvasLayout??null,source:e.source??null,executableSource:e.executableSource??null,requirements:e.requirements??null,successFinalizerId:e.successFinalizerId??null,createdAt:t,updatedAt:t,...n}}function gn(e,t){let{workflowDefinitions:n}=D(t,L),r=Rt(n),i=e.on(_.get,async e=>{let r=await t.select().from(n).where(N(n.id,e.payload.id)).limit(1);e.setResult({workflow:r[0]?B(r[0]):null})}),a=e.on(_.set,async i=>{let a=i.payload.workflow,o=Date.now(),c=hn(a,o),l=await O(t,async()=>{let e=await t.insert(n).values(c).onConflictDoNothing({target:n.id}).returning();if(e.length>0)return{kind:`created`,row:e[0]};let[i]=await t.update(n).set({name:c.name,root:c.root,updatedAt:o,createdAt:F`COALESCE(${r.createdAt}, ${o})`,description:c.description===null?F`${r.description}`:c.description,inputSchema:c.inputSchema===null?F`${r.inputSchema}`:c.inputSchema,configSchema:c.configSchema===null?F`${r.configSchema}`:c.configSchema,outputSchema:c.outputSchema===null?F`${r.outputSchema}`:c.outputSchema,state:c.state,artifact:c.artifact===null?F`${r.artifact}`:c.artifact,triggers:c.triggers===null?F`${r.triggers}`:c.triggers,canvasLayout:c.canvasLayout===null?F`${r.canvasLayout}`:c.canvasLayout,source:c.source===null?F`${r.source}`:c.source,executableSource:c.executableSource,requirements:c.requirements,successFinalizerId:c.successFinalizerId,...R(a.scope)}).where(N(n.id,a.id)).returning();return i?{kind:`updated`,row:i}:void 0});l&&await e.emit(l.kind===`created`?s.definition.created:s.definition.updated,B(l.row)),i.setResult({id:a.id})}),o=e.on(_.delete,async r=>{let i=(await O(t,()=>t.delete(n).where(N(n.id,r.payload.id)).returning())).length>0;i&&await e.emit(s.definition.deleted,{id:r.payload.id}),r.setResult({deleted:i})}),c=e.on(_.list,async e=>{let r=e.payload,i=r.scope?mn(n,r.scope):[],a=i.length>0?await t.select().from(n).where(k(...i)):await t.select().from(n);e.setResult({workflows:a.map(B)})});return()=>{i(),a(),o(),c()}}function _n(e){return{frameId:e.frameId,nodeId:e.nodeId,nodeType:e.nodeType,path:e.path,parentFrameId:e.parentFrameId??void 0,status:e.status,attempt:e.attempt,iteration:e.iteration??void 0,branchKey:e.branchKey??void 0,...e.outputPresent?{output:e.output}:{},error:e.error??void 0,startedAt:e.startedAt??void 0,completedAt:e.completedAt??void 0}}function vn(e,t){return{frameId:t.frameId,executionId:e,nodeId:t.nodeId,nodeType:t.nodeType,path:t.path,parentFrameId:t.parentFrameId??null,status:t.status,attempt:t.attempt,iteration:t.iteration??null,branchKey:t.branchKey??null,output:t.output===void 0?null:t.output,outputPresent:t.output!==void 0,error:t.error??null,startedAt:t.startedAt??null,completedAt:t.completedAt??null}}function yn(e,t){let{workflowExecutionFrames:n}=D(t,L),r=e.on(_.setFrame,async e=>{let{executionId:r,frame:i}=e.payload;if(!g(e,r))throw Error(`Unauthorized: caller is not permitted to write frames for execution: ${r}`);let a=vn(r,i);await O(t,()=>t.insert(n).values(a).onConflictDoUpdate({target:n.frameId,set:a})),e.setResult({frameId:i.frameId})}),i=e.on(_.getFrame,async e=>{let r=await t.select().from(n).where(N(n.frameId,e.payload.frameId)).limit(1);e.setResult({frame:r[0]?_n(r[0]):null})}),a=e.on(_.listFrames,async e=>{if(!g(e,e.payload.executionId))throw Error(`Unauthorized: caller is not permitted to list frames for execution: ${e.payload.executionId}`);let r=await t.select().from(n).where(N(n.executionId,e.payload.executionId)).orderBy(A(n.startedAt),A(n.frameId));e.setResult({frames:r.map(_n)})});return()=>{r(),i(),a()}}function bn(e){return`${e.executionId}:${e.nodeId}:${e.frameId}`}function V(e){return{executionId:e.executionId,...e.executionAttemptId===null?{}:{executionAttemptId:e.executionAttemptId},nodeId:e.nodeId,frameId:e.frameId,schema:e.schema,prompt:e.prompt??void 0,status:e.status,autoAction:e.autoAction,timeoutMs:e.timeoutMs??null,...e.resumeDataPresent?{resumeData:e.resumeData}:{},...e.reason===null?{}:{reason:e.reason},createdAt:e.createdAt,resolvedAt:e.resolvedAt??void 0}}function H(e){return{id:bn(e),executionId:e.executionId,executionAttemptId:e.executionAttemptId??null,nodeId:e.nodeId,frameId:e.frameId,schema:e.schema,prompt:e.prompt??null,status:e.status,autoAction:e.autoAction,timeoutMs:e.timeoutMs,resumeData:e.resumeData===void 0?null:e.resumeData,reason:e.reason??null,resumeDataPresent:e.resumeData!==void 0,createdAt:e.createdAt,resolvedAt:e.resolvedAt??null}}function xn(e,t,n,r){if(e===void 0&&t===void 0)throw Error(`Either executionId or status is required to list gate instances.`);let i=n??mt;if(!Number.isInteger(i)||i<y||i>v)throw Error(`Gate instance list limit must be an integer between ${y} and ${v}.`);return{resolvedLimit:i,predicates:[...e===void 0?[]:[N(r.executionId,e)],...t===void 0?[]:[N(r.status,t)]]}}function Sn(e,t){let{workflowGateInstances:n}=D(t,L);return e.on(_.resolveWaitingGateInstance,async e=>{let r=e.payload.gate,i=H(r),a=await O(t,()=>t.update(n).set(i).where(k(N(n.id,i.id),N(n.status,`waiting`),r.executionAttemptId===void 0?P(n.executionAttemptId):N(n.executionAttemptId,r.executionAttemptId))).returning({id:n.id}));e.setResult({accepted:a.length===1})})}function Cn(e,t){let{workflowExecutions:n,workflowGateInstances:r}=D(t,L),i=e.on(_.setGateInstance,async e=>{let n=e.payload.gate;if(!g(e,n.executionId))throw Error(`Unauthorized: caller is not permitted to write gates for execution: ${n.executionId}`);let i=H(n);await O(t,()=>t.insert(r).values(i).onConflictDoUpdate({target:r.id,set:i})),e.setResult({id:i.id})}),a=Sn(e,t),o=e.on(_.getGateInstance,async e=>{let{executionId:n,nodeId:i,frameId:a}=e.payload;if(!g(e,n))throw Error(`Unauthorized: caller is not permitted to read gates for execution: ${n}`);let o=[N(r.executionId,n),N(r.nodeId,i)];a!==void 0&&o.push(N(r.frameId,a));let s=await t.select().from(r).where(k(...o)).limit(1);e.setResult({gate:s[0]?V(s[0]):null})}),s=e.on(_.listGateInstances,async e=>{let{executionId:n,status:i,limit:a}=e.payload,{resolvedLimit:o,predicates:s}=xn(n,i,a,r),c=await t.select().from(r).where(k(...s)).orderBy(M(r.createdAt),M(r.id)).limit(o);e.setResult({gates:c.map(V)})}),c=e.on(_.listPausedGateTimeouts,async e=>{let i=await t.select({gate:r}).from(r).innerJoin(n,N(r.executionId,n.id)).where(k(N(r.status,`waiting`),N(n.status,`paused`),Bt(r.timeoutMs)));e.setResult({gates:i.map(e=>V(e.gate))})});return()=>{i(),a(),o(),s(),c()}}function wn(e){return{executionId:e.executionId,frameId:e.frameId,stepId:e.stepId,stepType:e.stepType,status:e.status,startedAt:e.startedAt??void 0,completedAt:e.completedAt??void 0,durationMs:e.durationMs??void 0,inputTokens:e.inputTokens??void 0,outputTokens:e.outputTokens??void 0,estimatedCost:e.estimatedCost??void 0,toolCallCount:e.toolCallCount??void 0,input:e.input??void 0,output:e.output??void 0}}function Tn(e){return{sourceExecutionId:e.sourceExecutionId,targetExecutionId:e.targetExecutionId,linkType:e.linkType,metadata:e.metadata??void 0}}function En(e,t){let{workflowStepSpans:n,workflowExecutionLinks:r}=D(t,L),i=e.on(_.setSpan,async e=>{let{span:r}=e.payload;if(!g(e,r.executionId))throw Error(`Unauthorized: caller is not permitted to write spans for execution: ${r.executionId}`);await O(t,()=>t.insert(n).values(r).onConflictDoUpdate({target:[n.executionId,n.frameId],set:r})),e.setResult({id:`${r.executionId}:${r.frameId}`})}),a=e.on(_.listSpans,async e=>{let r=await t.select().from(n).where(N(n.executionId,e.payload.executionId)).orderBy(A(n.startedAt),A(n.stepId),A(n.frameId));e.setResult({spans:r.map(wn)})}),o=e.on(_.setExecutionLink,async e=>{let{link:n}=e.payload;await O(t,()=>t.insert(r).values(n).onConflictDoUpdate({target:[r.sourceExecutionId,r.targetExecutionId],set:n})),e.setResult({id:`${n.sourceExecutionId}:${n.targetExecutionId}`})}),s=e.on(_.listExecutionLinks,async e=>{let{sourceExecutionId:n,targetExecutionId:i}=e.payload;if(n===void 0&&i===void 0)throw Error(`Either sourceExecutionId or targetExecutionId is required to list execution links.`);let a=[...n===void 0?[]:[N(r.sourceExecutionId,n)],...i===void 0?[]:[N(r.targetExecutionId,i)]],o=t.select().from(r).where(k(...a));e.setResult({links:(await o).map(Tn)})});return()=>{i(),a(),o(),s()}}function U(e,t){return t===null?It(e)===`postgres`?F`'null'::jsonb`:F`'null'`:t}function Dn(e){switch(e.kind){case`path`:return{sourceKind:`path`,sourcePath:e.path,sourceFilename:null,sourceCode:null};case`source`:return{sourceKind:`source`,sourcePath:null,sourceFilename:e.filename,sourceCode:e.source};case`definition`:return{sourceKind:`definition`,sourcePath:null,sourceFilename:null,sourceCode:null}}}function On(e){switch(e.sourceKind){case`path`:if(!e.sourcePath)throw Error(`Invalid run context row: sourcePath required for kind=path`);return{kind:`path`,path:e.sourcePath};case`source`:if(!e.sourceFilename)throw Error(`Invalid run context row: sourceFilename required for kind=source`);return{kind:`source`,filename:e.sourceFilename,source:e.sourceCode??``};case`definition`:return{kind:`definition`,workflowId:e.workflowId};default:throw Error(`Unknown run context source kind: ${String(e.sourceKind)}`)}}function kn(e){return{executionId:e.executionId,workflowId:e.workflowId,coordinatorSessionId:e.coordinatorSessionId,source:On(e),definitionSnapshot:e.definitionSnapshot??void 0,workerManifest:e.workerManifest,inputs:e.inputs,config:e.config??{},triggerPayload:e.triggerPayload,triggerMode:e.triggerMode,...e.artifactRef===null?{}:{artifactRef:e.artifactRef},scope:z(e),...e.dispatchMetadata===null?{}:{dispatchMetadata:e.dispatchMetadata},cancelSubject:e.cancelSubject,env:e.env,createdAt:e.createdAt,suspensionStrategy:e.suspensionStrategy??`wait-in-process`,...e.terminalAuthority===null?{}:{terminalAuthority:e.terminalAuthority},...e.materializationSpec===null?{}:{materializationSpec:e.materializationSpec}}}function An(e){let t=Dn(e.source),n=R(e.scope);return{executionId:e.executionId,workflowId:e.workflowId,coordinatorSessionId:e.coordinatorSessionId,...t,definitionSnapshot:e.definitionSnapshot??null,workerManifest:e.workerManifest,inputs:e.inputs,config:e.config??{},triggerPayload:e.triggerPayload,triggerMode:e.triggerMode??`immediate`,artifactRef:e.artifactRef??null,dispatchMetadata:e.dispatchMetadata??null,...n,cancelSubject:e.cancelSubject,env:e.env,createdAt:e.createdAt,suspensionStrategy:e.suspensionStrategy,terminalAuthority:e.terminalAuthority??null,materializationSpec:e.materializationSpec??null}}async function jn(e,t,n){let r=An(t);await e.insert(n).values(r).onConflictDoUpdate({target:n.executionId,set:r})}function Mn(e,t){let{workflowRunContexts:n,workflowExecutionState:r,workflowExecutionStateEvents:i}=D(t,L),a=e.on(_.setRunContext,async e=>{let a=e.payload.runContext,o=e.payload.initialState;await E(t,async e=>{if(await jn(e,a,n),o===void 0)return;let s=Date.now(),c=U(t,o);await e.insert(r).values({executionId:a.executionId,sequence:0,value:c,updatedAt:s}).onConflictDoNothing(),await e.insert(i).values({executionId:a.executionId,sequence:0,patch:[],value:c,createdAt:s}).onConflictDoNothing()}),e.setResult({executionId:a.executionId})}),o=e.on(_.getRunContext,async e=>{let{executionId:r}=e.payload,i=await t.select().from(n).where(N(n.executionId,r)),a=i[0]?kn(i[0]):null;e.setResult({runContext:a})});return()=>{a(),o()}}async function Nn(e,t,n){let{workflowExecutionState:r,workflowExecutionStateEvents:i}=D(e,L),a=Date.now(),o=U(e,n);await E(e,async e=>{await e.insert(r).values({executionId:t,sequence:0,value:o,updatedAt:a}).onConflictDoNothing(),await e.insert(i).values({executionId:t,sequence:0,patch:[],value:o,createdAt:a}).onConflictDoNothing()})}async function Pn(e,t){let{workflowExecutionState:n}=D(e,L),r=(await e.select().from(n).where(N(n.executionId,t)).limit(1))[0];return r?{executionId:r.executionId,sequence:r.sequence,value:r.value}:null}async function Fn(e,t){let{workflowExecutionState:n,workflowExecutionStateEvents:r}=D(e,L),i=Date.now(),a=U(e,t.nextValue);return E(e,async e=>{let o=(await e.select().from(n).where(N(n.executionId,t.executionId)).limit(1))[0];if(!o)throw Error(`no workflow state for execution ${t.executionId}`);if(t.expectedSequence===void 0)throw Error(`expectedSequence is required to patch workflow state`);let s=o.sequence+1,c=le(o.value,t.nextValue);if((await e.update(n).set({sequence:s,value:a,updatedAt:i}).where(k(N(n.executionId,t.executionId),N(n.sequence,t.expectedSequence))).returning()).length===0)throw Error(`state sequence conflict: expected ${String(t.expectedSequence)}, got ${String(o.sequence)}`);return await e.insert(r).values({executionId:t.executionId,sequence:s,patch:c,value:a,createdAt:i}),{executionId:t.executionId,sequence:s,patch:c,value:t.nextValue}})}function In(e,t){let n=e.on(_.initializeState,async e=>{let{executionId:n,initialValue:r}=e.payload;await Nn(t,n,r),e.setResult({})}),r=e.on(_.getState,async e=>{let{executionId:n}=e.payload,r=await Pn(t,n);e.setResult({state:r})}),i=e.on(_.patchState,async e=>{let{executionId:n,expectedSequence:r,nextValue:i}=e.payload,a=await Fn(t,{executionId:n,expectedSequence:r,nextValue:i});e.setResult(a)});return()=>{n(),r(),i()}}function Ln(e){return{executionId:e.executionId,workflowId:e.workflowId,workflowName:e.workflowName??void 0,status:e.status,startedAt:e.startedAt,completedAt:e.completedAt??void 0,durationMs:e.durationMs??void 0,totalInputTokens:e.totalInputTokens??void 0,totalOutputTokens:e.totalOutputTokens??void 0,totalEstimatedCost:e.totalEstimatedCost??void 0,error:e.error??void 0,failedNodeId:e.failedNodeId??void 0}}async function Rn(e,t){let{worklogSummaries:n}=D(e,L);await e.insert(n).values(t).onConflictDoNothing()}async function zn(e,t){let{worklogSummaries:n}=D(e,L);await e.insert(n).values(t).onConflictDoUpdate({target:n.executionId,set:Bn(t),setWhere:Ut(n.status,[`completed`,`failed`,`cancelled`])})}function Bn(e){return{workflowId:e.workflowId,workflowName:e.workflowName,status:e.status,startedAt:e.startedAt,completedAt:e.completedAt,durationMs:e.durationMs,error:e.error,failedNodeId:e.failedNodeId}}async function W(e,t){let{worklogSummaries:n}=D(e,L),r=await e.select().from(n).where(N(n.executionId,t)).limit(1);return r[0]?Ln(r[0]):null}async function Vn(e,t={}){let{worklogSummaries:n}=D(e,L),{workflowId:r,status:i,limit:a=50,offset:o=0}=t,s=[...r===void 0?[]:[N(n.workflowId,r)],...i===void 0?[]:[N(n.status,i)]],c=s.length>0?k(...s):void 0,[l,u]=await Promise.all([e.select().from(n).where(c).orderBy(M(n.startedAt)).limit(a).offset(o),e.select({count:j()}).from(n).where(c)]);return{items:l.map(Ln),total:u[0]?.count??0}}async function Hn(e,t){let{worklogFrameEntries:n}=D(e,L);await e.insert(n).values(t).onConflictDoNothing()}async function Un(e,t){let{worklogFrameEntries:n}=D(e,L);await e.insert(n).values(t).onConflictDoUpdate({target:n.frameId,set:t,setWhere:Ut(n.status,[`completed`,`failed`,`skipped`,`cancelled`])})}async function G(e,t){let{worklogFrameEntries:n}=D(e,L);return(await e.select().from(n).where(N(n.frameId,t)).limit(1))[0]??null}async function Wn(e,t){let n=await G(e,t);return n===null?null:yt.parse({executionId:n.executionId,frameId:n.frameId,nodeId:n.nodeId,nodeType:n.nodeType,path:n.path,status:n.status,attempt:n.attempt,iteration:n.iteration??void 0,branchKey:n.branchKey??void 0,startedAt:n.startedAt??void 0,completedAt:n.completedAt??void 0,durationMs:n.durationMs??void 0,inputTokens:n.inputTokens??void 0,outputTokens:n.outputTokens??void 0,estimatedCost:n.estimatedCost??void 0,error:n.error??void 0})}async function Gn(e,t){let{worklogArtifactWrites:n}=D(e,L);await e.insert(n).values(t).onConflictDoUpdate({target:n.id,set:t})}function Kn(e,t,n,r,i){return`${e}:${t}:${n}:${r}:${i}`}async function qn(e,t){let{worklogGateEvents:n}=D(e,L);await e.insert(n).values(t).onConflictDoUpdate({target:n.id,set:t})}async function Jn(e,t){let{worklogGateEvents:n}=D(e,L);return(await e.select().from(n).where(N(n.id,t)).limit(1))[0]??null}function Yn(e,t,n){return`${e}:${t}:${n}`}async function Xn(e,t,n){let[r]=await e.update(t).set({totalInputTokens:t.totalInputTokens}).where(N(t.executionId,n)).returning();return r}async function Zn(e,t,n){let[r]=await e.select({totalInputTokens:I(t.inputTokens),totalOutputTokens:I(t.outputTokens),totalEstimatedCost:I(t.estimatedCost),measuredInputTokens:j(t.inputTokens),measuredOutputTokens:j(t.outputTokens),measuredCosts:j(t.estimatedCost)}).from(t).where(N(t.executionId,n));return{totalInputTokens:Number(r?.totalInputTokens??0),totalOutputTokens:Number(r?.totalOutputTokens??0),totalEstimatedCost:Number(r?.totalEstimatedCost??0),hasMeasurements:Number(r?.measuredInputTokens??0)>0||Number(r?.measuredOutputTokens??0)>0||Number(r?.measuredCosts??0)>0}}function Qn(e){return e.hasMeasurements}async function $n(e,t,n,r){await e.update(t).set({totalInputTokens:r.totalInputTokens,totalOutputTokens:r.totalOutputTokens,totalEstimatedCost:r.totalEstimatedCost}).where(N(t.executionId,n))}async function er(e,t,n,r){let i=F`coalesce((select sum(${n.inputTokens}) from ${n} where ${n.executionId} = ${r}), 0)`,a=F`coalesce((select sum(${n.outputTokens}) from ${n} where ${n.executionId} = ${r}), 0)`,o=F`coalesce((select sum(${n.estimatedCost}) from ${n} where ${n.executionId} = ${r}), 0)`,s=F`exists(
|
|
1
|
+
import{$ as e,A as t,At as n,Ct as r,Dt as i,Et as a,F as o,Ft as s,G as c,H as l,I as u,J as d,K as f,L as p,M as m,Mt as ee,N as te,Nt as ne,Ot as re,P as ie,Pt as ae,Q as oe,R as h,St as se,Tt as ce,U as le,V as ue,W as g,X as de,Y as fe,Z as pe,_ as me,_t as he,a as ge,at as _e,bt as ve,c as ye,ct as be,dt as xe,et as Se,f as Ce,ft as we,g as Te,gt as Ee,h as De,ht as Oe,i as ke,it as Ae,j as je,jt as Me,k as Ne,kt as Pe,l as Fe,lt as Ie,m as Le,mt as Re,n as ze,nt as Be,o as Ve,ot as He,p as Ue,pt as We,q as _,r as Ge,rt as Ke,st as qe,tt as Je,u as Ye,ut as Xe,vt as Ze,wt as Qe,xt as $e,y as et,yt as tt,z as nt}from"./authority-state-bootstrap-kIU-C2nI.mjs";import{d as rt,f as it,p as at}from"./execution-attempt-repository-BMbbbk7n.mjs";import{assertWorkflowTriggerPayload as ot,compileWorkflowTriggerBindingFilter as st}from"./workflow-engine/workflow-trigger-binding-consumer.mjs";import{a as ct,r as lt}from"./execution-attempt-owner-recovery-CvnTavxP.mjs";import{SerialLane as ut}from"@makaio/framework/utils";import{ArtifactSubjects as dt,AutomationTriggerSubjects as ft,CRON_AUTOMATION_TRIGGER_KIND as pt,EXECUTION_LIST_DEFAULT_LIMIT as mt,EXECUTION_LIST_MAX_LIMIT as v,EXECUTION_LIST_MIN_LIMIT as y,EXTERNAL_EXECUTION_ID_PREFIX as b,ExecutionAttemptSchemas as x,ExecutionAttemptSubjects as S,ExecutionsByArtifactRefsQuerySchema as ht,JsonPatchOperationSchema as gt,JsonValueSchema as _t,SessionSubjects as vt,WORKFLOW_CANCELLED_REASON as C,WorkLogFrameEntrySchema as yt,WorkerSubjects as bt,WorkflowAutomationTriggerBindingSchema as xt,WorkflowError as w,WorkflowErrorCode as St,WorkflowNamespace as Ct,WorkflowRunContextSchema as wt,WorkflowRunResultSchema as Tt,WorkflowStepTypeSchema as Et,WorkflowSubjects as T,createWorkflowCancelSubject as Dt,createWorkflowDelegateResultFinalizerNamespace as Ot,createWorkflowFinalizerNamespace as kt,dep as At,extensionToken as jt,serializeArtifactRef as Mt,walkWorkflowDefinition as Nt}from"@makaio/framework/contracts";import{BaseService as Pt}from"@makaio/framework/service-base";import{defineDialectSchema as Ft,executeTransaction as E,getDatabaseDialect as It,registerDrizzleHandlers as Lt,resolveSchema as D,serializeDatabaseOperation as O}from"@makaio/framework/storage/drizzle";import{and as k,asc as A,count as j,desc as M,eq as N,getTableColumns as Rt,gte as zt,isNotNull as Bt,isNull as P,lt as Vt,lte as Ht,notInArray as Ut,or as Wt,sql as F,sum as I}from"drizzle-orm";import{SessionToken as Gt}from"@makaio/framework/services";import{AutomationTriggerBindingRuntimeToken as Kt}from"@makaio/framework/services/automation-trigger";const qt=fe.postgres,Jt=_e.postgres,Yt=pe.postgres,Xt=qe.postgres,Zt=xe.postgres,Qt=e.postgres,$t=Ie.postgres,en=tt.postgres,tn=Oe.postgres,nn=We.postgres,rn=he.postgres,an=Je.postgres,on=Ke.postgres,sn=ne.postgres,cn=Pe.postgres,ln=$e.postgres,un=i.postgres,dn=Me.postgres,fn=r.postgres,pn=ce.postgres,L=Ft({workflowDefinitions:d,workflowExecutions:Ae,workflowExecutionFrames:de,workflowGateInstances:He,workflowStepSpans:Xe,workflowExecutionLinks:oe,workflowRunContexts:be,worklogSummaries:Ze,worklogFrameEntries:Re,worklogArtifactWrites:we,worklogGateEvents:Ee,workflowExecutionState:Se,workflowExecutionStateEvents:Be,workflowFinalizations:ee,executionAttempts:re,activeExecutionAttempts:ve,executionAttemptRequests:a,providerOperations:n,executionAttemptCancellations:se,executionAttemptControlEvidence:Qe},{workflowDefinitions:qt,workflowExecutions:Jt,workflowExecutionFrames:Yt,workflowGateInstances:Xt,workflowStepSpans:Zt,workflowExecutionLinks:Qt,workflowRunContexts:$t,worklogSummaries:en,worklogFrameEntries:tn,worklogArtifactWrites:nn,worklogGateEvents:rn,workflowExecutionState:an,workflowExecutionStateEvents:on,workflowFinalizations:sn,executionAttempts:cn,activeExecutionAttempts:ln,executionAttemptRequests:un,providerOperations:dn,executionAttemptCancellations:fn,executionAttemptControlEvidence:pn});function R(e){return e.type===`global`?{scopeType:`global`,scopeKind:``,scopeId:``}:e.type===`external`?{scopeType:`external`,scopeKind:e.kind,scopeId:e.id}:{scopeType:e.type,scopeKind:``,scopeId:e.id}}function z(e){switch(e.scopeType){case`global`:return{type:`global`};case`external`:if(!e.scopeKind||!e.scopeId)throw Error(`Invalid external workflow scope row: scopeKind and scopeId are required`);return{type:`external`,kind:e.scopeKind,id:e.scopeId};case`workspace`:case`session`:if(!e.scopeId)throw Error(`Invalid ${e.scopeType} workflow scope row: scopeId is required`);return{type:e.scopeType,id:e.scopeId};default:{let t=e.scopeType;throw Error(`Unknown scope type: ${String(t)}`)}}}function mn(e,t){let{scopeType:n,scopeKind:r,scopeId:i}=R(t);return[N(e.scopeType,n),N(e.scopeKind,r),N(e.scopeId,i)]}function B(e){return{id:e.id,name:e.name,description:e.description??void 0,root:e.root,inputSchema:e.inputSchema??void 0,configSchema:e.configSchema??void 0,outputSchema:e.outputSchema??void 0,state:e.state??void 0,artifact:e.artifact??void 0,triggers:e.triggers??void 0,scope:z(e),canvasLayout:e.canvasLayout??void 0,source:e.source??void 0,executableSource:e.executableSource??void 0,requirements:e.requirements??void 0,successFinalizerId:e.successFinalizerId??void 0}}function hn(e,t){let n=R(e.scope);return{id:e.id,name:e.name??e.id,root:e.root,description:e.description??null,inputSchema:e.inputSchema??null,configSchema:e.configSchema??null,outputSchema:e.outputSchema??null,state:e.state??null,artifact:e.artifact??null,triggers:e.triggers??null,canvasLayout:e.canvasLayout??null,source:e.source??null,executableSource:e.executableSource??null,requirements:e.requirements??null,successFinalizerId:e.successFinalizerId??null,createdAt:t,updatedAt:t,...n}}function gn(e,t){let{workflowDefinitions:n}=D(t,L),r=Rt(n),i=e.on(_.get,async e=>{let r=await t.select().from(n).where(N(n.id,e.payload.id)).limit(1);e.setResult({workflow:r[0]?B(r[0]):null})}),a=e.on(_.set,async i=>{let a=i.payload.workflow,o=Date.now(),c=hn(a,o),l=await O(t,async()=>{let e=await t.insert(n).values(c).onConflictDoNothing({target:n.id}).returning();if(e.length>0)return{kind:`created`,row:e[0]};let[i]=await t.update(n).set({name:c.name,root:c.root,updatedAt:o,createdAt:F`COALESCE(${r.createdAt}, ${o})`,description:c.description===null?F`${r.description}`:c.description,inputSchema:c.inputSchema===null?F`${r.inputSchema}`:c.inputSchema,configSchema:c.configSchema===null?F`${r.configSchema}`:c.configSchema,outputSchema:c.outputSchema===null?F`${r.outputSchema}`:c.outputSchema,state:c.state,artifact:c.artifact===null?F`${r.artifact}`:c.artifact,triggers:c.triggers===null?F`${r.triggers}`:c.triggers,canvasLayout:c.canvasLayout===null?F`${r.canvasLayout}`:c.canvasLayout,source:c.source===null?F`${r.source}`:c.source,executableSource:c.executableSource,requirements:c.requirements,successFinalizerId:c.successFinalizerId,...R(a.scope)}).where(N(n.id,a.id)).returning();return i?{kind:`updated`,row:i}:void 0});l&&await e.emit(l.kind===`created`?s.definition.created:s.definition.updated,B(l.row)),i.setResult({id:a.id})}),o=e.on(_.delete,async r=>{let i=(await O(t,()=>t.delete(n).where(N(n.id,r.payload.id)).returning())).length>0;i&&await e.emit(s.definition.deleted,{id:r.payload.id}),r.setResult({deleted:i})}),c=e.on(_.list,async e=>{let r=e.payload,i=r.scope?mn(n,r.scope):[],a=i.length>0?await t.select().from(n).where(k(...i)):await t.select().from(n);e.setResult({workflows:a.map(B)})});return()=>{i(),a(),o(),c()}}function _n(e){return{frameId:e.frameId,nodeId:e.nodeId,nodeType:e.nodeType,path:e.path,parentFrameId:e.parentFrameId??void 0,status:e.status,attempt:e.attempt,iteration:e.iteration??void 0,branchKey:e.branchKey??void 0,...e.outputPresent?{output:e.output}:{},error:e.error??void 0,startedAt:e.startedAt??void 0,completedAt:e.completedAt??void 0}}function vn(e,t){return{frameId:t.frameId,executionId:e,nodeId:t.nodeId,nodeType:t.nodeType,path:t.path,parentFrameId:t.parentFrameId??null,status:t.status,attempt:t.attempt,iteration:t.iteration??null,branchKey:t.branchKey??null,output:t.output===void 0?null:t.output,outputPresent:t.output!==void 0,error:t.error??null,startedAt:t.startedAt??null,completedAt:t.completedAt??null}}function yn(e,t){let{workflowExecutionFrames:n}=D(t,L),r=e.on(_.setFrame,async e=>{let{executionId:r,frame:i}=e.payload;if(!g(e,r))throw Error(`Unauthorized: caller is not permitted to write frames for execution: ${r}`);let a=vn(r,i);await O(t,()=>t.insert(n).values(a).onConflictDoUpdate({target:n.frameId,set:a})),e.setResult({frameId:i.frameId})}),i=e.on(_.getFrame,async e=>{let r=await t.select().from(n).where(N(n.frameId,e.payload.frameId)).limit(1);e.setResult({frame:r[0]?_n(r[0]):null})}),a=e.on(_.listFrames,async e=>{if(!g(e,e.payload.executionId))throw Error(`Unauthorized: caller is not permitted to list frames for execution: ${e.payload.executionId}`);let r=await t.select().from(n).where(N(n.executionId,e.payload.executionId)).orderBy(A(n.startedAt),A(n.frameId));e.setResult({frames:r.map(_n)})});return()=>{r(),i(),a()}}function bn(e){return`${e.executionId}:${e.nodeId}:${e.frameId}`}function V(e){return{executionId:e.executionId,...e.executionAttemptId===null?{}:{executionAttemptId:e.executionAttemptId},nodeId:e.nodeId,frameId:e.frameId,schema:e.schema,prompt:e.prompt??void 0,status:e.status,autoAction:e.autoAction,timeoutMs:e.timeoutMs??null,...e.resumeDataPresent?{resumeData:e.resumeData}:{},...e.reason===null?{}:{reason:e.reason},createdAt:e.createdAt,resolvedAt:e.resolvedAt??void 0}}function H(e){return{id:bn(e),executionId:e.executionId,executionAttemptId:e.executionAttemptId??null,nodeId:e.nodeId,frameId:e.frameId,schema:e.schema,prompt:e.prompt??null,status:e.status,autoAction:e.autoAction,timeoutMs:e.timeoutMs,resumeData:e.resumeData===void 0?null:e.resumeData,reason:e.reason??null,resumeDataPresent:e.resumeData!==void 0,createdAt:e.createdAt,resolvedAt:e.resolvedAt??null}}function xn(e,t,n,r){if(e===void 0&&t===void 0)throw Error(`Either executionId or status is required to list gate instances.`);let i=n??mt;if(!Number.isInteger(i)||i<y||i>v)throw Error(`Gate instance list limit must be an integer between ${y} and ${v}.`);return{resolvedLimit:i,predicates:[...e===void 0?[]:[N(r.executionId,e)],...t===void 0?[]:[N(r.status,t)]]}}function Sn(e,t){let{workflowGateInstances:n}=D(t,L);return e.on(_.resolveWaitingGateInstance,async e=>{let r=e.payload.gate,i=H(r),a=await O(t,()=>t.update(n).set(i).where(k(N(n.id,i.id),N(n.status,`waiting`),r.executionAttemptId===void 0?P(n.executionAttemptId):N(n.executionAttemptId,r.executionAttemptId))).returning({id:n.id}));e.setResult({accepted:a.length===1})})}function Cn(e,t){let{workflowExecutions:n,workflowGateInstances:r}=D(t,L),i=e.on(_.setGateInstance,async e=>{let n=e.payload.gate;if(!g(e,n.executionId))throw Error(`Unauthorized: caller is not permitted to write gates for execution: ${n.executionId}`);let i=H(n);await O(t,()=>t.insert(r).values(i).onConflictDoUpdate({target:r.id,set:i})),e.setResult({id:i.id})}),a=Sn(e,t),o=e.on(_.getGateInstance,async e=>{let{executionId:n,nodeId:i,frameId:a}=e.payload;if(!g(e,n))throw Error(`Unauthorized: caller is not permitted to read gates for execution: ${n}`);let o=[N(r.executionId,n),N(r.nodeId,i)];a!==void 0&&o.push(N(r.frameId,a));let s=await t.select().from(r).where(k(...o)).limit(1);e.setResult({gate:s[0]?V(s[0]):null})}),s=e.on(_.listGateInstances,async e=>{let{executionId:n,status:i,limit:a}=e.payload,{resolvedLimit:o,predicates:s}=xn(n,i,a,r),c=await t.select().from(r).where(k(...s)).orderBy(M(r.createdAt),M(r.id)).limit(o);e.setResult({gates:c.map(V)})}),c=e.on(_.listPausedGateTimeouts,async e=>{let i=await t.select({gate:r}).from(r).innerJoin(n,N(r.executionId,n.id)).where(k(N(r.status,`waiting`),N(n.status,`paused`),Bt(r.timeoutMs)));e.setResult({gates:i.map(e=>V(e.gate))})});return()=>{i(),a(),o(),s(),c()}}function wn(e){return{executionId:e.executionId,frameId:e.frameId,stepId:e.stepId,stepType:e.stepType,status:e.status,startedAt:e.startedAt??void 0,completedAt:e.completedAt??void 0,durationMs:e.durationMs??void 0,inputTokens:e.inputTokens??void 0,outputTokens:e.outputTokens??void 0,estimatedCost:e.estimatedCost??void 0,toolCallCount:e.toolCallCount??void 0,input:e.input??void 0,output:e.output??void 0}}function Tn(e){return{sourceExecutionId:e.sourceExecutionId,targetExecutionId:e.targetExecutionId,linkType:e.linkType,metadata:e.metadata??void 0}}function En(e,t){let{workflowStepSpans:n,workflowExecutionLinks:r}=D(t,L),i=e.on(_.setSpan,async e=>{let{span:r}=e.payload;if(!g(e,r.executionId))throw Error(`Unauthorized: caller is not permitted to write spans for execution: ${r.executionId}`);await O(t,()=>t.insert(n).values(r).onConflictDoUpdate({target:[n.executionId,n.frameId],set:r})),e.setResult({id:`${r.executionId}:${r.frameId}`})}),a=e.on(_.listSpans,async e=>{let r=await t.select().from(n).where(N(n.executionId,e.payload.executionId)).orderBy(A(n.startedAt),A(n.stepId),A(n.frameId));e.setResult({spans:r.map(wn)})}),o=e.on(_.setExecutionLink,async e=>{let{link:n}=e.payload;await O(t,()=>t.insert(r).values(n).onConflictDoUpdate({target:[r.sourceExecutionId,r.targetExecutionId],set:n})),e.setResult({id:`${n.sourceExecutionId}:${n.targetExecutionId}`})}),s=e.on(_.listExecutionLinks,async e=>{let{sourceExecutionId:n,targetExecutionId:i}=e.payload;if(n===void 0&&i===void 0)throw Error(`Either sourceExecutionId or targetExecutionId is required to list execution links.`);let a=[...n===void 0?[]:[N(r.sourceExecutionId,n)],...i===void 0?[]:[N(r.targetExecutionId,i)]],o=t.select().from(r).where(k(...a));e.setResult({links:(await o).map(Tn)})});return()=>{i(),a(),o(),s()}}function U(e,t){return t===null?It(e)===`postgres`?F`'null'::jsonb`:F`'null'`:t}function Dn(e){switch(e.kind){case`path`:return{sourceKind:`path`,sourcePath:e.path,sourceFilename:null,sourceCode:null};case`source`:return{sourceKind:`source`,sourcePath:null,sourceFilename:e.filename,sourceCode:e.source};case`definition`:return{sourceKind:`definition`,sourcePath:null,sourceFilename:null,sourceCode:null}}}function On(e){switch(e.sourceKind){case`path`:if(!e.sourcePath)throw Error(`Invalid run context row: sourcePath required for kind=path`);return{kind:`path`,path:e.sourcePath};case`source`:if(!e.sourceFilename)throw Error(`Invalid run context row: sourceFilename required for kind=source`);return{kind:`source`,filename:e.sourceFilename,source:e.sourceCode??``};case`definition`:return{kind:`definition`,workflowId:e.workflowId};default:throw Error(`Unknown run context source kind: ${String(e.sourceKind)}`)}}function kn(e){return{executionId:e.executionId,workflowId:e.workflowId,coordinatorSessionId:e.coordinatorSessionId,source:On(e),definitionSnapshot:e.definitionSnapshot??void 0,workerManifest:e.workerManifest,inputs:e.inputs,config:e.config??{},triggerPayload:e.triggerPayload,triggerMode:e.triggerMode,...e.artifactRef===null?{}:{artifactRef:e.artifactRef},scope:z(e),...e.dispatchMetadata===null?{}:{dispatchMetadata:e.dispatchMetadata},cancelSubject:e.cancelSubject,env:e.env,createdAt:e.createdAt,suspensionStrategy:e.suspensionStrategy??`wait-in-process`,...e.terminalAuthority===null?{}:{terminalAuthority:e.terminalAuthority},...e.materializationSpec===null?{}:{materializationSpec:e.materializationSpec}}}function An(e){let t=Dn(e.source),n=R(e.scope);return{executionId:e.executionId,workflowId:e.workflowId,coordinatorSessionId:e.coordinatorSessionId,...t,definitionSnapshot:e.definitionSnapshot??null,workerManifest:e.workerManifest,inputs:e.inputs,config:e.config??{},triggerPayload:e.triggerPayload,triggerMode:e.triggerMode??`immediate`,artifactRef:e.artifactRef??null,dispatchMetadata:e.dispatchMetadata??null,...n,cancelSubject:e.cancelSubject,env:e.env,createdAt:e.createdAt,suspensionStrategy:e.suspensionStrategy,terminalAuthority:e.terminalAuthority??null,materializationSpec:e.materializationSpec??null}}async function jn(e,t,n){let r=An(t);await e.insert(n).values(r).onConflictDoUpdate({target:n.executionId,set:r})}function Mn(e,t){let{workflowRunContexts:n,workflowExecutionState:r,workflowExecutionStateEvents:i}=D(t,L),a=e.on(_.setRunContext,async e=>{let a=e.payload.runContext,o=e.payload.initialState;await E(t,async e=>{if(await jn(e,a,n),o===void 0)return;let s=Date.now(),c=U(t,o);await e.insert(r).values({executionId:a.executionId,sequence:0,value:c,updatedAt:s}).onConflictDoNothing(),await e.insert(i).values({executionId:a.executionId,sequence:0,patch:[],value:c,createdAt:s}).onConflictDoNothing()}),e.setResult({executionId:a.executionId})}),o=e.on(_.getRunContext,async e=>{let{executionId:r}=e.payload,i=await t.select().from(n).where(N(n.executionId,r)),a=i[0]?kn(i[0]):null;e.setResult({runContext:a})});return()=>{a(),o()}}async function Nn(e,t,n){let{workflowExecutionState:r,workflowExecutionStateEvents:i}=D(e,L),a=Date.now(),o=U(e,n);await E(e,async e=>{await e.insert(r).values({executionId:t,sequence:0,value:o,updatedAt:a}).onConflictDoNothing(),await e.insert(i).values({executionId:t,sequence:0,patch:[],value:o,createdAt:a}).onConflictDoNothing()})}async function Pn(e,t){let{workflowExecutionState:n}=D(e,L),r=(await e.select().from(n).where(N(n.executionId,t)).limit(1))[0];return r?{executionId:r.executionId,sequence:r.sequence,value:r.value}:null}async function Fn(e,t){let{workflowExecutionState:n,workflowExecutionStateEvents:r}=D(e,L),i=Date.now(),a=U(e,t.nextValue);return E(e,async e=>{let o=(await e.select().from(n).where(N(n.executionId,t.executionId)).limit(1))[0];if(!o)throw Error(`no workflow state for execution ${t.executionId}`);if(t.expectedSequence===void 0)throw Error(`expectedSequence is required to patch workflow state`);let s=o.sequence+1,c=le(o.value,t.nextValue);if((await e.update(n).set({sequence:s,value:a,updatedAt:i}).where(k(N(n.executionId,t.executionId),N(n.sequence,t.expectedSequence))).returning()).length===0)throw Error(`state sequence conflict: expected ${String(t.expectedSequence)}, got ${String(o.sequence)}`);return await e.insert(r).values({executionId:t.executionId,sequence:s,patch:c,value:a,createdAt:i}),{executionId:t.executionId,sequence:s,patch:c,value:t.nextValue}})}function In(e,t){let n=e.on(_.initializeState,async e=>{let{executionId:n,initialValue:r}=e.payload;await Nn(t,n,r),e.setResult({})}),r=e.on(_.getState,async e=>{let{executionId:n}=e.payload,r=await Pn(t,n);e.setResult({state:r})}),i=e.on(_.patchState,async e=>{let{executionId:n,expectedSequence:r,nextValue:i}=e.payload,a=await Fn(t,{executionId:n,expectedSequence:r,nextValue:i});e.setResult(a)});return()=>{n(),r(),i()}}function Ln(e){return{executionId:e.executionId,workflowId:e.workflowId,workflowName:e.workflowName??void 0,status:e.status,startedAt:e.startedAt,completedAt:e.completedAt??void 0,durationMs:e.durationMs??void 0,totalInputTokens:e.totalInputTokens??void 0,totalOutputTokens:e.totalOutputTokens??void 0,totalEstimatedCost:e.totalEstimatedCost??void 0,error:e.error??void 0,failedNodeId:e.failedNodeId??void 0}}async function Rn(e,t){let{worklogSummaries:n}=D(e,L);await e.insert(n).values(t).onConflictDoNothing()}async function zn(e,t){let{worklogSummaries:n}=D(e,L);await e.insert(n).values(t).onConflictDoUpdate({target:n.executionId,set:Bn(t),setWhere:Ut(n.status,[`completed`,`failed`,`cancelled`])})}function Bn(e){return{workflowId:e.workflowId,workflowName:e.workflowName,status:e.status,startedAt:e.startedAt,completedAt:e.completedAt,durationMs:e.durationMs,error:e.error,failedNodeId:e.failedNodeId}}async function W(e,t){let{worklogSummaries:n}=D(e,L),r=await e.select().from(n).where(N(n.executionId,t)).limit(1);return r[0]?Ln(r[0]):null}async function Vn(e,t={}){let{worklogSummaries:n}=D(e,L),{workflowId:r,status:i,limit:a=50,offset:o=0}=t,s=[...r===void 0?[]:[N(n.workflowId,r)],...i===void 0?[]:[N(n.status,i)]],c=s.length>0?k(...s):void 0,[l,u]=await Promise.all([e.select().from(n).where(c).orderBy(M(n.startedAt)).limit(a).offset(o),e.select({count:j()}).from(n).where(c)]);return{items:l.map(Ln),total:u[0]?.count??0}}async function Hn(e,t){let{worklogFrameEntries:n}=D(e,L);await e.insert(n).values(t).onConflictDoNothing()}async function Un(e,t){let{worklogFrameEntries:n}=D(e,L);await e.insert(n).values(t).onConflictDoUpdate({target:n.frameId,set:t,setWhere:Ut(n.status,[`completed`,`failed`,`skipped`,`cancelled`])})}async function G(e,t){let{worklogFrameEntries:n}=D(e,L);return(await e.select().from(n).where(N(n.frameId,t)).limit(1))[0]??null}async function Wn(e,t){let n=await G(e,t);return n===null?null:yt.parse({executionId:n.executionId,frameId:n.frameId,nodeId:n.nodeId,nodeType:n.nodeType,path:n.path,status:n.status,attempt:n.attempt,iteration:n.iteration??void 0,branchKey:n.branchKey??void 0,startedAt:n.startedAt??void 0,completedAt:n.completedAt??void 0,durationMs:n.durationMs??void 0,inputTokens:n.inputTokens??void 0,outputTokens:n.outputTokens??void 0,estimatedCost:n.estimatedCost??void 0,error:n.error??void 0})}async function Gn(e,t){let{worklogArtifactWrites:n}=D(e,L);await e.insert(n).values(t).onConflictDoUpdate({target:n.id,set:t})}function Kn(e,t,n,r,i){return`${e}:${t}:${n}:${r}:${i}`}async function qn(e,t){let{worklogGateEvents:n}=D(e,L);await e.insert(n).values(t).onConflictDoUpdate({target:n.id,set:t})}async function Jn(e,t){let{worklogGateEvents:n}=D(e,L);return(await e.select().from(n).where(N(n.id,t)).limit(1))[0]??null}function Yn(e,t,n){return`${e}:${t}:${n}`}async function Xn(e,t,n){let[r]=await e.update(t).set({totalInputTokens:t.totalInputTokens}).where(N(t.executionId,n)).returning();return r}async function Zn(e,t,n){let[r]=await e.select({totalInputTokens:I(t.inputTokens),totalOutputTokens:I(t.outputTokens),totalEstimatedCost:I(t.estimatedCost),measuredInputTokens:j(t.inputTokens),measuredOutputTokens:j(t.outputTokens),measuredCosts:j(t.estimatedCost)}).from(t).where(N(t.executionId,n));return{totalInputTokens:Number(r?.totalInputTokens??0),totalOutputTokens:Number(r?.totalOutputTokens??0),totalEstimatedCost:Number(r?.totalEstimatedCost??0),hasMeasurements:Number(r?.measuredInputTokens??0)>0||Number(r?.measuredOutputTokens??0)>0||Number(r?.measuredCosts??0)>0}}function Qn(e){return e.hasMeasurements}async function $n(e,t,n,r){await e.update(t).set({totalInputTokens:r.totalInputTokens,totalOutputTokens:r.totalOutputTokens,totalEstimatedCost:r.totalEstimatedCost}).where(N(t.executionId,n))}async function er(e,t,n,r){let i=F`coalesce((select sum(${n.inputTokens}) from ${n} where ${n.executionId} = ${r}), 0)`,a=F`coalesce((select sum(${n.outputTokens}) from ${n} where ${n.executionId} = ${r}), 0)`,o=F`coalesce((select sum(${n.estimatedCost}) from ${n} where ${n.executionId} = ${r}), 0)`,s=F`exists(
|
|
2
2
|
select 1 from ${n}
|
|
3
3
|
where ${n.executionId} = ${r}
|
|
4
4
|
and (${n.inputTokens} is not null
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{SessionStorageSubjects as e}from"./services/session/storage/namespace.mjs";import{ExecutionTargetSubjects as t}from"./services/execution-target/namespace.mjs";import{r as n}from"./attach-error-wNJ8Q5uU.mjs";import{AdapterSubjects as r,AgentSubjects as i,DEFAULT_CONSTRAINTS as a,SessionSubjects as o,SpawnSubagentRpcRequestSchema as s,SubagentConfigSchema as c,SubagentError as l,SubagentErrorCode as u,SubagentSubjects as d,dep as f,extensionToken as p}from"@makaio/framework/contracts";import{MakaioBus as m}from"@makaio/framework/bus";import{BaseService as h}from"@makaio/framework/service-base";import{RuntimeProviderContextResolutionError as g,resolveRuntimeProviderContext as _}from"@makaio/framework/services/provider-context";function v(e,t){return`${e}:${t}`}function y(e,t){return e?.authenticated!==!0||!e.id?!1:e.kind===`workflow-execution`?!0:t.size===0?!1:t.has(v(e.kind,e.id))}var b=class{maxSize;items=[];constructor(e=50){this.maxSize=e}push(e){this.items.push(e),this.items.length>this.maxSize&&this.items.shift()}toArray(){return[...this.items]}get length(){return this.items.length}clear(){this.items=[]}};const x=[`completed`,`failed`,`cancelled`];function S(e){return x.includes(e)}var C=class{constraints;subagents=new Map;awaiters=new Map;constructor(e){this.constraints=e}track(e){let t=Date.now(),n={subagentId:e.subagentId,parentSessionId:e.parentSessionId,childSessionId:void 0,status:`spawning`,config:e.config,depth:e.depth,progressUpdates:new b(50),toolObservations:[],completedTurnUsage:new Map,completedTurnSuccess:new Map,toolCallIds:new Set,startTime:t,lastActivityAt:t};return this.subagents.set(e.subagentId,n),n}setChildSessionId(e,t){let n=this.subagents.get(e);n&&(n.childSessionId=t,n.lastActivityAt=Date.now())}markStarted(e){let t=this.subagents.get(e);t&&t.status===`spawning`&&this.applyStatus(t,`running`)}get(e){return this.subagents.get(e)}getByChildSessionId(e){return[...this.subagents.values()].find(t=>t.childSessionId===e)}recordTurnStarted(e,t){let n=this.getByChildSessionId(e);n===void 0||S(n.status)||(n.activeTurnId=t,n.lastActivityAt=Date.now())}recordTurnCompleted(e,t){let n=this.getByChildSessionId(e);n===void 0||S(n.status)||(n.activeTurnId===t&&(n.activeTurnId=void 0),n.lastActivityAt=Date.now())}recordToolObservation(e,t,n){let r=this.getByChildSessionId(e);if(!(r===void 0||S(r.status))){if(n!==void 0){if(r.toolCallIds.has(n))return;r.toolCallIds.add(n)}r.toolObservations.push(t),r.lastActivityAt=Date.now()}}getAllNonTerminal(){let e=[];for(let t of this.subagents.values())S(t.status)||e.push(t);return e}countActiveBySession(e){let t=0;for(let n of this.subagents.values())n.parentSessionId===e&&!S(n.status)&&t++;return t}countTotalActive(){let e=0;for(let t of this.subagents.values())S(t.status)||e++;return e}updateStatus(e,t){let n=this.subagents.get(e);n&&this.applyStatus(n,t)}applyStatus(e,t){let n=Date.now();e.status=t,e.lastActivityAt=n,S(t)&&(e.activeTurnId=void 0,e.endTime=n)}addProgress(e,t){let n=this.subagents.get(e);n&&(n.progressUpdates.push(t),n.lastActivityAt=Date.now())}setPendingRequest(e,t){let n=this.subagents.get(e);if(!n)throw new l(u.NOT_FOUND,`Subagent ${e} not found`);if(n.pendingRequest)throw new l(u.REQUEST_PENDING,`Cannot call request_input while another request is pending`);if(n.completionCandidate!==void 0)throw new l(u.INVALID_STATE,`Cannot request input while completion is pending`);n.pendingRequest=t,n.status=`waiting_input`,n.lastActivityAt=Date.now()}resolvePendingRequest(e,t){let n=this.subagents.get(e);n?.pendingRequest&&(n.pendingRequest.resolver(t),n.pendingRequest=void 0,n.lastActivityAt=Date.now(),n.status===`waiting_input`&&(n.status=`running`))}markCompleted(e,t,n,r){let i=this.subagents.get(e);if(!i)throw new l(u.NOT_FOUND,`Subagent ${e} not found`);if(S(i.status))throw new l(u.ALREADY_TERMINAL,`Subagent already in terminal state: ${i.status}`);this.applyStatus(i,`completed`),i.result=t,i.summary=n,i.completionSource=r,this.resolveAwaiters(e)}recordCompletionCandidate(e,t,n,r,i){let a=this.subagents.get(e);if(!a)throw new l(u.NOT_FOUND,`Subagent ${e} not found`);let o=a.completionCandidate;if(o!==void 0){if(o.turnId===t&&o.result===n&&o.summary===r&&o.source===i)return;throw new l(u.INVALID_STATE,`Conflicting subagent completion candidate`)}if(S(a.status))throw new l(u.ALREADY_TERMINAL,`Subagent already in terminal state: ${a.status}`);if(a.pendingRequest!==void 0)throw new l(u.INVALID_STATE,`Cannot complete while an input request is pending`);a.completionCandidate={turnId:t,result:n,summary:r,source:i},a.status=`completing`,a.lastActivityAt=Date.now()}recordCompletedTurn(e,t,n,r=!0,i){let a=this.subagents.get(e);a===void 0||S(a.status)||(a.completedTurnUsage.has(t)||(a.completedTurnUsage.set(t,n===void 0?void 0:{total:{...n.total},...n.byAgent===void 0?{}:{byAgent:Object.fromEntries(Object.entries(n.byAgent).map(([e,t])=>[e,{...t}]))}}),a.completedTurnSuccess.set(t,{success:r,...i!==void 0&&{error:i}})),a.lastActivityAt=Date.now())}finalizeCompletionIfReady(e){let t=this.subagents.get(e);if(!t)throw new l(u.NOT_FOUND,`Subagent ${e} not found`);if(S(t.status))return!1;let n=t.completionCandidate;if(n===void 0||!t.completedTurnUsage.has(n.turnId))return!1;let r=t.completedTurnSuccess.get(n.turnId);if(r?.success===!1)return this.markFailed(e,r.error??`child turn failed`),!0;let i=this.freezeUsage(t);return this.applyStatus(t,`completed`),t.result=n.result,t.summary=n.summary,t.completionSource=n.source,t.usage=i,this.resolveAwaiters(e),!0}freezeUsage(e){let t=0,n=0,r=0,i=!1;for(let a of e.completedTurnUsage.values())a!==void 0&&(i=!0,t+=a.total.inputTokens,n+=a.total.cachedInputTokens??0,r+=a.total.outputTokens);return Object.freeze({...i?{inputTokens:t,cachedInputTokens:n,outputTokens:r}:{},toolCallCount:e.toolCallIds.size})}markFailed(e,t){let n=this.subagents.get(e);!n||S(n.status)||(this.applyStatus(n,`failed`),n.error=t,this.resolveAwaiters(e))}markCancelled(e){let t=this.subagents.get(e);return!t||S(t.status)?!1:(this.applyStatus(t,`cancelled`),t.pendingRequest&&=(t.pendingRequest.resolver(null),void 0),this.resolveAwaiters(e),!0)}addAwaiter(e,t){let n=this.awaiters.get(e)??[];n.push(t),this.awaiters.set(e,n)}removeAwaiter(e,t){let n=this.awaiters.get(e);if(!n)return!1;let r=n.indexOf(t);return r===-1?!1:(n.splice(r,1),n.length===0&&this.awaiters.delete(e),!0)}resolveAwaiters(e){let t=this.subagents.get(e),n=this.awaiters.get(e);if(!n||!t)return;let r={status:t.status,result:t.result,error:t.error,completionSource:t.completionSource,usage:t.usage,toolObservations:[...t.toolObservations]};for(let e of n)e(r);this.awaiters.delete(e)}cleanup(){let e=Date.now(),t=0;for(let[n,r]of this.subagents)S(r.status)&&r.endTime&&e-r.endTime>this.constraints.stateRetentionMs&&(this.subagents.delete(n),t++);return t}sweepHung(e){if(e<=0)return 0;let t=Date.now(),n=0;for(let r of this.subagents.values())S(r.status)||r.status!==`spawning`&&r.status!==`waiting_input`&&r.status!==`hung`&&t-r.lastActivityAt>=e&&(r.status=`hung`,r.lastActivityAt=t,n++);return n}};async function w(e,t,n){let r=n?.trim();if(r)return r;let{session:i}=await e.request(o.get,{sessionId:t});return(i?.agents.find(e=>e.agentId===i.leadAgentId)??i?.agents[0])?.adapterName?.trim()}function T(e,t){let n=e.manager.get(t.subagentId);if(!n)throw Error(`Subagent not found: ${t.subagentId}`);return{status:n.status,childSessionId:n.childSessionId,pendingRequest:n.pendingRequest?{messageId:n.pendingRequest.messageId,question:n.pendingRequest.question,context:n.pendingRequest.context}:void 0,progress:n.progressUpdates.toArray(),result:n.result,summary:n.summary,error:n.error,usage:n.usage}}async function E(e,t){let{parentSessionId:n,config:r,depth:i,spawningToolCallId:a}=t,{constraints:o}=e.manager,s=Math.min(r.maxDepth??o.maxDepth,o.maxDepth);if(i>s)throw new l(u.DEPTH_EXCEEDED,`Maximum subagent depth (${s}) exceeded`);if(e.manager.countActiveBySession(n)>=o.maxConcurrentPerSession)throw new l(u.SESSION_LIMIT,`Maximum concurrent subagents per session (${o.maxConcurrentPerSession}) reached`);if(e.manager.countTotalActive()>=o.maxTotalActive)throw new l(u.GLOBAL_LIMIT,`Maximum total active subagents (${o.maxTotalActive}) reached`);let c=await w(e.bus,n,r.adapterName);if(!c)throw new l(u.ADAPTER_NOT_ALLOWED,`adapterName is required for subagent spawn when parent session has no inheritable adapter`);if(o.allowedAdapters.length>0&&!o.allowedAdapters.includes(c))throw new l(u.ADAPTER_NOT_ALLOWED,`Adapter '${c}' is not allowed`);if(r.model&&o.allowedModels.length>0&&!o.allowedModels.includes(r.model))throw new l(u.MODEL_NOT_ALLOWED,`Model '${r.model}' is not allowed`);let f={...r,adapterName:c},p=crypto.randomUUID();return e.manager.track({subagentId:p,parentSessionId:n,config:f,depth:i}),await e.bus.emit(d.spawned,{subagentId:p,parentSessionId:n,task:f.task,config:f,depth:i,...e.executionOwnerId!==void 0&&{executionOwnerId:e.executionOwnerId},...a!==void 0&&{spawningToolCallId:a}}),{subagentId:p,status:`spawning`}}async function D(e,t){let{subagentId:n,timeoutMs:r}=t,i=e.manager.get(n);if(!i)throw Error(`Subagent not found: ${n}`);if([`completed`,`failed`,`cancelled`].includes(i.status))return{status:i.status,result:i.result,error:i.error,completionSource:i.completionSource,toolObservations:[...i.toolObservations],usage:i.usage};if(i.status===`waiting_input`&&i.pendingRequest)return{status:`waiting_input`,pendingRequest:{messageId:i.pendingRequest.messageId,question:i.pendingRequest.question,context:i.pendingRequest.context}};let a=r??e.manager.constraints.defaultAwaitTimeoutMs;return new Promise(t=>{let r=!1,i,o=e=>{r||(r=!0,i&&clearTimeout(i),t({status:e.status,result:e.result,error:e.error,pendingRequest:e.pendingRequest,completionSource:e.completionSource,toolObservations:e.toolObservations,usage:e.usage}))};e.manager.addAwaiter(n,o),a>0&&(i=setTimeout(()=>{r||(r=!0,e.manager.removeAwaiter(n,o),t({status:`timeout`}))},a))})}async function O(e,t){let{subagentId:n,content:r,inResponseTo:i}=t,a=e.manager.get(n);if(!a)throw Error(`Subagent not found: ${n}`);if(a.status===`spawning`)throw new l(u.INVALID_STATE,`Cannot send to a subagent before startup completes`);if(a.completionCandidate!==void 0)throw new l(u.INVALID_STATE,`Cannot send to a subagent while completion is pending`);let o=!1;return i&&a.pendingRequest?.messageId===i&&(e.manager.resolvePendingRequest(n,r),o=!0),await e.bus.emit(d.toChild,{subagentId:n,messageId:crypto.randomUUID(),content:r,inResponseTo:i}),{sent:!0,resolvedPending:o}}async function k(e,t){let{subagentId:n,reason:r}=t,i=e.manager.markCancelled(n);return i&&await e.bus.emit(d.cancelled,{subagentId:n,reason:r??`Killed by parent`}),{killed:i}}async function A(e,t){let{subagentId:n,update:r,percentComplete:i}=t;if(!e.manager.get(n))throw Error(`Subagent not found: ${n}`);let a=i===void 0?r:`[${i}%] ${r}`;return e.manager.addProgress(n,a),await e.bus.emit(d.toParent,{subagentId:n,messageId:crypto.randomUUID(),type:`progress`,content:a}),{reported:!0}}async function j(e,t){let{subagentId:n,question:r,context:i,timeoutMs:a}=t,o=e.manager.get(n);if(!o)throw Error(`Subagent not found: ${n}`);if(o.completionCandidate!==void 0)throw new l(u.INVALID_STATE,`Cannot request input while completion is pending`);let s=crypto.randomUUID(),c=a??e.manager.constraints.defaultRequestTimeoutMs,f=!1,p,m,h=new Promise(e=>{m=e});e.manager.setPendingRequest(n,{messageId:s,question:r,context:i,resolver:e=>{f||(f=!0,p&&clearTimeout(p),m(e===null?{responded:!1,timedOut:!0}:{responded:!0,response:e,timedOut:!1}))}}),c>0&&(p=setTimeout(()=>{f||e.manager.resolvePendingRequest(n,null)},c));let g=e.bus.emit(d.toParent,{subagentId:n,messageId:s,type:`request_input`,content:r,context:i}).then(()=>({published:!0}),e=>({published:!1,error:e})),_=await Promise.race([h.then(e=>({response:e})),g]);if(`response`in _)return _.response;if(!_.published)throw e.manager.resolvePendingRequest(n,null),_.error;return h}async function M(e,t){let{sessionId:n,turnId:r,result:i,summary:a}=t,o=e.manager.getByChildSessionId(n);if(o===void 0)throw new l(u.NOT_FOUND,`No subagent owns this child session`);if(o.status===`completed`||o.status===`failed`||o.status===`cancelled`)throw new l(u.ALREADY_TERMINAL,`Subagent already in terminal state: ${o.status}`);let s=o.activeTurnId;if(s===void 0)throw new l(u.INVALID_STATE,`No active turn exists for this child session`);if(r!==void 0&&r!==s)throw new l(u.INVALID_STATE,`Completion turn does not match the active child turn`);return e.manager.recordCompletionCandidate(o.subagentId,s,i,a,`tool`),await e.onCompletionCandidate?.(o.subagentId),{completed:!0}}function N(e,t){let{parentSessionId:n}=t;return{subagents:e.manager.getAllNonTerminal().filter(e=>e.parentSessionId===n).map(e=>({subagentId:e.subagentId,task:e.config.task,status:e.status}))}}function P(e,t,n,r){return{kind:`adapter`,adapterName:e,...n!==void 0&&{providerContext:n},...t.model!==void 0&&{model:t.model},...t.reasoningEffort!==void 0&&{reasoningEffort:t.reasoningEffort},...t.systemPrompt!==void 0&&{systemPrompt:t.systemPrompt},...t.adapterConfig!==void 0&&{adapterConfig:t.adapterConfig},...r!==void 0&&{cwd:r},...t.tools!==void 0&&{allowedTools:t.tools},...t.disallowedTools!==void 0&&{disallowedTools:t.disallowedTools},...t.allowedDirectories!==void 0&&{allowedDirectories:t.allowedDirectories}}}async function F(e,t){let{subagentId:n,adapterName:r,config:i,sessionId:a,task:s,targetWorkingDirectory:c,assertAdmission:l}=t,u=i.providerContext;if(u?.state===`resolved`&&i.providerConfigId!==void 0&&i.providerConfigId!==u.providerConfigId)throw Error(`Subagent providerConfigId "${i.providerConfigId}" does not match its resolved provider context "${u.providerConfigId}".`);if(u?.state===`unresolved`&&i.providerConfigId!==void 0)throw new g(`provider-context-unresolved`,r,i.providerConfigId);let d=u??(i.providerConfigId?await _(e,{adapterName:r,providerConfigId:i.providerConfigId}):void 0);await e.request(o.agent.attachResolved,{sessionId:a,role:`lead`,initialMessage:s,source:`system`,assertInitialMessageAdmission:()=>{try{l()}catch{throw Error(`Subagent startup was cancelled before initial task admission: ${n}`)}},...i.responseSchema!==void 0&&{responseSchema:i.responseSchema},...i.harnessId!==void 0&&{harnessId:i.harnessId},agent:P(r,i,d,c)},{timeout:0})}const I={id:`system:local`,name:`Local`,description:`Default local process execution`,type:`local`,scope:`default`,enabled:!0,createdAt:Date.now(),updatedAt:Date.now()};var L=class extends Error{code;constructor(e){super(`Subagent failure finalization failed (${e}).`),this.code=e,this.name=`SubagentFailureFinalizationError`}},R=class extends h{delegationAllowSet;requestHandlerPriority;executionOwnerId;manager;pendingChildSessionClose=new Set;spawningExecutions=new Set;constructor(e=m,t=a,n=new Set,r=0,i=crypto.randomUUID()){super(e),this.delegationAllowSet=n,this.requestHandlerPriority=r,this.executionOwnerId=i,this.manager=new C(t)}grantDelegation(e,t){this.delegationAllowSet.add(`${e}:${t}`)}revokeDelegation(e,t){this.delegationAllowSet.delete(`${e}:${t}`)}onInit(){this.registerHandler(d.spawned,async e=>{e.payload.executionOwnerId!==void 0&&e.payload.executionOwnerId!==this.executionOwnerId||this.handleSpawned(e.payload).catch(e=>{console.error(`[SubagentService] handleSpawned error:`,e)})}),this.registerHandler(d.execute,async e=>{if(!this.isRemoteDelegationAllowed(e))return;let t=await this.handleExecute(e.payload);e.setResult(t)}),this.registerHandler(d.toChild,async e=>{await this.handleToChild(e.payload)}),this.registerHandler(d.completed,async e=>{await this.handleCompleted(e.payload.subagentId)}),this.registerHandler(d.cancelled,async e=>{await this.handleCancelled(e.payload.subagentId)}),this.registerHandler(r.session.closed,e=>{this.handleAdapterSessionClosed(e.payload.sessionId)}),this.registerHandler(i.complete,async e=>{await this.handleAgentComplete(e.payload)}),this.registerHandler(o.turn.completed,async e=>{await this.handleSessionTurnCompleted(e.payload)}),this.registerHandler(o.turn.started,e=>{this.handleSessionTurnStarted(e.payload)}),this.registerHandler(i.tool.completed,e=>{e.payload._import||e.payload.sessionId===void 0||e.payload.success===void 0||this.manager.recordToolObservation(e.payload.sessionId,{toolName:e.payload.toolName,outcome:e.payload.success?`success`:`failure`,...e.payload.success===!0&&e.payload.artifactResult!==void 0?{artifact:e.payload.artifactResult}:{}},e.payload.toolCallId)}),this.registerRpcHandlers(),this.wirePeriodicSweep()}wirePeriodicSweep(){let{inactivityTimeoutMs:e,sweepIntervalMs:t}=this.manager.constraints;if(t<=0)return;let n=setInterval(()=>{let t=this.manager.sweepHung(e);t>0&&console.warn(`[SubagentService] Swept ${t} hung subagent(s) due to inactivity`),this.manager.cleanup()},t);this.addCleanup(()=>clearInterval(n))}registerRpcHandlers(){let e={manager:this.manager,bus:this.bus,executionOwnerId:this.executionOwnerId,onCompletionCandidate:e=>this.finalizeSubagentIfReady(e)};this.registerHandler(d.getStatus,t=>{let n=T(e,t.payload);t.setResult(n)},{priority:this.requestHandlerPriority}),this.registerHandler(d.spawn,async t=>{if(!this.isRemoteDelegationAllowed(t))return;let n=await E(e,s.parse(t.payload));t.setResult(n)},{priority:this.requestHandlerPriority}),this.registerHandler(d.await,async t=>{let n=await D(e,t.payload);t.setResult(n)},{priority:this.requestHandlerPriority}),this.registerHandler(d.send,async t=>{let n=await O(e,t.payload);t.setResult(n)}),this.registerHandler(d.kill,async t=>{let n=await k(e,t.payload);t.setResult(n)},{priority:this.requestHandlerPriority}),this.registerHandler(d.reportProgress,async t=>{let n=await A(e,t.payload);t.setResult(n)}),this.registerHandler(d.requestInput,async t=>{let n=await j(e,t.payload);t.setResult(n)}),this.registerHandler(d.completeTask,async t=>{let n=await M(e,t.payload);t.setResult(n)}),this.registerHandler(d.listBySession,t=>{let n=N(e,t.payload);t.setResult(n)})}onDestroy(){this.pendingChildSessionClose.clear(),this.spawningExecutions.clear()}async handleSpawned(e){let{subagentId:t,parentSessionId:n,task:r,spawningToolCallId:i}=e,a=this.manager.get(t);if(!(a&&a.status!==`spawning`)&&!this.spawningExecutions.has(t)){this.spawningExecutions.add(t);try{return await this.executeSpawned(e,n,r,i)}finally{this.spawningExecutions.delete(t)}}}async executeSpawned(e,n,r,i){let{subagentId:a}=e,o=()=>this.shouldAbortSpawn(this.manager.get(a)?.status),s=c.parse({...e.config,task:r}),l=s.adapterName?.trim();if(!l)return this.failSpawn(a,n,`adapter_start`,`Subagent spawn requires a non-empty adapterName`);this.manager.get(a)||this.manager.track({subagentId:a,parentSessionId:n,config:s,depth:e.depth??1});let u,d;try{d=await this.buildExecutionTargetResolutionParams(n,s.executionTargetId);let e=await this.bus.requestOptional(t.resolve,d),r;if(e.handled)r=e.data.executionTarget;else if(d.executionTargetId!=null)throw Error(`Execution target resolver unavailable for explicit target '${d.executionTargetId}'`);else r=I;if(r.type!==`local`)return this.failSpawn(a,n,`adapter_start`,`Execution target type '${r.type}' is not yet supported for subagents`);u=d.executionTargetId??void 0}catch(e){return this.failSpawn(a,n,`adapter_start`,e)}let f;try{f=await this.createChildSessionForSpawn(a,n,s,u,d,i)}catch(e){return this.failSpawn(a,n,`session_create`,e)}if(!o())return this.attachSpawnedSubagent({subagentId:a,parentSessionId:n,adapterName:l,config:s,sessionId:f,task:r,targetWorkingDirectory:d.targetWorkingDirectory,shouldAbort:o})}async attachSpawnedSubagent(e){let{subagentId:t,parentSessionId:r,adapterName:i,config:a,sessionId:o,task:s,targetWorkingDirectory:c,shouldAbort:l}=e;try{await F(this.bus,{subagentId:t,adapterName:i,config:a,sessionId:o,task:s,targetWorkingDirectory:c,assertAdmission:()=>{if(this.shouldAbortSpawn(this.manager.get(t)?.status))throw Error(`startup cancelled`)}})}catch(e){if(l())return;let i=n(e);return this.failSpawn(t,r,i?.stage===`initial_message`?`agent_start`:`adapter_start`,e)}l()||this.manager.markStarted(t)}async createChildSessionForSpawn(e,t,n,r,i,a){let{sessionId:s}=await this.bus.request(o.create,this.buildChildSessionCreatePayload(t,n,r,i.targetWorkingDirectory,a));return this.manager.setChildSessionId(e,s),this.pendingChildSessionClose.has(e)&&await this.closeChildSession(e),s}async failSpawn(e,t,n,r){let i=r instanceof Error?r:Error(String(r));this.manager.markFailed(e,i.message);let[a,o]=await Promise.allSettled([this.manager.get(e)?.childSessionId===void 0?Promise.resolve():this.requestChildSessionClose(e),this.emitExecutionFailed(e,t,n,i)]),s=[];if(a.status===`rejected`&&s.push(new L(`child-session-close-failed`)),o.status===`rejected`&&s.push(new L(`failure-publication-failed`)),s.length>0)throw AggregateError([i,...s],`Subagent spawn failed and failure finalization also failed.`);return i.message}async buildExecutionTargetResolutionParams(t,n){if(n!==void 0)return{executionTargetId:n};let{session:r}=await this.bus.request(e.get,{sessionId:t});if(!r)throw Error(`Parent session not found: ${t}`);return{...r.executionTargetId!==void 0&&{executionTargetId:r.executionTargetId},...r.targetWorkingDirectory!==void 0&&{targetWorkingDirectory:r.targetWorkingDirectory}}}buildChildSessionCreatePayload(e,t,n,r,i){return{branchKind:`subagent`,parentSessionId:e,contextInheritance:t.contextMode===`fork`?`parent-history`:`none`,...n!==void 0&&{executionTargetId:n},...r!==void 0&&{targetWorkingDirectory:r},...i!==void 0&&{spawningToolCallId:i}}}async handleExecute(e){let t=c.parse({...e.config,task:e.task});this.manager.track({subagentId:e.subagentId,parentSessionId:e.parentSessionId,config:t,depth:e.depth});let n=await this.handleSpawned({subagentId:e.subagentId,parentSessionId:e.parentSessionId,task:e.task,config:t,depth:e.depth});return n?{success:!1,error:n}:{success:!0}}async handleToChild(e){let{subagentId:t,content:n}=e,r=this.manager.get(t);if(!r){console.warn(`[SubagentService] No subagent found: ${t}`);return}if(!r.childSessionId){console.warn(`[SubagentService] No child session for subagent: ${t}`);return}try{await this.bus.request(o.sendMessage,{sessionId:r.childSessionId,message:n,source:`system`})}catch(e){console.error(`[SubagentService] Failed to route message to child session:`,e)}}async handleCompleted(e){await this.closeChildSession(e)}async handleCancelled(e){await this.closeChildSession(e)}async closeChildSession(e){try{await this.requestChildSessionClose(e)}catch{console.error(`[SubagentService] Failed to close child session for subagent ${e}:`,new L(`child-session-close-failed`))}}async requestChildSessionClose(e){let t=this.manager.get(e);if(t){if(!t.childSessionId){this.pendingChildSessionClose.add(e);return}this.pendingChildSessionClose.delete(e),await this.bus.request(o.close,{sessionId:t.childSessionId})}}shouldAbortSpawn(e){return e===void 0||e===`completed`||e===`failed`||e===`cancelled`}handleAdapterSessionClosed(e){for(let t of this.manager.getAllNonTerminal())if(t.childSessionId===e){console.warn(`[SubagentService] Adapter session closed for subagent ${t.subagentId}: ${e}`),this.manager.markFailed(t.subagentId,`adapter-session-closed`);return}}async handleAgentComplete(e){let{sessionId:t,turnId:n,outcome:r,message:i,error:a}=e;if(!(!t||!n))for(let e of this.manager.getAllNonTerminal()){if(e.childSessionId!==t)continue;if((e.config.completion??`tool`)!==`turn`||e.status===`waiting_input`)return;let o=r??`completed`;if(o===`completed`)try{this.manager.recordCompletionCandidate(e.subagentId,n,i??``,void 0,`turn`),await this.finalizeSubagentIfReady(e.subagentId)}catch{return}else if(o===`error`)try{this.manager.recordCompletionCandidate(e.subagentId,n,a??`child turn failed`,void 0,`turn`),await this.finalizeSubagentIfReady(e.subagentId)}catch{return}return}}async handleSessionTurnCompleted(e){if(e.ingestionMarker!==`backfill`){for(let t of this.manager.getAllNonTerminal())if(t.childSessionId===e.sessionId){if(this.manager.recordTurnCompleted(e.sessionId,e.turnId),this.manager.recordCompletedTurn(t.subagentId,e.turnId,e.usage,e.success,e.error),t.completionCandidate?.turnId!==e.turnId)return;await this.finalizeSubagentIfReady(t.subagentId);return}}}handleSessionTurnStarted(e){e.ingestionMarker!==`backfill`&&this.manager.recordTurnStarted(e.sessionId,e.turnId)}async finalizeSubagentIfReady(e){if(!this.manager.finalizeCompletionIfReady(e))return;let t=this.manager.get(e);await this.bus.emit(d.completed,{subagentId:e,success:t?.status===`completed`,...t?.status===`completed`?{result:t.summary?`${t.summary}\n\n${t.result??``}`:t?.result,usage:t.usage}:{error:t?.error??`child turn failed`}})}isRemoteDelegationAllowed(e){return e.origin.local||y(e.transport?.peer,this.delegationAllowSet)}async emitExecutionFailed(e,t,n,r){let i=r instanceof Error?r.message:String(r);await this.bus.emit(d.executionFailed,{subagentId:e,parentSessionId:t,phase:n,error:i})}};const z=p(`subagent-service`);function B(e=0){return{name:z.name,displayName:`Subagent Service`,version:`0.1.0`,critical:!0,surface:`headless`,dependencies:[f(`session`)],create:t=>new R(t.bus,a,new Set,e)}}const V=B();export{R as a,L as i,B as n,C as o,V as r,y as s,z as t};
|
|
1
|
+
import{SessionStorageSubjects as e}from"./services/session/storage/namespace.mjs";import{ExecutionTargetSubjects as t}from"./services/execution-target/namespace.mjs";import{r as n}from"./attach-error-mkj6SVd2.mjs";import{AdapterSubjects as r,AgentSubjects as i,DEFAULT_CONSTRAINTS as a,SessionSubjects as o,SpawnSubagentRpcRequestSchema as s,SubagentConfigSchema as c,SubagentError as l,SubagentErrorCode as u,SubagentSubjects as d,dep as f,extensionToken as p}from"@makaio/framework/contracts";import{MakaioBus as m}from"@makaio/framework/bus";import{BaseService as h}from"@makaio/framework/service-base";import{RuntimeProviderContextResolutionError as g,resolveRuntimeProviderContext as _}from"@makaio/framework/services/provider-context";function v(e,t){return`${e}:${t}`}function y(e,t){return e?.authenticated!==!0||!e.id?!1:e.kind===`workflow-execution`?!0:t.size===0?!1:t.has(v(e.kind,e.id))}var b=class{maxSize;items=[];constructor(e=50){this.maxSize=e}push(e){this.items.push(e),this.items.length>this.maxSize&&this.items.shift()}toArray(){return[...this.items]}get length(){return this.items.length}clear(){this.items=[]}};const x=[`completed`,`failed`,`cancelled`];function S(e){return x.includes(e)}var C=class{constraints;subagents=new Map;awaiters=new Map;constructor(e){this.constraints=e}track(e){let t=Date.now(),n={subagentId:e.subagentId,parentSessionId:e.parentSessionId,childSessionId:void 0,status:`spawning`,config:e.config,depth:e.depth,progressUpdates:new b(50),toolObservations:[],completedTurnUsage:new Map,completedTurnSuccess:new Map,toolCallIds:new Set,startTime:t,lastActivityAt:t};return this.subagents.set(e.subagentId,n),n}setChildSessionId(e,t){let n=this.subagents.get(e);n&&(n.childSessionId=t,n.lastActivityAt=Date.now())}markStarted(e){let t=this.subagents.get(e);t&&t.status===`spawning`&&this.applyStatus(t,`running`)}get(e){return this.subagents.get(e)}getByChildSessionId(e){return[...this.subagents.values()].find(t=>t.childSessionId===e)}recordTurnStarted(e,t){let n=this.getByChildSessionId(e);n===void 0||S(n.status)||(n.activeTurnId=t,n.lastActivityAt=Date.now())}recordTurnCompleted(e,t){let n=this.getByChildSessionId(e);n===void 0||S(n.status)||(n.activeTurnId===t&&(n.activeTurnId=void 0),n.lastActivityAt=Date.now())}recordToolObservation(e,t,n){let r=this.getByChildSessionId(e);if(!(r===void 0||S(r.status))){if(n!==void 0){if(r.toolCallIds.has(n))return;r.toolCallIds.add(n)}r.toolObservations.push(t),r.lastActivityAt=Date.now()}}getAllNonTerminal(){let e=[];for(let t of this.subagents.values())S(t.status)||e.push(t);return e}countActiveBySession(e){let t=0;for(let n of this.subagents.values())n.parentSessionId===e&&!S(n.status)&&t++;return t}countTotalActive(){let e=0;for(let t of this.subagents.values())S(t.status)||e++;return e}updateStatus(e,t){let n=this.subagents.get(e);n&&this.applyStatus(n,t)}applyStatus(e,t){let n=Date.now();e.status=t,e.lastActivityAt=n,S(t)&&(e.activeTurnId=void 0,e.endTime=n)}addProgress(e,t){let n=this.subagents.get(e);n&&(n.progressUpdates.push(t),n.lastActivityAt=Date.now())}setPendingRequest(e,t){let n=this.subagents.get(e);if(!n)throw new l(u.NOT_FOUND,`Subagent ${e} not found`);if(n.pendingRequest)throw new l(u.REQUEST_PENDING,`Cannot call request_input while another request is pending`);if(n.completionCandidate!==void 0)throw new l(u.INVALID_STATE,`Cannot request input while completion is pending`);n.pendingRequest=t,n.status=`waiting_input`,n.lastActivityAt=Date.now()}resolvePendingRequest(e,t){let n=this.subagents.get(e);n?.pendingRequest&&(n.pendingRequest.resolver(t),n.pendingRequest=void 0,n.lastActivityAt=Date.now(),n.status===`waiting_input`&&(n.status=`running`))}markCompleted(e,t,n,r){let i=this.subagents.get(e);if(!i)throw new l(u.NOT_FOUND,`Subagent ${e} not found`);if(S(i.status))throw new l(u.ALREADY_TERMINAL,`Subagent already in terminal state: ${i.status}`);this.applyStatus(i,`completed`),i.result=t,i.summary=n,i.completionSource=r,this.resolveAwaiters(e)}recordCompletionCandidate(e,t,n,r,i){let a=this.subagents.get(e);if(!a)throw new l(u.NOT_FOUND,`Subagent ${e} not found`);let o=a.completionCandidate;if(o!==void 0){if(o.turnId===t&&o.result===n&&o.summary===r&&o.source===i)return;throw new l(u.INVALID_STATE,`Conflicting subagent completion candidate`)}if(S(a.status))throw new l(u.ALREADY_TERMINAL,`Subagent already in terminal state: ${a.status}`);if(a.pendingRequest!==void 0)throw new l(u.INVALID_STATE,`Cannot complete while an input request is pending`);a.completionCandidate={turnId:t,result:n,summary:r,source:i},a.status=`completing`,a.lastActivityAt=Date.now()}recordCompletedTurn(e,t,n,r=!0,i){let a=this.subagents.get(e);a===void 0||S(a.status)||(a.completedTurnUsage.has(t)||(a.completedTurnUsage.set(t,n===void 0?void 0:{total:{...n.total},...n.byAgent===void 0?{}:{byAgent:Object.fromEntries(Object.entries(n.byAgent).map(([e,t])=>[e,{...t}]))}}),a.completedTurnSuccess.set(t,{success:r,...i!==void 0&&{error:i}})),a.lastActivityAt=Date.now())}finalizeCompletionIfReady(e){let t=this.subagents.get(e);if(!t)throw new l(u.NOT_FOUND,`Subagent ${e} not found`);if(S(t.status))return!1;let n=t.completionCandidate;if(n===void 0||!t.completedTurnUsage.has(n.turnId))return!1;let r=t.completedTurnSuccess.get(n.turnId);if(r?.success===!1)return this.markFailed(e,r.error??`child turn failed`),!0;let i=this.freezeUsage(t);return this.applyStatus(t,`completed`),t.result=n.result,t.summary=n.summary,t.completionSource=n.source,t.usage=i,this.resolveAwaiters(e),!0}freezeUsage(e){let t=0,n=0,r=0,i=!1;for(let a of e.completedTurnUsage.values())a!==void 0&&(i=!0,t+=a.total.inputTokens,n+=a.total.cachedInputTokens??0,r+=a.total.outputTokens);return Object.freeze({...i?{inputTokens:t,cachedInputTokens:n,outputTokens:r}:{},toolCallCount:e.toolCallIds.size})}markFailed(e,t){let n=this.subagents.get(e);!n||S(n.status)||(this.applyStatus(n,`failed`),n.error=t,this.resolveAwaiters(e))}markCancelled(e){let t=this.subagents.get(e);return!t||S(t.status)?!1:(this.applyStatus(t,`cancelled`),t.pendingRequest&&=(t.pendingRequest.resolver(null),void 0),this.resolveAwaiters(e),!0)}addAwaiter(e,t){let n=this.awaiters.get(e)??[];n.push(t),this.awaiters.set(e,n)}removeAwaiter(e,t){let n=this.awaiters.get(e);if(!n)return!1;let r=n.indexOf(t);return r===-1?!1:(n.splice(r,1),n.length===0&&this.awaiters.delete(e),!0)}resolveAwaiters(e){let t=this.subagents.get(e),n=this.awaiters.get(e);if(!n||!t)return;let r={status:t.status,result:t.result,error:t.error,completionSource:t.completionSource,usage:t.usage,toolObservations:[...t.toolObservations]};for(let e of n)e(r);this.awaiters.delete(e)}cleanup(){let e=Date.now(),t=0;for(let[n,r]of this.subagents)S(r.status)&&r.endTime&&e-r.endTime>this.constraints.stateRetentionMs&&(this.subagents.delete(n),t++);return t}sweepHung(e){if(e<=0)return 0;let t=Date.now(),n=0;for(let r of this.subagents.values())S(r.status)||r.status!==`spawning`&&r.status!==`waiting_input`&&r.status!==`hung`&&t-r.lastActivityAt>=e&&(r.status=`hung`,r.lastActivityAt=t,n++);return n}};async function w(e,t,n){let r=n?.trim();if(r)return r;let{session:i}=await e.request(o.get,{sessionId:t});return(i?.agents.find(e=>e.agentId===i.leadAgentId)??i?.agents[0])?.adapterName?.trim()}function T(e,t){let n=e.manager.get(t.subagentId);if(!n)throw Error(`Subagent not found: ${t.subagentId}`);return{status:n.status,childSessionId:n.childSessionId,pendingRequest:n.pendingRequest?{messageId:n.pendingRequest.messageId,question:n.pendingRequest.question,context:n.pendingRequest.context}:void 0,progress:n.progressUpdates.toArray(),result:n.result,summary:n.summary,error:n.error,usage:n.usage}}async function E(e,t){let{parentSessionId:n,config:r,depth:i,spawningToolCallId:a}=t,{constraints:o}=e.manager,s=Math.min(r.maxDepth??o.maxDepth,o.maxDepth);if(i>s)throw new l(u.DEPTH_EXCEEDED,`Maximum subagent depth (${s}) exceeded`);if(e.manager.countActiveBySession(n)>=o.maxConcurrentPerSession)throw new l(u.SESSION_LIMIT,`Maximum concurrent subagents per session (${o.maxConcurrentPerSession}) reached`);if(e.manager.countTotalActive()>=o.maxTotalActive)throw new l(u.GLOBAL_LIMIT,`Maximum total active subagents (${o.maxTotalActive}) reached`);let c=await w(e.bus,n,r.adapterName);if(!c)throw new l(u.ADAPTER_NOT_ALLOWED,`adapterName is required for subagent spawn when parent session has no inheritable adapter`);if(o.allowedAdapters.length>0&&!o.allowedAdapters.includes(c))throw new l(u.ADAPTER_NOT_ALLOWED,`Adapter '${c}' is not allowed`);if(r.model&&o.allowedModels.length>0&&!o.allowedModels.includes(r.model))throw new l(u.MODEL_NOT_ALLOWED,`Model '${r.model}' is not allowed`);let f={...r,adapterName:c},p=crypto.randomUUID();return e.manager.track({subagentId:p,parentSessionId:n,config:f,depth:i}),await e.bus.emit(d.spawned,{subagentId:p,parentSessionId:n,task:f.task,config:f,depth:i,...e.executionOwnerId!==void 0&&{executionOwnerId:e.executionOwnerId},...a!==void 0&&{spawningToolCallId:a}}),{subagentId:p,status:`spawning`}}async function D(e,t){let{subagentId:n,timeoutMs:r}=t,i=e.manager.get(n);if(!i)throw Error(`Subagent not found: ${n}`);if([`completed`,`failed`,`cancelled`].includes(i.status))return{status:i.status,result:i.result,error:i.error,completionSource:i.completionSource,toolObservations:[...i.toolObservations],usage:i.usage};if(i.status===`waiting_input`&&i.pendingRequest)return{status:`waiting_input`,pendingRequest:{messageId:i.pendingRequest.messageId,question:i.pendingRequest.question,context:i.pendingRequest.context}};let a=r??e.manager.constraints.defaultAwaitTimeoutMs;return new Promise(t=>{let r=!1,i,o=e=>{r||(r=!0,i&&clearTimeout(i),t({status:e.status,result:e.result,error:e.error,pendingRequest:e.pendingRequest,completionSource:e.completionSource,toolObservations:e.toolObservations,usage:e.usage}))};e.manager.addAwaiter(n,o),a>0&&(i=setTimeout(()=>{r||(r=!0,e.manager.removeAwaiter(n,o),t({status:`timeout`}))},a))})}async function O(e,t){let{subagentId:n,content:r,inResponseTo:i}=t,a=e.manager.get(n);if(!a)throw Error(`Subagent not found: ${n}`);if(a.status===`spawning`)throw new l(u.INVALID_STATE,`Cannot send to a subagent before startup completes`);if(a.completionCandidate!==void 0)throw new l(u.INVALID_STATE,`Cannot send to a subagent while completion is pending`);let o=!1;return i&&a.pendingRequest?.messageId===i&&(e.manager.resolvePendingRequest(n,r),o=!0),await e.bus.emit(d.toChild,{subagentId:n,messageId:crypto.randomUUID(),content:r,inResponseTo:i}),{sent:!0,resolvedPending:o}}async function k(e,t){let{subagentId:n,reason:r}=t,i=e.manager.markCancelled(n);return i&&await e.bus.emit(d.cancelled,{subagentId:n,reason:r??`Killed by parent`}),{killed:i}}async function A(e,t){let{subagentId:n,update:r,percentComplete:i}=t;if(!e.manager.get(n))throw Error(`Subagent not found: ${n}`);let a=i===void 0?r:`[${i}%] ${r}`;return e.manager.addProgress(n,a),await e.bus.emit(d.toParent,{subagentId:n,messageId:crypto.randomUUID(),type:`progress`,content:a}),{reported:!0}}async function j(e,t){let{subagentId:n,question:r,context:i,timeoutMs:a}=t,o=e.manager.get(n);if(!o)throw Error(`Subagent not found: ${n}`);if(o.completionCandidate!==void 0)throw new l(u.INVALID_STATE,`Cannot request input while completion is pending`);let s=crypto.randomUUID(),c=a??e.manager.constraints.defaultRequestTimeoutMs,f=!1,p,m,h=new Promise(e=>{m=e});e.manager.setPendingRequest(n,{messageId:s,question:r,context:i,resolver:e=>{f||(f=!0,p&&clearTimeout(p),m(e===null?{responded:!1,timedOut:!0}:{responded:!0,response:e,timedOut:!1}))}}),c>0&&(p=setTimeout(()=>{f||e.manager.resolvePendingRequest(n,null)},c));let g=e.bus.emit(d.toParent,{subagentId:n,messageId:s,type:`request_input`,content:r,context:i}).then(()=>({published:!0}),e=>({published:!1,error:e})),_=await Promise.race([h.then(e=>({response:e})),g]);if(`response`in _)return _.response;if(!_.published)throw e.manager.resolvePendingRequest(n,null),_.error;return h}async function M(e,t){let{sessionId:n,turnId:r,result:i,summary:a}=t,o=e.manager.getByChildSessionId(n);if(o===void 0)throw new l(u.NOT_FOUND,`No subagent owns this child session`);if(o.status===`completed`||o.status===`failed`||o.status===`cancelled`)throw new l(u.ALREADY_TERMINAL,`Subagent already in terminal state: ${o.status}`);let s=o.activeTurnId;if(s===void 0)throw new l(u.INVALID_STATE,`No active turn exists for this child session`);if(r!==void 0&&r!==s)throw new l(u.INVALID_STATE,`Completion turn does not match the active child turn`);return e.manager.recordCompletionCandidate(o.subagentId,s,i,a,`tool`),await e.onCompletionCandidate?.(o.subagentId),{completed:!0}}function N(e,t){let{parentSessionId:n}=t;return{subagents:e.manager.getAllNonTerminal().filter(e=>e.parentSessionId===n).map(e=>({subagentId:e.subagentId,task:e.config.task,status:e.status}))}}function P(e,t,n,r){return{kind:`adapter`,adapterName:e,...n!==void 0&&{providerContext:n},...t.model!==void 0&&{model:t.model},...t.reasoningEffort!==void 0&&{reasoningEffort:t.reasoningEffort},...t.systemPrompt!==void 0&&{systemPrompt:t.systemPrompt},...t.adapterConfig!==void 0&&{adapterConfig:t.adapterConfig},...r!==void 0&&{cwd:r},...t.tools!==void 0&&{allowedTools:t.tools},...t.disallowedTools!==void 0&&{disallowedTools:t.disallowedTools},...t.allowedDirectories!==void 0&&{allowedDirectories:t.allowedDirectories}}}async function F(e,t){let{subagentId:n,adapterName:r,config:i,sessionId:a,task:s,targetWorkingDirectory:c,assertAdmission:l}=t,u=i.providerContext;if(u?.state===`resolved`&&i.providerConfigId!==void 0&&i.providerConfigId!==u.providerConfigId)throw Error(`Subagent providerConfigId "${i.providerConfigId}" does not match its resolved provider context "${u.providerConfigId}".`);if(u?.state===`unresolved`&&i.providerConfigId!==void 0)throw new g(`provider-context-unresolved`,r,i.providerConfigId);let d=u??(i.providerConfigId?await _(e,{adapterName:r,providerConfigId:i.providerConfigId}):void 0);await e.request(o.agent.attachResolved,{sessionId:a,role:`lead`,initialMessage:s,source:`system`,assertInitialMessageAdmission:()=>{try{l()}catch{throw Error(`Subagent startup was cancelled before initial task admission: ${n}`)}},...i.responseSchema!==void 0&&{responseSchema:i.responseSchema},...i.harnessId!==void 0&&{harnessId:i.harnessId},agent:P(r,i,d,c)},{timeout:0})}const I={id:`system:local`,name:`Local`,description:`Default local process execution`,type:`local`,scope:`default`,enabled:!0,createdAt:Date.now(),updatedAt:Date.now()};var L=class extends Error{code;constructor(e){super(`Subagent failure finalization failed (${e}).`),this.code=e,this.name=`SubagentFailureFinalizationError`}},R=class extends h{delegationAllowSet;requestHandlerPriority;executionOwnerId;manager;pendingChildSessionClose=new Set;spawningExecutions=new Set;constructor(e=m,t=a,n=new Set,r=0,i=crypto.randomUUID()){super(e),this.delegationAllowSet=n,this.requestHandlerPriority=r,this.executionOwnerId=i,this.manager=new C(t)}grantDelegation(e,t){this.delegationAllowSet.add(`${e}:${t}`)}revokeDelegation(e,t){this.delegationAllowSet.delete(`${e}:${t}`)}onInit(){this.registerHandler(d.spawned,async e=>{e.payload.executionOwnerId!==void 0&&e.payload.executionOwnerId!==this.executionOwnerId||this.handleSpawned(e.payload).catch(e=>{console.error(`[SubagentService] handleSpawned error:`,e)})}),this.registerHandler(d.execute,async e=>{if(!this.isRemoteDelegationAllowed(e))return;let t=await this.handleExecute(e.payload);e.setResult(t)}),this.registerHandler(d.toChild,async e=>{await this.handleToChild(e.payload)}),this.registerHandler(d.completed,async e=>{await this.handleCompleted(e.payload.subagentId)}),this.registerHandler(d.cancelled,async e=>{await this.handleCancelled(e.payload.subagentId)}),this.registerHandler(r.session.closed,e=>{this.handleAdapterSessionClosed(e.payload.sessionId)}),this.registerHandler(i.complete,async e=>{await this.handleAgentComplete(e.payload)}),this.registerHandler(o.turn.completed,async e=>{await this.handleSessionTurnCompleted(e.payload)}),this.registerHandler(o.turn.started,e=>{this.handleSessionTurnStarted(e.payload)}),this.registerHandler(i.tool.completed,e=>{e.payload._import||e.payload.sessionId===void 0||e.payload.success===void 0||this.manager.recordToolObservation(e.payload.sessionId,{toolName:e.payload.toolName,outcome:e.payload.success?`success`:`failure`,...e.payload.success===!0&&e.payload.artifactResult!==void 0?{artifact:e.payload.artifactResult}:{}},e.payload.toolCallId)}),this.registerRpcHandlers(),this.wirePeriodicSweep()}wirePeriodicSweep(){let{inactivityTimeoutMs:e,sweepIntervalMs:t}=this.manager.constraints;if(t<=0)return;let n=setInterval(()=>{let t=this.manager.sweepHung(e);t>0&&console.warn(`[SubagentService] Swept ${t} hung subagent(s) due to inactivity`),this.manager.cleanup()},t);this.addCleanup(()=>clearInterval(n))}registerRpcHandlers(){let e={manager:this.manager,bus:this.bus,executionOwnerId:this.executionOwnerId,onCompletionCandidate:e=>this.finalizeSubagentIfReady(e)};this.registerHandler(d.getStatus,t=>{let n=T(e,t.payload);t.setResult(n)},{priority:this.requestHandlerPriority}),this.registerHandler(d.spawn,async t=>{if(!this.isRemoteDelegationAllowed(t))return;let n=await E(e,s.parse(t.payload));t.setResult(n)},{priority:this.requestHandlerPriority}),this.registerHandler(d.await,async t=>{let n=await D(e,t.payload);t.setResult(n)},{priority:this.requestHandlerPriority}),this.registerHandler(d.send,async t=>{let n=await O(e,t.payload);t.setResult(n)}),this.registerHandler(d.kill,async t=>{let n=await k(e,t.payload);t.setResult(n)},{priority:this.requestHandlerPriority}),this.registerHandler(d.reportProgress,async t=>{let n=await A(e,t.payload);t.setResult(n)}),this.registerHandler(d.requestInput,async t=>{let n=await j(e,t.payload);t.setResult(n)}),this.registerHandler(d.completeTask,async t=>{let n=await M(e,t.payload);t.setResult(n)}),this.registerHandler(d.listBySession,t=>{let n=N(e,t.payload);t.setResult(n)})}onDestroy(){this.pendingChildSessionClose.clear(),this.spawningExecutions.clear()}async handleSpawned(e){let{subagentId:t,parentSessionId:n,task:r,spawningToolCallId:i}=e,a=this.manager.get(t);if(!(a&&a.status!==`spawning`)&&!this.spawningExecutions.has(t)){this.spawningExecutions.add(t);try{return await this.executeSpawned(e,n,r,i)}finally{this.spawningExecutions.delete(t)}}}async executeSpawned(e,n,r,i){let{subagentId:a}=e,o=()=>this.shouldAbortSpawn(this.manager.get(a)?.status),s=c.parse({...e.config,task:r}),l=s.adapterName?.trim();if(!l)return this.failSpawn(a,n,`adapter_start`,`Subagent spawn requires a non-empty adapterName`);this.manager.get(a)||this.manager.track({subagentId:a,parentSessionId:n,config:s,depth:e.depth??1});let u,d;try{d=await this.buildExecutionTargetResolutionParams(n,s.executionTargetId);let e=await this.bus.requestOptional(t.resolve,d),r;if(e.handled)r=e.data.executionTarget;else if(d.executionTargetId!=null)throw Error(`Execution target resolver unavailable for explicit target '${d.executionTargetId}'`);else r=I;if(r.type!==`local`)return this.failSpawn(a,n,`adapter_start`,`Execution target type '${r.type}' is not yet supported for subagents`);u=d.executionTargetId??void 0}catch(e){return this.failSpawn(a,n,`adapter_start`,e)}let f;try{f=await this.createChildSessionForSpawn(a,n,s,u,d,i)}catch(e){return this.failSpawn(a,n,`session_create`,e)}if(!o())return this.attachSpawnedSubagent({subagentId:a,parentSessionId:n,adapterName:l,config:s,sessionId:f,task:r,targetWorkingDirectory:d.targetWorkingDirectory,shouldAbort:o})}async attachSpawnedSubagent(e){let{subagentId:t,parentSessionId:r,adapterName:i,config:a,sessionId:o,task:s,targetWorkingDirectory:c,shouldAbort:l}=e;try{await F(this.bus,{subagentId:t,adapterName:i,config:a,sessionId:o,task:s,targetWorkingDirectory:c,assertAdmission:()=>{if(this.shouldAbortSpawn(this.manager.get(t)?.status))throw Error(`startup cancelled`)}})}catch(e){if(l())return;let i=n(e);return this.failSpawn(t,r,i?.stage===`initial_message`?`agent_start`:`adapter_start`,e)}l()||this.manager.markStarted(t)}async createChildSessionForSpawn(e,t,n,r,i,a){let{sessionId:s}=await this.bus.request(o.create,this.buildChildSessionCreatePayload(t,n,r,i.targetWorkingDirectory,a));return this.manager.setChildSessionId(e,s),this.pendingChildSessionClose.has(e)&&await this.closeChildSession(e),s}async failSpawn(e,t,n,r){let i=r instanceof Error?r:Error(String(r));this.manager.markFailed(e,i.message);let[a,o]=await Promise.allSettled([this.manager.get(e)?.childSessionId===void 0?Promise.resolve():this.requestChildSessionClose(e),this.emitExecutionFailed(e,t,n,i)]),s=[];if(a.status===`rejected`&&s.push(new L(`child-session-close-failed`)),o.status===`rejected`&&s.push(new L(`failure-publication-failed`)),s.length>0)throw AggregateError([i,...s],`Subagent spawn failed and failure finalization also failed.`);return i.message}async buildExecutionTargetResolutionParams(t,n){if(n!==void 0)return{executionTargetId:n};let{session:r}=await this.bus.request(e.get,{sessionId:t});if(!r)throw Error(`Parent session not found: ${t}`);return{...r.executionTargetId!==void 0&&{executionTargetId:r.executionTargetId},...r.targetWorkingDirectory!==void 0&&{targetWorkingDirectory:r.targetWorkingDirectory}}}buildChildSessionCreatePayload(e,t,n,r,i){return{branchKind:`subagent`,parentSessionId:e,contextInheritance:t.contextMode===`fork`?`parent-history`:`none`,...n!==void 0&&{executionTargetId:n},...r!==void 0&&{targetWorkingDirectory:r},...i!==void 0&&{spawningToolCallId:i}}}async handleExecute(e){let t=c.parse({...e.config,task:e.task});this.manager.track({subagentId:e.subagentId,parentSessionId:e.parentSessionId,config:t,depth:e.depth});let n=await this.handleSpawned({subagentId:e.subagentId,parentSessionId:e.parentSessionId,task:e.task,config:t,depth:e.depth});return n?{success:!1,error:n}:{success:!0}}async handleToChild(e){let{subagentId:t,content:n}=e,r=this.manager.get(t);if(!r){console.warn(`[SubagentService] No subagent found: ${t}`);return}if(!r.childSessionId){console.warn(`[SubagentService] No child session for subagent: ${t}`);return}try{await this.bus.request(o.sendMessage,{sessionId:r.childSessionId,message:n,source:`system`})}catch(e){console.error(`[SubagentService] Failed to route message to child session:`,e)}}async handleCompleted(e){await this.closeChildSession(e)}async handleCancelled(e){await this.closeChildSession(e)}async closeChildSession(e){try{await this.requestChildSessionClose(e)}catch{console.error(`[SubagentService] Failed to close child session for subagent ${e}:`,new L(`child-session-close-failed`))}}async requestChildSessionClose(e){let t=this.manager.get(e);if(t){if(!t.childSessionId){this.pendingChildSessionClose.add(e);return}this.pendingChildSessionClose.delete(e),await this.bus.request(o.close,{sessionId:t.childSessionId})}}shouldAbortSpawn(e){return e===void 0||e===`completed`||e===`failed`||e===`cancelled`}handleAdapterSessionClosed(e){for(let t of this.manager.getAllNonTerminal())if(t.childSessionId===e){console.warn(`[SubagentService] Adapter session closed for subagent ${t.subagentId}: ${e}`),this.manager.markFailed(t.subagentId,`adapter-session-closed`);return}}async handleAgentComplete(e){let{sessionId:t,turnId:n,outcome:r,message:i,error:a}=e;if(!(!t||!n))for(let e of this.manager.getAllNonTerminal()){if(e.childSessionId!==t)continue;if((e.config.completion??`tool`)!==`turn`||e.status===`waiting_input`)return;let o=r??`completed`;if(o===`completed`)try{this.manager.recordCompletionCandidate(e.subagentId,n,i??``,void 0,`turn`),await this.finalizeSubagentIfReady(e.subagentId)}catch{return}else if(o===`error`)try{this.manager.recordCompletionCandidate(e.subagentId,n,a??`child turn failed`,void 0,`turn`),await this.finalizeSubagentIfReady(e.subagentId)}catch{return}return}}async handleSessionTurnCompleted(e){if(e.ingestionMarker!==`backfill`){for(let t of this.manager.getAllNonTerminal())if(t.childSessionId===e.sessionId){if(this.manager.recordTurnCompleted(e.sessionId,e.turnId),this.manager.recordCompletedTurn(t.subagentId,e.turnId,e.usage,e.success,e.error),t.completionCandidate?.turnId!==e.turnId)return;await this.finalizeSubagentIfReady(t.subagentId);return}}}handleSessionTurnStarted(e){e.ingestionMarker!==`backfill`&&this.manager.recordTurnStarted(e.sessionId,e.turnId)}async finalizeSubagentIfReady(e){if(!this.manager.finalizeCompletionIfReady(e))return;let t=this.manager.get(e);await this.bus.emit(d.completed,{subagentId:e,success:t?.status===`completed`,...t?.status===`completed`?{result:t.summary?`${t.summary}\n\n${t.result??``}`:t?.result,usage:t.usage}:{error:t?.error??`child turn failed`}})}isRemoteDelegationAllowed(e){return e.origin.local||y(e.transport?.peer,this.delegationAllowSet)}async emitExecutionFailed(e,t,n,r){let i=r instanceof Error?r.message:String(r);await this.bus.emit(d.executionFailed,{subagentId:e,parentSessionId:t,phase:n,error:i})}};const z=p(`subagent-service`);function B(e=0){return{name:z.name,displayName:`Subagent Service`,version:`0.1.0`,critical:!0,surface:`headless`,dependencies:[f(`session`)],create:t=>new R(t.bus,a,new Set,e)}}const V=B();export{R as a,L as i,B as n,C as o,V as r,y as s,z as t};
|
|
@@ -153,7 +153,7 @@ const { parentPort, workerData } = require('node:worker_threads');
|
|
|
153
153
|
});
|
|
154
154
|
}
|
|
155
155
|
})();
|
|
156
|
-
`,{eval:!0,workerData:{moduleUrl:a,descriptorName:t,frameworkDistPath:i}})}catch(t){console.warn(`${n}: failed to import server entry while reading its exported packages:`,t instanceof Error?t.message:t),e(void 0);return}let o=!1,s=t=>{o||(o=!0,clearTimeout(c),r.removeAllListeners(),r.terminate(),e(t))},c=setTimeout(()=>{console.warn(`${n}: timed out importing server entry while reading its exported packages`),s(void 0)},1e4);r.once(`message`,e=>{if(!re(e)){console.warn(`${n}: server entry import worker returned an unexpected message shape`),s(void 0);return}s(e)}),r.once(`error`,e=>{console.warn(`${n}: failed to import server entry while reading its exported packages:`,e instanceof Error?e.message:e),s(void 0)}),r.once(`exit`,e=>{e!==0&&console.warn(`${n}: server entry import worker exited unexpectedly with code ${e}`),s(void 0)})})}async function A(e,t,n,r){try{await i.access(e)}catch(e){console.warn(`${n}: failed to import server entry while reading its exported packages:`,e instanceof Error?e.message:e);return}let a=await ie(e,t,n,r);if(a===void 0)return;if(a.kind===`worker-error`){console.warn(`${n}: failed to import server entry while reading its exported packages:`,a.message);return}if(a.kind===`no-match`){console.warn(`${n}: server entry export does not include a package named '${t}'`);return}if(a.kind===`invalid`){console.warn(`${n}: ${a.reason}`);return}let o=new Set;return{packages:a.packages.map(e=>{let t=te(e.surface),r={name:e.name,version:e.version,...t!==void 0&&{surface:t}};return k(e.critical)?e.critical===void 0?r:{...r,critical:e.critical}:(o.add(e.name),console.warn(`${n}: server entry export's 'critical' field for '${e.name}' is not a boolean (got ${typeof e.critical}); treating criticality as unresolved`),r)}),invalidCriticalNames:o}}async function j(e,t,n,r){return(await A(e,t,n,r))?.packages.find(e=>e.name===t)?.critical}async function M(e,t,n,r,i){return t===void 0?e:j(t,n,r,i)}async function N(e,t){let n=await M(e.critical,e.serverImportPath,e.name,`[PackageManagerService] ${e.name}`,t);return{name:e.name,version:e.version,hasDescriptor:!0,descriptorName:e.name,...e.serverImportPath!==void 0&&{serverImportPath:e.serverImportPath},...e.declaresServerEntrypoint&&{declaresServerEntrypoint:e.declaresServerEntrypoint},...n!==void 0&&{critical:n}}}const P=`nodeLinker: node-modules`,F=/^[A-Za-z]:[\\/]/;let I=null;function L(){return I||(I=Promise.all([import(`./lib-DxP3tPm9.mjs`).then(t=>e(t.t(),1)),import(`./lib-DomKag_k.mjs`).then(t=>e(t.t(),1)),import(`./lib-BdyGVjpO.mjs`).then(t=>e(t.default,1))]).then(([e,t,n])=>({Configuration:e.Configuration,Project:e.Project,Cache:e.Cache,StreamReport:e.StreamReport,structUtils:e.structUtils,ppath:t.ppath,npath:t.npath,xfs:t.xfs,getPluginConfiguration:n.getPluginConfiguration})),I)}var R=class{makaioHome;frameworkDistPath;constructor(e,t){this.makaioHome=e,this.frameworkDistPath=t}async initialize(){try{let{npath:e,ppath:t,xfs:n}=await L(),r=e.toPortablePath(this.makaioHome),i=t.join(r,`package.json`);if(await n.mkdirpPromise(r),await this.ensureYarnRc(r,n,t),await n.existsPromise(i))return;await n.writeJsonPromise(i,{name:`makaio-packages`,version:`1.0.0`,private:!0,description:`Makaio installed packages`,dependencies:{}}),console.info(`[YarnPackageManager] Created package.json at %s`,i)}catch(e){throw Error(`Failed to initialize package.json`,{cause:e})}}async ensureYarnRc(e,t,n){let r=n.join(e,`.yarnrc.yml`),i=await t.existsPromise(r)?await t.readFilePromise(r,`utf8`):``,a=H(i);i!==a&&(await t.writeFilePromise(r,a),console.info(`[YarnPackageManager] Wrote .yarnrc.yml at %s`,r))}async loadYarnState(){let{Configuration:e,Project:t,Cache:n,npath:r,getPluginConfiguration:i}=await L(),a=r.toPortablePath(this.makaioHome),o=await e.find(a,i()),{project:s}=await t.find(o,a);return{configuration:o,project:s,cache:await n.find(o)}}async runProjectInstall(e,t,n){let{StreamReport:r}=await L();if((await r.start({configuration:e,stdout:process.stdout},async e=>{await t.install({cache:n,report:e})})).hasErrors())throw Error(`Yarn install failed with errors`)}async parsePackageDescriptor(e){let{structUtils:t}=await L(),n=t.parseDescriptor(e);return n.range===`unknown`?t.makeDescriptor(n,`latest`):n}async installPackage(e){try{let{structUtils:t}=await L(),{configuration:n,project:r,cache:i}=await this.loadYarnState(),a=await this.parsePackageDescriptor(e),o=t.stringifyIdent(a),s=r.topLevelWorkspace.manifest.dependencies.get(a.identHash);r.topLevelWorkspace.manifest.dependencies.set(a.identHash,a),await this.runProjectInstall(n,r,i);let c=r.storedResolutions.get(a.descriptorHash);if(!c)throw Error(`Package resolution not found after installation`);let l=r.storedPackages.get(c);if(!l)throw Error(`Package not found after installation`);let u=l.version??`unknown`;if(!(await this.readInstalledDescriptor(o)).hasDescriptor)throw s?r.topLevelWorkspace.manifest.dependencies.set(a.identHash,s):r.topLevelWorkspace.manifest.dependencies.delete(a.identHash),await this.runProjectInstall(n,r,i),Error(`Installed package ${o} does not contain a valid descriptor.json`);return console.info(`[YarnPackageManager] Installed %s@%s`,o,u),u}catch(t){throw Error(`Failed to install ${e}`,{cause:t})}}async uninstallPackage(e){try{let{structUtils:t}=await L(),{configuration:n,project:r,cache:i}=await this.loadYarnState(),a=t.parseIdent(e);if(!r.topLevelWorkspace.manifest.dependencies.delete(a.identHash))throw Error(`Package ${e} not found in dependencies`);await this.runProjectInstall(n,r,i),console.info(`[YarnPackageManager] Uninstalled %s`,e)}catch(t){throw Error(`Failed to uninstall ${e}`,{cause:t})}}async listPackages(){try{let{xfs:e,npath:t,ppath:n,structUtils:r}=await L(),i=t.toPortablePath(this.makaioHome),a=n.join(i,`package.json`);if(!await e.existsPromise(a))return[];let{project:o}=await this.loadYarnState();return(await Promise.all([...o.topLevelWorkspace.manifest.dependencies.values()].map(async e=>{let t=r.stringifyIdent(e),n=o.storedResolutions.get(e.descriptorHash),i=(n?o.storedPackages.get(n):void 0)?.version??r.parseRange(e.range).selector,a=await this.readInstalledDescriptor(t);if(a.hasDescriptor)return{name:t,version:i,hasDescriptor:!0,descriptorName:a.descriptorName,...a.serverImportPath!==void 0&&{serverImportPath:a.serverImportPath},...a.declaresServerEntrypoint&&{declaresServerEntrypoint:a.declaresServerEntrypoint},...a.critical!==void 0&&{critical:a.critical}}}))).filter(e=>e!==void 0)}catch(e){throw Error(`Failed to list packages`,{cause:e})}}async ensureFrameworkDependency(e){let t=ae(e);try{let{structUtils:e}=await L(),{configuration:n,project:r,cache:i}=await this.loadYarnState(),a=e.makeDescriptor(e.parseIdent(`@makaio/framework`),t);if(r.topLevelWorkspace.manifest.dependencies.get(a.identHash)?.range===t)return;r.topLevelWorkspace.manifest.dependencies.set(a.identHash,a),await this.runProjectInstall(n,r,i),console.info(`[YarnPackageManager] Ensured @makaio/framework@%s`,t)}catch(e){throw Error(`Failed to ensure @makaio/framework@${t}`,{cause:e})}}async getLatestVersion(e){return this.resolvePackageVersion(e)}async readInstalledDescriptor(e){let t=await this.readInstalledExtensionDescriptor(e);if(t===null)return{hasDescriptor:!1};let n=t.entrypoints?.server!==void 0,r=await this.resolveInstalledServerEntrypoint(e,t),i=await M(t.critical,r,t.name,`[YarnPackageManager] ${t.name}`,this.frameworkDistPath);return{hasDescriptor:!0,descriptorName:t.name,...r!==void 0&&{serverImportPath:r},...n&&{declaresServerEntrypoint:n},...i!==void 0&&{critical:i}}}async resolveInstalledServerEntrypoint(e,t){let n=t.entrypoints?.server;if(n!==void 0)return T(a.join(this.makaioHome,`node_modules`,...e.split(`/`)),`server`,n)}async readInstalledExtensionDescriptor(e){let t=a.join(this.makaioHome,`node_modules`,...e.split(`/`),`descriptor.json`),n;try{n=await i.readFile(t,`utf-8`)}catch(e){if(U(e))return null;throw e}let r=w(n,t,`[YarnPackageManager] ${e}`);if(!r.ok)return null;let o=c(r.value);return o.success?o.data:(console.warn(`[YarnPackageManager] Skipping invalid descriptor.json for ${e}:`,o.error.message),null)}async listInstalledExtensionDescriptors(){let e=a.join(this.makaioHome,`package.json`),t;try{let n=await i.readFile(e,`utf-8`);t=JSON.parse(n)}catch(e){if(U(e))return[];throw e}let n=Object.keys(t.dependencies??{});return(await Promise.all(n.map(async e=>{let t=await this.readInstalledExtensionDescriptor(e);return t===null?null:{npmName:e,version:await this.readInstalledPackageVersion(e),descriptor:t}}))).filter(e=>e!==null)}async readInstalledPackageVersion(e){let t=a.join(this.makaioHome,`node_modules`,...e.split(`/`),`package.json`);try{let e=await i.readFile(t,`utf-8`),n=JSON.parse(e);return typeof n.version==`string`?n.version:`unknown`}catch{return`unknown`}}async readManifestSnapshot(){let e=a.join(this.makaioHome,`package.json`),t=await i.readFile(e,`utf-8`);return JSON.parse(t)}async writeManifestAndReinstall(e){let t=a.join(this.makaioHome,`package.json`);await i.writeFile(t,`${JSON.stringify(e,null,2)}\n`,`utf-8`);let{configuration:n,project:r,cache:o}=await this.loadYarnState();await this.runProjectInstall(n,r,o)}async resolvePackageVersion(e){try{let{StreamReport:t}=await L(),{configuration:n,project:r}=await this.loadYarnState(),i=await this.parsePackageDescriptor(e),a=`unknown`;return await t.start({configuration:n,stdout:process.stdout},async e=>{let t=n.makeResolver(),o=await t.getCandidates(i,{},{project:r,resolver:t,report:e});if(o.length>0){let e=o[0];a=e.reference.match(/^npm:(.+)$/)?.[1]??e.reference}}),a}catch(t){throw Error(`Failed to resolve version for ${e}`,{cause:t})}}};function z(e,t){return!t||t===`latest`?e:`${e}@${t}`}function B(e){if(e.startsWith(`@`)){let t=e.indexOf(`/`);if(t===-1)return e;let n=e.indexOf(`@`,t+1);return n===-1?e:e.slice(0,n)}let t=e.indexOf(`@`);return t===-1?e:e.slice(0,t)}function ae(e){return e.localPackagePath?`portal:${V(e.localPackagePath)}`:e.versionRange}function V(e){let t=(F.test(e)?e:a.resolve(e)).replace(/\\/g,`/`);return F.test(t)?`/${t}`:t}function H(e){let t=e.split(/\r?\n/),n=!1,r=t.map(e=>/^\s*nodeLinker\s*:/.test(e)?(n=!0,P):e);if(!n){let t=e.trimEnd();return`${t}${t.length>0?`
|
|
156
|
+
`,{eval:!0,workerData:{moduleUrl:a,descriptorName:t,frameworkDistPath:i}})}catch(t){console.warn(`${n}: failed to import server entry while reading its exported packages:`,t instanceof Error?t.message:t),e(void 0);return}let o=!1,s=t=>{o||(o=!0,clearTimeout(c),r.removeAllListeners(),r.terminate(),e(t))},c=setTimeout(()=>{console.warn(`${n}: timed out importing server entry while reading its exported packages`),s(void 0)},1e4);r.once(`message`,e=>{if(!re(e)){console.warn(`${n}: server entry import worker returned an unexpected message shape`),s(void 0);return}s(e)}),r.once(`error`,e=>{console.warn(`${n}: failed to import server entry while reading its exported packages:`,e instanceof Error?e.message:e),s(void 0)}),r.once(`exit`,e=>{e!==0&&console.warn(`${n}: server entry import worker exited unexpectedly with code ${e}`),s(void 0)})})}async function A(e,t,n,r){try{await i.access(e)}catch(e){console.warn(`${n}: failed to import server entry while reading its exported packages:`,e instanceof Error?e.message:e);return}let a=await ie(e,t,n,r);if(a===void 0)return;if(a.kind===`worker-error`){console.warn(`${n}: failed to import server entry while reading its exported packages:`,a.message);return}if(a.kind===`no-match`){console.warn(`${n}: server entry export does not include a package named '${t}'`);return}if(a.kind===`invalid`){console.warn(`${n}: ${a.reason}`);return}let o=new Set;return{packages:a.packages.map(e=>{let t=te(e.surface),r={name:e.name,version:e.version,...t!==void 0&&{surface:t}};return k(e.critical)?e.critical===void 0?r:{...r,critical:e.critical}:(o.add(e.name),console.warn(`${n}: server entry export's 'critical' field for '${e.name}' is not a boolean (got ${typeof e.critical}); treating criticality as unresolved`),r)}),invalidCriticalNames:o}}async function j(e,t,n,r){return(await A(e,t,n,r))?.packages.find(e=>e.name===t)?.critical}async function M(e,t,n,r,i){return t===void 0?e:j(t,n,r,i)}async function N(e,t){let n=await M(e.critical,e.serverImportPath,e.name,`[PackageManagerService] ${e.name}`,t);return{name:e.name,version:e.version,hasDescriptor:!0,descriptorName:e.name,...e.serverImportPath!==void 0&&{serverImportPath:e.serverImportPath},...e.declaresServerEntrypoint&&{declaresServerEntrypoint:e.declaresServerEntrypoint},...n!==void 0&&{critical:n}}}const P=`nodeLinker: node-modules`,F=/^[A-Za-z]:[\\/]/;let I=null;function L(){return I||(I=Promise.all([import(`./lib-C0osDjMk.mjs`).then(t=>e(t.t(),1)),import(`./lib-l8EW0aRq.mjs`).then(t=>e(t.t(),1)),import(`./lib-BvRpcV8o.mjs`).then(t=>e(t.default,1))]).then(([e,t,n])=>({Configuration:e.Configuration,Project:e.Project,Cache:e.Cache,StreamReport:e.StreamReport,structUtils:e.structUtils,ppath:t.ppath,npath:t.npath,xfs:t.xfs,getPluginConfiguration:n.getPluginConfiguration})),I)}var R=class{makaioHome;frameworkDistPath;constructor(e,t){this.makaioHome=e,this.frameworkDistPath=t}async initialize(){try{let{npath:e,ppath:t,xfs:n}=await L(),r=e.toPortablePath(this.makaioHome),i=t.join(r,`package.json`);if(await n.mkdirpPromise(r),await this.ensureYarnRc(r,n,t),await n.existsPromise(i))return;await n.writeJsonPromise(i,{name:`makaio-packages`,version:`1.0.0`,private:!0,description:`Makaio installed packages`,dependencies:{}}),console.info(`[YarnPackageManager] Created package.json at %s`,i)}catch(e){throw Error(`Failed to initialize package.json`,{cause:e})}}async ensureYarnRc(e,t,n){let r=n.join(e,`.yarnrc.yml`),i=await t.existsPromise(r)?await t.readFilePromise(r,`utf8`):``,a=H(i);i!==a&&(await t.writeFilePromise(r,a),console.info(`[YarnPackageManager] Wrote .yarnrc.yml at %s`,r))}async loadYarnState(){let{Configuration:e,Project:t,Cache:n,npath:r,getPluginConfiguration:i}=await L(),a=r.toPortablePath(this.makaioHome),o=await e.find(a,i()),{project:s}=await t.find(o,a);return{configuration:o,project:s,cache:await n.find(o)}}async runProjectInstall(e,t,n){let{StreamReport:r}=await L();if((await r.start({configuration:e,stdout:process.stdout},async e=>{await t.install({cache:n,report:e})})).hasErrors())throw Error(`Yarn install failed with errors`)}async parsePackageDescriptor(e){let{structUtils:t}=await L(),n=t.parseDescriptor(e);return n.range===`unknown`?t.makeDescriptor(n,`latest`):n}async installPackage(e){try{let{structUtils:t}=await L(),{configuration:n,project:r,cache:i}=await this.loadYarnState(),a=await this.parsePackageDescriptor(e),o=t.stringifyIdent(a),s=r.topLevelWorkspace.manifest.dependencies.get(a.identHash);r.topLevelWorkspace.manifest.dependencies.set(a.identHash,a),await this.runProjectInstall(n,r,i);let c=r.storedResolutions.get(a.descriptorHash);if(!c)throw Error(`Package resolution not found after installation`);let l=r.storedPackages.get(c);if(!l)throw Error(`Package not found after installation`);let u=l.version??`unknown`;if(!(await this.readInstalledDescriptor(o)).hasDescriptor)throw s?r.topLevelWorkspace.manifest.dependencies.set(a.identHash,s):r.topLevelWorkspace.manifest.dependencies.delete(a.identHash),await this.runProjectInstall(n,r,i),Error(`Installed package ${o} does not contain a valid descriptor.json`);return console.info(`[YarnPackageManager] Installed %s@%s`,o,u),u}catch(t){throw Error(`Failed to install ${e}`,{cause:t})}}async uninstallPackage(e){try{let{structUtils:t}=await L(),{configuration:n,project:r,cache:i}=await this.loadYarnState(),a=t.parseIdent(e);if(!r.topLevelWorkspace.manifest.dependencies.delete(a.identHash))throw Error(`Package ${e} not found in dependencies`);await this.runProjectInstall(n,r,i),console.info(`[YarnPackageManager] Uninstalled %s`,e)}catch(t){throw Error(`Failed to uninstall ${e}`,{cause:t})}}async listPackages(){try{let{xfs:e,npath:t,ppath:n,structUtils:r}=await L(),i=t.toPortablePath(this.makaioHome),a=n.join(i,`package.json`);if(!await e.existsPromise(a))return[];let{project:o}=await this.loadYarnState();return(await Promise.all([...o.topLevelWorkspace.manifest.dependencies.values()].map(async e=>{let t=r.stringifyIdent(e),n=o.storedResolutions.get(e.descriptorHash),i=(n?o.storedPackages.get(n):void 0)?.version??r.parseRange(e.range).selector,a=await this.readInstalledDescriptor(t);if(a.hasDescriptor)return{name:t,version:i,hasDescriptor:!0,descriptorName:a.descriptorName,...a.serverImportPath!==void 0&&{serverImportPath:a.serverImportPath},...a.declaresServerEntrypoint&&{declaresServerEntrypoint:a.declaresServerEntrypoint},...a.critical!==void 0&&{critical:a.critical}}}))).filter(e=>e!==void 0)}catch(e){throw Error(`Failed to list packages`,{cause:e})}}async ensureFrameworkDependency(e){let t=ae(e);try{let{structUtils:e}=await L(),{configuration:n,project:r,cache:i}=await this.loadYarnState(),a=e.makeDescriptor(e.parseIdent(`@makaio/framework`),t);if(r.topLevelWorkspace.manifest.dependencies.get(a.identHash)?.range===t)return;r.topLevelWorkspace.manifest.dependencies.set(a.identHash,a),await this.runProjectInstall(n,r,i),console.info(`[YarnPackageManager] Ensured @makaio/framework@%s`,t)}catch(e){throw Error(`Failed to ensure @makaio/framework@${t}`,{cause:e})}}async getLatestVersion(e){return this.resolvePackageVersion(e)}async readInstalledDescriptor(e){let t=await this.readInstalledExtensionDescriptor(e);if(t===null)return{hasDescriptor:!1};let n=t.entrypoints?.server!==void 0,r=await this.resolveInstalledServerEntrypoint(e,t),i=await M(t.critical,r,t.name,`[YarnPackageManager] ${t.name}`,this.frameworkDistPath);return{hasDescriptor:!0,descriptorName:t.name,...r!==void 0&&{serverImportPath:r},...n&&{declaresServerEntrypoint:n},...i!==void 0&&{critical:i}}}async resolveInstalledServerEntrypoint(e,t){let n=t.entrypoints?.server;if(n!==void 0)return T(a.join(this.makaioHome,`node_modules`,...e.split(`/`)),`server`,n)}async readInstalledExtensionDescriptor(e){let t=a.join(this.makaioHome,`node_modules`,...e.split(`/`),`descriptor.json`),n;try{n=await i.readFile(t,`utf-8`)}catch(e){if(U(e))return null;throw e}let r=w(n,t,`[YarnPackageManager] ${e}`);if(!r.ok)return null;let o=c(r.value);return o.success?o.data:(console.warn(`[YarnPackageManager] Skipping invalid descriptor.json for ${e}:`,o.error.message),null)}async listInstalledExtensionDescriptors(){let e=a.join(this.makaioHome,`package.json`),t;try{let n=await i.readFile(e,`utf-8`);t=JSON.parse(n)}catch(e){if(U(e))return[];throw e}let n=Object.keys(t.dependencies??{});return(await Promise.all(n.map(async e=>{let t=await this.readInstalledExtensionDescriptor(e);return t===null?null:{npmName:e,version:await this.readInstalledPackageVersion(e),descriptor:t}}))).filter(e=>e!==null)}async readInstalledPackageVersion(e){let t=a.join(this.makaioHome,`node_modules`,...e.split(`/`),`package.json`);try{let e=await i.readFile(t,`utf-8`),n=JSON.parse(e);return typeof n.version==`string`?n.version:`unknown`}catch{return`unknown`}}async readManifestSnapshot(){let e=a.join(this.makaioHome,`package.json`),t=await i.readFile(e,`utf-8`);return JSON.parse(t)}async writeManifestAndReinstall(e){let t=a.join(this.makaioHome,`package.json`);await i.writeFile(t,`${JSON.stringify(e,null,2)}\n`,`utf-8`);let{configuration:n,project:r,cache:o}=await this.loadYarnState();await this.runProjectInstall(n,r,o)}async resolvePackageVersion(e){try{let{StreamReport:t}=await L(),{configuration:n,project:r}=await this.loadYarnState(),i=await this.parsePackageDescriptor(e),a=`unknown`;return await t.start({configuration:n,stdout:process.stdout},async e=>{let t=n.makeResolver(),o=await t.getCandidates(i,{},{project:r,resolver:t,report:e});if(o.length>0){let e=o[0];a=e.reference.match(/^npm:(.+)$/)?.[1]??e.reference}}),a}catch(t){throw Error(`Failed to resolve version for ${e}`,{cause:t})}}};function z(e,t){return!t||t===`latest`?e:`${e}@${t}`}function B(e){if(e.startsWith(`@`)){let t=e.indexOf(`/`);if(t===-1)return e;let n=e.indexOf(`@`,t+1);return n===-1?e:e.slice(0,n)}let t=e.indexOf(`@`);return t===-1?e:e.slice(0,t)}function ae(e){return e.localPackagePath?`portal:${V(e.localPackagePath)}`:e.versionRange}function V(e){let t=(F.test(e)?e:a.resolve(e)).replace(/\\/g,`/`);return F.test(t)?`/${t}`:t}function H(e){let t=e.split(/\r?\n/),n=!1,r=t.map(e=>/^\s*nodeLinker\s*:/.test(e)?(n=!0,P):e);if(!n){let t=e.trimEnd();return`${t}${t.length>0?`
|
|
157
157
|
`:``}${P}\n`}return`${r.join(`
|
|
158
158
|
`).trimEnd()}\n`}function U(e){if(typeof e!=`object`||!e||!(`code`in e))return!1;let t=e.code;return t===`ENOENT`||t===`ENOTDIR`}function W(e){if(e.startsWith(`git+`))return{kind:`git`,raw:e,resolved:e};let t=e===`~`||e.startsWith(`~/`)||e.startsWith(`~\\`);if(e.startsWith(`~`)&&!t)throw Error(`Unsupported home-relative path syntax: ${e}`);return e.startsWith(`.`)||a.isAbsolute(e)||a.win32.isAbsolute(e)||t?{kind:`local`,raw:e,resolved:t?a.resolve(d.homedir(),e===`~`?`.`:e.slice(2)):a.resolve(e)}:{kind:`npm`,raw:e,resolved:e}}var G=class extends Error{npmName;descriptorName;claimant;constructor(e,t,n){super(`Package ${e} declares extension name "${t}", which is already installed from ${n.npmName}@${n.version}. Extension names are identities and cannot be shared — uninstall ${n.npmName} first, or install a build of ${e} that declares a different name.`),this.npmName=e,this.descriptorName=t,this.claimant=n,this.name=`ExtensionNameClaimedError`}},K=class{packages;names;constructor(e,t){this.packages=e,this.names=t}async resolve(e,t={}){let n=t.snapshot!==null,r=n?t.snapshot===void 0?await this.packages.readManifestSnapshot():t.snapshot:null;try{return await this.runBfs(e,t.force===!0)}catch(e){if(n)try{await this.packages.writeManifestAndReinstall(r)}catch(t){throw AggregateError([e,t],`Dependency resolution failed and rollback failed: ${ce(e)}`)}throw e}}async runBfs(e,t){let n=await this.packages.listInstalledExtensionDescriptors(),r=new Map(n.map(e=>[e.npmName,e])),i=e.map(e=>{let t=se(e),n=oe(t.npmName);return{npmName:t.npmName,...n?{expectedDescriptorName:n}:{},...t.requiredRange?{requiredRange:t.requiredRange}:{},optional:!1,path:[t.npmName],root:!0}}),a=new Set,o=[],s=[],c=[],l=new Set;for(;i.length>0;){let e=i.shift(),t=a.has(e.npmName),n=r.get(e.npmName);if(t){if(n&&this.assertDescriptorMatches(e,n.descriptor),n&&this.descriptorRangeSatisfied(n.descriptor,e.requiredRange))continue;if(!n)throw Error(`Package ${e.npmName} was resolved but is missing from the installed index`)}if(n&&this.assertDescriptorMatches(e,n.descriptor),n&&this.shouldUseCurrentDescriptor(n.descriptor,e)){o.push({npmName:e.npmName,version:n.version,source:`already-present`}),await this.enqueueDependencies(i,e,n.descriptor),a.add(e.npmName);continue}let c=z(e.npmName,e.requiredRange),u,d;try{u=await this.packages.installPackage(c);let t=await this.packages.readInstalledExtensionDescriptor(e.npmName);if(!t)throw Error(`Installed package ${e.npmName} does not contain a valid descriptor.json`);r.set(e.npmName,{npmName:e.npmName,version:u,descriptor:t}),l.add(e.npmName),this.assertDescriptorMatches(e,t),this.assertDescriptorVersionSatisfies(e,t),d=t}catch(t){if(e.optional){s.push({npmName:e.npmName,reason:t instanceof Error?t.message:String(t)});continue}throw t}o.push({npmName:e.npmName,version:u,source:n?`upgraded`:`new`}),await this.enqueueDependencies(i,e,d),a.add(e.npmName)}let u=this.claimDescriptorNames(n,r,l);return this.assertResolvedGraphConsistent(r,u,l,t),{installed:o,skipped:s,warnings:c}}descriptorRangeSatisfied(e,t){return t===void 0||l(e.version,t)}shouldUseCurrentDescriptor(e,t){return t.root&&t.requiredRange===void 0?!1:this.descriptorRangeSatisfied(e,t.requiredRange)}assertDescriptorMatches(e,t){if(!(e.expectedDescriptorName===void 0||t.name===e.expectedDescriptorName))throw Error(`Installed package ${e.npmName} declares descriptor name "${t.name}", expected "${e.expectedDescriptorName}"`)}claimDescriptorNames(e,t,n){let r=new Map;for(let e of[...t.values()].sort(q)){let t=r.get(e.descriptor.name);if(t===void 0){r.set(e.descriptor.name,e);continue}let i=n.has(e.npmName)?e:t;if(n.has(i.npmName))throw new G(i.npmName,e.descriptor.name,i===e?t:e)}let i=new Map;for(let t of e)r.has(t.descriptor.name)||i.set(t.descriptor.name,t.npmName);return{byDescriptorName:r,released:i}}assertDescriptorVersionSatisfies(e,t){if(this.descriptorRangeSatisfied(t,e.requiredRange))return;let n=e.root?``:` (required by ${e.path[e.path.length-2]})`;throw Error(`Installed package ${e.npmName} descriptor version ${t.version} does not satisfy ${t.name} ${e.requiredRange}${n}`)}assertResolvedGraphConsistent(e,t,n,r){if(r)return;let i=[],a=new Set;for(let r of e.values())for(let e of r.descriptor.dependencies??[]){let o=t.byDescriptorName.get(e.name),s=`${r.npmName} requires ${e.name} ${e.version}`,c=t.released.get(e.name);if(o===void 0){if(e.optional===!0||c===void 0)continue;i.push(`${s}, which ${c} no longer declares`),a.add(c)}else n.has(o.npmName)&&!l(o.descriptor.version,e.version)&&(i.push(s),a.add(o.npmName))}if(i.length>0)throw Error(`Cannot install ${[...a].join(`, `)}; existing dependencies would be violated:\n${i.join(`
|
|
159
159
|
`)}`)}async enqueueDependencies(e,t,n){for(let r of n.dependencies??[]){let n=await this.names.resolveNpmPackageName(r.name);if(t.path.includes(n))throw Error(`Circular dependency detected: ${[...t.path,n].join(` -> `)}`);e.push({npmName:n,expectedDescriptorName:r.name,requiredRange:r.version,optional:r.optional===!0,path:[...t.path,n],root:!1})}}};function q(e,t){return e.npmName===t.npmName?0:e.npmName<t.npmName?-1:1}function oe(e){return e.startsWith(`@`)?void 0:e}function se(e){let t=B(e);if(t.length===e.length)return{npmName:t};let n=e.slice(t.length+1);return n===`latest`?{npmName:t}:{npmName:t,requiredRange:n}}function ce(e){return e instanceof Error?e.message:String(e)}var J=class{registryClient;lookupMapPromise=null;constructor(e){this.registryClient=e}async resolveNpmPackageName(e){if(e.startsWith(`@`))return e;let t;try{t=await this.getLookupMap()}catch(t){throw Error(`Cannot resolve descriptor name "${e}": package registry is unavailable`,{cause:t})}return t.get(e)||`@makaio/${e}`}getLookupMap(){if(this.lookupMapPromise)return this.lookupMapPromise;let e=this.registryClient.getRegistry().then(e=>{let t=new Map;for(let n of[...e.adapters,...e.extensions])n.descriptorName&&t.set(n.descriptorName,n.name);return t}).catch(t=>{throw this.lookupMapPromise===e&&(this.lookupMapPromise=null),t});return this.lookupMapPromise=e,this.lookupMapPromise}},Y=class{inner;portalMap;constructor(e,t){this.inner=e,this.portalMap=t}async installPackage(e){let t=B(e),n=this.portalMap.get(t);if(n!==void 0){let e=`${t}@portal:${V(n)}`;return this.inner.installPackage(e)}return this.inner.installPackage(e)}readInstalledExtensionDescriptor(e){return this.inner.readInstalledExtensionDescriptor(e)}listInstalledExtensionDescriptors(){return this.inner.listInstalledExtensionDescriptors()}readManifestSnapshot(){return this.inner.readManifestSnapshot()}writeManifestAndReinstall(e){return this.inner.writeManifestAndReinstall(e)}},X=class{cache=null;inFlightFetch=null;registryUrl;cacheTtlMs;fetchTimeoutMs;fetchImpl;constructor(e={}){this.registryUrl=e.registryUrl??`https://raw.githubusercontent.com/makaio-ai/makaio/develop/registry/packages.json`,this.cacheTtlMs=e.cacheTtlMs??36e5,this.fetchTimeoutMs=e.fetchTimeoutMs??1e4,this.fetchImpl=e.fetchImpl??fetch}async getRegistry(){if(this.cache&&Date.now()-this.cache.timestamp<this.cacheTtlMs)return this.cache.data;this.inFlightFetch??=this.fetchAndCacheRegistry();try{return await this.inFlightFetch}finally{this.inFlightFetch=null}}async fetchAndCacheRegistry(){let e=new AbortController,t=setTimeout(()=>e.abort(),this.fetchTimeoutMs);try{let t=await this.fetchImpl(this.registryUrl,{signal:e.signal});if(!t.ok)throw Error(`HTTP ${t.status}: ${t.statusText}`);let n=await t.json(),r=b.parse(n);return this.cache={data:r,timestamp:Date.now()},r}catch(e){let t=e instanceof Error?e:Error(String(e));throw Error(`Failed to fetch package registry`,{cause:t})}finally{clearTimeout(t)}}clearCache(){this.cache=null}},Z=e(t(),1),le=`1.0.0`;function ue(){let e=le;if(typeof e!=`string`||e.length===0)throw Error(`Package manager package metadata must include a string version.`);return`^${e}`}const Q=ue();var $=class extends u{yarnManager;registryService;localInstaller;dependencyResolver;frameworkPeerRange;frameworkPackagePath;frameworkDistPath;constructor(e,t,n={}){super(e),this.yarnManager=n.yarnManager??new R(t,n.frameworkDistPath),this.registryService=n.registryService??new X,this.localInstaller=n.localInstaller??new O(a.join(t,`extensions`)),this.frameworkPeerRange=n.frameworkPeerRange??Q,this.frameworkPackagePath=n.frameworkPackagePath,this.frameworkDistPath=n.frameworkDistPath;let r=n.devPortalPackages?.size?new Y(this.yarnManager,n.devPortalPackages):this.yarnManager;this.dependencyResolver=n.dependencyResolver??new K(r,new J(this.registryService))}async onInit(){await this.yarnManager.initialize(),console.info(`[PackageManagerService] Initialized`),this.registerPackageHandlers(),this.registerRegistryHandlers()}normalizePackageName(e){if(typeof e!=`string`)return null;let t=e.trim();return t.length>0?t:null}validatePackageNamePayload(e,t){return this.normalizePackageName(e)||(t(),null)}createInvalidPackageNameResult(e){return e?{success:!1,packageName:``,latestVersion:e.latestVersion,error:`Invalid packageName`}:{success:!1,packageName:``,error:`Invalid packageName`,restartRequired:!1}}async emitInstalled(e,t){try{await this.bus.emit(C.installed,{packageName:e,version:t})}catch(e){console.error(`[PackageManagerService] installed emit failed:`,e)}}async emitUninstalled(e){try{await this.bus.emit(C.uninstalled,{packageName:e})}catch(e){console.error(`[PackageManagerService] uninstalled emit failed:`,e)}}registerPackageHandlers(){this.registerListHandler(),this.registerInstallHandler(),this.registerUninstallHandler()}registerListHandler(){this.registerHandler(C.list,async e=>{try{let[t,n]=await Promise.all([this.yarnManager.listPackages(),this.localInstaller.list()]),r=await Promise.all(n.map(e=>N(e,this.frameworkDistPath))),i=[...t,...r];e.setResult({packages:i})}catch(t){let n=t instanceof Error?t.message:String(t);console.error(`[PackageManagerService] List failed:`,n),e.setResult({packages:[]})}})}async ensureFrameworkPeer(){try{await this.yarnManager.ensureFrameworkDependency({versionRange:this.frameworkPeerRange,...this.frameworkPackagePath?{localPackagePath:this.frameworkPackagePath}:{}})}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to ensure @makaio/framework dependency ${this.frameworkPeerRange}: ${t}`,{cause:e})}}async installNpmPackages(e,t){let n=await this.yarnManager.readManifestSnapshot(),r;try{await this.ensureFrameworkPeer(),r=await this.dependencyResolver.resolve(e,{force:t,snapshot:null})}catch(e){try{await this.yarnManager.writeManifestAndReinstall(n)}catch(t){let n=e instanceof Error?e.message:String(e);throw AggregateError([e,t],`Package install failed and rollback failed: ${n}`)}throw e}for(let e of r.installed)e.source!==`already-present`&&await this.emitInstalled(e.npmName,e.version);let i=r.installed[0];return{success:!0,packageName:i?.npmName??e[0]??``,version:i?.version,restartRequired:!0,installed:[...r.installed],skipped:[...r.skipped],warnings:[...r.warnings]}}registerInstallHandler(){this.registerHandler(C.install,async e=>{let t=e.payload.packageNames??(e.payload.packageName===void 0?[]:[e.payload.packageName]),n=t.map(e=>this.normalizePackageName(e)).filter(e=>e!==null);if(n.length!==t.length||n.length===0){e.setResult(this.createInvalidPackageNameResult());return}let r;if(e.payload.source!==void 0)r={kind:e.payload.source};else{let t=n.map(e=>W(e));r=t[0];let i=t.find(e=>e.kind!==r.kind);if(i){e.setResult({success:!1,packageName:``,error:`Cannot mix install sources: ${r.kind} and ${i.kind}`,restartRequired:!1});return}}if(r.kind===`git`){e.setResult({success:!1,packageName:n[0],error:`Git URL installs are not yet supported`,restartRequired:!1});return}if(r.kind===`local`){if(n.length>1){e.setResult({success:!1,packageName:``,error:`Local installs only support a single path`,restartRequired:!1});return}let t=await this.localInstaller.install(n[0]);t.success&&await this.emitInstalled(t.packageName,t.version??`unknown`),e.setResult(t);return}try{e.setResult(await this.installNpmPackages(n,e.payload.force))}catch(t){let r=t instanceof Error?t.message:String(t);console.error(`[PackageManagerService] Install failed:`,r),e.setResult({success:!1,packageName:n[0]??``,error:r,restartRequired:!1})}})}registerUninstallHandler(){this.registerHandler(C.uninstall,async e=>{let t=this.validatePackageNamePayload(e.payload.packageName,()=>{e.setResult(this.createInvalidPackageNameResult())});if(t){if((await this.localInstaller.list()).find(e=>e.name===t)){let n=await this.localInstaller.uninstall(t);n.success&&await this.emitUninstalled(t),e.setResult(n);return}try{await this.yarnManager.uninstallPackage(t),await this.emitUninstalled(t),e.setResult({success:!0,packageName:t,restartRequired:!0})}catch(n){let r=n instanceof Error?n.message:String(n);console.error(`[PackageManagerService] Uninstall failed:`,r),e.setResult({success:!1,packageName:t,error:r,restartRequired:!1})}}})}registerRegistryHandlers(){this.registerHandler(C.getLatestVersion,async e=>{let t=this.validatePackageNamePayload(e.payload.packageName,()=>{e.setResult(this.createInvalidPackageNameResult({latestVersion:`unknown`}))});if(t)try{let n=await this.yarnManager.getLatestVersion(t);e.setResult({success:!0,packageName:t,latestVersion:n})}catch(n){let r=n instanceof Error?n.message:String(n);console.error(`[PackageManagerService] Version check failed:`,r),e.setResult({success:!1,packageName:t,latestVersion:`unknown`,error:r})}}),this.registerHandler(C.getRegistry,async e=>{try{let t=await this.registryService.getRegistry();e.setResult(t)}catch(t){let n=t instanceof Error?t.message:String(t);console.error(`[PackageManagerService] Registry fetch failed:`,n),e.setResult({$schema:`makaio/package-registry/v1`,updatedAt:new Date().toISOString(),adapters:[],extensions:[]})}}),this.registerHandler(C.checkUpdates,async e=>{try{let t=await this.checkForUpdates();e.setResult({updates:t})}catch(t){let n=t instanceof Error?t.message:String(t);console.error(`[PackageManagerService] Update check failed:`,n),e.setResult({updates:[]})}})}async checkForUpdates(){try{let e=await this.yarnManager.listPackages(),t=[];return await Promise.all(e.map(async e=>{try{let n=await this.yarnManager.getLatestVersion(e.name);Z.valid(e.version)&&Z.valid(n)&&Z.gt(n,e.version)&&t.push({name:e.name,currentVersion:e.version,latestVersion:n,description:e.description})}catch(t){console.warn(`[PackageManagerService] Failed to check updates for %s:`,e.name,t)}})),console.info(`[PackageManagerService] Found %d package updates`,t.length),t}catch(e){throw Error(`Failed to check for updates`,{cause:e})}}};function de(e={}){return{name:`makaio.package-manager`,displayName:`Package Manager`,version:`0.1.0`,critical:!0,namespaces:[S],create:t=>new $(t.bus,t.makaioHome,{registryService:e.registryService,dependencyResolver:e.dependencyResolver,frameworkPeerRange:e.frameworkPeerRange,frameworkPackagePath:e.frameworkPackagePath,frameworkDistPath:e.frameworkDistPath,devPortalPackages:e.devPortalPackages})}}export{m as C,p as S,b as _,J as a,v as b,W as c,A as d,O as f,h as g,_ as h,Y as i,R as l,C as m,$ as n,K as o,S as p,X as r,G as s,de as t,z as u,g as v,y as x,x as y};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as OperationReportDecision, B as RecordProvisioningAbsentInput, D as MarkRuntimeReadyInput, E as InfrastructureFailureDecision, F as ReadBootstrapStartStateInput, Ft as RequestAttemptCancellationInput, G as RuntimeRegistrationDecision, Gt as ReadAttemptCancellationControlInput, H as RegisterRuntimeInput, I as RecordAllocationInput, It as RequestExecutionCancellationInput, Kt as RecordAttemptControlReceiptInput, L as RecordAllocationTerminatedInput, M as PendingAttemptAbandonmentDecision, Nt as ExecutionAttemptCancellationDecision, O as OperationAdmissionDecision, P as ProvisioningClaimDecision, Pt as ExecutionAttemptCancellationIntent$1, Qt as AttemptSettlementRead, R as RecordInfrastructureFailureInput, St as RuntimeOutcomeFence, T as GetInstructionInput, U as ReportOperationInput, Ut as AttemptControlEvidenceDecision, V as RecoverableAttemptRecord, Vt as AttemptCancellationControlState, W as RuntimeReadinessDecision, X as CompleteProviderOperationInput, Z as HandoffProviderOperationInput, a as AllocationRefEvolutionDecision, at as ProviderOperationClaimDecision, dt as ProviderOperationOwnershipRecord, en as EnsureExecutionAttemptDecision, et as ListOpenProviderOperationsInput, f as CompleteOperationInput, ft as ProvisionerIncarnationLossDecision, gt as TakeOverProviderOperationInput, h as DurableOutcome, ht as RenewProviderOperationClaimInput, i as AllocationRefEvolution, j as OutcomeCodec, k as OperationCompletionDecision, lt as ProviderOperationMutationDecision, mt as RecordProviderOperationUncertaintyInput, n as AdmitOperationInput, o as AllocationTerminationDecision, ot as ProviderOperationCompletionDecision, p as DiscoveredAllocationDecision, pt as ProvisioningAbsenceDecision, qt as ReportAttemptControlInput, r as AllocationRecordingDecision, rn as ReadAttemptSettlementInput, s as AttemptControlState, tn as EnsureExecutionAttemptInput, tt as OpenProviderOperationRecord, u as BeginProvisioningInput, w as ExecutionOwnerId, x as ExecutionAttemptRepository, y as ExecutionAttemptRecord, yt as ExecutionAttemptOutcomeDecision, z as RecordProvisionerIncarnationLostInput } from "./execution-attempt-repository-
|
|
1
|
+
import { A as OperationReportDecision, B as RecordProvisioningAbsentInput, D as MarkRuntimeReadyInput, E as InfrastructureFailureDecision, F as ReadBootstrapStartStateInput, Ft as RequestAttemptCancellationInput, G as RuntimeRegistrationDecision, Gt as ReadAttemptCancellationControlInput, H as RegisterRuntimeInput, I as RecordAllocationInput, It as RequestExecutionCancellationInput, Kt as RecordAttemptControlReceiptInput, L as RecordAllocationTerminatedInput, M as PendingAttemptAbandonmentDecision, Nt as ExecutionAttemptCancellationDecision, O as OperationAdmissionDecision, P as ProvisioningClaimDecision, Pt as ExecutionAttemptCancellationIntent$1, Qt as AttemptSettlementRead, R as RecordInfrastructureFailureInput, St as RuntimeOutcomeFence, T as GetInstructionInput, U as ReportOperationInput, Ut as AttemptControlEvidenceDecision, V as RecoverableAttemptRecord, Vt as AttemptCancellationControlState, W as RuntimeReadinessDecision, X as CompleteProviderOperationInput, Z as HandoffProviderOperationInput, a as AllocationRefEvolutionDecision, at as ProviderOperationClaimDecision, dt as ProviderOperationOwnershipRecord, en as EnsureExecutionAttemptDecision, et as ListOpenProviderOperationsInput, f as CompleteOperationInput, ft as ProvisionerIncarnationLossDecision, gt as TakeOverProviderOperationInput, h as DurableOutcome, ht as RenewProviderOperationClaimInput, i as AllocationRefEvolution, j as OutcomeCodec, k as OperationCompletionDecision, lt as ProviderOperationMutationDecision, mt as RecordProviderOperationUncertaintyInput, n as AdmitOperationInput, o as AllocationTerminationDecision, ot as ProviderOperationCompletionDecision, p as DiscoveredAllocationDecision, pt as ProvisioningAbsenceDecision, qt as ReportAttemptControlInput, r as AllocationRecordingDecision, rn as ReadAttemptSettlementInput, s as AttemptControlState, tn as EnsureExecutionAttemptInput, tt as OpenProviderOperationRecord, u as BeginProvisioningInput, w as ExecutionOwnerId, x as ExecutionAttemptRepository, y as ExecutionAttemptRecord, yt as ExecutionAttemptOutcomeDecision, z as RecordProvisionerIncarnationLostInput } from "./execution-attempt-repository-Dyluu7wy.mjs";
|
|
2
2
|
import { z } from "zod";
|
|
3
3
|
import * as _$_makaio_contracts0 from "@makaio/framework/contracts";
|
|
4
4
|
import { AcceptedAttemptOutcome, AcceptedAttemptOutcome as AcceptedAttemptOutcome$1, AttemptOutcomeControlObservation, ExecutionAttemptBootstrapAwaitStartResponse, ExecutionAttemptInstruction, ExecutionAttemptOutcome, IWorkflowRunner, LoopGateHandler, MakaioNodeExtension, OutcomeAcceptance, OutcomeAcceptance as OutcomeAcceptance$1, StationHandler, StepRunnerBusAuth, StepRunnerPlatformDefaults, WorkerMaterializationSpec, WorkflowAttemptCancellation, WorkflowAttemptOutcome, WorkflowAttemptOutcome as WorkflowAttemptOutcome$1, WorkflowAttemptTechnicalFailure, WorkflowDefinition, WorkflowExecution, WorkflowRunContext, WorkflowRunResult, WorkflowRunnerCompletion } from "@makaio/framework/contracts";
|
package/dist/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e}from"./namespace-
|
|
1
|
+
import{r as e}from"./namespace-DaFbUCqO.mjs";import{CredentialSubjects as t}from"@makaio/framework/contracts";var n=class extends Error{code;adapterName;providerConfigId;constructor(e,t,n){super(`Provider context resolution failed (${e}) for adapter "${t}".`),this.code=e,this.adapterName=t,this.providerConfigId=n,this.name=`RuntimeProviderContextResolutionError`}};async function r(t,r){let i=await t.request(e.resolveAdapterRuntimeSnapshot,r);if(i.status===`error`)throw new n(i.code,r.adapterName,r.providerConfigId);let a=i.runtime;if(a.adapterName!==r.adapterName||a.snapshot.context.providerConfigId!==r.providerConfigId)throw new n(`snapshot-identity-mismatch`,r.adapterName,r.providerConfigId);let o=a.snapshot.context;if(o.state!==`resolved`)throw new n(`provider-context-unresolved`,r.adapterName,r.providerConfigId);return o}var i=class extends Error{code;constructor(e){super(`[activateProviderContext] ${e===`manager-unavailable`?`the selected account manager is unavailable`:e===`account-not-found`?`the selected account no longer exists`:`the selected account could not be activated`}.`),this.code=e,this.name=`ProviderContextActivationError`}},a=class extends Error{constructor(){super(`Provider context account activation rollback failed.`),this.name=`ProviderContextActivationRollbackError`}},o=class{bus;transactionId;finalization;constructor(e,t){this.bus=e,this.transactionId=t}commit(){return this.finalize(`commit`)}rollback(){return this.finalize(`rollback`)}finalize(e){if(this.finalization!==void 0)return this.finalization.action===e?this.finalization.promise:Promise.reject(new i(`activation-failed`));let t=this.requestFinalization(e);return this.finalization={action:e,promise:t},t}async requestFinalization(e){try{if(e===`commit`){let e=await this.bus.requestOptional(t.activation.commit,{transactionId:this.transactionId});if(!e.handled)throw new i(`activation-failed`);if(!e.data.success)throw e.data.code===`commit-rollback-failed`?new a:new i(`activation-failed`);return}let n=await this.bus.requestOptional(t.activation.rollback,{transactionId:this.transactionId});if(!n.handled)throw new i(`activation-failed`);if(!n.data.success)throw n.data.code===`rollback-failed`?new a:new i(`activation-failed`)}catch(e){throw e instanceof i||e instanceof a?e:new i(`activation-failed`)}}};function s(e){return e.state!==`resolved`||e.auth.mode!==`inferred`||e.auth.account===void 0?null:e}async function c(e,n){let r=s(n);if(r)try{let n=await e.requestOptional(t.activate,{providerContext:r});if(!n.handled)throw new i(`manager-unavailable`);if(!n.data.success)throw new i(n.data.code)}catch(e){throw e instanceof i?e:new i(`activation-failed`)}}async function l(e,n){let r=s(n);if(r)try{let n=await e.requestOptional(t.activation.prepare,{providerContext:r});if(!n.handled)throw new i(`manager-unavailable`);if(!n.data.success)throw new i(n.data.code);return new o(e,n.data.transactionId)}catch(e){throw e instanceof i?e:new i(`activation-failed`)}}export{n as a,l as i,a as n,r as o,c as r,i as t};
|
package/dist/rules/index.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { C as RuleSetOptions, S as Rule, _ as JsonObjectShape, a as JsonObjectSchema, b as NotCondition, c as RuleSetOptionsSchema, d as CompoundCondition, f as Condition, g as JsonObject, h as FieldOperator, i as FieldOperatorSchema, l as ScalarValueSchema, m as FieldCondition, n as ExpressionConditionSchema, o as JsonValueSchema, p as ExpressionCondition, r as FieldConditionSchema, s as RuleSchema, t as ConditionSchema, u as AndCondition, v as JsonPrimitive, w as ScalarValue, x as OrCondition, y as JsonValue } from "../schemas-
|
|
1
|
+
import { C as RuleSetOptions, S as Rule, _ as JsonObjectShape, a as JsonObjectSchema, b as NotCondition, c as RuleSetOptionsSchema, d as CompoundCondition, f as Condition, g as JsonObject, h as FieldOperator, i as FieldOperatorSchema, l as ScalarValueSchema, m as FieldCondition, n as ExpressionConditionSchema, o as JsonValueSchema, p as ExpressionCondition, r as FieldConditionSchema, s as RuleSchema, t as ConditionSchema, u as AndCondition, v as JsonPrimitive, w as ScalarValue, x as OrCondition, y as JsonValue } from "../schemas-hXVl5GeF.mjs";
|
|
2
2
|
|
|
3
3
|
//#region packages/rules/src/evaluator.d.ts
|
|
4
4
|
/**
|