@makaio/framework 1.0.0-dev-1781117225170 → 1.0.0-dev-1781354548379
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/README.md +29 -0
- package/dist/.makaio-build.json +2 -2
- package/dist/adapter-UpcpZDOv.mjs +1 -0
- package/dist/adapters/config/index.d.mts +1 -1
- package/dist/adapters/config/index.mjs +1 -1
- package/dist/adapters/index.d.mts +13 -5
- package/dist/adapters/index.mjs +2 -2
- package/dist/adapters/node.d.mts +1 -1
- package/dist/adapters/node.mjs +1 -1
- package/dist/bus/index.mjs +1 -1
- package/dist/client-BJVDImPV.d.mts +175 -0
- package/dist/clients/index.d.mts +101 -1
- package/dist/clients/index.mjs +2 -2
- package/dist/contracts/adapter/index.d.mts +2 -2
- package/dist/contracts/adapter/index.mjs +1 -1
- package/dist/contracts/adapter/schemas/session-lineage.d.mts +1 -1
- package/dist/contracts/artifact/index.d.mts +1 -1
- package/dist/contracts/client/index.d.mts +2 -2
- package/dist/contracts/common/index.d.mts +1 -1
- package/dist/contracts/config/index.d.mts +1 -1
- package/dist/contracts/extension/index.d.mts +4 -4
- package/dist/contracts/extension/index.mjs +1 -1
- 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 +786 -108
- package/dist/contracts/index.mjs +1 -1
- package/dist/contracts/materialization/index.d.mts +3 -3
- 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/session/index.d.mts +3 -3
- package/dist/contracts/session/index.mjs +1 -1
- package/dist/contracts/shared/index.d.mts +1 -1
- 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/{definition-Cp-5xJp_.d.mts → definition-DqJOg6Lv.d.mts} +1 -1
- package/dist/{detached-extension-handle-oXbjv1tA.mjs → detached-extension-handle-Diiwgm13.mjs} +1 -1
- package/dist/drizzle/0001_messages_content_tsv.na.md +18 -0
- package/dist/drizzle/0012_legal_kate_bishop.sql +3 -0
- package/dist/drizzle/0013_eager_rhodey.sql +56 -0
- package/dist/drizzle/0014_fancy_ultimo.sql +1 -0
- package/dist/drizzle/0015_m_mqbh8q5b.sql +1 -0
- package/dist/drizzle/0016_m_mqbmq8h7.sql +1 -0
- package/dist/drizzle/0017_m_mqbnf924.sql +1 -0
- package/dist/drizzle/meta/0012_snapshot.json +2934 -0
- package/dist/drizzle/meta/0013_snapshot.json +2954 -0
- package/dist/drizzle/meta/0014_snapshot.json +2959 -0
- package/dist/drizzle/meta/0015_snapshot.json +2966 -0
- package/dist/drizzle/meta/0016_snapshot.json +2973 -0
- package/dist/drizzle/meta/0017_snapshot.json +2980 -0
- package/dist/drizzle/meta/_journal.json +42 -0
- package/dist/drizzle-wjquQK2m.mjs +1 -0
- package/dist/extension-DfNcE0zm.mjs +1 -0
- package/dist/extension-ZBN4BGre.mjs +1 -0
- package/dist/{filesystem-service-CBJT7A5w.mjs → filesystem-service-BjfrUmGS.mjs} +1 -1
- package/dist/{globby-C0lgTOUl.mjs → globby-BIH65cbN.mjs} +1 -1
- package/dist/handler-DqpiV9eA.mjs +1 -0
- package/dist/handlers-BAB4fQNH.mjs +41 -0
- package/dist/{index-uQl_1wQO.d.mts → index-BAhJKQLX.d.mts} +8 -8
- package/dist/{index-i7o6FtS0.d.mts → index-BDRKAxIV.d.mts} +129 -2
- package/dist/{index-CXfWW8cP.d.mts → index-BHAOu6Hs.d.mts} +20 -20
- package/dist/{index-t9Vt4Jbb.d.mts → index-BHzgDuRE.d.mts} +20 -3
- package/dist/{index-SFkbbDxs.d.mts → index-BYkOUd0x.d.mts} +1 -1
- package/dist/{index-CmGvjpUG.d.mts → index-BheaEhyI.d.mts} +6 -6
- package/dist/{index-Dsu1tPHm.d.mts → index-Bibt5jAX.d.mts} +8 -8
- package/dist/{index-Bw8SkcWG.d.mts → index-Bw_zL7Rs.d.mts} +1 -1
- package/dist/{index-ClgVA8Rz.d.mts → index-C3zfJg6s.d.mts} +6 -6
- package/dist/{index-v2kRZnfw2.d.mts → index-CH5U3zSA2.d.mts} +20 -10
- package/dist/{index-hWzUQtDn.d.mts → index-CTn_Xi-p.d.mts} +92 -19
- package/dist/{index-BY-fz0Jy.d.mts → index-DPIdX6kb.d.mts} +358 -110
- package/dist/{index-kLBWooVu.d.mts → index-Da4ABgRq.d.mts} +12 -12
- package/dist/{index-C1uZLARQ.d.mts → index-DrGLAuZc.d.mts} +1409 -72
- package/dist/{index-CT-zFurA.d.mts → index-Drz_a7kW.d.mts} +1 -1
- package/dist/{index-BELri1Hy.d.mts → index-IekAD8Gp.d.mts} +8 -8
- package/dist/{index-C_jIVT40.d.mts → index-fVgKVvta.d.mts} +1 -1
- package/dist/{index-BFaeVdsn2.d.mts → index-zgm2j9V92.d.mts} +44 -2
- package/dist/kernel/cli/index.d.mts +2 -2
- package/dist/kernel/cli/register.d.mts +1 -1
- package/dist/kernel/extension/index.d.mts +1 -1
- package/dist/kernel/extension/index.mjs +1 -1
- package/dist/kernel/index.d.mts +5 -5
- package/dist/kernel/index.mjs +1 -1
- package/dist/kernel/namespace/index.d.mts +1 -1
- package/dist/kernel/observability/index.d.mts +1 -1
- package/dist/kernel/providers/index.d.mts +1 -1
- package/dist/kernel/window/index.d.mts +1 -1
- package/dist/{lib-zuQKc8ym.mjs → lib-Cq5R6Tx9.mjs} +1 -1
- package/dist/{lib-IkUYa2Qs.mjs → lib-nlcl5kRW.mjs} +1 -1
- package/dist/{load-extensions-DE8qDIqi.d.mts → load-extensions-D9nbDIiW.d.mts} +1 -1
- package/dist/{load-extensions-CwxilDj1.mjs → load-extensions-wELQ4BBN.mjs} +1 -1
- package/dist/mcp-http-server/index.d.mts +132 -19
- package/dist/mcp-http-server/index.mjs +2 -2
- package/dist/{namespace-Dik_dNeE.d.mts → namespace--s0d86h-.d.mts} +144 -0
- package/dist/{namespace-ffepZB8Y.d.mts → namespace-B73Sxj5L.d.mts} +6 -6
- package/dist/{namespace-CZPu_jvy.d.mts → namespace-Boe6l5n9.d.mts} +82 -46
- package/dist/{namespace-Da_dHfdm.d.mts → namespace-BxxBhcV_.d.mts} +2 -2
- package/dist/namespace-Dfq6MDN9.mjs +1 -0
- package/dist/{namespace-DvHoeMUV.d.mts → namespace-aJJfBJU5.d.mts} +173 -3
- 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-FnWrPS09.mjs → orchestrator-shared-BKFXaKPL.mjs} +1 -1
- package/dist/{package-B2HkKyRz.d.mts → package--RZnpN2J.d.mts} +2 -3
- package/dist/package-BzJvtM5O.mjs +1 -0
- package/dist/package-DzN_jdqd.mjs +1 -0
- package/dist/package.json +1 -1
- package/dist/primitive-runtime-CNC_bSac.mjs +1 -0
- package/dist/registry-RG-bkw3c.mjs +146 -0
- package/dist/rules/index.d.mts +1 -1
- package/dist/rules/index.mjs +1 -1
- package/dist/rules/schemas.d.mts +1 -1
- package/dist/runtime-bun/index.mjs +1 -1
- package/dist/runtime-node/bus/runtime/namespace.d.mts +8 -8
- package/dist/runtime-node/bus/runtime/schemas.d.mts +11 -4
- package/dist/runtime-node/bus/runtime/schemas.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 +77 -38
- package/dist/runtime-node/index.mjs +26 -53
- 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-C3TgjrsV.mjs +1 -0
- package/dist/schema-CzhOc7TV.mjs +1 -0
- package/dist/{schema-CfuF2cXW.d.mts → schema-DGMLvVoQ.d.mts} +237 -11
- package/dist/schemas-CuKayWhA.mjs +1 -0
- package/dist/{schemas-SPI-Y87l2.d.mts → schemas-kVcJMjjn2.d.mts} +6 -6
- package/dist/{schemas-BiMxSTUx.d.mts → schemas-t1VR6_b_.d.mts} +3 -3
- package/dist/services/adapter-runtime/index.d.mts +3 -3
- package/dist/services/adapter-runtime/namespace.d.mts +1 -1
- package/dist/services/adapter-runtime/schemas.d.mts +1 -1
- package/dist/services/adapter-subsystem/index.d.mts +2 -2
- package/dist/services/adapter-subsystem/namespace.d.mts +1 -1
- package/dist/services/agent-runtime/index.d.mts +2 -2
- package/dist/services/agent-runtime/namespace.d.mts +1 -1
- package/dist/services/agent-runtime/schemas.d.mts +1 -1
- package/dist/services/capability/index.d.mts +1 -1
- package/dist/services/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/execution-target/index.d.mts +3 -3
- package/dist/services/execution-target/namespace.d.mts +1 -1
- package/dist/services/execution-target/schemas.d.mts +1 -1
- package/dist/services/filesystem/index.d.mts +1 -1
- package/dist/services/filesystem/index.mjs +1 -1
- package/dist/services/filesystem/namespace.d.mts +6 -6
- package/dist/services/filesystem/schemas.d.mts +3 -3
- package/dist/services/harness/index.d.mts +31 -20
- package/dist/services/harness/index.mjs +1 -1
- package/dist/services/harness/storage/schema.d.mts +60 -16
- package/dist/services/harness/storage/schema.mjs +1 -1
- package/dist/services/index.d.mts +166 -69
- 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 +9 -15
- package/dist/services/log-import/index.mjs +2 -2
- package/dist/services/log-import/log-import.d.mts +1 -1
- package/dist/services/model-registry/index.d.mts +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/session/handlers/index.d.mts +1 -1
- package/dist/services/session/handlers/index.mjs +1 -1
- package/dist/services/session/index.d.mts +10 -10
- package/dist/services/session/index.mjs +1 -1
- package/dist/services/session/messages/namespace.d.mts +1 -1
- package/dist/services/session/messages/namespace.mjs +1 -1
- package/dist/services/session/orchestrator-testing/index.d.mts +1 -1
- package/dist/services/session/orchestrator-testing/index.mjs +1 -1
- package/dist/services/session/session-events/namespace.d.mts +1 -1
- package/dist/services/session/session-events/namespace.mjs +1 -1
- package/dist/services/session/storage/namespace.d.mts +1 -1
- package/dist/services/session/storage/schema.d.mts +2 -2
- package/dist/services/session/storage/schema.mjs +1 -1
- package/dist/services/session/testing/index.d.mts +18 -2
- package/dist/services/session/testing/index.mjs +54 -3
- 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/settings/index.d.mts +3 -3
- package/dist/services/settings/index.mjs +1 -1
- package/dist/services/settings/namespace.d.mts +6 -6
- 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/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/turn/schemas.d.mts +72 -0
- package/dist/services/turn/schemas.mjs +1 -1
- package/dist/{session-C1Cami7U.mjs → session-BwX5_k47.mjs} +1 -1
- package/dist/session-P4nX60Xx.mjs +39 -0
- package/dist/{src-DI5TcYUW.mjs → src-CBG3IHUl.mjs} +1 -1
- package/dist/storage/drizzle/client.d.mts +2 -78
- package/dist/storage/drizzle/client.mjs +1 -1
- package/dist/storage/drizzle/columns/postgres.d.mts +88 -0
- package/dist/storage/drizzle/columns/postgres.mjs +1 -0
- package/dist/storage/drizzle/columns/sqlite.d.mts +81 -0
- package/dist/storage/drizzle/columns/sqlite.mjs +1 -0
- package/dist/storage/drizzle/index.d.mts +976 -23
- package/dist/storage/drizzle/index.mjs +1 -1
- package/dist/storage/handlers/drizzle/index.d.mts +1 -1
- package/dist/storage/handlers/drizzle/index.mjs +1 -1
- package/dist/storage/handlers/index.d.mts +1 -1
- package/dist/storage/handlers/index.mjs +1 -1
- package/dist/testing/drizzle-harness.d.mts +52 -6
- package/dist/testing/drizzle-harness.mjs +1 -1
- package/dist/testing/index.d.mts +34 -2
- package/dist/testing/index.mjs +1 -1
- package/dist/{tool-approval-service-BgNcJvKx.mjs → tool-approval-service-DNHV5x0M.mjs} +1 -1
- package/dist/tools-CQImrHAp.mjs +1 -0
- package/dist/{types-CZHV05Lu.d.mts → types-BpuLMR2m.d.mts} +616 -433
- package/dist/{types-C5Uy3WEy.d.mts → types-D0fPFh-D.d.mts} +1 -1
- package/dist/{types-0u6hpELc.d.mts → types-D6jnDjP2.d.mts} +18 -5
- package/dist/ui-components/index.d.mts +36 -37
- package/dist/ui-kernel/index.d.mts +1 -1
- package/dist/ui-kernel/pages/schemas.d.mts +1 -1
- package/dist/ui-views/index.d.mts +2 -2
- package/dist/workflow-engine/index.d.mts +539 -110
- package/dist/workflow-engine/index.mjs +1 -1
- package/dist/workflow-engine/package.d.mts +1 -1
- package/dist/workflow-engine/package.mjs +1 -1
- package/dist/workflow-engine/workflow-orchestrator.mjs +1 -1
- package/dist/{workflow-worker-hDaQzTBl.mjs → workflow-worker-CK9Sqj7D.mjs} +1 -1
- package/package.json +49 -1
- package/dist/adapter-Dt2FDMs4.mjs +0 -1
- package/dist/drizzle-DpjZFY_j.mjs +0 -1
- package/dist/extension--5Q190u_.mjs +0 -1
- package/dist/extension-DFIZ3FCJ.mjs +0 -1
- package/dist/handlers-Bev7-xjL.mjs +0 -41
- package/dist/namespace-CDiM5Bcr.mjs +0 -1
- package/dist/namespace-h0HIuqx0.mjs +0 -1
- package/dist/package-C9wOiMK9.mjs +0 -1
- package/dist/package-OE9dMQsq.mjs +0 -1
- package/dist/primitive-runtime-1Z3JbRUj.mjs +0 -1
- package/dist/schema-DCJyzRHe.mjs +0 -1
- package/dist/schema-DOnJmAPw.mjs +0 -1
- package/dist/schemas-CSUwpaNm.mjs +0 -1
- package/dist/session-BnfsJoZi.mjs +0 -134
- package/dist/tools-B8d8Iqqx.mjs +0 -1
- package/dist/types-yTKQTAok.d.mts +0 -31
- /package/dist/{ajv-0JG5NFEd.mjs → ajv-BA2z5ztb.mjs} +0 -0
- /package/dist/{await-trigger-CHuOd5co.mjs → await-trigger-DREnXCEJ.mjs} +0 -0
- /package/dist/{base-orchestrator-D-S9v5VY.d.mts → base-orchestrator-M5mAB5-w.d.mts} +0 -0
- /package/dist/{cleanEnvForAdapter-BlpmyXYk.mjs → cleanEnvForAdapter-vZfPGi0X.mjs} +0 -0
- /package/dist/{clients-namespace-E97p_GKF.d.mts → clients-namespace-SFk7OTop.d.mts} +0 -0
- /package/dist/{config-namespace-R_34Wfps.d.mts → config-namespace-BzAvE2nY.d.mts} +0 -0
- /package/dist/{create-static-mount-B9Szo_7y.mjs → create-static-mount-BB1MIQ9J.mjs} +0 -0
- /package/dist/{cross-spawn-CTptpCy4.mjs → cross-spawn-BL6EvJBv.mjs} +0 -0
- /package/dist/{cursor-storage-YikwAZR5.mjs → cursor-storage-CmKjSvKY.mjs} +0 -0
- /package/dist/{definition-CYzWS2eR.d.mts → definition-BSghHJpQ.d.mts} +0 -0
- /package/dist/{definition-CvOuzWNT.d.mts → definition-q6iLw11H.d.mts} +0 -0
- /package/dist/{descriptor-to-package-9nrAH_D5.mjs → descriptor-to-package-CY8oc2gl.mjs} +0 -0
- /package/dist/{esm-CglYG5aA.mjs → esm-CQVFKEW5.mjs} +0 -0
- /package/dist/{extension-discovery-BD1-oNU_.d.mts → extension-discovery-CkV_VRdJ.d.mts} +0 -0
- /package/dist/{filesystem-service-BcwRp4k1.d.mts → filesystem-service-Ddngll0j.d.mts} +0 -0
- /package/dist/{index-DJQew2k-.d.mts → index-9IDJUJ4X.d.mts} +0 -0
- /package/dist/{index-CNYPKkyH.d.mts → index-BBvcP-P0.d.mts} +0 -0
- /package/dist/{index-DfUBcVtG.d.mts → index-BCKRUuI2.d.mts} +0 -0
- /package/dist/{index-Dn9Uum3F.d.mts → index-BMpRB6iE.d.mts} +0 -0
- /package/dist/{index-CdNDnxXR.d.mts → index-BbCjtc3h.d.mts} +0 -0
- /package/dist/{index-B6RGNugn.d.mts → index-BnQSPC6c.d.mts} +0 -0
- /package/dist/{index-DUPZKsd3.d.mts → index-BpXX9WZJ.d.mts} +0 -0
- /package/dist/{index-DUhXk_q6.d.mts → index-BpniJgxu.d.mts} +0 -0
- /package/dist/{index-ChG8ZUNP.d.mts → index-Bsp0O_sI.d.mts} +0 -0
- /package/dist/{index-CF7dnqQj.d.mts → index-Buo9H8RK.d.mts} +0 -0
- /package/dist/{index-9KnLzPYu.d.mts → index-BxFA1XcP.d.mts} +0 -0
- /package/dist/{index-AZ4iLe7O2.d.mts → index-C33Tq1ei2.d.mts} +0 -0
- /package/dist/{index--0CnhN0g.d.mts → index-C6BhKRnH.d.mts} +0 -0
- /package/dist/{index-BV8rSmDZ.d.mts → index-CDU_s69P.d.mts} +0 -0
- /package/dist/{index-BDlpFEsp2.d.mts → index-CGJjA-hR2.d.mts} +0 -0
- /package/dist/{index-DNGUXQGC.d.mts → index-Cz9JMjZK.d.mts} +0 -0
- /package/dist/{index-C-YBGCCG.d.mts → index-D0SUjZmU.d.mts} +0 -0
- /package/dist/{index-yNb7G73-.d.mts → index-D6Iyvz9T.d.mts} +0 -0
- /package/dist/{index-ziQTLYUO.d.mts → index-DOfq0qqv.d.mts} +0 -0
- /package/dist/{index-BYxgW2i0.d.mts → index-DSV1aFgK.d.mts} +0 -0
- /package/dist/{index-Dbwm5Y-Q.d.mts → index-Dsq2zKvu.d.mts} +0 -0
- /package/dist/{jsonl-transport-DBHQgcIm.mjs → jsonl-transport-C21tpVfe.mjs} +0 -0
- /package/dist/{lib-CaOdTS9F.mjs → lib-CNOQJtgs.mjs} +0 -0
- /package/dist/{namespace-DnZ4rS6T2.d.mts → namespace-B60mn8J-2.d.mts} +0 -0
- /package/dist/{namespace-DfYutvMT.d.mts → namespace-BBVtD1gu.d.mts} +0 -0
- /package/dist/{namespace-BaJJxBsI.d.mts → namespace-CHMszppN.d.mts} +0 -0
- /package/dist/{namespace-uGw5nK6d.d.mts → namespace-CqUGzG53.d.mts} +0 -0
- /package/dist/{namespace-13uMtVGj.d.mts → namespace-DRFJN-_z.d.mts} +0 -0
- /package/dist/{namespace-TfZGCy7N.d.mts → namespace-DzVf1hVH.d.mts} +0 -0
- /package/dist/{namespace-QTFnJWHC.d.mts → namespace-XTGCaSXj.d.mts} +0 -0
- /package/dist/{namespace-CTrNKkxY.d.mts → namespace-nlsvvMtD.d.mts} +0 -0
- /package/dist/{namespace-DkDvQJhB.d.mts → namespace-uuR0Fg5r.d.mts} +0 -0
- /package/dist/{orchestrator-shared-BZVeoRfr.d.mts → orchestrator-shared-D91Wk7z-.d.mts} +0 -0
- /package/dist/{out-CiFds_ap.mjs → out-C1JFb2Bp.mjs} +0 -0
- /package/dist/{provider-context-lfG0BpqX.mjs → provider-context-wp4VSJFI.mjs} +0 -0
- /package/dist/{providers-namespace-Cc9FQ-Zt.d.mts → providers-namespace-BqWYkydw.d.mts} +0 -0
- /package/dist/{schemas-BD-1NGmS.d.mts → schemas-B5ToLwIs.d.mts} +0 -0
- /package/dist/{schemas-Hy-lsBpg.d.mts → schemas-B77Gi8Xr.d.mts} +0 -0
- /package/dist/{schemas-BzK1I1eX.d.mts → schemas-C792eVAZ.d.mts} +0 -0
- /package/dist/{schemas-CYS6bkht.d.mts → schemas-Chyj6HuZ.d.mts} +0 -0
- /package/dist/{schemas-DL_bGYyZ.d.mts → schemas-DZUaRcYl.d.mts} +0 -0
- /package/dist/{schemas-DdZwjeF0.d.mts → schemas-Dv5FxHDT.d.mts} +0 -0
- /package/dist/{schemas-CsjB6gel.d.mts → schemas-Dyk7JuVl.d.mts} +0 -0
- /package/dist/{schemas-DFWGb4uj.d.mts → schemas-Kq33MTPY.d.mts} +0 -0
- /package/dist/{schemas-BFeP62V4.d.mts → schemas-lqvZ6UpK.d.mts} +0 -0
- /package/dist/{server-lifecycle-DVAbXQzg.d.mts → server-lifecycle-47mygK3E.d.mts} +0 -0
- /package/dist/{server-lifecycle-JTFuSJhg.mjs → server-lifecycle-Cg47L59Q.mjs} +0 -0
- /package/dist/{session-lineage-CxHc3_bm.d.mts → session-lineage-CKg6mErA.d.mts} +0 -0
- /package/dist/{shared-schemas-CKe2uN4-.mjs → shared-schemas-DYL7a-No.mjs} +0 -0
- /package/dist/{src-4_2jBceX.mjs → src-DedDL9iv.mjs} +0 -0
- /package/dist/{storage-namespace-I30TaZP7.d.mts → storage-namespace-BXmMUd7a.d.mts} +0 -0
- /package/dist/{storage-namespace-definition-ZNBL3v2h.d.mts → storage-namespace-definition-C3XbpiP8.d.mts} +0 -0
- /package/dist/{types-11QnNmpW.d.mts → types-5Gw3iVpK.d.mts} +0 -0
- /package/dist/{types-BKNpS4Xw.d.mts → types-B0BtvVAq.d.mts} +0 -0
- /package/dist/{types-BtMNh2FS.d.mts → types-D-bP8RRE.d.mts} +0 -0
- /package/dist/{window-registry-QD1rTk_f.d.mts → window-registry-CfEi_Ji4.d.mts} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{C as e,S as t,T as n,_ as r,a as i,b as a,c as o,d as s,f as c,g as l,h as u,i as d,l as f,m as p,n as m,o as h,p as g,t as _,u as v,v as y,w as b,x,y as S}from"./primitive-runtime-1Z3JbRUj.mjs";import{isAbsolute as C,resolve as w}from"node:path";import{matchesFilter as ee,matchesSubscription as te}from"@makaio/framework/bus";import{ArtifactSubjects as ne,EXECUTION_LIST_DEFAULT_LIMIT as re,EXECUTION_LIST_MAX_LIMIT as ie,EXECUTION_LIST_MIN_LIMIT as ae,ExecutionHintsSchema as oe,JsonValueSchema as se,SessionSubjects as T,WORKFLOW_CANCELLED_REASON as E,WorkerNodeSubjects as ce,WorkflowNamespace as le,WorkflowSubjects as D,WorkflowWorkerSourceSchema as ue,createWorkflowCancelSubject as de,dep as fe,extensionToken as pe}from"@makaio/framework/contracts";import{BaseService as me}from"@makaio/framework/service-base";import{and as O,asc as k,count as he,desc as A,eq as j,getTableColumns as ge,isNotNull as _e,lt as ve,or as ye,sql as M,sum as N}from"drizzle-orm";import{executeTransaction as P,registerDrizzleHandlers as be}from"@makaio/framework/storage/drizzle";import{compile as xe}from"@makaio/framework/expression";import*as Se from"node:os";import{SessionToken as Ce}from"@makaio/framework/services";function F(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 I(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 we(e,t){let{scopeType:n,scopeKind:r,scopeId:i}=F(t);return[j(e.scopeType,n),j(e.scopeKind,r),j(e.scopeId,i)]}function L(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,artifact:e.artifact??void 0,triggers:e.triggers??void 0,scope:I(e),canvasLayout:e.canvasLayout??void 0,source:e.source??void 0,executionHints:e.executionHints??void 0}}function Te(e,t){let n=F(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,artifact:e.artifact??null,triggers:e.triggers??null,canvasLayout:e.canvasLayout??null,source:e.source??null,executionHints:e.executionHints??null,createdAt:t,updatedAt:t,...n}}function Ee(e,t){let r=ge(p),i=e.on(g.get,async e=>{let n=await t.select().from(p).where(j(p.id,e.payload.id)).limit(1);e.setResult({workflow:n[0]?L(n[0]):null})}),a=e.on(g.set,async i=>{let a=i.payload.workflow,o=Date.now(),s=Te(a,o),c=await t.insert(p).values(s).onConflictDoNothing({target:p.id}).returning();if(c.length>0){await e.emit(n.definition.created,L(c[0])),i.setResult({id:a.id});return}let[l]=await t.update(p).set({name:s.name,root:s.root,updatedAt:o,createdAt:M`COALESCE(${r.createdAt}, ${o})`,description:s.description===null?M`${r.description}`:s.description,inputSchema:s.inputSchema===null?M`${r.inputSchema}`:s.inputSchema,configSchema:s.configSchema===null?M`${r.configSchema}`:s.configSchema,outputSchema:s.outputSchema===null?M`${r.outputSchema}`:s.outputSchema,artifact:s.artifact===null?M`${r.artifact}`:s.artifact,triggers:s.triggers===null?M`${r.triggers}`:s.triggers,canvasLayout:s.canvasLayout===null?M`${r.canvasLayout}`:s.canvasLayout,source:s.source===null?M`${r.source}`:s.source,executionHints:s.executionHints===null?M`${r.executionHints}`:s.executionHints,...F(a.scope)}).where(j(p.id,a.id)).returning();l&&await e.emit(n.definition.updated,L(l)),i.setResult({id:a.id})}),o=e.on(g.delete,async r=>{let i=(await t.delete(p).where(j(p.id,r.payload.id)).returning()).length>0;i&&await e.emit(n.definition.deleted,{id:r.payload.id}),r.setResult({deleted:i})}),s=e.on(g.list,async e=>{let n=e.payload,r=n.scope?we(p,n.scope):[],i=r.length>0?await t.select().from(p).where(O(...r)):await t.select().from(p);e.setResult({workflows:i.map(L)})});return()=>{i(),a(),o(),s()}}function De(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 Oe(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 ke(e,t){let n=e.on(g.setFrame,async e=>{let{executionId:n,frame:r}=e.payload,i=Oe(n,r);await t.insert(u).values(i).onConflictDoUpdate({target:u.frameId,set:i}),e.setResult({frameId:r.frameId})}),r=e.on(g.getFrame,async e=>{let n=await t.select().from(u).where(j(u.frameId,e.payload.frameId)).limit(1);e.setResult({frame:n[0]?De(n[0]):null})}),i=e.on(g.listFrames,async e=>{let n=await t.select().from(u).where(j(u.executionId,e.payload.executionId)).orderBy(k(u.startedAt),k(u.frameId));e.setResult({frames:n.map(De)})});return()=>{n(),r(),i()}}function Ae(e){return`${e.executionId}:${e.nodeId}:${e.frameId}`}function R(e){return{executionId:e.executionId,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}:{},createdAt:e.createdAt,resolvedAt:e.resolvedAt??void 0}}function z(e){return{id:Ae(e),executionId:e.executionId,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,resumeDataPresent:e.resumeData!==void 0,createdAt:e.createdAt,resolvedAt:e.resolvedAt??null}}function je(e,t){let n=e.on(g.setGateInstance,async e=>{let n=e.payload.gate,r=z(n);await t.insert(y).values(r).onConflictDoUpdate({target:y.id,set:r}),e.setResult({id:r.id})}),i=e.on(g.resolveWaitingGateInstance,async e=>{let n=e.payload.gate,r=z(n),i=await t.update(y).set(r).where(O(j(y.id,r.id),j(y.status,`waiting`))).returning({id:y.id});e.setResult({accepted:i.length===1})}),a=e.on(g.getGateInstance,async e=>{let{executionId:n,nodeId:r,frameId:i}=e.payload,a=[j(y.executionId,n),j(y.nodeId,r)];i!==void 0&&a.push(j(y.frameId,i));let o=await t.select().from(y).where(O(...a)).limit(1);e.setResult({gate:o[0]?R(o[0]):null})}),o=e.on(g.listGateInstances,async e=>{let n=await t.select().from(y).where(j(y.executionId,e.payload.executionId));e.setResult({gates:n.map(R)})}),s=e.on(g.listPausedGateTimeouts,async e=>{let n=await t.select({gate:y}).from(y).innerJoin(r,j(y.executionId,r.id)).where(O(j(y.status,`waiting`),j(r.status,`paused`),_e(y.timeoutMs)));e.setResult({gates:n.map(e=>R(e.gate))})});return()=>{n(),i(),a(),o(),s()}}function Me(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 Ne(e){return{sourceExecutionId:e.sourceExecutionId,targetExecutionId:e.targetExecutionId,linkType:e.linkType,metadata:e.metadata??void 0}}function Pe(e,t){let n=e.on(g.setSpan,async e=>{let{span:n}=e.payload;await t.insert(a).values(n).onConflictDoUpdate({target:[a.executionId,a.frameId],set:n}),e.setResult({id:`${n.executionId}:${n.frameId}`})}),r=e.on(g.listSpans,async e=>{let n=await t.select().from(a).where(j(a.executionId,e.payload.executionId)).orderBy(k(a.startedAt),k(a.stepId),k(a.frameId));e.setResult({spans:n.map(Me)})}),i=e.on(g.setExecutionLink,async e=>{let{link:n}=e.payload;await t.insert(l).values(n).onConflictDoUpdate({target:[l.sourceExecutionId,l.targetExecutionId],set:n}),e.setResult({id:`${n.sourceExecutionId}:${n.targetExecutionId}`})}),o=e.on(g.listExecutionLinks,async e=>{let{sourceExecutionId:n,targetExecutionId:r}=e.payload;if(n===void 0&&r===void 0)throw Error(`Either sourceExecutionId or targetExecutionId is required to list execution links.`);let i=[...n===void 0?[]:[j(l.sourceExecutionId,n)],...r===void 0?[]:[j(l.targetExecutionId,r)]],a=t.select().from(l).where(O(...i));e.setResult({links:(await a).map(Ne)})});return()=>{n(),r(),i(),o()}}function Fe(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 Ie(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 Le(e){return{executionId:e.executionId,workflowId:e.workflowId,coordinatorSessionId:e.coordinatorSessionId,source:Ie(e),definitionSnapshot:e.definitionSnapshot??void 0,workerManifest:e.workerManifest,inputs:e.inputs,config:e.config??{},triggerPayload:e.triggerPayload,...e.artifactRef===null?{}:{artifactRef:e.artifactRef},scope:I(e),...e.executionHints===null?{}:{executionHints:e.executionHints},...e.dispatchMetadata===null?{}:{dispatchMetadata:e.dispatchMetadata},cancelSubject:e.cancelSubject,context:e.context,env:e.env,createdAt:e.createdAt,suspensionStrategy:e.suspensionStrategy??`wait-in-process`}}function Re(e){let t=Fe(e.source),n=F(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,artifactRef:e.artifactRef??null,executionHints:e.executionHints??null,dispatchMetadata:e.dispatchMetadata??null,...n,cancelSubject:e.cancelSubject,context:e.context,env:e.env,createdAt:e.createdAt,suspensionStrategy:e.suspensionStrategy}}async function ze(e,t){let n=Re(t);await e.insert(S).values(n).onConflictDoUpdate({target:S.executionId,set:n})}function Be(e,t){let n=e.on(g.setRunContext,async e=>{let n=e.payload.runContext;await ze(t,n),e.setResult({executionId:n.executionId})}),r=e.on(g.getRunContext,async e=>{let{executionId:n}=e.payload,r=await t.select().from(S).where(j(S.executionId,n)),i=r[0]?Le(r[0]):null;e.setResult({runContext:i})});return()=>{n(),r()}}function Ve(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 B(e,t){await e.insert(b).values(t).onConflictDoUpdate({target:b.executionId,set:t})}async function V(e,t){let n=await e.select().from(b).where(j(b.executionId,t)).limit(1);return n[0]?Ve(n[0]):null}async function He(e,t={}){let{workflowId:n,status:r,limit:i=50,offset:a=0}=t,o=[...n===void 0?[]:[j(b.workflowId,n)],...r===void 0?[]:[j(b.status,r)]],s=o.length>0?O(...o):void 0,[c,l]=await Promise.all([e.select().from(b).where(s).orderBy(A(b.startedAt)).limit(i).offset(a),e.select({count:he()}).from(b).where(s)]);return{items:c.map(Ve),total:l[0]?.count??0}}async function H(e,n){await e.insert(t).values(n).onConflictDoUpdate({target:t.frameId,set:n})}async function U(e,n){return(await e.select().from(t).where(j(t.frameId,n)).limit(1))[0]??null}async function Ue(e,t){await e.insert(x).values(t).onConflictDoUpdate({target:x.id,set:t})}function We(e,t,n,r,i){return`${e}:${t}:${n}:${r}:${i}`}async function W(t,n){await t.insert(e).values(n).onConflictDoUpdate({target:e.id,set:n})}async function Ge(t,n){return(await t.select().from(e).where(j(e.id,n)).limit(1))[0]??null}function Ke(e,t,n){return`${e}:${t}:${n}`}async function qe(e,n){let[r]=await e.select({totalInputTokens:N(t.inputTokens),totalOutputTokens:N(t.outputTokens),totalEstimatedCost:N(t.estimatedCost)}).from(t).where(j(t.executionId,n));return{totalInputTokens:r?.totalInputTokens===null?0:Number(r?.totalInputTokens),totalOutputTokens:r?.totalOutputTokens===null?0:Number(r?.totalOutputTokens),totalEstimatedCost:r?.totalEstimatedCost===null?0:Number(r?.totalEstimatedCost)}}async function Je(e,t,n,r,i){let a=await U(t,n);if(a===null||i===void 0)return null;let o=await e.requestOptional(ne.resolve,{ref:{refClass:`artifact`,kind:r.kind,id:r.id,revision:i}}).catch(()=>void 0);if(o===void 0||!o.handled||o.data.artifact===null)return null;let{kind:s,schemaVersion:c,scope:l}=o.data.artifact;return{nodeId:a.nodeId,artifact:{kind:s,schemaVersion:c,scope:l}}}const Ye={user:`rejected`,timeout:`timed-out`,cancelled:`cancelled`};async function Xe(e,t,n){await B(t,{executionId:n.executionId,workflowId:n.workflowId,workflowName:null,status:`running`,startedAt:n.startedAt??Date.now(),completedAt:null,durationMs:null,totalInputTokens:null,totalOutputTokens:null,totalEstimatedCost:null,error:null,failedNodeId:null}),await K(e,n.executionId)}async function Ze(e,t,n){let r=n.completedAt??Date.now(),i=await V(t,n.executionId);await B(t,{executionId:n.executionId,workflowId:i?.workflowId??n.executionId,workflowName:i?.workflowName??null,status:`completed`,startedAt:i?.startedAt??r-n.totalDuration,completedAt:r,durationMs:n.totalDuration,totalInputTokens:i?.totalInputTokens??null,totalOutputTokens:i?.totalOutputTokens??null,totalEstimatedCost:i?.totalEstimatedCost??null,error:null,failedNodeId:null}),await K(e,n.executionId)}async function Qe(e,t,n,r,i,a,o){let s=await V(t,n),c=s?.startedAt??o;await B(t,{executionId:n,workflowId:s?.workflowId??n,workflowName:s?.workflowName??null,status:r,startedAt:c,completedAt:o,durationMs:o-c,totalInputTokens:s?.totalInputTokens??null,totalOutputTokens:s?.totalOutputTokens??null,totalEstimatedCost:s?.totalEstimatedCost??null,error:i,failedNodeId:a}),await K(e,n)}function $e(e,t){return[e.on(n.execution.started,async n=>{let{executionId:r}=n.payload;await G(`execution.started[${r}]`,()=>Xe(e,t,n.payload))}),e.on(n.execution.completed,async n=>{let{executionId:r}=n.payload;await G(`execution.completed[${r}]`,()=>Ze(e,t,n.payload))}),e.on(n.execution.failed,async n=>{let{executionId:r,error:i,failedStepId:a}=n.payload,o=n.payload.completedAt??Date.now();await G(`execution.failed[${r}]`,()=>Qe(e,t,r,`failed`,i,a??null,o))}),e.on(n.execution.cancelled,async n=>{let{executionId:r}=n.payload,i=n.payload.completedAt??Date.now();await G(`execution.cancelled[${r}]`,()=>Qe(e,t,r,`cancelled`,null,null,i))})]}async function et(e,t,n){let r=await qe(t,n);if(r.totalInputTokens>0||r.totalOutputTokens>0||r.totalEstimatedCost>0){let e=await V(t,n);e&&await B(t,{executionId:n,workflowId:e.workflowId,workflowName:e.workflowName??null,status:e.status,startedAt:e.startedAt,completedAt:e.completedAt??null,durationMs:e.durationMs??null,totalInputTokens:r.totalInputTokens,totalOutputTokens:r.totalOutputTokens,totalEstimatedCost:r.totalEstimatedCost,error:e.error??null,failedNodeId:e.failedNodeId??null})}}function tt(e,t,n){return e===null?{nodeId:t,nodeType:`station`,path:[],attempt:0,iteration:null,branchKey:null,startedAt:n,inputTokens:null,outputTokens:null,estimatedCost:null}:{nodeId:e.nodeId,nodeType:e.nodeType,path:e.path,attempt:e.attempt,iteration:e.iteration,branchKey:e.branchKey,startedAt:e.startedAt,inputTokens:e.inputTokens,outputTokens:e.outputTokens,estimatedCost:e.estimatedCost}}async function nt(e,t,n,r,i,a,o){let s=o??Date.now();await H(t,{frameId:r,executionId:n,...tt(await U(t,r),i,a===void 0?null:s-a),status:`completed`,completedAt:s,durationMs:a??null,error:null}),await et(e,t,n),await K(e,n)}async function rt(e,t,n,r,i,a,o,s){let c=s??Date.now();await H(t,{frameId:r,executionId:n,...tt(await U(t,r),i,o===void 0?null:c-o),status:`failed`,completedAt:c,durationMs:o??null,error:a}),await K(e,n)}function it(e,t){return[e.on(n.frame.started,async n=>{let{executionId:r,frameId:i,nodeId:a,nodeType:o,path:s,startedAt:c}=n.payload;await G(`frame.started[${i}]`,async()=>{await H(t,{frameId:i,executionId:r,nodeId:a,nodeType:o,path:s,status:`running`,attempt:0,iteration:null,branchKey:null,startedAt:c??Date.now(),completedAt:null,durationMs:null,inputTokens:null,outputTokens:null,estimatedCost:null,error:null}),await K(e,r)})}),e.on(n.frame.completed,async n=>{let{executionId:r,frameId:i,nodeId:a,duration:o,completedAt:s}=n.payload;await G(`frame.completed[${i}]`,()=>nt(e,t,r,i,a,o,s))}),e.on(n.frame.failed,async n=>{let{executionId:r,frameId:i,nodeId:a,error:o,duration:s,completedAt:c}=n.payload;await G(`frame.failed[${i}]`,()=>rt(e,t,r,i,a,o,s,c))})]}function at(e,t){return[e.on(n.gate.suspended,async n=>{let{executionId:r,frameId:i,nodeId:a,prompt:o}=n.payload;await G(`gate.suspended[${i}]`,async()=>{await W(t,{id:Ke(r,a,i),executionId:r,nodeId:a,frameId:i,status:`waiting`,prompt:o??null,openedAt:Date.now(),resolvedAt:null,resumeData:null}),await K(e,r)})}),e.on(n.gate.resumed,async n=>{let{executionId:r,frameId:i,nodeId:a,resumeData:o}=n.payload;await G(`gate.resumed[${i}]`,async()=>{let n=Ke(r,a,i),s=await Ge(t,n),c=Date.now();await W(t,{id:n,executionId:r,nodeId:a,frameId:i,status:`resumed`,prompt:s?.prompt??null,openedAt:s?.openedAt??c,resolvedAt:c,resumeData:o}),await K(e,r)})}),e.on(n.gate.resolved,async n=>ot(n.payload,e,t)),e.on(n.artifact.updated,async n=>{let{executionId:r,frameId:i,artifactRef:a,revision:o}=n.payload;await G(`artifact.updated[${r}:${i}]`,async()=>{let n=await Je(e,t,i,a,o);if(n===null)return;let s=Date.now();await Ue(t,{id:We(r,i,a.kind,a.id,s),executionId:r,frameId:i,nodeId:n.nodeId,artifact:n.artifact,revision:o??null,writtenAt:s}),await K(e,r)})})]}async function ot(e,t,n){let{executionId:r,frameId:i,stepId:a,source:o}=e;o===`user`&&e.action===`approve`||await G(`gate.resolved[${i}]`,async()=>{let s=Ke(r,a,i),c=await Ge(n,s),l=Date.now();await W(n,{id:s,executionId:r,nodeId:a,frameId:i,status:o!==`cancelled`&&e.action===`approve`?`resumed`:Ye[o],prompt:c?.prompt??null,openedAt:c?.openedAt??l,resolvedAt:l,resumeData:c?.resumeData??null}),await K(t,r)})}function st(e,t){let r=[...$e(e,t),...it(e,t),...at(e,t),e.on(n.worklog.get,async e=>{let{executionId:n}=e.payload,r=await V(t,n);e.setResult({summary:r})}),e.on(n.worklog.list,async e=>{let{workflowId:n,status:r,limit:i,offset:a}=e.payload,o=await He(t,{workflowId:n,status:r,limit:i,offset:a});e.setResult(o)})];return()=>{for(let e of r)e()}}async function G(e,t){try{await t()}catch(t){console.error(`[WorklogProjection] Write failed (${e}):`,t)}}async function K(e,t){try{await e.emit(n.worklog.changed,{executionId:t})}catch(e){console.error(`[WorklogProjection] worklog.changed emit failed for ${t}:`,e)}}function ct(e){return{id:e.id,workflowId:e.workflowId,coordinatorSessionId:e.coordinatorSessionId??void 0,status:e.status,inputs:e.inputs,config:{},error:e.error??void 0,reason:e.reason??void 0,startedAt:e.startedAt,completedAt:e.completedAt??void 0,triggerPayload:e.triggerPayload??void 0,scope:I(e)}}function lt(e){let t=F(e.scope);return{id:e.id,workflowId:e.workflowId,coordinatorSessionId:e.coordinatorSessionId??null,status:e.status,inputs:e.inputs,error:e.error??null,reason:e.reason??null,startedAt:e.startedAt,completedAt:e.completedAt??null,triggerPayload:e.triggerPayload??null,...t}}function ut(e,t,n,i){let a=[...e?[j(r.workflowId,e)]:[],...n?[j(r.status,n)]:[]];if(t&&a.push(...we(r,t)),i){let e=ye(ve(r.startedAt,i.startedAt),O(j(r.startedAt,i.startedAt),ve(r.id,i.id)));e&&a.push(e)}return a}async function dt(e,t,n){if(n.executionId!==t.id)throw Error(`setExecutionStart requires execution.id to match runContext.executionId`);let i=lt(t);await P(e,async e=>{await e.insert(r).values(i).onConflictDoUpdate({target:r.id,set:i}),await ze(e,n)})}async function ft(e,t,n){if(n.executionId!==t.id)throw Error(`restorePausedGateResumeState requires execution.id to match gate.executionId`);if(t.status!==`paused`||n.status!==`waiting`)throw Error(`restorePausedGateResumeState requires a paused execution and waiting gate`);let i=lt(t),a=z(n);await P(e,async e=>{await e.insert(r).values(i).onConflictDoUpdate({target:r.id,set:i}),await e.insert(y).values(a).onConflictDoUpdate({target:y.id,set:a})})}async function pt(e,t,n,i){return P(e,async e=>{if((await e.select().from(r).where(j(r.id,t)).limit(1))[0]?.status!==`paused`)return{cancelled:!1,gates:[]};let a=(await e.select().from(y).where(O(j(y.executionId,t),j(y.status,`waiting`)))).map(e=>({...R(e),status:`cancelled`,resolvedAt:n}));await e.update(r).set({status:`cancelled`,completedAt:n,reason:i??null}).where(j(r.id,t));for(let t of a){let n=z(t);await e.update(y).set(n).where(j(y.id,n.id))}return{cancelled:!0,gates:a}})}async function mt(e,t,n,i,a,o){return P(e,async e=>{if((await e.select({id:r.id}).from(r).where(j(r.id,t)).limit(1))[0]===void 0)return!1;let s={};return n!==void 0&&(s.status=n),i!==void 0&&(s.error=i),a!==void 0&&(s.reason=a),o!==void 0&&(s.completedAt=o),Object.keys(s).length>0&&await e.update(r).set(s).where(j(r.id,t)),!0})}function ht(e,t){let n=e.on(g.getExecution,async e=>{let{executionId:n}=e.payload,i=await t.select().from(r).where(j(r.id,n));e.setResult({execution:i[0]?ct(i[0]):null})}),i=e.on(g.setExecution,async e=>{let n=e.payload.execution,i=lt(n);await t.insert(r).values(i).onConflictDoUpdate({target:r.id,set:i}),e.setResult({id:n.id})}),a=e.on(g.setExecutionStart,async e=>{let n=e.payload.execution,r=e.payload.runContext;await dt(t,n,r),e.setResult({id:n.id,executionId:n.id})}),o=e.on(g.restorePausedGateResumeState,async e=>{let n=e.payload.execution,r=e.payload.gate;await ft(t,n,r),e.setResult({executionId:n.id,gateId:r.nodeId})}),s=e.on(g.updateExecution,async e=>{let{executionId:n,status:r,error:i,reason:a,completedAt:o}=e.payload,s=await mt(t,n,r,i,a,o);e.setResult({success:s})}),c=e.on(g.cancelPausedExecution,async e=>{let{executionId:n,completedAt:r,reason:i}=e.payload;e.setResult(await pt(t,n,r,i))}),l=e.on(g.listExecutions,async e=>{let{workflowId:n,scope:i,status:a,limit:o,cursor:s}=e.payload;if(n===void 0&&i===void 0)throw Error(`Either workflowId or scope is required to list executions.`);let c=ut(n,i,a,s),l=o??re;if(!Number.isInteger(l)||l<ae||l>ie)throw Error(`Execution list limit must be an integer between ${ae} and ${ie}.`);let u=await t.select().from(r).where(O(...c)).orderBy(A(r.startedAt),A(r.id)).limit(l);e.setResult({executions:u.map(ct)})});return()=>{n(),i(),a(),o(),s(),c(),l()}}function q(e,t,n){let r=Ee(e,t),i=ht(e,t),a=ke(e,t),o=je(e,t),s=Pe(e,t),c=Be(e,t),l=st(e,t);return()=>{r(),i(),a(),o(),s(),c(),l()}}function gt(e,t){if(e.origin.local)return!0;let n=e.transport?.peer;return n?.authenticated!==!0||n.id!==t?!1:n.kind===`workflow-execution`?!0:n.kind===`e2e`&&n.encrypted===!0}function _t(e){return[e.on(n.getDefinition,async t=>{let n=await e.request(g.get,{id:t.payload.id});t.setResult(n)}),e.on(n.setDefinition,async t=>{let n=await e.request(g.set,{workflow:t.payload.workflow});t.setResult(n)}),e.on(n.deleteDefinition,async t=>{let n=await e.request(g.delete,{id:t.payload.id});t.setResult(n)}),e.on(n.listDefinitions,async t=>{let n=await e.request(g.list,t.payload);t.setResult(n)}),e.on(n.getExecution,async t=>{let n=await e.request(g.getExecution,{executionId:t.payload.executionId});t.setResult(n)}),e.on(n.listExecutions,async t=>{let n=await e.request(g.listExecutions,t.payload);t.setResult(n)}),e.on(n.listSpans,async t=>{let n=await e.request(g.listSpans,{executionId:t.payload.executionId});t.setResult(n)}),e.on(n.listGateInstances,async t=>{let n=await e.request(g.listGateInstances,{executionId:t.payload.executionId});t.setResult(n)}),e.on(n.getRunContext,async t=>{let{executionId:n}=t.payload;if(!gt(t,n))throw Error(`Unauthorized: caller is not permitted to read run context for execution: ${n}`);let{runContext:r}=await e.request(g.getRunContext,{executionId:n});if(!r)throw Error(`Run context not found for execution: ${n}`);t.setResult(r)})]}function vt(e,t){return[e.on(n.listTriggerTypes,e=>{let n=t()?.getAll()??[];e.setResult({triggerTypes:n})})]}const yt=[`darwin`,`linux`,`win32`];function bt(e){return yt.find(t=>t===e)??`linux`}function xt(e,t){return t}function St(e,t){return{...t}}function Ct(e){return e.reason instanceof Error?e.reason.message:typeof e.reason==`string`&&e.reason.length>0?e.reason:E}async function wt(e,t,n){let r=e.activeExecutions.get(t);if(!r||r.execution.status!==`running`)return;let i=e.buildFinalizerDeps(),{execution:a}=await i.bus.request(g.getExecution,{executionId:t});a?.status===`running`&&(r.execution=a,await o(i,t,Ct(n))||console.error(`[WorkflowExecutor] Failed to persist runner cancellation for ${t}: execution not active`))}async function Tt(e,t){if(t.pausedAtGateId===void 0||t.pausedAtFrameId===void 0)throw Error(`Paused runner result for '${t.executionId}' is missing gate identity`);let{bus:r}=e.buildFinalizerDeps(),{execution:i}=await r.request(g.getExecution,{executionId:t.executionId});if(i?.status!==`running`){let n=e.activeExecutions.get(t.executionId);n!==void 0&&i?.status===`paused`&&(n.execution.status=`paused`,e.activeExecutions.delete(t.executionId));return}let a={...i,status:`paused`};await r.request(g.setExecution,{execution:a});let o=e.activeExecutions.get(t.executionId);o!==void 0&&(o.execution=a),await r.emit(n.execution.paused,{executionId:t.executionId,workflowId:t.workflowId,pausedAtGateId:t.pausedAtGateId,pausedAtFrameId:t.pausedAtFrameId}),e.activeExecutions.delete(t.executionId)}async function Et(e,t){let n=e.activeExecutions.get(t.executionId);if(!n||n.execution.status!==`running`)return;let r=e.buildFinalizerDeps(),{execution:i}=await r.bus.request(g.getExecution,{executionId:t.executionId});if(i?.status===`running`){if(n.execution=i,t.status===`completed`){await v(r,n.execution,t.executionId,n.execution.startedAt);return}if(t.status===`cancelled`){await o(r,t.executionId,t.reason??E);return}if(t.status===`failed`){await f(r,n.execution,t.executionId,t.error);return}}}function Dt(e,t){let{executionId:n,workflowId:r,filePath:i,coordinatorSessionId:a,sanitizedTriggerPayload:o,scope:s,workspaceRoot:c}=t,{workflowRunner:l,workflowAbortControllers:u,executionTasks:d,activeExecutions:p,config:m}=e,h=new AbortController;u.set(n,h);let g={source:{kind:`path`,path:i},executionId:n,workflowId:r,triggerPayload:o,inputs:{},config:{},scope:s,busUrl:m.busUrl,busAuth:m.busAuth,context:e.resolveWorkflowContext(c),env:m.platformDefaults.env??{},coordinatorSessionId:a,cancelSubject:`workflow.${n}.cancel`,suspensionStrategy:`wait-in-process`};return Promise.resolve().then(()=>l.run(g,h.signal)).then(async t=>{if(t.status===`paused`){await Tt(e,t);return}await Et(e,t)}).catch(async t=>{if(h.signal.aborted){await wt(e,n,h.signal).catch(e=>{console.error(`[WorkflowExecutor] Failed to persist file runner cancellation for ${n}:`,e)});return}let r=p.get(n);if(r){let i=t instanceof Error?t.message:String(t);await f(e.buildFinalizerDeps(),r.execution,n,i).catch(e=>{console.error(`[WorkflowExecutor] Failed to persist file runner boot failure for ${n}:`,e)})}}).finally(()=>{u.delete(n),d.delete(n),p.delete(n)})}function Ot(e,t){let{config:n}=e;return{source:t.source,...t.source.kind===`definition`?{definition:t.workflow}:{},executionId:t.executionId,workflowId:t.workflowId,triggerPayload:t.sanitizedTriggerPayload,inputs:t.boundInputs,config:t.boundConfig,...t.artifactRef===void 0?{}:{artifactRef:t.artifactRef},...t.executionHints===void 0?{}:{executionHints:t.executionHints},scope:t.scope,busUrl:n.busUrl,busAuth:n.busAuth,context:e.resolveWorkflowContext(t.workspaceRoot),env:n.platformDefaults.env??{},coordinatorSessionId:t.coordinatorSessionId,cancelSubject:`workflow.${t.executionId}.cancel`,suspensionStrategy:t.suspensionStrategy??`wait-in-process`}}function kt(e,t){let{executionId:n}=t,{workflowRunner:r,workflowAbortControllers:i,executionTasks:a,activeExecutions:o}=e,s=new AbortController;i.set(n,s);let c=Ot(e,t),l=t.dispatchMetadata===void 0?void 0:{dispatchMetadata:t.dispatchMetadata};return Promise.resolve().then(()=>r.run(c,s.signal,void 0,l)).then(async t=>{if(t.status===`paused`){await Tt(e,t);return}await Et(e,t)}).catch(async t=>{if(s.signal.aborted){await wt(e,n,s.signal).catch(e=>{console.error(`[WorkflowExecutor] Failed to persist runner cancellation for ${n}:`,e)});return}let r=o.get(n);if(r){let i=t instanceof Error?t.message:String(t);await f(e.buildFinalizerDeps(),r.execution,n,i).catch(e=>{console.error(`[WorkflowExecutor] Failed to persist runner boot failure for ${n}:`,e)})}}).finally(()=>{i.delete(n),a.delete(n),o.delete(n)})}function At(e,t,n={}){let r=jt(e,n);return{executionId:e.executionId,workflowId:e.workflowId,workflow:t,source:e.source,coordinatorSessionId:e.coordinatorSessionId,sanitizedTriggerPayload:e.triggerPayload,boundInputs:e.inputs,boundConfig:e.config??{},...e.artifactRef===void 0?{}:{artifactRef:e.artifactRef},...e.executionHints===void 0?{}:{executionHints:e.executionHints},scope:e.scope,workspaceRoot:e.context.repoPath,suspensionStrategy:e.suspensionStrategy,...r===void 0?{}:{dispatchMetadata:r}}}function jt(e,t){return t.resume===!0?{...e.dispatchMetadata,resume:!0}:e.dispatchMetadata}const Mt=/(?:^|[_-])(authorization|token|cookie|password|set[_-]?cookie|api[_-]?key|secret|credential|private[_-]?key|api[_-]?secret)(?:$|[_-])/i;function Nt(e){if(!e)return;let t={remainingBytes:65536},n={},r=Object.entries(e).slice(0,100);for(let[e,i]of r){if(t.remainingBytes<=0)break;let r=Pt(e,i,0,t);r!==void 0&&(n[e]=r)}return Object.keys(n).length>0?n:void 0}function Pt(e,t,n,r){if(!(r.remainingBytes<=0||n>6)&&(r.remainingBytes-=e.length,!(r.remainingBytes<=0))){if(Mt.test(e))return r.remainingBytes-=10,`[REDACTED]`;if(t===null)return r.remainingBytes-=4,null;if(typeof t==`string`){let e=t.slice(0,2e3);return r.remainingBytes-=e.length,e}if(typeof t==`number`||typeof t==`boolean`)return r.remainingBytes-=String(t).length,t;if(Array.isArray(t)){let i=[];for(let a of t.slice(0,100)){if(r.remainingBytes<=0)break;let t=Pt(e,a,n+1,r);t!==void 0&&i.push(t)}return i}if(typeof t==`object`){let e={},i=Object.entries(t).slice(0,100);for(let[t,a]of i){if(r.remainingBytes<=0)break;let i=Pt(t,a,n+1,r);i!==void 0&&(e[t]=i)}return e}}}function Ft(e,t,n){let r=t?.requirements?.capabilities??[];if(r.length!==0)return{run:(t,i)=>e.request(ce.dispatch,{config:t,requirements:{customCapabilities:r},...n===void 0?{}:{metadata:n}},{signal:i})}}function It(e,t){let n=Ft(e.bus,t.executionHints,t.dispatchMetadata);return n===void 0?e.workflowRunner===void 0?e.runExecution(t.executionId).finally(()=>{e.executionTasks.delete(t.executionId)}):kt(e.buildRunnerTaskDeps(e.workflowRunner),t):kt(e.buildRunnerTaskDeps(n),t)}async function Lt(e,t){try{await e.emit(n.execution.started,t)}catch(e){console.error(`[WorkflowExecutor] execution.started listener failed:`,e)}}async function Rt(e,t){await e.request(T.close,{sessionId:t}).catch(e=>{console.error(`[WorkflowExecutor] Failed to close coordinator session "${t}" after launch failure:`,e)})}function zt(e,t,n,r,i,a,o,s,c){let l={id:t,workflowId:n.id,coordinatorSessionId:r,status:`running`,inputs:i,config:a,startedAt:Date.now(),triggerPayload:o,scope:s};return e.set(t,{execution:l,workflow:n,runContext:c,runtimeHandlers:new Map}),l}async function Bt(e,t,n){await e.request(g.setExecutionStart,{execution:t,runContext:n})}function Vt(e,t){let n=e?.source;if(n===void 0)return;let r=ue.parse(n);return r.kind===`path`&&!C(r.path)?{...r,path:w(t,r.path)}:r}function Ht(e,t,n){return Vt(t,n)??{kind:`definition`,workflowId:e}}async function Ut(e,t,n,r){return e.set(t,n),await r,t}async function Wt(e,t){let{workflow:n}=await e.request(g.get,{id:t});if(!n)throw Error(`Workflow not found: ${t}`);return n}function Gt(e,t){if(e===void 0&&t===void 0)return;let n=[...new Set([...e?.capabilities??[],...t?.capabilities??[]])];return{...e,...t,...n.length>0&&{capabilities:n}}}function Kt(e,t){if(e===void 0&&t===void 0)return;let n=Gt(e?.requirements,t?.requirements),r=e?.providers!==void 0||t?.providers!==void 0?{...e?.providers,...t?.providers}:void 0;return{...e,...t,...n!==void 0&&{requirements:n},...r!==void 0&&{providers:r}}}function qt(e){return{...e,input:e.input===void 0?{}:e.input,config:e.config??{}}}async function Jt(e,t,n,r){let{sessionId:i}=await e.request(T.create,{parentSessionId:t,branchKind:`coordinator`,title:`Workflow: ${n}`,targetWorkingDirectory:r});return i}async function Yt(e,t,n={}){let{bus:r,activeExecutions:i,executionTasks:a}=e,{input:o,config:s,parentSessionId:c,triggerPayload:l,artifactRef:u,executionHints:d,scopeOverride:f}=qt(n),p=await Wt(r,t),m=h(`wfx`),g=Nt(l),_=xt(p,o),v=St(p,s),y=f??p.scope,b=Kt(p.executionHints,d),x=await e.resolveExecutionWorkspaceRoot(c),S=Ht(t,b,x),C=await Jt(r,c,p.name,x),w=!1;try{let n=e.buildRunContext({executionId:m,workflowId:t,coordinatorSessionId:C,source:S,...S.kind===`definition`?{definitionSnapshot:p}:{},inputs:_,config:v,scope:y,triggerPayload:g??{},...u===void 0?{}:{artifactRef:u},...b===void 0?{}:{executionHints:b},workspaceRoot:x}),o=zt(i,m,p,C,_,v,g,y,n);await Bt(r,o,n);let s=o.startedAt,c=Lt(r,{executionId:m,workflowId:t,coordinatorSessionId:C,startedAt:s}),l=It(e,{executionId:m,workflowId:t,workflow:p,source:S,coordinatorSessionId:C,sanitizedTriggerPayload:g??{},boundInputs:_,boundConfig:v,scope:y,...u===void 0?{}:{artifactRef:u},...b===void 0?{}:{executionHints:b},workspaceRoot:x,suspensionStrategy:n.suspensionStrategy});return w=!0,Ut(a,m,l,c)}catch(e){throw w||(i.delete(m),a.delete(m),await Rt(r,C)),e}}function Xt(e,t,n,r,i){e.set(t.id,{execution:t,workflow:{id:t.workflowId,name:n,scope:r,root:{id:`${t.workflowId}-root`,type:`sequence`,nodes:[]}},runContext:i,runtimeHandlers:new Map})}async function Zt(e,t,n={}){let{bus:r,config:i,activeExecutions:a,executionTasks:o}=e,{triggerPayload:s,scopeOverride:c}=n,l=h(`wfx`),u=Nt(s),d=c??{type:`global`},f=i.platformDefaults.cwd,{sessionId:p}=await r.request(T.create,{branchKind:`coordinator`,title:`Workflow: ${t}`,targetWorkingDirectory:f}),m=l,g={id:l,workflowId:m,coordinatorSessionId:p,status:`running`,inputs:{},config:{},startedAt:Date.now(),triggerPayload:u,scope:d},_=!1;try{let{workflowRunner:n}=e;if(n===void 0)throw Error(`[WorkflowExecutor] startFileExecution called without a workflow runner`);let i=e.buildRunContext({executionId:l,workflowId:m,coordinatorSessionId:p,source:{kind:`path`,path:t},inputs:{},config:{},scope:d,triggerPayload:u??{},workspaceRoot:f});await Bt(r,g,i),Xt(a,g,t,d,i);let s=Lt(r,{executionId:l,workflowId:m,coordinatorSessionId:p,startedAt:g.startedAt}),c=Dt(e.buildRunnerTaskDeps(n),{executionId:l,workflowId:m,filePath:t,coordinatorSessionId:p,sanitizedTriggerPayload:u??{},scope:d,workspaceRoot:f});return _=!0,Ut(o,l,c,s)}catch(e){throw _||(a.delete(l),o.delete(l),await Rt(r,p)),e}}var Qt=class{bus;resumePausedExecution;handles=new Map;constructor(e,t){this.bus=e,this.resumePausedExecution=t}dispose(){for(let e of this.handles.values())clearTimeout(e);this.handles.clear()}clear(e,t,n){let r=this.makeKey(e,t,n),i=this.handles.get(r);i!==void 0&&(clearTimeout(i),this.handles.delete(r))}schedule(e){e.timeoutMs!==null&&(this.clear(e.executionId,e.nodeId,e.frameId),this.scheduleNextWakeup({...e,timeoutMs:e.timeoutMs}))}scheduleNextWakeup(e){let t=this.makeKey(e.executionId,e.nodeId,e.frameId),n=Math.max(0,e.openedAt+e.timeoutMs-Date.now()),r=setTimeout(()=>{if(this.handles.delete(t),Date.now()<e.openedAt+e.timeoutMs){this.scheduleNextWakeup(e);return}this.handleExpiredWakeup(e)},Math.min(n,2147483647));this.handles.set(t,r)}scheduleNextWakeupAfterDelay(e,t){let n=this.makeKey(e.executionId,e.nodeId,e.frameId),r=setTimeout(()=>{this.handles.delete(n),this.handleExpiredWakeup(e)},t);this.handles.set(n,r)}async handleExpiredWakeup(e){try{await this.resumeTimedOutPausedGate(e)===`retry`&&this.scheduleNextWakeupAfterDelay(e,25)}catch(t){this.scheduleFailedWakeupRetry(e,t)}}scheduleFailedWakeupRetry(e,t){let n=(e.failedWakeupAttempts??0)+1;if(n>4){console.error(`[WorkflowExecutor] Giving up on timed-out gate '${e.nodeId}' after 4 failed wakeup retries:`,t);return}let r=Math.min(250*2**(n-1),2e3);console.error(`[WorkflowExecutor] Failed to resume timed-out gate '${e.nodeId}', retrying in ${r} ms:`,t),this.scheduleNextWakeupAfterDelay({...e,failedWakeupAttempts:n},r)}makeKey(e,t,n){return`${e}:${t}:${n}`}async resumeTimedOutPausedGate(e){this.clear(e.executionId,e.nodeId,e.frameId);let{gate:t}=await this.bus.request(g.getGateInstance,{executionId:e.executionId,nodeId:e.nodeId,frameId:e.frameId});if(t===null||t.status!==`waiting`)return`settled`;let{execution:n}=await this.bus.request(g.getExecution,{executionId:e.executionId});return n?.status===`running`?`retry`:n?.status===`paused`?(await this.resumePausedExecution(e.executionId),`resumed`):`settled`}};function $t(e){if(e!==void 0)return se.parse(e)}function en(e){if(e!==void 0)return oe.parse(e)}function tn(e,t){return{repoPath:t,makaioHome:e.makaioHome??process.env.MAKAIO_HOME??`${Se.homedir()}/.makaio`,os:bt(process.platform),arch:process.arch}}function nn(e,t){return{executionId:e.executionId,workflowId:e.workflowId,source:e.source,...e.definitionSnapshot===void 0?{}:{definitionSnapshot:e.definitionSnapshot},workerManifest:{packages:[]},inputs:e.inputs,config:e.config,scope:e.scope,triggerPayload:e.triggerPayload,...e.artifactRef===void 0?{}:{artifactRef:e.artifactRef},...e.executionHints===void 0?{}:{executionHints:e.executionHints},coordinatorSessionId:e.coordinatorSessionId,cancelSubject:`workflow.${e.executionId}.cancel`,context:tn(t,e.workspaceRoot),env:t.platformDefaults.env??{},createdAt:Date.now(),suspensionStrategy:e.suspensionStrategy??`wait-in-process`}}function rn(e){return e?.status===`paused`}function an(e){return e?.status===`waiting`}async function on(e,t,n,r,i,a,o){t.delete(i.id),n.delete(i.id),r.delete(i.id);try{await e.request(g.restorePausedGateResumeState,{execution:i,gate:a})}catch(e){console.error(`[WorkflowExecutor] Failed to restore paused gate '${o}' after resume launch failure:`,e)}}async function sn(e,t){if(t.suspensionStrategy===`wait-in-process`)return;let{frames:n}=await e.request(g.listFrames,{executionId:t.executionId});if(n.length===0)throw Error(`[WorkflowExecutor] Missing resume frames for paused execution: ${t.executionId}`)}function cn(e){return{executionId:e.executionId,nodeId:e.nodeId,frameId:e.frameId,timeoutMs:e.timeoutMs,openedAt:e.createdAt}}async function ln(e,t){if(t.frameId!==void 0){let{gate:n}=await e.request(g.getGateInstance,t);return an(n)?n:null}let{gates:n}=await e.request(g.listGateInstances,{executionId:t.executionId}),r=n.filter(e=>e.nodeId===t.nodeId&&e.status===`waiting`);return r.length===1?r[0]:null}var un=class extends me{static storage={drizzle:q};config;activeExecutions=new Map;executionTasks=new Map;shellAbortControllers=new Map;activeRunnerSteps=new Map;gateTimeoutScheduler;resumeDispatches=new Set;workflowAbortControllers=new Map;workflowRunner;triggerTypeRegistry;constructor(e,t,n){super(e),this.config={...s,...t},this.workflowRunner=n,this.gateTimeoutScheduler=new Qt(e,e=>this.resumePausedExecution(e))}setTriggerTypeRegistry(e){this.triggerTypeRegistry=e}getTriggerTypeRegistry(){return this.triggerTypeRegistry}async onInit(){this.registerExecutionHandlers();for(let e of _t(this.bus))this.addCleanup(e);for(let e of vt(this.bus,()=>this.triggerTypeRegistry))this.addCleanup(e);await this.rehydratePausedGateTimeouts()}async onDestroy(){let e=this.buildFinalizerDeps();await Promise.allSettled([...this.activeExecutions.keys()].map(async t=>{await o(e,t,`Workflow engine shutdown`)&&(this.workflowAbortControllers.get(t)?.abort(),this.workflowAbortControllers.delete(t))}));for(let e of this.workflowAbortControllers.values())e.abort();this.workflowAbortControllers.clear(),await Promise.allSettled(this.executionTasks.values());for(let e of this.shellAbortControllers.values())e.abort();this.shellAbortControllers.clear();for(let e of this.activeRunnerSteps.values())e.hardKillTimer&&clearTimeout(e.hardKillTimer);this.activeRunnerSteps.clear(),this.gateTimeoutScheduler.dispose(),await this.workflowRunner?.dispose?.(),this.activeExecutions.clear()}buildFinalizerDeps(){return{bus:this.bus,activeExecutions:this.activeExecutions,shellAbortControllers:this.shellAbortControllers,activeRunnerSteps:this.activeRunnerSteps,cancelTimeoutMs:this.config.cancelTimeoutMs}}buildRunnerTaskDeps(e){return{workflowRunner:e,workflowAbortControllers:this.workflowAbortControllers,executionTasks:this.executionTasks,activeExecutions:this.activeExecutions,buildFinalizerDeps:()=>this.buildFinalizerDeps(),resolveWorkflowContext:e=>tn(this.config,e),config:this.config}}async resolveExecutionWorkspaceRoot(e){if(!e)return this.config.platformDefaults.cwd;let{session:t}=await this.bus.request(T.get,{sessionId:e});return t?.targetWorkingDirectory??this.config.platformDefaults.cwd}buildStartDeps(){return{bus:this.bus,config:this.config,activeExecutions:this.activeExecutions,executionTasks:this.executionTasks,workflowRunner:this.workflowRunner,buildRunContext:e=>nn(e,this.config),buildRunnerTaskDeps:e=>this.buildRunnerTaskDeps(e),buildFinalizerDeps:()=>this.buildFinalizerDeps(),resolveExecutionWorkspaceRoot:e=>this.resolveExecutionWorkspaceRoot(e),runExecution:e=>this.runExecution(e)}}registerExecutionHandlers(){this.registerHandler(n.start,async e=>{let{workflowId:t,input:n,config:r,parentSessionId:i,triggerPayload:a,artifactRef:o,scope:s,executionHints:c}=e.payload,l=typeof r==`object`&&r&&!Array.isArray(r)?r:{};try{let r=await Yt(this.buildStartDeps(),t,{input:$t(n),config:l,parentSessionId:i,triggerPayload:a,artifactRef:o,executionHints:en(c),scopeOverride:s});e.setResult({executionId:r})}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to start workflow: ${t}`)}}),this.registerHandler(n.runFile,async e=>{if(this.workflowRunner===void 0)throw Error(`workflow.runFile requires a workflow runner — configure a ThinWorkflowPiscinaRunner or equivalent.`);let{filePath:t,triggerPayload:n,scope:r}=e.payload;try{let i=await Zt(this.buildStartDeps(),t,{triggerPayload:n,scopeOverride:r});e.setResult({executionId:i})}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to start workflow file: ${t}`)}}),this.registerHandler(n.cancel,async e=>{let{executionId:t,reason:n}=e.payload;await this.bus.emit(de(`workflow.${t}.cancel`),{executionId:t,reason:n}).catch(e=>{console.error(`[WorkflowExecutor] Failed to emit workflow cancel for ${t}:`,e)});let r=this.workflowAbortControllers.get(t);if(r){r.abort(n??E);let i=await o(this.buildFinalizerDeps(),t,n);e.setResult({cancelled:i});return}let i=await o(this.buildFinalizerDeps(),t,n);e.setResult({cancelled:i})}),this.registerGateTimeoutHandlers(),this.addCleanup(this.bus.on(n.gate.respond,async e=>{let{executionId:t,gateId:n,frameId:r,action:i,resumeData:a}=e.payload,o=await this.respondToPausedGate({executionId:t,gateId:n,frameId:r,action:i,resumeData:a});e.setResult({accepted:o})},{priority:-100}))}registerGateTimeoutHandlers(){this.addCleanup(this.bus.on(n.gate.suspended,e=>{this.gateTimeoutScheduler.schedule(e.payload)})),this.addCleanup(this.bus.on(n.gate.resolved,e=>{this.gateTimeoutScheduler.clear(e.payload.executionId,e.payload.stepId,e.payload.frameId)}))}async rehydratePausedGateTimeouts(){let{gates:e}=await this.bus.request(g.listPausedGateTimeouts,{});for(let t of e)this.gateTimeoutScheduler.schedule(cn(t))}async runExecution(e){let t=this.activeExecutions.get(e);if(!t)return;let n=new AbortController;this.workflowAbortControllers.set(e,n);try{let r;try{let a=await d({definition:t.workflow,execution:t.execution,runContext:t.runContext,bus:this.bus}),o=new i(e,t.workflow.id,t.workflow,t.execution,t.runtimeHandlers,this.bus,n.signal,void 0,a,{context:t.runContext.context,env:t.runContext.env}),s=o.buildExpressionContext();r=await _(t.workflow.root,o,s)}catch(r){if(n.signal.aborted||t.execution.status===`cancelled`){await o(this.buildFinalizerDeps(),e,E);return}let i=r instanceof Error?r.message:String(r);await f(this.buildFinalizerDeps(),t.execution,e,i);return}let a=this.buildFinalizerDeps();r.status===`cancelled`||n.signal.aborted||t.execution.status===`cancelled`?await o(a,e,E):r.status===`failed`?await f(a,t.execution,e,r.error):r.status===`paused`?(t.execution.status=`paused`,await this.bus.request(g.setExecution,{execution:t.execution}),this.activeExecutions.delete(e)):await v(a,t.execution,e,t.execution.startedAt)}finally{this.workflowAbortControllers.delete(e)}}async respondToPausedGate(e){let{execution:t}=await this.bus.request(g.getExecution,{executionId:e.executionId});if(!rn(t))return!1;let n=await ln(this.bus,{executionId:e.executionId,nodeId:e.gateId,frameId:e.frameId});if(n===null||!m(e.gateId,n.schema,e.resumeData).valid)return!1;let{runContext:r}=await this.bus.request(g.getRunContext,{executionId:e.executionId});if(r===null)throw Error(`[WorkflowExecutor] Run context not found for paused execution: ${e.executionId}`);await sn(this.bus,r);let i=e.action===`reject`?`rejected`:`resumed`,{accepted:a}=await this.bus.request(g.resolveWaitingGateInstance,{gate:{...n,status:i,resumeData:e.resumeData,resolvedAt:Date.now()}});if(!a)return!1;try{await this.resumePausedExecution(t.id)}catch(r){throw await on(this.bus,this.activeExecutions,this.executionTasks,this.workflowAbortControllers,t,n,e.gateId),r}return this.gateTimeoutScheduler.clear(e.executionId,e.gateId,n.frameId),!0}async resumePausedExecution(e){if(!this.resumeDispatches.has(e)){this.resumeDispatches.add(e);try{await this.dispatchPausedExecutionResume(e)||this.resumeDispatches.delete(e)}catch(t){throw this.resumeDispatches.delete(e),t}}}async dispatchPausedExecutionResume(e){let{runContext:t}=await this.bus.request(g.getRunContext,{executionId:e});if(t===null)throw Error(`[WorkflowExecutor] Run context not found for paused execution: ${e}`);let n=t.definitionSnapshot??(await this.bus.request(g.get,{id:t.workflowId})).workflow??(()=>{throw Error(`[WorkflowExecutor] Workflow definition not found for paused execution: ${e}`)})(),{execution:r}=await this.bus.request(g.getExecution,{executionId:e});if(r===null)throw Error(`[WorkflowExecutor] Execution not found for paused execution: ${e}`);if(r.status!==`paused`)return!1;await sn(this.bus,t),await this.bus.request(g.setExecution,{execution:{...r,status:`running`}}),this.activeExecutions.set(e,{execution:{...r,status:`running`},workflow:n,runContext:t,runtimeHandlers:new Map});let i=At(t,n,{resume:!0}),a=It(this.buildStartDeps(),i).finally(()=>{this.resumeDispatches.delete(e)});return this.executionTasks.set(e,a),!0}};function dn(e,t){try{return xe(e)}catch(n){console.error(`[BusEventTriggerEvaluator] Invalid trigger.filterExpression for workflow "${t}": "${e}"`,n);return}}function fn(e){let t=e.indexOf(`.`),n=e.indexOf(`:`),r=t===-1?n:n===-1?t:Math.min(t,n);return r===-1?e:e.slice(0,r)}function pn(e){return{subject:`*`,$meta:{namespace:e,isRequest:!1}}}var mn=class{bus;cleanupFns=[];initialized=!1;triggerIndex=new Map;subscribedNamespaces=new Set;constructor(e){this.bus=e}async init(){if(!this.initialized)try{this.cleanupFns.push(this.bus.on(D.definition.created,e=>{this.indexWorkflow(e.payload)}),this.bus.on(D.definition.updated,e=>{this.removeWorkflow(e.payload.id),this.indexWorkflow(e.payload)}),this.bus.on(D.definition.deleted,e=>{this.removeWorkflow(e.payload.id)})),await this.loadExistingTriggers(),this.initialized=!0}catch(e){throw this.cleanupFns.forEach(e=>e()),this.cleanupFns.length=0,this.triggerIndex.clear(),this.subscribedNamespaces.clear(),e}}destroy(){this.initialized&&=(this.cleanupFns.forEach(e=>e()),this.cleanupFns.length=0,this.triggerIndex.clear(),this.subscribedNamespaces.clear(),!1)}getTestState(){return{initialized:this.initialized,cleanupFns:[...this.cleanupFns],subscribedNamespaces:new Set(this.subscribedNamespaces)}}async loadExistingTriggers(){let{workflows:e}=await this.bus.request(g.list,{});for(let t of e)this.indexWorkflow(t)}indexWorkflow(e){let t=e.triggers??[],n=[];for(let r of t){if(r.type!==`bus-event`)continue;let t=typeof r.filterExpression==`string`?dn(r.filterExpression,e.id):void 0;typeof r.filterExpression==`string`&&t===void 0||(n.push({workflowId:e.id,subject:r.subject,filter:r.filter,compiledFilterExpr:t}),this.ensureNamespaceSubscribed(fn(r.subject)))}n.length>0&&this.triggerIndex.set(e.id,n)}removeWorkflow(e){this.triggerIndex.delete(e)}ensureNamespaceSubscribed(e){if(this.subscribedNamespaces.has(e))return;let t=pn(e),n=this.bus.on(t,e=>{if(e.isRequest)return;let t=typeof e.payload==`object`&&e.payload!==null?e.payload:{};this.handleBusEvent(e.subject,t)});this.cleanupFns.push(n),this.subscribedNamespaces.add(e)}handleBusEvent(e,t){for(let n of this.triggerIndex.values())for(let r of n)if(te(e,r.subject)&&!(r.filter&&!ee(t,r.filter))){if(r.compiledFilterExpr){let n;try{n=r.compiledFilterExpr.evalSync({payload:t})}catch(n){console.error(`[BusEventTriggerEvaluator] filterExpression eval failed for workflow "${r.workflowId}" on subject "${e}" payload keys: [${Object.keys(t).join(`, `)}]`,n);continue}if(!n)continue}this.bus.request(D.start,{workflowId:r.workflowId,triggerPayload:t}).catch(t=>{console.error(`[BusEventTriggerEvaluator] Failed to start workflow "${r.workflowId}" triggered by "${e}":`,t)})}}};function J(e,t,n,r,i,a,o,s){return J.fromTZ(J.tp(e,t,n,r,i,a,o),s)}J.fromTZISO=(e,t,n)=>J.fromTZ(gn(e,t),n),J.fromTZ=function(e,t){let n=new Date(Date.UTC(e.y,e.m-1,e.d,e.h,e.i,e.s)),r=hn(e.tz,n),i=new Date(n.getTime()-r),a=hn(e.tz,i);if(a-r===0)return i;{let r=new Date(n.getTime()-a),o=hn(e.tz,r);if(o-a===0||!t&&o-a>0)return r;if(t)throw Error(`Invalid date passed to fromTZ()`);return i}},J.toTZ=function(e,t){let n=e.toLocaleString(`en-US`,{timeZone:t}).replace(/[\u202f]/,` `),r=new Date(n);return{y:r.getFullYear(),m:r.getMonth()+1,d:r.getDate(),h:r.getHours(),i:r.getMinutes(),s:r.getSeconds(),tz:t}},J.tp=(e,t,n,r,i,a,o)=>({y:e,m:t,d:n,h:r,i,s:a,tz:o});function hn(e,t=new Date){let n=t.toLocaleString(`en-US`,{timeZone:e,timeZoneName:`shortOffset`}).split(` `).slice(-1)[0],r=t.toLocaleString(`en-US`).replace(/[\u202f]/,` `);return Date.parse(`${r} GMT`)-Date.parse(`${r} ${n}`)}function gn(e,t){let n=new Date(Date.parse(e));if(isNaN(n))throw Error(`minitz: Invalid ISO8601 passed to parser.`);let r=e.substring(9);return e.includes(`Z`)||r.includes(`-`)||r.includes(`+`)?J.tp(n.getUTCFullYear(),n.getUTCMonth()+1,n.getUTCDate(),n.getUTCHours(),n.getUTCMinutes(),n.getUTCSeconds(),`Etc/UTC`):J.tp(n.getFullYear(),n.getMonth()+1,n.getDate(),n.getHours(),n.getMinutes(),n.getSeconds(),t)}J.minitz=J;var _n=32,Y=31|_n,vn=[1,2,4,8,16],yn=class{pattern;timezone;second;minute;hour;day;month;dayOfWeek;lastDayOfMonth;starDOM;starDOW;constructor(e,t){this.pattern=e,this.timezone=t,this.second=Array(60).fill(0),this.minute=Array(60).fill(0),this.hour=Array(24).fill(0),this.day=Array(31).fill(0),this.month=Array(12).fill(0),this.dayOfWeek=Array(7).fill(0),this.lastDayOfMonth=!1,this.starDOM=!1,this.starDOW=!1,this.parse()}parse(){if(!(typeof this.pattern==`string`||this.pattern instanceof String))throw TypeError(`CronPattern: Pattern has to be of type string.`);this.pattern.indexOf(`@`)>=0&&(this.pattern=this.handleNicknames(this.pattern).trim());let e=this.pattern.replace(/\s+/g,` `).split(` `);if(e.length<5||e.length>6)throw TypeError(`CronPattern: invalid configuration format ('`+this.pattern+`'), exactly five or six space separated parts are required.`);if(e.length===5&&e.unshift(`0`),e[3].indexOf(`L`)>=0&&(e[3]=e[3].replace(`L`,``),this.lastDayOfMonth=!0),e[3]==`*`&&(this.starDOM=!0),e[4].length>=3&&(e[4]=this.replaceAlphaMonths(e[4])),e[5].length>=3&&(e[5]=this.replaceAlphaDays(e[5])),e[5]==`*`&&(this.starDOW=!0),this.pattern.indexOf(`?`)>=0){let t=new Z(new Date,this.timezone).getDate(!0);e[0]=e[0].replace(`?`,t.getSeconds().toString()),e[1]=e[1].replace(`?`,t.getMinutes().toString()),e[2]=e[2].replace(`?`,t.getHours().toString()),this.starDOM||(e[3]=e[3].replace(`?`,t.getDate().toString())),e[4]=e[4].replace(`?`,(t.getMonth()+1).toString()),this.starDOW||(e[5]=e[5].replace(`?`,t.getDay().toString()))}this.throwAtIllegalCharacters(e),this.partToArray(`second`,e[0],0,1),this.partToArray(`minute`,e[1],0,1),this.partToArray(`hour`,e[2],0,1),this.partToArray(`day`,e[3],-1,1),this.partToArray(`month`,e[4],-1,1),this.partToArray(`dayOfWeek`,e[5],0,Y),this.dayOfWeek[7]&&(this.dayOfWeek[0]=this.dayOfWeek[7])}partToArray(e,t,n,r){let i=this[e],a=e===`day`&&this.lastDayOfMonth;if(t===``&&!a)throw TypeError(`CronPattern: configuration entry `+e+` (`+t+`) is empty, check for trailing spaces.`);if(t===`*`)return i.fill(r);let o=t.split(`,`);if(o.length>1)for(let t=0;t<o.length;t++)this.partToArray(e,o[t],n,r);else t.indexOf(`-`)!==-1&&t.indexOf(`/`)!==-1?this.handleRangeWithStepping(t,e,n,r):t.indexOf(`-`)===-1?t.indexOf(`/`)===-1?t!==``&&this.handleNumber(t,e,n,r):this.handleStepping(t,e,n,r):this.handleRange(t,e,n,r)}throwAtIllegalCharacters(e){for(let t=0;t<e.length;t++)if((t===5?/[^/*0-9,\-#L]+/:/[^/*0-9,-]+/).test(e[t]))throw TypeError(`CronPattern: configuration entry `+t+` (`+e[t]+`) contains illegal characters.`)}handleNumber(e,t,n,r){let i=this.extractNth(e,t),a=parseInt(i[0],10)+n;if(isNaN(a))throw TypeError(`CronPattern: `+t+` is not a number: '`+e+`'`);this.setPart(t,a,i[1]||r)}setPart(e,t,n){if(!Object.prototype.hasOwnProperty.call(this,e))throw TypeError(`CronPattern: Invalid part specified: `+e);if(e===`dayOfWeek`){if(t===7&&(t=0),t<0||t>6)throw RangeError(`CronPattern: Invalid value for dayOfWeek: `+t);this.setNthWeekdayOfMonth(t,n);return}if(e===`second`||e===`minute`){if(t<0||t>=60)throw RangeError(`CronPattern: Invalid value for `+e+`: `+t)}else if(e===`hour`){if(t<0||t>=24)throw RangeError(`CronPattern: Invalid value for `+e+`: `+t)}else if(e===`day`){if(t<0||t>=31)throw RangeError(`CronPattern: Invalid value for `+e+`: `+t)}else if(e===`month`&&(t<0||t>=12))throw RangeError(`CronPattern: Invalid value for `+e+`: `+t);this[e][t]=n}handleRangeWithStepping(e,t,n,r){let i=this.extractNth(e,t),a=i[0].match(/^(\d+)-(\d+)\/(\d+)$/);if(a===null)throw TypeError(`CronPattern: Syntax error, illegal range with stepping: '`+e+`'`);let[,o,s,c]=a,l=parseInt(o,10)+n,u=parseInt(s,10)+n,d=parseInt(c,10);if(isNaN(l))throw TypeError(`CronPattern: Syntax error, illegal lower range (NaN)`);if(isNaN(u))throw TypeError(`CronPattern: Syntax error, illegal upper range (NaN)`);if(isNaN(d))throw TypeError(`CronPattern: Syntax error, illegal stepping: (NaN)`);if(d===0)throw TypeError(`CronPattern: Syntax error, illegal stepping: 0`);if(d>this[t].length)throw TypeError(`CronPattern: Syntax error, steps cannot be greater than maximum value of part (`+this[t].length+`)`);if(l>u)throw TypeError(`CronPattern: From value is larger than to value: '`+e+`'`);for(let e=l;e<=u;e+=d)this.setPart(t,e,i[1]||r)}extractNth(e,t){let n=e,r;if(n.includes(`#`)){if(t!==`dayOfWeek`)throw Error(`CronPattern: nth (#) only allowed in day-of-week field`);r=n.split(`#`)[1],n=n.split(`#`)[0]}return[n,r]}handleRange(e,t,n,r){let i=this.extractNth(e,t),a=i[0].split(`-`);if(a.length!==2)throw TypeError(`CronPattern: Syntax error, illegal range: '`+e+`'`);let o=parseInt(a[0],10)+n,s=parseInt(a[1],10)+n;if(isNaN(o))throw TypeError(`CronPattern: Syntax error, illegal lower range (NaN)`);if(isNaN(s))throw TypeError(`CronPattern: Syntax error, illegal upper range (NaN)`);if(o>s)throw TypeError(`CronPattern: From value is larger than to value: '`+e+`'`);for(let e=o;e<=s;e++)this.setPart(t,e,i[1]||r)}handleStepping(e,t,n,r){let i=this.extractNth(e,t),a=i[0].split(`/`);if(a.length!==2)throw TypeError(`CronPattern: Syntax error, illegal stepping: '`+e+`'`);a[0]===``&&(a[0]=`*`);let o=0;a[0]!==`*`&&(o=parseInt(a[0],10)+n);let s=parseInt(a[1],10);if(isNaN(s))throw TypeError(`CronPattern: Syntax error, illegal stepping: (NaN)`);if(s===0)throw TypeError(`CronPattern: Syntax error, illegal stepping: 0`);if(s>this[t].length)throw TypeError(`CronPattern: Syntax error, max steps for part is (`+this[t].length+`)`);for(let e=o;e<this[t].length;e+=s)this.setPart(t,e,i[1]||r)}replaceAlphaDays(e){return e.replace(/-sun/gi,`-7`).replace(/sun/gi,`0`).replace(/mon/gi,`1`).replace(/tue/gi,`2`).replace(/wed/gi,`3`).replace(/thu/gi,`4`).replace(/fri/gi,`5`).replace(/sat/gi,`6`)}replaceAlphaMonths(e){return e.replace(/jan/gi,`1`).replace(/feb/gi,`2`).replace(/mar/gi,`3`).replace(/apr/gi,`4`).replace(/may/gi,`5`).replace(/jun/gi,`6`).replace(/jul/gi,`7`).replace(/aug/gi,`8`).replace(/sep/gi,`9`).replace(/oct/gi,`10`).replace(/nov/gi,`11`).replace(/dec/gi,`12`)}handleNicknames(e){let t=e.trim().toLowerCase();return t===`@yearly`||t===`@annually`?`0 0 1 1 *`:t===`@monthly`?`0 0 1 * *`:t===`@weekly`?`0 0 * * 0`:t===`@daily`?`0 0 * * *`:t===`@hourly`?`0 * * * *`:e}setNthWeekdayOfMonth(e,t){if(typeof t!=`number`&&t===`L`)this.dayOfWeek[e]=this.dayOfWeek[e]|_n;else if(t===Y)this.dayOfWeek[e]=Y;else if(t<6&&t>0)this.dayOfWeek[e]=this.dayOfWeek[e]|vn[t-1];else throw TypeError(`CronPattern: nth weekday out of range, should be 1-5 or L. Value: ${t}, Type: ${typeof t}`)}},bn=[31,28,31,30,31,30,31,31,30,31,30,31],X=[[`month`,`year`,0],[`day`,`month`,-1],[`hour`,`day`,0],[`minute`,`hour`,0],[`second`,`minute`,0]],Z=class e{tz;ms;second;minute;hour;day;month;year;constructor(t,n){if(this.tz=n,t&&t instanceof Date)if(!isNaN(t))this.fromDate(t);else throw TypeError(`CronDate: Invalid date passed to CronDate constructor`);else if(t===void 0)this.fromDate(new Date);else if(t&&typeof t==`string`)this.fromString(t);else if(t instanceof e)this.fromCronDate(t);else throw TypeError(`CronDate: Invalid type (`+typeof t+`) passed to CronDate constructor`)}isNthWeekdayOfMonth(e,t,n,r){let i=new Date(Date.UTC(e,t,n)).getUTCDay(),a=0;for(let r=1;r<=n;r++)new Date(Date.UTC(e,t,r)).getUTCDay()===i&&a++;if(r&Y&&vn[a-1]&r)return!0;if(r&_n){let r=new Date(Date.UTC(e,t+1,0)).getUTCDate();for(let a=n+1;a<=r;a++)if(new Date(Date.UTC(e,t,a)).getUTCDay()===i)return!1;return!0}return!1}fromDate(e){if(this.tz!==void 0)if(typeof this.tz==`number`)this.ms=e.getUTCMilliseconds(),this.second=e.getUTCSeconds(),this.minute=e.getUTCMinutes()+this.tz,this.hour=e.getUTCHours(),this.day=e.getUTCDate(),this.month=e.getUTCMonth(),this.year=e.getUTCFullYear(),this.apply();else{let t=J.toTZ(e,this.tz);this.ms=e.getMilliseconds(),this.second=t.s,this.minute=t.i,this.hour=t.h,this.day=t.d,this.month=t.m-1,this.year=t.y}else this.ms=e.getMilliseconds(),this.second=e.getSeconds(),this.minute=e.getMinutes(),this.hour=e.getHours(),this.day=e.getDate(),this.month=e.getMonth(),this.year=e.getFullYear()}fromCronDate(e){this.tz=e.tz,this.year=e.year,this.month=e.month,this.day=e.day,this.hour=e.hour,this.minute=e.minute,this.second=e.second,this.ms=e.ms}apply(){if(this.month>11||this.day>bn[this.month]||this.hour>59||this.minute>59||this.second>59||this.hour<0||this.minute<0||this.second<0){let e=new Date(Date.UTC(this.year,this.month,this.day,this.hour,this.minute,this.second,this.ms));return this.ms=e.getUTCMilliseconds(),this.second=e.getUTCSeconds(),this.minute=e.getUTCMinutes(),this.hour=e.getUTCHours(),this.day=e.getUTCDate(),this.month=e.getUTCMonth(),this.year=e.getUTCFullYear(),!0}else return!1}fromString(e){if(typeof this.tz==`number`){let t=J.fromTZISO(e);this.ms=t.getUTCMilliseconds(),this.second=t.getUTCSeconds(),this.minute=t.getUTCMinutes(),this.hour=t.getUTCHours(),this.day=t.getUTCDate(),this.month=t.getUTCMonth(),this.year=t.getUTCFullYear(),this.apply()}else return this.fromDate(J.fromTZISO(e,this.tz))}findNext(e,t,n,r){let i=this[t],a;n.lastDayOfMonth&&(a=this.month===1?new Date(Date.UTC(this.year,this.month+1,0,0,0,0,0)).getUTCDate():bn[this.month]);let o=!n.starDOW&&t==`day`?new Date(Date.UTC(this.year,this.month,1,0,0,0,0)).getUTCDay():void 0;for(let s=this[t]+r;s<n[t].length;s++){let c=n[t][s];if(t===`day`&&n.lastDayOfMonth&&s-r==a&&(c=1),t===`day`&&!n.starDOW){let t=n.dayOfWeek[(o+(s-r-1))%7];if(t&&t&Y)t=+!!this.isNthWeekdayOfMonth(this.year,this.month,s-r,t);else if(t)throw Error(`CronDate: Invalid value for dayOfWeek encountered. ${t}`);e.legacyMode&&!n.starDOM?c||=t:c&&=t}if(c)return this[t]=s-r,i===this[t]?1:2}return 3}recurse(e,t,n){let r=this.findNext(t,X[n][0],e,X[n][2]);if(r>1){let i=n+1;for(;i<X.length;)this[X[i][0]]=-X[i][2],i++;if(r===3)return this[X[n][1]]++,this[X[n][0]]=-X[n][2],this.apply(),this.recurse(e,t,0);if(this.apply())return this.recurse(e,t,n-1)}return n+=1,n>=X.length?this:this.year>=3e3?null:this.recurse(e,t,n)}increment(e,t,n){return this.second+=t.interval!==void 0&&t.interval>1&&n?t.interval:1,this.ms=0,this.apply(),this.recurse(e,t,0)}getDate(e){return e||this.tz===void 0?new Date(this.year,this.month,this.day,this.hour,this.minute,this.second,this.ms):typeof this.tz==`number`?new Date(Date.UTC(this.year,this.month,this.day,this.hour,this.minute-this.tz,this.second,this.ms)):J.fromTZ(J.tp(this.year,this.month+1,this.day,this.hour,this.minute,this.second,this.tz),!1)}getTime(){return this.getDate(!1).getTime()}};function xn(e){if(e===void 0&&(e={}),delete e.name,e.legacyMode=e.legacyMode===void 0?!0:e.legacyMode,e.paused=e.paused===void 0?!1:e.paused,e.maxRuns=e.maxRuns===void 0?1/0:e.maxRuns,e.catch=e.catch===void 0?!1:e.catch,e.interval=e.interval===void 0?0:parseInt(e.interval.toString(),10),e.utcOffset=e.utcOffset===void 0?void 0:parseInt(e.utcOffset.toString(),10),e.unref=e.unref===void 0?!1:e.unref,e.startAt&&=new Z(e.startAt,e.timezone),e.stopAt&&=new Z(e.stopAt,e.timezone),e.interval!==null){if(isNaN(e.interval))throw Error(`CronOptions: Supplied value for interval is not a number`);if(e.interval<0)throw Error(`CronOptions: Supplied value for interval can not be negative`)}if(e.utcOffset!==void 0){if(isNaN(e.utcOffset))throw Error(`CronOptions: Invalid value passed for utcOffset, should be number representing minutes offset from UTC.`);if(e.utcOffset<-870||e.utcOffset>870)throw Error(`CronOptions: utcOffset out of bounds.`);if(e.utcOffset!==void 0&&e.timezone)throw Error(`CronOptions: Combining 'utcOffset' with 'timezone' is not allowed.`)}if(e.unref!==!0&&e.unref!==!1)throw Error(`CronOptions: Unref should be either true, false or undefined(false).`);return e}function Q(e){return Object.prototype.toString.call(e)===`[object Function]`||typeof e==`function`||e instanceof Function}function Sn(e){return Q(e)}function Cn(e){typeof Deno<`u`&&typeof Deno.unrefTimer<`u`?Deno.unrefTimer(e):e&&typeof e.unref<`u`&&e.unref()}var wn=30*1e3,$=[],Tn=class{name;options;_states;fn;constructor(e,t,n){let r,i;if(Q(t))i=t;else if(typeof t==`object`)r=t;else if(t!==void 0)throw Error(`Cron: Invalid argument passed for optionsIn. Should be one of function, or object (options).`);if(Q(n))i=n;else if(typeof n==`object`)r=n;else if(n!==void 0)throw Error(`Cron: Invalid argument passed for funcIn. Should be one of function, or object (options).`);if(this.name=r?.name,this.options=xn(r),this._states={kill:!1,blocking:!1,previousRun:void 0,currentRun:void 0,once:void 0,currentTimeout:void 0,maxRuns:r?r.maxRuns:void 0,paused:r?r.paused:!1,pattern:new yn(`* * * * *`)},e&&(e instanceof Date||typeof e==`string`&&e.indexOf(`:`)>0)?this._states.once=new Z(e,this.options.timezone||this.options.utcOffset):this._states.pattern=new yn(e,this.options.timezone),this.name){if($.find(e=>e.name===this.name))throw Error(`Cron: Tried to initialize new named job '`+this.name+`', but name already taken.`);$.push(this)}return i!==void 0&&Sn(i)&&(this.fn=i,this.schedule()),this}nextRun(e){let t=this._next(e);return t?t.getDate(!1):null}nextRuns(e,t){this._states.maxRuns!==void 0&&e>this._states.maxRuns&&(e=this._states.maxRuns);let n=[],r=t||this._states.currentRun||void 0;for(;e--&&(r=this.nextRun(r));)n.push(r);return n}getPattern(){return this._states.pattern?this._states.pattern.pattern:void 0}isRunning(){let e=this.nextRun(this._states.currentRun),t=!this._states.paused,n=this.fn!==void 0,r=!this._states.kill;return t&&n&&r&&e!==null}isStopped(){return this._states.kill}isBusy(){return this._states.blocking}currentRun(){return this._states.currentRun?this._states.currentRun.getDate():null}previousRun(){return this._states.previousRun?this._states.previousRun.getDate():null}msToNext(e){let t=this._next(e);return t?e instanceof Z||e instanceof Date?t.getTime()-e.getTime():t.getTime()-new Z(e).getTime():null}stop(){this._states.kill=!0,this._states.currentTimeout&&clearTimeout(this._states.currentTimeout);let e=$.indexOf(this);e>=0&&$.splice(e,1)}pause(){return this._states.paused=!0,!this._states.kill}resume(){return this._states.paused=!1,!this._states.kill}schedule(e){if(e&&this.fn)throw Error(`Cron: It is not allowed to schedule two functions using the same Croner instance.`);e&&(this.fn=e);let t=this.msToNext(),n=this.nextRun(this._states.currentRun);return t==null||isNaN(t)||n===null?this:(t>wn&&(t=wn),this._states.currentTimeout=setTimeout(()=>this._checkTrigger(n),t),this._states.currentTimeout&&this.options.unref&&Cn(this._states.currentTimeout),this)}async _trigger(e){if(this._states.blocking=!0,this._states.currentRun=new Z(void 0,this.options.timezone||this.options.utcOffset),this.options.catch)try{this.fn!==void 0&&await this.fn(this,this.options.context)}catch(e){Q(this.options.catch)&&this.options.catch(e,this)}else this.fn!==void 0&&await this.fn(this,this.options.context);this._states.previousRun=new Z(e,this.options.timezone||this.options.utcOffset),this._states.blocking=!1}async trigger(){await this._trigger()}runsLeft(){return this._states.maxRuns}_checkTrigger(e){let t=new Date,n=!this._states.paused&&t.getTime()>=e.getTime(),r=this._states.blocking&&this.options.protect;n&&!r?(this._states.maxRuns!==void 0&&this._states.maxRuns--,this._trigger()):n&&r&&Q(this.options.protect)&&setTimeout(()=>this.options.protect(this),0),this.schedule()}_next(e){let t=!!(e||this._states.currentRun),n=!1;!e&&this.options.startAt&&this.options.interval&&([e,t]=this._calculatePreviousRun(e,t),n=!e),e=new Z(e,this.options.timezone||this.options.utcOffset),this.options.startAt&&e&&e.getTime()<this.options.startAt.getTime()&&(e=this.options.startAt);let r=this._states.once||new Z(e,this.options.timezone||this.options.utcOffset);return!n&&r!==this._states.once&&(r=r.increment(this._states.pattern,this.options,t)),this._states.once&&this._states.once.getTime()<=e.getTime()||r===null||this._states.maxRuns!==void 0&&this._states.maxRuns<=0||this._states.kill||this.options.stopAt&&r.getTime()>=this.options.stopAt.getTime()?null:r}_calculatePreviousRun(e,t){let n=new Z(void 0,this.options.timezone||this.options.utcOffset),r=e;if(this.options.startAt.getTime()<=n.getTime()){r=this.options.startAt;let e=r.getTime()+this.options.interval*1e3;for(;e<=n.getTime();)r=new Z(r,this.options.timezone||this.options.utcOffset).increment(this._states.pattern,this.options,!0),e=r.getTime()+this.options.interval*1e3;t=!0}return r===null&&(r=void 0),[r,t]}};function En(e,t){return`${e}:${t}`}function Dn(e){return e??`UTC`}var On=class{bus;cleanupFns=[];initialized=!1;jobs=new Map;constructor(e){this.bus=e}async init(){if(!this.initialized)try{this.cleanupFns.push(this.bus.on(D.definition.created,e=>{this.scheduleWorkflow(e.payload)}),this.bus.on(D.definition.updated,e=>{this.unscheduleWorkflow(e.payload.id),this.scheduleWorkflow(e.payload)}),this.bus.on(D.definition.deleted,e=>{this.unscheduleWorkflow(e.payload.id)})),await this.loadExistingTriggers(),this.initialized=!0}catch(e){throw this.cleanupFns.forEach(e=>e()),this.cleanupFns.length=0,this.stopAllJobs(),e}}destroy(){this.initialized&&=(this.cleanupFns.forEach(e=>e()),this.cleanupFns.length=0,this.stopAllJobs(),!1)}activeJobCount(){return this.jobs.size}async loadExistingTriggers(){let{workflows:e}=await this.bus.request(g.list,{});for(let t of e)this.scheduleWorkflow(t)}scheduleWorkflow(e){if(e.scope.type===`global`)return;let t=e.triggers??[];for(let n=0;n<t.length;n++){let r=t[n];if(r.type!==`cron`)continue;let i=En(e.id,n);this.stopJob(i);try{let t=Dn(r.timezone),a=new Tn(r.schedule,{timezone:t},()=>{this.fireTrigger(e.id,n)});this.jobs.set(i,{workflowId:e.id,triggerIndex:n,job:a})}catch(t){console.warn(`[CronTriggerEvaluator] Skipping invalid cron trigger key="${i}" workflowId="${e.id}" triggerIndex=${n} schedule="${r.schedule}" timezone="${r.timezone??`UTC`}"`,t)}}}unscheduleWorkflow(e){for(let[t,n]of this.jobs)n.workflowId===e&&(n.job.stop(),this.jobs.delete(t))}stopJob(e){let t=this.jobs.get(e);t&&(t.job.stop(),this.jobs.delete(e))}stopAllJobs(){for(let e of this.jobs.values())e.job.stop();this.jobs.clear()}fireTrigger(e,t){this.bus.request(D.start,{workflowId:e,triggerPayload:{firedAt:Date.now(),triggerIndex:t}}).catch(n=>{console.error(`[CronTriggerEvaluator] Failed to start workflow "${e}" for cron trigger index ${t}:`,n)})}},kn=class extends me{workflowExecutor;busEventTriggerEvaluator;cronTriggerEvaluator;constructor(e,t){super(e),this.workflowExecutor=new un(e,t?.executorConfig,t?.workflowRunner),this.busEventTriggerEvaluator=new mn(e),this.cronTriggerEvaluator=new On(e)}get executor(){return this.workflowExecutor}get cronTriggers(){return this.cronTriggerEvaluator}setTriggerTypeRegistry(e){this.workflowExecutor.setTriggerTypeRegistry(e)}getTriggerTypeRegistry(){return this.workflowExecutor.getTriggerTypeRegistry()}async onInit(){this.addCleanup(()=>this.destroyOwnedServices()),await this.workflowExecutor.init(),await this.busEventTriggerEvaluator.init(),await this.cronTriggerEvaluator.init()}async destroyOwnedServices(){let e=[];for(let t of[()=>this.cronTriggerEvaluator.destroy(),()=>this.busEventTriggerEvaluator.destroy(),()=>this.workflowExecutor.destroy()])try{await t()}catch(t){e.push(t)}if(e.length===1)throw e[0];if(e.length>1)throw AggregateError(e,`Workflow engine service teardown failed`)}};const An=pe(`makaio.workflow-engine`);function jn(e){return{name:An.name,displayName:`Workflow Engine`,version:`0.1.0`,dependencies:[fe(Ce.name)],critical:!0,namespaces:[le,c],storage:{registerHandlers:be(q)},create:t=>new kn(t.bus,e)}}const Mn=jn();export{un as a,kn as i,jn as n,q as o,Mn as r,An as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{SessionStorageSubjects as e}from"./services/session/storage/namespace.mjs";import{ExecutionTargetSubjects as t}from"./services/execution-target/namespace.mjs";import{MakaioBus as n}from"@makaio/framework/bus";import{AdapterSubjects as r,DEFAULT_CONSTRAINTS as i,SessionSubjects as a,SpawnSubagentRpcRequestSchema as o,SubagentConfigSchema as s,SubagentError as c,SubagentErrorCode as l,SubagentSubjects as u,dep as d,extensionToken as f}from"@makaio/framework/contracts";import{BaseService as p}from"@makaio/framework/service-base";import{AdapterRuntimeSubjects as m}from"@makaio/framework/services/adapter-runtime";import{activateProviderContext as h,buildProviderContext as g}from"@makaio/framework/services/provider-context";function _(e,t){return`${e}:${t}`}function v(e,t){return e?.authenticated!==!0||!e.id?!1:e.kind===`workflow-execution`?!0:t.size===0?!1:t.has(_(e.kind,e.id))}var y=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 b=[`completed`,`failed`,`cancelled`];function x(e){return b.includes(e)}var S=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 y(50),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(),n.status===`spawning`&&(n.status=`running`))}get(e){return this.subagents.get(e)}getAllNonTerminal(){let e=[];for(let t of this.subagents.values())x(t.status)||e.push(t);return e}countActiveBySession(e){let t=0;for(let n of this.subagents.values())n.parentSessionId===e&&!x(n.status)&&t++;return t}countTotalActive(){let e=0;for(let t of this.subagents.values())x(t.status)||e++;return e}updateStatus(e,t){let n=this.subagents.get(e);if(!n)return;let r=Date.now();n.status=t,n.lastActivityAt=r,x(t)&&(n.endTime=r)}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 c(l.NOT_FOUND,`Subagent ${e} not found`);if(n.pendingRequest)throw new c(l.REQUEST_PENDING,`Cannot call request_input while another request 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){let r=this.subagents.get(e);if(!r)throw new c(l.NOT_FOUND,`Subagent ${e} not found`);if(x(r.status))throw new c(l.ALREADY_TERMINAL,`Subagent already in terminal state: ${r.status}`);let i=Date.now();r.status=`completed`,r.result=t,r.summary=n,r.endTime=i,r.lastActivityAt=i,this.resolveAwaiters(e)}markFailed(e,t){let n=this.subagents.get(e);if(!n||x(n.status))return;let r=Date.now();n.status=`failed`,n.error=t,n.endTime=r,n.lastActivityAt=r,this.resolveAwaiters(e)}markCancelled(e){let t=this.subagents.get(e);if(!t||x(t.status))return!1;let n=Date.now();return t.status=`cancelled`,t.endTime=n,t.lastActivityAt=n,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};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)x(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())x(r.status)||r.status!==`waiting_input`&&r.status!==`hung`&&t-r.lastActivityAt>=e&&(r.status=`hung`,r.lastActivityAt=t,n++);return n}};async function C(e,t,n){let r=n?.trim();if(r)return r;let{session:i}=await e.request(a.get,{sessionId:t});return(i?.agents.find(e=>e.agentId===i.leadAgentId)??i?.agents[0])?.adapterName?.trim()}function w(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}}async function T(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 c(l.DEPTH_EXCEEDED,`Maximum subagent depth (${s}) exceeded`);if(e.manager.countActiveBySession(n)>=o.maxConcurrentPerSession)throw new c(l.SESSION_LIMIT,`Maximum concurrent subagents per session (${o.maxConcurrentPerSession}) reached`);if(e.manager.countTotalActive()>=o.maxTotalActive)throw new c(l.GLOBAL_LIMIT,`Maximum total active subagents (${o.maxTotalActive}) reached`);let d=await C(e.bus,n,r.adapterName);if(!d)throw new c(l.ADAPTER_NOT_ALLOWED,`adapterName is required for subagent spawn when parent session has no inheritable adapter`);if(o.allowedAdapters.length>0&&!o.allowedAdapters.includes(d))throw new c(l.ADAPTER_NOT_ALLOWED,`Adapter '${d}' is not allowed`);if(r.model&&o.allowedModels.length>0&&!o.allowedModels.includes(r.model))throw new c(l.MODEL_NOT_ALLOWED,`Model '${r.model}' is not allowed`);let f={...r,adapterName:d},p=crypto.randomUUID();return e.manager.track({subagentId:p,parentSessionId:n,config:f,depth:i}),await e.bus.emit(u.spawned,{subagentId:p,parentSessionId:n,task:f.task,config:f,depth:i,...a!==void 0&&{spawningToolCallId:a}}),{subagentId:p,status:`spawning`}}async function E(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};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}))};e.manager.addAwaiter(n,o),a>0&&(i=setTimeout(()=>{r||(r=!0,e.manager.removeAwaiter(n,o),t({status:`timeout`}))},a))})}async function D(e,t){let{subagentId:n,content:r,inResponseTo:i}=t,a=e.manager.get(n);if(!a)throw Error(`Subagent not found: ${n}`);let o=!1;return i&&a.pendingRequest?.messageId===i&&(e.manager.resolvePendingRequest(n,r),o=!0),await e.bus.emit(u.toChild,{subagentId:n,messageId:crypto.randomUUID(),content:r,inResponseTo:i}),{sent:!0,resolvedPending:o}}async function O(e,t){let{subagentId:n,reason:r}=t,i=e.manager.markCancelled(n);return i&&await e.bus.emit(u.cancelled,{subagentId:n,reason:r??`Killed by parent`}),{killed:i}}async function k(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(u.toParent,{subagentId:n,messageId:crypto.randomUUID(),type:`progress`,content:a}),{reported:!0}}async function A(e,t){let{subagentId:n,question:r,context:i,timeoutMs:a}=t;if(!e.manager.get(n))throw Error(`Subagent not found: ${n}`);let o=crypto.randomUUID(),s=a??e.manager.constraints.defaultRequestTimeoutMs;return await e.bus.emit(u.toParent,{subagentId:n,messageId:o,type:`request_input`,content:r,context:i}),new Promise(t=>{let a=!1,c;e.manager.setPendingRequest(n,{messageId:o,question:r,context:i,resolver:e=>{a||(a=!0,c&&clearTimeout(c),t(e===null?{responded:!1,timedOut:!0}:{responded:!0,response:e,timedOut:!1}))}}),s>0&&(c=setTimeout(()=>{a||e.manager.resolvePendingRequest(n,null)},s))})}async function j(e,t){let{subagentId:n,result:r,summary:i}=t;return e.manager.markCompleted(n,r,i),await e.bus.emit(u.completed,{subagentId:n,success:!0,result:i?`${i}\n\n${r}`:r}),{completed:!0}}function M(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}))}}const N={id:`system:local`,name:`Local`,description:`Default local process execution`,type:`local`,scope:`default`,enabled:!0,createdAt:Date.now(),updatedAt:Date.now()};var P=class extends p{machineId;delegationAllowSet;manager;pendingChildSessionClose=new Set;constructor(e=n,t=i,r,a=new Set){super(e),this.machineId=r,this.delegationAllowSet=a,this.manager=new S(t)}grantDelegation(e,t){this.delegationAllowSet.add(`${e}:${t}`)}revokeDelegation(e,t){this.delegationAllowSet.delete(`${e}:${t}`)}onInit(){this.registerHandler(u.spawned,async e=>{this.handleSpawned(e.payload).catch(e=>{console.error(`[SubagentService] handleSpawned error:`,e)})}),this.registerHandler(u.execute,async e=>{if(!this.isRemoteDelegationAllowed(e))return;let t=await this.handleExecute(e.payload);e.setResult(t)}),this.registerHandler(u.toChild,async e=>{await this.handleToChild(e.payload)}),this.registerHandler(u.completed,async e=>{await this.handleCompleted(e.payload.subagentId)}),this.registerHandler(u.cancelled,async e=>{await this.handleCancelled(e.payload.subagentId)}),this.registerHandler(r.session.closed,e=>{this.handleAdapterSessionClosed(e.payload.sessionId)}),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};this.registerHandler(u.getStatus,t=>{let n=w(e,t.payload);t.setResult(n)}),this.registerHandler(u.spawn,async t=>{if(!this.isRemoteDelegationAllowed(t))return;let n=await T(e,o.parse(t.payload));t.setResult(n)}),this.registerHandler(u.await,async t=>{let n=await E(e,t.payload);t.setResult(n)}),this.registerHandler(u.send,async t=>{let n=await D(e,t.payload);t.setResult(n)}),this.registerHandler(u.kill,async t=>{let n=await O(e,t.payload);t.setResult(n)}),this.registerHandler(u.reportProgress,async t=>{let n=await k(e,t.payload);t.setResult(n)}),this.registerHandler(u.requestInput,async t=>{let n=await A(e,t.payload);t.setResult(n)}),this.registerHandler(u.completeTask,async t=>{let n=await j(e,t.payload);t.setResult(n)}),this.registerHandler(u.listBySession,t=>{let n=M(e,t.payload);t.setResult(n)})}onDestroy(){this.pendingChildSessionClose.clear()}async handleSpawned(e){let{subagentId:n,parentSessionId:r,task:i,spawningToolCallId:a}=e,o=s.parse({...e.config,task:i}),c=o.adapterName?.trim();if(!c)return this.failSpawn(n,r,`adapter_start`,`Subagent spawn requires a non-empty adapterName`);this.manager.get(n)||this.manager.track({subagentId:n,parentSessionId:r,config:o,depth:e.depth??1});let l,u;try{u=await this.buildExecutionTargetResolutionParams(r,o.executionTargetId);let e=await this.bus.requestOptional(t.resolve,u),i;if(e.handled)i=e.data.executionTarget;else if(u.executionTargetId!=null)throw Error(`Execution target resolver unavailable for explicit target '${u.executionTargetId}'`);else i=N;if(i.type!==`local`)return this.failSpawn(n,r,`adapter_start`,`Execution target type '${i.type}' is not yet supported for subagents`);l=u.executionTargetId??void 0}catch(e){return this.failSpawn(n,r,`adapter_start`,e)}let d;try{d=await this.createChildSessionForSpawn(n,r,o,l,u,a)}catch(e){return this.failSpawn(n,r,`session_create`,e)}let f=this.manager.get(n);if(!(f&&this.isTerminalSubagentStatus(f.status)))try{await this.startAdapterForSubagent(c,o,d,i)}catch(e){return this.failSpawn(n,r,`adapter_start`,e)}}async createChildSessionForSpawn(e,t,n,r,i,o){let{sessionId:s}=await this.bus.request(a.create,this.buildChildSessionCreatePayload(t,n,r,o));return this.manager.setChildSessionId(e,s),this.pendingChildSessionClose.has(e)&&await this.closeChildSession(e),s}async startAdapterForSubagent(e,t,n,i){let{adapterId:a}=await this.bus.request(m.resolveId,{adapterName:e,...this.machineId!==void 0&&{machineId:this.machineId}}),o=t.providerContext??(t.providerConfigId?await g(this.bus,t.providerConfigId):void 0);o!==void 0&&await h(this.bus,o);let s=await this.bus.request(r.startAgent,{adapterId:a,role:`lead`,...o!==void 0&&{providerContext:o},sessionId:n,initialMessage:i,model:t.model,systemPrompt:t.systemPrompt,responseSchema:t.responseSchema,allowedTools:t.tools,disallowedTools:t.disallowedTools,allowedDirectories:t.allowedDirectories,...t.harnessId!==void 0&&{harnessId:t.harnessId}});if(!s||s.success!==!0)throw Error(s?.message??`Adapter start failed`)}async failSpawn(e,t,n,r){let i=r instanceof Error?r.message:String(r);return this.manager.markFailed(e,i),await this.emitExecutionFailed(e,t,n,r),i}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{executionTargetId:r.executionTargetId}}buildChildSessionCreatePayload(e,t,n,r){return{branchKind:`subagent`,parentSessionId:e,contextInheritance:t.contextMode===`fork`?`parent-history`:`none`,...n!==void 0&&{executionTargetId:n},...r!==void 0&&{spawningToolCallId:r}}}async handleExecute(e){let t=s.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(a.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){let t=this.manager.get(e);if(t){if(!t.childSessionId){this.pendingChildSessionClose.add(e);return}this.pendingChildSessionClose.delete(e);try{await this.bus.request(a.close,{sessionId:t.childSessionId})}catch(t){console.error(`[SubagentService] Failed to close child session for subagent ${e}:`,t)}}}isTerminalSubagentStatus(e){return 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}}isRemoteDelegationAllowed(e){return e.origin.local||v(e.transport?.peer,this.delegationAllowSet)}async emitExecutionFailed(e,t,n,r){let i=r instanceof Error?r.message:String(r);await this.bus.emit(u.executionFailed,{subagentId:e,parentSessionId:t,phase:n,error:i}).catch(e=>{console.error(`[SubagentService] Failed to emit executionFailed:`,e)})}};const F=f(`subagent-service`),I={name:F.name,displayName:`Subagent Service`,version:`0.1.0`,critical:!0,surface:`headless`,dependencies:[d(`session`)],create:e=>new P(e.bus,i,e.machineId)};export{v as a,S as i,I as n,P as r,F as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./chunk-DTipWd-i.mjs";import{t}from"./ajv-0JG5NFEd.mjs";import{z as n}from"zod";import{execFile as r}from"node:child_process";import{isAbsolute as i,relative as a,resolve as o}from"node:path";import{realpathSync as s}from"node:fs";import{localSubject as c}from"@makaio/framework/core";import{NoHandlerError as l}from"@makaio/framework/bus";import{ArtifactSubjects as u,ExecutionLinkSchema as d,ExecutionListQuerySchema as f,ExecutionStatusSchema as p,SpanRecordSchema as m,SubagentSubjects as h,WorkflowDefinitionSchema as g,WorkflowExecutionSchema as _,WorkflowFrameStateSchema as v,WorkflowGateInstanceSchema as y,WorkflowListQuerySchema as ee,WorkflowRunContextSchema as b,WorkflowSchemas as te,WorkflowSubjects as ne,WorkflowSubjects as x,createStepCancelSubject as re}from"@makaio/framework/contracts";import{index as S,integer as C,primaryKey as ie,real as w,sqliteTable as T,text as E,uniqueIndex as ae}from"drizzle-orm/sqlite-core";import{sql as oe}from"drizzle-orm";import{createStorageNamespaceDefinition as se}from"@makaio/framework/storage";import{evaluateSync as D,resolveTemplate as O}from"@makaio/framework/expression";import*as ce from"node:os";function le(){return{scopeType:E(`scope_type`,{enum:[`global`,`workspace`,`session`,`external`]}).notNull().$type(),scopeKind:E(`scope_kind`).notNull().default(``),scopeId:E(`scope_id`).notNull().default(``)}}const ue=T(`workflow_definitions`,{id:E(`id`).primaryKey(),name:E(`name`).notNull(),description:E(`description`),root:E(`root`,{mode:`json`}).$type().notNull(),inputSchema:E(`input_schema`,{mode:`json`}).$type(),configSchema:E(`config_schema`,{mode:`json`}).$type(),outputSchema:E(`output_schema`,{mode:`json`}).$type(),artifact:E(`artifact`,{mode:`json`}).$type(),triggers:E(`triggers`,{mode:`json`}).$type(),...le(),createdAt:C(`created_at`).notNull(),updatedAt:C(`updated_at`).notNull(),canvasLayout:E(`canvas_layout`,{mode:`json`}).$type(),source:E(`source`,{mode:`json`}).$type(),executionHints:E(`execution_hints`,{mode:`json`}).$type()},e=>[ae(`uniq_workflow_definitions_name_scope`).on(e.name,e.scopeType,e.scopeKind,e.scopeId),S(`idx_workflow_definitions_scope`).on(e.scopeType,e.scopeKind,e.scopeId)]),k=T(`workflow_executions`,{id:E(`id`).primaryKey(),workflowId:E(`workflow_id`).notNull(),coordinatorSessionId:E(`coordinator_session_id`),status:E(`status`,{enum:[`pending`,`running`,`paused`,`completed`,`failed`,`cancelled`]}).notNull(),inputs:E(`inputs`,{mode:`json`}).$type(),error:E(`error`),reason:E(`reason`),startedAt:C(`started_at`).notNull(),completedAt:C(`completed_at`),triggerPayload:E(`trigger_payload`,{mode:`json`}).$type(),...le()},e=>[S(`idx_workflow_executions_status`).on(e.status),S(`idx_workflow_executions_scope_started`).on(e.scopeType,e.scopeKind,e.scopeId,e.startedAt),S(`idx_workflow_executions_workflow_started`).on(e.workflowId,e.startedAt)]),de=T(`workflow_execution_frames`,{frameId:E(`frame_id`).primaryKey(),executionId:E(`execution_id`).notNull().references(()=>k.id,{onDelete:`cascade`}),nodeId:E(`node_id`).notNull(),nodeType:E(`node_type`).notNull().$type(),path:E(`path`,{mode:`json`}).$type().notNull(),parentFrameId:E(`parent_frame_id`),status:E(`status`).notNull().default(`pending`).$type(),attempt:C(`attempt`).notNull().default(0),iteration:C(`iteration`),branchKey:E(`branch_key`),output:E(`output`,{mode:`json`}).$type(),outputPresent:C(`output_present`,{mode:`boolean`}).notNull().default(!1),error:E(`error`),startedAt:C(`started_at`),completedAt:C(`completed_at`)},e=>[S(`idx_workflow_execution_frames_execution`).on(e.executionId),S(`idx_workflow_execution_frames_parent`).on(e.parentFrameId)]),fe=T(`workflow_gate_instances`,{id:E(`id`).primaryKey(),executionId:E(`execution_id`).notNull().references(()=>k.id,{onDelete:`cascade`}),nodeId:E(`node_id`).notNull(),frameId:E(`frame_id`).notNull(),schema:E(`schema`,{mode:`json`}).$type().notNull(),prompt:E(`prompt`),status:E(`status`).notNull().default(`waiting`).$type(),autoAction:E(`auto_action`,{enum:[`approve`,`reject`]}).notNull().default(`reject`),timeoutMs:C(`timeout_ms`),resumeData:E(`resume_data`,{mode:`json`}).$type(),resumeDataPresent:C(`resume_data_present`,{mode:`boolean`}).notNull().default(!1),createdAt:C(`created_at`).notNull(),resolvedAt:C(`resolved_at`)},e=>[S(`idx_workflow_gate_instances_execution`).on(e.executionId),S(`idx_workflow_gate_instances_frame`).on(e.frameId)]),pe=T(`workflow_step_spans`,{executionId:E(`execution_id`).notNull().references(()=>k.id,{onDelete:`cascade`}),frameId:E(`frame_id`).notNull(),stepId:E(`step_id`).notNull(),stepType:E(`step_type`).notNull(),status:E(`status`).$type().notNull(),startedAt:C(`started_at`),completedAt:C(`completed_at`),durationMs:C(`duration_ms`),inputTokens:C(`input_tokens`),outputTokens:C(`output_tokens`),estimatedCost:w(`estimated_cost`),toolCallCount:C(`tool_call_count`),input:E(`input`),output:E(`output`)},e=>[ie({columns:[e.executionId,e.frameId]}),S(`idx_workflow_step_spans_status`).on(e.status)]),me=T(`workflow_execution_links`,{sourceExecutionId:E(`source_execution_id`).notNull().references(()=>k.id,{onDelete:`cascade`}),targetExecutionId:E(`target_execution_id`).notNull().references(()=>k.id,{onDelete:`cascade`}),linkType:E(`link_type`).$type().notNull(),metadata:E(`metadata`,{mode:`json`}).$type()},e=>[ie({columns:[e.sourceExecutionId,e.targetExecutionId]}),S(`idx_workflow_execution_links_target`).on(e.targetExecutionId)]),he=T(`workflow_run_contexts`,{executionId:E(`execution_id`).primaryKey(),workflowId:E(`workflow_id`).notNull(),coordinatorSessionId:E(`coordinator_session_id`).notNull(),sourceKind:E(`source_kind`).notNull(),sourcePath:E(`source_path`),sourceFilename:E(`source_filename`),sourceCode:E(`source_code`),definitionSnapshot:E(`definition_snapshot`,{mode:`json`}).$type(),workerManifest:E(`worker_manifest`,{mode:`json`}).$type().notNull(),inputs:E(`inputs`,{mode:`json`}).$type(),config:E(`config`,{mode:`json`}).$type().notNull().default(oe`'{}'`),triggerPayload:E(`trigger_payload`,{mode:`json`}).$type().notNull(),artifactRef:E(`artifact_ref`,{mode:`json`}).$type(),executionHints:E(`execution_hints`,{mode:`json`}).$type(),dispatchMetadata:E(`dispatch_metadata`,{mode:`json`}).$type(),scopeType:E(`scope_type`,{enum:[`global`,`workspace`,`session`,`external`]}).notNull().default(`global`).$type(),scopeKind:E(`scope_kind`).notNull().default(``),scopeId:E(`scope_id`).notNull().default(``),cancelSubject:E(`cancel_subject`).notNull(),context:E(`context`,{mode:`json`}).$type().notNull(),env:E(`env`,{mode:`json`}).$type().notNull(),createdAt:C(`created_at`).notNull(),suspensionStrategy:E(`suspension_strategy`).$type()},e=>[S(`idx_run_contexts_workflow`).on(e.workflowId)]),ge=T(`worklog_summaries`,{executionId:E(`execution_id`).primaryKey(),workflowId:E(`workflow_id`).notNull(),workflowName:E(`workflow_name`),status:E(`status`,{enum:[`pending`,`running`,`paused`,`completed`,`failed`,`cancelled`]}).notNull(),startedAt:C(`started_at`).notNull(),completedAt:C(`completed_at`),durationMs:C(`duration_ms`),totalInputTokens:C(`total_input_tokens`),totalOutputTokens:C(`total_output_tokens`),totalEstimatedCost:w(`total_estimated_cost`),error:E(`error`),failedNodeId:E(`failed_node_id`)},e=>[S(`idx_worklog_summaries_workflow_started`).on(e.workflowId,e.startedAt),S(`idx_worklog_summaries_status`).on(e.status)]),_e=T(`worklog_frame_entries`,{frameId:E(`frame_id`).primaryKey(),executionId:E(`execution_id`).notNull().references(()=>k.id,{onDelete:`cascade`}),nodeId:E(`node_id`).notNull(),nodeType:E(`node_type`).notNull().$type(),path:E(`path`,{mode:`json`}).$type().notNull(),status:E(`status`,{enum:[`pending`,`running`,`waiting`,`completed`,`failed`,`skipped`,`cancelled`]}).notNull(),attempt:C(`attempt`).notNull().default(0),iteration:C(`iteration`),branchKey:E(`branch_key`),startedAt:C(`started_at`),completedAt:C(`completed_at`),durationMs:C(`duration_ms`),inputTokens:C(`input_tokens`),outputTokens:C(`output_tokens`),estimatedCost:w(`estimated_cost`),error:E(`error`)},e=>[S(`idx_worklog_frame_entries_execution`).on(e.executionId)]),ve=T(`worklog_artifact_writes`,{id:E(`id`).primaryKey(),executionId:E(`execution_id`).notNull().references(()=>k.id,{onDelete:`cascade`}),frameId:E(`frame_id`).notNull(),nodeId:E(`node_id`).notNull(),artifact:E(`artifact`,{mode:`json`}).$type().notNull(),revision:E(`revision`),writtenAt:C(`written_at`).notNull()},e=>[S(`idx_worklog_artifact_writes_execution`).on(e.executionId)]),ye=T(`worklog_gate_events`,{id:E(`id`).primaryKey(),executionId:E(`execution_id`).notNull().references(()=>k.id,{onDelete:`cascade`}),nodeId:E(`node_id`).notNull(),frameId:E(`frame_id`).notNull(),status:E(`status`,{enum:[`waiting`,`resumed`,`rejected`,`timed-out`,`cancelled`]}).notNull().$type(),prompt:E(`prompt`),openedAt:C(`opened_at`).notNull(),resolvedAt:C(`resolved_at`),resumeData:E(`resume_data`,{mode:`json`}).$type()},e=>[S(`idx_worklog_gate_events_execution`).on(e.executionId),S(`idx_worklog_gate_events_status`).on(e.status)]),be=n.object({sourceExecutionId:n.string().min(1).optional(),targetExecutionId:n.string().min(1).optional()}).refine(e=>e.sourceExecutionId!==void 0||e.targetExecutionId!==void 0,{message:`Either sourceExecutionId or targetExecutionId is required.`}),xe=n.object({executionId:n.string().min(1),status:p.optional(),error:n.string().nullable().optional(),reason:n.string().nullable().optional(),completedAt:n.number().nullable().optional()}),Se=se(`workflow`,{schemas:{get:{request:n.object({id:n.string()}),response:n.object({workflow:g.nullable()})},set:{request:n.object({workflow:g}),response:n.object({id:n.string()})},delete:{request:n.object({id:n.string()}),response:n.object({deleted:n.boolean()})},list:{request:ee,response:n.object({workflows:n.array(g)})},getExecution:{request:n.object({executionId:n.string()}),response:n.object({execution:_.nullable()})},setExecution:{request:n.object({execution:_}),response:n.object({id:n.string()})},setExecutionStart:{request:n.object({execution:_,runContext:b}),response:n.object({id:n.string(),executionId:n.string()})},updateExecution:{request:xe,response:n.object({success:n.boolean()})},cancelPausedExecution:{request:n.object({executionId:n.string().min(1),completedAt:n.number(),reason:n.string().optional()}),response:n.object({cancelled:n.boolean(),gates:n.array(y.extend({status:n.literal(`cancelled`)}))})},listExecutions:{request:f,response:n.object({executions:n.array(_)})},setFrame:{request:n.object({executionId:n.string().min(1),frame:v}),response:n.object({frameId:n.string()})},getFrame:{request:n.object({frameId:n.string().min(1)}),response:n.object({frame:v.nullable()})},listFrames:{request:n.object({executionId:n.string().min(1)}),response:n.object({frames:n.array(v)})},setGateInstance:{request:n.object({gate:y}),response:n.object({id:n.string()})},resolveWaitingGateInstance:{request:n.object({gate:y.extend({status:n.enum([`resumed`,`rejected`])})}),response:n.object({accepted:n.boolean()})},restorePausedGateResumeState:{request:n.object({execution:_.extend({status:n.literal(`paused`)}),gate:y.extend({status:n.literal(`waiting`)})}),response:n.object({executionId:n.string(),gateId:n.string()})},getGateInstance:{request:n.object({executionId:n.string().min(1),nodeId:n.string().min(1),frameId:n.string().min(1).optional()}),response:n.object({gate:y.nullable()})},listGateInstances:{request:n.object({executionId:n.string().min(1)}),response:n.object({gates:n.array(y)})},listPausedGateTimeouts:c({request:n.object({}),response:n.object({gates:n.array(y)})}),setSpan:{request:n.object({span:m}),response:n.object({id:n.string()})},listSpans:{request:n.object({executionId:n.string()}),response:n.object({spans:n.array(m)})},setExecutionLink:{request:n.object({link:d}),response:n.object({id:n.string()})},listExecutionLinks:{request:be,response:n.object({links:n.array(d)})},setRunContext:c({request:n.object({runContext:b}),response:n.object({executionId:n.string()})}),getRunContext:c({request:n.object({executionId:n.string().min(1)}),response:n.object({runContext:b.nullable()})})},extensions:{drizzle:{workflowDefinitions:ue,workflowExecutions:k,workflowExecutionFrames:de,workflowGateInstances:fe,workflowStepSpans:pe,workflowExecutionLinks:me,workflowRunContexts:he,worklogSummaries:ge,worklogFrameEntries:_e,worklogArtifactWrites:ve,worklogGateEvents:ye}}}),A=Se.subjects,Ce={stepTimeoutMs:300*1e3,stepCooldownMs:500,busAuth:{kind:`none`},platformDefaults:{cwd:process.cwd()},cancelTimeoutMs:1e4};async function j(e,t,n){if(!(await e.request(A.updateExecution,{executionId:t.id,status:n.status,error:n.error,reason:n.reason,completedAt:n.completedAt})).success)throw Error(`Workflow execution not found: ${t.id}`)}async function we(e,t,n,r){t.status=`completed`,t.completedAt=Date.now();try{await j(e.bus,t,{status:t.status,completedAt:t.completedAt}),await e.bus.emit(x.execution.completed,{executionId:n,workflowId:t.workflowId,totalDuration:t.completedAt-r,completedAt:t.completedAt})}finally{e.activeExecutions.delete(n)}}async function Te(e,t,n,r,i){t.status=`failed`,t.error=r,t.completedAt=Date.now();try{await j(e.bus,t,{status:t.status,error:t.error,completedAt:t.completedAt});try{await i?.()}catch(e){console.error(`[WorkflowFinalizer] Failed to run failure pre-emit hook:`,e)}await e.bus.emit(x.execution.failed,{executionId:n,workflowId:t.workflowId,error:r,completedAt:t.completedAt})}finally{e.activeExecutions.delete(n)}}function Ee(e,t,n){let{activeRunnerSteps:r,bus:i}=e,a=`${t}:`;for(let[e,o]of r){if(!e.startsWith(a))continue;let r=e.slice(a.length);o.controller.abort(),i.emit(re(o.cancelSubject),{executionId:t,stepId:r,reason:n}).catch(t=>{console.error(`[WorkflowFinalizer] Failed to emit cancellation for ${e}:`,t)})}}async function De(e,t,n){let r=await e.bus.request(A.getExecution,{executionId:t});if(r.execution==null)return!1;let i=r.execution.workflowId;if(i===void 0)throw Error(`Paused execution ${t} is missing stored workflowId`);let a=Date.now(),{cancelled:o,gates:s}=await e.bus.request(A.cancelPausedExecution,{executionId:t,completedAt:a,reason:n});if(!o)return!1;for(let n of s)await e.bus.emit(x.gate.resolved,{executionId:t,stepId:n.nodeId,stepType:`gate`,frameId:n.frameId,source:`cancelled`}).catch(e=>{console.error(`[WorkflowFinalizer] Failed to emit cancelled gate resolution for ${n.frameId}:`,e)});return await e.bus.emit(x.execution.cancelled,{executionId:t,workflowId:i,reason:n,completedAt:a}),e.activeExecutions.delete(t),!0}async function Oe(e,t,n){let r=e.activeExecutions.get(t);if(!r||r.execution.status!==`running`)return De(e,t,n);let{execution:i}=r;i.status=`cancelled`,i.reason=n,i.completedAt=Date.now();try{for(let[n,r]of e.shellAbortControllers)n.startsWith(`${t}:`)&&(r.abort(),e.shellAbortControllers.delete(n));Ee(e,t,n),await j(e.bus,i,{status:i.status,reason:n,completedAt:i.completedAt}),await e.bus.emit(x.execution.cancelled,{executionId:t,workflowId:i.workflowId,reason:n,completedAt:i.completedAt})}finally{e.activeExecutions.delete(t)}return!0}function ke(e){return`${e}-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`}function Ae(e,t,n){let r=e?O(e,n):t,c=o(t),l=o(i(r)?r:o(t,r)),u,d;try{u=s(c),d=s(l)}catch{return null}let f=a(process.platform===`win32`?u.toLowerCase():u,process.platform===`win32`?d.toLowerCase():d);return f===``||!f.startsWith(`..`)&&!i(f)?d:null}function je(e){return e instanceof Error&&(`code`in e||`killed`in e)}function Me(e){let t=e[0];return t===void 0||t.trim()===``?null:t}function Ne(e){let{command:t,cwd:n,env:i,timeoutMs:a,signal:o}=e,s=Me(t);if(s===null)return Promise.reject(Error(`Shell step command is empty`));let c=t.slice(1);return new Promise((e,t)=>{let l=null,u=!1,d=r(s,c,{cwd:n,env:{...process.env,...i},timeout:0,maxBuffer:10*1024*1024,shell:!1},(n,r,i)=>{n?t(Object.assign(n,{stdout:r,stderr:i,aborted:u})):e({stdout:r,stderr:i})}),f=()=>{d.exitCode===null&&(d.kill(`SIGTERM`),l=setTimeout(()=>{d.exitCode===null&&d.kill(`SIGKILL`)},5e3))},p=setTimeout(()=>{f()},a);if(d.on(`close`,()=>{clearTimeout(p),l!==null&&clearTimeout(l)}),o){let e=()=>{u=!0,f()};o.aborted?e():(o.addEventListener(`abort`,e,{once:!0}),d.on(`close`,()=>o.removeEventListener(`abort`,e)))}})}async function Pe(e){let{step:t,workspaceRoot:n,expressionContext:r,signal:i}=e,a=Ae(t.cwd,n,r);if(a===null)return{status:`failed`,error:`Shell step cwd '${t.cwd}' is outside workspace root '${n}'`};let o=t.command.map(e=>O(e,r));if(Me(o)===null)return{status:`failed`,error:`Shell step command is empty`};let s=Object.fromEntries(Object.entries(t.env??{}).map(([e,t])=>[e,O(t,r)])),c=t.timeoutMs??3e5;try{let{stdout:e}=await Ne({command:o,cwd:a,env:s,timeoutMs:c,signal:i});return{status:`completed`,stdout:e}}catch(e){if(!je(e))return{status:`failed`,error:String(e)};let t=e.aborted===!0,n=!t&&(e.killed===!0||e.signal!=null);return{status:`failed`,error:t?`Command cancelled`:n?`Command timed out after ${c}ms`:e.stderr?.trim()||e.stdout?.trim()||e.message}}}function Fe(e){let t={};for(let[n,r]of Object.entries(e))r.status===`completed`?t[n]={status:`completed`,output:r.output}:r.status===`skipped`&&(t[n]={status:`skipped`});return t}function M(e){let t={...e,input:e.inputs,steps:e.frames};return{...t,ctx:t}}function Ie(){return{context:{repoPath:process.cwd(),makaioHome:process.env.MAKAIO_HOME??`${ce.homedir()}/.makaio`,os:process.platform===`win32`?`win32`:process.platform===`darwin`?`darwin`:`linux`,arch:process.arch},env:{}}}function Le(e){return{...e,path:[...e.path]}}function Re(e){if(e===`station`||e===`delegate-agent`||e===`delegate-role`||e===`gate`)return e}function ze(e,t){let n=Re(t.nodeType);if(n===void 0||t.status!==`running`&&t.status!==`completed`&&t.status!==`failed`&&t.status!==`skipped`)return;let r=t.startedAt!==void 0&&t.completedAt!==void 0?Math.max(0,t.completedAt-t.startedAt):void 0;return{executionId:e,frameId:t.frameId,stepId:t.nodeId,stepType:n,status:t.status,...t.startedAt===void 0?{}:{startedAt:t.startedAt},...t.completedAt===void 0?{}:{completedAt:t.completedAt},...r===void 0?{}:{durationMs:r},...t.output===void 0?{}:{output:JSON.stringify(t.output)}}}var Be=class e{executionId;workflowId;definition;execution;runtimeHandlers;bus;signal;frameRegistry;framePersistenceTasks=new Map;artifactBinding;constructor(e,t,n,r,i,a,o,s,c,l=Ie(),u={}){this.executionId=e,this.workflowId=t,this.definition=n,this.execution=r,this.runtimeHandlers=i,this.bus=a,this.signal=o,this.frameRegistry=s??new Map,this.artifactBinding=c,this.platformContext=l.context,this.env=l.env,this.suspensionStrategy=u.suspensionStrategy??`wait-in-process`,this.resumeFrames=u.resumeFrames}platformContext;env;suspensionStrategy;resumeFrames;withSignal(t){return new e(this.executionId,this.workflowId,this.definition,this.execution,this.runtimeHandlers,this.bus,t,this.frameRegistry,this.artifactBinding,{context:this.platformContext,env:this.env},{suspensionStrategy:this.suspensionStrategy,resumeFrames:this.resumeFrames})}buildExpressionContext(){return{inputs:this.execution.inputs,config:this.execution.config??{},trigger:this.execution.triggerPayload??{},frames:{},previousSteps:{}}}createFrame(e){let t=ke(`frm`),n=[...e.path,t],r={frameId:t,nodeId:e.nodeId,nodeType:e.nodeType,path:n,parentFrameId:e.parentFrameId,status:`pending`,attempt:0,iteration:e.iteration,branchKey:e.branchKey};return this.frameRegistry.set(t,r),this.persistFrame(r).catch(()=>void 0),r}async persistFrame(e,t={}){let n=t.requireFrameStorage===!0||this.suspensionStrategy!==`wait-in-process`,r=Le(e),i=ze(this.executionId,r),a=(this.framePersistenceTasks.get(e.frameId)??Promise.resolve()).catch(()=>void 0).then(async()=>{n?await this.bus.request(A.setFrame,{executionId:this.executionId,frame:r}):await this.bus.requestOptional(A.setFrame,{executionId:this.executionId,frame:r}),i!==void 0&&await this.bus.requestOptional(A.setSpan,{span:i})}).catch(t=>{if(n)throw t;console.warn(`[RuntimeContext] Failed to persist frame ${e.frameId}:`,t)});this.framePersistenceTasks.set(e.frameId,a);try{await a}finally{this.framePersistenceTasks.get(e.frameId)===a&&this.framePersistenceTasks.delete(e.frameId)}}async updateFrame(e,t,n={}){let r=this.frameRegistry.get(e);if(!r)throw Error(`Frame not found: ${e}`);Object.assign(r,t),await this.persistFrame(r,n)}getFrame(e){return this.frameRegistry.get(e)}getFramesByNodeId(e){let t=[];for(let n of this.frameRegistry.values())n.nodeId===e&&t.push(n);return t.sort((e,t)=>(e.startedAt??0)-(t.startedAt??0))}async emitFrameStarted(e){try{await this.bus.emit(x.frame.started,{executionId:this.executionId,frameId:e.frameId,nodeId:e.nodeId,nodeType:e.nodeType,path:e.path,parentFrameId:e.parentFrameId,startedAt:e.startedAt})}catch(t){console.error(`[RuntimeContext] frame.started observer failed for ${e.frameId}:`,t)}}async emitFrameCompleted(e,t){try{await this.bus.emit(x.frame.completed,{executionId:this.executionId,frameId:e.frameId,nodeId:e.nodeId,output:e.output,duration:t,completedAt:e.completedAt})}catch(t){console.error(`[RuntimeContext] frame.completed observer failed for ${e.frameId}:`,t)}}async emitFrameFailed(e,t,n){try{await this.bus.emit(x.frame.failed,{executionId:this.executionId,frameId:e.frameId,nodeId:e.nodeId,error:t,duration:n,completedAt:e.completedAt})}catch(t){console.error(`[RuntimeContext] frame.failed observer failed for ${e.frameId}:`,t)}}};function Ve(e){return{kind:`workflow-execution`,id:e,displayName:`Workflow Engine`}}function He(e,t,n){return{inputs:n.inputs,config:n.config??{},trigger:n.triggerPayload,scope:n.scope,context:n.context,env:n.env,execution:{id:t.id,workflowId:t.workflowId,scope:t.scope},workflow:{id:e.id,name:e.name,scope:e.scope}}}function Ue(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function We(e){if(e!=null){if(Ue(e)&&typeof e.kind==`string`&&typeof e.id==`string`)return{kind:e.kind,id:e.id};throw Error(`Artifact resolve expression must return an object with string kind and id fields.`)}}function Ge(e){if(e!==void 0){if(Ue(e))return e;throw Error(`Artifact create expression must return an object.`)}}async function Ke(e){let{bindingOptions:t,binding:n,existingArtifactRef:r,executionId:i,scope:a,initialData:o,bus:s}=e,c=null;if(r!==void 0){let e=await s.request(u.query,{kind:r.kind,ids:[r.id],currentOnly:!0});if(e.artifacts.length>0)c=e.artifacts[0];else return}else c=(await s.request(u.create,{kind:n.kind,schemaVersion:n.schemaVersion,scope:a??n.scope,data:o??{},relations:[],actor:Ve(i)})).artifact;return{current:c,schemaVersion:n.schemaVersion,statusPath:t.statusPath,zodSchema:t.schema}}async function qe(e){let{definition:t,execution:n,runContext:r,zodSchema:i,bus:a}=e,o=t.artifact;if(o===void 0)return;let s=He(t,n,r),c=r.artifactRef??(o.resolve===void 0?void 0:We(D(o.resolve,s))),l=c===void 0&&o.create!==void 0?Ge(D(o.create,s)):void 0,u=await Ke({bindingOptions:{kind:o.kind,schemaVersion:o.schemaVersion,scope:o.scope,...o.resolve===void 0?{}:{resolve:o.resolve},...o.create===void 0?{}:{create:o.create},...o.statusPath===void 0?{}:{statusPath:o.statusPath},...i===void 0?{}:{schema:i}},binding:o,existingArtifactRef:c,executionId:n.id,scope:o.scope,initialData:l,bus:a});if(u===void 0)throw Error(`Workflow artifact binding could not be resolved for the configured artifact reference.`);return u}const Je=new WeakMap;function Ye(e,t){let n=(Je.get(e)??Promise.resolve()).catch(()=>void 0).then(t);return Je.set(e,n.then(()=>void 0,()=>void 0)),n}function Xe(e,t){switch(t.operation){case`set`:return t.data;case`merge`:return{...e,...t.data};case`append`:{let n={...e};for(let[r,i]of Object.entries(t.data)){let t=e[r];Array.isArray(t)&&Array.isArray(i)?n[r]=[...t,...i]:n[r]=i}return n}}}function N(e,t,n){let[r,...i]=t;if(i.length===0)return{...e,[r]:n};let a=e[r]!==null&&typeof e[r]==`object`&&!Array.isArray(e[r])?e[r]:{};return{...e,[r]:N(a,i,n)}}function Ze(e,t,n){return N(e,t.startsWith(`/`)?t.slice(1).split(`/`):t.split(`.`),n)}function Qe(e,t,n){if(n===`set`||n===`functional`)return[];let r=[];for(let n of Object.keys(t))e[n]!==t[n]&&r.push(`/${n}`);return r}async function $e(e,t){if(typeof t==`function`)return{nextData:await t(Object.freeze({...e})),operationLabel:`functional`,changedPaths:[]};let n=Xe(e,t),r=Qe(e,n,t.operation);return{nextData:n,operationLabel:t.operation,changedPaths:r}}function et(e){let{executionId:t,frameId:n,bindingState:r,bus:i}=e,a=Object.freeze({...r.current.data}),o=async e=>Ye(r,async()=>{let a=r.current,{nextData:o,operationLabel:s,changedPaths:c}=await $e(a.data,e);if(r.zodSchema!==void 0){let e=r.zodSchema.safeParse(o);if(!e.success)throw Error(`Artifact data validation failed: ${e.error.message}`)}let l=await i.request(u.revise,{previous:{refClass:`artifact`,kind:a.kind,id:a.id,revision:a.revision},revision:{kind:a.kind,schemaVersion:r.schemaVersion,scope:a.scope,data:o,relations:a.relations,actor:Ve(t)}});r.current=l.artifact;let d=l.artifact.revision;return i.emit(ne.artifact.updated,{executionId:t,frameId:n,artifactRef:{kind:l.artifact.kind,id:l.artifact.id},paths:c,operation:s,revision:d}).catch(e=>{console.error(`[ArtifactContext] Failed to emit artifact.updated event:`,e)}),d});return{data:a,updateArtifact:o,updateStatus:async e=>{if(r.statusPath===void 0)throw Error(`updateStatus() called but no statusPath is configured on the artifact binding. Set statusPath in the .artifact() builder call to use updateStatus().`);let t=r.statusPath;return o(n=>Ze(n,t,e))}}}async function P(e,t,n){if(t.signal.aborted)return{status:`cancelled`};let r=await t.bus.requestOptional(x.resolveRole,{roleId:e.roleId});if(!r.handled)return{status:`failed`,error:e.unresolvedRoleError};let i=O(e.prompt,M(n));return F({...e,task:i,resolvedConfig:r.data},t)}async function F(e,t){if(t.signal.aborted)return{status:`cancelled`};let n=await t.bus.requestOptional(h.spawn,{parentSessionId:t.execution.coordinatorSessionId??t.executionId,depth:1,config:it(e.task,e.resolvedConfig,e.outputSchema)});if(!n.handled)return{status:`failed`,error:e.unavailableRuntimeError};let r=await I(e,t,n.data.subagentId,{attempts:5}),i=await at(e,t,n.data.subagentId);return i===`aborted`?{status:`cancelled`}:(r||await I(e,t,n.data.subagentId,{attempts:1}),i.handled?t.signal.aborted||i.data.status===`cancelled`?{status:`cancelled`}:i.data.status===`completed`?{status:`completed`,output:i.data.result??null}:{status:`failed`,error:`${e.nodeLabel} '${e.nodeId}' subagent ${i.data.status}: ${i.data.error??`no result`}`}:{status:`failed`,error:e.unavailableAwaitError})}async function I(e,t,n,r){if(e.frameId===void 0)return!0;try{let i=await tt(t,n,r.attempts);return i===void 0?!1:(await t.bus.emit(x.frame.sessionLinked,{executionId:t.executionId,frameId:e.frameId,sessionId:i}),!0)}catch(t){return console.warn(`[workflow-engine] Failed to emit frame.sessionLinked for frame '${e.frameId}' and subagent '${n}'`,t),!1}}async function tt(e,t,n){for(let r=0;r<n;r+=1){if(e.signal?.aborted)return;let i=await nt(e,t);if(i===void 0||!i.handled)return;if(i.data.childSessionId!==void 0)return i.data.childSessionId;if(r<n-1&&!await rt(e.signal,20))return}}async function nt(e,t){try{return await e.bus.requestOptional(h.getStatus,{subagentId:t},{timeout:25,signal:e.signal})}catch{return}}function rt(e,t){return e.aborted?Promise.resolve(!1):new Promise(n=>{let r,i=t=>{r!==void 0&&(clearTimeout(r),r=void 0),e.removeEventListener(`abort`,a),n(t)},a=()=>i(!1);r=setTimeout(()=>i(!0),t),e.addEventListener(`abort`,a,{once:!0}),e.aborted&&i(!1)})}function it(e,t,n){return{task:e,adapterName:t.adapterName,...t.model===void 0?{}:{model:t.model},...t.harnessId===void 0?{}:{harnessId:t.harnessId},...t.systemPrompt===void 0?{}:{systemPrompt:t.systemPrompt},...t.contextMode===void 0?{}:{contextMode:t.contextMode},...t.providerContext===void 0?{}:{providerContext:t.providerContext},...n===void 0?{}:{responseSchema:n}}}async function at(e,t,n){if(t.signal.aborted)return await L(e,t,n),`aborted`;let r=t.bus.requestOptional(h.await,{subagentId:n,...e.timeoutMs===void 0?{}:{timeoutMs:e.timeoutMs}},{timeout:0});if(t.signal.aborted)return await L(e,t,n),`aborted`;let i,a=new Promise(e=>{i=()=>e(`aborted`),t.signal.addEventListener(`abort`,i,{once:!0})}),o=await Promise.race([r,a]);return i!==void 0&&t.signal.removeEventListener(`abort`,i),o===`aborted`&&await L(e,t,n),o}async function L(e,t,n){try{await t.bus.requestOptional(h.kill,{subagentId:n,reason:`Workflow execution '${t.executionId}' cancelled ${e.cancellationLabel} '${e.nodeId}'`})}catch(t){console.warn(`[workflow-engine] Best-effort subagent kill failed for '${n}' (${e.cancellationLabel} '${e.nodeId}')`,t)}}async function ot(e,t,n,r){if(t.signal.aborted)return{status:`cancelled`};let i=Fe(n.frames),a=t.runtimeHandlers.get(e.id);if(a===void 0)return st(e,t,n,r);let o=t.artifactBinding!==void 0&&r!==void 0?et({executionId:t.executionId,frameId:r,bindingState:t.artifactBinding,bus:t.bus}):void 0;async function s(n){if(r===void 0){console.warn(`[station-node] updateProgress called without frameId for node '${e.id}'; skipping emit`);return}let i=te[`execution.progress`].parse({executionId:t.executionId,workflowId:t.workflowId,frameId:r,nodeId:e.id,progress:n,emittedAt:Date.now()});try{await t.bus.emit(x.execution.progress,i)}catch(t){console.error(`[station-node] execution.progress observer failed for ${e.id}:`,t)}}let c;try{c=await a({...t.platformContext,env:t.env,executionId:t.executionId,workflowId:t.workflowId,inputs:t.execution.inputs,config:t.execution.config??{},trigger:t.execution.triggerPayload??{},previousSteps:i,...n.item!==void 0&&{item:n.item},...n.index!==void 0&&{index:n.index},...n.previous!==void 0&&{previous:n.previous},signal:t.signal,...o!==void 0&&{artifact:o},bus:t.bus,updateProgress:s})}catch(e){return{status:`failed`,error:e instanceof Error?e.message:String(e)}}return{status:`completed`,output:c}}async function st(e,t,n,r){if(e.role===void 0)return{status:`failed`,error:`No handler registered for station node '${e.id}'`};let i=e.outputSchema===void 0?void 0:{schema:e.outputSchema};return P({nodeId:e.id,nodeLabel:`Station node`,roleId:e.role,prompt:e.prompt,...i===void 0?{}:{outputSchema:i},...e.timeoutMs===void 0?{}:{timeoutMs:e.timeoutMs},unresolvedRoleError:`No runtime handler registered for station node '${e.id}', and role '${e.role}' could not be resolved`,unavailableRuntimeError:`Subagent runtime is not available for station node '${e.id}'`,unavailableAwaitError:`Subagent runtime cannot await station node '${e.id}'`,cancellationLabel:`station`,...r===void 0?{}:{frameId:r}},t,n)}async function ct(e,t,n,r){if(t.signal.aborted)return{status:`cancelled`};let i=await t.bus.requestOptional(x.resolveAgent,{agentId:e.agentId});if(!i.handled)return{status:`failed`,error:`Agent '${e.agentId}' could not be resolved for delegate-agent node '${e.id}'`};if(t.signal.aborted)return{status:`cancelled`};let a=ut(e,n);if(a.status===`failed`)return a;let o=e.outputSchema===void 0?void 0:{schema:e.outputSchema};return F({nodeId:e.id,nodeLabel:`Delegate-agent node`,task:a.task,resolvedConfig:i.data,...o===void 0?{}:{outputSchema:o},unavailableRuntimeError:`Subagent runtime is not available for delegate-agent node '${e.id}'`,unavailableAwaitError:`Subagent runtime cannot await delegate-agent node '${e.id}'`,cancellationLabel:`delegate-agent`,...r===void 0?{}:{frameId:r}},t)}async function lt(e,t,n,r){if(t.signal.aborted)return{status:`cancelled`};let i=e.outputSchema===void 0?void 0:{schema:e.outputSchema};return P({nodeId:e.id,nodeLabel:`Delegate-role node`,roleId:e.role,prompt:e.prompt,...i===void 0?{}:{outputSchema:i},...e.timeoutMs===void 0?{}:{timeoutMs:e.timeoutMs},unresolvedRoleError:`Role '${e.role}' could not be resolved for delegate-role node '${e.id}'`,unavailableRuntimeError:`Subagent runtime is not available for delegate-role node '${e.id}'`,unavailableAwaitError:`Subagent runtime cannot await delegate-role node '${e.id}'`,cancellationLabel:`delegate-role`,...r===void 0?{}:{frameId:r}},t,n)}function ut(e,t){try{let n=M(t);return{status:`completed`,task:dt(e.inputExpression===void 0?n:D(e.inputExpression,n))}}catch(t){let n=t instanceof Error?t.message:String(t);return{status:`failed`,error:`delegate-agent node '${e.id}': input expression evaluation failed: ${n}`}}}function dt(e){if(typeof e==`string`)return e;if(e===void 0)return``;try{return JSON.stringify(e,null,2)??``}catch{return String(e)}}function ft(e,t,n,r){try{let i=D(n,M(r));return Array.isArray(i)?i:{status:`failed`,error:`${t} node '${e}': collection expression did not resolve to an array (got ${typeof i})`}}catch(n){return{status:`failed`,error:`${t} node '${e}': collection expression evaluation failed: ${n instanceof Error?n.message:String(n)}`}}}function pt(e,t,n){for(let r of[...e.nodes].reverse()){let e=n.getFramesByNodeId(r.id);for(let n of e)if(n.parentFrameId===t&&n.status===`completed`)return n.output}}function mt(e,t,n){return pt(e.body,t,n)}function ht(e){if(e.length===0)return;let t=new Map,n=new Map;for(let r of e){n.set(r.frameId,r);let e=t.get(r.nodeId)??[];e.push(r),t.set(r.nodeId,e)}return{byNodeId:t,byFrameId:n}}const gt=new Set([`completed`,`skipped`,`waiting`]);function R(e,t,n){let r=e?.byNodeId.get(t)??[],i=n.statuses??gt;return r.find(e=>e.parentFrameId===n.parentFrameId&&e.branchKey===n.branchKey&&e.iteration===n.iteration&&i.has(e.status))}function z(e,t,n){let r={...e.frames,[t]:n};return{...e,frames:r,previousSteps:Fe(r),output:n.status===`completed`?n.output:e.output}}function B(e,t){if(typeof AbortSignal.any==`function`)return AbortSignal.any([e,t]);let n=new AbortController,r=()=>n.abort();return e.addEventListener(`abort`,r,{once:!0}),t.addEventListener(`abort`,r,{once:!0}),n.signal}const _t=new Set([`completed`,`running`]);function vt(e,t){return e.status===`running`&&t.pauseSignal?.aborted===!0&&!t.outerSignal.aborted}async function yt(e,t,n,r,i,a,o=`all-settled`){if(t.signal.aborted)return{status:`cancelled`};let s=Object.entries(e.branches);if(s.length===0)return{status:`completed`,output:V({},o)};let c=new AbortController,l=new AbortController,u=t.suspensionStrategy!==`wait-in-process`,d=o===`fail-fast`?B(c.signal,l.signal):u?l.signal:void 0,f=d===void 0?t.signal:B(t.signal,d),p=f===t.signal?t:t.withSignal(f),m=s.map(([s,c])=>bt(s,c,e,p,n,r,i,a,{outerSignal:t.signal,pauseSignal:o===`fail-fast`||u?l.signal:void 0}));if(o===`all-settled`){let e=await Promise.all(u?m.map(e=>e.then(e=>(e.status===`paused`&&l.abort(),e))):m),t=e.find(e=>e.status===`paused`);return t===void 0?{status:`completed`,output:V(St(s,e),o)}:t}let h=await xt(s,m,c,l);return h.type===`cancelled`?{status:`cancelled`}:h.type===`paused`?h.outcome:h.type===`failed`?{status:`failed`,error:h.error}:{status:`completed`,output:V(St(s,h.outcomes),o)}}async function bt(e,t,n,r,i,a,o,s,c){if(r.signal.aborted)return{status:`cancelled`};let l=R(r.resumeFrames,n.id,{parentFrameId:o,branchKey:e,statuses:_t});if(l?.status===`completed`)return{status:`completed`,...l.output===void 0?{}:{output:l.output}};let u=l??r.createFrame({nodeId:n.id,nodeType:`parallel`,path:s,parentFrameId:o,branchKey:e});if(r.signal.aborted)return vt(u,c)||await $(u,r),{status:`cancelled`};l===void 0&&await Y(u,r);let d;try{d=await a(t,r,i,u.frameId,u.path)}catch(e){let t=e instanceof Error?e.message:String(e);return await Z(u,r,t),{status:`failed`,error:t}}switch(d.status){case`completed`:{let e=pt(t,u.frameId,r);return await X(u,r,e),{status:`completed`,output:e}}case`skipped`:return await X(u,r),{status:`completed`};case`cancelled`:return vt(u,c)||await $(u,r),{status:`cancelled`};case`paused`:return d;case`failed`:return await Z(u,r,d.error),{status:`failed`,error:d.error}}}async function xt(e,t,n,r){let i,a,o=t.map(e=>e.then(e=>(e.status===`failed`&&i===void 0?(i=e.error,n.abort()):e.status===`paused`&&a===void 0&&(a=e,r.abort()),e),e=>{let t=e instanceof Error?e.message:String(e);return i===void 0&&(i=t,n.abort()),{status:`failed`,error:t}})),s=await Promise.all(o);return a===void 0?s.some(e=>e.status===`cancelled`)&&i===void 0?{type:`cancelled`}:i===void 0?{type:`completed`,outcomes:s}:{type:`failed`,error:i}:{type:`paused`,outcome:a}}function V(e,t){return{mode:t,branches:e}}function St(e,t){let n={};for(let r=0;r<e.length;r++){let[i]=e[r],a=t[r];n[i]=Ct(a)}return n}function Ct(e){switch(e.status){case`completed`:return{status:`fulfilled`,...e.output===void 0?{}:{value:e.output}};case`skipped`:return{status:`fulfilled`,value:null};case`cancelled`:return{status:`cancelled`};case`paused`:return{status:`paused`,pausedAtGateId:e.pausedAtGateId,pausedAtFrameId:e.pausedAtFrameId};case`failed`:return{status:`rejected`,reason:e.error}}}const wt=new(e(t(),1)).default({allErrors:!0,strict:!1});function H(e,t){if(t===void 0)return{status:`ok`};try{return{status:`ok`,validator:wt.compile(t)}}catch(t){return{status:`failed`,error:`Gate '${e}' has an invalid resumeSchema: ${t instanceof Error?t.message:String(t)}`}}}function U(e,t){return e===void 0||e(t)?{valid:!0}:{valid:!1,error:Et(e.errors??[])}}function Tt(e,t,n){let r=H(e,t);return r.status===`failed`?{valid:!1,error:r.error}:U(r.validator,n)}function Et(e){return e.length===0?`schema validation failed`:e.map(e=>`${e.instancePath.length>0?e.instancePath:`/`} ${e.message??`is invalid`}`).join(`; `)}const W={action:`approve`,source:`timeout`};async function Dt(e,t,n,r){let i=()=>{t.value&&(t.value=!1,e.reject(`cancelled`))};n.addEventListener(`abort`,i,{once:!0}),n.aborted&&i();let a=[e.promise],o;if(r!==null){let e=jt();o=setTimeout(()=>{t.value&&(t.value=!1,n.removeEventListener(`abort`,i),e.reject(`timed-out`))},r),a.push(e.promise)}try{let e=await Promise.race(a);return n.removeEventListener(`abort`,i),o!==void 0&&clearTimeout(o),{action:e.action,resumeData:e.resumeData,timedOut:!1,wasCancelled:!1}}catch(e){return o!==void 0&&clearTimeout(o),n.removeEventListener(`abort`,i),e===`timed-out`?{action:`reject`,resumeData:null,timedOut:!0,wasCancelled:!1}:{action:`reject`,resumeData:null,timedOut:!1,wasCancelled:!0}}}async function Ot(e,t,n,r,i,a){let o={required:e.suspensionStrategy!==`wait-in-process`};if(a.timedOut){let a=Date.now();if(r.autoAction===`approve`){let s=U(i,W);return s.valid?(await G(e,{...r,status:`resumed`,resumeData:W,resolvedAt:a},o),await K(e,t.id,n,{action:`approve`,source:`timeout`}),{status:`completed`,output:{resumeData:W}}):(await G(e,{...r,status:`timed-out`,resolvedAt:a},o),await K(e,t.id,n,{action:`reject`,source:`timeout`}),{status:`failed`,error:`Gate '${t.id}' auto-approve timeout resume data does not match resumeSchema: ${s.error}`})}return await G(e,{...r,status:`timed-out`,resolvedAt:a},o),await K(e,t.id,n,{action:`reject`,source:`timeout`}),{status:`failed`,error:`Gate '${t.id}' timed out after ${String(r.timeoutMs)}ms and auto-rejected`}}if(a.wasCancelled||e.signal.aborted)return await G(e,{...r,status:`cancelled`,resolvedAt:Date.now()},o),await K(e,t.id,n,{source:`cancelled`}),{status:`cancelled`};let s=Date.now();await G(e,{...r,status:a.action===`reject`?`rejected`:`resumed`,resumeData:a.resumeData,resolvedAt:s},o);try{await e.bus.emit(x.gate.resumed,{executionId:e.executionId,frameId:n,nodeId:t.id,resumeData:a.resumeData}),await K(e,t.id,n,{action:a.action,source:`user`})}catch(e){console.error(`[GateNode] gate.resumed emit failed for '${t.id}':`,e)}return{status:`completed`,output:{resumeData:a.resumeData}}}async function kt(e,t,n,r){if(t.signal.aborted)return{status:`cancelled`};let i=e.resumeSchema??{};if(t.suspensionStrategy!==`wait-in-process`){let n=await Pt(t,e,r);if(n!==void 0)return n}let a=H(e.id,e.resumeSchema);return a.status===`failed`?{status:`failed`,error:a.error}:At(t,e,n,r,i,a.validator)}async function At(e,t,n,r,i,a){let o=O(t.prompt,M(n)),s={executionId:e.executionId,nodeId:t.id,frameId:r,schema:i,prompt:o,status:`waiting`,autoAction:t.autoAction,timeoutMs:t.timeoutMs,createdAt:Date.now()},c=e.suspensionStrategy!==`wait-in-process`;if(await G(e,s,{required:c}),await e.updateFrame(r,{status:`waiting`},{requireFrameStorage:c}),c)return await Mt(e,t,r,i,o,s.createdAt),{status:`paused`,pausedAtGateId:t.id,pausedAtFrameId:r};let u={value:!0},d=jt(),f=e.bus.on(x.gate.respond,async n=>{let{executionId:i,gateId:o,frameId:s,action:c,resumeData:f}=n.payload;if(i!==e.executionId||o!==t.id||s!==void 0&&s!==r){try{await n.next()}catch(e){if(e instanceof l)n.setResult({accepted:!1});else throw e}return}if(!u.value){n.setResult({accepted:!1});return}if(!U(a,f).valid){n.setResult({accepted:!1});return}u.value=!1,n.setResult({accepted:!0}),d.resolve({action:c,resumeData:f})});await Mt(e,t,r,i,o,s.createdAt);let p=await Dt(d,u,e.signal,t.timeoutMs);return f(),Ot(e,t,r,s,a,p)}function jt(){let e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}async function Mt(e,t,n,r,i,a){try{await e.bus.emit(x.gate.suspended,{executionId:e.executionId,frameId:n,nodeId:t.id,schema:r,prompt:i,...t.title!==void 0&&{title:t.title},autoAction:t.autoAction,timeoutMs:t.timeoutMs,openedAt:a})}catch(e){console.error(`[GateNode] gate.suspended emit failed for '${t.id}':`,e)}}async function Nt(e,t,n){if(e.suspensionStrategy!==`wait-in-process`)return(await e.bus.request(A.getGateInstance,{executionId:e.executionId,nodeId:t,frameId:n})).gate;let r=await e.bus.requestOptional(A.getGateInstance,{executionId:e.executionId,nodeId:t,frameId:n});return r.handled?r.data.gate:null}async function Pt(e,t,n){let r=await Nt(e,t.id,n);if((r?.status===`resumed`||r?.status===`rejected`)&&r.resumeData!==void 0){let i=Tt(t.id,r.schema,r.resumeData);if(!i.valid)return{status:`failed`,error:`Gate '${t.id}' persisted resumeData is invalid: ${i.error}`};try{await e.bus.emit(x.gate.resumed,{executionId:e.executionId,frameId:n,nodeId:t.id,resumeData:r.resumeData})}catch(e){console.error(`[GateNode] gate.resumed emit failed for '${t.id}':`,e)}return await K(e,t.id,n,{action:r.status===`rejected`?`reject`:`approve`,source:`user`}),{status:`completed`,output:{resumeData:r.resumeData}}}if(r?.status===`waiting`){if(r.timeoutMs!==null&&Date.now()>=r.createdAt+r.timeoutMs){let i=H(t.id,r.schema);return i.status===`failed`?{status:`failed`,error:i.error}:Ot(e,t,n,r,i.validator,{action:`reject`,resumeData:null,timedOut:!0,wasCancelled:!1})}return{status:`paused`,pausedAtGateId:t.id,pausedAtFrameId:n}}if((r?.status===`resumed`||r?.status===`rejected`)&&r.resumeData===void 0)return{status:`failed`,error:`Gate '${t.id}' has status '${r.status}' but resumeData is missing — cannot reconstruct output`};if(r!==null)return{status:`failed`,error:`Gate '${t.id}' cannot resume from status '${r.status}'`}}async function G(e,t,n={}){try{n.required===!0?await e.bus.request(A.setGateInstance,{gate:t}):await e.bus.requestOptional(A.setGateInstance,{gate:t})}catch(e){if(n.required===!0)throw e;console.warn(`[GateNode] Failed to upsert gate instance for '${t.nodeId}':`,e)}}async function K(e,t,n,r){try{await e.bus.emit(x.gate.resolved,{executionId:e.executionId,stepId:t,stepType:`gate`,frameId:n,...r})}catch(e){console.error(`[GateNode] gate.resolved emit failed for '${t}':`,e)}}function q(e){return{status:`fulfilled`,...e===void 0?{}:{value:e}}}const Ft=new Set([`completed`,`running`]);function J(e,t){return e.status===`running`&&t.pauseSignal?.aborted===!0&&!t.outerSignal.aborted}async function It(e,t,n,r,i,a){if(t.signal.aborted)return{status:`cancelled`};let o=ft(e.id,`iterate`,e.collection,n);if(!Array.isArray(o))return o;let s=o;if(s.length===0)return{status:`completed`,output:Bt([])};let c=await Lt(s,e,t,n,r,i,a,e.concurrency!==void 0&&e.concurrency>0?e.concurrency:0);if(t.signal.aborted&&c.every(e=>e.status===`cancelled`))return{status:`cancelled`};let l=c.find(e=>e.status===`paused`);return l===void 0?{status:`completed`,output:Bt(c)}:{status:`paused`,pausedAtGateId:l.pausedAtGateId,pausedAtFrameId:l.pausedAtFrameId}}async function Lt(e,t,n,r,i,a,o,s){let c=new AbortController,l=n.suspensionStrategy!==`wait-in-process`,u=l?B(n.signal,c.signal):n.signal,d=u===n.signal?n:n.withSignal(u),f={outerSignal:n.signal,...l?{pauseSignal:c.signal}:{}};if(s===0){let n=e.map((e,n)=>zt(e,n,t,d,r,i,a,o,f));return Promise.all(l?n.map(e=>Rt(e,c)):n)}let p=Array(e.length);for(let n=0;n<e.length;n+=s){if(d.signal.aborted){for(let t=n;t<e.length;t++)p[t]={status:`cancelled`};break}let u=Math.min(n+s,e.length),m=[];for(let s=n;s<u;s++)m.push(zt(e[s],s,t,d,r,i,a,o,f));let h=await Promise.all(l?m.map(e=>Rt(e,c)):m);for(let e=0;e<h.length;e++)p[n+e]=h[e];if(h.some(e=>e.status===`paused`)){for(let t=u;t<e.length;t++)p[t]={status:`cancelled`};break}}return p}function Rt(e,t){return e.then(e=>(e.status===`paused`&&t.abort(),e))}async function zt(e,t,n,r,i,a,o,s,c){if(r.signal.aborted)return{status:`cancelled`};let l={...i,item:e,index:t},u=R(r.resumeFrames,n.id,{parentFrameId:o,iteration:t,statuses:Ft});if(u?.status===`completed`)return q(u.output);let d=u??r.createFrame({nodeId:n.id,nodeType:`iterate`,path:s,parentFrameId:o,iteration:t});if(r.signal.aborted)return J(d,c)||await $(d,r),{status:`cancelled`};u===void 0&&await Y(d,r);let f;try{f=await a(n.body,r,l,d.frameId,d.path)}catch(e){let t=e instanceof Error?e.message:String(e);return await Z(d,r,t),{status:`rejected`,reason:t}}switch(f.status){case`completed`:{let e=mt(n,d.frameId,r);return await X(d,r,e),q(e)}case`skipped`:return await X(d,r),q();case`cancelled`:return J(d,c)||await $(d,r),{status:`cancelled`};case`paused`:return f;case`failed`:return await Z(d,r,f.error),{status:`rejected`,reason:f.error}}}function Bt(e){return{items:e}}const Vt=new Set([`completed`,`running`]);async function Ht(e,t,n,r,i,a){if(t.signal.aborted)return{status:`cancelled`};let o=ft(e.id,`iterate-chain`,e.collection,n);if(!Array.isArray(o))return o;let s=o;if(s.length===0)return{status:`completed`,output:Wt([])};let c=[],l;for(let o=0;o<s.length;o++){if(t.signal.aborted)return{status:`cancelled`};let u=s[o],d=await Ut(u,o,l,e,t,n,r,i,a);switch(c.push(d),d.status){case`fulfilled`:l=d.value;break;case`rejected`:return{status:`failed`,error:d.reason};case`cancelled`:return{status:`cancelled`};case`paused`:return{status:`paused`,pausedAtGateId:d.pausedAtGateId,pausedAtFrameId:d.pausedAtFrameId}}}return{status:`completed`,output:Wt(c)}}async function Ut(e,t,n,r,i,a,o,s,c){if(i.signal.aborted)return{status:`cancelled`};let l={...a,item:e,index:t,...n!==void 0&&{previous:n}},u=R(i.resumeFrames,r.id,{parentFrameId:s,iteration:t,statuses:Vt});if(u?.status===`completed`)return q(u.output);let d=u??i.createFrame({nodeId:r.id,nodeType:`iterate-chain`,path:c,parentFrameId:s,iteration:t});if(i.signal.aborted)return await $(d,i),{status:`cancelled`};u===void 0&&await Y(d,i);let f;try{f=await o(r.body,i,l,d.frameId,d.path)}catch(e){let t=e instanceof Error?e.message:String(e);return await Z(d,i,t),{status:`rejected`,reason:t}}switch(f.status){case`completed`:{let e=mt(r,d.frameId,i);return await X(d,i,e),q(e)}case`skipped`:return await X(d,i),q();case`cancelled`:return await $(d,i),{status:`cancelled`};case`paused`:return f;case`failed`:return await Z(d,i,f.error),{status:`rejected`,reason:f.error}}}function Wt(e){return{items:e}}async function Y(e,t){e.status=`running`,e.startedAt=Date.now(),await t.persistFrame(e),await t.emitFrameStarted(e)}async function X(e,t,n){let r=Date.now(),i=e.startedAt===void 0?void 0:Math.max(0,r-e.startedAt);e.status=`completed`,e.output=n,e.completedAt=r,await t.persistFrame(e),await t.emitFrameCompleted(e,i)}async function Z(e,t,n){let r=Date.now(),i=e.startedAt===void 0?void 0:Math.max(0,r-e.startedAt);e.status=`failed`,e.error=n,e.completedAt=r,await t.persistFrame(e),await t.emitFrameFailed(e,n,i)}async function Q(e,t){e.status=`skipped`,e.completedAt=Date.now(),await t.persistFrame(e)}async function $(e,t){e.status=`cancelled`,e.completedAt=Date.now(),await t.persistFrame(e)}function Gt(e,t){return!!D(e,M(t))}async function Kt(e,t,n,r,i,a=[]){if(t.signal.aborted)return{status:`cancelled`};switch(e.type){case`sequence`:return r(e,t,n,i,a);case`station`:return ot(e,t,n,i);case`delegate-agent`:return ct(e,t,n,i);case`delegate-role`:return lt(e,t,n,i);case`parallel`:return yt(e,t,n,r,i??``,a,e.mode??`all-settled`);case`gate`:return kt(e,t,n,i??``);case`iterate`:return It(e,t,n,r,i??``,a);case`iterate-chain`:return Ht(e,t,n,r,i??``,a);default:return{status:`failed`,error:`Unknown node type: ${String(e.type)}`}}}const qt=new Set([`completed`,`skipped`,`waiting`,`running`]);function Jt(e){return e.type===`parallel`||e.type===`iterate`||e.type===`iterate-chain`}function Yt(e,t,n){return R(e.resumeFrames,t.id,{parentFrameId:n,...Jt(t)?{statuses:qt}:{}})}function Xt(e,t,n){if(n?.status===`completed`)return z(e,t.id,{status:`completed`,...n.output===void 0?{}:{output:n.output}});if(n?.status===`skipped`)return z(e,t.id,{status:`skipped`})}async function Zt(e,t,n,r,i,a,o){try{return{result:Gt(e,i)}}catch(e){let i=e instanceof Error?e.message:String(e);return await Z(r.createFrame({nodeId:n.id,nodeType:n.type,path:a,parentFrameId:o}),r,`'${t}' condition evaluation failed: ${i}`),{status:`failed`,error:`'${t}' condition evaluation failed for '${n.id}': ${i}`}}}async function Qt(e,t,n,r,i,a){let o=a??t.createFrame({nodeId:e.id,nodeType:e.type,path:r,parentFrameId:i});if(t.signal.aborted)return await $(o,t),{updatedCtx:n,outcome:{status:`cancelled`}};a===void 0&&await Y(o,t);let s;try{s=await Kt(e,t,n,$t,o.frameId,o.path)}catch(e){let r=e instanceof Error?e.message:String(e);return await Z(o,t,r),{updatedCtx:n,outcome:{status:`failed`,error:r}}}switch(s.status){case`completed`:return await X(o,t,s.output),{updatedCtx:z(n,e.id,{status:`completed`,output:s.output})};case`skipped`:return await Q(o,t),{updatedCtx:z(n,e.id,{status:`skipped`})};case`cancelled`:return await $(o,t),{updatedCtx:n,outcome:{status:`cancelled`}};case`paused`:return{updatedCtx:n,outcome:s};case`failed`:return await Z(o,t,s.error),{updatedCtx:n,outcome:{status:`failed`,error:s.error}}}}async function $t(e,t,n,r,i=[]){let a=n;for(let n of e.nodes){if(t.signal.aborted)return{status:`cancelled`};let e=Yt(t,n,r),o=Xt(a,n,e);if(o!==void 0){a=o;continue}if(n.when!==void 0){let e=await Zt(n.when,`when`,n,t,a,i,r);if(`status`in e)return e;if(!e.result){await Q(t.createFrame({nodeId:n.id,nodeType:n.type,path:i,parentFrameId:r}),t),a=z(a,n.id,{status:`skipped`});continue}}if(n.skip!==void 0){let e=await Zt(n.skip,`skip`,n,t,a,i,r);if(`status`in e)return e;if(e.result){await Q(t.createFrame({nodeId:n.id,nodeType:n.type,path:i,parentFrameId:r}),t),a=z(a,n.id,{status:`skipped`});continue}}let s=e?.status===`waiting`&&n.type===`gate`||e?.status===`running`&&Jt(n)?e:void 0,{updatedCtx:c,outcome:l}=await Qt(n,t,a,i,r,s);if(a=c,l!==void 0)return l}return{status:`completed`}}export{ye as C,_e as S,x as T,k as _,Be as a,pe as b,Oe as c,Ce as d,Se as f,me as g,de as h,qe as i,Te as l,ue as m,Tt as n,ke as o,A as p,ht as r,Pe as s,$t as t,we as u,fe as v,ge as w,ve as x,he as y};
|
package/dist/schema-DCJyzRHe.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{sessions as e}from"./services/session/storage/schema.mjs";import{t}from"./schema-DOnJmAPw.mjs";import{index as n,integer as r,sqliteTable as i,text as a}from"drizzle-orm/sqlite-core";const o=i(`messages`,{messageId:a(`message_id`).primaryKey(),turnId:a(`turn_id`).references(()=>t.turnId,{onDelete:`cascade`}),sessionId:a(`session_id`).notNull().references(()=>e.sessionId,{onDelete:`cascade`}),role:a(`role`,{enum:[`user`,`assistant`]}).notNull(),contentText:a(`content_text`).notNull(),blocks:a(`blocks`).notNull().default(`[]`),agentId:a(`agent_id`),adapterSessionId:a(`adapter_session_id`),adapterMessageId:a(`adapter_message_id`),timestamp:r(`timestamp`).notNull(),editOf:a(`edit_of`).references(()=>o.messageId),origin:a(`origin`,{enum:[`voice`,`text`,`compact`]})},e=>[n(`idx_messages_session`).on(e.sessionId,e.timestamp),n(`idx_messages_turn`).on(e.turnId,e.timestamp),n(`idx_messages_agent`).on(e.agentId,e.timestamp),n(`idx_messages_adapter_message_id`).on(e.adapterMessageId)]);export{o as t};
|
package/dist/schema-DOnJmAPw.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{sessions as e}from"./services/session/storage/schema.mjs";import{index as t,integer as n,sqliteTable as r,text as i,uniqueIndex as a}from"drizzle-orm/sqlite-core";const o=r(`turns`,{turnId:i(`turn_id`).primaryKey(),sessionId:i(`session_id`).notNull().references(()=>e.sessionId,{onDelete:`cascade`}),turnNumber:n(`turn_number`).notNull(),startedAt:n(`started_at`).notNull(),completedAt:n(`completed_at`),status:i(`status`,{enum:[`active`,`completed`,`error`]}).notNull(),error:i(`error`),usage:i(`usage`)},e=>[t(`idx_turns_session`).on(e.sessionId,e.startedAt),a(`uniq_turns_session_number`).on(e.sessionId,e.turnNumber)]);export{o as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as e}from"./json-value-CmhSGMLv.mjs";import{a as t,s as n}from"./visibility-Cb62p9bv.mjs";import{t as r}from"./credential-ref-YWQQENEo.mjs";import{t as i}from"./definition-DZMXOnjX.mjs";import{c as a,f as o,i as ee,o as s,p as c,r as te,s as ne}from"./shared-DpOEfD8F.mjs";import{t as re}from"./schemas-hSrzflwZ.mjs";import{r as ie}from"./profile-D39-Zy_W.mjs";import{i as ae}from"./account-identity-CgzOqnVm.mjs";import{SessionLineageSchema as oe}from"./contracts/adapter/schemas/session-lineage.mjs";import{z as l}from"zod";import{observability as se}from"@makaio/framework/core";const u=l.object({adapterId:l.string(),adapterName:l.string()}),ce=l.object({cwd:l.string().optional(),allowedTools:l.array(l.string()).optional(),disallowedTools:l.array(l.string()).optional(),allowedDirectories:l.array(l.string()).optional(),systemPrompt:o.optional()}),d=`adapter identity must be provided at the top level; contextOverrides cannot supply adapter identity`;function le(e){let t={adapterId:e.adapterId,adapterName:e.adapterName},n={adapterId:e.contextOverrides?.adapterId,adapterName:e.contextOverrides?.adapterName},r=[];!f(t)&&f(n)&&(n.adapterId!==void 0&&r.push({field:`adapterId`,message:d}),n.adapterName!==void 0&&r.push({field:`adapterName`,message:d}));for(let e of[`adapterId`,`adapterName`]){let i=n[e];if(i===void 0)continue;let a=t[e];if(a===void 0){f(t)&&r.push({field:e,message:`contextOverrides.${e} cannot supply adapter identity when top-level adapter identity is present`});continue}a!==i&&r.push({field:e,message:`contextOverrides.${e} must match top-level ${e} when both are provided`})}return{issues:r,effectiveIdentity:{adapterId:t.adapterId??n.adapterId,adapterName:t.adapterName??n.adapterName}}}function f(e){return e.adapterId!==void 0||e.adapterName!==void 0}const ue=l.object({readOnly:l.boolean().optional(),destructive:l.boolean().optional(),idempotent:l.boolean().optional(),requiresApproval:l.boolean().optional()}),de=l.object({name:l.string(),description:l.string(),annotations:ue.optional(),toolsetName:l.string()}),fe=l.object({code:l.string(),message:l.string(),details:l.unknown().optional()}),p=l.object({toolName:l.string(),toolsetName:l.string()}),pe=de.extend({inputSchema:l.record(l.string(),l.unknown()).optional()}),me=l.object({name:l.string(),description:l.string(),version:l.string(),toolCount:l.number(),configSchema:l.record(l.string(),l.unknown()).optional()}),he=l.object({cwd:l.string().optional(),env:l.record(l.string(),l.string()).optional(),sessionId:l.string().optional(),agentId:l.string().optional(),adapterId:l.string().optional(),adapterName:l.string().optional(),turnId:l.string().optional(),turnContext:l.record(l.string(),l.unknown()).optional(),reasoning:l.string().optional(),toolCallId:l.string().optional(),constraints:l.record(l.string(),l.unknown()).optional()});function ge(e,t){let{issues:n}=le(e);for(let e of n)t.addIssue({code:l.ZodIssueCode.custom,message:e.message,path:[`contextOverrides`,e.field]})}const _e=l.object({toolName:l.string(),input:l.unknown(),adapterId:l.string().optional(),adapterName:l.string().optional(),contextOverrides:he.optional()}).superRefine(ge),ve={list:{request:l.object({toolsetName:l.string().optional(),adapterId:l.string().optional(),adapterName:l.string().optional()}),response:l.object({tools:l.array(pe),toolsets:l.array(me)})},execute:{request:_e,response:l.discriminatedUnion(`success`,[l.object({success:l.literal(!0),data:l.unknown()}),l.object({success:l.literal(!1),error:fe})])},registered:l.object({toolsetName:l.string(),toolsetVersion:l.string(),toolNames:l.array(l.string())}),started:p.extend({executionId:l.string(),timestamp:l.number()}),completed:p.extend({executionId:l.string(),timestamp:l.number(),durationMs:l.number()}),error:p.extend({executionId:l.string(),timestamp:l.number(),error:fe}),registryChanged:l.object({revision:l.number().int().positive(),reason:l.enum([`toolset-registered`,`toolset-unregistered`,`plugin-loaded`,`plugin-unloaded`]),toolsetName:l.string()})},ye=l.object({name:l.string(),permission_policy:l.enum([`always_allow`,`always_ask`,`always_deny`])}),be=l.array(ye).superRefine((e,t)=>{let n=new Set;e.forEach((e,r)=>{if(n.has(e.name)){t.addIssue({code:l.ZodIssueCode.custom,path:[r,`name`],message:`Duplicate MCP tool policy name "${e.name}"`});return}n.add(e.name)})}),xe=l.object({type:l.literal(`stdio`),command:l.string(),args:l.array(l.string()).optional(),env:l.record(l.string(),l.string()).optional(),alwaysLoad:l.boolean().optional()}),m=l.object({url:l.string().url(),headers:l.record(l.string(),l.string()).optional(),tools:be.optional(),alwaysLoad:l.boolean().optional()}),Se=m.extend({type:l.literal(`sse`)}),Ce=m.extend({type:l.literal(`http`)}),h=l.discriminatedUnion(`type`,[xe,Se,Ce]),g=l.enum([`direct`,`discovery`,`hidden`]),_=g.exclude([`hidden`]),v=l.record(l.string(),g).optional(),y=l.string().max(256).refine(e=>(e.match(/\*/g)?.length??0)<=10,{message:`Pattern must contain at most 10 wildcard characters`}),we=l.object({transport:h,exposureMode:_.optional(),toolExposure:v}),Te=l.object({enabled:l.boolean(),maxAttempts:l.number().int().positive(),baseDelayMs:l.number().int().positive(),maxDelayMs:l.number().int().positive()}).refine(e=>e.maxDelayMs>=e.baseDelayMs,{message:`maxDelayMs must be >= baseDelayMs`,path:[`maxDelayMs`]});l.object({servers:l.record(l.string(),we),hideTools:l.array(y).optional(),exposeTools:l.array(y).optional(),defaultExposureMode:_.optional(),autoReconnect:Te.optional()}),l.object({servers:l.array(l.string()).optional(),exposeTools:l.array(y).optional(),hideTools:l.array(y).optional(),serverOverrides:l.record(l.string(),l.object({exposureMode:_.optional(),toolExposure:v})).optional()});const b=l.object({directTools:l.array(y).optional(),discoveryTools:l.array(y).optional(),toolExposure:v}),Ee=l.object({name:l.string(),transport:h,exposureMode:_}),x=l.object({fullName:l.string(),originalName:l.string(),serverName:l.string(),description:l.string().optional(),inputSchema:l.record(l.string(),l.unknown()),exposureMode:g,enabled:l.boolean(),enabledBy:l.enum([`discovery`,`toolset`]).optional(),enabledAt:l.number().int().nonnegative().optional(),exposed:l.boolean()}),S=l.object({sessionId:l.string(),projectId:l.string().nullable(),profileId:l.string().nullable(),servers:l.array(Ee),directTools:l.array(x),discoverableTools:l.array(x)}),C=S.omit({projectId:!0,profileId:!0}),De=l.object({agentId:l.string(),adapterId:l.string(),adapterName:l.string(),adapterSessionId:l.string(),sessionId:l.string()}),Oe={"server.connected":l.object({serverName:l.string(),toolCount:l.number().int().nonnegative()}),"server.disconnected":l.object({serverName:l.string(),reason:l.string()}),"server.reconnecting":l.object({serverName:l.string(),attempt:l.number().int().positive()}),"server.error":l.object({serverName:l.string(),error:l.string()}),"tools.updated":l.object({added:l.array(l.string()),removed:l.array(l.string())}),"tools.enabled":l.object({tools:l.array(l.string()),source:l.enum([`discovery`,`toolset`])}),"session.resolve":{request:l.object({sessionId:l.string(),profileId:l.string().nullable(),projectId:l.string().nullable(),profileMcpConfig:b.optional()}),response:S},"session.register":{request:De.extend({contextOverrides:he,pinned:l.boolean().optional()}),response:l.object({port:l.number().int().positive()})},"session.unregister":{request:l.object({adapterSessionId:l.string()}),response:l.object({})}},w=l.looseObject({kind:l.string(),providerConfigId:l.string().optional(),model:l.string().optional(),reasoningEffort:t.optional(),cwd:l.string().optional(),systemPrompt:o.optional(),allowedTools:l.array(l.string()).optional(),disallowedTools:l.array(l.string()).optional(),env:l.record(l.string(),l.string()).optional(),mcpSessionContext:C.optional(),allowedDirectories:l.array(l.string()).optional()}),ke=w.extend({kind:l.literal(`adapter`),adapterName:l.string().trim().min(1).optional(),adapterId:l.string().trim().min(1).optional()}).refine(e=>!!e.adapterName||!!e.adapterId,{message:`AdapterSelection requires at least one of 'adapterName' or 'adapterId'`}),T=w,E=l.object({providerConfigId:l.string(),definitionId:l.string(),endpointOverrides:i.optional(),credentialRefs:l.record(l.string(),r),credentialEnvVars:l.record(l.string(),l.string()).optional(),ambientCredentialEnvVars:l.array(l.string()).optional()}),Ae={request:l.object({adapterName:l.string().optional(),adapterId:l.string().optional()}).refine(e=>e.adapterName||e.adapterId,{message:`Either adapterName or adapterId must be provided`}),response:l.object({capabilities:l.array(l.string()),nativeTools:l.array(l.string())})},D=l.enum([`lead`,`member`]),O=l.enum([`fork`,`branch`,`subagent`,`compress`,`rewrite`,`coordinator`,`aside`]),k=l.enum([`parent-history`,`none`]),A=l.enum([`discovered`,`imported`,`tracking`]),je=l.object({sessionId:l.string(),title:l.string().nullable(),forkPointMessageId:l.string().nullable(),branchKind:O.nullable(),messageCount:l.number(),hasChildren:l.boolean(),spawningToolCallId:l.string().optional()}),Me=l.object({fromMessageId:l.string(),toMessageId:l.string(),policy:l.enum([`verbatim`,`summarize`,`exclude`]),stripReasoning:l.boolean().optional(),stripToolOutputs:l.boolean().optional(),overrides:l.record(l.string(),l.literal(`exclude`)).optional(),summaryText:l.string().optional()}),j=l.object({removedMessageIds:l.array(l.string()).optional(),appliedPipeline:l.array(l.object({actionId:l.string(),options:l.record(l.string(),l.unknown()).optional()})).optional(),segments:l.array(Me).optional()}),Ne=l.object({parentSessionId:l.string(),childSessionId:l.string(),summary:l.string().optional(),source:l.enum([`extension`,`user`,`system`]).optional(),extensionId:l.string().optional()}),Pe=l.object({success:l.boolean(),handoff:l.string().optional()}),Fe=l.object({parentSessionId:l.string(),childSessionId:l.string(),source:l.enum([`extension`,`user`,`system`]).optional(),extensionId:l.string().optional()}),Ie=l.object({success:l.boolean()}),Le=l.object({sessionId:l.string()}),Re=l.object({children:l.array(je)}),ze=l.object({parentSessionId:l.string(),childSessionId:l.string(),reason:l.string()}),Be=l.object({parentSessionId:l.string(),childSessionId:l.string(),forkPoint:l.string().optional()}),Ve=l.object({parentSessionId:l.string(),childSessionId:l.string()}),He=l.object({parentSessionId:l.string(),childSessionId:l.string(),handoff:l.string()}),Ue=l.object({sessionId:l.string(),parentSessionId:l.string().optional()}),We=l.object({parentSessionId:l.string(),childSessionId:l.string(),result:l.unknown()}),Ge=l.object({sessionId:l.string(),reason:l.string(),source:l.enum([`extension`,`user`,`system`]).optional(),extensionId:l.string().optional()}),Ke=l.object({sessionId:l.string(),pipeline:l.array(l.object({actionId:l.string(),options:l.record(l.string(),l.unknown()).optional()}))}),qe=l.object({eventId:l.string(),contextJson:l.record(l.string(),l.unknown()),tokensBefore:l.number(),tokensAfter:l.number().optional()}),Je=l.object({sessionId:l.string(),childSessionId:l.string(),parentSessionId:l.string(),kind:O,forkPointMessageId:l.string().optional(),transforms:j.optional()}),Ye=l.object({sessionId:l.string(),childSessionId:l.string(),parentSessionId:l.string(),resultJson:l.string().optional(),resultMessageId:l.string().optional()}),Xe=l.object({sessionId:l.string(),summaryJson:l.string(),tokensBefore:l.number().optional(),tokensAfter:l.number().optional(),compressedMessageIds:l.array(l.string()).optional()}),Ze=l.object({sessionId:l.string(),parentSessionId:l.string().nullable(),branchKind:O.nullable(),createdAt:l.number(),originWindowId:l.string().optional()}),Qe=l.object({sessionId:l.string(),changedProperties:l.array(l.string())}),$e={merge:{request:Ne,response:Pe},abandon:{request:Fe,response:Ie},getChildren:{request:Le,response:Re},forking:ze,forked:Be,merging:Ve,merged:He,abandoned:Ue,childCompleted:We,compressionRequested:Ge,"branch.created":Je,"branch.merged":Ye,squash:Xe,created:Ze,updated:Qe,compress:{request:Ke,response:qe}},et=w.safeExtend({kind:l.literal(`canonical-model`),model:l.string().trim().min(1)}),M=l.object({messageHistory:l.array(a).optional(),hasNewTransforms:l.boolean().optional(),hasCompression:l.boolean().optional(),extractedContext:l.unknown().optional(),isFirstTurn:l.boolean().optional(),hasConnectorSwap:l.boolean().optional(),turnContext:l.record(l.string(),e).optional()}),N=ee,P=l.enum([`user`,`assistant`]),F=l.enum([`voice`,`text`,`compact`]),I=l.object({messageId:l.string(),turnId:l.string().nullable(),sessionId:l.string(),role:P,contentText:l.string(),blocks:l.array(N),agentId:l.string().optional(),adapterSessionId:l.string().optional(),adapterMessageId:l.string().optional(),timestamp:l.number(),editOf:l.string().optional(),origin:F.optional()}),L=l.enum([`active`,`completed`,`error`]),R=l.object({inputTokens:l.number(),outputTokens:l.number(),cost:l.number().optional()}),z=l.object({total:R,byAgent:l.record(l.string(),R).optional()}),B=l.object({turnId:l.string(),sessionId:l.string(),turnNumber:l.number().int().min(1),startedAt:l.number(),completedAt:l.number().optional(),status:L,error:l.string().optional(),usage:z.optional()}),V=l.enum([`sent`,`acknowledged`,`completed`]),tt=l.object({messageId:l.string(),agentId:l.string(),status:V,timestamp:l.number(),error:l.string().optional()}),H=l.object({source:l.enum([`user`,`extension`,`system`]),sourceId:l.string().optional()}),U=l.object({sessionId:l.string(),turnId:l.string(),turnNumber:l.number().int().min(1)}),W=U.extend({messageId:l.string()}),nt=w.safeExtend({kind:l.string().regex(/^(?!(?:adapter|canonical-model)$).+$/)}),rt=l.union([ke,et,nt]),G={sendMessage:{request:l.object({sessionId:l.string(),message:s,agent:rt.optional(),agentIds:l.union([l.array(l.string()),l.literal(`all`)]).optional(),deliveryMode:l.enum([`enqueue`]).optional(),turnId:l.string().optional(),sessionContext:M.optional(),responseSchema:c.optional(),source:l.enum([`extension`,`user`,`system`]).optional(),extensionId:l.string().optional(),originWindowId:l.string().optional(),skipConnectorSwapWarning:l.boolean().optional(),origin:F.optional()}),response:l.object({messageId:l.string(),turnId:l.string(),sessionId:l.string()})},"agent.attach":{request:l.object({sessionId:l.string(),agent:T,initialMessage:s.optional(),role:l.enum([`lead`,`member`]).optional()}),response:l.object({agentId:l.string(),adapterSessionId:l.string(),role:l.enum([`lead`,`member`]),messageId:l.string().optional(),turnId:l.string().optional()})},"turn.started":U.extend({messageId:l.string(),agentIds:l.array(l.string()),initiator:H.optional()}),"turn.completed":U.extend({success:l.boolean(),error:l.string().optional(),initiator:H.optional()}),"user_message.sent":W.extend({content:s,agentIds:l.array(l.string()),source:l.enum([`extension`,`user`,`system`]).optional(),origin:F.optional()}),"user_message.acknowledged":W.extend({agentId:l.string()}),"user_message.completed":W.extend({agentId:l.string(),outcome:ne,supersededBy:l.string().optional(),mergedInto:l.string().optional(),error:l.string().optional()}),fork:{request:l.object({sourceSessionId:l.string(),fromMessageId:l.string().optional(),name:l.string().optional(),branchKind:l.enum([`fork`,`branch`,`aside`]).optional(),transforms:j.optional(),targetWorkingDirectory:l.string().optional(),existingSessionId:l.string().optional()}),response:l.object({sessionId:l.string()})},usage:{request:l.object({sessionId:l.string(),totalInputTokens:l.number(),totalOutputTokens:l.number(),totalTokens:l.number(),totalCalls:l.number(),adapterCount:l.number()}),response:l.object({acknowledged:l.literal(!0)})}},it=l.enum([`auto`,`manual`,`off`]),at=l.enum([`idle`,`active`,`dead`,`disposed`]),K=l.object({agentId:l.string(),adapterId:l.string(),adapterName:l.string(),sessionId:l.string(),adapterSessionId:l.string().optional(),model:l.string().optional(),cwd:l.string().optional(),providerConfigId:l.string().optional(),personaId:l.string().optional(),profileId:l.string().optional(),harnessId:l.string().optional(),clientId:l.string().optional(),compressionMode:it.optional(),role:D,status:at,createdAt:l.number(),lastActivityAt:l.number()}),q=l.object({sessionId:l.string(),createdAt:l.number(),lastActivityAt:l.number(),agents:l.array(K),status:l.enum([`active`,`closed`,`archived`,`discovered`]),leadAgentId:l.string().optional(),parentSessionId:l.string().optional(),contextInheritance:k.optional(),rootSessionId:l.string().optional(),forkPointMessageId:l.string().optional(),branchKind:O.optional(),adapterName:l.string().optional(),adapterSessionId:l.string().optional(),adapterId:l.string().optional(),clientId:l.string().optional(),clientAccountId:l.string().optional(),lastClientIdentityObservation:ae.optional(),isOrchestrated:l.boolean().optional(),title:l.string().optional(),summary:l.string().optional(),summaryUpdatedAt:l.number().optional(),isImported:l.boolean().optional(),forkTransforms:j.optional(),targetWorkingDirectory:l.string().optional(),executionTargetId:l.string().optional(),spawningToolCallId:l.string().optional(),approvalPolicyOverride:re.nullable().optional(),source:l.string().optional(),parentExternalSessionId:l.string().optional(),logFilePath:l.string().optional(),discoveredAt:l.number().optional(),importStatus:A.optional()}),ot=l.object({messageCount:l.number(),firstUserMessage:l.string().nullable()}),J=q.extend({preview:ot.optional()}),st={list:{request:se.schema(l.object({status:l.enum([`active`,`closed`,`archived`,`discovered`,`all`]).optional(),limit:l.number().int().min(1).optional(),offset:se.hidden(l.number().int().min(0).optional()),includePreview:l.boolean().optional(),executionTargetId:l.string().optional()}),{traceAll:!0}),response:l.object({sessions:l.array(J),total:l.number()})},search:{request:l.object({query:l.string(),limit:l.number().int().min(1).optional(),status:l.enum([`active`,`closed`,`archived`,`discovered`,`all`]).optional(),isImported:l.boolean().optional()}),response:l.object({sessions:l.array(J),total:l.number()})},get:{request:l.object({sessionId:l.string()}),response:l.object({session:q.nullable()})},create:{request:l.object({sessionId:l.string().optional(),parentSessionId:l.string().optional(),contextInheritance:k.optional(),forkPointMessageId:l.string().optional(),branchKind:O.optional(),forkTransforms:j.optional(),title:l.string().optional(),targetWorkingDirectory:l.string().optional(),executionTargetId:l.string().optional(),spawningToolCallId:l.string().optional(),originWindowId:l.string().optional()}).superRefine((e,t)=>{e.spawningToolCallId&&e.branchKind!==`subagent`&&t.addIssue({code:l.ZodIssueCode.custom,path:[`spawningToolCallId`],message:`spawningToolCallId is only valid for subagent sessions`})}),response:l.object({sessionId:l.string()})},close:{request:l.object({sessionId:l.string()}),response:l.object({success:l.boolean()})},resume:{request:l.object({sessionId:l.string()}),response:l.object({success:l.boolean()})},archive:{request:l.object({sessionId:l.string()}),response:l.object({success:l.boolean()})},purge:{request:l.object({sessionId:l.string()}),response:l.object({success:l.boolean(),eventsDeleted:l.number().optional(),error:l.string().optional()})},update:{request:l.object({sessionId:l.string(),executionTargetId:l.string().nullable().optional(),approvalPolicyOverride:re.nullable().optional(),title:l.string().optional()}),response:l.object({success:l.boolean()})},getByAdapterSessionId:{request:l.object({adapterSessionId:l.string()}),response:l.object({session:q.nullable()})},getStatusCounts:{request:l.object({}),response:l.object({all:l.number(),active:l.number(),closed:l.number(),archived:l.number(),discovered:l.number()})}},Y=l.object({sessionId:l.string(),eventId:l.string(),timestamp:l.number()}),ct=l.discriminatedUnion(`type`,[Y.extend({type:l.literal(`agent.added`),payload:l.object({sessionId:l.string(),adapterSessionId:l.string(),agentId:l.string(),adapterId:l.string(),adapterName:l.string(),role:l.enum([`lead`,`member`]).optional(),model:l.string().optional(),cwd:l.string().optional()})}),Y.extend({type:l.literal(`user_message.sent`),payload:G[`user_message.sent`]}),Y.extend({type:l.literal(`user_message.acknowledged`),payload:G[`user_message.acknowledged`]}),Y.extend({type:l.literal(`user_message.completed`),payload:G[`user_message.completed`]}),Y.extend({type:l.literal(`turn.started`),payload:G[`turn.started`]}),Y.extend({type:l.literal(`turn.completed`),payload:G[`turn.completed`]}),Y.extend({type:l.literal(`message`),payload:l.object({messageId:l.string(),turnId:l.string().nullable(),role:l.enum([`user`,`assistant`])})}),Y.extend({type:l.literal(`branch.created`),payload:l.object({childSessionId:l.string(),parentSessionId:l.string(),kind:O,forkPointMessageId:l.string().optional()})}),Y.extend({type:l.literal(`branch.merged`),payload:l.object({childSessionId:l.string(),parentSessionId:l.string(),resultJson:l.string().optional(),resultMessageId:l.string().optional()})}),Y.extend({type:l.literal(`squash`),payload:l.object({summaryJson:l.string(),tokensBefore:l.number().optional(),tokensAfter:l.number().optional(),compressedMessageIds:l.array(l.string()).optional()})})]),lt=[`message`,`agent.added`,`turn.started`,`turn.completed`,`user_message.sent`,`user_message.acknowledged`,`user_message.completed`,`branch.created`,`branch.merged`,`squash`],ut=lt,dt=Y.extend({type:l.string().refine(e=>!lt.includes(e),{message:`Plugin session event type must not shadow a core event type.`}),payload:l.record(l.string(),l.unknown())}),X=l.union([ct,dt]),ft=l.string(),pt=l.object({sessionId:l.string().min(1),clientId:l.string().min(1),previousClientAccountId:l.string().min(1).nullable(),clientAccountId:l.string().min(1),source:l.string().min(1),observedAt:l.number().int().finite().nonnegative(),lastClientIdentityObservation:ae}),mt=l.object({sessionId:l.string(),importStatus:A}),ht={"agent.added":l.object({sessionId:l.string(),adapterSessionId:l.string(),agentId:l.string(),adapterId:l.string(),adapterName:l.string(),role:D.optional(),model:l.string().optional(),cwd:l.string().optional()}),"agent.removed":l.object({sessionId:l.string(),agentId:l.string()}),closed:l.object({sessionId:l.string(),reason:l.string().optional()}),resumed:l.object({sessionId:l.string()}),archived:l.object({sessionId:l.string()}),purged:l.object({sessionId:l.string()}),compressed:l.object({sessionId:l.string(),eventId:l.string()}),"clientAccount.changed":pt,"connectorSwap.editRequested":l.object({sessionId:l.string(),agentId:l.string(),previousCwd:l.string().optional(),newCwd:l.string().optional(),previousModel:l.string().optional(),newModel:l.string().optional()}),getContextWindowState:{request:l.object({sessionId:l.string()}),response:l.object({state:l.object({currentTokens:l.number(),maxTokens:l.number(),percentage:l.number(),level:l.enum([`ok`,`warn`,`critical`]),lastUpdatedAt:l.number()}).nullable()})},importStatusChanged:mt,"import.completed":l.object({sessionId:l.string(),adapterSessionId:l.string(),source:l.string()}),event:X},Z=l.object({includeEvents:l.boolean().default(!1),includeToolOutputs:l.boolean().default(!1),includeAncestors:l.boolean().default(!0),includeChildren:l.boolean().default(!1)}),gt=`1.0`,Q=l.object({version:l.literal(`1.0`),exportedAt:l.number(),options:Z,sessions:l.array(q),agents:l.array(K),messages:l.array(I),turns:l.array(B),events:l.array(X).optional()});function _t(e){return Q.parse(e)}function vt(e){let t=Q.safeParse(e);return t.success?{success:!0,data:t.data}:{success:!1,error:t.error}}const yt={"snapshot.export":{request:l.object({sessionId:l.string(),options:Z.optional()}),response:l.object({snapshot:Q})},"snapshot.import":{request:l.object({snapshot:Q,onConflict:l.enum([`fail`,`skip`,`overwrite`]).default(`fail`)}),response:l.object({imported:l.array(l.string()),skipped:l.array(l.string()),errors:l.array(l.object({sessionId:l.string(),error:l.string()}))})},"snapshot.validate":{request:l.object({snapshot:l.unknown()}),response:l.object({valid:l.boolean(),errors:l.array(l.string())})}},bt={resolveAgentConfig:{request:l.object({selection:T,projectId:l.string().optional()}),response:l.object({adapterName:l.string(),model:l.string().optional(),providerConfigId:l.string().optional(),reasoningEffort:t.optional(),supportedReasoningLevels:n.optional(),systemPrompt:o.optional(),allowedTools:l.array(l.string()).optional(),disallowedTools:l.array(l.string()).optional(),allowedDirectories:l.array(l.string()).optional()})}},xt={resolveSystemPrompt:{request:l.object({sessionId:l.string(),personaId:l.string().optional(),profileId:l.string().optional()}),response:l.object({systemPrompt:l.string(),personaName:l.string().optional(),profileName:l.string().optional()})}},St={enrichContext:{request:l.object({sessionId:l.string()}),response:l.record(l.string(),l.unknown())}},Ct={...st,...ht,...yt,...$e,...G,...bt,...xt,...St},$=l.object({adapterId:l.string(),harnessId:l.string().optional(),clientId:l.string().optional(),clientProfileName:ie.optional(),initialMessage:s.optional(),responseSchema:c.optional(),model:l.string().optional(),reasoningEffort:t.optional(),env:l.record(l.string(),l.string()).optional(),role:D,sessionContext:M.optional(),mcpSessionContext:l.union([S,C]).optional(),providerContext:E.optional(),ephemeral:l.boolean().optional()}).merge(ce),wt={request:l.union([$.extend({mode:l.literal(`fork`),sessionId:l.string(),sourceSessionId:l.string()}),$.extend({mode:l.literal(`resume`),sessionId:l.string(),adapterSessionId:l.string()}),$.extend({mode:l.literal(`create`).optional(),sessionId:l.string().optional()})]).superRefine((e,t)=>{let n=e.mode??`create`;e.ephemeral&&n!==`create`&&t.addIssue({code:l.ZodIssueCode.custom,path:[`ephemeral`],message:`ephemeral is only supported for create mode`}),e.ephemeral&&e.initialMessage===void 0&&t.addIssue({code:l.ZodIssueCode.custom,path:[`initialMessage`],message:`ephemeral startAgent requires initialMessage`})}),response:l.discriminatedUnion(`success`,[l.object({success:l.literal(!0),agentId:l.string(),adapterId:l.string(),adapterSessionId:l.string(),sessionId:l.string(),messageId:l.string().optional()}),l.object({success:l.literal(!1),message:l.string()})])},Tt={request:l.object({adapterId:l.string(),prompt:l.string(),model:l.string().optional(),systemPrompt:l.string().optional(),responseSchema:c.optional(),providerContext:E.optional()}),response:l.object({text:l.string(),usage:l.object({inputTokens:l.number(),outputTokens:l.number()}).optional()})},Et={request:l.object({adapterId:l.string()}),response:l.object({agents:l.array(l.object({agentId:l.string(),sessionId:l.string(),adapterSessionId:l.string()}))})},Dt={request:l.object({adapterId:l.string(),agentId:l.string()}),response:l.object({agent:l.object({agentId:l.string(),sessionId:l.string(),adapterSessionId:l.string()}).nullable()})},Ot={request:l.object({adapterId:l.string(),agentId:l.string()}),response:l.object({success:l.boolean()})},kt={request:l.object({adapterId:l.string(),agentId:l.string(),cwd:l.string().optional(),model:l.string().optional()}),response:l.object({})},At={request:l.object({adapterName:l.string()}),response:l.object({found:l.boolean(),adapterName:l.string(),jsonSchema:l.record(l.string(),l.unknown()).nullable()})},jt=u.extend({agentId:l.string(),sessionId:l.string(),adapterSessionId:l.string().optional()}),Mt=u.extend({adapterSessionId:l.string(),sessionId:l.string(),model:l.string()}),Nt=u.extend({sessionId:l.string(),adapterSessionId:l.string(),totalInputTokens:l.number(),totalOutputTokens:l.number(),totalCalls:l.number()}),Pt=u.extend({agentId:l.string(),sessionId:l.string(),adapterSessionId:l.string(),reason:l.string().optional()}),Ft=u.extend({message:l.string(),timestamp:l.number(),level:l.enum([`debug`,`info`,`warn`,`error`]).optional()}),It=u.extend({error:l.string(),sessionId:l.string().optional(),errorCategory:te.optional()}),Lt=u.extend({capabilities:l.array(l.string()),nativeTools:l.array(l.string()).optional()}),Rt=u.extend({provider:l.string(),quotaType:l.string(),limit:l.number(),used:l.number(),overage:l.number(),resetDate:l.string()}),zt=l.object({agentId:l.string(),adapterId:l.string(),adapterName:l.string(),sessionId:l.string().optional(),adapterSessionId:l.string(),messageId:l.string().optional(),turnId:l.string().optional(),clientId:l.string().optional(),providerConfigId:l.string().optional(),occurredAt:l.number().optional()}),Bt=l.object({model:l.string().nullable(),cwd:l.string().nullable()}),Vt=zt.merge(Bt),Ht=u.merge(Bt).extend({adapterSessionId:l.string(),title:l.string().optional(),logFilePath:l.string().nullable().optional(),startedAt:l.number().finite().optional()}).and(oe);export{Ze as $,X as A,tt as B,gt as C,_t as D,vt as E,J as F,I as G,N as H,at as I,z as J,B as K,K as L,ft as M,q as N,pt as O,ot as P,Me as Q,it as R,bt as S,Z as T,F as U,V,P as W,M as X,R as Y,j as Z,Tt as _,y as _t,Lt as a,k as at,St as b,le as bt,Pt as c,ke as ct,jt as d,Te as dt,Qe as et,At as f,g as ft,Et as g,Oe as gt,Dt as h,C as ht,Rt as i,A as it,ut as j,mt as k,Nt as l,w as lt,Ot as m,b as mt,Vt as n,D as nt,It as o,Ae as ot,kt as p,_ as pt,L as q,zt as r,O as rt,Ft as s,E as st,Ht as t,je as tt,Mt as u,T as ut,wt as v,h as vt,Q as w,xt as x,ce as xt,Ct as y,ve as yt,H as z};
|