@jlongo78/agent-spaces 0.9.7 → 0.9.8
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/.claude/settings.local.json +17 -4
- package/.next/standalone/.next/BUILD_ID +1 -1
- package/.next/standalone/.next/app-path-routes-manifest.json +1 -0
- package/.next/standalone/.next/build-manifest.json +2 -2
- package/.next/standalone/.next/routes-manifest.json +6 -0
- 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.js.nft.json +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.js.nft.json +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/analytics/overview/route.js +1 -1
- package/.next/standalone/.next/server/app/api/analytics/overview/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/benchmark/lobes/route.js +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- package/.next/standalone/.next/server/app/api/bulk/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/config/route.js +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- package/.next/standalone/.next/server/app/api/events/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/files/route.js +1 -1
- package/.next/standalone/.next/server/app/api/files/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/folders/route.js +1 -1
- package/.next/standalone/.next/server/app/api/folders/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/handshake/route.js +1 -1
- package/.next/standalone/.next/server/app/api/network/handshake/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/panes/[id]/route.js +1 -1
- 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 +1 -1
- 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 +1 -1
- package/.next/standalone/.next/server/app/api/network/projects/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/search/route.js +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- package/.next/standalone/.next/server/app/api/network/sessions/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/workspaces/[id]/route.js +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- package/.next/standalone/.next/server/app/api/panes/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/projects/route.js +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +2 -2
- package/.next/standalone/.next/server/app/api/search/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/sessions/[id]/chat/route.js +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +2 -2
- package/.next/standalone/.next/server/app/api/sessions/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/sync/route.js +1 -1
- package/.next/standalone/.next/server/app/api/sync/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/tags/route.js +1 -1
- package/.next/standalone/.next/server/app/api/tags/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/tier/route.js +1 -1
- package/.next/standalone/.next/server/app/api/tier/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/whisper/config/route.js +1 -1
- 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.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wizard/chart/route/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/api/wizard/chart/route/build-manifest.json +11 -0
- package/.next/standalone/.next/server/app/api/wizard/chart/route/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/api/wizard/chart/route.js +7 -0
- package/.next/standalone/.next/server/app/api/wizard/chart/route.js.map +5 -0
- package/.next/standalone/.next/server/app/api/wizard/chart/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/wizard/chart/route_client-reference-manifest.js +2 -0
- package/.next/standalone/.next/server/app/api/wizard/chat/route.js +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- package/.next/standalone/.next/server/app/api/workspaces/[id]/sessions/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/workspaces/route.js +2 -2
- 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 +3 -3
- package/.next/standalone/.next/server/app/cortex.segments/!KGRlc2t0b3Ap/cortex/__PAGE__.segment.rsc +2 -2
- 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 +3 -3
- 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/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.js.nft.json +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 +3 -3
- package/.next/standalone/.next/server/app/m/terminal.segments/_full.segment.rsc +3 -3
- 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 +2 -2
- 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/react-loadable-manifest.json +1 -1
- 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 +3 -3
- package/.next/standalone/.next/server/app/vr.segments/_full.segment.rsc +3 -3
- 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 +2 -2
- 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/app-paths-manifest.json +1 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__00e90fc6._.js +98 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__01ab8675._.js +98 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__03974f05._.js +98 -0
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__bb331da9._.js → [root-of-the-server]__046c9b91._.js} +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__04ae6bf0._.js +98 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__056fa416._.js +1 -1
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__186cd0bb._.js → [root-of-the-server]__0ac4ea3f._.js} +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0b8e64cb._.js +98 -0
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__d95165f0._.js → [root-of-the-server]__0facd39e._.js} +2 -2
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__69d315e5._.js → [root-of-the-server]__10bc76a3._.js} +2 -2
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__9d68157b._.js → [root-of-the-server]__115f3934._.js} +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__11f155f1._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__160e7c73._.js +22 -33
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__91e23c96._.js → [root-of-the-server]__17a3b966._.js} +2 -2
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__277d9445._.js → [root-of-the-server]__17d3a2b2._.js} +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1a86c055._.js +98 -0
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__d0125483._.js → [root-of-the-server]__20b5e9c4._.js} +2 -2
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__35f8e77e._.js → [root-of-the-server]__28d6fbd8._.js} +3 -3
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__04f04898._.js → [root-of-the-server]__2a3f866b._.js} +2 -2
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__a95bb38b._.js → [root-of-the-server]__316617e7._.js} +2 -2
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__b689ff5e._.js → [root-of-the-server]__32ad8f71._.js} +3 -11
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__6fe5e6c8._.js → [root-of-the-server]__35457394._.js} +2 -2
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__1f054c65._.js → [root-of-the-server]__35de78e6._.js} +2 -2
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__2f452778._.js → [root-of-the-server]__3685ffcb._.js} +3 -3
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__614458b7._.js → [root-of-the-server]__38954988._.js} +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__426ad936._.js +106 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__4985c034._.js +98 -0
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__e6fd27f8._.js → [root-of-the-server]__5c6ce9ed._.js} +3 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__5cebe58a._.js +98 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__5d5e4789._.js +98 -0
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__74084e07._.js → [root-of-the-server]__65676930._.js} +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__67cab326._.js +58 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__698c6f01._.js +98 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__6c64af29._.js +131 -0
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__d12644e7._.js → [root-of-the-server]__73aed9f5._.js} +3 -3
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__ac84b704._.js → [root-of-the-server]__79b6a9bb._.js} +2 -2
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__e56abacf._.js → [root-of-the-server]__7db704c6._.js} +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__812ca02b._.js +98 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__821f50fa._.js +98 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__8716b86e._.js +98 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__884ef754._.js +98 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__88cdbd68._.js +98 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__89d9aba9._.js +98 -0
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0903a426._.js → [root-of-the-server]__8d536cb5._.js} +3 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__8df8c5d1._.js +98 -0
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__2d7a454e._.js → [root-of-the-server]__8f2ccc41._.js} +2 -2
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__2a2c5fc5._.js → [root-of-the-server]__95c9d682._.js} +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__9e5d7774._.js +98 -0
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__cc6e2885._.js → [root-of-the-server]__9edcff87._.js} +2 -2
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__feceb3e4._.js → [root-of-the-server]__a049dfc2._.js} +3 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__a5b4bb9a._.js +98 -0
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__929ea03a._.js → [root-of-the-server]__a83262a1._.js} +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__a9cd1240._.js +98 -0
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__2f300a68._.js → [root-of-the-server]__a9d7f822._.js} +3 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__ad08c221._.js +98 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__ad585f2f._.js +98 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__afcb8f7d._.js +98 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__bc250d43._.js +98 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__bce2a6e7._.js +98 -0
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__ad4346fa._.js → [root-of-the-server]__c011bf91._.js} +3 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__c0ac2895._.js +3 -0
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__563c0817._.js → [root-of-the-server]__c37d6380._.js} +2 -2
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__4d5b78d2._.js → [root-of-the-server]__cae392eb._.js} +3 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__cc2616bb._.js +3 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__d501fa9b._.js +98 -0
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__d0109b9b._.js → [root-of-the-server]__d59c6c15._.js} +3 -3
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__11c684b1._.js → [root-of-the-server]__d5c1db32._.js} +3 -3
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__b43306ee._.js → [root-of-the-server]__dba60c86._.js} +3 -3
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__2384f98e._.js → [root-of-the-server]__de14b9ae._.js} +2 -2
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__c1deb5f3._.js → [root-of-the-server]__e10643d1._.js} +3 -3
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__00fdfbda._.js → [root-of-the-server]__e2a996e5._.js} +2 -2
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__4d903941._.js → [root-of-the-server]__e3477417._.js} +2 -2
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__32dc5513._.js → [root-of-the-server]__e4db362e._.js} +2 -2
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__49e42a3a._.js → [root-of-the-server]__e4e70b86._.js} +2 -2
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__ac39ecc7._.js → [root-of-the-server]__e54925af._.js} +2 -2
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__a90729a1._.js → [root-of-the-server]__e8edc5b0._.js} +3 -3
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__eafd040b._.js → [root-of-the-server]__eab4d83b._.js} +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__ead29015._.js +1 -1
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__194955d4._.js → [root-of-the-server]__f056fd83._.js} +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__f0e99572._.js +98 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__fe1e16d0._.js +98 -0
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__c8a62f42._.js → [root-of-the-server]__ff9cd277._.js} +3 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__ffaea2ce._.js +98 -0
- package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_wizard_chart_route_actions_888e2ec1.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__2cffc362._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__f1050870._.js → [root-of-the-server]__47c97637._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__66aca5d4._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_17b946fd._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_2a1d79e7._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_5c3c4cfa._.js +7 -5
- package/.next/standalone/.next/server/chunks/ssr/_ba432382._.js +7 -5
- package/.next/standalone/.next/server/chunks/ssr/src_app_(desktop)_cortex_page_tsx_0f33d8b3._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/src_app_(desktop)_terminal_page_tsx_de5e8d85._.js +4 -4
- package/.next/standalone/.next/server/edge/chunks/[root-of-the-server]__90eeddae._.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/0852575eb90c1e8d.js +85 -0
- package/.next/standalone/.next/static/chunks/{74d0ac0b1d0a1b79.js → 10b00b4f66102dcf.js} +1 -1
- package/.next/standalone/.next/static/chunks/{16eb77953dee9ea3.js → 19c71a8376c23c58.js} +1 -1
- package/.next/standalone/.next/static/chunks/2b769d1597e4fc1c.css +3 -0
- package/.next/standalone/.next/static/chunks/{3e91fc608659c524.js → 350271fe79509caf.js} +1 -1
- package/.next/standalone/.next/static/chunks/{70423c7afd8abf5f.js → 597847c22200c212.js} +1 -1
- package/.next/standalone/.next/static/chunks/{fb0abd1933b2b2e1.js → 7f6a14f1849fa94d.js} +1 -1
- package/.next/standalone/.next/static/chunks/{7ecd9bbb0ce4d68a.js → b7c8fe9b7275a84f.js} +1 -1
- package/.next/standalone/.next/static/chunks/{6245135a7afb8c7b.js → c9b10fc55516d142.js} +8 -6
- package/.next/standalone/.next/static/chunks/d0065f48eab94944.js +1 -0
- package/.next/standalone/.next/static/chunks/{180c1b9ff31b979f.js → f7b34c807badf95d.js} +8 -6
- package/.next/standalone/.spaces/cortex-context.md +35 -129
- package/.next/standalone/bin/spaces.js +7 -4
- package/.next/standalone/bin/terminal-server.js +48 -10
- package/.next/standalone/cortex-hook-debug.log +57 -23
- package/.next/standalone/package-lock.json +2 -2
- package/.next/standalone/package.json +1 -1
- package/.next/standalone/src/app/(desktop)/terminal/page.tsx +44 -5
- package/.next/standalone/src/app/api/benchmark/run/route.ts +24 -3
- package/.next/standalone/src/app/api/cortex/context/route.ts +1 -1
- package/.next/standalone/src/app/api/cortex/knowledge/route.ts +1 -1
- package/.next/standalone/src/app/api/cortex/search/route.ts +14 -2
- package/.next/standalone/src/app/api/folders/route.ts +16 -6
- package/.next/standalone/src/app/api/network/panes/[id]/route.ts +27 -11
- package/.next/standalone/src/app/api/network/panes/route.ts +25 -14
- package/.next/standalone/src/app/api/network/projects/route.ts +11 -4
- package/.next/standalone/src/app/api/network/search/route.ts +21 -14
- package/.next/standalone/src/app/api/network/sessions/[id]/messages/route.ts +18 -11
- package/.next/standalone/src/app/api/network/sessions/[id]/route.ts +16 -9
- package/.next/standalone/src/app/api/network/sessions/route.ts +25 -18
- package/.next/standalone/src/app/api/network/workspaces/[id]/route.ts +21 -12
- package/.next/standalone/src/app/api/network/workspaces/route.ts +16 -14
- package/.next/standalone/src/app/api/whisper/config/route.ts +16 -8
- package/.next/standalone/src/app/api/wizard/chart/route.ts +129 -0
- package/.next/standalone/src/components/cortex/benchmark-tab.tsx +14 -0
- package/.next/standalone/src/components/terminal/terminal-pane.tsx +78 -12
- package/.next/standalone/src/components/wizard/chart-wizard.tsx +405 -0
- package/.next/standalone/src/hooks/use-benchmark.ts +1 -0
- package/.next/standalone/src/hooks/use-speech-recognition.ts +2 -1
- package/.next/standalone/src/lib/cortex/benchmark.ts +17 -1
- package/.next/standalone/src/lib/cortex/index.ts +54 -1
- package/.next/standalone/src/lib/db/queries.ts +2 -89
- package/.next/standalone/src/lib/shell-user.ts +101 -0
- package/bin/spaces.js +7 -4
- package/bin/terminal-server.js +48 -10
- package/package.json +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__09e8ccc9._.js +0 -98
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1572d4ef._.js +0 -98
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__212760e6._.js +0 -98
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__228595ec._.js +0 -98
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__283c890f._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__379fc2e9._.js +0 -98
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__3b40d79f._.js +0 -98
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__3d3dca2b._.js +0 -98
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__54163e52._.js +0 -98
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__5812f90a._.js +0 -98
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__5c5e87f5._.js +0 -98
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__60d15b16._.js +0 -98
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__71f29038._.js +0 -98
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__7921aa80._.js +0 -98
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__7e077dd8._.js +0 -98
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__7ebc4280._.js +0 -131
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__857c60bb._.js +0 -98
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__874fe565._.js +0 -98
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__8e2171f7._.js +0 -98
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__95659b2d._.js +0 -98
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__9679b91e._.js +0 -98
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__b0862d69._.js +0 -98
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__ba87daaa._.js +0 -98
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__c0461005._.js +0 -98
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__cabaac2b._.js +0 -98
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__cb027619._.js +0 -98
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__cf608218._.js +0 -98
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__cfc1290d._.js +0 -98
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__d048ee6b._.js +0 -98
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__e3cc946c._.js +0 -98
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__efb8251e._.js +0 -98
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__f44c6882._.js +0 -98
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__f85283de._.js +0 -98
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__843070a6._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_e84a0c06._.js +0 -3
- package/.next/standalone/.next/static/chunks/9d4164833c2c1fd6.js +0 -85
- package/.next/standalone/.next/static/chunks/bffaf378f7745d59.css +0 -3
- package/.next/standalone/.next/static/chunks/f091f4bf8d80fd07.js +0 -1
- /package/.next/standalone/.next/static/{0KefPNmR9NsrZHWWt9Xr7 → u1pHON3drz1mBi7owkbBP}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{0KefPNmR9NsrZHWWt9Xr7 → u1pHON3drz1mBi7owkbBP}/_clientMiddlewareManifest.json +0 -0
- /package/.next/standalone/.next/static/{0KefPNmR9NsrZHWWt9Xr7 → u1pHON3drz1mBi7owkbBP}/_ssgManifest.js +0 -0
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,398361,e=>{"use strict";let t=(0,e.i(475254).default)("maximize-2",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"m21 3-7 7",key:"1l2asr"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M9 21H3v-6",key:"wtvkvv"}]]);e.s(["Maximize2",()=>t],398361)},367240,e=>{"use strict";let t=(0,e.i(475254).default)("rotate-ccw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]]);e.s(["RotateCcw",()=>t],367240)},424134,778917,e=>{"use strict";var t=e.i(247167),r=e.i(843476),n=e.i(271645),i=e.i(174080),s=e.i(37727),a=e.i(788699),c=e.i(643531),o=e.i(367240),l=e.i(398361),d=e.i(475254);let u=(0,d.default)("minimize-2",[["path",{d:"m14 10 7-7",key:"oa77jy"}],["path",{d:"M20 10h-6V4",key:"mjg0md"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M4 14h6v6",key:"rmj7iw"}]]),x=(0,d.default)("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);e.s(["ExternalLink",()=>x],778917);var h=e.i(248256),m=e.i(761911),f=e.i(387951),p=e.i(687246),b=e.i(569074),g=e.i(87309);let y=(0,d.default)("minus",[["path",{d:"M5 12h14",key:"1ays0h"}]]),w=(0,d.default)("grip-vertical",[["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}],["circle",{cx:"9",cy:"5",r:"1",key:"hp0tcf"}],["circle",{cx:"9",cy:"19",r:"1",key:"fkjjf6"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"15",cy:"5",r:"1",key:"19l28e"}],["circle",{cx:"15",cy:"19",r:"1",key:"f4zoj3"}]]);var v=e.i(239616);let j=(0,d.default)("git-compare-arrows",[["circle",{cx:"5",cy:"6",r:"3",key:"1qnov2"}],["path",{d:"M12 6h5a2 2 0 0 1 2 2v7",key:"1yj91y"}],["path",{d:"m15 9-3-3 3-3",key:"1lwv8l"}],["circle",{cx:"19",cy:"18",r:"3",key:"1qljk2"}],["path",{d:"M12 18H7a2 2 0 0 1-2-2V9",key:"16sdep"}],["path",{d:"m9 15 3 3-3 3",key:"1m3kbl"}]]);var N=e.i(531278),z=e.i(174886),k=e.i(209165);function S({paneId:e,onClose:t}){let[i,a]=(0,n.useState)(null),[l,d]=(0,n.useState)(!0),[u,x]=(0,n.useState)(null),[h,m]=(0,n.useState)(!1),[f,p]=(0,n.useState)(null),b=()=>{d(!0),x(null),fetch((0,k.api)(`/api/panes/${e}/diff`)).then(e=>e.ok?e.json():e.json().then(e=>{throw Error(e.error)})).then(e=>{a(e),d(!1)}).catch(e=>{x(e.message),d(!1)})};(0,n.useEffect)(()=>{b()},[e]);let g=async()=>{await fetch((0,k.api)(`/api/panes/${e}/diff`),{method:"POST"}),b()};if(l)return(0,r.jsx)("div",{className:"flex items-center justify-center py-8 bg-zinc-900 border-t border-zinc-700",children:(0,r.jsx)(N.Loader2,{className:"w-4 h-4 animate-spin text-zinc-500"})});if(u)return(0,r.jsxs)("div",{className:"flex items-center justify-between px-3 py-2 bg-zinc-900 border-t border-zinc-700 text-xs",children:[(0,r.jsx)("span",{className:"text-red-400",children:u}),(0,r.jsx)("button",{onClick:t,className:"text-zinc-500 hover:text-white",children:(0,r.jsx)(s.X,{className:"w-3 h-3"})})]});if(!i||0===i.files.length&&0===i.untracked.length)return(0,r.jsxs)("div",{className:"flex items-center justify-between px-3 py-2 bg-zinc-900 border-t border-zinc-700 text-xs",children:[(0,r.jsx)("span",{className:"text-zinc-500",children:"No changes since baseline"}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)("button",{onClick:g,className:"text-zinc-500 hover:text-white",title:"Reset baseline",children:(0,r.jsx)(o.RotateCcw,{className:"w-3 h-3"})}),(0,r.jsx)("button",{onClick:t,className:"text-zinc-500 hover:text-white",children:(0,r.jsx)(s.X,{className:"w-3 h-3"})})]})]});let y=i.diff.split("\n").map((e,t)=>{let r="text-zinc-400",n="";return e.startsWith("+")&&!e.startsWith("+++")?(r="text-green-400",n="bg-green-500/10"):e.startsWith("-")&&!e.startsWith("---")?(r="text-red-400",n="bg-red-500/10"):e.startsWith("@@")?(r="text-cyan-400",n="bg-cyan-500/5"):e.startsWith("diff ")&&(r="text-zinc-300 font-bold"),{line:e,cls:r,bg:n,idx:t}}),w=f?y.filter((e,t)=>{let r=!1;for(let e=0;e<=t;e++)y[e].line.startsWith("diff ")&&y[e].line.includes(f)?r=!0:y[e].line.startsWith("diff ")&&e>0&&(r=!1);return r}):y,v=[...i.files,...i.untracked.map(e=>({path:e,status:"added",additions:0,deletions:0}))];return(0,r.jsxs)("div",{className:"flex flex-col bg-zinc-900 border-t border-zinc-700",style:{height:"40%",minHeight:150},children:[(0,r.jsxs)("div",{className:"flex items-center justify-between px-3 py-1.5 border-b border-zinc-800 text-xs flex-shrink-0",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 text-zinc-500",children:[(0,r.jsxs)("span",{children:[v.length," file",1!==v.length?"s":""," changed"]}),(0,r.jsx)("span",{className:"text-zinc-700",children:"|"}),(0,r.jsxs)("span",{className:"font-mono text-[10px]",children:[i.baselineSha.slice(0,7),"..",i.currentSha.slice(0,7)]})]}),(0,r.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,r.jsx)("button",{onClick:g,className:"px-2 py-0.5 text-[10px] text-zinc-400 hover:text-white bg-zinc-800 rounded border border-zinc-700",title:"Mark as reviewed",children:"Reset Baseline"}),(0,r.jsx)("button",{onClick:()=>{i?.diff&&(navigator.clipboard.writeText(i.diff),m(!0),setTimeout(()=>m(!1),2e3))},className:"text-zinc-500 hover:text-white",title:"Copy diff",children:h?(0,r.jsx)(c.Check,{className:"w-3 h-3 text-green-400"}):(0,r.jsx)(z.Copy,{className:"w-3 h-3"})}),(0,r.jsx)("button",{onClick:t,className:"text-zinc-500 hover:text-white",title:"Close",children:(0,r.jsx)(s.X,{className:"w-3 h-3"})})]})]}),(0,r.jsxs)("div",{className:"flex flex-1 overflow-hidden min-h-0",children:[(0,r.jsxs)("div",{className:"w-48 flex-shrink-0 border-r border-zinc-800 overflow-y-auto",children:[(0,r.jsx)("button",{onClick:()=>p(null),className:`w-full text-left px-2 py-1 text-[10px] ${!f?"bg-zinc-800 text-zinc-200":"text-zinc-400 hover:bg-zinc-800/50"}`,children:"All files"}),v.map(e=>{var t;return(0,r.jsxs)("button",{onClick:()=>p(e.path),className:`w-full text-left px-2 py-1 text-[10px] flex items-center gap-1.5 ${f===e.path?"bg-zinc-800 text-zinc-200":"text-zinc-400 hover:bg-zinc-800/50"}`,children:["added"===(t=e.status)?(0,r.jsx)("span",{className:"text-green-400 text-[10px]",children:"A"}):"deleted"===t?(0,r.jsx)("span",{className:"text-red-400 text-[10px]",children:"D"}):"renamed"===t?(0,r.jsx)("span",{className:"text-blue-400 text-[10px]",children:"R"}):(0,r.jsx)("span",{className:"text-amber-400 text-[10px]",children:"M"}),(0,r.jsx)("span",{className:"truncate",children:e.path.split("/").pop()})]},e.path)})]}),(0,r.jsxs)("div",{className:"flex-1 overflow-auto font-mono text-[11px] leading-[18px]",children:[w.map(({line:e,cls:t,bg:n,idx:i})=>(0,r.jsx)("div",{className:`px-3 ${n} ${t} whitespace-pre`,children:e||" "},i)),i.truncated&&(0,r.jsx)("div",{className:"px-3 py-2 text-amber-400 text-[10px]",children:"Diff truncated at 500KB"})]})]})]})}var C=e.i(975157),T=e.i(73359),R=e.i(28916);let E=t.default.env.NEXT_PUBLIC_WS_PATH;function A({pane:t,onClose:d,onUpdate:N,isMaximized:z,onToggleMaximize:k,onMinimize:A,onPopout:M,onBrowse:$,isPopout:D,terminalToken:P,workspaceCollaboration:I,dragHandleProps:O}){let{hasCortex:B}=(0,R.useTier)(),F=(0,n.useRef)(null),L=(0,n.useRef)(null),q=(0,n.useRef)(null),U=(0,n.useRef)(null),W=(0,n.useRef)(""),_=(0,n.useRef)(null),K=()=>{try{U.current?.fit()}catch{}},[G,H]=(0,n.useState)(!1),[J,V]=(0,n.useState)(!1),[Y,X]=(0,n.useState)(t.title),[Q,Z]=(0,n.useState)(!1),[ee,et]=(0,n.useState)({x:0,y:0}),er=(0,n.useRef)(null),en=(0,n.useRef)(null),[ei,es]=(0,n.useState)(!1),[ea,ec]=(0,n.useState)(0),[eo,el]=(0,n.useState)([]),[ed,eu]=(0,n.useState)(!1),[ex,eh]=(0,n.useState)(!1),[em,ef]=(0,n.useState)("idle"),ep=(0,n.useRef)(!1),[eb,eg]=(0,n.useState)(""),ey=(0,n.useRef)(null),[ew,ev]=(0,n.useState)("off"),ej=(0,n.useRef)(null),[eN,ez]=(0,n.useState)(!1),ek=(0,n.useRef)(0),[eS,eC]=(0,n.useState)(!1),eT=(0,n.useRef)(!1),eR=(0,n.useRef)(null),[eE,eA]=(0,n.useState)(35),eM=(0,n.useRef)(35),[e$,eD]=(0,n.useState)(2e3),eP=(0,n.useRef)(2e3),[eI,eO]=(0,n.useState)(!0),eB=(0,n.useRef)(!0),[eF,eL]=(0,n.useState)(!1),[eq,eU]=(0,n.useState)(!1),[eW,e_]=(0,n.useState)(null),[eK,eG]=(0,n.useState)(null);(0,n.useEffect)(()=>{let e=navigator.userAgent||"";eu(/Quest|Oculus|Pacific/i.test(e))},[]),(0,n.useEffect)(()=>{if(!t.customModelId)return;let e=()=>{fetch(`/api/proxy/models/${t.customModelId}/status`).then(e=>e.ok?e.json():null).then(e=>{e?.status&&eG(e.status)}).catch(()=>{})};e();let r=setInterval(e,15e3);return()=>clearInterval(r)},[t.customModelId]),(0,n.useEffect)(()=>{if(!t.diffBaselineSha)return;let e=()=>{fetch(`/api/panes/${t.id}/diff?countOnly=true`).then(e=>e.ok?e.json():null).then(e=>{e?.fileCount!==void 0&&e_(e.fileCount)}).catch(()=>{})};e();let r=setInterval(e,3e4);return()=>clearInterval(r)},[t.id,t.diffBaselineSha]);let eH=(0,n.useRef)(t);eH.current=t;let eJ=(0,n.useRef)(N);eJ.current=N;let eV=(0,n.useRef)(P);eV.current=P;let eY=(0,n.useRef)(()=>{}),eX=(0,n.useRef)(!1),eQ=(0,n.useRef)(!1),eZ=(0,n.useRef)(null),e0=(0,n.useRef)(0),e1=(0,n.useCallback)(async()=>{if(!F.current)return;eH.current,eQ.current=!1,e0.current=0;let{Terminal:t}=await e.A(116049),{FitAddon:r}=await e.A(359439),{WebLinksAddon:n}=await e.A(816091);L.current&&L.current.dispose();let i=/Quest|Oculus|Pacific/i.test(navigator.userAgent),s=new t({cursorBlink:!i,disableStdin:i,fontSize:13,fontFamily:"'Cascadia Code', 'Fira Code', 'JetBrains Mono', Consolas, monospace",scrollback:1e4,fastScrollModifier:"alt",smoothScrollDuration:0,theme:{background:"#0a0a0a",foreground:"#e4e4e7",cursor:"#6366f1",selectionBackground:"#6366f133",black:"#18181b",red:"#ef4444",green:"#22c55e",yellow:"#eab308",blue:"#3b82f6",magenta:"#a855f7",cyan:"#06b6d4",white:"#e4e4e7",brightBlack:"#52525b",brightRed:"#f87171",brightGreen:"#4ade80",brightYellow:"#facc15",brightBlue:"#60a5fa",brightMagenta:"#c084fc",brightCyan:"#22d3ee",brightWhite:"#fafafa"},allowProposedApi:!0}),a=new r,c=new n;s.loadAddon(a),s.loadAddon(c),await new Promise(e=>requestAnimationFrame(()=>{if(F.current){s.open(F.current);try{a.fit()}catch{}if(i&&F.current){let e=F.current.querySelector("textarea");e&&(e.setAttribute("readonly","true"),e.setAttribute("inputmode","none"),e.style.opacity="0",e.style.pointerEvents="none")}}e()})),s.attachCustomKeyEventHandler(e=>"keydown"!==e.type||(e.ctrlKey&&"c"===e.key&&s.hasSelection()?(navigator.clipboard?.writeText(s.getSelection()),s.clearSelection(),!1):!e.ctrlKey||"v"!==e.key)),L.current=s,U.current=a,requestAnimationFrame(()=>requestAnimationFrame(K)),setTimeout(K,300);let o=()=>{let e,t,r,n,i;if(eQ.current)return;e0.current>0&&(s.write("\x1b[2J\x1b[H"),s.clear());let a=new WebSocket((t=new URLSearchParams({paneId:(e=eH.current).id,cwd:e.cwd,agentType:e.agentType||"shell",cols:String(s.cols),rows:String(s.rows)}),e.claudeSessionId&&t.set("agentSession",e.claudeSessionId),e.customCommand&&t.set("customCommand",e.customCommand),e.nodeId&&t.set("nodeId",e.nodeId),e.customModelId&&t.set("customModelId",e.customModelId),(r=eV.current)&&t.set("terminalToken",r),n=E||"/ws",i="https:"===location.protocol?"wss:":"ws:",`${i}//${location.host}${n}?${t}`));q.current=a,a.onopen=()=>{H(!0),es(!1),eX.current=!1,e0.current=0,setTimeout(K,150)},a.onmessage=e=>{try{let r=JSON.parse(e.data);if("data"===r.type){var t;t=r.data,W.current+=t,null===_.current&&(_.current=requestAnimationFrame(()=>{_.current=null;let e=W.current;W.current="",e&&L.current&&(e=e.replace(/\x1b\[3J/g,""),L.current.write(e))}))}else if("exit"===r.type){es(!0),eX.current=!0;let e=r.reason?` — ${r.reason}`:"";s.write(`\r
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,398361,e=>{"use strict";let t=(0,e.i(475254).default)("maximize-2",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"m21 3-7 7",key:"1l2asr"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M9 21H3v-6",key:"wtvkvv"}]]);e.s(["Maximize2",()=>t],398361)},367240,e=>{"use strict";let t=(0,e.i(475254).default)("rotate-ccw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]]);e.s(["RotateCcw",()=>t],367240)},424134,778917,e=>{"use strict";var t=e.i(247167),r=e.i(843476),n=e.i(271645),i=e.i(174080),a=e.i(37727),s=e.i(788699),c=e.i(643531),o=e.i(367240),l=e.i(398361),d=e.i(475254);let u=(0,d.default)("minimize-2",[["path",{d:"m14 10 7-7",key:"oa77jy"}],["path",{d:"M20 10h-6V4",key:"mjg0md"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M4 14h6v6",key:"rmj7iw"}]]),x=(0,d.default)("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);e.s(["ExternalLink",()=>x],778917);var h=e.i(248256),m=e.i(761911),f=e.i(387951),p=e.i(687246),b=e.i(569074),g=e.i(87309);let y=(0,d.default)("minus",[["path",{d:"M5 12h14",key:"1ays0h"}]]),w=(0,d.default)("grip-vertical",[["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}],["circle",{cx:"9",cy:"5",r:"1",key:"hp0tcf"}],["circle",{cx:"9",cy:"19",r:"1",key:"fkjjf6"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"15",cy:"5",r:"1",key:"19l28e"}],["circle",{cx:"15",cy:"19",r:"1",key:"f4zoj3"}]]);var v=e.i(239616);let j=(0,d.default)("git-compare-arrows",[["circle",{cx:"5",cy:"6",r:"3",key:"1qnov2"}],["path",{d:"M12 6h5a2 2 0 0 1 2 2v7",key:"1yj91y"}],["path",{d:"m15 9-3-3 3-3",key:"1lwv8l"}],["circle",{cx:"19",cy:"18",r:"3",key:"1qljk2"}],["path",{d:"M12 18H7a2 2 0 0 1-2-2V9",key:"16sdep"}],["path",{d:"m9 15 3 3-3 3",key:"1m3kbl"}]]);var N=e.i(531278),z=e.i(174886),k=e.i(209165);function S({paneId:e,onClose:t}){let[i,s]=(0,n.useState)(null),[l,d]=(0,n.useState)(!0),[u,x]=(0,n.useState)(null),[h,m]=(0,n.useState)(!1),[f,p]=(0,n.useState)(null),b=()=>{d(!0),x(null),fetch((0,k.api)(`/api/panes/${e}/diff`)).then(e=>e.ok?e.json():e.json().then(e=>{throw Error(e.error)})).then(e=>{s(e),d(!1)}).catch(e=>{x(e.message),d(!1)})};(0,n.useEffect)(()=>{b()},[e]);let g=async()=>{await fetch((0,k.api)(`/api/panes/${e}/diff`),{method:"POST"}),b()};if(l)return(0,r.jsx)("div",{className:"flex items-center justify-center py-8 bg-zinc-900 border-t border-zinc-700",children:(0,r.jsx)(N.Loader2,{className:"w-4 h-4 animate-spin text-zinc-500"})});if(u)return(0,r.jsxs)("div",{className:"flex items-center justify-between px-3 py-2 bg-zinc-900 border-t border-zinc-700 text-xs",children:[(0,r.jsx)("span",{className:"text-red-400",children:u}),(0,r.jsx)("button",{onClick:t,className:"text-zinc-500 hover:text-white",children:(0,r.jsx)(a.X,{className:"w-3 h-3"})})]});if(!i||0===i.files.length&&0===i.untracked.length)return(0,r.jsxs)("div",{className:"flex items-center justify-between px-3 py-2 bg-zinc-900 border-t border-zinc-700 text-xs",children:[(0,r.jsx)("span",{className:"text-zinc-500",children:"No changes since baseline"}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)("button",{onClick:g,className:"text-zinc-500 hover:text-white",title:"Reset baseline",children:(0,r.jsx)(o.RotateCcw,{className:"w-3 h-3"})}),(0,r.jsx)("button",{onClick:t,className:"text-zinc-500 hover:text-white",children:(0,r.jsx)(a.X,{className:"w-3 h-3"})})]})]});let y=i.diff.split("\n").map((e,t)=>{let r="text-zinc-400",n="";return e.startsWith("+")&&!e.startsWith("+++")?(r="text-green-400",n="bg-green-500/10"):e.startsWith("-")&&!e.startsWith("---")?(r="text-red-400",n="bg-red-500/10"):e.startsWith("@@")?(r="text-cyan-400",n="bg-cyan-500/5"):e.startsWith("diff ")&&(r="text-zinc-300 font-bold"),{line:e,cls:r,bg:n,idx:t}}),w=f?y.filter((e,t)=>{let r=!1;for(let e=0;e<=t;e++)y[e].line.startsWith("diff ")&&y[e].line.includes(f)?r=!0:y[e].line.startsWith("diff ")&&e>0&&(r=!1);return r}):y,v=[...i.files,...i.untracked.map(e=>({path:e,status:"added",additions:0,deletions:0}))];return(0,r.jsxs)("div",{className:"flex flex-col bg-zinc-900 border-t border-zinc-700",style:{height:"40%",minHeight:150},children:[(0,r.jsxs)("div",{className:"flex items-center justify-between px-3 py-1.5 border-b border-zinc-800 text-xs flex-shrink-0",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 text-zinc-500",children:[(0,r.jsxs)("span",{children:[v.length," file",1!==v.length?"s":""," changed"]}),(0,r.jsx)("span",{className:"text-zinc-700",children:"|"}),(0,r.jsxs)("span",{className:"font-mono text-[10px]",children:[i.baselineSha.slice(0,7),"..",i.currentSha.slice(0,7)]})]}),(0,r.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,r.jsx)("button",{onClick:g,className:"px-2 py-0.5 text-[10px] text-zinc-400 hover:text-white bg-zinc-800 rounded border border-zinc-700",title:"Mark as reviewed",children:"Reset Baseline"}),(0,r.jsx)("button",{onClick:()=>{i?.diff&&(navigator.clipboard.writeText(i.diff),m(!0),setTimeout(()=>m(!1),2e3))},className:"text-zinc-500 hover:text-white",title:"Copy diff",children:h?(0,r.jsx)(c.Check,{className:"w-3 h-3 text-green-400"}):(0,r.jsx)(z.Copy,{className:"w-3 h-3"})}),(0,r.jsx)("button",{onClick:t,className:"text-zinc-500 hover:text-white",title:"Close",children:(0,r.jsx)(a.X,{className:"w-3 h-3"})})]})]}),(0,r.jsxs)("div",{className:"flex flex-1 overflow-hidden min-h-0",children:[(0,r.jsxs)("div",{className:"w-48 flex-shrink-0 border-r border-zinc-800 overflow-y-auto",children:[(0,r.jsx)("button",{onClick:()=>p(null),className:`w-full text-left px-2 py-1 text-[10px] ${!f?"bg-zinc-800 text-zinc-200":"text-zinc-400 hover:bg-zinc-800/50"}`,children:"All files"}),v.map(e=>{var t;return(0,r.jsxs)("button",{onClick:()=>p(e.path),className:`w-full text-left px-2 py-1 text-[10px] flex items-center gap-1.5 ${f===e.path?"bg-zinc-800 text-zinc-200":"text-zinc-400 hover:bg-zinc-800/50"}`,children:["added"===(t=e.status)?(0,r.jsx)("span",{className:"text-green-400 text-[10px]",children:"A"}):"deleted"===t?(0,r.jsx)("span",{className:"text-red-400 text-[10px]",children:"D"}):"renamed"===t?(0,r.jsx)("span",{className:"text-blue-400 text-[10px]",children:"R"}):(0,r.jsx)("span",{className:"text-amber-400 text-[10px]",children:"M"}),(0,r.jsx)("span",{className:"truncate",children:e.path.split("/").pop()})]},e.path)})]}),(0,r.jsxs)("div",{className:"flex-1 overflow-auto font-mono text-[11px] leading-[18px]",children:[w.map(({line:e,cls:t,bg:n,idx:i})=>(0,r.jsx)("div",{className:`px-3 ${n} ${t} whitespace-pre`,children:e||" "},i)),i.truncated&&(0,r.jsx)("div",{className:"px-3 py-2 text-amber-400 text-[10px]",children:"Diff truncated at 500KB"})]})]})]})}var C=e.i(975157),T=e.i(73359),$=e.i(28916);let R=t.default.env.NEXT_PUBLIC_WS_PATH;function E({pane:t,onClose:d,onUpdate:N,isMaximized:z,onToggleMaximize:k,onMinimize:E,onPopout:A,onBrowse:M,isPopout:P,terminalToken:D,workspaceCollaboration:I,dragHandleProps:O}){let{hasCortex:B}=(0,$.useTier)(),F=(0,n.useRef)(null),L=(0,n.useRef)(null),q=(0,n.useRef)(null),U=(0,n.useRef)(null),W=(0,n.useRef)(""),K=(0,n.useRef)(null),V=()=>{try{U.current?.fit()}catch{}},[_,J]=(0,n.useState)(!1),[G,H]=(0,n.useState)(!1),[Y,X]=(0,n.useState)(t.title),[Q,Z]=(0,n.useState)(!1),[ee,et]=(0,n.useState)({x:0,y:0}),er=(0,n.useRef)(null),en=(0,n.useRef)(null),[ei,ea]=(0,n.useState)(!1),[es,ec]=(0,n.useState)(0),[eo,el]=(0,n.useState)([]),[ed,eu]=(0,n.useState)(!1),[ex,eh]=(0,n.useState)(!1),[em,ef]=(0,n.useState)("idle"),ep=(0,n.useRef)(!1),[eb,eg]=(0,n.useState)(""),ey=(0,n.useRef)(null),[ew,ev]=(0,n.useState)("off"),ej=(0,n.useRef)(null),[eN,ez]=(0,n.useState)(!1),ek=(0,n.useRef)(0),[eS,eC]=(0,n.useState)(!1),eT=(0,n.useRef)(!1),e$=(0,n.useRef)(null),[eR,eE]=(0,n.useState)(35),eA=(0,n.useRef)(35),[eM,eP]=(0,n.useState)(2e3),eD=(0,n.useRef)(2e3),[eI,eO]=(0,n.useState)(!0),eB=(0,n.useRef)(!0),[eF,eL]=(0,n.useState)(!1),[eq,eU]=(0,n.useState)(!1),[eW,eK]=(0,n.useState)(null),[eV,e_]=(0,n.useState)(null);(0,n.useEffect)(()=>{let e=navigator.userAgent||"";eu(/Quest|Oculus|Pacific/i.test(e))},[]),(0,n.useEffect)(()=>{if(!t.customModelId)return;let e=()=>{fetch(`/api/proxy/models/${t.customModelId}/status`).then(e=>e.ok?e.json():null).then(e=>{e?.status&&e_(e.status)}).catch(()=>{})};e();let r=setInterval(e,15e3);return()=>clearInterval(r)},[t.customModelId]),(0,n.useEffect)(()=>{if(!t.diffBaselineSha)return;let e=()=>{fetch(`/api/panes/${t.id}/diff?countOnly=true`).then(e=>e.ok?e.json():null).then(e=>{e?.fileCount!==void 0&&eK(e.fileCount)}).catch(()=>{})};e();let r=setInterval(e,3e4);return()=>clearInterval(r)},[t.id,t.diffBaselineSha]);let eJ=(0,n.useRef)(t);eJ.current=t;let eG=(0,n.useRef)(N);eG.current=N;let eH=(0,n.useRef)(D);eH.current=D;let eY=(0,n.useRef)(()=>{}),eX=(0,n.useRef)(!1),eQ=(0,n.useRef)(!1),eZ=(0,n.useRef)(null),e0=(0,n.useRef)(0),e1=(0,n.useCallback)(async()=>{if(!F.current)return;eJ.current,eQ.current=!1,e0.current=0;let{Terminal:t}=await e.A(116049),{FitAddon:r}=await e.A(359439),{WebLinksAddon:n}=await e.A(816091);L.current&&L.current.dispose();let i=/Quest|Oculus|Pacific/i.test(navigator.userAgent),a=new t({cursorBlink:!i,disableStdin:i,fontSize:13,fontFamily:"'Cascadia Code', 'Fira Code', 'JetBrains Mono', Consolas, monospace",scrollback:1e4,fastScrollModifier:"alt",smoothScrollDuration:0,theme:{background:"#0a0a0a",foreground:"#e4e4e7",cursor:"#6366f1",selectionBackground:"#6366f133",black:"#18181b",red:"#ef4444",green:"#22c55e",yellow:"#eab308",blue:"#3b82f6",magenta:"#a855f7",cyan:"#06b6d4",white:"#e4e4e7",brightBlack:"#52525b",brightRed:"#f87171",brightGreen:"#4ade80",brightYellow:"#facc15",brightBlue:"#60a5fa",brightMagenta:"#c084fc",brightCyan:"#22d3ee",brightWhite:"#fafafa"},allowProposedApi:!0}),s=new r,c=new n;a.loadAddon(s),a.loadAddon(c),await new Promise(e=>requestAnimationFrame(()=>{if(F.current){a.open(F.current);try{s.fit()}catch{}if(i&&F.current){let e=F.current.querySelector("textarea");e&&(e.setAttribute("readonly","true"),e.setAttribute("inputmode","none"),e.style.opacity="0",e.style.pointerEvents="none")}}e()})),a.attachCustomKeyEventHandler(e=>{if("keydown"!==e.type)return!0;if(e.ctrlKey&&"c"===e.key&&a.hasSelection()){let e=a.getSelection();return e&&navigator.clipboard?.writeText&&navigator.clipboard.writeText(e).catch(()=>{let t=document.createElement("textarea");t.value=e,t.style.position="fixed",t.style.opacity="0",document.body.appendChild(t),t.select(),document.execCommand("copy"),document.body.removeChild(t)}),a.clearSelection(),!1}return!e.ctrlKey||"v"!==e.key}),L.current=a,U.current=s,requestAnimationFrame(()=>requestAnimationFrame(V)),setTimeout(V,300);let o=()=>{let e,t,r,n,i;if(eQ.current)return;e0.current>0&&(a.write("\x1b[2J\x1b[H"),a.clear());let s=new WebSocket((t=new URLSearchParams({paneId:(e=eJ.current).id,cwd:e.cwd,agentType:e.agentType||"shell",cols:String(a.cols),rows:String(a.rows)}),e.claudeSessionId&&t.set("agentSession",e.claudeSessionId),e.customCommand&&t.set("customCommand",e.customCommand),e.nodeId&&t.set("nodeId",e.nodeId),e.customModelId&&t.set("customModelId",e.customModelId),(r=eH.current)&&t.set("terminalToken",r),n=R||"/ws",i="https:"===location.protocol?"wss:":"ws:",`${i}//${location.host}${n}?${t}`));q.current=s,s.onopen=()=>{J(!0),ea(!1),eX.current=!1,e0.current=0,setTimeout(V,150)},s.onmessage=e=>{try{let r=JSON.parse(e.data);if("data"===r.type){var t;t=r.data,W.current+=t,null===K.current&&(K.current=requestAnimationFrame(()=>{K.current=null;let e=W.current;W.current="",e&&L.current&&(e=e.replace(/\x1b\[3J/g,""),L.current.write(e))}))}else if("exit"===r.type){ea(!0),eX.current=!0;let e=r.reason?` — ${r.reason}`:"";a.write(`\r
|
|
2
2
|
\x1b[90m[Process exited with code ${r.exitCode}${e}]\x1b[0m\r
|
|
3
|
-
`)}else"error"===r.type?
|
|
3
|
+
`)}else"error"===r.type?a.write(`\r
|
|
4
4
|
\x1b[31m${r.data}\x1b[0m\r
|
|
5
|
-
`):"session-detected"===r.type?
|
|
5
|
+
`):"session-detected"===r.type?eG.current(eJ.current.id,{claudeSessionId:r.sessionId}):"cortex-injection"===r.type?(ec(r.count||0),r.items&&el(r.items)):"collab-updated"===r.type&&eG.current(eJ.current.id,{isCollaborating:r.isCollaborating})}catch{}},s.onclose=()=>{if(J(!1),!eX.current&&!eQ.current){let e=e0.current;if(e<20){let t=Math.min(1e3*Math.pow(1.5,e),3e4);e0.current=e+1,eZ.current=setTimeout(o,t)}}},s.onerror=()=>{J(!1)}};a.onData(e=>{q.current?.readyState===WebSocket.OPEN&&q.current.send(JSON.stringify({type:"data",data:e}))}),a.onResize(({cols:e,rows:t})=>{q.current?.readyState===WebSocket.OPEN&&q.current.send(JSON.stringify({type:"resize",cols:e,rows:t}))}),o()},[]);(0,n.useEffect)(()=>(e1(),()=>{eQ.current=!0,eZ.current&&clearTimeout(eZ.current),q.current?.close(),L.current?.dispose()}),[e1]),(0,n.useEffect)(()=>{let e,t=new ResizeObserver(()=>{cancelAnimationFrame(e),e=requestAnimationFrame(V)});return F.current&&t.observe(F.current),()=>{cancelAnimationFrame(e),t.disconnect()}},[]),(0,n.useEffect)(()=>{setTimeout(V,50)},[z,ed]);let e5=()=>{N(t.id,{title:Y}),H(!1)},e3=e=>{console.log("[Voice]",e);try{localStorage.getItem("spaces-voice-debug")&&L.current&&L.current.write(`\r
|
|
6
|
+
\x1b[93m[Voice] ${e}\x1b[0m\r
|
|
7
|
+
`)}catch{}},e2=e=>{q.current?.readyState===WebSocket.OPEN?q.current.send(JSON.stringify({type:"data",data:e})):e3(`sendKey failed: WebSocket state=${q.current?.readyState}`)},e4=async()=>{if("off"!==ew){ej.current?.state==="recording"&&ej.current.stop();return}ev("listening");try{let e=await fetch("/api/whisper/config"),t=e.ok?await e.json():null,r=await navigator.mediaDevices.getUserMedia({audio:!0}),n=new AudioContext,i=n.createMediaStreamSource(r),a=n.createAnalyser();a.fftSize=512,i.connect(a);let s=MediaRecorder.isTypeSupported("audio/webm;codecs=opus")?"audio/webm;codecs=opus":"audio/webm",c=new MediaRecorder(r,{mimeType:s}),o=[],l=!1;c.ondataavailable=e=>{e.data.size>0&&o.push(e.data)},c.onstop=async()=>{r.getTracks().forEach(e=>e.stop());try{i.disconnect()}catch{}try{n.close()}catch{}if(ej.current=null,!l||0===o.length)return void ev("off");let e=new Blob(o,{type:"audio/webm"});if(e.size<500)return void ev("off");ev("transcribing");try{let r="";if(t?.apiKey){console.log("[Voice] Transcribing via",t.backend||"direct");let n=new FormData;n.append("file",e,"audio.webm"),n.append("model",t.model),n.append("response_format","json"),n.append("language","en");let i=await fetch(t.apiUrl,{method:"POST",headers:{Authorization:`Bearer ${t.apiKey}`},body:n});i.ok?r=(await i.json()).text||"":console.error("[Voice] API error:",i.status,await i.text().catch(()=>""))}else{console.log("[Voice] Transcribing via server proxy, cfg:",t);let n=new FormData;n.append("audio",e,"dictation.webm");let i=await fetch("/api/whisper",{method:"POST",body:n});i.ok?r=(await i.json()).text||"":console.error("[Voice] Server proxy error:",i.status,await i.text().catch(()=>""))}console.log("[Voice] Result:",JSON.stringify(r)),r.trim()&&eg(e=>e?`${e} ${r.trim()}`:r.trim())}catch(e){console.error("[Voice] Exception:",e)}ev("off")};let d=new Uint8Array(a.frequencyBinCount),u=0,x=0,h=Date.now(),m=()=>{ej.current&&"recording"===ej.current.state&&((a.getByteFrequencyData(d),d.reduce((e,t)=>e+t,0)/d.length>20?(x++,u=Date.now(),x>=10&&(l=!0)):l||(x=0),l&&Date.now()-u>1500||!l&&Date.now()-h>1e4)?ej.current.stop():requestAnimationFrame(m))};c.start(250),ej.current=c,requestAnimationFrame(m)}catch(e){L.current&&L.current.write(`\r
|
|
6
8
|
\x1b[91m[Mic] ${e.name||"Error"}: ${e.message||"Failed to access microphone"}\x1b[0m\r
|
|
7
|
-
`),ev("off")}},
|
|
9
|
+
`),ev("off")}},e7=async()=>{if(eT.current){ev("listening");try{if(!e$.current){e3("Fetching whisper config...");let e=await fetch("/api/whisper/config");e.ok?(e$.current=await e.json(),e3(`Config: backend=${e$.current?.backend||"none"} hasKey=${!!e$.current?.apiKey}`)):e3(`Config fetch failed: ${e.status} ${await e.text().catch(()=>"")}`)}if(!eT.current)return;let e=await navigator.mediaDevices.getUserMedia({audio:!0});if(!eT.current)return void e.getTracks().forEach(e=>e.stop());let t=new AudioContext,r=t.createMediaStreamSource(e),n=t.createAnalyser();n.fftSize=512,r.connect(n);let i=MediaRecorder.isTypeSupported("audio/webm;codecs=opus")?"audio/webm;codecs=opus":"audio/webm",a=new MediaRecorder(e,{mimeType:i}),s=[],c=!1;a.ondataavailable=e=>{e.data.size>0&&s.push(e.data)},a.onstop=async()=>{e.getTracks().forEach(e=>e.stop());try{r.disconnect()}catch{}try{t.close()}catch{}if(ej.current=null,!eT.current&&!e6.current)return void ev("off");if(!c||0===s.length){e3(`No speech detected (hasSpeech=${c} chunks=${s.length}) — restarting`),e6.current=!1,eT.current?setTimeout(e7,300):ev("off");return}let n=new Blob(s,{type:"audio/webm"});if(n.size<500){e3(`Blob too small (${n.size}b) — restarting`),setTimeout(e7,300);return}ev("transcribing");let i=e$.current;e3(`Transcribing blob=${n.size}b hasCfg=${!!i} hasKey=${!!i?.apiKey}`);try{let e="";if(i?.apiKey){e3(`Calling ${i.backend}: ${i.apiUrl}`);let t=new FormData;t.append("file",n,"audio.webm"),t.append("model",i.model),t.append("response_format","json"),t.append("language","en");let r=await fetch(i.apiUrl,{method:"POST",headers:{Authorization:`Bearer ${i.apiKey}`},body:t});if(r.ok)e=(await r.json()).text||"",e3(`Transcribed: "${e}"`);else{let e=await r.text().catch(()=>"");e3(`API error: ${r.status} ${e.slice(0,200)}`)}}else{e3("No API key — using server proxy /api/whisper");let t=new FormData;t.append("audio",n,"dictation.webm");let r=await fetch("/api/whisper",{method:"POST",body:t});if(r.ok)e=(await r.json()).text||"",e3(`Transcribed: "${e}"`);else{let e=await r.text().catch(()=>"");e3(`Proxy error: ${r.status} ${e.slice(0,200)}`)}}e3(`Result: "${e}" ws=${q.current?.readyState} immersive=${eT.current} draining=${e6.current}`),e.trim()&&(eT.current||e6.current)&&(eB.current?(e3(`Sending: "${e.trim()}" + Enter`),e2(e.trim()+"\r")):(e3(`Putting in input: "${e.trim()}"`),eg(t=>t?t+" "+e.trim():e.trim())))}catch(e){e3(`Exception: ${e.message||e}`)}e6.current=!1,eT.current?setTimeout(e7,800):ev("off")};let o=new Uint8Array(n.frequencyBinCount),l=0,d=0,u=Date.now(),x=()=>{ej.current&&"recording"===ej.current.state&&(eT.current?(n.getByteFrequencyData(o),o.reduce((e,t)=>e+t,0)/o.length>eA.current?(d++,l=Date.now(),d>=15&&(c=!0)):c||(d=0),c&&Date.now()-l>eD.current||!c&&Date.now()-u>1e4)?ej.current.stop():requestAnimationFrame(x):ej.current.stop())};a.start(250),ej.current=a,requestAnimationFrame(x)}catch(e){L.current&&L.current.write(`\r
|
|
8
10
|
\x1b[91m[Mic] ${e.name||"Error"}: ${e.message||"Failed to access microphone"}\x1b[0m\r
|
|
9
|
-
`),eT.current?setTimeout(
|
|
11
|
+
`),eT.current?setTimeout(e7,2e3):ev("off")}}},e6=(0,n.useRef)(!1),e9=(0,n.useRef)(null),e8=!("u">typeof navigator&&/Quest|Oculus|Pacific/i.test(navigator.userAgent))&&("SpeechRecognition"in window||"webkitSpeechRecognition"in window),te=e=>{if(!ep.current)return;let t=window.SpeechRecognition||window.webkitSpeechRecognition;if(!t)return;let r=new t;r.continuous=!0,r.interimResults=!0,r.lang="en-US";let n=0;r.onresult=t=>{if(!ep.current)return;let r="";for(let e=0;e<t.results.length;e++)t.results[e].isFinal&&(r+=t.results[e][0].transcript);if(r.length>n){let t=r.slice(n);if(console.log("[Voice] recognized:",JSON.stringify(t.trim()),"autoSend:",e,"ws:",q.current?.readyState),e&&eB.current)e2(t.trim()+"\r");else{var i=t.trim();if(q.current?.readyState===WebSocket.OPEN){let e=`\x1b[200~${i}\x1b[201~`;q.current.send(JSON.stringify({type:"data",data:e}))}else e3(`sendPaste failed: WebSocket state=${q.current?.readyState}`)}n=r.length}},r.onerror=t=>{if("not-allowed"===t.error||"service-not-allowed"===t.error){ep.current=!1,eh(!1),ef("idle");return}ep.current&&setTimeout(()=>te(e),500)},r.onend=()=>{ep.current&&"visible"===document.visibilityState?setTimeout(()=>te(e),100):ep.current||ef("idle")},r.onstart=()=>ef("listening"),e9.current=r,r.start()};(0,n.useEffect)(()=>{let e=()=>{"visible"===document.visibilityState&&ep.current&&!e9.current&&te(!0)};return document.addEventListener("visibilitychange",e),()=>{if(document.removeEventListener("visibilitychange",e),ep.current=!1,e9.current)try{e9.current.abort()}catch{}}},[]);let[tt,tr]=(0,n.useState)(null),[tn,ti]=(0,n.useState)(!1),ta=(0,n.useRef)(null);return eY.current=(0,n.useCallback)(async e=>{if(0===e.length)return;let t=eJ.current.cwd||"/",r=new FormData;for(let n of(r.append("dir",t),e))r.append("files",n);let n=e.map(e=>e.name).join(", ");tr(`Uploading ${e.length} file${e.length>1?"s":""}...`),ta.current&&clearTimeout(ta.current);try{let e=await fetch("/api/files",{method:"POST",body:r});if(e.ok){let r=await e.json();tr(`Uploaded ${r.files?.join(", ")||n} to ${t}`);let i=L.current;i&&i.write(`\r
|
|
10
12
|
\x1b[90m[Uploaded ${r.files?.join(", ")||n} → ${t}]\x1b[0m\r
|
|
11
|
-
`)}else tt("Upload failed")}catch{tt("Upload failed")}ti.current=setTimeout(()=>tt(null),4e3)},[]),(0,n.useEffect)(()=>{let e=F.current;if(!e)return;let t=t=>{if(!e.contains(t.target))return;let r=t.clipboardData?.items;if(!r)return;let n=[];for(let e=0;e<r.length;e++){let t=r[e];if("file"===t.kind){let e=t.getAsFile();e&&n.push(e)}}n.length>0&&(t.preventDefault(),t.stopPropagation(),eY.current(n))};document.addEventListener("paste",t,!0);let r=e=>{e.preventDefault(),e.stopPropagation(),tn(!0)},n=t=>{t.preventDefault(),e&&!e.contains(t.relatedTarget)&&tn(!1)},i=e=>{e.preventDefault(),e.stopPropagation(),tn(!1);let t=[];if(e.dataTransfer?.files)for(let r=0;r<e.dataTransfer.files.length;r++)t.push(e.dataTransfer.files[r]);t.length>0&&eY.current(t)};return e.addEventListener("dragover",r),e.addEventListener("dragleave",n),e.addEventListener("drop",i),()=>{document.removeEventListener("paste",t,!0),e.removeEventListener("dragover",r),e.removeEventListener("dragleave",n),e.removeEventListener("drop",i)}},[]),(0,n.useEffect)(()=>{if(!Q)return;let e=e=>{let t=e.target;er.current&&!er.current.contains(t)&&en.current&&!en.current.contains(t)&&Z(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[Q]),(0,r.jsxs)("div",{className:(0,C.cn)("flex flex-col border rounded-lg overflow-hidden",z?"h-full !rounded-none":"h-full","border-zinc-700"),style:{borderColor:`${t.color}60`},children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 px-3 py-1.5 text-xs select-none flex-shrink-0",style:{backgroundColor:`${t.color}30`,borderBottom:`1px solid ${t.color}40`},children:[O&&!D&&(0,r.jsx)("div",{...O,className:"flex-shrink-0 cursor-grab active:cursor-grabbing text-zinc-500 hover:text-zinc-300 -ml-1",children:(0,r.jsx)(w,{className:"w-3.5 h-3.5"})}),(0,r.jsxs)("div",{ref:er,className:"flex-shrink-0",children:[(0,r.jsx)("button",{onClick:e=>{let t=e.currentTarget.getBoundingClientRect();et({x:t.left,y:t.bottom+6}),Z(!Q)},className:"w-3 h-3 rounded-full hover:ring-2 hover:ring-zinc-500 ring-offset-1 ring-offset-zinc-900 transition-shadow cursor-pointer",style:{backgroundColor:t.color},title:"Change color"}),Q&&(0,i.createPortal)((0,r.jsx)("div",{ref:en,className:"fixed z-[9999] bg-zinc-800 border border-zinc-600 rounded-xl p-3 shadow-2xl",style:{left:ee.x,top:ee.y},children:(0,r.jsx)("div",{className:"grid grid-cols-4 gap-2.5",style:{width:132},children:["#ef4444","#f97316","#f59e0b","#eab308","#84cc16","#22c55e","#14b8a6","#06b6d4","#3b82f6","#6366f1","#8b5cf6","#a855f7","#d946ef","#ec4899","#f43f5e","#78716c"].map(e=>(0,r.jsx)("button",{onClick:()=>{N(t.id,{color:e}),Z(!1)},className:`w-7 h-7 rounded-full border-2 transition-all hover:scale-110 ${t.color===e?"border-white scale-110 shadow-lg":"border-transparent hover:border-zinc-500"}`,style:{backgroundColor:e}},e))})}),document.body)]}),J?(0,r.jsxs)("div",{className:"flex items-center gap-1 flex-1",children:[(0,r.jsx)("input",{autoFocus:!0,value:Y,onChange:e=>X(e.target.value),onKeyDown:e=>{"Enter"===e.key&&e5(),"Escape"===e.key&&(X(t.title),V(!1))},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,r.jsx)("button",{onClick:e5,className:"text-green-400 hover:text-green-300",children:(0,r.jsx)(c.Check,{className:"w-3 h-3"})})]}):(0,r.jsxs)("div",{className:"flex items-center gap-1 flex-1 min-w-0 group/title",children:[(0,r.jsx)("span",{onDoubleClick:()=>V(!0),className:"truncate text-zinc-300 font-medium cursor-default",children:t.title}),(0,r.jsx)("button",{onClick:()=>V(!0),className:"text-zinc-600 hover:text-zinc-300 opacity-0 group-hover/title:opacity-100 transition-opacity flex-shrink-0",title:"Rename",children:(0,r.jsx)(a.Pencil,{className:"w-2.5 h-2.5"})})]}),(0,r.jsx)("button",{onClick:()=>$?.(t.cwd),className:"text-[10px] text-zinc-500 truncate max-w-[120px] hover:text-amber-400 transition-colors",title:`Browse ${t.cwd}`,children:t.cwd.split(/[/\\]/).pop()}),t.agentType&&"shell"!==t.agentType&&(0,r.jsxs)("span",{className:"text-[9px] px-1.5 py-0.5 rounded font-medium flex items-center gap-1",style:{backgroundColor:`${T.AGENT_TYPES[t.agentType]?.color||"#6366f1"}20`,color:T.AGENT_TYPES[t.agentType]?.color||"#6366f1"},children:[T.AGENT_TYPES[t.agentType]?.name||t.agentType,t.customModelId&&(0,r.jsx)("span",{className:"flex items-center gap-1 border-l border-current pl-1 ml-0.5",children:(0,r.jsx)("span",{className:(0,C.cn)("w-1.5 h-1.5 rounded-full","RUNNING"===eK?"bg-green-500":"PROVISIONING"===eK||"STAGING"===eK?"bg-yellow-500 animate-pulse":"bg-red-500"),title:eK||"UNKNOWN"})})]}),t.nodeId&&(0,r.jsxs)("span",{className:"text-[9px] px-1.5 py-0.5 rounded font-medium bg-blue-500/10 text-blue-400 flex items-center gap-0.5",children:[(0,r.jsx)(h.Globe,{className:"w-2.5 h-2.5"}),"remote"]}),I&&"shell"!==t.agentType&&(0,r.jsx)("button",{onClick:async()=>{let e=!t.isCollaborating;await N(t.id,{isCollaborating:e}),q.current?.readyState===WebSocket.OPEN&&q.current.send(JSON.stringify({type:"collab-toggle",isCollaborating:e}))},className:`transition-colors ${t.isCollaborating?"text-indigo-400 hover:text-indigo-300":"text-zinc-600 hover:text-zinc-400"}`,title:t.isCollaborating?"Collaborating — click to opt out":"Not collaborating — click to opt in",children:(0,r.jsx)(m.Users,{className:"w-3 h-3"})}),!G&&!ei&&(0,r.jsx)("span",{className:"text-[10px] text-yellow-500",children:"connecting..."}),ei&&(0,r.jsx)("button",{onClick:()=>{eQ.current=!0,eZ.current&&clearTimeout(eZ.current),q.current?.close(),L.current?.dispose(),es(!1),eX.current=!1,setTimeout(e1,100)},className:"text-zinc-400 hover:text-white",title:"Restart",children:(0,r.jsx)(o.RotateCcw,{className:"w-3 h-3"})}),!D&&M&&(0,r.jsx)("button",{onClick:()=>{M&&(eQ.current=!0,eZ.current&&clearTimeout(eZ.current),q.current?.close(),L.current?.dispose(),M(t.id))},className:"text-zinc-300 hover:text-white",title:"Pop out to new window",children:(0,r.jsx)(x,{className:"w-3 h-3"})}),t.diffBaselineSha&&(0,r.jsxs)("button",{onClick:()=>eU(!eq),className:(0,C.cn)("relative text-zinc-300 hover:text-white",eq&&"text-indigo-400"),title:eq?"Hide diff":"Review changes",children:[(0,r.jsx)(j,{className:"w-3 h-3"}),null!=eW&&eW>0&&!eq&&(0,r.jsx)("span",{className:"absolute -top-1.5 -right-1.5 text-[8px] bg-indigo-500 text-white rounded-full w-3.5 h-3.5 flex items-center justify-center font-bold",children:eW>9?"9+":eW})]}),A&&!D&&(0,r.jsx)("button",{onClick:()=>A(t.id),className:"text-zinc-300 hover:text-yellow-400",title:"Minimize",children:(0,r.jsx)(y,{className:"w-3 h-3"})}),(0,r.jsx)("button",{onClick:()=>k(t.id),className:"text-zinc-300 hover:text-white",title:z?"Restore":"Maximize",children:z?(0,r.jsx)(u,{className:"w-3 h-3"}):(0,r.jsx)(l.Maximize2,{className:"w-3 h-3"})}),(0,r.jsx)("button",{onClick:()=>{confirm("Close this terminal?")&&d(t.id)},className:"text-zinc-300 hover:text-red-400",title:"Close",children:(0,r.jsx)(s.X,{className:"w-3 h-3"})})]}),(0,r.jsxs)("div",{ref:F,className:"flex-1 relative bg-[#0a0a0a]",style:{minHeight:0,flex:1},onClick:ed?e=>{e.preventDefault()}:void 0,onWheel:ed?e=>{e.preventDefault();let t=Date.now();Math.abs(e.deltaY)>10&&t-ek.current>200&&(ek.current=t,e3(e.deltaY<0?"\x1b[A":"\x1b[B"))}:void 0,children:[tr&&(0,r.jsx)("div",{className:"absolute inset-0 z-10 bg-indigo-500/10 border-2 border-dashed border-indigo-400 flex items-center justify-center pointer-events-none",children:(0,r.jsxs)("div",{className:"flex items-center gap-2 bg-zinc-900/90 px-4 py-2 rounded-lg text-sm text-indigo-300",children:[(0,r.jsx)(b.Upload,{className:"w-4 h-4"}),"Drop files to upload to ",t.cwd.split(/[/\\]/).pop()||t.cwd]})}),te&&(0,r.jsx)("div",{className:"absolute bottom-2 left-1/2 -translate-x-1/2 z-10 bg-zinc-800/95 border border-zinc-600 px-3 py-1.5 rounded-lg text-xs text-zinc-300 shadow-lg",children:te})]}),eq&&(0,r.jsx)(S,{paneId:t.id,onClose:()=>eU(!1)}),ed&&(0,r.jsxs)("div",{className:"flex flex-col gap-1 px-2 py-1.5 flex-shrink-0 border-t border-zinc-700",style:{backgroundColor:`${t.color}15`,borderTopColor:`${t.color}30`},children:[(0,r.jsxs)("div",{className:"flex items-center gap-1",children:[(0,r.jsx)("input",{ref:ey,type:"text",value:eb,readOnly:!eN,onChange:e=>eg(e.target.value),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),e3(eb?eb+"\r":"\r"),eg(""),ez(!1),ey.current?.blur())},onBlur:()=>ez(!1),placeholder:eS&&"listening"===ew?"Speak now...":eS&&"transcribing"===ew?"Sending...":eS?"Immersive mode active":"listening"===ew?"Listening...":"transcribing"===ew?"Transcribing...":eN?"Type here...":"Tap mic, keyboard, or type",className:(0,C.cn)("flex-1 text-zinc-200 text-sm px-3 py-2 rounded border focus:outline-none font-mono",eN?"bg-zinc-900 border-zinc-400 placeholder:text-zinc-500":"bg-zinc-900/50 border-zinc-700 placeholder:text-zinc-600"),autoComplete:"off",autoCorrect:"on",spellCheck:!1}),!eS&&(0,r.jsx)("button",{onClick:e2,className:(0,C.cn)("p-2 rounded border transition-all","off"===ew||eS?"bg-zinc-800 border-zinc-700 text-zinc-400 hover:text-white":"bg-red-500 border-red-400 text-white animate-pulse"),title:"Voice → input (review before send)",children:"off"===ew||eS?(0,r.jsx)(f.Mic,{className:"w-4 h-4"}):(0,r.jsx)(p.MicOff,{className:"w-4 h-4"})}),(0,r.jsx)("button",{onClick:()=>{if(eT.current){if(eT.current=!1,eC(!1),ej.current?.state==="recording"){e7.current=!0,ev("transcribing");try{ej.current.stop()}catch{}}else ev("off");eR.current=null}else eT.current=!0,eC(!0),e4()},className:(0,C.cn)("p-2 rounded-full border transition-all",eS?"bg-green-600 border-green-400 text-white shadow-[0_0_12px_rgba(34,197,94,0.5)] animate-pulse":"bg-zinc-800 border-zinc-700 text-zinc-500 hover:text-green-400 hover:border-green-600"),title:eS?"Exit immersive voice":"Immersive voice (auto-send)",children:(0,r.jsx)(g.AudioLines,{className:"w-4 h-4"})}),eS&&(0,r.jsxs)("div",{className:"relative",children:[(0,r.jsx)("button",{onClick:()=>eL(!eF),className:(0,C.cn)("p-1.5 rounded border transition-all",eF?"bg-zinc-700 border-zinc-600 text-zinc-200":"bg-zinc-800 border-zinc-700 text-zinc-500 hover:text-zinc-300"),title:"Voice settings",children:(0,r.jsx)(v.Settings,{className:"w-3.5 h-3.5"})}),eF&&(0,r.jsxs)("div",{className:"absolute bottom-full right-0 mb-2 p-3 bg-zinc-800 border border-zinc-600 rounded-lg shadow-xl z-50 min-w-[180px]",children:[(0,r.jsx)("div",{className:"text-[10px] text-zinc-400 font-medium mb-2",children:"Voice Settings"}),(0,r.jsxs)("div",{className:"space-y-3",children:[(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{className:"flex justify-between text-[9px] text-zinc-500 mb-1",children:[(0,r.jsx)("span",{children:"Sensitivity"}),(0,r.jsx)("span",{className:"font-mono",children:eE})]}),(0,r.jsx)("input",{type:"range",min:10,max:120,value:eE,onChange:e=>{let t=Number(e.target.value);eA(t),eM.current=t},className:"w-full h-1.5 accent-green-500"}),(0,r.jsxs)("div",{className:"flex justify-between text-[8px] text-zinc-600",children:[(0,r.jsx)("span",{children:"Quiet"}),(0,r.jsx)("span",{children:"Loud"})]})]}),(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{className:"flex justify-between text-[9px] text-zinc-500 mb-1",children:[(0,r.jsx)("span",{children:"Pause before send"}),(0,r.jsxs)("span",{className:"font-mono",children:[(e$/1e3).toFixed(1),"s"]})]}),(0,r.jsx)("input",{type:"range",min:1e3,max:5e3,step:250,value:e$,onChange:e=>{let t=Number(e.target.value);eD(t),eP.current=t},className:"w-full h-1.5 accent-green-500"}),(0,r.jsxs)("div",{className:"flex justify-between text-[8px] text-zinc-600",children:[(0,r.jsx)("span",{children:"Fast"}),(0,r.jsx)("span",{children:"Patient"})]})]}),(0,r.jsxs)("label",{className:"flex items-center justify-between cursor-pointer",children:[(0,r.jsx)("span",{className:"text-[9px] text-zinc-500",children:"Auto-send"}),(0,r.jsx)("div",{onClick:()=>{let e=!eI;eO(e),eB.current=e},className:(0,C.cn)("w-7 h-4 rounded-full relative transition-colors cursor-pointer",eI?"bg-green-600":"bg-zinc-600"),children:(0,r.jsx)("div",{className:(0,C.cn)("absolute top-0.5 w-3 h-3 rounded-full bg-white transition-transform",eI?"translate-x-3.5":"translate-x-0.5")})})]})]})]})]}),(0,r.jsx)("button",{onClick:()=>{e3(eb?eb+"\r":"\r"),eg("")},className:"px-3 py-2 text-[11px] font-mono bg-indigo-600 hover:bg-indigo-500 text-white rounded border border-indigo-500 font-medium",children:"Send"})]}),(0,r.jsxs)("div",{className:"flex items-center gap-1",children:[(0,r.jsx)("button",{onClick:()=>{ez(!0),setTimeout(()=>ey.current?.focus(),50)},className:(0,C.cn)("px-2 py-1 text-[10px] font-mono rounded border",eN?"bg-indigo-600 border-indigo-500 text-white":"bg-zinc-800 hover:bg-zinc-700 text-zinc-400 border-zinc-700"),children:"⌨"}),(0,r.jsx)("button",{onClick:()=>e3("\x1b"),className:"px-2 py-1 text-[10px] font-mono bg-zinc-800 hover:bg-zinc-700 text-zinc-400 rounded border border-zinc-700",children:"Esc"}),(0,r.jsx)("button",{onClick:()=>e3(" "),className:"px-2 py-1 text-[10px] font-mono bg-zinc-800 hover:bg-zinc-700 text-zinc-400 rounded border border-zinc-700",children:"Tab"}),(0,r.jsx)("button",{onClick:()=>e3("\x03"),className:"px-2 py-1 text-[10px] font-mono bg-zinc-800 hover:bg-zinc-700 text-zinc-400 rounded border border-zinc-700",children:"Ctrl+C"}),(0,r.jsx)("button",{onClick:()=>e3("\x1b[A"),className:"px-2 py-1 text-[10px] font-mono bg-zinc-800 hover:bg-zinc-700 text-zinc-400 rounded border border-zinc-700",children:"↑"}),(0,r.jsx)("button",{onClick:()=>e3("\x1b[B"),className:"px-2 py-1 text-[10px] font-mono bg-zinc-800 hover:bg-zinc-700 text-zinc-400 rounded border border-zinc-700",children:"↓"}),(0,r.jsx)("div",{className:"flex-1"}),(0,r.jsx)("button",{onClick:()=>eg(""),className:"px-2 py-1 text-[10px] font-mono bg-zinc-800 hover:bg-zinc-700 text-zinc-400 rounded border border-zinc-700",children:"Clear"})]})]}),!ed&&e9&&(0,r.jsxs)("div",{className:"flex items-center justify-end gap-1.5 px-2 py-1 flex-shrink-0 border-t border-zinc-700/50",style:{backgroundColor:`${t.color}08`},children:[ex&&(0,r.jsx)("span",{className:"text-[10px] text-green-400 animate-pulse mr-1",children:"listening"===em?"Listening...":"Voice active"}),(0,r.jsx)("button",{onClick:()=>{if(ep.current){if(ep.current=!1,eh(!1),ef("idle"),e6.current){try{e6.current.abort()}catch{}e6.current=null}}else e9&&(ep.current=!0,eh(!0),e8(!1),setTimeout(()=>L.current?.focus(),100))},className:(0,C.cn)("p-1 rounded border transition-all",ex&&!eS?"bg-green-900/50 border-green-500 text-green-400 hover:bg-red-900/50 hover:border-red-600 hover:text-red-400 shadow-[0_0_8px_rgba(34,197,94,0.3)]":"bg-zinc-800/50 border-zinc-700 text-zinc-500 hover:text-zinc-300 hover:bg-zinc-700"),title:"Dictation (text appears, you press Enter)",children:(0,r.jsx)(f.Mic,{className:"w-3.5 h-3.5"})}),(0,r.jsx)("button",{onClick:()=>{if(ep.current){if(ep.current=!1,eh(!1),ef("idle"),e6.current){try{e6.current.abort()}catch{}e6.current=null}}else e9&&(ep.current=!0,eh(!0),e8(!0),setTimeout(()=>L.current?.focus(),100))},className:(0,C.cn)("p-1 rounded-full border transition-all",ex&&!eS?"bg-green-600 border-green-400 text-white shadow-[0_0_10px_rgba(34,197,94,0.5)] animate-pulse":eS?"bg-zinc-800/50 border-zinc-700 text-zinc-600":"bg-zinc-800/50 border-zinc-700 text-zinc-500 hover:text-green-400 hover:border-green-600"),title:"Immersive voice (auto-send on silence)",children:(0,r.jsx)(g.AudioLines,{className:"w-3.5 h-3.5"})})]})]})}e.s(["TerminalPane",()=>A],424134)}]);
|
|
13
|
+
`)}else tr("Upload failed")}catch{tr("Upload failed")}ta.current=setTimeout(()=>tr(null),4e3)},[]),(0,n.useEffect)(()=>{let e=F.current;if(!e)return;let t=t=>{if(!e.contains(t.target))return;let r=t.clipboardData?.items;if(!r)return;let n=[];for(let e=0;e<r.length;e++){let t=r[e];if("file"===t.kind){let e=t.getAsFile();e&&n.push(e)}}n.length>0&&(t.preventDefault(),t.stopPropagation(),eY.current(n))};document.addEventListener("paste",t,!0);let r=e=>{e.preventDefault(),e.stopPropagation(),ti(!0)},n=t=>{t.preventDefault(),e&&!e.contains(t.relatedTarget)&&ti(!1)},i=e=>{e.preventDefault(),e.stopPropagation(),ti(!1);let t=[];if(e.dataTransfer?.files)for(let r=0;r<e.dataTransfer.files.length;r++)t.push(e.dataTransfer.files[r]);t.length>0&&eY.current(t)};return e.addEventListener("dragover",r),e.addEventListener("dragleave",n),e.addEventListener("drop",i),()=>{document.removeEventListener("paste",t,!0),e.removeEventListener("dragover",r),e.removeEventListener("dragleave",n),e.removeEventListener("drop",i)}},[]),(0,n.useEffect)(()=>{if(!Q)return;let e=e=>{let t=e.target;er.current&&!er.current.contains(t)&&en.current&&!en.current.contains(t)&&Z(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[Q]),(0,r.jsxs)("div",{className:(0,C.cn)("flex flex-col border rounded-lg overflow-hidden",z?"h-full !rounded-none":"h-full","border-zinc-700"),style:{borderColor:`${t.color}60`},children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 px-3 py-1.5 text-xs select-none flex-shrink-0",style:{backgroundColor:`${t.color}30`,borderBottom:`1px solid ${t.color}40`},children:[O&&!P&&(0,r.jsx)("div",{...O,className:"flex-shrink-0 cursor-grab active:cursor-grabbing text-zinc-500 hover:text-zinc-300 -ml-1",children:(0,r.jsx)(w,{className:"w-3.5 h-3.5"})}),(0,r.jsxs)("div",{ref:er,className:"flex-shrink-0",children:[(0,r.jsx)("button",{onClick:e=>{let t=e.currentTarget.getBoundingClientRect();et({x:t.left,y:t.bottom+6}),Z(!Q)},className:"w-3 h-3 rounded-full hover:ring-2 hover:ring-zinc-500 ring-offset-1 ring-offset-zinc-900 transition-shadow cursor-pointer",style:{backgroundColor:t.color},title:"Change color"}),Q&&(0,i.createPortal)((0,r.jsx)("div",{ref:en,className:"fixed z-[9999] bg-zinc-800 border border-zinc-600 rounded-xl p-3 shadow-2xl",style:{left:ee.x,top:ee.y},children:(0,r.jsx)("div",{className:"grid grid-cols-4 gap-2.5",style:{width:132},children:["#ef4444","#f97316","#f59e0b","#eab308","#84cc16","#22c55e","#14b8a6","#06b6d4","#3b82f6","#6366f1","#8b5cf6","#a855f7","#d946ef","#ec4899","#f43f5e","#78716c"].map(e=>(0,r.jsx)("button",{onClick:()=>{N(t.id,{color:e}),Z(!1)},className:`w-7 h-7 rounded-full border-2 transition-all hover:scale-110 ${t.color===e?"border-white scale-110 shadow-lg":"border-transparent hover:border-zinc-500"}`,style:{backgroundColor:e}},e))})}),document.body)]}),G?(0,r.jsxs)("div",{className:"flex items-center gap-1 flex-1",children:[(0,r.jsx)("input",{autoFocus:!0,value:Y,onChange:e=>X(e.target.value),onKeyDown:e=>{"Enter"===e.key&&e5(),"Escape"===e.key&&(X(t.title),H(!1))},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,r.jsx)("button",{onClick:e5,className:"text-green-400 hover:text-green-300",children:(0,r.jsx)(c.Check,{className:"w-3 h-3"})})]}):(0,r.jsxs)("div",{className:"flex items-center gap-1 flex-1 min-w-0 group/title",children:[(0,r.jsx)("span",{onDoubleClick:()=>H(!0),className:"truncate text-zinc-300 font-medium cursor-default",children:t.title}),(0,r.jsx)("button",{onClick:()=>H(!0),className:"text-zinc-600 hover:text-zinc-300 opacity-0 group-hover/title:opacity-100 transition-opacity flex-shrink-0",title:"Rename",children:(0,r.jsx)(s.Pencil,{className:"w-2.5 h-2.5"})})]}),(0,r.jsx)("button",{onClick:()=>M?.(t.cwd),className:"text-[10px] text-zinc-500 truncate max-w-[120px] hover:text-amber-400 transition-colors",title:`Browse ${t.cwd}`,children:t.cwd.split(/[/\\]/).pop()}),t.agentType&&"shell"!==t.agentType&&(0,r.jsxs)("span",{className:"text-[9px] px-1.5 py-0.5 rounded font-medium flex items-center gap-1",style:{backgroundColor:`${T.AGENT_TYPES[t.agentType]?.color||"#6366f1"}20`,color:T.AGENT_TYPES[t.agentType]?.color||"#6366f1"},children:[T.AGENT_TYPES[t.agentType]?.name||t.agentType,t.customModelId&&(0,r.jsx)("span",{className:"flex items-center gap-1 border-l border-current pl-1 ml-0.5",children:(0,r.jsx)("span",{className:(0,C.cn)("w-1.5 h-1.5 rounded-full","RUNNING"===eV?"bg-green-500":"PROVISIONING"===eV||"STAGING"===eV?"bg-yellow-500 animate-pulse":"bg-red-500"),title:eV||"UNKNOWN"})})]}),t.nodeId&&(0,r.jsxs)("span",{className:"text-[9px] px-1.5 py-0.5 rounded font-medium bg-blue-500/10 text-blue-400 flex items-center gap-0.5",children:[(0,r.jsx)(h.Globe,{className:"w-2.5 h-2.5"}),"remote"]}),I&&"shell"!==t.agentType&&(0,r.jsx)("button",{onClick:async()=>{let e=!t.isCollaborating;await N(t.id,{isCollaborating:e}),q.current?.readyState===WebSocket.OPEN&&q.current.send(JSON.stringify({type:"collab-toggle",isCollaborating:e}))},className:`transition-colors ${t.isCollaborating?"text-indigo-400 hover:text-indigo-300":"text-zinc-600 hover:text-zinc-400"}`,title:t.isCollaborating?"Collaborating — click to opt out":"Not collaborating — click to opt in",children:(0,r.jsx)(m.Users,{className:"w-3 h-3"})}),!_&&!ei&&(0,r.jsx)("span",{className:"text-[10px] text-yellow-500",children:"connecting..."}),ei&&(0,r.jsx)("button",{onClick:()=>{eQ.current=!0,eZ.current&&clearTimeout(eZ.current),q.current?.close(),L.current?.dispose(),ea(!1),eX.current=!1,setTimeout(e1,100)},className:"text-zinc-400 hover:text-white",title:"Restart",children:(0,r.jsx)(o.RotateCcw,{className:"w-3 h-3"})}),!P&&A&&(0,r.jsx)("button",{onClick:()=>{A&&(eQ.current=!0,eZ.current&&clearTimeout(eZ.current),q.current?.close(),L.current?.dispose(),A(t.id))},className:"text-zinc-300 hover:text-white",title:"Pop out to new window",children:(0,r.jsx)(x,{className:"w-3 h-3"})}),t.diffBaselineSha&&(0,r.jsxs)("button",{onClick:()=>eU(!eq),className:(0,C.cn)("relative text-zinc-300 hover:text-white",eq&&"text-indigo-400"),title:eq?"Hide diff":"Review changes",children:[(0,r.jsx)(j,{className:"w-3 h-3"}),null!=eW&&eW>0&&!eq&&(0,r.jsx)("span",{className:"absolute -top-1.5 -right-1.5 text-[8px] bg-indigo-500 text-white rounded-full w-3.5 h-3.5 flex items-center justify-center font-bold",children:eW>9?"9+":eW})]}),E&&!P&&(0,r.jsx)("button",{onClick:()=>E(t.id),className:"text-zinc-300 hover:text-yellow-400",title:"Minimize",children:(0,r.jsx)(y,{className:"w-3 h-3"})}),(0,r.jsx)("button",{onClick:()=>k(t.id),className:"text-zinc-300 hover:text-white",title:z?"Restore":"Maximize",children:z?(0,r.jsx)(u,{className:"w-3 h-3"}):(0,r.jsx)(l.Maximize2,{className:"w-3 h-3"})}),(0,r.jsx)("button",{onClick:()=>{confirm("Close this terminal?")&&d(t.id)},className:"text-zinc-300 hover:text-red-400",title:"Close",children:(0,r.jsx)(a.X,{className:"w-3 h-3"})})]}),(0,r.jsxs)("div",{ref:F,className:"flex-1 relative bg-[#0a0a0a]",style:{minHeight:0,flex:1},onClick:ed?e=>{e.preventDefault()}:void 0,onWheel:ed?e=>{e.preventDefault();let t=Date.now();Math.abs(e.deltaY)>10&&t-ek.current>200&&(ek.current=t,e2(e.deltaY<0?"\x1b[A":"\x1b[B"))}:void 0,children:[tn&&(0,r.jsx)("div",{className:"absolute inset-0 z-10 bg-indigo-500/10 border-2 border-dashed border-indigo-400 flex items-center justify-center pointer-events-none",children:(0,r.jsxs)("div",{className:"flex items-center gap-2 bg-zinc-900/90 px-4 py-2 rounded-lg text-sm text-indigo-300",children:[(0,r.jsx)(b.Upload,{className:"w-4 h-4"}),"Drop files to upload to ",t.cwd.split(/[/\\]/).pop()||t.cwd]})}),tt&&(0,r.jsx)("div",{className:"absolute bottom-2 left-1/2 -translate-x-1/2 z-10 bg-zinc-800/95 border border-zinc-600 px-3 py-1.5 rounded-lg text-xs text-zinc-300 shadow-lg",children:tt})]}),eq&&(0,r.jsx)(S,{paneId:t.id,onClose:()=>eU(!1)}),ed&&(0,r.jsxs)("div",{className:"flex flex-col gap-1 px-2 py-1.5 flex-shrink-0 border-t border-zinc-700",style:{backgroundColor:`${t.color}15`,borderTopColor:`${t.color}30`},children:[(0,r.jsxs)("div",{className:"flex items-center gap-1",children:[(0,r.jsx)("input",{ref:ey,type:"text",value:eb,readOnly:!eN,onChange:e=>eg(e.target.value),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),e2(eb?eb+"\r":"\r"),eg(""),ez(!1),ey.current?.blur())},onBlur:()=>ez(!1),placeholder:eS&&"listening"===ew?"Speak now...":eS&&"transcribing"===ew?"Sending...":eS?"Immersive mode active":"listening"===ew?"Listening...":"transcribing"===ew?"Transcribing...":eN?"Type here...":"Tap mic, keyboard, or type",className:(0,C.cn)("flex-1 text-zinc-200 text-sm px-3 py-2 rounded border focus:outline-none font-mono",eN?"bg-zinc-900 border-zinc-400 placeholder:text-zinc-500":"bg-zinc-900/50 border-zinc-700 placeholder:text-zinc-600"),autoComplete:"off",autoCorrect:"on",spellCheck:!1}),!eS&&(0,r.jsx)("button",{onClick:e4,className:(0,C.cn)("p-2 rounded border transition-all","off"===ew||eS?"bg-zinc-800 border-zinc-700 text-zinc-400 hover:text-white":"bg-red-500 border-red-400 text-white animate-pulse"),title:"Voice → input (review before send)",children:"off"===ew||eS?(0,r.jsx)(f.Mic,{className:"w-4 h-4"}):(0,r.jsx)(p.MicOff,{className:"w-4 h-4"})}),(0,r.jsx)("button",{onClick:()=>{if(eT.current){if(eT.current=!1,eC(!1),ej.current?.state==="recording"){e6.current=!0,ev("transcribing");try{ej.current.stop()}catch{}}else ev("off");e$.current=null}else eT.current=!0,eC(!0),e7()},className:(0,C.cn)("p-2 rounded-full border transition-all",eS?"bg-green-600 border-green-400 text-white shadow-[0_0_12px_rgba(34,197,94,0.5)] animate-pulse":"bg-zinc-800 border-zinc-700 text-zinc-500 hover:text-green-400 hover:border-green-600"),title:eS?"Exit immersive voice":"Immersive voice (auto-send)",children:(0,r.jsx)(g.AudioLines,{className:"w-4 h-4"})}),eS&&(0,r.jsxs)("div",{className:"relative",children:[(0,r.jsx)("button",{onClick:()=>eL(!eF),className:(0,C.cn)("p-1.5 rounded border transition-all",eF?"bg-zinc-700 border-zinc-600 text-zinc-200":"bg-zinc-800 border-zinc-700 text-zinc-500 hover:text-zinc-300"),title:"Voice settings",children:(0,r.jsx)(v.Settings,{className:"w-3.5 h-3.5"})}),eF&&(0,r.jsxs)("div",{className:"absolute bottom-full right-0 mb-2 p-3 bg-zinc-800 border border-zinc-600 rounded-lg shadow-xl z-50 min-w-[180px]",children:[(0,r.jsx)("div",{className:"text-[10px] text-zinc-400 font-medium mb-2",children:"Voice Settings"}),(0,r.jsxs)("div",{className:"space-y-3",children:[(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{className:"flex justify-between text-[9px] text-zinc-500 mb-1",children:[(0,r.jsx)("span",{children:"Sensitivity"}),(0,r.jsx)("span",{className:"font-mono",children:eR})]}),(0,r.jsx)("input",{type:"range",min:10,max:120,value:eR,onChange:e=>{let t=Number(e.target.value);eE(t),eA.current=t},className:"w-full h-1.5 accent-green-500"}),(0,r.jsxs)("div",{className:"flex justify-between text-[8px] text-zinc-600",children:[(0,r.jsx)("span",{children:"Quiet"}),(0,r.jsx)("span",{children:"Loud"})]})]}),(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{className:"flex justify-between text-[9px] text-zinc-500 mb-1",children:[(0,r.jsx)("span",{children:"Pause before send"}),(0,r.jsxs)("span",{className:"font-mono",children:[(eM/1e3).toFixed(1),"s"]})]}),(0,r.jsx)("input",{type:"range",min:1e3,max:5e3,step:250,value:eM,onChange:e=>{let t=Number(e.target.value);eP(t),eD.current=t},className:"w-full h-1.5 accent-green-500"}),(0,r.jsxs)("div",{className:"flex justify-between text-[8px] text-zinc-600",children:[(0,r.jsx)("span",{children:"Fast"}),(0,r.jsx)("span",{children:"Patient"})]})]}),(0,r.jsxs)("label",{className:"flex items-center justify-between cursor-pointer",children:[(0,r.jsx)("span",{className:"text-[9px] text-zinc-500",children:"Auto-send"}),(0,r.jsx)("div",{onClick:()=>{let e=!eI;eO(e),eB.current=e},className:(0,C.cn)("w-7 h-4 rounded-full relative transition-colors cursor-pointer",eI?"bg-green-600":"bg-zinc-600"),children:(0,r.jsx)("div",{className:(0,C.cn)("absolute top-0.5 w-3 h-3 rounded-full bg-white transition-transform",eI?"translate-x-3.5":"translate-x-0.5")})})]})]})]})]}),(0,r.jsx)("button",{onClick:()=>{e2(eb?eb+"\r":"\r"),eg("")},className:"px-3 py-2 text-[11px] font-mono bg-indigo-600 hover:bg-indigo-500 text-white rounded border border-indigo-500 font-medium",children:"Send"})]}),(0,r.jsxs)("div",{className:"flex items-center gap-1",children:[(0,r.jsx)("button",{onClick:()=>{ez(!0),setTimeout(()=>ey.current?.focus(),50)},className:(0,C.cn)("px-2 py-1 text-[10px] font-mono rounded border",eN?"bg-indigo-600 border-indigo-500 text-white":"bg-zinc-800 hover:bg-zinc-700 text-zinc-400 border-zinc-700"),children:"⌨"}),(0,r.jsx)("button",{onClick:()=>e2("\x1b"),className:"px-2 py-1 text-[10px] font-mono bg-zinc-800 hover:bg-zinc-700 text-zinc-400 rounded border border-zinc-700",children:"Esc"}),(0,r.jsx)("button",{onClick:()=>e2(" "),className:"px-2 py-1 text-[10px] font-mono bg-zinc-800 hover:bg-zinc-700 text-zinc-400 rounded border border-zinc-700",children:"Tab"}),(0,r.jsx)("button",{onClick:()=>e2("\x03"),className:"px-2 py-1 text-[10px] font-mono bg-zinc-800 hover:bg-zinc-700 text-zinc-400 rounded border border-zinc-700",children:"Ctrl+C"}),(0,r.jsx)("button",{onClick:()=>e2("\x1b[A"),className:"px-2 py-1 text-[10px] font-mono bg-zinc-800 hover:bg-zinc-700 text-zinc-400 rounded border border-zinc-700",children:"↑"}),(0,r.jsx)("button",{onClick:()=>e2("\x1b[B"),className:"px-2 py-1 text-[10px] font-mono bg-zinc-800 hover:bg-zinc-700 text-zinc-400 rounded border border-zinc-700",children:"↓"}),(0,r.jsx)("div",{className:"flex-1"}),(0,r.jsx)("button",{onClick:()=>eg(""),className:"px-2 py-1 text-[10px] font-mono bg-zinc-800 hover:bg-zinc-700 text-zinc-400 rounded border border-zinc-700",children:"Clear"})]})]}),!ed&&e8&&(0,r.jsxs)("div",{className:"flex items-center justify-end gap-1.5 px-2 py-1 flex-shrink-0 border-t border-zinc-700/50",style:{backgroundColor:`${t.color}08`},children:[ex&&(0,r.jsx)("span",{className:"text-[10px] text-green-400 animate-pulse mr-1",children:"listening"===em?"Listening...":"Voice active"}),(0,r.jsx)("button",{onClick:()=>{if(ep.current){if(ep.current=!1,eh(!1),ef("idle"),e9.current){try{e9.current.abort()}catch{}e9.current=null}}else e8&&(ep.current=!0,eh(!0),te(!1),setTimeout(()=>L.current?.focus(),100))},className:(0,C.cn)("p-1 rounded border transition-all",ex&&!eS?"bg-green-900/50 border-green-500 text-green-400 hover:bg-red-900/50 hover:border-red-600 hover:text-red-400 shadow-[0_0_8px_rgba(34,197,94,0.3)]":"bg-zinc-800/50 border-zinc-700 text-zinc-500 hover:text-zinc-300 hover:bg-zinc-700"),title:"Dictation (text appears, you press Enter)",children:(0,r.jsx)(f.Mic,{className:"w-3.5 h-3.5"})}),(0,r.jsx)("button",{onClick:()=>{if(ep.current){if(ep.current=!1,eh(!1),ef("idle"),e9.current){try{e9.current.abort()}catch{}e9.current=null}}else e8&&(ep.current=!0,eh(!0),te(!0),setTimeout(()=>L.current?.focus(),100))},className:(0,C.cn)("p-1 rounded-full border transition-all",ex&&!eS?"bg-green-600 border-green-400 text-white shadow-[0_0_10px_rgba(34,197,94,0.5)] animate-pulse":eS?"bg-zinc-800/50 border-zinc-700 text-zinc-600":"bg-zinc-800/50 border-zinc-700 text-zinc-500 hover:text-green-400 hover:border-green-600"),title:"Immersive voice (auto-send on silence)",children:(0,r.jsx)(g.AudioLines,{className:"w-3.5 h-3.5"})})]})]})}e.s(["TerminalPane",()=>E],424134)}]);
|
|
@@ -1,145 +1,51 @@
|
|
|
1
1
|
<cortex-context>
|
|
2
2
|
Relevant context from your workspace history:
|
|
3
3
|
|
|
4
|
-
[
|
|
5
|
-
No running server found on port 3457
|
|
6
|
-
|
|
7
|
-
Spaces - Agent Workspace Manager
|
|
8
|
-
=================================
|
|
9
|
-
|
|
10
|
-
Tier: federation
|
|
11
|
-
Admin DB: /home/jlongo/.spaces/admin.db
|
|
12
|
-
Collaboration: @spaces/teams loaded OK
|
|
13
|
-
|
|
14
|
-
[SSH] Authorized service key for user jlongo
|
|
15
|
-
[SSH] Authorized service key for user cmohaniii_gmail_com
|
|
16
|
-
[SSH] Authorized service key for user kdiulus
|
|
17
|
-
[SSH] Authorized service key for user mscalise
|
|
18
|
-
[Analytics] Writable admin DB connected, stale sessions cleaned up
|
|
19
|
-
[mDNS] Advertising as "production-1" (cbe2d93e) on port 3457
|
|
20
|
-
Starting server on http://localhost:3457
|
|
21
|
-
|
|
22
|
-
▲ Next.js 16.1.6
|
|
23
|
-
- Local: http://localhost:3400
|
|
24
|
-
- Network: http://0.0.0.0:3400
|
|
25
|
-
|
|
26
|
-
✓ Starting...
|
|
27
|
-
✓ Ready in 214ms
|
|
28
|
-
|
|
29
|
-
Ready at http://localhost:3457
|
|
30
|
-
|
|
31
|
-
Open http://localhost:3457 in your browser
|
|
32
|
-
[spaces] File watcher started on /home/jlongo/.claude/projects
|
|
33
|
-
[spaces] File watcher started on /home/jlongo/.codex/sessions
|
|
34
|
-
[spaces] File watcher started on /home/jlongo/.gemini/tmp
|
|
35
|
-
[Auth] pane=67fce1a2 cookie=present sessionValid=true terminalToken=session-auth nodeId=NONE apiKey=NONE
|
|
36
|
-
[Auth] Authenticated via session cookie: jlongo
|
|
37
|
-
[Spawn] user=jlongo shell=/bin/bash args=[] cwd=/home/jlongo agentType=claude
|
|
38
|
-
[Session CWD] b825e17f: /home/jlongo
|
|
39
|
-
[Auth] pane=28fdb715 cookie=present sessionValid=true terminalToken=session-auth nodeId=NONE apiKey=NONE
|
|
40
|
-
[Auth] Authenticated via session cookie: jlongo
|
|
41
|
-
[Spawn] user=jlongo shell=/bin/bash args=[] cwd=/home/jlongo/development agentType=shell
|
|
42
|
-
[Cortex] No knowledge found for "jlongo"
|
|
43
|
-
[Auth] pane=8c40dfff cookie=present sessionValid=true terminalToken=session-auth nodeId=NONE apiKey=NONE
|
|
44
|
-
[Auth] Authenticated via session cookie: jlongo
|
|
45
|
-
[Spawn] user=jlongo shell=/bin/bash args=[] cwd=/home/jlongo/storage/airflow/dags agentType=claude
|
|
46
|
-
[Session CWD] 2f1c4619: /home/jlongo/storage/airflow/dags
|
|
47
|
-
[Cortex] No knowledge found for "dags"
|
|
48
|
-
[Auth] pane=50db8a62 cookie=present sessionValid=true terminalToken=session-auth nodeId=NONE apiKey=NONE
|
|
49
|
-
[Auth] Authenticated via session cookie: jlongo
|
|
50
|
-
[Spawn] user=jlongo shell=/bin/bash args=[] cwd=/home/jlongo/storage/RRPS agentType=claude
|
|
51
|
-
[Session Detect] Pane 50db8a62 (jlongo): snapshot 365 existing sessions
|
|
52
|
-
[Cortex] No knowledge found for "RRPS"
|
|
53
|
-
[Auth] pane=0eb34b28 cookie=present sessionValid=true terminalToken=session-auth nodeId=NONE apiKey=NONE
|
|
54
|
-
[Auth] Authenticated via session cookie: jlongo
|
|
55
|
-
[Spawn] user=jlongo shell=/bin/bash args=[] cwd=/home/jlongo agentType=shell
|
|
56
|
-
[spaces:jlongo] Synced 30 projects, 368 sessions
|
|
57
|
-
[spaces:jlongo] Enriched 201 sessions from JSONL
|
|
58
|
-
[Auth] pane=78d94e89 cookie=present sessionValid=true terminalToken=session-auth nodeId=NONE apiKey=NONE
|
|
59
|
-
[Auth] Authenticated via session cookie: mscalise
|
|
60
|
-
[SSH] Authorized service key for user mscalise
|
|
61
|
-
[Spawn] user=mscalise shell=/usr/bin/ssh args=["-4","-o","StrictHostKeyChecking=accept-new","-o","UserKnownHostsFile=/home/jlongo/.spaces/known_hosts","-i","/home/jlongo/.spaces/service_key","-t","mscalise@localhost"] cwd=/ agentType=shell
|
|
62
|
-
[spaces:mscalise] Sync error: Error: EACCES: permission denied, scandir '/home/mscalise/.claude/projects'
|
|
63
|
-
at <unknown> (.next/server/chunks/[root-of-the-server]__160e7c73._.js:133:239)
|
|
64
|
-
at <unknown> (.next/server/chunks/[root-of-the-server]__160e7c73._.js:133:1894)
|
|
65
|
-
at er (.next/server/chunks/[root-of-the-server]__160e7c73._.js:133:8524)
|
|
66
|
-
at c (.next/server/chunks/[root-of-the-server]__5bd0f118._.js:96:483)
|
|
67
|
-
at <unknown> (.next/server/chunks/[root-of-the-server]__130dee4b._.js:96:1708)
|
|
68
|
-
at i (.next/server/chunks/[root-of-the-server]__5bd0f118._.js:1:2478)
|
|
69
|
-
at I (.next/server/chunks/[root-of-the-server]__130dee4b._.js:96:1666) {
|
|
70
|
-
errno: -13,
|
|
71
|
-
code: 'EACCES',
|
|
72
|
-
syscall: 'scandir',
|
|
73
|
-
path: '/home/mscalise/.claude/projects'
|
|
74
|
-
}
|
|
75
|
-
[MessageWatcher] Started polling
|
|
76
|
-
[Auth] pane=75d1509d cookie=present sessionValid=true terminalToken=session-auth nodeId=NONE apiKey=NONE
|
|
77
|
-
[Auth] Authenticated via session cookie: mscalise
|
|
78
|
-
[SS
|
|
79
|
-
Source: session 98646dcf-fd30-42fb-b895-ff84756e20ea, confidence: 40%
|
|
80
|
-
|
|
81
|
-
[Conversation] 2026-03-19: [user]: jlongo@production-1:~$ grep -i maxstartups /etc/ssh/sshd_configgrep -i maxstartups /etc/ssh/sshd_config
|
|
82
|
-
grep: /etc/ssh/sshd_configgrep: No such file or directory
|
|
83
|
-
grep: maxstartups: No such file or directory
|
|
84
|
-
/etc/ssh/sshd_config:MaxStartups 50:30:200
|
|
85
|
-
jlongo@production-1:~$ jlongo@production-1:~$ grep -i maxstartups /etc/ssh/sshd_configgrep -i maxstartups /etc/ssh/sshd_config
|
|
86
|
-
|
|
87
|
-
grep: /etc/ssh/sshd_configgrep: No such file or directory
|
|
88
|
-
|
|
89
|
-
grep: maxstartups: No such file or directory
|
|
90
|
-
|
|
91
|
-
/etc/ssh/sshd_config:MaxStartups 50:30:200
|
|
92
|
-
|
|
93
|
-
jlongo@production-1:~$ he does not get the same key_exchange error. they just remain blank. you check the db
|
|
94
|
-
|
|
95
|
-
[assistant]: These are all **your** panes (local workspaces, `node_id` is NULL). There are no workspaces/panes with user-level scoping in the DB schema — workspaces don't have a `user_id` column.
|
|
96
|
-
|
|
97
|
-
This is the issue: when Chuck connects via federation and opens a workspace, the panes he sees have `cwd` paths like `/home/jlongo/development/...` — those paths don't exist on **his** machine. The panes are yours, not his.
|
|
98
|
-
|
|
99
|
-
The federation scoping fix made it so Chuck sees his own workspaces via the API, but does Chuck actually have any workspaces created on your server under his account? Or is he seeing your workspaces and trying to open panes that point to your home directory?
|
|
100
|
-
|
|
101
|
-
Can you check what the federated endpoint actually returns for him:
|
|
102
|
-
|
|
103
|
-
```bash
|
|
104
|
-
# Find Chuck's API key and test what workspaces it returns
|
|
105
|
-
curl -s -H "Authorization: Bearer $(sqlite3 /home/jlongo/.spaces/network.db "SELECT key_prefix FROM api_keys WHERE username='cmohan'")" http://localhost:3457/api/workspaces | python3 -m json.tool
|
|
106
|
-
```
|
|
107
|
-
|
|
108
|
-
Or — what workspaces does Chuck see listed on his end?
|
|
109
|
-
Source: session 25c57645-12f5-4001-85ed-d1844ce047e3, confidence: 40%
|
|
110
|
-
|
|
111
|
-
[Conversation] 2026-04-03: [user]: set up a new Space called 'New Server Build' with these 2 sessions
|
|
112
|
-
|
|
113
|
-
[assistant]: I don't have MCP tools for the Spaces app directly. Let me check if there's a CLI or API I can use.
|
|
114
|
-
|
|
115
|
-
[assistant]: The CLI is for server management, not content. Let me check the running API for space/session creation.
|
|
116
|
-
|
|
117
|
-
[assistant]: The API requires authentication (redirecting to login). Let me check the source for the API routes and how to authenticate programmatically.
|
|
4
|
+
[Preference] 2026-04-14: The 'spaces' command runs from npm-published build which is older and doesn't have the wizard wired in yet
|
|
118
5
|
|
|
119
|
-
[
|
|
6
|
+
[Error Fix] 2026-04-14: error: cannot find button, fix: button is in Workspace Chooser screen next to New Workspace
|
|
120
7
|
|
|
121
|
-
[
|
|
8
|
+
[Conversation] 2026-04-14: i don't see the button
|
|
122
9
|
|
|
123
|
-
|
|
10
|
+
It's in the Workspace Chooser — the "Plan a Project" button. Let me check where it sits in the layout.
|
|
124
11
|
|
|
125
|
-
|
|
12
|
+
The button is there — it's the indigo "Plan a Project" button with the wand icon, sitting next to "New Workspace" in the Workspace Chooser screen. You see it when you're on the workspace selection view (the screen that lists all your workspaces).
|
|
126
13
|
|
|
127
|
-
|
|
14
|
+
Are you looking at a running instance right now? It's possible the build you're running is older than the code in main. You might need to rebuild (`...
|
|
128
15
|
|
|
129
|
-
[
|
|
16
|
+
[Conversation] 2026-04-14: not there.
|
|
130
17
|
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
[assistant]: Now I have everything I need. Let me create the workspace and add both sessions.
|
|
18
|
+
Let me find where the WorkspaceChooser is actually rendered in the app.
|
|
134
19
|
|
|
135
|
-
|
|
20
|
+
There's the problem — `WorkspaceChooser` is never imported anywhere. The component exists but nothing renders it. It's dead code — the button literally can't appear because the component isn't wired into any page.
|
|
136
21
|
|
|
137
|
-
|
|
22
|
+
Let me find what's actually used for workspace selection.
|
|
138
23
|
|
|
139
|
-
|
|
140
|
-
2. **`8cdbdd17`** (Mar 25) — the follow-up session from `~/development/arc_projects`
|
|
24
|
+
Yeah — the wizard is completely disconnected. The `WorkspaceChooser` component (which has the "Plan a Project" button) is never imported or rendered by a...
|
|
141
25
|
|
|
142
|
-
|
|
143
|
-
|
|
26
|
+
[Decision] 2026-04-14: WorkspaceChooser component should be imported and rendered in the app
|
|
27
|
+
|
|
28
|
+
[Decision] 2026-04-14: Use 'npm run dev' command to test local changes instead of 'spaces' command
|
|
29
|
+
|
|
30
|
+
[Decision] 2026-04-14: Provide 'Plan a Project' button alongside 'New Workspace' and Quick Start Templates as alternative entry points
|
|
31
|
+
|
|
32
|
+
[Conversation] 2026-04-14: give me a description of our project creation wizard functionality
|
|
33
|
+
|
|
34
|
+
Here's a description of the project creation wizard:
|
|
35
|
+
|
|
36
|
+
## Project Creation Wizard
|
|
37
|
+
|
|
38
|
+
The wizard is an AI-assisted, two-phase flow for setting up new workspaces with pre-configured agent panes.
|
|
39
|
+
|
|
40
|
+
### Entry Point
|
|
41
|
+
Users access it via the **"Plan a Project"** button in the Workspace Chooser (alongside the simpler "New Workspace" option and Quick Start Templates).
|
|
42
|
+
|
|
43
|
+
### Phase 1 — Conversational Planning (`wizard-chat.tsx`)
|
|
44
|
+
- A chat interface where the user describes their project goals
|
|
45
|
+
- Claude Haiku proc...
|
|
46
|
+
|
|
47
|
+
[Pattern] 2026-04-14: Diagnosing tool usage issues by suggesting alternative execution methods (e.g., 'spaces' command vs 'npm run dev')
|
|
48
|
+
|
|
49
|
+
[Context] 2026-04-14: still there. i ran it using the 'spaces' command. should I run it some other way?
|
|
144
50
|
|
|
145
51
|
</cortex-context>
|
|
@@ -58,7 +58,7 @@ setInterval(() => logMemory(), 60000);
|
|
|
58
58
|
const SPACES_DIR = path.join(os.homedir(), '.spaces');
|
|
59
59
|
const CONFIG_PATH = path.join(SPACES_DIR, 'server.json');
|
|
60
60
|
const SESSION_SECRET_PATH = path.join(SPACES_DIR, 'session_secret');
|
|
61
|
-
|
|
61
|
+
let NEXT_INTERNAL_PORT = 3400;
|
|
62
62
|
const projectDir = path.join(__dirname, '..');
|
|
63
63
|
const MANAGED_PACKAGES = path.join(SPACES_DIR, 'packages');
|
|
64
64
|
const MANAGED_NODE_MODULES = path.join(MANAGED_PACKAGES, 'node_modules');
|
|
@@ -227,8 +227,11 @@ function startServer() {
|
|
|
227
227
|
|| savedConfig.allowedOrigins
|
|
228
228
|
|| '';
|
|
229
229
|
|
|
230
|
+
// Use a unique internal port so multiple instances don't collide
|
|
231
|
+
NEXT_INTERNAL_PORT = PORT - 57; // 3457→3400, 3458→3401, etc.
|
|
232
|
+
|
|
230
233
|
// ─── Kill any existing server on this port ───────────────────
|
|
231
|
-
stopServer();
|
|
234
|
+
stopServer(PORT);
|
|
232
235
|
|
|
233
236
|
// ─── Resolve optional packages once ─────────────────────────
|
|
234
237
|
const proPath = resolveSpacesPro();
|
|
@@ -704,12 +707,12 @@ function findPidsOnPort(port) {
|
|
|
704
707
|
return [...pids].filter(p => !isNaN(p) && p > 0);
|
|
705
708
|
}
|
|
706
709
|
|
|
707
|
-
function stopServer() {
|
|
710
|
+
function stopServer(overridePort) {
|
|
708
711
|
let savedConfig = {};
|
|
709
712
|
if (fs.existsSync(CONFIG_PATH)) {
|
|
710
713
|
try { savedConfig = JSON.parse(fs.readFileSync(CONFIG_PATH, 'utf-8')); } catch {}
|
|
711
714
|
}
|
|
712
|
-
const port = parseInt(process.env.SPACES_PORT || '', 10) || savedConfig.port || 3457;
|
|
715
|
+
const port = overridePort || parseInt(process.env.SPACES_PORT || '', 10) || savedConfig.port || 3457;
|
|
713
716
|
const ports = [port, NEXT_INTERNAL_PORT];
|
|
714
717
|
let killed = 0;
|
|
715
718
|
|
|
@@ -479,7 +479,7 @@ const AGENTS = {
|
|
|
479
479
|
gemini: { command: 'gemini', resumeFlag: '--resume', resumeStyle: 'flag' },
|
|
480
480
|
aider: { command: 'aider', resumeFlag: '', resumeStyle: '' },
|
|
481
481
|
forge: { command: 'forge', resumeFlag: '--cid', resumeStyle: 'flag' },
|
|
482
|
-
pi: { command: 'pi', resumeFlag: '--
|
|
482
|
+
pi: { command: 'pi', resumeFlag: '--session', resumeStyle: 'flag' },
|
|
483
483
|
custom: { command: '', resumeFlag: '', resumeStyle: '' },
|
|
484
484
|
};
|
|
485
485
|
|
|
@@ -1441,6 +1441,14 @@ function handleConnection(wss, ws, req) {
|
|
|
1441
1441
|
// Check for existing session to reattach
|
|
1442
1442
|
const existing = sessions.get(paneId);
|
|
1443
1443
|
if (existing && existing.pty && !existing.exited) {
|
|
1444
|
+
// SECURITY: only the original owner may reattach. Without this, any
|
|
1445
|
+
// authenticated user who learns a paneId could hijack another user's PTY.
|
|
1446
|
+
if (existing.username !== username) {
|
|
1447
|
+
console.log(`[WS] REJECTED reattach pane=${paneId.slice(0,8)} — owner=${existing.username} requester=${username}`);
|
|
1448
|
+
ws.send(JSON.stringify({ type: 'error', data: 'Pane belongs to a different user' }));
|
|
1449
|
+
ws.close();
|
|
1450
|
+
return;
|
|
1451
|
+
}
|
|
1444
1452
|
console.log(`[WS] Reattach pane=${paneId.slice(0,8)} buffer=${existing.buffer.length} chunks`);
|
|
1445
1453
|
existing.ws = ws;
|
|
1446
1454
|
|
|
@@ -1732,15 +1740,22 @@ function handleConnection(wss, ws, req) {
|
|
|
1732
1740
|
|
|
1733
1741
|
if (agentSession && agentSession !== 'new' && agent.resumeFlag) {
|
|
1734
1742
|
// Resume an existing session
|
|
1735
|
-
if (agentType === 'claude') {
|
|
1736
|
-
|
|
1737
|
-
|
|
1738
|
-
|
|
1739
|
-
|
|
1740
|
-
|
|
1741
|
-
|
|
1742
|
-
|
|
1743
|
-
|
|
1743
|
+
if (agentType === 'claude' || agentType === 'pi') {
|
|
1744
|
+
let sessionCwd = null;
|
|
1745
|
+
let sessionExists = false;
|
|
1746
|
+
|
|
1747
|
+
if (agentType === 'claude') {
|
|
1748
|
+
// Claude needs to be run from the correct project CWD
|
|
1749
|
+
sessionCwd = findSessionCwd(agentSession, username);
|
|
1750
|
+
|
|
1751
|
+
// Verify the session actually exists on disk before attempting resume.
|
|
1752
|
+
// If the .jsonl file is gone (cleanup, etc.), fall back to `--continue`
|
|
1753
|
+
// which resumes the most recent conversation in this project — much
|
|
1754
|
+
// better than starting completely fresh.
|
|
1755
|
+
sessionExists = sessionCwd !== null || findSessionFile(agentSession, username);
|
|
1756
|
+
} else if (agentType === 'pi') {
|
|
1757
|
+
sessionExists = findPiSessionFile(agentSession, username, safeCwd);
|
|
1758
|
+
}
|
|
1744
1759
|
|
|
1745
1760
|
if (!sessionExists) {
|
|
1746
1761
|
console.log(`[Resume] Session ${agentSession.slice(0, 8)} not found on disk for pane ${paneId.slice(0, 8)} — falling back to --continue`);
|
|
@@ -1915,6 +1930,29 @@ function findSessionFile(sessionId, username) {
|
|
|
1915
1930
|
return false;
|
|
1916
1931
|
}
|
|
1917
1932
|
|
|
1933
|
+
function findPiSessionFile(sessionId, username, cwd) {
|
|
1934
|
+
const homeDir = getUserHome(username);
|
|
1935
|
+
const globalSessionsDir = path.join(homeDir, '.pi', 'agent', 'sessions');
|
|
1936
|
+
const projectSessionsDir = path.join(cwd, '.pi', 'sessions');
|
|
1937
|
+
|
|
1938
|
+
for (const dir of [globalSessionsDir, projectSessionsDir]) {
|
|
1939
|
+
try {
|
|
1940
|
+
if (fs.existsSync(dir)) {
|
|
1941
|
+
for (const sub of fs.readdirSync(dir, { withFileTypes: true })) {
|
|
1942
|
+
if (sub.isDirectory()) {
|
|
1943
|
+
for (const file of fs.readdirSync(path.join(dir, sub.name))) {
|
|
1944
|
+
if (file.endsWith('.jsonl') && file.includes(sessionId)) return true;
|
|
1945
|
+
}
|
|
1946
|
+
} else if (sub.isFile() && sub.name.endsWith('.jsonl') && sub.name.includes(sessionId)) {
|
|
1947
|
+
return true;
|
|
1948
|
+
}
|
|
1949
|
+
}
|
|
1950
|
+
}
|
|
1951
|
+
} catch { /* ignore */ }
|
|
1952
|
+
}
|
|
1953
|
+
return false;
|
|
1954
|
+
}
|
|
1955
|
+
|
|
1918
1956
|
function findSessionCwd(sessionId, username) {
|
|
1919
1957
|
const claudeProjectsDir = path.join(getUserHome(username), '.claude', 'projects');
|
|
1920
1958
|
try {
|
|
@@ -1,23 +1,57 @@
|
|
|
1
|
-
[2026-04-
|
|
2
|
-
[2026-04-
|
|
3
|
-
[2026-04-
|
|
4
|
-
[2026-04-
|
|
5
|
-
[2026-04-
|
|
6
|
-
[2026-04-
|
|
7
|
-
[2026-04-
|
|
8
|
-
[2026-04-
|
|
9
|
-
[2026-04-
|
|
10
|
-
[2026-04-
|
|
11
|
-
[2026-04-
|
|
12
|
-
[2026-04-
|
|
13
|
-
[2026-04-
|
|
14
|
-
[2026-04-
|
|
15
|
-
[2026-04-
|
|
16
|
-
[2026-04-
|
|
17
|
-
[2026-04-
|
|
18
|
-
[2026-04-
|
|
19
|
-
[2026-04-
|
|
20
|
-
[2026-04-
|
|
21
|
-
[2026-04-
|
|
22
|
-
[2026-04-
|
|
23
|
-
[2026-04-
|
|
1
|
+
[2026-04-17T18:44:07.219Z] [LEARN] Learn hook started
|
|
2
|
+
[2026-04-17T18:44:07.226Z] [LEARN] Input length: 857
|
|
3
|
+
[2026-04-17T18:44:07.236Z] [LEARN] Sending POST to http://localhost:3457/api/cortex/knowledge/
|
|
4
|
+
[2026-04-17T18:44:07.274Z] [LEARN] Response: 307
|
|
5
|
+
[2026-04-17T18:45:18.172Z] Hook started
|
|
6
|
+
[2026-04-17T18:45:18.178Z] Input length: 423
|
|
7
|
+
[2026-04-17T18:45:18.179Z] Querying: http://localhost:3457/api/cortex/context/?q=tell%20me%20how%20the%20project%20wizard%20%20harness%20works%20from%20a%20high%20level.%20%20i%20need%20to%20talk%20about%20the%20functionality%20for%20another%20project%20i'm%20working%20on&limit=5&workspace_id=2 (event: UserPromptSubmit)
|
|
8
|
+
[2026-04-17T18:45:18.212Z] Main error: 307
|
|
9
|
+
[2026-04-17T18:45:18.212Z] Hook finished
|
|
10
|
+
[2026-04-17T18:45:37.672Z] [LEARN] Learn hook started
|
|
11
|
+
[2026-04-17T18:45:37.681Z] [LEARN] Input length: 3392
|
|
12
|
+
[2026-04-17T18:45:37.688Z] [LEARN] Sending POST to http://localhost:3457/api/cortex/knowledge/
|
|
13
|
+
[2026-04-17T18:45:37.722Z] [LEARN] Response: 307
|
|
14
|
+
[2026-04-17T18:52:27.655Z] Hook started
|
|
15
|
+
[2026-04-17T18:52:27.661Z] Input length: 319
|
|
16
|
+
[2026-04-17T18:52:27.662Z] Querying: http://localhost:3457/api/cortex/context/?q=does%20it%20use%20skills%20and%20tools%20or%20no%3F&limit=5&workspace_id=2 (event: UserPromptSubmit)
|
|
17
|
+
[2026-04-17T18:52:27.697Z] Main error: 307
|
|
18
|
+
[2026-04-17T18:52:27.697Z] Hook finished
|
|
19
|
+
[2026-04-17T18:52:39.328Z] [LEARN] Learn hook started
|
|
20
|
+
[2026-04-17T18:52:39.336Z] [LEARN] Input length: 2048
|
|
21
|
+
[2026-04-17T18:52:39.344Z] [LEARN] Sending POST to http://localhost:3457/api/cortex/knowledge/
|
|
22
|
+
[2026-04-17T18:52:39.385Z] [LEARN] Response: 307
|
|
23
|
+
[2026-04-19T13:26:25.015Z] Hook started
|
|
24
|
+
[2026-04-19T13:26:25.022Z] Input length: 413
|
|
25
|
+
[2026-04-19T13:26:25.023Z] Querying: http://localhost:3457/api/cortex/context/?q=pull%20the%20latest%20from%20github%20so%20we%20can%20do%20an%20npm%20release.%20%20can%20we%20use%20this%20access%20token%3F%20%20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&limit=5&workspace_id=2 (event: UserPromptSubmit)
|
|
26
|
+
[2026-04-19T13:26:25.063Z] Main error: 307
|
|
27
|
+
[2026-04-19T13:26:25.063Z] Hook finished
|
|
28
|
+
[2026-04-19T13:26:59.700Z] [LEARN] Learn hook started
|
|
29
|
+
[2026-04-19T13:26:59.707Z] [LEARN] Input length: 976
|
|
30
|
+
[2026-04-19T13:26:59.716Z] [LEARN] Sending POST to http://localhost:3457/api/cortex/knowledge/
|
|
31
|
+
[2026-04-19T13:26:59.762Z] [LEARN] Response: 307
|
|
32
|
+
[2026-04-19T13:27:33.753Z] Hook started
|
|
33
|
+
[2026-04-19T13:27:33.759Z] Input length: 287
|
|
34
|
+
[2026-04-19T13:27:33.760Z] Prompt too short
|
|
35
|
+
[2026-04-19T13:27:51.049Z] Hook started
|
|
36
|
+
[2026-04-19T13:27:51.058Z] Input length: 335
|
|
37
|
+
[2026-04-19T13:27:51.059Z] Querying: http://localhost:3457/api/cortex/context/?q=yesyou'll%20have%20to%20bump%20again.%20%200.9.7%20is%20live%20on%20npm&limit=5&workspace_id=2 (event: UserPromptSubmit)
|
|
38
|
+
[2026-04-19T13:27:51.100Z] Main error: 307
|
|
39
|
+
[2026-04-19T13:27:51.100Z] Hook finished
|
|
40
|
+
[2026-04-19T13:31:43.687Z] [LEARN] Learn hook started
|
|
41
|
+
[2026-04-19T13:31:43.698Z] [LEARN] Input length: 508
|
|
42
|
+
[2026-04-19T13:31:43.707Z] [LEARN] Sending POST to http://localhost:3457/api/cortex/knowledge/
|
|
43
|
+
[2026-04-19T13:31:43.747Z] [LEARN] Response: 307
|
|
44
|
+
[2026-04-19T13:35:50.269Z] Hook started
|
|
45
|
+
[2026-04-19T13:35:50.277Z] Input length: 307
|
|
46
|
+
[2026-04-19T13:35:50.278Z] Querying: http://localhost:3457/api/cortex/context/?q=try%20now%2C%20i%20disabled%202fa&limit=5&workspace_id=2 (event: UserPromptSubmit)
|
|
47
|
+
[2026-04-19T13:35:50.316Z] Main error: 307
|
|
48
|
+
[2026-04-19T13:35:50.316Z] Hook finished
|
|
49
|
+
[2026-04-19T13:38:15.302Z] [LEARN] Learn hook started
|
|
50
|
+
[2026-04-19T13:38:15.309Z] [LEARN] Input length: 943
|
|
51
|
+
[2026-04-19T13:38:15.318Z] [LEARN] Sending POST to http://localhost:3457/api/cortex/knowledge/
|
|
52
|
+
[2026-04-19T13:38:15.356Z] [LEARN] Response: 307
|
|
53
|
+
[2026-04-19T13:39:55.427Z] Hook started
|
|
54
|
+
[2026-04-19T13:39:55.432Z] Input length: 324
|
|
55
|
+
[2026-04-19T13:39:55.433Z] Querying: http://localhost:3457/api/cortex/context/?q=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&limit=5&workspace_id=2 (event: UserPromptSubmit)
|
|
56
|
+
[2026-04-19T13:39:55.467Z] Main error: 307
|
|
57
|
+
[2026-04-19T13:39:55.467Z] Hook finished
|