@jlongo78/agent-spaces 0.10.0-beta.2 → 0.10.0-beta.4
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/.next/standalone/.next/BUILD_ID +1 -1
- package/.next/standalone/.next/build-manifest.json +2 -2
- package/.next/standalone/.next/server/app/(desktop)/admin/analytics/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(desktop)/admin/users/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(desktop)/analytics/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(desktop)/cortex/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(desktop)/network/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(desktop)/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(desktop)/projects/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(desktop)/sessions/[id]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(desktop)/sessions/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(desktop)/settings/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(desktop)/terminal/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(desktop)/terminal/pane/[id]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(desktop)/terminal/remote/[nodeId]/[workspaceId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(desktop)/workspaces/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_global-error.html +2 -2
- package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_not-found.html +1 -1
- package/.next/standalone/.next/server/app/_not-found.rsc +2 -2
- package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/admin/analytics.html +1 -1
- package/.next/standalone/.next/server/app/admin/analytics.rsc +2 -2
- package/.next/standalone/.next/server/app/admin/analytics.segments/!KGRlc2t0b3Ap/admin/analytics/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/admin/analytics.segments/!KGRlc2t0b3Ap/admin/analytics.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/admin/analytics.segments/!KGRlc2t0b3Ap/admin.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/admin/analytics.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/admin/analytics.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/admin/analytics.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/admin/analytics.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/admin/analytics.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/admin/users.html +1 -1
- package/.next/standalone/.next/server/app/admin/users.rsc +2 -2
- package/.next/standalone/.next/server/app/admin/users.segments/!KGRlc2t0b3Ap/admin/users/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/admin/users.segments/!KGRlc2t0b3Ap/admin/users.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/admin/users.segments/!KGRlc2t0b3Ap/admin.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/admin/users.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/admin/users.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/admin/users.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/admin/users.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/admin/users.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/analytics.html +1 -1
- package/.next/standalone/.next/server/app/analytics.rsc +2 -2
- package/.next/standalone/.next/server/app/analytics.segments/!KGRlc2t0b3Ap/analytics/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/analytics.segments/!KGRlc2t0b3Ap/analytics.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/analytics.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/analytics.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/analytics.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/analytics.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/analytics.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/api/admin/analytics/route.js +4 -2
- package/.next/standalone/.next/server/app/api/admin/analytics/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/admin/users/[id]/route.js +4 -2
- package/.next/standalone/.next/server/app/api/admin/users/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/admin/users/route.js +4 -2
- package/.next/standalone/.next/server/app/api/admin/users/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/analytics/overview/route.js +5 -4
- package/.next/standalone/.next/server/app/api/analytics/overview/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/auth/login/route.js +3 -2
- package/.next/standalone/.next/server/app/api/auth/login/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/auth/logout/route.js +2 -2
- package/.next/standalone/.next/server/app/api/auth/logout/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/auth/me/route.js +3 -2
- package/.next/standalone/.next/server/app/api/auth/me/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/auth/totp/setup/route.js +2 -2
- package/.next/standalone/.next/server/app/api/auth/totp/setup/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/auth/totp/status/route.js +2 -2
- package/.next/standalone/.next/server/app/api/auth/totp/status/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/auth/totp/verify/route.js +3 -2
- package/.next/standalone/.next/server/app/api/auth/totp/verify/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/benchmark/lobes/route.js +4 -3
- package/.next/standalone/.next/server/app/api/benchmark/lobes/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/benchmark/run/route.js +4 -3
- package/.next/standalone/.next/server/app/api/benchmark/run/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/benchmark/runs/[id]/route.js +4 -3
- package/.next/standalone/.next/server/app/api/benchmark/runs/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/benchmark/runs/route.js +4 -3
- package/.next/standalone/.next/server/app/api/benchmark/runs/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/benchmark/status/route.js +4 -3
- package/.next/standalone/.next/server/app/api/benchmark/status/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/bulk/route.js +5 -4
- package/.next/standalone/.next/server/app/api/bulk/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/chat/route.js +4 -2
- package/.next/standalone/.next/server/app/api/chat/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/claude/usage/route.js +5 -4
- package/.next/standalone/.next/server/app/api/claude/usage/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/config/route.js +3 -3
- package/.next/standalone/.next/server/app/api/config/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/cortex/context/route.js +4 -3
- package/.next/standalone/.next/server/app/api/cortex/context/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/cortex/curation/assess/route.js +4 -3
- package/.next/standalone/.next/server/app/api/cortex/curation/assess/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/cortex/curation/publish/route.js +4 -3
- package/.next/standalone/.next/server/app/api/cortex/curation/publish/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/cortex/curation/refine/route.js +4 -3
- package/.next/standalone/.next/server/app/api/cortex/curation/refine/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/cortex/curation/review/route.js +4 -3
- package/.next/standalone/.next/server/app/api/cortex/curation/review/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/cortex/curation/seed/route.js +4 -3
- package/.next/standalone/.next/server/app/api/cortex/curation/seed/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/cortex/export/route.js +4 -3
- package/.next/standalone/.next/server/app/api/cortex/export/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/cortex/federation/pending/route.js +4 -3
- package/.next/standalone/.next/server/app/api/cortex/federation/pending/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/cortex/federation/resolve/route.js +4 -3
- package/.next/standalone/.next/server/app/api/cortex/federation/resolve/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/cortex/federation/search/route.js +4 -3
- package/.next/standalone/.next/server/app/api/cortex/federation/search/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/cortex/federation/teach/route.js +4 -3
- package/.next/standalone/.next/server/app/api/cortex/federation/teach/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/cortex/graph/edges/route.js +4 -3
- package/.next/standalone/.next/server/app/api/cortex/graph/edges/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/cortex/graph/entities/[id]/route.js +4 -3
- package/.next/standalone/.next/server/app/api/cortex/graph/entities/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/cortex/graph/entities/route.js +4 -3
- package/.next/standalone/.next/server/app/api/cortex/graph/entities/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/cortex/graph/populate/route.js +4 -3
- package/.next/standalone/.next/server/app/api/cortex/graph/populate/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/cortex/import/route.js +4 -3
- package/.next/standalone/.next/server/app/api/cortex/import/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/cortex/import/status/route.js +4 -3
- package/.next/standalone/.next/server/app/api/cortex/import/status/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/cortex/ingest/bootstrap/route.js +4 -3
- package/.next/standalone/.next/server/app/api/cortex/ingest/bootstrap/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/cortex/ingest/status/route.js +4 -3
- package/.next/standalone/.next/server/app/api/cortex/ingest/status/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/cortex/knowledge/[id]/route.js +4 -3
- package/.next/standalone/.next/server/app/api/cortex/knowledge/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/cortex/knowledge/route.js +4 -3
- package/.next/standalone/.next/server/app/api/cortex/knowledge/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/cortex/lobes/[id]/route.js +4 -3
- package/.next/standalone/.next/server/app/api/cortex/lobes/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/cortex/lobes/route.js +4 -3
- package/.next/standalone/.next/server/app/api/cortex/lobes/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/cortex/lobes/share/route.js +4 -3
- package/.next/standalone/.next/server/app/api/cortex/lobes/share/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/cortex/marketplace/browse/route.js +3 -3
- package/.next/standalone/.next/server/app/api/cortex/marketplace/browse/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/cortex/marketplace/preview/route.js +3 -3
- package/.next/standalone/.next/server/app/api/cortex/marketplace/preview/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/cortex/mcp/call/route.js +4 -3
- package/.next/standalone/.next/server/app/api/cortex/mcp/call/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/cortex/mcp/tools/route.js +4 -3
- package/.next/standalone/.next/server/app/api/cortex/mcp/tools/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/cortex/search/route.js +4 -3
- package/.next/standalone/.next/server/app/api/cortex/search/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/cortex/settings/route.js +4 -3
- package/.next/standalone/.next/server/app/api/cortex/settings/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/cortex/status/route.js +4 -3
- package/.next/standalone/.next/server/app/api/cortex/status/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/cortex/timeline/route.js +4 -3
- package/.next/standalone/.next/server/app/api/cortex/timeline/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/cortex/usage/route.js +4 -3
- package/.next/standalone/.next/server/app/api/cortex/usage/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/cortex/workspace/[id]/context/route.js +4 -3
- package/.next/standalone/.next/server/app/api/cortex/workspace/[id]/context/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/events/route.js +5 -3
- package/.next/standalone/.next/server/app/api/events/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/files/route.js +3 -2
- package/.next/standalone/.next/server/app/api/files/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/folders/route.js +3 -3
- package/.next/standalone/.next/server/app/api/folders/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/connect-callback/route.js +2 -2
- package/.next/standalone/.next/server/app/api/network/connect-callback/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/connect-request/[id]/route.js +2 -2
- package/.next/standalone/.next/server/app/api/network/connect-request/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/connect-request/route.js +2 -2
- package/.next/standalone/.next/server/app/api/network/connect-request/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/discovered/route.js +2 -2
- package/.next/standalone/.next/server/app/api/network/discovered/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/handshake/route.js +4 -3
- package/.next/standalone/.next/server/app/api/network/handshake/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/health/route.js +2 -2
- package/.next/standalone/.next/server/app/api/network/health/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/identity/route.js +2 -2
- package/.next/standalone/.next/server/app/api/network/identity/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/keys/[id]/route.js +2 -2
- package/.next/standalone/.next/server/app/api/network/keys/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/keys/route.js +2 -2
- package/.next/standalone/.next/server/app/api/network/keys/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/nodes/[id]/route.js +2 -2
- package/.next/standalone/.next/server/app/api/network/nodes/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/nodes/check/route.js +2 -2
- package/.next/standalone/.next/server/app/api/network/nodes/check/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/nodes/route.js +2 -2
- package/.next/standalone/.next/server/app/api/network/nodes/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/panes/[id]/route.js +6 -5
- package/.next/standalone/.next/server/app/api/network/panes/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/panes/route.js +6 -5
- package/.next/standalone/.next/server/app/api/network/panes/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/projects/route.js +6 -5
- package/.next/standalone/.next/server/app/api/network/projects/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/proxy/[nodeId]/[...path]/route.js +2 -2
- package/.next/standalone/.next/server/app/api/network/proxy/[nodeId]/[...path]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/search/route.js +6 -5
- package/.next/standalone/.next/server/app/api/network/search/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/sessions/[id]/messages/route.js +6 -5
- package/.next/standalone/.next/server/app/api/network/sessions/[id]/messages/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/sessions/[id]/route.js +6 -5
- package/.next/standalone/.next/server/app/api/network/sessions/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/sessions/route.js +6 -5
- package/.next/standalone/.next/server/app/api/network/sessions/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/terminal/token/route.js +2 -2
- package/.next/standalone/.next/server/app/api/network/terminal/token/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/workspaces/[id]/route.js +6 -5
- package/.next/standalone/.next/server/app/api/network/workspaces/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/workspaces/route.js +6 -5
- package/.next/standalone/.next/server/app/api/network/workspaces/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/panes/[id]/diff/route.js +5 -4
- package/.next/standalone/.next/server/app/api/panes/[id]/diff/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/panes/[id]/route.js +5 -4
- package/.next/standalone/.next/server/app/api/panes/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/panes/route.js +5 -4
- package/.next/standalone/.next/server/app/api/panes/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/projects/route.js +5 -4
- package/.next/standalone/.next/server/app/api/projects/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/proxy/models/[modelId]/[...path]/route.js +3 -3
- package/.next/standalone/.next/server/app/api/proxy/models/[modelId]/[...path]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/proxy/models/[modelId]/status/route.js +3 -3
- package/.next/standalone/.next/server/app/api/proxy/models/[modelId]/status/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/search/route.js +6 -5
- package/.next/standalone/.next/server/app/api/search/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/server-config/route.js +2 -2
- package/.next/standalone/.next/server/app/api/server-config/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/sessions/[id]/chat/route.js +5 -3
- package/.next/standalone/.next/server/app/api/sessions/[id]/chat/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/sessions/[id]/messages/route.js +5 -4
- package/.next/standalone/.next/server/app/api/sessions/[id]/messages/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/sessions/[id]/route.js +5 -4
- package/.next/standalone/.next/server/app/api/sessions/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/sessions/route.js +6 -5
- package/.next/standalone/.next/server/app/api/sessions/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/sync/route.js +4 -3
- package/.next/standalone/.next/server/app/api/sync/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/tags/route.js +5 -4
- package/.next/standalone/.next/server/app/api/tags/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/tier/route.js +4 -3
- package/.next/standalone/.next/server/app/api/tier/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/updates/route.js +2 -2
- package/.next/standalone/.next/server/app/api/updates/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/whisper/config/route.js +2 -2
- package/.next/standalone/.next/server/app/api/whisper/config/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/whisper/route.js +2 -2
- package/.next/standalone/.next/server/app/api/whisper/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wizard/chat/route.js +3 -3
- package/.next/standalone/.next/server/app/api/wizard/chat/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/workspaces/[id]/context/[key]/route.js +5 -3
- package/.next/standalone/.next/server/app/api/workspaces/[id]/context/[key]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/workspaces/[id]/context/route.js +5 -3
- package/.next/standalone/.next/server/app/api/workspaces/[id]/context/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/workspaces/[id]/messages/[msgId]/route.js +5 -3
- package/.next/standalone/.next/server/app/api/workspaces/[id]/messages/[msgId]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/workspaces/[id]/messages/route.js +5 -3
- package/.next/standalone/.next/server/app/api/workspaces/[id]/messages/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/workspaces/[id]/route.js +5 -4
- package/.next/standalone/.next/server/app/api/workspaces/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/workspaces/[id]/sessions/route.js +5 -4
- package/.next/standalone/.next/server/app/api/workspaces/[id]/sessions/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/workspaces/[id]/todos/[todoId]/route.js +5 -4
- package/.next/standalone/.next/server/app/api/workspaces/[id]/todos/[todoId]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/workspaces/[id]/todos/route.js +5 -4
- package/.next/standalone/.next/server/app/api/workspaces/[id]/todos/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/workspaces/route.js +6 -5
- package/.next/standalone/.next/server/app/api/workspaces/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/cortex.html +1 -1
- package/.next/standalone/.next/server/app/cortex.rsc +2 -2
- package/.next/standalone/.next/server/app/cortex.segments/!KGRlc2t0b3Ap/cortex/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/cortex.segments/!KGRlc2t0b3Ap/cortex.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/cortex.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/cortex.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/cortex.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/cortex.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/cortex.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/icon.png/route.js +2 -2
- package/.next/standalone/.next/server/app/icon.png/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/login.html +1 -1
- package/.next/standalone/.next/server/app/login.rsc +2 -2
- package/.next/standalone/.next/server/app/login.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/login.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/login.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/login.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/login.segments/login/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/login.segments/login.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/m/projects/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/m/projects.html +1 -1
- package/.next/standalone/.next/server/app/m/projects.rsc +2 -2
- package/.next/standalone/.next/server/app/m/projects.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/m/projects.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m/projects.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/m/projects.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/m/projects.segments/m/projects/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m/projects.segments/m/projects.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m/projects.segments/m.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m/sessions/[id]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/m/sessions/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/m/sessions.html +1 -1
- package/.next/standalone/.next/server/app/m/sessions.rsc +2 -2
- package/.next/standalone/.next/server/app/m/sessions.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/m/sessions.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m/sessions.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/m/sessions.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/m/sessions.segments/m/sessions/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m/sessions.segments/m/sessions.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m/sessions.segments/m.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m/settings/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/m/settings.html +1 -1
- package/.next/standalone/.next/server/app/m/settings.rsc +2 -2
- package/.next/standalone/.next/server/app/m/settings.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/m/settings.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m/settings.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/m/settings.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/m/settings.segments/m/settings/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m/settings.segments/m/settings.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m/settings.segments/m.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m/terminal/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/m/terminal.html +1 -1
- package/.next/standalone/.next/server/app/m/terminal.rsc +2 -2
- package/.next/standalone/.next/server/app/m/terminal.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/m/terminal.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m/terminal.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/m/terminal.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/m/terminal.segments/m/terminal/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m/terminal.segments/m/terminal.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m/terminal.segments/m.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m.html +1 -1
- package/.next/standalone/.next/server/app/m.rsc +2 -2
- package/.next/standalone/.next/server/app/m.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/m.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/m.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/m.segments/m/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m.segments/m.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/network.html +1 -1
- package/.next/standalone/.next/server/app/network.rsc +2 -2
- package/.next/standalone/.next/server/app/network.segments/!KGRlc2t0b3Ap/network/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/network.segments/!KGRlc2t0b3Ap/network.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/network.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/network.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/network.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/network.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/network.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/projects.html +1 -1
- package/.next/standalone/.next/server/app/projects.rsc +2 -2
- package/.next/standalone/.next/server/app/projects.segments/!KGRlc2t0b3Ap/projects/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/projects.segments/!KGRlc2t0b3Ap/projects.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/projects.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/projects.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/projects.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/projects.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/projects.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/sessions.html +1 -1
- package/.next/standalone/.next/server/app/sessions.rsc +2 -2
- package/.next/standalone/.next/server/app/sessions.segments/!KGRlc2t0b3Ap/sessions/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/sessions.segments/!KGRlc2t0b3Ap/sessions.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/sessions.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/sessions.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/sessions.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/sessions.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/sessions.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/settings.html +1 -1
- package/.next/standalone/.next/server/app/settings.rsc +2 -2
- package/.next/standalone/.next/server/app/settings.segments/!KGRlc2t0b3Ap/settings/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings.segments/!KGRlc2t0b3Ap/settings.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/settings.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/terminal.html +1 -1
- package/.next/standalone/.next/server/app/terminal.rsc +3 -3
- package/.next/standalone/.next/server/app/terminal.segments/!KGRlc2t0b3Ap/terminal/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/terminal.segments/!KGRlc2t0b3Ap/terminal.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/terminal.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/terminal.segments/_full.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/terminal.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/terminal.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/terminal.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/vr/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/vr.html +1 -1
- package/.next/standalone/.next/server/app/vr.rsc +2 -2
- package/.next/standalone/.next/server/app/vr.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/vr.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/vr.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/vr.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/vr.segments/vr/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/vr.segments/vr.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/workspaces.html +1 -1
- package/.next/standalone/.next/server/app/workspaces.rsc +2 -2
- package/.next/standalone/.next/server/app/workspaces.segments/!KGRlc2t0b3Ap/workspaces/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/workspaces.segments/!KGRlc2t0b3Ap/workspaces.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/workspaces.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/workspaces.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/workspaces.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/workspaces.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/workspaces.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0cf5ebdb._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0f15af1e._.js +78 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__107eab8a._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1094360c._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__118ea5e0._.js +42 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__160e7c73._.js +5 -5
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__16d4da21._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1c542684._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1f23bae4._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1faefa3e._.js +19 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__2145098e._.js +42 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__2748c76c._.js +42 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__2c08d908._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__2e29b4bd._.js +3 -0
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__e3ecfd17._.js → [root-of-the-server]__34fd47d2._.js} +3 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__366b6cec._.js +78 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__4d51508f._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__5663673e._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__57e0cc31._.js +133 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__57ebbe63._.js +42 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__5d3345e4._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__5ee7aa9d._.js +11 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__60caf825._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__65c9857f._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__678f6823._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__685c95d8._.js +3 -0
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__41d4d426._.js → [root-of-the-server]__69568dc2._.js} +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__6a0bc4ae._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__6b876561._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__6e89713c._.js +42 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__6f713737._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__725f10f4._.js +78 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__785b0597._.js +38 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__7c728bed._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__7da958b5._.js +42 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__7daed406._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__7f140e4b._.js +78 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__80d826f7._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__83a3c97b._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__84c15a0e._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__85c33341._.js +42 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__88f3d920._.js +78 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__8c916e85._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__8deb2ae3._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__8df5a740._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__8f238bd9._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__955ab668._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__9a061e91._.js +42 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__a04a87d5._.js +42 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__a803051f._.js +42 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__ac0a9b09._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__ac3e37b6._.js +13 -0
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__96685488._.js → [root-of-the-server]__add9e50d._.js} +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__b57f4274._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__b84b3426._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__ba8224a1._.js +42 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__bd1c1d0d._.js +42 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__c1442c38._.js +42 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__c18bdab2._.js +42 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__c1efc6a8._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__c697b87e._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__c6dc43c6._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__ccce7f4f._.js +78 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__d92f347c._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__dac9e21e._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__e3f9ddbc._.js +78 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__e66fc05f._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__e7add82c._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__fa9a5ec0._.js +42 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__ff9f6af0._.js +42 -0
- package/.next/standalone/.next/server/chunks/_0142f96b._.js +3 -0
- package/.next/standalone/.next/server/chunks/_0ebd30d3._.js +3 -0
- package/.next/standalone/.next/server/chunks/_19a59078._.js +3 -0
- package/.next/standalone/.next/server/chunks/_1bc02021._.js +11 -0
- package/.next/standalone/.next/server/chunks/_1e381a28._.js +3 -0
- package/.next/standalone/.next/server/chunks/_2699eda7._.js +3 -0
- package/.next/standalone/.next/server/chunks/_2fd02f70._.js +3 -0
- package/.next/standalone/.next/server/chunks/_373d522f._.js +3 -0
- package/.next/standalone/.next/server/chunks/_43fc1196._.js +3 -0
- package/.next/standalone/.next/server/chunks/_48ec4374._.js +3 -0
- package/.next/standalone/.next/server/chunks/_563d9ecc._.js +3 -0
- package/.next/standalone/.next/server/chunks/_583f9ae2._.js +3 -0
- package/.next/standalone/.next/server/chunks/_5a167705._.js +3 -0
- package/.next/standalone/.next/server/chunks/_5a8cc3a5._.js +3 -0
- package/.next/standalone/.next/server/chunks/_5d894fb4._.js +3 -0
- package/.next/standalone/.next/server/chunks/_6bbf8264._.js +3 -0
- package/.next/standalone/.next/server/chunks/_6c4bcec1._.js +3 -0
- package/.next/standalone/.next/server/chunks/_7a29d111._.js +3 -0
- package/.next/standalone/.next/server/chunks/_7d3bab25._.js +3 -0
- package/.next/standalone/.next/server/chunks/_7ed4d1a4._.js +3 -0
- package/.next/standalone/.next/server/chunks/_8072d20c._.js +3 -0
- package/.next/standalone/.next/server/chunks/_81b87c01._.js +3 -0
- package/.next/standalone/.next/server/chunks/_881b7b28._.js +3 -0
- package/.next/standalone/.next/server/chunks/_902a1d56._.js +3 -0
- package/.next/standalone/.next/server/chunks/_96258f1c._.js +3 -0
- package/.next/standalone/.next/server/chunks/_96f79f8f._.js +3 -0
- package/.next/standalone/.next/server/chunks/_a0379bc2._.js +3 -0
- package/.next/standalone/.next/server/chunks/_a0f604e8._.js +3 -0
- package/.next/standalone/.next/server/chunks/_a959b121._.js +3 -0
- package/.next/standalone/.next/server/chunks/_a975011f._.js +3 -0
- package/.next/standalone/.next/server/chunks/_aa956b66._.js +3 -0
- package/.next/standalone/.next/server/chunks/_ad7e7d57._.js +3 -0
- package/.next/standalone/.next/server/chunks/_aebf2285._.js +3 -0
- package/.next/standalone/.next/server/chunks/_b259dda0._.js +36 -0
- package/.next/standalone/.next/server/chunks/_b7c60fdc._.js +3 -0
- package/.next/standalone/.next/server/chunks/_bd23ddeb._.js +3 -0
- package/.next/standalone/.next/server/chunks/_cd02dfbe._.js +3 -0
- package/.next/standalone/.next/server/chunks/_d3ecca80._.js +3 -0
- package/.next/standalone/.next/server/chunks/_d48dfa43._.js +11 -0
- package/.next/standalone/.next/server/chunks/_dba648d6._.js +3 -0
- package/.next/standalone/.next/server/chunks/_df42ac6e._.js +3 -0
- package/.next/standalone/.next/server/chunks/_dfe0e460._.js +42 -0
- package/.next/standalone/.next/server/chunks/_ead2734e._.js +3 -0
- package/.next/standalone/.next/server/chunks/_eb4efd0a._.js +3 -0
- package/.next/standalone/.next/server/chunks/_eb66a871._.js +3 -0
- package/.next/standalone/.next/server/chunks/_ef715efd._.js +3 -0
- package/.next/standalone/.next/server/chunks/_f361a656._.js +3 -0
- package/.next/standalone/.next/server/chunks/_f54ddbf4._.js +3 -0
- package/.next/standalone/.next/server/chunks/_fe2866f2._.js +3 -0
- package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_4c408326.js +3 -0
- package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_5603adbc.js +3 -0
- package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_7180f8ad.js +3 -0
- package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_b6be66d9.js +3 -0
- package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_f7054fd7.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__66aca5d4._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/src_app_(desktop)_terminal_page_tsx_de5e8d85._.js +1 -1
- package/.next/standalone/.next/server/edge/chunks/[root-of-the-server]__90eeddae._.js +1 -1
- package/.next/standalone/.next/server/edge/chunks/[root-of-the-server]__ca3f649e._.js +1 -1
- package/.next/standalone/.next/server/middleware-manifest.json +1 -1
- package/.next/standalone/.next/server/pages/404.html +1 -1
- package/.next/standalone/.next/server/pages/500.html +2 -2
- package/.next/standalone/.next/static/chunks/{732b7502f82e7c37.css → 044decb96250e420.css} +1 -1
- package/.next/standalone/.next/static/chunks/{23a9627a951672ed.js → 8b53c673e79b82f1.js} +3 -3
- package/.next/standalone/bin/scrub-standalone.js +5 -0
- package/.next/standalone/bin/spaces-dev.js +13 -3
- package/.next/standalone/bin/spaces.js +25 -4
- package/.next/standalone/package-lock.json +2 -2
- package/.next/standalone/package.json +3 -2
- package/.next/standalone/src/app/(desktop)/terminal/page.tsx +22 -1
- package/.next/standalone/src/app/api/network/discovered/route.ts +2 -2
- package/.next/standalone/src/app/api/network/nodes/check/route.ts +2 -2
- package/.next/standalone/src/app/api/network/nodes/route.ts +2 -2
- package/.next/standalone/src/app/api/server-config/route.ts +9 -18
- package/.next/standalone/src/lib/admin/api/analytics.ts +1 -8
- package/.next/standalone/src/lib/admin/api/users.ts +1 -8
- package/.next/standalone/src/lib/admin/api/usersById.ts +1 -8
- package/.next/standalone/src/lib/auth/guard.ts +46 -0
- package/.next/standalone/src/lib/auth/index.ts +1 -0
- package/.next/standalone/src/lib/db/queries.ts +11 -1
- package/.next/standalone/src/lib/network/api/discovered.ts +4 -1
- package/.next/standalone/src/lib/network/api/identity.ts +6 -0
- package/.next/standalone/src/lib/network/api/keys.ts +6 -0
- package/.next/standalone/src/lib/network/api/keysById.ts +3 -0
- package/.next/standalone/src/lib/network/api/nodes.ts +49 -3
- package/.next/standalone/src/lib/network/api/nodesById.ts +5 -0
- package/.next/standalone/src/lib/network/api/nodesCheck.ts +4 -1
- package/.next/standalone/src/lib/network/api/proxy.ts +5 -0
- package/.next/standalone/src/middleware.ts +24 -10
- package/.next/standalone/tsconfig.tsbuildinfo +1 -1
- package/bin/scrub-standalone.js +5 -0
- package/bin/spaces-dev.js +13 -3
- package/bin/spaces.js +25 -4
- package/package.json +3 -2
- package/.next/standalone/.next/server/chunks/[externals]_next_dist_b89b5a39._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0153ac12._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__01a4559c._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__029ab763._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__037992dc._.js +0 -141
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__06bb204a._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0fd17dcf._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__107439ea._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__12dff461._.js +0 -78
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__13eb511a._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__141c8d34._.js +0 -172
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__151efd48._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__16c141c2._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__17fee60c._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1a525be8._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1aea45f5._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1cb4ee6b._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1e25d3db._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1f7566a3._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__20382bee._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__2082a624._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__2091a7ed._.js +0 -42
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__24525ae7._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__284b02fc._.js +0 -42
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__2a1a1d0f._.js +0 -42
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__2cf17888._.js +0 -42
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__323ae5c9._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__34db98f7._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__39efba69._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__3aeedc57._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__3bbe9d04._.js +0 -78
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__3c2324ba._.js +0 -42
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__40df3f5d._.js +0 -172
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__42a3fe3c._.js +0 -141
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__42d5d5be._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__49821b61._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__49f58cee._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__4b9c38dc._.js +0 -141
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__4c0ee9c7._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__530862c6._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__55504160._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__599f26fe._.js +0 -42
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__5efa69f5._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__60483ece._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__61135659._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__66331034._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__6887294d._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__6b9396b4._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__6cfd7062._.js +0 -166
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__6e8d89e2._.js +0 -149
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__6f5b3cfe._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__71d5b087._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__76434a8e._.js +0 -78
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__798bafa7._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__7b873fdb._.js +0 -78
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__7d73f791._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__7dc76d0e._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__80a85d1f._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__81f2a9b7._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__82f11618._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__834efefe._.js +0 -42
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__853663ea._.js +0 -42
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__861f2472._.js +0 -172
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__882d0924._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__88959e7f._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__8b6c05dc._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__912a22a4._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__93d21ad1._.js +0 -42
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__94532b09._.js +0 -42
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__97e87518._.js +0 -78
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__9c13c8d0._.js +0 -78
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__9cb13212._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__9d315363._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__9ec369db._.js +0 -13
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__9f09ade5._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__9f986ad2._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__a35913cf._.js +0 -172
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__a3641117._.js +0 -78
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__a76c75a0._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__a934c48d._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__a9431ac6._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__aa3381a4._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__ab1cc16c._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__ab22ca4f._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__ac20d518._.js +0 -78
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__aee3bf91._.js +0 -172
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__b1114936._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__b15ade1f._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__b2bc7a81._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__b51446e5._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__ba344563._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__c3b2e20c._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__ca93ae79._.js +0 -42
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__cf4a76c0._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__d20bed9e._.js +0 -78
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__d2d59054._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__d4f1c0c0._.js +0 -38
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__d6de7a45._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__da33b519._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__dc820e44._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__e1058e69._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__e1dfb4d4._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__e3606cd1._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__e55b6fc5._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__e6555dc3._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__e65c3971._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__ea9e2d75._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__ec37cbee._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__f3c19e4b._.js +0 -42
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__f445bd01._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__f7b0b4da._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__fb4c016b._.js +0 -133
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__fd86530e._.js +0 -78
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__fef9b1ec._.js +0 -133
- package/.next/standalone/docs/plans/2026-02-24-multi-agent-sessions-design.md +0 -133
- package/.next/standalone/docs/plans/2026-02-24-multi-agent-sessions-plan.md +0 -959
- package/.next/standalone/docs/plans/2026-03-07-service-command-design.md +0 -146
- package/.next/standalone/docs/plans/2026-03-07-service-command-plan.md +0 -254
- package/.next/standalone/docs/plans/2026-04-23-consolidate-addons-design.md +0 -212
- package/.next/standalone/docs/plans/2026-04-23-consolidate-addons-plan.md +0 -1509
- package/.next/standalone/docs/superpowers/plans/2026-03-12-spaces-cortex.md +0 -5270
- package/.next/standalone/docs/superpowers/plans/2026-03-13-cortex-wiring.md +0 -1387
- package/.next/standalone/docs/superpowers/plans/2026-03-14-cortex-v2-entity-graph.md +0 -1923
- package/.next/standalone/docs/superpowers/plans/2026-03-14-cortex-v2-knowledge-evolution.md +0 -1113
- package/.next/standalone/docs/superpowers/plans/2026-03-15-cortex-v2-boundary-engine.md +0 -853
- package/.next/standalone/docs/superpowers/plans/2026-03-15-cortex-v2-context-engine.md +0 -1274
- package/.next/standalone/docs/superpowers/plans/2026-03-15-cortex-v2-signal-ingestion.md +0 -933
- package/.next/standalone/docs/superpowers/plans/2026-03-16-cortex-lobes.md +0 -1080
- package/.next/standalone/docs/superpowers/plans/2026-03-16-cortex-v2-gravity-system.md +0 -768
- package/.next/standalone/docs/superpowers/plans/2026-03-16-cortex-v2-ui.md +0 -1108
- package/.next/standalone/docs/superpowers/plans/2026-03-18-cortex-ui-integration.md +0 -1846
- package/.next/standalone/docs/superpowers/plans/2026-03-19-vr-phase1-shell.md +0 -1639
- package/.next/standalone/docs/superpowers/plans/2026-03-27-dockview-pane-layout.md +0 -98
- package/.next/standalone/docs/superpowers/plans/2026-04-21-workspace-todos.md +0 -1097
- package/.next/standalone/docs/superpowers/plans/2026-04-22-claude-usage-display.md +0 -749
- package/.next/standalone/docs/superpowers/specs/2026-03-11-universe-view-design.md +0 -320
- package/.next/standalone/docs/superpowers/specs/2026-03-12-spaces-brain-design.md +0 -720
- package/.next/standalone/docs/superpowers/specs/2026-03-13-cortex-wiring-design.md +0 -268
- package/.next/standalone/docs/superpowers/specs/2026-03-14-cortex-v2-design.md +0 -623
- package/.next/standalone/docs/superpowers/specs/2026-03-16-cortex-lobes-design.md +0 -263
- package/.next/standalone/docs/superpowers/specs/2026-03-16-cortex-v2-ui-design.md +0 -240
- package/.next/standalone/docs/superpowers/specs/2026-03-16-pane-ux-design.md +0 -77
- package/.next/standalone/docs/superpowers/specs/2026-03-18-cortex-ui-integration-design.md +0 -341
- package/.next/standalone/docs/superpowers/specs/2026-03-19-vr-phase1-shell-design.md +0 -288
- package/.next/standalone/docs/superpowers/specs/2026-03-27-pane-diff-review-and-project-wizard-design.md +0 -322
- package/.next/standalone/docs/superpowers/specs/2026-04-21-workspace-todos-design.md +0 -180
- package/.next/standalone/docs/superpowers/specs/2026-04-22-claude-usage-display-design.md +0 -183
- /package/.next/standalone/.next/static/{Y9EeSGuSi-8qpkLvIBy0a → mimGB6C_ZmJMiVnOe9tqZ}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{Y9EeSGuSi-8qpkLvIBy0a → mimGB6C_ZmJMiVnOe9tqZ}/_clientMiddlewareManifest.json +0 -0
- /package/.next/standalone/.next/static/{Y9EeSGuSi-8qpkLvIBy0a → mimGB6C_ZmJMiVnOe9tqZ}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[862101,e=>{"use strict";var t=e.i(747909),r=e.i(174017),a=e.i(996250),n=e.i(759756),o=e.i(561916),s=e.i(174677),i=e.i(869741),l=e.i(316795),u=e.i(487718),d=e.i(995169),c=e.i(47587),p=e.i(666012),h=e.i(570101),R=e.i(626937),f=e.i(10372),v=e.i(193695);e.i(52474);var E=e.i(600220),g=e.i(708784),w=e.i(279174),C=e.i(691180),m=e.i(446786);async function y(e){let t=e.headers.get("x-auth-user")||m.default.userInfo().username,{code:r,action:a}=await e.json(),n=(0,g.getUser)(t);if(!n||!n.totp_enabled||!n.totp_secret)return Response.json({success:!1,error:"TOTP not configured"},{status:400});if(!(0,w.verifyCode)(n.totp_secret,r))return Response.json({success:!1,error:"Invalid code"},{status:401});let o=(0,w.issueTerminalToken)(t),s=(0,C.issueSessionToken)(t,n.role),i=Response.json({success:!0,terminalToken:o});return(0,C.setSessionCookie)(i,s),i}async function x(e){return y(e)}e.s(["POST",()=>x],163333);var T=e.i(163333);let A=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/auth/totp/verify/route",pathname:"/api/auth/totp/verify",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/auth/totp/verify/route.ts",nextConfigOutput:"standalone",userland:T}),{workAsyncStorage:P,workUnitAsyncStorage:N,serverHooks:O}=A;function _(){return(0,a.patchFetch)({workAsyncStorage:P,workUnitAsyncStorage:N})}async function b(e,t,a){A.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let g="/api/auth/totp/verify/route";g=g.replace(/\/index$/,"")||"/";let w=await A.prepare(e,t,{srcPage:g,multiZoneDraftMode:!1});if(!w)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:C,params:m,nextConfig:y,parsedUrl:x,isDraftMode:T,prerenderManifest:P,routerServerContext:N,isOnDemandRevalidate:O,revalidateOnlyGenerated:_,resolvedPathname:b,clientReferenceManifest:S,serverActionsManifest:H}=w,I=(0,i.normalizeAppPath)(g),U=!!(P.dynamicRoutes[I]||P.routes[b]),k=async()=>((null==N?void 0:N.render404)?await N.render404(e,t,x,!1):t.end("This page could not be found"),null);if(U&&!T){let e=!!P.routes[b],t=P.dynamicRoutes[I];if(t&&!1===t.fallback&&!e){if(y.experimental.adapterPath)return await k();throw new v.NoFallbackError}}let q=null;!U||A.isDev||T||(q="/index"===(q=b)?"/":q);let D=!0===A.isDev||!U,M=U&&!D;H&&S&&(0,s.setManifestsSingleton)({page:g,clientReferenceManifest:S,serverActionsManifest:H});let j=e.method||"GET",$=(0,o.getTracer)(),F=$.getActiveScopeSpan(),K={params:m,prerenderManifest:P,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts},cacheComponents:!!y.cacheComponents,supportsDynamicResponse:D,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:y.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>A.onRequestError(e,t,a,n,N)},sharedContext:{buildId:C}},B=new l.NodeNextRequest(e),L=new l.NodeNextResponse(t),G=u.NextRequestAdapter.fromNodeNextRequest(B,(0,u.signalFromNodeResponse)(t));try{let s=async e=>A.handle(G,K).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=$.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route");if(a){let t=`${j} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${j} ${g}`)}),i=!!(0,n.getRequestMeta)(e,"minimalMode"),l=async n=>{var o,l;let u=async({previousCacheEntry:r})=>{try{if(!i&&O&&_&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let o=await s(n);e.fetchMetrics=K.renderOpts.fetchMetrics;let l=K.renderOpts.pendingWaitUntil;l&&a.waitUntil&&(a.waitUntil(l),l=void 0);let u=K.renderOpts.collectedTags;if(!U)return await (0,p.sendResponse)(B,L,o,K.renderOpts.pendingWaitUntil),null;{let e=await o.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(o.headers);u&&(t[f.NEXT_CACHE_TAGS_HEADER]=u),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==K.renderOpts.collectedRevalidate&&!(K.renderOpts.collectedRevalidate>=f.INFINITE_CACHE)&&K.renderOpts.collectedRevalidate,a=void 0===K.renderOpts.collectedExpire||K.renderOpts.collectedExpire>=f.INFINITE_CACHE?void 0:K.renderOpts.collectedExpire;return{value:{kind:E.CachedRouteKind.APP_ROUTE,status:o.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await A.onRequestError(e,t,{routerKind:"App Router",routePath:g,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:M,isOnDemandRevalidate:O})},!1,N),t}},d=await A.handleResponse({req:e,nextConfig:y,cacheKey:q,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:P,isRoutePPREnabled:!1,isOnDemandRevalidate:O,revalidateOnlyGenerated:_,responseGenerator:u,waitUntil:a.waitUntil,isMinimalMode:i});if(!U)return null;if((null==d||null==(o=d.value)?void 0:o.kind)!==E.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(l=d.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});i||t.setHeader("x-nextjs-cache",O?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),T&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let v=(0,h.fromNodeOutgoingHttpHeaders)(d.value.headers);return i&&U||v.delete(f.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||v.get("Cache-Control")||v.set("Cache-Control",(0,R.getCacheControlHeader)(d.cacheControl)),await (0,p.sendResponse)(B,L,new Response(d.value.body,{headers:v,status:d.value.status||200})),null};F?await l(F):await $.withPropagatedContext(e.headers,()=>$.trace(d.BaseServerSpan.handleRequest,{spanName:`${j} ${g}`,kind:o.SpanKind.SERVER,attributes:{"http.method":j,"http.target":e.url}},l))}catch(t){if(t instanceof v.NoFallbackError||await A.onRequestError(e,t,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:M,isOnDemandRevalidate:O})},!1,N),U)throw t;return await (0,p.sendResponse)(B,L,new Response(null,{status:500})),null}}e.s(["handler",()=>b,"patchFetch",()=>_,"routeModule",()=>A,"serverHooks",()=>O,"workAsyncStorage",()=>P,"workUnitAsyncStorage",()=>N],862101)}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=node_modules_next_dist_esm_build_templates_app-route_4c408326.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[600391,e=>{"use strict";var t=e.i(747909),a=e.i(174017),r=e.i(996250),n=e.i(759756),s=e.i(561916),i=e.i(174677),o=e.i(869741),l=e.i(316795),u=e.i(487718),d=e.i(995169),p=e.i(47587),c=e.i(666012),f=e.i(570101),h=e.i(626937),m=e.i(10372),g=e.i(193695);e.i(52474);var R=e.i(600220),x=e.i(89171);e.i(768724);var w=e.i(793765),v=e.i(522734),y=e.i(814747);let C=new Set([".png",".jpg",".jpeg",".gif",".ico",".bmp",".webp",".svg"]),E=new Set([".woff",".woff2",".ttf",".eot",".otf",".zip",".gz",".tar",".rar",".7z",".exe",".dll",".so",".dylib",".node",".mp3",".mp4",".wav",".avi",".mov",".db",".sqlite",".sqlite3"]),N=new Set(["node_modules",".git",".next","__pycache__",".turbo","dist",".cache"]),b={".png":"image/png",".jpg":"image/jpeg",".jpeg":"image/jpeg",".gif":"image/gif",".ico":"image/x-icon",".bmp":"image/bmp",".webp":"image/webp",".svg":"image/svg+xml",".pdf":"application/pdf"};async function A(e){let t=(0,w.getAuthUser)(e);return(0,w.withUser)(t,async()=>{let t=e.nextUrl.searchParams.get("path"),a=e.nextUrl.searchParams.get("file"),r=e.nextUrl.searchParams.get("raw"),n=parseInt(e.nextUrl.searchParams.get("limit")||"2000",10);if(r)try{let e=y.default.resolve(r),t=y.default.extname(e).toLowerCase(),a=v.default.statSync(e),n=b[t]||"application/octet-stream",s=v.default.readFileSync(e);return new x.NextResponse(s,{headers:{"Content-Type":n,"Content-Length":String(a.size),"Cache-Control":"private, max-age=60"}})}catch{return new x.NextResponse("Not found",{status:404})}if(a)try{let e=y.default.resolve(a),t=v.default.statSync(e),r=y.default.extname(e).toLowerCase();if(C.has(r)){if(t.size>0x1400000)return x.NextResponse.json({image:!0,tooLarge:!0,ext:r,size:t.size,name:y.default.basename(e)});return x.NextResponse.json({name:y.default.basename(e),path:e,image:!0,ext:r,size:t.size,rawUrl:`/api/files?raw=${encodeURIComponent(e)}`})}if(".pdf"===r)return x.NextResponse.json({name:y.default.basename(e),path:e,pdf:!0,ext:r,size:t.size,rawUrl:`/api/files?raw=${encodeURIComponent(e)}`});if(E.has(r))return x.NextResponse.json({binary:!0,ext:r,size:t.size,name:y.default.basename(e)});if(t.size>5242880)return x.NextResponse.json({error:"File too large",size:t.size,name:y.default.basename(e)});let s=v.default.readFileSync(e,"utf-8"),i=s.split("\n");return x.NextResponse.json({name:y.default.basename(e),path:e,content:i.length>n?i.slice(0,n).join("\n"):s,lines:i.length,truncated:i.length>n,size:t.size,ext:r})}catch{return x.NextResponse.json({error:"Cannot read file"},{status:404})}if(!t)return x.NextResponse.json({error:"path parameter required"},{status:400});try{let e=y.default.resolve(t),a=v.default.readdirSync(e,{withFileTypes:!0}).filter(e=>!N.has(e.name)&&!e.name.startsWith(".")).map(t=>({name:t.name,path:y.default.join(e,t.name),isDir:t.isDirectory(),ext:t.isDirectory()?null:y.default.extname(t.name).toLowerCase()})).sort((e,t)=>e.isDir!==t.isDir?e.isDir?-1:1:e.name.localeCompare(t.name));return x.NextResponse.json({current:e,parent:y.default.dirname(e),items:a})}catch{return x.NextResponse.json({error:"Cannot read directory"},{status:404})}})}async function S(e){let t=(0,w.getAuthUser)(e);return(0,w.withUser)(t,async()=>{try{let t=await e.formData(),a=t.get("dir");if(!a)return x.NextResponse.json({error:"dir required"},{status:400});let r=y.default.resolve(a);if(!v.default.existsSync(r)||!v.default.statSync(r).isDirectory())return x.NextResponse.json({error:"Directory not found"},{status:404});let n=t.getAll("files");if(0===n.length)return x.NextResponse.json({error:"No files provided"},{status:400});let s=[];for(let e of n){let t=e.name.replace(/[/\\]/g,"_");if(!t||"."===t||".."===t)continue;let a=y.default.join(r,t),n=Buffer.from(await e.arrayBuffer());v.default.writeFileSync(a,n),s.push(t)}return x.NextResponse.json({uploaded:s.length,files:s})}catch(e){return x.NextResponse.json({error:"Upload failed"},{status:500})}})}e.s(["GET",()=>A,"POST",()=>S,"dynamic",0,"force-dynamic"],518271);var j=e.i(518271);let U=new t.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/files/route",pathname:"/api/files",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/files/route.ts",nextConfigOutput:"standalone",userland:j}),{workAsyncStorage:P,workUnitAsyncStorage:T,serverHooks:_}=U;function D(){return(0,r.patchFetch)({workAsyncStorage:P,workUnitAsyncStorage:T})}async function O(e,t,r){U.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let x="/api/files/route";x=x.replace(/\/index$/,"")||"/";let w=await U.prepare(e,t,{srcPage:x,multiZoneDraftMode:!1});if(!w)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:v,params:y,nextConfig:C,parsedUrl:E,isDraftMode:N,prerenderManifest:b,routerServerContext:A,isOnDemandRevalidate:S,revalidateOnlyGenerated:j,resolvedPathname:P,clientReferenceManifest:T,serverActionsManifest:_}=w,D=(0,o.normalizeAppPath)(x),O=!!(b.dynamicRoutes[D]||b.routes[P]),z=async()=>((null==A?void 0:A.render404)?await A.render404(e,t,E,!1):t.end("This page could not be found"),null);if(O&&!N){let e=!!b.routes[P],t=b.dynamicRoutes[D];if(t&&!1===t.fallback&&!e){if(C.experimental.adapterPath)return await z();throw new g.NoFallbackError}}let q=null;!O||U.isDev||N||(q="/index"===(q=P)?"/":q);let I=!0===U.isDev||!O,H=O&&!I;_&&T&&(0,i.setManifestsSingleton)({page:x,clientReferenceManifest:T,serverActionsManifest:_});let k=e.method||"GET",F=(0,s.getTracer)(),M=F.getActiveScopeSpan(),$={params:y,prerenderManifest:b,renderOpts:{experimental:{authInterrupts:!!C.experimental.authInterrupts},cacheComponents:!!C.cacheComponents,supportsDynamicResponse:I,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:C.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,r,n)=>U.onRequestError(e,t,r,n,A)},sharedContext:{buildId:v}},L=new l.NodeNextRequest(e),K=new l.NodeNextResponse(t),B=u.NextRequestAdapter.fromNodeNextRequest(L,(0,u.signalFromNodeResponse)(t));try{let i=async e=>U.handle(B,$).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=F.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let r=a.get("next.route");if(r){let t=`${k} ${r}`;e.setAttributes({"next.route":r,"http.route":r,"next.span_name":t}),e.updateName(t)}else e.updateName(`${k} ${x}`)}),o=!!(0,n.getRequestMeta)(e,"minimalMode"),l=async n=>{var s,l;let u=async({previousCacheEntry:a})=>{try{if(!o&&S&&j&&!a)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await i(n);e.fetchMetrics=$.renderOpts.fetchMetrics;let l=$.renderOpts.pendingWaitUntil;l&&r.waitUntil&&(r.waitUntil(l),l=void 0);let u=$.renderOpts.collectedTags;if(!O)return await (0,c.sendResponse)(L,K,s,$.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(s.headers);u&&(t[m.NEXT_CACHE_TAGS_HEADER]=u),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==$.renderOpts.collectedRevalidate&&!($.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&$.renderOpts.collectedRevalidate,r=void 0===$.renderOpts.collectedExpire||$.renderOpts.collectedExpire>=m.INFINITE_CACHE?void 0:$.renderOpts.collectedExpire;return{value:{kind:R.CachedRouteKind.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:r}}}}catch(t){throw(null==a?void 0:a.isStale)&&await U.onRequestError(e,t,{routerKind:"App Router",routePath:x,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:S})},!1,A),t}},d=await U.handleResponse({req:e,nextConfig:C,cacheKey:q,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:b,isRoutePPREnabled:!1,isOnDemandRevalidate:S,revalidateOnlyGenerated:j,responseGenerator:u,waitUntil:r.waitUntil,isMinimalMode:o});if(!O)return null;if((null==d||null==(s=d.value)?void 0:s.kind)!==R.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(l=d.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});o||t.setHeader("x-nextjs-cache",S?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),N&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let g=(0,f.fromNodeOutgoingHttpHeaders)(d.value.headers);return o&&O||g.delete(m.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||g.get("Cache-Control")||g.set("Cache-Control",(0,h.getCacheControlHeader)(d.cacheControl)),await (0,c.sendResponse)(L,K,new Response(d.value.body,{headers:g,status:d.value.status||200})),null};M?await l(M):await F.withPropagatedContext(e.headers,()=>F.trace(d.BaseServerSpan.handleRequest,{spanName:`${k} ${x}`,kind:s.SpanKind.SERVER,attributes:{"http.method":k,"http.target":e.url}},l))}catch(t){if(t instanceof g.NoFallbackError||await U.onRequestError(e,t,{routerKind:"App Router",routePath:D,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:S})},!1,A),O)throw t;return await (0,c.sendResponse)(L,K,new Response(null,{status:500})),null}}e.s(["handler",()=>O,"patchFetch",()=>D,"routeModule",()=>U,"serverHooks",()=>_,"workAsyncStorage",()=>P,"workUnitAsyncStorage",()=>T],600391)}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=node_modules_next_dist_esm_build_templates_app-route_5603adbc.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[630450,e=>{"use strict";var t=e.i(747909),r=e.i(174017),n=e.i(996250),a=e.i(759756),o=e.i(561916),s=e.i(174677),i=e.i(869741),l=e.i(316795),u=e.i(487718),d=e.i(995169),c=e.i(47587),p=e.i(666012),h=e.i(570101),R=e.i(626937),f=e.i(10372),g=e.i(193695);e.i(52474);var v=e.i(600220),w=e.i(362562),E=e.i(708784),C=e.i(691180),m=e.i(279174);let y=(0,w.createRequire)("/ROOT/src/lib/auth/api/login.ts")("qrcode");async function T(e){try{let{username:t,password:r,totpCode:n,setupSecret:a}=await e.json();if(!t||!r)return Response.json({error:"Username and password required"},{status:400});let o=(0,E.getUser)(t);if(!o||!(0,E.verifyPassword)(r,o.password_hash))return Response.json({error:"Invalid username or password"},{status:401});if(!o.totp_enabled){if(!n){let{secret:e,uri:r}=(0,m.generateSecret)(t),n=await y.toDataURL(r);return Response.json({status:"setup-totp",setupSecret:e,qrDataUrl:n})}if(!a)return Response.json({error:"Setup secret required for first-time TOTP"},{status:400});if(!(0,m.verifyCode)(a,n))return Response.json({error:"Invalid TOTP code"},{status:401});(0,E.updateUser)(o.id,{totpSecret:a,totpEnabled:!0});let r=(0,C.issueSessionToken)(t,o.role),s=Response.json({status:"ok"});(0,C.setSessionCookie)(s,r);try{(0,E.recordLogin)(t,e.headers.get("x-forwarded-for")||"",e.headers.get("user-agent")||"")}catch{}return s}if(!n)return Response.json({status:"totp-required"});if(!(0,m.verifyCode)(o.totp_secret,n))return Response.json({error:"Invalid TOTP code"},{status:401});let s=(0,C.issueSessionToken)(t,o.role),i=Response.json({status:"ok"});(0,C.setSessionCookie)(i,s);try{(0,E.recordLogin)(t,e.headers.get("x-forwarded-for")||"",e.headers.get("user-agent")||"")}catch{}return i}catch(e){return console.error("[Auth Login]",e),Response.json({error:"Internal server error"},{status:500})}}async function x(e){return T(e)}e.s(["POST",()=>x],211615);var A=e.i(211615);let P=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/auth/login/route",pathname:"/api/auth/login",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/auth/login/route.ts",nextConfigOutput:"standalone",userland:A}),{workAsyncStorage:S,workUnitAsyncStorage:O,serverHooks:b}=P;function N(){return(0,n.patchFetch)({workAsyncStorage:S,workUnitAsyncStorage:O})}async function _(e,t,n){P.isDev&&(0,a.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let w="/api/auth/login/route";w=w.replace(/\/index$/,"")||"/";let E=await P.prepare(e,t,{srcPage:w,multiZoneDraftMode:!1});if(!E)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:C,params:m,nextConfig:y,parsedUrl:T,isDraftMode:x,prerenderManifest:A,routerServerContext:S,isOnDemandRevalidate:O,revalidateOnlyGenerated:b,resolvedPathname:N,clientReferenceManifest:_,serverActionsManifest:U}=E,k=(0,i.normalizeAppPath)(w),q=!!(A.dynamicRoutes[k]||A.routes[N]),I=async()=>((null==S?void 0:S.render404)?await S.render404(e,t,T,!1):t.end("This page could not be found"),null);if(q&&!x){let e=!!A.routes[N],t=A.dynamicRoutes[k];if(t&&!1===t.fallback&&!e){if(y.experimental.adapterPath)return await I();throw new g.NoFallbackError}}let j=null;!q||P.isDev||x||(j="/index"===(j=N)?"/":j);let H=!0===P.isDev||!q,D=q&&!H;U&&_&&(0,s.setManifestsSingleton)({page:w,clientReferenceManifest:_,serverActionsManifest:U});let M=e.method||"GET",L=(0,o.getTracer)(),$=L.getActiveScopeSpan(),F={params:m,prerenderManifest:A,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts},cacheComponents:!!y.cacheComponents,supportsDynamicResponse:H,incrementalCache:(0,a.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:y.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,a)=>P.onRequestError(e,t,n,a,S)},sharedContext:{buildId:C}},K=new l.NodeNextRequest(e),B=new l.NodeNextResponse(t),G=u.NextRequestAdapter.fromNodeNextRequest(K,(0,u.signalFromNodeResponse)(t));try{let s=async e=>P.handle(G,F).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=L.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=r.get("next.route");if(n){let t=`${M} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${M} ${w}`)}),i=!!(0,a.getRequestMeta)(e,"minimalMode"),l=async a=>{var o,l;let u=async({previousCacheEntry:r})=>{try{if(!i&&O&&b&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let o=await s(a);e.fetchMetrics=F.renderOpts.fetchMetrics;let l=F.renderOpts.pendingWaitUntil;l&&n.waitUntil&&(n.waitUntil(l),l=void 0);let u=F.renderOpts.collectedTags;if(!q)return await (0,p.sendResponse)(K,B,o,F.renderOpts.pendingWaitUntil),null;{let e=await o.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(o.headers);u&&(t[f.NEXT_CACHE_TAGS_HEADER]=u),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==F.renderOpts.collectedRevalidate&&!(F.renderOpts.collectedRevalidate>=f.INFINITE_CACHE)&&F.renderOpts.collectedRevalidate,n=void 0===F.renderOpts.collectedExpire||F.renderOpts.collectedExpire>=f.INFINITE_CACHE?void 0:F.renderOpts.collectedExpire;return{value:{kind:v.CachedRouteKind.APP_ROUTE,status:o.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==r?void 0:r.isStale)&&await P.onRequestError(e,t,{routerKind:"App Router",routePath:w,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:O})},!1,S),t}},d=await P.handleResponse({req:e,nextConfig:y,cacheKey:j,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:O,revalidateOnlyGenerated:b,responseGenerator:u,waitUntil:n.waitUntil,isMinimalMode:i});if(!q)return null;if((null==d||null==(o=d.value)?void 0:o.kind)!==v.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(l=d.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});i||t.setHeader("x-nextjs-cache",O?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),x&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let g=(0,h.fromNodeOutgoingHttpHeaders)(d.value.headers);return i&&q||g.delete(f.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||g.get("Cache-Control")||g.set("Cache-Control",(0,R.getCacheControlHeader)(d.cacheControl)),await (0,p.sendResponse)(K,B,new Response(d.value.body,{headers:g,status:d.value.status||200})),null};$?await l($):await L.withPropagatedContext(e.headers,()=>L.trace(d.BaseServerSpan.handleRequest,{spanName:`${M} ${w}`,kind:o.SpanKind.SERVER,attributes:{"http.method":M,"http.target":e.url}},l))}catch(t){if(t instanceof g.NoFallbackError||await P.onRequestError(e,t,{routerKind:"App Router",routePath:k,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:O})},!1,S),q)throw t;return await (0,p.sendResponse)(K,B,new Response(null,{status:500})),null}}e.s(["handler",()=>_,"patchFetch",()=>N,"routeModule",()=>P,"serverHooks",()=>b,"workAsyncStorage",()=>S,"workUnitAsyncStorage",()=>O],630450)}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=node_modules_next_dist_esm_build_templates_app-route_7180f8ad.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[984636,e=>{"use strict";var t=e.i(747909),n=e.i(174017),a=e.i(996250),r=e.i(759756),i=e.i(561916),o=e.i(174677),s=e.i(869741),l=e.i(316795),u=e.i(487718),d=e.i(995169),c=e.i(47587),p=e.i(666012),h=e.i(570101),R=e.i(626937),g=e.i(10372),v=e.i(193695);e.i(52474);var m=e.i(600220),f=e.i(708784),E=e.i(908146);async function y(e){let t=(0,E.requireAdmin)(e);if(t)return t;let n=Math.min(Math.max(parseInt(new URL(e.url).searchParams.get("days")||"30",10),1),365);try{let e=(0,f.getActiveSessionCount)(),t=(0,f.getLoginEvents)(n),a=(0,f.getTerminalSessions)(n),r=(0,f.getDailyLoginCounts)(n),i=(0,f.getDailySessionMinutes)(n),o=(0,f.getUserSessionSummary)(n),s=t.length,l=Math.round(a.reduce((e,t)=>e+(t.duration_seconds||0),0)/60);return Response.json({activeSessions:e,totalLogins:s,totalSessionMinutes:l,recentLogins:t.slice(0,100),dailyLogins:r,dailySessionTime:i,userSummary:o})}catch(e){return console.error("[Admin Analytics]",e),Response.json({error:"Internal server error"},{status:500})}}async function w(e){return y(e)}e.s(["GET",()=>w],947836);var C=e.i(947836);let A=new t.AppRouteRouteModule({definition:{kind:n.RouteKind.APP_ROUTE,page:"/api/admin/analytics/route",pathname:"/api/admin/analytics",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/admin/analytics/route.ts",nextConfigOutput:"standalone",userland:C}),{workAsyncStorage:x,workUnitAsyncStorage:T,serverHooks:P}=A;function S(){return(0,a.patchFetch)({workAsyncStorage:x,workUnitAsyncStorage:T})}async function N(e,t,a){A.isDev&&(0,r.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let f="/api/admin/analytics/route";f=f.replace(/\/index$/,"")||"/";let E=await A.prepare(e,t,{srcPage:f,multiZoneDraftMode:!1});if(!E)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:y,params:w,nextConfig:C,parsedUrl:x,isDraftMode:T,prerenderManifest:P,routerServerContext:S,isOnDemandRevalidate:N,revalidateOnlyGenerated:b,resolvedPathname:O,clientReferenceManifest:_,serverActionsManifest:U}=E,H=(0,s.normalizeAppPath)(f),I=!!(P.dynamicRoutes[H]||P.routes[O]),M=async()=>((null==S?void 0:S.render404)?await S.render404(e,t,x,!1):t.end("This page could not be found"),null);if(I&&!T){let e=!!P.routes[O],t=P.dynamicRoutes[H];if(t&&!1===t.fallback&&!e){if(C.experimental.adapterPath)return await M();throw new v.NoFallbackError}}let q=null;!I||A.isDev||T||(q="/index"===(q=O)?"/":q);let D=!0===A.isDev||!I,k=I&&!D;U&&_&&(0,o.setManifestsSingleton)({page:f,clientReferenceManifest:_,serverActionsManifest:U});let j=e.method||"GET",L=(0,i.getTracer)(),$=L.getActiveScopeSpan(),F={params:w,prerenderManifest:P,renderOpts:{experimental:{authInterrupts:!!C.experimental.authInterrupts},cacheComponents:!!C.cacheComponents,supportsDynamicResponse:D,incrementalCache:(0,r.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:C.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,n,a,r)=>A.onRequestError(e,t,a,r,S)},sharedContext:{buildId:y}},K=new l.NodeNextRequest(e),B=new l.NodeNextResponse(t),G=u.NextRequestAdapter.fromNodeNextRequest(K,(0,u.signalFromNodeResponse)(t));try{let o=async e=>A.handle(G,F).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let n=L.getRootSpanAttributes();if(!n)return;if(n.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${n.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=n.get("next.route");if(a){let t=`${j} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${j} ${f}`)}),s=!!(0,r.getRequestMeta)(e,"minimalMode"),l=async r=>{var i,l;let u=async({previousCacheEntry:n})=>{try{if(!s&&N&&b&&!n)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let i=await o(r);e.fetchMetrics=F.renderOpts.fetchMetrics;let l=F.renderOpts.pendingWaitUntil;l&&a.waitUntil&&(a.waitUntil(l),l=void 0);let u=F.renderOpts.collectedTags;if(!I)return await (0,p.sendResponse)(K,B,i,F.renderOpts.pendingWaitUntil),null;{let e=await i.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(i.headers);u&&(t[g.NEXT_CACHE_TAGS_HEADER]=u),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let n=void 0!==F.renderOpts.collectedRevalidate&&!(F.renderOpts.collectedRevalidate>=g.INFINITE_CACHE)&&F.renderOpts.collectedRevalidate,a=void 0===F.renderOpts.collectedExpire||F.renderOpts.collectedExpire>=g.INFINITE_CACHE?void 0:F.renderOpts.collectedExpire;return{value:{kind:m.CachedRouteKind.APP_ROUTE,status:i.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:n,expire:a}}}}catch(t){throw(null==n?void 0:n.isStale)&&await A.onRequestError(e,t,{routerKind:"App Router",routePath:f,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:k,isOnDemandRevalidate:N})},!1,S),t}},d=await A.handleResponse({req:e,nextConfig:C,cacheKey:q,routeKind:n.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:P,isRoutePPREnabled:!1,isOnDemandRevalidate:N,revalidateOnlyGenerated:b,responseGenerator:u,waitUntil:a.waitUntil,isMinimalMode:s});if(!I)return null;if((null==d||null==(i=d.value)?void 0:i.kind)!==m.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(l=d.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});s||t.setHeader("x-nextjs-cache",N?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),T&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let v=(0,h.fromNodeOutgoingHttpHeaders)(d.value.headers);return s&&I||v.delete(g.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||v.get("Cache-Control")||v.set("Cache-Control",(0,R.getCacheControlHeader)(d.cacheControl)),await (0,p.sendResponse)(K,B,new Response(d.value.body,{headers:v,status:d.value.status||200})),null};$?await l($):await L.withPropagatedContext(e.headers,()=>L.trace(d.BaseServerSpan.handleRequest,{spanName:`${j} ${f}`,kind:i.SpanKind.SERVER,attributes:{"http.method":j,"http.target":e.url}},l))}catch(t){if(t instanceof v.NoFallbackError||await A.onRequestError(e,t,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:k,isOnDemandRevalidate:N})},!1,S),I)throw t;return await (0,p.sendResponse)(K,B,new Response(null,{status:500})),null}}e.s(["handler",()=>N,"patchFetch",()=>S,"routeModule",()=>A,"serverHooks",()=>P,"workAsyncStorage",()=>x,"workUnitAsyncStorage",()=>T],984636)}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=node_modules_next_dist_esm_build_templates_app-route_b6be66d9.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[793025,e=>{"use strict";var t=e.i(747909),a=e.i(174017),n=e.i(996250),r=e.i(759756),o=e.i(561916),i=e.i(174677),s=e.i(869741),l=e.i(316795),u=e.i(487718),d=e.i(995169),c=e.i(47587),p=e.i(666012),h=e.i(570101),R=e.i(626937),f=e.i(10372),m=e.i(193695);e.i(52474);var v=e.i(600220),E=e.i(89171),g=e.i(446786),w=e.i(299357),C=e.i(708784);async function x(e){let t=e.headers.get("x-auth-user"),a=e.headers.get("x-auth-role")||"user";if(!t)return Response.json({error:"Not authenticated"},{status:401});try{let e=(0,C.getUser)(t);return Response.json({username:t,role:a,displayName:e?.display_name||t})}catch{return Response.json({username:t,role:a,displayName:t})}}async function y(e){return w.IS_MULTIUSER?x(e):E.NextResponse.json({username:g.default.userInfo().username,role:"admin",displayName:g.default.userInfo().username})}e.s(["GET",()=>y],495399);var A=e.i(495399);let N=new t.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/auth/me/route",pathname:"/api/auth/me",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/auth/me/route.ts",nextConfigOutput:"standalone",userland:A}),{workAsyncStorage:T,workUnitAsyncStorage:P,serverHooks:_}=N;function b(){return(0,n.patchFetch)({workAsyncStorage:T,workUnitAsyncStorage:P})}async function O(e,t,n){N.isDev&&(0,r.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let E="/api/auth/me/route";E=E.replace(/\/index$/,"")||"/";let g=await N.prepare(e,t,{srcPage:E,multiZoneDraftMode:!1});if(!g)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:w,params:C,nextConfig:x,parsedUrl:y,isDraftMode:A,prerenderManifest:T,routerServerContext:P,isOnDemandRevalidate:_,revalidateOnlyGenerated:b,resolvedPathname:O,clientReferenceManifest:S,serverActionsManifest:I}=g,U=(0,s.normalizeAppPath)(E),H=!!(T.dynamicRoutes[U]||T.routes[O]),q=async()=>((null==P?void 0:P.render404)?await P.render404(e,t,y,!1):t.end("This page could not be found"),null);if(H&&!A){let e=!!T.routes[O],t=T.dynamicRoutes[U];if(t&&!1===t.fallback&&!e){if(x.experimental.adapterPath)return await q();throw new m.NoFallbackError}}let k=null;!H||N.isDev||A||(k="/index"===(k=O)?"/":k);let D=!0===N.isDev||!H,M=H&&!D;I&&S&&(0,i.setManifestsSingleton)({page:E,clientReferenceManifest:S,serverActionsManifest:I});let j=e.method||"GET",$=(0,o.getTracer)(),F=$.getActiveScopeSpan(),K={params:C,prerenderManifest:T,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:D,incrementalCache:(0,r.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:x.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,n,r)=>N.onRequestError(e,t,n,r,P)},sharedContext:{buildId:w}},L=new l.NodeNextRequest(e),B=new l.NodeNextResponse(t),G=u.NextRequestAdapter.fromNodeNextRequest(L,(0,u.signalFromNodeResponse)(t));try{let i=async e=>N.handle(G,K).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=$.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=a.get("next.route");if(n){let t=`${j} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${j} ${E}`)}),s=!!(0,r.getRequestMeta)(e,"minimalMode"),l=async r=>{var o,l;let u=async({previousCacheEntry:a})=>{try{if(!s&&_&&b&&!a)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let o=await i(r);e.fetchMetrics=K.renderOpts.fetchMetrics;let l=K.renderOpts.pendingWaitUntil;l&&n.waitUntil&&(n.waitUntil(l),l=void 0);let u=K.renderOpts.collectedTags;if(!H)return await (0,p.sendResponse)(L,B,o,K.renderOpts.pendingWaitUntil),null;{let e=await o.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(o.headers);u&&(t[f.NEXT_CACHE_TAGS_HEADER]=u),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==K.renderOpts.collectedRevalidate&&!(K.renderOpts.collectedRevalidate>=f.INFINITE_CACHE)&&K.renderOpts.collectedRevalidate,n=void 0===K.renderOpts.collectedExpire||K.renderOpts.collectedExpire>=f.INFINITE_CACHE?void 0:K.renderOpts.collectedExpire;return{value:{kind:v.CachedRouteKind.APP_ROUTE,status:o.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:n}}}}catch(t){throw(null==a?void 0:a.isStale)&&await N.onRequestError(e,t,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:M,isOnDemandRevalidate:_})},!1,P),t}},d=await N.handleResponse({req:e,nextConfig:x,cacheKey:k,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:T,isRoutePPREnabled:!1,isOnDemandRevalidate:_,revalidateOnlyGenerated:b,responseGenerator:u,waitUntil:n.waitUntil,isMinimalMode:s});if(!H)return null;if((null==d||null==(o=d.value)?void 0:o.kind)!==v.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(l=d.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});s||t.setHeader("x-nextjs-cache",_?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),A&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,h.fromNodeOutgoingHttpHeaders)(d.value.headers);return s&&H||m.delete(f.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,R.getCacheControlHeader)(d.cacheControl)),await (0,p.sendResponse)(L,B,new Response(d.value.body,{headers:m,status:d.value.status||200})),null};F?await l(F):await $.withPropagatedContext(e.headers,()=>$.trace(d.BaseServerSpan.handleRequest,{spanName:`${j} ${E}`,kind:o.SpanKind.SERVER,attributes:{"http.method":j,"http.target":e.url}},l))}catch(t){if(t instanceof m.NoFallbackError||await N.onRequestError(e,t,{routerKind:"App Router",routePath:U,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:M,isOnDemandRevalidate:_})},!1,P),H)throw t;return await (0,p.sendResponse)(L,B,new Response(null,{status:500})),null}}e.s(["handler",()=>O,"patchFetch",()=>b,"routeModule",()=>N,"serverHooks",()=>_,"workAsyncStorage",()=>T,"workUnitAsyncStorage",()=>P],793025)}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=node_modules_next_dist_esm_build_templates_app-route_f7054fd7.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[193695,(a,b,c)=>{b.exports=a.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},804730,a=>{a.v({name:"@jlongo78/agent-spaces",version:"0.10.0-beta.
|
|
1
|
+
module.exports=[193695,(a,b,c)=>{b.exports=a.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},804730,a=>{a.v({name:"@jlongo78/agent-spaces",version:"0.10.0-beta.4",description:"Agent workspace manager for Claude, Codex, Gemini, and more",bin:{spaces:"./bin/spaces.js","spaces-msg":"./bin/spaces-msg.js"},files:["bin/",".next/standalone/"],engines:{node:">=20.9.0"},repository:{type:"git",url:"git+https://github.com/jlongo78/spaces.git"},keywords:["ai","agent","workspace","terminal","claude","codex","gemini"],homepage:"http://www.agentspaces.co",license:"AGPL-3.0-only",scripts:{start:"node bin/spaces.js",dev:"node bin/spaces-dev.js",build:"cross-env STANDALONE=1 next build && node -e \"const fs=require('fs');fs.cpSync('.next/static','.next/standalone/.next/static',{recursive:true});fs.cpSync('public','.next/standalone/public',{recursive:true})\" && node bin/fix-standalone-externals.js",postinstall:"node bin/spaces-postinstall.js || true",prepublishOnly:"npm run build",prepack:"node bin/scrub-standalone.js",setup:"node bin/spaces-setup.js","setup-admin":"node bin/setup-admin.js","server:build":"next build","server:start":"next start --port 3457",test:"vitest run","test:watch":"vitest","test:coverage":"vitest run --coverage",lint:"eslint"},dependencies:{"@dnd-kit/core":"^6.3.1","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@google-cloud/compute":"^6.9.0","@huggingface/transformers":"^3.8.1","@lancedb/lancedb":"^0.26.2","@modelcontextprotocol/sdk":"^1.27.1","@react-three/drei":"^10.7.7","@react-three/fiber":"^9.5.0","@react-three/postprocessing":"^3.0.4","@react-three/xr":"^6.6.29","@xterm/addon-canvas":"^0.7.0","better-sqlite3":"^12.6.2","bonjour-service":"^1.3.0","dockview-react":"^5.2.0","force-graph":"^1.51.2","node-pty":"^1.1.0",otpauth:"^9.0.0",qrcode:"^1.5.0","react-resizable-panels":"^4.7.6",three:"^0.183.2",ws:"^8.19.0"},devDependencies:{"@tailwindcss/postcss":"^4","@tanstack/react-query":"^5.90.21","@types/better-sqlite3":"^7.6.13","@types/node":"^20","@types/qrcode":"^1.5.6","@types/react":"^19","@types/react-dom":"^19","@types/three":"^0.183.1","@types/ws":"^8.18.1","@vitest/coverage-v8":"^4.0.18","@xterm/addon-fit":"^0.11.0","@xterm/addon-web-links":"^0.12.0",chokidar:"^5.0.0","class-variance-authority":"^0.7.1",clsx:"^2.1.1","cross-env":"^10.1.0","date-fns":"^4.1.0",eslint:"^9","eslint-config-next":"16.1.6",geist:"^1.4.1","lucide-react":"^0.575.0",next:"16.1.6",otpauth:"^9.5.0","posthog-js":"^1.352.0","posthog-node":"^5.21.2",qrcode:"^1.5.4",react:"19.2.3","react-dom":"19.2.3","react-markdown":"^10.1.0",recharts:"^3.7.0","rehype-highlight":"^7.0.2","remark-gfm":"^4.0.1","tailwind-merge":"^3.5.0",tailwindcss:"^4",typescript:"^5",vitest:"^4.0.18",xterm:"^5.3.0"},optionalDependencies:{"@types/qrcode":"^1.5.6",otpauth:"^9.5.0",qrcode:"^1.5.4"}})},495044,a=>{a.n(a.i(352425))},426087,a=>{a.n(a.i(821646))},650645,a=>{a.n(a.i(827572))},43619,a=>{a.n(a.i(379962))},13718,a=>{a.n(a.i(685523))},118198,a=>{a.n(a.i(545518))},262212,a=>{a.n(a.i(866114))},754268,a=>{a.n(a.i(496773))}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=%5Broot-of-the-server%5D__66aca5d4._.js.map
|
package/.next/standalone/.next/server/chunks/ssr/src_app_(desktop)_terminal_page_tsx_de5e8d85._.js
CHANGED
|
@@ -82,6 +82,6 @@ module.exports=[266490,a=>{"use strict";let b,c,d;var e,f,g,h,i,j,k,l,m,n,o,p,q,
|
|
|
82
82
|
if (e.data?.type === 'file-update') renderFile(e.data.file);
|
|
83
83
|
if (e.data?.type === 'close-popup') { savePos(); window.close(); }
|
|
84
84
|
};
|
|
85
|
-
</script></body></html>`),g.document.close(),setTimeout(()=>{v.current?.postMessage({type:"file-update",file:a})},100),w.current&&clearInterval(w.current),w.current=setInterval(()=>{u.current?.closed&&(dp({wasPoppedOut:!1}),z.current&&t(!1),u.current=null,w.current&&(clearInterval(w.current),w.current=null))},500)}},E=(0,y.useRef)(null),[F,G]=(0,y.useState)(!1),[H,I]=(0,y.useState)(!1),J=async a=>{if(g&&0!==a.length){G(!0);try{let b=new FormData;for(let c of(b.append("dir",g),Array.from(a)))b.append("files",c);await fetch((0,cT.api)("/api/files"),{method:"POST",body:b});let c=await B(g);j(c.items)}catch{}finally{G(!1)}}},K=e?g.replace(e,"").replace(/^[/\\]/,""):"",L=K?K.split(/[/\\]/):[],M=o&&!s,O=k&&g!==e;return e?(0,x.jsxs)("div",{className:"h-full flex flex-col bg-zinc-950 border-r border-zinc-800",children:[(0,x.jsxs)("div",{className:"flex items-center justify-between px-3 py-2 border-b border-zinc-800/50 flex-shrink-0",children:[(0,x.jsx)("span",{className:"text-[10px] text-zinc-500 uppercase tracking-wider font-medium",children:"Files"}),(0,x.jsx)("button",{onClick:a,className:"p-0.5 text-zinc-600 hover:text-zinc-300 transition-colors",children:(0,x.jsx)(N.X,{className:"w-3.5 h-3.5"})})]}),c.length>1&&(0,x.jsx)("div",{className:"flex items-center gap-1 px-3 py-1.5 border-b border-zinc-800/30 flex-shrink-0 overflow-x-auto",children:c.map(a=>{let b=a.split(/[/\\]/).pop()||a,c=a===e;return(0,x.jsx)("button",{onClick:()=>{f(a),h(a),n(new Set),p(null)},className:`px-2 py-0.5 text-[10px] rounded transition-colors flex-shrink-0 ${c?"bg-amber-500/15 text-amber-400 border border-amber-500/30":"text-zinc-500 hover:text-zinc-300 border border-transparent"}`,title:a,children:b},a)})}),(0,x.jsxs)("div",{className:"flex items-center gap-1 px-3 py-1.5 border-b border-zinc-800/30 overflow-x-auto text-[10px] flex-shrink-0",children:[O&&(0,x.jsx)("button",{onClick:()=>{k&&g!==e&&h(k)},className:"text-zinc-500 hover:text-zinc-300 flex-shrink-0",children:(0,x.jsx)(dh,{className:"w-3 h-3"})}),(0,x.jsx)("input",{ref:E,type:"file",multiple:!0,className:"hidden",onChange:a=>{a.target.files&&J(a.target.files),a.target.value=""}}),(0,x.jsx)("button",{onClick:()=>E.current?.click(),className:"text-zinc-600 hover:text-zinc-300 flex-shrink-0 ml-auto",title:"Upload files to current directory",children:(0,x.jsx)(dk.Upload,{className:"w-3 h-3"})}),(0,x.jsx)("button",{onClick:()=>h(e),className:"text-zinc-500 hover:text-zinc-300 truncate flex-shrink-0",children:e.split(/[/\\]/).pop()}),L.map((a,b)=>(0,x.jsxs)("span",{className:"flex items-center gap-1 flex-shrink-0",children:[(0,x.jsx)("span",{className:"text-zinc-700",children:"/"}),(0,x.jsx)("button",{onClick:()=>{h(e+"/"+L.slice(0,b+1).join("/"))},className:"text-zinc-500 hover:text-zinc-300",children:a})]},b))]}),s&&o&&(0,x.jsxs)("div",{className:"flex items-center gap-2 px-3 py-1.5 border-b border-zinc-800/30 bg-zinc-900/50 flex-shrink-0",children:[(0,x.jsx)("span",{className:"text-[10px] text-zinc-500",children:"Viewing:"}),(0,x.jsx)("span",{className:"text-[10px] text-zinc-400 font-mono truncate flex-1",children:o.name}),(0,x.jsx)("button",{onClick:()=>{dp({wasPoppedOut:!1}),u.current&&!u.current.closed&&u.current.close(),u.current=null,t(!1),w.current&&(clearInterval(w.current),w.current=null)},className:"text-zinc-500 hover:text-zinc-300 transition-colors",title:"Pop back into panel",children:(0,x.jsx)(R,{className:"w-3 h-3"})})]}),(0,x.jsxs)("div",{className:"flex-1 flex flex-col min-h-0 overflow-hidden",children:[(0,x.jsx)("div",{className:`overflow-y-auto ${M?"max-h-[40%] border-b border-zinc-800/30":"flex-1"} ${H?"ring-2 ring-inset ring-amber-500/50 bg-amber-500/5":""}`,onDragOver:a=>{a.preventDefault(),I(!0)},onDragLeave:()=>I(!1),onDrop:a=>{a.preventDefault(),I(!1),a.dataTransfer.files.length>0&&J(a.dataTransfer.files)},children:F?(0,x.jsx)("div",{className:"p-3 text-xs text-amber-400",children:"Uploading..."}):q?(0,x.jsx)("div",{className:"p-3 text-xs text-zinc-600",children:"Loading..."}):0===i.length?(0,x.jsx)("div",{className:"p-3 text-xs text-zinc-600",children:"Empty directory"}):(0,x.jsx)("div",{className:"py-1",children:i.map(a=>(0,x.jsx)(dv,{item:a,depth:0,expanded:m.has(a.path),expandedDirs:m,onClick:C,loadDir:B,activeFile:o?.path},a.path))})}),M&&(0,x.jsxs)("div",{className:"flex-1 flex flex-col min-h-0 overflow-hidden",children:[(0,x.jsxs)("div",{className:"flex items-center justify-between px-3 py-1.5 border-b border-zinc-800/30 flex-shrink-0",children:[(0,x.jsxs)("div",{className:"flex items-center gap-1.5 min-w-0",children:[(0,x.jsx)("span",{className:`text-xs font-mono truncate ${dq(o.ext)}`,children:o.name}),(0,x.jsx)("span",{className:"text-[9px] text-zinc-600",children:o.lines?`${o.lines} lines`:ds(o.size)}),o.truncated&&(0,x.jsx)("span",{className:"text-[9px] text-amber-500",children:"(truncated)"})]}),(0,x.jsxs)("div",{className:"flex items-center gap-1",children:[(0,x.jsx)("button",{onClick:()=>{var a,b;let c;return o&&(a=o.path,b=o.name,void((c=document.createElement("a")).href=(0,cT.api)(`/api/files?raw=${encodeURIComponent(a)}`),c.download=b,c.click()))},className:"p-0.5 text-zinc-600 hover:text-zinc-300 transition-colors",title:"Download file",children:(0,x.jsx)(dj,{className:"w-3 h-3"})}),(0,x.jsx)("button",{onClick:()=>{o&&D(o)},className:"p-0.5 text-zinc-600 hover:text-zinc-300 transition-colors",title:"Open in new window",children:(0,x.jsx)(di.ExternalLink,{className:"w-3 h-3"})}),(0,x.jsx)("button",{onClick:()=>p(null),className:"p-0.5 text-zinc-600 hover:text-zinc-300 transition-colors",children:(0,x.jsx)(N.X,{className:"w-3 h-3"})})]})]}),(0,x.jsx)("div",{className:"flex-1 overflow-auto",children:(0,x.jsx)(du,{file:o})})]})]})]}):(0,x.jsxs)("div",{className:"h-full flex flex-col bg-zinc-950 border-r border-zinc-800",children:[(0,x.jsxs)("div",{className:"flex items-center justify-between px-3 py-2 border-b border-zinc-800/50 flex-shrink-0",children:[(0,x.jsx)("span",{className:"text-[10px] text-zinc-500 uppercase tracking-wider font-medium",children:"Files"}),(0,x.jsx)("button",{onClick:a,className:"p-0.5 text-zinc-600 hover:text-zinc-300 transition-colors",children:(0,x.jsx)(N.X,{className:"w-3.5 h-3.5"})})]}),(0,x.jsx)("div",{className:"p-3 text-xs text-zinc-500",children:0===c.length?"No development directories configured. Add them in Settings.":"Loading..."})]})}function du({file:a}){return a.error?(0,x.jsx)("div",{className:"p-3 text-xs text-red-400",children:a.error}):a.image&&a.rawUrl?(0,x.jsx)("div",{className:"flex items-center justify-center p-4 min-h-[200px]",children:(0,x.jsx)("img",{src:(0,cT.api)(a.rawUrl),alt:a.name,className:"max-w-full max-h-[60vh] object-contain rounded"})}):a.image&&a.tooLarge?(0,x.jsxs)("div",{className:"p-3 text-xs text-zinc-500",children:["Image too large (",ds(a.size),")"]}):a.pdf&&a.rawUrl?(0,x.jsx)("iframe",{src:(0,cT.api)(a.rawUrl),className:"w-full h-full border-none",title:a.name}):a.binary?(0,x.jsxs)("div",{className:"p-3 text-xs text-zinc-500",children:["Binary file (",a.ext,", ",ds(a.size),")"]}):void 0!==a.content?(0,x.jsx)("pre",{className:"text-[11px] leading-4 font-mono p-0 m-0",children:(0,x.jsx)("table",{className:"border-collapse w-full",children:(0,x.jsx)("tbody",{children:a.content.split("\n").map((b,c)=>(0,x.jsxs)("tr",{className:"hover:bg-zinc-800/30",children:[(0,x.jsx)("td",{className:"text-right pr-3 pl-3 text-zinc-700 select-none w-[1%] whitespace-nowrap",children:c+1}),(0,x.jsx)("td",{className:`pr-3 whitespace-pre ${dq(a.ext)}`,children:b||" "})]},c))})})}):null}function dv({item:a,depth:b,expanded:c,expandedDirs:d,onClick:e,loadDir:f,activeFile:g}){let[h,i]=(0,y.useState)(null);(0,y.useEffect)(()=>{c&&a.isDir&&!h&&f(a.path).then(a=>i(a.items))},[c,a.isDir,a.path,h,f]);let j=g===a.path;return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsxs)("button",{onClick:()=>e(a),className:`flex items-center gap-1.5 w-full text-left px-2 py-[3px] text-[11px] transition-colors ${j?"bg-indigo-500/10 text-indigo-300":"text-zinc-400 hover:bg-zinc-800/50 hover:text-zinc-200"}`,style:{paddingLeft:`${8+14*b}px`},children:[a.isDir?c?(0,x.jsx)(G.ChevronDown,{className:"w-3 h-3 text-zinc-600 flex-shrink-0"}):(0,x.jsx)(H.ChevronRight,{className:"w-3 h-3 text-zinc-600 flex-shrink-0"}):(0,x.jsx)("span",{className:"w-3 flex-shrink-0"}),(0,x.jsx)(dr,{item:a}),(0,x.jsx)("span",{className:"truncate",children:a.name})]}),c&&a.isDir&&h&&h.map(a=>(0,x.jsx)(dv,{item:a,depth:b+1,expanded:d.has(a.path),expandedDirs:d,onClick:e,loadDir:f,activeFile:g},a.path))]})}function dw({messages:a,onSend:b,loading:c}){let[d,e]=(0,y.useState)(""),f=(0,y.useRef)(null);(0,y.useEffect)(()=>{f.current&&(f.current.scrollTop=f.current.scrollHeight)},[a,c]);let g=()=>{let a=d.trim();a&&!c&&(e(""),b(a))};return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsxs)("div",{ref:f,className:"flex-1 overflow-y-auto px-6 py-4 space-y-4",children:[0===a.length&&!c&&(0,x.jsxs)("div",{className:"text-center py-12",children:[(0,x.jsx)("p",{className:"text-zinc-400 text-sm mb-1",children:"Describe the project you want to build."}),(0,x.jsx)("p",{className:"text-zinc-600 text-xs",children:"I'll help you plan the workspace, agents, and initial tasks."})]}),a.map((a,b)=>(0,x.jsx)("div",{className:`flex ${"user"===a.role?"justify-end":"justify-start"}`,children:(0,x.jsx)("div",{className:`max-w-[80%] rounded-lg px-3 py-2 text-sm ${"user"===a.role?"bg-indigo-600 text-white":"bg-zinc-800 text-zinc-200"}`,children:(0,x.jsx)("p",{className:"whitespace-pre-wrap",children:a.content})})},b)),c&&(0,x.jsx)("div",{className:"flex justify-start",children:(0,x.jsx)("div",{className:"bg-zinc-800 rounded-lg px-4 py-3",children:(0,x.jsxs)("div",{className:"flex gap-1",children:[(0,x.jsx)("span",{className:"w-2 h-2 bg-zinc-500 rounded-full animate-bounce",style:{animationDelay:"0ms"}}),(0,x.jsx)("span",{className:"w-2 h-2 bg-zinc-500 rounded-full animate-bounce",style:{animationDelay:"150ms"}}),(0,x.jsx)("span",{className:"w-2 h-2 bg-zinc-500 rounded-full animate-bounce",style:{animationDelay:"300ms"}})]})})})]}),(0,x.jsx)("div",{className:"px-6 py-3 border-t border-zinc-800 flex-shrink-0",children:(0,x.jsxs)("div",{className:"flex gap-2",children:[(0,x.jsx)("textarea",{value:d,onChange:a=>e(a.target.value),onKeyDown:a=>{"Enter"!==a.key||a.shiftKey||(a.preventDefault(),g())},placeholder:"Describe your project...",rows:2,className:"flex-1 bg-zinc-900 border border-zinc-700 rounded-lg px-3 py-2 text-sm text-zinc-200 placeholder:text-zinc-600 focus:outline-none focus:border-zinc-500 resize-none"}),(0,x.jsx)("button",{onClick:g,disabled:!d.trim()||c,className:"px-4 bg-indigo-600 hover:bg-indigo-500 disabled:bg-zinc-800 disabled:text-zinc-600 text-white rounded-lg flex items-center gap-1.5 text-sm self-end",children:(0,x.jsx)(c_.Send,{className:"w-3.5 h-3.5"})})]})})]})}let dx=(0,I.default)("sparkles",[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]]),dy={claude:"#6366f1",codex:"#22c55e",gemini:"#3b82f6",aider:"#f59e0b",shell:"#78716c",custom:"#a855f7"};function dz({plan:a,onReview:b}){return a?(0,x.jsxs)("div",{className:"flex flex-col h-full",children:[(0,x.jsxs)("div",{className:"flex-1 overflow-y-auto px-5 py-4 space-y-4",children:[(0,x.jsxs)("div",{children:[(0,x.jsx)("div",{className:"text-[10px] uppercase tracking-wider text-zinc-500 mb-1.5",children:"Workspace"}),(0,x.jsxs)("div",{className:"bg-zinc-800/50 rounded-lg p-3 border border-zinc-700/50",children:[(0,x.jsxs)("div",{className:"flex items-center gap-2 mb-1",children:[(0,x.jsx)("span",{className:"w-3 h-3 rounded-full",style:{backgroundColor:a.workspace.color}}),(0,x.jsx)("span",{className:"text-sm font-medium text-zinc-200",children:a.workspace.name})]}),a.workspace.description&&(0,x.jsx)("p",{className:"text-xs text-zinc-400 mt-1",children:a.workspace.description})]})]}),a.panes.length>0&&(0,x.jsxs)("div",{children:[(0,x.jsxs)("div",{className:"text-[10px] uppercase tracking-wider text-zinc-500 mb-1.5",children:["Panes (",a.panes.length,")"]}),(0,x.jsx)("div",{className:"space-y-2",children:a.panes.map((a,b)=>(0,x.jsxs)("div",{className:"bg-zinc-800/50 rounded-lg p-3 border border-zinc-700/50",children:[(0,x.jsxs)("div",{className:"flex items-center gap-2 mb-1",children:[(0,x.jsx)(B.Terminal,{className:"w-3 h-3 text-zinc-500"}),(0,x.jsx)("span",{className:"text-xs font-medium text-zinc-200",children:a.title}),(0,x.jsx)("span",{className:"text-[9px] px-1.5 py-0.5 rounded font-medium",style:{backgroundColor:`${dy[a.agentType]||"#6366f1"}20`,color:dy[a.agentType]||"#6366f1"},children:a.agentType})]}),a.description&&(0,x.jsx)("p",{className:"text-[11px] text-zinc-500 mt-1",children:a.description}),a.cwd&&(0,x.jsx)("p",{className:"text-[10px] text-zinc-600 font-mono mt-1",children:a.cwd})]},b))})]}),a.summary&&(0,x.jsxs)("div",{children:[(0,x.jsx)("div",{className:"text-[10px] uppercase tracking-wider text-zinc-500 mb-1.5",children:"Summary"}),(0,x.jsx)("p",{className:"text-xs text-zinc-400",children:a.summary})]})]}),(0,x.jsx)("div",{className:"px-5 py-3 border-t border-zinc-800 flex-shrink-0",children:(0,x.jsx)("button",{onClick:b,disabled:!a.panes.length,className:"w-full py-2 text-sm font-medium bg-indigo-600 hover:bg-indigo-500 disabled:bg-zinc-800 disabled:text-zinc-600 text-white rounded-lg transition-colors",children:"Review Plan"})})]}):(0,x.jsxs)("div",{className:"flex flex-col items-center justify-center h-full px-6 text-center",children:[(0,x.jsx)(dx,{className:"w-8 h-8 text-zinc-700 mb-3"}),(0,x.jsx)("p",{className:"text-zinc-500 text-sm",children:"Your project plan will appear here as you chat."})]})}var dA=a.i(400210);let dB=(0,I.default)("rocket",[["path",{d:"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5",key:"qeys4"}],["path",{d:"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09",key:"u4xsad"}],["path",{d:"M9 12a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.4 22.4 0 0 1-4 2z",key:"676m9"}],["path",{d:"M9 12H4s.55-3.03 2-4c1.62-1.08 5 .05 5 .05",key:"92ym6u"}]]),dC=[{value:"claude",label:"Claude Code"},{value:"codex",label:"Codex"},{value:"gemini",label:"Gemini"},{value:"aider",label:"Aider"},{value:"forge",label:"Forge"},{value:"shell",label:"Shell"},{value:"custom",label:"Custom"}],dD=["#ef4444","#f97316","#f59e0b","#eab308","#84cc16","#22c55e","#14b8a6","#06b6d4","#3b82f6","#6366f1","#8b5cf6","#a855f7","#d946ef","#ec4899","#f43f5e","#78716c"];function dE({plan:a,onUpdate:b,onBack:c,onLaunch:d}){let[e,f]=(0,y.useState)([]);(0,y.useEffect)(()=>{fetch((0,cT.api)("/api/config")).then(a=>a.json()).then(a=>{a.customModels&&f(a.customModels)}).catch(()=>{})},[]);let g=(c,d)=>{b({...a,workspace:{...a.workspace,[c]:d}})},h=(c,d,e)=>{let f=[...a.panes];f[c]={...f[c],[d]:e},b({...a,panes:f})},i=a.workspace.name.trim()&&a.panes.length>0&&a.panes.every(a=>a.cwd.trim());return(0,x.jsxs)("div",{className:"max-w-3xl mx-auto px-6 py-6 space-y-6",children:[(0,x.jsxs)("div",{className:"flex items-center justify-between",children:[(0,x.jsxs)("button",{onClick:c,className:"flex items-center gap-1.5 text-xs text-zinc-400 hover:text-white",children:[(0,x.jsx)(dA.ArrowLeft,{className:"w-3.5 h-3.5"}),"Back to Chat"]}),(0,x.jsxs)("button",{onClick:d,disabled:!i,className:"flex items-center gap-1.5 px-4 py-2 text-sm font-medium bg-green-600 hover:bg-green-500 disabled:bg-zinc-800 disabled:text-zinc-600 text-white rounded-lg transition-colors",children:[(0,x.jsx)(dB,{className:"w-3.5 h-3.5"}),"Launch Space"]})]}),(0,x.jsxs)("div",{className:"bg-zinc-900 rounded-lg border border-zinc-700 p-4 space-y-3",children:[(0,x.jsx)("div",{className:"text-[10px] uppercase tracking-wider text-zinc-500",children:"Workspace"}),(0,x.jsxs)("div",{className:"flex gap-3",children:[(0,x.jsxs)("div",{className:"flex-1",children:[(0,x.jsx)("label",{className:"text-[10px] text-zinc-500 block mb-1",children:"Name"}),(0,x.jsx)("input",{value:a.workspace.name,onChange:a=>g("name",a.target.value),className:"w-full bg-zinc-800 border border-zinc-700 rounded px-3 py-1.5 text-sm text-zinc-200 focus:outline-none focus:border-zinc-500"})]}),(0,x.jsxs)("div",{children:[(0,x.jsx)("label",{className:"text-[10px] text-zinc-500 block mb-1",children:"Color"}),(0,x.jsx)("div",{className:"flex gap-1 flex-wrap",style:{width:128},children:dD.map(b=>(0,x.jsx)("button",{onClick:()=>g("color",b),className:`w-5 h-5 rounded-full ${a.workspace.color===b?"ring-2 ring-white ring-offset-1 ring-offset-zinc-900":"hover:ring-1 hover:ring-zinc-500"}`,style:{backgroundColor:b}},b))})]})]}),(0,x.jsxs)("div",{children:[(0,x.jsx)("label",{className:"text-[10px] text-zinc-500 block mb-1",children:"Description"}),(0,x.jsx)("textarea",{value:a.workspace.description,onChange:a=>g("description",a.target.value),rows:2,className:"w-full bg-zinc-800 border border-zinc-700 rounded px-3 py-1.5 text-sm text-zinc-200 focus:outline-none focus:border-zinc-500 resize-none"})]})]}),(0,x.jsxs)("div",{className:"space-y-3",children:[(0,x.jsxs)("div",{className:"flex items-center justify-between",children:[(0,x.jsxs)("div",{className:"text-[10px] uppercase tracking-wider text-zinc-500",children:["Panes (",a.panes.length,")"]}),(0,x.jsxs)("button",{onClick:()=>{b({...a,panes:[...a.panes,{title:"New Pane",agentType:"claude",cwd:"~",description:""}]})},className:"flex items-center gap-1 text-xs text-zinc-400 hover:text-white",children:[(0,x.jsx)(z.Plus,{className:"w-3 h-3"})," Add Pane"]})]}),a.panes.map((c,d)=>(0,x.jsx)("div",{className:"bg-zinc-900 rounded-lg border border-zinc-700 p-4 space-y-2.5",children:(0,x.jsxs)("div",{className:"flex items-start gap-3",children:[(0,x.jsxs)("div",{className:"flex-1 space-y-2.5",children:[(0,x.jsxs)("div",{className:"flex gap-3",children:[(0,x.jsxs)("div",{className:"flex-1",children:[(0,x.jsx)("label",{className:"text-[10px] text-zinc-500 block mb-1",children:"Title"}),(0,x.jsx)("input",{value:c.title,onChange:a=>h(d,"title",a.target.value),className:"w-full bg-zinc-800 border border-zinc-700 rounded px-2 py-1 text-xs text-zinc-200 focus:outline-none focus:border-zinc-500"})]}),(0,x.jsxs)("div",{className:"w-32",children:[(0,x.jsx)("label",{className:"text-[10px] text-zinc-500 block mb-1",children:"Agent"}),(0,x.jsx)("select",{value:c.agentType,onChange:a=>h(d,"agentType",a.target.value),className:"w-full bg-zinc-800 border border-zinc-700 rounded px-2 py-1 text-xs text-zinc-200",children:dC.map(a=>(0,x.jsx)("option",{value:a.value,children:a.label},a.value))})]}),"forge"===c.agentType&&e.length>0&&(0,x.jsxs)("div",{className:"w-40",children:[(0,x.jsx)("label",{className:"text-[10px] text-zinc-500 block mb-1",children:"Custom Model"}),(0,x.jsxs)("select",{value:c.customModelId||"",onChange:a=>h(d,"customModelId",a.target.value),className:"w-full bg-zinc-800 border border-zinc-700 rounded px-2 py-1 text-xs text-zinc-200",children:[(0,x.jsx)("option",{value:"",children:"Default"}),e.map(a=>(0,x.jsx)("option",{value:a.id,children:a.name},a.id))]})]})]}),(0,x.jsxs)("div",{children:[(0,x.jsx)("label",{className:"text-[10px] text-zinc-500 block mb-1",children:"Working Directory"}),(0,x.jsx)("input",{value:c.cwd,onChange:a=>h(d,"cwd",a.target.value),className:"w-full bg-zinc-800 border border-zinc-700 rounded px-2 py-1 text-xs font-mono text-zinc-200 focus:outline-none focus:border-zinc-500",placeholder:"/path/to/project"})]}),(0,x.jsxs)("div",{children:[(0,x.jsx)("label",{className:"text-[10px] text-zinc-500 block mb-1",children:"Initial Prompt (optional)"}),(0,x.jsx)("textarea",{value:c.initialPrompt||"",onChange:a=>h(d,"initialPrompt",a.target.value),rows:2,className:"w-full bg-zinc-800 border border-zinc-700 rounded px-2 py-1 text-xs text-zinc-200 focus:outline-none focus:border-zinc-500 resize-none",placeholder:"What should this agent start working on?"})]})]}),(0,x.jsx)("button",{onClick:()=>{b({...a,panes:a.panes.filter((a,b)=>b!==d)})},className:"text-zinc-600 hover:text-red-400 mt-4",title:"Remove pane",children:(0,x.jsx)(K.Trash2,{className:"w-3.5 h-3.5"})})]})},d))]}),(0,x.jsx)("div",{className:"flex justify-end pt-2",children:(0,x.jsxs)("button",{onClick:d,disabled:!i,className:"flex items-center gap-1.5 px-6 py-2.5 text-sm font-medium bg-green-600 hover:bg-green-500 disabled:bg-zinc-800 disabled:text-zinc-600 text-white rounded-lg transition-colors",children:[(0,x.jsx)(dB,{className:"w-4 h-4"}),"Launch Space"]})})]})}function dF({isOpen:a,onClose:b,onLaunch:c}){let[d,e]=(0,y.useState)([]),[f,g]=(0,y.useState)(null),[h,i]=(0,y.useState)(!1),[j,k]=(0,y.useState)("chat"),[l,m]=(0,y.useState)(null),n=(0,y.useCallback)(async a=>{let b=[...d,{role:"user",content:a}];e(b),i(!0),m(null);try{let a=await fetch((0,cT.api)("/api/wizard/chat"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({messages:b,currentPlan:f})}),c=await a.json();if(!a.ok)throw Error(c.error);e([...b,{role:"assistant",content:c.reply}]),c.plan&&g(c.plan)}catch(a){m(a.message)}i(!1)},[d,f]),o=(0,y.useCallback)(async()=>{if(f)try{let a=await fetch((0,cT.api)("/api/workspaces"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:f.workspace.name,description:f.workspace.description,color:f.workspace.color})}),d=(await a.json()).id;for(let a of f.panes)await fetch((0,cT.api)("/api/panes"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:a.title,agentType:a.agentType,cwd:a.cwd,customCommand:a.customCommand,workspaceId:d,customModelId:a.customModelId})});c(d),b()}catch(a){m(a.message)}},[f,c,b]);return a?(0,x.jsxs)("div",{className:"fixed inset-0 z-50 bg-zinc-950/95 flex flex-col",children:[(0,x.jsxs)("div",{className:"flex items-center justify-between px-6 py-3 border-b border-zinc-800 flex-shrink-0",children:[(0,x.jsx)("h2",{className:"text-sm font-semibold text-zinc-100",children:"Plan a Project"}),(0,x.jsx)("button",{onClick:b,className:"text-zinc-500 hover:text-white",children:(0,x.jsx)(N.X,{className:"w-4 h-4"})})]}),l&&(0,x.jsx)("div",{className:"px-6 py-2 bg-red-500/10 border-b border-red-500/20 text-xs text-red-400",children:l}),(0,x.jsx)("div",{className:"flex-1 flex overflow-hidden min-h-0",children:"chat"===j?(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)("div",{className:"flex-1 flex flex-col border-r border-zinc-800 min-w-0",children:(0,x.jsx)(dw,{messages:d,onSend:n,loading:h})}),(0,x.jsx)("div",{className:"w-[380px] flex-shrink-0 overflow-y-auto",children:(0,x.jsx)(dz,{plan:f,onReview:()=>k("review")})})]}):(0,x.jsx)("div",{className:"flex-1 overflow-y-auto",children:(0,x.jsx)(dE,{plan:f,onUpdate:g,onBack:()=>k("chat"),onLaunch:o})})})]}):null}function dG({workspace:a}){let b=a?.id??null,c=a?.color??"#6366f1",[d,e]=(0,y.useState)([]),[f,g]=(0,y.useState)(!1),[h,i]=(0,y.useState)(""),[j,k]=(0,y.useState)(null),[l,m]=(0,y.useState)(""),n=(0,y.useRef)(null);(0,y.useEffect)(()=>{if(null==b)return void e([]);let a=!1;return fetch((0,cT.api)(`/api/workspaces/${b}/todos`)).then(a=>a.json()).then(b=>{a||e(Array.isArray(b)?b:[])}).catch(()=>{a||e([])}),()=>{a=!0}},[b]);let o=(0,y.useCallback)(async()=>{let a=h.trim();if(!a||null==b){i(""),g(!1);return}let c=-Date.now(),d={id:c,workspaceId:b,text:a,completed:!1,sortOrder:Number.MAX_SAFE_INTEGER,created:new Date().toISOString(),completedAt:null};e(a=>[...a,d]),i(""),n.current?.focus();try{let d=await fetch((0,cT.api)(`/api/workspaces/${b}/todos`),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({text:a})});if(!d.ok)throw Error(await d.text());let f=await d.json();e(a=>a.map(a=>a.id===c?f:a))}catch(a){console.error("failed to add todo",a),e(a=>a.filter(a=>a.id!==c))}},[h,b]),p=(0,y.useCallback)(async a=>{if(null==b)return;let c=!a.completed;e(b=>b.map(b=>b.id===a.id?{...b,completed:c,completedAt:c?new Date().toISOString():null}:b));try{let d=await fetch((0,cT.api)(`/api/workspaces/${b}/todos/${a.id}`),{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({completed:c})});if(!d.ok)throw Error();let f=await d.json();e(b=>b.map(b=>b.id===a.id?f:b))}catch{e(b=>b.map(b=>b.id===a.id?a:b))}},[b]),q=(0,y.useCallback)(async a=>{if(null==b)return;let c=-1;e(b=>(c=b.findIndex(b=>b.id===a.id),b.filter(b=>b.id!==a.id)));try{if(!(await fetch((0,cT.api)(`/api/workspaces/${b}/todos/${a.id}`),{method:"DELETE"})).ok)throw Error()}catch{e(b=>{if(c<0||b.some(b=>b.id===a.id))return b;let d=[...b];return d.splice(Math.min(c,d.length),0,a),d})}},[b]),r=(0,y.useCallback)(async a=>{let c=l.trim();if(k(null),c&&c!==a.text&&null!=b){e(b=>b.map(b=>b.id===a.id?{...b,text:c}:b));try{if(!(await fetch((0,cT.api)(`/api/workspaces/${b}/todos/${a.id}`),{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({text:c})})).ok)throw Error()}catch{e(b=>b.map(b=>b.id===a.id?{...b,text:a.text}:b))}}},[l,b]),s=(0,y.useCallback)(async()=>{if(null==b)return;let a=d.filter(a=>a.completed);0===a.length||(e(a=>a.filter(a=>!a.completed)),(await Promise.allSettled(a.map(a=>fetch((0,cT.api)(`/api/workspaces/${b}/todos/${a.id}`),{method:"DELETE"})))).some(a=>"rejected"===a.status||"fulfilled"===a.status&&!a.value.ok)&&fetch((0,cT.api)(`/api/workspaces/${b}/todos`)).then(a=>a.json()).then(a=>e(Array.isArray(a)?a:[])).catch(()=>{}))},[d,b]),t=[...d].sort((a,b)=>{if(a.completed!==b.completed)return a.completed?1:-1;if(!a.completed)return a.sortOrder-b.sortOrder;let c=a.completedAt??"";return(b.completedAt??"").localeCompare(c)}),u=t.filter(a=>a.completed).length,v="h-7 rounded-full inline-flex items-center gap-1.5 pl-2 pr-1 py-1 text-xs border whitespace-nowrap";return(0,x.jsx)("div",{className:"border-b border-zinc-800 bg-zinc-900/40 px-4 py-2 flex-shrink-0",children:(0,x.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5 max-h-[30vh] overflow-y-auto",children:[t.map(a=>{let b=j===a.id,d={backgroundColor:`${c}22`,borderColor:`${c}66`,color:c},e=a.completed?{backgroundColor:"rgba(39, 39, 42, 0.5)",borderColor:"rgba(63, 63, 70, 0.5)",color:"rgb(113, 113, 122)"}:d;return(0,x.jsxs)("div",{className:`group ${v}`,style:e,children:[(0,x.jsx)("button",{onClick:()=>p(a),className:"w-3.5 h-3.5 rounded-full border-2 flex items-center justify-center flex-shrink-0 transition-colors",style:{borderColor:a.completed?c:`${c}aa`,backgroundColor:a.completed?c:"transparent"},"aria-label":a.completed?"Mark incomplete":"Mark complete",children:a.completed&&(0,x.jsx)(M.Check,{className:"w-2.5 h-2.5 text-white"})}),b?(0,x.jsx)("input",{autoFocus:!0,value:l,onChange:a=>m(a.target.value),onBlur:()=>r(a),onKeyDown:b=>{"Enter"===b.key&&r(a),"Escape"===b.key&&k(null)},className:"bg-transparent focus:outline-none max-w-[240px]",style:{color:"inherit"}}):(0,x.jsx)("button",{onClick:()=>{k(a.id),m(a.text)},className:`text-left truncate max-w-[200px] ${a.completed?"line-through":""}`,style:{color:"inherit"},children:a.text}),(0,x.jsx)("button",{onClick:()=>q(a),className:"opacity-0 group-hover:opacity-100 transition-opacity rounded-full p-0.5 hover:bg-black/20 flex-shrink-0",style:{color:"inherit"},"aria-label":"Delete todo",children:(0,x.jsx)(N.X,{className:"w-3 h-3"})})]},a.id)}),f?(0,x.jsxs)("div",{className:`${v} border-dashed border-zinc-600 text-zinc-300`,children:[(0,x.jsx)(z.Plus,{className:"w-3 h-3 text-zinc-500 flex-shrink-0"}),(0,x.jsx)("input",{ref:n,autoFocus:!0,value:h,onChange:a=>i(a.target.value),onKeyDown:a=>{"Enter"===a.key&&o(),"Escape"===a.key&&(i(""),g(!1))},onBlur:()=>{h.trim()?o():g(!1)},placeholder:"todo…",className:"bg-transparent focus:outline-none text-xs placeholder:text-zinc-600 max-w-[200px]"})]}):(0,x.jsxs)("button",{onClick:()=>{null!=b&&g(!0)},disabled:null==b,className:"h-7 rounded-full inline-flex items-center gap-1 px-3 py-1 text-xs border border-dashed border-zinc-700 text-zinc-500 hover:text-zinc-300 hover:border-zinc-500 transition-colors disabled:opacity-50 disabled:cursor-not-allowed whitespace-nowrap",children:[(0,x.jsx)(z.Plus,{className:"w-3 h-3"}),null==b?"Select a workspace":"add todo"]}),u>0&&(0,x.jsxs)("button",{onClick:s,className:"ml-auto text-[10px] text-zinc-500 hover:text-zinc-300 px-2 py-1 transition-colors whitespace-nowrap",children:["clear ",u," done"]})]})})}var dH=a.i(501027),dI=a.i(431067);function dJ(a){return null==a?"#52525b":a<=70?"#22c55e":a<=90?"#f59e0b":"#ef4444"}function dK(a){if(!a)return"";let b=new Date(a).getTime()-Date.now();if(b<=0)return"now";let c=Math.floor(b/36e5),d=Math.floor(b%36e5/6e4);if(c>=24){let a=Math.floor(c/24);return`${a}d ${c-24*a}h`}return c>0?`${c}h ${d}m`:`${d}m`}function dL({label:a,limit:b}){if(!b||null==b.utilization)return null;let c=Math.min(100,Math.max(0,b.utilization)),d=dJ(c),e=dK(b.resets_at);return(0,x.jsxs)("div",{className:"flex items-center gap-1.5 text-[10px]",title:e?`${a}: ${Math.floor(c)}% used \xb7 resets in ${e}`:`${a}: ${Math.floor(c)}% used`,children:[(0,x.jsx)("span",{className:"text-zinc-400 font-medium",children:a}),(0,x.jsx)("div",{className:"w-12 h-1 bg-zinc-800 rounded-full overflow-hidden",children:(0,x.jsx)("div",{className:"h-full transition-all",style:{width:`${c}%`,backgroundColor:d}})}),(0,x.jsxs)("span",{className:"text-zinc-500 tabular-nums w-7 text-right",children:[Math.floor(c),"%"]})]})}function dM({enabled:a}){let b=function(a){let[b,c]=(0,y.useState)(null),d=(0,y.useRef)(0);return(0,y.useEffect)(()=>{if(!a){d.current=0;return}let b=!1;async function e(){try{let a=await fetch((0,cT.api)("/api/claude/usage"));if(!a.ok||b)return;let e=await a.json();if(b)return;"upstream_error"===e.status||"expired"===e.status?(d.current+=1,c(a=>a?.status==="ok"&&d.current<2?a:e)):(d.current=0,c(e))}catch{if(b)return;d.current+=1,c(a=>a?.status==="ok"&&d.current<2?a:{status:"upstream_error"})}}e();let f=setInterval(e,6e4);return()=>{b=!0,clearInterval(f)}},[a]),b}(a),[c,d]=(0,y.useState)(!1),e=(0,y.useRef)(null);if((0,y.useEffect)(()=>{if(c)return document.addEventListener("mousedown",a),()=>document.removeEventListener("mousedown",a);function a(a){e.current&&!e.current.contains(a.target)&&d(!1)}},[c]),!a||!b)return null;if("unauthenticated"===b.status||"expired"===b.status)return(0,x.jsxs)("div",{className:"flex items-center gap-1.5 px-2 py-1 text-[10px] text-zinc-500 border border-zinc-800 rounded-md",title:"expired"===b.status?"OAuth token expired — run any Claude Code command to refresh":"No Claude.ai credentials found",children:[(0,x.jsx)(dI.LogIn,{className:"w-3 h-3"}),"sign in via Claude Code"]});if("upstream_error"===b.status)return null;let{data:f}=b,g=f.extra_usage,h=!!(g?.is_enabled&&g?.used_credits&&g.used_credits>0);return(0,x.jsxs)("div",{className:"relative",children:[(0,x.jsxs)("button",{onClick:()=>d(a=>!a),className:"flex items-center gap-2.5 px-2.5 py-1 border border-zinc-800 rounded-md hover:border-zinc-700 transition-colors",title:"Click for full usage detail",children:[(0,x.jsx)(dH.Zap,{className:"w-3 h-3 text-amber-400"}),(0,x.jsx)(dL,{label:"5h",limit:f.five_hour}),(0,x.jsx)(dL,{label:"7d",limit:f.seven_day}),(0,x.jsx)(dL,{label:"Opus",limit:f.seven_day_opus}),(0,x.jsx)(dL,{label:"Sonnet",limit:f.seven_day_sonnet}),h&&g?.used_credits!=null&&(0,x.jsxs)("span",{className:"text-[10px] text-amber-400 border-l border-zinc-800 pl-2",children:["+$",g.used_credits.toFixed(2)," overage"]})]}),c&&(0,x.jsxs)("div",{ref:e,className:"absolute top-full right-0 mt-1.5 z-50 w-80 p-3 bg-zinc-900 border border-zinc-700 rounded-md shadow-xl",children:[(0,x.jsx)("div",{className:"text-[10px] uppercase tracking-wider text-zinc-500 font-medium mb-2",children:"Plan Usage"}),(0,x.jsxs)("div",{className:"space-y-2",children:[(0,x.jsx)(dN,{label:"5-hour window",limit:f.five_hour}),(0,x.jsx)(dN,{label:"7-day (overall)",limit:f.seven_day}),(0,x.jsx)(dN,{label:"7-day · Opus",limit:f.seven_day_opus}),(0,x.jsx)(dN,{label:"7-day · Sonnet",limit:f.seven_day_sonnet}),(0,x.jsx)(dN,{label:"7-day · OAuth apps",limit:f.seven_day_oauth_apps})]}),g?.is_enabled&&(0,x.jsxs)("div",{className:"mt-3 pt-3 border-t border-zinc-800",children:[(0,x.jsx)("div",{className:"text-[10px] uppercase tracking-wider text-zinc-500 font-medium mb-1.5",children:"Overage credits"}),(0,x.jsxs)("div",{className:"text-xs text-zinc-300",children:[null!=g.used_credits?`$${g.used_credits.toFixed(2)}`:"—",null!=g.monthly_limit&&(0,x.jsxs)("span",{className:"text-zinc-500",children:[" / $",g.monthly_limit.toFixed(2)," monthly"]})]})]})]})]})}function dN({label:a,limit:b}){if(!b||null==b.utilization)return(0,x.jsxs)("div",{className:"flex items-center justify-between text-xs",children:[(0,x.jsx)("span",{className:"text-zinc-400",children:a}),(0,x.jsx)("span",{className:"text-zinc-600",children:"—"})]});let c=Math.min(100,Math.max(0,b.utilization)),d=dJ(c),e=dK(b.resets_at);return(0,x.jsxs)("div",{children:[(0,x.jsxs)("div",{className:"flex items-center justify-between text-xs mb-1",children:[(0,x.jsx)("span",{className:"text-zinc-300",children:a}),(0,x.jsxs)("span",{className:"text-zinc-500 tabular-nums",children:[Math.floor(c),"%",e&&(0,x.jsxs)("span",{className:"ml-1.5 text-zinc-600",children:["· ",e]})]})]}),(0,x.jsx)("div",{className:"h-1.5 bg-zinc-800 rounded-full overflow-hidden",children:(0,x.jsx)("div",{className:"h-full transition-all",style:{width:`${c}%`,backgroundColor:d}})})]})}function dO({panes:a,renderPane:b}){if(0===a.length)return null;if(1===a.length)return(0,x.jsx)("div",{className:"flex-1 p-1 overflow-hidden",children:(0,x.jsx)(dP,{id:a[0].id,children:c=>b(a[0],c)})});let c=a.length<=4?2:3,d=[];for(let b=0;b<a.length;b+=c)d.push(a.slice(b,b+c));return(0,x.jsx)(cJ,{orientation:"vertical",className:"flex-1 p-1",children:d.map((a,c)=>(0,x.jsxs)(y.default.Fragment,{children:[c>0&&(0,x.jsx)(cN,{className:"h-1.5 flex items-center justify-center group cursor-row-resize",children:(0,x.jsx)("div",{className:"w-8 h-0.5 rounded-full bg-zinc-700 group-hover:bg-zinc-500 group-active:bg-indigo-500 transition-colors"})}),(0,x.jsx)(cL,{minSize:15,children:1===a.length?(0,x.jsx)("div",{className:"h-full p-0.5",children:(0,x.jsx)(dP,{id:a[0].id,children:c=>b(a[0],c)})}):(0,x.jsx)(cJ,{orientation:"horizontal",className:"h-full",children:a.map((a,c)=>(0,x.jsxs)(y.default.Fragment,{children:[c>0&&(0,x.jsx)(cN,{className:"w-1.5 flex items-center justify-center group cursor-col-resize",children:(0,x.jsx)("div",{className:"h-8 w-0.5 rounded-full bg-zinc-700 group-hover:bg-zinc-500 group-active:bg-indigo-500 transition-colors"})}),(0,x.jsx)(cL,{minSize:15,children:(0,x.jsx)("div",{className:"h-full p-0.5",children:(0,x.jsx)(dP,{id:a.id,children:c=>b(a,c)})})})]},a.id))})})]},`row-${c}`))})}function dP({id:a,children:b}){let{attributes:c,listeners:d,setNodeRef:e,transform:f,transition:g,isDragging:h}=function(a){var b,c,d,e;let{animateLayoutChanges:f=bK,attributes:g,disabled:h,data:i,getNewIndex:j=bJ,id:k,strategy:l,resizeObserverConfig:m,transition:o=bL}=a,{items:p,containerId:q,activeIndex:r,disabled:s,disableTransforms:t,sortedRects:u,overIndex:v,useDragOverlay:w,strategy:x}=(0,y.useContext)(bH),z=(b=h,c=s,"boolean"==typeof b?{draggable:b,droppable:!1}:{draggable:null!=(d=null==b?void 0:b.draggable)?d:c.draggable,droppable:null!=(e=null==b?void 0:b.droppable)?e:c.droppable}),A=p.indexOf(k),B=(0,y.useMemo)(()=>({sortable:{containerId:q,index:A,items:p},...i}),[q,i,A,p]),C=(0,y.useMemo)(()=>p.slice(p.indexOf(k)),[p,k]),{rect:D,node:E,isOver:F,setNodeRef:G}=function(a){let{data:b,disabled:c=!1,id:d,resizeObserverConfig:e}=a,f=an("Droppable"),{active:g,dispatch:h,over:i,measureDroppableContainers:j}=(0,y.useContext)(bp),k=(0,y.useRef)({disabled:c}),l=(0,y.useRef)(!1),m=(0,y.useRef)(null),o=(0,y.useRef)(null),{disabled:p,updateMeasurementsFor:q,timeout:r}={...by,...e},s=ai(null!=q?q:d),t=bc({callback:(0,y.useCallback)(()=>{if(!l.current){l.current=!0;return}null!=o.current&&clearTimeout(o.current),o.current=setTimeout(()=>{j(Array.isArray(s.current)?s.current:[s.current]),o.current=null},r)},[r]),disabled:p||!g}),[u,v]=ak((0,y.useCallback)((a,b)=>{t&&(b&&(t.unobserve(b),l.current=!1),a&&t.observe(a))},[t])),w=ai(b);return(0,y.useEffect)(()=>{t&&u.current&&(t.disconnect(),l.current=!1,t.observe(u.current))},[u,t]),(0,y.useEffect)(()=>(h({type:n.RegisterDroppable,element:{id:d,key:f,disabled:c,node:u,rect:m,data:w}}),()=>h({type:n.UnregisterDroppable,key:f,id:d})),[d]),(0,y.useEffect)(()=>{c!==k.current.disabled&&(h({type:n.SetDroppableDisabled,id:d,key:f,disabled:c}),k.current.disabled=c)},[d,f,c,h]),{active:g,rect:m,isOver:(null==i?void 0:i.id)===d,node:u,over:i,setNodeRef:v}}({id:k,data:B,disabled:z.droppable,resizeObserverConfig:{updateMeasurementsFor:C,...m}}),{active:H,activatorEvent:I,activeNodeRect:J,attributes:K,setNodeRef:L,listeners:M,isDragging:N,over:O,setActivatorNodeRef:P,transform:Q}=function(a){let{id:b,data:c,disabled:d=!1,attributes:e}=a,f=an("Draggable"),{activators:g,activatorEvent:h,active:i,activeNodeRect:j,ariaDescribedById:k,draggableNodes:l,over:m}=(0,y.useContext)(bp),{role:n=bx,roleDescription:o="draggable",tabIndex:p=0}=null!=e?e:{},q=(null==i?void 0:i.id)===b,r=(0,y.useContext)(q?bu:bw),[s,t]=ak(),[u,v]=ak(),w=(0,y.useMemo)(()=>g.reduce((a,c)=>{let{eventName:d,handler:e}=c;return a[d]=a=>{e(a,b)},a},{}),[g,b]),x=ai(c);return ag(()=>(l.set(b,{id:b,key:f,node:s,activatorNode:u,data:x}),()=>{let a=l.get(b);a&&a.key===f&&l.delete(b)}),[l,b]),{active:i,activatorEvent:h,activeNodeRect:j,attributes:(0,y.useMemo)(()=>({role:n,tabIndex:p,"aria-disabled":d,"aria-pressed":!!q&&n===bx||void 0,"aria-roledescription":o,"aria-describedby":k.draggable}),[d,n,p,q,o,k.draggable]),isDragging:q,listeners:d?void 0:w,node:s,over:m,setNodeRef:t,setActivatorNodeRef:v,transform:r}}({id:k,data:B,attributes:{...bO,...g},disabled:z.draggable}),R=function(){for(var a=arguments.length,b=Array(a),c=0;c<a;c++)b[c]=arguments[c];return(0,y.useMemo)(()=>a=>{b.forEach(b=>b(a))},b)}(G,L),S=!!H,T=S&&!t&&bC(r)&&bC(v),U=!w&&N,V=U&&T?Q:null,W=T?null!=V?V:(null!=l?l:x)({rects:u,activeNodeRect:J,activeIndex:r,overIndex:v,index:A}):null,X=bC(r)&&bC(v)?j({id:k,items:p,activeIndex:r,overIndex:v}):A,Y=null==H?void 0:H.id,Z=(0,y.useRef)({activeId:Y,items:p,newIndex:X,containerId:q}),$=p!==Z.current.items,_=f({active:H,containerId:q,isDragging:N,isSorting:S,id:k,index:A,items:p,newIndex:Z.current.newIndex,previousItems:Z.current.items,previousContainerId:Z.current.containerId,transition:o,wasDragging:null!=Z.current.activeId}),aa=function(a){let{disabled:b,index:c,node:d,rect:e}=a,[f,g]=(0,y.useState)(null),h=(0,y.useRef)(c);return ag(()=>{if(!b&&c!==h.current&&d.current){let a=e.current;if(a){let b=aN(d.current,{ignoreTransform:!0}),c={x:a.left-b.left,y:a.top-b.top,scaleX:a.width/b.width,scaleY:a.height/b.height};(c.x||c.y)&&g(c)}}c!==h.current&&(h.current=c)},[b,c,d,e]),(0,y.useEffect)(()=>{f&&g(null)},[f]),f}({disabled:!_,index:A,node:E,rect:D});return(0,y.useEffect)(()=>{S&&Z.current.newIndex!==X&&(Z.current.newIndex=X),q!==Z.current.containerId&&(Z.current.containerId=q),p!==Z.current.items&&(Z.current.items=p)},[S,X,q,p]),(0,y.useEffect)(()=>{if(Y===Z.current.activeId)return;if(null!=Y&&null==Z.current.activeId){Z.current.activeId=Y;return}let a=setTimeout(()=>{Z.current.activeId=Y},50);return()=>clearTimeout(a)},[Y]),{active:H,activeIndex:r,attributes:K,data:B,rect:D,index:A,newIndex:X,items:p,isOver:F,isSorting:S,isDragging:N,listeners:M,node:E,overIndex:v,over:O,setNodeRef:R,setActivatorNodeRef:P,setDroppableNodeRef:G,setDraggableNodeRef:L,transform:null!=aa?aa:W,transition:aa||$&&Z.current.newIndex===A?bN:(!U||ar(I))&&o&&(S||_)?at.Transition.toString({...o,property:bM}):void 0}}({id:a}),i={transform:at.Transform.toString(f),transition:g,opacity:h?.5:1,zIndex:h?50:"auto"};return(0,x.jsx)("div",{ref:e,style:i,className:"h-full",children:b({...c,...d})})}function dQ(){return(0,x.jsx)(cY.TotpGate,{children:a=>(0,x.jsx)(dR,{terminalToken:a})})}function dR({terminalToken:a}){let b=(0,Y.useRouter)(),{basePath:c,hasNetwork:d,hasCollaboration:e,hasCortex:f}=(0,cW.useTier)(),[g,h]=(0,y.useState)([]),[i,j]=(0,y.useState)(!0),[k,l]=(0,y.useState)(!0),[m,n]=(0,y.useState)(!1),[o,p]=(0,y.useState)(null),[q,r]=(0,y.useState)(new Set),[s,t]=(0,y.useState)(new Set),[u,v]=(0,y.useState)(!1),[w,I]=(0,y.useState)(!0);!function(){let a=(0,c3.useQueryClient)(),{hasCollaboration:b}=(0,cW.useTier)();(0,y.useEffect)(()=>{if(!b)return;let c=new EventSource((0,cT.api)("/api/events")),d=()=>{a.invalidateQueries({queryKey:["workspace-messages"]})},e=()=>{a.invalidateQueries({queryKey:["workspace-context"]})};return c.addEventListener("workspace:message",d),c.addEventListener("workspace:request",d),c.addEventListener("workspace:context_updated",e),()=>{c.removeEventListener("workspace:message",d),c.removeEventListener("workspace:request",d),c.removeEventListener("workspace:context_updated",e),c.close()}},[a,b])}();let[$,_]=(0,y.useState)(!1);(0,y.useEffect)(()=>{fetch((0,cT.api)("/api/config")).then(a=>a.json()).then(a=>_(!!a.todosEnabled)).catch(()=>{})},[]);let[aa,ab]=(0,y.useState)([]),[ac,ad]=(0,y.useState)(null),[ae,af]=(0,y.useState)(!1),[ag,ah]=(0,y.useState)(!1),[ai,aj]=(0,y.useState)(!1),[ak,al]=(0,y.useState)(""),[am,an]=(0,y.useState)("#6366f1"),[ao,ap]=(0,y.useState)(null),[aq,ar]=(0,y.useState)(""),[as,at]=(0,y.useState)(null),au=(0,y.useRef)(null),[av,aw]=(0,y.useState)(null),[ax,ay]=(0,y.useState)(!1),[az,aA]=(0,y.useState)(null),aB=(0,y.useCallback)(a=>{aA(a),ay(!0)},[]),[aC,aE]=(0,y.useState)(""),[aF,aG]=(0,y.useState)(""),[aH,aJ]=(0,y.useState)("#6366f1"),[aK,aL]=(0,y.useState)(""),[aM,aN]=(0,y.useState)("claude"),[aO,aP]=(0,y.useState)("new"),[aQ,aR]=(0,y.useState)(""),[aS,aT]=(0,y.useState)(""),aU=(0,c$.useRemoteWorkspaces)(),[aV,aW]=(0,y.useState)(new Set),aX=(0,y.useCallback)(a=>{aW(b=>{let c=new Set(b);return c.has(a)?c.delete(a):c.add(a),c})},[]),[aY,aZ]=(0,y.useState)(""),[a$,a_]=(0,y.useState)([]),[a0,a1]=(0,y.useState)(!1),[a2,a4]=(0,y.useState)(!1),[a5,a6]=(0,y.useState)(null),[a7,a9]=(0,y.useState)(!0),ba=(0,y.useRef)(null),bb=(0,y.useRef)(null),bc=(0,y.useRef)(null),bd=(0,y.useCallback)(async()=>{let a=await fetch((0,cT.api)("/api/workspaces")),b=await a.json();ab(b);let c=b.find(a=>a.isActive);return ad(c||null),l(!1),c||null},[]),be=(0,y.useCallback)(async()=>{let a=await fetch((0,cT.api)("/api/panes")),b=await a.json();h(b);let c=new Set;for(let a of b)a.isPopout&&c.add(a.id);t(c),j(!1)},[]);(0,y.useEffect)(()=>{bd()},[bd]),(0,y.useEffect)(()=>{u&&be()},[u,be]),(0,y.useEffect)(()=>{let a=new BroadcastChannel("spaces-panes");return bc.current=a,a.onmessage=a=>{let b=a.data;"popout-opened"===b.type?t(a=>new Set(a).add(b.paneId)):"popout-closed"===b.type?(t(a=>{let c=new Set(a);return c.delete(b.paneId),c}),h(a=>a.map(a=>a.id===b.paneId?{...a,isPopout:!1}:a))):"pane-updated"===b.type&&h(a=>a.map(a=>a.id===b.paneId?{...a,...b.data}:a))},()=>a.close()},[be]);let[bf,bg]=(0,y.useState)(0);(0,y.useEffect)(()=>{if(!i)for(let a of g)a.isPopout&&bq(a)},[i,bf]),(0,y.useEffect)(()=>{if(!(cZ.AGENT_TYPES[aM]?.supportsResume&&"resume"===aO))return;a1(!0);let a=setTimeout(()=>{let a=new URLSearchParams({sortBy:"modified",sortDir:"DESC",limit:"200"});aY&&a.set("search",aY),a7&&aF&&a.set("projectPath",aF),a.set("agentType",aM),fetch((0,cT.api)(`/api/sessions?${a}`)).then(a=>a.json()).then(a=>{a_(a.sessions||[]),a1(!1)}).catch(()=>a1(!1))},300*!!aY);return()=>clearTimeout(a)},[aM,aO,aY,a7,aF]),(0,y.useEffect)(()=>{function a(a){ba.current&&!ba.current.contains(a.target)&&a4(!1),bb.current&&!bb.current.contains(a.target)&&af(!1),au.current&&!au.current.contains(a.target)&&at(null)}return document.addEventListener("mousedown",a),()=>document.removeEventListener("mousedown",a)},[]);let bh=(0,y.useCallback)(async()=>{let a,b=cZ.AGENT_TYPES[aM],c=aF||a5?.projectPath||"/";"shell"!==aM&&(a="resume"===aO&&b?.supportsResume?a5?.sessionId||aK:"new");let d=aC||(a5?a5.customName||a5.firstPrompt?.slice(0,50)||b?.name||"Agent":"")||("shell"===aM?"Terminal":b?.name||"Agent"),e=ac?.collaboration&&"shell"!==aM,f=await fetch((0,cT.api)("/api/panes"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:d,color:aH,cwd:c,claudeSessionId:a,agentType:aM,customCommand:"custom"===aM?aQ:void 0,nodeId:aS||void 0,isCollaborating:e||void 0})}),g=await f.json();h(a=>[...a,g]),(0,c7.track)("pane_created",{agentType:aM}),n(!1),aE(""),aG(""),aJ("#6366f1"),aL(""),aN("shell"),aP("new"),aR(""),aT(""),a6(null),aZ("")},[aC,aF,aH,aK,aM,aO,aQ,aS,a5]),bi=(0,y.useCallback)(async a=>{let b=g.find(b=>b.id===a);await fetch((0,cT.api)(`/api/panes/${a}`),{method:"DELETE"}),h(b=>b.filter(b=>b.id!==a)),b&&(0,c7.track)("pane_closed",{agentType:b.agentType}),o===a&&p(null),t(b=>{let c=new Set(b);return c.delete(a),c})},[o,g]),bj=(0,y.useCallback)(async(a,b)=>{await fetch((0,cT.api)(`/api/panes/${a}`),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(b)}),h(c=>c.map(c=>c.id===a?{...c,...b}:c))},[]),bk=(0,y.useCallback)(async a=>{let b=g.find(b=>b.id===a);if(!b)return;let c=b.title.match(/^(.*?)(?:\s+\((\d+)\))?\s*$/),d=(c?.[1]||b.title).trim(),e=d.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),f=RegExp(`^${e}(?:\\s+\\((\\d+)\\))?$`),i=1;for(let a of g){let b=a.title.match(f);if(!b)continue;let c=b[1]?parseInt(b[1],10):1;c>i&&(i=c)}let j=`${d} (${i+1})`,k=ac?.collaboration&&"shell"!==b.agentType,l=await fetch((0,cT.api)("/api/panes"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:j,color:b.color,cwd:b.cwd,agentType:b.agentType,customCommand:b.customCommand,nodeId:b.nodeId||void 0,customModelId:b.customModelId||void 0,isCollaborating:k||void 0})}),m=await l.json();h(a=>[...a,m]),(0,c7.track)("pane_duplicated",{agentType:b.agentType})},[g,ac]),bl=(0,y.useCallback)(a=>{p(b=>b===a?null:a)},[]),bm=(0,y.useCallback)(a=>{r(b=>new Set(b).add(a)),o===a&&p(null)},[o]),bn=(0,y.useCallback)(a=>{r(b=>{let c=new Set(b);return c.delete(a),c})},[]),bo=function(){for(var a=arguments.length,b=Array(a),c=0;c<a;c++)b[c]=arguments[c];return(0,y.useMemo)(()=>[...b].filter(a=>null!=a),[...b])}(aD(a8,{activationConstraint:{distance:8}}),aD(a3)),bp=(0,y.useCallback)(a=>{let{active:b,over:c}=a;c&&b.id!==c.id&&h(a=>{let d=a.findIndex(a=>a.id===b.id),e=a.findIndex(a=>a.id===c.id);if(-1===d||-1===e)return a;let f=bB(a,d,e);return f.forEach((a,b)=>{a.sortOrder!==b&&fetch((0,cT.api)(`/api/panes/${a.id}`),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({sortOrder:b})}).catch(()=>{})}),f.map((a,b)=>({...a,sortOrder:b}))})},[]),bq=(0,y.useCallback)(a=>{let b=a.winWidth||900,c=a.winHeight||600,d=a.winX??Math.round(screen.width/2-b/2),e=a.winY??Math.round(screen.height/2-c/2),f=`left=${d},top=${e},width=${b},height=${c},menubar=no,toolbar=no,location=no,status=no`;window.open((0,cT.api)(`/terminal/pane/${a.id}`),`spaces-pane-${a.id}`,f),t(b=>new Set(b).add(a.id)),fetch((0,cT.api)(`/api/panes/${a.id}`),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({isPopout:!0,winX:d,winY:e,winWidth:b,winHeight:c})})},[]),br=(0,y.useCallback)(a=>{let b=g.find(b=>b.id===a);b&&bq(b)},[g,bq]),bs=(0,y.useCallback)(async a=>{bc.current?.postMessage({type:"close-popouts"}),await fetch((0,cT.api)(`/api/panes/${a}`),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({isPopout:!1})}),t(b=>{let c=new Set(b);return c.delete(a),c})},[]),bt=(0,y.useCallback)(()=>{s.size>0&&(bc.current?.postMessage({type:"close-popouts"}),t(new Set))},[s]),bu=(0,y.useCallback)(async a=>{bt(),await fetch((0,cT.api)("/api/workspaces"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"switch",workspaceId:a})}),p(null),await bd(),await be(),af(!1),u?(0,c7.track)("workspace_switched"):(0,c7.track)("workspace_entered"),v(!0),bg(a=>a+1)},[bd,be,bt,u]),bw=(0,y.useCallback)(async()=>{ak.trim()&&ac&&(await fetch((0,cT.api)("/api/workspaces"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"duplicate",sourceId:ac.id,name:ak.trim(),color:am})}),al(""),an("#6366f1"),ah(!1),await bd())},[ak,am,ac,bd]),bx=(0,y.useCallback)(async()=>{let a=await fetch((0,cT.api)("/api/workspaces"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:"New Space",color:"#6366f1"})}),b=await a.json();(0,c7.track)("workspace_created"),await bu(b.id)},[bu]),by=(0,y.useCallback)(async a=>{bt(),await fetch((0,cT.api)(`/api/workspaces/${a}`),{method:"DELETE"}),(0,c7.track)("workspace_deleted"),await bd(),await be(),af(!1)},[bd,be,bt]),bz=(0,y.useCallback)(()=>{bt(),h([]),v(!1)},[bt]),bA=(0,y.useCallback)(async(a,b)=>{await fetch((0,cT.api)(`/api/workspaces/${a}`),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:b})}),ap(null),await bd()},[bd]),bC=(0,y.useCallback)(async(a,b)=>{await fetch((0,cT.api)(`/api/workspaces/${a}`),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({color:b})}),at(null),await bd()},[bd]),bD=g.filter(a=>!s.has(a.id)&&!q.has(a.id)),bE=g.filter(a=>q.has(a.id));return u?i?(0,x.jsx)("div",{className:"flex items-center justify-center h-screen bg-zinc-950",children:(0,x.jsx)(A.Loader2,{className:"w-6 h-6 animate-spin text-indigo-500"})}):(0,x.jsxs)("div",{className:"h-screen flex flex-col bg-zinc-950 text-zinc-100",children:[(0,x.jsxs)("div",{className:"flex items-center justify-between px-4 py-2 border-b border-zinc-800 flex-shrink-0",children:[(0,x.jsxs)("div",{className:"flex items-center gap-3",children:[(0,x.jsx)("button",{onClick:bz,className:"p-1.5 -ml-1 text-zinc-500 hover:text-white hover:bg-zinc-800 rounded-md transition-colors",title:"Close space and go home",children:(0,x.jsx)(P.Home,{className:"w-4 h-4"})}),(0,x.jsx)("div",{className:"w-px h-4 bg-zinc-800"}),(0,x.jsx)("h1",{className:"text-sm font-semibold",children:"Spaces"}),(0,x.jsxs)("div",{ref:bb,className:"relative",children:[(0,x.jsxs)("button",{onClick:()=>af(!ae),className:"flex items-center gap-1.5 px-2.5 py-1 text-xs bg-zinc-800 border border-zinc-700 rounded-md hover:border-zinc-600 transition-colors",children:[ac&&(0,x.jsx)("span",{className:"w-2 h-2 rounded-full flex-shrink-0",style:{backgroundColor:ac.color}}),(0,x.jsx)("span",{className:"max-w-[150px] truncate",children:ac?.name||"No space"}),(0,x.jsx)(G.ChevronDown,{className:"w-3 h-3 text-zinc-500"})]}),ae&&(0,x.jsxs)("div",{className:"absolute z-50 top-full left-0 mt-1 w-72 bg-zinc-800 border border-zinc-700 rounded-md shadow-xl overflow-hidden",children:[(0,x.jsx)("div",{className:"p-2 border-b border-zinc-700/50 text-[10px] text-zinc-500 uppercase tracking-wider font-medium",children:"Switch Space"}),(0,x.jsx)("div",{className:"max-h-[300px] overflow-y-auto",children:aa.map(a=>(0,x.jsx)("div",{className:"flex items-center gap-2 hover:bg-zinc-700/50 transition-colors group",children:ao===a.id?(0,x.jsxs)("div",{className:"flex items-center gap-1 flex-1 px-3 py-2",children:[(0,x.jsx)("input",{autoFocus:!0,value:aq,onChange:a=>ar(a.target.value),onKeyDown:b=>{"Enter"===b.key&&bA(a.id,aq),"Escape"===b.key&&ap(null)},className:"flex-1 bg-transparent border border-zinc-600 rounded px-1.5 py-0.5 text-xs focus:outline-none focus:border-indigo-400"}),(0,x.jsx)("button",{onClick:()=>bA(a.id,aq),className:"text-green-400 hover:text-green-300",children:(0,x.jsx)(M.Check,{className:"w-3 h-3"})})]}):(0,x.jsxs)(x.Fragment,{children:[(0,x.jsxs)("div",{className:"relative pl-3",children:[(0,x.jsx)("button",{onClick:b=>{b.stopPropagation(),at(as===a.id?null:a.id)},className:"w-2.5 h-2.5 rounded-full flex-shrink-0 hover:ring-2 hover:ring-zinc-500/50 transition-all",style:{backgroundColor:a.color},title:"Change color"}),as===a.id&&(0,x.jsx)("div",{ref:au,className:"absolute z-50 top-full left-0 mt-1.5 p-2 bg-zinc-800 border border-zinc-700 rounded-md shadow-xl",onClick:a=>a.stopPropagation(),children:(0,x.jsx)(cO.ColorPicker,{value:a.color,onChange:b=>bC(a.id,b)})})]}),(0,x.jsxs)("button",{onClick:()=>bu(a.id),className:"flex items-center gap-2 flex-1 py-2 pr-3 text-left",children:[(0,x.jsx)("span",{className:"text-xs text-white truncate flex-1",children:a.name}),(0,x.jsxs)("span",{className:"text-[10px] text-zinc-500",children:[a.paneCount||0," panes"]}),a.isActive&&(0,x.jsx)("span",{className:"text-[10px] text-indigo-400",children:"active"})]}),(0,x.jsxs)("div",{className:"flex items-center gap-0.5 pr-2 opacity-0 group-hover:opacity-100",children:[(0,x.jsx)("button",{onClick:b=>{b.stopPropagation(),ap(a.id),ar(a.name)},className:"p-1 text-zinc-500 hover:text-white rounded",title:"Rename",children:(0,x.jsx)(L.Pencil,{className:"w-2.5 h-2.5"})}),!a.isActive&&aa.length>1&&(0,x.jsx)("button",{onClick:b=>{b.stopPropagation(),confirm(`Delete space "${a.name}" and all its panes?`)&&by(a.id)},className:"p-1 text-zinc-500 hover:text-red-400 rounded",title:"Delete",children:(0,x.jsx)(K.Trash2,{className:"w-2.5 h-2.5"})})]})]})},a.id))}),(0,x.jsxs)("div",{className:"border-t border-zinc-700/50 p-1.5 flex gap-1",children:[(0,x.jsxs)("button",{onClick:bx,className:"flex items-center gap-1.5 px-2.5 py-1.5 text-[11px] text-zinc-400 hover:text-white hover:bg-zinc-700 rounded transition-colors flex-1",children:[(0,x.jsx)(z.Plus,{className:"w-3 h-3"})," New Empty"]}),(0,x.jsxs)("button",{onClick:()=>{aj(!0),af(!1)},className:"flex items-center gap-1.5 px-2.5 py-1.5 text-[11px] text-indigo-400 hover:text-indigo-300 hover:bg-indigo-500/10 rounded transition-colors flex-1",children:[(0,x.jsx)(X,{className:"w-3 h-3"})," Plan Project"]}),(0,x.jsxs)("button",{onClick:()=>{ah(!0),af(!1)},className:"flex items-center gap-1.5 px-2.5 py-1.5 text-[11px] text-zinc-400 hover:text-white hover:bg-zinc-700 rounded transition-colors flex-1",children:[(0,x.jsx)(O.Copy,{className:"w-3 h-3"})," Duplicate"]})]})]})]}),(0,x.jsxs)("span",{className:"text-[11px] text-zinc-500",children:[bD.length," pane",1!==bD.length?"s":"",s.size>0&&` + ${s.size} popped out`]})]}),(0,x.jsxs)("div",{className:"flex items-center gap-2",children:[(0,x.jsx)(dM,{enabled:g.some(a=>"claude"===a.agentType&&!s.has(a.id))}),(0,x.jsxs)("button",{onClick:()=>ay(!ax),className:`flex items-center gap-1.5 px-2.5 py-1.5 text-xs rounded-md border transition-colors ${ax?"border-amber-500/50 bg-amber-600/20 text-amber-400":"border-zinc-700 text-zinc-500 hover:text-zinc-300 hover:border-zinc-600"}`,title:ax?"Hide file explorer":"Show file explorer",children:[(0,x.jsx)(E.FolderOpen,{className:"w-3.5 h-3.5"}),"Files"]}),e&&ac&&(0,x.jsxs)("button",{onClick:async()=>{let a=!ac.collaboration;for(let b of(await fetch((0,cT.api)(`/api/workspaces/${ac.id}`),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({collaboration:a})}),ad(b=>b?{...b,collaboration:a}:b),ab(b=>b.map(b=>b.id===ac.id?{...b,collaboration:a}:b)),g.filter(a=>a.workspaceId===ac.id&&"shell"!==a.agentType)))b.isCollaborating!==a&&await bj(b.id,{isCollaborating:a})},className:`flex items-center gap-1.5 px-2.5 py-1.5 text-xs rounded-md border transition-colors ${ac.collaboration?"border-indigo-500/50 bg-indigo-600/20 text-indigo-400":"border-zinc-700 text-zinc-500 hover:text-zinc-300 hover:border-zinc-600"}`,title:ac.collaboration?"Collaboration enabled — click to disable":"Enable collaboration for this workspace",children:[(0,x.jsx)(U.Users,{className:"w-3.5 h-3.5"}),"Collab"]}),(0,x.jsxs)("button",{onClick:bz,className:"flex items-center gap-1.5 px-3 py-1.5 text-xs border border-zinc-700 text-zinc-400 rounded-md hover:text-white hover:border-zinc-600 transition-colors",title:"Close space and return home",children:[(0,x.jsx)(Q,{className:"w-3.5 h-3.5"}),"Close"]}),(0,x.jsxs)("button",{onClick:()=>n(!0),className:"flex items-center gap-1.5 px-3 py-1.5 text-xs bg-indigo-600 text-white rounded-md hover:bg-indigo-500 transition-colors",children:[(0,x.jsx)(z.Plus,{className:"w-3.5 h-3.5"}),"Add Pane"]})]})]}),ag&&(0,x.jsx)("div",{className:"border-b border-zinc-800 bg-zinc-900 px-4 py-3",children:(0,x.jsxs)("div",{className:"max-w-md flex items-center gap-2",children:[(0,x.jsx)(J,{className:"w-4 h-4 text-indigo-400 flex-shrink-0"}),(0,x.jsx)("input",{autoFocus:!0,type:"text",placeholder:"New space name...",value:ak,onChange:a=>al(a.target.value),onKeyDown:a=>"Enter"===a.key&&bw(),className:"flex-1 px-3 py-1.5 text-sm bg-zinc-800 border border-zinc-700 rounded-md focus:outline-none focus:border-indigo-500 text-white"}),(0,x.jsx)(cO.ColorPicker,{value:am,onChange:an}),(0,x.jsx)("button",{onClick:bw,disabled:!ak.trim(),className:"px-3 py-1.5 text-xs bg-indigo-600 text-white rounded-md hover:bg-indigo-500 disabled:opacity-50",children:"Save"}),(0,x.jsx)("button",{onClick:()=>ah(!1),className:"p-1.5 text-zinc-400 hover:text-white",children:(0,x.jsx)(N.X,{className:"w-4 h-4"})})]})}),m&&(0,x.jsx)("div",{className:"border-b border-zinc-800 bg-zinc-900 px-4 py-4",children:(0,x.jsxs)("div",{className:"max-w-lg space-y-3",children:[(0,x.jsx)("h3",{className:"text-sm font-semibold",children:"Add Pane"}),(0,x.jsxs)("div",{children:[(0,x.jsx)("label",{className:"text-[11px] text-zinc-400 mb-1.5 block",children:"Agent"}),(0,x.jsx)("div",{className:"grid grid-cols-3 gap-1.5",children:cZ.AGENT_LIST.map(a=>(0,x.jsxs)("button",{onClick:()=>{aN(a.id),aP("new"),a6(null),aL("")},className:`flex items-center gap-2 px-3 py-2 rounded-md border text-left transition-colors ${aM===a.id?"border-indigo-500 bg-indigo-600/20 text-white":"border-zinc-700 text-zinc-400 hover:text-white hover:border-zinc-600"}`,children:[(0,x.jsx)("span",{className:"w-2.5 h-2.5 rounded-full flex-shrink-0",style:{backgroundColor:a.color}}),(0,x.jsxs)("div",{className:"min-w-0",children:[(0,x.jsx)("div",{className:"text-xs font-medium truncate",children:a.name}),(0,x.jsx)("div",{className:"text-[10px] text-zinc-500 truncate",children:a.description})]})]},a.id))})]}),cZ.AGENT_TYPES[aM]?.supportsResume&&(0,x.jsxs)("div",{className:"flex gap-2",children:[(0,x.jsx)("button",{onClick:()=>{aP("new"),a6(null),aL("")},className:`px-3 py-1.5 text-xs rounded-md border transition-colors ${"new"===aO?"bg-indigo-600 border-indigo-500 text-white":"border-zinc-700 text-zinc-400 hover:text-white hover:border-zinc-600"}`,children:"New Session"}),(0,x.jsx)("button",{onClick:()=>aP("resume"),className:`px-3 py-1.5 text-xs rounded-md border transition-colors ${"resume"===aO?"bg-indigo-600 border-indigo-500 text-white":"border-zinc-700 text-zinc-400 hover:text-white hover:border-zinc-600"}`,children:"Resume Session"})]}),"custom"===aM&&(0,x.jsx)("input",{type:"text",placeholder:"Command to run (e.g. python agent.py)",value:aQ,onChange:a=>aR(a.target.value),className:"w-full px-3 py-2 text-sm bg-zinc-800 border border-zinc-700 rounded-md focus:outline-none focus:border-indigo-500 text-white font-mono"}),(0,x.jsx)(cX,{value:aS,onChange:aT}),(0,x.jsx)("input",{type:"text",placeholder:"Title (optional)",value:aC,onChange:a=>aE(a.target.value),className:"w-full px-3 py-2 text-sm bg-zinc-800 border border-zinc-700 rounded-md focus:outline-none focus:border-indigo-500 text-white"}),aS?(0,x.jsxs)("div",{children:[(0,x.jsx)("label",{className:"text-[11px] text-zinc-400 mb-1.5 block",children:"Working directory (on remote node)"}),(0,x.jsx)("input",{type:"text",placeholder:"e.g. /home/user/project or ~ for home",value:aF,onChange:a=>aG(a.target.value),className:"w-full px-3 py-2 text-sm bg-zinc-800 border border-zinc-700 rounded-md focus:outline-none focus:border-indigo-500 text-white font-mono"})]}):(0,x.jsx)(cU,{value:aF,onChange:aG}),cZ.AGENT_TYPES[aM]?.supportsResume&&"resume"===aO&&(0,x.jsxs)("div",{ref:ba,className:"relative",children:[a5?(0,x.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 text-sm bg-zinc-800 border border-zinc-700 rounded-md",children:[(0,x.jsx)(D.MessageSquare,{className:"w-3.5 h-3.5 text-indigo-400 flex-shrink-0"}),(0,x.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,x.jsx)("div",{className:"text-white truncate",children:a5.customName||a5.firstPrompt?.slice(0,60)||"Untitled"}),(0,x.jsxs)("div",{className:"text-[10px] text-zinc-500 flex items-center gap-2",children:[(0,x.jsx)("span",{children:a5.projectName}),(0,x.jsxs)("span",{children:[a5.messageCount," msgs"]}),(0,x.jsxs)("span",{className:"font-mono",children:[a5.sessionId.slice(0,8),"..."]})]})]}),(0,x.jsx)("button",{onClick:()=>{a6(null),a4(!0)},className:"text-zinc-400 hover:text-white text-xs",children:"Change"})]}):(0,x.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 text-sm bg-zinc-800 border border-zinc-700 rounded-md cursor-text",onClick:()=>a4(!0),children:[(0,x.jsx)(C.Search,{className:"w-3.5 h-3.5 text-zinc-500"}),(0,x.jsx)("input",{type:"text",placeholder:"Search sessions by name, prompt, or project...",value:aY,onChange:a=>{aZ(a.target.value),a4(!0)},onFocus:()=>a4(!0),className:"flex-1 bg-transparent focus:outline-none text-white placeholder:text-zinc-500"}),aF&&(0,x.jsx)("button",{onClick:a=>{a.stopPropagation(),a9(!a7)},className:`flex-shrink-0 px-1.5 py-0.5 text-[10px] rounded border transition-colors ${a7?"border-indigo-500/50 bg-indigo-600/20 text-indigo-400":"border-zinc-600 text-zinc-500 hover:text-zinc-400"}`,title:a7?"Showing sessions for this directory — click to show all":"Showing all sessions — click to filter by directory",children:a7?aF.split("/").pop():"All"}),(0,x.jsx)(G.ChevronDown,{className:"w-3.5 h-3.5 text-zinc-500"})]}),a2&&!a5&&(0,x.jsx)("div",{className:"absolute z-50 top-full left-0 right-0 mt-1 max-h-[300px] overflow-y-auto bg-zinc-800 border border-zinc-700 rounded-md shadow-xl",children:a0?(0,x.jsxs)("div",{className:"flex items-center justify-center py-6",children:[(0,x.jsx)(A.Loader2,{className:"w-4 h-4 animate-spin text-zinc-400"}),(0,x.jsx)("span",{className:"text-xs text-zinc-400 ml-2",children:"Loading sessions..."})]}):0===a$.length?(0,x.jsx)("div",{className:"py-4 px-3 text-xs text-zinc-500 text-center",children:aY?"No sessions match your search":"No sessions found"}):a$.map(a=>(0,x.jsx)("button",{onClick:()=>{a6(a),aL(a.sessionId),!aF&&a.projectPath&&aG(a.projectPath),aC||aE(a.customName||""),a4(!1)},className:"w-full text-left px-3 py-2.5 hover:bg-zinc-700 border-b border-zinc-700/50 last:border-0 transition-colors",children:(0,x.jsxs)("div",{className:"flex items-start gap-2",children:[(0,x.jsx)(D.MessageSquare,{className:"w-3.5 h-3.5 text-indigo-400 mt-0.5 flex-shrink-0"}),(0,x.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,x.jsx)("div",{className:"text-xs text-white truncate",children:a.customName||a.firstPrompt?.slice(0,70)||"Untitled session"}),(0,x.jsxs)("div",{className:"flex items-center gap-2 mt-0.5",children:[(0,x.jsxs)("span",{className:"text-[10px] text-indigo-400/70 flex items-center gap-0.5",children:[(0,x.jsx)(E.FolderOpen,{className:"w-2.5 h-2.5"}),a.projectName]}),(0,x.jsxs)("span",{className:"text-[10px] text-zinc-500",children:[a.messageCount," msgs"]}),(0,x.jsxs)("span",{className:"text-[10px] text-zinc-500 flex items-center gap-0.5",children:[(0,x.jsx)(F.Clock,{className:"w-2.5 h-2.5"}),new Date(a.modified).toLocaleDateString()]}),a.starred&&(0,x.jsx)("span",{className:"text-[10px]",children:"★"})]}),a.tags?.length>0&&(0,x.jsx)("div",{className:"flex gap-1 mt-1",children:a.tags.map(a=>(0,x.jsx)("span",{className:"text-[9px] px-1.5 py-0.5 bg-zinc-700 rounded text-zinc-400",children:a},a))})]})]})},a.sessionId))})]}),(0,x.jsxs)("div",{children:[(0,x.jsx)("label",{className:"text-[11px] text-zinc-400 mb-1.5 block",children:"Color"}),(0,x.jsx)(cO.ColorPicker,{value:aH,onChange:aJ})]}),(0,x.jsxs)("div",{className:"flex gap-2 pt-1",children:[(0,x.jsx)("button",{onClick:bh,disabled:"custom"===aM&&!aQ.trim(),className:"px-4 py-2 text-sm bg-indigo-600 text-white rounded-md hover:bg-indigo-500 disabled:opacity-50 disabled:cursor-not-allowed",children:"Create"}),(0,x.jsx)("button",{onClick:()=>n(!1),className:"px-4 py-2 text-sm border border-zinc-700 text-zinc-400 rounded-md hover:text-white hover:border-zinc-600",children:"Cancel"})]})]})}),s.size>0&&(0,x.jsxs)("div",{className:"flex items-center gap-2 px-4 py-1.5 border-b border-zinc-800 bg-zinc-900/50",children:[(0,x.jsx)("span",{className:"text-[10px] text-zinc-500",children:"Popped out:"}),g.filter(a=>s.has(a.id)).map(a=>(0,x.jsxs)("div",{className:"flex items-center gap-0.5",children:[(0,x.jsxs)("button",{onClick:()=>bq(a),className:"flex items-center gap-1 px-2 py-0.5 text-[10px] bg-zinc-800 border border-zinc-700 rounded-l text-zinc-400 hover:text-white hover:border-zinc-600",title:"Focus popout window",children:[(0,x.jsx)("span",{className:"w-1.5 h-1.5 rounded-full",style:{backgroundColor:a.color}}),a.title]}),(0,x.jsx)("button",{onClick:()=>bs(a.id),className:"px-1 py-0.5 text-[10px] bg-zinc-800 border border-zinc-700 border-l-0 rounded-r text-zinc-500 hover:text-white hover:border-zinc-600",title:"Pop back into grid",children:(0,x.jsx)(R,{className:"w-2.5 h-2.5"})})]},a.id))]}),$&&(0,x.jsx)(dG,{workspace:ac}),(0,x.jsxs)("div",{className:"flex-1 flex overflow-hidden min-h-0",children:[ax&&(0,x.jsx)("div",{className:"w-64 flex-shrink-0",children:(0,x.jsx)(dt,{onClose:()=>ay(!1),navigateTo:az})}),0===bD.length&&0===s.size&&0===q.size?(0,x.jsx)("div",{className:"flex-1 flex items-center justify-center",children:(0,x.jsxs)("div",{className:"text-center space-y-3",children:[(0,x.jsx)("img",{src:`${c}/spaces_icon.png`,alt:"Spaces",className:"w-16 h-16 mx-auto opacity-30"}),(0,x.jsx)("p",{className:"text-zinc-500",children:"No panes yet."}),(0,x.jsx)("p",{className:"text-zinc-600 text-xs",children:"Add a pane to start a shell, Claude, Codex, Gemini, or any agent."}),(0,x.jsxs)("button",{onClick:()=>n(!0),className:"px-4 py-2 text-sm bg-indigo-600 text-white rounded-md hover:bg-indigo-500 inline-flex items-center gap-2",children:[(0,x.jsx)(z.Plus,{className:"w-4 h-4"}),"Add your first pane"]})]})}):0===bD.length?(0,x.jsx)("div",{className:"flex-1 flex items-center justify-center",children:(0,x.jsxs)("div",{className:"text-center space-y-2",children:[(0,x.jsx)("p",{className:"text-zinc-500 text-sm",children:q.size>0&&s.size>0?"All panes are minimized or popped out.":q.size>0?"All panes are minimized. Use the toolbar to restore them.":"All panes are popped out to separate windows."}),(0,x.jsxs)("button",{onClick:()=>n(!0),className:"px-3 py-1.5 text-xs text-zinc-400 hover:text-white border border-zinc-700 rounded-md hover:border-zinc-600 inline-flex items-center gap-1.5",children:[(0,x.jsx)(z.Plus,{className:"w-3.5 h-3.5"}),"Add another pane"]})]})}):(0,x.jsxs)("div",{className:"flex-1 flex flex-col overflow-hidden min-h-0",children:[(0,x.jsx)(bv,{sensors:bo,collisionDetection:aI,onDragEnd:bp,children:(0,x.jsx)(bI,{items:bD.map(a=>a.id),strategy:bF,children:(0,x.jsx)(dO,{panes:o?bD.filter(a=>a.id===o):bD,renderPane:(b,c)=>(0,x.jsx)(Z.TerminalPane,{pane:b,onClose:bi,onUpdate:bj,onDuplicate:bk,isMaximized:o===b.id,onToggleMaximize:bl,onMinimize:bm,onPopout:br,onBrowse:aB,terminalToken:a,workspaceCollaboration:ac?.collaboration,dragHandleProps:c})})})}),bE.length>0&&(0,x.jsx)("div",{className:"flex items-center gap-1.5 px-2 py-1.5 border-t border-zinc-800 flex-shrink-0 overflow-x-auto bg-zinc-950",children:bE.map(a=>(0,x.jsxs)("button",{onClick:()=>bn(a.id),className:"flex items-center gap-1.5 px-2.5 py-1 text-[11px] rounded-md border border-zinc-700 hover:border-zinc-500 bg-zinc-800/50 hover:bg-zinc-700/50 text-zinc-400 hover:text-white transition-colors flex-shrink-0",title:`Restore ${a.title}`,children:[(0,x.jsx)("span",{className:"w-2 h-2 rounded-full flex-shrink-0",style:{backgroundColor:a.color}}),(0,x.jsx)("span",{className:"truncate max-w-[100px]",children:a.title}),(0,x.jsx)(W.Maximize2,{className:"w-2.5 h-2.5 text-zinc-500"})]},a.id))})]}),ac?.collaboration&&(0,x.jsx)(c4,{workspaceId:ac?.id??null,panes:bD.map(a=>({id:a.id,title:a.title,agentType:a.agentType,color:a.color})),collapsed:w,onToggle:()=>I(!w)})]}),(0,x.jsx)(dF,{isOpen:ai,onClose:()=>aj(!1),onLaunch:a=>{aj(!1),bu(a)}})]}):(0,x.jsxs)("div",{className:"h-screen flex flex-col bg-zinc-950 text-zinc-100",children:[(0,x.jsx)("div",{className:"absolute top-4 left-4",children:(0,x.jsxs)("button",{onClick:()=>b.push("/"),className:"flex items-center gap-2 px-3 py-1.5 text-xs text-zinc-500 hover:text-white hover:bg-zinc-800 rounded-md transition-colors",children:[(0,x.jsx)(P.Home,{className:"w-3.5 h-3.5"}),"Home"]})}),(0,x.jsx)("div",{className:"flex-1 flex items-center justify-center p-8 overflow-y-auto min-h-0",children:(0,x.jsxs)("div",{className:"w-full max-w-2xl my-auto",children:[(0,x.jsxs)("div",{className:"text-center mb-10",children:[(0,x.jsx)("img",{src:`${c}/spaces_icon.png`,alt:"Spaces",className:"w-16 h-16 mx-auto mb-4"}),(0,x.jsx)("h1",{className:"text-2xl font-bold mb-2",children:"Spaces"}),(0,x.jsx)("p",{className:"text-zinc-400 text-sm",children:"Choose a workspace to open, or create a new one."})]}),k?(0,x.jsx)("div",{className:"flex justify-center py-12",children:(0,x.jsx)(A.Loader2,{className:"w-6 h-6 animate-spin text-indigo-500"})}):(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)("div",{className:"grid grid-cols-2 gap-3 mb-6",children:aa.map(a=>(0,x.jsxs)("div",{className:`relative bg-zinc-900 border rounded-lg transition-all ${av===a.id?"border-zinc-600":"border-zinc-800 hover:border-zinc-600 hover:bg-zinc-800/50"}`,children:[(0,x.jsxs)("button",{onClick:()=>bu(a.id),className:"flex items-center gap-3 p-4 text-left w-full group",children:[(0,x.jsx)("span",{className:"w-3.5 h-3.5 rounded-full flex-shrink-0",style:{backgroundColor:a.color}}),(0,x.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,x.jsx)("div",{className:"text-sm font-medium text-white truncate",children:a.name}),(0,x.jsxs)("div",{className:"text-xs text-zinc-500 mt-0.5",children:[a.paneCount||0," pane",1!==(a.paneCount||0)?"s":"",a.isActive&&(0,x.jsx)("span",{className:"text-indigo-400 ml-2",children:"last active"})]})]}),(0,x.jsx)(B.Terminal,{className:"w-4 h-4 text-zinc-600 group-hover:text-zinc-400 transition-colors"})]}),f&&(0,x.jsx)("button",{onClick:()=>aw(av===a.id?null:a.id),className:`absolute top-2 right-2 p-1 rounded transition-colors ${av===a.id?"text-purple-400 bg-purple-500/10":"text-zinc-700 hover:text-zinc-400"}`,title:"Knowledge lobe settings",children:(0,x.jsx)(V.Brain,{className:"w-3.5 h-3.5"})}),av===a.id&&(0,x.jsx)("div",{className:"px-4 pb-4 border-t border-zinc-800/50 pt-3",children:(0,x.jsx)(db,{workspaceId:a.id,workspaceName:a.name})})]},a.id))}),(0,x.jsxs)("div",{className:"flex justify-center gap-3",children:[(0,x.jsxs)("button",{onClick:bx,className:"flex items-center gap-2 px-4 py-2.5 text-sm border border-zinc-700 text-zinc-400 rounded-lg hover:text-white hover:border-zinc-500 transition-colors",children:[(0,x.jsx)(z.Plus,{className:"w-4 h-4"}),"New Workspace"]}),(0,x.jsxs)("button",{onClick:()=>aj(!0),className:"flex items-center gap-2 px-4 py-2.5 text-sm border border-dashed border-indigo-500/50 text-indigo-400 rounded-lg hover:text-indigo-300 hover:border-indigo-400 hover:bg-indigo-500/10 transition-colors",children:[(0,x.jsx)(X,{className:"w-4 h-4"}),"Plan a Project"]})]}),d&&aU.isLoading&&(0,x.jsxs)("div",{className:"flex items-center justify-center gap-2 py-4 mt-6 border-t border-zinc-800",children:[(0,x.jsx)(A.Loader2,{className:"w-4 h-4 animate-spin text-zinc-500"}),(0,x.jsx)("span",{className:"text-xs text-zinc-500",children:"Loading network spaces..."})]}),d&&aU.data?.remote&&aU.data.remote.length>0&&(0,x.jsxs)("div",{className:"mt-6 border-t border-zinc-800 pt-6",children:[(0,x.jsxs)("div",{className:"flex items-center gap-2 mb-4",children:[(0,x.jsx)(S.Globe,{className:"w-4 h-4 text-zinc-500"}),(0,x.jsx)("h2",{className:"text-sm font-medium text-zinc-400",children:"Network Spaces"})]}),aU.data.remote.map(a=>(0,x.jsxs)("div",{className:"mb-3",children:[(0,x.jsxs)("button",{onClick:()=>aX(a.nodeId),className:"flex items-center gap-2 w-full px-2 py-1.5 text-left text-xs text-zinc-400 hover:text-white rounded-md hover:bg-zinc-800/50 transition-colors",children:[aV.has(a.nodeId)?(0,x.jsx)(H.ChevronRight,{className:"w-3.5 h-3.5 text-zinc-600"}):(0,x.jsx)(G.ChevronDown,{className:"w-3.5 h-3.5 text-zinc-600"}),(0,x.jsx)(S.Globe,{className:"w-3 h-3 text-zinc-600"}),(0,x.jsx)("span",{className:"font-medium",children:a.nodeName}),(0,x.jsxs)("span",{className:"text-zinc-600",children:[a.workspaces.length," space",1!==a.workspaces.length?"s":""]})]}),!aV.has(a.nodeId)&&(0,x.jsx)("div",{className:"grid grid-cols-2 gap-2 mt-2 ml-5",children:a.workspaces.map(c=>(0,x.jsxs)("button",{onClick:()=>{b.push(`/terminal/remote/${a.nodeId}/${c.id}`)},className:"flex items-center gap-3 p-3 bg-zinc-900/50 border border-zinc-800/50 rounded-lg hover:border-zinc-600 hover:bg-zinc-800/30 transition-colors text-left group",children:[(0,x.jsx)("span",{className:"w-3 h-3 rounded-full flex-shrink-0 ring-1 ring-zinc-700",style:{backgroundColor:c.color}}),(0,x.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,x.jsx)("div",{className:"text-xs font-medium text-zinc-300 truncate",children:c.name}),(0,x.jsxs)("div",{className:"text-[10px] text-zinc-600 mt-0.5",children:[c.paneCount||0," pane",1!==(c.paneCount||0)?"s":""]})]}),(0,x.jsx)(S.Globe,{className:"w-3 h-3 text-zinc-700 group-hover:text-zinc-500 transition-colors"})]},`${a.nodeId}-${c.id}`))})]},a.nodeId)),aU.data.errors&&aU.data.errors.length>0&&(0,x.jsx)("div",{className:"mt-3 space-y-1",children:aU.data.errors.map(a=>(0,x.jsxs)("div",{className:"flex items-center gap-2 px-2 py-1.5 text-[10px] text-zinc-600",children:[(0,x.jsx)(T.AlertCircle,{className:"w-3 h-3 text-red-500/50"}),(0,x.jsxs)("span",{children:[a.nodeName,": ",a.error]})]},a.nodeId))})]})]})]})}),(0,x.jsx)(dF,{isOpen:ai,onClose:()=>aj(!1),onLaunch:a=>{aj(!1),bu(a)}})]})}a.s(["default",()=>dQ],266490)}];
|
|
85
|
+
</script></body></html>`),g.document.close(),setTimeout(()=>{v.current?.postMessage({type:"file-update",file:a})},100),w.current&&clearInterval(w.current),w.current=setInterval(()=>{u.current?.closed&&(dp({wasPoppedOut:!1}),z.current&&t(!1),u.current=null,w.current&&(clearInterval(w.current),w.current=null))},500)}},E=(0,y.useRef)(null),[F,G]=(0,y.useState)(!1),[H,I]=(0,y.useState)(!1),J=async a=>{if(g&&0!==a.length){G(!0);try{let b=new FormData;for(let c of(b.append("dir",g),Array.from(a)))b.append("files",c);await fetch((0,cT.api)("/api/files"),{method:"POST",body:b});let c=await B(g);j(c.items)}catch{}finally{G(!1)}}},K=e?g.replace(e,"").replace(/^[/\\]/,""):"",L=K?K.split(/[/\\]/):[],M=o&&!s,O=k&&g!==e;return e?(0,x.jsxs)("div",{className:"h-full flex flex-col bg-zinc-950 border-r border-zinc-800",children:[(0,x.jsxs)("div",{className:"flex items-center justify-between px-3 py-2 border-b border-zinc-800/50 flex-shrink-0",children:[(0,x.jsx)("span",{className:"text-[10px] text-zinc-500 uppercase tracking-wider font-medium",children:"Files"}),(0,x.jsx)("button",{onClick:a,className:"p-0.5 text-zinc-600 hover:text-zinc-300 transition-colors",children:(0,x.jsx)(N.X,{className:"w-3.5 h-3.5"})})]}),c.length>1&&(0,x.jsx)("div",{className:"flex items-center gap-1 px-3 py-1.5 border-b border-zinc-800/30 flex-shrink-0 overflow-x-auto",children:c.map(a=>{let b=a.split(/[/\\]/).pop()||a,c=a===e;return(0,x.jsx)("button",{onClick:()=>{f(a),h(a),n(new Set),p(null)},className:`px-2 py-0.5 text-[10px] rounded transition-colors flex-shrink-0 ${c?"bg-amber-500/15 text-amber-400 border border-amber-500/30":"text-zinc-500 hover:text-zinc-300 border border-transparent"}`,title:a,children:b},a)})}),(0,x.jsxs)("div",{className:"flex items-center gap-1 px-3 py-1.5 border-b border-zinc-800/30 overflow-x-auto text-[10px] flex-shrink-0",children:[O&&(0,x.jsx)("button",{onClick:()=>{k&&g!==e&&h(k)},className:"text-zinc-500 hover:text-zinc-300 flex-shrink-0",children:(0,x.jsx)(dh,{className:"w-3 h-3"})}),(0,x.jsx)("input",{ref:E,type:"file",multiple:!0,className:"hidden",onChange:a=>{a.target.files&&J(a.target.files),a.target.value=""}}),(0,x.jsx)("button",{onClick:()=>E.current?.click(),className:"text-zinc-600 hover:text-zinc-300 flex-shrink-0 ml-auto",title:"Upload files to current directory",children:(0,x.jsx)(dk.Upload,{className:"w-3 h-3"})}),(0,x.jsx)("button",{onClick:()=>h(e),className:"text-zinc-500 hover:text-zinc-300 truncate flex-shrink-0",children:e.split(/[/\\]/).pop()}),L.map((a,b)=>(0,x.jsxs)("span",{className:"flex items-center gap-1 flex-shrink-0",children:[(0,x.jsx)("span",{className:"text-zinc-700",children:"/"}),(0,x.jsx)("button",{onClick:()=>{h(e+"/"+L.slice(0,b+1).join("/"))},className:"text-zinc-500 hover:text-zinc-300",children:a})]},b))]}),s&&o&&(0,x.jsxs)("div",{className:"flex items-center gap-2 px-3 py-1.5 border-b border-zinc-800/30 bg-zinc-900/50 flex-shrink-0",children:[(0,x.jsx)("span",{className:"text-[10px] text-zinc-500",children:"Viewing:"}),(0,x.jsx)("span",{className:"text-[10px] text-zinc-400 font-mono truncate flex-1",children:o.name}),(0,x.jsx)("button",{onClick:()=>{dp({wasPoppedOut:!1}),u.current&&!u.current.closed&&u.current.close(),u.current=null,t(!1),w.current&&(clearInterval(w.current),w.current=null)},className:"text-zinc-500 hover:text-zinc-300 transition-colors",title:"Pop back into panel",children:(0,x.jsx)(R,{className:"w-3 h-3"})})]}),(0,x.jsxs)("div",{className:"flex-1 flex flex-col min-h-0 overflow-hidden",children:[(0,x.jsx)("div",{className:`overflow-y-auto ${M?"max-h-[40%] border-b border-zinc-800/30":"flex-1"} ${H?"ring-2 ring-inset ring-amber-500/50 bg-amber-500/5":""}`,onDragOver:a=>{a.preventDefault(),I(!0)},onDragLeave:()=>I(!1),onDrop:a=>{a.preventDefault(),I(!1),a.dataTransfer.files.length>0&&J(a.dataTransfer.files)},children:F?(0,x.jsx)("div",{className:"p-3 text-xs text-amber-400",children:"Uploading..."}):q?(0,x.jsx)("div",{className:"p-3 text-xs text-zinc-600",children:"Loading..."}):0===i.length?(0,x.jsx)("div",{className:"p-3 text-xs text-zinc-600",children:"Empty directory"}):(0,x.jsx)("div",{className:"py-1",children:i.map(a=>(0,x.jsx)(dv,{item:a,depth:0,expanded:m.has(a.path),expandedDirs:m,onClick:C,loadDir:B,activeFile:o?.path},a.path))})}),M&&(0,x.jsxs)("div",{className:"flex-1 flex flex-col min-h-0 overflow-hidden",children:[(0,x.jsxs)("div",{className:"flex items-center justify-between px-3 py-1.5 border-b border-zinc-800/30 flex-shrink-0",children:[(0,x.jsxs)("div",{className:"flex items-center gap-1.5 min-w-0",children:[(0,x.jsx)("span",{className:`text-xs font-mono truncate ${dq(o.ext)}`,children:o.name}),(0,x.jsx)("span",{className:"text-[9px] text-zinc-600",children:o.lines?`${o.lines} lines`:ds(o.size)}),o.truncated&&(0,x.jsx)("span",{className:"text-[9px] text-amber-500",children:"(truncated)"})]}),(0,x.jsxs)("div",{className:"flex items-center gap-1",children:[(0,x.jsx)("button",{onClick:()=>{var a,b;let c;return o&&(a=o.path,b=o.name,void((c=document.createElement("a")).href=(0,cT.api)(`/api/files?raw=${encodeURIComponent(a)}`),c.download=b,c.click()))},className:"p-0.5 text-zinc-600 hover:text-zinc-300 transition-colors",title:"Download file",children:(0,x.jsx)(dj,{className:"w-3 h-3"})}),(0,x.jsx)("button",{onClick:()=>{o&&D(o)},className:"p-0.5 text-zinc-600 hover:text-zinc-300 transition-colors",title:"Open in new window",children:(0,x.jsx)(di.ExternalLink,{className:"w-3 h-3"})}),(0,x.jsx)("button",{onClick:()=>p(null),className:"p-0.5 text-zinc-600 hover:text-zinc-300 transition-colors",children:(0,x.jsx)(N.X,{className:"w-3 h-3"})})]})]}),(0,x.jsx)("div",{className:"flex-1 overflow-auto",children:(0,x.jsx)(du,{file:o})})]})]})]}):(0,x.jsxs)("div",{className:"h-full flex flex-col bg-zinc-950 border-r border-zinc-800",children:[(0,x.jsxs)("div",{className:"flex items-center justify-between px-3 py-2 border-b border-zinc-800/50 flex-shrink-0",children:[(0,x.jsx)("span",{className:"text-[10px] text-zinc-500 uppercase tracking-wider font-medium",children:"Files"}),(0,x.jsx)("button",{onClick:a,className:"p-0.5 text-zinc-600 hover:text-zinc-300 transition-colors",children:(0,x.jsx)(N.X,{className:"w-3.5 h-3.5"})})]}),(0,x.jsx)("div",{className:"p-3 text-xs text-zinc-500",children:0===c.length?"No development directories configured. Add them in Settings.":"Loading..."})]})}function du({file:a}){return a.error?(0,x.jsx)("div",{className:"p-3 text-xs text-red-400",children:a.error}):a.image&&a.rawUrl?(0,x.jsx)("div",{className:"flex items-center justify-center p-4 min-h-[200px]",children:(0,x.jsx)("img",{src:(0,cT.api)(a.rawUrl),alt:a.name,className:"max-w-full max-h-[60vh] object-contain rounded"})}):a.image&&a.tooLarge?(0,x.jsxs)("div",{className:"p-3 text-xs text-zinc-500",children:["Image too large (",ds(a.size),")"]}):a.pdf&&a.rawUrl?(0,x.jsx)("iframe",{src:(0,cT.api)(a.rawUrl),className:"w-full h-full border-none",title:a.name}):a.binary?(0,x.jsxs)("div",{className:"p-3 text-xs text-zinc-500",children:["Binary file (",a.ext,", ",ds(a.size),")"]}):void 0!==a.content?(0,x.jsx)("pre",{className:"text-[11px] leading-4 font-mono p-0 m-0",children:(0,x.jsx)("table",{className:"border-collapse w-full",children:(0,x.jsx)("tbody",{children:a.content.split("\n").map((b,c)=>(0,x.jsxs)("tr",{className:"hover:bg-zinc-800/30",children:[(0,x.jsx)("td",{className:"text-right pr-3 pl-3 text-zinc-700 select-none w-[1%] whitespace-nowrap",children:c+1}),(0,x.jsx)("td",{className:`pr-3 whitespace-pre ${dq(a.ext)}`,children:b||" "})]},c))})})}):null}function dv({item:a,depth:b,expanded:c,expandedDirs:d,onClick:e,loadDir:f,activeFile:g}){let[h,i]=(0,y.useState)(null);(0,y.useEffect)(()=>{c&&a.isDir&&!h&&f(a.path).then(a=>i(a.items))},[c,a.isDir,a.path,h,f]);let j=g===a.path;return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsxs)("button",{onClick:()=>e(a),className:`flex items-center gap-1.5 w-full text-left px-2 py-[3px] text-[11px] transition-colors ${j?"bg-indigo-500/10 text-indigo-300":"text-zinc-400 hover:bg-zinc-800/50 hover:text-zinc-200"}`,style:{paddingLeft:`${8+14*b}px`},children:[a.isDir?c?(0,x.jsx)(G.ChevronDown,{className:"w-3 h-3 text-zinc-600 flex-shrink-0"}):(0,x.jsx)(H.ChevronRight,{className:"w-3 h-3 text-zinc-600 flex-shrink-0"}):(0,x.jsx)("span",{className:"w-3 flex-shrink-0"}),(0,x.jsx)(dr,{item:a}),(0,x.jsx)("span",{className:"truncate",children:a.name})]}),c&&a.isDir&&h&&h.map(a=>(0,x.jsx)(dv,{item:a,depth:b+1,expanded:d.has(a.path),expandedDirs:d,onClick:e,loadDir:f,activeFile:g},a.path))]})}function dw({messages:a,onSend:b,loading:c}){let[d,e]=(0,y.useState)(""),f=(0,y.useRef)(null);(0,y.useEffect)(()=>{f.current&&(f.current.scrollTop=f.current.scrollHeight)},[a,c]);let g=()=>{let a=d.trim();a&&!c&&(e(""),b(a))};return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsxs)("div",{ref:f,className:"flex-1 overflow-y-auto px-6 py-4 space-y-4",children:[0===a.length&&!c&&(0,x.jsxs)("div",{className:"text-center py-12",children:[(0,x.jsx)("p",{className:"text-zinc-400 text-sm mb-1",children:"Describe the project you want to build."}),(0,x.jsx)("p",{className:"text-zinc-600 text-xs",children:"I'll help you plan the workspace, agents, and initial tasks."})]}),a.map((a,b)=>(0,x.jsx)("div",{className:`flex ${"user"===a.role?"justify-end":"justify-start"}`,children:(0,x.jsx)("div",{className:`max-w-[80%] rounded-lg px-3 py-2 text-sm ${"user"===a.role?"bg-indigo-600 text-white":"bg-zinc-800 text-zinc-200"}`,children:(0,x.jsx)("p",{className:"whitespace-pre-wrap",children:a.content})})},b)),c&&(0,x.jsx)("div",{className:"flex justify-start",children:(0,x.jsx)("div",{className:"bg-zinc-800 rounded-lg px-4 py-3",children:(0,x.jsxs)("div",{className:"flex gap-1",children:[(0,x.jsx)("span",{className:"w-2 h-2 bg-zinc-500 rounded-full animate-bounce",style:{animationDelay:"0ms"}}),(0,x.jsx)("span",{className:"w-2 h-2 bg-zinc-500 rounded-full animate-bounce",style:{animationDelay:"150ms"}}),(0,x.jsx)("span",{className:"w-2 h-2 bg-zinc-500 rounded-full animate-bounce",style:{animationDelay:"300ms"}})]})})})]}),(0,x.jsx)("div",{className:"px-6 py-3 border-t border-zinc-800 flex-shrink-0",children:(0,x.jsxs)("div",{className:"flex gap-2",children:[(0,x.jsx)("textarea",{value:d,onChange:a=>e(a.target.value),onKeyDown:a=>{"Enter"!==a.key||a.shiftKey||(a.preventDefault(),g())},placeholder:"Describe your project...",rows:2,className:"flex-1 bg-zinc-900 border border-zinc-700 rounded-lg px-3 py-2 text-sm text-zinc-200 placeholder:text-zinc-600 focus:outline-none focus:border-zinc-500 resize-none"}),(0,x.jsx)("button",{onClick:g,disabled:!d.trim()||c,className:"px-4 bg-indigo-600 hover:bg-indigo-500 disabled:bg-zinc-800 disabled:text-zinc-600 text-white rounded-lg flex items-center gap-1.5 text-sm self-end",children:(0,x.jsx)(c_.Send,{className:"w-3.5 h-3.5"})})]})})]})}let dx=(0,I.default)("sparkles",[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]]),dy={claude:"#6366f1",codex:"#22c55e",gemini:"#3b82f6",aider:"#f59e0b",shell:"#78716c",custom:"#a855f7"};function dz({plan:a,onReview:b}){return a?(0,x.jsxs)("div",{className:"flex flex-col h-full",children:[(0,x.jsxs)("div",{className:"flex-1 overflow-y-auto px-5 py-4 space-y-4",children:[(0,x.jsxs)("div",{children:[(0,x.jsx)("div",{className:"text-[10px] uppercase tracking-wider text-zinc-500 mb-1.5",children:"Workspace"}),(0,x.jsxs)("div",{className:"bg-zinc-800/50 rounded-lg p-3 border border-zinc-700/50",children:[(0,x.jsxs)("div",{className:"flex items-center gap-2 mb-1",children:[(0,x.jsx)("span",{className:"w-3 h-3 rounded-full",style:{backgroundColor:a.workspace.color}}),(0,x.jsx)("span",{className:"text-sm font-medium text-zinc-200",children:a.workspace.name})]}),a.workspace.description&&(0,x.jsx)("p",{className:"text-xs text-zinc-400 mt-1",children:a.workspace.description})]})]}),a.panes.length>0&&(0,x.jsxs)("div",{children:[(0,x.jsxs)("div",{className:"text-[10px] uppercase tracking-wider text-zinc-500 mb-1.5",children:["Panes (",a.panes.length,")"]}),(0,x.jsx)("div",{className:"space-y-2",children:a.panes.map((a,b)=>(0,x.jsxs)("div",{className:"bg-zinc-800/50 rounded-lg p-3 border border-zinc-700/50",children:[(0,x.jsxs)("div",{className:"flex items-center gap-2 mb-1",children:[(0,x.jsx)(B.Terminal,{className:"w-3 h-3 text-zinc-500"}),(0,x.jsx)("span",{className:"text-xs font-medium text-zinc-200",children:a.title}),(0,x.jsx)("span",{className:"text-[9px] px-1.5 py-0.5 rounded font-medium",style:{backgroundColor:`${dy[a.agentType]||"#6366f1"}20`,color:dy[a.agentType]||"#6366f1"},children:a.agentType})]}),a.description&&(0,x.jsx)("p",{className:"text-[11px] text-zinc-500 mt-1",children:a.description}),a.cwd&&(0,x.jsx)("p",{className:"text-[10px] text-zinc-600 font-mono mt-1",children:a.cwd})]},b))})]}),a.summary&&(0,x.jsxs)("div",{children:[(0,x.jsx)("div",{className:"text-[10px] uppercase tracking-wider text-zinc-500 mb-1.5",children:"Summary"}),(0,x.jsx)("p",{className:"text-xs text-zinc-400",children:a.summary})]})]}),(0,x.jsx)("div",{className:"px-5 py-3 border-t border-zinc-800 flex-shrink-0",children:(0,x.jsx)("button",{onClick:b,disabled:!a.panes.length,className:"w-full py-2 text-sm font-medium bg-indigo-600 hover:bg-indigo-500 disabled:bg-zinc-800 disabled:text-zinc-600 text-white rounded-lg transition-colors",children:"Review Plan"})})]}):(0,x.jsxs)("div",{className:"flex flex-col items-center justify-center h-full px-6 text-center",children:[(0,x.jsx)(dx,{className:"w-8 h-8 text-zinc-700 mb-3"}),(0,x.jsx)("p",{className:"text-zinc-500 text-sm",children:"Your project plan will appear here as you chat."})]})}var dA=a.i(400210);let dB=(0,I.default)("rocket",[["path",{d:"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5",key:"qeys4"}],["path",{d:"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09",key:"u4xsad"}],["path",{d:"M9 12a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.4 22.4 0 0 1-4 2z",key:"676m9"}],["path",{d:"M9 12H4s.55-3.03 2-4c1.62-1.08 5 .05 5 .05",key:"92ym6u"}]]),dC=[{value:"claude",label:"Claude Code"},{value:"codex",label:"Codex"},{value:"gemini",label:"Gemini"},{value:"aider",label:"Aider"},{value:"forge",label:"Forge"},{value:"shell",label:"Shell"},{value:"custom",label:"Custom"}],dD=["#ef4444","#f97316","#f59e0b","#eab308","#84cc16","#22c55e","#14b8a6","#06b6d4","#3b82f6","#6366f1","#8b5cf6","#a855f7","#d946ef","#ec4899","#f43f5e","#78716c"];function dE({plan:a,onUpdate:b,onBack:c,onLaunch:d}){let[e,f]=(0,y.useState)([]);(0,y.useEffect)(()=>{fetch((0,cT.api)("/api/config")).then(a=>a.json()).then(a=>{a.customModels&&f(a.customModels)}).catch(()=>{})},[]);let g=(c,d)=>{b({...a,workspace:{...a.workspace,[c]:d}})},h=(c,d,e)=>{let f=[...a.panes];f[c]={...f[c],[d]:e},b({...a,panes:f})},i=a.workspace.name.trim()&&a.panes.length>0&&a.panes.every(a=>a.cwd.trim());return(0,x.jsxs)("div",{className:"max-w-3xl mx-auto px-6 py-6 space-y-6",children:[(0,x.jsxs)("div",{className:"flex items-center justify-between",children:[(0,x.jsxs)("button",{onClick:c,className:"flex items-center gap-1.5 text-xs text-zinc-400 hover:text-white",children:[(0,x.jsx)(dA.ArrowLeft,{className:"w-3.5 h-3.5"}),"Back to Chat"]}),(0,x.jsxs)("button",{onClick:d,disabled:!i,className:"flex items-center gap-1.5 px-4 py-2 text-sm font-medium bg-green-600 hover:bg-green-500 disabled:bg-zinc-800 disabled:text-zinc-600 text-white rounded-lg transition-colors",children:[(0,x.jsx)(dB,{className:"w-3.5 h-3.5"}),"Launch Space"]})]}),(0,x.jsxs)("div",{className:"bg-zinc-900 rounded-lg border border-zinc-700 p-4 space-y-3",children:[(0,x.jsx)("div",{className:"text-[10px] uppercase tracking-wider text-zinc-500",children:"Workspace"}),(0,x.jsxs)("div",{className:"flex gap-3",children:[(0,x.jsxs)("div",{className:"flex-1",children:[(0,x.jsx)("label",{className:"text-[10px] text-zinc-500 block mb-1",children:"Name"}),(0,x.jsx)("input",{value:a.workspace.name,onChange:a=>g("name",a.target.value),className:"w-full bg-zinc-800 border border-zinc-700 rounded px-3 py-1.5 text-sm text-zinc-200 focus:outline-none focus:border-zinc-500"})]}),(0,x.jsxs)("div",{children:[(0,x.jsx)("label",{className:"text-[10px] text-zinc-500 block mb-1",children:"Color"}),(0,x.jsx)("div",{className:"flex gap-1 flex-wrap",style:{width:128},children:dD.map(b=>(0,x.jsx)("button",{onClick:()=>g("color",b),className:`w-5 h-5 rounded-full ${a.workspace.color===b?"ring-2 ring-white ring-offset-1 ring-offset-zinc-900":"hover:ring-1 hover:ring-zinc-500"}`,style:{backgroundColor:b}},b))})]})]}),(0,x.jsxs)("div",{children:[(0,x.jsx)("label",{className:"text-[10px] text-zinc-500 block mb-1",children:"Description"}),(0,x.jsx)("textarea",{value:a.workspace.description,onChange:a=>g("description",a.target.value),rows:2,className:"w-full bg-zinc-800 border border-zinc-700 rounded px-3 py-1.5 text-sm text-zinc-200 focus:outline-none focus:border-zinc-500 resize-none"})]})]}),(0,x.jsxs)("div",{className:"space-y-3",children:[(0,x.jsxs)("div",{className:"flex items-center justify-between",children:[(0,x.jsxs)("div",{className:"text-[10px] uppercase tracking-wider text-zinc-500",children:["Panes (",a.panes.length,")"]}),(0,x.jsxs)("button",{onClick:()=>{b({...a,panes:[...a.panes,{title:"New Pane",agentType:"claude",cwd:"~",description:""}]})},className:"flex items-center gap-1 text-xs text-zinc-400 hover:text-white",children:[(0,x.jsx)(z.Plus,{className:"w-3 h-3"})," Add Pane"]})]}),a.panes.map((c,d)=>(0,x.jsx)("div",{className:"bg-zinc-900 rounded-lg border border-zinc-700 p-4 space-y-2.5",children:(0,x.jsxs)("div",{className:"flex items-start gap-3",children:[(0,x.jsxs)("div",{className:"flex-1 space-y-2.5",children:[(0,x.jsxs)("div",{className:"flex gap-3",children:[(0,x.jsxs)("div",{className:"flex-1",children:[(0,x.jsx)("label",{className:"text-[10px] text-zinc-500 block mb-1",children:"Title"}),(0,x.jsx)("input",{value:c.title,onChange:a=>h(d,"title",a.target.value),className:"w-full bg-zinc-800 border border-zinc-700 rounded px-2 py-1 text-xs text-zinc-200 focus:outline-none focus:border-zinc-500"})]}),(0,x.jsxs)("div",{className:"w-32",children:[(0,x.jsx)("label",{className:"text-[10px] text-zinc-500 block mb-1",children:"Agent"}),(0,x.jsx)("select",{value:c.agentType,onChange:a=>h(d,"agentType",a.target.value),className:"w-full bg-zinc-800 border border-zinc-700 rounded px-2 py-1 text-xs text-zinc-200",children:dC.map(a=>(0,x.jsx)("option",{value:a.value,children:a.label},a.value))})]}),"forge"===c.agentType&&e.length>0&&(0,x.jsxs)("div",{className:"w-40",children:[(0,x.jsx)("label",{className:"text-[10px] text-zinc-500 block mb-1",children:"Custom Model"}),(0,x.jsxs)("select",{value:c.customModelId||"",onChange:a=>h(d,"customModelId",a.target.value),className:"w-full bg-zinc-800 border border-zinc-700 rounded px-2 py-1 text-xs text-zinc-200",children:[(0,x.jsx)("option",{value:"",children:"Default"}),e.map(a=>(0,x.jsx)("option",{value:a.id,children:a.name},a.id))]})]})]}),(0,x.jsxs)("div",{children:[(0,x.jsx)("label",{className:"text-[10px] text-zinc-500 block mb-1",children:"Working Directory"}),(0,x.jsx)("input",{value:c.cwd,onChange:a=>h(d,"cwd",a.target.value),className:"w-full bg-zinc-800 border border-zinc-700 rounded px-2 py-1 text-xs font-mono text-zinc-200 focus:outline-none focus:border-zinc-500",placeholder:"/path/to/project"})]}),(0,x.jsxs)("div",{children:[(0,x.jsx)("label",{className:"text-[10px] text-zinc-500 block mb-1",children:"Initial Prompt (optional)"}),(0,x.jsx)("textarea",{value:c.initialPrompt||"",onChange:a=>h(d,"initialPrompt",a.target.value),rows:2,className:"w-full bg-zinc-800 border border-zinc-700 rounded px-2 py-1 text-xs text-zinc-200 focus:outline-none focus:border-zinc-500 resize-none",placeholder:"What should this agent start working on?"})]})]}),(0,x.jsx)("button",{onClick:()=>{b({...a,panes:a.panes.filter((a,b)=>b!==d)})},className:"text-zinc-600 hover:text-red-400 mt-4",title:"Remove pane",children:(0,x.jsx)(K.Trash2,{className:"w-3.5 h-3.5"})})]})},d))]}),(0,x.jsx)("div",{className:"flex justify-end pt-2",children:(0,x.jsxs)("button",{onClick:d,disabled:!i,className:"flex items-center gap-1.5 px-6 py-2.5 text-sm font-medium bg-green-600 hover:bg-green-500 disabled:bg-zinc-800 disabled:text-zinc-600 text-white rounded-lg transition-colors",children:[(0,x.jsx)(dB,{className:"w-4 h-4"}),"Launch Space"]})})]})}function dF({isOpen:a,onClose:b,onLaunch:c}){let[d,e]=(0,y.useState)([]),[f,g]=(0,y.useState)(null),[h,i]=(0,y.useState)(!1),[j,k]=(0,y.useState)("chat"),[l,m]=(0,y.useState)(null),n=(0,y.useCallback)(async a=>{let b=[...d,{role:"user",content:a}];e(b),i(!0),m(null);try{let a=await fetch((0,cT.api)("/api/wizard/chat"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({messages:b,currentPlan:f})}),c=await a.json();if(!a.ok)throw Error(c.error);e([...b,{role:"assistant",content:c.reply}]),c.plan&&g(c.plan)}catch(a){m(a.message)}i(!1)},[d,f]),o=(0,y.useCallback)(async()=>{if(f)try{let a=await fetch((0,cT.api)("/api/workspaces"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:f.workspace.name,description:f.workspace.description,color:f.workspace.color})}),d=(await a.json()).id;for(let a of f.panes)await fetch((0,cT.api)("/api/panes"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:a.title,agentType:a.agentType,cwd:a.cwd,customCommand:a.customCommand,workspaceId:d,customModelId:a.customModelId})});c(d),b()}catch(a){m(a.message)}},[f,c,b]);return a?(0,x.jsxs)("div",{className:"fixed inset-0 z-50 bg-zinc-950/95 flex flex-col",children:[(0,x.jsxs)("div",{className:"flex items-center justify-between px-6 py-3 border-b border-zinc-800 flex-shrink-0",children:[(0,x.jsx)("h2",{className:"text-sm font-semibold text-zinc-100",children:"Plan a Project"}),(0,x.jsx)("button",{onClick:b,className:"text-zinc-500 hover:text-white",children:(0,x.jsx)(N.X,{className:"w-4 h-4"})})]}),l&&(0,x.jsx)("div",{className:"px-6 py-2 bg-red-500/10 border-b border-red-500/20 text-xs text-red-400",children:l}),(0,x.jsx)("div",{className:"flex-1 flex overflow-hidden min-h-0",children:"chat"===j?(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)("div",{className:"flex-1 flex flex-col border-r border-zinc-800 min-w-0",children:(0,x.jsx)(dw,{messages:d,onSend:n,loading:h})}),(0,x.jsx)("div",{className:"w-[380px] flex-shrink-0 overflow-y-auto",children:(0,x.jsx)(dz,{plan:f,onReview:()=>k("review")})})]}):(0,x.jsx)("div",{className:"flex-1 overflow-y-auto",children:(0,x.jsx)(dE,{plan:f,onUpdate:g,onBack:()=>k("chat"),onLaunch:o})})})]}):null}function dG({workspace:a}){let b=a?.id??null,c=a?.color??"#6366f1",[d,e]=(0,y.useState)([]),[f,g]=(0,y.useState)(!1),[h,i]=(0,y.useState)(""),[j,k]=(0,y.useState)(null),[l,m]=(0,y.useState)(""),n=(0,y.useRef)(null);(0,y.useEffect)(()=>{if(null==b)return void e([]);let a=!1;return fetch((0,cT.api)(`/api/workspaces/${b}/todos`)).then(a=>a.json()).then(b=>{a||e(Array.isArray(b)?b:[])}).catch(()=>{a||e([])}),()=>{a=!0}},[b]);let o=(0,y.useCallback)(async()=>{let a=h.trim();if(!a||null==b){i(""),g(!1);return}let c=-Date.now(),d={id:c,workspaceId:b,text:a,completed:!1,sortOrder:Number.MAX_SAFE_INTEGER,created:new Date().toISOString(),completedAt:null};e(a=>[...a,d]),i(""),n.current?.focus();try{let d=await fetch((0,cT.api)(`/api/workspaces/${b}/todos`),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({text:a})});if(!d.ok)throw Error(await d.text());let f=await d.json();e(a=>a.map(a=>a.id===c?f:a))}catch(a){console.error("failed to add todo",a),e(a=>a.filter(a=>a.id!==c))}},[h,b]),p=(0,y.useCallback)(async a=>{if(null==b)return;let c=!a.completed;e(b=>b.map(b=>b.id===a.id?{...b,completed:c,completedAt:c?new Date().toISOString():null}:b));try{let d=await fetch((0,cT.api)(`/api/workspaces/${b}/todos/${a.id}`),{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({completed:c})});if(!d.ok)throw Error();let f=await d.json();e(b=>b.map(b=>b.id===a.id?f:b))}catch{e(b=>b.map(b=>b.id===a.id?a:b))}},[b]),q=(0,y.useCallback)(async a=>{if(null==b)return;let c=-1;e(b=>(c=b.findIndex(b=>b.id===a.id),b.filter(b=>b.id!==a.id)));try{if(!(await fetch((0,cT.api)(`/api/workspaces/${b}/todos/${a.id}`),{method:"DELETE"})).ok)throw Error()}catch{e(b=>{if(c<0||b.some(b=>b.id===a.id))return b;let d=[...b];return d.splice(Math.min(c,d.length),0,a),d})}},[b]),r=(0,y.useCallback)(async a=>{let c=l.trim();if(k(null),c&&c!==a.text&&null!=b){e(b=>b.map(b=>b.id===a.id?{...b,text:c}:b));try{if(!(await fetch((0,cT.api)(`/api/workspaces/${b}/todos/${a.id}`),{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({text:c})})).ok)throw Error()}catch{e(b=>b.map(b=>b.id===a.id?{...b,text:a.text}:b))}}},[l,b]),s=(0,y.useCallback)(async()=>{if(null==b)return;let a=d.filter(a=>a.completed);0===a.length||(e(a=>a.filter(a=>!a.completed)),(await Promise.allSettled(a.map(a=>fetch((0,cT.api)(`/api/workspaces/${b}/todos/${a.id}`),{method:"DELETE"})))).some(a=>"rejected"===a.status||"fulfilled"===a.status&&!a.value.ok)&&fetch((0,cT.api)(`/api/workspaces/${b}/todos`)).then(a=>a.json()).then(a=>e(Array.isArray(a)?a:[])).catch(()=>{}))},[d,b]),t=[...d].sort((a,b)=>{if(a.completed!==b.completed)return a.completed?1:-1;if(!a.completed)return a.sortOrder-b.sortOrder;let c=a.completedAt??"";return(b.completedAt??"").localeCompare(c)}),u=t.filter(a=>a.completed).length,v="h-7 rounded-full inline-flex items-center gap-1.5 pl-2 pr-1 py-1 text-xs border whitespace-nowrap";return(0,x.jsx)("div",{className:"border-b border-zinc-800 bg-zinc-900/40 px-4 py-2 flex-shrink-0",children:(0,x.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5 max-h-[30vh] overflow-y-auto",children:[t.map(a=>{let b=j===a.id,d={backgroundColor:`${c}22`,borderColor:`${c}66`,color:c},e=a.completed?{backgroundColor:"rgba(39, 39, 42, 0.5)",borderColor:"rgba(63, 63, 70, 0.5)",color:"rgb(113, 113, 122)"}:d;return(0,x.jsxs)("div",{className:`group ${v}`,style:e,children:[(0,x.jsx)("button",{onClick:()=>p(a),className:"w-3.5 h-3.5 rounded-full border-2 flex items-center justify-center flex-shrink-0 transition-colors",style:{borderColor:a.completed?c:`${c}aa`,backgroundColor:a.completed?c:"transparent"},"aria-label":a.completed?"Mark incomplete":"Mark complete",children:a.completed&&(0,x.jsx)(M.Check,{className:"w-2.5 h-2.5 text-white"})}),b?(0,x.jsx)("input",{autoFocus:!0,value:l,onChange:a=>m(a.target.value),onBlur:()=>r(a),onKeyDown:b=>{"Enter"===b.key&&r(a),"Escape"===b.key&&k(null)},className:"bg-transparent focus:outline-none max-w-[240px]",style:{color:"inherit"}}):(0,x.jsx)("button",{onClick:()=>{k(a.id),m(a.text)},className:`text-left truncate max-w-[200px] ${a.completed?"line-through":""}`,style:{color:"inherit"},children:a.text}),(0,x.jsx)("button",{onClick:()=>q(a),className:"opacity-0 group-hover:opacity-100 transition-opacity rounded-full p-0.5 hover:bg-black/20 flex-shrink-0",style:{color:"inherit"},"aria-label":"Delete todo",children:(0,x.jsx)(N.X,{className:"w-3 h-3"})})]},a.id)}),f?(0,x.jsxs)("div",{className:`${v} border-dashed border-zinc-600 text-zinc-300`,children:[(0,x.jsx)(z.Plus,{className:"w-3 h-3 text-zinc-500 flex-shrink-0"}),(0,x.jsx)("input",{ref:n,autoFocus:!0,value:h,onChange:a=>i(a.target.value),onKeyDown:a=>{"Enter"===a.key&&o(),"Escape"===a.key&&(i(""),g(!1))},onBlur:()=>{h.trim()?o():g(!1)},placeholder:"todo…",className:"bg-transparent focus:outline-none text-xs placeholder:text-zinc-600 max-w-[200px]"})]}):(0,x.jsxs)("button",{onClick:()=>{null!=b&&g(!0)},disabled:null==b,className:"h-7 rounded-full inline-flex items-center gap-1 px-3 py-1 text-xs border border-dashed border-zinc-700 text-zinc-500 hover:text-zinc-300 hover:border-zinc-500 transition-colors disabled:opacity-50 disabled:cursor-not-allowed whitespace-nowrap",children:[(0,x.jsx)(z.Plus,{className:"w-3 h-3"}),null==b?"Select a workspace":"add todo"]}),u>0&&(0,x.jsxs)("button",{onClick:s,className:"ml-auto text-[10px] text-zinc-500 hover:text-zinc-300 px-2 py-1 transition-colors whitespace-nowrap",children:["clear ",u," done"]})]})})}var dH=a.i(501027),dI=a.i(431067);function dJ(a){return null==a?"#52525b":a<=70?"#22c55e":a<=90?"#f59e0b":"#ef4444"}function dK(a){if(!a)return"";let b=new Date(a).getTime()-Date.now();if(b<=0)return"now";let c=Math.floor(b/36e5),d=Math.floor(b%36e5/6e4);if(c>=24){let a=Math.floor(c/24);return`${a}d ${c-24*a}h`}return c>0?`${c}h ${d}m`:`${d}m`}function dL({label:a,limit:b}){if(!b||null==b.utilization)return null;let c=Math.min(100,Math.max(0,b.utilization)),d=dJ(c),e=dK(b.resets_at);return(0,x.jsxs)("div",{className:"flex items-center gap-1.5 text-[10px]",title:e?`${a}: ${Math.floor(c)}% used \xb7 resets in ${e}`:`${a}: ${Math.floor(c)}% used`,children:[(0,x.jsx)("span",{className:"text-zinc-400 font-medium",children:a}),(0,x.jsx)("div",{className:"w-12 h-1 bg-zinc-800 rounded-full overflow-hidden",children:(0,x.jsx)("div",{className:"h-full transition-all",style:{width:`${c}%`,backgroundColor:d}})}),(0,x.jsxs)("span",{className:"text-zinc-500 tabular-nums w-7 text-right",children:[Math.floor(c),"%"]})]})}function dM({enabled:a}){let b=function(a){let[b,c]=(0,y.useState)(null),d=(0,y.useRef)(0);return(0,y.useEffect)(()=>{if(!a){d.current=0;return}let b=!1;async function e(){try{let a=await fetch((0,cT.api)("/api/claude/usage"));if(!a.ok||b)return;let e=await a.json();if(b)return;"upstream_error"===e.status||"expired"===e.status?(d.current+=1,c(a=>a?.status==="ok"&&d.current<2?a:e)):(d.current=0,c(e))}catch{if(b)return;d.current+=1,c(a=>a?.status==="ok"&&d.current<2?a:{status:"upstream_error"})}}e();let f=setInterval(e,6e4);return()=>{b=!0,clearInterval(f)}},[a]),b}(a),[c,d]=(0,y.useState)(!1),e=(0,y.useRef)(null);if((0,y.useEffect)(()=>{if(c)return document.addEventListener("mousedown",a),()=>document.removeEventListener("mousedown",a);function a(a){e.current&&!e.current.contains(a.target)&&d(!1)}},[c]),!a||!b)return null;if("unauthenticated"===b.status||"expired"===b.status)return(0,x.jsxs)("div",{className:"flex items-center gap-1.5 px-2 py-1 text-[10px] text-zinc-500 border border-zinc-800 rounded-md",title:"expired"===b.status?"OAuth token expired — run any Claude Code command to refresh":"No Claude.ai credentials found",children:[(0,x.jsx)(dI.LogIn,{className:"w-3 h-3"}),"sign in via Claude Code"]});if("upstream_error"===b.status)return null;let{data:f}=b,g=f.extra_usage,h=!!(g?.is_enabled&&g?.used_credits&&g.used_credits>0);return(0,x.jsxs)("div",{className:"relative",children:[(0,x.jsxs)("button",{onClick:()=>d(a=>!a),className:"flex items-center gap-2.5 px-2.5 py-1 border border-zinc-800 rounded-md hover:border-zinc-700 transition-colors",title:"Click for full usage detail",children:[(0,x.jsx)(dH.Zap,{className:"w-3 h-3 text-amber-400"}),(0,x.jsx)(dL,{label:"5h",limit:f.five_hour}),(0,x.jsx)(dL,{label:"7d",limit:f.seven_day}),(0,x.jsx)(dL,{label:"Opus",limit:f.seven_day_opus}),(0,x.jsx)(dL,{label:"Sonnet",limit:f.seven_day_sonnet}),h&&g?.used_credits!=null&&(0,x.jsxs)("span",{className:"text-[10px] text-amber-400 border-l border-zinc-800 pl-2",children:["+$",g.used_credits.toFixed(2)," overage"]})]}),c&&(0,x.jsxs)("div",{ref:e,className:"absolute top-full right-0 mt-1.5 z-50 w-80 p-3 bg-zinc-900 border border-zinc-700 rounded-md shadow-xl",children:[(0,x.jsx)("div",{className:"text-[10px] uppercase tracking-wider text-zinc-500 font-medium mb-2",children:"Plan Usage"}),(0,x.jsxs)("div",{className:"space-y-2",children:[(0,x.jsx)(dN,{label:"5-hour window",limit:f.five_hour}),(0,x.jsx)(dN,{label:"7-day (overall)",limit:f.seven_day}),(0,x.jsx)(dN,{label:"7-day · Opus",limit:f.seven_day_opus}),(0,x.jsx)(dN,{label:"7-day · Sonnet",limit:f.seven_day_sonnet}),(0,x.jsx)(dN,{label:"7-day · OAuth apps",limit:f.seven_day_oauth_apps})]}),g?.is_enabled&&(0,x.jsxs)("div",{className:"mt-3 pt-3 border-t border-zinc-800",children:[(0,x.jsx)("div",{className:"text-[10px] uppercase tracking-wider text-zinc-500 font-medium mb-1.5",children:"Overage credits"}),(0,x.jsxs)("div",{className:"text-xs text-zinc-300",children:[null!=g.used_credits?`$${g.used_credits.toFixed(2)}`:"—",null!=g.monthly_limit&&(0,x.jsxs)("span",{className:"text-zinc-500",children:[" / $",g.monthly_limit.toFixed(2)," monthly"]})]})]})]})]})}function dN({label:a,limit:b}){if(!b||null==b.utilization)return(0,x.jsxs)("div",{className:"flex items-center justify-between text-xs",children:[(0,x.jsx)("span",{className:"text-zinc-400",children:a}),(0,x.jsx)("span",{className:"text-zinc-600",children:"—"})]});let c=Math.min(100,Math.max(0,b.utilization)),d=dJ(c),e=dK(b.resets_at);return(0,x.jsxs)("div",{children:[(0,x.jsxs)("div",{className:"flex items-center justify-between text-xs mb-1",children:[(0,x.jsx)("span",{className:"text-zinc-300",children:a}),(0,x.jsxs)("span",{className:"text-zinc-500 tabular-nums",children:[Math.floor(c),"%",e&&(0,x.jsxs)("span",{className:"ml-1.5 text-zinc-600",children:["· ",e]})]})]}),(0,x.jsx)("div",{className:"h-1.5 bg-zinc-800 rounded-full overflow-hidden",children:(0,x.jsx)("div",{className:"h-full transition-all",style:{width:`${c}%`,backgroundColor:d}})})]})}function dO({panes:a,renderPane:b}){if(0===a.length)return null;if(1===a.length)return(0,x.jsx)("div",{className:"flex-1 p-1 overflow-hidden",children:(0,x.jsx)(dP,{id:a[0].id,children:c=>b(a[0],c)})});let c=a.length<=4?2:3,d=[];for(let b=0;b<a.length;b+=c)d.push(a.slice(b,b+c));return(0,x.jsx)(cJ,{orientation:"vertical",className:"flex-1 p-1",children:d.map((a,c)=>(0,x.jsxs)(y.default.Fragment,{children:[c>0&&(0,x.jsx)(cN,{className:"h-1.5 flex items-center justify-center group cursor-row-resize",children:(0,x.jsx)("div",{className:"w-8 h-0.5 rounded-full bg-zinc-700 group-hover:bg-zinc-500 group-active:bg-indigo-500 transition-colors"})}),(0,x.jsx)(cL,{minSize:15,children:1===a.length?(0,x.jsx)("div",{className:"h-full p-0.5",children:(0,x.jsx)(dP,{id:a[0].id,children:c=>b(a[0],c)})}):(0,x.jsx)(cJ,{orientation:"horizontal",className:"h-full",children:a.map((a,c)=>(0,x.jsxs)(y.default.Fragment,{children:[c>0&&(0,x.jsx)(cN,{className:"w-1.5 flex items-center justify-center group cursor-col-resize",children:(0,x.jsx)("div",{className:"h-8 w-0.5 rounded-full bg-zinc-700 group-hover:bg-zinc-500 group-active:bg-indigo-500 transition-colors"})}),(0,x.jsx)(cL,{minSize:15,children:(0,x.jsx)("div",{className:"h-full p-0.5",children:(0,x.jsx)(dP,{id:a.id,children:c=>b(a,c)})})})]},a.id))})})]},`row-${c}`))})}function dP({id:a,children:b}){let{attributes:c,listeners:d,setNodeRef:e,transform:f,transition:g,isDragging:h}=function(a){var b,c,d,e;let{animateLayoutChanges:f=bK,attributes:g,disabled:h,data:i,getNewIndex:j=bJ,id:k,strategy:l,resizeObserverConfig:m,transition:o=bL}=a,{items:p,containerId:q,activeIndex:r,disabled:s,disableTransforms:t,sortedRects:u,overIndex:v,useDragOverlay:w,strategy:x}=(0,y.useContext)(bH),z=(b=h,c=s,"boolean"==typeof b?{draggable:b,droppable:!1}:{draggable:null!=(d=null==b?void 0:b.draggable)?d:c.draggable,droppable:null!=(e=null==b?void 0:b.droppable)?e:c.droppable}),A=p.indexOf(k),B=(0,y.useMemo)(()=>({sortable:{containerId:q,index:A,items:p},...i}),[q,i,A,p]),C=(0,y.useMemo)(()=>p.slice(p.indexOf(k)),[p,k]),{rect:D,node:E,isOver:F,setNodeRef:G}=function(a){let{data:b,disabled:c=!1,id:d,resizeObserverConfig:e}=a,f=an("Droppable"),{active:g,dispatch:h,over:i,measureDroppableContainers:j}=(0,y.useContext)(bp),k=(0,y.useRef)({disabled:c}),l=(0,y.useRef)(!1),m=(0,y.useRef)(null),o=(0,y.useRef)(null),{disabled:p,updateMeasurementsFor:q,timeout:r}={...by,...e},s=ai(null!=q?q:d),t=bc({callback:(0,y.useCallback)(()=>{if(!l.current){l.current=!0;return}null!=o.current&&clearTimeout(o.current),o.current=setTimeout(()=>{j(Array.isArray(s.current)?s.current:[s.current]),o.current=null},r)},[r]),disabled:p||!g}),[u,v]=ak((0,y.useCallback)((a,b)=>{t&&(b&&(t.unobserve(b),l.current=!1),a&&t.observe(a))},[t])),w=ai(b);return(0,y.useEffect)(()=>{t&&u.current&&(t.disconnect(),l.current=!1,t.observe(u.current))},[u,t]),(0,y.useEffect)(()=>(h({type:n.RegisterDroppable,element:{id:d,key:f,disabled:c,node:u,rect:m,data:w}}),()=>h({type:n.UnregisterDroppable,key:f,id:d})),[d]),(0,y.useEffect)(()=>{c!==k.current.disabled&&(h({type:n.SetDroppableDisabled,id:d,key:f,disabled:c}),k.current.disabled=c)},[d,f,c,h]),{active:g,rect:m,isOver:(null==i?void 0:i.id)===d,node:u,over:i,setNodeRef:v}}({id:k,data:B,disabled:z.droppable,resizeObserverConfig:{updateMeasurementsFor:C,...m}}),{active:H,activatorEvent:I,activeNodeRect:J,attributes:K,setNodeRef:L,listeners:M,isDragging:N,over:O,setActivatorNodeRef:P,transform:Q}=function(a){let{id:b,data:c,disabled:d=!1,attributes:e}=a,f=an("Draggable"),{activators:g,activatorEvent:h,active:i,activeNodeRect:j,ariaDescribedById:k,draggableNodes:l,over:m}=(0,y.useContext)(bp),{role:n=bx,roleDescription:o="draggable",tabIndex:p=0}=null!=e?e:{},q=(null==i?void 0:i.id)===b,r=(0,y.useContext)(q?bu:bw),[s,t]=ak(),[u,v]=ak(),w=(0,y.useMemo)(()=>g.reduce((a,c)=>{let{eventName:d,handler:e}=c;return a[d]=a=>{e(a,b)},a},{}),[g,b]),x=ai(c);return ag(()=>(l.set(b,{id:b,key:f,node:s,activatorNode:u,data:x}),()=>{let a=l.get(b);a&&a.key===f&&l.delete(b)}),[l,b]),{active:i,activatorEvent:h,activeNodeRect:j,attributes:(0,y.useMemo)(()=>({role:n,tabIndex:p,"aria-disabled":d,"aria-pressed":!!q&&n===bx||void 0,"aria-roledescription":o,"aria-describedby":k.draggable}),[d,n,p,q,o,k.draggable]),isDragging:q,listeners:d?void 0:w,node:s,over:m,setNodeRef:t,setActivatorNodeRef:v,transform:r}}({id:k,data:B,attributes:{...bO,...g},disabled:z.draggable}),R=function(){for(var a=arguments.length,b=Array(a),c=0;c<a;c++)b[c]=arguments[c];return(0,y.useMemo)(()=>a=>{b.forEach(b=>b(a))},b)}(G,L),S=!!H,T=S&&!t&&bC(r)&&bC(v),U=!w&&N,V=U&&T?Q:null,W=T?null!=V?V:(null!=l?l:x)({rects:u,activeNodeRect:J,activeIndex:r,overIndex:v,index:A}):null,X=bC(r)&&bC(v)?j({id:k,items:p,activeIndex:r,overIndex:v}):A,Y=null==H?void 0:H.id,Z=(0,y.useRef)({activeId:Y,items:p,newIndex:X,containerId:q}),$=p!==Z.current.items,_=f({active:H,containerId:q,isDragging:N,isSorting:S,id:k,index:A,items:p,newIndex:Z.current.newIndex,previousItems:Z.current.items,previousContainerId:Z.current.containerId,transition:o,wasDragging:null!=Z.current.activeId}),aa=function(a){let{disabled:b,index:c,node:d,rect:e}=a,[f,g]=(0,y.useState)(null),h=(0,y.useRef)(c);return ag(()=>{if(!b&&c!==h.current&&d.current){let a=e.current;if(a){let b=aN(d.current,{ignoreTransform:!0}),c={x:a.left-b.left,y:a.top-b.top,scaleX:a.width/b.width,scaleY:a.height/b.height};(c.x||c.y)&&g(c)}}c!==h.current&&(h.current=c)},[b,c,d,e]),(0,y.useEffect)(()=>{f&&g(null)},[f]),f}({disabled:!_,index:A,node:E,rect:D});return(0,y.useEffect)(()=>{S&&Z.current.newIndex!==X&&(Z.current.newIndex=X),q!==Z.current.containerId&&(Z.current.containerId=q),p!==Z.current.items&&(Z.current.items=p)},[S,X,q,p]),(0,y.useEffect)(()=>{if(Y===Z.current.activeId)return;if(null!=Y&&null==Z.current.activeId){Z.current.activeId=Y;return}let a=setTimeout(()=>{Z.current.activeId=Y},50);return()=>clearTimeout(a)},[Y]),{active:H,activeIndex:r,attributes:K,data:B,rect:D,index:A,newIndex:X,items:p,isOver:F,isSorting:S,isDragging:N,listeners:M,node:E,overIndex:v,over:O,setNodeRef:R,setActivatorNodeRef:P,setDroppableNodeRef:G,setDraggableNodeRef:L,transform:null!=aa?aa:W,transition:aa||$&&Z.current.newIndex===A?bN:(!U||ar(I))&&o&&(S||_)?at.Transition.toString({...o,property:bM}):void 0}}({id:a}),i={transform:at.Transform.toString(f),transition:g,opacity:h?.5:1,zIndex:h?50:"auto"};return(0,x.jsx)("div",{ref:e,style:i,className:"h-full",children:b({...c,...d})})}function dQ(){return(0,x.jsx)(cY.TotpGate,{children:a=>(0,x.jsx)(dR,{terminalToken:a})})}function dR({terminalToken:a}){let b=(0,Y.useRouter)(),{basePath:c,hasNetwork:d,hasCollaboration:e,hasCortex:f}=(0,cW.useTier)(),[g,h]=(0,y.useState)([]),[i,j]=(0,y.useState)(!0),[k,l]=(0,y.useState)(!0),[m,n]=(0,y.useState)(!1),[o,p]=(0,y.useState)(null),[q,r]=(0,y.useState)(new Set),[s,t]=(0,y.useState)(new Set),[u,v]=(0,y.useState)(!1),[w,I]=(0,y.useState)(!0);!function(){let a=(0,c3.useQueryClient)(),{hasCollaboration:b}=(0,cW.useTier)();(0,y.useEffect)(()=>{if(!b)return;let c=new EventSource((0,cT.api)("/api/events")),d=()=>{a.invalidateQueries({queryKey:["workspace-messages"]})},e=()=>{a.invalidateQueries({queryKey:["workspace-context"]})};return c.addEventListener("workspace:message",d),c.addEventListener("workspace:request",d),c.addEventListener("workspace:context_updated",e),()=>{c.removeEventListener("workspace:message",d),c.removeEventListener("workspace:request",d),c.removeEventListener("workspace:context_updated",e),c.close()}},[a,b])}();let[$,_]=(0,y.useState)(!1);(0,y.useEffect)(()=>{fetch((0,cT.api)("/api/config")).then(a=>a.json()).then(a=>_(!!a.todosEnabled)).catch(()=>{})},[]);let[aa,ab]=(0,y.useState)([]),[ac,ad]=(0,y.useState)(null),[ae,af]=(0,y.useState)(!1),[ag,ah]=(0,y.useState)(!1),[ai,aj]=(0,y.useState)(!1),[ak,al]=(0,y.useState)(""),[am,an]=(0,y.useState)("#6366f1"),[ao,ap]=(0,y.useState)(null),[aq,ar]=(0,y.useState)(""),[as,at]=(0,y.useState)(null),au=(0,y.useRef)(null),[av,aw]=(0,y.useState)(null),[ax,ay]=(0,y.useState)(!1),[az,aA]=(0,y.useState)(null),aB=(0,y.useCallback)(a=>{aA(a),ay(!0)},[]),[aC,aE]=(0,y.useState)(""),[aF,aG]=(0,y.useState)(""),[aH,aJ]=(0,y.useState)("#6366f1"),[aK,aL]=(0,y.useState)(""),[aM,aN]=(0,y.useState)("claude"),[aO,aP]=(0,y.useState)("new"),[aQ,aR]=(0,y.useState)(""),[aS,aT]=(0,y.useState)(""),aU=(0,c$.useRemoteWorkspaces)(),[aV,aW]=(0,y.useState)(new Set),aX=(0,y.useCallback)(a=>{aW(b=>{let c=new Set(b);return c.has(a)?c.delete(a):c.add(a),c})},[]),[aY,aZ]=(0,y.useState)(""),[a$,a_]=(0,y.useState)([]),[a0,a1]=(0,y.useState)(!1),[a2,a4]=(0,y.useState)(!1),[a5,a6]=(0,y.useState)(null),[a7,a9]=(0,y.useState)(!0),ba=(0,y.useRef)(null),bb=(0,y.useRef)(null),bc=(0,y.useRef)(null),bd=(0,y.useCallback)(async()=>{let a=await fetch((0,cT.api)("/api/workspaces")),b=await a.json();ab(b);let c=b.find(a=>a.isActive);return ad(c||null),l(!1),c||null},[]),be=(0,y.useCallback)(async()=>{let a=await fetch((0,cT.api)("/api/panes")),b=await a.json();h(b);let c=new Set;for(let a of b)a.isPopout&&c.add(a.id);t(c),j(!1)},[]);(0,y.useEffect)(()=>{bd()},[bd]),(0,y.useEffect)(()=>{u&&be()},[u,be]),(0,y.useEffect)(()=>{let a=new BroadcastChannel("spaces-panes");return bc.current=a,a.onmessage=a=>{let b=a.data;"popout-opened"===b.type?t(a=>new Set(a).add(b.paneId)):"popout-closed"===b.type?(t(a=>{let c=new Set(a);return c.delete(b.paneId),c}),h(a=>a.map(a=>a.id===b.paneId?{...a,isPopout:!1}:a))):"pane-updated"===b.type&&h(a=>a.map(a=>a.id===b.paneId?{...a,...b.data}:a))},()=>a.close()},[be]);let[bf,bg]=(0,y.useState)(0);(0,y.useEffect)(()=>{if(!i)for(let a of g)a.isPopout&&bq(a)},[i,bf]),(0,y.useEffect)(()=>{if(!(cZ.AGENT_TYPES[aM]?.supportsResume&&"resume"===aO))return;a1(!0);let a=setTimeout(()=>{let a=new URLSearchParams({sortBy:"modified",sortDir:"DESC",limit:"200"});aY&&a.set("search",aY),a7&&aF&&a.set("projectPath",aF),a.set("agentType",aM),fetch((0,cT.api)(`/api/sessions?${a}`)).then(a=>a.json()).then(a=>{a_(a.sessions||[]),a1(!1)}).catch(()=>a1(!1))},300*!!aY);return()=>clearTimeout(a)},[aM,aO,aY,a7,aF]),(0,y.useEffect)(()=>{function a(a){ba.current&&!ba.current.contains(a.target)&&a4(!1),bb.current&&!bb.current.contains(a.target)&&af(!1),au.current&&!au.current.contains(a.target)&&at(null)}return document.addEventListener("mousedown",a),()=>document.removeEventListener("mousedown",a)},[]);let bh=(0,y.useCallback)(async()=>{let a,b=cZ.AGENT_TYPES[aM],c=aF||a5?.projectPath||"/";"shell"!==aM&&(a="resume"===aO&&b?.supportsResume?a5?.sessionId||aK:"new");let d=aC||(a5?a5.customName||a5.firstPrompt?.slice(0,50)||b?.name||"Agent":"")||("shell"===aM?"Terminal":b?.name||"Agent"),e=ac?.collaboration&&"shell"!==aM,f=await fetch((0,cT.api)("/api/panes"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:d,color:aH,cwd:c,claudeSessionId:a,agentType:aM,customCommand:"custom"===aM?aQ:void 0,nodeId:aS||void 0,isCollaborating:e||void 0})}),g=await f.json();h(a=>[...a,g]),(0,c7.track)("pane_created",{agentType:aM}),n(!1),aE(""),aG(""),aJ("#6366f1"),aL(""),aN("shell"),aP("new"),aR(""),aT(""),a6(null),aZ("")},[aC,aF,aH,aK,aM,aO,aQ,aS,a5]),bi=(0,y.useCallback)(async a=>{let b=g.find(b=>b.id===a);await fetch((0,cT.api)(`/api/panes/${a}`),{method:"DELETE"}),h(b=>b.filter(b=>b.id!==a)),b&&(0,c7.track)("pane_closed",{agentType:b.agentType}),o===a&&p(null),t(b=>{let c=new Set(b);return c.delete(a),c})},[o,g]),bj=(0,y.useCallback)(async(a,b)=>{await fetch((0,cT.api)(`/api/panes/${a}`),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(b)}),h(c=>c.map(c=>c.id===a?{...c,...b}:c))},[]),bk=(0,y.useCallback)(async a=>{let b=g.find(b=>b.id===a);if(!b)return;let c=b.title.match(/^(.*?)(?:\s+\((\d+)\))?\s*$/),d=(c?.[1]||b.title).trim(),e=d.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),f=RegExp(`^${e}(?:\\s+\\((\\d+)\\))?$`),i=1;for(let a of g){let b=a.title.match(f);if(!b)continue;let c=b[1]?parseInt(b[1],10):1;c>i&&(i=c)}let j=`${d} (${i+1})`,k=ac?.collaboration&&"shell"!==b.agentType,l=await fetch((0,cT.api)("/api/panes"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:j,color:b.color,cwd:b.cwd,agentType:b.agentType,customCommand:b.customCommand,nodeId:b.nodeId||void 0,customModelId:b.customModelId||void 0,isCollaborating:k||void 0})}),m=await l.json();h(a=>[...a,m]),(0,c7.track)("pane_duplicated",{agentType:b.agentType})},[g,ac]),bl=(0,y.useCallback)(a=>{p(b=>b===a?null:a)},[]),bm=(0,y.useCallback)(a=>{r(b=>new Set(b).add(a)),o===a&&p(null)},[o]),bn=(0,y.useCallback)(a=>{r(b=>{let c=new Set(b);return c.delete(a),c})},[]),bo=function(){for(var a=arguments.length,b=Array(a),c=0;c<a;c++)b[c]=arguments[c];return(0,y.useMemo)(()=>[...b].filter(a=>null!=a),[...b])}(aD(a8,{activationConstraint:{distance:8}}),aD(a3)),bp=(0,y.useCallback)(a=>{let{active:b,over:c}=a;c&&b.id!==c.id&&h(a=>{let d=a.findIndex(a=>a.id===b.id),e=a.findIndex(a=>a.id===c.id);if(-1===d||-1===e)return a;let f=bB(a,d,e);return f.forEach((a,b)=>{a.sortOrder!==b&&fetch((0,cT.api)(`/api/panes/${a.id}`),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({sortOrder:b})}).catch(()=>{})}),f.map((a,b)=>({...a,sortOrder:b}))})},[]),bq=(0,y.useCallback)(a=>{let b=a.winWidth||900,c=a.winHeight||600,d=a.winX??Math.round(screen.width/2-b/2),e=a.winY??Math.round(screen.height/2-c/2),f=`left=${d},top=${e},width=${b},height=${c},menubar=no,toolbar=no,location=no,status=no`;window.open((0,cT.api)(`/terminal/pane/${a.id}`),`spaces-pane-${a.id}`,f),t(b=>new Set(b).add(a.id)),fetch((0,cT.api)(`/api/panes/${a.id}`),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({isPopout:!0,winX:d,winY:e,winWidth:b,winHeight:c})})},[]),br=(0,y.useCallback)(a=>{let b=g.find(b=>b.id===a);b&&bq(b)},[g,bq]),bs=(0,y.useCallback)(async a=>{bc.current?.postMessage({type:"close-popouts"}),await fetch((0,cT.api)(`/api/panes/${a}`),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({isPopout:!1})}),t(b=>{let c=new Set(b);return c.delete(a),c})},[]),bt=(0,y.useCallback)(()=>{s.size>0&&(bc.current?.postMessage({type:"close-popouts"}),t(new Set))},[s]),bu=(0,y.useCallback)(async a=>{bt(),await fetch((0,cT.api)("/api/workspaces"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"switch",workspaceId:a})}),p(null),await bd(),await be(),af(!1),u?(0,c7.track)("workspace_switched"):(0,c7.track)("workspace_entered"),v(!0),bg(a=>a+1)},[bd,be,bt,u]),bw=(0,y.useCallback)(async()=>{ak.trim()&&ac&&(await fetch((0,cT.api)("/api/workspaces"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"duplicate",sourceId:ac.id,name:ak.trim(),color:am})}),al(""),an("#6366f1"),ah(!1),await bd())},[ak,am,ac,bd]),bx=(0,y.useCallback)(async()=>{let a=await fetch((0,cT.api)("/api/workspaces"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:"New Space",color:"#6366f1"})}),b=await a.json();(0,c7.track)("workspace_created"),await bu(b.id)},[bu]),by=(0,y.useCallback)(async a=>{bt(),await fetch((0,cT.api)(`/api/workspaces/${a}`),{method:"DELETE"}),(0,c7.track)("workspace_deleted"),await bd(),await be(),af(!1)},[bd,be,bt]),bz=(0,y.useCallback)(()=>{bt(),h([]),v(!1)},[bt]),bA=(0,y.useCallback)(async(a,b)=>{await fetch((0,cT.api)(`/api/workspaces/${a}`),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:b})}),ap(null),await bd()},[bd]),bC=(0,y.useCallback)(async(a,b)=>{await fetch((0,cT.api)(`/api/workspaces/${a}`),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({color:b})}),at(null),await bd()},[bd]),bD=g.filter(a=>!s.has(a.id)&&!q.has(a.id)),bE=g.filter(a=>q.has(a.id));return u?i?(0,x.jsx)("div",{className:"flex items-center justify-center h-screen bg-zinc-950",children:(0,x.jsx)(A.Loader2,{className:"w-6 h-6 animate-spin text-indigo-500"})}):(0,x.jsxs)("div",{className:"h-screen flex flex-col bg-zinc-950 text-zinc-100",children:[(0,x.jsxs)("div",{className:"flex items-center justify-between px-4 py-2 border-b border-zinc-800 flex-shrink-0",children:[(0,x.jsxs)("div",{className:"flex items-center gap-3",children:[(0,x.jsx)("button",{onClick:bz,className:"p-1.5 -ml-1 text-zinc-500 hover:text-white hover:bg-zinc-800 rounded-md transition-colors",title:"Close space and go home",children:(0,x.jsx)(P.Home,{className:"w-4 h-4"})}),(0,x.jsx)("div",{className:"w-px h-4 bg-zinc-800"}),(0,x.jsx)("h1",{className:"text-sm font-semibold",children:"Spaces"}),(0,x.jsxs)("div",{ref:bb,className:"relative",children:[(0,x.jsxs)("button",{onClick:()=>af(!ae),className:"flex items-center gap-1.5 px-2.5 py-1 text-xs bg-zinc-800 border border-zinc-700 rounded-md hover:border-zinc-600 transition-colors",children:[ac&&(0,x.jsx)("span",{className:"w-2 h-2 rounded-full flex-shrink-0",style:{backgroundColor:ac.color}}),(0,x.jsx)("span",{className:"max-w-[150px] truncate",children:ac?.name||"No space"}),(0,x.jsx)(G.ChevronDown,{className:"w-3 h-3 text-zinc-500"})]}),ae&&(0,x.jsxs)("div",{className:"absolute z-50 top-full left-0 mt-1 w-72 bg-zinc-800 border border-zinc-700 rounded-md shadow-xl overflow-hidden",children:[(0,x.jsx)("div",{className:"p-2 border-b border-zinc-700/50 text-[10px] text-zinc-500 uppercase tracking-wider font-medium",children:"Switch Space"}),(0,x.jsx)("div",{className:"max-h-[300px] overflow-y-auto",children:aa.map(a=>(0,x.jsx)("div",{className:"flex items-center gap-2 hover:bg-zinc-700/50 transition-colors group",children:ao===a.id?(0,x.jsxs)("div",{className:"flex items-center gap-1 flex-1 px-3 py-2",children:[(0,x.jsx)("input",{autoFocus:!0,value:aq,onChange:a=>ar(a.target.value),onKeyDown:b=>{"Enter"===b.key&&bA(a.id,aq),"Escape"===b.key&&ap(null)},className:"flex-1 bg-transparent border border-zinc-600 rounded px-1.5 py-0.5 text-xs focus:outline-none focus:border-indigo-400"}),(0,x.jsx)("button",{onClick:()=>bA(a.id,aq),className:"text-green-400 hover:text-green-300",children:(0,x.jsx)(M.Check,{className:"w-3 h-3"})})]}):(0,x.jsxs)(x.Fragment,{children:[(0,x.jsxs)("div",{className:"relative pl-3",children:[(0,x.jsx)("button",{onClick:b=>{b.stopPropagation(),at(as===a.id?null:a.id)},className:"w-2.5 h-2.5 rounded-full flex-shrink-0 hover:ring-2 hover:ring-zinc-500/50 transition-all",style:{backgroundColor:a.color},title:"Change color"}),as===a.id&&(0,x.jsx)("div",{ref:au,className:"absolute z-50 top-full left-0 mt-1.5 p-2 bg-zinc-800 border border-zinc-700 rounded-md shadow-xl",onClick:a=>a.stopPropagation(),children:(0,x.jsx)(cO.ColorPicker,{value:a.color,onChange:b=>bC(a.id,b)})})]}),(0,x.jsxs)("button",{onClick:()=>bu(a.id),className:"flex items-center gap-2 flex-1 py-2 pr-3 text-left",children:[(0,x.jsx)("span",{className:"text-xs text-white truncate flex-1",children:a.name}),(0,x.jsxs)("span",{className:"text-[10px] text-zinc-500",children:[a.paneCount||0," panes"]}),a.isActive&&(0,x.jsx)("span",{className:"text-[10px] text-indigo-400",children:"active"})]}),(0,x.jsxs)("div",{className:"flex items-center gap-0.5 pr-2 opacity-0 group-hover:opacity-100",children:[(0,x.jsx)("button",{onClick:b=>{b.stopPropagation(),ap(a.id),ar(a.name)},className:"p-1 text-zinc-500 hover:text-white rounded",title:"Rename",children:(0,x.jsx)(L.Pencil,{className:"w-2.5 h-2.5"})}),!a.isActive&&aa.length>1&&(0,x.jsx)("button",{onClick:b=>{b.stopPropagation(),confirm(`Delete space "${a.name}" and all its panes?`)&&by(a.id)},className:"p-1 text-zinc-500 hover:text-red-400 rounded",title:"Delete",children:(0,x.jsx)(K.Trash2,{className:"w-2.5 h-2.5"})})]})]})},a.id))}),(0,x.jsxs)("div",{className:"border-t border-zinc-700/50 p-1.5 flex gap-1",children:[(0,x.jsxs)("button",{onClick:bx,className:"flex items-center gap-1.5 px-2.5 py-1.5 text-[11px] text-zinc-400 hover:text-white hover:bg-zinc-700 rounded transition-colors flex-1",children:[(0,x.jsx)(z.Plus,{className:"w-3 h-3"})," New Empty"]}),(0,x.jsxs)("button",{onClick:()=>{aj(!0),af(!1)},className:"flex items-center gap-1.5 px-2.5 py-1.5 text-[11px] text-indigo-400 hover:text-indigo-300 hover:bg-indigo-500/10 rounded transition-colors flex-1",children:[(0,x.jsx)(X,{className:"w-3 h-3"})," Plan Project"]}),(0,x.jsxs)("button",{onClick:()=>{ah(!0),af(!1)},className:"flex items-center gap-1.5 px-2.5 py-1.5 text-[11px] text-zinc-400 hover:text-white hover:bg-zinc-700 rounded transition-colors flex-1",children:[(0,x.jsx)(O.Copy,{className:"w-3 h-3"})," Duplicate"]})]})]})]}),(0,x.jsxs)("span",{className:"text-[11px] text-zinc-500",children:[bD.length," pane",1!==bD.length?"s":"",s.size>0&&` + ${s.size} popped out`]})]}),(0,x.jsxs)("div",{className:"flex items-center gap-2",children:[(0,x.jsx)(dM,{enabled:g.some(a=>"claude"===a.agentType&&!s.has(a.id))}),(0,x.jsxs)("button",{onClick:()=>ay(!ax),className:`flex items-center gap-1.5 px-2.5 py-1.5 text-xs rounded-md border transition-colors ${ax?"border-amber-500/50 bg-amber-600/20 text-amber-400":"border-zinc-700 text-zinc-500 hover:text-zinc-300 hover:border-zinc-600"}`,title:ax?"Hide file explorer":"Show file explorer",children:[(0,x.jsx)(E.FolderOpen,{className:"w-3.5 h-3.5"}),"Files"]}),e&&ac&&(0,x.jsxs)("button",{onClick:async()=>{let a=!ac.collaboration;for(let b of(await fetch((0,cT.api)(`/api/workspaces/${ac.id}`),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({collaboration:a})}),ad(b=>b?{...b,collaboration:a}:b),ab(b=>b.map(b=>b.id===ac.id?{...b,collaboration:a}:b)),g.filter(a=>a.workspaceId===ac.id&&"shell"!==a.agentType)))b.isCollaborating!==a&&await bj(b.id,{isCollaborating:a})},className:`flex items-center gap-1.5 px-2.5 py-1.5 text-xs rounded-md border transition-colors ${ac.collaboration?"border-indigo-500/50 bg-indigo-600/20 text-indigo-400":"border-zinc-700 text-zinc-500 hover:text-zinc-300 hover:border-zinc-600"}`,title:ac.collaboration?"Collaboration enabled — click to disable":"Enable collaboration for this workspace",children:[(0,x.jsx)(U.Users,{className:"w-3.5 h-3.5"}),"Collab"]}),(0,x.jsxs)("button",{onClick:bz,className:"flex items-center gap-1.5 px-3 py-1.5 text-xs border border-zinc-700 text-zinc-400 rounded-md hover:text-white hover:border-zinc-600 transition-colors",title:"Close space and return home",children:[(0,x.jsx)(Q,{className:"w-3.5 h-3.5"}),"Close"]}),(0,x.jsxs)("button",{onClick:()=>{let a=[...g].sort((a,b)=>(b.created||"").localeCompare(a.created||""))[0];a?(aG(a.cwd||""),aJ(a.color||ac?.color||"#6366f1"),aN(a.agentType||"claude"),aR("custom"===a.agentType&&a.customCommand||""),aT(a.nodeId||"")):(aG(""),aJ(ac?.color||"#6366f1"),aN("claude"),aR(""),aT("")),aE(""),aL(""),aP("new"),n(!0)},className:"flex items-center gap-1.5 px-3 py-1.5 text-xs bg-indigo-600 text-white rounded-md hover:bg-indigo-500 transition-colors",children:[(0,x.jsx)(z.Plus,{className:"w-3.5 h-3.5"}),"Add Pane"]})]})]}),ag&&(0,x.jsx)("div",{className:"border-b border-zinc-800 bg-zinc-900 px-4 py-3",children:(0,x.jsxs)("div",{className:"max-w-md flex items-center gap-2",children:[(0,x.jsx)(J,{className:"w-4 h-4 text-indigo-400 flex-shrink-0"}),(0,x.jsx)("input",{autoFocus:!0,type:"text",placeholder:"New space name...",value:ak,onChange:a=>al(a.target.value),onKeyDown:a=>"Enter"===a.key&&bw(),className:"flex-1 px-3 py-1.5 text-sm bg-zinc-800 border border-zinc-700 rounded-md focus:outline-none focus:border-indigo-500 text-white"}),(0,x.jsx)(cO.ColorPicker,{value:am,onChange:an}),(0,x.jsx)("button",{onClick:bw,disabled:!ak.trim(),className:"px-3 py-1.5 text-xs bg-indigo-600 text-white rounded-md hover:bg-indigo-500 disabled:opacity-50",children:"Save"}),(0,x.jsx)("button",{onClick:()=>ah(!1),className:"p-1.5 text-zinc-400 hover:text-white",children:(0,x.jsx)(N.X,{className:"w-4 h-4"})})]})}),m&&(0,x.jsx)("div",{className:"border-b border-zinc-800 bg-zinc-900 px-4 py-4",children:(0,x.jsxs)("div",{className:"max-w-lg space-y-3",children:[(0,x.jsx)("h3",{className:"text-sm font-semibold",children:"Add Pane"}),(0,x.jsxs)("div",{children:[(0,x.jsx)("label",{className:"text-[11px] text-zinc-400 mb-1.5 block",children:"Agent"}),(0,x.jsx)("div",{className:"grid grid-cols-3 gap-1.5",children:cZ.AGENT_LIST.map(a=>(0,x.jsxs)("button",{onClick:()=>{aN(a.id),aP("new"),a6(null),aL("")},className:`flex items-center gap-2 px-3 py-2 rounded-md border text-left transition-colors ${aM===a.id?"border-indigo-500 bg-indigo-600/20 text-white":"border-zinc-700 text-zinc-400 hover:text-white hover:border-zinc-600"}`,children:[(0,x.jsx)("span",{className:"w-2.5 h-2.5 rounded-full flex-shrink-0",style:{backgroundColor:a.color}}),(0,x.jsxs)("div",{className:"min-w-0",children:[(0,x.jsx)("div",{className:"text-xs font-medium truncate",children:a.name}),(0,x.jsx)("div",{className:"text-[10px] text-zinc-500 truncate",children:a.description})]})]},a.id))})]}),cZ.AGENT_TYPES[aM]?.supportsResume&&(0,x.jsxs)("div",{className:"flex gap-2",children:[(0,x.jsx)("button",{onClick:()=>{aP("new"),a6(null),aL("")},className:`px-3 py-1.5 text-xs rounded-md border transition-colors ${"new"===aO?"bg-indigo-600 border-indigo-500 text-white":"border-zinc-700 text-zinc-400 hover:text-white hover:border-zinc-600"}`,children:"New Session"}),(0,x.jsx)("button",{onClick:()=>aP("resume"),className:`px-3 py-1.5 text-xs rounded-md border transition-colors ${"resume"===aO?"bg-indigo-600 border-indigo-500 text-white":"border-zinc-700 text-zinc-400 hover:text-white hover:border-zinc-600"}`,children:"Resume Session"})]}),"custom"===aM&&(0,x.jsx)("input",{type:"text",placeholder:"Command to run (e.g. python agent.py)",value:aQ,onChange:a=>aR(a.target.value),className:"w-full px-3 py-2 text-sm bg-zinc-800 border border-zinc-700 rounded-md focus:outline-none focus:border-indigo-500 text-white font-mono"}),(0,x.jsx)(cX,{value:aS,onChange:aT}),(0,x.jsx)("input",{type:"text",placeholder:"Title (optional)",value:aC,onChange:a=>aE(a.target.value),className:"w-full px-3 py-2 text-sm bg-zinc-800 border border-zinc-700 rounded-md focus:outline-none focus:border-indigo-500 text-white"}),aS?(0,x.jsxs)("div",{children:[(0,x.jsx)("label",{className:"text-[11px] text-zinc-400 mb-1.5 block",children:"Working directory (on remote node)"}),(0,x.jsx)("input",{type:"text",placeholder:"e.g. /home/user/project or ~ for home",value:aF,onChange:a=>aG(a.target.value),className:"w-full px-3 py-2 text-sm bg-zinc-800 border border-zinc-700 rounded-md focus:outline-none focus:border-indigo-500 text-white font-mono"})]}):(0,x.jsx)(cU,{value:aF,onChange:aG}),cZ.AGENT_TYPES[aM]?.supportsResume&&"resume"===aO&&(0,x.jsxs)("div",{ref:ba,className:"relative",children:[a5?(0,x.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 text-sm bg-zinc-800 border border-zinc-700 rounded-md",children:[(0,x.jsx)(D.MessageSquare,{className:"w-3.5 h-3.5 text-indigo-400 flex-shrink-0"}),(0,x.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,x.jsx)("div",{className:"text-white truncate",children:a5.customName||a5.firstPrompt?.slice(0,60)||"Untitled"}),(0,x.jsxs)("div",{className:"text-[10px] text-zinc-500 flex items-center gap-2",children:[(0,x.jsx)("span",{children:a5.projectName}),(0,x.jsxs)("span",{children:[a5.messageCount," msgs"]}),(0,x.jsxs)("span",{className:"font-mono",children:[a5.sessionId.slice(0,8),"..."]})]})]}),(0,x.jsx)("button",{onClick:()=>{a6(null),a4(!0)},className:"text-zinc-400 hover:text-white text-xs",children:"Change"})]}):(0,x.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 text-sm bg-zinc-800 border border-zinc-700 rounded-md cursor-text",onClick:()=>a4(!0),children:[(0,x.jsx)(C.Search,{className:"w-3.5 h-3.5 text-zinc-500"}),(0,x.jsx)("input",{type:"text",placeholder:"Search sessions by name, prompt, or project...",value:aY,onChange:a=>{aZ(a.target.value),a4(!0)},onFocus:()=>a4(!0),className:"flex-1 bg-transparent focus:outline-none text-white placeholder:text-zinc-500"}),aF&&(0,x.jsx)("button",{onClick:a=>{a.stopPropagation(),a9(!a7)},className:`flex-shrink-0 px-1.5 py-0.5 text-[10px] rounded border transition-colors ${a7?"border-indigo-500/50 bg-indigo-600/20 text-indigo-400":"border-zinc-600 text-zinc-500 hover:text-zinc-400"}`,title:a7?"Showing sessions for this directory — click to show all":"Showing all sessions — click to filter by directory",children:a7?aF.split("/").pop():"All"}),(0,x.jsx)(G.ChevronDown,{className:"w-3.5 h-3.5 text-zinc-500"})]}),a2&&!a5&&(0,x.jsx)("div",{className:"absolute z-50 top-full left-0 right-0 mt-1 max-h-[300px] overflow-y-auto bg-zinc-800 border border-zinc-700 rounded-md shadow-xl",children:a0?(0,x.jsxs)("div",{className:"flex items-center justify-center py-6",children:[(0,x.jsx)(A.Loader2,{className:"w-4 h-4 animate-spin text-zinc-400"}),(0,x.jsx)("span",{className:"text-xs text-zinc-400 ml-2",children:"Loading sessions..."})]}):0===a$.length?(0,x.jsx)("div",{className:"py-4 px-3 text-xs text-zinc-500 text-center",children:aY?"No sessions match your search":"No sessions found"}):a$.map(a=>(0,x.jsx)("button",{onClick:()=>{a6(a),aL(a.sessionId),!aF&&a.projectPath&&aG(a.projectPath),aC||aE(a.customName||""),a4(!1)},className:"w-full text-left px-3 py-2.5 hover:bg-zinc-700 border-b border-zinc-700/50 last:border-0 transition-colors",children:(0,x.jsxs)("div",{className:"flex items-start gap-2",children:[(0,x.jsx)(D.MessageSquare,{className:"w-3.5 h-3.5 text-indigo-400 mt-0.5 flex-shrink-0"}),(0,x.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,x.jsx)("div",{className:"text-xs text-white truncate",children:a.customName||a.firstPrompt?.slice(0,70)||"Untitled session"}),(0,x.jsxs)("div",{className:"flex items-center gap-2 mt-0.5",children:[(0,x.jsxs)("span",{className:"text-[10px] text-indigo-400/70 flex items-center gap-0.5",children:[(0,x.jsx)(E.FolderOpen,{className:"w-2.5 h-2.5"}),a.projectName]}),(0,x.jsxs)("span",{className:"text-[10px] text-zinc-500",children:[a.messageCount," msgs"]}),(0,x.jsxs)("span",{className:"text-[10px] text-zinc-500 flex items-center gap-0.5",children:[(0,x.jsx)(F.Clock,{className:"w-2.5 h-2.5"}),new Date(a.modified).toLocaleDateString()]}),a.starred&&(0,x.jsx)("span",{className:"text-[10px]",children:"★"})]}),a.tags?.length>0&&(0,x.jsx)("div",{className:"flex gap-1 mt-1",children:a.tags.map(a=>(0,x.jsx)("span",{className:"text-[9px] px-1.5 py-0.5 bg-zinc-700 rounded text-zinc-400",children:a},a))})]})]})},a.sessionId))})]}),(0,x.jsxs)("div",{children:[(0,x.jsx)("label",{className:"text-[11px] text-zinc-400 mb-1.5 block",children:"Color"}),(0,x.jsx)(cO.ColorPicker,{value:aH,onChange:aJ})]}),(0,x.jsxs)("div",{className:"flex gap-2 pt-1",children:[(0,x.jsx)("button",{onClick:bh,disabled:"custom"===aM&&!aQ.trim(),className:"px-4 py-2 text-sm bg-indigo-600 text-white rounded-md hover:bg-indigo-500 disabled:opacity-50 disabled:cursor-not-allowed",children:"Create"}),(0,x.jsx)("button",{onClick:()=>n(!1),className:"px-4 py-2 text-sm border border-zinc-700 text-zinc-400 rounded-md hover:text-white hover:border-zinc-600",children:"Cancel"})]})]})}),s.size>0&&(0,x.jsxs)("div",{className:"flex items-center gap-2 px-4 py-1.5 border-b border-zinc-800 bg-zinc-900/50",children:[(0,x.jsx)("span",{className:"text-[10px] text-zinc-500",children:"Popped out:"}),g.filter(a=>s.has(a.id)).map(a=>(0,x.jsxs)("div",{className:"flex items-center gap-0.5",children:[(0,x.jsxs)("button",{onClick:()=>bq(a),className:"flex items-center gap-1 px-2 py-0.5 text-[10px] bg-zinc-800 border border-zinc-700 rounded-l text-zinc-400 hover:text-white hover:border-zinc-600",title:"Focus popout window",children:[(0,x.jsx)("span",{className:"w-1.5 h-1.5 rounded-full",style:{backgroundColor:a.color}}),a.title]}),(0,x.jsx)("button",{onClick:()=>bs(a.id),className:"px-1 py-0.5 text-[10px] bg-zinc-800 border border-zinc-700 border-l-0 rounded-r text-zinc-500 hover:text-white hover:border-zinc-600",title:"Pop back into grid",children:(0,x.jsx)(R,{className:"w-2.5 h-2.5"})})]},a.id))]}),$&&(0,x.jsx)(dG,{workspace:ac}),(0,x.jsxs)("div",{className:"flex-1 flex overflow-hidden min-h-0",children:[ax&&(0,x.jsx)("div",{className:"w-64 flex-shrink-0",children:(0,x.jsx)(dt,{onClose:()=>ay(!1),navigateTo:az})}),0===bD.length&&0===s.size&&0===q.size?(0,x.jsx)("div",{className:"flex-1 flex items-center justify-center",children:(0,x.jsxs)("div",{className:"text-center space-y-3",children:[(0,x.jsx)("img",{src:`${c}/spaces_icon.png`,alt:"Spaces",className:"w-16 h-16 mx-auto opacity-30"}),(0,x.jsx)("p",{className:"text-zinc-500",children:"No panes yet."}),(0,x.jsx)("p",{className:"text-zinc-600 text-xs",children:"Add a pane to start a shell, Claude, Codex, Gemini, or any agent."}),(0,x.jsxs)("button",{onClick:()=>n(!0),className:"px-4 py-2 text-sm bg-indigo-600 text-white rounded-md hover:bg-indigo-500 inline-flex items-center gap-2",children:[(0,x.jsx)(z.Plus,{className:"w-4 h-4"}),"Add your first pane"]})]})}):0===bD.length?(0,x.jsx)("div",{className:"flex-1 flex items-center justify-center",children:(0,x.jsxs)("div",{className:"text-center space-y-2",children:[(0,x.jsx)("p",{className:"text-zinc-500 text-sm",children:q.size>0&&s.size>0?"All panes are minimized or popped out.":q.size>0?"All panes are minimized. Use the toolbar to restore them.":"All panes are popped out to separate windows."}),(0,x.jsxs)("button",{onClick:()=>n(!0),className:"px-3 py-1.5 text-xs text-zinc-400 hover:text-white border border-zinc-700 rounded-md hover:border-zinc-600 inline-flex items-center gap-1.5",children:[(0,x.jsx)(z.Plus,{className:"w-3.5 h-3.5"}),"Add another pane"]})]})}):(0,x.jsxs)("div",{className:"flex-1 flex flex-col overflow-hidden min-h-0",children:[(0,x.jsx)(bv,{sensors:bo,collisionDetection:aI,onDragEnd:bp,children:(0,x.jsx)(bI,{items:bD.map(a=>a.id),strategy:bF,children:(0,x.jsx)(dO,{panes:o?bD.filter(a=>a.id===o):bD,renderPane:(b,c)=>(0,x.jsx)(Z.TerminalPane,{pane:b,onClose:bi,onUpdate:bj,onDuplicate:bk,isMaximized:o===b.id,onToggleMaximize:bl,onMinimize:bm,onPopout:br,onBrowse:aB,terminalToken:a,workspaceCollaboration:ac?.collaboration,dragHandleProps:c})})})}),bE.length>0&&(0,x.jsx)("div",{className:"flex items-center gap-1.5 px-2 py-1.5 border-t border-zinc-800 flex-shrink-0 overflow-x-auto bg-zinc-950",children:bE.map(a=>(0,x.jsxs)("button",{onClick:()=>bn(a.id),className:"flex items-center gap-1.5 px-2.5 py-1 text-[11px] rounded-md border border-zinc-700 hover:border-zinc-500 bg-zinc-800/50 hover:bg-zinc-700/50 text-zinc-400 hover:text-white transition-colors flex-shrink-0",title:`Restore ${a.title}`,children:[(0,x.jsx)("span",{className:"w-2 h-2 rounded-full flex-shrink-0",style:{backgroundColor:a.color}}),(0,x.jsx)("span",{className:"truncate max-w-[100px]",children:a.title}),(0,x.jsx)(W.Maximize2,{className:"w-2.5 h-2.5 text-zinc-500"})]},a.id))})]}),ac?.collaboration&&(0,x.jsx)(c4,{workspaceId:ac?.id??null,panes:bD.map(a=>({id:a.id,title:a.title,agentType:a.agentType,color:a.color})),collapsed:w,onToggle:()=>I(!w)})]}),(0,x.jsx)(dF,{isOpen:ai,onClose:()=>aj(!1),onLaunch:a=>{aj(!1),bu(a)}})]}):(0,x.jsxs)("div",{className:"h-screen flex flex-col bg-zinc-950 text-zinc-100",children:[(0,x.jsx)("div",{className:"absolute top-4 left-4",children:(0,x.jsxs)("button",{onClick:()=>b.push("/"),className:"flex items-center gap-2 px-3 py-1.5 text-xs text-zinc-500 hover:text-white hover:bg-zinc-800 rounded-md transition-colors",children:[(0,x.jsx)(P.Home,{className:"w-3.5 h-3.5"}),"Home"]})}),(0,x.jsx)("div",{className:"flex-1 flex items-center justify-center p-8 overflow-y-auto min-h-0",children:(0,x.jsxs)("div",{className:"w-full max-w-2xl my-auto",children:[(0,x.jsxs)("div",{className:"text-center mb-10",children:[(0,x.jsx)("img",{src:`${c}/spaces_icon.png`,alt:"Spaces",className:"w-16 h-16 mx-auto mb-4"}),(0,x.jsx)("h1",{className:"text-2xl font-bold mb-2",children:"Spaces"}),(0,x.jsx)("p",{className:"text-zinc-400 text-sm",children:"Choose a workspace to open, or create a new one."})]}),k?(0,x.jsx)("div",{className:"flex justify-center py-12",children:(0,x.jsx)(A.Loader2,{className:"w-6 h-6 animate-spin text-indigo-500"})}):(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)("div",{className:"grid grid-cols-2 gap-3 mb-6",children:aa.map(a=>(0,x.jsxs)("div",{className:`relative bg-zinc-900 border rounded-lg transition-all ${av===a.id?"border-zinc-600":"border-zinc-800 hover:border-zinc-600 hover:bg-zinc-800/50"}`,children:[(0,x.jsxs)("button",{onClick:()=>bu(a.id),className:"flex items-center gap-3 p-4 text-left w-full group",children:[(0,x.jsx)("span",{className:"w-3.5 h-3.5 rounded-full flex-shrink-0",style:{backgroundColor:a.color}}),(0,x.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,x.jsx)("div",{className:"text-sm font-medium text-white truncate",children:a.name}),(0,x.jsxs)("div",{className:"text-xs text-zinc-500 mt-0.5",children:[a.paneCount||0," pane",1!==(a.paneCount||0)?"s":"",a.isActive&&(0,x.jsx)("span",{className:"text-indigo-400 ml-2",children:"last active"})]})]}),(0,x.jsx)(B.Terminal,{className:"w-4 h-4 text-zinc-600 group-hover:text-zinc-400 transition-colors"})]}),f&&(0,x.jsx)("button",{onClick:()=>aw(av===a.id?null:a.id),className:`absolute top-2 right-2 p-1 rounded transition-colors ${av===a.id?"text-purple-400 bg-purple-500/10":"text-zinc-700 hover:text-zinc-400"}`,title:"Knowledge lobe settings",children:(0,x.jsx)(V.Brain,{className:"w-3.5 h-3.5"})}),av===a.id&&(0,x.jsx)("div",{className:"px-4 pb-4 border-t border-zinc-800/50 pt-3",children:(0,x.jsx)(db,{workspaceId:a.id,workspaceName:a.name})})]},a.id))}),(0,x.jsxs)("div",{className:"flex justify-center gap-3",children:[(0,x.jsxs)("button",{onClick:bx,className:"flex items-center gap-2 px-4 py-2.5 text-sm border border-zinc-700 text-zinc-400 rounded-lg hover:text-white hover:border-zinc-500 transition-colors",children:[(0,x.jsx)(z.Plus,{className:"w-4 h-4"}),"New Workspace"]}),(0,x.jsxs)("button",{onClick:()=>aj(!0),className:"flex items-center gap-2 px-4 py-2.5 text-sm border border-dashed border-indigo-500/50 text-indigo-400 rounded-lg hover:text-indigo-300 hover:border-indigo-400 hover:bg-indigo-500/10 transition-colors",children:[(0,x.jsx)(X,{className:"w-4 h-4"}),"Plan a Project"]})]}),d&&aU.isLoading&&(0,x.jsxs)("div",{className:"flex items-center justify-center gap-2 py-4 mt-6 border-t border-zinc-800",children:[(0,x.jsx)(A.Loader2,{className:"w-4 h-4 animate-spin text-zinc-500"}),(0,x.jsx)("span",{className:"text-xs text-zinc-500",children:"Loading network spaces..."})]}),d&&aU.data?.remote&&aU.data.remote.length>0&&(0,x.jsxs)("div",{className:"mt-6 border-t border-zinc-800 pt-6",children:[(0,x.jsxs)("div",{className:"flex items-center gap-2 mb-4",children:[(0,x.jsx)(S.Globe,{className:"w-4 h-4 text-zinc-500"}),(0,x.jsx)("h2",{className:"text-sm font-medium text-zinc-400",children:"Network Spaces"})]}),aU.data.remote.map(a=>(0,x.jsxs)("div",{className:"mb-3",children:[(0,x.jsxs)("button",{onClick:()=>aX(a.nodeId),className:"flex items-center gap-2 w-full px-2 py-1.5 text-left text-xs text-zinc-400 hover:text-white rounded-md hover:bg-zinc-800/50 transition-colors",children:[aV.has(a.nodeId)?(0,x.jsx)(H.ChevronRight,{className:"w-3.5 h-3.5 text-zinc-600"}):(0,x.jsx)(G.ChevronDown,{className:"w-3.5 h-3.5 text-zinc-600"}),(0,x.jsx)(S.Globe,{className:"w-3 h-3 text-zinc-600"}),(0,x.jsx)("span",{className:"font-medium",children:a.nodeName}),(0,x.jsxs)("span",{className:"text-zinc-600",children:[a.workspaces.length," space",1!==a.workspaces.length?"s":""]})]}),!aV.has(a.nodeId)&&(0,x.jsx)("div",{className:"grid grid-cols-2 gap-2 mt-2 ml-5",children:a.workspaces.map(c=>(0,x.jsxs)("button",{onClick:()=>{b.push(`/terminal/remote/${a.nodeId}/${c.id}`)},className:"flex items-center gap-3 p-3 bg-zinc-900/50 border border-zinc-800/50 rounded-lg hover:border-zinc-600 hover:bg-zinc-800/30 transition-colors text-left group",children:[(0,x.jsx)("span",{className:"w-3 h-3 rounded-full flex-shrink-0 ring-1 ring-zinc-700",style:{backgroundColor:c.color}}),(0,x.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,x.jsx)("div",{className:"text-xs font-medium text-zinc-300 truncate",children:c.name}),(0,x.jsxs)("div",{className:"text-[10px] text-zinc-600 mt-0.5",children:[c.paneCount||0," pane",1!==(c.paneCount||0)?"s":""]})]}),(0,x.jsx)(S.Globe,{className:"w-3 h-3 text-zinc-700 group-hover:text-zinc-500 transition-colors"})]},`${a.nodeId}-${c.id}`))})]},a.nodeId)),aU.data.errors&&aU.data.errors.length>0&&(0,x.jsx)("div",{className:"mt-3 space-y-1",children:aU.data.errors.map(a=>(0,x.jsxs)("div",{className:"flex items-center gap-2 px-2 py-1.5 text-[10px] text-zinc-600",children:[(0,x.jsx)(T.AlertCircle,{className:"w-3 h-3 text-red-500/50"}),(0,x.jsxs)("span",{children:[a.nodeName,": ",a.error]})]},a.nodeId))})]})]})]})}),(0,x.jsx)(dF,{isOpen:ai,onClose:()=>aj(!1),onLaunch:a=>{aj(!1),bu(a)}})]})}a.s(["default",()=>dQ],266490)}];
|
|
86
86
|
|
|
87
87
|
//# sourceMappingURL=src_app_%28desktop%29_terminal_page_tsx_de5e8d85._.js.map
|