agor-live 0.23.1 → 0.23.2
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/core/claude/index.cjs +51 -27
- package/dist/core/claude/index.js +51 -27
- package/dist/core/claude-cli/index.cjs +13 -0
- package/dist/core/claude-cli/index.js +13 -0
- package/dist/core/claude-cli/pricing.d.ts.map +1 -1
- package/dist/core/client/index.cjs +17 -0
- package/dist/core/client/index.js +16 -0
- package/dist/core/db/index.cjs +618 -421
- package/dist/core/db/index.js +550 -353
- package/dist/core/db/repositories/boards.d.ts +27 -0
- package/dist/core/db/repositories/boards.d.ts.map +1 -1
- package/dist/core/db/repositories/branches.d.ts +11 -1
- package/dist/core/db/repositories/branches.d.ts.map +1 -1
- package/dist/core/db/repositories/gateway-channels.d.ts +9 -0
- package/dist/core/db/repositories/gateway-channels.d.ts.map +1 -1
- package/dist/core/db/repositories/sessions.d.ts +7 -0
- package/dist/core/db/repositories/sessions.d.ts.map +1 -1
- package/dist/core/environment/render-snapshot.cjs +6 -2
- package/dist/core/environment/render-snapshot.d.ts +2 -0
- package/dist/core/environment/render-snapshot.d.ts.map +1 -1
- package/dist/core/environment/render-snapshot.js +6 -2
- package/dist/core/environment/variable-resolver.cjs +3 -1
- package/dist/core/environment/variable-resolver.js +3 -1
- package/dist/core/index.cjs +684 -486
- package/dist/core/index.js +684 -486
- package/dist/core/lib/feathers-validation.cjs +3 -0
- package/dist/core/lib/feathers-validation.d.ts +1 -0
- package/dist/core/lib/feathers-validation.d.ts.map +1 -1
- package/dist/core/lib/feathers-validation.js +3 -0
- package/dist/core/local-actions/index.cjs +123 -56
- package/dist/core/local-actions/index.js +121 -54
- package/dist/core/mcp/index.cjs +21 -3
- package/dist/core/mcp/index.d.ts +1 -1
- package/dist/core/mcp/index.d.ts.map +1 -1
- package/dist/core/mcp/index.js +18 -3
- package/dist/core/mcp/template-patterns.d.ts +15 -0
- package/dist/core/mcp/template-patterns.d.ts.map +1 -0
- package/dist/core/mcp/template-resolver.d.ts +13 -0
- package/dist/core/mcp/template-resolver.d.ts.map +1 -1
- package/dist/core/models/browser.cjs +6 -0
- package/dist/core/models/browser.js +6 -0
- package/dist/core/models/claude.d.ts.map +1 -1
- package/dist/core/models/index.cjs +6 -0
- package/dist/core/models/index.js +6 -0
- package/dist/core/seed/index.cjs +360 -216
- package/dist/core/seed/index.js +329 -185
- package/dist/core/templates/handlebars-helpers.cjs +3 -1
- package/dist/core/templates/handlebars-helpers.d.ts +5 -0
- package/dist/core/templates/handlebars-helpers.d.ts.map +1 -1
- package/dist/core/templates/handlebars-helpers.js +3 -1
- package/dist/core/tools/mcp/auth-secrets.cjs +3460 -3
- package/dist/core/tools/mcp/auth-secrets.d.ts.map +1 -1
- package/dist/core/tools/mcp/auth-secrets.js +3477 -3
- package/dist/core/tools/mcp/http-headers.cjs +17 -1
- package/dist/core/tools/mcp/http-headers.d.ts.map +1 -1
- package/dist/core/tools/mcp/http-headers.js +15 -1
- package/dist/core/tools/mcp/oauth-refresh.cjs +67 -43
- package/dist/core/tools/mcp/oauth-refresh.js +65 -41
- package/dist/core/types/board.d.ts +12 -0
- package/dist/core/types/board.d.ts.map +1 -1
- package/dist/core/types/gateway.d.ts +14 -0
- package/dist/core/types/gateway.d.ts.map +1 -1
- package/dist/core/types/index.cjs +17 -0
- package/dist/core/types/index.js +16 -0
- package/dist/core/unix/index.cjs +67 -0
- package/dist/core/unix/index.js +67 -0
- package/dist/daemon/auth/executor-runtime-scope.d.ts.map +1 -1
- package/dist/daemon/auth/executor-runtime-scope.js +19 -5
- package/dist/daemon/auth/executor-session-token.d.ts +15 -0
- package/dist/daemon/auth/executor-session-token.d.ts.map +1 -0
- package/dist/daemon/auth/executor-session-token.js +17 -0
- package/dist/daemon/auth/issue-browser-tokens-hook.d.ts +24 -0
- package/dist/daemon/auth/issue-browser-tokens-hook.d.ts.map +1 -0
- package/dist/daemon/auth/issue-browser-tokens-hook.js +95 -0
- package/dist/daemon/auth/service-jwt-strategy.d.ts.map +1 -1
- package/dist/daemon/auth/service-jwt-strategy.js +14 -2
- package/dist/daemon/declarations.d.ts +1 -0
- package/dist/daemon/declarations.d.ts.map +1 -1
- package/dist/daemon/index.js +1365 -418
- package/dist/daemon/main.js +1365 -418
- package/dist/daemon/mcp/server.js +294 -31
- package/dist/daemon/mcp/tools/analytics.js +73 -24
- package/dist/daemon/mcp/tools/artifacts.js +73 -24
- package/dist/daemon/mcp/tools/boards.js +73 -24
- package/dist/daemon/mcp/tools/branches.js +73 -24
- package/dist/daemon/mcp/tools/card-types.js +73 -24
- package/dist/daemon/mcp/tools/cards.js +73 -24
- package/dist/daemon/mcp/tools/environment.js +73 -24
- package/dist/daemon/mcp/tools/gateway-channels.d.ts.map +1 -1
- package/dist/daemon/mcp/tools/gateway-channels.js +190 -38
- package/dist/daemon/mcp/tools/knowledge.js +73 -24
- package/dist/daemon/mcp/tools/mcp-servers.js +73 -24
- package/dist/daemon/mcp/tools/messages.js +73 -24
- package/dist/daemon/mcp/tools/proxies.js +73 -24
- package/dist/daemon/mcp/tools/repos.js +73 -24
- package/dist/daemon/mcp/tools/schedules.js +73 -24
- package/dist/daemon/mcp/tools/search.js +73 -24
- package/dist/daemon/mcp/tools/sessions.js +73 -24
- package/dist/daemon/mcp/tools/tasks.js +73 -24
- package/dist/daemon/mcp/tools/users.js +76 -27
- package/dist/daemon/mcp/tools/widgets.d.ts.map +1 -1
- package/dist/daemon/mcp/tools/widgets.js +257 -99
- package/dist/daemon/oauth-auth-helpers.d.ts +35 -0
- package/dist/daemon/oauth-auth-helpers.d.ts.map +1 -0
- package/dist/daemon/oauth-auth-helpers.js +14 -0
- package/dist/daemon/register-hooks.d.ts +1 -0
- package/dist/daemon/register-hooks.d.ts.map +1 -1
- package/dist/daemon/register-hooks.js +304 -53
- package/dist/daemon/register-routes.d.ts.map +1 -1
- package/dist/daemon/register-routes.js +738 -288
- package/dist/daemon/register-services.d.ts.map +1 -1
- package/dist/daemon/register-services.js +386 -155
- package/dist/daemon/services/boards.d.ts +5 -0
- package/dist/daemon/services/boards.d.ts.map +1 -1
- package/dist/daemon/services/boards.js +7 -0
- package/dist/daemon/services/branches.d.ts.map +1 -1
- package/dist/daemon/services/branches.js +31 -2
- package/dist/daemon/services/claude-models.d.ts.map +1 -1
- package/dist/daemon/services/claude-models.js +4 -1
- package/dist/daemon/services/gateway.d.ts +15 -0
- package/dist/daemon/services/gateway.d.ts.map +1 -1
- package/dist/daemon/services/gateway.js +34 -0
- package/dist/daemon/services/health-monitor.d.ts.map +1 -1
- package/dist/daemon/services/health-monitor.js +10 -7
- package/dist/daemon/services/session-streams.d.ts +29 -0
- package/dist/daemon/services/session-streams.d.ts.map +1 -0
- package/dist/daemon/services/session-streams.js +84 -0
- package/dist/daemon/services/session-token-service.d.ts.map +1 -1
- package/dist/daemon/services/session-token-service.js +8 -4
- package/dist/daemon/setup/index.js +43 -11
- package/dist/daemon/setup/socketio.d.ts.map +1 -1
- package/dist/daemon/setup/socketio.js +43 -11
- package/dist/daemon/startup.d.ts.map +1 -1
- package/dist/daemon/startup.js +37 -16
- package/dist/daemon/utils/authorization.js +19 -5
- package/dist/daemon/utils/emit-service-event.d.ts +56 -0
- package/dist/daemon/utils/emit-service-event.d.ts.map +1 -0
- package/dist/daemon/utils/emit-service-event.js +23 -0
- package/dist/daemon/utils/mcp-header-secrets.d.ts +3 -5
- package/dist/daemon/utils/mcp-header-secrets.d.ts.map +1 -1
- package/dist/daemon/utils/mcp-header-secrets.js +31 -2
- package/dist/daemon/utils/realtime-access-cache.d.ts +9 -0
- package/dist/daemon/utils/realtime-access-cache.d.ts.map +1 -1
- package/dist/daemon/utils/realtime-access-cache.js +24 -0
- package/dist/daemon/utils/realtime-publish.d.ts +24 -0
- package/dist/daemon/utils/realtime-publish.d.ts.map +1 -1
- package/dist/daemon/utils/realtime-publish.js +120 -2
- package/dist/daemon/utils/session-queue-tenant-scope.d.ts +24 -0
- package/dist/daemon/utils/session-queue-tenant-scope.d.ts.map +1 -0
- package/dist/daemon/utils/session-queue-tenant-scope.js +133 -0
- package/dist/daemon/widgets/gateway-token/index.d.ts +114 -0
- package/dist/daemon/widgets/gateway-token/index.d.ts.map +1 -0
- package/dist/daemon/widgets/gateway-token/index.js +14711 -0
- package/dist/daemon/widgets/index.d.ts.map +1 -1
- package/dist/daemon/widgets/index.js +190 -16
- package/dist/daemon/widgets/registry.d.ts +7 -0
- package/dist/daemon/widgets/registry.d.ts.map +1 -1
- package/dist/daemon/widgets/submissions.js +12 -9
- package/dist/executor/commands/git.d.ts.map +1 -1
- package/dist/executor/commands/git.js +2 -0
- package/dist/executor/db/feathers-repositories.d.ts +19 -1
- package/dist/executor/db/feathers-repositories.d.ts.map +1 -1
- package/dist/executor/db/feathers-repositories.js +31 -1
- package/dist/executor/handlers/sdk/claude.d.ts.map +1 -1
- package/dist/executor/handlers/sdk/claude.js +1 -1
- package/dist/executor/handlers/sdk/codex.d.ts.map +1 -1
- package/dist/executor/handlers/sdk/codex.js +1 -1
- package/dist/executor/handlers/sdk/copilot.d.ts.map +1 -1
- package/dist/executor/handlers/sdk/copilot.js +1 -1
- package/dist/executor/handlers/sdk/cursor.d.ts.map +1 -1
- package/dist/executor/handlers/sdk/cursor.js +1 -0
- package/dist/executor/handlers/sdk/gemini.d.ts.map +1 -1
- package/dist/executor/handlers/sdk/gemini.js +1 -1
- package/dist/executor/handlers/sdk/opencode.d.ts.map +1 -1
- package/dist/executor/handlers/sdk/opencode.js +1 -1
- package/dist/executor/payload-types.d.ts +5 -5
- package/dist/executor/sdk-handlers/base/mcp-scoping.d.ts +8 -1
- package/dist/executor/sdk-handlers/base/mcp-scoping.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/base/mcp-scoping.js +58 -6
- package/dist/executor/sdk-handlers/claude/claude-tool.d.ts +2 -2
- package/dist/executor/sdk-handlers/claude/claude-tool.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/claude/claude-tool.js +2 -2
- package/dist/executor/sdk-handlers/claude/prompt-service.d.ts +13 -3
- package/dist/executor/sdk-handlers/claude/prompt-service.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/claude/prompt-service.js +16 -3
- package/dist/executor/sdk-handlers/claude/query-builder.d.ts +2 -1
- package/dist/executor/sdk-handlers/claude/query-builder.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/claude/query-builder.js +2 -1
- package/dist/executor/sdk-handlers/codex/codex-tool.d.ts +2 -2
- package/dist/executor/sdk-handlers/codex/codex-tool.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/codex/codex-tool.js +2 -2
- package/dist/executor/sdk-handlers/codex/prompt-service.d.ts +3 -2
- package/dist/executor/sdk-handlers/codex/prompt-service.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/codex/prompt-service.js +70 -6
- package/dist/executor/sdk-handlers/copilot/copilot-tool.d.ts +2 -2
- package/dist/executor/sdk-handlers/copilot/copilot-tool.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/copilot/copilot-tool.js +2 -2
- package/dist/executor/sdk-handlers/copilot/prompt-service.d.ts +3 -2
- package/dist/executor/sdk-handlers/copilot/prompt-service.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/copilot/prompt-service.js +4 -1
- package/dist/executor/sdk-handlers/gemini/gemini-tool.d.ts +2 -2
- package/dist/executor/sdk-handlers/gemini/gemini-tool.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/gemini/gemini-tool.js +2 -2
- package/dist/executor/sdk-handlers/gemini/prompt-service.d.ts +3 -2
- package/dist/executor/sdk-handlers/gemini/prompt-service.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/gemini/prompt-service.js +4 -1
- package/dist/executor/sdk-handlers/opencode/opencode-tool.d.ts +3 -2
- package/dist/executor/sdk-handlers/opencode/opencode-tool.d.ts.map +1 -1
- package/dist/executor/sdk-handlers/opencode/opencode-tool.js +4 -1
- package/dist/executor/services/feathers-client.d.ts.map +1 -1
- package/dist/executor/services/feathers-client.js +119 -20
- package/dist/ui/assets/AgorEmojiPickerInner-leeNywMc.js +1 -0
- package/dist/ui/assets/App-Dpl4Cc0U.js +4 -0
- package/dist/ui/assets/App-Dpl4Cc0U.js.gz +0 -0
- package/dist/ui/assets/AppNode-wN3UZlFK.js +1 -0
- package/dist/ui/assets/AppNode-wN3UZlFK.js.gz +0 -0
- package/dist/ui/assets/{ArtifactConsentModal-oMMzRn8L.js → ArtifactConsentModal-DjzXcP_L.js} +1 -1
- package/dist/ui/assets/ArtifactConsentModal-DjzXcP_L.js.gz +0 -0
- package/dist/ui/assets/ArtifactFullscreenPage-B3b_EZ0F.js +9 -0
- package/dist/ui/assets/ArtifactFullscreenPage-B3b_EZ0F.js.gz +0 -0
- package/dist/ui/assets/ArtifactNode-DISy2T-6.js +9 -0
- package/dist/ui/assets/ArtifactNode-DISy2T-6.js.gz +0 -0
- package/dist/ui/assets/AutocompleteTextarea-DUpsoEGr.js +19 -0
- package/dist/ui/assets/AutocompleteTextarea-DUpsoEGr.js.gz +0 -0
- package/dist/ui/assets/BoardObjectNodes-BakeGpIX.js +34 -0
- package/dist/ui/assets/BoardObjectNodes-BakeGpIX.js.gz +0 -0
- package/dist/ui/assets/{CodeEditor.inner-Cuj6RuLL.js → CodeEditor.inner-HmSdTLW5.js} +1 -1
- package/dist/ui/assets/CodeEditor.inner-HmSdTLW5.js.gz +0 -0
- package/dist/ui/assets/ConversationView-mWaA-B1f.js +1 -0
- package/dist/ui/assets/ConversationView-mWaA-B1f.js.gz +0 -0
- package/dist/ui/assets/{EmbeddedTerminal-Lx5I9EOJ.js → EmbeddedTerminal-NNoyPA81.js} +1 -1
- package/dist/ui/assets/EmbeddedTerminal-NNoyPA81.js.gz +0 -0
- package/dist/ui/assets/KnowledgePage-CkxVnRvz.js +24 -0
- package/dist/ui/assets/KnowledgePage-CkxVnRvz.js.gz +0 -0
- package/dist/ui/assets/{MarketingScreenshotPage-CmDPBHOl.js → MarketingScreenshotPage-B86Gs8jx.js} +2 -2
- package/dist/ui/assets/MarketingScreenshotPage-B86Gs8jx.js.gz +0 -0
- package/dist/ui/assets/MobileApp-BPs-SXvz.js +1 -0
- package/dist/ui/assets/MobileApp-BPs-SXvz.js.gz +0 -0
- package/dist/ui/assets/SessionCanvas-xVfDoEtz.js +13 -0
- package/dist/ui/assets/SessionCanvas-xVfDoEtz.js.gz +0 -0
- package/dist/ui/assets/{StreamdownDemoPage-okKKR2QH.js → StreamdownDemoPage-CvWLzVsv.js} +2 -2
- package/dist/ui/assets/StreamdownDemoPage-CvWLzVsv.js.gz +0 -0
- package/dist/ui/assets/{TerminalModal-D9jMGZXv.js → TerminalModal-ExOgsuOP.js} +2 -2
- package/dist/ui/assets/TerminalModal-ExOgsuOP.js.gz +0 -0
- package/dist/ui/assets/ThemeSwitcher-Cgyp5ruu.js +1 -0
- package/dist/ui/assets/ThemeSwitcher-Cgyp5ruu.js.gz +0 -0
- package/dist/ui/assets/{ThemedSyntaxHighlighter.inner-C1FdIHn0.js → ThemedSyntaxHighlighter.inner-rpCN9S6K.js} +1 -1
- package/dist/ui/assets/{antd-DT5ackd0.js → antd-BCqimh1J.js} +5 -5
- package/dist/ui/assets/{antd-DT5ackd0.js.gz → antd-BCqimh1J.js.gz} +0 -0
- package/dist/ui/assets/architecture-U656AL7Q-BxSQIjrE.js +1 -0
- package/dist/ui/assets/{architectureDiagram-VXUJARFQ-DwTJGGoj.js → architectureDiagram-VXUJARFQ-pDpGHSqT.js} +1 -1
- package/dist/ui/assets/architectureDiagram-VXUJARFQ-pDpGHSqT.js.gz +0 -0
- package/dist/ui/assets/{blockDiagram-VD42YOAC-Dh1_TVW2.js → blockDiagram-VD42YOAC-uP8JTJpK.js} +1 -1
- package/dist/ui/assets/blockDiagram-VD42YOAC-uP8JTJpK.js.gz +0 -0
- package/dist/ui/assets/{c4Diagram-YG6GDRKO-B1e96AcB.js → c4Diagram-YG6GDRKO-qQe72Mm7.js} +1 -1
- package/dist/ui/assets/c4Diagram-YG6GDRKO-qQe72Mm7.js.gz +0 -0
- package/dist/ui/assets/channel-CoUBs6Zn.js +1 -0
- package/dist/ui/assets/{chunk-4BX2VUAB-BODpCjJx.js → chunk-4BX2VUAB-sz-YE8Nt.js} +1 -1
- package/dist/ui/assets/chunk-4ZMWKKQ3-3oKtfWXp.js +3 -0
- package/dist/ui/assets/chunk-4ZMWKKQ3-3oKtfWXp.js.gz +0 -0
- package/dist/ui/assets/chunk-55IACEB6-BS04dgKF.js +1 -0
- package/dist/ui/assets/{chunk-ABZYJK2D-DCTXWSzV.js → chunk-ABZYJK2D-t3Gkphds.js} +3 -3
- package/dist/ui/assets/chunk-ABZYJK2D-t3Gkphds.js.gz +0 -0
- package/dist/ui/assets/{chunk-AGHRB4JF-CbNphBjE.js → chunk-AGHRB4JF-D_QmWxbY.js} +1 -1
- package/dist/ui/assets/chunk-AGHRB4JF-D_QmWxbY.js.gz +0 -0
- package/dist/ui/assets/{chunk-ATLVNIR6-rWg3qxof.js → chunk-ATLVNIR6-Bmg7-Ufz.js} +1 -1
- package/dist/ui/assets/chunk-ATLVNIR6-Bmg7-Ufz.js.gz +0 -0
- package/dist/ui/assets/{chunk-B4BG7PRW-CgtLCbpE.js → chunk-B4BG7PRW-dnSEE1u-.js} +1 -1
- package/dist/ui/assets/chunk-B4BG7PRW-dnSEE1u-.js.gz +0 -0
- package/dist/ui/assets/{chunk-CVBHYZKI-DTL6Zgr0.js → chunk-CVBHYZKI-BStaYnF0.js} +1 -1
- package/dist/ui/assets/{chunk-DI55MBZ5-Dwvx2Kva.js → chunk-DI55MBZ5-28dvx6o3.js} +1 -1
- package/dist/ui/assets/chunk-DI55MBZ5-28dvx6o3.js.gz +0 -0
- package/dist/ui/assets/chunk-EXTU4WIE-X-FURkEh.js +1 -0
- package/dist/ui/assets/{chunk-FMBD7UC4-BogA_9CV.js → chunk-FMBD7UC4-C_63gC9S.js} +1 -1
- package/dist/ui/assets/{chunk-HN2XXSSU-2blQO3Gb.js → chunk-HN2XXSSU-UFD374KI.js} +1 -1
- package/dist/ui/assets/chunk-HN2XXSSU-UFD374KI.js.gz +0 -0
- package/dist/ui/assets/{chunk-JA3XYJ7Z-Cr1rmOui.js → chunk-JA3XYJ7Z-B60hLNeR.js} +1 -1
- package/dist/ui/assets/chunk-JA3XYJ7Z-B60hLNeR.js.gz +0 -0
- package/dist/ui/assets/{chunk-JZLCHNYA-BsgZ79Fa.js → chunk-JZLCHNYA-ButC6pwN.js} +1 -1
- package/dist/ui/assets/chunk-JZLCHNYA-ButC6pwN.js.gz +0 -0
- package/dist/ui/assets/{chunk-MI3HLSF2-dwYeUy5S.js → chunk-MI3HLSF2-BivYzoSV.js} +1 -1
- package/dist/ui/assets/chunk-MI3HLSF2-BivYzoSV.js.gz +0 -0
- package/dist/ui/assets/chunk-N4CR4FBY-mVWzo5wJ.js +2 -0
- package/dist/ui/assets/chunk-N4CR4FBY-mVWzo5wJ.js.gz +0 -0
- package/dist/ui/assets/{chunk-QN33PNHL-DxdIDCAa.js → chunk-QN33PNHL-tXtHZpaG.js} +1 -1
- package/dist/ui/assets/{chunk-QXUST7PY-BCK2V0i-.js → chunk-QXUST7PY-DATib_Vv.js} +1 -1
- package/dist/ui/assets/chunk-QXUST7PY-DATib_Vv.js.gz +0 -0
- package/dist/ui/assets/chunk-QZHKN3VN-y6l249e5.js +1 -0
- package/dist/ui/assets/{chunk-S3R3BYOJ-GP3zIxrB.js → chunk-S3R3BYOJ-BEtfmflI.js} +1 -1
- package/dist/ui/assets/chunk-S3R3BYOJ-BEtfmflI.js.gz +0 -0
- package/dist/ui/assets/{chunk-TZMSLE5B-dX5RaM6g.js → chunk-TZMSLE5B-BY1ZtogK.js} +1 -1
- package/dist/ui/assets/chunk-TZMSLE5B-BY1ZtogK.js.gz +0 -0
- package/dist/ui/assets/classDiagram-2ON5EDUG-BYvq-uPY.js +1 -0
- package/dist/ui/assets/classDiagram-v2-WZHVMYZB-BYvq-uPY.js +1 -0
- package/dist/ui/assets/constants-CYzQKfD1.js +1 -0
- package/dist/ui/assets/{cose-bilkent-S5V4N54A-Dx0BJVDl.js → cose-bilkent-S5V4N54A-DPvYrqGG.js} +1 -1
- package/dist/ui/assets/cose-bilkent-S5V4N54A-DPvYrqGG.js.gz +0 -0
- package/dist/ui/assets/{dagre-6UL2VRFP-DiQSUxqN.js → dagre-6UL2VRFP-D800J6qb.js} +1 -1
- package/dist/ui/assets/dagre-6UL2VRFP-D800J6qb.js.gz +0 -0
- package/dist/ui/assets/{dagre-Bekd9Vdj.js → dagre-TNc4wezg.js} +1 -1
- package/dist/ui/assets/dagre-TNc4wezg.js.gz +0 -0
- package/dist/ui/assets/{diagram-PSM6KHXK-DtJnDQjc.js → diagram-PSM6KHXK-CGdP9F-X.js} +1 -1
- package/dist/ui/assets/diagram-PSM6KHXK-CGdP9F-X.js.gz +0 -0
- package/dist/ui/assets/{diagram-QEK2KX5R-CobkCRdj.js → diagram-QEK2KX5R-BD5lOCe5.js} +1 -1
- package/dist/ui/assets/diagram-QEK2KX5R-BD5lOCe5.js.gz +0 -0
- package/dist/ui/assets/{diagram-S2PKOQOG-DHEZYivc.js → diagram-S2PKOQOG-cp3l22vN.js} +1 -1
- package/dist/ui/assets/diagram-S2PKOQOG-cp3l22vN.js.gz +0 -0
- package/dist/ui/assets/editor-Cr0W5BQI.js +39 -0
- package/dist/ui/assets/editor-Cr0W5BQI.js.gz +0 -0
- package/dist/ui/assets/{emoji-B0hLmSLZ.js → emoji-Bv3m24sO.js} +1 -1
- package/dist/ui/assets/emoji-Bv3m24sO.js.gz +0 -0
- package/dist/ui/assets/{erDiagram-Q2GNP2WA-BVNeTZPQ.js → erDiagram-Q2GNP2WA-CQSXRgqr.js} +1 -1
- package/dist/ui/assets/erDiagram-Q2GNP2WA-CQSXRgqr.js.gz +0 -0
- package/dist/ui/assets/{flowDiagram-NV44I4VS-C73VFdyk.js → flowDiagram-NV44I4VS-CKcKpkph.js} +1 -1
- package/dist/ui/assets/flowDiagram-NV44I4VS-CKcKpkph.js.gz +0 -0
- package/dist/ui/assets/{ganttDiagram-LVOFAZNH-B_RosuD1.js → ganttDiagram-LVOFAZNH-DlAHzXO5.js} +1 -1
- package/dist/ui/assets/ganttDiagram-LVOFAZNH-DlAHzXO5.js.gz +0 -0
- package/dist/ui/assets/{gitGraph-F6HP7TQM-DMFIqn4h.js → gitGraph-F6HP7TQM-DeuXy4B1.js} +1 -1
- package/dist/ui/assets/{gitGraphDiagram-NY62KEGX-hxbgwNA1.js → gitGraphDiagram-NY62KEGX-aB-AI4Vq.js} +1 -1
- package/dist/ui/assets/gitGraphDiagram-NY62KEGX-aB-AI4Vq.js.gz +0 -0
- package/dist/ui/assets/index-B-qHc0o5.js +63 -0
- package/dist/ui/assets/index-B-qHc0o5.js.gz +0 -0
- package/dist/ui/assets/{info-NVLQJR56-DZ3K-w48.js → info-NVLQJR56-B9PG7xsc.js} +1 -1
- package/dist/ui/assets/{infoDiagram-ER5ION4S-CxnBJQu6.js → infoDiagram-ER5ION4S-C5Wpoqim.js} +1 -1
- package/dist/ui/assets/{journeyDiagram-XKPGCS4Q-CHYNj-f8.js → journeyDiagram-XKPGCS4Q-CHLziqfS.js} +1 -1
- package/dist/ui/assets/journeyDiagram-XKPGCS4Q-CHLziqfS.js.gz +0 -0
- package/dist/ui/assets/{kanban-definition-3W4ZIXB7-DQPCCsj2.js → kanban-definition-3W4ZIXB7-Dq7GzQE_.js} +1 -1
- package/dist/ui/assets/kanban-definition-3W4ZIXB7-Dq7GzQE_.js.gz +0 -0
- package/dist/ui/assets/{line-DBRjKmfa.js → line-DHKNg83I.js} +1 -1
- package/dist/ui/assets/{linear-DFao5Wyp.js → linear-BvUfn0I8.js} +1 -1
- package/dist/ui/assets/linear-BvUfn0I8.js.gz +0 -0
- package/dist/ui/assets/{mermaid-parser.core-DYCfacHj.js → mermaid-parser.core-C6d9tKoo.js} +2 -2
- package/dist/ui/assets/mermaid-parser.core-C6d9tKoo.js.gz +0 -0
- package/dist/ui/assets/{mermaid.core-C6xGFSdE.js → mermaid.core-CxE5KezR.js} +3 -3
- package/dist/ui/assets/mermaid.core-CxE5KezR.js.gz +0 -0
- package/dist/ui/assets/{mindmap-definition-VGOIOE7T-L3Pw-YM7.js → mindmap-definition-VGOIOE7T-DmPoQ48w.js} +1 -1
- package/dist/ui/assets/mindmap-definition-VGOIOE7T-DmPoQ48w.js.gz +0 -0
- package/dist/ui/assets/{packet-BFZMPI3H-CpL6iNoa.js → packet-BFZMPI3H-JZEkVZxU.js} +1 -1
- package/dist/ui/assets/{particles-CT8hcJOA.js → particles-CxMmUw86.js} +1 -1
- package/dist/ui/assets/particles-CxMmUw86.js.gz +0 -0
- package/dist/ui/assets/{pie-7BOR55EZ-hTqChbTo.js → pie-7BOR55EZ-_1II5pYQ.js} +1 -1
- package/dist/ui/assets/{pieDiagram-ADFJNKIX-Bf4Nou75.js → pieDiagram-ADFJNKIX-DrNkH33i.js} +1 -1
- package/dist/ui/assets/pieDiagram-ADFJNKIX-DrNkH33i.js.gz +0 -0
- package/dist/ui/assets/{quadrantDiagram-AYHSOK5B-DpjUTLB1.js → quadrantDiagram-AYHSOK5B-DOpC-HEF.js} +1 -1
- package/dist/ui/assets/quadrantDiagram-AYHSOK5B-DOpC-HEF.js.gz +0 -0
- package/dist/ui/assets/{radar-NHE76QYJ-myy7OENC.js → radar-NHE76QYJ-DDmqhzEZ.js} +1 -1
- package/dist/ui/assets/{reactflow-Cubtnk8i.js → reactflow-D98uPOMq.js} +1 -1
- package/dist/ui/assets/reactflow-D98uPOMq.js.gz +0 -0
- package/dist/ui/assets/{requirementDiagram-UZGBJVZJ-Bfrfh-0-.js → requirementDiagram-UZGBJVZJ-Bzx0iEPP.js} +1 -1
- package/dist/ui/assets/requirementDiagram-UZGBJVZJ-Bzx0iEPP.js.gz +0 -0
- package/dist/ui/assets/{sandpack-C58bwfIS.js → sandpack-059Z4UWP.js} +1 -1
- package/dist/ui/assets/sandpack-059Z4UWP.js.gz +0 -0
- package/dist/ui/assets/sandpackDefaults-CPMNDsw7.js +1 -0
- package/dist/ui/assets/sandpackDefaults-CPMNDsw7.js.gz +0 -0
- package/dist/ui/assets/{sankeyDiagram-TZEHDZUN-ClZAZ6va.js → sankeyDiagram-TZEHDZUN-Do9pvfDv.js} +1 -1
- package/dist/ui/assets/sankeyDiagram-TZEHDZUN-Do9pvfDv.js.gz +0 -0
- package/dist/ui/assets/{sequenceDiagram-WL72ISMW-CNgly63p.js → sequenceDiagram-WL72ISMW-CN8neUTA.js} +1 -1
- package/dist/ui/assets/sequenceDiagram-WL72ISMW-CN8neUTA.js.gz +0 -0
- package/dist/ui/assets/{src-DAeyG22O.js → src-DEbsv3pp.js} +2 -2
- package/dist/ui/assets/src-DEbsv3pp.js.gz +0 -0
- package/dist/ui/assets/{stateDiagram-FKZM4ZOC-BrEAoDpE.js → stateDiagram-FKZM4ZOC-BluWJi8n.js} +1 -1
- package/dist/ui/assets/stateDiagram-FKZM4ZOC-BluWJi8n.js.gz +0 -0
- package/dist/ui/assets/stateDiagram-v2-4FDKWEC3-DeyqBMDR.js +1 -0
- package/dist/ui/assets/{streamdown-BdAVfkeF.js → streamdown-BT1twtFc.js} +5 -5
- package/dist/ui/assets/streamdown-BT1twtFc.js.gz +0 -0
- package/dist/ui/assets/{syntax-BOfTnQiy.js → syntax-CBu6nLfm.js} +1 -1
- package/dist/ui/assets/syntax-CBu6nLfm.js.gz +0 -0
- package/dist/ui/assets/{timeline-definition-IT6M3QCI-CaRH3k4l.js → timeline-definition-IT6M3QCI-WdUNkiRj.js} +1 -1
- package/dist/ui/assets/timeline-definition-IT6M3QCI-WdUNkiRj.js.gz +0 -0
- package/dist/ui/assets/{treemap-KMMF4GRG-CUaLOV_B.js → treemap-KMMF4GRG-CoriU4Jl.js} +1 -1
- package/dist/ui/assets/{useUserLocalStorage-C8sgXgXR.js → useUserLocalStorage-GidNiOPC.js} +1 -1
- package/dist/ui/assets/useUserLocalStorage-GidNiOPC.js.gz +0 -0
- package/dist/ui/assets/{xychartDiagram-PRI3JC2R-BlhkI9T_.js → xychartDiagram-PRI3JC2R-CgBAKNt2.js} +1 -1
- package/dist/ui/assets/xychartDiagram-PRI3JC2R-CgBAKNt2.js.gz +0 -0
- package/dist/ui/index.html +9 -8
- package/dist/ui/index.html.gz +0 -0
- package/package.json +2 -2
- package/dist/ui/assets/AgorEmojiPickerInner-DQjr8M3_.js +0 -1
- package/dist/ui/assets/App-hJtcOxHv.js +0 -5
- package/dist/ui/assets/App-hJtcOxHv.js.gz +0 -0
- package/dist/ui/assets/AppNode-BhuMpn8O.js +0 -1
- package/dist/ui/assets/AppNode-BhuMpn8O.js.gz +0 -0
- package/dist/ui/assets/ArtifactConsentModal-oMMzRn8L.js.gz +0 -0
- package/dist/ui/assets/ArtifactFullscreenPage-B3wT8t8f.js +0 -9
- package/dist/ui/assets/ArtifactFullscreenPage-B3wT8t8f.js.gz +0 -0
- package/dist/ui/assets/ArtifactNode-BzQcrwFS.js +0 -9
- package/dist/ui/assets/ArtifactNode-BzQcrwFS.js.gz +0 -0
- package/dist/ui/assets/AutocompleteTextarea-Dau-V_30.js +0 -19
- package/dist/ui/assets/AutocompleteTextarea-Dau-V_30.js.gz +0 -0
- package/dist/ui/assets/BoardObjectNodes-DdKWv_ZT.js +0 -34
- package/dist/ui/assets/BoardObjectNodes-DdKWv_ZT.js.gz +0 -0
- package/dist/ui/assets/CodeEditor.inner-Cuj6RuLL.js.gz +0 -0
- package/dist/ui/assets/ConversationView-9-3ma1u-.js +0 -1
- package/dist/ui/assets/ConversationView-9-3ma1u-.js.gz +0 -0
- package/dist/ui/assets/EmbeddedTerminal-Lx5I9EOJ.js.gz +0 -0
- package/dist/ui/assets/KnowledgePage-Dz8YAMYC.js +0 -24
- package/dist/ui/assets/KnowledgePage-Dz8YAMYC.js.gz +0 -0
- package/dist/ui/assets/MarketingScreenshotPage-CmDPBHOl.js.gz +0 -0
- package/dist/ui/assets/MobileApp-BpgSG_gz.js +0 -1
- package/dist/ui/assets/MobileApp-BpgSG_gz.js.gz +0 -0
- package/dist/ui/assets/SessionCanvas-B6_mtlxK.js +0 -13
- package/dist/ui/assets/SessionCanvas-B6_mtlxK.js.gz +0 -0
- package/dist/ui/assets/StreamdownDemoPage-okKKR2QH.js.gz +0 -0
- package/dist/ui/assets/TerminalModal-D9jMGZXv.js.gz +0 -0
- package/dist/ui/assets/ThemeSwitcher-D9HgT37l.js +0 -1
- package/dist/ui/assets/ThemeSwitcher-D9HgT37l.js.gz +0 -0
- package/dist/ui/assets/architecture-U656AL7Q-DMnxkQRZ.js +0 -1
- package/dist/ui/assets/architectureDiagram-VXUJARFQ-DwTJGGoj.js.gz +0 -0
- package/dist/ui/assets/blockDiagram-VD42YOAC-Dh1_TVW2.js.gz +0 -0
- package/dist/ui/assets/c4Diagram-YG6GDRKO-B1e96AcB.js.gz +0 -0
- package/dist/ui/assets/channel-Jv4dT4S5.js +0 -1
- package/dist/ui/assets/chunk-55IACEB6-lJXvUquf.js +0 -1
- package/dist/ui/assets/chunk-ABZYJK2D-DCTXWSzV.js.gz +0 -0
- package/dist/ui/assets/chunk-AGHRB4JF-CbNphBjE.js.gz +0 -0
- package/dist/ui/assets/chunk-ATLVNIR6-rWg3qxof.js.gz +0 -0
- package/dist/ui/assets/chunk-B4BG7PRW-CgtLCbpE.js.gz +0 -0
- package/dist/ui/assets/chunk-DI55MBZ5-Dwvx2Kva.js.gz +0 -0
- package/dist/ui/assets/chunk-EXTU4WIE-DHyaqTsP.js +0 -1
- package/dist/ui/assets/chunk-HN2XXSSU-2blQO3Gb.js.gz +0 -0
- package/dist/ui/assets/chunk-JA3XYJ7Z-Cr1rmOui.js.gz +0 -0
- package/dist/ui/assets/chunk-JZLCHNYA-BsgZ79Fa.js.gz +0 -0
- package/dist/ui/assets/chunk-MI3HLSF2-dwYeUy5S.js.gz +0 -0
- package/dist/ui/assets/chunk-N4CR4FBY-DEMgSRVe.js +0 -2
- package/dist/ui/assets/chunk-N4CR4FBY-DEMgSRVe.js.gz +0 -0
- package/dist/ui/assets/chunk-QXUST7PY-BCK2V0i-.js.gz +0 -0
- package/dist/ui/assets/chunk-QZHKN3VN-CALjGrEE.js +0 -1
- package/dist/ui/assets/chunk-S3R3BYOJ-GP3zIxrB.js.gz +0 -0
- package/dist/ui/assets/chunk-TZMSLE5B-dX5RaM6g.js.gz +0 -0
- package/dist/ui/assets/classDiagram-2ON5EDUG-C3_RVP70.js +0 -1
- package/dist/ui/assets/classDiagram-v2-WZHVMYZB-C3_RVP70.js +0 -1
- package/dist/ui/assets/constants-GjIDNVyt.js +0 -1
- package/dist/ui/assets/cose-bilkent-S5V4N54A-Dx0BJVDl.js.gz +0 -0
- package/dist/ui/assets/dagre-6UL2VRFP-DiQSUxqN.js.gz +0 -0
- package/dist/ui/assets/dagre-Bekd9Vdj.js.gz +0 -0
- package/dist/ui/assets/diagram-PSM6KHXK-DtJnDQjc.js.gz +0 -0
- package/dist/ui/assets/diagram-QEK2KX5R-CobkCRdj.js.gz +0 -0
- package/dist/ui/assets/diagram-S2PKOQOG-DHEZYivc.js.gz +0 -0
- package/dist/ui/assets/editor-DQIG-JYZ.js +0 -43
- package/dist/ui/assets/editor-DQIG-JYZ.js.gz +0 -0
- package/dist/ui/assets/emoji-B0hLmSLZ.js.gz +0 -0
- package/dist/ui/assets/erDiagram-Q2GNP2WA-BVNeTZPQ.js.gz +0 -0
- package/dist/ui/assets/flowDiagram-NV44I4VS-C73VFdyk.js.gz +0 -0
- package/dist/ui/assets/ganttDiagram-LVOFAZNH-B_RosuD1.js.gz +0 -0
- package/dist/ui/assets/gitGraphDiagram-NY62KEGX-hxbgwNA1.js.gz +0 -0
- package/dist/ui/assets/index-DTz1Dif6.js +0 -64
- package/dist/ui/assets/index-DTz1Dif6.js.gz +0 -0
- package/dist/ui/assets/journeyDiagram-XKPGCS4Q-CHYNj-f8.js.gz +0 -0
- package/dist/ui/assets/kanban-definition-3W4ZIXB7-DQPCCsj2.js.gz +0 -0
- package/dist/ui/assets/linear-DFao5Wyp.js.gz +0 -0
- package/dist/ui/assets/mermaid-parser.core-DYCfacHj.js.gz +0 -0
- package/dist/ui/assets/mermaid.core-C6xGFSdE.js.gz +0 -0
- package/dist/ui/assets/mindmap-definition-VGOIOE7T-L3Pw-YM7.js.gz +0 -0
- package/dist/ui/assets/particles-CT8hcJOA.js.gz +0 -0
- package/dist/ui/assets/pieDiagram-ADFJNKIX-Bf4Nou75.js.gz +0 -0
- package/dist/ui/assets/quadrantDiagram-AYHSOK5B-DpjUTLB1.js.gz +0 -0
- package/dist/ui/assets/reactflow-Cubtnk8i.js.gz +0 -0
- package/dist/ui/assets/requirementDiagram-UZGBJVZJ-Bfrfh-0-.js.gz +0 -0
- package/dist/ui/assets/sandpack-C58bwfIS.js.gz +0 -0
- package/dist/ui/assets/sandpackDefaults-Bkga8XAE.js +0 -1
- package/dist/ui/assets/sankeyDiagram-TZEHDZUN-ClZAZ6va.js.gz +0 -0
- package/dist/ui/assets/sequenceDiagram-WL72ISMW-CNgly63p.js.gz +0 -0
- package/dist/ui/assets/src-DAeyG22O.js.gz +0 -0
- package/dist/ui/assets/stateDiagram-FKZM4ZOC-BrEAoDpE.js.gz +0 -0
- package/dist/ui/assets/stateDiagram-v2-4FDKWEC3-BNL52_oN.js +0 -1
- package/dist/ui/assets/streamdown-BdAVfkeF.js.gz +0 -0
- package/dist/ui/assets/syntax-BOfTnQiy.js.gz +0 -0
- package/dist/ui/assets/timeline-definition-IT6M3QCI-CaRH3k4l.js.gz +0 -0
- package/dist/ui/assets/useUserLocalStorage-C8sgXgXR.js.gz +0 -0
- package/dist/ui/assets/xychartDiagram-PRI3JC2R-BlhkI9T_.js.gz +0 -0
|
@@ -24,13 +24,13 @@ export class CopilotTool {
|
|
|
24
24
|
sessionsRepo;
|
|
25
25
|
messagesService;
|
|
26
26
|
tasksService;
|
|
27
|
-
constructor(messagesRepo, sessionsRepo, sessionMCPServerRepo, branchesRepo, reposRepo, apiKey, messagesService, tasksService, _useNativeAuth, mcpServerRepo, usersRepo, permissionService, sessionsService) {
|
|
27
|
+
constructor(messagesRepo, sessionsRepo, sessionMCPServerRepo, branchesRepo, reposRepo, apiKey, messagesService, tasksService, _useNativeAuth, mcpServerRepo, usersRepo, permissionService, sessionsService, mcpOAuthAuthHeadersRepo) {
|
|
28
28
|
this.messagesRepo = messagesRepo;
|
|
29
29
|
this.sessionsRepo = sessionsRepo;
|
|
30
30
|
this.messagesService = messagesService;
|
|
31
31
|
this.tasksService = tasksService;
|
|
32
32
|
if (messagesRepo && sessionsRepo) {
|
|
33
|
-
this.promptService = new CopilotPromptService(messagesRepo, sessionsRepo, sessionMCPServerRepo, branchesRepo, reposRepo, apiKey, mcpServerRepo, usersRepo, permissionService, messagesService, tasksService, sessionsService);
|
|
33
|
+
this.promptService = new CopilotPromptService(messagesRepo, sessionsRepo, sessionMCPServerRepo, branchesRepo, reposRepo, apiKey, mcpServerRepo, usersRepo, permissionService, messagesService, tasksService, sessionsService, mcpOAuthAuthHeadersRepo);
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
36
|
getCapabilities() {
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* - Sessions are created or resumed via the client
|
|
11
11
|
* - Events stream back through the session's event emitter
|
|
12
12
|
*/
|
|
13
|
-
import type { BranchRepository, MCPServerRepository, MessagesRepository, RepoRepository, SessionMCPServerRepository, SessionRepository, UsersRepository } from '../../db/feathers-repositories.js';
|
|
13
|
+
import type { BranchRepository, MCPOAuthAuthHeadersRepository, MCPServerRepository, MessagesRepository, RepoRepository, SessionMCPServerRepository, SessionRepository, UsersRepository } from '../../db/feathers-repositories.js';
|
|
14
14
|
import type { PermissionService } from '../../permissions/permission-service.js';
|
|
15
15
|
import type { TokenUsage } from '../../types/token-usage.js';
|
|
16
16
|
import type { PermissionMode, SessionID, TaskID } from '../../types.js';
|
|
@@ -80,6 +80,7 @@ export declare class CopilotPromptService {
|
|
|
80
80
|
private sessionMCPServerRepo?;
|
|
81
81
|
private branchesRepo?;
|
|
82
82
|
private mcpServerRepo?;
|
|
83
|
+
private mcpOAuthAuthHeadersRepo?;
|
|
83
84
|
private client;
|
|
84
85
|
private stopRequested;
|
|
85
86
|
private apiKey;
|
|
@@ -89,7 +90,7 @@ export declare class CopilotPromptService {
|
|
|
89
90
|
private tasksService?;
|
|
90
91
|
private sessionsService?;
|
|
91
92
|
private permissionLocks;
|
|
92
|
-
constructor(messagesRepo: MessagesRepository, sessionsRepo: SessionRepository, sessionMCPServerRepo?: SessionMCPServerRepository | undefined, branchesRepo?: BranchRepository | undefined, _reposRepo?: RepoRepository, apiKey?: string, mcpServerRepo?: MCPServerRepository | undefined, _usersRepo?: UsersRepository, permissionService?: PermissionService, messagesService?: MessagesService, tasksService?: TasksService, sessionsService?: SessionsPatchClient);
|
|
93
|
+
constructor(messagesRepo: MessagesRepository, sessionsRepo: SessionRepository, sessionMCPServerRepo?: SessionMCPServerRepository | undefined, branchesRepo?: BranchRepository | undefined, _reposRepo?: RepoRepository, apiKey?: string, mcpServerRepo?: MCPServerRepository | undefined, _usersRepo?: UsersRepository, permissionService?: PermissionService, messagesService?: MessagesService, tasksService?: TasksService, sessionsService?: SessionsPatchClient, mcpOAuthAuthHeadersRepo?: MCPOAuthAuthHeadersRepository | undefined);
|
|
93
94
|
/**
|
|
94
95
|
* Build MCP servers configuration for Copilot session
|
|
95
96
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt-service.d.ts","sourceRoot":"","sources":["../../../src/sdk-handlers/copilot/prompt-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AASH,OAAO,KAAK,EACV,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,EACd,0BAA0B,EAC1B,iBAAiB,EACjB,eAAe,EAChB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AACjF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxE,OAAO,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAM3F;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAC1B;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,GACD;IACE,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,EAAE;QACP,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAChC,CAAC;IACF,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GACD;IACE,IAAI,EAAE,eAAe,CAAC;IACtB,OAAO,EAAE;QACP,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GACD;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GACD;IACE,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACjC,CAAC,CAAC;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC;QACf,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAChC,CAAC,CAAC;IACH,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,cAAc,CAAC,EAAE,kBAAkB,CAAC;CACrC,CAAC;AAEN;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE;QACN,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,oBAAoB;IAe7B,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,oBAAoB,CAAC;IAC7B,OAAO,CAAC,YAAY,CAAC;IAGrB,OAAO,CAAC,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"prompt-service.d.ts","sourceRoot":"","sources":["../../../src/sdk-handlers/copilot/prompt-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,6 +24,7 @@ export class CopilotPromptService {
|
|
|
24
24
|
sessionMCPServerRepo;
|
|
25
25
|
branchesRepo;
|
|
26
26
|
mcpServerRepo;
|
|
27
|
+
mcpOAuthAuthHeadersRepo;
|
|
27
28
|
client = null;
|
|
28
29
|
stopRequested = new Map();
|
|
29
30
|
apiKey;
|
|
@@ -34,11 +35,12 @@ export class CopilotPromptService {
|
|
|
34
35
|
tasksService;
|
|
35
36
|
sessionsService;
|
|
36
37
|
permissionLocks = new Map();
|
|
37
|
-
constructor(messagesRepo, sessionsRepo, sessionMCPServerRepo, branchesRepo, _reposRepo, apiKey, mcpServerRepo, _usersRepo, permissionService, messagesService, tasksService, sessionsService) {
|
|
38
|
+
constructor(messagesRepo, sessionsRepo, sessionMCPServerRepo, branchesRepo, _reposRepo, apiKey, mcpServerRepo, _usersRepo, permissionService, messagesService, tasksService, sessionsService, mcpOAuthAuthHeadersRepo) {
|
|
38
39
|
this.sessionsRepo = sessionsRepo;
|
|
39
40
|
this.sessionMCPServerRepo = sessionMCPServerRepo;
|
|
40
41
|
this.branchesRepo = branchesRepo;
|
|
41
42
|
this.mcpServerRepo = mcpServerRepo;
|
|
43
|
+
this.mcpOAuthAuthHeadersRepo = mcpOAuthAuthHeadersRepo;
|
|
42
44
|
this.apiKey = apiKey;
|
|
43
45
|
this.messagesRepo = messagesRepo;
|
|
44
46
|
this.permissionService = permissionService;
|
|
@@ -58,6 +60,7 @@ export class CopilotPromptService {
|
|
|
58
60
|
const serversWithSource = await getMcpServersForSession(sessionId, {
|
|
59
61
|
sessionMCPRepo: this.sessionMCPServerRepo,
|
|
60
62
|
mcpServerRepo: this.mcpServerRepo,
|
|
63
|
+
mcpOAuthAuthHeadersRepo: this.mcpOAuthAuthHeadersRepo,
|
|
61
64
|
});
|
|
62
65
|
const mcpServers = serversWithSource.map((s) => s.server);
|
|
63
66
|
console.log(`📊 [Copilot MCP] Found ${mcpServers.length} MCP server(s) for session`);
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* - ❌ Import sessions (deferred - need checkpoint format)
|
|
10
10
|
* - ❌ Session creation (handled via live execution)
|
|
11
11
|
*/
|
|
12
|
-
import type { BranchRepository, MCPServerRepository, MessagesRepository, RepoRepository, SessionMCPServerRepository, SessionRepository, UsersRepository } from '../../db/feathers-repositories.js';
|
|
12
|
+
import type { BranchRepository, MCPOAuthAuthHeadersRepository, MCPServerRepository, MessagesRepository, RepoRepository, SessionMCPServerRepository, SessionRepository, UsersRepository } from '../../db/feathers-repositories.js';
|
|
13
13
|
import type { NormalizedSdkResponse, RawSdkResponse } from '../../types/sdk-response.js';
|
|
14
14
|
import type { TokenUsage } from '../../types/token-usage.js';
|
|
15
15
|
import { type MessageID, type MessageSource, type PermissionMode, type SessionID, type TaskID } from '../../types.js';
|
|
@@ -31,7 +31,7 @@ export declare class GeminiTool implements ITool {
|
|
|
31
31
|
readonly name = "Google Gemini";
|
|
32
32
|
private promptService?;
|
|
33
33
|
constructor(messagesRepo?: MessagesRepository | undefined, sessionsRepo?: SessionRepository, apiKey?: string, messagesService?: MessagesService | undefined, tasksService?: TasksService | undefined, branchesRepo?: BranchRepository, reposRepo?: RepoRepository, mcpServerRepo?: MCPServerRepository, sessionMCPRepo?: SessionMCPServerRepository, mcpEnabled?: boolean, useNativeAuth?: boolean, // Flag to use OAuth when no API key
|
|
34
|
-
usersRepo?: UsersRepository);
|
|
34
|
+
usersRepo?: UsersRepository, mcpOAuthAuthHeadersRepo?: MCPOAuthAuthHeadersRepository);
|
|
35
35
|
getCapabilities(): ToolCapabilities;
|
|
36
36
|
checkInstalled(): Promise<boolean>;
|
|
37
37
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini-tool.d.ts","sourceRoot":"","sources":["../../../src/sdk-handlers/gemini/gemini-tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,KAAK,EACV,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,EACd,0BAA0B,EAC1B,iBAAiB,EACjB,eAAe,EAChB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AACzF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAEL,KAAK,SAAS,EAEd,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,KAAK,MAAM,EACZ,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,EACV,KAAK,EACL,eAAe,EACf,kBAAkB,EAClB,YAAY,EACZ,gBAAgB,EACjB,MAAM,kBAAkB,CAAC;AAK1B,UAAU,qBAAqB;IAC7B,aAAa,EAAE,SAAS,CAAC;IACzB,mBAAmB,EAAE,SAAS,EAAE,CAAC;IACjC,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,qBAAa,UAAW,YAAW,KAAK;IAOpC,OAAO,CAAC,YAAY,CAAC;IAGrB,OAAO,CAAC,eAAe,CAAC;IACxB,OAAO,CAAC,YAAY,CAAC;IAVvB,QAAQ,CAAC,QAAQ,EAAG,QAAQ,CAAU;IACtC,QAAQ,CAAC,IAAI,mBAAmB;IAEhC,OAAO,CAAC,aAAa,CAAC,CAAsB;gBAGlC,YAAY,CAAC,EAAE,kBAAkB,YAAA,EACzC,YAAY,CAAC,EAAE,iBAAiB,EAChC,MAAM,CAAC,EAAE,MAAM,EACP,eAAe,CAAC,EAAE,eAAe,YAAA,EACjC,YAAY,CAAC,EAAE,YAAY,YAAA,EACnC,YAAY,CAAC,EAAE,gBAAgB,EAC/B,SAAS,CAAC,EAAE,cAAc,EAC1B,aAAa,CAAC,EAAE,mBAAmB,EACnC,cAAc,CAAC,EAAE,0BAA0B,EAC3C,UAAU,CAAC,EAAE,OAAO,EACpB,aAAa,CAAC,EAAE,OAAO,EAAE,oCAAoC;IAC7D,SAAS,CAAC,EAAE,eAAe;
|
|
1
|
+
{"version":3,"file":"gemini-tool.d.ts","sourceRoot":"","sources":["../../../src/sdk-handlers/gemini/gemini-tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,12 +24,12 @@ export class GeminiTool {
|
|
|
24
24
|
name = 'Google Gemini';
|
|
25
25
|
promptService;
|
|
26
26
|
constructor(messagesRepo, sessionsRepo, apiKey, messagesService, tasksService, branchesRepo, reposRepo, mcpServerRepo, sessionMCPRepo, mcpEnabled, useNativeAuth, // Flag to use OAuth when no API key
|
|
27
|
-
usersRepo) {
|
|
27
|
+
usersRepo, mcpOAuthAuthHeadersRepo) {
|
|
28
28
|
this.messagesRepo = messagesRepo;
|
|
29
29
|
this.messagesService = messagesService;
|
|
30
30
|
this.tasksService = tasksService;
|
|
31
31
|
if (messagesRepo && sessionsRepo) {
|
|
32
|
-
this.promptService = new GeminiPromptService(messagesRepo, sessionsRepo, apiKey, branchesRepo, reposRepo, mcpServerRepo, sessionMCPRepo, mcpEnabled, useNativeAuth, usersRepo, this.tasksService);
|
|
32
|
+
this.promptService = new GeminiPromptService(messagesRepo, sessionsRepo, apiKey, branchesRepo, reposRepo, mcpServerRepo, sessionMCPRepo, mcpEnabled, useNativeAuth, usersRepo, this.tasksService, mcpOAuthAuthHeadersRepo);
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
35
|
getCapabilities() {
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* - Event-driven architecture (13 event types)
|
|
9
9
|
* - CLAUDE.md auto-loading
|
|
10
10
|
*/
|
|
11
|
-
import type { BranchRepository, MCPServerRepository, MessagesRepository, RepoRepository, SessionMCPServerRepository, SessionRepository, UsersRepository } from '../../db/feathers-repositories.js';
|
|
11
|
+
import type { BranchRepository, MCPOAuthAuthHeadersRepository, MCPServerRepository, MessagesRepository, RepoRepository, SessionMCPServerRepository, SessionRepository, UsersRepository } from '../../db/feathers-repositories.js';
|
|
12
12
|
import type { TokenUsage } from '../../types/token-usage.js';
|
|
13
13
|
import type { PermissionMode, SessionID, TaskID } from '../../types.js';
|
|
14
14
|
import type { TasksService } from '../base/index.js';
|
|
@@ -61,6 +61,7 @@ export declare class GeminiPromptService {
|
|
|
61
61
|
private sessionMCPRepo?;
|
|
62
62
|
private mcpEnabled?;
|
|
63
63
|
private tasksService?;
|
|
64
|
+
private mcpOAuthAuthHeadersRepo?;
|
|
64
65
|
private sessionClients;
|
|
65
66
|
/** Invocation model bound on each cached client — triggers recreate when it changes. */
|
|
66
67
|
private sessionClientInvocationModels;
|
|
@@ -68,7 +69,7 @@ export declare class GeminiPromptService {
|
|
|
68
69
|
private apiKey?;
|
|
69
70
|
private useNativeAuth;
|
|
70
71
|
constructor(_messagesRepo: MessagesRepository, sessionsRepo: SessionRepository, apiKey?: string, branchesRepo?: BranchRepository | undefined, _reposRepo?: RepoRepository, mcpServerRepo?: MCPServerRepository | undefined, sessionMCPRepo?: SessionMCPServerRepository | undefined, mcpEnabled?: boolean | undefined, useNativeAuth?: boolean, // Flag from base-executor indicating OAuth should be used
|
|
71
|
-
_usersRepo?: UsersRepository, tasksService?: TasksService | undefined);
|
|
72
|
+
_usersRepo?: UsersRepository, tasksService?: TasksService | undefined, mcpOAuthAuthHeadersRepo?: MCPOAuthAuthHeadersRepository | undefined);
|
|
72
73
|
/**
|
|
73
74
|
* Execute prompt with streaming via @google/gemini-cli-core SDK
|
|
74
75
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt-service.d.ts","sourceRoot":"","sources":["../../../src/sdk-handlers/gemini/prompt-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAiBH,OAAO,KAAK,EACV,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,EACd,0BAA0B,EAC1B,iBAAiB,EACjB,eAAe,EAChB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAU,MAAM,gBAAgB,CAAC;AAEhF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGrD,OAAO,EAAwB,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAarE;;GAEG;AACH,MAAM,MAAM,iBAAiB,GACzB;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GACD;IACE,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACjC,CAAC,CAAC;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC,CAAC;IAC/E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,0BAA0B,EAAE,iBAAiB,CAAC;CACvE,GACD;IACE,IAAI,EAAE,YAAY,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC,GACD;IACE,IAAI,EAAE,eAAe,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEN,2FAA2F;AAC3F,wBAAgB,4BAA4B,CAAC,OAAO,EAAE;IACpD,YAAY,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACnC,GAAG,WAAW,CAEd;AAED,qBAAa,mBAAmB;IAU5B,OAAO,CAAC,YAAY;IAEpB,OAAO,CAAC,YAAY,CAAC;IAErB,OAAO,CAAC,aAAa,CAAC;IACtB,OAAO,CAAC,cAAc,CAAC;IACvB,OAAO,CAAC,UAAU,CAAC;IAGnB,OAAO,CAAC,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"prompt-service.d.ts","sourceRoot":"","sources":["../../../src/sdk-handlers/gemini/prompt-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAiBH,OAAO,KAAK,EACV,gBAAgB,EAChB,6BAA6B,EAC7B,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,EACd,0BAA0B,EAC1B,iBAAiB,EACjB,eAAe,EAChB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAU,MAAM,gBAAgB,CAAC;AAEhF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGrD,OAAO,EAAwB,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAarE;;GAEG;AACH,MAAM,MAAM,iBAAiB,GACzB;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GACD;IACE,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACjC,CAAC,CAAC;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC,CAAC;IAC/E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,0BAA0B,EAAE,iBAAiB,CAAC;CACvE,GACD;IACE,IAAI,EAAE,YAAY,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC,GACD;IACE,IAAI,EAAE,eAAe,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEN,2FAA2F;AAC3F,wBAAgB,4BAA4B,CAAC,OAAO,EAAE;IACpD,YAAY,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACnC,GAAG,WAAW,CAEd;AAED,qBAAa,mBAAmB;IAU5B,OAAO,CAAC,YAAY;IAEpB,OAAO,CAAC,YAAY,CAAC;IAErB,OAAO,CAAC,aAAa,CAAC;IACtB,OAAO,CAAC,cAAc,CAAC;IACvB,OAAO,CAAC,UAAU,CAAC;IAGnB,OAAO,CAAC,YAAY,CAAC;IACrB,OAAO,CAAC,uBAAuB,CAAC;IAnBlC,OAAO,CAAC,cAAc,CAAkE;IACxF,wFAAwF;IACxF,OAAO,CAAC,6BAA6B,CAAgC;IACrE,OAAO,CAAC,iBAAiB,CAAyC;IAClE,OAAO,CAAC,MAAM,CAAC,CAAS;IACxB,OAAO,CAAC,aAAa,CAAU;gBAG7B,aAAa,EAAE,kBAAkB,EACzB,YAAY,EAAE,iBAAiB,EACvC,MAAM,CAAC,EAAE,MAAM,EACP,YAAY,CAAC,EAAE,gBAAgB,YAAA,EACvC,UAAU,CAAC,EAAE,cAAc,EACnB,aAAa,CAAC,EAAE,mBAAmB,YAAA,EACnC,cAAc,CAAC,EAAE,0BAA0B,YAAA,EAC3C,UAAU,CAAC,EAAE,OAAO,YAAA,EAC5B,aAAa,CAAC,EAAE,OAAO,EAAE,0DAA0D;IACnF,UAAU,CAAC,EAAE,eAAe,EACpB,YAAY,CAAC,EAAE,YAAY,YAAA,EAC3B,uBAAuB,CAAC,EAAE,6BAA6B,YAAA;IAMjE;;;;;;;;OAQG;IACI,sBAAsB,CAC3B,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,EACf,cAAc,CAAC,EAAE,cAAc,GAC9B,cAAc,CAAC,iBAAiB,CAAC;IA4WpC;;;;;OAKG;YACW,eAAe;IAwC7B;;;;OAIG;YACW,iBAAiB;IAuV/B;;;;;;;OAOG;IACH;;;;;OAKG;YACW,oBAAoB;IAkBlC;;;;;;;OAOG;IACH,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE;IAgBrE;;OAEG;IACG,YAAY,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;CAqBxD"}
|
|
@@ -35,6 +35,7 @@ export class GeminiPromptService {
|
|
|
35
35
|
sessionMCPRepo;
|
|
36
36
|
mcpEnabled;
|
|
37
37
|
tasksService;
|
|
38
|
+
mcpOAuthAuthHeadersRepo;
|
|
38
39
|
sessionClients = new Map();
|
|
39
40
|
/** Invocation model bound on each cached client — triggers recreate when it changes. */
|
|
40
41
|
sessionClientInvocationModels = new Map();
|
|
@@ -42,13 +43,14 @@ export class GeminiPromptService {
|
|
|
42
43
|
apiKey; // Resolved API key from base-executor
|
|
43
44
|
useNativeAuth; // Whether to use OAuth (no API key found)
|
|
44
45
|
constructor(_messagesRepo, sessionsRepo, apiKey, branchesRepo, _reposRepo, mcpServerRepo, sessionMCPRepo, mcpEnabled, useNativeAuth, // Flag from base-executor indicating OAuth should be used
|
|
45
|
-
_usersRepo, tasksService) {
|
|
46
|
+
_usersRepo, tasksService, mcpOAuthAuthHeadersRepo) {
|
|
46
47
|
this.sessionsRepo = sessionsRepo;
|
|
47
48
|
this.branchesRepo = branchesRepo;
|
|
48
49
|
this.mcpServerRepo = mcpServerRepo;
|
|
49
50
|
this.sessionMCPRepo = sessionMCPRepo;
|
|
50
51
|
this.mcpEnabled = mcpEnabled;
|
|
51
52
|
this.tasksService = tasksService;
|
|
53
|
+
this.mcpOAuthAuthHeadersRepo = mcpOAuthAuthHeadersRepo;
|
|
52
54
|
this.apiKey = apiKey;
|
|
53
55
|
this.useNativeAuth = useNativeAuth ?? false; // Default to false if not provided
|
|
54
56
|
}
|
|
@@ -527,6 +529,7 @@ export class GeminiPromptService {
|
|
|
527
529
|
const serversWithSource = await getMcpServersForSession(sessionId, {
|
|
528
530
|
sessionMCPRepo: this.sessionMCPRepo,
|
|
529
531
|
mcpServerRepo: this.mcpServerRepo,
|
|
532
|
+
mcpOAuthAuthHeadersRepo: this.mcpOAuthAuthHeadersRepo,
|
|
530
533
|
forUserId: contextUserId,
|
|
531
534
|
});
|
|
532
535
|
// Convert to Gemini SDK format
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* - ⏳ Session import (future: when OpenCode provides export API)
|
|
15
15
|
*/
|
|
16
16
|
import type { Message } from '@agor/core/types';
|
|
17
|
-
import type { MCPServerRepository, SessionMCPServerRepository } from '../../db/feathers-repositories.js';
|
|
17
|
+
import type { MCPOAuthAuthHeadersRepository, MCPServerRepository, SessionMCPServerRepository } from '../../db/feathers-repositories.js';
|
|
18
18
|
import type { NormalizedSdkResponse, RawSdkResponse } from '../../types/sdk-response.js';
|
|
19
19
|
import type { CreateSessionConfig, MessagesService, SessionHandle, SessionMetadata, StreamingCallbacks, TaskResult, ToolCapabilities } from '../base/index.js';
|
|
20
20
|
import type { ITool } from '../base/tool.interface.js';
|
|
@@ -23,6 +23,7 @@ export interface OpenCodeConfig {
|
|
|
23
23
|
serverUrl: string;
|
|
24
24
|
}
|
|
25
25
|
export declare class OpenCodeTool implements ITool {
|
|
26
|
+
private mcpOAuthAuthHeadersRepo?;
|
|
26
27
|
readonly toolType: "opencode";
|
|
27
28
|
readonly name = "OpenCode";
|
|
28
29
|
/** Default client (no directory override) */
|
|
@@ -42,7 +43,7 @@ export declare class OpenCodeTool implements ITool {
|
|
|
42
43
|
* Prefers explicit text parts and falls back to reasoning text when no text parts exist.
|
|
43
44
|
*/
|
|
44
45
|
private extractDisplayTextFromParts;
|
|
45
|
-
constructor(config: OpenCodeConfig, messagesService?: MessagesService, sessionMCPRepo?: SessionMCPServerRepository, mcpServerRepo?: MCPServerRepository);
|
|
46
|
+
constructor(config: OpenCodeConfig, messagesService?: MessagesService, sessionMCPRepo?: SessionMCPServerRepository, mcpServerRepo?: MCPServerRepository, mcpOAuthAuthHeadersRepo?: MCPOAuthAuthHeadersRepository | undefined);
|
|
46
47
|
/**
|
|
47
48
|
* Set session context (OpenCode session ID, model, provider, branch path, and MCP token) for an Agor session
|
|
48
49
|
* Must be called before executeTask
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opencode-tool.d.ts","sourceRoot":"","sources":["../../../src/sdk-handlers/opencode/opencode-tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,OAAO,KAAK,EAAE,OAAO,EAAgC,MAAM,kBAAkB,CAAC;AAK9E,OAAO,KAAK,EACV,mBAAmB,EACnB,0BAA0B,EAC3B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAEzF,OAAO,KAAK,EACV,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,UAAU,EACV,gBAAgB,EACjB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAEvD,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAeD,qBAAa,YAAa,YAAW,KAAK;
|
|
1
|
+
{"version":3,"file":"opencode-tool.d.ts","sourceRoot":"","sources":["../../../src/sdk-handlers/opencode/opencode-tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,6 +22,7 @@ import { getDaemonUrl } from '../../config.js';
|
|
|
22
22
|
import { enrichContentBlocks } from '../base/diff-enrichment.js';
|
|
23
23
|
import { getMcpServersForSession } from '../base/mcp-scoping.js';
|
|
24
24
|
export class OpenCodeTool {
|
|
25
|
+
mcpOAuthAuthHeadersRepo;
|
|
25
26
|
toolType = 'opencode';
|
|
26
27
|
name = 'OpenCode';
|
|
27
28
|
/** Default client (no directory override) */
|
|
@@ -52,7 +53,8 @@ export class OpenCodeTool {
|
|
|
52
53
|
.map((part) => part.text);
|
|
53
54
|
return reasoningParts.join('\n');
|
|
54
55
|
}
|
|
55
|
-
constructor(config, messagesService, sessionMCPRepo, mcpServerRepo) {
|
|
56
|
+
constructor(config, messagesService, sessionMCPRepo, mcpServerRepo, mcpOAuthAuthHeadersRepo) {
|
|
57
|
+
this.mcpOAuthAuthHeadersRepo = mcpOAuthAuthHeadersRepo;
|
|
56
58
|
this.config = config;
|
|
57
59
|
this.messagesService = messagesService;
|
|
58
60
|
this.sessionMCPRepo = sessionMCPRepo;
|
|
@@ -162,6 +164,7 @@ export class OpenCodeTool {
|
|
|
162
164
|
const servers = await getMcpServersForSession(sessionId, {
|
|
163
165
|
sessionMCPRepo: this.sessionMCPRepo,
|
|
164
166
|
mcpServerRepo: this.mcpServerRepo,
|
|
167
|
+
mcpOAuthAuthHeadersRepo: this.mcpOAuthAuthHeadersRepo,
|
|
165
168
|
});
|
|
166
169
|
for (const { server } of servers) {
|
|
167
170
|
const sanitizedName = server.name.toLowerCase().replace(/[^a-z0-9]+/g, '_');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feathers-client.d.ts","sourceRoot":"","sources":["../../src/services/feathers-client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,UAAU,EAAgB,MAAM,gBAAgB,CAAC;AAG/D,YAAY,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"feathers-client.d.ts","sourceRoot":"","sources":["../../src/services/feathers-client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,UAAU,EAAgB,MAAM,gBAAgB,CAAC;AAG/D,YAAY,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAoCjD;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CACxC,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,UAAU,CAAC,CAsMrB;AAED;;GAEG;AACH,eAAO,MAAM,oBAAoB,6BAAuB,CAAC"}
|
|
@@ -6,6 +6,10 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { createClient } from '@agor/core/api';
|
|
8
8
|
const DEBUG_FEATHERS_CLIENT = process.env.AGOR_DEBUG_FEATHERS_CLIENT === '1' || process.env.DEBUG?.includes('feathers-client');
|
|
9
|
+
const SERVER_DISCONNECT_RECONNECT_BASE_DELAY_MS = 1000;
|
|
10
|
+
const SERVER_DISCONNECT_RECONNECT_MAX_DELAY_MS = 30_000;
|
|
11
|
+
const SERVER_DISCONNECT_RECONNECT_MAX_ATTEMPTS = 8;
|
|
12
|
+
const SERVER_DISCONNECT_RECONNECT_MAX_AUTH_FAILURES = 3;
|
|
9
13
|
function feathersClientDebug(...args) {
|
|
10
14
|
if (DEBUG_FEATHERS_CLIENT) {
|
|
11
15
|
console.debug(...args);
|
|
@@ -35,20 +39,132 @@ class MemoryStorage {
|
|
|
35
39
|
* @returns Authenticated Feathers client
|
|
36
40
|
*/
|
|
37
41
|
export async function createExecutorClient(daemonUrl, sessionToken) {
|
|
42
|
+
const startedAt = Date.now();
|
|
43
|
+
const logSocketEvent = (event, detail) => {
|
|
44
|
+
const elapsedSeconds = Math.round((Date.now() - startedAt) / 1000);
|
|
45
|
+
const suffix = detail === undefined ? '' : `: ${detail instanceof Error ? detail.message : String(detail)}`;
|
|
46
|
+
console.log(`[executor] Socket ${event} after ${elapsedSeconds}s${suffix}`);
|
|
47
|
+
};
|
|
38
48
|
// CRITICAL FIX: Use in-memory storage for authentication
|
|
39
49
|
// Without this, the authentication result is discarded and subsequent requests fail
|
|
40
50
|
const storage = new MemoryStorage();
|
|
41
51
|
// Create client with custom storage (don't auto-connect, we'll connect manually)
|
|
42
52
|
const client = createClient(daemonUrl, false, {
|
|
43
53
|
verbose: DEBUG_FEATHERS_CLIENT, // Log connection status for debugging
|
|
44
|
-
|
|
54
|
+
// Executors may run for much longer than common proxy/websocket connection
|
|
55
|
+
// caps (for example, 15-minute ingress/LB limits). A short retry budget
|
|
56
|
+
// turns a recoverable transport rotation into a permanent daemon
|
|
57
|
+
// disconnect: heartbeats stop, terminal task patches are lost, and the
|
|
58
|
+
// daemon eventually marks the task failed via stale heartbeat/onExit
|
|
59
|
+
// safety nets. Match the browser client and keep retrying for the task's
|
|
60
|
+
// lifetime; the existing reconnect handler below re-authenticates the
|
|
61
|
+
// socket after each successful reconnect.
|
|
62
|
+
reconnectionAttempts: Number.POSITIVE_INFINITY,
|
|
45
63
|
authStorage: storage,
|
|
46
64
|
});
|
|
47
65
|
// Keep the executor JWT available for daemon endpoints that need an explicit
|
|
48
66
|
// task-scoped proof. Socket.io auth can preserve the session creator user
|
|
49
67
|
// while dropping custom JWT claims from subsequent service params.
|
|
50
68
|
client.executorSessionToken = sessionToken;
|
|
69
|
+
let serverDisconnectReconnectAttempts = 0;
|
|
70
|
+
let serverDisconnectAuthFailures = 0;
|
|
71
|
+
let serverDisconnectReconnectTimer;
|
|
72
|
+
const resetServerDisconnectRecovery = () => {
|
|
73
|
+
serverDisconnectReconnectAttempts = 0;
|
|
74
|
+
serverDisconnectAuthFailures = 0;
|
|
75
|
+
if (serverDisconnectReconnectTimer) {
|
|
76
|
+
clearTimeout(serverDisconnectReconnectTimer);
|
|
77
|
+
serverDisconnectReconnectTimer = undefined;
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
let reauthenticating = false;
|
|
81
|
+
const reauthenticateSocket = async (label) => {
|
|
82
|
+
if (reauthenticating)
|
|
83
|
+
return true;
|
|
84
|
+
reauthenticating = true;
|
|
85
|
+
try {
|
|
86
|
+
// Try reAuthenticate first — uses stored credentials from MemoryStorage
|
|
87
|
+
await client.reAuthenticate(true);
|
|
88
|
+
console.log(`[executor] Re-authenticated successfully after ${label}`);
|
|
89
|
+
resetServerDisconnectRecovery();
|
|
90
|
+
return true;
|
|
91
|
+
}
|
|
92
|
+
catch {
|
|
93
|
+
// Fallback: authenticate with raw JWT if storage-based re-auth fails
|
|
94
|
+
try {
|
|
95
|
+
await client.authenticate({
|
|
96
|
+
strategy: 'jwt',
|
|
97
|
+
accessToken: sessionToken,
|
|
98
|
+
});
|
|
99
|
+
console.log(`[executor] Re-authenticated with JWT fallback after ${label}`);
|
|
100
|
+
resetServerDisconnectRecovery();
|
|
101
|
+
return true;
|
|
102
|
+
}
|
|
103
|
+
catch (error) {
|
|
104
|
+
console.error(`[executor] Re-authentication failed after ${label}:`, error);
|
|
105
|
+
return false;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
finally {
|
|
109
|
+
reauthenticating = false;
|
|
110
|
+
}
|
|
111
|
+
};
|
|
112
|
+
const scheduleServerDisconnectReconnect = () => {
|
|
113
|
+
if (serverDisconnectReconnectTimer)
|
|
114
|
+
return;
|
|
115
|
+
if (serverDisconnectReconnectAttempts >= SERVER_DISCONNECT_RECONNECT_MAX_ATTEMPTS) {
|
|
116
|
+
logSocketEvent('server_disconnect_reconnect_abandoned', `after ${serverDisconnectReconnectAttempts} attempts`);
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
serverDisconnectReconnectAttempts += 1;
|
|
120
|
+
const delayMs = serverDisconnectReconnectAttempts === 1
|
|
121
|
+
? 0
|
|
122
|
+
: Math.min(SERVER_DISCONNECT_RECONNECT_BASE_DELAY_MS *
|
|
123
|
+
2 ** (serverDisconnectReconnectAttempts - 2), SERVER_DISCONNECT_RECONNECT_MAX_DELAY_MS);
|
|
124
|
+
logSocketEvent('server_disconnect_reconnect_scheduled', `attempt ${serverDisconnectReconnectAttempts} in ${delayMs}ms`);
|
|
125
|
+
serverDisconnectReconnectTimer = setTimeout(() => {
|
|
126
|
+
serverDisconnectReconnectTimer = undefined;
|
|
127
|
+
client.io.once('connect', async () => {
|
|
128
|
+
const reauthenticated = await reauthenticateSocket('server disconnect reconnect');
|
|
129
|
+
if (reauthenticated)
|
|
130
|
+
return;
|
|
131
|
+
serverDisconnectAuthFailures += 1;
|
|
132
|
+
if (serverDisconnectAuthFailures >= SERVER_DISCONNECT_RECONNECT_MAX_AUTH_FAILURES) {
|
|
133
|
+
logSocketEvent('server_disconnect_reconnect_auth_abandoned', `after ${serverDisconnectAuthFailures} auth failures`);
|
|
134
|
+
client.io.disconnect();
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
client.io.disconnect();
|
|
138
|
+
scheduleServerDisconnectReconnect();
|
|
139
|
+
});
|
|
140
|
+
client.io.connect();
|
|
141
|
+
}, delayMs);
|
|
142
|
+
};
|
|
51
143
|
// Connect the socket
|
|
144
|
+
client.io.on('disconnect', (reason) => {
|
|
145
|
+
logSocketEvent('disconnected', reason);
|
|
146
|
+
if (reason === 'io server disconnect') {
|
|
147
|
+
// Socket.IO intentionally disables automatic reconnect after a server-
|
|
148
|
+
// initiated namespace disconnect. In practice, long executor tasks can
|
|
149
|
+
// see this at the same ~15-minute boundary as proxy transport rotation.
|
|
150
|
+
// Treat it as recoverable for executor lifetimes and explicitly reopen
|
|
151
|
+
// the socket; the one-shot connect handler below re-authenticates the new
|
|
152
|
+
// socket because Manager "reconnect" is not emitted for this path.
|
|
153
|
+
scheduleServerDisconnectReconnect();
|
|
154
|
+
}
|
|
155
|
+
});
|
|
156
|
+
client.io.on('connect_error', (error) => {
|
|
157
|
+
logSocketEvent('connect_error', error);
|
|
158
|
+
});
|
|
159
|
+
client.io.io.on('reconnect_attempt', (attemptNumber) => {
|
|
160
|
+
logSocketEvent('reconnect_attempt', `attempt ${attemptNumber}`);
|
|
161
|
+
});
|
|
162
|
+
client.io.io.on('reconnect_error', (error) => {
|
|
163
|
+
logSocketEvent('reconnect_error', error);
|
|
164
|
+
});
|
|
165
|
+
client.io.io.on('reconnect_failed', () => {
|
|
166
|
+
logSocketEvent('reconnect_failed');
|
|
167
|
+
});
|
|
52
168
|
client.io.connect();
|
|
53
169
|
// Wait for connection
|
|
54
170
|
await new Promise((resolve, reject) => {
|
|
@@ -81,25 +197,8 @@ export async function createExecutorClient(daemonUrl, sessionToken) {
|
|
|
81
197
|
// NOTE: 'reconnect' is a Manager event, not a Socket event.
|
|
82
198
|
// client.io is the Socket; client.io.io is the Manager.
|
|
83
199
|
client.io.io.on('reconnect', async (attemptNumber) => {
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
// Try reAuthenticate first — uses stored credentials from MemoryStorage
|
|
87
|
-
await client.reAuthenticate(true);
|
|
88
|
-
console.log('[executor] Re-authenticated successfully after reconnect');
|
|
89
|
-
}
|
|
90
|
-
catch {
|
|
91
|
-
// Fallback: authenticate with raw JWT if storage-based re-auth fails
|
|
92
|
-
try {
|
|
93
|
-
await client.authenticate({
|
|
94
|
-
strategy: 'jwt',
|
|
95
|
-
accessToken: sessionToken,
|
|
96
|
-
});
|
|
97
|
-
console.log('[executor] Re-authenticated with JWT fallback after reconnect');
|
|
98
|
-
}
|
|
99
|
-
catch (error) {
|
|
100
|
-
console.error('[executor] Re-authentication failed after reconnect:', error);
|
|
101
|
-
}
|
|
102
|
-
}
|
|
200
|
+
logSocketEvent('reconnected', `attempt ${attemptNumber}; re-authenticating`);
|
|
201
|
+
await reauthenticateSocket('reconnect');
|
|
103
202
|
});
|
|
104
203
|
return client;
|
|
105
204
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{N as e}from"./editor-Cr0W5BQI.js";import{a as t,i as n,r}from"./emoji-Bv3m24sO.js";var i=e(),a=({onEmojiClick:e})=>(0,i.jsx)(r,{onEmojiClick:e,theme:t.DARK,emojiStyle:n.NATIVE,width:350,height:400});export{a as default};
|