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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/widgets/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/widgets/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,YAAY,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAC1E,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC3E,YAAY,EACV,mBAAmB,EACnB,sBAAsB,EACtB,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEnE;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CAGzC"}
|
|
@@ -14727,16 +14727,186 @@ function registerEnvVarsWidget() {
|
|
|
14727
14727
|
registerWidget(envVarsWidget);
|
|
14728
14728
|
}
|
|
14729
14729
|
|
|
14730
|
+
// src/widgets/gateway-token/index.ts
|
|
14731
|
+
import { Forbidden } from "@agor/core/feathers";
|
|
14732
|
+
import {
|
|
14733
|
+
GATEWAY_SENSITIVE_CONFIG_FIELDS,
|
|
14734
|
+
hasMinimumRole,
|
|
14735
|
+
ROLES
|
|
14736
|
+
} from "@agor/core/types";
|
|
14737
|
+
var SUPPORTED_CHANNEL_TYPES = [
|
|
14738
|
+
"slack",
|
|
14739
|
+
"github",
|
|
14740
|
+
"teams"
|
|
14741
|
+
];
|
|
14742
|
+
function isSupportedGatewayTokenChannelType(channelType) {
|
|
14743
|
+
return SUPPORTED_CHANNEL_TYPES.includes(channelType);
|
|
14744
|
+
}
|
|
14745
|
+
var MAX_TOKEN_LENGTH = 8192;
|
|
14746
|
+
function orderedFields(fields) {
|
|
14747
|
+
return [...fields].sort();
|
|
14748
|
+
}
|
|
14749
|
+
var gatewayTokenParamsSchema = external_exports.object({
|
|
14750
|
+
gatewayChannelId: external_exports.string().min(1).describe("Gateway channel whose credentials are being set."),
|
|
14751
|
+
channelType: external_exports.enum(["slack", "discord", "whatsapp", "telegram", "github", "teams"]).describe("Platform type of the channel; drives per-field placeholders."),
|
|
14752
|
+
channelName: external_exports.string().min(1).max(200).describe("Human-readable channel name for the form heading and prompts."),
|
|
14753
|
+
fields: external_exports.array(external_exports.enum(GATEWAY_SENSITIVE_CONFIG_FIELDS)).min(1).max(GATEWAY_SENSITIVE_CONFIG_FIELDS.length).refine((fields) => new Set(fields).size === fields.length, {
|
|
14754
|
+
message: "Token field names must be unique"
|
|
14755
|
+
}).describe("Secret config field names to collect (subset of the sensitive fields)."),
|
|
14756
|
+
reason: external_exports.string().min(1).max(200).describe("One sentence explaining why the tokens are needed. Renders as a muted line.")
|
|
14757
|
+
}).strict();
|
|
14758
|
+
var gatewayTokenSubmitSchema = external_exports.object({
|
|
14759
|
+
tokens: external_exports.partialRecord(
|
|
14760
|
+
external_exports.enum(GATEWAY_SENSITIVE_CONFIG_FIELDS),
|
|
14761
|
+
external_exports.string().min(1).max(MAX_TOKEN_LENGTH)
|
|
14762
|
+
).describe("Map of sensitive field name \u2192 credential value.")
|
|
14763
|
+
}).strict();
|
|
14764
|
+
var submitOutcomes = /* @__PURE__ */ new WeakMap();
|
|
14765
|
+
var HARD_CREDENTIAL_SLACK_ERRORS = /* @__PURE__ */ new Set([
|
|
14766
|
+
"invalid_auth",
|
|
14767
|
+
"account_inactive",
|
|
14768
|
+
"token_revoked",
|
|
14769
|
+
"token_expired",
|
|
14770
|
+
"not_authed",
|
|
14771
|
+
"no_permission"
|
|
14772
|
+
]);
|
|
14773
|
+
function classifyGatewayTokenTest(result, appTokenExpected) {
|
|
14774
|
+
const unprobable = result.failures.some((failure) => failure.capability === "connector");
|
|
14775
|
+
if (unprobable) {
|
|
14776
|
+
return {
|
|
14777
|
+
enable: false,
|
|
14778
|
+
status: "unverifiable",
|
|
14779
|
+
summary: "credentials cannot be auto-verified for this channel type yet"
|
|
14780
|
+
};
|
|
14781
|
+
}
|
|
14782
|
+
const isAppTokenFailure = (failure) => failure.capability === "app_token";
|
|
14783
|
+
const hardFailure = result.failures.find(
|
|
14784
|
+
(failure) => failure.slackError && HARD_CREDENTIAL_SLACK_ERRORS.has(failure.slackError) || failure.capability === "config" || appTokenExpected && isAppTokenFailure(failure)
|
|
14785
|
+
);
|
|
14786
|
+
if (hardFailure) {
|
|
14787
|
+
return { enable: false, status: "failed", summary: hardFailure.reason };
|
|
14788
|
+
}
|
|
14789
|
+
if (appTokenExpected && result.appTokenValid === false) {
|
|
14790
|
+
return {
|
|
14791
|
+
enable: false,
|
|
14792
|
+
status: "failed",
|
|
14793
|
+
summary: "The app-level token is missing or invalid; Socket Mode cannot connect."
|
|
14794
|
+
};
|
|
14795
|
+
}
|
|
14796
|
+
if (result.ok) {
|
|
14797
|
+
return { enable: true, status: "verified", summary: "passed" };
|
|
14798
|
+
}
|
|
14799
|
+
const followUps = result.failures.filter((failure) => appTokenExpected || !isAppTokenFailure(failure)).map((failure) => failure.reason).filter(Boolean);
|
|
14800
|
+
return {
|
|
14801
|
+
enable: true,
|
|
14802
|
+
status: "verified",
|
|
14803
|
+
summary: followUps.length > 0 ? `passed, with follow-ups: ${followUps.join("; ")}` : "passed"
|
|
14804
|
+
};
|
|
14805
|
+
}
|
|
14806
|
+
function assertGatewayTokenAdmin(ctx) {
|
|
14807
|
+
if (!hasMinimumRole(ctx.submitterRole, ROLES.ADMIN)) {
|
|
14808
|
+
throw new Forbidden("Only admins can set gateway channel tokens");
|
|
14809
|
+
}
|
|
14810
|
+
}
|
|
14811
|
+
async function applyGatewayTokenSubmit(ctx, submit, params) {
|
|
14812
|
+
assertGatewayTokenAdmin(ctx);
|
|
14813
|
+
const channelsService = ctx.app.service("gateway-channels");
|
|
14814
|
+
const channel = await channelsService.get(params.gatewayChannelId);
|
|
14815
|
+
if (!channel) {
|
|
14816
|
+
throw new Forbidden(`Gateway channel ${params.gatewayChannelId} not found`);
|
|
14817
|
+
}
|
|
14818
|
+
if (!isSupportedGatewayTokenChannelType(channel.channel_type)) {
|
|
14819
|
+
throw new Forbidden(
|
|
14820
|
+
`Gateway channel type "${channel.channel_type}" does not support token entry`
|
|
14821
|
+
);
|
|
14822
|
+
}
|
|
14823
|
+
if (channel.channel_type !== params.channelType) {
|
|
14824
|
+
throw new Forbidden("Gateway channel type does not match the widget request");
|
|
14825
|
+
}
|
|
14826
|
+
const sessionsService = ctx.app.service("sessions");
|
|
14827
|
+
const session = await sessionsService.get(ctx.sessionId);
|
|
14828
|
+
if (!session.branch_id || channel.target_branch_id !== session.branch_id) {
|
|
14829
|
+
throw new Forbidden("Gateway channel is not bound to this session's branch");
|
|
14830
|
+
}
|
|
14831
|
+
const requested = new Set(params.fields);
|
|
14832
|
+
const extra = Object.keys(submit.tokens).filter((field) => !requested.has(field));
|
|
14833
|
+
if (extra.length > 0) {
|
|
14834
|
+
throw new Forbidden(
|
|
14835
|
+
`Submitted token fields were not requested: ${orderedFields(extra).join(", ")}`
|
|
14836
|
+
);
|
|
14837
|
+
}
|
|
14838
|
+
const testService = ctx.app.service(
|
|
14839
|
+
"gateway-channels/test"
|
|
14840
|
+
);
|
|
14841
|
+
const testResult = await testService.create({
|
|
14842
|
+
gatewayChannelId: params.gatewayChannelId,
|
|
14843
|
+
config: submit.tokens
|
|
14844
|
+
});
|
|
14845
|
+
const appTokenExpected = params.fields.includes("app_token");
|
|
14846
|
+
const { enable, status, summary } = classifyGatewayTokenTest(testResult, appTokenExpected);
|
|
14847
|
+
await channelsService.patch(
|
|
14848
|
+
params.gatewayChannelId,
|
|
14849
|
+
{ config: submit.tokens, enabled: enable },
|
|
14850
|
+
{ user: { user_id: ctx.submitterUserId, role: ctx.submitterRole } }
|
|
14851
|
+
);
|
|
14852
|
+
submitOutcomes.set(submit, {
|
|
14853
|
+
channelId: channel.id,
|
|
14854
|
+
channelName: channel.name,
|
|
14855
|
+
channelType: channel.channel_type,
|
|
14856
|
+
enabled: enable,
|
|
14857
|
+
unverified: status === "unverifiable",
|
|
14858
|
+
test: { ok: testResult.ok, summary }
|
|
14859
|
+
});
|
|
14860
|
+
}
|
|
14861
|
+
var gatewayTokenWidget = {
|
|
14862
|
+
type: "gateway_token",
|
|
14863
|
+
schemaVersion: 1,
|
|
14864
|
+
paramsSchema: gatewayTokenParamsSchema,
|
|
14865
|
+
submitSchema: gatewayTokenSubmitSchema,
|
|
14866
|
+
buildResultMeta: (submit) => {
|
|
14867
|
+
const outcome = submitOutcomes.get(submit);
|
|
14868
|
+
return {
|
|
14869
|
+
channelId: outcome?.channelId ?? "",
|
|
14870
|
+
channelName: outcome?.channelName ?? "",
|
|
14871
|
+
channelType: outcome?.channelType ?? "slack",
|
|
14872
|
+
fieldsSet: orderedFields(Object.keys(submit.tokens)),
|
|
14873
|
+
enabled: outcome?.enabled ?? false,
|
|
14874
|
+
unverified: outcome?.unverified ?? false,
|
|
14875
|
+
test: outcome?.test ?? { ok: false, summary: "" }
|
|
14876
|
+
};
|
|
14877
|
+
},
|
|
14878
|
+
applySubmit: applyGatewayTokenSubmit,
|
|
14879
|
+
buildAutoResumePrompt: (rm, params) => {
|
|
14880
|
+
const fields = orderedFields(rm.fieldsSet).join(", ");
|
|
14881
|
+
const name = rm.channelName || params.channelName;
|
|
14882
|
+
const channelType = rm.channelType || params.channelType;
|
|
14883
|
+
if (rm.enabled) {
|
|
14884
|
+
return `[Agor] User set the ${channelType} tokens (${fields}) for channel "${name}". Channel enabled. Connection test: ${rm.test.summary || "passed"}.`;
|
|
14885
|
+
}
|
|
14886
|
+
if (rm.unverified) {
|
|
14887
|
+
return `[Agor] Tokens saved for "${name}" (${fields}); ${channelType} credentials can't be auto-verified yet, so the channel is left disabled \u2014 enable it manually once confirmed.`;
|
|
14888
|
+
}
|
|
14889
|
+
return `[Agor] User set the ${channelType} tokens (${fields}) for channel "${name}", but it was left disabled; test failed: ${rm.test.summary || "unknown error"}. Ask the user to double-check the tokens/scopes.`;
|
|
14890
|
+
},
|
|
14891
|
+
buildDismissedPrompt: (params) => `[Agor] User declined to provide tokens for "${params.channelName}"; it stays disabled. Don't immediately re-ask.`,
|
|
14892
|
+
// Dismissal is admin-only too — otherwise a member could terminally decline
|
|
14893
|
+
// an admin-only credential flow via the generic dismiss endpoint.
|
|
14894
|
+
authorizeDismiss: (ctx) => assertGatewayTokenAdmin(ctx)
|
|
14895
|
+
};
|
|
14896
|
+
function registerGatewayTokenWidget() {
|
|
14897
|
+
registerWidget(gatewayTokenWidget);
|
|
14898
|
+
}
|
|
14899
|
+
|
|
14730
14900
|
// src/widgets/submissions.ts
|
|
14731
|
-
import { Forbidden as
|
|
14901
|
+
import { Forbidden as Forbidden3, NotAuthenticated as NotAuthenticated2, NotFound as NotFound2 } from "@agor/core/feathers";
|
|
14732
14902
|
|
|
14733
14903
|
// src/utils/branch-authorization.ts
|
|
14734
14904
|
import { shortId } from "@agor/core/db";
|
|
14735
|
-
import { Forbidden, NotAuthenticated, NotFound } from "@agor/core/feathers";
|
|
14736
|
-
import { BRANCH_PERMISSION_LEVELS, hasMinimumRole, ROLES } from "@agor/core/types";
|
|
14905
|
+
import { Forbidden as Forbidden2, NotAuthenticated, NotFound } from "@agor/core/feathers";
|
|
14906
|
+
import { BRANCH_PERMISSION_LEVELS, hasMinimumRole as hasMinimumRole2, ROLES as ROLES2 } from "@agor/core/types";
|
|
14737
14907
|
function isSuperAdmin(role, allowSuperadmin = true) {
|
|
14738
14908
|
if (!allowSuperadmin) return false;
|
|
14739
|
-
return role ===
|
|
14909
|
+
return role === ROLES2.SUPERADMIN || role === "owner";
|
|
14740
14910
|
}
|
|
14741
14911
|
var PERMISSION_RANK = Object.fromEntries(
|
|
14742
14912
|
BRANCH_PERMISSION_LEVELS.map((level, i) => [level, i - 1])
|
|
@@ -14803,18 +14973,26 @@ async function doResolveWidget(widgetId, action, caller, deps) {
|
|
|
14803
14973
|
const isOwner = await deps.isBranchOwner(branch.branch_id, caller.user_id);
|
|
14804
14974
|
const effectivePermission = await deps.resolveBranchPermission?.(branch, caller.user_id);
|
|
14805
14975
|
if (!canResolveWidget(caller, session, branch, isOwner, effectivePermission)) {
|
|
14806
|
-
throw new
|
|
14976
|
+
throw new Forbidden3(
|
|
14807
14977
|
`You need to be the session creator, a branch owner, or have 'prompt' permission on the branch to resolve this widget.`
|
|
14808
14978
|
);
|
|
14809
14979
|
}
|
|
14810
14980
|
if (widget.status !== "pending") {
|
|
14811
|
-
throw new
|
|
14981
|
+
throw new Forbidden3(
|
|
14812
14982
|
`Widget ${widgetId} is already ${widget.status}; cannot ${action.kind} again.`
|
|
14813
14983
|
);
|
|
14814
14984
|
}
|
|
14815
14985
|
const entry = getWidget(widget.widget_type);
|
|
14816
14986
|
let resultMeta;
|
|
14817
14987
|
let autoResumePrompt;
|
|
14988
|
+
const ctx = {
|
|
14989
|
+
// biome-ignore lint/suspicious/noExplicitAny: Pass-through Feathers Application
|
|
14990
|
+
app: deps.app,
|
|
14991
|
+
sessionId: message.session_id,
|
|
14992
|
+
submitterUserId: caller.user_id,
|
|
14993
|
+
submitterRole: caller.role,
|
|
14994
|
+
sessionCreatorUserId: session.created_by
|
|
14995
|
+
};
|
|
14818
14996
|
if (action.kind === "submit") {
|
|
14819
14997
|
if (!entry) {
|
|
14820
14998
|
throw new NotFound2(
|
|
@@ -14823,21 +15001,16 @@ async function doResolveWidget(widgetId, action, caller, deps) {
|
|
|
14823
15001
|
}
|
|
14824
15002
|
const parsed = entry.submitSchema.safeParse(action.body);
|
|
14825
15003
|
if (!parsed.success) {
|
|
14826
|
-
throw new
|
|
15004
|
+
throw new Forbidden3(`Invalid submit payload: ${parsed.error.message}`);
|
|
14827
15005
|
}
|
|
14828
15006
|
const submit = parsed.data;
|
|
14829
|
-
|
|
14830
|
-
// biome-ignore lint/suspicious/noExplicitAny: Pass-through Feathers Application
|
|
14831
|
-
app: deps.app,
|
|
14832
|
-
sessionId: message.session_id,
|
|
14833
|
-
submitterUserId: caller.user_id,
|
|
14834
|
-
submitterRole: caller.role,
|
|
14835
|
-
sessionCreatorUserId: session.created_by
|
|
14836
|
-
};
|
|
14837
|
-
await entry.applySubmit(submitCtx, submit, widget.params);
|
|
15007
|
+
await entry.applySubmit(ctx, submit, widget.params);
|
|
14838
15008
|
resultMeta = entry.buildResultMeta(submit);
|
|
14839
15009
|
autoResumePrompt = entry.buildAutoResumePrompt(resultMeta, widget.params);
|
|
14840
15010
|
} else {
|
|
15011
|
+
if (entry?.authorizeDismiss) {
|
|
15012
|
+
await entry.authorizeDismiss(ctx, widget.params);
|
|
15013
|
+
}
|
|
14841
15014
|
autoResumePrompt = entry ? entry.buildDismissedPrompt(widget.params) : `[Agor] User dismissed a widget request. Do not re-request immediately \u2014 ask whether to proceed without, or move on to other work.`;
|
|
14842
15015
|
}
|
|
14843
15016
|
const newStatus = action.kind === "submit" ? "submitted" : "dismissed";
|
|
@@ -14895,6 +15068,7 @@ async function doResolveWidget(widgetId, action, caller, deps) {
|
|
|
14895
15068
|
// src/widgets/index.ts
|
|
14896
15069
|
function registerAllWidgets() {
|
|
14897
15070
|
registerEnvVarsWidget();
|
|
15071
|
+
registerGatewayTokenWidget();
|
|
14898
15072
|
}
|
|
14899
15073
|
export {
|
|
14900
15074
|
canResolveWidget,
|
|
@@ -84,6 +84,13 @@ export interface WidgetRegistryEntry<TParams, TSubmit, TResultMeta> {
|
|
|
84
84
|
* explicit ("don't immediately re-ask") to avoid agent loops.
|
|
85
85
|
*/
|
|
86
86
|
buildDismissedPrompt: (params: TParams) => string;
|
|
87
|
+
/**
|
|
88
|
+
* Optional gate on WHO may dismiss this widget, run before the message is
|
|
89
|
+
* marked 'dismissed'; throw (e.g. Forbidden) to reject. Absent means any
|
|
90
|
+
* caller allowed to reach the resolve endpoint may dismiss. Admin-only
|
|
91
|
+
* widgets set this so a dismissal can't sidestep the submit-side role check.
|
|
92
|
+
*/
|
|
93
|
+
authorizeDismiss?: (ctx: WidgetSubmitCtx, params: TParams) => void | Promise<void>;
|
|
87
94
|
}
|
|
88
95
|
type AnyWidgetEntry = WidgetRegistryEntry<unknown, unknown, unknown>;
|
|
89
96
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/widgets/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,WAAW,CAAC;IACjB,yCAAyC;IACzC,SAAS,EAAE,SAAS,CAAC;IACrB,2EAA2E;IAC3E,eAAe,EAAE,MAAM,CAAC;IACxB;;;;mEAI+D;IAC/D,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,kEAAkE;IAClE,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW;IAChE,2DAA2D;IAC3D,IAAI,EAAE,UAAU,CAAC;IACjB,yEAAyE;IACzE,aAAa,EAAE,MAAM,CAAC;IACtB,wEAAwE;IACxE,YAAY,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACjC,wDAAwD;IACxD,YAAY,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACjC;;;;OAIG;IACH,eAAe,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,WAAW,CAAC;IAClD;;;;;;;;OAQG;IACH,WAAW,EAAE,CAAC,GAAG,EAAE,eAAe,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvF;;;;OAIG;IACH,qBAAqB,EAAE,CAAC,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,KAAK,MAAM,CAAC;IAC5E;;;OAGG;IACH,oBAAoB,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/widgets/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,WAAW,CAAC;IACjB,yCAAyC;IACzC,SAAS,EAAE,SAAS,CAAC;IACrB,2EAA2E;IAC3E,eAAe,EAAE,MAAM,CAAC;IACxB;;;;mEAI+D;IAC/D,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,kEAAkE;IAClE,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW;IAChE,2DAA2D;IAC3D,IAAI,EAAE,UAAU,CAAC;IACjB,yEAAyE;IACzE,aAAa,EAAE,MAAM,CAAC;IACtB,wEAAwE;IACxE,YAAY,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACjC,wDAAwD;IACxD,YAAY,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACjC;;;;OAIG;IACH,eAAe,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,WAAW,CAAC;IAClD;;;;;;;;OAQG;IACH,WAAW,EAAE,CAAC,GAAG,EAAE,eAAe,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvF;;;;OAIG;IACH,qBAAqB,EAAE,CAAC,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,KAAK,MAAM,CAAC;IAC5E;;;OAGG;IACH,oBAAoB,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,MAAM,CAAC;IAClD;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE,eAAe,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACpF;AAID,KAAK,cAAc,GAAG,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAIrE;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,EAC1D,KAAK,EAAE,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,GACxD,IAAI,CASN;AAED,uEAAuE;AACvE,wBAAgB,SAAS,CAAC,IAAI,EAAE,UAAU,GAAG,cAAc,GAAG,SAAS,CAEtE;AAED,6DAA6D;AAC7D,wBAAgB,eAAe,IAAI,UAAU,EAAE,CAE9C;AAED;;GAEG;AACH,wBAAgB,4BAA4B,IAAI,IAAI,CAEnD"}
|
|
@@ -92,6 +92,14 @@ async function doResolveWidget(widgetId, action, caller, deps) {
|
|
|
92
92
|
const entry = getWidget(widget.widget_type);
|
|
93
93
|
let resultMeta;
|
|
94
94
|
let autoResumePrompt;
|
|
95
|
+
const ctx = {
|
|
96
|
+
// biome-ignore lint/suspicious/noExplicitAny: Pass-through Feathers Application
|
|
97
|
+
app: deps.app,
|
|
98
|
+
sessionId: message.session_id,
|
|
99
|
+
submitterUserId: caller.user_id,
|
|
100
|
+
submitterRole: caller.role,
|
|
101
|
+
sessionCreatorUserId: session.created_by
|
|
102
|
+
};
|
|
95
103
|
if (action.kind === "submit") {
|
|
96
104
|
if (!entry) {
|
|
97
105
|
throw new NotFound2(
|
|
@@ -103,18 +111,13 @@ async function doResolveWidget(widgetId, action, caller, deps) {
|
|
|
103
111
|
throw new Forbidden2(`Invalid submit payload: ${parsed.error.message}`);
|
|
104
112
|
}
|
|
105
113
|
const submit = parsed.data;
|
|
106
|
-
|
|
107
|
-
// biome-ignore lint/suspicious/noExplicitAny: Pass-through Feathers Application
|
|
108
|
-
app: deps.app,
|
|
109
|
-
sessionId: message.session_id,
|
|
110
|
-
submitterUserId: caller.user_id,
|
|
111
|
-
submitterRole: caller.role,
|
|
112
|
-
sessionCreatorUserId: session.created_by
|
|
113
|
-
};
|
|
114
|
-
await entry.applySubmit(submitCtx, submit, widget.params);
|
|
114
|
+
await entry.applySubmit(ctx, submit, widget.params);
|
|
115
115
|
resultMeta = entry.buildResultMeta(submit);
|
|
116
116
|
autoResumePrompt = entry.buildAutoResumePrompt(resultMeta, widget.params);
|
|
117
117
|
} else {
|
|
118
|
+
if (entry?.authorizeDismiss) {
|
|
119
|
+
await entry.authorizeDismiss(ctx, widget.params);
|
|
120
|
+
}
|
|
118
121
|
autoResumePrompt = entry ? entry.buildDismissedPrompt(widget.params) : `[Agor] User dismissed a widget request. Do not re-request immediately \u2014 ask whether to proceed without, or move on to other work.`;
|
|
119
122
|
}
|
|
120
123
|
const newStatus = action.kind === "submit" ? "submitted" : "dismissed";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/commands/git.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAuBH,OAAO,KAAK,EACV,0BAA0B,EAC1B,0BAA0B,EAC1B,sBAAsB,EACtB,oBAAoB,EACpB,cAAc,EACd,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,EACtB,eAAe,EACf,oBAAoB,EACpB,2BAA2B,EAC5B,MAAM,qBAAqB,CAAC;AAG7B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AA2FjD;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,sBAAsB,EAC/B,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,cAAc,CAAC,CA4DzB;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,oBAAoB,EAC7B,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,cAAc,CAAC,CA6DzB;AAkID;;;GAGG;AACH,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,0BAA0B,EACnC,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,cAAc,CAAC,CAuCzB;AAED;;;GAGG;AACH,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,0BAA0B,EACnC,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,cAAc,CAAC,CAuCzB;AAED;;;GAGG;AACH,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,2BAA2B,EACpC,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,cAAc,CAAC,CA6DzB;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,oBAAoB,EAC7B,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,cAAc,CAAC,CA+EzB;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,cAAc,CAAC,CA8OzB;
|
|
1
|
+
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/commands/git.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAuBH,OAAO,KAAK,EACV,0BAA0B,EAC1B,0BAA0B,EAC1B,sBAAsB,EACtB,oBAAoB,EACpB,cAAc,EACd,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,EACtB,eAAe,EACf,oBAAoB,EACpB,2BAA2B,EAC5B,MAAM,qBAAqB,CAAC;AAG7B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AA2FjD;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,sBAAsB,EAC/B,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,cAAc,CAAC,CA4DzB;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,oBAAoB,EAC7B,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,cAAc,CAAC,CA6DzB;AAkID;;;GAGG;AACH,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,0BAA0B,EACnC,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,cAAc,CAAC,CAuCzB;AAED;;;GAGG;AACH,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,0BAA0B,EACnC,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,cAAc,CAAC,CAuCzB;AAED;;;GAGG;AACH,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,2BAA2B,EACpC,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,cAAc,CAAC,CA6DzB;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,oBAAoB,EAC7B,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,cAAc,CAAC,CA+EzB;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,cAAc,CAAC,CA8OzB;AA2FD;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,mBAAmB,EAC5B,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,cAAc,CAAC,CA+TzB;AAED;;;;;GAKG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,sBAAsB,EAC/B,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,cAAc,CAAC,CAkMzB;AAED;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,qBAAqB,EAC9B,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,cAAc,CAAC,CA6CzB"}
|
|
@@ -792,6 +792,8 @@ async function renderEnvironmentTemplates(client, branchId, repoId, unixGroup, c
|
|
|
792
792
|
custom_context: branch.custom_context,
|
|
793
793
|
unix_gid: unixGid,
|
|
794
794
|
host_ip_address: hostIpAddress,
|
|
795
|
+
base_ref: branch.base_ref,
|
|
796
|
+
ref_type: branch.ref_type,
|
|
795
797
|
}, branch.environment_variant);
|
|
796
798
|
}
|
|
797
799
|
catch (err) {
|
|
@@ -71,7 +71,7 @@ export declare class FeathersSessionMCPServersRepository {
|
|
|
71
71
|
* Executors use the session-scoped route so session-token callers can receive
|
|
72
72
|
* the raw config needed to launch only their own session's MCP servers.
|
|
73
73
|
*/
|
|
74
|
-
listEffectiveServers(sessionId: SessionID, enabledOnly?: boolean): Promise<MCPServer[]>;
|
|
74
|
+
listEffectiveServers(sessionId: SessionID, enabledOnly?: boolean, forUserId?: string): Promise<MCPServer[]>;
|
|
75
75
|
/**
|
|
76
76
|
* List MCP servers for a session with relationship metadata (added_at timestamp)
|
|
77
77
|
* Used to detect if servers were added after session creation
|
|
@@ -85,6 +85,22 @@ export declare class FeathersSessionMCPServersRepository {
|
|
|
85
85
|
enabled: boolean;
|
|
86
86
|
}>>;
|
|
87
87
|
}
|
|
88
|
+
/**
|
|
89
|
+
* MCP OAuth auth headers repository - proxies to the trusted executor route.
|
|
90
|
+
*
|
|
91
|
+
* Session-scoped MCP server reads intentionally redact OAuth access tokens in
|
|
92
|
+
* normal API payloads. Executors use this narrow route to retrieve just the
|
|
93
|
+
* launch-time Authorization header for OAuth servers that are already in the
|
|
94
|
+
* session's effective MCP scope.
|
|
95
|
+
*/
|
|
96
|
+
export declare class FeathersMCPOAuthAuthHeadersRepository {
|
|
97
|
+
private client;
|
|
98
|
+
constructor(client: AgorClient);
|
|
99
|
+
getAuthHeaders(mcpServerIds: MCPServerID[]): Promise<Record<string, {
|
|
100
|
+
authorization?: string;
|
|
101
|
+
error?: string;
|
|
102
|
+
}>>;
|
|
103
|
+
}
|
|
88
104
|
/**
|
|
89
105
|
* Users Repository - proxies to 'users' Feathers service
|
|
90
106
|
*/
|
|
@@ -103,6 +119,7 @@ export type BranchRepository = FeathersBranchesRepository;
|
|
|
103
119
|
export type RepoRepository = FeathersReposRepository;
|
|
104
120
|
export type MCPServerRepository = FeathersMCPServersRepository;
|
|
105
121
|
export type SessionMCPServerRepository = FeathersSessionMCPServersRepository;
|
|
122
|
+
export type MCPOAuthAuthHeadersRepository = FeathersMCPOAuthAuthHeadersRepository;
|
|
106
123
|
export type UsersRepository = FeathersUsersRepository;
|
|
107
124
|
/**
|
|
108
125
|
* Create all Feathers-backed repositories and services
|
|
@@ -115,6 +132,7 @@ export declare function createFeathersBackedRepositories(client: AgorClient): {
|
|
|
115
132
|
users: FeathersUsersRepository;
|
|
116
133
|
mcpServers: FeathersMCPServersRepository;
|
|
117
134
|
sessionMCP: FeathersSessionMCPServersRepository;
|
|
135
|
+
mcpOAuthAuthHeaders: FeathersMCPOAuthAuthHeadersRepository;
|
|
118
136
|
messagesService: import("@agor/core").MessagesService;
|
|
119
137
|
tasksService: import("@agor/core").TasksService;
|
|
120
138
|
tasksStreamingService: import("@agor/core").AgorService<unknown, Partial<unknown>, unknown, import("@agor/core").PatchPayload<unknown>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feathers-repositories.d.ts","sourceRoot":"","sources":["../../src/db/feathers-repositories.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EACV,MAAM,EACN,QAAQ,EACR,SAAS,EACT,gBAAgB,EAChB,WAAW,EACX,OAAO,EACP,SAAS,EACT,IAAI,EACJ,OAAO,EACP,SAAS,EACT,gBAAgB,EAChB,IAAI,EACL,MAAM,kBAAkB,CAAC;AAE1B;;GAEG;AACH,qBAAa,0BAA0B;IACzB,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,UAAU;IAEhC,eAAe,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAYzD,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IASvD,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;CAIrE;AAED;;GAEG;AACH,qBAAa,0BAA0B;IACzB,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,UAAU;IAEhC,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IASvD,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;CAI7E;AAED;;GAEG;AACH,qBAAa,0BAA0B;IACzB,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,UAAU;IAEhC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAQ3D;AAED;;GAEG;AACH,qBAAa,uBAAuB;IACtB,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,UAAU;IAEhC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;CAQrD;AAED;;GAEG;AACH,qBAAa,4BAA4B;IAC3B,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,UAAU;IAEhC,QAAQ,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAS7D,OAAO,CAAC,OAAO,CAAC,EAAE,gBAAgB,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;CA+BpF;AAED;;GAEG;AACH,qBAAa,mCAAmC;IAClC,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,UAAU;IAEhC,eAAe,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAWlE,iBAAiB,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAW9E;;;;;OAKG;IACG,WAAW,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAYpF;;;;OAIG;IACG,oBAAoB,
|
|
1
|
+
{"version":3,"file":"feathers-repositories.d.ts","sourceRoot":"","sources":["../../src/db/feathers-repositories.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EACV,MAAM,EACN,QAAQ,EACR,SAAS,EACT,gBAAgB,EAChB,WAAW,EACX,OAAO,EACP,SAAS,EACT,IAAI,EACJ,OAAO,EACP,SAAS,EACT,gBAAgB,EAChB,IAAI,EACL,MAAM,kBAAkB,CAAC;AAE1B;;GAEG;AACH,qBAAa,0BAA0B;IACzB,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,UAAU;IAEhC,eAAe,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAYzD,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IASvD,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;CAIrE;AAED;;GAEG;AACH,qBAAa,0BAA0B;IACzB,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,UAAU;IAEhC,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IASvD,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;CAI7E;AAED;;GAEG;AACH,qBAAa,0BAA0B;IACzB,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,UAAU;IAEhC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAQ3D;AAED;;GAEG;AACH,qBAAa,uBAAuB;IACtB,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,UAAU;IAEhC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;CAQrD;AAED;;GAEG;AACH,qBAAa,4BAA4B;IAC3B,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,UAAU;IAEhC,QAAQ,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAS7D,OAAO,CAAC,OAAO,CAAC,EAAE,gBAAgB,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;CA+BpF;AAED;;GAEG;AACH,qBAAa,mCAAmC;IAClC,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,UAAU;IAEhC,eAAe,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAWlE,iBAAiB,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAW9E;;;;;OAKG;IACG,WAAW,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAYpF;;;;OAIG;IACG,oBAAoB,CACxB,SAAS,EAAE,SAAS,EACpB,WAAW,CAAC,EAAE,OAAO,EACrB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,SAAS,EAAE,CAAC;IAevB;;;;;;OAMG;IACG,uBAAuB,CAC3B,SAAS,EAAE,SAAS,EACpB,WAAW,UAAQ,GAClB,OAAO,CAAC,KAAK,CAAC;QAAE,MAAM,EAAE,SAAS,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CAe7E;AAMD;;;;;;;GAOG;AACH,qBAAa,qCAAqC;IACpC,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,UAAU;IAEhC,cAAc,CAClB,YAAY,EAAE,WAAW,EAAE,GAC1B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE;QAAE,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAavE;AAED;;GAEG;AACH,qBAAa,uBAAuB;IACtB,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,UAAU;IAEhC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;CAQrD;AAMD;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG,0BAA0B,CAAC;AAC5D,MAAM,MAAM,iBAAiB,GAAG,0BAA0B,CAAC;AAC3D,MAAM,MAAM,gBAAgB,GAAG,0BAA0B,CAAC;AAC1D,MAAM,MAAM,cAAc,GAAG,uBAAuB,CAAC;AACrD,MAAM,MAAM,mBAAmB,GAAG,4BAA4B,CAAC;AAC/D,MAAM,MAAM,0BAA0B,GAAG,mCAAmC,CAAC;AAC7E,MAAM,MAAM,6BAA6B,GAAG,qCAAqC,CAAC;AAClF,MAAM,MAAM,eAAe,GAAG,uBAAuB,CAAC;AAEtD;;GAEG;AACH,wBAAgB,gCAAgC,CAAC,MAAM,EAAE,UAAU;;;;;;;;;;;;;EAmBlE"}
|
|
@@ -191,12 +191,15 @@ export class FeathersSessionMCPServersRepository {
|
|
|
191
191
|
* Executors use the session-scoped route so session-token callers can receive
|
|
192
192
|
* the raw config needed to launch only their own session's MCP servers.
|
|
193
193
|
*/
|
|
194
|
-
async listEffectiveServers(sessionId, enabledOnly) {
|
|
194
|
+
async listEffectiveServers(sessionId, enabledOnly, forUserId) {
|
|
195
195
|
const service = this.client.service(`/sessions/${sessionId}/mcp-servers`);
|
|
196
196
|
const query = { includeGlobal: true };
|
|
197
197
|
if (enabledOnly) {
|
|
198
198
|
query.enabledOnly = true;
|
|
199
199
|
}
|
|
200
|
+
if (forUserId) {
|
|
201
|
+
query.forUserId = forUserId;
|
|
202
|
+
}
|
|
200
203
|
const result = await service.find({ query });
|
|
201
204
|
return (Array.isArray(result) ? result : result.data);
|
|
202
205
|
}
|
|
@@ -217,6 +220,32 @@ export class FeathersSessionMCPServersRepository {
|
|
|
217
220
|
return (Array.isArray(result) ? result : result.data);
|
|
218
221
|
}
|
|
219
222
|
}
|
|
223
|
+
/**
|
|
224
|
+
* MCP OAuth auth headers repository - proxies to the trusted executor route.
|
|
225
|
+
*
|
|
226
|
+
* Session-scoped MCP server reads intentionally redact OAuth access tokens in
|
|
227
|
+
* normal API payloads. Executors use this narrow route to retrieve just the
|
|
228
|
+
* launch-time Authorization header for OAuth servers that are already in the
|
|
229
|
+
* session's effective MCP scope.
|
|
230
|
+
*/
|
|
231
|
+
export class FeathersMCPOAuthAuthHeadersRepository {
|
|
232
|
+
client;
|
|
233
|
+
constructor(client) {
|
|
234
|
+
this.client = client;
|
|
235
|
+
}
|
|
236
|
+
async getAuthHeaders(mcpServerIds) {
|
|
237
|
+
if (mcpServerIds.length === 0)
|
|
238
|
+
return {};
|
|
239
|
+
const service = this.client.service('mcp-servers/oauth-auth-headers');
|
|
240
|
+
const executorSessionToken = this.client
|
|
241
|
+
.executorSessionToken;
|
|
242
|
+
const result = (await service.create({
|
|
243
|
+
mcp_server_ids: mcpServerIds,
|
|
244
|
+
...(executorSessionToken ? { executorSessionToken } : {}),
|
|
245
|
+
}));
|
|
246
|
+
return result.headers ?? {};
|
|
247
|
+
}
|
|
248
|
+
}
|
|
220
249
|
/**
|
|
221
250
|
* Users Repository - proxies to 'users' Feathers service
|
|
222
251
|
*/
|
|
@@ -248,6 +277,7 @@ export function createFeathersBackedRepositories(client) {
|
|
|
248
277
|
users: new FeathersUsersRepository(client),
|
|
249
278
|
mcpServers: new FeathersMCPServersRepository(client),
|
|
250
279
|
sessionMCP: new FeathersSessionMCPServersRepository(client),
|
|
280
|
+
mcpOAuthAuthHeaders: new FeathersMCPOAuthAuthHeadersRepository(client),
|
|
251
281
|
// Services (direct Feathers service access)
|
|
252
282
|
// SDK handlers can use these services directly with proper typing
|
|
253
283
|
messagesService: client.service('messages'),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../../src/handlers/sdk/claude.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAEzF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAIlE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAEpE;;;;GAIG;AACH,wBAAsB,qBAAqB,CAAC,MAAM,EAAE;IAClD,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,eAAe,EAAE,eAAe,CAAC;IACjC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,cAAc,CAAC,EAAE,mBAAmB,CAAC;CACtC,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../../src/handlers/sdk/claude.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAEzF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAIlE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAEpE;;;;GAIG;AACH,wBAAsB,qBAAqB,CAAC,MAAM,EAAE;IAClD,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,eAAe,EAAE,eAAe,CAAC;IACjC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,cAAc,CAAC,EAAE,mBAAmB,CAAC;CACtC,GAAG,OAAO,CAAC,IAAI,CAAC,CA+ChB"}
|
|
@@ -33,7 +33,7 @@ export async function executeClaudeCodeTask(params) {
|
|
|
33
33
|
toolName: 'claude-code',
|
|
34
34
|
createTool: (repos, apiKey, useNativeAuth) => new ClaudeTool(repos.messages, repos.sessions, apiKey, repos.messagesService, repos.sessionMCP, repos.mcpServers, permissionService, repos.tasksService, repos.tasksStreamingService, repos.sessionsService, repos.branches, repos.repos, true, // mcpEnabled
|
|
35
35
|
useNativeAuth, // Flag for Claude CLI OAuth (`claude login`)
|
|
36
|
-
repos.users),
|
|
36
|
+
repos.users, repos.mcpOAuthAuthHeaders),
|
|
37
37
|
});
|
|
38
38
|
}
|
|
39
39
|
finally {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../../src/handlers/sdk/codex.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAGzF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAEpE;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,MAAM,EAAE;IAC7C,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,eAAe,EAAE,eAAe,CAAC;IACjC,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../../src/handlers/sdk/codex.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAGzF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAEpE;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,MAAM,EAAE;IAC7C,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,eAAe,EAAE,eAAe,CAAC;IACjC,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B,GAAG,OAAO,CAAC,IAAI,CAAC,CA0BhB"}
|
|
@@ -20,6 +20,6 @@ export async function executeCodexTask(params) {
|
|
|
20
20
|
toolName: 'codex',
|
|
21
21
|
createTool: (repos, apiKey, useNativeAuth) => new CodexTool(repos.messages, repos.sessions, repos.sessionMCP, repos.branches, repos.repos, apiKey, repos.messagesService, repos.tasksService, repos.tasksStreamingService, useNativeAuth, // Flag for native auth (if applicable)
|
|
22
22
|
repos.mcpServers, // MCPServerRepository for global MCP server resolution
|
|
23
|
-
repos.users),
|
|
23
|
+
repos.users, repos.mcpOAuthAuthHeaders),
|
|
24
24
|
});
|
|
25
25
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copilot.d.ts","sourceRoot":"","sources":["../../../src/handlers/sdk/copilot.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAEzF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAIlE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAEpE;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,MAAM,EAAE;IAC/C,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,eAAe,EAAE,eAAe,CAAC;IACjC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,cAAc,CAAC,EAAE,mBAAmB,CAAC;CACtC,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"copilot.d.ts","sourceRoot":"","sources":["../../../src/handlers/sdk/copilot.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAEzF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAIlE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAEpE;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,MAAM,EAAE;IAC/C,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,eAAe,EAAE,eAAe,CAAC;IACjC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,cAAc,CAAC,EAAE,mBAAmB,CAAC;CACtC,GAAG,OAAO,CAAC,IAAI,CAAC,CA8ChB"}
|
|
@@ -32,7 +32,7 @@ export async function executeCopilotTask(params) {
|
|
|
32
32
|
...params,
|
|
33
33
|
apiKeyEnvVar: TOOL_API_KEY_NAMES.copilot,
|
|
34
34
|
toolName: 'copilot',
|
|
35
|
-
createTool: (repos, apiKey, useNativeAuth) => new CopilotTool(repos.messages, repos.sessions, repos.sessionMCP, repos.branches, repos.repos, apiKey, repos.messagesService, repos.tasksService, useNativeAuth, repos.mcpServers, repos.users, permissionService, repos.sessionsService),
|
|
35
|
+
createTool: (repos, apiKey, useNativeAuth) => new CopilotTool(repos.messages, repos.sessions, repos.sessionMCP, repos.branches, repos.repos, apiKey, repos.messagesService, repos.tasksService, useNativeAuth, repos.mcpServers, repos.users, permissionService, repos.sessionsService, repos.mcpOAuthAuthHeaders),
|
|
36
36
|
});
|
|
37
37
|
}
|
|
38
38
|
finally {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cursor.d.ts","sourceRoot":"","sources":["../../../src/handlers/sdk/cursor.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,OAAO,KAAK,EACV,YAAY,EAGZ,aAAa,EACb,cAAc,EACd,SAAS,EAET,MAAM,EACP,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAyC,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAGrF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAGlE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAiCpE,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CA2B5D;AAED,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,OAAO,CAAC,UAAU,EAAE;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,CAAC,GAChD,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAmCzB;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAAE;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,GAAG,YAAY,EAAE,CAgBjB;
|
|
1
|
+
{"version":3,"file":"cursor.d.ts","sourceRoot":"","sources":["../../../src/handlers/sdk/cursor.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,OAAO,KAAK,EACV,YAAY,EAGZ,aAAa,EACb,cAAc,EACd,SAAS,EAET,MAAM,EACP,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAyC,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAGrF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAGlE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAiCpE,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CA2B5D;AAED,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,OAAO,CAAC,UAAU,EAAE;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,CAAC,GAChD,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAmCzB;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAAE;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,GAAG,YAAY,EAAE,CAgBjB;AAiRD;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,MAAM,EAAE;IAC9C,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,eAAe,EAAE,eAAe,CAAC;IACjC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,cAAc,CAAC,EAAE,mBAAmB,CAAC;CACtC,GAAG,OAAO,CAAC,IAAI,CAAC,CA+MhB"}
|
|
@@ -154,6 +154,7 @@ async function buildCursorMcpServers(args) {
|
|
|
154
154
|
const serversWithSource = await getMcpServersForSession(args.sessionId, {
|
|
155
155
|
sessionMCPRepo: args.repos.sessionMCP,
|
|
156
156
|
mcpServerRepo: args.repos.mcpServers,
|
|
157
|
+
mcpOAuthAuthHeadersRepo: args.repos.mcpOAuthAuthHeaders,
|
|
157
158
|
forUserId: args.forUserId,
|
|
158
159
|
});
|
|
159
160
|
for (const { server } of serversWithSource) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../../src/handlers/sdk/gemini.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAGzF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAEpE;;;;GAIG;AACH,wBAAsB,iBAAiB,CAAC,MAAM,EAAE;IAC9C,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,eAAe,EAAE,eAAe,CAAC;IACjC,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../../src/handlers/sdk/gemini.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAGzF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAEpE;;;;GAIG;AACH,wBAAsB,iBAAiB,CAAC,MAAM,EAAE;IAC9C,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,eAAe,EAAE,eAAe,CAAC;IACjC,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B,GAAG,OAAO,CAAC,IAAI,CAAC,CA0BhB"}
|
|
@@ -20,6 +20,6 @@ export async function executeGeminiTask(params) {
|
|
|
20
20
|
toolName: 'gemini',
|
|
21
21
|
createTool: (repos, apiKey, useNativeAuth) => new GeminiTool(repos.messages, repos.sessions, apiKey, repos.messagesService, repos.tasksService, repos.branches, repos.repos, repos.mcpServers, repos.sessionMCP, true, // mcpEnabled
|
|
22
22
|
useNativeAuth, // Flag to use OAuth when no API key
|
|
23
|
-
repos.users),
|
|
23
|
+
repos.users, repos.mcpOAuthAuthHeaders),
|
|
24
24
|
});
|
|
25
25
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opencode.d.ts","sourceRoot":"","sources":["../../../src/handlers/sdk/opencode.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAa,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAGrF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAElE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAGpE;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,MAAM,EAAE;IAChD,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,eAAe,EAAE,eAAe,CAAC;IACjC,cAAc,CAAC,EAAE,mBAAmB,CAAC;CACtC,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"opencode.d.ts","sourceRoot":"","sources":["../../../src/handlers/sdk/opencode.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAa,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAGrF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAElE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAGpE;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,MAAM,EAAE;IAChD,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,eAAe,EAAE,eAAe,CAAC;IACjC,cAAc,CAAC,EAAE,mBAAmB,CAAC;CACtC,GAAG,OAAO,CAAC,IAAI,CAAC,CAwJhB"}
|
|
@@ -56,7 +56,7 @@ export async function executeOpenCodeTask(params) {
|
|
|
56
56
|
const tool = new OpenCodeTool({
|
|
57
57
|
enabled: true,
|
|
58
58
|
serverUrl,
|
|
59
|
-
}, repos.messagesService, repos.sessionMCP, repos.mcpServers);
|
|
59
|
+
}, repos.messagesService, repos.sessionMCP, repos.mcpServers, repos.mcpOAuthAuthHeaders);
|
|
60
60
|
let opencodeSessionId;
|
|
61
61
|
// Check if we already have an OpenCode session (stored in sdk_session_id)
|
|
62
62
|
if (session.sdk_session_id) {
|
|
@@ -14,11 +14,11 @@ export { type ResolvedConfigSlice, ResolvedConfigSliceSchema };
|
|
|
14
14
|
* Tool types supported by the prompt command
|
|
15
15
|
*/
|
|
16
16
|
export declare const ToolTypeSchema: z.ZodEnum<{
|
|
17
|
+
opencode: "opencode";
|
|
17
18
|
"claude-code": "claude-code";
|
|
18
19
|
"claude-code-cli": "claude-code-cli";
|
|
19
20
|
gemini: "gemini";
|
|
20
21
|
codex: "codex";
|
|
21
|
-
opencode: "opencode";
|
|
22
22
|
copilot: "copilot";
|
|
23
23
|
cursor: "cursor";
|
|
24
24
|
}>;
|
|
@@ -103,11 +103,11 @@ export declare const PromptPayloadSchema: z.ZodObject<{
|
|
|
103
103
|
taskId: z.ZodString;
|
|
104
104
|
prompt: z.ZodString;
|
|
105
105
|
tool: z.ZodEnum<{
|
|
106
|
+
opencode: "opencode";
|
|
106
107
|
"claude-code": "claude-code";
|
|
107
108
|
"claude-code-cli": "claude-code-cli";
|
|
108
109
|
gemini: "gemini";
|
|
109
110
|
codex: "codex";
|
|
110
|
-
opencode: "opencode";
|
|
111
111
|
copilot: "copilot";
|
|
112
112
|
cursor: "cursor";
|
|
113
113
|
}>;
|
|
@@ -460,8 +460,8 @@ export declare const EnvironmentLifecyclePayloadSchema: z.ZodObject<{
|
|
|
460
460
|
action: z.ZodEnum<{
|
|
461
461
|
start: "start";
|
|
462
462
|
stop: "stop";
|
|
463
|
-
restart: "restart";
|
|
464
463
|
nuke: "nuke";
|
|
464
|
+
restart: "restart";
|
|
465
465
|
}>;
|
|
466
466
|
startCommand: z.ZodOptional<z.ZodString>;
|
|
467
467
|
stopCommand: z.ZodOptional<z.ZodString>;
|
|
@@ -821,11 +821,11 @@ export declare const ExecutorPayloadSchema: z.ZodDiscriminatedUnion<[z.ZodObject
|
|
|
821
821
|
taskId: z.ZodString;
|
|
822
822
|
prompt: z.ZodString;
|
|
823
823
|
tool: z.ZodEnum<{
|
|
824
|
+
opencode: "opencode";
|
|
824
825
|
"claude-code": "claude-code";
|
|
825
826
|
"claude-code-cli": "claude-code-cli";
|
|
826
827
|
gemini: "gemini";
|
|
827
828
|
codex: "codex";
|
|
828
|
-
opencode: "opencode";
|
|
829
829
|
copilot: "copilot";
|
|
830
830
|
cursor: "cursor";
|
|
831
831
|
}>;
|
|
@@ -1116,8 +1116,8 @@ export declare const ExecutorPayloadSchema: z.ZodDiscriminatedUnion<[z.ZodObject
|
|
|
1116
1116
|
action: z.ZodEnum<{
|
|
1117
1117
|
start: "start";
|
|
1118
1118
|
stop: "stop";
|
|
1119
|
-
restart: "restart";
|
|
1120
1119
|
nuke: "nuke";
|
|
1120
|
+
restart: "restart";
|
|
1121
1121
|
}>;
|
|
1122
1122
|
startCommand: z.ZodOptional<z.ZodString>;
|
|
1123
1123
|
stopCommand: z.ZodOptional<z.ZodString>;
|