@jlongo78/agent-spaces 0.7.6 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/standalone/.next/BUILD_ID +1 -1
- package/.next/standalone/.next/app-path-routes-manifest.json +6 -0
- package/.next/standalone/.next/build-manifest.json +2 -2
- package/.next/standalone/.next/prerender-manifest.json +3 -3
- package/.next/standalone/.next/required-server-files.json +19 -19
- package/.next/standalone/.next/routes-manifest.json +38 -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/react-loadable-manifest.json +1 -1
- package/.next/standalone/.next/server/app/(desktop)/cortex/page.js.nft.json +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.js.nft.json +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.js.nft.json +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 +6 -7
- package/.next/standalone/.next/server/app/admin/analytics.segments/!KGRlc2t0b3Ap/admin/analytics/__PAGE__.segment.rsc +2 -2
- 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 +6 -7
- 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 +3 -3
- package/.next/standalone/.next/server/app/analytics.segments/!KGRlc2t0b3Ap/analytics/__PAGE__.segment.rsc +2 -2
- 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 +3 -3
- 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.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/benchmark/lobes/route/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/api/benchmark/lobes/route/build-manifest.json +11 -0
- package/.next/standalone/.next/server/app/api/benchmark/lobes/route/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/api/benchmark/lobes/route.js +7 -0
- package/.next/standalone/.next/server/app/api/benchmark/lobes/route.js.map +5 -0
- package/.next/standalone/.next/server/app/api/benchmark/lobes/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/benchmark/lobes/route_client-reference-manifest.js +2 -0
- package/.next/standalone/.next/server/app/api/benchmark/run/route/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/api/benchmark/run/route/build-manifest.json +11 -0
- package/.next/standalone/.next/server/app/api/benchmark/run/route/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/api/benchmark/run/route.js +7 -0
- package/.next/standalone/.next/server/app/api/benchmark/run/route.js.map +5 -0
- package/.next/standalone/.next/server/app/api/benchmark/run/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/benchmark/run/route_client-reference-manifest.js +2 -0
- package/.next/standalone/.next/server/app/api/benchmark/runs/[id]/route/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/api/benchmark/runs/[id]/route/build-manifest.json +11 -0
- package/.next/standalone/.next/server/app/api/benchmark/runs/[id]/route/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/api/benchmark/runs/[id]/route.js +7 -0
- package/.next/standalone/.next/server/app/api/benchmark/runs/[id]/route.js.map +5 -0
- package/.next/standalone/.next/server/app/api/benchmark/runs/[id]/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/benchmark/runs/[id]/route_client-reference-manifest.js +2 -0
- package/.next/standalone/.next/server/app/api/benchmark/runs/route/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/api/benchmark/runs/route/build-manifest.json +11 -0
- package/.next/standalone/.next/server/app/api/benchmark/runs/route/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/api/benchmark/runs/route.js +7 -0
- package/.next/standalone/.next/server/app/api/benchmark/runs/route.js.map +5 -0
- package/.next/standalone/.next/server/app/api/benchmark/runs/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/benchmark/runs/route_client-reference-manifest.js +2 -0
- package/.next/standalone/.next/server/app/api/benchmark/status/route/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/api/benchmark/status/route/build-manifest.json +11 -0
- package/.next/standalone/.next/server/app/api/benchmark/status/route/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/api/benchmark/status/route.js +7 -0
- package/.next/standalone/.next/server/app/api/benchmark/status/route.js.map +5 -0
- package/.next/standalone/.next/server/app/api/benchmark/status/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/benchmark/status/route_client-reference-manifest.js +2 -0
- package/.next/standalone/.next/server/app/api/bulk/route.js.nft.json +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.nft.json +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.nft.json +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.nft.json +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.nft.json +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.nft.json +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.nft.json +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.nft.json +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.nft.json +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.nft.json +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.nft.json +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.nft.json +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.nft.json +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.nft.json +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.nft.json +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.nft.json +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.nft.json +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.nft.json +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.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.nft.json +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/projects/route.js.nft.json +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.nft.json +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.nft.json +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.nft.json +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.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/projects/route.js.nft.json +1 -1
- 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.nft.json +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.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/sessions/route.js.nft.json +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.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/tier/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/whisper/route/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/api/whisper/route/build-manifest.json +11 -0
- package/.next/standalone/.next/server/app/api/whisper/route/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/api/whisper/route.js +7 -0
- package/.next/standalone/.next/server/app/api/whisper/route.js.map +5 -0
- package/.next/standalone/.next/server/app/api/whisper/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/whisper/route_client-reference-manifest.js +2 -0
- 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.nft.json +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.nft.json +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.nft.json +1 -1
- 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.js.nft.json +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 +3 -3
- 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 +6 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0041efe4._.js +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__00bf0ace._.js +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0a837dd9._.js +98 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0e71d908._.js +3 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0e9142f3._.js +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__10e47926._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1665dc78._.js +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__175cbabf._.js +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1adae357._.js +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1d359752._.js +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1e8fabeb._.js +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1f8deca0._.js +8 -8
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__253fdda1._.js +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__28e6434f._.js +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__2a386564._.js +3 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__2c20fb38._.js +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__309132cd._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__33fec964._.js +3 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__3786d8ae._.js +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__3ae92407._.js +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__3beda9fe._.js +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__4619e9bd._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__4a051043._.js +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__508002e4._.js +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__5086c373._.js +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__5913e097._.js +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__5b5f68d2._.js +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__5c1f2459._.js +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__5ec8c977._.js +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__63cebc6c._.js +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__64d30d4d._.js +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__6c54fc2e._.js +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__6dc1fb7e._.js +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__6e568102._.js +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__6faa04c0._.js +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__74a34dc3._.js +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__7819e4cf._.js +98 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__7e7250a4._.js +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__8309e0a4._.js +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__86cc0e2b._.js +6 -6
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__89c2565a._.js +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__8d178ad9._.js +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__93ee06f3._.js +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__9e1f0137._.js +98 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__9e4c154a._.js +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__a9d2e1d3._.js +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__ae53d343._.js +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__b3a04cef._.js +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__b4270b77._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__b6b6ce60._.js +3 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__c0757773._.js +98 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__c24cfa91._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__c7c47529._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__c88b63f7._.js +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__cba5f007._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__cbf4ceb0._.js +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__cefdba2f._.js +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__cf9e82bb._.js +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__d2897392._.js +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__d3b2d856._.js +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__d73273ca._.js +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__d8417eb6._.js +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__dc2a55de._.js +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__e0d4690b._.js +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__e3ea8547._.js +98 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__e678dd53._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__e9223f55._.js +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__ea630076._.js +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__f26ca49d._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__f33e1101._.js +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__f515f865._.js +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__fceb5d60._.js +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__fed41403._.js +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__ff2e98c2._.js +2 -2
- package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_benchmark_lobes_route_actions_ea7beadb.js +3 -0
- package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_benchmark_run_route_actions_9ed0ba41.js +3 -0
- package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_benchmark_runs_[id]_route_actions_39f90307.js +3 -0
- package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_benchmark_runs_route_actions_37cf958b.js +3 -0
- package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_benchmark_status_route_actions_009e2cba.js +3 -0
- package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_whisper_route_actions_be9a633d.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{_c1cfdd09._.js → [root-of-the-server]__16621ac5._.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/[root-of-the-server]__9c81bd86._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__e3bf6054._.js +5 -0
- package/.next/standalone/.next/server/chunks/ssr/{_81abf587._.js → _31ada310._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/_648a8a2d._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_999dae61._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_c48c91e5._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_f8959434._.js +3 -0
- 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_components_terminal_terminal-pane_tsx_803c5e2c._.js +9 -0
- package/.next/standalone/.next/server/edge/chunks/[root-of-the-server]__32a0045c._.js +1 -1
- package/.next/standalone/.next/server/edge/chunks/_d73df637._.js +1 -1
- package/.next/standalone/.next/server/middleware-manifest.json +5 -5
- package/.next/standalone/.next/server/pages/404.html +1 -1
- package/.next/standalone/.next/server/pages/500.html +2 -2
- package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/static/chunks/157826a3253f8ccf.js +7 -0
- package/.next/standalone/.next/static/chunks/{396eac60f496f178.js → 2f9f09924ff9d447.js} +1 -1
- package/.next/standalone/.next/static/chunks/{e23f20b51a75a5bb.js → 4ced66ef12d91b38.js} +35 -12
- package/.next/standalone/.next/static/chunks/57d04d161b8a01b3.js +7 -0
- package/.next/standalone/.next/static/chunks/709c4608e5b935e8.js +1 -0
- package/.next/standalone/.next/static/chunks/{7424664c6ffa94bd.js → 7b14d4e609b55b9b.js} +1 -1
- package/.next/standalone/.next/static/chunks/7be37f4a56b8f575.js +1 -0
- package/.next/standalone/.next/static/chunks/8021d5a2269ff113.js +1 -0
- package/.next/standalone/.next/static/chunks/a3fd93a9dde3cacc.js +1 -0
- package/.next/standalone/.next/static/chunks/{412140a02893327a.js → afee31c7399daf2a.js} +1 -1
- package/.next/standalone/.next/static/chunks/b92fdbf858aeb0b3.js +1 -0
- package/.next/standalone/.next/static/chunks/c17274c2f95d4ba2.js +5 -0
- package/.next/standalone/.next/static/chunks/e116953dc83d4eec.js +1 -0
- package/.next/standalone/.next/static/chunks/e82f4414650587cf.js +7 -0
- package/.next/standalone/.next/static/chunks/f6464729e7aa0da0.css +3 -0
- package/.next/standalone/LICENSE +661 -0
- package/.next/standalone/NOTICE +5 -0
- package/.next/standalone/README.md +131 -0
- package/.next/standalone/bin/cortex-hook.sh +62 -62
- package/.next/standalone/bin/cortex-mcp.js +60 -60
- package/.next/standalone/bin/fix-standalone-externals.js +79 -0
- package/.next/standalone/bin/lib/auto-setup.js +110 -0
- package/.next/standalone/bin/mdns-service.js +171 -0
- package/.next/standalone/bin/postinstall.js +35 -0
- package/.next/standalone/bin/setup-admin.js +195 -0
- package/.next/standalone/bin/spaces-dev.js +247 -0
- package/.next/standalone/bin/spaces-install.js +638 -0
- package/.next/standalone/bin/spaces-reset-totp.js +50 -0
- package/.next/standalone/bin/spaces-service.js +1020 -0
- package/.next/standalone/bin/spaces-setup.js +253 -0
- package/.next/standalone/bin/spaces.js +788 -0
- package/.next/standalone/bin/ssh-auth-keys.sh +68 -0
- package/.next/standalone/bin/terminal-server.js +1807 -0
- package/.next/standalone/docker-compose.yml +28 -0
- package/.next/standalone/docs/architecture.md +387 -0
- package/.next/standalone/docs/cortex.md +293 -0
- package/.next/standalone/docs/getting-started.md +96 -0
- package/.next/standalone/docs/plans/2026-02-24-multi-agent-sessions-design.md +133 -0
- package/.next/standalone/docs/plans/2026-02-24-multi-agent-sessions-plan.md +959 -0
- package/.next/standalone/docs/plans/2026-03-07-service-command-design.md +146 -0
- package/.next/standalone/docs/plans/2026-03-07-service-command-plan.md +254 -0
- package/.next/standalone/docs/server-install.md +564 -0
- package/.next/standalone/docs/social-card.html +150 -0
- package/.next/standalone/docs/superpowers/plans/2026-03-12-spaces-cortex.md +5270 -0
- package/.next/standalone/docs/superpowers/plans/2026-03-13-cortex-wiring.md +1387 -1387
- package/.next/standalone/docs/superpowers/plans/2026-03-14-cortex-v2-entity-graph.md +1923 -1923
- package/.next/standalone/docs/superpowers/plans/2026-03-14-cortex-v2-knowledge-evolution.md +1113 -1113
- package/.next/standalone/docs/superpowers/plans/2026-03-15-cortex-v2-boundary-engine.md +853 -853
- package/.next/standalone/docs/superpowers/plans/2026-03-15-cortex-v2-context-engine.md +1274 -1274
- package/.next/standalone/docs/superpowers/plans/2026-03-15-cortex-v2-signal-ingestion.md +933 -933
- package/.next/standalone/docs/superpowers/plans/2026-03-16-cortex-lobes.md +1080 -1080
- package/.next/standalone/docs/superpowers/plans/2026-03-16-cortex-v2-gravity-system.md +768 -768
- package/.next/standalone/docs/superpowers/plans/2026-03-16-cortex-v2-ui.md +1108 -1108
- package/.next/standalone/docs/superpowers/plans/2026-03-18-cortex-ui-integration.md +1846 -1846
- package/.next/standalone/docs/superpowers/plans/2026-03-19-vr-phase1-shell.md +1639 -0
- package/.next/standalone/docs/superpowers/specs/2026-03-11-universe-view-design.md +320 -0
- package/.next/standalone/docs/superpowers/specs/2026-03-12-spaces-brain-design.md +720 -0
- package/.next/standalone/docs/superpowers/specs/2026-03-13-cortex-wiring-design.md +268 -268
- package/.next/standalone/docs/superpowers/specs/2026-03-14-cortex-v2-design.md +623 -623
- package/.next/standalone/docs/superpowers/specs/2026-03-16-cortex-lobes-design.md +263 -263
- package/.next/standalone/docs/superpowers/specs/2026-03-16-cortex-v2-ui-design.md +240 -240
- package/.next/standalone/docs/superpowers/specs/2026-03-16-pane-ux-design.md +77 -0
- package/.next/standalone/docs/superpowers/specs/2026-03-18-cortex-ui-integration-design.md +341 -341
- package/.next/standalone/docs/superpowers/specs/2026-03-19-vr-phase1-shell-design.md +288 -0
- package/.next/standalone/docs/tiers.md +104 -0
- package/.next/standalone/eslint.config.mjs +18 -0
- package/.next/standalone/next.config.ts +20 -0
- package/.next/standalone/nginx.conf +53 -0
- package/.next/standalone/node_modules/@img/sharp-libvips-linux-x64/README.md +46 -0
- package/.next/standalone/node_modules/@img/sharp-libvips-linux-x64/lib/glib-2.0/include/glibconfig.h +221 -0
- package/.next/standalone/node_modules/@img/sharp-libvips-linux-x64/lib/index.js +1 -0
- package/.next/standalone/node_modules/@img/sharp-libvips-linux-x64/lib/libvips-cpp.so.8.17.3 +0 -0
- package/.next/standalone/node_modules/@img/sharp-libvips-linux-x64/package.json +42 -0
- package/.next/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/README.md +46 -0
- package/.next/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/glib-2.0/include/glibconfig.h +221 -0
- package/.next/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/index.js +1 -0
- package/.next/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/libvips-cpp.so.8.17.3 +0 -0
- package/.next/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/package.json +42 -0
- package/.next/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/versions.json +30 -0
- package/.next/standalone/node_modules/@img/sharp-linux-x64/lib/sharp-linux-x64.node +0 -0
- package/.next/standalone/node_modules/@img/{sharp-win32-x64 → sharp-linux-x64}/package.json +46 -39
- package/.next/standalone/node_modules/@img/sharp-linuxmusl-x64/lib/sharp-linuxmusl-x64.node +0 -0
- package/.next/standalone/node_modules/@img/sharp-linuxmusl-x64/package.json +46 -0
- package/.next/standalone/package-lock.json +14154 -0
- package/.next/standalone/package.json +104 -103
- package/.next/standalone/postcss.config.mjs +7 -0
- package/.next/standalone/scripts/rebuild.cmd +65 -0
- package/.next/standalone/scripts/rebuild.sh +59 -0
- package/.next/standalone/server.js +1 -1
- package/.next/standalone/src/app/(desktop)/admin/analytics/page.tsx +266 -0
- package/.next/standalone/src/app/(desktop)/admin/users/page.tsx +399 -0
- package/.next/standalone/src/app/(desktop)/analytics/page.tsx +166 -0
- package/.next/standalone/src/app/(desktop)/cortex/page.tsx +81 -78
- package/.next/standalone/src/app/(desktop)/dashboard-client.tsx +56 -0
- package/.next/standalone/src/app/(desktop)/layout.tsx +18 -0
- package/.next/standalone/src/app/(desktop)/network/page.tsx +137 -0
- package/.next/standalone/src/app/(desktop)/page.tsx +17 -0
- package/.next/standalone/src/app/(desktop)/projects/page.tsx +68 -0
- package/.next/standalone/src/app/(desktop)/sessions/[id]/page.tsx +519 -0
- package/.next/standalone/src/app/(desktop)/sessions/page.tsx +145 -0
- package/.next/standalone/src/app/(desktop)/settings/page.tsx +446 -0
- package/.next/standalone/src/app/(desktop)/terminal/layout.tsx +7 -0
- package/.next/standalone/src/app/(desktop)/terminal/page.tsx +1151 -0
- package/.next/standalone/src/app/(desktop)/terminal/pane/[id]/page.tsx +211 -0
- package/.next/standalone/src/app/(desktop)/terminal/remote/[nodeId]/[workspaceId]/page.tsx +192 -0
- package/.next/standalone/src/app/(desktop)/workspaces/page.tsx +12 -0
- package/.next/standalone/src/app/api/admin/analytics/route.ts +10 -0
- package/.next/standalone/src/app/api/admin/users/[id]/route.ts +20 -0
- package/.next/standalone/src/app/api/admin/users/route.ts +15 -0
- package/.next/standalone/src/app/api/analytics/overview/route.ts +80 -0
- package/.next/standalone/src/app/api/auth/login/route.ts +10 -0
- package/.next/standalone/src/app/api/auth/logout/route.ts +9 -0
- package/.next/standalone/src/app/api/auth/me/route.ts +22 -0
- package/.next/standalone/src/app/api/auth/totp/setup/route.ts +10 -0
- package/.next/standalone/src/app/api/auth/totp/status/route.ts +10 -0
- package/.next/standalone/src/app/api/auth/totp/verify/route.ts +10 -0
- package/.next/standalone/src/app/api/benchmark/lobes/route.ts +16 -0
- package/.next/standalone/src/app/api/benchmark/run/route.ts +92 -0
- package/.next/standalone/src/app/api/benchmark/runs/[id]/route.ts +26 -0
- package/.next/standalone/src/app/api/benchmark/runs/route.ts +16 -0
- package/.next/standalone/src/app/api/benchmark/status/route.ts +35 -0
- package/.next/standalone/src/app/api/bulk/route.ts +34 -0
- package/.next/standalone/src/app/api/chat/route.ts +85 -0
- package/.next/standalone/src/app/api/config/route.ts +30 -0
- package/.next/standalone/src/app/api/cortex/context/route.ts +78 -78
- package/.next/standalone/src/app/api/cortex/curation/assess/route.ts +27 -27
- package/.next/standalone/src/app/api/cortex/curation/publish/route.ts +23 -23
- package/.next/standalone/src/app/api/cortex/curation/refine/route.ts +23 -23
- package/.next/standalone/src/app/api/cortex/curation/review/route.ts +29 -29
- package/.next/standalone/src/app/api/cortex/curation/seed/route.ts +23 -23
- package/.next/standalone/src/app/api/cortex/export/route.ts +40 -40
- package/.next/standalone/src/app/api/cortex/federation/pending/route.ts +20 -20
- package/.next/standalone/src/app/api/cortex/federation/resolve/route.ts +43 -43
- package/.next/standalone/src/app/api/cortex/federation/search/route.ts +35 -35
- package/.next/standalone/src/app/api/cortex/federation/teach/route.ts +76 -76
- package/.next/standalone/src/app/api/cortex/graph/edges/route.ts +112 -112
- package/.next/standalone/src/app/api/cortex/graph/entities/[id]/route.ts +73 -73
- package/.next/standalone/src/app/api/cortex/graph/entities/route.ts +75 -75
- package/.next/standalone/src/app/api/cortex/graph/populate/route.ts +203 -203
- package/.next/standalone/src/app/api/cortex/import/route.ts +75 -75
- package/.next/standalone/src/app/api/cortex/import/status/route.ts +15 -15
- package/.next/standalone/src/app/api/cortex/ingest/bootstrap/route.ts +29 -29
- package/.next/standalone/src/app/api/cortex/ingest/status/route.ts +15 -15
- package/.next/standalone/src/app/api/cortex/knowledge/[id]/route.ts +91 -91
- package/.next/standalone/src/app/api/cortex/knowledge/route.ts +93 -93
- package/.next/standalone/src/app/api/cortex/lobes/[id]/route.ts +67 -67
- package/.next/standalone/src/app/api/cortex/lobes/route.ts +22 -22
- package/.next/standalone/src/app/api/cortex/lobes/share/route.ts +80 -80
- package/.next/standalone/src/app/api/cortex/marketplace/browse/route.ts +43 -43
- package/.next/standalone/src/app/api/cortex/marketplace/preview/route.ts +46 -46
- package/.next/standalone/src/app/api/cortex/mcp/call/route.ts +11 -11
- package/.next/standalone/src/app/api/cortex/mcp/tools/route.ts +6 -6
- package/.next/standalone/src/app/api/cortex/search/route.ts +43 -43
- package/.next/standalone/src/app/api/cortex/settings/route.ts +33 -33
- package/.next/standalone/src/app/api/cortex/status/route.ts +169 -169
- package/.next/standalone/src/app/api/cortex/timeline/route.ts +42 -42
- package/.next/standalone/src/app/api/cortex/usage/route.ts +31 -31
- package/.next/standalone/src/app/api/cortex/workspace/[id]/context/route.ts +41 -41
- package/.next/standalone/src/app/api/events/route.ts +40 -0
- package/.next/standalone/src/app/api/files/route.ts +187 -0
- package/.next/standalone/src/app/api/folders/route.ts +97 -0
- package/.next/standalone/src/app/api/network/connect-callback/route.ts +11 -0
- package/.next/standalone/src/app/api/network/connect-request/[id]/route.ts +11 -0
- package/.next/standalone/src/app/api/network/connect-request/route.ts +17 -0
- package/.next/standalone/src/app/api/network/discovered/route.ts +9 -0
- package/.next/standalone/src/app/api/network/handshake/route.ts +25 -0
- package/.next/standalone/src/app/api/network/health/route.ts +10 -0
- package/.next/standalone/src/app/api/network/identity/route.ts +15 -0
- package/.next/standalone/src/app/api/network/keys/[id]/route.ts +10 -0
- package/.next/standalone/src/app/api/network/keys/route.ts +15 -0
- package/.next/standalone/src/app/api/network/nodes/[id]/route.ts +15 -0
- package/.next/standalone/src/app/api/network/nodes/check/route.ts +9 -0
- package/.next/standalone/src/app/api/network/nodes/route.ts +15 -0
- package/.next/standalone/src/app/api/network/projects/route.ts +25 -0
- package/.next/standalone/src/app/api/network/proxy/[nodeId]/[...path]/route.ts +15 -0
- package/.next/standalone/src/app/api/network/search/route.ts +38 -0
- package/.next/standalone/src/app/api/network/sessions/[id]/messages/route.ts +36 -0
- package/.next/standalone/src/app/api/network/sessions/[id]/route.ts +34 -0
- package/.next/standalone/src/app/api/network/sessions/route.ts +43 -0
- package/.next/standalone/src/app/api/network/terminal/token/route.ts +10 -0
- package/.next/standalone/src/app/api/network/workspaces/[id]/route.ts +34 -0
- package/.next/standalone/src/app/api/network/workspaces/route.ts +61 -0
- package/.next/standalone/src/app/api/panes/[id]/route.ts +60 -0
- package/.next/standalone/src/app/api/panes/route.ts +39 -0
- package/.next/standalone/src/app/api/projects/route.ts +13 -0
- package/.next/standalone/src/app/api/search/route.ts +47 -0
- package/.next/standalone/src/app/api/sessions/[id]/chat/route.ts +120 -0
- package/.next/standalone/src/app/api/sessions/[id]/messages/route.ts +28 -0
- package/.next/standalone/src/app/api/sessions/[id]/route.ts +73 -0
- package/.next/standalone/src/app/api/sessions/route.ts +64 -0
- package/.next/standalone/src/app/api/sync/route.ts +24 -0
- package/.next/standalone/src/app/api/tags/route.ts +35 -0
- package/.next/standalone/src/app/api/tier/route.ts +16 -0
- package/.next/standalone/src/app/api/updates/route.ts +53 -0
- package/.next/standalone/src/app/api/whisper/route.ts +90 -0
- package/.next/standalone/src/app/api/workspaces/[id]/context/[key]/route.ts +39 -0
- package/.next/standalone/src/app/api/workspaces/[id]/context/route.ts +28 -0
- package/.next/standalone/src/app/api/workspaces/[id]/messages/[msgId]/route.ts +17 -0
- package/.next/standalone/src/app/api/workspaces/[id]/messages/route.ts +39 -0
- package/.next/standalone/src/app/api/workspaces/[id]/route.ts +47 -0
- package/.next/standalone/src/app/api/workspaces/[id]/sessions/route.ts +62 -0
- package/.next/standalone/src/app/api/workspaces/route.ts +79 -0
- package/.next/standalone/src/app/globals.css +85 -0
- package/.next/standalone/src/app/icon.png +0 -0
- package/.next/standalone/src/app/layout.tsx +33 -0
- package/.next/standalone/src/app/login/layout.tsx +7 -0
- package/.next/standalone/src/app/login/page.tsx +315 -0
- package/.next/standalone/src/app/m/layout.tsx +16 -0
- package/.next/standalone/src/app/m/page.tsx +118 -0
- package/.next/standalone/src/app/m/projects/page.tsx +64 -0
- package/.next/standalone/src/app/m/sessions/[id]/page.tsx +168 -0
- package/.next/standalone/src/app/m/sessions/page.tsx +177 -0
- package/.next/standalone/src/app/m/settings/page.tsx +230 -0
- package/.next/standalone/src/app/m/terminal/page.tsx +413 -0
- package/.next/standalone/src/app/vr/page.tsx +21 -0
- package/.next/standalone/src/app/vr/vr-app.tsx +163 -0
- package/.next/standalone/src/app/vr/vr-controls.tsx +139 -0
- package/.next/standalone/src/app/vr/vr-door.tsx +82 -0
- package/.next/standalone/src/app/vr/vr-environment.tsx +71 -0
- package/.next/standalone/src/app/vr/vr-gaze.tsx +89 -0
- package/.next/standalone/src/app/vr/vr-layout.ts +49 -0
- package/.next/standalone/src/app/vr/vr-lobby.tsx +97 -0
- package/.next/standalone/src/app/vr/vr-pane.tsx +195 -0
- package/.next/standalone/src/app/vr/vr-room.tsx +79 -0
- package/.next/standalone/src/app/vr/vr-terminal.tsx +303 -0
- package/.next/standalone/src/components/auth/totp-gate.tsx +183 -0
- package/.next/standalone/src/components/bus/activity-panel.tsx +261 -0
- package/.next/standalone/src/components/common/color-picker.tsx +35 -0
- package/.next/standalone/src/components/common/dev-directory-picker.tsx +339 -0
- package/.next/standalone/src/components/common/folder-picker.tsx +200 -0
- package/.next/standalone/src/components/common/tag-picker.tsx +190 -0
- package/.next/standalone/src/components/common/workspace-picker.tsx +113 -0
- package/.next/standalone/src/components/cortex/benchmark-tab.tsx +880 -0
- package/.next/standalone/src/components/cortex/constants.ts +29 -29
- package/.next/standalone/src/components/cortex/cortex-dashboard.tsx +304 -304
- package/.next/standalone/src/components/cortex/cortex-indicator.tsx +44 -44
- package/.next/standalone/src/components/cortex/cortex-panel.tsx +140 -140
- package/.next/standalone/src/components/cortex/cortex-settings.tsx +221 -221
- package/.next/standalone/src/components/cortex/curation-tab.tsx +810 -810
- package/.next/standalone/src/components/cortex/entity-detail.tsx +101 -101
- package/.next/standalone/src/components/cortex/entity-graph.tsx +382 -382
- package/.next/standalone/src/components/cortex/import-dialog.tsx +212 -212
- package/.next/standalone/src/components/cortex/injection-badge.tsx +72 -72
- package/.next/standalone/src/components/cortex/knowledge-card.tsx +109 -109
- package/.next/standalone/src/components/cortex/knowledge-tab.tsx +158 -158
- package/.next/standalone/src/components/cortex/lobe-settings.tsx +215 -215
- package/.next/standalone/src/components/cortex/marketplace-card.tsx +126 -126
- package/.next/standalone/src/components/cortex/marketplace-tab.tsx +113 -113
- package/.next/standalone/src/components/dashboard/activity-chart.tsx +41 -0
- package/.next/standalone/src/components/dashboard/model-usage-chart.tsx +61 -0
- package/.next/standalone/src/components/dashboard/recent-sessions.tsx +68 -0
- package/.next/standalone/src/components/dashboard/stats-cards.tsx +36 -0
- package/.next/standalone/src/components/files/file-explorer.tsx +703 -0
- package/.next/standalone/src/components/layout/providers.tsx +38 -0
- package/.next/standalone/src/components/layout/sidebar.tsx +170 -0
- package/.next/standalone/src/components/layout/tier-provider.tsx +53 -0
- package/.next/standalone/src/components/layout/update-banner.tsx +92 -0
- package/.next/standalone/src/components/mobile/bottom-nav.tsx +46 -0
- package/.next/standalone/src/components/mobile/mobile-chat-input.tsx +244 -0
- package/.next/standalone/src/components/mobile/mobile-header.tsx +44 -0
- package/.next/standalone/src/components/mobile/mobile-session-card.tsx +56 -0
- package/.next/standalone/src/components/mobile/mobile-terminal-input.tsx +71 -0
- package/.next/standalone/src/components/mobile/mobile-terminal-pane.tsx +300 -0
- package/.next/standalone/src/components/mobile/mobile-terminal-toolbar.tsx +53 -0
- package/.next/standalone/src/components/mobile/pull-to-refresh.tsx +82 -0
- package/.next/standalone/src/components/mobile/voice-input.tsx +53 -0
- package/.next/standalone/src/components/network/api-key-list.tsx +190 -0
- package/.next/standalone/src/components/network/connection-requests.tsx +94 -0
- package/.next/standalone/src/components/network/node-add-dialog.tsx +131 -0
- package/.next/standalone/src/components/network/node-badge.tsx +26 -0
- package/.next/standalone/src/components/network/node-list.tsx +207 -0
- package/.next/standalone/src/components/network/node-selector.tsx +49 -0
- package/.next/standalone/src/components/sessions/session-filters.tsx +116 -0
- package/.next/standalone/src/components/sessions/session-list.tsx +485 -0
- package/.next/standalone/src/components/terminal/terminal-pane.tsx +874 -0
- package/.next/standalone/src/components/viewer/chat-input.tsx +275 -0
- package/.next/standalone/src/components/viewer/message-renderer.tsx +551 -0
- package/.next/standalone/src/components/workspace/universe-cluster.tsx +131 -0
- package/.next/standalone/src/components/workspace/universe-orb.tsx +128 -0
- package/.next/standalone/src/components/workspace/universe-types.ts +22 -0
- package/.next/standalone/src/components/workspace/universe-utils.ts +11 -0
- package/.next/standalone/src/components/workspace/universe-view.tsx +397 -0
- package/.next/standalone/src/components/workspace/workspace-chooser.tsx +616 -0
- package/.next/standalone/src/hooks/use-benchmark.ts +71 -0
- package/.next/standalone/src/hooks/use-bus.ts +147 -0
- package/.next/standalone/src/hooks/use-idle-detection.ts +79 -0
- package/.next/standalone/src/hooks/use-network.ts +229 -0
- package/.next/standalone/src/hooks/use-sessions.ts +437 -0
- package/.next/standalone/src/hooks/use-speech-recognition.ts +113 -0
- package/.next/standalone/src/hooks/use-sse.ts +35 -0
- package/.next/standalone/src/hooks/use-tier.ts +39 -0
- package/.next/standalone/src/lib/agents.ts +70 -0
- package/.next/standalone/src/lib/aider/parser.ts +111 -0
- package/.next/standalone/src/lib/api.ts +19 -0
- package/.next/standalone/src/lib/auth.ts +47 -0
- package/.next/standalone/src/lib/claude/parser.ts +212 -0
- package/.next/standalone/src/lib/claude/stats.ts +204 -0
- package/.next/standalone/src/lib/codex/parser.ts +265 -0
- package/.next/standalone/src/lib/config.ts +115 -0
- package/.next/standalone/src/lib/cortex/benchmark.ts +67 -0
- package/.next/standalone/src/lib/cortex/config.ts +40 -40
- package/.next/standalone/src/lib/cortex/debug.ts +10 -10
- package/.next/standalone/src/lib/cortex/distillation/usage-store.ts +18 -18
- package/.next/standalone/src/lib/cortex/graph/resolver.ts +10 -10
- package/.next/standalone/src/lib/cortex/graph/types.ts +22 -22
- package/.next/standalone/src/lib/cortex/index.ts +56 -56
- package/.next/standalone/src/lib/cortex/ingestion/bootstrap.ts +14 -14
- package/.next/standalone/src/lib/cortex/knowledge/compat.ts +14 -14
- package/.next/standalone/src/lib/cortex/knowledge/contradiction.ts +10 -10
- package/.next/standalone/src/lib/cortex/knowledge/types.ts +67 -67
- package/.next/standalone/src/lib/cortex/lobes/config.ts +16 -16
- package/.next/standalone/src/lib/cortex/lobes/resolver.ts +8 -8
- package/.next/standalone/src/lib/cortex/lobes/shares.ts +14 -14
- package/.next/standalone/src/lib/cortex/mcp/server.ts +8 -8
- package/.next/standalone/src/lib/cortex/portability/exporter.ts +6 -6
- package/.next/standalone/src/lib/cortex/portability/importer.ts +10 -10
- package/.next/standalone/src/lib/cortex/retrieval/context-engine.ts +10 -10
- package/.next/standalone/src/lib/cortex/types.ts +39 -39
- package/.next/standalone/src/lib/cost-calculator.ts +48 -0
- package/.next/standalone/src/lib/db/init.ts +71 -0
- package/.next/standalone/src/lib/db/queries.ts +718 -0
- package/.next/standalone/src/lib/db/schema.ts +202 -0
- package/.next/standalone/src/lib/events/sse.ts +36 -0
- package/.next/standalone/src/lib/gemini/parser.ts +216 -0
- package/.next/standalone/src/lib/license.ts +56 -0
- package/.next/standalone/src/lib/pro.ts +31 -0
- package/.next/standalone/src/lib/sync/indexer.ts +429 -0
- package/.next/standalone/src/lib/sync/watcher.ts +64 -0
- package/.next/standalone/src/lib/teams.ts +31 -0
- package/.next/standalone/src/lib/telemetry.ts +75 -0
- package/.next/standalone/src/lib/terminal/server.ts +128 -0
- package/.next/standalone/src/lib/tier.ts +38 -0
- package/.next/standalone/src/lib/utils.ts +72 -0
- package/.next/standalone/src/middleware.ts +133 -0
- package/.next/standalone/src/types/claude.ts +208 -0
- package/.next/standalone/src/types/network.ts +61 -0
- package/.next/standalone/tests/setup.ts +8 -0
- package/.next/standalone/tsconfig.json +34 -34
- package/.next/standalone/vitest.config.ts +24 -0
- package/LICENSE +661 -661
- package/README.md +131 -131
- package/bin/cortex-hook.sh +62 -62
- package/bin/cortex-mcp.js +60 -60
- package/bin/fix-standalone-externals.js +79 -79
- package/bin/lib/auto-setup.js +110 -110
- package/bin/mdns-service.js +171 -171
- package/bin/postinstall.js +35 -35
- package/bin/setup-admin.js +195 -195
- package/bin/spaces-dev.js +247 -208
- package/bin/spaces-install.js +638 -599
- package/bin/spaces-reset-totp.js +50 -50
- package/bin/spaces-service.js +1020 -1020
- package/bin/spaces-setup.js +253 -253
- package/bin/spaces.js +788 -776
- package/bin/ssh-auth-keys.sh +68 -68
- package/bin/terminal-server.js +1807 -1683
- package/package.json +104 -103
- package/.next/standalone/.claude/settings.local.json +0 -55
- package/.next/standalone/.claude/spaces-env.json +0 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__eb8acb65._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__e921fdfc._.js +0 -5
- package/.next/standalone/.next/server/chunks/ssr/_2230ad2d._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_5cf334fd._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_db0abd0a._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_db2fec84._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_f4e57187._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/src_40fa36ce._.js +0 -7
- package/.next/standalone/.next/static/chunks/003e7aa1adfe577d.js +0 -1
- package/.next/standalone/.next/static/chunks/232d8aae4fefab70.js +0 -1
- package/.next/standalone/.next/static/chunks/5325351ef49cb65f.js +0 -1
- package/.next/standalone/.next/static/chunks/559735e598ca3cbb.js +0 -1
- package/.next/standalone/.next/static/chunks/5d5d7b0095dd52ae.js +0 -1
- package/.next/standalone/.next/static/chunks/7a7c0d9d875332a3.js +0 -1
- package/.next/standalone/.next/static/chunks/898f380eba90427a.js +0 -1
- package/.next/standalone/.next/static/chunks/95339e55722bb4ca.js +0 -5
- package/.next/standalone/.next/static/chunks/9cd594813c539df9.js +0 -1
- package/.next/standalone/.next/static/chunks/aae9e0fa485bd835.js +0 -5
- package/.next/standalone/.next/static/chunks/c1a95aebf6725f64.css +0 -3
- package/.next/standalone/.next/static/chunks/c515eb77d9410aa0.js +0 -5
- package/.next/standalone/.next/static/chunks/d9ae203a7f123546.js +0 -5
- package/.next/standalone/.next/static/chunks/f9f2628207848ac2.js +0 -1
- package/.next/standalone/.spaces/cortex-context.md +0 -70
- package/.next/standalone/node_modules/@img/sharp-win32-x64/lib/sharp-win32-x64.node +0 -0
- /package/.next/standalone/.next/static/{ncDe4k4gvD0788HAnq_3G → PcpzUspSK8QDdwzAJz8br}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{ncDe4k4gvD0788HAnq_3G → PcpzUspSK8QDdwzAJz8br}/_clientMiddlewareManifest.json +0 -0
- /package/.next/standalone/.next/static/{ncDe4k4gvD0788HAnq_3G → PcpzUspSK8QDdwzAJz8br}/_ssgManifest.js +0 -0
- /package/.next/standalone/node_modules/@img/{sharp-win32-x64 → sharp-libvips-linux-x64}/versions.json +0 -0
|
@@ -1,263 +1,263 @@
|
|
|
1
|
-
# Cortex Lobes: Knowledge Compartments and Sharing
|
|
2
|
-
|
|
3
|
-
**Date:** 2026-03-16
|
|
4
|
-
**Status:** Design approved, pending implementation plan
|
|
5
|
-
**Scope:** Add knowledge compartmentalization ("lobes") to Cortex with workspace-level access control, privacy, exclusions, and cross-user sharing
|
|
6
|
-
|
|
7
|
-
## Overview
|
|
8
|
-
|
|
9
|
-
Every workspace in Spaces has a **lobe** — its compartment of learned knowledge within Cortex. By default, your workspaces can pull knowledge from each other's lobes. Workspaces can be marked private, excluded from specific other workspaces, or shared with other users. Other users' lobes are closed by default and require explicit sharing + acceptance.
|
|
10
|
-
|
|
11
|
-
### Terminology
|
|
12
|
-
|
|
13
|
-
- **Lobe** — a compartment of knowledge associated with a workspace, team, department, or organization. Named after the lobes of the cerebral cortex. Each lobe specializes in the knowledge accumulated from its context.
|
|
14
|
-
- **Subscription** — when a workspace pulls knowledge from a lobe
|
|
15
|
-
- **Sharing** — when a user makes their lobe available to other users
|
|
16
|
-
|
|
17
|
-
## Access Rules
|
|
18
|
-
|
|
19
|
-
### Same User (default behavior)
|
|
20
|
-
|
|
21
|
-
| Scenario | Access |
|
|
22
|
-
|----------|--------|
|
|
23
|
-
| Workspace A queries Workspace B's lobe | **Allowed** (default) |
|
|
24
|
-
| Workspace A queries a private workspace's lobe | **Denied** |
|
|
25
|
-
| Workspace A has Workspace B excluded | **Denied** |
|
|
26
|
-
| Workspace A queries personal lobe | **Allowed** (always) |
|
|
27
|
-
| Workspace A queries team/dept/org lobes | **Allowed** (via entity graph inheritance) |
|
|
28
|
-
|
|
29
|
-
**Default:** All your workspaces can see all your other workspaces' lobes. Open by default, restrict when needed.
|
|
30
|
-
|
|
31
|
-
### Cross-User
|
|
32
|
-
|
|
33
|
-
| Scenario | Access |
|
|
34
|
-
|----------|--------|
|
|
35
|
-
| User A queries User B's lobe | **Denied** (default) |
|
|
36
|
-
| User B shares a lobe with User A, User A accepts | **Allowed** |
|
|
37
|
-
| User B revokes sharing | **Denied** again |
|
|
38
|
-
| Team lobe (shared by team membership) | **Allowed** for team members |
|
|
39
|
-
| Org lobe (trickled-down decisions) | **Allowed** for org members |
|
|
40
|
-
|
|
41
|
-
**Default:** Other users' workspace lobes are invisible. Team/dept/org lobes are accessible through the entity graph hierarchy (already implemented in the Boundary Engine).
|
|
42
|
-
|
|
43
|
-
## Data Model
|
|
44
|
-
|
|
45
|
-
### Workspace Lobe Configuration
|
|
46
|
-
|
|
47
|
-
Each workspace gets a lobe configuration stored as JSON in the workspaces table:
|
|
48
|
-
|
|
49
|
-
```typescript
|
|
50
|
-
interface LobeConfig {
|
|
51
|
-
// Privacy
|
|
52
|
-
isPrivate: boolean; // If true, no other workspace can pull from this lobe
|
|
53
|
-
|
|
54
|
-
// Exclusions — workspaces that CANNOT pull from this lobe
|
|
55
|
-
excludedFrom: number[]; // workspace IDs that are blocked
|
|
56
|
-
|
|
57
|
-
// Inclusions — additional lobes this workspace subscribes to
|
|
58
|
-
subscriptions: LobeSubscription[];
|
|
59
|
-
|
|
60
|
-
// Tags on this workspace's lobe (for tag-based subscription)
|
|
61
|
-
tags: string[];
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
interface LobeSubscription {
|
|
65
|
-
type: 'workspace' | 'user' | 'tag' | 'team' | 'department' | 'organization';
|
|
66
|
-
id: string; // workspace ID, user entity ID, tag name, etc.
|
|
67
|
-
label: string; // display name
|
|
68
|
-
accepted: boolean; // for cross-user: has the subscriber accepted?
|
|
69
|
-
}
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
### Cross-User Sharing
|
|
73
|
-
|
|
74
|
-
Sharing is a two-step handshake:
|
|
75
|
-
|
|
76
|
-
1. **Owner shares:** User B marks their lobe as shared with User A (creates a share record)
|
|
77
|
-
2. **Recipient accepts:** User A sees the shared lobe offer and accepts it (adds subscription)
|
|
78
|
-
|
|
79
|
-
```typescript
|
|
80
|
-
interface LobeShare {
|
|
81
|
-
id: string;
|
|
82
|
-
ownerUserId: string; // who is sharing
|
|
83
|
-
ownerWorkspaceId: number; // which workspace's lobe
|
|
84
|
-
ownerLobeName: string; // display name
|
|
85
|
-
sharedWithUserId: string; // who it's shared with
|
|
86
|
-
accepted: boolean; // has recipient accepted?
|
|
87
|
-
created: string;
|
|
88
|
-
}
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
Storage: `lobe_shares` table in the entity graph SQLite database.
|
|
92
|
-
|
|
93
|
-
### Defaults
|
|
94
|
-
|
|
95
|
-
New workspace lobe config:
|
|
96
|
-
```json
|
|
97
|
-
{
|
|
98
|
-
"isPrivate": false,
|
|
99
|
-
"excludedFrom": [],
|
|
100
|
-
"subscriptions": [],
|
|
101
|
-
"tags": []
|
|
102
|
-
}
|
|
103
|
-
```
|
|
104
|
-
|
|
105
|
-
This means: open to all your workspaces, no exclusions, no extra subscriptions, no tags. The workspace automatically inherits from personal + team + dept + org lobes through the entity graph.
|
|
106
|
-
|
|
107
|
-
## How It Integrates with Context Assembly
|
|
108
|
-
|
|
109
|
-
### Current Flow (Pillar 3)
|
|
110
|
-
|
|
111
|
-
The Context Assembly Engine's `computeSourceWeights()` currently searches three hardcoded layers: personal, workspace, team.
|
|
112
|
-
|
|
113
|
-
### New Flow
|
|
114
|
-
|
|
115
|
-
Replace the hardcoded layer list with a dynamic scope list built from the workspace's lobe configuration:
|
|
116
|
-
|
|
117
|
-
```
|
|
118
|
-
1. Start with workspace's own lobe (always included)
|
|
119
|
-
2. Add personal lobe (always included)
|
|
120
|
-
3. Add inherited lobes from entity graph (team → dept → org)
|
|
121
|
-
4. Add explicit subscriptions from LobeConfig
|
|
122
|
-
5. Remove any that are private or excluded
|
|
123
|
-
6. Remove any cross-user lobes that aren't shared+accepted
|
|
124
|
-
7. Pass remaining scopes to the Context Assembly Engine
|
|
125
|
-
```
|
|
126
|
-
|
|
127
|
-
The weight computation stays the same — graph proximity determines weight. Subscribed lobes that aren't in the natural graph path get a base weight of 0.4 (lower than inherited but still present).
|
|
128
|
-
|
|
129
|
-
### Storage Mapping
|
|
130
|
-
|
|
131
|
-
Each workspace's lobe corresponds to a LanceDB storage path:
|
|
132
|
-
- Workspace 42's lobe → `workspace/42` (already exists)
|
|
133
|
-
- Personal lobe → `personal` (already exists)
|
|
134
|
-
- Team lobe → `team` (already exists)
|
|
135
|
-
|
|
136
|
-
No new storage structures needed. Lobes are a **view layer** on top of existing knowledge storage, controlling which storage paths are searched.
|
|
137
|
-
|
|
138
|
-
## API Changes
|
|
139
|
-
|
|
140
|
-
### New Endpoints
|
|
141
|
-
|
|
142
|
-
```
|
|
143
|
-
GET /api/cortex/lobes — list all accessible lobes for current user
|
|
144
|
-
GET /api/cortex/lobes/:workspaceId — get lobe config for a workspace
|
|
145
|
-
PUT /api/cortex/lobes/:workspaceId — update lobe config (privacy, exclusions, tags)
|
|
146
|
-
POST /api/cortex/lobes/:workspaceId/subscribe — add a subscription
|
|
147
|
-
DELETE /api/cortex/lobes/:workspaceId/subscribe/:id — remove a subscription
|
|
148
|
-
POST /api/cortex/lobes/share — share a lobe with another user
|
|
149
|
-
POST /api/cortex/lobes/share/:id/accept — accept a shared lobe
|
|
150
|
-
DELETE /api/cortex/lobes/share/:id — revoke or decline a share
|
|
151
|
-
GET /api/cortex/lobes/shares — list incoming/outgoing shares
|
|
152
|
-
```
|
|
153
|
-
|
|
154
|
-
### Modified Endpoints
|
|
155
|
-
|
|
156
|
-
```
|
|
157
|
-
GET /api/cortex/context — now accepts optional workspace_id to resolve lobe config
|
|
158
|
-
```
|
|
159
|
-
|
|
160
|
-
## UI
|
|
161
|
-
|
|
162
|
-
### Workspace Settings → "Knowledge Lobes" Section
|
|
163
|
-
|
|
164
|
-
Simple settings panel within existing workspace settings:
|
|
165
|
-
|
|
166
|
-
**Status line:** "This workspace draws from 4 lobes" (count of active sources)
|
|
167
|
-
|
|
168
|
-
**Privacy toggle:** "Private lobe — other workspaces can't access this knowledge"
|
|
169
|
-
|
|
170
|
-
**Tags input:** chip-style tag input for labeling this workspace's lobe
|
|
171
|
-
|
|
172
|
-
**Active sources list:** shows all lobes this workspace pulls from:
|
|
173
|
-
- Own workspace (always, can't remove)
|
|
174
|
-
- Personal (always, can't remove)
|
|
175
|
-
- Team: Platform (inherited, can mute)
|
|
176
|
-
- Org: Acme Corp (inherited, can mute)
|
|
177
|
-
- Workspace: Auth Service (subscribed, can remove)
|
|
178
|
-
- Tag: infrastructure (subscribed, can remove)
|
|
179
|
-
- Shared: Bob's Security workspace (cross-user, can remove)
|
|
180
|
-
|
|
181
|
-
**"Add source" button:** dropdown/search to subscribe to:
|
|
182
|
-
- Another workspace (by name)
|
|
183
|
-
- A tag
|
|
184
|
-
- A team/department
|
|
185
|
-
- A shared lobe from another user
|
|
186
|
-
|
|
187
|
-
**Exclusions section** (collapsed by default): "Exclude specific workspaces from accessing this lobe" — multi-select of workspace names.
|
|
188
|
-
|
|
189
|
-
### Shared Lobes Section (in main Cortex page or settings)
|
|
190
|
-
|
|
191
|
-
**Incoming shares:** "Bob shared 'Security Workspace' with you" — Accept / Decline buttons
|
|
192
|
-
**Outgoing shares:** "You shared 'Platform' with Alice" — Revoke button
|
|
193
|
-
|
|
194
|
-
## Implementation Notes
|
|
195
|
-
|
|
196
|
-
### Where Lobe Config Lives
|
|
197
|
-
|
|
198
|
-
Option A: JSON column on workspaces table (`lobe_config TEXT DEFAULT '{}'`)
|
|
199
|
-
Option B: Separate `workspace_lobe_config` table
|
|
200
|
-
|
|
201
|
-
**Recommendation: Option A** — it's simpler, the config is small, and it's always loaded with the workspace. Add a migration to add the column.
|
|
202
|
-
|
|
203
|
-
### Integration with Boundary Engine
|
|
204
|
-
|
|
205
|
-
The lobe system sits ABOVE the boundary engine. Lobes determine which scopes are searched. The boundary engine then filters individual results by sensitivity/policy/creator-override within those scopes. They compose naturally:
|
|
206
|
-
|
|
207
|
-
```
|
|
208
|
-
Lobe Config → determines searchable scopes
|
|
209
|
-
↓
|
|
210
|
-
Context Assembly Engine → searches those scopes
|
|
211
|
-
↓
|
|
212
|
-
Boundary Engine → filters results by access control
|
|
213
|
-
↓
|
|
214
|
-
User sees results
|
|
215
|
-
```
|
|
216
|
-
|
|
217
|
-
### Cross-User Sharing Security
|
|
218
|
-
|
|
219
|
-
When User A searches a lobe shared by User B:
|
|
220
|
-
- The search runs against User B's workspace storage
|
|
221
|
-
- The Boundary Engine still applies — confidential/restricted knowledge is filtered
|
|
222
|
-
- The sensitivity auto-classifier already marks sensitive content appropriately
|
|
223
|
-
- Audit trail logs cross-user access for compliance
|
|
224
|
-
|
|
225
|
-
### Consulting Firm Scenario
|
|
226
|
-
|
|
227
|
-
Setup for a consulting firm with clients Initech and Globex:
|
|
228
|
-
|
|
229
|
-
1. Create workspaces: "Initech Project", "Globex Project", "Internal"
|
|
230
|
-
2. Mark "Initech Project" with tag `initech`, mark private
|
|
231
|
-
3. Mark "Globex Project" with tag `globex`, mark private
|
|
232
|
-
4. "Internal" workspace: default (pulls from everything non-private)
|
|
233
|
-
5. "Initech Project": remove "Globex Project" from accessible lobes (it's already excluded by privacy, belt + suspenders)
|
|
234
|
-
6. Result: Initech workspace sees only its own knowledge + personal + team + org. Never sees Globex. Globex never sees Initech. Internal sees both (org-level patterns only, not private workspace knowledge).
|
|
235
|
-
|
|
236
|
-
## File Structure
|
|
237
|
-
|
|
238
|
-
```
|
|
239
|
-
New files:
|
|
240
|
-
├── src/lib/cortex/lobes/config.ts — LobeConfig types and defaults
|
|
241
|
-
├── src/lib/cortex/lobes/resolver.ts — Resolve accessible lobes for a workspace
|
|
242
|
-
├── src/lib/cortex/lobes/shares.ts — Cross-user sharing logic
|
|
243
|
-
├── src/lib/cortex/lobes/index.ts — Barrel export
|
|
244
|
-
├── src/app/api/cortex/lobes/route.ts — List/get lobes
|
|
245
|
-
├── src/app/api/cortex/lobes/[id]/route.ts — Update lobe config
|
|
246
|
-
├── src/app/api/cortex/lobes/share/route.ts — Share management
|
|
247
|
-
├── src/components/cortex/lobe-settings.tsx — UI component
|
|
248
|
-
|
|
249
|
-
Modified files:
|
|
250
|
-
├── src/lib/cortex/retrieval/context-engine.ts — Use lobe resolver for search scopes
|
|
251
|
-
├── src/lib/db/queries.ts — Add lobe_config column to workspaces
|
|
252
|
-
├── src/app/(desktop)/cortex/page.tsx — Add Lobes tab or integrate into Settings
|
|
253
|
-
```
|
|
254
|
-
|
|
255
|
-
## Success Criteria
|
|
256
|
-
|
|
257
|
-
- New workspaces see knowledge from all non-private sibling workspaces by default
|
|
258
|
-
- Marking a workspace private immediately hides its knowledge from other workspaces
|
|
259
|
-
- Excluding a workspace prevents bidirectional knowledge access
|
|
260
|
-
- Cross-user sharing requires explicit share + accept handshake
|
|
261
|
-
- Consulting scenario works: private client workspaces with no cross-contamination
|
|
262
|
-
- Context Assembly Engine respects lobe config within <150ms (no performance regression)
|
|
263
|
-
- All access decisions logged in audit trail
|
|
1
|
+
# Cortex Lobes: Knowledge Compartments and Sharing
|
|
2
|
+
|
|
3
|
+
**Date:** 2026-03-16
|
|
4
|
+
**Status:** Design approved, pending implementation plan
|
|
5
|
+
**Scope:** Add knowledge compartmentalization ("lobes") to Cortex with workspace-level access control, privacy, exclusions, and cross-user sharing
|
|
6
|
+
|
|
7
|
+
## Overview
|
|
8
|
+
|
|
9
|
+
Every workspace in Spaces has a **lobe** — its compartment of learned knowledge within Cortex. By default, your workspaces can pull knowledge from each other's lobes. Workspaces can be marked private, excluded from specific other workspaces, or shared with other users. Other users' lobes are closed by default and require explicit sharing + acceptance.
|
|
10
|
+
|
|
11
|
+
### Terminology
|
|
12
|
+
|
|
13
|
+
- **Lobe** — a compartment of knowledge associated with a workspace, team, department, or organization. Named after the lobes of the cerebral cortex. Each lobe specializes in the knowledge accumulated from its context.
|
|
14
|
+
- **Subscription** — when a workspace pulls knowledge from a lobe
|
|
15
|
+
- **Sharing** — when a user makes their lobe available to other users
|
|
16
|
+
|
|
17
|
+
## Access Rules
|
|
18
|
+
|
|
19
|
+
### Same User (default behavior)
|
|
20
|
+
|
|
21
|
+
| Scenario | Access |
|
|
22
|
+
|----------|--------|
|
|
23
|
+
| Workspace A queries Workspace B's lobe | **Allowed** (default) |
|
|
24
|
+
| Workspace A queries a private workspace's lobe | **Denied** |
|
|
25
|
+
| Workspace A has Workspace B excluded | **Denied** |
|
|
26
|
+
| Workspace A queries personal lobe | **Allowed** (always) |
|
|
27
|
+
| Workspace A queries team/dept/org lobes | **Allowed** (via entity graph inheritance) |
|
|
28
|
+
|
|
29
|
+
**Default:** All your workspaces can see all your other workspaces' lobes. Open by default, restrict when needed.
|
|
30
|
+
|
|
31
|
+
### Cross-User
|
|
32
|
+
|
|
33
|
+
| Scenario | Access |
|
|
34
|
+
|----------|--------|
|
|
35
|
+
| User A queries User B's lobe | **Denied** (default) |
|
|
36
|
+
| User B shares a lobe with User A, User A accepts | **Allowed** |
|
|
37
|
+
| User B revokes sharing | **Denied** again |
|
|
38
|
+
| Team lobe (shared by team membership) | **Allowed** for team members |
|
|
39
|
+
| Org lobe (trickled-down decisions) | **Allowed** for org members |
|
|
40
|
+
|
|
41
|
+
**Default:** Other users' workspace lobes are invisible. Team/dept/org lobes are accessible through the entity graph hierarchy (already implemented in the Boundary Engine).
|
|
42
|
+
|
|
43
|
+
## Data Model
|
|
44
|
+
|
|
45
|
+
### Workspace Lobe Configuration
|
|
46
|
+
|
|
47
|
+
Each workspace gets a lobe configuration stored as JSON in the workspaces table:
|
|
48
|
+
|
|
49
|
+
```typescript
|
|
50
|
+
interface LobeConfig {
|
|
51
|
+
// Privacy
|
|
52
|
+
isPrivate: boolean; // If true, no other workspace can pull from this lobe
|
|
53
|
+
|
|
54
|
+
// Exclusions — workspaces that CANNOT pull from this lobe
|
|
55
|
+
excludedFrom: number[]; // workspace IDs that are blocked
|
|
56
|
+
|
|
57
|
+
// Inclusions — additional lobes this workspace subscribes to
|
|
58
|
+
subscriptions: LobeSubscription[];
|
|
59
|
+
|
|
60
|
+
// Tags on this workspace's lobe (for tag-based subscription)
|
|
61
|
+
tags: string[];
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
interface LobeSubscription {
|
|
65
|
+
type: 'workspace' | 'user' | 'tag' | 'team' | 'department' | 'organization';
|
|
66
|
+
id: string; // workspace ID, user entity ID, tag name, etc.
|
|
67
|
+
label: string; // display name
|
|
68
|
+
accepted: boolean; // for cross-user: has the subscriber accepted?
|
|
69
|
+
}
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### Cross-User Sharing
|
|
73
|
+
|
|
74
|
+
Sharing is a two-step handshake:
|
|
75
|
+
|
|
76
|
+
1. **Owner shares:** User B marks their lobe as shared with User A (creates a share record)
|
|
77
|
+
2. **Recipient accepts:** User A sees the shared lobe offer and accepts it (adds subscription)
|
|
78
|
+
|
|
79
|
+
```typescript
|
|
80
|
+
interface LobeShare {
|
|
81
|
+
id: string;
|
|
82
|
+
ownerUserId: string; // who is sharing
|
|
83
|
+
ownerWorkspaceId: number; // which workspace's lobe
|
|
84
|
+
ownerLobeName: string; // display name
|
|
85
|
+
sharedWithUserId: string; // who it's shared with
|
|
86
|
+
accepted: boolean; // has recipient accepted?
|
|
87
|
+
created: string;
|
|
88
|
+
}
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
Storage: `lobe_shares` table in the entity graph SQLite database.
|
|
92
|
+
|
|
93
|
+
### Defaults
|
|
94
|
+
|
|
95
|
+
New workspace lobe config:
|
|
96
|
+
```json
|
|
97
|
+
{
|
|
98
|
+
"isPrivate": false,
|
|
99
|
+
"excludedFrom": [],
|
|
100
|
+
"subscriptions": [],
|
|
101
|
+
"tags": []
|
|
102
|
+
}
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
This means: open to all your workspaces, no exclusions, no extra subscriptions, no tags. The workspace automatically inherits from personal + team + dept + org lobes through the entity graph.
|
|
106
|
+
|
|
107
|
+
## How It Integrates with Context Assembly
|
|
108
|
+
|
|
109
|
+
### Current Flow (Pillar 3)
|
|
110
|
+
|
|
111
|
+
The Context Assembly Engine's `computeSourceWeights()` currently searches three hardcoded layers: personal, workspace, team.
|
|
112
|
+
|
|
113
|
+
### New Flow
|
|
114
|
+
|
|
115
|
+
Replace the hardcoded layer list with a dynamic scope list built from the workspace's lobe configuration:
|
|
116
|
+
|
|
117
|
+
```
|
|
118
|
+
1. Start with workspace's own lobe (always included)
|
|
119
|
+
2. Add personal lobe (always included)
|
|
120
|
+
3. Add inherited lobes from entity graph (team → dept → org)
|
|
121
|
+
4. Add explicit subscriptions from LobeConfig
|
|
122
|
+
5. Remove any that are private or excluded
|
|
123
|
+
6. Remove any cross-user lobes that aren't shared+accepted
|
|
124
|
+
7. Pass remaining scopes to the Context Assembly Engine
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
The weight computation stays the same — graph proximity determines weight. Subscribed lobes that aren't in the natural graph path get a base weight of 0.4 (lower than inherited but still present).
|
|
128
|
+
|
|
129
|
+
### Storage Mapping
|
|
130
|
+
|
|
131
|
+
Each workspace's lobe corresponds to a LanceDB storage path:
|
|
132
|
+
- Workspace 42's lobe → `workspace/42` (already exists)
|
|
133
|
+
- Personal lobe → `personal` (already exists)
|
|
134
|
+
- Team lobe → `team` (already exists)
|
|
135
|
+
|
|
136
|
+
No new storage structures needed. Lobes are a **view layer** on top of existing knowledge storage, controlling which storage paths are searched.
|
|
137
|
+
|
|
138
|
+
## API Changes
|
|
139
|
+
|
|
140
|
+
### New Endpoints
|
|
141
|
+
|
|
142
|
+
```
|
|
143
|
+
GET /api/cortex/lobes — list all accessible lobes for current user
|
|
144
|
+
GET /api/cortex/lobes/:workspaceId — get lobe config for a workspace
|
|
145
|
+
PUT /api/cortex/lobes/:workspaceId — update lobe config (privacy, exclusions, tags)
|
|
146
|
+
POST /api/cortex/lobes/:workspaceId/subscribe — add a subscription
|
|
147
|
+
DELETE /api/cortex/lobes/:workspaceId/subscribe/:id — remove a subscription
|
|
148
|
+
POST /api/cortex/lobes/share — share a lobe with another user
|
|
149
|
+
POST /api/cortex/lobes/share/:id/accept — accept a shared lobe
|
|
150
|
+
DELETE /api/cortex/lobes/share/:id — revoke or decline a share
|
|
151
|
+
GET /api/cortex/lobes/shares — list incoming/outgoing shares
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
### Modified Endpoints
|
|
155
|
+
|
|
156
|
+
```
|
|
157
|
+
GET /api/cortex/context — now accepts optional workspace_id to resolve lobe config
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
## UI
|
|
161
|
+
|
|
162
|
+
### Workspace Settings → "Knowledge Lobes" Section
|
|
163
|
+
|
|
164
|
+
Simple settings panel within existing workspace settings:
|
|
165
|
+
|
|
166
|
+
**Status line:** "This workspace draws from 4 lobes" (count of active sources)
|
|
167
|
+
|
|
168
|
+
**Privacy toggle:** "Private lobe — other workspaces can't access this knowledge"
|
|
169
|
+
|
|
170
|
+
**Tags input:** chip-style tag input for labeling this workspace's lobe
|
|
171
|
+
|
|
172
|
+
**Active sources list:** shows all lobes this workspace pulls from:
|
|
173
|
+
- Own workspace (always, can't remove)
|
|
174
|
+
- Personal (always, can't remove)
|
|
175
|
+
- Team: Platform (inherited, can mute)
|
|
176
|
+
- Org: Acme Corp (inherited, can mute)
|
|
177
|
+
- Workspace: Auth Service (subscribed, can remove)
|
|
178
|
+
- Tag: infrastructure (subscribed, can remove)
|
|
179
|
+
- Shared: Bob's Security workspace (cross-user, can remove)
|
|
180
|
+
|
|
181
|
+
**"Add source" button:** dropdown/search to subscribe to:
|
|
182
|
+
- Another workspace (by name)
|
|
183
|
+
- A tag
|
|
184
|
+
- A team/department
|
|
185
|
+
- A shared lobe from another user
|
|
186
|
+
|
|
187
|
+
**Exclusions section** (collapsed by default): "Exclude specific workspaces from accessing this lobe" — multi-select of workspace names.
|
|
188
|
+
|
|
189
|
+
### Shared Lobes Section (in main Cortex page or settings)
|
|
190
|
+
|
|
191
|
+
**Incoming shares:** "Bob shared 'Security Workspace' with you" — Accept / Decline buttons
|
|
192
|
+
**Outgoing shares:** "You shared 'Platform' with Alice" — Revoke button
|
|
193
|
+
|
|
194
|
+
## Implementation Notes
|
|
195
|
+
|
|
196
|
+
### Where Lobe Config Lives
|
|
197
|
+
|
|
198
|
+
Option A: JSON column on workspaces table (`lobe_config TEXT DEFAULT '{}'`)
|
|
199
|
+
Option B: Separate `workspace_lobe_config` table
|
|
200
|
+
|
|
201
|
+
**Recommendation: Option A** — it's simpler, the config is small, and it's always loaded with the workspace. Add a migration to add the column.
|
|
202
|
+
|
|
203
|
+
### Integration with Boundary Engine
|
|
204
|
+
|
|
205
|
+
The lobe system sits ABOVE the boundary engine. Lobes determine which scopes are searched. The boundary engine then filters individual results by sensitivity/policy/creator-override within those scopes. They compose naturally:
|
|
206
|
+
|
|
207
|
+
```
|
|
208
|
+
Lobe Config → determines searchable scopes
|
|
209
|
+
↓
|
|
210
|
+
Context Assembly Engine → searches those scopes
|
|
211
|
+
↓
|
|
212
|
+
Boundary Engine → filters results by access control
|
|
213
|
+
↓
|
|
214
|
+
User sees results
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
### Cross-User Sharing Security
|
|
218
|
+
|
|
219
|
+
When User A searches a lobe shared by User B:
|
|
220
|
+
- The search runs against User B's workspace storage
|
|
221
|
+
- The Boundary Engine still applies — confidential/restricted knowledge is filtered
|
|
222
|
+
- The sensitivity auto-classifier already marks sensitive content appropriately
|
|
223
|
+
- Audit trail logs cross-user access for compliance
|
|
224
|
+
|
|
225
|
+
### Consulting Firm Scenario
|
|
226
|
+
|
|
227
|
+
Setup for a consulting firm with clients Initech and Globex:
|
|
228
|
+
|
|
229
|
+
1. Create workspaces: "Initech Project", "Globex Project", "Internal"
|
|
230
|
+
2. Mark "Initech Project" with tag `initech`, mark private
|
|
231
|
+
3. Mark "Globex Project" with tag `globex`, mark private
|
|
232
|
+
4. "Internal" workspace: default (pulls from everything non-private)
|
|
233
|
+
5. "Initech Project": remove "Globex Project" from accessible lobes (it's already excluded by privacy, belt + suspenders)
|
|
234
|
+
6. Result: Initech workspace sees only its own knowledge + personal + team + org. Never sees Globex. Globex never sees Initech. Internal sees both (org-level patterns only, not private workspace knowledge).
|
|
235
|
+
|
|
236
|
+
## File Structure
|
|
237
|
+
|
|
238
|
+
```
|
|
239
|
+
New files:
|
|
240
|
+
├── src/lib/cortex/lobes/config.ts — LobeConfig types and defaults
|
|
241
|
+
├── src/lib/cortex/lobes/resolver.ts — Resolve accessible lobes for a workspace
|
|
242
|
+
├── src/lib/cortex/lobes/shares.ts — Cross-user sharing logic
|
|
243
|
+
├── src/lib/cortex/lobes/index.ts — Barrel export
|
|
244
|
+
├── src/app/api/cortex/lobes/route.ts — List/get lobes
|
|
245
|
+
├── src/app/api/cortex/lobes/[id]/route.ts — Update lobe config
|
|
246
|
+
├── src/app/api/cortex/lobes/share/route.ts — Share management
|
|
247
|
+
├── src/components/cortex/lobe-settings.tsx — UI component
|
|
248
|
+
|
|
249
|
+
Modified files:
|
|
250
|
+
├── src/lib/cortex/retrieval/context-engine.ts — Use lobe resolver for search scopes
|
|
251
|
+
├── src/lib/db/queries.ts — Add lobe_config column to workspaces
|
|
252
|
+
├── src/app/(desktop)/cortex/page.tsx — Add Lobes tab or integrate into Settings
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
## Success Criteria
|
|
256
|
+
|
|
257
|
+
- New workspaces see knowledge from all non-private sibling workspaces by default
|
|
258
|
+
- Marking a workspace private immediately hides its knowledge from other workspaces
|
|
259
|
+
- Excluding a workspace prevents bidirectional knowledge access
|
|
260
|
+
- Cross-user sharing requires explicit share + accept handshake
|
|
261
|
+
- Consulting scenario works: private client workspaces with no cross-contamination
|
|
262
|
+
- Context Assembly Engine respects lobe config within <150ms (no performance regression)
|
|
263
|
+
- All access decisions logged in audit trail
|