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
|
@@ -250,6 +250,19 @@ function resolveModelConfigWithFallback(tool, sources, opts) {
|
|
|
250
250
|
}
|
|
251
251
|
|
|
252
252
|
// src/types/session.ts
|
|
253
|
+
var SessionStatus = {
|
|
254
|
+
IDLE: "idle",
|
|
255
|
+
RUNNING: "running",
|
|
256
|
+
STOPPING: "stopping",
|
|
257
|
+
// Stop requested, waiting for task to stop
|
|
258
|
+
AWAITING_PERMISSION: "awaiting_permission",
|
|
259
|
+
AWAITING_INPUT: "awaiting_input",
|
|
260
|
+
// Legacy / pre-#1177: AskUserQuestion was disallowed at the SDK; new sessions never enter this state, kept for historical rows
|
|
261
|
+
TIMED_OUT: "timed_out",
|
|
262
|
+
// Permission/input request timed out, executor exited — user must re-prompt
|
|
263
|
+
COMPLETED: "completed",
|
|
264
|
+
FAILED: "failed"
|
|
265
|
+
};
|
|
253
266
|
function getDefaultPermissionMode(agenticTool) {
|
|
254
267
|
switch (agenticTool) {
|
|
255
268
|
case "gemini":
|
|
@@ -271,6 +284,12 @@ function getDefaultPermissionMode(agenticTool) {
|
|
|
271
284
|
return "auto";
|
|
272
285
|
}
|
|
273
286
|
}
|
|
287
|
+
var EXECUTING_SESSION_STATUSES = /* @__PURE__ */ new Set([
|
|
288
|
+
SessionStatus.RUNNING,
|
|
289
|
+
SessionStatus.STOPPING,
|
|
290
|
+
SessionStatus.AWAITING_PERMISSION,
|
|
291
|
+
SessionStatus.AWAITING_INPUT
|
|
292
|
+
]);
|
|
274
293
|
|
|
275
294
|
// src/utils/permission-mode-mapper.ts
|
|
276
295
|
function mapPermissionMode(mode, agenticTool) {
|
|
@@ -222,6 +222,19 @@ function resolveModelConfigWithFallback(tool, sources, opts) {
|
|
|
222
222
|
}
|
|
223
223
|
|
|
224
224
|
// src/types/session.ts
|
|
225
|
+
var SessionStatus = {
|
|
226
|
+
IDLE: "idle",
|
|
227
|
+
RUNNING: "running",
|
|
228
|
+
STOPPING: "stopping",
|
|
229
|
+
// Stop requested, waiting for task to stop
|
|
230
|
+
AWAITING_PERMISSION: "awaiting_permission",
|
|
231
|
+
AWAITING_INPUT: "awaiting_input",
|
|
232
|
+
// Legacy / pre-#1177: AskUserQuestion was disallowed at the SDK; new sessions never enter this state, kept for historical rows
|
|
233
|
+
TIMED_OUT: "timed_out",
|
|
234
|
+
// Permission/input request timed out, executor exited — user must re-prompt
|
|
235
|
+
COMPLETED: "completed",
|
|
236
|
+
FAILED: "failed"
|
|
237
|
+
};
|
|
225
238
|
function getDefaultPermissionMode(agenticTool) {
|
|
226
239
|
switch (agenticTool) {
|
|
227
240
|
case "gemini":
|
|
@@ -243,6 +256,12 @@ function getDefaultPermissionMode(agenticTool) {
|
|
|
243
256
|
return "auto";
|
|
244
257
|
}
|
|
245
258
|
}
|
|
259
|
+
var EXECUTING_SESSION_STATUSES = /* @__PURE__ */ new Set([
|
|
260
|
+
SessionStatus.RUNNING,
|
|
261
|
+
SessionStatus.STOPPING,
|
|
262
|
+
SessionStatus.AWAITING_PERMISSION,
|
|
263
|
+
SessionStatus.AWAITING_INPUT
|
|
264
|
+
]);
|
|
246
265
|
|
|
247
266
|
// src/utils/permission-mode-mapper.ts
|
|
248
267
|
function mapPermissionMode(mode, agenticTool) {
|
|
@@ -2,56 +2,24 @@
|
|
|
2
2
|
|
|
3
3
|
## Agor Session Context
|
|
4
4
|
|
|
5
|
-
You are
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
-
|
|
15
|
-
|
|
16
|
-
-
|
|
17
|
-
|
|
18
|
-
-
|
|
19
|
-
|
|
20
|
-
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
- Path: `{{branch.path}}`
|
|
28
|
-
- Name: {{branch.name}}
|
|
29
|
-
{{#if branch.ref}}
|
|
30
|
-
- Ref: `{{branch.ref}}`
|
|
31
|
-
{{/if}}
|
|
32
|
-
{{#if branch.notes}}
|
|
33
|
-
- Notes: {{branch.notes}}
|
|
34
|
-
{{/if}}
|
|
35
|
-
{{/if}}
|
|
36
|
-
|
|
37
|
-
{{#if repo}}
|
|
38
|
-
**Repository:**
|
|
39
|
-
|
|
40
|
-
- Name: {{repo.name}}
|
|
41
|
-
{{#if repo.slug}}
|
|
42
|
-
- Slug: {{repo.slug}}
|
|
43
|
-
{{/if}}
|
|
44
|
-
{{#if repo.local_path}}
|
|
45
|
-
- Local Path: `{{repo.local_path}}`
|
|
46
|
-
{{/if}}
|
|
47
|
-
{{/if}}
|
|
48
|
-
|
|
49
|
-
### Key Concepts
|
|
50
|
-
|
|
51
|
-
- **Sessions** represent individual agent conversations with full genealogy (fork/spawn relationships)
|
|
52
|
-
- **Branches** are git branches with isolated development environments
|
|
53
|
-
- **Repositories** contain the code you're working on
|
|
54
|
-
- **Tasks** are user prompts tracked as first-class work units
|
|
55
|
-
- **MCP Tools** enable rich self-awareness and multi-agent coordination
|
|
56
|
-
|
|
57
|
-
For more information, visit https://agor.live
|
|
5
|
+
You are running in **Agor** (https://agor.live), a multiplayer canvas for AI coding agents.
|
|
6
|
+
|
|
7
|
+
To get context about the current session, branch, repo, board, git state, or
|
|
8
|
+
genealogy, call `agor_sessions_get_current_context`.
|
|
9
|
+
|
|
10
|
+
Agor MCP tool domains:
|
|
11
|
+
- sessions: Agent conversations with genealogy, task tracking, and message history
|
|
12
|
+
- branches: Isolated workspaces with git refs, board placement, and zones
|
|
13
|
+
- boards/cards: Spatial boards, zones, cards, and card type definitions
|
|
14
|
+
- repos: Repository registration and management
|
|
15
|
+
- environment: Start/stop/health/logs/nuke for branch dev environments
|
|
16
|
+
- artifacts: Live apps and DOM inspection/materialization for board artifacts
|
|
17
|
+
- knowledge: Markdown docs, version history, search, and graph links
|
|
18
|
+
- schedules: Cron-based branch schedules from prompt templates
|
|
19
|
+
- mcp-servers: External MCP server configuration and OAuth
|
|
20
|
+
- users: User accounts, profiles, preferences, and administration
|
|
21
|
+
- analytics: Usage and cost tracking
|
|
22
|
+
- proxies/widgets: HTTP proxies and in-conversation interactive widgets
|
|
23
|
+
|
|
24
|
+
Discover tools with `agor_search_tools` and inspect schemas with
|
|
25
|
+
`agor_get_tool_details`.
|
|
@@ -30,7 +30,6 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
30
30
|
// src/templates/session-context.ts
|
|
31
31
|
var session_context_exports = {};
|
|
32
32
|
__export(session_context_exports, {
|
|
33
|
-
buildSessionContext: () => buildSessionContext,
|
|
34
33
|
loadAgorSystemPromptTemplate: () => loadAgorSystemPromptTemplate,
|
|
35
34
|
renderAgorSystemPrompt: () => renderAgorSystemPrompt
|
|
36
35
|
});
|
|
@@ -38,19 +37,6 @@ module.exports = __toCommonJS(session_context_exports);
|
|
|
38
37
|
var fs = __toESM(require("fs/promises"), 1);
|
|
39
38
|
var path = __toESM(require("path"), 1);
|
|
40
39
|
|
|
41
|
-
// src/lib/ids.ts
|
|
42
|
-
var import_node_crypto = require("crypto");
|
|
43
|
-
var import_uuid = require("uuid");
|
|
44
|
-
|
|
45
|
-
// src/types/id.ts
|
|
46
|
-
var SHORT_ID_LENGTH = 24;
|
|
47
|
-
function toShortId(id, length = SHORT_ID_LENGTH) {
|
|
48
|
-
return id.replace(/-/g, "").slice(0, Math.min(length, 32));
|
|
49
|
-
}
|
|
50
|
-
function shortId(id) {
|
|
51
|
-
return toShortId(id, SHORT_ID_LENGTH);
|
|
52
|
-
}
|
|
53
|
-
|
|
54
40
|
// src/templates/handlebars-helpers.ts
|
|
55
41
|
var import_handlebars = __toESM(require("handlebars"), 1);
|
|
56
42
|
var helpersRegistered = false;
|
|
@@ -170,69 +156,12 @@ async function loadAgorSystemPromptTemplate() {
|
|
|
170
156
|
const templatePath = path.join(__dirname, "agor-system-prompt.md");
|
|
171
157
|
return await fs.readFile(templatePath, "utf-8");
|
|
172
158
|
}
|
|
173
|
-
async function
|
|
174
|
-
const context = {};
|
|
175
|
-
const session = await repos.sessions.findById(sessionId);
|
|
176
|
-
if (session) {
|
|
177
|
-
context.session = {
|
|
178
|
-
session_id: session.session_id,
|
|
179
|
-
sdk_session_id: session.sdk_session_id,
|
|
180
|
-
// Claude SDK session ID (for conversation continuity)
|
|
181
|
-
agentic_tool: session.agentic_tool,
|
|
182
|
-
permission_config: session.permission_config || {},
|
|
183
|
-
created_at: session.created_at
|
|
184
|
-
};
|
|
185
|
-
if (session.created_by && repos.users) {
|
|
186
|
-
try {
|
|
187
|
-
const owner = await repos.users.findById(session.created_by);
|
|
188
|
-
if (owner) {
|
|
189
|
-
context.owner = {
|
|
190
|
-
name: owner.name || owner.email,
|
|
191
|
-
email: owner.email
|
|
192
|
-
};
|
|
193
|
-
}
|
|
194
|
-
} catch (err) {
|
|
195
|
-
console.warn(
|
|
196
|
-
`[SessionContext] Failed to fetch owner for session ${shortId(sessionId)}:`,
|
|
197
|
-
err
|
|
198
|
-
);
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
if (session.branch_id && repos.branches) {
|
|
202
|
-
const branch = await repos.branches.findById(session.branch_id);
|
|
203
|
-
if (branch) {
|
|
204
|
-
context.branch = {
|
|
205
|
-
branch_id: branch.branch_id,
|
|
206
|
-
name: branch.name,
|
|
207
|
-
path: branch.path,
|
|
208
|
-
ref: branch.ref,
|
|
209
|
-
// Git ref (branch/tag/commit)
|
|
210
|
-
notes: branch.notes
|
|
211
|
-
};
|
|
212
|
-
if (branch.repo_id && repos.repos) {
|
|
213
|
-
const repo = await repos.repos.findById(branch.repo_id);
|
|
214
|
-
if (repo) {
|
|
215
|
-
context.repo = {
|
|
216
|
-
repo_id: repo.repo_id,
|
|
217
|
-
name: repo.name,
|
|
218
|
-
slug: repo.slug,
|
|
219
|
-
local_path: repo.local_path
|
|
220
|
-
};
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
return context;
|
|
227
|
-
}
|
|
228
|
-
async function renderAgorSystemPrompt(sessionId, repos) {
|
|
159
|
+
async function renderAgorSystemPrompt() {
|
|
229
160
|
const template = await loadAgorSystemPromptTemplate();
|
|
230
|
-
|
|
231
|
-
return renderTemplate(template, context);
|
|
161
|
+
return renderTemplate(template, {});
|
|
232
162
|
}
|
|
233
163
|
// Annotate the CommonJS export names for ESM import in node:
|
|
234
164
|
0 && (module.exports = {
|
|
235
|
-
buildSessionContext,
|
|
236
165
|
loadAgorSystemPromptTemplate,
|
|
237
166
|
renderAgorSystemPrompt
|
|
238
167
|
});
|
|
@@ -1,64 +1,20 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Static Agor System Prompt Loader
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* Used by all SDKs (Claude Code, Gemini, Codex) for dynamic system prompts.
|
|
10
|
-
*/
|
|
11
|
-
import type { Branch, BranchID, Repo, Session, SessionID, User, UUID } from '../types';
|
|
12
|
-
/**
|
|
13
|
-
* Minimal repository interfaces for session context rendering.
|
|
14
|
-
* These allow both ORM repositories and Feathers repositories to be used.
|
|
4
|
+
* Used by SDK handlers to append the same Agor orientation text on every turn.
|
|
5
|
+
* Dynamic session/branch/repo/board context belongs in Agor MCP tools, especially
|
|
6
|
+
* agor_sessions_get_current_context, so provider-visible prompt prefixes remain
|
|
7
|
+
* stable for server-side prompt caching.
|
|
15
8
|
*/
|
|
16
|
-
interface SessionRepositoryLike {
|
|
17
|
-
findById(id: SessionID): Promise<Session | null>;
|
|
18
|
-
}
|
|
19
|
-
interface BranchRepositoryLike {
|
|
20
|
-
findById(id: BranchID): Promise<Branch | null>;
|
|
21
|
-
}
|
|
22
|
-
interface RepoRepositoryLike {
|
|
23
|
-
findById(id: UUID): Promise<Repo | null>;
|
|
24
|
-
}
|
|
25
|
-
interface UserRepositoryLike {
|
|
26
|
-
findById(id: string): Promise<User | null>;
|
|
27
|
-
}
|
|
28
9
|
/**
|
|
29
10
|
* Load Agor system prompt template from disk
|
|
30
11
|
*/
|
|
31
12
|
export declare function loadAgorSystemPromptTemplate(): Promise<string>;
|
|
32
13
|
/**
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
* Fetches session, branch, and repo data to provide rich context
|
|
36
|
-
* to agents about their Agor environment.
|
|
37
|
-
*
|
|
38
|
-
* @param sessionId - Current session ID
|
|
39
|
-
* @param repos - Repository instances for data fetching
|
|
40
|
-
* @returns Template context with session/branch/repo data
|
|
41
|
-
*/
|
|
42
|
-
export declare function buildSessionContext(sessionId: SessionID, repos: {
|
|
43
|
-
sessions: SessionRepositoryLike;
|
|
44
|
-
branches?: BranchRepositoryLike;
|
|
45
|
-
repos?: RepoRepositoryLike;
|
|
46
|
-
users?: UserRepositoryLike;
|
|
47
|
-
}): Promise<Record<string, unknown>>;
|
|
48
|
-
/**
|
|
49
|
-
* Render Agor system prompt with full session context
|
|
50
|
-
*
|
|
51
|
-
* Convenience function that loads template and renders with context.
|
|
14
|
+
* Render the static Agor system prompt.
|
|
52
15
|
*
|
|
53
|
-
*
|
|
54
|
-
*
|
|
55
|
-
* @returns Rendered system prompt with session/branch/repo information
|
|
16
|
+
* This intentionally does not accept session/repo dependencies. Agents should
|
|
17
|
+
* fetch live Agor context through MCP instead of embedding dynamic values here.
|
|
56
18
|
*/
|
|
57
|
-
export declare function renderAgorSystemPrompt(
|
|
58
|
-
sessions: SessionRepositoryLike;
|
|
59
|
-
branches?: BranchRepositoryLike;
|
|
60
|
-
repos?: RepoRepositoryLike;
|
|
61
|
-
users?: UserRepositoryLike;
|
|
62
|
-
}): Promise<string>;
|
|
63
|
-
export {};
|
|
19
|
+
export declare function renderAgorSystemPrompt(): Promise<string>;
|
|
64
20
|
//# sourceMappingURL=session-context.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-context.d.ts","sourceRoot":"","sources":["../../src/templates/session-context.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"session-context.d.ts","sourceRoot":"","sources":["../../src/templates/session-context.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH;;GAEG;AACH,wBAAsB,4BAA4B,IAAI,OAAO,CAAC,MAAM,CAAC,CAGpE;AAED;;;;;GAKG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,MAAM,CAAC,CAG9D"}
|
|
@@ -9,19 +9,6 @@ var __dirname = /* @__PURE__ */ getDirname();
|
|
|
9
9
|
import * as fs from "fs/promises";
|
|
10
10
|
import * as path2 from "path";
|
|
11
11
|
|
|
12
|
-
// src/lib/ids.ts
|
|
13
|
-
import { randomBytes } from "crypto";
|
|
14
|
-
import { v7 as uuidv7 } from "uuid";
|
|
15
|
-
|
|
16
|
-
// src/types/id.ts
|
|
17
|
-
var SHORT_ID_LENGTH = 24;
|
|
18
|
-
function toShortId(id, length = SHORT_ID_LENGTH) {
|
|
19
|
-
return id.replace(/-/g, "").slice(0, Math.min(length, 32));
|
|
20
|
-
}
|
|
21
|
-
function shortId(id) {
|
|
22
|
-
return toShortId(id, SHORT_ID_LENGTH);
|
|
23
|
-
}
|
|
24
|
-
|
|
25
12
|
// src/templates/handlebars-helpers.ts
|
|
26
13
|
import Handlebars from "handlebars";
|
|
27
14
|
var helpersRegistered = false;
|
|
@@ -141,68 +128,11 @@ async function loadAgorSystemPromptTemplate() {
|
|
|
141
128
|
const templatePath = path2.join(__dirname, "agor-system-prompt.md");
|
|
142
129
|
return await fs.readFile(templatePath, "utf-8");
|
|
143
130
|
}
|
|
144
|
-
async function
|
|
145
|
-
const context = {};
|
|
146
|
-
const session = await repos.sessions.findById(sessionId);
|
|
147
|
-
if (session) {
|
|
148
|
-
context.session = {
|
|
149
|
-
session_id: session.session_id,
|
|
150
|
-
sdk_session_id: session.sdk_session_id,
|
|
151
|
-
// Claude SDK session ID (for conversation continuity)
|
|
152
|
-
agentic_tool: session.agentic_tool,
|
|
153
|
-
permission_config: session.permission_config || {},
|
|
154
|
-
created_at: session.created_at
|
|
155
|
-
};
|
|
156
|
-
if (session.created_by && repos.users) {
|
|
157
|
-
try {
|
|
158
|
-
const owner = await repos.users.findById(session.created_by);
|
|
159
|
-
if (owner) {
|
|
160
|
-
context.owner = {
|
|
161
|
-
name: owner.name || owner.email,
|
|
162
|
-
email: owner.email
|
|
163
|
-
};
|
|
164
|
-
}
|
|
165
|
-
} catch (err) {
|
|
166
|
-
console.warn(
|
|
167
|
-
`[SessionContext] Failed to fetch owner for session ${shortId(sessionId)}:`,
|
|
168
|
-
err
|
|
169
|
-
);
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
if (session.branch_id && repos.branches) {
|
|
173
|
-
const branch = await repos.branches.findById(session.branch_id);
|
|
174
|
-
if (branch) {
|
|
175
|
-
context.branch = {
|
|
176
|
-
branch_id: branch.branch_id,
|
|
177
|
-
name: branch.name,
|
|
178
|
-
path: branch.path,
|
|
179
|
-
ref: branch.ref,
|
|
180
|
-
// Git ref (branch/tag/commit)
|
|
181
|
-
notes: branch.notes
|
|
182
|
-
};
|
|
183
|
-
if (branch.repo_id && repos.repos) {
|
|
184
|
-
const repo = await repos.repos.findById(branch.repo_id);
|
|
185
|
-
if (repo) {
|
|
186
|
-
context.repo = {
|
|
187
|
-
repo_id: repo.repo_id,
|
|
188
|
-
name: repo.name,
|
|
189
|
-
slug: repo.slug,
|
|
190
|
-
local_path: repo.local_path
|
|
191
|
-
};
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
return context;
|
|
198
|
-
}
|
|
199
|
-
async function renderAgorSystemPrompt(sessionId, repos) {
|
|
131
|
+
async function renderAgorSystemPrompt() {
|
|
200
132
|
const template = await loadAgorSystemPromptTemplate();
|
|
201
|
-
|
|
202
|
-
return renderTemplate(template, context);
|
|
133
|
+
return renderTemplate(template, {});
|
|
203
134
|
}
|
|
204
135
|
export {
|
|
205
|
-
buildSessionContext,
|
|
206
136
|
loadAgorSystemPromptTemplate,
|
|
207
137
|
renderAgorSystemPrompt
|
|
208
138
|
};
|
|
@@ -348,37 +348,24 @@ var import_node_http = __toESM(require("http"), 1);
|
|
|
348
348
|
var authCodeTokenCache = /* @__PURE__ */ new Map();
|
|
349
349
|
function getCachedOAuth21Token(mcpUrl) {
|
|
350
350
|
const now = Date.now();
|
|
351
|
-
console.log("[OAuth 2.1 Cache] Looking for token for MCP URL:", mcpUrl);
|
|
352
|
-
console.log("[OAuth 2.1 Cache] Cache size:", authCodeTokenCache.size);
|
|
353
351
|
let mcpOrigin;
|
|
354
352
|
try {
|
|
355
353
|
mcpOrigin = new URL(mcpUrl).origin;
|
|
356
|
-
|
|
357
|
-
} catch (e) {
|
|
358
|
-
console.log("[OAuth 2.1 Cache] Invalid MCP URL:", e);
|
|
354
|
+
} catch {
|
|
359
355
|
return void 0;
|
|
360
356
|
}
|
|
361
357
|
for (const [metadataUrl, cached] of authCodeTokenCache.entries()) {
|
|
362
|
-
console.log("[OAuth 2.1 Cache] Checking cache entry:", metadataUrl);
|
|
363
|
-
console.log("[OAuth 2.1 Cache] Token expires at:", new Date(cached.expiresAt).toISOString());
|
|
364
|
-
console.log("[OAuth 2.1 Cache] Current time:", new Date(now).toISOString());
|
|
365
358
|
if (cached.expiresAt <= now) {
|
|
366
|
-
console.log("[OAuth 2.1 Cache] Token expired, skipping");
|
|
367
359
|
continue;
|
|
368
360
|
}
|
|
369
361
|
try {
|
|
370
362
|
const metadataOrigin = new URL(metadataUrl).origin;
|
|
371
|
-
console.log("[OAuth 2.1 Cache] Metadata origin:", metadataOrigin);
|
|
372
|
-
console.log("[OAuth 2.1 Cache] Origins match:", metadataOrigin === mcpOrigin);
|
|
373
363
|
if (metadataOrigin === mcpOrigin || metadataUrl.includes(mcpOrigin)) {
|
|
374
|
-
console.log("[OAuth 2.1 Cache] \u2705 Found cached token for:", mcpOrigin);
|
|
375
364
|
return cached.token;
|
|
376
365
|
}
|
|
377
|
-
} catch
|
|
378
|
-
console.log("[OAuth 2.1 Cache] Invalid metadata URL:", e);
|
|
366
|
+
} catch {
|
|
379
367
|
}
|
|
380
368
|
}
|
|
381
|
-
console.log("[OAuth 2.1 Cache] \u274C No matching token found");
|
|
382
369
|
return void 0;
|
|
383
370
|
}
|
|
384
371
|
|
|
@@ -474,9 +461,7 @@ async function resolveMCPAuthHeaders(auth, mcpUrl) {
|
|
|
474
461
|
if (auth.type === "oauth") {
|
|
475
462
|
if (auth.oauth_access_token) {
|
|
476
463
|
if (auth.oauth_token_expires_at && auth.oauth_token_expires_at <= Date.now()) {
|
|
477
|
-
console.log("[OAuth 2.1] Database token expired, will try other methods");
|
|
478
464
|
} else {
|
|
479
|
-
console.log("[OAuth 2.1] Using database-stored token");
|
|
480
465
|
return {
|
|
481
466
|
Authorization: `Bearer ${auth.oauth_access_token}`
|
|
482
467
|
};
|
|
@@ -486,14 +471,11 @@ async function resolveMCPAuthHeaders(auth, mcpUrl) {
|
|
|
486
471
|
if (mcpUrl) {
|
|
487
472
|
const cachedToken = getCachedOAuth21Token(mcpUrl);
|
|
488
473
|
if (cachedToken) {
|
|
489
|
-
console.log("[OAuth 2.1] Using in-memory cached token from browser flow");
|
|
490
474
|
return {
|
|
491
475
|
Authorization: `Bearer ${cachedToken}`
|
|
492
476
|
};
|
|
493
477
|
}
|
|
494
478
|
}
|
|
495
|
-
console.log("[OAuth] No credentials and no cached token - authentication may fail");
|
|
496
|
-
console.log('[OAuth] Use "Start OAuth Flow" button to authenticate via browser first');
|
|
497
479
|
return void 0;
|
|
498
480
|
}
|
|
499
481
|
let tokenUrl = auth.oauth_token_url;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jwt-auth.d.ts","sourceRoot":"","sources":["../../../src/tools/mcp/jwt-auth.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAI/C,UAAU,SAAS;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAiBD;;;;;;GAMG;AACH,wBAAsB,aAAa,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CA+CtE;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAMnD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAExC;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,uBAAuB,CAC3C,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,CAAC,CAY3E;AAED;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CACzC,IAAI,CAAC,EAAE,OAAO,EACd,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"jwt-auth.d.ts","sourceRoot":"","sources":["../../../src/tools/mcp/jwt-auth.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAI/C,UAAU,SAAS;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAiBD;;;;;;GAMG;AACH,wBAAsB,aAAa,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CA+CtE;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAMnD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAExC;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,uBAAuB,CAC3C,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,CAAC,CAY3E;AAED;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CACzC,IAAI,CAAC,EAAE,OAAO,EACd,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC,CA2F7C"}
|
|
@@ -308,37 +308,24 @@ import http from "http";
|
|
|
308
308
|
var authCodeTokenCache = /* @__PURE__ */ new Map();
|
|
309
309
|
function getCachedOAuth21Token(mcpUrl) {
|
|
310
310
|
const now = Date.now();
|
|
311
|
-
console.log("[OAuth 2.1 Cache] Looking for token for MCP URL:", mcpUrl);
|
|
312
|
-
console.log("[OAuth 2.1 Cache] Cache size:", authCodeTokenCache.size);
|
|
313
311
|
let mcpOrigin;
|
|
314
312
|
try {
|
|
315
313
|
mcpOrigin = new URL(mcpUrl).origin;
|
|
316
|
-
|
|
317
|
-
} catch (e) {
|
|
318
|
-
console.log("[OAuth 2.1 Cache] Invalid MCP URL:", e);
|
|
314
|
+
} catch {
|
|
319
315
|
return void 0;
|
|
320
316
|
}
|
|
321
317
|
for (const [metadataUrl, cached] of authCodeTokenCache.entries()) {
|
|
322
|
-
console.log("[OAuth 2.1 Cache] Checking cache entry:", metadataUrl);
|
|
323
|
-
console.log("[OAuth 2.1 Cache] Token expires at:", new Date(cached.expiresAt).toISOString());
|
|
324
|
-
console.log("[OAuth 2.1 Cache] Current time:", new Date(now).toISOString());
|
|
325
318
|
if (cached.expiresAt <= now) {
|
|
326
|
-
console.log("[OAuth 2.1 Cache] Token expired, skipping");
|
|
327
319
|
continue;
|
|
328
320
|
}
|
|
329
321
|
try {
|
|
330
322
|
const metadataOrigin = new URL(metadataUrl).origin;
|
|
331
|
-
console.log("[OAuth 2.1 Cache] Metadata origin:", metadataOrigin);
|
|
332
|
-
console.log("[OAuth 2.1 Cache] Origins match:", metadataOrigin === mcpOrigin);
|
|
333
323
|
if (metadataOrigin === mcpOrigin || metadataUrl.includes(mcpOrigin)) {
|
|
334
|
-
console.log("[OAuth 2.1 Cache] \u2705 Found cached token for:", mcpOrigin);
|
|
335
324
|
return cached.token;
|
|
336
325
|
}
|
|
337
|
-
} catch
|
|
338
|
-
console.log("[OAuth 2.1 Cache] Invalid metadata URL:", e);
|
|
326
|
+
} catch {
|
|
339
327
|
}
|
|
340
328
|
}
|
|
341
|
-
console.log("[OAuth 2.1 Cache] \u274C No matching token found");
|
|
342
329
|
return void 0;
|
|
343
330
|
}
|
|
344
331
|
|
|
@@ -434,9 +421,7 @@ async function resolveMCPAuthHeaders(auth, mcpUrl) {
|
|
|
434
421
|
if (auth.type === "oauth") {
|
|
435
422
|
if (auth.oauth_access_token) {
|
|
436
423
|
if (auth.oauth_token_expires_at && auth.oauth_token_expires_at <= Date.now()) {
|
|
437
|
-
console.log("[OAuth 2.1] Database token expired, will try other methods");
|
|
438
424
|
} else {
|
|
439
|
-
console.log("[OAuth 2.1] Using database-stored token");
|
|
440
425
|
return {
|
|
441
426
|
Authorization: `Bearer ${auth.oauth_access_token}`
|
|
442
427
|
};
|
|
@@ -446,14 +431,11 @@ async function resolveMCPAuthHeaders(auth, mcpUrl) {
|
|
|
446
431
|
if (mcpUrl) {
|
|
447
432
|
const cachedToken = getCachedOAuth21Token(mcpUrl);
|
|
448
433
|
if (cachedToken) {
|
|
449
|
-
console.log("[OAuth 2.1] Using in-memory cached token from browser flow");
|
|
450
434
|
return {
|
|
451
435
|
Authorization: `Bearer ${cachedToken}`
|
|
452
436
|
};
|
|
453
437
|
}
|
|
454
438
|
}
|
|
455
|
-
console.log("[OAuth] No credentials and no cached token - authentication may fail");
|
|
456
|
-
console.log('[OAuth] Use "Start OAuth Flow" button to authenticate via browser first');
|
|
457
439
|
return void 0;
|
|
458
440
|
}
|
|
459
441
|
let tokenUrl = auth.oauth_token_url;
|
|
@@ -617,37 +617,24 @@ function isOAuthRequired(status, headers) {
|
|
|
617
617
|
}
|
|
618
618
|
function getCachedOAuth21Token(mcpUrl) {
|
|
619
619
|
const now = Date.now();
|
|
620
|
-
console.log("[OAuth 2.1 Cache] Looking for token for MCP URL:", mcpUrl);
|
|
621
|
-
console.log("[OAuth 2.1 Cache] Cache size:", authCodeTokenCache.size);
|
|
622
620
|
let mcpOrigin;
|
|
623
621
|
try {
|
|
624
622
|
mcpOrigin = new URL(mcpUrl).origin;
|
|
625
|
-
|
|
626
|
-
} catch (e) {
|
|
627
|
-
console.log("[OAuth 2.1 Cache] Invalid MCP URL:", e);
|
|
623
|
+
} catch {
|
|
628
624
|
return void 0;
|
|
629
625
|
}
|
|
630
626
|
for (const [metadataUrl, cached] of authCodeTokenCache.entries()) {
|
|
631
|
-
console.log("[OAuth 2.1 Cache] Checking cache entry:", metadataUrl);
|
|
632
|
-
console.log("[OAuth 2.1 Cache] Token expires at:", new Date(cached.expiresAt).toISOString());
|
|
633
|
-
console.log("[OAuth 2.1 Cache] Current time:", new Date(now).toISOString());
|
|
634
627
|
if (cached.expiresAt <= now) {
|
|
635
|
-
console.log("[OAuth 2.1 Cache] Token expired, skipping");
|
|
636
628
|
continue;
|
|
637
629
|
}
|
|
638
630
|
try {
|
|
639
631
|
const metadataOrigin = new URL(metadataUrl).origin;
|
|
640
|
-
console.log("[OAuth 2.1 Cache] Metadata origin:", metadataOrigin);
|
|
641
|
-
console.log("[OAuth 2.1 Cache] Origins match:", metadataOrigin === mcpOrigin);
|
|
642
632
|
if (metadataOrigin === mcpOrigin || metadataUrl.includes(mcpOrigin)) {
|
|
643
|
-
console.log("[OAuth 2.1 Cache] \u2705 Found cached token for:", mcpOrigin);
|
|
644
633
|
return cached.token;
|
|
645
634
|
}
|
|
646
|
-
} catch
|
|
647
|
-
console.log("[OAuth 2.1 Cache] Invalid metadata URL:", e);
|
|
635
|
+
} catch {
|
|
648
636
|
}
|
|
649
637
|
}
|
|
650
|
-
console.log("[OAuth 2.1 Cache] \u274C No matching token found");
|
|
651
638
|
return void 0;
|
|
652
639
|
}
|
|
653
640
|
function clearAuthCodeTokenCache(metadataUrl) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth-mcp-transport.d.ts","sourceRoot":"","sources":["../../../src/tools/mcp/oauth-mcp-transport.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"oauth-mcp-transport.d.ts","sourceRoot":"","sources":["../../../src/tools/mcp/oauth-mcp-transport.ts"],"names":[],"mappings":"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"}
|
|
@@ -568,37 +568,24 @@ function isOAuthRequired(status, headers) {
|
|
|
568
568
|
}
|
|
569
569
|
function getCachedOAuth21Token(mcpUrl) {
|
|
570
570
|
const now = Date.now();
|
|
571
|
-
console.log("[OAuth 2.1 Cache] Looking for token for MCP URL:", mcpUrl);
|
|
572
|
-
console.log("[OAuth 2.1 Cache] Cache size:", authCodeTokenCache.size);
|
|
573
571
|
let mcpOrigin;
|
|
574
572
|
try {
|
|
575
573
|
mcpOrigin = new URL(mcpUrl).origin;
|
|
576
|
-
|
|
577
|
-
} catch (e) {
|
|
578
|
-
console.log("[OAuth 2.1 Cache] Invalid MCP URL:", e);
|
|
574
|
+
} catch {
|
|
579
575
|
return void 0;
|
|
580
576
|
}
|
|
581
577
|
for (const [metadataUrl, cached] of authCodeTokenCache.entries()) {
|
|
582
|
-
console.log("[OAuth 2.1 Cache] Checking cache entry:", metadataUrl);
|
|
583
|
-
console.log("[OAuth 2.1 Cache] Token expires at:", new Date(cached.expiresAt).toISOString());
|
|
584
|
-
console.log("[OAuth 2.1 Cache] Current time:", new Date(now).toISOString());
|
|
585
578
|
if (cached.expiresAt <= now) {
|
|
586
|
-
console.log("[OAuth 2.1 Cache] Token expired, skipping");
|
|
587
579
|
continue;
|
|
588
580
|
}
|
|
589
581
|
try {
|
|
590
582
|
const metadataOrigin = new URL(metadataUrl).origin;
|
|
591
|
-
console.log("[OAuth 2.1 Cache] Metadata origin:", metadataOrigin);
|
|
592
|
-
console.log("[OAuth 2.1 Cache] Origins match:", metadataOrigin === mcpOrigin);
|
|
593
583
|
if (metadataOrigin === mcpOrigin || metadataUrl.includes(mcpOrigin)) {
|
|
594
|
-
console.log("[OAuth 2.1 Cache] \u2705 Found cached token for:", mcpOrigin);
|
|
595
584
|
return cached.token;
|
|
596
585
|
}
|
|
597
|
-
} catch
|
|
598
|
-
console.log("[OAuth 2.1 Cache] Invalid metadata URL:", e);
|
|
586
|
+
} catch {
|
|
599
587
|
}
|
|
600
588
|
}
|
|
601
|
-
console.log("[OAuth 2.1 Cache] \u274C No matching token found");
|
|
602
589
|
return void 0;
|
|
603
590
|
}
|
|
604
591
|
function clearAuthCodeTokenCache(metadataUrl) {
|