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
|
@@ -34,6 +34,7 @@ var RealtimeAccessCache = class {
|
|
|
34
34
|
}
|
|
35
35
|
branchVisibility = /* @__PURE__ */ new Map();
|
|
36
36
|
sessionBranches = /* @__PURE__ */ new Map();
|
|
37
|
+
sessionOwners = /* @__PURE__ */ new Map();
|
|
37
38
|
branchVisibilityTtlMs;
|
|
38
39
|
sessionBranchTtlMs;
|
|
39
40
|
now;
|
|
@@ -50,6 +51,27 @@ var RealtimeAccessCache = class {
|
|
|
50
51
|
});
|
|
51
52
|
return branchId;
|
|
52
53
|
}
|
|
54
|
+
/**
|
|
55
|
+
* Owning user id for a session, cached on the same cadence as the
|
|
56
|
+
* session→branch map. Used only to offer streaming events to the session
|
|
57
|
+
* creator's own connections as a fallback when they haven't subscribed to
|
|
58
|
+
* the per-session stream channel yet.
|
|
59
|
+
*/
|
|
60
|
+
async getSessionOwnerId(sessionId) {
|
|
61
|
+
const cached = this.sessionOwners.get(sessionId);
|
|
62
|
+
const now = this.now();
|
|
63
|
+
if (cached && cached.expiresAt > now) {
|
|
64
|
+
return cached.ownerId;
|
|
65
|
+
}
|
|
66
|
+
const ownerId = await this.options.sessionsRepository.findCreatedByBySessionId(
|
|
67
|
+
sessionId
|
|
68
|
+
) ?? null;
|
|
69
|
+
this.sessionOwners.set(sessionId, {
|
|
70
|
+
ownerId,
|
|
71
|
+
expiresAt: now + this.sessionBranchTtlMs
|
|
72
|
+
});
|
|
73
|
+
return ownerId;
|
|
74
|
+
}
|
|
53
75
|
async getBranchVisibility(branchId) {
|
|
54
76
|
const cached = this.branchVisibility.get(branchId);
|
|
55
77
|
const now = this.now();
|
|
@@ -85,6 +107,7 @@ var RealtimeAccessCache = class {
|
|
|
85
107
|
}
|
|
86
108
|
invalidateSession(sessionId) {
|
|
87
109
|
this.sessionBranches.delete(sessionId);
|
|
110
|
+
this.sessionOwners.delete(sessionId);
|
|
88
111
|
}
|
|
89
112
|
clearVisibility() {
|
|
90
113
|
this.branchVisibility.clear();
|
|
@@ -92,6 +115,7 @@ var RealtimeAccessCache = class {
|
|
|
92
115
|
clearAll() {
|
|
93
116
|
this.branchVisibility.clear();
|
|
94
117
|
this.sessionBranches.clear();
|
|
118
|
+
this.sessionOwners.clear();
|
|
95
119
|
}
|
|
96
120
|
visibilityFromEntry(entry) {
|
|
97
121
|
return entry.mode === "allAuthenticated" ? { mode: "allAuthenticated" } : { mode: "explicitUsers", userIds: entry.userIds };
|
|
@@ -102,6 +126,26 @@ var RealtimeAccessCache = class {
|
|
|
102
126
|
function tenantChannelName(tenantId) {
|
|
103
127
|
return `tenant:${tenantId}`;
|
|
104
128
|
}
|
|
129
|
+
var SESSION_STREAM_CHANNEL_PREFIX = "session-stream:";
|
|
130
|
+
function sessionStreamChannelName(sessionId) {
|
|
131
|
+
return `${SESSION_STREAM_CHANNEL_PREFIX}${sessionId}`;
|
|
132
|
+
}
|
|
133
|
+
function leaveAllSessionStreamChannels(app, connection) {
|
|
134
|
+
for (const name of app.channels ?? []) {
|
|
135
|
+
if (name.startsWith(SESSION_STREAM_CHANNEL_PREFIX)) {
|
|
136
|
+
app.channel(name).leave(connection);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
function existingChannel(app, name) {
|
|
141
|
+
return (app.channels ?? []).includes(name) ? app.channel(name) : null;
|
|
142
|
+
}
|
|
143
|
+
function joinSessionStreamChannel(app, sessionId, connection) {
|
|
144
|
+
app.channel(sessionStreamChannelName(sessionId)).join(connection);
|
|
145
|
+
}
|
|
146
|
+
function leaveSessionStreamChannel(app, sessionId, connection) {
|
|
147
|
+
existingChannel(app, sessionStreamChannelName(sessionId))?.leave(connection);
|
|
148
|
+
}
|
|
105
149
|
var DEBUG_REALTIME_PUBLISH = process.env.AGOR_DEBUG_REALTIME_PUBLISH === "1" || process.env.DEBUG?.includes("realtime-publish");
|
|
106
150
|
function realtimePublishDebug(...args) {
|
|
107
151
|
if (DEBUG_REALTIME_PUBLISH) {
|
|
@@ -117,8 +161,27 @@ var SESSION_ID_SCOPED_PATHS = /* @__PURE__ */ new Set([
|
|
|
117
161
|
"session-env-selections"
|
|
118
162
|
]);
|
|
119
163
|
var OPTIONAL_BRANCH_OR_SESSION_SCOPED_PATHS = /* @__PURE__ */ new Set(["board-objects", "board-comments"]);
|
|
164
|
+
var MESSAGE_STREAMING_EVENTS = /* @__PURE__ */ new Set([
|
|
165
|
+
"streaming:start",
|
|
166
|
+
"streaming:chunk",
|
|
167
|
+
"streaming:end",
|
|
168
|
+
"streaming:error",
|
|
169
|
+
"thinking:start",
|
|
170
|
+
"thinking:chunk",
|
|
171
|
+
"thinking:end"
|
|
172
|
+
]);
|
|
173
|
+
var TASK_STREAMING_EVENTS = /* @__PURE__ */ new Set(["thinking:chunk", "tool:start", "tool:complete"]);
|
|
120
174
|
function isStreamingEvent(context) {
|
|
121
|
-
|
|
175
|
+
if (context.path === "messages/streaming") return true;
|
|
176
|
+
const event = context.event;
|
|
177
|
+
if (!event) return false;
|
|
178
|
+
if (context.path === "messages") {
|
|
179
|
+
return event.startsWith("streaming:") || MESSAGE_STREAMING_EVENTS.has(event);
|
|
180
|
+
}
|
|
181
|
+
if (context.path === "tasks") {
|
|
182
|
+
return TASK_STREAMING_EVENTS.has(event);
|
|
183
|
+
}
|
|
184
|
+
return false;
|
|
122
185
|
}
|
|
123
186
|
function asRecord(value) {
|
|
124
187
|
return value && typeof value === "object" && !Array.isArray(value) ? value : null;
|
|
@@ -254,6 +317,47 @@ async function resolvePublishScope(data, context, accessCache) {
|
|
|
254
317
|
function filterToServiceConnections(authenticated) {
|
|
255
318
|
return authenticated.filter((connection) => isServiceConnection(connection));
|
|
256
319
|
}
|
|
320
|
+
async function resolveStreamingDelivery(app, data, tenantScoped, accessCache, branchRbacEnabled, allowSuperadmin) {
|
|
321
|
+
const serviceConnections = filterToServiceConnections(tenantScoped);
|
|
322
|
+
const sessionId = extractSessionId(data);
|
|
323
|
+
if (!sessionId) return serviceConnections;
|
|
324
|
+
const tenantConnections = new Set(
|
|
325
|
+
tenantScoped.connections
|
|
326
|
+
);
|
|
327
|
+
const existingRoom = existingChannel(app, sessionStreamChannelName(sessionId));
|
|
328
|
+
const room = existingRoom ? existingRoom.filter((connection) => tenantConnections.has(connection)) : null;
|
|
329
|
+
let ownerId = null;
|
|
330
|
+
try {
|
|
331
|
+
ownerId = await accessCache.getSessionOwnerId(sessionId);
|
|
332
|
+
} catch {
|
|
333
|
+
}
|
|
334
|
+
const ownerChannel = () => tenantScoped.filter(
|
|
335
|
+
(connection) => userFromConnection(connection)?.user_id === ownerId
|
|
336
|
+
);
|
|
337
|
+
if (!branchRbacEnabled) {
|
|
338
|
+
const channels2 = [serviceConnections];
|
|
339
|
+
if (room) channels2.push(room);
|
|
340
|
+
if (ownerId) channels2.push(ownerChannel());
|
|
341
|
+
return channels2;
|
|
342
|
+
}
|
|
343
|
+
const branchId = await accessCache.getBranchIdForSession(sessionId);
|
|
344
|
+
const visibility = branchId ? await accessCache.getBranchVisibility(branchId) : null;
|
|
345
|
+
if (!visibility) return serviceConnections;
|
|
346
|
+
if (visibility.mode === "allAuthenticated") {
|
|
347
|
+
const channels2 = [serviceConnections];
|
|
348
|
+
if (room) channels2.push(room);
|
|
349
|
+
if (ownerId) channels2.push(ownerChannel());
|
|
350
|
+
return channels2;
|
|
351
|
+
}
|
|
352
|
+
const channels = [serviceConnections];
|
|
353
|
+
if (room) {
|
|
354
|
+
channels.push(filterToUserIdsOrSuperadmins(room, visibility.userIds, allowSuperadmin));
|
|
355
|
+
}
|
|
356
|
+
if (ownerId && visibility.userIds.has(ownerId)) {
|
|
357
|
+
channels.push(ownerChannel());
|
|
358
|
+
}
|
|
359
|
+
return channels;
|
|
360
|
+
}
|
|
257
361
|
function filterToUserIdsOrAdmins(authenticated, userIds, allowSuperadmin) {
|
|
258
362
|
return authenticated.filter((connection) => {
|
|
259
363
|
if (isServiceConnection(connection) || isAdminConnection(connection, allowSuperadmin)) {
|
|
@@ -327,6 +431,16 @@ function configureRealtimePublish(options) {
|
|
|
327
431
|
throw error;
|
|
328
432
|
}
|
|
329
433
|
}
|
|
434
|
+
if (isStreamingEvent(context)) {
|
|
435
|
+
return resolveStreamingDelivery(
|
|
436
|
+
app,
|
|
437
|
+
data,
|
|
438
|
+
tenantScoped,
|
|
439
|
+
accessCache,
|
|
440
|
+
branchRbacEnabled,
|
|
441
|
+
allowSuperadmin
|
|
442
|
+
);
|
|
443
|
+
}
|
|
330
444
|
if (!branchRbacEnabled) return tenantScoped;
|
|
331
445
|
const scope = await resolvePublishScope(data, context, accessCache);
|
|
332
446
|
if (scope.kind === "global") return tenantScoped;
|
|
@@ -358,5 +472,9 @@ function configureRealtimePublish(options) {
|
|
|
358
472
|
});
|
|
359
473
|
}
|
|
360
474
|
export {
|
|
361
|
-
configureRealtimePublish
|
|
475
|
+
configureRealtimePublish,
|
|
476
|
+
joinSessionStreamChannel,
|
|
477
|
+
leaveAllSessionStreamChannels,
|
|
478
|
+
leaveSessionStreamChannel,
|
|
479
|
+
sessionStreamChannelName
|
|
362
480
|
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { type AgorConfig } from '@agor/core/config';
|
|
2
|
+
import { type TenantScopeAwareDatabase } from '@agor/core/db';
|
|
3
|
+
import type { Params, SessionID, TenantContext } from '@agor/core/types';
|
|
4
|
+
type QueueTenantParams = Params & {
|
|
5
|
+
tenant?: Pick<TenantContext, 'tenant_id' | 'source'>;
|
|
6
|
+
};
|
|
7
|
+
export interface SessionQueueTenantScopeOptions {
|
|
8
|
+
db: TenantScopeAwareDatabase;
|
|
9
|
+
config: AgorConfig;
|
|
10
|
+
sessionId: SessionID;
|
|
11
|
+
params?: Params;
|
|
12
|
+
/**
|
|
13
|
+
* Trusted tenant id from an already-loaded tenant-owned row (for example a
|
|
14
|
+
* Postgres sessions/tasks patch result). Do not populate this from request
|
|
15
|
+
* payloads or request-less tenant discovery reads.
|
|
16
|
+
*/
|
|
17
|
+
tenantIdHint?: string;
|
|
18
|
+
label: string;
|
|
19
|
+
}
|
|
20
|
+
export declare function queueTenantParams(params: Params | undefined, tenantId: string, source?: TenantContext['source']): QueueTenantParams;
|
|
21
|
+
export declare function runWithSessionQueueTenantScope<T>(options: SessionQueueTenantScopeOptions, work: (params: QueueTenantParams) => Promise<T>): Promise<T | undefined>;
|
|
22
|
+
export declare function deferWithSessionQueueTenantScope(options: SessionQueueTenantScopeOptions, work: (params: QueueTenantParams) => Promise<void>, onError?: (error: unknown) => void): void;
|
|
23
|
+
export {};
|
|
24
|
+
//# sourceMappingURL=session-queue-tenant-scope.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-queue-tenant-scope.d.ts","sourceRoot":"","sources":["../../src/utils/session-queue-tenant-scope.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAA6B,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EAA8B,KAAK,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAC1F,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAY,MAAM,kBAAkB,CAAC;AAMnF,KAAK,iBAAiB,GAAG,MAAM,GAAG;IAChC,MAAM,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,WAAW,GAAG,QAAQ,CAAC,CAAC;CACtD,CAAC;AAEF,MAAM,WAAW,8BAA8B;IAC7C,EAAE,EAAE,wBAAwB,CAAC;IAC7B,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;CACf;AAYD,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,QAAQ,EAAE,MAAM,EAChB,MAAM,GAAE,aAAa,CAAC,QAAQ,CAAc,GAC3C,iBAAiB,CAUnB;AAED,wBAAsB,8BAA8B,CAAC,CAAC,EACpD,OAAO,EAAE,8BAA8B,EACvC,IAAI,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,OAAO,CAAC,CAAC,CAAC,GAC9C,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAwBxB;AAED,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,8BAA8B,EACvC,IAAI,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,OAAO,CAAC,IAAI,CAAC,EAClD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GACjC,IAAI,CAiCN"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
// src/utils/session-queue-tenant-scope.ts
|
|
2
|
+
import { resolveMultiTenancyConfig as resolveMultiTenancyConfig2 } from "@agor/core/config";
|
|
3
|
+
import { runWithTenantDatabaseScope as runWithTenantDatabaseScope2 } from "@agor/core/db";
|
|
4
|
+
|
|
5
|
+
// src/utils/tenant-db-scope.ts
|
|
6
|
+
import {
|
|
7
|
+
resolveMultiTenancyConfig,
|
|
8
|
+
resolveTenantContext,
|
|
9
|
+
TenantResolutionError
|
|
10
|
+
} from "@agor/core/config";
|
|
11
|
+
import {
|
|
12
|
+
enqueueTenantDatabasePostCommitCallback,
|
|
13
|
+
getCurrentTenantId,
|
|
14
|
+
runWithoutTenantDatabaseScope,
|
|
15
|
+
runWithTenantDatabaseScope
|
|
16
|
+
} from "@agor/core/db";
|
|
17
|
+
import { NotAuthenticated } from "@agor/core/feathers";
|
|
18
|
+
import jwt2 from "jsonwebtoken";
|
|
19
|
+
|
|
20
|
+
// src/auth/runtime-tokens.ts
|
|
21
|
+
import jwt from "jsonwebtoken";
|
|
22
|
+
|
|
23
|
+
// src/utils/tenant-db-scope.ts
|
|
24
|
+
function resolveTenantIdForDeferredScope(params) {
|
|
25
|
+
const scopedParams = params;
|
|
26
|
+
return scopedParams?.tenant?.tenant_id ?? getCurrentTenantId();
|
|
27
|
+
}
|
|
28
|
+
function deferWithTenantDatabaseScope(db, params, work, onError) {
|
|
29
|
+
const tenantId = resolveTenantIdForDeferredScope(params);
|
|
30
|
+
if (!tenantId) {
|
|
31
|
+
const error = new Error("Missing tenant context for deferred tenant-scoped work");
|
|
32
|
+
if (onError) {
|
|
33
|
+
onError(error);
|
|
34
|
+
} else {
|
|
35
|
+
console.error("[tenant-db-scope] Deferred tenant-scoped work skipped:", error);
|
|
36
|
+
}
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
const schedule = () => {
|
|
40
|
+
runWithoutTenantDatabaseScope(() => {
|
|
41
|
+
setImmediate(() => {
|
|
42
|
+
void runWithTenantDatabaseScope(db, tenantId, work).catch((error) => {
|
|
43
|
+
if (onError) {
|
|
44
|
+
onError(error);
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
console.error("[tenant-db-scope] Deferred tenant-scoped work failed:", error);
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
};
|
|
52
|
+
if (enqueueTenantDatabasePostCommitCallback(async () => schedule())) {
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
schedule();
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
// src/utils/session-queue-tenant-scope.ts
|
|
59
|
+
function staticTenantId(config) {
|
|
60
|
+
const multiTenancy = resolveMultiTenancyConfig2(config);
|
|
61
|
+
return multiTenancy.mode === "static" ? multiTenancy.static_tenant_id : void 0;
|
|
62
|
+
}
|
|
63
|
+
function trustedTenantIdHint(options) {
|
|
64
|
+
const hint = options.tenantIdHint?.trim();
|
|
65
|
+
return hint || void 0;
|
|
66
|
+
}
|
|
67
|
+
function queueTenantParams(params, tenantId, source = "explicit") {
|
|
68
|
+
const currentTenant = params?.tenant;
|
|
69
|
+
return {
|
|
70
|
+
...params ?? {},
|
|
71
|
+
tenant: {
|
|
72
|
+
...currentTenant,
|
|
73
|
+
tenant_id: tenantId,
|
|
74
|
+
source: currentTenant?.source ?? source
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
async function runWithSessionQueueTenantScope(options, work) {
|
|
79
|
+
const capturedTenantId = resolveTenantIdForDeferredScope(options.params);
|
|
80
|
+
if (capturedTenantId) {
|
|
81
|
+
const scopedParams2 = queueTenantParams(options.params, capturedTenantId, "explicit");
|
|
82
|
+
return runWithTenantDatabaseScope2(options.db, capturedTenantId, () => work(scopedParams2));
|
|
83
|
+
}
|
|
84
|
+
const tenantIdHint = trustedTenantIdHint(options);
|
|
85
|
+
if (tenantIdHint) {
|
|
86
|
+
const scopedParams2 = queueTenantParams(options.params, tenantIdHint, "explicit");
|
|
87
|
+
return runWithTenantDatabaseScope2(options.db, tenantIdHint, () => work(scopedParams2));
|
|
88
|
+
}
|
|
89
|
+
const configuredStaticTenantId = staticTenantId(options.config);
|
|
90
|
+
if (!configuredStaticTenantId) {
|
|
91
|
+
console.error(
|
|
92
|
+
`\u274C [Queue] ${options.label} skipped for session ${options.sessionId}: missing tenant context`
|
|
93
|
+
);
|
|
94
|
+
return void 0;
|
|
95
|
+
}
|
|
96
|
+
const scopedParams = queueTenantParams(options.params, configuredStaticTenantId, "static");
|
|
97
|
+
return runWithTenantDatabaseScope2(options.db, configuredStaticTenantId, () => work(scopedParams));
|
|
98
|
+
}
|
|
99
|
+
function deferWithSessionQueueTenantScope(options, work, onError) {
|
|
100
|
+
const handleError = (error) => {
|
|
101
|
+
if (onError) {
|
|
102
|
+
onError(error);
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
console.error(`\u274C [Queue] ${options.label} failed:`, error);
|
|
106
|
+
};
|
|
107
|
+
const capturedTenantId = resolveTenantIdForDeferredScope(options.params);
|
|
108
|
+
if (capturedTenantId) {
|
|
109
|
+
const scopedParams2 = queueTenantParams(options.params, capturedTenantId, "explicit");
|
|
110
|
+
deferWithTenantDatabaseScope(options.db, scopedParams2, () => work(scopedParams2), handleError);
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
const tenantIdHint = trustedTenantIdHint(options);
|
|
114
|
+
if (tenantIdHint) {
|
|
115
|
+
const scopedParams2 = queueTenantParams(options.params, tenantIdHint, "explicit");
|
|
116
|
+
deferWithTenantDatabaseScope(options.db, scopedParams2, () => work(scopedParams2), handleError);
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
const configuredStaticTenantId = staticTenantId(options.config);
|
|
120
|
+
if (!configuredStaticTenantId) {
|
|
121
|
+
handleError(
|
|
122
|
+
new Error(`${options.label} skipped for session ${options.sessionId}: missing tenant context`)
|
|
123
|
+
);
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
const scopedParams = queueTenantParams(options.params, configuredStaticTenantId, "static");
|
|
127
|
+
deferWithTenantDatabaseScope(options.db, scopedParams, () => work(scopedParams), handleError);
|
|
128
|
+
}
|
|
129
|
+
export {
|
|
130
|
+
deferWithSessionQueueTenantScope,
|
|
131
|
+
queueTenantParams,
|
|
132
|
+
runWithSessionQueueTenantScope
|
|
133
|
+
};
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* gateway_token widget — registry entry and registration.
|
|
3
|
+
*
|
|
4
|
+
* Concrete widget type: an admin supplies a gateway channel's platform
|
|
5
|
+
* credentials (Slack bot/app tokens, GitHub private key, Teams app password)
|
|
6
|
+
* through an inline form. The values flow browser → daemon via
|
|
7
|
+
* `POST /widgets/:widget_id/submit` and land in the channel's encrypted
|
|
8
|
+
* `config` through the gateway-channels service — never through the agent's
|
|
9
|
+
* MCP context. Setting a channel's tokens is admin-only, so `applySubmit`
|
|
10
|
+
* gates on `ROLES.ADMIN` before touching anything.
|
|
11
|
+
*
|
|
12
|
+
* See §4 + §7 of `docs/internal/in-conversation-widgets-design-2026-05-19.md`.
|
|
13
|
+
*/
|
|
14
|
+
import { type ChannelType, type SlackTestResult } from '@agor/core/types';
|
|
15
|
+
import { z } from 'zod';
|
|
16
|
+
import { type WidgetRegistryEntry } from '../registry.js';
|
|
17
|
+
export declare function isSupportedGatewayTokenChannelType(channelType: string): boolean;
|
|
18
|
+
/**
|
|
19
|
+
* Agent-provided params (validated when the MCP tool fires). All non-secret:
|
|
20
|
+
* the channel identity, its type/name, and the field NAMES to collect. Stored
|
|
21
|
+
* at `metadata.widget.params` on the widget message row.
|
|
22
|
+
*/
|
|
23
|
+
export declare const gatewayTokenParamsSchema: z.ZodObject<{
|
|
24
|
+
gatewayChannelId: z.ZodString;
|
|
25
|
+
channelType: z.ZodEnum<{
|
|
26
|
+
slack: "slack";
|
|
27
|
+
discord: "discord";
|
|
28
|
+
whatsapp: "whatsapp";
|
|
29
|
+
telegram: "telegram";
|
|
30
|
+
github: "github";
|
|
31
|
+
teams: "teams";
|
|
32
|
+
}>;
|
|
33
|
+
channelName: z.ZodString;
|
|
34
|
+
fields: z.ZodArray<z.ZodEnum<{
|
|
35
|
+
app_token: "app_token";
|
|
36
|
+
private_key: "private_key";
|
|
37
|
+
app_password: "app_password";
|
|
38
|
+
bot_token: "bot_token";
|
|
39
|
+
signing_secret: "signing_secret";
|
|
40
|
+
webhook_secret: "webhook_secret";
|
|
41
|
+
}>>;
|
|
42
|
+
reason: z.ZodString;
|
|
43
|
+
}, z.core.$strict>;
|
|
44
|
+
export type GatewayTokenParams = z.infer<typeof gatewayTokenParamsSchema>;
|
|
45
|
+
/**
|
|
46
|
+
* Browser → daemon submit payload. Direct HTTP, never reaches the agent. The
|
|
47
|
+
* keys are constrained to the sensitive field names; the values are the raw
|
|
48
|
+
* credentials that get encrypted by the gateway-channels service.
|
|
49
|
+
*/
|
|
50
|
+
export declare const gatewayTokenSubmitSchema: z.ZodObject<{
|
|
51
|
+
tokens: z.ZodRecord<z.ZodEnum<{
|
|
52
|
+
app_token: "app_token";
|
|
53
|
+
private_key: "private_key";
|
|
54
|
+
app_password: "app_password";
|
|
55
|
+
bot_token: "bot_token";
|
|
56
|
+
signing_secret: "signing_secret";
|
|
57
|
+
webhook_secret: "webhook_secret";
|
|
58
|
+
}> & z.core.$partial, z.ZodString>;
|
|
59
|
+
}, z.core.$strict>;
|
|
60
|
+
export type GatewayTokenSubmit = z.infer<typeof gatewayTokenSubmitSchema>;
|
|
61
|
+
/**
|
|
62
|
+
* Sanitized post-resolution data written to the message row and fed into the
|
|
63
|
+
* auto-resume prompt. Carries the channel identity, which fields were set, and
|
|
64
|
+
* the enable/test outcome — but NEVER a token value, prefix, length, or
|
|
65
|
+
* last-four.
|
|
66
|
+
*/
|
|
67
|
+
export interface GatewayTokenResultMeta {
|
|
68
|
+
channelId: string;
|
|
69
|
+
channelName: string;
|
|
70
|
+
channelType: ChannelType;
|
|
71
|
+
fieldsSet: string[];
|
|
72
|
+
enabled: boolean;
|
|
73
|
+
/**
|
|
74
|
+
* True when the tokens were saved but the channel type has no probe, so the
|
|
75
|
+
* credentials could NOT be validated and the channel was left disabled
|
|
76
|
+
* pending manual confirmation. Distinct from an enable-blocking hard failure.
|
|
77
|
+
*/
|
|
78
|
+
unverified: boolean;
|
|
79
|
+
test: {
|
|
80
|
+
ok: boolean;
|
|
81
|
+
summary: string;
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Decide whether the probe result permits enabling the channel, a `status`
|
|
86
|
+
* discriminator, and a short human summary. Three outcomes:
|
|
87
|
+
* - `failed` (enable:false) — a hard credential failure (bad token) or an
|
|
88
|
+
* unbuildable connector (`config` capability — malformed config).
|
|
89
|
+
* - `unverifiable` (enable:false) — the channel type has no probe at all
|
|
90
|
+
* (`connector` capability); tokens are saved but the channel stays disabled
|
|
91
|
+
* until the credentials are confirmed manually, never enabled off an unrun
|
|
92
|
+
* probe.
|
|
93
|
+
* - `verified` (enable:true) — the probe ran and surfaced no hard failure;
|
|
94
|
+
* the credentials are usable even if more setup remains.
|
|
95
|
+
*
|
|
96
|
+
* `appTokenExpected` is Socket-Mode / inbound intent for THIS channel (the
|
|
97
|
+
* widget collected an app_token, i.e. `getRequiredSecretFields` asked for it).
|
|
98
|
+
* When true, a missing/failed app-level token is ALSO a hard blocker: the
|
|
99
|
+
* listener requires it (`hasListeningConfig` in services/gateway.ts), so an
|
|
100
|
+
* enabled inbound channel without a working app_token could never receive
|
|
101
|
+
* messages. When false (outbound-only — send via bot_token, no listener), the
|
|
102
|
+
* Slack probe still emits an `app_token` capability failure / `appTokenValid:
|
|
103
|
+
* false` because no app token exists, but that must NOT block enabling — the
|
|
104
|
+
* channel does not use Socket Mode.
|
|
105
|
+
*/
|
|
106
|
+
export declare function classifyGatewayTokenTest(result: SlackTestResult, appTokenExpected: boolean): {
|
|
107
|
+
enable: boolean;
|
|
108
|
+
status: 'verified' | 'unverifiable' | 'failed';
|
|
109
|
+
summary: string;
|
|
110
|
+
};
|
|
111
|
+
export declare const gatewayTokenWidget: WidgetRegistryEntry<GatewayTokenParams, GatewayTokenSubmit, GatewayTokenResultMeta>;
|
|
112
|
+
/** Idempotent registration helper, safe to call at every daemon boot. */
|
|
113
|
+
export declare function registerGatewayTokenWidget(): void;
|
|
114
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/widgets/gateway-token/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EACL,KAAK,WAAW,EAIhB,KAAK,eAAe,EAErB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAkB,KAAK,mBAAmB,EAAwB,MAAM,gBAAgB,CAAC;AAahG,wBAAgB,kCAAkC,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAE/E;AASD;;;;GAIG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;kBA+B1B,CAAC;AAEZ,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E;;;;GAIG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;kBAY1B,CAAC;AAEZ,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E;;;;;GAKG;AACH,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,WAAW,CAAC;IACzB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB;;;;OAIG;IACH,UAAU,EAAE,OAAO,CAAC;IACpB,IAAI,EAAE;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CACxC;AAoCD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,eAAe,EACvB,gBAAgB,EAAE,OAAO,GACxB;IACD,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,UAAU,GAAG,cAAc,GAAG,QAAQ,CAAC;IAC/C,OAAO,EAAE,MAAM,CAAC;CACjB,CAkDA;AAiID,eAAO,MAAM,kBAAkB,EAAE,mBAAmB,CAClD,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,CA+CvB,CAAC;AAEF,yEAAyE;AACzE,wBAAgB,0BAA0B,IAAI,IAAI,CAEjD"}
|