@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,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jlongo78/agent-spaces",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.8",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "@jlongo78/agent-spaces",
|
|
9
|
-
"version": "0.9.
|
|
9
|
+
"version": "0.9.8",
|
|
10
10
|
"license": "AGPL-3.0-only",
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@dnd-kit/core": "^6.3.1",
|
|
@@ -4,7 +4,7 @@ import React, { useState, useEffect, useCallback, useRef } from 'react';
|
|
|
4
4
|
import {
|
|
5
5
|
Plus, Loader2, Terminal, Search, MessageSquare, FolderOpen,
|
|
6
6
|
Clock, ChevronDown, ChevronRight, Save, FolderInput, Trash2, Pencil, Check, X,
|
|
7
|
-
Layers, Copy, Home, XCircle, ArrowLeftToLine, Globe, AlertCircle, Users, Brain, Maximize2,
|
|
7
|
+
Layers, Copy, Home, XCircle, ArrowLeftToLine, Globe, AlertCircle, Users, Brain, Maximize2, Wand2,
|
|
8
8
|
} from 'lucide-react';
|
|
9
9
|
import { useRouter } from 'next/navigation';
|
|
10
10
|
import { TerminalPane } from '@/components/terminal/terminal-pane';
|
|
@@ -27,6 +27,7 @@ import { track } from '@/lib/telemetry';
|
|
|
27
27
|
import { LobeSettings } from '@/components/cortex/lobe-settings';
|
|
28
28
|
import { FileExplorer } from '@/components/files/file-explorer';
|
|
29
29
|
import { useTier } from '@/hooks/use-tier';
|
|
30
|
+
import { ProjectWizard } from '@/components/wizard/project-wizard';
|
|
30
31
|
|
|
31
32
|
function ResizablePaneGrid({ panes, renderPane }: {
|
|
32
33
|
panes: PaneData[];
|
|
@@ -139,6 +140,7 @@ function TerminalPageInner({ terminalToken }: { terminalToken: string }) {
|
|
|
139
140
|
const [activeWorkspace, setActiveWorkspace] = useState<Workspace | null>(null);
|
|
140
141
|
const [showWsPicker, setShowWsPicker] = useState(false);
|
|
141
142
|
const [showSaveAs, setShowSaveAs] = useState(false);
|
|
143
|
+
const [showWizard, setShowWizard] = useState(false);
|
|
142
144
|
const [saveAsName, setSaveAsName] = useState('');
|
|
143
145
|
const [saveAsColor, setSaveAsColor] = useState('#6366f1');
|
|
144
146
|
const [editingWs, setEditingWs] = useState<number | null>(null);
|
|
@@ -620,7 +622,7 @@ function TerminalPageInner({ terminalToken }: { terminalToken: string }) {
|
|
|
620
622
|
))}
|
|
621
623
|
</div>
|
|
622
624
|
|
|
623
|
-
<div className="flex justify-center">
|
|
625
|
+
<div className="flex justify-center gap-3">
|
|
624
626
|
<button
|
|
625
627
|
onClick={createNewWorkspace}
|
|
626
628
|
className="flex items-center gap-2 px-4 py-2.5 text-sm border border-zinc-700 text-zinc-400 rounded-lg hover:text-white hover:border-zinc-500 transition-colors"
|
|
@@ -628,6 +630,13 @@ function TerminalPageInner({ terminalToken }: { terminalToken: string }) {
|
|
|
628
630
|
<Plus className="w-4 h-4" />
|
|
629
631
|
New Workspace
|
|
630
632
|
</button>
|
|
633
|
+
<button
|
|
634
|
+
onClick={() => setShowWizard(true)}
|
|
635
|
+
className="flex items-center gap-2 px-4 py-2.5 text-sm border border-dashed border-indigo-500/50 text-indigo-400 rounded-lg hover:text-indigo-300 hover:border-indigo-400 hover:bg-indigo-500/10 transition-colors"
|
|
636
|
+
>
|
|
637
|
+
<Wand2 className="w-4 h-4" />
|
|
638
|
+
Plan a Project
|
|
639
|
+
</button>
|
|
631
640
|
</div>
|
|
632
641
|
|
|
633
642
|
{/* Remote workspaces from network nodes */}
|
|
@@ -708,6 +717,15 @@ function TerminalPageInner({ terminalToken }: { terminalToken: string }) {
|
|
|
708
717
|
)}
|
|
709
718
|
</div>
|
|
710
719
|
</div>
|
|
720
|
+
|
|
721
|
+
<ProjectWizard
|
|
722
|
+
isOpen={showWizard}
|
|
723
|
+
onClose={() => setShowWizard(false)}
|
|
724
|
+
onLaunch={(wsId) => {
|
|
725
|
+
setShowWizard(false);
|
|
726
|
+
switchWorkspace(wsId);
|
|
727
|
+
}}
|
|
728
|
+
/>
|
|
711
729
|
</div>
|
|
712
730
|
);
|
|
713
731
|
}
|
|
@@ -819,11 +837,17 @@ function TerminalPageInner({ terminalToken }: { terminalToken: string }) {
|
|
|
819
837
|
>
|
|
820
838
|
<Plus className="w-3 h-3" /> New Empty
|
|
821
839
|
</button>
|
|
840
|
+
<button
|
|
841
|
+
onClick={() => { setShowWizard(true); setShowWsPicker(false); }}
|
|
842
|
+
className="flex items-center gap-1.5 px-2.5 py-1.5 text-[11px] text-indigo-400 hover:text-indigo-300 hover:bg-indigo-500/10 rounded transition-colors flex-1"
|
|
843
|
+
>
|
|
844
|
+
<Wand2 className="w-3 h-3" /> Plan Project
|
|
845
|
+
</button>
|
|
822
846
|
<button
|
|
823
847
|
onClick={() => { setShowSaveAs(true); setShowWsPicker(false); }}
|
|
824
848
|
className="flex items-center gap-1.5 px-2.5 py-1.5 text-[11px] text-zinc-400 hover:text-white hover:bg-zinc-700 rounded transition-colors flex-1"
|
|
825
849
|
>
|
|
826
|
-
<Copy className="w-3 h-3" /> Duplicate
|
|
850
|
+
<Copy className="w-3 h-3" /> Duplicate
|
|
827
851
|
</button>
|
|
828
852
|
</div>
|
|
829
853
|
</div>
|
|
@@ -1203,7 +1227,7 @@ function TerminalPageInner({ terminalToken }: { terminalToken: string }) {
|
|
|
1203
1227
|
/>
|
|
1204
1228
|
</div>
|
|
1205
1229
|
)}
|
|
1206
|
-
{visiblePanes.length === 0 && poppedOut.size === 0 ? (
|
|
1230
|
+
{visiblePanes.length === 0 && poppedOut.size === 0 && minimized.size === 0 ? (
|
|
1207
1231
|
<div className="flex-1 flex items-center justify-center">
|
|
1208
1232
|
<div className="text-center space-y-3">
|
|
1209
1233
|
{/* eslint-disable-next-line @next/next/no-img-element */}
|
|
@@ -1222,7 +1246,13 @@ function TerminalPageInner({ terminalToken }: { terminalToken: string }) {
|
|
|
1222
1246
|
) : visiblePanes.length === 0 ? (
|
|
1223
1247
|
<div className="flex-1 flex items-center justify-center">
|
|
1224
1248
|
<div className="text-center space-y-2">
|
|
1225
|
-
<p className="text-zinc-500 text-sm">
|
|
1249
|
+
<p className="text-zinc-500 text-sm">
|
|
1250
|
+
{minimized.size > 0 && poppedOut.size > 0
|
|
1251
|
+
? 'All panes are minimized or popped out.'
|
|
1252
|
+
: minimized.size > 0
|
|
1253
|
+
? `All panes are minimized. Use the toolbar to restore them.`
|
|
1254
|
+
: 'All panes are popped out to separate windows.'}
|
|
1255
|
+
</p>
|
|
1226
1256
|
<button
|
|
1227
1257
|
onClick={() => setShowAdd(true)}
|
|
1228
1258
|
className="px-3 py-1.5 text-xs text-zinc-400 hover:text-white border border-zinc-700 rounded-md hover:border-zinc-600 inline-flex items-center gap-1.5"
|
|
@@ -1286,6 +1316,15 @@ function TerminalPageInner({ terminalToken }: { terminalToken: string }) {
|
|
|
1286
1316
|
/>
|
|
1287
1317
|
)}
|
|
1288
1318
|
</div>
|
|
1319
|
+
|
|
1320
|
+
<ProjectWizard
|
|
1321
|
+
isOpen={showWizard}
|
|
1322
|
+
onClose={() => setShowWizard(false)}
|
|
1323
|
+
onLaunch={(wsId) => {
|
|
1324
|
+
setShowWizard(false);
|
|
1325
|
+
switchWorkspace(wsId);
|
|
1326
|
+
}}
|
|
1327
|
+
/>
|
|
1289
1328
|
</div>
|
|
1290
1329
|
);
|
|
1291
1330
|
}
|
|
@@ -22,6 +22,7 @@ export async function POST(request: NextRequest) {
|
|
|
22
22
|
categories,
|
|
23
23
|
noJudge = false,
|
|
24
24
|
model = 'claude-haiku-4-5',
|
|
25
|
+
concurrency,
|
|
25
26
|
} = body;
|
|
26
27
|
|
|
27
28
|
// Build args for the benchmark CLI
|
|
@@ -30,6 +31,10 @@ export async function POST(request: NextRequest) {
|
|
|
30
31
|
if (categories) args.push('--category', categories);
|
|
31
32
|
if (noJudge) args.push('--no-judge');
|
|
32
33
|
args.push('--models', model);
|
|
34
|
+
if (concurrency != null) {
|
|
35
|
+
const clamped = Math.min(5, Math.max(1, Math.floor(Number(concurrency)) || 1));
|
|
36
|
+
args.push('--concurrency', String(clamped));
|
|
37
|
+
}
|
|
33
38
|
|
|
34
39
|
// Find the cortex repo
|
|
35
40
|
const cortexDir = findCortexDir();
|
|
@@ -77,14 +82,30 @@ export async function POST(request: NextRequest) {
|
|
|
77
82
|
}
|
|
78
83
|
|
|
79
84
|
function findCortexDir(): string | null {
|
|
80
|
-
const candidates = [
|
|
85
|
+
const candidates: string[] = [];
|
|
86
|
+
|
|
87
|
+
// Primary: resolve the addon's package location via NODE_PATH — this tracks
|
|
88
|
+
// however the host actually loaded @spaces/cortex at runtime (managed
|
|
89
|
+
// install under ~/.spaces/packages, symlink, global, etc.).
|
|
90
|
+
try {
|
|
91
|
+
const { createRequire } = require('module') as typeof import('module');
|
|
92
|
+
const req = createRequire(path.join(process.cwd(), 'package.json'));
|
|
93
|
+
candidates.push(path.dirname(req.resolve('@spaces/cortex/package.json')));
|
|
94
|
+
} catch { /* addon not resolvable from this process */ }
|
|
95
|
+
|
|
96
|
+
// Fallbacks: managed install location and local sibling checkouts.
|
|
97
|
+
if (process.env.HOME) {
|
|
98
|
+
candidates.push(path.join(process.env.HOME, '.spaces', 'packages', 'cortex'));
|
|
99
|
+
}
|
|
100
|
+
candidates.push(
|
|
81
101
|
path.resolve(process.cwd(), '../spaces-cortex'),
|
|
82
102
|
path.resolve(process.cwd(), '../../spaces-cortex'),
|
|
83
103
|
'C:\\projects\\spaces-cortex',
|
|
84
104
|
'/c/projects/spaces-cortex',
|
|
85
|
-
|
|
105
|
+
);
|
|
106
|
+
|
|
86
107
|
for (const dir of candidates) {
|
|
87
|
-
if (fs.existsSync(path.join(dir, 'tests', 'benchmark', 'index.ts'))) {
|
|
108
|
+
if (dir && fs.existsSync(path.join(dir, 'tests', 'benchmark', 'index.ts'))) {
|
|
88
109
|
return dir;
|
|
89
110
|
}
|
|
90
111
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { NextResponse } from 'next/server';
|
|
2
2
|
import type { NextRequest } from 'next/server';
|
|
3
3
|
import { getAuthUser, withUser } from '@/lib/auth';
|
|
4
|
-
import { getCortex, isCortexAvailable } from '@/lib/cortex';
|
|
4
|
+
import { getCortex, isCortexAvailable, getCortexClient } from '@/lib/cortex';
|
|
5
5
|
import { ContextEngine } from '@/lib/cortex/retrieval/context-engine';
|
|
6
6
|
import { EntityResolver } from '@/lib/cortex/graph/resolver';
|
|
7
7
|
import { slugify } from '@/lib/cortex/graph/types';
|
|
@@ -2,7 +2,7 @@ import { NextResponse } from 'next/server';
|
|
|
2
2
|
import type { NextRequest } from 'next/server';
|
|
3
3
|
import crypto from 'crypto';
|
|
4
4
|
import { getAuthUser, withUser } from '@/lib/auth';
|
|
5
|
-
import { isCortexAvailable, getCortex } from '@/lib/cortex';
|
|
5
|
+
import { isCortexAvailable, getCortex, getCortexClient } from '@/lib/cortex';
|
|
6
6
|
import { isValidKnowledgeType, isValidLayer, getConfidenceBase } from '@/lib/cortex/knowledge/types';
|
|
7
7
|
import { layerToScope, scopeToLayer, scopeToLayerKey } from '@/lib/cortex/knowledge/compat';
|
|
8
8
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { NextResponse } from 'next/server';
|
|
2
2
|
import type { NextRequest } from 'next/server';
|
|
3
3
|
import { getAuthUser, withUser } from '@/lib/auth';
|
|
4
|
-
import { isCortexAvailable, getCortex } from '@/lib/cortex';
|
|
4
|
+
import { isCortexAvailable, getCortex, getCortexClient } from '@/lib/cortex';
|
|
5
5
|
|
|
6
6
|
export async function GET(request: NextRequest) {
|
|
7
7
|
const user = getAuthUser(request);
|
|
@@ -19,7 +19,7 @@ export async function GET(request: NextRequest) {
|
|
|
19
19
|
const layer = url.searchParams.get('layer') as 'personal' | 'workspace' | 'team' | null;
|
|
20
20
|
const limit = parseInt(url.searchParams.get('limit') || '5', 10);
|
|
21
21
|
|
|
22
|
-
// Browse mode: return recent knowledge without a search query
|
|
22
|
+
// Browse mode: return recent knowledge without a search query (local engine only)
|
|
23
23
|
if (!query) {
|
|
24
24
|
const layers = layer ? [layer] : (['personal', 'workspace', 'team'] as const);
|
|
25
25
|
const results: any[] = [];
|
|
@@ -30,6 +30,18 @@ export async function GET(request: NextRequest) {
|
|
|
30
30
|
return NextResponse.json({ results: results.slice(0, limit) });
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
+
// Use client for search (fans out to all connected servers)
|
|
34
|
+
const client = await getCortexClient();
|
|
35
|
+
if (client) {
|
|
36
|
+
const results = await client.search(query, {
|
|
37
|
+
limit,
|
|
38
|
+
layers: layer ? [layer] : undefined,
|
|
39
|
+
});
|
|
40
|
+
console.log(`[Cortex Search] q="${query.slice(0, 60)}" → ${results.length} results (multi-server)`);
|
|
41
|
+
return NextResponse.json({ results });
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
// Fallback to direct engine search
|
|
33
45
|
const [queryVector] = await cortex.embedding.embed([query]);
|
|
34
46
|
|
|
35
47
|
const results = await cortex.search.search(queryVector, {
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { NextRequest, NextResponse } from 'next/server';
|
|
2
2
|
import { getAuthUser } from '@/lib/auth';
|
|
3
3
|
import { readConfig } from '@/lib/config';
|
|
4
|
+
import { lookupShellUser, resolveHome, execAsUser } from '@/lib/shell-user';
|
|
4
5
|
import fs from 'fs';
|
|
5
6
|
import path from 'path';
|
|
6
7
|
|
|
7
8
|
export async function GET(request: NextRequest) {
|
|
8
9
|
const user = getAuthUser(request);
|
|
9
|
-
const
|
|
10
|
+
const shellUser = lookupShellUser(user);
|
|
11
|
+
const userHome = resolveHome(shellUser);
|
|
10
12
|
const config = readConfig(user);
|
|
11
13
|
const devDirs = (config.devDirectories.length > 0 ? config.devDirectories : [userHome])
|
|
12
14
|
.map(d => path.resolve(d));
|
|
@@ -52,8 +54,9 @@ export async function GET(request: NextRequest) {
|
|
|
52
54
|
|
|
53
55
|
export async function POST(request: NextRequest) {
|
|
54
56
|
const user = getAuthUser(request);
|
|
57
|
+
const shellUser = lookupShellUser(user);
|
|
58
|
+
const userHome = resolveHome(shellUser);
|
|
55
59
|
const config = readConfig(user);
|
|
56
|
-
const userHome = require('os').homedir();
|
|
57
60
|
const devDirs = (config.devDirectories.length > 0 ? config.devDirectories : [userHome])
|
|
58
61
|
.map((d: string) => path.resolve(d));
|
|
59
62
|
|
|
@@ -83,15 +86,22 @@ export async function POST(request: NextRequest) {
|
|
|
83
86
|
|
|
84
87
|
const newPath = path.join(resolvedParent, name);
|
|
85
88
|
|
|
86
|
-
// Check if already exists
|
|
87
89
|
if (fs.existsSync(newPath)) {
|
|
88
90
|
return NextResponse.json({ error: 'Folder already exists' }, { status: 409 });
|
|
89
91
|
}
|
|
90
92
|
|
|
91
|
-
|
|
93
|
+
// Create the directory as the authenticated shell user, not as the server process user.
|
|
94
|
+
// Otherwise a mkdir inside another user's home fails with EACCES.
|
|
95
|
+
const result = execAsUser(shellUser, ['mkdir', '--', newPath]);
|
|
96
|
+
if (result.status !== 0) {
|
|
97
|
+
const msg = (result.stderr || '').trim() || 'Failed to create folder';
|
|
98
|
+
const status = /exists/i.test(msg) ? 409 : /permission|denied/i.test(msg) ? 403 : 500;
|
|
99
|
+
return NextResponse.json({ error: msg }, { status });
|
|
100
|
+
}
|
|
92
101
|
|
|
93
102
|
return NextResponse.json({ path: newPath }, { status: 201 });
|
|
94
|
-
} catch {
|
|
95
|
-
|
|
103
|
+
} catch (e) {
|
|
104
|
+
const msg = e instanceof Error ? e.message : 'Failed to create folder';
|
|
105
|
+
return NextResponse.json({ error: msg }, { status: 500 });
|
|
96
106
|
}
|
|
97
107
|
}
|
|
@@ -2,6 +2,7 @@ import { NextRequest } from 'next/server';
|
|
|
2
2
|
import { getPro } from '@/lib/pro';
|
|
3
3
|
import { ensureInitialized } from '@/lib/db/init';
|
|
4
4
|
import { getPaneById, updatePane, deletePane } from '@/lib/db/queries';
|
|
5
|
+
import { withUser } from '@/lib/auth';
|
|
5
6
|
|
|
6
7
|
const notAvailable = () =>
|
|
7
8
|
Response.json({ error: 'Requires @spaces/pro' }, { status: 404 });
|
|
@@ -17,11 +18,16 @@ export async function GET(req: NextRequest, { params }: { params: Promise<{ id:
|
|
|
17
18
|
throw e;
|
|
18
19
|
}
|
|
19
20
|
|
|
21
|
+
const keyUser = keyRecord?.username;
|
|
22
|
+
if (!keyUser) return Response.json({ error: 'API key missing user binding' }, { status: 401 });
|
|
23
|
+
|
|
20
24
|
const { id } = await params;
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
+
return withUser(keyUser, async () => {
|
|
26
|
+
await ensureInitialized();
|
|
27
|
+
const pane = getPaneById(id);
|
|
28
|
+
if (!pane) return Response.json({ error: 'Pane not found' }, { status: 404 });
|
|
29
|
+
return Response.json(pane);
|
|
30
|
+
});
|
|
25
31
|
}
|
|
26
32
|
|
|
27
33
|
export async function PUT(req: NextRequest, { params }: { params: Promise<{ id: string }> }) {
|
|
@@ -36,11 +42,16 @@ export async function PUT(req: NextRequest, { params }: { params: Promise<{ id:
|
|
|
36
42
|
}
|
|
37
43
|
if (keyRecord?.permissions !== 'admin') return Response.json({ error: 'Admin permission required' }, { status: 403 });
|
|
38
44
|
|
|
45
|
+
const keyUser = keyRecord?.username;
|
|
46
|
+
if (!keyUser) return Response.json({ error: 'API key missing user binding' }, { status: 401 });
|
|
47
|
+
|
|
39
48
|
const { id } = await params;
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
49
|
+
return withUser(keyUser, async () => {
|
|
50
|
+
await ensureInitialized();
|
|
51
|
+
const body = await req.json();
|
|
52
|
+
updatePane(id, body);
|
|
53
|
+
return Response.json({ success: true });
|
|
54
|
+
});
|
|
44
55
|
}
|
|
45
56
|
|
|
46
57
|
export async function DELETE(req: NextRequest, { params }: { params: Promise<{ id: string }> }) {
|
|
@@ -55,8 +66,13 @@ export async function DELETE(req: NextRequest, { params }: { params: Promise<{ i
|
|
|
55
66
|
}
|
|
56
67
|
if (keyRecord?.permissions !== 'admin') return Response.json({ error: 'Admin permission required' }, { status: 403 });
|
|
57
68
|
|
|
69
|
+
const keyUser = keyRecord?.username;
|
|
70
|
+
if (!keyUser) return Response.json({ error: 'API key missing user binding' }, { status: 401 });
|
|
71
|
+
|
|
58
72
|
const { id } = await params;
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
73
|
+
return withUser(keyUser, async () => {
|
|
74
|
+
await ensureInitialized();
|
|
75
|
+
deletePane(id);
|
|
76
|
+
return Response.json({ success: true });
|
|
77
|
+
});
|
|
62
78
|
}
|
|
@@ -3,6 +3,7 @@ import { randomUUID } from 'crypto';
|
|
|
3
3
|
import { getPro } from '@/lib/pro';
|
|
4
4
|
import { ensureInitialized } from '@/lib/db/init';
|
|
5
5
|
import { getPanesByWorkspace, getActivePanes, createPane } from '@/lib/db/queries';
|
|
6
|
+
import { withUser } from '@/lib/auth';
|
|
6
7
|
|
|
7
8
|
const notAvailable = () =>
|
|
8
9
|
Response.json({ error: 'Requires @spaces/pro' }, { status: 404 });
|
|
@@ -18,10 +19,15 @@ export async function GET(req: NextRequest) {
|
|
|
18
19
|
throw e;
|
|
19
20
|
}
|
|
20
21
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
return
|
|
22
|
+
const keyUser = keyRecord?.username;
|
|
23
|
+
if (!keyUser) return Response.json({ error: 'API key missing user binding' }, { status: 401 });
|
|
24
|
+
|
|
25
|
+
return withUser(keyUser, async () => {
|
|
26
|
+
await ensureInitialized();
|
|
27
|
+
const wsId = req.nextUrl.searchParams.get('workspace_id');
|
|
28
|
+
const panes = wsId ? getPanesByWorkspace(parseInt(wsId, 10)) : getActivePanes();
|
|
29
|
+
return Response.json({ panes });
|
|
30
|
+
});
|
|
25
31
|
}
|
|
26
32
|
|
|
27
33
|
export async function POST(req: NextRequest) {
|
|
@@ -36,15 +42,20 @@ export async function POST(req: NextRequest) {
|
|
|
36
42
|
}
|
|
37
43
|
if (keyRecord?.permissions !== 'admin') return Response.json({ error: 'Admin permission required' }, { status: 403 });
|
|
38
44
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
45
|
+
const keyUser = keyRecord?.username;
|
|
46
|
+
if (!keyUser) return Response.json({ error: 'API key missing user binding' }, { status: 401 });
|
|
47
|
+
|
|
48
|
+
return withUser(keyUser, async () => {
|
|
49
|
+
await ensureInitialized();
|
|
50
|
+
const body = await req.json();
|
|
51
|
+
const pane = createPane({
|
|
52
|
+
id: body.id || randomUUID(),
|
|
53
|
+
title: body.title || 'Terminal',
|
|
54
|
+
color: body.color || '#6366f1',
|
|
55
|
+
cwd: body.cwd || '~',
|
|
56
|
+
agentType: body.agentType || 'shell',
|
|
57
|
+
workspaceId: body.workspaceId,
|
|
58
|
+
});
|
|
59
|
+
return Response.json(pane);
|
|
48
60
|
});
|
|
49
|
-
return Response.json(pane);
|
|
50
61
|
}
|
|
@@ -2,6 +2,7 @@ import { NextRequest } from 'next/server';
|
|
|
2
2
|
import { getPro } from '@/lib/pro';
|
|
3
3
|
import { ensureInitialized } from '@/lib/db/init';
|
|
4
4
|
import { getAllProjects } from '@/lib/db/queries';
|
|
5
|
+
import { withUser } from '@/lib/auth';
|
|
5
6
|
|
|
6
7
|
const notAvailable = () =>
|
|
7
8
|
Response.json({ error: 'Requires @spaces/pro' }, { status: 404 });
|
|
@@ -10,8 +11,9 @@ export async function GET(req: NextRequest) {
|
|
|
10
11
|
const pro = getPro();
|
|
11
12
|
if (!pro) return notAvailable();
|
|
12
13
|
|
|
14
|
+
let keyRecord;
|
|
13
15
|
try {
|
|
14
|
-
pro.network.requireNetworkAuth(req);
|
|
16
|
+
keyRecord = pro.network.requireNetworkAuth(req);
|
|
15
17
|
} catch (e: any) {
|
|
16
18
|
if (e.name === 'NetworkAuthError') {
|
|
17
19
|
return Response.json({ error: e.message }, { status: 401 });
|
|
@@ -19,7 +21,12 @@ export async function GET(req: NextRequest) {
|
|
|
19
21
|
throw e;
|
|
20
22
|
}
|
|
21
23
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
24
|
+
const keyUser = keyRecord?.username;
|
|
25
|
+
if (!keyUser) return Response.json({ error: 'API key missing user binding' }, { status: 401 });
|
|
26
|
+
|
|
27
|
+
return withUser(keyUser, async () => {
|
|
28
|
+
await ensureInitialized();
|
|
29
|
+
const projects = getAllProjects();
|
|
30
|
+
return Response.json(projects);
|
|
31
|
+
});
|
|
25
32
|
}
|
|
@@ -2,6 +2,7 @@ import { NextRequest } from 'next/server';
|
|
|
2
2
|
import { getPro } from '@/lib/pro';
|
|
3
3
|
import { ensureInitialized } from '@/lib/db/init';
|
|
4
4
|
import { searchSessions } from '@/lib/db/queries';
|
|
5
|
+
import { withUser } from '@/lib/auth';
|
|
5
6
|
|
|
6
7
|
const notAvailable = () =>
|
|
7
8
|
Response.json({ error: 'Requires @spaces/pro' }, { status: 404 });
|
|
@@ -10,8 +11,9 @@ export async function GET(req: NextRequest) {
|
|
|
10
11
|
const pro = getPro();
|
|
11
12
|
if (!pro) return notAvailable();
|
|
12
13
|
|
|
14
|
+
let keyRecord;
|
|
13
15
|
try {
|
|
14
|
-
pro.network.requireNetworkAuth(req);
|
|
16
|
+
keyRecord = pro.network.requireNetworkAuth(req);
|
|
15
17
|
} catch (e: any) {
|
|
16
18
|
if (e.name === 'NetworkAuthError') {
|
|
17
19
|
return Response.json({ error: e.message }, { status: 401 });
|
|
@@ -19,20 +21,25 @@ export async function GET(req: NextRequest) {
|
|
|
19
21
|
throw e;
|
|
20
22
|
}
|
|
21
23
|
|
|
22
|
-
|
|
24
|
+
const keyUser = keyRecord?.username;
|
|
25
|
+
if (!keyUser) return Response.json({ error: 'API key missing user binding' }, { status: 401 });
|
|
23
26
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
27
|
+
return withUser(keyUser, async () => {
|
|
28
|
+
await ensureInitialized();
|
|
29
|
+
|
|
30
|
+
const { searchParams } = req.nextUrl;
|
|
31
|
+
const query = searchParams.get('q') || '';
|
|
32
|
+
if (!query) {
|
|
33
|
+
return Response.json({ results: [], query: '' });
|
|
34
|
+
}
|
|
29
35
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
36
|
+
const params = {
|
|
37
|
+
projectId: searchParams.get('projectId') || undefined,
|
|
38
|
+
limit: parseInt(searchParams.get('limit') || '20', 10),
|
|
39
|
+
offset: parseInt(searchParams.get('offset') || '0', 10),
|
|
40
|
+
};
|
|
35
41
|
|
|
36
|
-
|
|
37
|
-
|
|
42
|
+
const results = searchSessions(query, params);
|
|
43
|
+
return Response.json({ results, query });
|
|
44
|
+
});
|
|
38
45
|
}
|
|
@@ -3,6 +3,7 @@ import { getPro } from '@/lib/pro';
|
|
|
3
3
|
import { ensureInitialized } from '@/lib/db/init';
|
|
4
4
|
import { getSessionById } from '@/lib/db/queries';
|
|
5
5
|
import { readMessages } from '@/lib/claude/parser';
|
|
6
|
+
import { withUser } from '@/lib/auth';
|
|
6
7
|
|
|
7
8
|
const notAvailable = () =>
|
|
8
9
|
Response.json({ error: 'Requires @spaces/pro' }, { status: 404 });
|
|
@@ -11,8 +12,9 @@ export async function GET(req: NextRequest, { params }: { params: Promise<{ id:
|
|
|
11
12
|
const pro = getPro();
|
|
12
13
|
if (!pro) return notAvailable();
|
|
13
14
|
|
|
15
|
+
let keyRecord;
|
|
14
16
|
try {
|
|
15
|
-
pro.network.requireNetworkAuth(req);
|
|
17
|
+
keyRecord = pro.network.requireNetworkAuth(req);
|
|
16
18
|
} catch (e: any) {
|
|
17
19
|
if (e.name === 'NetworkAuthError') {
|
|
18
20
|
return Response.json({ error: e.message }, { status: 401 });
|
|
@@ -20,17 +22,22 @@ export async function GET(req: NextRequest, { params }: { params: Promise<{ id:
|
|
|
20
22
|
throw e;
|
|
21
23
|
}
|
|
22
24
|
|
|
23
|
-
|
|
25
|
+
const keyUser = keyRecord?.username;
|
|
26
|
+
if (!keyUser) return Response.json({ error: 'API key missing user binding' }, { status: 401 });
|
|
27
|
+
|
|
24
28
|
const { id } = await params;
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
29
|
+
return withUser(keyUser, async () => {
|
|
30
|
+
await ensureInitialized();
|
|
31
|
+
const { searchParams } = req.nextUrl;
|
|
32
|
+
const offset = parseInt(searchParams.get('offset') || '0', 10);
|
|
33
|
+
const limit = parseInt(searchParams.get('limit') || '50', 10);
|
|
28
34
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
35
|
+
const session = getSessionById(id);
|
|
36
|
+
if (!session) {
|
|
37
|
+
return Response.json({ error: 'Session not found' }, { status: 404 });
|
|
38
|
+
}
|
|
33
39
|
|
|
34
|
-
|
|
35
|
-
|
|
40
|
+
const result = await readMessages(session.fullPath, offset, limit);
|
|
41
|
+
return Response.json(result);
|
|
42
|
+
});
|
|
36
43
|
}
|
|
@@ -2,6 +2,7 @@ import { NextRequest } from 'next/server';
|
|
|
2
2
|
import { getPro } from '@/lib/pro';
|
|
3
3
|
import { ensureInitialized } from '@/lib/db/init';
|
|
4
4
|
import { getSessionById, getSessionTags, getSessionWorkspaces } from '@/lib/db/queries';
|
|
5
|
+
import { withUser } from '@/lib/auth';
|
|
5
6
|
|
|
6
7
|
const notAvailable = () =>
|
|
7
8
|
Response.json({ error: 'Requires @spaces/pro' }, { status: 404 });
|
|
@@ -10,8 +11,9 @@ export async function GET(req: NextRequest, { params }: { params: Promise<{ id:
|
|
|
10
11
|
const pro = getPro();
|
|
11
12
|
if (!pro) return notAvailable();
|
|
12
13
|
|
|
14
|
+
let keyRecord;
|
|
13
15
|
try {
|
|
14
|
-
pro.network.requireNetworkAuth(req);
|
|
16
|
+
keyRecord = pro.network.requireNetworkAuth(req);
|
|
15
17
|
} catch (e: any) {
|
|
16
18
|
if (e.name === 'NetworkAuthError') {
|
|
17
19
|
return Response.json({ error: e.message }, { status: 401 });
|
|
@@ -19,16 +21,21 @@ export async function GET(req: NextRequest, { params }: { params: Promise<{ id:
|
|
|
19
21
|
throw e;
|
|
20
22
|
}
|
|
21
23
|
|
|
22
|
-
|
|
24
|
+
const keyUser = keyRecord?.username;
|
|
25
|
+
if (!keyUser) return Response.json({ error: 'API key missing user binding' }, { status: 401 });
|
|
26
|
+
|
|
23
27
|
const { id } = await params;
|
|
24
|
-
|
|
28
|
+
return withUser(keyUser, async () => {
|
|
29
|
+
await ensureInitialized();
|
|
30
|
+
const session = getSessionById(id);
|
|
25
31
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
32
|
+
if (!session) {
|
|
33
|
+
return Response.json({ error: 'Session not found' }, { status: 404 });
|
|
34
|
+
}
|
|
29
35
|
|
|
30
|
-
|
|
31
|
-
|
|
36
|
+
const tags = getSessionTags(session.id);
|
|
37
|
+
const workspaces = getSessionWorkspaces(session.id);
|
|
32
38
|
|
|
33
|
-
|
|
39
|
+
return Response.json({ ...session, tagObjects: tags, workspaces });
|
|
40
|
+
});
|
|
34
41
|
}
|