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,13 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/AppNode-BhuMpn8O.js","assets/rolldown-runtime--c01j_DQ.js","assets/sandpack-C58bwfIS.js","assets/antd-DT5ackd0.js","assets/editor-DQIG-JYZ.js","assets/sandpackDefaults-Bkga8XAE.js","assets/reactflow-Cubtnk8i.js","assets/reactflow-8hax8RNO.css","assets/ArtifactNode-BzQcrwFS.js","assets/index-DTz1Dif6.js","assets/src-DAeyG22O.js","assets/__vite-browser-external-BBPYNvOp.js","assets/streamdown-BdAVfkeF.js","assets/particles-CT8hcJOA.js","assets/index-qkT7Qqm2.css","assets/ArtifactConsentModal-oMMzRn8L.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{o as e}from"./rolldown-runtime--c01j_DQ.js";import{$ as t,$n as n,$t as r,An as i,Bn as a,Bt as o,Cn as s,Ct as c,E as l,En as u,Et as d,Ft as f,G as p,Gn as m,Hn as h,Ht as g,In as _,Kn as v,Kt as y,Ln as b,Lt as x,M as S,On as C,Ot as w,Pn as T,Q as E,Qn as D,R as O,Rn as k,Rt as A,S as j,Sn as M,St as ee,Tn as N,U as P,Un as F,Vn as te,Wn as I,Xn as ne,Xt as L,Y as R,Yn as z,Zn as re,_ as ie,_t as B,b as ae,cn as oe,dn as se,dt as ce,fn as V,g as le,hn as ue,ht as de,in as fe,ir as pe,it as me,j as he,k as ge,kn as H,kt as U,l as W,ln as _e,lt as ve,m as ye,mt as be,n as G,nn as K,nt as q,on as xe,p as Se,pt as Ce,rn as we,sn as J,st as Te,tn as Ee,ut as De,vn as Oe,vt as ke,wt as Ae,xn as je,xt as Me,yt as Ne,zt as Y}from"./antd-DT5ackd0.js";import{A as Pe,F as Fe,M as Ie,N as Le,O as Re,P as ze,j as Be,nt as Ve,q as He,rt as Ue,tt as We}from"./src-DAeyG22O.js";import{c as Ge}from"./sandpack-C58bwfIS.js";import{N as Ke}from"./editor-DQIG-JYZ.js";import{a as qe,d as Je,f as Ye,i as Xe,l as Ze,n as Qe,p as $e,r as et}from"./reactflow-Cubtnk8i.js";import{At as tt,Bn as nt,Ct as rt,Dt as it,En as at,F as ot,Ft as X,Gn as st,Gt as ct,H as lt,Ht as ut,I as dt,J as ft,Jt as pt,K as mt,M as ht,Mn as gt,N as _t,Nn as vt,Nt as yt,Ot as bt,P as xt,Pn as St,Rn as Ct,S as wt,St as Tt,Tn as Z,Tt as Et,Un as Dt,Ut as Ot,Wn as kt,Wt as At,X as jt,Y as Mt,bn as Nt,bt as Pt,c as Ft,cn as It,et as Lt,fn as Rt,g as zt,gn as Bt,ht as Vt,in as Ht,it as Ut,jn as Wt,kt as Gt,l as Kt,mn as qt,nn as Jt,pn as Yt,q as Xt,rn as Zt,sn as Qt,st as $t,tn as en,un as tn,vn as nn,wn as rn,y as an}from"./index-DTz1Dif6.js";import{n as on,t as sn}from"./ThemeSwitcher-D9HgT37l.js";import{i as cn,o as ln,r as un,s as dn,t as fn}from"./BoardObjectNodes-DdKWv_ZT.js";import{t as pn}from"./AutocompleteTextarea-Dau-V_30.js";var Q=e(pe(),1),$=Ke(),mn=(0,Q.createContext)(void 0),hn=({children:e,value:t})=>(0,$.jsx)(mn.Provider,{value:t,children:e}),gn=()=>{let e=(0,Q.useContext)(mn);if(!e)throw Error(`useAppActions must be used within an AppActionsProvider`);return e},{Text:_n}=f,{useToken:vn}=Y,yn=8,bn=({boards:e,currentBoardId:t,onBoardChange:n,onHomeClick:r,branchById:a})=>{let{token:o}=vn(),[c,l]=(0,Q.useState)(``),[u,d]=(0,Q.useState)(!1),f=e.find(e=>e.board_id===t),p=(0,Q.useMemo)(()=>{let t=new Map;e.forEach(e=>{t.set(e.board_id,0)});for(let e of a.values())e.board_id&&t.set(e.board_id,(t.get(e.board_id)||0)+1);return t},[e,a]),m=e.length>=yn,g=(0,Q.useCallback)(()=>{d(!1),l(``)},[]),_=(0,Q.useCallback)(()=>{r?.(),g()},[g,r]),v=(0,Q.useCallback)(e=>{n(e),g()},[n,g]),y=(0,Q.useMemo)(()=>{let n=e.filter(e=>!e.archived).sort((e,t)=>e.name.localeCompare(t.name,void 0,{sensitivity:`base`})),r=c?n.filter(e=>e.name.toLowerCase().includes(c.toLowerCase())):n;return m&&r.length===0?[{key:`__empty__`,label:(0,$.jsx)(_n,{type:`secondary`,style:{fontStyle:`italic`},children:`No boards found`}),disabled:!0}]:r.map(e=>{let n=p.get(e.board_id)||0,r=e.board_id===t;return{key:e.board_id,label:(0,$.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`space-between`,minWidth:250,padding:`4px 0`},children:[(0,$.jsxs)(V,{size:8,children:[(0,$.jsx)(`span`,{style:{fontSize:18},children:e.icon||`📋`}),(0,$.jsx)(_n,{strong:r,children:e.name})]}),(0,$.jsx)(T,{count:n,showZero:!0,style:{backgroundColor:r?o.colorPrimary:o.colorBgTextHover}})]}),onClick:()=>v(e.board_id)}})},[e,t,p,v,o,c,m]),b=(0,$.jsxs)(i,{type:`text`,onClick:_,style:{width:`100%`,height:38,padding:`4px 12px`,display:`flex`,alignItems:`center`,justifyContent:`space-between`,background:t?void 0:o.colorFillSecondary,borderRadius:o.borderRadiusSM},children:[(0,$.jsxs)(V,{size:8,children:[(0,$.jsx)(`span`,{style:{fontSize:18},children:`🏠`}),(0,$.jsx)(_n,{strong:!t,children:`Home`})]}),(0,$.jsx)(R,{style:{color:o.colorTextTertiary}})]});return(0,$.jsx)(se,{menu:{items:y},trigger:[`click`],placement:`bottomLeft`,open:u,onOpenChange:e=>{d(e),e||l(``)},popupRender:e=>(0,$.jsxs)(`div`,{style:{backgroundColor:o.colorBgElevated,borderRadius:o.borderRadiusLG,boxShadow:o.boxShadowSecondary,minWidth:290},children:[(0,$.jsxs)(`div`,{style:{position:`sticky`,top:0,zIndex:1,padding:`8px 8px 0`,background:o.colorBgElevated,borderTopLeftRadius:o.borderRadiusLG,borderTopRightRadius:o.borderRadiusLG},children:[b,(0,$.jsx)(s,{style:{margin:`8px 0 0`}})]}),m&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`div`,{style:{padding:`8px 12px`},children:(0,$.jsx)(we,{placeholder:`Filter boards...`,prefix:(0,$.jsx)(te,{style:{color:o.colorTextQuaternary}}),value:c,onChange:e=>l(e.target.value),size:`small`,allowClear:!0,autoFocus:!0,"aria-label":`Filter boards`})}),(0,$.jsx)(s,{style:{margin:0}})]}),(0,$.jsx)(`div`,{style:{maxHeight:`calc(100vh - 240px)`,overflowY:`auto`},children:e})]}),children:(0,$.jsxs)(i,{type:`text`,style:{width:`100%`,height:`auto`,padding:`8px 12px`,textAlign:`left`,display:`flex`,alignItems:`center`,justifyContent:`space-between`},children:[(0,$.jsxs)(V,{size:8,children:[(0,$.jsx)(`span`,{style:{fontSize:18},children:f?f.icon||`📋`:`🏠`}),(0,$.jsx)(_n,{strong:!0,children:f?.name||`Home`})]}),(0,$.jsx)(h,{style:{fontSize:12,color:o.colorTextSecondary}})]})})},xn=2e4,Sn=1e4,Cn=6e4,wn=3e3,Tn=({tooltip:e,icon:t,color:n,onClick:r,children:i})=>(0,$.jsx)(k,{title:e,placement:`bottom`,children:(0,$.jsx)(St,{icon:t,color:n,onClick:r,style:{margin:0,display:`flex`,alignItems:`center`,cursor:r?`pointer`:`default`},children:(0,$.jsx)(V,{size:4,children:i})})}),En=({connected:e,connecting:t,onRetry:r})=>{let{outOfSync:i,capturedSha:a,currentSha:o}=Ot(),s=(0,Q.useRef)(null),[c,l]=(0,Q.useState)(null),[u,d]=(0,Q.useState)(null),[f,p]=(0,Q.useState)(!1),[,m]=(0,Q.useState)(0);return(0,Q.useEffect)(()=>{if(!t)return;let e=setInterval(()=>m(e=>e+1),1e3);return()=>clearInterval(e)},[t]),(0,Q.useEffect)(()=>{if(t){if(s.current===null){let e=Date.now();s.current=e,l(e)}return}if(e&&s.current!==null){let e=Date.now()-s.current;s.current=null,l(null),e>=Sn?d(Date.now()):p(!0)}},[t,e]),(0,Q.useEffect)(()=>{if(!f)return;let e=setTimeout(()=>p(!1),wn);return()=>clearTimeout(e)},[f]),(0,Q.useEffect)(()=>{if(u===null)return;let e=setTimeout(()=>d(null),Cn);return()=>clearTimeout(e)},[u]),i?(0,$.jsx)(Tn,{tooltip:a&&o?`Daemon was upgraded from ${a} to ${o} since this tab loaded. Click to reload and pick up the latest UI. Anything unsaved (form text, etc.) will be lost.`:`Backend was updated — click to reload for the latest UI. Anything unsaved will be lost.`,icon:(0,$.jsx)(L,{}),color:`warning`,onClick:()=>window.location.reload(),children:(0,$.jsx)(`span`,{children:`Out of sync — refresh`})}):t&&c!==null&&Date.now()-c>=xn?(0,$.jsx)(Tn,{tooltip:`Can't reconnect to the daemon. Click to reload the page — anything unsaved will be lost.`,icon:(0,$.jsx)(L,{}),color:`error`,onClick:()=>window.location.reload(),children:(0,$.jsx)(`span`,{children:`Can't reconnect — reload`})}):!e&&!t?(0,$.jsx)(Tn,{tooltip:`Connection lost. Click to retry connection.`,icon:(0,$.jsx)(G,{}),color:`error`,onClick:r,children:(0,$.jsx)(`span`,{children:`Disconnected`})}):t?(0,$.jsx)(Tn,{tooltip:`Reconnecting to daemon… Click to retry immediately.`,icon:(0,$.jsx)(ne,{spin:!0}),color:`warning`,onClick:r,children:(0,$.jsx)(`span`,{children:`Reconnecting`})}):u===null?f?(0,$.jsx)(Tn,{tooltip:`Connected to daemon`,icon:(0,$.jsx)(Me,{}),color:`success`,children:(0,$.jsx)(`span`,{children:`Connected`})}):null:(0,$.jsxs)(Tn,{tooltip:`You were disconnected long enough that some data may be stale. Click to reload, or × to dismiss.`,icon:(0,$.jsx)(L,{}),color:`warning`,onClick:()=>window.location.reload(),children:[(0,$.jsx)(`span`,{children:`Reconnected — refresh?`}),(0,$.jsx)(n,{"aria-label":`Dismiss`,onClick:e=>{e.stopPropagation(),d(null)},style:{fontSize:10,opacity:.7}})]})},{Text:Dn}=f,On=({result:e,selected:t,onClick:n,onHover:r,rowId:i,tokens:a=[]})=>{let{token:o}=Y.useToken(),{title:s,tag:c,secondary:l,time:u,icon:d}=kn(e);return(0,$.jsxs)(`button`,{type:`button`,onClick:n,onMouseEnter:r,"aria-label":s,role:`option`,"aria-selected":t,id:i,style:{display:`flex`,alignItems:`flex-start`,gap:12,width:`100%`,padding:`4px 12px`,border:`none`,background:t?o.colorBgTextHover:`transparent`,cursor:`pointer`,textAlign:`left`,borderRadius:o.borderRadiusSM},children:[d&&(0,$.jsx)(`span`,{style:{fontSize:18,lineHeight:`20px`,flexShrink:0},children:d}),(0,$.jsxs)(`div`,{style:{flex:1,minWidth:0},children:[(0,$.jsxs)(`div`,{style:{display:`flex`,alignItems:`baseline`,gap:8,width:`100%`},children:[(0,$.jsx)(Dn,{strong:!0,style:{flex:1,minWidth:0,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:(0,$.jsx)(Tt,{text:s,terms:a})}),c&&(0,$.jsx)(Dn,{type:`secondary`,style:{fontSize:12,whiteSpace:`nowrap`,flexShrink:0},children:(0,$.jsx)(Tt,{text:c,terms:a})}),u&&(0,$.jsx)(Dn,{type:`secondary`,style:{fontSize:12,whiteSpace:`nowrap`,flexShrink:0},children:u})]}),l&&(0,$.jsx)(Dn,{type:`secondary`,style:{display:`block`,fontSize:12,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:(0,$.jsx)(Tt,{text:l,terms:a})})]})]})};function kn(e){switch(e.type){case`session`:return{title:Mt(e.item,{includeAgentFallback:!0}),tag:e.item.agentic_tool,secondary:e.parentBranch?`in ${e.parentBranch.name}`:void 0,time:Pt(e.item.last_updated)};case`branch`:return{title:e.item.name,tag:e.item.ref,time:Pt(e.item.updated_at)};case`assistant`:{let t=Ve(e.item);return{icon:t?.emoji,title:t?.displayName??e.item.name,time:Pt(e.item.updated_at)}}case`artifact`:return{title:e.item.name,tag:e.item.template,secondary:e.parentBranch?`in ${e.parentBranch.name}`:void 0,time:Pt(e.item.updated_at)};case`board`:return{icon:e.item.icon,title:e.item.name,time:Pt(e.item.last_updated)};case`mcp`:return{title:e.item.display_name||e.item.name,tag:e.item.transport,secondary:e.item.description}}}var An=[`session`,`branch`,`assistant`,`artifact`,`board`,`mcp`],jn=[`all`,`session`,`branch`,`assistant`,`artifact`,`board`,`mcp`],Mn={all:`All`,session:`Session`,branch:`Branch`,assistant:`Assistant`,artifact:`Artifact`,board:`Board`,mcp:`MCP`},Nn={session:`Sessions`,branch:`Branches`,assistant:`Assistants`,artifact:`Artifacts`,board:`Boards`,mcp:`MCP`},Pn={session:[],branch:[],assistant:[],artifact:[],board:[],mcp:[]},Fn={session:0,branch:0,assistant:0,artifact:0,board:0,mcp:0};function In(e){if(!e)return 0;if(e instanceof Date)return e.getTime();let t=Date.parse(e);return Number.isNaN(t)?0:t}function Ln(e){return(t,n)=>In(e(n))-In(e(t))}function Rn(e){return An.some(t=>e[t].length>0)}function zn(e){return An.flatMap(t=>e[t])}function Bn(e){return An.reduce((t,n)=>t+e[n],0)}function Vn(e){let t=new Map,n=0;for(let r of An)t.set(r,n),n+=e[r].length;return t}var{Text:Hn}=f,Un={session:(0,$.jsx)(O,{}),branch:(0,$.jsx)(c,{}),assistant:(0,$.jsx)(l,{}),artifact:(0,$.jsx)(De,{}),board:(0,$.jsx)(w,{}),mcp:(0,$.jsx)(U,{})},Wn=({query:e,results:t,hasAnyResults:n,recents:r,hasAnyRecents:i,selectedIndex:a,onResultClick:o,onResultHover:s})=>{let{token:c}=Y.useToken(),l=e.length===0,u=l?r:t,d=(0,Q.useMemo)(()=>l?[]:st(e),[l,e]),f=(0,Q.useMemo)(()=>Vn(u),[u]);return(0,$.jsx)(`div`,{role:`listbox`,id:Jn,style:{flex:1,minHeight:0,overflowY:`auto`,padding:`2px 0`},children:l&&!i?(0,$.jsx)(Kn,{text:`Recent items you've created will show up here.`,token:c}):!l&&!n?(0,$.jsx)(Kn,{text:`No matches for "${e}"`,token:c}):An.map(e=>{let t=u[e];if(t.length===0)return null;let n=f.get(e)??0;return(0,$.jsx)(Gn,{title:Nn[e],icon:Un[e],token:c,children:t.map((e,t)=>{let r=n+t;return(0,$.jsx)(On,{rowId:Yn(e),result:e,selected:r===a,onClick:()=>o(e),onHover:()=>s(r),tokens:d},qn(e))})},e)})})},Gn=({title:e,icon:t,token:n,children:r})=>(0,$.jsxs)(`div`,{style:{padding:`2px 0`},children:[(0,$.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:6,padding:`2px 16px 1px`,fontSize:11,textTransform:`uppercase`,letterSpacing:.5,color:n.colorTextTertiary},children:[t,e]}),r]}),Kn=({text:e,token:t})=>(0,$.jsx)(`div`,{style:{padding:`24px 16px`,textAlign:`center`},children:(0,$.jsx)(Hn,{type:`secondary`,style:{fontSize:13,color:t.colorTextSecondary},children:e})});function qn(e){switch(e.type){case`session`:return`session-${e.item.session_id}`;case`branch`:case`assistant`:return`${e.type}-${e.item.branch_id}`;case`artifact`:return`artifact-${e.item.artifact_id}`;case`board`:return`board-${e.item.board_id}`;case`mcp`:return`mcp-${e.item.mcp_server_id}`}}var Jn=`global-search-listbox`;function Yn(e){return`global-search-row-${qn(e)}`}var Xn=({activeChip:e,onChipChange:t,ownedByMe:n,onOwnedByMeToggle:r,counts:i})=>{let{token:a}=Y.useToken(),s=i?Bn(i):0,c=!!i&&s>0;return(0,$.jsxs)(`div`,{style:{padding:`6px 12px`,borderBottom:`1px solid ${a.colorBorderSecondary}`},children:[(0,$.jsx)(M,{size:`small`,value:e,onChange:e=>t(e),options:jn.map(t=>({label:(0,$.jsx)(Zn,{label:Mn[t],count:c?t===`all`?s:i?.[t]??0:void 0,isActive:e===t,token:a}),value:t})),style:{marginBottom:4,fontSize:12},"aria-label":`Filter by entity type`}),(0,$.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`space-between`,gap:8},children:[(0,$.jsxs)(`label`,{htmlFor:`global-search-created-by-me`,style:{display:`inline-flex`,alignItems:`center`,gap:6,fontSize:12,cursor:`pointer`,userSelect:`none`},children:[(0,$.jsx)(y,{id:`global-search-created-by-me`,size:`small`,checked:n,onChange:r,"aria-label":`Created by me`}),`Created by me`]}),(0,$.jsx)(k,{title:`Global search is in beta — some click targets are still stubs (e.g. MCP opens Settings) and message-content search isn't wired up yet. Expect rough edges.`,placement:`bottom`,children:(0,$.jsx)(o,{color:`orange`,style:{fontSize:10,lineHeight:`16px`,padding:`0 6px`,margin:0,cursor:`help`,userSelect:`none`},children:`BETA`})})]})]})},Zn=({label:e,count:t,isActive:n,token:r})=>(0,$.jsxs)(`span`,{style:{display:`inline-flex`,alignItems:`center`,gap:4},children:[e,t!==void 0&&(0,$.jsx)(o,{style:{margin:0,padding:`0 5px`,fontSize:10,lineHeight:`14px`,border:`none`,background:n?r.colorFillSecondary:r.colorFillTertiary,color:r.colorTextSecondary},children:t})]});function Qn({query:e,ownedByMe:t,activeTypeChip:n,currentUserId:r,sessionById:i,branchById:a,artifactById:o,boardById:s,mcpServerById:c}){let[l,u]=(0,Q.useState)(e);(0,Q.useEffect)(()=>{let t=setTimeout(()=>u(e),220);return()=>clearTimeout(t)},[e]);let d=(0,Q.useCallback)(()=>u(e),[e]),{results:f,counts:p}=(0,Q.useMemo)(()=>{let e=l.trim();if(e.length<2)return{results:Pn,counts:Fn};let u=st(e);if(u.length===0)return{results:Pn,counts:Fn};let d=e=>n===e?15:5,f=e=>n===`all`||n===e,p=Array.from(i.values()).filter(e=>!t||e.created_by===r).filter(e=>kt(u,Dt.session(e))).sort(Ln(e=>e.last_updated)),m=Array.from(a.values()).filter(e=>!t||e.created_by===r).filter(e=>kt(u,Dt.branch(e))).sort(Ln(e=>e.updated_at)),h=m.filter(e=>!Ue(e)),g=m.filter(e=>Ue(e)),_=Array.from(o.values()).filter(e=>!e.archived).filter(e=>!t||e.created_by===r).filter(e=>kt(u,Dt.artifact(e))).sort(Ln(e=>e.updated_at)),v=Array.from(s.values()).filter(e=>!e.archived).filter(e=>!t||e.created_by===r).filter(e=>kt(u,Dt.board(e))).sort(Ln(e=>e.last_updated)),y=Array.from(c.values()).filter(e=>!t||e.owner_user_id===r).filter(e=>kt(u,Dt.mcp(e))).sort(Ln(e=>e.updated_at)),b={session:p.length,branch:h.length,assistant:g.length,artifact:_.length,board:v.length,mcp:y.length};return{results:{session:f(`session`)?p.slice(0,d(`session`)).map(e=>({type:`session`,item:e,parentBranch:a.get(e.branch_id)})):[],branch:f(`branch`)?h.slice(0,d(`branch`)).map(e=>({type:`branch`,item:e})):[],assistant:f(`assistant`)?g.slice(0,d(`assistant`)).map(e=>({type:`assistant`,item:e})):[],artifact:f(`artifact`)?_.slice(0,d(`artifact`)).map(e=>({type:`artifact`,item:e,parentBranch:e.branch_id?a.get(e.branch_id):void 0})):[],board:f(`board`)?v.slice(0,d(`board`)).map(e=>({type:`board`,item:e})):[],mcp:f(`mcp`)?y.slice(0,d(`mcp`)).map(e=>({type:`mcp`,item:e})):[]},counts:b}},[l,t,n,r,i,a,o,s,c]);return{results:f,counts:p,hasAnyResults:Rn(f),debouncedQuery:l,flush:d}}function $n({currentUserId:e,sessionById:t,branchById:n,artifactById:r,boardById:i,mcpServerById:a}){return(0,Q.useMemo)(()=>{if(!e)return Pn;let o=Array.from(t.values()).filter(t=>t.created_by===e).sort(Ln(e=>e.last_updated)).slice(0,3),s=Array.from(n.values()).filter(t=>t.created_by===e).sort(Ln(e=>e.updated_at)),c=s.filter(e=>!Ue(e)).slice(0,3),l=s.filter(e=>Ue(e)).slice(0,3),u=Array.from(r.values()).filter(e=>!e.archived).filter(t=>t.created_by===e).sort(Ln(e=>e.updated_at)).slice(0,3),d=Array.from(i.values()).filter(e=>!e.archived).filter(t=>t.created_by===e).sort(Ln(e=>e.last_updated)).slice(0,3),f=Array.from(a.values()).filter(t=>t.owner_user_id===e).sort(Ln(e=>e.updated_at)).slice(0,3);return{session:o.map(e=>({type:`session`,item:e,parentBranch:n.get(e.branch_id)})),branch:c.map(e=>({type:`branch`,item:e})),assistant:l.map(e=>({type:`assistant`,item:e})),artifact:u.map(e=>({type:`artifact`,item:e,parentBranch:e.branch_id?n.get(e.branch_id):void 0})),board:d.map(e=>({type:`board`,item:e})),mcp:f.map(e=>({type:`mcp`,item:e}))}},[e,t,n,r,i,a])}var er=260,tr=({currentUserId:e,sessionById:t,branchById:r,artifactById:a,boardById:o,mcpServerById:s,onSettingsClick:c})=>{let{token:l}=Y.useToken(),u=(0,Q.useRef)(null),d=(0,Q.useRef)(null),[f,p]=(0,Q.useState)(``),[m,h]=(0,Q.useState)(!1),[g,_]=(0,Q.useState)(`all`),[v,y]=(0,Q.useState)(!0),[b,x]=(0,Q.useState)(0),S=zt({boardById:o,sessionById:t,branchById:r,artifactById:a}),{results:C,counts:w,hasAnyResults:T,debouncedQuery:E,flush:D}=Qn({query:f,ownedByMe:v,activeTypeChip:g,currentUserId:e,sessionById:t,branchById:r,artifactById:a,boardById:o,mcpServerById:s}),O=$n({currentUserId:e,sessionById:t,branchById:r,artifactById:a,boardById:o,mcpServerById:s}),k=Rn(O),A=f.trim().length<2,j=A?``:E.trim(),M=(0,Q.useMemo)(()=>zn(A?O:C),[A,O,C]);(0,Q.useEffect)(()=>{x(e=>Math.min(Math.max(e,0),Math.max(M.length-1,0)))},[M.length]),(0,Q.useEffect)(()=>{if(!m)return;let e=M[b];e&&document.getElementById(Yn(e))?.scrollIntoView({block:`nearest`})},[b,M,m]),(0,Q.useEffect)(()=>{let e=e=>{(e.metaKey||e.ctrlKey)&&(e.key===`k`||e.key===`K`)&&(e.preventDefault(),u.current?.focus(),h(!0))};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[]),(0,Q.useEffect)(()=>{if(!m)return;let e=e=>{d.current?.contains(e.target)||h(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[m]);let ee=(0,Q.useCallback)(e=>{switch(e.type){case`board`:S.goToBoard(e.item.board_id);break;case`branch`:case`assistant`:S.goToBranch(e.item.branch_id);break;case`session`:S.goToSession(e.item.session_id);break;case`artifact`:S.goToArtifact(e.item.artifact_id);break;case`mcp`:c?.();break}h(!1),p(``)},[S,c]),N=(0,Q.useCallback)(()=>{h(!1),p(``),u.current?.blur()},[]);return(0,$.jsxs)(`div`,{ref:d,style:{position:`relative`,width:er},children:[(0,$.jsx)(we.Search,{ref:u,placeholder:`Search… ⌘K`,value:f,onChange:e=>{p(e.target.value),h(!0),x(0)},onFocus:()=>h(!0),onKeyDown:e=>{if(e.key===`Escape`){e.preventDefault(),f?p(``):(h(!1),u.current?.blur());return}if(e.key===`ArrowDown`){e.preventDefault(),x(e=>Math.min(e+1,Math.max(M.length-1,0)));return}if(e.key===`ArrowUp`){e.preventDefault(),x(e=>Math.max(e-1,0));return}},onSearch:e=>{if(e.trim()!==E.trim()){D();return}let t=M[b];t&&ee(t)},allowClear:!0,"aria-label":`Global search`,"aria-autocomplete":`list`,"aria-expanded":m,"aria-controls":Jn,"aria-activedescendant":m&&M[b]?Yn(M[b]):void 0,role:`combobox`,style:{width:`100%`}}),m&&(0,$.jsxs)(`div`,{style:{position:`absolute`,top:`100%`,right:0,width:600,maxHeight:`85vh`,display:`flex`,flexDirection:`column`,marginTop:4,background:l.colorBgElevated,border:`1px solid ${l.colorBorderSecondary}`,borderRadius:l.borderRadiusLG,boxShadow:l.boxShadowSecondary,zIndex:1e3},children:[(0,$.jsx)(i,{type:`text`,size:`small`,icon:(0,$.jsx)(n,{}),onClick:N,"aria-label":`Close search`,style:{position:`absolute`,top:4,right:4,width:24,height:24,minWidth:24,padding:0,color:l.colorTextTertiary,zIndex:1}}),(0,$.jsx)(Xn,{activeChip:g,onChipChange:e=>{_(e),x(0)},ownedByMe:v,onOwnedByMeToggle:()=>{y(e=>!e),x(0)},counts:A?void 0:w}),(0,$.jsx)(Wn,{query:j,results:C,hasAnyResults:T,recents:O,hasAnyRecents:k,selectedIndex:b,onResultClick:ee,onResultHover:x})]})]})},nr={CURSOR_EMIT_THROTTLE_MS:100,FACEPILE_REFRESH_MS:1e4,CURSOR_HIDE_AFTER_MS:5e3,ACTIVE_USER_TIMEOUT_MS:300*1e3,TYPING_TIMEOUT_MS:3e3};function rr(e){let{client:t,boardId:n,users:r,enabled:i=!0,globalPresence:a=!1,presenceMinUpdateIntervalMs:o=0}=e,s=(0,Q.useRef)(r);s.current=r;let[c,l]=(0,Q.useState)(new Map),[u,d]=(0,Q.useState)(new Map);(0,Q.useEffect)(()=>{if(!i||!t?.io){l(new Map),d(new Map);return}if(!a&&!n){l(new Map),d(new Map);return}let e=e=>{if(n&&e.boardId===n){let t={x:e.x,y:e.y,timestamp:e.timestamp};l(n=>{let r=n.get(e.userId);if(r&&e.timestamp<r.timestamp||r&&r.x===t.x&&r.y===t.y&&r.timestamp===t.timestamp)return n;let i=new Map(n);return i.set(e.userId,t),i})}if(!a&&e.boardId===n){let t={boardId:e.boardId,x:e.x,y:e.y,timestamp:e.timestamp};d(n=>{let r=n.get(e.userId);if(r&&e.timestamp<r.timestamp||r&&r.boardId===t.boardId&&o>0&&e.timestamp-r.timestamp<o||r&&r.boardId===t.boardId&&r.x===t.x&&r.y===t.y&&r.timestamp===t.timestamp)return n;let i=new Map(n);return i.set(e.userId,t),i})}},r=e=>{if(!a)return;let t={boardId:e.boardId,timestamp:e.timestamp};d(n=>{let r=n.get(e.userId);if(r&&e.timestamp<r.timestamp||r&&r.boardId===t.boardId&&o>0&&e.timestamp-r.timestamp<o||r&&r.boardId===t.boardId&&r.timestamp===t.timestamp)return n;let i=new Map(n);return i.set(e.userId,t),i})},s=e=>{n&&e.boardId===n&&l(t=>{if(!t.has(e.userId))return t;let n=new Map(t);return n.delete(e.userId),n}),!a&&e.boardId===n&&d(t=>{if(!t.has(e.userId))return t;let n=new Map(t);return n.delete(e.userId),n})};t.io.on(`cursor-moved`,e),t.io.on(`presence-updated`,r),t.io.on(`cursor-left`,s);let c=setInterval(()=>{l(e=>{if(e.size===0)return e;let t=Date.now(),n=!1;for(let[r,i]of e.entries())if(t-i.timestamp>nr.CURSOR_HIDE_AFTER_MS){n=!0;break}if(!n)return e;let r=new Map(e);for(let[n,i]of e.entries())t-i.timestamp>nr.CURSOR_HIDE_AFTER_MS&&r.delete(n);return r})},5e3),u=setInterval(()=>{d(e=>{if(e.size===0)return e;let t=Date.now(),n=!1;for(let[r,i]of e.entries())if(t-i.timestamp>nr.ACTIVE_USER_TIMEOUT_MS){n=!0;break}if(!n)return e;let r=new Map(e);for(let[n,i]of e.entries())t-i.timestamp>nr.ACTIVE_USER_TIMEOUT_MS&&r.delete(n);return r})},3e4);return()=>{t.io.off(`cursor-moved`,e),t.io.off(`presence-updated`,r),t.io.off(`cursor-left`,s),clearInterval(c),clearInterval(u)}},[t,n,i,a,o]);let{activeUsers:f,remoteCursors:p}=(0,Q.useMemo)(()=>{let e=[],t=new Map;for(let[t,n]of u.entries()){let r=s.current.find(e=>e.user_id===t);r&&e.push({user:r,lastSeen:n.timestamp,boardId:n.boardId,cursor:typeof n.x==`number`&&typeof n.y==`number`?{x:n.x,y:n.y}:void 0})}for(let[e,n]of c.entries()){let r=s.current.find(t=>t.user_id===e);r&&t.set(e,{x:n.x,y:n.y,user:r,timestamp:n.timestamp})}return{activeUsers:e,remoteCursors:t}},[u,c]);return{activeUsers:f,remoteCursors:p}}var ir=({activeUsers:e,maxVisible:t=5,onUserClick:n,boardById:r,style:i})=>{let{token:a}=Y.useToken(),o=e.slice(0,t),s=e.slice(t),c=s.length;return e.length===0?null:(0,$.jsxs)(`div`,{className:`facepile`,style:i,children:[o.map(({user:e,cursor:t,boardId:i})=>{let a=i&&r?r.get(i):null,o=a?.name||`Unknown Board`,s=a?.icon||`📋`,c=n&&i;return(0,$.jsx)(k,{title:(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`div`,{children:e.name||e.email}),i&&(0,$.jsxs)(`div`,{style:{fontSize:`11px`,opacity:.7,marginTop:`4px`},children:[s,` `,o]}),c&&(0,$.jsx)(`div`,{style:{fontSize:`11px`,opacity:.7,marginTop:`4px`},children:`Click to go to board`})]}),children:(0,$.jsx)(`span`,{children:(0,$.jsx)(Xt,{user:e,style:{cursor:c?`pointer`:`default`},onClick:()=>{c&&n(e.user_id,i,t)}})})},e.user_id)}),c>0&&(0,$.jsx)(k,{title:(0,$.jsx)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:6},children:s.map(({user:e})=>(0,$.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:6},children:[(0,$.jsx)(Xt,{user:e,size:20,fontSize:`16px`}),(0,$.jsx)(`span`,{children:e.name||e.email})]},e.user_id))}),children:(0,$.jsx)(`span`,{children:(0,$.jsxs)(_,{shape:`square`,size:40,style:{borderRadius:ft(40),backgroundColor:a.colorPrimaryBg,color:a.colorText,fontSize:12,fontWeight:`bold`},children:[`+`,c]})})})]})},ar=({client:e,currentBoardId:t,users:n,currentUser:r,boardById:i,onUserClick:a,staticActiveUsers:o,maxVisible:c=5})=>{let{activeUsers:l}=rr({client:e,boardId:t??null,users:n,enabled:!!e&&!o,globalPresence:!0,presenceMinUpdateIntervalMs:nr.FACEPILE_REFRESH_MS}),u=(0,Q.useMemo)(()=>o||(r?[{user:r,lastSeen:Date.now(),boardId:t??void 0,cursor:void 0},...l.filter(e=>e.user.user_id!==r.user_id)]:l),[l,t,r,o]);return u.length===0?null:(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(ir,{activeUsers:u,currentUserId:r?.user_id,maxVisible:c,boardById:i,onUserClick:a,style:{marginRight:8}}),(0,$.jsx)(s,{orientation:`vertical`,style:{height:32,margin:`0 8px`}})]})},{Header:or}=K,sr=({recentBoards:e,onBoardChange:t,token:n})=>e.length===0?null:(0,$.jsx)(V,{size:4,children:e.map(e=>(0,$.jsx)(k,{title:e.name,placement:`bottom`,children:(0,$.jsx)(i,{type:`text`,size:`small`,"aria-label":`Switch to board ${e.name}`,onClick:()=>t(e.board_id),style:{width:30,height:30,minWidth:30,padding:0,borderRadius:`50%`,display:`flex`,alignItems:`center`,justifyContent:`center`,fontSize:16,border:`1px solid ${n.colorBorderSecondary}`,background:n.colorBgElevated},children:e.icon||`📋`})},e.board_id))}),cr=(0,Q.memo)(({user:e,presenceClient:t=null,currentUserId:n,staticActiveUsers:r,presenceMaxVisible:a,connected:c=!1,connecting:l=!1,onCommentsClick:u,onEventStreamClick:d,onSettingsClick:f,onUserSettingsClick:p,onThemeEditorClick:m,onLogout:h,onRetryConnection:g,currentBoardName:_,currentBoardIcon:v,unreadCommentsCount:y=0,eventStreamEnabled:x=!1,hasUserMentions:S=!1,currentBoardId:C,onBoardChange:w,onHomeClick:E,onUserClick:D,instanceLabel:O,instanceDescription:A})=>{let{token:j}=Y.useToken(),M=nt(),N=Ct(`/knowledge`),P=Nt(Ht),F=Nt(nn),te=Nt(Qt),I=Nt(qt),ne=Nt(Zt),L=Nt(Rt),R=(0,Q.useMemo)(()=>rt(P),[P]),z=(0,Q.useMemo)(()=>rt(F),[F]),{recentBoards:re}=Gt(R,C??``),ie=ut(),se={display:`flex`,alignItems:`center`,justifyContent:`center`};return(0,$.jsxs)(or,{style:{display:`flex`,alignItems:`center`,justifyContent:`space-between`,padding:`0 24px`,background:j.colorBgContainer,borderBottom:`1px solid ${j.colorBorderSecondary}`},children:[(0,$.jsxs)(V,{size:16,align:`center`,children:[(0,$.jsxs)(`button`,{type:`button`,"aria-label":`Go to Home`,onClick:E,style:{height:54,padding:0,display:`flex`,alignItems:`center`,gap:10,background:`transparent`,border:0,cursor:`pointer`},children:[(0,$.jsx)(`img`,{src:at(),alt:Z.name,style:{height:50,borderRadius:`50%`,objectFit:`cover`,display:`block`}}),(0,$.jsx)(rn,{level:3,style:{marginTop:-6}})]}),O&&(A?(0,$.jsx)(b,{content:(0,$.jsx)(`div`,{style:{maxWidth:400},children:(0,$.jsx)(xt,{content:A})}),title:O,trigger:`hover`,placement:`bottomLeft`,children:(0,$.jsx)(o,{color:`cyan`,style:{cursor:`help`,marginLeft:8},children:O})}):(0,$.jsx)(o,{color:`cyan`,style:{marginLeft:8},children:O})),(0,$.jsx)(s,{orientation:`vertical`,style:{height:32,margin:`0 8px`}}),(0,$.jsx)(`div`,{style:{minWidth:200},children:(0,$.jsx)(bn,{boards:R,currentBoardId:C,onBoardChange:w||(()=>{}),onHomeClick:E,branchById:te})}),R.length>0&&(0,$.jsx)(sr,{recentBoards:re,onBoardChange:w||(()=>{}),token:j}),_&&(0,$.jsx)(T,{count:y,offset:[-2,2],style:{backgroundColor:S?j.colorError:j.colorPrimaryBgHover},className:`app-header-icon-badge`,children:(0,$.jsx)(k,{title:`Show comments tab`,placement:`bottom`,children:(0,$.jsx)(i,{type:`text`,icon:(0,$.jsx)(B,{style:{fontSize:j.fontSizeLG}}),style:se,onClick:u,disabled:ie})})})]}),(0,$.jsxs)(V,{children:[(0,$.jsx)(En,{connected:c,connecting:l,onRetry:g}),(0,$.jsx)(ar,{client:t,currentBoardId:C||null,users:z,currentUser:e,boardById:P,onUserClick:D,staticActiveUsers:r,maxVisible:a}),(0,$.jsx)(tr,{currentUserId:n,sessionById:I,branchById:te,artifactById:ne,boardById:P,mcpServerById:L,onSettingsClick:f}),(0,$.jsx)(s,{orientation:`vertical`,style:{height:32,margin:`0 8px`}}),x&&(0,$.jsx)(k,{title:`Live Event Stream`,placement:`bottom`,children:(0,$.jsx)(i,{type:`text`,icon:(0,$.jsx)(U,{style:{fontSize:j.fontSizeLG}}),style:se,onClick:d,disabled:ie})}),(0,$.jsx)(k,{title:`Knowledge`,placement:`bottom`,children:(0,$.jsx)(i,{type:`text`,icon:(0,$.jsx)(ee,{style:{fontSize:j.fontSizeLG}}),style:se,href:N,"aria-label":`Knowledge`,onClick:e=>{e.defaultPrevented||e.button!==0||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||(e.preventDefault(),M(`/knowledge`))}})}),(0,$.jsx)(k,{title:`Documentation`,placement:`bottom`,children:(0,$.jsx)(i,{type:`text`,icon:(0,$.jsx)(oe,{style:{fontSize:j.fontSizeLG}}),style:se,href:`https://agor.live/guide/getting-started`,target:`_blank`,rel:`noopener noreferrer`})}),(0,$.jsx)(sn,{onOpenThemeEditor:m}),(0,$.jsx)(k,{title:`Settings`,placement:`bottom`,children:(0,$.jsx)(i,{type:`text`,icon:(0,$.jsx)(ae,{style:{fontSize:j.fontSizeLG}}),style:se,onClick:f,disabled:ie})}),(0,$.jsx)(on,{user:e,disabled:ie,onUserSettingsClick:p,onLogout:h})]})]})}),lr=`drag-handle`,ur=`.${lr}`,dr=`nodrag`;function fr({repo:e,branch:t,onEdit:n,onStartEnvironment:r,onStopEnvironment:a,onNukeEnvironment:o,onViewLogs:s,canControlEnvironment:c,connectionDisabled:l=!1,showNukeEnvironment:u=!0}){let{token:d}=Y.useToken(),f=yt(),p=Kt(e),m=p.hasConfig,h=t.environment_instance,g=c??!0,_=g?void 0:`Requires branch 'all' permission or admin access`,v=t.app_url;if(!m)return(0,$.jsx)(k,{title:`Click to configure environment (optional)`,children:(0,$.jsx)(St,{color:`default`,style:{cursor:`pointer`,userSelect:`none`,opacity:.6},onClick:e=>{e.stopPropagation(),n?.()},children:(0,$.jsxs)(V,{size:4,children:[(0,$.jsx)(E,{style:{fontSize:12}}),(0,$.jsx)(`span`,{style:{fontFamily:d.fontFamilyCode},children:`env`}),(0,$.jsx)(x,{style:{fontSize:12}})]})})});let y=lt(h),b=()=>{switch(y){case`stopped`:return(0,$.jsx)(ye,{style:{color:d.colorTextDisabled,fontSize:12}});case`starting`:case`stopping`:return(0,$.jsx)(Ee,{size:`small`,style:{display:`inline-flex`,alignItems:`center`,fontSize:12}});case`healthy`:return(0,$.jsx)(Me,{style:{color:d.colorSuccess,fontSize:12}});case`unhealthy`:return(0,$.jsx)(G,{style:{color:d.colorWarning,fontSize:12}});case`running`:return(0,$.jsx)(Me,{style:{color:d.colorInfo,fontSize:12}});case`error`:return(0,$.jsx)(Ne,{style:{color:d.colorError,fontSize:12}});default:return(0,$.jsx)(ye,{style:{color:d.colorTextDisabled,fontSize:12}})}},C=e=>{e.stopPropagation(),n?.()},w=h?.status||`stopped`,T=w===`running`,D=w===`starting`,O=w===`stopping`,A=w===`running`||w===`starting`,j=l||!g||!m||!r||D||O||T,M=l||!g||!m||!a||O||!A;return(0,$.jsx)(St,{color:(()=>{switch(y){case`healthy`:return`green`;case`unhealthy`:return`orange`;case`running`:return`blue`;case`starting`:case`stopping`:return`blue`;case`error`:return`red`;default:return`default`}})(),style:{userSelect:`none`,padding:0,overflow:`hidden`,lineHeight:`20px`,display:`inline-flex`,alignItems:`stretch`},children:(0,$.jsxs)(V,{size:0,style:{width:`100%`,display:`inline-flex`,alignItems:`center`},orientation:`horizontal`,children:[h?.status===`running`&&v?(0,$.jsx)(k,{title:`Open environment - ${v}`,children:(0,$.jsx)(`a`,{href:v,target:`_blank`,rel:`noopener noreferrer`,onClick:e=>e.stopPropagation(),style:{display:`inline-flex`,alignItems:`center`,color:`inherit`,padding:`0 7px`,textDecoration:`none`,height:`22px`},children:(0,$.jsxs)(V,{size:4,align:`center`,children:[b(),(0,$.jsx)(`span`,{style:{fontFamily:d.fontFamilyCode,lineHeight:1},children:`env`})]})})}):(0,$.jsx)(k,{title:(()=>{if(!m)return`Click to configure environment`;let e=h?.last_health_check,t=e?.message?` - ${e.message}`:``;switch(y){case`healthy`:return v?`Healthy - ${v}${t}`:`Healthy${t}`;case`unhealthy`:return v?`Unhealthy - ${v}${t}`:`Unhealthy - check failed${t}`;case`running`:return v?`Running - ${v} (health check not configured)`:`Running (health check not configured)`;case`starting`:return v?`Starting... - ${v}`:`Starting...`;case`stopping`:return`Stopping...`;case`error`:return`Failed to start - click to configure`;default:return`Stopped - click to configure`}})(),children:(0,$.jsx)(`div`,{style:{padding:`0 7px`,height:`22px`,display:`inline-flex`,alignItems:`center`},children:(0,$.jsxs)(V,{size:4,align:`center`,children:[b(),(0,$.jsx)(`span`,{style:{fontFamily:d.fontFamilyCode,lineHeight:1},children:`env`})]})})}),(r||a)&&m&&(0,$.jsxs)(V,{size:2,style:{padding:`0 6px`,borderLeft:`1px solid rgba(255, 255, 255, 0.2)`,height:`22px`,display:`inline-flex`,alignItems:`center`},children:[r&&(0,$.jsx)(k,{title:_??(w===`running`?`Environment running`:`Start environment`),children:(0,$.jsx)(i,{type:`text`,size:`small`,"aria-label":`Start environment`,icon:(0,$.jsx)(S,{}),onClick:e=>{e.stopPropagation(),j||r(t.branch_id)},disabled:j,style:{height:22,width:22,minWidth:22,padding:0}})}),a&&(0,$.jsx)(k,{title:_??(w===`running`?`Stop environment`:w===`starting`?`Stop environment (cancel startup)`:w===`stopping`?`Environment is stopping`:`Environment not running`),children:(0,$.jsx)(i,{type:`text`,size:`small`,"aria-label":`Stop environment`,icon:(0,$.jsx)(ye,{}),onClick:e=>{e.stopPropagation(),M||a(t.branch_id)},disabled:M,style:{height:22,width:22,minWidth:22,padding:0}})}),s&&(0,$.jsx)(k,{title:_??(p.logs?`View environment logs`:`Configure logs command to enable`),children:(0,$.jsx)(i,{type:`text`,size:`small`,"aria-label":`View environment logs`,icon:(0,$.jsx)(_e,{}),onClick:e=>{e.stopPropagation(),g&&p.logs&&s(t.branch_id)},disabled:!g||!p.logs,style:{height:22,width:22,minWidth:22,padding:0}})}),u&&o&&t.nuke_command&&(0,$.jsx)(k,{title:_??`Nuke environment (destructive - removes all data and volumes)`,children:(0,$.jsx)(i,{type:`text`,size:`small`,danger:!0,"aria-label":`Nuke environment`,icon:(0,$.jsx)(me,{}),onClick:e=>{e.stopPropagation(),g&&!l&&f(()=>o(t.branch_id))},disabled:l||!g,style:{height:22,width:22,minWidth:22,padding:0}})})]}),(0,$.jsx)(k,{title:`Configure environment`,children:(0,$.jsx)(i,{type:`text`,size:`small`,icon:(0,$.jsx)(x,{}),onClick:C,style:{padding:0,height:22,width:22,minWidth:22,borderLeft:`1px solid rgba(255, 255, 255, 0.2)`}})})]})})}function pr(e){if(!e)return 0;let t=Date.parse(e);return Number.isNaN(t)?0:t}function mr(e){return Math.max(pr(e.last_executor_heartbeat_at),pr(e.completed_at),pr(e.message_range?.end_timestamp),pr(e.started_at),pr(e.message_range?.start_timestamp),pr(e.created_at))}function hr(e,t){let n=e.status===Re.CREATED||Pe(e);if(n!==(t.status===Re.CREATED||Pe(t)))return n?1:-1;let r=e.status===Re.QUEUED;if(r!==(t.status===Re.QUEUED))return r?-1:1;let i=!!e.started_at||(e.message_range?.start_index??-1)>=0;if(i!==(!!t.started_at||(t.message_range?.start_index??-1)>=0))return i?1:-1;let a=mr(e)-mr(t);return a===0?e.created_at.localeCompare(t.created_at):a}function gr(e){let t=new Map;for(let n of e)t.set(n.task_id,n);return Array.from(t.values()).sort(hr).at(-1)||null}var _r=[],vr=new Map;function yr(e){return e instanceof Error&&e.message.includes(` is disposed`)}var br=Q.memo(({client:e,session:t,userById:n,currentUserId:r,branchName:a,enabled:o})=>{let{token:s}=Y.useToken(),{onPermissionDecision:c,onSendPrompt:l}=gn(),u=ut(),d=(0,Q.useRef)(null),f=(0,Q.useRef)(!1),p=(0,Q.useRef)(!1),m=(0,Q.useRef)(null),[h,g]=(0,Q.useState)(!1),[_,v]=(0,Q.useState)(``),y=t.session_id,{handle:b,state:x}=Et(e,y,{enabled:o,reactiveOptions:{taskHydration:`lazy`}}),S=x?.sessionId===y?x:null,C=S?.session||t,w=(0,Q.useMemo)(()=>S?gr([...S.tasks,...S.queuedTasks]):null,[S]),T=S?.streamingMessages||vr,E=dn(T),O=w?.task_id??null,k=!!O&&!!S?.loadedTaskIds.has(O),A=(0,Q.useCallback)(()=>{if(!d.current)return!0;let{scrollTop:e,scrollHeight:t,clientHeight:n}=d.current;return t-e-n<24},[]),j=(0,Q.useCallback)(()=>{d.current&&(d.current.scrollTop=d.current.scrollHeight)},[]),M=(0,Q.useCallback)(()=>{requestAnimationFrame(j)},[j]);(0,Q.useEffect)(()=>{f.current=!1,p.current=!1,m.current=null,M()},[M,O]),(0,Q.useEffect)(()=>{!o||f.current||M()},[T,o,M,w?.status]),(0,Q.useEffect)(()=>{!o||!O||!k||m.current!==O&&(m.current=O,f.current||M())},[o,M,O,k]),(0,Q.useEffect)(()=>{let e=d.current;if(!e||!o)return;let t=()=>{p.current=!0},n=()=>{if(A()){f.current=!1,p.current=!1;return}p.current&&(f.current=!0)};return e.addEventListener(`wheel`,t,{passive:!0}),e.addEventListener(`touchstart`,t,{passive:!0}),e.addEventListener(`pointerdown`,t),e.addEventListener(`scroll`,n,{passive:!0}),()=>{e.removeEventListener(`wheel`,t),e.removeEventListener(`touchstart`,t),e.removeEventListener(`pointerdown`,t),e.removeEventListener(`scroll`,n)}},[o,A]);let ee=(0,Q.useCallback)(()=>{},[]),N=(0,Q.useCallback)(e=>{if(b)return b.loadTaskMessages(e).then(()=>void 0).catch(e=>{if(!yr(e))throw e})},[b]),P=(0,Q.useCallback)(e=>{if(b)try{b.unloadTaskMessages(e)}catch(e){if(yr(e))return;throw e}},[b]);(0,Q.useEffect)(()=>{if(O)return()=>{P(O)}},[P,O]);let F=o&&(!S||S.loading&&!w),te=S?.error||null,ne=!!S?.terminal,L=_.trim(),R=!!l&&!u,z=C.permission_config?.mode,re=C.status===`running`?`Queue a prompt for this session…`:`Prompt this session…`,ie=(0,Q.useCallback)(async()=>{if(!(!l||!L||u))try{await l(C.session_id,L,z)!==!1&&v(``)}catch(e){console.error(`Failed to send prompt from task peek:`,e)}},[u,C.session_id,l,z,L]);return(0,$.jsxs)(`div`,{className:`nodrag`,children:[(0,$.jsx)(`div`,{ref:d,style:{height:360,overflowY:`auto`},children:te?(0,$.jsx)(D,{type:`error`,message:`Failed to load session task`,description:te,showIcon:!0,action:b&&S&&!ne?(0,$.jsx)(i,{size:`small`,loading:h,onClick:async()=>{g(!0);try{await b.resync()}finally{g(!1)}},children:`Reload`}):void 0}):F?(0,$.jsx)(`div`,{style:{display:`flex`,justifyContent:`center`,padding:s.sizeXL},children:(0,$.jsx)(Ee,{})}):w?w.status===Re.QUEUED?(0,$.jsx)(D,{type:`info`,showIcon:!0,message:`Latest task is queued`,description:w.full_prompt||`Waiting for the session to become available.`}):(0,$.jsx)(cn,{task:w,agentic_tool:C.agentic_tool,sessionModel:C.model_config?.model,userById:n,currentUserId:r,isExpanded:!0,onExpandChange:ee,sessionId:C.session_id,onPermissionDecision:c,branchName:a,scheduledFromBranch:C.scheduled_from_branch,scheduledRunAt:C.scheduled_run_at,streamingMessages:E.get(w.task_id),taskMessages:S?.messagesByTask.get(w.task_id)||_r,taskMessagesLoaded:!!S?.loadedTaskIds.has(w.task_id),onLoadTaskMessages:N,onUnloadTaskMessages:P,assistantEmoji:void 0,isLatestTask:!0,client:e}):(0,$.jsx)(I,{image:I.PRESENTED_IMAGE_SIMPLE,description:`No task output yet for this session`,style:{marginTop:s.sizeXL}})}),(0,$.jsxs)(`div`,{className:`nodrag nopan nowheel`,style:{display:`flex`,gap:s.sizeUnit,alignItems:`flex-end`,marginTop:s.sizeUnit},children:[(0,$.jsx)(`div`,{style:{flex:1,minWidth:0},children:(0,$.jsx)(we.TextArea,{value:_,onChange:e=>v(e.target.value),onKeyDown:e=>{e.key===`Enter`&&!e.shiftKey&&(e.preventDefault(),ie())},disabled:!R,placeholder:R?re:`Session prompting is unavailable…`,autoSize:{minRows:1,maxRows:4}})}),(0,$.jsx)(i,{type:`primary`,onClick:ie,disabled:!R||!L,children:`Prompt`})]})]})});br.displayName=`SessionLatestTaskPeek`;var xr=Q.memo(({client:e,sessions:t,userById:r,currentUserId:a,branchName:o,onCloseSession:s})=>{let{token:c}=Y.useToken();return t.length===0?null:(0,$.jsxs)(`div`,{className:`nodrag`,style:{marginTop:c.sizeSM},children:[(0,$.jsxs)(V,{size:6,align:`baseline`,style:{marginBottom:c.sizeXS},children:[(0,$.jsx)(f.Text,{strong:!0,children:`Peek`}),(0,$.jsxs)(f.Text,{type:`secondary`,style:{fontSize:12},children:[t.length,` session`,t.length===1?``:`s`]})]}),(0,$.jsx)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:c.sizeSM},children:t.map(t=>(0,$.jsxs)(`section`,{style:{borderTop:`1px solid ${c.colorBorderSecondary}`,paddingTop:c.sizeSM},children:[(0,$.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`space-between`,gap:c.sizeSM,marginBottom:c.sizeXS},children:[(0,$.jsxs)(V,{size:6,align:`center`,style:{minWidth:0},children:[(0,$.jsx)(vt,{tool:t.agentic_tool,size:16}),(0,$.jsx)(f.Text,{ellipsis:!0,style:{maxWidth:480,fontSize:12},children:Mt(t,{includeAgentFallback:!0})})]}),(0,$.jsx)(i,{className:`nodrag nopan`,type:`text`,size:`small`,icon:(0,$.jsx)(n,{}),onClick:()=>s(t.session_id),title:`Stop peeking this session`})]}),(0,$.jsx)(br,{client:e,session:t,userById:r,currentUserId:a,branchName:o,enabled:!0})]},t.session_id))})]})});xr.displayName=`BranchSessionPeekSection`;var Sr=`agor:session-sort`,Cr=[{value:`recent`,label:`Most recent`},{value:`oldest`,label:`Oldest first`},{value:`alpha`,label:`A–Z`}],wr={TITLE_EXACT:1e3,TITLE_STARTS:800,TITLE_PHRASE:600,TITLE_ALL_WORDS:400,TITLE_PARTIAL_WORDS:200,DESC_PHRASE:120,DESC_ALL_WORDS:80,DESC_PARTIAL_WORDS:40,TOOL_MATCH:30,STATUS_ACTIVE:20,STATUS_AWAITING:15,RECENCY_MAX:50};function Tr(e){return e.trim().toLowerCase()}function Er(e,t=1){return Ir(st(e).filter(e=>e.length>=t))}function Dr(e,t,n=Date.now()){let r=Tr(t);if(!r)return 0;let i=Er(r),a=(e.title||e.description||``).toLowerCase(),o=(e.description??``).toLowerCase(),s=e.agentic_tool.toLowerCase(),c=0;if(a===r)c+=wr.TITLE_EXACT;else if(a.startsWith(r))c+=wr.TITLE_STARTS;else if(a.includes(r))c+=wr.TITLE_PHRASE;else{let e=i.filter(e=>a.includes(e));e.length===i.length?c+=wr.TITLE_ALL_WORDS:e.length>0&&(c+=Math.round(wr.TITLE_PARTIAL_WORDS*(e.length/i.length)))}if(o&&o!==a)if(o.includes(r))c+=wr.DESC_PHRASE;else{let e=i.filter(e=>o.includes(e));e.length===i.length?c+=wr.DESC_ALL_WORDS:e.length>0&&(c+=Math.round(wr.DESC_PARTIAL_WORDS*(e.length/i.length)))}if(i.some(e=>s.includes(e))&&(c+=wr.TOOL_MATCH),c===0)return 0;let l=new Date(e.last_updated).getTime();if(Number.isFinite(l)){let e=Math.max(0,(n-l)/864e5);c+=Math.round(wr.RECENCY_MAX*Math.exp(-e))}return e.status===`running`||e.status===`stopping`?c+=wr.STATUS_ACTIVE:e.status===`awaiting_permission`&&(c+=wr.STATUS_AWAITING),c}function Or(e,t,n={}){let r=Tr(t);if(!kr(r))return[];let i=st(r);return e.filter(e=>kt(i,Dt.session(e))).map(e=>({session:e,score:Dr(e,r,n.now)})).filter(({score:e})=>e>0).sort((e,t)=>t.score-e.score||Nr(e.session,t.session))}function kr(e){return Tr(e).length>=2}function Ar(e,t){let n=Er(t);if(n.length===0)return!1;let r=e.agentic_tool.toLowerCase();return n.some(e=>r.includes(e))}function jr(e,t,n=60){if(!e||!t.trim())return null;let r=e.toLowerCase(),i=[Tr(t),...Er(t)].filter(Boolean),a=-1,o=0;for(let e of i.sort((e,t)=>t.length-e.length)){let t=r.indexOf(e);if(t!==-1){a=t,o=e.length;break}}if(a===-1)return null;let s=Math.max(0,a-n),c=Math.min(e.length,a+Math.max(o,10)+n),l=s>0?`…`:``,u=c<e.length?`…`:``;return`${l}${e.slice(s,c)}${u}`}function Mr(e,t){let n=[...e];switch(t){case`oldest`:return n.sort(Pr);case`alpha`:return n.sort(Fr);default:return n.sort(Nr)}}function Nr(e,t){return new Date(t.last_updated).getTime()-new Date(e.last_updated).getTime()}function Pr(e,t){return new Date(e.last_updated).getTime()-new Date(t.last_updated).getTime()}function Fr(e,t){return Mt(e,{includeAgentFallback:!0}).localeCompare(Mt(t,{includeAgentFallback:!0}),void 0,{sensitivity:`base`})}function Ir(e){let t=new Set,n=[];for(let r of e)t.has(r)||(t.add(r),n.push(r));return n}var{Text:Lr}=f,Rr=({ownerUserId:e,value:t,onChange:n,client:r,envVars:i,disabled:o,hideEmptyMessage:s})=>{let[c,l]=(0,Q.useState)(i),[u,d]=(0,Q.useState)(!1),[f,p]=(0,Q.useState)(null);(0,Q.useEffect)(()=>{if(i){l(i);return}if(!r||!e)return;let t=!1;return d(!0),p(null),(async()=>{try{let n=await r.service(`users`).get(e);t||l(n.env_vars??{})}catch(e){t||p(e instanceof Error?e.message:`Failed to load env vars`)}finally{t||d(!1)}})(),()=>{t=!0}},[r,e,i]);let m=(0,Q.useMemo)(()=>c?Object.entries(c).filter(([,e])=>e.scope===`session`).map(([e])=>e).sort():[],[c]);return f?(0,$.jsx)(D,{type:`error`,title:f}):!u&&m.length===0?s?null:(0,$.jsxs)(Lr,{type:`secondary`,children:[`No session-scope environment variables. Add some under `,(0,$.jsx)(`b`,{children:`User Settings → Env vars`}),` with scope = `,(0,$.jsx)(`b`,{children:`Session`}),`, then select them here to expose to this session's executor.`]}):(0,$.jsxs)(V,{orientation:`vertical`,size:`small`,style:{width:`100%`},children:[(0,$.jsx)(a,{mode:`multiple`,value:t,onChange:n,loading:u,disabled:o,placeholder:`Select session-scope env vars to export to this session`,options:m.map(e=>({value:e,label:e})),style:{width:`100%`}}),(0,$.jsx)(Lr,{type:`secondary`,style:{fontSize:12},children:`Global-scope vars are exported automatically. Only vars listed here (scope = session, set by the session's creator) are added to this session's executor process.`})]})},zr=({open:e,action:t,session:n,currentUser:i=null,mcpServerById:a=new Map,initialPrompt:o=``,onConfirm:s,onCancel:c,client:l,userById:u})=>{let[d]=J.useForm(),[p,m]=(0,Q.useState)(!1),[g,_]=(0,Q.useState)(`parent`),[y,b]=(0,Q.useState)(n?.agentic_tool||`claude-code`),[x,S]=(0,Q.useState)([]),C=(0,Q.useCallback)(e=>{let t=i?.default_agentic_config?.[e],r=e===n?.agentic_tool;return{agent:e,permissionMode:t?.permissionMode||(r?n?.permission_config?.mode:void 0)||Ie(e),modelConfig:t?.modelConfig??(r?n?.model_config:void 0),codexSandboxMode:t?.codexSandboxMode,codexApprovalPolicy:t?.codexApprovalPolicy,codexNetworkAccess:t?.codexNetworkAccess,mcpServerIds:t?.mcpServerIds||[]}},[i,n]);(0,Q.useEffect)(()=>{if(e&&n){_(`parent`),S([]);let e=n.agentic_tool||`claude-code`;d.setFieldsValue({prompt:o,enableCallback:n.callback_config?.enabled,includeLastMessage:n.callback_config?.include_last_message,includeOriginalPrompt:n.callback_config?.include_original_prompt}),b(e)}},[e,n,d,o]),(0,Q.useEffect)(()=>{if(!e||!n||g!==`custom`)return;let t=n.agentic_tool||`claude-code`;d.setFieldsValue(C(t)),b(t)},[e,n,g,d,C]);let w=async()=>{try{await d.validateFields()}catch(e){console.error(`Form validation failed:`,e);return}let e=d.getFieldsValue(!0),n=e.prompt?.trim();if(n){m(!0);try{if(t===`fork`)await s(n);else{let t={prompt:n};g===`custom`&&(t.agent=e.agent||y,t.permissionMode=e.permissionMode,t.modelConfig=e.modelConfig,t.codexSandboxMode=e.codexSandboxMode,t.codexApprovalPolicy=e.codexApprovalPolicy,t.codexNetworkAccess=e.codexNetworkAccess,t.mcpServerIds=e.mcpServerIds,t.extraInstructions=e.extraInstructions,t.envVarNames=x),e.enableCallback!==void 0&&(t.enableCallback=e.enableCallback),e.includeLastMessage!==void 0&&(t.includeLastMessage=e.includeLastMessage),e.includeOriginalPrompt!==void 0&&(t.includeOriginalPrompt=e.includeOriginalPrompt),await s(t)}d.resetFields(),c()}catch(e){console.error(`Failed to ${t} session — keeping modal open so prompt is preserved:`,e)}finally{m(!1)}}},T=()=>{d.resetFields(),c()},E=t===`fork`?`Fork`:`Spawn`,D=t===`fork`?`Create a sibling session to explore an alternative approach`:`Create a child session to work on a focused subsession`;return(0,$.jsxs)(r,{title:(0,$.jsx)(`div`,{children:(0,$.jsxs)(f.Text,{strong:!0,children:[E,` Session: `,n?.title||n?.description||`Untitled`]})}),open:e,onOk:w,onCancel:T,okText:`${E} Session`,confirmLoading:p,width:700,forceRender:!0,children:[(0,$.jsx)(`div`,{style:{marginBottom:16},children:(0,$.jsx)(f.Text,{type:`secondary`,style:{fontSize:13},children:D})}),(0,$.jsxs)(J,{form:d,layout:`vertical`,children:[(0,$.jsx)(J.Item,{name:`prompt`,label:`Prompt for ${t===`fork`?`forked`:`spawned`} session`,rules:[{required:!0,message:`Please enter a prompt`}],children:(0,$.jsx)(pn,{value:d.getFieldValue(`prompt`)||``,onChange:e=>d.setFieldValue(`prompt`,e),placeholder:t===`fork`?`Try a different approach by... (type @ for autocomplete)`:`Work on this subsession... (type @ for autocomplete)`,autoSize:{minRows:3,maxRows:8},client:l,sessionId:n?.session_id||null,userById:u,enableKnowledgeMentions:!0,kbLinkTarget:`absolute-route`})}),t===`spawn`&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(J.Item,{label:`Configuration`,children:(0,$.jsxs)(H.Group,{value:g,onChange:e=>_(e.target.value),buttonStyle:`solid`,children:[(0,$.jsx)(H.Button,{value:`parent`,children:`Same as parent`}),(0,$.jsx)(H.Button,{value:`custom`,children:`Custom config`})]})}),g===`custom`&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(J.Item,{name:`agent`,label:`Agent`,children:(0,$.jsx)(gt,{agents:Wt,selectedAgentId:y,onSelect:e=>{let t=e;b(t),d.setFieldsValue(C(t))},columns:2})}),(0,$.jsx)(v,{ghost:!0,destroyOnHidden:!1,expandIcon:({isActive:e})=>(0,$.jsx)(h,{rotate:e?180:0}),items:[{key:`agentic-tool-config`,label:(0,$.jsx)(f.Text,{strong:!0,children:`Agentic Tool Configuration`}),children:(0,$.jsx)(wt,{agenticTool:y,mcpServerById:a,showHelpText:!1})}]}),i&&l&&(0,$.jsx)(J.Item,{label:`Environment Variables`,style:{marginTop:16},children:(0,$.jsx)(Rr,{ownerUserId:i.user_id,client:l,value:x,onChange:S,hideEmptyMessage:!0})}),(0,$.jsx)(J.Item,{name:`extraInstructions`,label:`Extra Instructions (optional)`,help:`Append additional context or constraints to the spawn prompt`,style:{marginTop:16},children:(0,$.jsx)(pn,{value:d.getFieldValue(`extraInstructions`)||``,onChange:e=>d.setFieldValue(`extraInstructions`,e),placeholder:`e.g., "Only use safe operations", "Prioritize performance" (type @ for autocomplete)`,autoSize:{minRows:2,maxRows:4},client:l,sessionId:n?.session_id||null,userById:u,enableKnowledgeMentions:!0,kbLinkTarget:`absolute-route`})})]}),(0,$.jsxs)(`div`,{style:{marginTop:16,marginBottom:16},children:[(0,$.jsx)(f.Text,{strong:!0,children:`Callback Options`}),(0,$.jsx)(J.Item,{name:`enableCallback`,valuePropName:`checked`,style:{marginTop:8},children:(0,$.jsx)(N,{children:`Notify parent on completion`})}),(0,$.jsx)(J.Item,{noStyle:!0,shouldUpdate:(e,t)=>e.enableCallback!==t.enableCallback,children:({getFieldValue:e})=>e(`enableCallback`)&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(J.Item,{name:`includeLastMessage`,valuePropName:`checked`,style:{marginLeft:24},children:(0,$.jsx)(N,{children:`Include child's final result`})}),(0,$.jsx)(J.Item,{name:`includeOriginalPrompt`,valuePropName:`checked`,style:{marginLeft:24},children:(0,$.jsx)(N,{children:`Include original prompt`})})]})})]})]})]})]})},Br=({session:e,size:t=11})=>{let{token:n}=Y.useToken(),r=e.genealogy?.parent_session_id,i=e.genealogy?.forked_from_session_id;return i&&e.fork_origin===`btw`?(0,$.jsx)(k,{title:`Forked (btw) from ${He(i)}`,children:(0,$.jsx)(f.Text,{style:{fontSize:Math.round(t*.85),color:n.colorWarning,fontWeight:`bold`,whiteSpace:`nowrap`,flexShrink:0},children:`btw`})}):r?(0,$.jsx)(k,{title:`Spawned from ${He(r)}`,children:(0,$.jsx)(Se,{style:{fontSize:t,color:n.colorInfo,flexShrink:0}})}):i?(0,$.jsx)(k,{title:`Forked from ${He(i)}`,children:(0,$.jsx)(q,{style:{fontSize:t,color:n.colorWarning,flexShrink:0}})}):null},Vr=`Matched by title, description, and agent. Active and recently updated sessions rank higher within matches.`,Hr=({sort:e,onSortChange:t,compact:n=!1,stopPropagation:r=!1})=>{let{token:a}=Y.useToken();return(0,$.jsx)(se,{menu:{items:Cr.map(t=>({key:t.value,label:t.label,icon:e===t.value?(0,$.jsx)(F,{}):(0,$.jsx)(`span`,{style:{width:12,display:`inline-block`}})})),onClick:({key:e})=>t(e),selectedKeys:[e]},trigger:[`click`],children:(0,$.jsx)(i,{type:`text`,size:`small`,icon:e===`oldest`?(0,$.jsx)(ie,{}):(0,$.jsx)(le,{}),style:{flexShrink:0,padding:`0 6px`,color:a.colorTextSecondary,background:e===`recent`?void 0:a.colorFillSecondary,borderRadius:a.borderRadiusSM},onClick:e=>{r&&e.stopPropagation()},children:n?Gr(e):Kr(e)})})},Ur=({value:e,onChange:t,sort:n,onSortChange:r,searching:a=!1,placeholder:o=`Search sessions...`})=>{let{token:s}=Y.useToken();return(0,$.jsxs)(`div`,{style:{display:`flex`,gap:6,alignItems:`center`},children:[(0,$.jsx)(we,{style:{flex:1},placeholder:o,prefix:(0,$.jsx)(te,{}),value:e,onChange:e=>t(e.target.value),allowClear:!0}),(0,$.jsx)(`div`,{style:{flexShrink:0,minWidth:96,display:`flex`,justifyContent:`flex-end`},children:a?(0,$.jsx)(k,{title:Vr,placement:`topRight`,children:(0,$.jsx)(i,{type:`text`,size:`small`,icon:(0,$.jsx)(p,{style:{color:s.colorTextTertiary}}),style:{padding:`0 6px`,color:s.colorTextTertiary},children:`Relevance`})}):(0,$.jsx)(Hr,{sort:n,onSortChange:r,compact:!0})})]})},Wr=()=>{let{token:e}=Y.useToken();return(0,$.jsx)(k,{title:Vr,children:(0,$.jsx)(`span`,{style:{borderBottom:`1px dashed ${e.colorTextTertiary}`,cursor:`help`},children:`by relevance`})})};function Gr(e){return e===`alpha`?`A–Z`:e===`oldest`?`Oldest`:`Recent`}function Kr(e){return e===`alpha`?`A–Z`:e===`oldest`?`Oldest first`:`Most recent`}function qr(e){let t=new Map,n=new Map,r=[];for(let n of e)t.set(n.session_id,n);for(let i of e){let e=i.genealogy?.parent_session_id||i.genealogy?.forked_from_session_id;if(e&&t.has(e)){let t=n.get(e)||[];t.push(i),n.set(e,t)}else r.push(i)}function i(e,t=!1){let r=n.get(e.session_id)||[],a=`root`;e.remote_surrogate?a=`remote`:t||(e.genealogy?.parent_session_id?a=`spawn`:e.genealogy?.forked_from_session_id&&(a=`fork`));let o={key:e.session_id,title:``,session:e,relationshipType:a};return r.length>0&&(o.children=r.map(e=>i(e,!1))),o}return r.map(e=>i(e,!0))}var Jr=({sessionId:e,isArchiving:t,isPeeked:n=!1,onArchive:r,onSettings:a,onTogglePeek:o,onToggleCallback:s,onOpenRemoteParent:c,callbackToggle:l,remoteParentLink:u,children:f})=>{let[p,m]=(0,Q.useState)(!1),{token:h}=Y.useToken(),g={background:`${h.colorBgContainer}cc`,borderRadius:4,width:24,height:24,minWidth:24,display:`flex`,alignItems:`center`,justifyContent:`center`},_=n?{...g,color:h.colorPrimary,background:h.colorPrimaryBg}:g;return(0,$.jsxs)(`div`,{style:{position:`relative`,minWidth:0,width:`100%`},onMouseEnter:()=>m(!0),onMouseLeave:()=>m(!1),children:[f,(0,$.jsxs)(`div`,{style:{position:`absolute`,right:4,top:`50%`,transform:`translateY(-50%)`,opacity:+!!p,transition:`opacity 0.15s ease-in-out`,pointerEvents:p?`auto`:`none`,display:`flex`,gap:2,width:`fit-content`},children:[a&&(0,$.jsx)(k,{title:`Session settings`,children:(0,$.jsx)(i,{type:`text`,size:`small`,icon:(0,$.jsx)(ae,{}),onClick:t=>a(e,t),style:g})}),o&&(0,$.jsx)(k,{title:n?`Stop peeking at latest prompt`:`Peek at latest prompt`,children:(0,$.jsx)(i,{type:`text`,size:`small`,icon:(0,$.jsx)(fe,{}),onClick:t=>o(e,t),style:_})}),c&&u&&(0,$.jsx)(k,{title:u.tooltip,children:(0,$.jsx)(i,{type:`text`,size:`small`,disabled:u.disabled,icon:(0,$.jsx)(d,{}),onClick:t=>c(e,t),style:{...g,color:h.colorTextSecondary}})}),s&&l&&(0,$.jsx)(k,{title:l.tooltip,children:(0,$.jsx)(i,{type:`text`,size:`small`,disabled:l.disabled,icon:l.enabled?(0,$.jsx)(P,{}):(0,$.jsx)(de,{}),onClick:t=>s(e,t),style:{...g,color:l.enabled?h.colorPrimary:h.colorTextTertiary,background:l.enabled?h.colorPrimaryBg:g.background}})}),(0,$.jsx)(_t,{tooltip:`Archive session`,loading:t,onClick:t=>r(e,t),style:g})]})]})},Yr=({branch:e,sessions:t,userById:n,currentUserId:r,selectedSessionId:a,onSessionClick:o,onCreateSession:s,onForkSession:c,onSpawnSession:l,onOpenSessionSettings:u,peekedSessionIds:d,onTogglePeekSession:p,defaultExpanded:h=!0,mode:_=`card`,client:y})=>{let{token:b}=Y.useToken(),{modal:x}=m.useApp(),{showSuccess:S,showError:w}=X(),E=ut(),D=bt(`scheduler`),A=bt(`gateway`),{archiveSession:j}=it(y),[M,ee]=(0,Q.useState)({open:!1,action:`fork`,session:null}),[N,P]=(0,Q.useState)([]),[F,te]=(0,Q.useState)(new Set),[I,ne]=(0,Q.useState)(``),[L,R]=tt(Sr,`recent`),z=_===`panel`,ie=d??new Set,B=I.trim(),ae=kr(B),oe=(0,Q.useCallback)((e,t)=>{t.stopPropagation(),p?.(e)},[p]),se=(0,Q.useCallback)(e=>e.remote_surrogate?.relationship??e.remote_relationships?.as_target?.find(e=>e.relationship_type===`remote_create`),[]),ce=(0,Q.useCallback)(e=>{if(e.remote_surrogate)return;let n=e.remote_relationships?.as_target?.find(e=>e.relationship_type===`remote_create`)?.source_session_id;if(n)return n;let r=e.callback_config?.callback_session_id,i=r?t.find(e=>e.session_id===r):void 0;if(i&&i.branch_id!==e.branch_id)return r},[t]),le=(0,Q.useCallback)(e=>{let t=se(e);return e.callback_config?.callback_session_id??t?.callback_session_id??e.genealogy?.parent_session_id??e.remote_surrogate?.source_session_id},[se]),de=(0,Q.useCallback)(e=>{if(!le(e))return null;let t=se(e),n=e.callback_config?.enabled??t?.callback_enabled??!0;return{enabled:n,disabled:E||!y,tooltip:n?`Callbacks linked — click to stop callback notifications while keeping the relationship`:`Callbacks unlinked — click to resume callback notifications for this relationship`}},[y,E,se,le]),fe=(0,Q.useCallback)(async(e,n)=>{if(n.stopPropagation(),!y)return;let r=t.find(t=>t.session_id===e);if(!r)return;let i=le(r);if(!i)return;let a=!(de(r)?.enabled??!1);try{await y.service(`sessions`).patch(r.session_id,{callback_config:{...r.callback_config??{},callback_session_id:i,enabled:a}}),S(a?`Callbacks linked`:`Callbacks unlinked`)}catch(e){w(`Failed to update callbacks: ${e instanceof Error?e.message:String(e)}`)}},[y,le,de,t,w,S]),pe=(0,Q.useCallback)((e,n)=>{n.stopPropagation();let r=t.find(t=>t.session_id===e),i=r?ce(r):void 0;i&&o?.(i)},[ce,o,t]),me=async e=>{if(M.session)if(M.action===`fork`){let t=typeof e==`string`?e:e.prompt||``;await c?.(M.session.session_id,t)}else await l?.(M.session.session_id,e)},he=(0,Q.useCallback)((e,t)=>{t.stopPropagation(),x.confirm({title:`Archive session?`,content:`Are you sure you want to archive this session?`,okText:`Archive`,cancelText:`Cancel`,onOk:async()=>{te(t=>new Set(t).add(e));try{await j(e)?S(`Session archived`):w(`Failed to archive session`)}finally{te(t=>{let n=new Set(t);return n.delete(e),n})}}})},[j,x,S,w]),ge=(0,Q.useCallback)(e=>Le(e)??void 0,[]),H=(0,Q.useCallback)(e=>ze(e),[]),U=(0,Q.useMemo)(()=>t.filter(e=>!e.archived),[t]),W=(0,Q.useMemo)(()=>U.filter(e=>!e.scheduled_from_branch&&!H(e)),[U,H]),_e=(0,Q.useMemo)(()=>U.filter(e=>e.scheduled_from_branch).sort((e,t)=>(t.scheduled_run_at||0)-(e.scheduled_run_at||0)),[U]),ye=(0,Q.useMemo)(()=>U.filter(e=>H(e)),[U,H]),be=(0,Q.useMemo)(()=>[...W,...D?_e:[],...A?ye:[]],[A,ye,W,_e,D]),G=(0,Q.useMemo)(()=>Mr(W,L),[W,L]),K=(0,Q.useMemo)(()=>qr(G),[G]),q=(0,Q.useMemo)(()=>z&&ae?Or(be,B).map(({session:e})=>e):[],[z,ae,be,B]),xe=(0,Q.useMemo)(()=>_e.some(Fe),[_e]),Se=(0,Q.useMemo)(()=>ye.some(Fe),[ye]),we=e.filesystem_status===`creating`,J=e.filesystem_status===`failed`,Te=e=>e.status===Be.FAILED;(0,Q.useEffect)(()=>{let e=t=>{let n=[];for(let r of t)r.children&&r.children.length>0&&(n.push(r.key),n.push(...e(r.children)));return n};P(e(K))},[K]);let De=e=>{let t=e.session_id===a,n=!!e.remote_surrogate;return{border:e.ready_for_prompt?`1px solid ${b.colorPrimary}`:n?`1px dashed ${b.colorBorderSecondary}`:`1px solid ${z?b.colorBorderSecondary:`rgba(255, 255, 255, 0.1)`}`,borderRadius:z?6:4,padding:z?10:8,background:n?b.colorFillQuaternary:z?b.colorBgContainer:`transparent`,display:`flex`,alignItems:`center`,width:`100%`,boxSizing:`border-box`,cursor:`pointer`,marginBottom:4,opacity:n?.78:void 0,boxShadow:e.ready_for_prompt?`0 0 12px ${b.colorPrimary}30`:void 0,...t?{outline:`1px dashed ${b.colorTextBase}`,outlineOffset:-2}:{}}},Oe=(e,t={})=>{let n=Mt(e,{includeAgentFallback:!0}),r=Te(e);return(0,$.jsx)(f.Text,{strong:t.strong,type:r?`danger`:t.secondary?`secondary`:void 0,style:{fontSize:z?13:12,flex:1,minWidth:0,...jt(2)},children:(0,$.jsx)(Tt,{text:n,query:t.query??``})})},ke=e=>Te(e)?(0,$.jsx)(k,{title:`Latest task failed`,children:(0,$.jsx)(Ce,{"aria-label":`Latest task failed`,style:{color:b.colorErrorText,fontSize:12,flex:`0 0 auto`}})}):null,Ae=(e,t={})=>(0,$.jsxs)($.Fragment,{children:[ke(e),Oe(e,t)]}),je=(e,t=``)=>{let n=Fe(e),r=de(e),i=ce(e),a=Mt(e,{includeAgentFallback:!0}),s=t&&e.title&&e.description?jr(e.description,t):null,c=t?Ar(e,t):!1,l=e.scheduled_from_branch?`Scheduled`:H(e)?`Gateway`:null;return(0,$.jsx)(Jr,{sessionId:e.session_id,isArchiving:F.has(e.session_id),onArchive:he,callbackToggle:r??void 0,onToggleCallback:r?fe:void 0,remoteParentLink:i?{tooltip:`Open remote parent session that created this session`}:void 0,onOpenRemoteParent:i?pe:void 0,onSettings:u?(e,t)=>{t.stopPropagation(),u(e)}:void 0,children:(0,$.jsx)(`div`,{style:De(e),onClick:()=>o?.(e.session_id),children:(0,$.jsxs)(`div`,{style:{display:`flex`,alignItems:`flex-start`,gap:4,flex:1,minWidth:0},children:[n?(0,$.jsx)(Ee,{size:`small`}):(0,$.jsx)(vt,{tool:e.agentic_tool,size:20}),(0,$.jsx)(Br,{session:e,size:10}),(0,$.jsxs)(`div`,{style:{flex:1,minWidth:0},children:[(0,$.jsx)(`div`,{style:{display:`flex`,alignItems:`center`,gap:4,minWidth:0},children:Ae(e,{query:t})}),(l||c)&&(0,$.jsxs)(f.Text,{type:`secondary`,style:{fontSize:11,display:`block`,marginTop:2},children:[l,l&&c?` · `:``,c&&(0,$.jsxs)($.Fragment,{children:[`Agent: `,(0,$.jsx)(Tt,{text:e.agentic_tool,query:t})]})]}),s&&s!==a&&(0,$.jsx)(f.Text,{type:`secondary`,style:{fontSize:11,fontStyle:`italic`,lineHeight:1.4,display:`block`,marginTop:2},children:(0,$.jsx)(Tt,{text:s,query:t})})]})]})})},e.session_id)},Me=(0,$.jsx)(re,{theme:{components:{Tree:{colorBgContainer:`transparent`}}},children:(0,$.jsx)(g,{className:`agor-flat-tree`,treeData:K,expandedKeys:N,onExpand:e=>P(e),showLine:!0,showIcon:!1,blockNode:!0,selectable:!1,style:{background:`transparent`,borderRadius:0,padding:0},titleRender:e=>{let t=e.session,n=Fe(t),r=e.relationshipType===`remote`,i=de(t),a=ce(t);return(0,$.jsx)(Jr,{sessionId:t.session_id,isArchiving:F.has(t.session_id),isPeeked:ie.has(t.session_id),onArchive:he,onTogglePeek:p?oe:void 0,callbackToggle:i??void 0,onToggleCallback:i?fe:void 0,remoteParentLink:a?{tooltip:`Open remote parent session that created this session`}:void 0,onOpenRemoteParent:a?pe:void 0,onSettings:u?(e,t)=>{t.stopPropagation(),u(e)}:void 0,children:(0,$.jsx)(`div`,{style:De(t),onClick:()=>o?.(t.session_id),onContextMenu:e=>{(c||l)&&e.preventDefault()},children:(0,$.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:4,flex:1,minWidth:0},children:[n?(0,$.jsx)(Ee,{size:`small`}):(0,$.jsx)(vt,{tool:t.agentic_tool,size:20}),r?(0,$.jsx)(k,{title:`Remote session created from this session. Click to open it in its own branch.`,children:(0,$.jsx)(ve,{style:{fontSize:11,color:b.colorTextTertiary}})}):(0,$.jsx)(Br,{session:t,size:10}),Ae(t)]})})})}})}),Ne=(0,$.jsxs)(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`,width:`100%`},children:[(0,$.jsxs)(V,{size:4,align:`center`,children:[(0,$.jsx)(f.Text,{strong:!0,children:`Sessions`}),(0,$.jsx)(T,{count:W.length,showZero:!0,style:{backgroundColor:b.colorPrimaryBgHover}}),!z&&(0,$.jsx)(Hr,{sort:L,onSortChange:R,compact:!0,stopPropagation:!0})]}),s&&(0,$.jsx)(`div`,{className:`nodrag`,children:(0,$.jsx)(i,{type:`default`,size:`small`,icon:(0,$.jsx)(C,{}),disabled:E||we,onClick:t=>{t.stopPropagation(),s(e.branch_id)},title:we?`Branch is being created...`:void 0,children:`New Session`})})]}),Pe=(0,$.jsx)(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`,width:`100%`},children:(0,$.jsxs)(V,{size:4,align:`center`,children:[(0,$.jsx)(ue,{style:{color:b.colorInfo}}),(0,$.jsx)(f.Text,{strong:!0,children:`Scheduled Runs`}),(0,$.jsx)(T,{count:_e.length,showZero:!0,style:{backgroundColor:b.colorInfoBgHover}}),xe&&(0,$.jsx)(Ee,{size:`small`})]})}),Ie=(0,$.jsx)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:4},children:_e.map(e=>{let t=Fe(e),n=de(e),r=ce(e);return(0,$.jsx)(Jr,{sessionId:e.session_id,isArchiving:F.has(e.session_id),isPeeked:ie.has(e.session_id),onArchive:he,onTogglePeek:p?oe:void 0,callbackToggle:n??void 0,onToggleCallback:n?fe:void 0,remoteParentLink:r?{tooltip:`Open remote parent session that created this session`}:void 0,onOpenRemoteParent:r?pe:void 0,onSettings:u?(e,t)=>{t.stopPropagation(),u(e)}:void 0,children:(0,$.jsx)(`div`,{style:De(e),onClick:()=>o?.(e.session_id),children:(0,$.jsxs)(V,{size:4,align:`center`,style:{flex:1,minWidth:0},children:[t?(0,$.jsx)(Ee,{size:`small`}):(0,$.jsx)(vt,{tool:e.agentic_tool,size:20}),Ae(e,{secondary:!0})]})})},e.session_id)})}),Re=(0,$.jsx)(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`,width:`100%`},children:(0,$.jsxs)(V,{size:4,align:`center`,children:[(0,$.jsx)(O,{style:{color:b.colorSuccess}}),(0,$.jsx)(f.Text,{strong:!0,children:`Gateway Sessions`}),(0,$.jsx)(T,{count:ye.length,showZero:!0,style:{backgroundColor:b.colorSuccessBgHover}}),Se&&(0,$.jsx)(Ee,{size:`small`})]})}),Ve=(0,$.jsx)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:4},children:ye.map(e=>{let t=ge(e),n=Fe(e),r=de(e),i=ce(e);return(0,$.jsx)(Jr,{sessionId:e.session_id,isArchiving:F.has(e.session_id),isPeeked:ie.has(e.session_id),onArchive:he,onTogglePeek:p?oe:void 0,callbackToggle:r??void 0,onToggleCallback:r?fe:void 0,remoteParentLink:i?{tooltip:`Open remote parent session that created this session`}:void 0,onOpenRemoteParent:i?pe:void 0,onSettings:u?(e,t)=>{t.stopPropagation(),u(e)}:void 0,children:(0,$.jsx)(`div`,{style:De(e),onClick:()=>o?.(e.session_id),children:(0,$.jsxs)(V,{size:4,align:`center`,style:{flex:1,minWidth:0},children:[n?(0,$.jsx)(Ee,{size:`small`}):(0,$.jsx)(vt,{tool:e.agentic_tool,size:20}),(0,$.jsxs)(`div`,{style:{flex:1,minWidth:0,display:`flex`,flexDirection:`column`,gap:4},children:[(0,$.jsx)(`div`,{style:{display:`flex`,alignItems:`center`,gap:4,minWidth:0},children:Ae(e)}),(0,$.jsx)(`div`,{style:{alignSelf:`flex-start`},children:t?(0,$.jsx)(Lt,{channelType:t.channel_type,channelName:t.channel_name}):(0,$.jsx)(f.Text,{type:`secondary`,style:{fontSize:11,fontStyle:`italic`},children:`(Gateway - metadata unavailable)`})})]})]})})},e.session_id)})}),He=z&&U.length>0?(0,$.jsx)(`div`,{style:{paddingBottom:12,paddingTop:4},children:(0,$.jsx)(Ur,{value:I,onChange:ne,sort:L,onSortChange:R,searching:ae})}):null;return z&&ae&&be.length>0?(0,$.jsxs)($.Fragment,{children:[He,q.length>0&&(0,$.jsxs)(f.Text,{type:`secondary`,style:{fontSize:11,padding:`2px 8px 4px`,display:`block`},children:[q.length,` of `,be.length,` · `,(0,$.jsx)(Wr,{})]}),q.length===0?(0,$.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,alignItems:`center`,padding:`24px 16px`,gap:6},children:[(0,$.jsx)(f.Text,{strong:!0,style:{fontSize:13},children:`No results`}),(0,$.jsxs)(f.Text,{type:`secondary`,style:{fontSize:12,textAlign:`center`,lineHeight:1.5,maxWidth:180},children:[`Nothing matched `,(0,$.jsx)(f.Text,{code:!0,children:B})]})]}):(0,$.jsx)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:4},children:q.map(e=>je(e,B))}),(0,$.jsx)(zr,{open:M.open,action:M.action,session:M.session,currentUser:r?n.get(r):void 0,onConfirm:me,onCancel:()=>ee({open:!1,action:`fork`,session:null}),client:y,userById:n})]}):(0,$.jsxs)($.Fragment,{children:[He,U.length===0?(0,$.jsx)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:8,alignItems:`center`,padding:z?`24px 0`:`16px 0`,marginTop:8},children:we?(0,$.jsx)(f.Text,{type:`secondary`,children:`Creating branch on filesystem...`}):J?(0,$.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:8,textAlign:`center`},children:[(0,$.jsx)(f.Text,{type:`danger`,strong:!0,children:`Branch creation failed`}),e.error_message&&(0,$.jsx)(k,{title:e.error_message,placement:`bottom`,children:(0,$.jsx)(f.Text,{type:`secondary`,style:{fontSize:12,maxWidth:220,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`,cursor:`help`},children:e.error_message})})]}):s?(0,$.jsx)(i,{type:`primary`,icon:(0,$.jsx)(C,{}),disabled:E,onClick:t=>{t.stopPropagation(),s(e.branch_id)},size:`middle`,children:`Create Session`}):null}):(0,$.jsxs)($.Fragment,{children:[W.length>0?(0,$.jsx)(v,{defaultActiveKey:h?[`sessions`]:[],items:[{key:`sessions`,label:Ne,children:Me,styles:{body:{background:`transparent`,paddingInline:z?0:void 0}}}],ghost:!0,style:{marginTop:8}}):s?(0,$.jsx)(`div`,{style:{marginTop:8},children:Ne}):null,D&&_e.length>0&&(0,$.jsx)(v,{defaultActiveKey:[],items:[{key:`scheduled-runs`,label:Pe,children:Ie,styles:{body:{background:`transparent`,paddingInline:z?0:void 0}}}],ghost:!0,style:{marginTop:W.length>0?0:8}}),A&&ye.length>0&&(0,$.jsx)(v,{defaultActiveKey:[],items:[{key:`gateway-sessions`,label:Re,children:Ve,styles:{body:{background:`transparent`,paddingInline:z?0:void 0}}}],ghost:!0,style:{marginTop:W.length>0||_e.length>0?0:8}})]}),(0,$.jsx)(zr,{open:M.open,action:M.action,session:M.session,currentUser:r?n.get(r):void 0,onConfirm:me,onCancel:()=>ee({open:!1,action:`fork`,session:null}),client:y,userById:n})]})},Xr=200,Zr=`agor:branch-card:peeked-session-ids:`,Qr=Q.memo(({branch:e,repo:t,sessions:n,userById:r,currentUserId:a,selectedSessionId:o,onSessionClick:s,onCreateSession:d,onForkSession:p,onSpawnSession:m,onArchiveOrDelete:h,onOpenSettings:g,onOpenSessionSettings:_,onOpenTerminal:v,onStartEnvironment:y,onStopEnvironment:b,onViewLogs:S,onNukeEnvironment:C,onUnpin:w,isPinned:T=!1,zoneName:E,zoneColor:D,defaultExpanded:O=!0,inPopover:A=!1,panelMode:j=!1,isActiveUrlTarget:M=!1,client:ee})=>{let{token:N}=Y.useToken(),P=ut(),[F,te]=(0,Q.useState)(!1),[I,ne]=(0,Q.useState)(!1),[L,R]=tt(`${Zr}${e.branch_id}`,[]),re=(0,Q.useMemo)(()=>n.filter(e=>!e.archived),[n]),ie=(0,Q.useMemo)(()=>new Map(re.map(e=>[e.session_id,e])),[re]),B=(0,Q.useMemo)(()=>{if(A||j)return[];let e=[],t=new Set;for(let n of L){let r=n.trim();if(!r)continue;let i=re.find(e=>e.session_id===r);i&&!t.has(i.session_id)&&(e.push(i.session_id),t.add(i.session_id))}return e},[A,j,re,L]),ae=(0,Q.useMemo)(()=>new Set(B),[B]),oe=(0,Q.useMemo)(()=>B.map(e=>ie.get(e)).filter(e=>!!e),[ie,B]),se=(0,Q.useCallback)(e=>R(e),[R]);(0,Q.useEffect)(()=>{A||j||L.join(`|`)!==B.join(`|`)&&R(B)},[A,j,B,R,L]);let ce=(0,Q.useCallback)(e=>{se(ae.has(e)?B.filter(t=>t!==e):[...B,e])},[ae,B,se]),le=re,ue=(0,Q.useMemo)(()=>le.some(Fe),[le]),de=e.filesystem_status===`creating`,fe=e.filesystem_status===`failed`,pe=(0,Q.useMemo)(()=>Ve(e),[e]),me=Ue(e),he=(0,Q.useMemo)(()=>le.some(e=>e.session_id===o),[le,o]),H=(0,Q.useMemo)(()=>{let t=le.some(e=>e.ready_for_prompt===!0);return(e.needs_attention||t)&&!he},[le,e.needs_attention,he]),U=dt(N),W=U?`color-mix(in srgb, ${N.colorPrimaryBg} 67%, ${N.colorBgBase})`:N.colorPrimaryBg,_e=ue?W:me?N.colorInfoBg:void 0,ve=(0,Q.useMemo)(()=>{let e=N.colorTextBase||(U?`#ffffff`:`#000000`),t;try{t=new z(e).toHexString()}catch{t=U?`#ffffff`:`#000000`}return`0 0 0 3px ${t}, 0 0 24px 6px ${t}99`},[N.colorTextBase,U]),ye=he||M,G=`2px dashed ${N.colorTextBase}`,K=(0,Q.useMemo)(()=>{if(D)return ot(D,U,50,50)},[D,U]),q=e.notes&&e.notes.length>Xr,xe=(0,Q.useMemo)(()=>{if(!e.notes)return``;if(!q||I)return e.notes;let t=e.notes.slice(0,Xr),n=t.lastIndexOf(` `);return n>Xr*.8?`${t.slice(0,n)}...`:`${t}...`},[e.notes,q,I]),Se=(()=>{if(A)return{};let e={};return H&&(e.boxShadow=ve),ye&&(e.outline=G,e.outlineOffset=-3),T&&D&&(e.borderColor=D,e.borderWidth=1),me&&(e.borderLeft=`4px solid ${N.colorInfo}`),e})();return(0,$.jsxs)(u,{style:{width:j?`100%`:oe.length>0?880:500,cursor:`default`,transition:`background-color 0.2s ease-in-out, box-shadow 0.6s ease-in-out, outline 0.2s ease-in-out, border 0.6s ease-in-out, opacity 0.2s ease-in-out`,willChange:H&&!A?`box-shadow`:`auto`,...Se,..._e?{backgroundColor:_e}:{},...P&&!A?{pointerEvents:`none`,opacity:.55}:{}},styles:{body:{padding:16}},children:[(0,$.jsxs)(`div`,{className:!A&&!j?lr:void 0,style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`,marginBottom:12,gap:8,cursor:!A&&!j?`grab`:void 0},children:[(0,$.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:8,flex:1,minWidth:0},children:[!A&&(0,$.jsx)(`div`,{className:`drag-handle`,style:{display:`flex`,alignItems:`center`,cursor:j?`default`:`grab`,width:32,height:32,justifyContent:`center`,flexShrink:0},children:de||ue?(0,$.jsx)(Ee,{size:`large`}):me&&pe?.emoji?(0,$.jsx)(`span`,{style:{fontSize:32},children:pe.emoji}):me?(0,$.jsx)(l,{style:{fontSize:32,color:fe?N.colorError:N.colorInfo}}):(0,$.jsx)(c,{style:{fontSize:32,color:fe?N.colorError:N.colorPrimary}})}),(0,$.jsx)(`div`,{style:{display:`flex`,flexDirection:`column`,flex:1,minWidth:0},children:me?(0,$.jsx)(f.Title,{level:4,style:{margin:0,fontWeight:600},ellipsis:{tooltip:pe?.displayName??e.name},children:pe?.displayName??e.name}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(f.Text,{strong:!0,ellipsis:{tooltip:e.name},children:e.name}),(0,$.jsx)(f.Text,{type:`secondary`,style:{fontSize:12},ellipsis:{tooltip:t.slug},children:t.slug})]})})]}),(0,$.jsxs)(V,{size:4,style:{flexShrink:0},children:[!A&&!j&&T&&(0,$.jsx)(k,{title:E?`Pinned to [${E}] zone (click to unpin)`:`Pinned (click to unpin)`,children:(0,$.jsx)(i,{type:`text`,size:`small`,icon:(0,$.jsx)(ge,{style:{color:K}}),onClick:t=>{t.stopPropagation(),w?.(e.branch_id)},className:`nodrag`})}),!A&&!j&&(0,$.jsx)(i,{type:`text`,icon:(0,$.jsx)(be,{style:{fontSize:16}}),className:`drag-handle`,title:`Drag to reposition`,style:{cursor:`grab`,padding:`4px 8px`}}),(0,$.jsxs)(`div`,{className:dr,children:[v&&(0,$.jsx)(i,{type:`text`,size:`small`,icon:(0,$.jsx)(ke,{}),onClick:t=>{t.stopPropagation(),v([],e.branch_id)},title:`Open terminal in branch directory`}),g&&(0,$.jsx)(i,{type:`text`,size:`small`,icon:(0,$.jsx)(x,{}),onClick:t=>{t.stopPropagation(),g(e.branch_id)},title:`Edit branch`}),!A&&!j&&h&&(0,$.jsx)(_t,{tooltip:`Archive or delete branch`,disabled:P,onClick:()=>te(!0)})]})]})]}),(0,$.jsx)(`div`,{className:dr,style:{marginBottom:8},children:(0,$.jsxs)(V,{size:4,wrap:!0,children:[e.created_by&&(0,$.jsx)(mt,{createdBy:e.created_by,currentUserId:a,userById:r,prefix:`Created by`}),e.issue_url&&(0,$.jsx)(Ut,{issueUrl:e.issue_url,currentRepo:t}),e.pull_request_url&&(0,$.jsx)($t,{prUrl:e.pull_request_url,currentRepo:t}),(0,$.jsx)(fr,{repo:t,branch:e,onEdit:()=>g?.(e.branch_id),onStartEnvironment:y,onStopEnvironment:b,onViewLogs:S,onNukeEnvironment:C,connectionDisabled:P,showNukeEnvironment:!1})]})}),e.notes&&(0,$.jsxs)(`div`,{className:`nodrag`,style:{marginBottom:8},children:[(0,$.jsx)(`div`,{className:`markdown-compact`,style:{maxHeight:I?`none`:`120px`,overflow:`hidden`,transition:`max-height 0.3s ease`},children:(0,$.jsx)(xt,{content:xe,style:{fontSize:12,color:N.colorTextSecondary,lineHeight:`1.5`},compact:!1,showControls:!1})}),q&&(0,$.jsx)(i,{type:`link`,size:`small`,onClick:e=>{e.stopPropagation(),ne(!I)},style:{padding:0,height:`auto`,fontSize:12,color:N.colorLink},children:I?`See less`:`See more`})]}),(0,$.jsx)(`div`,{className:dr,children:(0,$.jsx)(Yr,{branch:e,sessions:n,userById:r,currentUserId:a,selectedSessionId:o,onSessionClick:s,onCreateSession:d,onForkSession:p,onSpawnSession:m,onOpenSessionSettings:_,peekedSessionIds:ae,onTogglePeekSession:!A&&!j?ce:void 0,defaultExpanded:O,mode:`card`,client:ee})}),!A&&!j&&oe.length>0&&(0,$.jsx)(xr,{client:ee,sessions:oe,userById:r,currentUserId:a,branchName:e.name,onCloseSession:ce}),(0,$.jsx)(ht,{open:F,branch:e,sessionCount:n.length,environmentRunning:e.environment_instance?.status===`running`,onConfirm:t=>{h?.(e.branch_id,t),te(!1)},onCancel:()=>te(!1)})]})});function $r(e){let{client:t,boardId:n,reactFlowInstance:r,enabled:i=!0}=e,[a,o]=(0,Q.useState)(typeof document<`u`?!document.hidden:!0);(0,Q.useEffect)(()=>{if(typeof document>`u`)return;let e=()=>o(!document.hidden);return document.addEventListener(`visibilitychange`,e),()=>document.removeEventListener(`visibilitychange`,e)},[]);let s=(0,Q.useRef)(a);s.current=a;let c=(0,Q.useRef)(0),l=(0,Q.useRef)(null),u=(0,Q.useRef)(null),d=(0,Q.useCallback)((e,r)=>{if(!t?.io||!n||!i||!s.current)return;u.current={x:e,y:r};let a=Date.now(),o=a-c.current;if(o<nr.CURSOR_EMIT_THROTTLE_MS){l.current||=setTimeout(()=>{if(l.current=null,u.current){let e=u.current,r={boardId:n,x:e.x,y:e.y,timestamp:Date.now()};t.io.emit(`cursor-move`,r),c.current=Date.now()}},nr.CURSOR_EMIT_THROTTLE_MS-o);return}let d={boardId:n,x:e,y:r,timestamp:a};t.io.emit(`cursor-move`,d),c.current=a},[t,n,i]);return(0,Q.useEffect)(()=>{if(!i||!a||!t?.io||!n||!r)return;let e=e=>{let t=r.screenToFlowPosition({x:e.clientX,y:e.clientY});d(t.x,t.y)},o=()=>{t?.io&&n&&t.io.emit(`cursor-leave`,{boardId:n})};return window.addEventListener(`mousemove`,e),()=>{window.removeEventListener(`mousemove`,e),o(),l.current&&=(clearTimeout(l.current),null)}},[t,n,r,i,a,d]),{emitCursorPosition:d}}var ei=[/url\s*\(/gi,/expression\s*\(/gi,/javascript\s*:/gi,/behavior\s*:/gi,/-moz-binding\s*:/gi,/@import/gi,/@charset/gi,/@font-face/gi,/@namespace/gi,/\\00/gi];function ti(e){for(let t of ei)if(t.lastIndex=0,t.test(e))return t.source;return null}function ni(e,t){if(!e?.trim())return``;let n=e;for(let e of ei)e.lastIndex=0,n=n.replace(e,`/* blocked */`);let r=[],i=n.replace(/@keyframes\s+[\w-]+\s*\{[^{}]*(?:\{[^{}]*\}[^{}]*)*\}/gi,e=>(ti(e)||r.push(e),``)).trim(),a=[];i&&(/[^{}]+\{/.test(i)?a.push(`${t} { }\n${i.replace(/([^{}]+)\{/g,`${t} $1{`)}`):a.push(`${t} {\n${i}\n}`));for(let e of r)a.push(e);return a.join(`
|
|
3
|
-
|
|
4
|
-
`)}function ri(e){try{let t=new URL(e);return[`http:`,`https:`,`mailto:`].includes(t.protocol)}catch{return!1}}var ii=100,ai=380,oi=Q.memo(({data:e})=>{let{token:t}=Y.useToken(),{card:n,isPinned:r,zoneName:a,zoneColor:o,onClick:s,onUnpin:c}=e,[l,u]=(0,Q.useState)(!1),d=n.effective_color||t.colorBorder,p=n.effective_emoji,m=t.colorBgContainer!==`#ffffff`,h=(0,Q.useMemo)(()=>{if(o)return ot(o,m,50,50)},[o,m]),g=(0,Q.useMemo)(()=>{if(!n.description)return``;if(n.description.length<=ii||l)return n.description;let e=n.description.slice(0,ii),t=e.lastIndexOf(` `);return`${t>ii*.7?e.slice(0,t):e}...`},[n.description,l]),_=(n.description?.length??0)>ii;return(0,$.jsxs)(`div`,{onClick:()=>s?.(n.card_id),style:{width:ai,background:t.colorBgContainer,border:r&&o?`1px solid ${o}`:`1px solid ${t.colorBorderSecondary}`,borderLeft:`4px solid ${r&&o?o:d}`,borderRadius:t.borderRadiusLG,cursor:`pointer`,overflow:`hidden`,boxShadow:t.boxShadowTertiary,transition:`box-shadow 0.2s, border-color 0.3s`},children:[(0,$.jsxs)(`div`,{className:lr,style:{display:`flex`,alignItems:`center`,gap:8,padding:`10px 12px`,cursor:`grab`,borderBottom:n.description||n.note?`1px solid ${t.colorBorderSecondary}`:`none`},children:[p&&(0,$.jsx)(`span`,{style:{fontSize:16,flexShrink:0},children:p}),(0,$.jsx)(f.Text,{strong:!0,style:{flex:1,fontSize:13,lineHeight:`1.3`,overflow:`hidden`,textOverflow:`ellipsis`,display:`-webkit-box`,WebkitLineClamp:2,WebkitBoxOrient:`vertical`},children:n.title}),n.url&&ri(n.url)&&(0,$.jsx)(`a`,{href:n.url,target:`_blank`,rel:`noopener noreferrer`,onClick:e=>e.stopPropagation(),className:`nodrag`,style:{color:t.colorTextSecondary,flexShrink:0},children:(0,$.jsx)(P,{style:{fontSize:12}})}),r&&(0,$.jsx)(k,{title:a?`Pinned to [${a}] zone (click to unpin)`:`Pinned (click to unpin)`,children:(0,$.jsx)(i,{type:`text`,size:`small`,icon:(0,$.jsx)(ge,{style:{color:h}}),onClick:e=>{e.stopPropagation(),c?.(n.card_id)},className:`nodrag`,style:{flexShrink:0,width:24,height:24,padding:0}})}),(0,$.jsx)(i,{type:`text`,size:`small`,icon:(0,$.jsx)(be,{}),className:lr,style:{cursor:`grab`,flexShrink:0,width:24,height:24,padding:0}})]}),n.description&&(0,$.jsxs)(`div`,{className:`nodrag`,style:{padding:`8px 12px`,borderBottom:n.note?`1px solid ${t.colorBorderSecondary}`:`none`},children:[(0,$.jsx)(f.Text,{style:{fontSize:12,color:t.colorTextSecondary,lineHeight:`1.5`,whiteSpace:`pre-wrap`,wordBreak:`break-word`},children:g}),_&&(0,$.jsx)(i,{type:`link`,size:`small`,onClick:e=>{e.stopPropagation(),u(!l)},style:{padding:0,height:`auto`,fontSize:11,color:t.colorLink,marginLeft:4},children:l?`less`:`more`})]}),n.note&&(0,$.jsx)(`div`,{style:{padding:`8px 12px`,background:t.colorFillQuaternary,borderTop:n.description?`none`:`1px solid ${t.colorBorderSecondary}`},children:(0,$.jsx)(f.Text,{style:{fontSize:12,color:t.colorText,lineHeight:`1.5`,whiteSpace:`pre-wrap`,wordBreak:`break-word`},children:n.note})})]})}),{useToken:si}=Y,ci=120,li=({task:e,onClick:n,compact:r=!1})=>{let{token:i}=si(),a=e.message_range.end_index-e.message_range.start_index+1,o=!!e.report,s=e.git_state.sha_at_start,c=e.git_state.sha_at_end,l=c&&c!==`unknown`&&c!==s,{cleanSha:u,isDirty:d}=Vt(c&&c!==`unknown`?c:s),p=e.full_prompt||`Untitled task`,m=p.length>ci?`${p.substring(0,ci)}...`:p;return(0,$.jsx)(`div`,{onClick:n,style:{cursor:`pointer`,padding:r?`4px 8px`:`8px 12px`,borderRadius:i.borderRadius},children:(0,$.jsxs)(`div`,{style:{width:`100%`},children:[(0,$.jsx)(`div`,{style:{marginBottom:4},children:(0,$.jsxs)(V,{size:8,children:[(0,$.jsx)(k,{title:(0,$.jsx)(`div`,{style:{whiteSpace:`pre-wrap`},children:e.full_prompt}),children:(0,$.jsx)(`span`,{children:(0,$.jsx)(an,{status:e.status,size:16})})}),(0,$.jsx)(f.Text,{style:{fontSize:r?13:14,fontWeight:500},children:m})]})}),(0,$.jsx)(`div`,{style:{marginLeft:r?20:24},children:(0,$.jsxs)(V,{size:4,wrap:!0,children:[(0,$.jsx)(St,{icon:(0,$.jsx)(O,{}),color:`default`,children:a}),(0,$.jsx)(St,{icon:(0,$.jsx)(W,{}),color:`default`,children:e.tool_use_count}),o&&(0,$.jsx)(St,{icon:(0,$.jsx)(_e,{}),color:`blue`,children:`report`}),!r&&u&&(0,$.jsx)(k,{title:l?`Git state changed during task`:d?`Uncommitted changes`:`Clean git state`,children:(0,$.jsx)(`span`,{children:(0,$.jsx)(St,{icon:(0,$.jsx)(t,{}),color:d?`orange`:`purple`,children:(0,$.jsxs)(V,{size:4,children:[(0,$.jsxs)(f.Text,{style:{fontSize:11,fontFamily:`monospace`},children:[l&&`→ `,u.substring(0,7)]}),d&&(0,$.jsx)(x,{style:{fontSize:10}})]})})})})]})})]})})},ui=560,di=({session:e,tasks:t=[],userById:r,currentUserId:a,onTaskClick:o,onSessionClick:s,onDelete:l,onOpenSettings:d,onUnpin:p,isPinned:h=!1,zoneName:g,zoneColor:_,defaultExpanded:y=!0})=>{let{modal:b}=m.useApp(),S=ut(),C=()=>{b.confirm({title:`Delete Session`,content:`Are you sure you want to delete this session? This action cannot be undone.`,okText:`Delete`,okType:`danger`,cancelText:`Cancel`,onOk:()=>{l?.(e.session_id)}})},w=t.slice(-5),T=t.length-w.length,E=!!e.genealogy.forked_from_session_id,D=!!e.genealogy.parent_session_id,{cleanSha:O,isDirty:k}=Vt(e.git_state.current_sha),A=(0,$.jsxs)(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`,width:`100%`},children:[(0,$.jsx)(f.Text,{strong:!0,children:`Tasks`}),t.length>5&&(0,$.jsxs)(f.Text,{type:`secondary`,style:{fontSize:12},children:[`(showing latest 5 of `,t.length,`)`]})]}),j=(0,$.jsxs)(`div`,{children:[T>0&&(0,$.jsx)(`div`,{style:{marginBottom:8},children:(0,$.jsxs)(i,{type:`text`,icon:(0,$.jsx)(he,{}),size:`small`,onClick:e=>{e.stopPropagation(),s?.()},children:[`See `,T,` more `,T===1?`task`:`tasks`]})}),w.map(e=>(0,$.jsx)(li,{task:e,onClick:()=>o?.(e.task_id)},e.task_id))]});return(0,$.jsxs)(u,{style:{maxWidth:ui,...h&&_?{borderColor:_,borderWidth:1}:{}},styles:{body:{padding:16}},children:[(0,$.jsxs)(`div`,{className:lr,style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`,marginBottom:12},children:[(0,$.jsxs)(V,{size:8,align:`center`,children:[(0,$.jsx)(`div`,{className:lr,style:{display:`flex`,alignItems:`center`},children:(0,$.jsx)(vt,{tool:e.agentic_tool,size:32})}),(0,$.jsx)(f.Text,{strong:!0,children:e.agentic_tool}),(0,$.jsx)(an,{status:e.status,size:16})]}),(0,$.jsxs)(V,{size:4,children:[(0,$.jsxs)(`div`,{className:dr,children:[E&&e.fork_origin===`btw`?(0,$.jsx)(St,{icon:(0,$.jsx)(q,{}),color:`orange`,children:`BTW`}):E?(0,$.jsx)(St,{icon:(0,$.jsx)(q,{}),color:`cyan`,children:`FORK`}):null,D&&(0,$.jsx)(St,{icon:(0,$.jsx)(c,{}),color:`purple`,children:`SPAWN`}),h&&g&&(0,$.jsx)(St,{icon:(0,$.jsx)(ge,{}),color:`blue`,onClick:t=>{t.stopPropagation(),p?.(e.session_id)},style:{cursor:`pointer`},title:`Pinned to ${g} (click to unpin)`,children:g})]}),(0,$.jsx)(i,{type:`text`,icon:(0,$.jsx)(be,{style:{fontSize:16}}),className:lr,title:`Drag to reposition`,style:{cursor:`grab`,padding:`4px 8px`}}),(0,$.jsxs)(`div`,{className:dr,children:[s&&(0,$.jsx)(i,{type:`text`,size:`small`,icon:(0,$.jsx)(ce,{}),onClick:e=>{e.stopPropagation(),s()},title:`Open in drawer`}),d&&(0,$.jsx)(i,{type:`text`,size:`small`,icon:(0,$.jsx)(ae,{}),onClick:t=>{t.stopPropagation(),d(e.session_id)},title:`Session settings`}),l&&(0,$.jsx)(i,{type:`text`,size:`small`,icon:(0,$.jsx)(n,{}),disabled:S,onClick:e=>{e.stopPropagation(),C()},title:`Delete session`,danger:!0})]})]})]}),(0,$.jsxs)(`div`,{className:dr,children:[(e.title||e.description)&&(0,$.jsx)(f.Text,{strong:!0,style:{fontSize:16,marginBottom:8,...jt(2)},children:Mt(e)}),e.created_by&&(0,$.jsx)(`div`,{style:{marginBottom:8},children:(0,$.jsx)(mt,{createdBy:e.created_by,currentUserId:a,userById:r,prefix:`Created by`})}),(0,$.jsx)(`div`,{style:{marginBottom:8},children:(0,$.jsxs)(V,{size:4,children:[(0,$.jsxs)(f.Text,{type:`secondary`,children:[`📍 `,e.git_state.ref,` @ `,O.substring(0,7)]}),k&&(0,$.jsx)(St,{icon:(0,$.jsx)(x,{}),color:`orange`,style:{fontSize:11},children:`uncommitted`})]})})]}),(0,$.jsxs)(`div`,{className:dr,children:[(0,$.jsx)(v,{defaultActiveKey:y?[`tasks`]:[],items:[{key:`tasks`,label:A,children:j}],ghost:!0,style:{marginTop:8}}),(0,$.jsx)(`div`,{style:{marginTop:12}})]})]})},fi=({title:e,width:t,height:n})=>(0,$.jsx)(`div`,{style:{width:t??`100%`,height:n??`100%`,minWidth:t??120,minHeight:n??80,display:`flex`,alignItems:`center`,justifyContent:`center`,boxSizing:`border-box`,padding:8,borderRadius:8,border:`1px solid var(--ant-color-border, #424242)`,background:`var(--ant-color-fill-alter, rgba(255,255,255,0.02))`,color:`var(--ant-color-text-secondary, #888)`,fontSize:12,textAlign:`center`,overflow:`hidden`},children:e?`Loading ${e}…`:`Loading…`}),pi=(0,Q.lazy)(()=>Ge(()=>import(`./AppNode-BhuMpn8O.js`).then(e=>({default:e.AppNode})),__vite__mapDeps([0,1,2,3,4,5,6,7]))),mi=e=>(0,$.jsx)(Q.Suspense,{fallback:(0,$.jsx)(fi,{title:e.data.title,width:e.data.width,height:e.data.height}),children:(0,$.jsx)(pi,{...e})}),hi=(0,Q.lazy)(()=>Ge(()=>import(`./ArtifactNode-BzQcrwFS.js`).then(e=>({default:e.ArtifactNode})),__vite__mapDeps([8,1,9,2,3,4,10,11,6,7,12,13,14,15,5]))),gi=e=>(0,$.jsx)(Q.Suspense,{fallback:(0,$.jsx)(fi,{width:e.data.width,height:e.data.height}),children:(0,$.jsx)(hi,{...e})}),_i=({data:e})=>{let{token:t}=Y.useToken(),{modal:n}=m.useApp(),r=!At().canMutate,a=()=>{r||e.onEdit&&e.onEdit(e.objectId,e.content,e.width)},o=()=>{r||!e.onDelete||n.confirm({title:`Delete note?`,content:`This note will be removed from the board.`,okText:`Delete`,okButtonProps:{danger:!0},cancelText:`Cancel`,onOk:()=>e.onDelete?.(e.objectId)})};return(0,$.jsx)(u,{style:{width:e.width,minHeight:100,background:t.colorBgContainer,border:`2px solid ${t.colorBorder}`,borderRadius:8,boxShadow:t.boxShadowSecondary,cursor:`move`},size:`small`,title:(0,$.jsxs)(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[(0,$.jsx)(f.Text,{type:`secondary`,style:{fontSize:12},children:`Markdown Note`}),(0,$.jsxs)(V,{size:2,children:[(0,$.jsx)(i,{className:`nodrag nopan`,type:`text`,size:`small`,icon:(0,$.jsx)(x,{}),onClick:e=>{e.stopPropagation(),a()},disabled:r,title:`Edit note`}),(0,$.jsx)(i,{className:`nodrag nopan`,type:`text`,size:`small`,danger:!0,icon:(0,$.jsx)(A,{}),onClick:e=>{e.stopPropagation(),o()},disabled:r,title:`Delete note`})]})]}),styles:{body:{padding:t.sizeUnit*8}},children:(0,$.jsx)(`div`,{className:`markdown-content`,style:{fontSize:t.fontSize,color:t.colorText,lineHeight:1.6},children:(0,$.jsx)(xt,{content:e.content})})})};function vi(e){let{client:t,boardId:n,enabled:r=!0}=e;(0,Q.useEffect)(()=>{if(!r||!t?.io||!n)return;let e=()=>{t.io.emit(`presence:watch-board`,n)};return e(),t.io.on(`connect`,e),t.on(`authenticated`,e),()=>{t.io.off(`connect`,e),t.off(`authenticated`,e),t.io.emit(`presence:unwatch-board`,n)}},[n,t,r])}var yi=({client:e,boardId:t,users:n,enabled:r=!0,staticCursors:i,staticCursorScale:a=1})=>{let{token:o}=Y.useToken(),s=$e();vi({client:e,boardId:t,enabled:r&&!i});let{remoteCursors:c}=rr({client:e,boardId:t,users:n,enabled:r&&!i}),l=(0,Q.useMemo)(()=>i?i.map(e=>[e.userId,e]):Array.from(c.entries()),[c,i]);return l.length===0?null:(0,$.jsx)(`div`,{style:{position:`absolute`,inset:0,pointerEvents:`none`,zIndex:2e3},children:l.map(([e,t])=>{let{x:n,y:r,user:i}=t,c=`color`in t?t.color:void 0;return(0,$.jsx)(`div`,{style:{position:`absolute`,transform:`translate3d(${n*s.zoom+s.x}px, ${r*s.zoom+s.y}px, 0) scale(${a})`,transformOrigin:`top left`,willChange:`transform`},children:(0,$.jsxs)(`div`,{style:{pointerEvents:`none`,position:`relative`,width:`24px`,height:`24px`},children:[(0,$.jsxs)(`svg`,{width:`24`,height:`24`,viewBox:`0 0 24 24`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,style:{color:c??o.colorPrimary,filter:`drop-shadow(0 2px 4px rgba(0, 0, 0, 0.3))`},children:[(0,$.jsx)(`title`,{children:`${i.name||i.email}'s cursor`}),(0,$.jsx)(`path`,{d:`M5.5 3.5L18.5 12L11 14L8 20.5L5.5 3.5Z`,fill:`currentColor`,stroke:o.colorBgElevated,strokeWidth:`1.5`,strokeLinejoin:`round`})]}),(0,$.jsxs)(`div`,{style:{position:`absolute`,top:`24px`,left:`12px`,display:`flex`,alignItems:`center`,gap:`4px`,padding:`4px 8px`,borderRadius:`4px`,fontSize:`12px`,whiteSpace:`nowrap`,background:c||o.colorBgElevated,color:c?`#ffffff`:o.colorText,boxShadow:o.boxShadowSecondary},children:[(0,$.jsx)(Xt,{user:i,size:18,fontSize:`14px`}),(0,$.jsx)(`span`,{style:{fontWeight:500},children:i.name||i.email})]})]})},e)})})},bi=({board:e,client:t,sessionsByBranch:n,branches:r,boardObjectsForBoard:i,setNodes:a,deletedObjectsRef:o,eraserMode:s=!1,selectedSessionId:c,activeUrlTargetArtifactId:l,onEditMarkdown:u})=>{let d=(0,Q.useRef)(e);d.current=e;let f=(0,Q.useMemo)(()=>e?.objects,[e?.objects?JSON.stringify(e.objects):null]);(0,Q.useMemo)(()=>e?r.filter(t=>t.board_id===e.board_id).map(e=>e.branch_id).flatMap(e=>n.get(e)||[]).map(e=>e.session_id):[],[e,r,n]);let p=(0,Q.useCallback)(async(e,n)=>{let r=d.current;if(!(!r||!t))try{await t.service(`boards`).patch(r.board_id,{_action:`upsertObject`,objectId:e,objectData:n})}catch(e){console.error(`Failed to update object:`,e)}},[t]),m=(0,Q.useCallback)(async(n,r)=>{if(!(!e||!t)){o.current.add(n),a(e=>e.filter(e=>e.id!==n));try{await t.service(`boards`).patch(e.board_id,{_action:`deleteZone`,objectId:n}),setTimeout(()=>{o.current.delete(n)},1e3)}catch(e){console.error(`Failed to delete zone:`,e),o.current.delete(n)}}},[e,t,a,o]),h=(0,Q.useCallback)(async e=>{let n=d.current;if(!(!n||!t)){o.current.add(e),a(t=>t.filter(t=>t.id!==e));try{await t.service(`boards`).patch(n.board_id,{_action:`removeObject`,objectId:e}),setTimeout(()=>{o.current.delete(e)},1e3)}catch(t){console.error(`Failed to delete object:`,t),o.current.delete(e)}}},[t,a,o]),g=(0,Q.useCallback)(async(e,n)=>{if(t){o.current.add(e),a(t=>t.filter(t=>t.id!==e));try{await t.service(`artifacts`).remove(n),setTimeout(()=>{o.current.delete(e)},1e3)}catch(t){console.error(`Failed to delete artifact:`,t),o.current.delete(e)}}},[t,a,o]);return{getBoardObjectNodes:(0,Q.useCallback)(()=>f?Object.entries(f).filter(([,e])=>{let t=typeof e.x==`number`&&typeof e.y==`number`&&!Number.isNaN(e.x)&&!Number.isNaN(e.y);return t||console.warn(`Skipping board object with invalid position:`,e),t}).map(([e,t])=>{if(t.type===`app`)return{id:e,type:`appNode`,position:{x:t.x,y:t.y},selectable:!0,zIndex:400,className:s?`eraser-mode`:void 0,data:{objectId:e,title:t.title,description:t.description,template:t.template,files:t.files,dependencies:t.dependencies,entryFile:t.entryFile,showEditor:t.showEditor,showConsole:t.showConsole,width:t.width,height:t.height,onUpdate:p,onDelete:h}};if(t.type===`artifact`){let n=t.locked??!1;return{id:e,type:`artifactNode`,position:{x:t.x,y:t.y},...n?{draggable:!1}:{},selectable:!0,zIndex:400,className:s?`eraser-mode`:void 0,data:{objectId:e,artifactId:t.artifact_id,width:t.width,height:t.height,locked:n,x:t.x,y:t.y,isActiveUrlTarget:t.artifact_id===l,onUpdate:p,onDeleteArtifact:g}}}if(t.type===`markdown`)return{id:e,type:`markdown`,position:{x:t.x,y:t.y},selectable:!0,zIndex:300,className:s?`eraser-mode`:void 0,data:{objectId:e,content:t.content,width:t.width,onUpdate:p,onEdit:u,onDelete:h}};let r=0;if(t.type===`zone`){for(let t of i)if(t.zone_id===e){let e=t.branch_id&&n.get(t.branch_id)||[];r+=e.length}}let a=t.type===`zone`?t.locked:!1;return{id:e,type:`zone`,position:{x:t.x,y:t.y},...a?{draggable:!1}:{},zIndex:100,className:s?`eraser-mode`:void 0,width:t.width,height:t.height,style:{width:t.width,height:t.height},data:{objectId:e,label:t.type===`zone`?t.label:``,width:t.width,height:t.height,borderColor:t.type===`zone`?t.borderColor:void 0,backgroundColor:t.type===`zone`?t.backgroundColor:void 0,color:t.color,status:t.type===`zone`?t.status:void 0,locked:a,x:t.x,y:t.y,trigger:t.type===`zone`?t.trigger:void 0,sessionCount:r,onUpdate:p,onDelete:m}}}):[],[f,i,n,p,m,h,g,s,l,u]),addZoneNode:(0,Q.useCallback)(async(e,n)=>{let r=d.current;if(!r||!t)return;let i=`zone-${Date.now()}`;a(t=>[...t,{id:i,type:`zone`,position:{x:e,y:n},zIndex:100,style:{width:400,height:600},data:{objectId:i,label:`New Zone`,width:400,height:600,color:void 0,onUpdate:p}}]);try{await t.service(`boards`).patch(r.board_id,{_action:`upsertObject`,objectId:i,objectData:{type:`zone`,x:e,y:n,width:400,height:600,label:`New Zone`}})}catch(e){console.error(`Failed to add zone node:`,e),a(e=>e.filter(e=>e.id!==i))}},[t,a,p]),deleteObject:h,deleteZone:m,batchUpdateObjectPositions:(0,Q.useCallback)(async e=>{let n=d.current;if(!(!n||!t||Object.keys(e).length===0))try{let r={};for(let[t,i]of Object.entries(e)){if(o.current.has(t))continue;let e=n.objects?.[t];e&&(r[t]={...e,x:i.x,y:i.y})}if(Object.keys(r).length===0)return;await t.service(`boards`).patch(n.board_id,{_action:`batchUpsertObjects`,objects:r})}catch(e){console.error(`Failed to persist object positions:`,e)}},[t,o])}};function xi(e,t){if(e.positionAbsolute)return{x:e.positionAbsolute.x,y:e.positionAbsolute.y};if(e.parentId){let n=t.find(t=>t.id===e.parentId);if(n){let r=xi(n,t);return{x:r.x+e.position.x,y:r.y+e.position.y}}}return{x:e.position.x,y:e.position.y}}function Si(e,t){return e.positionAbsolute?{x:e.positionAbsolute.x,y:e.positionAbsolute.y}:xi(e,t)}function Ci(e,t){return{x:e.x-t.x,y:e.y-t.y}}function wi(e,t){return{x:e.x+t.x,y:e.y+t.y}}function Ti(e,t){return t?Ci(e,t.position):e}function Ei(e,t){let n=t.filter(n=>{if(n.type!==`zone`&&n.type!==`branchNode`)return!1;let r=n,i=r.measured?.width||n.width||(typeof n.style?.width==`number`?n.style.width:0),a=r.measured?.height||n.height||(typeof n.style?.height==`number`?n.style.height:0),{x:o,y:s}=xi(n,t);return e.x>=o&&e.x<=o+i&&e.y>=s&&e.y<=s+a});return{branchNode:n.find(e=>e.type===`branchNode`),zoneNode:n.find(e=>e.type===`zone`)}}function Di(e,t){if(!t)return null;for(let[n,r]of Object.entries(t))if(r.type===`zone`&&e.x>=r.x&&e.x<=r.x+r.width&&e.y>=r.y&&e.y<=r.y+r.height)return{zoneId:n,zoneData:r};return null}function Oi(e,t){let n=t?.objects?.[e];return{parentId:`zone-${e}`,parentLabel:n?.type===`zone`?`📍 ${n.label}`:void 0,parentColor:n?.type===`zone`?n.color:void 0}}function ki(e,t){let n=t.find(t=>t.branch_id===e);return{parentId:e,parentLabel:n?`🌳 ${n.name}`:void 0,parentColor:void 0}}function Ai(e,t){let n=new Set(e.map(e=>e.id)),r=!1,i=e.map(e=>e.parentId&&!n.has(e.parentId)?(r=!0,t?.onOrphan?.(e,e.parentId),{...e,parentId:void 0}):e);return r?i:e}function ji(e){return e?.type===`zone`&&Number.isFinite(e.x)&&Number.isFinite(e.y)&&Number.isFinite(e.width)&&Number.isFinite(e.height)}function Mi(e,t,n){if(!e)return;let r=t?.[e];if(!r){n?.onInvalid?.(n.entityId,e,`missing zone object`);return}if(!ji(r)){n?.onInvalid?.(n.entityId,e,`zone object is not renderable`);return}return e}async function Ni(e,t,n={},r=`empty`){if(!t||typeof t!=`string`)return``;try{return(await e.service(`templates`).create({template:t,context:n,onError:r})).rendered}catch(e){return console.error(`Template render failed:`,e),r===`raw`?t:``}}var Pi=({open:e,onCancel:t,client:n,branchId:i,branch:o,sessionsByBranch:s,zoneName:c,trigger:l,boardName:u,boardDescription:d,boardCustomContext:p,availableAgents:m,mcpServerById:g,currentUser:_,onExecute:y})=>{let[b]=J.useForm(),[x,S]=(0,Q.useState)(`create_new`),[C,w]=(0,Q.useState)(`claude-code`),[T,E]=(0,Q.useState)(``),[O,k]=(0,Q.useState)(`prompt`),[A,j]=(0,Q.useState)(``),[M,ee]=(0,Q.useState)(!0),[N,P]=(0,Q.useState)({}),F=(0,Q.useMemo)(()=>s.get(i)||[],[s,i]),te=(0,Q.useMemo)(()=>{if(F.length===0)return``;let e=F.filter(e=>e.status===`running`);return e.length>0?e.sort((e,t)=>new Date(t.last_updated||t.created_at).getTime()-new Date(e.last_updated||e.created_at).getTime())[0].session_id:[...F].sort((e,t)=>new Date(t.last_updated||t.created_at).getTime()-new Date(e.last_updated||e.created_at).getTime())[0].session_id},[F]),I=(0,Q.useMemo)(()=>F.find(e=>e.session_id===T),[T,F]);return(0,Q.useEffect)(()=>{e&&(S(F.length>0?`reuse_existing`:`create_new`),E(te),k(`prompt`),b.resetFields(),P({}))},[e,te,b,F.length]),(0,Q.useEffect)(()=>{if(x===`create_new`&&C){let e=F.length>0?[...F].sort((e,t)=>new Date(t.last_updated||t.created_at).getTime()-new Date(e.last_updated||e.created_at).getTime())[0]:null,t=_?.default_agentic_config?.[C],n=o?.mcp_server_ids&&o.mcp_server_ids.length>0?o.mcp_server_ids:t?.mcpServerIds||[],r={permissionMode:e?.permission_config?.mode||t?.permissionMode,modelConfig:e?.model_config||t?.modelConfig,mcpServerIds:n};b.setFieldsValue(r),P(r)}},[x,C,_,F,b,o?.mcp_server_ids]),(0,Q.useEffect)(()=>{x===`reuse_existing`&&I&&b.setFieldsValue({agent:I.agentic_tool,permissionMode:I.permission_config?.mode,modelConfig:I.model_config})},[x,I,b]),(0,Q.useEffect)(()=>{let e=!1;if(!n){j(l.template),ee(!1);return}let t=x===`reuse_existing`&&T?F.find(e=>e.session_id===T):void 0,r=We({branch:o,board:{name:u,description:d,custom_context:p},zone:{label:c},session:t?{description:t.description,custom_context:t.custom_context}:void 0});return ee(!0),Ni(n,l.template,r,`raw`).then(t=>{e||(j(t),ee(!1))}),()=>{e=!0}},[n,l.template,o,u,d,p,c,x,T,F]),(0,$.jsx)(r,{title:`Zone Trigger: ${c}`,open:e,onCancel:t,onOk:async()=>{if(x===`create_new`)await y({sessionId:`new`,action:`prompt`,renderedTemplate:A,agent:C,modelConfig:N.modelConfig,permissionMode:N.permissionMode,mcpServerIds:N.mcpServerIds});else{let e=b.getFieldsValue(!0),t={sessionId:T,action:O,renderedTemplate:A,permissionMode:e.permissionMode||I?.permission_config?.mode};(O===`fork`||O===`spawn`)&&(t.agent=e.agent||I?.agentic_tool,t.modelConfig=e.modelConfig,t.mcpServerIds=e.mcpServerIds),await y(t)}},okText:`Execute Trigger`,okButtonProps:{disabled:M},cancelText:`Cancel`,width:700,children:(0,$.jsxs)(V,{orientation:`vertical`,size:`large`,style:{width:`100%`},children:[(0,$.jsxs)(`div`,{children:[(0,$.jsx)(H.Group,{value:x,onChange:e=>S(e.target.value),style:{width:`100%`},children:(0,$.jsxs)(V,{orientation:`vertical`,size:`middle`,style:{width:`100%`},children:[(0,$.jsx)(H,{value:`create_new`,children:`Create a new session`}),(0,$.jsx)(H,{value:`reuse_existing`,disabled:F.length===0,children:`Reuse a session`})]})}),F.length===0&&(0,$.jsx)(D,{title:`No existing sessions in this branch`,type:`info`,showIcon:!0,style:{marginTop:12}})]}),x===`reuse_existing`&&(0,$.jsxs)(J,{form:b,layout:`vertical`,children:[(0,$.jsxs)(`div`,{children:[(0,$.jsx)(f.Text,{strong:!0,style:{display:`block`,marginBottom:8},children:`Select Session`}),(0,$.jsx)(a,{value:T,onChange:E,style:{width:`100%`},size:`large`,options:F.map(e=>({value:e.session_id,label:(0,$.jsxs)(`span`,{children:[Mt(e,{fallbackChars:50,includeIdFallback:!0}),` `,`(`,e.status,`)`]})}))})]}),(0,$.jsxs)(`div`,{style:{marginTop:24},children:[(0,$.jsx)(f.Text,{strong:!0,style:{display:`block`,marginBottom:8},children:`Choose Action`}),(0,$.jsx)(H.Group,{value:O,onChange:e=>k(e.target.value),style:{width:`100%`},children:(0,$.jsxs)(V,{orientation:`vertical`,style:{width:`100%`},children:[(0,$.jsx)(H,{value:`prompt`,children:`Prompt - Send message to selected session`}),(0,$.jsx)(H,{value:`fork`,children:`Fork - Fork selected session and send message`}),(0,$.jsx)(H,{value:`spawn`,children:`Spawn - Spawn child session and send message`})]})})]})]}),(0,$.jsxs)(J,{form:b,layout:`vertical`,onValuesChange:e=>{x===`create_new`&&P(t=>({...t,...e}))},children:[x===`create_new`&&(0,$.jsxs)(`div`,{children:[(0,$.jsx)(f.Text,{strong:!0,style:{display:`block`,marginBottom:8},children:`Select Agent`}),(0,$.jsx)(gt,{agents:m,selectedAgentId:C,onSelect:w,columns:2,showHelperText:!1,showComparisonLink:!1})]}),(0,$.jsx)(v,{ghost:!0,destroyOnHidden:!1,defaultActiveKey:[],expandIcon:({isActive:e})=>(0,$.jsx)(h,{rotate:e?180:0}),items:[{key:`agentic-tool-config`,label:(0,$.jsx)(f.Text,{strong:!0,children:x===`create_new`?`Agentic Tool Configuration (optional)`:`Session Configuration (${I?.agentic_tool||`unknown`})`}),children:(0,$.jsxs)(V,{orientation:`vertical`,size:`middle`,style:{width:`100%`},children:[x===`reuse_existing`&&(0,$.jsx)(D,{title:`Showing current configuration. These settings are for reference.`,type:`info`,showIcon:!0}),(0,$.jsx)(wt,{agenticTool:(x===`create_new`?C:I?.agentic_tool)||`claude-code`,mcpServerById:g,showHelpText:!0})]})}],style:{marginTop:16}})]}),(0,$.jsxs)(`div`,{children:[(0,$.jsx)(f.Text,{strong:!0,style:{display:`block`,marginBottom:8},children:`Prompt (editable)`}),(0,$.jsx)(Ee,{spinning:M,delay:200,description:`Rendering template…`,children:(0,$.jsx)(we.TextArea,{value:A,onChange:e=>j(e.target.value),rows:8,style:{fontFamily:`monospace`,fontSize:`13px`,lineHeight:`1.5`},placeholder:`Edit the rendered prompt before executing...`})})]})]})})},Fi=[],Ii=Q.memo(({data:e})=>(0,$.jsx)(`div`,{className:`session-node`,children:(0,$.jsx)(di,{session:e.session,userById:e.userById,currentUserId:e.currentUserId,onTaskClick:e.onTaskClick,onSessionClick:e.onSessionClick,onDelete:e.onDelete,onOpenSettings:e.onOpenSettings,onUnpin:e.onUnpin,isPinned:e.isPinned,zoneName:e.zoneName,zoneColor:e.zoneColor,defaultExpanded:!e.compact})})),Li=Q.memo(({data:e})=>(0,$.jsx)(`div`,{className:`card-node`,children:(0,$.jsx)(oi,{data:e})})),Ri={sessionNode:Ii,branchNode:Q.memo(({data:e})=>{let t=Nt((0,Q.useMemo)(()=>Jt(e.branch.branch_id),[e.branch.branch_id]))??Fi;return(0,$.jsx)(`div`,{className:`branch-node`,children:(0,$.jsx)(Qr,{branch:e.branch,repo:e.repo,sessions:t,userById:e.userById,currentUserId:e.currentUserId,selectedSessionId:e.selectedSessionId,isActiveUrlTarget:e.isActiveUrlTarget,onTaskClick:e.onTaskClick,onSessionClick:e.onSessionClick,onCreateSession:e.onCreateSession,onForkSession:e.onForkSession,onSpawnSession:e.onSpawnSession,onArchiveOrDelete:e.onArchiveOrDelete,onOpenSettings:e.onOpenSettings,onOpenSessionSettings:e.onOpenSessionSettings,onOpenTerminal:e.onOpenTerminal,onStartEnvironment:e.onStartEnvironment,onStopEnvironment:e.onStopEnvironment,onViewLogs:e.onViewLogs,onNukeEnvironment:e.onNukeEnvironment,onExecuteScheduleNow:e.onExecuteScheduleNow,onUnpin:e.onUnpin,isPinned:e.isPinned,zoneName:e.zoneName,client:e.client,zoneColor:e.zoneColor,defaultExpanded:!e.compact})})},(e,t)=>{let n=e.data,r=t.data;return n.branch===r.branch&&n.repo===r.repo&&n.userById===r.userById&&n.currentUserId===r.currentUserId&&n.selectedSessionId===r.selectedSessionId&&n.isActiveUrlTarget===r.isActiveUrlTarget&&n.isPinned===r.isPinned&&n.zoneName===r.zoneName&&n.zoneColor===r.zoneColor&&n.compact===r.compact&&n.client===r.client&&n.onTaskClick===r.onTaskClick&&n.onSessionClick===r.onSessionClick&&n.onCreateSession===r.onCreateSession&&n.onForkSession===r.onForkSession&&n.onSpawnSession===r.onSpawnSession&&n.onArchiveOrDelete===r.onArchiveOrDelete&&n.onOpenSettings===r.onOpenSettings&&n.onOpenSessionSettings===r.onOpenSessionSettings&&n.onOpenTerminal===r.onOpenTerminal&&n.onStartEnvironment===r.onStartEnvironment&&n.onStopEnvironment===r.onStopEnvironment&&n.onViewLogs===r.onViewLogs&&n.onNukeEnvironment===r.onNukeEnvironment&&n.onExecuteScheduleNow===r.onExecuteScheduleNow&&n.onUnpin===r.onUnpin}),cardNode:Li,zone:un,comment:fn,markdown:_i,appNode:mi,artifactNode:gi},zi=Object.freeze([]),Bi=(0,Q.forwardRef)(({board:e,client:t,branches:n,primaryAssistantId:a,currentUserId:o,selectedSessionId:s,activeUrlTargetBranchId:c,activeUrlTargetArtifactId:l,availableAgents:u=[],onSessionClick:d,onTaskClick:p,onSessionUpdate:m,onSessionDelete:h,onForkSession:g,onSpawnSession:_,onUpdateSessionMcpServers:v,onOpenSettings:y,onCreateSessionForBranch:x,onOpenBranch:S,onArchiveOrDeleteBranch:w,onOpenTerminal:T,onStartEnvironment:E,onStopEnvironment:D,onViewLogs:O,onNukeEnvironment:M,onExecuteScheduleNow:ee,onOpenCommentsPanel:N,onCommentHover:P,onCommentSelect:F,staticCursors:te,staticCursorScale:I,height:ne=`100vh`},L)=>{let{token:R}=Y.useToken(),z=At(),re=Nt(Bt),ie=Nt(Yt),ae=Nt(Qt),oe=Nt(tn),se=Nt(It),ce=Nt(nn),V=Nt(Rt),le=ln[dt(R)?`dark`:`light`],ue=!!e?.custom_css?.trim(),de=!!e?.background_color?.trim(),fe=ue||de,pe=fe?void 0:le,me=e?.board_id?`board-css-${He(e.board_id)}`:``,he=(0,Q.useMemo)(()=>fe?ni((de?`background: ${e?.background_color};\n`:``)+(e?.custom_css||``),`.${me}`):``,[e?.custom_css,e?.background_color,me,fe,de]),ge=e?.board_id,H=Nt((0,Q.useMemo)(()=>en(ge),[ge]))||zi,U=(0,Q.useMemo)(()=>{let e=new Map;for(let t of H)t.branch_id&&e.set(t.branch_id,t);return e},[H]),W=(0,Q.useMemo)(()=>{let e=new Map;for(let t of H)t.card_id&&e.set(t.card_id,t);return e},[H]),[_e,ve]=(0,Q.useState)(null),[ye,be]=(0,Q.useState)(!1),[G,K]=(0,Q.useState)(`select`),[q,Se]=(0,Q.useState)(null),[Ce,J]=(0,Q.useState)(null),[Ee,De]=(0,Q.useState)(``),[ke,Me]=(0,Q.useState)(null),[Ne,Pe]=(0,Q.useState)(``),[Fe,Ie]=(0,Q.useState)(500),[Le,Re]=(0,Q.useState)(null),ze=(0,Q.useRef)(null),Be=(0,Q.useRef)({}),Ve=(0,Q.useRef)(!1);(0,Q.useCallback)((t,n=400,r=200)=>{if(!e?.objects)return null;for(let[i,a]of Object.entries(e.objects)){if(a.type!==`zone`)continue;let e=t.x+n/2,o=t.y+r/2;if(e>=a.x&&e<=a.x+a.width&&o>=a.y&&o<=a.y+a.height)return{zoneId:i,zoneData:a}}return null},[e?.objects]);let Ue=(0,Q.useRef)({}),We=(0,Q.useRef)(new Set),[Ge,Ke,$e]=Ye([]),[tt,nt,it]=Je([]),at=(0,Q.useRef)(new Set),ot=(0,Q.useCallback)((e,t)=>{let n=`${e.id}:${t}`;at.current.has(n)||(at.current.add(n),console.warn(`Ignoring stale React Flow parentId on board node`,{nodeId:e.id,nodeType:e.type,missingParentId:t}))},[]),X=(0,Q.useCallback)(e=>{Ke(t=>Ai(typeof e==`function`?e(t):e,{onOrphan:ot}))},[Ke,ot]),st=(0,Q.useRef)(null),lt=(0,Q.useRef)({}),ut=(0,Q.useCallback)((e,t,n)=>{let r=Z.current?.getNode(e);r&&(Pe(t),Ie(n),Me({position:r.position,objectId:e}),K(`markdown`))},[]),{getBoardObjectNodes:ft,batchUpdateObjectPositions:mt,deleteObject:ht}=bi({board:e,client:t,sessionsByBranch:re,branches:n,boardObjectsForBoard:H,setNodes:X,deletedObjectsRef:We,eraserMode:G===`eraser`,selectedSessionId:s,activeUrlTargetArtifactId:l,onEditMarkdown:ut}),gt=(0,Q.useMemo)(()=>{if(!e?.objects)return{};let t={};return Object.entries(e.objects).forEach(([e,n])=>{n.type===`zone`&&(t[e]=n.label)}),t},[e]),_t=(0,Q.useRef)(new Set),vt=(0,Q.useCallback)((e,t,n,r)=>{let i=`${e}:${t??`unknown`}:${n}`;_t.current.has(i)||(_t.current.add(i),console.warn(`Ignoring stale board zone reference for ${e} node`,{entityId:t,zoneId:n,reason:r}))},[]),yt=(0,Q.useCallback)(async n=>{if(!e||!t)return;let r=U.get(n);if(!r?.zone_id)return;let i=e.objects?.[r.zone_id];if(!i){console.error(`Cannot unpin: zone not found`,{zoneId:r.zone_id});return}let a=r.position.x+i.x,o=r.position.y+i.y;Ue.current[n]={x:a,y:o},X(e=>e.map(e=>e.id===n?{...e,position:{x:a,y:o},parentId:void 0}:e)),await t.service(`board-objects`).patch(r.object_id,{position:{x:a,y:o},zone_id:null})},[e,t,U,X]),bt=(0,Q.useMemo)(()=>{let r=[];return n.forEach((n,i)=>{if(a&&n.branch_id===a)return;let l=U.get(n.branch_id),u=l?{x:l.position.x,y:l.position.y}:{x:100,y:100+i*500},f=l?.zone_id,m=f?gt[f]||`Unknown Zone`:void 0,h=Mi(f,e?.objects,{entityId:n.branch_id,onInvalid:(e,t,n)=>vt(`branch`,e,t,n)}),v=h?e?.objects?.[h]:void 0,b=v&&v.type===`zone`?v.borderColor||v.color:void 0,C=ie.get(n.repo_id);if(!C){console.error(`Repo not found for branch ${n.branch_id}`);return}r.push({id:n.branch_id,type:`branchNode`,dragHandle:ur,position:u,zIndex:500,width:500,height:200,parentId:h,extent:void 0,data:{branch:n,repo:C,userById:ce,currentUserId:o,selectedSessionId:s,isActiveUrlTarget:n.branch_id===c,onTaskClick:p,onSessionClick:d,onCreateSession:x,onForkSession:g,onSpawnSession:_,onArchiveOrDelete:w,onOpenSettings:S,onOpenSessionSettings:y,onOpenTerminal:T,onStartEnvironment:E,onStopEnvironment:D,onViewLogs:O,onNukeEnvironment:M,onExecuteScheduleNow:ee,onUnpin:yt,compact:!1,isPinned:!!h,zoneName:m,zoneColor:b,client:t}})}),r},[e,n,a,U,ie,o,s,c,d,p,x,g,_,w,S,y,T,E,D,O,M,ee,yt,gt,vt,ce,t]),St=(0,Q.useCallback)(e=>{let t=se.get(e);t&&(ve(t),be(!0))},[se]),Ct=(0,Q.useCallback)(async n=>{if(!e||!t)return;let r=W.get(n);if(!r?.zone_id)return;let i=e.objects?.[r.zone_id];if(!i)return;let a=r.position.x+i.x,o=r.position.y+i.y;Ue.current[`card-${n}`]={x:a,y:o},X(e=>e.map(e=>e.id===`card-${n}`?{...e,position:{x:a,y:o},parentId:void 0}:e)),await t.service(`board-objects`).patch(r.object_id,{position:{x:a,y:o},zone_id:null})},[e,t,W,X]),wt=(0,Q.useMemo)(()=>{let t=[];for(let[n,r]of W.entries()){let i=se.get(n);if(!i||i.archived)continue;let a={x:r.position.x,y:r.position.y},o=r.zone_id,s=o?gt[o]||`Unknown Zone`:void 0,c=Mi(o,e?.objects,{entityId:n,onInvalid:(e,t,n)=>vt(`card`,e,t,n)}),l=c?e?.objects?.[c]:void 0,u=l&&l.type===`zone`?l.borderColor||l.color:void 0;t.push({id:`card-${n}`,type:`cardNode`,dragHandle:ur,position:a,zIndex:500,width:380,height:120,parentId:c,extent:void 0,data:{card:i,isPinned:!!c,zoneName:s,zoneColor:u,onClick:St,onUnpin:Ct}})}return t},[e,W,se,gt,St,Ct,vt]),Tt=(0,Q.useMemo)(()=>[],[]),Z=(0,Q.useRef)(null),Et=(0,Q.useRef)(null),[Dt,Ot]=(0,Q.useState)(!1),kt=(0,Q.useRef)(null);(0,Q.useImperativeHandle)(L,()=>({getViewportCenter:()=>{if(!Z.current||!Et.current)return null;let e=Et.current.getBoundingClientRect(),t=e.left+e.width/2,n=e.top+e.height/2;return Z.current.screenToFlowPosition({x:t,y:n})}}),[]);let jt=(0,Q.useCallback)(e=>{let t=Z.current;if(!t)return!1;let n=t.getNodes(),r=t.getNode(e);if(r||=n.find(t=>t.data?.artifactId===e),!r)return!1;let i=Si(r,n),a=r.width??500,o=r.height??200;return t.setCenter(i.x+a/2,i.y+o/2,{zoom:t.getZoom(),duration:400}),!0},[]);pt(jt);let Mt=ct();$r({client:t,boardId:e?.board_id,reactFlowInstance:Z.current,enabled:!!e&&!!t&&!te});let Pt=(0,Q.useMemo)(()=>{let t=[],r=rt(oe),i=r.filter(t=>(t.position?.absolute||t.position?.relative)&&t.board_id===e?.board_id&&!t.resolved),a=new Map;for(let e of r)e.parent_comment_id&&a.set(e.parent_comment_id,(a.get(e.parent_comment_id)||0)+1);for(let r of i){let i=r.created_by?ce.get(r.created_by):void 0,o,s,c,l;if(r.position?.relative){let t=r.position.relative;if(o={x:t.offset_x,y:t.offset_y},t.parent_type===`zone`){let n=`zone-${t.parent_id}`;if(e?.objects?.[n]?.type===`zone`){let n=Oi(t.parent_id,e??void 0);s=n.parentId,c=n.parentLabel,l=n.parentColor}else continue}else if(t.parent_type===`branch`)if(ae.get(t.parent_id)){let e=ki(t.parent_id,n);s=e.parentId,c=e.parentLabel,l=e.parentColor}else continue}else if(r.position?.absolute)o=r.position.absolute,s=void 0,c=void 0,l=void 0;else continue;t.push({id:`comment-${r.comment_id}`,type:`comment`,position:o,parentId:s,selectable:!0,zIndex:1e3,data:{comment:r,replyCount:a.get(r.comment_id)||0,user:i,parentLabel:c,parentColor:l,onClick:e=>{F?.(e),N?.()},onHover:e=>{P?.(e)},onLeave:()=>{P?.(null)}}})}return t},[oe,e,n,ce,ae,N,P,F]),Lt=(0,Q.useCallback)((e,t,n)=>e.map(r=>{let i=t.find(e=>e.id===r.id),a=Ue.current[r.id];if(a){let t=r.position;if(r.parentId){let i=[...e,...n].find(e=>e.id===r.parentId);i&&(t=wi(r.position,i.position))}if(Math.abs(a.x-t.x)<=1&&Math.abs(a.y-t.y)<=1)return delete Ue.current[r.id],{...r,selected:i?.selected,zIndex:i?.zIndex??r.zIndex};let o=a;if(r.parentId){let t=[...e,...n].find(e=>e.id===r.parentId);t&&(o=Ci(a,t.position))}return{...r,position:o,selected:i?.selected,zIndex:i?.zIndex??r.zIndex}}return{...r,selected:i?.selected,zIndex:i?.zIndex??r.zIndex}}),[]),zt=(0,Q.useCallback)(e=>{if(e.type===`comment`)return R.colorText;if(e.type===`markdown`)return`${R.colorText}B3`;if(e.type===`zone`)return`${R.colorText}66`;if(e.type===`cardNode`)return e.data.card?.effective_color||R.colorPrimaryBorder;let t=e.data.session;if(!t)return R.colorPrimaryBorder;switch(t.status){case`running`:return R.colorPrimary;case`completed`:return R.colorSuccess;case`failed`:return R.colorError;default:return R.colorPrimaryBorder}},[R.colorText,R.colorPrimaryBorder,R.colorPrimary,R.colorSuccess,R.colorError]),Vt=(0,Q.useCallback)(e=>({zones:e.filter(e=>e.type===`zone`),markdown:e.filter(e=>e.type===`markdown`),branches:e.filter(e=>e.type===`branchNode`),cards:e.filter(e=>e.type===`cardNode`),apps:e.filter(e=>e.type===`appNode`||e.type===`artifactNode`),comments:e.filter(e=>e.type===`comment`)}),[]),Ht=(0,Q.useCallback)((e,t,n,r,i,a=[])=>Ai([...e,...n,...r,...a,...t,...i],{onOrphan:ot}),[ot]);(0,Q.useEffect)(()=>{if(Ve.current)return;let e=ft();X(t=>{let{comments:n}=Vt(t),r=e.filter(e=>e.type===`zone`&&!We.current.has(e.id)).map(e=>{let n=t.find(t=>t.id===e.id);return{...e,selected:n?.selected,zIndex:n?.zIndex??e.zIndex}}),i=e.filter(e=>e.type===`markdown`&&!We.current.has(e.id)).map(e=>{let n=t.find(t=>t.id===e.id);return{...e,selected:n?.selected}}),a=e.filter(e=>(e.type===`appNode`||e.type===`artifactNode`)&&!We.current.has(e.id)).map(e=>{let n=t.find(t=>t.id===e.id);return{...e,selected:n?.selected}});return Ht(r,i,Lt(bt,t,r),Lt(wt,t,r),n,a)})},[bt,wt,ft,X,Ht,Lt,Vt]),(0,Q.useEffect)(()=>{Ve.current||X(e=>{let{zones:t,markdown:n,branches:r,cards:i,apps:a}=Vt(e);return Ht(t,n,r,i,Pt.map(e=>{let n=Ue.current[e.id];if(n){let i=e.position;if(e.parentId){let n=[...r,...t].find(t=>t.id===e.parentId);n&&(i=wi(e.position,n.position))}if(Math.abs(n.x-i.x)<=1&&Math.abs(n.y-i.y)<=1)return delete Ue.current[e.id],e;let a=n;if(e.parentId){let i=[...r,...t].find(t=>t.id===e.parentId);i&&(a=Ci(n,i.position))}return{...e,position:a}}return e}),a)})},[Pt,X,Ht,Vt]),(0,Q.useEffect)(()=>{nt(Tt)},[Tt,nt]),(0,Q.useEffect)(()=>{if(!Dt||!Z.current||Ge.length===0||e?.board_id===kt.current)return;let t=setTimeout(()=>{let t=Mt();if(t&&jt(t)){kt.current=e?.board_id??null;return}Z.current?.fitView({padding:.2,minZoom:.1,maxZoom:1,duration:200}),kt.current=e?.board_id??null},100);return()=>clearTimeout(t)},[Dt,Ge.length,e?.board_id,Mt,jt]);let Ut=(0,Q.useCallback)(n=>{let r=n.filter(e=>e.type===`select`);r.length>0&&X(e=>{let t=new Set(r.map(e=>e.id));return e.some(e=>e.type===`zone`&&t.has(e.id))?e.map(e=>{if(e.type!==`zone`)return e;let t=r.find(t=>t.id===e.id);return t?{...e,zIndex:t.selected?101:100}:e}):e}),n.forEach(n=>{if(n.type===`dimensions`&&n.dimensions){let r=Z.current?.getNode(n.id);if(r?.type===`zone`){let i=r.style?.width,a=r.style?.height,o=n.dimensions.width,s=n.dimensions.height;if(i&&a&&Math.abs(Number(i)-o)<1&&Math.abs(Number(a)-s)<1)return;lt.current[n.id]={width:o,height:s},st.current&&clearTimeout(st.current),st.current=setTimeout(async()=>{let n=lt.current;if(lt.current={},!(!e||!t))for(let[r,i]of Object.entries(n)){let n=e.objects?.[r];if(n&&n.type===`zone`){let a={...n,width:i.width,height:i.height};try{await t.service(`boards`).patch(e.board_id,{_action:`upsertObject`,objectId:r,objectData:a})}catch(e){console.error(`Failed to persist zone resize:`,e)}}}},500)}}}),$e(n)},[e,t,$e,X]),Wt=(0,Q.useCallback)(()=>{Ve.current=!0},[]),Gt=(0,Q.useCallback)((e,t)=>{let n=t.positionAbsolute||t.position;Ue.current[t.id]={x:n.x,y:n.y}},[]),Kt=(0,Q.useCallback)((n,r)=>{if(!e||!t||!Z.current)return;Ve.current=!1;let i=r.positionAbsolute||r.position;Ue.current[r.id]={x:i.x,y:i.y},Be.current[r.id]={x:i.x,y:i.y},ze.current&&clearTimeout(ze.current),ze.current=setTimeout(async()=>{let n=Be.current;Be.current={};try{let r=[],i={},a={},o={},s=[],c=Ge;for(let[l,u]of Object.entries(n)){let n=c.find(e=>e.id===l);if(n?.type===`zone`)i[l]=u;else if(n?.type===`markdown`)a[l]=u;else if(n?.type===`artifactNode`)o[l]=u;else if(n?.type===`comment`){let e=l.replace(`comment-`,``),t=u,{branchNode:n,zoneNode:r}=Ei(t,c),i,a,o;n?(i=n.id,a=`branch`,o=n.id):r&&(i=r.id.replace(`zone-`,``),a=`zone`,o=r.id),s.push({comment_id:e,position:t,parentId:i,parentType:a,newReactFlowParentId:o})}else if(n?.type===`cardNode`){let r=l.replace(`card-`,``),i=u,a=n.width||380,o=n.height||120,s=Di({x:i.x+a/2,y:i.y+o/2},e.objects),d=s?.zoneId,f=s?{x:s.zoneData.x,y:s.zoneData.y}:null;if(d){let e=c.find(e=>e.id===d);e&&(f={x:e.position.x,y:e.position.y})}let p=Ti(i,d&&f?{id:d,position:f}:null),m=W.get(r);if(m){let e={position:p,zone_id:d??null};await t.service(`board-objects`).patch(m.object_id,e)}}else if(n?.type===`branchNode`){let i=u,a=n.width||500,o=n.height||200,s=Di({x:i.x+a/2,y:i.y+o/2},e.objects),d=s?.zoneId,f=s?{x:s.zoneData.x,y:s.zoneData.y}:null;if(d){let e=c.find(e=>e.id===d);e&&(f={x:e.position.x,y:e.position.y})}let p=U.get(l)?.zone_id,m=Ti(i,d&&f?{id:d,position:f}:null);if(r.push({branch_id:l,position:m,zone_id:d??null}),s){let{zoneId:e,zoneData:n}=s,r=p!==e,i=n.trigger;i&&r&&(i.behavior===`always_new`?(async()=>{try{await t.service(`branches/${l}/fire-zone-trigger`).create({zoneId:e})}catch(e){console.error(`❌ Failed to execute always_new trigger:`,e)}})():Re({branchId:l,zoneName:n.label,zoneId:e,trigger:i}))}}}if(r.length>0)for(let{branch_id:n,position:i,zone_id:a}of r){let r=U.get(n);if(r){let e={position:i,zone_id:a};await t.service(`board-objects`).patch(r.object_id,e)}else await t.service(`board-objects`).create({board_id:e.board_id,branch_id:n,position:i,...a?{zone_id:a}:{}})}Object.keys(i).length>0&&await mt(i),Object.keys(a).length>0&&await mt(a),Object.keys(o).length>0&&await mt(o);for(let{comment_id:e,position:n,parentId:r,parentType:i,newReactFlowParentId:a}of s){let o={};if(r&&i===`zone`){let e=c.find(e=>e.id===`zone-${r}`);if(e){let t=Ti(n,{id:r,position:Si(e,c)});o.position={relative:{parent_id:r,parent_type:`zone`,offset_x:t.x,offset_y:t.y}}}else o.position={absolute:n},o.branch_id=null}else if(r&&i===`branch`){let e=c.find(e=>e.id===r);if(e){let t=Ti(n,{id:r,position:Si(e,c)});o.branch_id=r,o.position={relative:{parent_id:r,parent_type:`branch`,offset_x:t.x,offset_y:t.y}}}else o.position={absolute:n},o.branch_id=null}else o.position={absolute:n},o.branch_id=null;await t.service(`board-comments`).patch(e,o),delete Ue.current[`comment-${e}`],X(t=>t.map(r=>{if(r.id===`comment-${e}`){let e={parentId:a};if(a!==r.parentId)if(a){let r=t.find(e=>e.id===a);r&&(e.position=Ti(n,{id:a,position:Si(r,t)}))}else e.position=n;return{...r,...e}}return r}))}}catch(e){console.error(`Failed to persist layout:`,e)}},500)},[e,t,mt,Ge,U,W,X]);(0,Q.useEffect)(()=>()=>{ze.current&&clearTimeout(ze.current),st.current&&clearTimeout(st.current)},[]);let qt=(0,Q.useCallback)(e=>{Z.current&&G===`zone`&&Se({start:{x:e.clientX,y:e.clientY},end:{x:e.clientX,y:e.clientY}})},[G]),Jt=(0,Q.useCallback)(e=>{G===`zone`&&q&&e.buttons===1&&Se({start:q.start,end:{x:e.clientX,y:e.clientY}})},[G,q]),Xt=(0,Q.useCallback)(()=>{if(G===`zone`&&q&&Z.current){if(!z.canMutate){Se(null),K(`select`);return}let{start:n,end:r}=q,i=Math.min(n.x,r.x),a=Math.min(n.y,r.y),o=Math.abs(r.x-n.x),s=Math.abs(r.y-n.y);if(o>50&&s>50){let n=Z.current.screenToFlowPosition({x:i,y:a}),r=Z.current.getViewport(),c=o/r.zoom,l=s/r.zoom,u=`zone-${Date.now()}`,d=`#d9d9d9`,f=`#d9d9d91a`;X(r=>[...r,{id:u,type:`zone`,position:n,zIndex:100,style:{width:c,height:l},data:{objectId:u,label:`New Zone`,width:c,height:l,borderColor:d,backgroundColor:f,onUpdate:(n,r)=>{e&&t&&t.service(`boards`).patch(e.board_id,{_action:`upsertObject`,objectId:n,objectData:r}).catch(console.error)}}}]),e&&t&&t.service(`boards`).patch(e.board_id,{_action:`upsertObject`,objectId:u,objectData:{type:`zone`,x:n.x,y:n.y,width:c,height:l,label:`New Zone`,borderColor:d,backgroundColor:f}}).catch(e=>{console.error(`Failed to add zone:`,e),X(e=>e.filter(e=>e.id!==u))})}Se(null),K(`select`)}},[G,q,e,t,X,z.canMutate]),Zt=(0,Q.useCallback)(e=>!z.canMutate||!Z.current?!1:(Me({position:Z.current.screenToFlowPosition({x:e.clientX,y:e.clientY})}),!0),[z.canMutate]),$t=(0,Q.useCallback)(e=>{G===`comment`&&Z.current&&J({position:Z.current.screenToFlowPosition({x:e.clientX,y:e.clientY}),screenPosition:{x:e.clientX,y:e.clientY}}),G===`markdown`&&Zt(e)},[G,Zt]),rn=(0,Q.useCallback)(async()=>{if(!(!Ce||!e||!t||!o||!Ee.trim())&&z.canMutate)try{let n=Ce.position,{branchNode:r,zoneNode:i}=Ei(n,Z.current?.getNodes()||[]),a={board_id:e.board_id,created_by:o,content:Ee.trim(),resolved:!1,edited:!1,reactions:[]};if(r){let e=r.id;a.branch_id=e,a.position={relative:{parent_id:e,parent_type:`branch`,offset_x:n.x-r.position.x,offset_y:n.y-r.position.y}}}else i?a.position={relative:{parent_id:i.id.replace(`zone-`,``),parent_type:`zone`,offset_x:n.x-i.position.x,offset_y:n.y-i.position.y}}:a.position={absolute:n};await t.service(`board-comments`).create(a),J(null),De(``),K(`select`)}catch(e){console.error(`Failed to create spatial comment:`,e)}},[Ce,e,t,o,Ee,z.canMutate]),an=(0,Q.useCallback)(async()=>{if(!ke||!e||!t||!Ne.trim()||!z.canMutate)return;let n=ke.objectId||`markdown-${Date.now()}`,r=ke.position;X(i=>ke.objectId?i.map(e=>e.id===n?{...e,data:{...e.data,content:Ne,width:Fe}}:e):[...i,{id:n,type:`markdown`,position:r,zIndex:300,data:{objectId:n,content:Ne,width:Fe,onUpdate:(n,r)=>{e&&t&&t.service(`boards`).patch(e.board_id,{_action:`upsertObject`,objectId:n,objectData:r}).catch(console.error)},onEdit:ut,onDelete:ht}}]);try{await t.service(`boards`).patch(e.board_id,{_action:`upsertObject`,objectId:n,objectData:{type:`markdown`,x:r.x,y:r.y,width:Fe,content:Ne}})}catch(e){console.error(`Failed to save markdown note:`,e),ke.objectId||X(e=>e.filter(e=>e.id!==n))}Me(null),Pe(``),Ie(500),K(`select`)},[ke,e,t,Ne,Fe,X,ut,ht,z.canMutate]),on=(0,Q.useCallback)((e,t)=>{if(G===`eraser`){if(!z.canMutate)return;(t.type===`zone`||t.type===`markdown`)&&ht(t.id);return}if(G===`comment`&&Z.current){(t.type===`branchNode`||t.type===`zone`)&&J({position:Z.current.screenToFlowPosition({x:e.clientX,y:e.clientY}),screenPosition:{x:e.clientX,y:e.clientY}});return}if(G===`markdown`){Zt(e);return}t.type!==`zone`&&t.type!==`comment`&&X(e=>{let n=e.filter(e=>e.type!==`zone`&&e.type!==`comment`),r=e.find(e=>e.id===t.id)?.zIndex??0;if(n.every(e=>e.id===t.id||(e.zIndex??0)<r))return e;let i=Math.max(0,...n.map(e=>e.zIndex??0));return e.map(e=>e.id===t.id?{...e,zIndex:i+1}:e)})},[G,ht,z.canMutate,Zt,X]);return(0,Q.useEffect)(()=>{G!==`comment`&&Ce&&(J(null),De(``))},[G,Ce]),(0,Q.useEffect)(()=>{!z.canMutate&&G!==`select`&&(K(`select`),Se(null),J(null),De(``),Me(null))},[z.canMutate,G]),(0,$.jsxs)(`div`,{style:{width:`100%`,height:ne,position:`relative`},onPointerDown:qt,onPointerMove:Jt,onPointerUp:Xt,children:[q&&(0,$.jsx)(`div`,{style:{position:`fixed`,left:Math.min(q.start.x,q.end.x),top:Math.min(q.start.y,q.end.y),width:Math.abs(q.end.x-q.start.x),height:Math.abs(q.end.y-q.start.y),border:`2px dashed #1677ff`,background:`rgba(22, 119, 255, 0.1)`,pointerEvents:`none`,zIndex:1e3}}),he&&(0,$.jsx)(`style`,{children:he}),(0,$.jsx)(`div`,{ref:Et,className:me||void 0,style:{width:`100%`,height:`100%`,background:pe},children:(0,$.jsxs)(Ze,{nodes:Ge,edges:tt,onNodesChange:Ut,onEdgesChange:it,onNodeDragStart:Wt,onNodeDrag:Gt,onNodeDragStop:Kt,onNodeClick:on,onPaneClick:$t,onInit:e=>{Z.current=e,Ot(!0)},nodeTypes:Ri,snapToGrid:!0,snapGrid:[20,20],minZoom:.1,maxZoom:1.5,nodesDraggable:z.canMutate,nodesConnectable:!1,elementsSelectable:!0,elevateNodesOnSelect:!1,panOnScroll:G===`select`&&!q,panOnDrag:!q,selectionOnDrag:!1,className:`tool-mode-${G}`,deleteKeyCode:null,selectionKeyCode:null,multiSelectionKeyCode:null,panActivationKeyCode:null,zoomActivationKeyCode:[`Meta`,`Control`],disableKeyboardA11y:!0,style:{background:`transparent`},children:[!pe&&(0,$.jsx)(Qe,{}),(0,$.jsxs)(Xe,{position:`top-left`,showZoom:!1,showFitView:!1,showInteractive:!1,children:[(0,$.jsx)(k,{title:`Zoom In`,placement:`right`,mouseEnterDelay:.3,children:(0,$.jsx)(`span`,{children:(0,$.jsx)(et,{onClick:e=>{e.stopPropagation(),Z.current?.zoomIn()},children:(0,$.jsx)(C,{style:{fontSize:`16px`}})})})}),(0,$.jsx)(k,{title:`Zoom Out`,placement:`right`,mouseEnterDelay:.3,children:(0,$.jsx)(`span`,{children:(0,$.jsx)(et,{onClick:e=>{e.stopPropagation(),Z.current?.zoomOut()},children:(0,$.jsx)(je,{style:{fontSize:`16px`}})})})}),(0,$.jsx)(k,{title:`Fit View`,placement:`right`,mouseEnterDelay:.3,children:(0,$.jsx)(`span`,{children:(0,$.jsx)(et,{onClick:e=>{e.stopPropagation(),Z.current?.fitView()},children:(0,$.jsx)(xe,{style:{fontSize:`16px`}})})})}),(0,$.jsx)(k,{title:`Select`,placement:`right`,mouseEnterDelay:.3,children:(0,$.jsx)(`span`,{children:(0,$.jsx)(et,{onClick:e=>{e.stopPropagation(),K(`select`)},style:{borderLeft:G===`select`?`3px solid #1677ff`:`none`},children:(0,$.jsx)(j,{style:{fontSize:`16px`}})})})}),(0,$.jsx)(k,{title:z.canMutate?`Add Zone`:z.message??`Add Zone`,placement:`right`,mouseEnterDelay:.3,children:(0,$.jsx)(`span`,{children:(0,$.jsx)(et,{disabled:!z.canMutate,onClick:e=>{e.stopPropagation(),K(`zone`)},style:{borderLeft:G===`zone`?`3px solid #1677ff`:`none`,opacity:z.canMutate?1:.4,cursor:z.canMutate?`pointer`:`not-allowed`},children:(0,$.jsx)(Ae,{style:{fontSize:`16px`}})})})}),(0,$.jsx)(k,{title:z.canMutate?`Add Comment`:z.message??`Add Comment`,placement:`right`,mouseEnterDelay:.3,children:(0,$.jsx)(`span`,{children:(0,$.jsx)(et,{disabled:!z.canMutate,onClick:e=>{e.stopPropagation(),K(`comment`)},style:{borderLeft:G===`comment`?`3px solid #1677ff`:`none`,opacity:z.canMutate?1:.4,cursor:z.canMutate?`pointer`:`not-allowed`},children:(0,$.jsx)(B,{style:{fontSize:`16px`}})})})}),(0,$.jsx)(k,{title:z.canMutate?`Add Markdown Note — click canvas to place`:z.message??`Add Markdown Note — click canvas to place`,placement:`right`,mouseEnterDelay:.3,children:(0,$.jsx)(`span`,{children:(0,$.jsx)(et,{"aria-label":`Add Markdown Note`,disabled:!z.canMutate,onClick:e=>{e.stopPropagation(),K(`markdown`)},style:{borderLeft:G===`markdown`?`3px solid #1677ff`:`none`,opacity:z.canMutate?1:.4,cursor:z.canMutate?`pointer`:`not-allowed`},children:(0,$.jsx)(Te,{style:{fontSize:`16px`}})})})}),(0,$.jsx)(k,{title:z.canMutate?`Eraser - Click to toggle`:z.message??`Eraser`,placement:`right`,mouseEnterDelay:.3,children:(0,$.jsx)(`span`,{children:(0,$.jsx)(et,{disabled:!z.canMutate,onClick:e=>{e.stopPropagation(),K(G===`eraser`?`select`:`eraser`)},style:{borderLeft:G===`eraser`?`3px solid ${R.colorError}`:`none`,color:G===`eraser`?R.colorError:`inherit`,backgroundColor:G===`eraser`?`${R.colorError}15`:`transparent`,opacity:z.canMutate?1:.4,cursor:z.canMutate?`pointer`:`not-allowed`},children:(0,$.jsx)(A,{style:{fontSize:`16px`}})})})})]}),(0,$.jsx)(qe,{nodeColor:zt,pannable:!0,zoomable:!0,style:{backgroundColor:R.colorBgElevated,border:`1px solid ${R.colorBorder}`},maskColor:`rgba(0, 0, 0, 0.5)`,maskStrokeColor:R.colorPrimary,maskStrokeWidth:2}),(0,$.jsx)(yi,{client:t,boardId:e?.board_id??null,users:rt(ce),enabled:!!e&&!!t,staticCursors:te,staticCursorScale:I})]})}),Ce&&(0,$.jsx)(b,{open:!0,content:(0,$.jsxs)(`div`,{style:{width:300},children:[(0,$.jsx)(`div`,{style:{marginBottom:8},children:(0,$.jsx)(pn,{placeholder:`Add a comment... (type @ for users, : for emojis)`,value:Ee,onChange:De,onKeyPress:e=>{e.key===`Enter`&&!e.shiftKey&&(e.preventDefault(),Ee.trim()&&rn())},autoSize:{minRows:3,maxRows:6},client:t,sessionId:null,userById:ce})}),(0,$.jsxs)(`div`,{style:{display:`flex`,justifyContent:`flex-end`,gap:8},children:[(0,$.jsx)(i,{onClick:()=>{J(null),De(``),K(`select`)},children:`Cancel`}),(0,$.jsx)(i,{type:`primary`,onClick:rn,disabled:!Ee.trim(),children:`Comment`})]})]}),getPopupContainer:()=>document.body,children:(0,$.jsx)(`div`,{style:{position:`fixed`,left:Ce.screenPosition.x,top:Ce.screenPosition.y,width:1,height:1,pointerEvents:`none`}})}),ke&&(0,$.jsxs)(r,{open:!0,title:ke.objectId?`Edit Markdown Note`:`Add Markdown Note`,onCancel:()=>{Me(null),Pe(``),Ie(500),K(`select`)},onOk:an,okText:ke.objectId?`Save`:`Create`,okButtonProps:{disabled:!Ne.trim()},width:1e3,children:[(0,$.jsx)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:16,marginBottom:16},children:(0,$.jsxs)(`div`,{children:[(0,$.jsx)(f.Text,{strong:!0,children:`Width:`}),(0,$.jsx)(Oe,{min:200,max:2e3,step:100,value:Fe,onChange:Ie,marks:{200:`200px`,500:`500px`,1e3:`1000px`,1500:`1500px`,2e3:`2000px`},style:{marginTop:8}})]})}),(0,$.jsxs)(`div`,{style:{display:`flex`,gap:16},children:[(0,$.jsxs)(`div`,{style:{flex:1},children:[(0,$.jsx)(f.Text,{strong:!0,children:`Content (Markdown supported):`}),(0,$.jsx)(we.TextArea,{value:Ne,onChange:e=>Pe(e.target.value),placeholder:`# Title
|
|
5
|
-
|
|
6
|
-
- Bullet point
|
|
7
|
-
- Another point
|
|
8
|
-
|
|
9
|
-
**Bold** and *italic*
|
|
10
|
-
|
|
11
|
-
\`\`\`javascript
|
|
12
|
-
const code = "example";
|
|
13
|
-
\`\`\``,autoFocus:!0,rows:20,style:{fontFamily:`monospace`,marginTop:8,height:`500px`}})]}),(0,$.jsxs)(`div`,{style:{flex:1},children:[(0,$.jsx)(f.Text,{strong:!0,children:`Preview:`}),(0,$.jsx)(`div`,{style:{marginTop:8,padding:12,border:`1px solid ${R.colorBorder}`,borderRadius:4,height:`500px`,overflow:`auto`,background:R.colorBgContainer},children:Ne.trim()?(0,$.jsx)(xt,{content:Ne}):(0,$.jsx)(f.Text,{type:`secondary`,children:`Preview will appear here...`})})]})]})]}),Le&&(0,$.jsx)(Pi,{open:!0,onCancel:()=>Re(null),client:t,branchId:Le.branchId,branch:n.find(e=>e.branch_id===Le.branchId),sessionsByBranch:re,zoneName:Le.zoneName,trigger:Le.trigger,boardName:e?.name,boardDescription:e?.description,boardCustomContext:e?.custom_context,availableAgents:u,mcpServerById:V,currentUser:o&&ce.get(o)||null,onExecute:async({sessionId:e,action:n,renderedTemplate:r,agent:i,modelConfig:a,permissionMode:o,mcpServerIds:s})=>{if(!t){console.error(`❌ Cannot execute trigger: client not available`),Re(null);return}try{let c=e;if(e===`new`&&(c=(await t.service(`sessions`).create({branch_id:Le.branchId,agentic_tool:i||`claude-code`,description:`Session from zone "${Le.zoneName}"`,status:`idle`,model_config:a?{...a,updated_at:new Date().toISOString()}:void 0,permission_config:o?{mode:o}:void 0})).session_id,s&&s.length>0))for(let e of s)await t.service(`sessions/${c}/mcp-servers`).create({mcpServerId:e});let l;switch(n){case`prompt`:await t.sessions.prompt(c,r,{permissionMode:o,messageSource:`agor`}),l=c;break;case`fork`:{let e=await t.service(`sessions/${c}/fork`).create({});await t.sessions.prompt(e.session_id,r,{permissionMode:o,messageSource:`agor`}),l=e.session_id;break}case`spawn`:{let e=await t.service(`sessions/${c}/spawn`).create({});await t.sessions.prompt(e.session_id,r,{permissionMode:o,messageSource:`agor`}),l=e.session_id;break}}l&&d?.(l)}catch(e){console.error(`❌ Failed to execute zone trigger:`,e)}finally{Re(null)}}}),(0,$.jsx)(Ft,{open:ye,card:_e,board:e,zoneName:_e?(()=>{let e=W.get(_e.card_id);return e?.zone_id&>[e.zone_id]||void 0})():void 0,zoneColor:_e?(()=>{let t=W.get(_e.card_id);if(!t?.zone_id)return;let n=e?.objects?.[t.zone_id];return n&&n.type===`zone`?n.borderColor||n.color:void 0})():void 0,client:t,onClose:()=>{be(!1),ve(null)},onCardUpdated:e=>{ve(e)},onCardDeleted:()=>{be(!1),ve(null)}})]})});Bi.displayName=`SessionCanvas`;var Vi=Q.memo(Bi);export{gn as _,Ur as a,Rr as c,kr as d,Or as f,hn as g,cr as h,Wr as i,Sr as l,Mr as m,Qr as n,Br as o,Ar as p,Yr as r,zr as s,Vi as t,jr as u};
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime--c01j_DQ.js";import{An as t,B as n,Lt as r,Rn as i,Tt as a,Un as o,dn as s,fn as c,h as l,i as u,ir as d,zt as f}from"./antd-DT5ackd0.js";import{N as p}from"./editor-DQIG-JYZ.js";import{Bt as m}from"./index-DTz1Dif6.js";var h=e(d(),1),g=p(),_=({user:e,disabled:r=!1,onUserSettingsClick:a,onLogout:o})=>{let{token:d}=f.useToken(),[p,m]=(0,h.useState)(!1),_=e?.emoji||`👤`,v=e?.preferences?.audio?.enabled??!1;return(0,g.jsx)(s,{menu:{items:[{key:`user-info`,label:(0,g.jsxs)(`div`,{style:{padding:`4px 0`,display:`flex`,alignItems:`center`,gap:8},children:[(0,g.jsx)(`span`,{style:{fontSize:20},children:_}),(0,g.jsxs)(`div`,{children:[(0,g.jsx)(`div`,{style:{fontWeight:500},children:e?.name||`User`}),(0,g.jsx)(`div`,{style:{fontSize:12,color:d.colorTextDescription},children:e?.email})]})]}),disabled:!0},{type:`divider`},{key:`user-settings`,label:(0,g.jsxs)(c,{children:[(0,g.jsx)(`span`,{children:`User Settings`}),v&&(0,g.jsx)(i,{title:`Audio notifications enabled`,children:(0,g.jsx)(l,{style:{color:d.colorSuccess,fontSize:12}})})]}),icon:(0,g.jsx)(u,{}),onClick:()=>{m(!1),a?.()}},{key:`logout`,label:`Logout`,icon:(0,g.jsx)(n,{}),onClick:()=>{m(!1),o?.()}}]},placement:`bottomRight`,trigger:[`click`],open:p,onOpenChange:m,disabled:r,children:(0,g.jsx)(i,{title:e?.name||`User menu`,placement:`bottom`,children:(0,g.jsx)(t,{type:`text`,icon:(0,g.jsx)(u,{style:{fontSize:d.fontSizeLG}}),style:{display:`flex`,alignItems:`center`,justifyContent:`center`},disabled:r})})})},v=({onOpenThemeEditor:e})=>{let{token:n}=f.useToken(),{themeMode:i,setThemeMode:c}=m();return(0,g.jsx)(s,{menu:{items:[{key:`dark`,label:`Dark`,icon:i===`dark`?(0,g.jsx)(o,{}):(0,g.jsx)(`span`,{style:{width:14,display:`inline-block`}}),onClick:()=>c(`dark`)},{key:`light`,label:`Light`,icon:i===`light`?(0,g.jsx)(o,{}):(0,g.jsx)(`span`,{style:{width:14,display:`inline-block`}}),onClick:()=>c(`light`)},{key:`custom`,label:`Custom`,icon:i===`custom`?(0,g.jsx)(o,{}):(0,g.jsx)(`span`,{style:{width:14,display:`inline-block`}}),onClick:()=>c(`custom`),disabled:!e},{type:`divider`},{key:`edit-theme`,label:`Edit Custom Theme`,icon:(0,g.jsx)(r,{}),onClick:e,disabled:!e}]},placement:`bottomRight`,trigger:[`click`],children:(0,g.jsx)(t,{type:`text`,icon:(0,g.jsx)(a,{style:{fontSize:n.fontSizeLG}}),title:`Change theme`,style:{display:`flex`,alignItems:`center`,justifyContent:`center`}})})};export{_ as n,v as t};
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./chunk-FPAJGGOC-9Megv5Kz.js";import{h as e}from"./mermaid-parser.core-DYCfacHj.js";export{e as createArchitectureServices};
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{nt as e,tt as t}from"./chunk-ABZYJK2D-DCTXWSzV.js";var n=(n,r)=>e.lang.round(t.parse(n)[r]);export{n as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{D as e}from"./reactflow-Cubtnk8i.js";import{n as t}from"./chunk-AGHRB4JF-CbNphBjE.js";var n=t((t,n)=>{let r;return n===`sandbox`&&(r=e(`#i`+t)),e(n===`sandbox`?r.nodes()[0].contentDocument.body:`body`).select(`[id="${t}"]`)},`getDiagramElement`);export{n as t};
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{D as e}from"./reactflow-Cubtnk8i.js";import{b as t}from"./chunk-ABZYJK2D-DCTXWSzV.js";import{n}from"./chunk-AGHRB4JF-CbNphBjE.js";var r=n(n=>{let{securityLevel:r}=t(),i=e(`body`);return r===`sandbox`&&(i=e((e(`#i${n}`).node()?.contentDocument??document).body)),i.select(`#${n}`)},`selectSvgElement`);export{r as t};
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/dagre-6UL2VRFP-DiQSUxqN.js","assets/chunk-JA3XYJ7Z-Cr1rmOui.js","assets/reactflow-Cubtnk8i.js","assets/rolldown-runtime--c01j_DQ.js","assets/antd-DT5ackd0.js","assets/reactflow-8hax8RNO.css","assets/streamdown-BdAVfkeF.js","assets/sandpack-C58bwfIS.js","assets/editor-DQIG-JYZ.js","assets/chunk-AGHRB4JF-CbNphBjE.js","assets/chunk-S3R3BYOJ-GP3zIxrB.js","assets/dist-CSqJezV7.js","assets/math-Bi_r_ZWc.js","assets/chunk-ABZYJK2D-DCTXWSzV.js","assets/isArrayLikeObject-CjHW3d_5.js","assets/dagre-Bekd9Vdj.js","assets/graphlib-Dk2SU2Fs.js","assets/isEmpty-CyN-1FA0.js","assets/_baseUniq-3L6hpfaj.js","assets/_basePickBy-CTZkf73z.js","assets/clone-DU7hffqD.js","assets/chunk-ATLVNIR6-rWg3qxof.js","assets/chunk-CVBHYZKI-DTL6Zgr0.js","assets/chunk-HN2XXSSU-2blQO3Gb.js","assets/chunk-JZLCHNYA-BsgZ79Fa.js","assets/chunk-QXUST7PY-BCK2V0i-.js","assets/line-DBRjKmfa.js","assets/path-BWPyau1x.js","assets/array-BifhSqXX.js","assets/cose-bilkent-S5V4N54A-Dx0BJVDl.js","assets/cytoscape.esm-XgFHxq-T.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{c as e}from"./sandpack-C58bwfIS.js";import{s as t,y as n}from"./chunk-ABZYJK2D-DCTXWSzV.js";import{n as r,r as i}from"./chunk-AGHRB4JF-CbNphBjE.js";import{u as a}from"./chunk-S3R3BYOJ-GP3zIxrB.js";import{a as o,i as s,s as c}from"./chunk-JZLCHNYA-BsgZ79Fa.js";import{a as l,i as u,n as d,r as f}from"./chunk-QXUST7PY-BCK2V0i-.js";var p={common:t,getConfig:n,insertCluster:s,insertEdge:d,insertEdgeLabel:f,insertMarkers:u,insertNode:o,interpolateToCurve:a,labelHelper:c,log:i,positionEdgeLabel:l},m={},h=r(e=>{for(let t of e)m[t.name]=t},`registerLayoutLoaders`);r(()=>{h([{name:`dagre`,loader:r(async()=>await e(()=>import(`./dagre-6UL2VRFP-DiQSUxqN.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28])),`loader`)},{name:`cose-bilkent`,loader:r(async()=>await e(()=>import(`./cose-bilkent-S5V4N54A-Dx0BJVDl.js`),__vite__mapDeps([29,3,2,4,5,30,9])),`loader`)}])},`registerDefaultLayoutLoaders`)();var g=r(async(e,t)=>{if(!(e.layoutAlgorithm in m))throw Error(`Unknown layout algorithm: ${e.layoutAlgorithm}`);let n=m[e.layoutAlgorithm];return(await n.loader()).render(e,t,p,{algorithm:n.algorithm})},`render`),_=r((e=``,{fallback:t=`dagre`}={})=>{if(e in m)return e;if(t in m)return i.warn(`Layout algorithm ${e} is not registered. Using ${t} as fallback.`),t;throw Error(`Both layout algorithms ${e} and ${t} are not registered.`)},`getRegisteredLayoutAlgorithm`);export{h as n,g as r,_ as t};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e}from"./chunk-AGHRB4JF-CbNphBjE.js";var t=class{constructor(e){this.init=e,this.records=this.init()}static{e(this,`ImperativeState`)}reset(){this.records=this.init()}};export{t};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./chunk-ABZYJK2D-DCTXWSzV.js";import{n as e}from"./chunk-AGHRB4JF-CbNphBjE.js";import"./chunk-S3R3BYOJ-GP3zIxrB.js";import"./chunk-JZLCHNYA-BsgZ79Fa.js";import"./chunk-JA3XYJ7Z-Cr1rmOui.js";import"./chunk-FMBD7UC4-BogA_9CV.js";import"./chunk-HN2XXSSU-2blQO3Gb.js";import"./chunk-CVBHYZKI-DTL6Zgr0.js";import"./chunk-55IACEB6-lJXvUquf.js";import"./chunk-QN33PNHL-DxdIDCAa.js";import"./chunk-ATLVNIR6-rWg3qxof.js";import"./chunk-QXUST7PY-BCK2V0i-.js";import"./chunk-N4CR4FBY-DEMgSRVe.js";import{i as t,n,r,t as i}from"./chunk-B4BG7PRW-CgtLCbpE.js";var a={parser:n,get db(){return new i},renderer:r,styles:t,init:e(e=>{e.class||={},e.class.arrowMarkerAbsolute=e.arrowMarkerAbsolute},`init`)};export{a as diagram};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./chunk-ABZYJK2D-DCTXWSzV.js";import{n as e}from"./chunk-AGHRB4JF-CbNphBjE.js";import"./chunk-S3R3BYOJ-GP3zIxrB.js";import"./chunk-JZLCHNYA-BsgZ79Fa.js";import"./chunk-JA3XYJ7Z-Cr1rmOui.js";import"./chunk-FMBD7UC4-BogA_9CV.js";import"./chunk-HN2XXSSU-2blQO3Gb.js";import"./chunk-CVBHYZKI-DTL6Zgr0.js";import"./chunk-55IACEB6-lJXvUquf.js";import"./chunk-QN33PNHL-DxdIDCAa.js";import"./chunk-ATLVNIR6-rWg3qxof.js";import"./chunk-QXUST7PY-BCK2V0i-.js";import"./chunk-N4CR4FBY-DEMgSRVe.js";import{i as t,n,r,t as i}from"./chunk-B4BG7PRW-CgtLCbpE.js";var a={parser:n,get db(){return new i},renderer:r,styles:t,init:e(e=>{e.class||={},e.class.arrowMarkerAbsolute=e.arrowMarkerAbsolute},`init`)};export{a as diagram};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{T as e}from"./src-DAeyG22O.js";var t=e.MEMBER;export{t};
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|