agor-live 0.21.2 → 0.22.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/commands/branch/env/restart.js +1 -1
- package/dist/cli/commands/branch/env/start.js +1 -1
- package/dist/cli/commands/branch/env/stop.js +1 -1
- package/dist/core/api/index.cjs +5 -1
- package/dist/core/api/index.d.ts +6 -1
- package/dist/core/api/index.d.ts.map +1 -1
- package/dist/core/api/index.js +5 -1
- package/dist/core/claude/index.cjs +162 -14
- package/dist/core/claude/index.js +166 -18
- package/dist/core/client/index.cjs +43 -3
- package/dist/core/client/index.js +37 -3
- package/dist/core/config/browser.cjs +2 -2
- package/dist/core/config/browser.js +2 -2
- package/dist/core/config/config-manager.d.ts.map +1 -1
- package/dist/core/config/constants.d.ts +1 -1
- package/dist/core/config/index.cjs +174 -20
- package/dist/core/config/index.js +178 -24
- package/dist/core/config/types.d.ts +8 -0
- package/dist/core/config/types.d.ts.map +1 -1
- package/dist/core/db/index.cjs +495 -86
- package/dist/core/db/index.js +482 -75
- package/dist/core/db/repositories/artifacts.d.ts.map +1 -1
- package/dist/core/db/repositories/branches.d.ts +13 -1
- package/dist/core/db/repositories/branches.d.ts.map +1 -1
- package/dist/core/db/repositories/gateway-channels.d.ts.map +1 -1
- package/dist/core/db/repositories/index.d.ts +1 -0
- package/dist/core/db/repositories/index.d.ts.map +1 -1
- package/dist/core/db/repositories/session-relationships.d.ts +30 -0
- package/dist/core/db/repositories/session-relationships.d.ts.map +1 -0
- package/dist/core/db/repositories/users.d.ts +11 -0
- package/dist/core/db/repositories/users.d.ts.map +1 -1
- package/dist/core/db/schema.d.ts +421 -4
- package/dist/core/db/schema.d.ts.map +1 -1
- package/dist/core/db/schema.postgres.d.ts +226 -2
- package/dist/core/db/schema.postgres.d.ts.map +1 -1
- package/dist/core/db/schema.sqlite.d.ts +228 -2
- package/dist/core/db/schema.sqlite.d.ts.map +1 -1
- package/dist/core/drizzle/postgres/0050_artifact_source_session.sql +3 -0
- package/dist/core/drizzle/postgres/0051_session_relationships.sql +26 -0
- package/dist/core/drizzle/postgres/meta/_journal.json +14 -0
- package/dist/core/drizzle/sqlite/0059_artifact_source_session.sql +2 -0
- package/dist/core/drizzle/sqlite/0060_session_relationships.sql +23 -0
- package/dist/core/drizzle/sqlite/meta/_journal.json +14 -0
- package/dist/core/gateway/connector-registry.d.ts.map +1 -1
- package/dist/core/gateway/connector.d.ts +22 -0
- package/dist/core/gateway/connector.d.ts.map +1 -1
- package/dist/core/gateway/connectors/slack.d.ts +35 -3
- package/dist/core/gateway/connectors/slack.d.ts.map +1 -1
- package/dist/core/gateway/connectors/teams.d.ts +107 -0
- package/dist/core/gateway/connectors/teams.d.ts.map +1 -0
- package/dist/core/gateway/context.d.ts.map +1 -1
- package/dist/core/gateway/index.cjs +552 -52
- package/dist/core/gateway/index.d.ts +3 -2
- package/dist/core/gateway/index.d.ts.map +1 -1
- package/dist/core/gateway/index.js +544 -52
- package/dist/core/gateway/system-message.d.ts +21 -0
- package/dist/core/gateway/system-message.d.ts.map +1 -1
- package/dist/core/index.cjs +616 -127
- package/dist/core/index.js +597 -116
- package/dist/core/mcp/index.cjs +146 -9
- package/dist/core/mcp/index.js +146 -9
- package/dist/core/mcp/template-resolver.d.ts.map +1 -1
- package/dist/core/seed/index.cjs +375 -59
- package/dist/core/seed/index.js +378 -62
- package/dist/core/sessions/index.cjs +19 -0
- package/dist/core/sessions/index.js +19 -0
- package/dist/core/templates/agor-system-prompt.md +21 -53
- package/dist/core/templates/session-context.cjs +2 -73
- package/dist/core/templates/session-context.d.ts +9 -53
- package/dist/core/templates/session-context.d.ts.map +1 -1
- package/dist/core/templates/session-context.js +2 -72
- package/dist/core/tools/mcp/jwt-auth.cjs +2 -20
- package/dist/core/tools/mcp/jwt-auth.d.ts.map +1 -1
- package/dist/core/tools/mcp/jwt-auth.js +2 -20
- package/dist/core/tools/mcp/oauth-mcp-transport.cjs +2 -15
- package/dist/core/tools/mcp/oauth-mcp-transport.d.ts.map +1 -1
- package/dist/core/tools/mcp/oauth-mcp-transport.js +2 -15
- package/dist/core/tools/mcp/oauth-refresh.cjs +167 -19
- package/dist/core/tools/mcp/oauth-refresh.js +167 -19
- package/dist/core/types/artifact.d.ts +5 -1
- package/dist/core/types/artifact.d.ts.map +1 -1
- package/dist/core/types/branch.d.ts +14 -0
- package/dist/core/types/branch.d.ts.map +1 -1
- package/dist/core/types/gateway.d.ts +1 -1
- package/dist/core/types/gateway.d.ts.map +1 -1
- package/dist/core/types/id.d.ts +1 -0
- package/dist/core/types/id.d.ts.map +1 -1
- package/dist/core/types/index.cjs +36 -0
- package/dist/core/types/index.js +30 -0
- package/dist/core/types/session.d.ts +65 -1
- package/dist/core/types/session.d.ts.map +1 -1
- package/dist/core/types/task.d.ts +9 -0
- package/dist/core/types/task.d.ts.map +1 -1
- package/dist/core/unix/index.cjs +371 -55
- package/dist/core/unix/index.js +374 -58
- package/dist/core/unix/unix-integration-service.d.ts +10 -7
- package/dist/core/unix/unix-integration-service.d.ts.map +1 -1
- package/dist/core/utils/permission-mode-mapper.cjs +19 -0
- package/dist/core/utils/permission-mode-mapper.js +19 -0
- package/dist/daemon/declarations.d.ts +7 -0
- package/dist/daemon/declarations.d.ts.map +1 -1
- package/dist/daemon/hooks/gateway-route.d.ts.map +1 -1
- package/dist/daemon/hooks/gateway-route.js +53 -1
- package/dist/daemon/index.js +3760 -2107
- package/dist/daemon/main.js +3760 -2107
- package/dist/daemon/mcp/server.js +155 -17
- package/dist/daemon/mcp/tools/analytics.js +6 -7
- package/dist/daemon/mcp/tools/artifacts.d.ts.map +1 -1
- package/dist/daemon/mcp/tools/artifacts.js +7 -7
- package/dist/daemon/mcp/tools/boards.js +6 -7
- package/dist/daemon/mcp/tools/branches.js +6 -7
- package/dist/daemon/mcp/tools/card-types.js +6 -7
- package/dist/daemon/mcp/tools/cards.js +6 -7
- package/dist/daemon/mcp/tools/environment.d.ts.map +1 -1
- package/dist/daemon/mcp/tools/environment.js +19 -12
- package/dist/daemon/mcp/tools/knowledge.js +6 -7
- package/dist/daemon/mcp/tools/mcp-servers.js +6 -7
- package/dist/daemon/mcp/tools/messages.js +6 -7
- package/dist/daemon/mcp/tools/proxies.js +6 -7
- package/dist/daemon/mcp/tools/repos.js +6 -7
- package/dist/daemon/mcp/tools/schedules.js +6 -7
- package/dist/daemon/mcp/tools/search.js +6 -7
- package/dist/daemon/mcp/tools/sessions.d.ts.map +1 -1
- package/dist/daemon/mcp/tools/sessions.js +140 -11
- package/dist/daemon/mcp/tools/tasks.js +6 -7
- package/dist/daemon/mcp/tools/users.js +6 -7
- package/dist/daemon/mcp/tools/widgets.js +7 -8
- package/dist/daemon/register-hooks.d.ts +5 -1
- package/dist/daemon/register-hooks.d.ts.map +1 -1
- package/dist/daemon/register-hooks.js +404 -179
- package/dist/daemon/register-routes.d.ts.map +1 -1
- package/dist/daemon/register-routes.js +360 -162
- package/dist/daemon/register-services.d.ts.map +1 -1
- package/dist/daemon/register-services.js +1928 -671
- package/dist/daemon/services/artifacts.d.ts +10 -1
- package/dist/daemon/services/artifacts.d.ts.map +1 -1
- package/dist/daemon/services/artifacts.js +25 -1
- package/dist/daemon/services/branches.d.ts +11 -1
- package/dist/daemon/services/branches.d.ts.map +1 -1
- package/dist/daemon/services/branches.js +470 -184
- package/dist/daemon/services/claude-models.js +879 -339
- package/dist/daemon/services/gateway.d.ts +58 -2
- package/dist/daemon/services/gateway.d.ts.map +1 -1
- package/dist/daemon/services/gateway.js +590 -47
- package/dist/daemon/services/groups.d.ts +2 -0
- package/dist/daemon/services/groups.d.ts.map +1 -1
- package/dist/daemon/services/groups.js +56 -0
- package/dist/daemon/services/mcp-servers.d.ts.map +1 -1
- package/dist/daemon/services/mcp-servers.js +0 -6
- package/dist/daemon/services/scheduler.d.ts.map +1 -1
- package/dist/daemon/services/scheduler.js +6 -2
- package/dist/daemon/services/sessions.d.ts +11 -3
- package/dist/daemon/services/sessions.d.ts.map +1 -1
- package/dist/daemon/services/sessions.js +68 -7
- package/dist/daemon/services/tasks.d.ts +13 -2
- package/dist/daemon/services/tasks.d.ts.map +1 -1
- package/dist/daemon/services/tasks.js +42 -26
- package/dist/daemon/startup.js +6 -2
- package/dist/daemon/utils/session-stop.d.ts +43 -0
- package/dist/daemon/utils/session-stop.d.ts.map +1 -0
- package/dist/daemon/utils/session-stop.js +102 -0
- package/dist/daemon/utils/session-task-state.d.ts +7 -2
- package/dist/daemon/utils/session-task-state.d.ts.map +1 -1
- package/dist/daemon/utils/session-task-state.js +9 -3
- package/dist/daemon/utils/session-tasks.d.ts +4 -4
- package/dist/daemon/utils/session-tasks.d.ts.map +1 -1
- package/dist/daemon/utils/session-tasks.js +4 -8
- package/dist/executor/commands/environment.d.ts +13 -0
- package/dist/executor/commands/environment.d.ts.map +1 -0
- package/dist/executor/commands/environment.js +287 -0
- package/dist/executor/commands/index.d.ts.map +1 -1
- package/dist/executor/commands/index.js +5 -1
- package/dist/executor/commands/unix.d.ts +8 -1
- package/dist/executor/commands/unix.d.ts.map +1 -1
- package/dist/executor/commands/unix.js +157 -2
- package/dist/executor/payload-types.d.ts +201 -5
- package/dist/executor/payload-types.d.ts.map +1 -1
- package/dist/executor/payload-types.js +98 -0
- package/dist/executor/sdk-handlers/base/mcp-scoping.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/base/mcp-scoping.js +14 -0
- package/dist/executor/sdk-handlers/claude/message-processor.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/claude/message-processor.js +0 -1
- package/dist/executor/sdk-handlers/claude/query-builder.d.ts +1 -0
- package/dist/executor/sdk-handlers/claude/query-builder.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/claude/query-builder.js +91 -39
- package/dist/executor/sdk-handlers/codex/prompt-service.d.ts +12 -5
- package/dist/executor/sdk-handlers/codex/prompt-service.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/codex/prompt-service.js +72 -30
- package/dist/executor/sdk-handlers/copilot/prompt-service.d.ts +2 -4
- package/dist/executor/sdk-handlers/copilot/prompt-service.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/copilot/prompt-service.js +4 -13
- package/dist/executor/sdk-handlers/gemini/prompt-service.d.ts +2 -4
- package/dist/executor/sdk-handlers/gemini/prompt-service.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/gemini/prompt-service.js +4 -13
- package/dist/ui/assets/App-DcEY8Ota.js +3 -0
- package/dist/ui/assets/App-DcEY8Ota.js.gz +0 -0
- package/dist/ui/assets/{ArtifactConsentModal-ParNk5kW.js → ArtifactConsentModal-CiCbK9iv.js} +1 -1
- package/dist/ui/assets/ArtifactConsentModal-CiCbK9iv.js.gz +0 -0
- package/dist/ui/assets/ArtifactFullscreenPage-CfsTEGKd.js +9 -0
- package/dist/ui/assets/ArtifactFullscreenPage-CfsTEGKd.js.gz +0 -0
- package/dist/ui/assets/AutocompleteTextarea-BAFFH_5e.js +18 -0
- package/dist/ui/assets/AutocompleteTextarea-BAFFH_5e.js.gz +0 -0
- package/dist/ui/assets/BoardObjectNodes-D-O6bZIG.js +34 -0
- package/dist/ui/assets/BoardObjectNodes-D-O6bZIG.js.gz +0 -0
- package/dist/ui/assets/{CodeEditor.inner-D51Z_CLQ.js → CodeEditor.inner-DBgsP4tn.js} +2 -2
- package/dist/ui/assets/CodeEditor.inner-DBgsP4tn.js.gz +0 -0
- package/dist/ui/assets/ConversationView-CUWR0gR6.js +1 -0
- package/dist/ui/assets/ConversationView-CUWR0gR6.js.gz +0 -0
- package/dist/ui/assets/KnowledgePage-B2bzlXfn.js +24 -0
- package/dist/ui/assets/KnowledgePage-B2bzlXfn.js.gz +0 -0
- package/dist/ui/assets/MarketingScreenshotPage-9Qd7eZsm.css +1 -0
- package/dist/ui/assets/MarketingScreenshotPage-zv5RUCuV.js +143 -0
- package/dist/ui/assets/MarketingScreenshotPage-zv5RUCuV.js.gz +0 -0
- package/dist/ui/assets/MobileApp-VgVnsnsN.js +1 -0
- package/dist/ui/assets/MobileApp-VgVnsnsN.js.gz +0 -0
- package/dist/ui/assets/SessionCanvas-f1-1Gbcw.js +20 -0
- package/dist/ui/assets/SessionCanvas-f1-1Gbcw.js.gz +0 -0
- package/dist/ui/assets/{App-BAdBsEnV.css → SessionCanvas-mEmYGZhC.css} +1 -1
- package/dist/ui/assets/SessionCanvas-mEmYGZhC.css.gz +0 -0
- package/dist/ui/assets/{StreamdownDemoPage-B9wbgp2s.js → StreamdownDemoPage-wzWaqWwr.js} +1 -1
- package/dist/ui/assets/StreamdownDemoPage-wzWaqWwr.js.gz +0 -0
- package/dist/ui/assets/{ThemeSwitcher-ubn6IOz9.js → ThemeSwitcher-Dly2y9pi.js} +1 -1
- package/dist/ui/assets/ThemeSwitcher-Dly2y9pi.js.gz +0 -0
- package/dist/ui/assets/antd-CfbbHJOz.js +401 -0
- package/dist/ui/assets/antd-CfbbHJOz.js.gz +0 -0
- package/dist/ui/assets/architecture-U656AL7Q-CykGFbQU.js +1 -0
- package/dist/ui/assets/{architectureDiagram-VXUJARFQ-ChmZt3zk.js → architectureDiagram-VXUJARFQ-C8HXAenz.js} +1 -1
- package/dist/ui/assets/architectureDiagram-VXUJARFQ-C8HXAenz.js.gz +0 -0
- package/dist/ui/assets/{blockDiagram-VD42YOAC-CzGHAHao.js → blockDiagram-VD42YOAC-BhZaEN19.js} +1 -1
- package/dist/ui/assets/blockDiagram-VD42YOAC-BhZaEN19.js.gz +0 -0
- package/dist/ui/assets/{c4Diagram-YG6GDRKO-DscJyaWN.js → c4Diagram-YG6GDRKO-Dk_UH-sY.js} +1 -1
- package/dist/ui/assets/c4Diagram-YG6GDRKO-Dk_UH-sY.js.gz +0 -0
- package/dist/ui/assets/channel-D6_nUWlW.js +1 -0
- package/dist/ui/assets/{chunk-4BX2VUAB-DoWpTvP8.js → chunk-4BX2VUAB-XprbG2TG.js} +1 -1
- package/dist/ui/assets/chunk-55IACEB6-ByzqIgSb.js +1 -0
- package/dist/ui/assets/{chunk-ABZYJK2D-RzDCrjE6.js → chunk-ABZYJK2D-BJcrryHK.js} +1 -1
- package/dist/ui/assets/chunk-ABZYJK2D-BJcrryHK.js.gz +0 -0
- package/dist/ui/assets/{chunk-AGHRB4JF-jidCS5Of.js → chunk-AGHRB4JF-DvxmfbM0.js} +1 -1
- package/dist/ui/assets/chunk-AGHRB4JF-DvxmfbM0.js.gz +0 -0
- package/dist/ui/assets/{chunk-ATLVNIR6-BEIIfJtC.js → chunk-ATLVNIR6-DbeJ0OrR.js} +1 -1
- package/dist/ui/assets/chunk-ATLVNIR6-DbeJ0OrR.js.gz +0 -0
- package/dist/ui/assets/{chunk-B4BG7PRW-B8b6dQQ2.js → chunk-B4BG7PRW-C53q2ggf.js} +1 -1
- package/dist/ui/assets/chunk-B4BG7PRW-C53q2ggf.js.gz +0 -0
- package/dist/ui/assets/{chunk-CVBHYZKI-D-mQAfrk.js → chunk-CVBHYZKI-B3EBSlb3.js} +1 -1
- package/dist/ui/assets/{chunk-DI55MBZ5-BfATX3V8.js → chunk-DI55MBZ5-vIyNEQN-.js} +1 -1
- package/dist/ui/assets/chunk-DI55MBZ5-vIyNEQN-.js.gz +0 -0
- package/dist/ui/assets/chunk-EXTU4WIE-B3ObkuOm.js +1 -0
- package/dist/ui/assets/{chunk-FMBD7UC4-fqXscNvc.js → chunk-FMBD7UC4-rddmfK-Z.js} +1 -1
- package/dist/ui/assets/{chunk-HN2XXSSU-BCHvD80g.js → chunk-HN2XXSSU-Dttqcg3b.js} +1 -1
- package/dist/ui/assets/chunk-HN2XXSSU-Dttqcg3b.js.gz +0 -0
- package/dist/ui/assets/{chunk-JA3XYJ7Z-Cp6dqHnY.js → chunk-JA3XYJ7Z-DbNDev3D.js} +1 -1
- package/dist/ui/assets/chunk-JA3XYJ7Z-DbNDev3D.js.gz +0 -0
- package/dist/ui/assets/{chunk-JZLCHNYA-cKMooY3y.js → chunk-JZLCHNYA-EUmx2y4H.js} +1 -1
- package/dist/ui/assets/chunk-JZLCHNYA-EUmx2y4H.js.gz +0 -0
- package/dist/ui/assets/{chunk-MI3HLSF2-BlzO5wOE.js → chunk-MI3HLSF2-65n9Mkyc.js} +1 -1
- package/dist/ui/assets/chunk-MI3HLSF2-65n9Mkyc.js.gz +0 -0
- package/dist/ui/assets/chunk-N4CR4FBY-mv5koXqW.js +2 -0
- package/dist/ui/assets/chunk-N4CR4FBY-mv5koXqW.js.gz +0 -0
- package/dist/ui/assets/{chunk-QN33PNHL-DIHGQ_pd.js → chunk-QN33PNHL-DsRKK6NR.js} +1 -1
- package/dist/ui/assets/{chunk-QXUST7PY-C9l0muI0.js → chunk-QXUST7PY-BCYnMiS3.js} +1 -1
- package/dist/ui/assets/chunk-QXUST7PY-BCYnMiS3.js.gz +0 -0
- package/dist/ui/assets/chunk-QZHKN3VN-HucAw4xW.js +1 -0
- package/dist/ui/assets/{chunk-S3R3BYOJ-VJiLzt2o.js → chunk-S3R3BYOJ-CWMEa9Dc.js} +1 -1
- package/dist/ui/assets/chunk-S3R3BYOJ-CWMEa9Dc.js.gz +0 -0
- package/dist/ui/assets/{chunk-TZMSLE5B-DZwI0C_2.js → chunk-TZMSLE5B-BuQUQcTr.js} +1 -1
- package/dist/ui/assets/chunk-TZMSLE5B-BuQUQcTr.js.gz +0 -0
- package/dist/ui/assets/classDiagram-2ON5EDUG-CUT3rPTB.js +1 -0
- package/dist/ui/assets/classDiagram-v2-WZHVMYZB-CUT3rPTB.js +1 -0
- package/dist/ui/assets/{cose-bilkent-S5V4N54A-Ipik-oSD.js → cose-bilkent-S5V4N54A-CnPB3ARO.js} +1 -1
- package/dist/ui/assets/cose-bilkent-S5V4N54A-CnPB3ARO.js.gz +0 -0
- package/dist/ui/assets/cursor-QEb7m-rN.png +0 -0
- package/dist/ui/assets/{dagre-6UL2VRFP-BDpyWQnh.js → dagre-6UL2VRFP-DhS-k_Se.js} +1 -1
- package/dist/ui/assets/dagre-6UL2VRFP-DhS-k_Se.js.gz +0 -0
- package/dist/ui/assets/{dagre-CgA4KhUX.js → dagre-KgLoHEuy.js} +1 -1
- package/dist/ui/assets/dagre-KgLoHEuy.js.gz +0 -0
- package/dist/ui/assets/{diagram-PSM6KHXK-B4GRzxLJ.js → diagram-PSM6KHXK-BZg3MJmb.js} +1 -1
- package/dist/ui/assets/diagram-PSM6KHXK-BZg3MJmb.js.gz +0 -0
- package/dist/ui/assets/{diagram-QEK2KX5R-BWPW28XI.js → diagram-QEK2KX5R-BPCitvbo.js} +1 -1
- package/dist/ui/assets/diagram-QEK2KX5R-BPCitvbo.js.gz +0 -0
- package/dist/ui/assets/{diagram-S2PKOQOG-BIHhcGoV.js → diagram-S2PKOQOG-NW4uK6sx.js} +1 -1
- package/dist/ui/assets/diagram-S2PKOQOG-NW4uK6sx.js.gz +0 -0
- package/dist/ui/assets/{editor-C-HJ7Yw0.js → editor-CzFWIUw2.js} +1 -1
- package/dist/ui/assets/editor-CzFWIUw2.js.gz +0 -0
- package/dist/ui/assets/{emoji-D8F6B62m.js → emoji-Dkz4Zzv_.js} +1 -1
- package/dist/ui/assets/emoji-Dkz4Zzv_.js.gz +0 -0
- package/dist/ui/assets/{erDiagram-Q2GNP2WA-ubTaAFcK.js → erDiagram-Q2GNP2WA-me1fboaf.js} +1 -1
- package/dist/ui/assets/erDiagram-Q2GNP2WA-me1fboaf.js.gz +0 -0
- package/dist/ui/assets/{flowDiagram-NV44I4VS-BHLCTYjI.js → flowDiagram-NV44I4VS-DzE8dGsh.js} +1 -1
- package/dist/ui/assets/flowDiagram-NV44I4VS-DzE8dGsh.js.gz +0 -0
- package/dist/ui/assets/{ganttDiagram-LVOFAZNH-ClC3pay1.js → ganttDiagram-LVOFAZNH-CFQD09Mi.js} +2 -2
- package/dist/ui/assets/ganttDiagram-LVOFAZNH-CFQD09Mi.js.gz +0 -0
- package/dist/ui/assets/{gitGraph-F6HP7TQM-DghoobE6.js → gitGraph-F6HP7TQM-CfFE_uAC.js} +1 -1
- package/dist/ui/assets/{gitGraphDiagram-NY62KEGX-Clqpiswu.js → gitGraphDiagram-NY62KEGX-CaVoxU4C.js} +1 -1
- package/dist/ui/assets/gitGraphDiagram-NY62KEGX-CaVoxU4C.js.gz +0 -0
- package/dist/ui/assets/index-BN5_Qq7R.js +324 -0
- package/dist/ui/assets/index-BN5_Qq7R.js.gz +0 -0
- package/dist/ui/assets/index-DxuPq13l.css +1 -0
- package/dist/ui/assets/index-DxuPq13l.css.gz +0 -0
- package/dist/ui/assets/{info-NVLQJR56-0ZldEXPQ.js → info-NVLQJR56-i_xHYg3f.js} +1 -1
- package/dist/ui/assets/{infoDiagram-ER5ION4S-DMmPX-il.js → infoDiagram-ER5ION4S-2NL93b78.js} +1 -1
- package/dist/ui/assets/{journeyDiagram-XKPGCS4Q-CrVickA2.js → journeyDiagram-XKPGCS4Q-CZF-2DHU.js} +1 -1
- package/dist/ui/assets/journeyDiagram-XKPGCS4Q-CZF-2DHU.js.gz +0 -0
- package/dist/ui/assets/{kanban-definition-3W4ZIXB7-C_BsdHYL.js → kanban-definition-3W4ZIXB7-CfvJIOny.js} +1 -1
- package/dist/ui/assets/kanban-definition-3W4ZIXB7-CfvJIOny.js.gz +0 -0
- package/dist/ui/assets/{line-CfBP7Yic.js → line-DDv8kOJk.js} +1 -1
- package/dist/ui/assets/{linear-BsjageUB.js → linear-Daef-l29.js} +1 -1
- package/dist/ui/assets/linear-Daef-l29.js.gz +0 -0
- package/dist/ui/assets/{mermaid-parser.core-DZdP-NFq.js → mermaid-parser.core-CdK9QgYV.js} +2 -2
- package/dist/ui/assets/mermaid-parser.core-CdK9QgYV.js.gz +0 -0
- package/dist/ui/assets/{mermaid.core-TNrI0pHG.js → mermaid.core-D6GS9mU-.js} +3 -3
- package/dist/ui/assets/mermaid.core-D6GS9mU-.js.gz +0 -0
- package/dist/ui/assets/message-SqLqNYcv.js +36 -0
- package/dist/ui/assets/message-SqLqNYcv.js.gz +0 -0
- package/dist/ui/assets/{mindmap-definition-VGOIOE7T-BbmaUjMY.js → mindmap-definition-VGOIOE7T-Cb3QMflX.js} +1 -1
- package/dist/ui/assets/mindmap-definition-VGOIOE7T-Cb3QMflX.js.gz +0 -0
- package/dist/ui/assets/{packet-BFZMPI3H-D_ZhkXuT.js → packet-BFZMPI3H-Bm2uwz4i.js} +1 -1
- package/dist/ui/assets/{particles-Dv28pjOd.js → particles-DsJFOarW.js} +1 -1
- package/dist/ui/assets/particles-DsJFOarW.js.gz +0 -0
- package/dist/ui/assets/{pie-7BOR55EZ-Dn0Q3qNx.js → pie-7BOR55EZ-5i17tVnF.js} +1 -1
- package/dist/ui/assets/{pieDiagram-ADFJNKIX-BbyjfYu8.js → pieDiagram-ADFJNKIX-BxIwQWvw.js} +1 -1
- package/dist/ui/assets/pieDiagram-ADFJNKIX-BxIwQWvw.js.gz +0 -0
- package/dist/ui/assets/{quadrantDiagram-AYHSOK5B-Bc3GqMKz.js → quadrantDiagram-AYHSOK5B-B5HPe4ga.js} +1 -1
- package/dist/ui/assets/quadrantDiagram-AYHSOK5B-B5HPe4ga.js.gz +0 -0
- package/dist/ui/assets/{radar-NHE76QYJ-BHwoAy1q.js → radar-NHE76QYJ-BTn-tq0k.js} +1 -1
- package/dist/ui/assets/{reactflow-BVYPxNhc.js → reactflow-Bf74ngoo.js} +2 -2
- package/dist/ui/assets/reactflow-Bf74ngoo.js.gz +0 -0
- package/dist/ui/assets/{requirementDiagram-UZGBJVZJ-BQaKKL09.js → requirementDiagram-UZGBJVZJ-YfI6llkX.js} +1 -1
- package/dist/ui/assets/requirementDiagram-UZGBJVZJ-YfI6llkX.js.gz +0 -0
- package/dist/ui/assets/{sandpack-BQW_FQ7G.js → sandpack-D7koO5op.js} +1 -1
- package/dist/ui/assets/sandpack-D7koO5op.js.gz +0 -0
- package/dist/ui/assets/{sankeyDiagram-TZEHDZUN-DiJvDvhb.js → sankeyDiagram-TZEHDZUN-DOk_B10B.js} +1 -1
- package/dist/ui/assets/sankeyDiagram-TZEHDZUN-DOk_B10B.js.gz +0 -0
- package/dist/ui/assets/{sequenceDiagram-WL72ISMW-Dw32824o.js → sequenceDiagram-WL72ISMW-DAe4Um17.js} +1 -1
- package/dist/ui/assets/sequenceDiagram-WL72ISMW-DAe4Um17.js.gz +0 -0
- package/dist/ui/assets/{stateDiagram-FKZM4ZOC-BCOpNdHV.js → stateDiagram-FKZM4ZOC-CCesDu_C.js} +1 -1
- package/dist/ui/assets/stateDiagram-FKZM4ZOC-CCesDu_C.js.gz +0 -0
- package/dist/ui/assets/stateDiagram-v2-4FDKWEC3-CMlIrsoO.js +1 -0
- package/dist/ui/assets/{syntax-VJrU5BEu.js → syntax-C-M-8jOU.js} +1 -1
- package/dist/ui/assets/syntax-C-M-8jOU.js.gz +0 -0
- package/dist/ui/assets/{theme-DZtFA8b4.js → theme-BQZdiqwv.js} +1 -1
- package/dist/ui/assets/{timeline-definition-IT6M3QCI-Jh_WZzXv.js → timeline-definition-IT6M3QCI-D6P5txjT.js} +1 -1
- package/dist/ui/assets/timeline-definition-IT6M3QCI-D6P5txjT.js.gz +0 -0
- package/dist/ui/assets/{treemap-KMMF4GRG-CPYIgjxE.js → treemap-KMMF4GRG-Bitm3gy4.js} +1 -1
- package/dist/ui/assets/{knowledgeRoutes-CivaUqha.js → useUserLocalStorage-Ckb8HsIw.js} +1 -1
- package/dist/ui/assets/useUserLocalStorage-Ckb8HsIw.js.gz +0 -0
- package/dist/ui/assets/{xychartDiagram-PRI3JC2R-CERc7Rdb.js → xychartDiagram-PRI3JC2R-CsybjUbd.js} +1 -1
- package/dist/ui/assets/xychartDiagram-PRI3JC2R-CsybjUbd.js.gz +0 -0
- package/dist/ui/index.html +13 -11
- package/dist/ui/index.html.gz +0 -0
- package/package.json +10 -9
- package/dist/ui/assets/App-9s2WHM6S.js +0 -22
- package/dist/ui/assets/App-9s2WHM6S.js.gz +0 -0
- package/dist/ui/assets/App-BAdBsEnV.css.gz +0 -0
- package/dist/ui/assets/ArtifactConsentModal-ParNk5kW.js.gz +0 -0
- package/dist/ui/assets/ArtifactFullscreenPage-VQxLMCiN.js +0 -9
- package/dist/ui/assets/ArtifactFullscreenPage-VQxLMCiN.js.gz +0 -0
- package/dist/ui/assets/AutocompleteTextarea-3RchrIgk.js +0 -18
- package/dist/ui/assets/AutocompleteTextarea-3RchrIgk.js.gz +0 -0
- package/dist/ui/assets/CodeEditor.inner-D51Z_CLQ.js.gz +0 -0
- package/dist/ui/assets/ConversationView-Dyddw2b1.js +0 -34
- package/dist/ui/assets/ConversationView-Dyddw2b1.js.gz +0 -0
- package/dist/ui/assets/KnowledgePage-CdftslnF.js +0 -24
- package/dist/ui/assets/KnowledgePage-CdftslnF.js.gz +0 -0
- package/dist/ui/assets/MobileApp-BdBMpnJ1.js +0 -1
- package/dist/ui/assets/MobileApp-BdBMpnJ1.js.gz +0 -0
- package/dist/ui/assets/StreamdownDemoPage-B9wbgp2s.js.gz +0 -0
- package/dist/ui/assets/ThemeSwitcher-ubn6IOz9.js.gz +0 -0
- package/dist/ui/assets/antd-C-HfEC4E.js +0 -400
- package/dist/ui/assets/antd-C-HfEC4E.js.gz +0 -0
- package/dist/ui/assets/architecture-U656AL7Q-dkBewUpN.js +0 -1
- package/dist/ui/assets/architectureDiagram-VXUJARFQ-ChmZt3zk.js.gz +0 -0
- package/dist/ui/assets/blockDiagram-VD42YOAC-CzGHAHao.js.gz +0 -0
- package/dist/ui/assets/c4Diagram-YG6GDRKO-DscJyaWN.js.gz +0 -0
- package/dist/ui/assets/channel-DvRQqEqC.js +0 -1
- package/dist/ui/assets/chunk-55IACEB6-DojF2pZN.js +0 -1
- package/dist/ui/assets/chunk-ABZYJK2D-RzDCrjE6.js.gz +0 -0
- package/dist/ui/assets/chunk-AGHRB4JF-jidCS5Of.js.gz +0 -0
- package/dist/ui/assets/chunk-ATLVNIR6-BEIIfJtC.js.gz +0 -0
- package/dist/ui/assets/chunk-B4BG7PRW-B8b6dQQ2.js.gz +0 -0
- package/dist/ui/assets/chunk-DI55MBZ5-BfATX3V8.js.gz +0 -0
- package/dist/ui/assets/chunk-EXTU4WIE-BKt6lPJM.js +0 -1
- package/dist/ui/assets/chunk-HN2XXSSU-BCHvD80g.js.gz +0 -0
- package/dist/ui/assets/chunk-JA3XYJ7Z-Cp6dqHnY.js.gz +0 -0
- package/dist/ui/assets/chunk-JZLCHNYA-cKMooY3y.js.gz +0 -0
- package/dist/ui/assets/chunk-MI3HLSF2-BlzO5wOE.js.gz +0 -0
- package/dist/ui/assets/chunk-N4CR4FBY-pASDorUx.js +0 -2
- package/dist/ui/assets/chunk-N4CR4FBY-pASDorUx.js.gz +0 -0
- package/dist/ui/assets/chunk-QXUST7PY-C9l0muI0.js.gz +0 -0
- package/dist/ui/assets/chunk-QZHKN3VN-CZskCFCf.js +0 -1
- package/dist/ui/assets/chunk-S3R3BYOJ-VJiLzt2o.js.gz +0 -0
- package/dist/ui/assets/chunk-TZMSLE5B-DZwI0C_2.js.gz +0 -0
- package/dist/ui/assets/classDiagram-2ON5EDUG-BFASUbmZ.js +0 -1
- package/dist/ui/assets/classDiagram-v2-WZHVMYZB-BFASUbmZ.js +0 -1
- package/dist/ui/assets/cose-bilkent-S5V4N54A-Ipik-oSD.js.gz +0 -0
- package/dist/ui/assets/dagre-6UL2VRFP-BDpyWQnh.js.gz +0 -0
- package/dist/ui/assets/dagre-CgA4KhUX.js.gz +0 -0
- package/dist/ui/assets/diagram-PSM6KHXK-B4GRzxLJ.js.gz +0 -0
- package/dist/ui/assets/diagram-QEK2KX5R-BWPW28XI.js.gz +0 -0
- package/dist/ui/assets/diagram-S2PKOQOG-BIHhcGoV.js.gz +0 -0
- package/dist/ui/assets/editor-C-HJ7Yw0.js.gz +0 -0
- package/dist/ui/assets/emoji-D8F6B62m.js.gz +0 -0
- package/dist/ui/assets/erDiagram-Q2GNP2WA-ubTaAFcK.js.gz +0 -0
- package/dist/ui/assets/flowDiagram-NV44I4VS-BHLCTYjI.js.gz +0 -0
- package/dist/ui/assets/ganttDiagram-LVOFAZNH-ClC3pay1.js.gz +0 -0
- package/dist/ui/assets/gitGraphDiagram-NY62KEGX-Clqpiswu.js.gz +0 -0
- package/dist/ui/assets/index-D9OElx9A.css +0 -1
- package/dist/ui/assets/index-D9OElx9A.css.gz +0 -0
- package/dist/ui/assets/index-DxPuzG7E.js +0 -350
- package/dist/ui/assets/index-DxPuzG7E.js.gz +0 -0
- package/dist/ui/assets/journeyDiagram-XKPGCS4Q-CrVickA2.js.gz +0 -0
- package/dist/ui/assets/kanban-definition-3W4ZIXB7-C_BsdHYL.js.gz +0 -0
- package/dist/ui/assets/knowledgeRoutes-CivaUqha.js.gz +0 -0
- package/dist/ui/assets/linear-BsjageUB.js.gz +0 -0
- package/dist/ui/assets/mermaid-parser.core-DZdP-NFq.js.gz +0 -0
- package/dist/ui/assets/mermaid.core-TNrI0pHG.js.gz +0 -0
- package/dist/ui/assets/message-BtWWJ9Af.js +0 -36
- package/dist/ui/assets/message-BtWWJ9Af.js.gz +0 -0
- package/dist/ui/assets/mindmap-definition-VGOIOE7T-BbmaUjMY.js.gz +0 -0
- package/dist/ui/assets/particles-Dv28pjOd.js.gz +0 -0
- package/dist/ui/assets/pieDiagram-ADFJNKIX-BbyjfYu8.js.gz +0 -0
- package/dist/ui/assets/quadrantDiagram-AYHSOK5B-Bc3GqMKz.js.gz +0 -0
- package/dist/ui/assets/reactflow-BVYPxNhc.js.gz +0 -0
- package/dist/ui/assets/requirementDiagram-UZGBJVZJ-BQaKKL09.js.gz +0 -0
- package/dist/ui/assets/sandpack-BQW_FQ7G.js.gz +0 -0
- package/dist/ui/assets/sankeyDiagram-TZEHDZUN-DiJvDvhb.js.gz +0 -0
- package/dist/ui/assets/sequenceDiagram-WL72ISMW-Dw32824o.js.gz +0 -0
- package/dist/ui/assets/stateDiagram-FKZM4ZOC-BCOpNdHV.js.gz +0 -0
- package/dist/ui/assets/stateDiagram-v2-4FDKWEC3-Cuqwvgfg.js +0 -1
- package/dist/ui/assets/syntax-VJrU5BEu.js.gz +0 -0
- package/dist/ui/assets/timeline-definition-IT6M3QCI-Jh_WZzXv.js.gz +0 -0
- package/dist/ui/assets/xychartDiagram-PRI3JC2R-CERc7Rdb.js.gz +0 -0
|
@@ -29,6 +29,8 @@ export declare function requireBranchGrantManager(branchRepo: BranchRepository,
|
|
|
29
29
|
export declare function setupBranchGroupGrantsService(app: import('@agor/core/feathers').Application, db: Database, branchRepo: BranchRepository): void;
|
|
30
30
|
export declare function setupBoardGroupGrantsService(app: import('@agor/core/feathers').Application, db: Database): void;
|
|
31
31
|
export declare function setupBranchEffectiveAccessService(app: import('@agor/core/feathers').Application, branchRepo: BranchRepository): void;
|
|
32
|
+
export declare function setupBoardAlignedBranchesService(app: import('@agor/core/feathers').Application, branchRepo: BranchRepository): void;
|
|
33
|
+
export declare function setupBranchFsAccessUsersService(app: import('@agor/core/feathers').Application, branchRepo: BranchRepository): void;
|
|
32
34
|
export declare const groupsHooks: {
|
|
33
35
|
before: {
|
|
34
36
|
all: (typeof requireMember)[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"groups.d.ts","sourceRoot":"","sources":["../../src/services/groups.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAmB,KAAK,QAAQ,EAAmB,MAAM,eAAe,CAAC;AAEhF,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"groups.d.ts","sourceRoot":"","sources":["../../src/services/groups.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAmB,KAAK,QAAQ,EAAmB,MAAM,eAAe,CAAC;AAEhF,OAAO,KAAK,EAMV,qBAAqB,EAErB,KAAK,EACL,eAAe,EACf,WAAW,EACX,MAAM,EAGP,MAAM,kBAAkB,CAAC;AAI1B,iBAAS,aAAa,CAAC,OAAO,EAAE,WAAW,GAAG,WAAW,CAQxD;AAED,iBAAS,YAAY,CAAC,OAAO,EAAE,WAAW,GAAG,WAAW,CAQvD;AAmBD,wBAAgB,qCAAqC,CACnD,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,KAAK,IAAI,qBAAqB,CAKxC;AAED,wBAAgB,wCAAwC,CAAC,KAAK,EAAE,OAAO,GAAG,qBAAqB,CAI9F;AAED,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,QAAQ;kBAGxB,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;YAI/B,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;iBAKlB,OAAO,CAAC,KAAK,CAAC,WAAW,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;cAQnD,MAAM,QAAQ,OAAO,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC;eAQ5C,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;EAI3C;AAED,wBAAgB,6BAA6B,CAAC,EAAE,EAAE,QAAQ;kBAGlC,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;iBAO/C;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,WACpC,MAAM,GACd,OAAO,CAAC,eAAe,CAAC;eASV,MAAM,WAAW,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;EAWtE;AAuBD,wBAAsB,yBAAyB,CAC7C,UAAU,EAAE,gBAAgB,EAC5B,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,WAAW,CAAC,CAgBtB;AAED,wBAAgB,6BAA6B,CAC3C,GAAG,EAAE,OAAO,qBAAqB,EAAE,WAAW,EAC9C,EAAE,EAAE,QAAQ,EACZ,UAAU,EAAE,gBAAgB,QAqE7B;AAgCD,wBAAgB,4BAA4B,CAC1C,GAAG,EAAE,OAAO,qBAAqB,EAAE,WAAW,EAC9C,EAAE,EAAE,QAAQ,QAoEb;AAED,wBAAgB,iCAAiC,CAC/C,GAAG,EAAE,OAAO,qBAAqB,EAAE,WAAW,EAC9C,UAAU,EAAE,gBAAgB,QA4C7B;AAED,wBAAgB,gCAAgC,CAC9C,GAAG,EAAE,OAAO,qBAAqB,EAAE,WAAW,EAC9C,UAAU,EAAE,gBAAgB,QAwB7B;AAED,wBAAgB,+BAA+B,CAC7C,GAAG,EAAE,OAAO,qBAAqB,EAAE,WAAW,EAC9C,UAAU,EAAE,gBAAgB,QAoC7B;AAED,eAAO,MAAM,WAAW;;;;;;;CAOvB,CAAC;AAEF,eAAO,MAAM,qBAAqB;;;;CAIjC,CAAC"}
|
|
@@ -320,6 +320,60 @@ function setupBranchEffectiveAccessService(app, branchRepo) {
|
|
|
320
320
|
{ methods: ["find"] }
|
|
321
321
|
);
|
|
322
322
|
}
|
|
323
|
+
function setupBoardAlignedBranchesService(app, branchRepo) {
|
|
324
|
+
app.use(
|
|
325
|
+
"boards/:id/aligned-branches",
|
|
326
|
+
{
|
|
327
|
+
async find(params) {
|
|
328
|
+
const authParams = params;
|
|
329
|
+
if (authParams?.provider && !authParams.user?._isServiceAccount) {
|
|
330
|
+
const user = authParams.user;
|
|
331
|
+
if (!user) throw new NotAuthenticated2("Authentication required");
|
|
332
|
+
if (!hasMinimumRole2(user.role, ROLES2.ADMIN)) {
|
|
333
|
+
throw new Forbidden2("Only admins can list board-aligned branches");
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
const boardId = paramsRoute(params)?.id;
|
|
337
|
+
if (!boardId) throw new BadRequest("Board ID is required");
|
|
338
|
+
return branchRepo.findBoardAlignedBranches(boardId);
|
|
339
|
+
}
|
|
340
|
+
},
|
|
341
|
+
{ methods: ["find"] }
|
|
342
|
+
);
|
|
343
|
+
}
|
|
344
|
+
function setupBranchFsAccessUsersService(app, branchRepo) {
|
|
345
|
+
app.use(
|
|
346
|
+
"branches/:id/fs-access-users",
|
|
347
|
+
{
|
|
348
|
+
async find(params) {
|
|
349
|
+
const authParams = params;
|
|
350
|
+
if (authParams?.provider && !authParams.user?._isServiceAccount) {
|
|
351
|
+
const user = authParams.user;
|
|
352
|
+
if (!user) throw new NotAuthenticated2("Authentication required");
|
|
353
|
+
if (!hasMinimumRole2(user.role, ROLES2.ADMIN)) {
|
|
354
|
+
throw new Forbidden2("Only admins can list branch filesystem access users");
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
const branchId = paramsRoute(params)?.id;
|
|
358
|
+
if (!branchId) throw new BadRequest("Branch ID is required");
|
|
359
|
+
const userIds = await branchRepo.findExplicitFsAccessUserIds(branchId);
|
|
360
|
+
const usersService = app.service("users");
|
|
361
|
+
const users = await Promise.all(
|
|
362
|
+
userIds.map(async (userId) => {
|
|
363
|
+
try {
|
|
364
|
+
return await usersService.get(userId);
|
|
365
|
+
} catch (error) {
|
|
366
|
+
console.error(`Failed to fetch branch filesystem access user ${userId}:`, error);
|
|
367
|
+
return null;
|
|
368
|
+
}
|
|
369
|
+
})
|
|
370
|
+
);
|
|
371
|
+
return users.filter((user) => user !== null);
|
|
372
|
+
}
|
|
373
|
+
},
|
|
374
|
+
{ methods: ["find"] }
|
|
375
|
+
);
|
|
376
|
+
}
|
|
323
377
|
var groupsHooks = {
|
|
324
378
|
before: {
|
|
325
379
|
all: [requireMember],
|
|
@@ -341,7 +395,9 @@ export {
|
|
|
341
395
|
groupMembershipsHooks,
|
|
342
396
|
groupsHooks,
|
|
343
397
|
requireBranchGrantManager,
|
|
398
|
+
setupBoardAlignedBranchesService,
|
|
344
399
|
setupBoardGroupGrantsService,
|
|
345
400
|
setupBranchEffectiveAccessService,
|
|
401
|
+
setupBranchFsAccessUsersService,
|
|
346
402
|
setupBranchGroupGrantsService
|
|
347
403
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-servers.d.ts","sourceRoot":"","sources":["../../src/services/mcp-servers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,KAAK,QAAQ,EAAuB,MAAM,eAAe,CAAC;AACnE,OAAO,KAAK,EACV,oBAAoB,EAEpB,SAAS,EAIT,SAAS,EACT,WAAW,EACX,oBAAoB,EACrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,WAAW,CAAC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC,CAAC;AAEH;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,cAAc,CACnD,SAAS,EACT,oBAAoB,GAAG,oBAAoB,EAC3C,eAAe,CAChB;IACC,OAAO,CAAC,aAAa,CAAsB;gBAE/B,EAAE,EAAE,QAAQ;IAcxB;;OAEG;IACG,IAAI,CAAC,MAAM,CAAC,EAAE,eAAe;
|
|
1
|
+
{"version":3,"file":"mcp-servers.d.ts","sourceRoot":"","sources":["../../src/services/mcp-servers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,KAAK,QAAQ,EAAuB,MAAM,eAAe,CAAC;AACnE,OAAO,KAAK,EACV,oBAAoB,EAEpB,SAAS,EAIT,SAAS,EACT,WAAW,EACX,oBAAoB,EACrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,WAAW,CAAC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC,CAAC;AAEH;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,cAAc,CACnD,SAAS,EACT,oBAAoB,GAAG,oBAAoB,EAC3C,eAAe,CAChB;IACC,OAAO,CAAC,aAAa,CAAsB;gBAE/B,EAAE,EAAE,QAAQ;IAcxB;;OAEG;IACG,IAAI,CAAC,MAAM,CAAC,EAAE,eAAe;IAgCnC;;OAEG;IACG,WAAW,CACf,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,SAAS,EAAE,CAAC;CAGxB;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,EAAE,EAAE,QAAQ,GAAG,iBAAiB,CAEvE"}
|
|
@@ -241,12 +241,6 @@ var MCPServersService = class extends DrizzleService {
|
|
|
241
241
|
* Override find to support filter params
|
|
242
242
|
*/
|
|
243
243
|
async find(params) {
|
|
244
|
-
const paramsRecord = params;
|
|
245
|
-
const userRecord = paramsRecord?.user;
|
|
246
|
-
const userId = userRecord?.user_id;
|
|
247
|
-
console.log(
|
|
248
|
-
`[MCPServersService.find] Called with userId: ${userId || "NONE"}, provider: ${params?.provider || "internal"}, hasConnection: ${!!paramsRecord?.connection}`
|
|
249
|
-
);
|
|
250
244
|
const filters = {};
|
|
251
245
|
if (params?.query) {
|
|
252
246
|
if (params.query.scope) filters.scope = params.query.scope;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../../src/services/scheduler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAe9C,OAAO,KAAK,EACV,MAAM,EAGN,QAAQ,EACR,UAAU,EACV,OAAO,EAGP,IAAI,EACL,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAQpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAiCnD;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE,MAAM,GACrB,MAAM,CA8BR;AAED;;;;GAIG;AACH,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,SAAgB,IAAI,mBAAmB;gBAC3B,UAAU,EAAE,MAAM;CAM/B;AAED;;;GAGG;AACH,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,SAAgB,IAAI,EAAE,mBAAmB,GAAG,qBAAqB,CAAC;gBACtD,IAAI,EAAE,mBAAmB,GAAG,qBAAqB,EAAE,OAAO,EAAE,MAAM;CAK/E;AAED,MAAM,WAAW,eAAe;IAC9B,2DAA2D;IAC3D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4EAA4E;IAC5E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4CAA4C;IAC5C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,wDAAwD;IACxD,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,GAAG,CAAc;IACzB,OAAO,CAAC,EAAE,CAAW;IACrB,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,cAAc,CAAC,CAAiB;IACxC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,UAAU,CAAmB;IACrC,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,cAAc,CAA6B;gBAEvC,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,GAAE,eAAoB;IAgBxE;;OAEG;IACH,KAAK,IAAI,IAAI;IAwBb;;OAEG;IACH,IAAI,IAAI,IAAI;IAeZ;;;;;;;;;OASG;YACW,IAAI;IA2BlB;;;;;;;;;;;;;OAaG;YACW,eAAe;
|
|
1
|
+
{"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../../src/services/scheduler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAe9C,OAAO,KAAK,EACV,MAAM,EAGN,QAAQ,EACR,UAAU,EACV,OAAO,EAGP,IAAI,EACL,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAQpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAiCnD;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE,MAAM,GACrB,MAAM,CA8BR;AAED;;;;GAIG;AACH,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,SAAgB,IAAI,mBAAmB;gBAC3B,UAAU,EAAE,MAAM;CAM/B;AAED;;;GAGG;AACH,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,SAAgB,IAAI,EAAE,mBAAmB,GAAG,qBAAqB,CAAC;gBACtD,IAAI,EAAE,mBAAmB,GAAG,qBAAqB,EAAE,OAAO,EAAE,MAAM;CAK/E;AAED,MAAM,WAAW,eAAe;IAC9B,2DAA2D;IAC3D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4EAA4E;IAC5E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4CAA4C;IAC5C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,wDAAwD;IACxD,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,GAAG,CAAc;IACzB,OAAO,CAAC,EAAE,CAAW;IACrB,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,cAAc,CAAC,CAAiB;IACxC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,UAAU,CAAmB;IACrC,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,cAAc,CAA6B;gBAEvC,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,GAAE,eAAoB;IAgBxE;;OAEG;IACH,KAAK,IAAI,IAAI;IAwBb;;OAEG;IACH,IAAI,IAAI,IAAI;IAeZ;;;;;;;;;OASG;YACW,IAAI;IA2BlB;;;;;;;;;;;;;OAaG;YACW,eAAe;IA8E7B;;;;;;;;;;;;;OAaG;IACG,kBAAkB,CAAC,IAAI,EAAE;QAAE,UAAU,EAAE,UAAU,CAAC;QAAC,WAAW,EAAE,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAuC/F;;;;;;;;;;;;;;;OAeG;YACW,0BAA0B;IAsCxC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmCG;YACW,qBAAqB;IA2NnC;;;OAGG;YACW,sBAAsB;IAuBpC;;;;;;;;OAQG;YACW,sBAAsB;CAyBrC"}
|
|
@@ -231,11 +231,15 @@ var SchedulerService = class {
|
|
|
231
231
|
}
|
|
232
232
|
return;
|
|
233
233
|
}
|
|
234
|
-
console.log(
|
|
234
|
+
console.log(
|
|
235
|
+
` \u{1F552} Scheduler due: "${schedule.name}" scheduled_at=${new Date(scheduledRunAt).toISOString()} \u2014 spawning session`
|
|
236
|
+
);
|
|
235
237
|
await this.spawnScheduledSession(schedule, scheduledRunAt, now, { source: "cron" });
|
|
236
238
|
});
|
|
237
239
|
} else {
|
|
238
|
-
console.log(
|
|
240
|
+
console.log(
|
|
241
|
+
` \u{1F552} Scheduler due: "${schedule.name}" scheduled_at=${new Date(scheduledRunAt).toISOString()} \u2014 spawning session`
|
|
242
|
+
);
|
|
239
243
|
await this.spawnScheduledSession(schedule, scheduledRunAt, now, { source: "cron" });
|
|
240
244
|
}
|
|
241
245
|
}
|
|
@@ -29,6 +29,8 @@ export type SessionParams = QueryParams<{
|
|
|
29
29
|
/** Root-level include_last_message flag (bypasses Feathers query filtering, used by internal service calls) */
|
|
30
30
|
_include_last_message?: boolean | 'true' | 'false';
|
|
31
31
|
};
|
|
32
|
+
export declare function markRemoteRelationshipsEnrichedResult<T extends object>(result: T): T;
|
|
33
|
+
export declare function isRemoteRelationshipsEnrichedResult(result: unknown): boolean;
|
|
32
34
|
/**
|
|
33
35
|
* Execute task data payload
|
|
34
36
|
* Used by setExecuteHandler, executeTask, and related methods
|
|
@@ -47,10 +49,12 @@ export declare class SessionsService extends DrizzleService<Session, Partial<Ses
|
|
|
47
49
|
private sessionRepo;
|
|
48
50
|
private app;
|
|
49
51
|
private sessionMCPRepo;
|
|
52
|
+
private sessionRelationshipRepo;
|
|
50
53
|
private sessionEnvSelectionRepo;
|
|
51
54
|
private usersRepo;
|
|
52
55
|
private branchRepo;
|
|
53
56
|
constructor(db: Database, app: Application);
|
|
57
|
+
enrichRemoteRelationships(sessionList: Session[]): Promise<Session[]>;
|
|
54
58
|
/**
|
|
55
59
|
* Attach explicit MCP server IDs to a session.
|
|
56
60
|
* Emits WebSocket events so the UI updates in real-time.
|
|
@@ -176,6 +180,11 @@ export declare class SessionsService extends DrizzleService<Session, Partial<Ses
|
|
|
176
180
|
* Override remove to cascade delete children (forks and subsessions)
|
|
177
181
|
*/
|
|
178
182
|
remove(id: import('@agor/core/types').NullableId, params?: SessionParams): Promise<Session | Session[]>;
|
|
183
|
+
/**
|
|
184
|
+
* Override patch to keep durable relationship callback state synchronized
|
|
185
|
+
* with the existing callback_config.enabled execution switch.
|
|
186
|
+
*/
|
|
187
|
+
patch(id: import('@agor/core/types').NullableId, data: Partial<Session>, params?: SessionParams): Promise<Session | Session[]>;
|
|
179
188
|
/**
|
|
180
189
|
* Override get to optionally enrich with last message
|
|
181
190
|
*
|
|
@@ -183,9 +192,8 @@ export declare class SessionsService extends DrizzleService<Session, Partial<Ses
|
|
|
183
192
|
*/
|
|
184
193
|
get(id: string, params?: SessionParams): Promise<SessionWithLastMessage>;
|
|
185
194
|
/**
|
|
186
|
-
* Override find
|
|
187
|
-
*
|
|
188
|
-
* Note: Last message is NOT included in list operations - only on single GET
|
|
195
|
+
* Override find to include durable remote relationships in list results.
|
|
196
|
+
* Note: Last message is NOT included in list operations - only on single GET.
|
|
189
197
|
*/
|
|
190
198
|
find(params?: SessionParams): Promise<Paginated<Session> | Session[]>;
|
|
191
199
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../../src/services/sessions.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAEL,KAAK,QAAQ,
|
|
1
|
+
{"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../../src/services/sessions.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@ import {
|
|
|
4
4
|
BranchRepository,
|
|
5
5
|
SessionEnvSelectionRepository,
|
|
6
6
|
SessionMCPServerRepository,
|
|
7
|
+
SessionRelationshipRepository,
|
|
7
8
|
SessionRepository,
|
|
8
9
|
UsersRepository
|
|
9
10
|
} from "@agor/core/db";
|
|
@@ -309,10 +310,19 @@ function getInheritableConfig(parent) {
|
|
|
309
310
|
model_config: parent.model_config
|
|
310
311
|
};
|
|
311
312
|
}
|
|
313
|
+
var remoteRelationshipsEnrichedResults = /* @__PURE__ */ new WeakSet();
|
|
314
|
+
function markRemoteRelationshipsEnrichedResult(result) {
|
|
315
|
+
remoteRelationshipsEnrichedResults.add(result);
|
|
316
|
+
return result;
|
|
317
|
+
}
|
|
318
|
+
function isRemoteRelationshipsEnrichedResult(result) {
|
|
319
|
+
return typeof result === "object" && result !== null && remoteRelationshipsEnrichedResults.has(result);
|
|
320
|
+
}
|
|
312
321
|
var SessionsService = class extends DrizzleService {
|
|
313
322
|
sessionRepo;
|
|
314
323
|
app;
|
|
315
324
|
sessionMCPRepo;
|
|
325
|
+
sessionRelationshipRepo;
|
|
316
326
|
sessionEnvSelectionRepo;
|
|
317
327
|
usersRepo;
|
|
318
328
|
branchRepo;
|
|
@@ -331,10 +341,31 @@ var SessionsService = class extends DrizzleService {
|
|
|
331
341
|
this.sessionRepo = sessionRepo;
|
|
332
342
|
this.app = app;
|
|
333
343
|
this.sessionMCPRepo = new SessionMCPServerRepository(db);
|
|
344
|
+
this.sessionRelationshipRepo = new SessionRelationshipRepository(db);
|
|
334
345
|
this.sessionEnvSelectionRepo = new SessionEnvSelectionRepository(db);
|
|
335
346
|
this.branchRepo = new BranchRepository(db);
|
|
336
347
|
this.usersRepo = new UsersRepository(db);
|
|
337
348
|
}
|
|
349
|
+
async enrichRemoteRelationships(sessionList) {
|
|
350
|
+
const sessionIds = sessionList.map((session) => session.session_id);
|
|
351
|
+
if (sessionIds.length === 0) return sessionList;
|
|
352
|
+
const relationships = await this.sessionRelationshipRepo.findForSessions(sessionIds);
|
|
353
|
+
if (relationships.length === 0) return sessionList;
|
|
354
|
+
const bySessionId = /* @__PURE__ */ new Map();
|
|
355
|
+
for (const relationship of relationships) {
|
|
356
|
+
const sourceBucket = bySessionId.get(relationship.source_session_id) ?? { as_source: [], as_target: [] };
|
|
357
|
+
sourceBucket.as_source?.push(relationship);
|
|
358
|
+
bySessionId.set(relationship.source_session_id, sourceBucket);
|
|
359
|
+
const targetBucket = bySessionId.get(relationship.target_session_id) ?? { as_source: [], as_target: [] };
|
|
360
|
+
targetBucket.as_target?.push(relationship);
|
|
361
|
+
bySessionId.set(relationship.target_session_id, targetBucket);
|
|
362
|
+
}
|
|
363
|
+
return sessionList.map((session) => {
|
|
364
|
+
const remoteRelationships = bySessionId.get(session.session_id);
|
|
365
|
+
if (!remoteRelationships) return session;
|
|
366
|
+
return { ...session, remote_relationships: remoteRelationships };
|
|
367
|
+
});
|
|
368
|
+
}
|
|
338
369
|
/**
|
|
339
370
|
* Attach explicit MCP server IDs to a session.
|
|
340
371
|
* Emits WebSocket events so the UI updates in real-time.
|
|
@@ -737,6 +768,24 @@ ${data.extraInstructions}`;
|
|
|
737
768
|
this.emit?.("removed", session, params);
|
|
738
769
|
return session;
|
|
739
770
|
}
|
|
771
|
+
/**
|
|
772
|
+
* Override patch to keep durable relationship callback state synchronized
|
|
773
|
+
* with the existing callback_config.enabled execution switch.
|
|
774
|
+
*/
|
|
775
|
+
async patch(id, data, params) {
|
|
776
|
+
const result = await super.patch(id, data, params);
|
|
777
|
+
const callbackEnabled = data.callback_config?.enabled;
|
|
778
|
+
if (typeof callbackEnabled === "boolean" && !params?._skipRelationshipCallbackSync) {
|
|
779
|
+
const sessionsToSync = Array.isArray(result) ? result : [result];
|
|
780
|
+
for (const session of sessionsToSync) {
|
|
781
|
+
await this.sessionRelationshipRepo.setCallbackEnabledForTargetSession(
|
|
782
|
+
session.session_id,
|
|
783
|
+
callbackEnabled
|
|
784
|
+
);
|
|
785
|
+
}
|
|
786
|
+
}
|
|
787
|
+
return result;
|
|
788
|
+
}
|
|
740
789
|
/**
|
|
741
790
|
* Override get to optionally enrich with last message
|
|
742
791
|
*
|
|
@@ -747,6 +796,8 @@ ${data.extraInstructions}`;
|
|
|
747
796
|
const includeLastMessageRoot = params?._include_last_message;
|
|
748
797
|
const includeLastMessage = includeLastMessageRoot ?? includeLastMessageQuery;
|
|
749
798
|
const session = await super.get(id, params);
|
|
799
|
+
const [enrichedSession] = await this.enrichRemoteRelationships([session]);
|
|
800
|
+
const sessionWithRelationships = enrichedSession ?? session;
|
|
750
801
|
if (includeLastMessage === true || includeLastMessage === "true") {
|
|
751
802
|
const truncationLengthQuery = params?.query?.last_message_truncation_length;
|
|
752
803
|
const truncationLengthRoot = params?._last_message_truncation_length;
|
|
@@ -754,20 +805,28 @@ ${data.extraInstructions}`;
|
|
|
754
805
|
truncationLengthRoot ?? truncationLengthQuery
|
|
755
806
|
);
|
|
756
807
|
const result = await this.sessionRepo.enrichWithLastMessage(
|
|
757
|
-
|
|
808
|
+
sessionWithRelationships,
|
|
758
809
|
truncationLength
|
|
759
810
|
);
|
|
760
811
|
return result;
|
|
761
812
|
}
|
|
762
|
-
return
|
|
813
|
+
return sessionWithRelationships;
|
|
763
814
|
}
|
|
764
815
|
/**
|
|
765
|
-
* Override find
|
|
766
|
-
*
|
|
767
|
-
* Note: Last message is NOT included in list operations - only on single GET
|
|
816
|
+
* Override find to include durable remote relationships in list results.
|
|
817
|
+
* Note: Last message is NOT included in list operations - only on single GET.
|
|
768
818
|
*/
|
|
769
819
|
async find(params) {
|
|
770
|
-
|
|
820
|
+
const result = await super.find(params);
|
|
821
|
+
if (Array.isArray(result)) {
|
|
822
|
+
const enriched = await this.enrichRemoteRelationships(result);
|
|
823
|
+
return markRemoteRelationshipsEnrichedResult(enriched);
|
|
824
|
+
}
|
|
825
|
+
const enrichedData = await this.enrichRemoteRelationships(result.data);
|
|
826
|
+
return markRemoteRelationshipsEnrichedResult({
|
|
827
|
+
...result,
|
|
828
|
+
data: enrichedData
|
|
829
|
+
});
|
|
771
830
|
}
|
|
772
831
|
};
|
|
773
832
|
function createSessionsService(db, app) {
|
|
@@ -775,5 +834,7 @@ function createSessionsService(db, app) {
|
|
|
775
834
|
}
|
|
776
835
|
export {
|
|
777
836
|
SessionsService,
|
|
778
|
-
createSessionsService
|
|
837
|
+
createSessionsService,
|
|
838
|
+
isRemoteRelationshipsEnrichedResult,
|
|
839
|
+
markRemoteRelationshipsEnrichedResult
|
|
779
840
|
};
|
|
@@ -14,14 +14,25 @@ export type TaskParams = QueryParams<{
|
|
|
14
14
|
}> & {
|
|
15
15
|
/**
|
|
16
16
|
* Internal-only: terminal task patches normally transition the owning session
|
|
17
|
-
* back to
|
|
17
|
+
* back to a promptable terminal state. Heartbeat-loss handling marks the session failed instead.
|
|
18
18
|
*/
|
|
19
|
-
|
|
19
|
+
suppressTerminalSessionStateUpdate?: boolean;
|
|
20
20
|
/**
|
|
21
21
|
* Internal-only: terminal task patches normally drain queued work for the
|
|
22
22
|
* owning session. Heartbeat-loss handling must not auto-start queued prompts.
|
|
23
23
|
*/
|
|
24
24
|
suppressTerminalQueueProcessing?: boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Internal-only: skip parent callback dispatch for terminal transitions that
|
|
27
|
+
* are administrative cancellation, not agent output. Does not disable BTW
|
|
28
|
+
* fork archival; those ephemeral sessions should still be cleaned up.
|
|
29
|
+
*/
|
|
30
|
+
suppressCompletionCallbacks?: boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Internal-only escape hatch for preserving an ephemeral BTW fork after
|
|
33
|
+
* terminal transition. Most callers should leave this unset.
|
|
34
|
+
*/
|
|
35
|
+
suppressBtwCleanup?: boolean;
|
|
25
36
|
};
|
|
26
37
|
/**
|
|
27
38
|
* Extended tasks service with custom methods
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../src/services/tasks.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,OAAO,EAAE,KAAK,QAAQ,EAA2B,MAAM,eAAe,CAAC;AACvE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAEV,SAAS,EACT,WAAW,EAGX,IAAI,EAEL,MAAM,kBAAkB,CAAC;AAO1B,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../src/services/tasks.ts"],"names":[],"mappings":"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"}
|
|
@@ -849,7 +849,7 @@ var TasksService = class extends DrizzleService {
|
|
|
849
849
|
},
|
|
850
850
|
{
|
|
851
851
|
...params,
|
|
852
|
-
|
|
852
|
+
suppressTerminalSessionStateUpdate: true,
|
|
853
853
|
suppressTerminalQueueProcessing: true
|
|
854
854
|
}
|
|
855
855
|
);
|
|
@@ -861,10 +861,17 @@ var TasksService = class extends DrizzleService {
|
|
|
861
861
|
);
|
|
862
862
|
return failedTask;
|
|
863
863
|
}
|
|
864
|
+
const sessionPatchParams = {
|
|
865
|
+
...params,
|
|
866
|
+
suppressTerminalQueueProcessing: true
|
|
867
|
+
};
|
|
864
868
|
await this.app.service("sessions").patch(
|
|
865
869
|
failedTask.session_id,
|
|
866
|
-
{
|
|
867
|
-
|
|
870
|
+
{
|
|
871
|
+
status: SessionStatus.FAILED,
|
|
872
|
+
ready_for_prompt: true
|
|
873
|
+
},
|
|
874
|
+
sessionPatchParams
|
|
868
875
|
).catch((error) => {
|
|
869
876
|
console.warn(
|
|
870
877
|
`[executor-heartbeat] Failed to mark session ${shortId2(failedTask.session_id)} failed after stale heartbeat:`,
|
|
@@ -903,11 +910,10 @@ var TasksService = class extends DrizzleService {
|
|
|
903
910
|
*/
|
|
904
911
|
async patch(id, data, params) {
|
|
905
912
|
const nextStatus = data.status;
|
|
906
|
-
const
|
|
907
|
-
|
|
908
|
-
if (currentTask && isTerminalTaskStatus(currentTask.status) && isTerminalTaskStatus(nextStatus)) {
|
|
913
|
+
const currentTask = nextStatus !== void 0 ? await this.get(id, params) : void 0;
|
|
914
|
+
if (currentTask && isTerminalTaskStatus(currentTask.status) && nextStatus !== void 0) {
|
|
909
915
|
console.warn(
|
|
910
|
-
`\u23ED\uFE0F [TasksService] Ignoring
|
|
916
|
+
`\u23ED\uFE0F [TasksService] Ignoring status rewrite for terminal task ${shortId2(currentTask.task_id)} (${currentTask.status} \u2192 ${nextStatus})`
|
|
911
917
|
);
|
|
912
918
|
return currentTask;
|
|
913
919
|
}
|
|
@@ -984,49 +990,59 @@ var TasksService = class extends DrizzleService {
|
|
|
984
990
|
});
|
|
985
991
|
}
|
|
986
992
|
const latestTaskId = session.tasks?.[session.tasks.length - 1];
|
|
993
|
+
const suppressCompletionCallbacks = params?.suppressCompletionCallbacks === true;
|
|
994
|
+
const suppressBtwCleanup = params?.suppressBtwCleanup === true;
|
|
987
995
|
if (latestTaskId && latestTaskId !== task.task_id) {
|
|
988
996
|
console.log(
|
|
989
|
-
`\u23ED\uFE0F [TasksService] Skipping session
|
|
997
|
+
`\u23ED\uFE0F [TasksService] Skipping session terminal-state update - task ${shortId2(task.task_id)} is not the latest (latest: ${shortId2(latestTaskId)})`
|
|
990
998
|
);
|
|
991
|
-
|
|
999
|
+
if (!suppressCompletionCallbacks) {
|
|
1000
|
+
await this.dispatchCompletionCallbacks(task, session, params);
|
|
1001
|
+
}
|
|
992
1002
|
return result;
|
|
993
1003
|
}
|
|
994
1004
|
const isUserInitiatedStop = data.status === TaskStatus.STOPPED;
|
|
995
1005
|
if (isUserInitiatedStop) {
|
|
996
1006
|
console.log(
|
|
997
|
-
`\u23ED\uFE0F [TasksService] Skipping session
|
|
1007
|
+
`\u23ED\uFE0F [TasksService] Skipping session terminal-state update for STOPPED task ${shortId2(task.task_id)} \u2014 stop endpoint handles session state`
|
|
998
1008
|
);
|
|
999
|
-
} else if (params?.
|
|
1009
|
+
} else if (params?.suppressTerminalSessionStateUpdate) {
|
|
1000
1010
|
console.log(
|
|
1001
|
-
`\u23ED\uFE0F [TasksService] Skipping session
|
|
1011
|
+
`\u23ED\uFE0F [TasksService] Skipping session terminal-state update for task ${shortId2(task.task_id)} (${data.status}) due to internal patch params`
|
|
1002
1012
|
);
|
|
1003
1013
|
} else {
|
|
1004
1014
|
await this.app.service("sessions").patch(
|
|
1005
1015
|
task.session_id,
|
|
1006
1016
|
{
|
|
1007
|
-
status:
|
|
1017
|
+
status: data.status === TaskStatus.FAILED ? SessionStatus.FAILED : SessionStatus.IDLE,
|
|
1008
1018
|
ready_for_prompt: true
|
|
1009
1019
|
},
|
|
1010
1020
|
params
|
|
1011
1021
|
);
|
|
1012
1022
|
console.log(
|
|
1013
|
-
`\u2705 [TasksService] Session ${shortId2(task.session_id)} status updated
|
|
1023
|
+
`\u2705 [TasksService] Session ${shortId2(task.session_id)} status updated after terminal task (task ${shortId2(task.task_id)} ${data.status})`
|
|
1014
1024
|
);
|
|
1015
1025
|
}
|
|
1016
|
-
|
|
1026
|
+
if (!suppressCompletionCallbacks) {
|
|
1027
|
+
await this.dispatchCompletionCallbacks(task, session, params);
|
|
1028
|
+
}
|
|
1017
1029
|
if (session.fork_origin === "btw") {
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1030
|
+
if (!suppressBtwCleanup) {
|
|
1031
|
+
try {
|
|
1032
|
+
await this.app.service("sessions").patch(session.session_id, {
|
|
1033
|
+
archived: true,
|
|
1034
|
+
archived_reason: "btw_completed"
|
|
1035
|
+
});
|
|
1036
|
+
console.log(
|
|
1037
|
+
`\u{1F4E6} [TasksService] Auto-archived btw fork session ${shortId2(session.session_id)}`
|
|
1038
|
+
);
|
|
1039
|
+
} catch (error) {
|
|
1040
|
+
console.warn(`\u26A0\uFE0F [TasksService] Failed to auto-archive btw fork:`, error);
|
|
1041
|
+
}
|
|
1042
|
+
}
|
|
1043
|
+
if (!suppressCompletionCallbacks) {
|
|
1044
|
+
await this.injectBtwResultMessage(task, session, params);
|
|
1028
1045
|
}
|
|
1029
|
-
await this.injectBtwResultMessage(task, session, params);
|
|
1030
1046
|
}
|
|
1031
1047
|
const sessionsService = this.app.service("sessions");
|
|
1032
1048
|
if (!params?.suppressTerminalQueueProcessing && sessionsService.triggerQueueProcessing) {
|
package/dist/daemon/startup.js
CHANGED
|
@@ -1103,11 +1103,15 @@ var SchedulerService = class {
|
|
|
1103
1103
|
}
|
|
1104
1104
|
return;
|
|
1105
1105
|
}
|
|
1106
|
-
console.log(
|
|
1106
|
+
console.log(
|
|
1107
|
+
` \u{1F552} Scheduler due: "${schedule.name}" scheduled_at=${new Date(scheduledRunAt).toISOString()} \u2014 spawning session`
|
|
1108
|
+
);
|
|
1107
1109
|
await this.spawnScheduledSession(schedule, scheduledRunAt, now, { source: "cron" });
|
|
1108
1110
|
});
|
|
1109
1111
|
} else {
|
|
1110
|
-
console.log(
|
|
1112
|
+
console.log(
|
|
1113
|
+
` \u{1F552} Scheduler due: "${schedule.name}" scheduled_at=${new Date(scheduledRunAt).toISOString()} \u2014 spawning session`
|
|
1114
|
+
);
|
|
1111
1115
|
await this.spawnScheduledSession(schedule, scheduledRunAt, now, { source: "cron" });
|
|
1112
1116
|
}
|
|
1113
1117
|
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { type TaskRepository } from '@agor/core/db';
|
|
2
|
+
import type { Application } from '@agor/core/feathers';
|
|
3
|
+
import type { Params, SessionID } from '@agor/core/types';
|
|
4
|
+
import { SessionStatus } from '@agor/core/types';
|
|
5
|
+
import type { SessionsServiceImpl, TasksServiceImpl } from '../declarations.js';
|
|
6
|
+
export interface StopSessionResult {
|
|
7
|
+
success: boolean;
|
|
8
|
+
status?: typeof SessionStatus.IDLE;
|
|
9
|
+
reason?: string;
|
|
10
|
+
stoppedTaskId?: string;
|
|
11
|
+
queuedTasksPreserved?: number;
|
|
12
|
+
}
|
|
13
|
+
export interface StopSessionDeps {
|
|
14
|
+
app: Application;
|
|
15
|
+
taskRepo: Pick<TaskRepository, 'findQueued'>;
|
|
16
|
+
sessionsService: Pick<SessionsServiceImpl, 'get' | 'patch'>;
|
|
17
|
+
tasksService: Pick<TasksServiceImpl, 'patch'>;
|
|
18
|
+
killExecutorProcess: (sessionId: string) => boolean;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Mark a stopped session promptable without letting the session after.patch
|
|
22
|
+
* hook drain the queue while the Stop route still holds the turn lock.
|
|
23
|
+
*
|
|
24
|
+
* The route schedules queue processing after the lock is released. Doing it
|
|
25
|
+
* here would deadlock/retry against the same in-flight lock.
|
|
26
|
+
*/
|
|
27
|
+
export declare function markStoppedSessionPromptableNoDrain(sessionsService: Pick<SessionsServiceImpl, 'patch'>, sessionId: SessionID, params?: Params): Promise<void>;
|
|
28
|
+
/**
|
|
29
|
+
* Stop semantics, in one place:
|
|
30
|
+
* - target only the active task for the session;
|
|
31
|
+
* - preserve queued work so it can drain after Stop;
|
|
32
|
+
* - suppress task-terminal side effects that would independently drain or
|
|
33
|
+
* dispatch callbacks for a user-stopped turn;
|
|
34
|
+
* - leave the session idle/promptable before the caller kicks the queue
|
|
35
|
+
* drainer after releasing the session turn lock.
|
|
36
|
+
*
|
|
37
|
+
* Callers must hold the session turn lock while invoking this function, and
|
|
38
|
+
* must trigger queue processing only after the lock is released.
|
|
39
|
+
*/
|
|
40
|
+
export declare function stopSessionPreserveQueue(deps: StopSessionDeps, sessionId: SessionID, params?: Params, options?: {
|
|
41
|
+
reason?: string;
|
|
42
|
+
}): Promise<StopSessionResult>;
|
|
43
|
+
//# sourceMappingURL=session-stop.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-stop.d.ts","sourceRoot":"","sources":["../../src/utils/session-stop.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAsB,aAAa,EAAc,MAAM,kBAAkB,CAAC;AACjF,OAAO,KAAK,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGhF,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,aAAa,CAAC,IAAI,CAAC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,WAAW,CAAC;IACjB,QAAQ,EAAE,IAAI,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;IAC7C,eAAe,EAAE,IAAI,CAAC,mBAAmB,EAAE,KAAK,GAAG,OAAO,CAAC,CAAC;IAC5D,YAAY,EAAE,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;IAC9C,mBAAmB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC;CACrD;AAED;;;;;;GAMG;AACH,wBAAsB,mCAAmC,CACvD,eAAe,EAAE,IAAI,CAAC,mBAAmB,EAAE,OAAO,CAAC,EACnD,SAAS,EAAE,SAAS,EACpB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC,CAYf;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,eAAe,EACrB,SAAS,EAAE,SAAS,EACpB,MAAM,GAAE,MAAW,EACnB,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GAChC,OAAO,CAAC,iBAAiB,CAAC,CAgE5B"}
|