@jlongo78/agent-spaces 0.7.3 → 0.7.5
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 +7 -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 +42 -0
- package/.next/standalone/.next/server/app/(desktop)/admin/analytics/page.js +1 -1
- package/.next/standalone/.next/server/app/(desktop)/admin/analytics/page.js.nft.json +1 -1
- 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.js +1 -1
- package/.next/standalone/.next/server/app/(desktop)/admin/users/page.js.nft.json +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.js +1 -1
- package/.next/standalone/.next/server/app/(desktop)/analytics/page.js.nft.json +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.js +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.js +1 -1
- package/.next/standalone/.next/server/app/(desktop)/network/page.js.nft.json +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.js +1 -1
- package/.next/standalone/.next/server/app/(desktop)/page.js.nft.json +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.js +1 -1
- package/.next/standalone/.next/server/app/(desktop)/projects/page.js.nft.json +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 +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.js +1 -1
- package/.next/standalone/.next/server/app/(desktop)/sessions/page.js.nft.json +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.js +1 -1
- package/.next/standalone/.next/server/app/(desktop)/settings/page.js.nft.json +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 +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 +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 +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.js +1 -1
- package/.next/standalone/.next/server/app/(desktop)/workspaces/page.js.nft.json +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 +17 -16
- 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 +5 -4
- package/.next/standalone/.next/server/app/admin/analytics.segments/_full.segment.rsc +17 -16
- 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 +17 -16
- package/.next/standalone/.next/server/app/admin/users.segments/!KGRlc2t0b3Ap/admin/users/__PAGE__.segment.rsc +2 -2
- 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 +5 -4
- package/.next/standalone/.next/server/app/admin/users.segments/_full.segment.rsc +17 -16
- 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 +17 -16
- 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 +5 -4
- package/.next/standalone/.next/server/app/analytics.segments/_full.segment.rsc +17 -16
- 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/bulk/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/chat/route.js +1 -1
- package/.next/standalone/.next/server/app/api/chat/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/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/api/cortex/curation/assess/route/build-manifest.json +11 -0
- package/.next/standalone/.next/server/app/api/cortex/curation/assess/route/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/api/cortex/curation/assess/route.js +7 -0
- package/.next/standalone/.next/server/app/api/cortex/curation/assess/route.js.map +5 -0
- package/.next/standalone/.next/server/app/api/cortex/curation/assess/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/cortex/curation/assess/route_client-reference-manifest.js +2 -0
- package/.next/standalone/.next/server/app/api/cortex/curation/publish/route/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/api/cortex/curation/publish/route/build-manifest.json +11 -0
- package/.next/standalone/.next/server/app/api/cortex/curation/publish/route/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/api/cortex/curation/publish/route.js +7 -0
- package/.next/standalone/.next/server/app/api/cortex/curation/publish/route.js.map +5 -0
- package/.next/standalone/.next/server/app/api/cortex/curation/publish/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/cortex/curation/publish/route_client-reference-manifest.js +2 -0
- package/.next/standalone/.next/server/app/api/cortex/curation/refine/route/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/api/cortex/curation/refine/route/build-manifest.json +11 -0
- package/.next/standalone/.next/server/app/api/cortex/curation/refine/route/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/api/cortex/curation/refine/route.js +7 -0
- package/.next/standalone/.next/server/app/api/cortex/curation/refine/route.js.map +5 -0
- package/.next/standalone/.next/server/app/api/cortex/curation/refine/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/cortex/curation/refine/route_client-reference-manifest.js +2 -0
- package/.next/standalone/.next/server/app/api/cortex/curation/review/route/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/api/cortex/curation/review/route/build-manifest.json +11 -0
- package/.next/standalone/.next/server/app/api/cortex/curation/review/route/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/api/cortex/curation/review/route.js +7 -0
- package/.next/standalone/.next/server/app/api/cortex/curation/review/route.js.map +5 -0
- package/.next/standalone/.next/server/app/api/cortex/curation/review/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/cortex/curation/review/route_client-reference-manifest.js +2 -0
- package/.next/standalone/.next/server/app/api/cortex/curation/seed/route/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/api/cortex/curation/seed/route/build-manifest.json +11 -0
- package/.next/standalone/.next/server/app/api/cortex/curation/seed/route/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/api/cortex/curation/seed/route.js +7 -0
- package/.next/standalone/.next/server/app/api/cortex/curation/seed/route.js.map +5 -0
- package/.next/standalone/.next/server/app/api/cortex/curation/seed/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/cortex/curation/seed/route_client-reference-manifest.js +2 -0
- 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/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/api/cortex/marketplace/browse/route/build-manifest.json +11 -0
- package/.next/standalone/.next/server/app/api/cortex/marketplace/browse/route/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/api/cortex/marketplace/browse/route.js +7 -0
- package/.next/standalone/.next/server/app/api/cortex/marketplace/browse/route.js.map +5 -0
- package/.next/standalone/.next/server/app/api/cortex/marketplace/browse/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/cortex/marketplace/browse/route_client-reference-manifest.js +2 -0
- package/.next/standalone/.next/server/app/api/cortex/marketplace/preview/route/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/api/cortex/marketplace/preview/route/build-manifest.json +11 -0
- package/.next/standalone/.next/server/app/api/cortex/marketplace/preview/route/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/api/cortex/marketplace/preview/route.js +7 -0
- package/.next/standalone/.next/server/app/api/cortex/marketplace/preview/route.js.map +5 -0
- package/.next/standalone/.next/server/app/api/cortex/marketplace/preview/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/cortex/marketplace/preview/route_client-reference-manifest.js +2 -0
- 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/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 +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/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 +17 -16
- 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 +5 -4
- package/.next/standalone/.next/server/app/cortex.segments/_full.segment.rsc +17 -16
- 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.js.nft.json +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.js.nft.json +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 +4 -4
- package/.next/standalone/.next/server/app/m/projects.segments/_full.segment.rsc +4 -4
- 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 +2 -2
- 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 +2 -2
- 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.js.nft.json +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 +4 -4
- package/.next/standalone/.next/server/app/m/sessions.segments/_full.segment.rsc +4 -4
- 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 +2 -2
- 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 +2 -2
- package/.next/standalone/.next/server/app/m/settings/page.js.nft.json +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 +4 -4
- package/.next/standalone/.next/server/app/m/settings.segments/_full.segment.rsc +4 -4
- 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 +2 -2
- 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 +2 -2
- 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 +4 -4
- package/.next/standalone/.next/server/app/m/terminal.segments/_full.segment.rsc +4 -4
- 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 +2 -2
- package/.next/standalone/.next/server/app/m.html +1 -1
- package/.next/standalone/.next/server/app/m.rsc +4 -4
- package/.next/standalone/.next/server/app/m.segments/_full.segment.rsc +4 -4
- 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 +2 -2
- package/.next/standalone/.next/server/app/m.segments/m.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/network.html +1 -1
- package/.next/standalone/.next/server/app/network.rsc +17 -16
- package/.next/standalone/.next/server/app/network.segments/!KGRlc2t0b3Ap/network/__PAGE__.segment.rsc +2 -2
- 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 +5 -4
- package/.next/standalone/.next/server/app/network.segments/_full.segment.rsc +17 -16
- 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 +17 -16
- package/.next/standalone/.next/server/app/projects.segments/!KGRlc2t0b3Ap/projects/__PAGE__.segment.rsc +2 -2
- 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 +5 -4
- package/.next/standalone/.next/server/app/projects.segments/_full.segment.rsc +17 -16
- 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 +17 -16
- package/.next/standalone/.next/server/app/sessions.segments/!KGRlc2t0b3Ap/sessions/__PAGE__.segment.rsc +2 -2
- 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 +5 -4
- package/.next/standalone/.next/server/app/sessions.segments/_full.segment.rsc +17 -16
- 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 +17 -16
- package/.next/standalone/.next/server/app/settings.segments/!KGRlc2t0b3Ap/settings/__PAGE__.segment.rsc +2 -2
- 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 +5 -4
- package/.next/standalone/.next/server/app/settings.segments/_full.segment.rsc +17 -16
- 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 +17 -16
- 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 +5 -4
- package/.next/standalone/.next/server/app/terminal.segments/_full.segment.rsc +17 -16
- 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/workspaces.html +1 -1
- package/.next/standalone/.next/server/app/workspaces.rsc +17 -16
- package/.next/standalone/.next/server/app/workspaces.segments/!KGRlc2t0b3Ap/workspaces/__PAGE__.segment.rsc +2 -2
- 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 +5 -4
- package/.next/standalone/.next/server/app/workspaces.segments/_full.segment.rsc +17 -16
- 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 +7 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0041efe4._.js +98 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__00bf0ace._.js +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0e71d908._.js +2 -2
- 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 +3 -3
- 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 +1 -1
- 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]__cf3c60c2._.js → [root-of-the-server]__33fec964._.js} +4 -4
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__3786d8ae._.js +1 -1
- 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 +1 -1
- 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 +98 -0
- 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 +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__6e568102._.js +1 -1
- 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 +98 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__7e7250a4._.js +3 -3
- 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 +3 -3
- 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 +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__b6b6ce60._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__b9545dd9._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__c88b63f7._.js +98 -0
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__eee4c5e8._.js → [root-of-the-server]__cba5f007._.js} +2 -2
- 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 +1 -1
- 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 +3 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__e678dd53._.js +3 -0
- 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 +3 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__eb8acb65._.js +1 -1
- 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 +1 -1
- 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 +98 -0
- 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_cortex_curation_assess_route_actions_3e8ef2a6.js +3 -0
- package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_cortex_curation_publish_route_actions_49238be3.js +3 -0
- package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_cortex_curation_refine_route_actions_05675688.js +3 -0
- package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_cortex_curation_review_route_actions_5cbb5f6b.js +3 -0
- package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_cortex_curation_seed_route_actions_21084bdb.js +3 -0
- package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_cortex_marketplace_browse_route_actions_7ed0768c.js +3 -0
- package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_cortex_marketplace_preview_route_actions_38d4cc17.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__19afc53d._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__66aca5d4._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__efef0a06._.js → [root-of-the-server]__ca5beb09._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{_7dd2ac82._.js → _078dd64d._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_163d0838._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{_a4eeff0d._.js → _2230ad2d._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{_9303a965._.js → _701606d5._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_72b1de37._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{_d39bcfda._.js → _93ef0f79._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/_950142a4._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_a22b5eb0._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_aeeff784._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_c1cfdd09._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_c2d3f6de._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{_8167090e._.js → _db2fec84._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/src_02bae6e5._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/src_app_(desktop)_terminal_page_tsx_de5e8d85._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/src_components_terminal_terminal-pane_tsx_803c5e2c._.js +2 -2
- 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/25b7a243a404a1a7.js +1 -0
- package/.next/standalone/.next/static/chunks/2b997e211a5d547b.js +1 -0
- package/.next/standalone/.next/static/chunks/5e08abb00653754a.js +1 -0
- package/.next/standalone/.next/static/chunks/61f2ed39b75b1efc.js +1 -0
- package/.next/standalone/.next/static/chunks/6c78a1dfa7ec2959.css +3 -0
- package/.next/standalone/.next/static/chunks/7246f1ee445f7024.js +1 -0
- package/.next/standalone/.next/static/chunks/7424664c6ffa94bd.js +1 -0
- package/.next/standalone/.next/static/chunks/7e0091ab6c5ee8bd.js +1 -0
- package/.next/standalone/.next/static/chunks/8b3f4572fec83caa.js +5 -0
- package/.next/standalone/.next/static/chunks/{a7b2795949a6c63e.js → 9899cf4c2bdbe61d.js} +2 -2
- package/.next/standalone/.next/static/chunks/ac339e970df82fa5.js +5 -0
- package/.next/standalone/.next/static/chunks/{0e61e67b7b8fc3f3.js → c418112e102673ce.js} +1 -1
- package/.next/standalone/.next/static/chunks/e2f0a2330dedff4b.js +85 -0
- package/.next/standalone/.next/static/chunks/f0c8b3f8cc1939ec.js +1 -0
- package/.next/standalone/.next/static/chunks/f9f2628207848ac2.js +1 -0
- package/.next/standalone/bin/cortex-hook.sh +62 -62
- package/.next/standalone/bin/cortex-mcp.js +60 -60
- 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 -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-18-cortex-ui-integration-design.md +341 -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.json +102 -102
- package/.next/standalone/server.js +1 -1
- package/.next/standalone/src/app/(desktop)/cortex/page.tsx +78 -75
- package/.next/standalone/src/app/api/cortex/context/route.ts +78 -78
- package/.next/standalone/src/app/api/cortex/curation/assess/route.ts +27 -0
- package/.next/standalone/src/app/api/cortex/curation/publish/route.ts +23 -0
- package/.next/standalone/src/app/api/cortex/curation/refine/route.ts +23 -0
- package/.next/standalone/src/app/api/cortex/curation/review/route.ts +29 -0
- package/.next/standalone/src/app/api/cortex/curation/seed/route.ts +23 -0
- 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 -43
- 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 -0
- package/.next/standalone/src/app/api/cortex/marketplace/preview/route.ts +46 -0
- 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 -129
- 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/components/cortex/constants.ts +29 -0
- package/.next/standalone/src/components/cortex/cortex-dashboard.tsx +304 -228
- 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 -0
- 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 -0
- package/.next/standalone/src/components/cortex/injection-badge.tsx +72 -72
- package/.next/standalone/src/components/cortex/knowledge-card.tsx +109 -127
- package/.next/standalone/src/components/cortex/knowledge-tab.tsx +158 -56
- package/.next/standalone/src/components/cortex/lobe-settings.tsx +215 -199
- package/.next/standalone/src/components/cortex/marketplace-card.tsx +126 -0
- package/.next/standalone/src/components/cortex/marketplace-tab.tsx +113 -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 -38
- package/.next/standalone/tsconfig.json +34 -34
- 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 +208 -208
- package/bin/spaces-install.js +599 -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 +776 -728
- package/bin/ssh-auth-keys.sh +68 -68
- package/bin/terminal-server.js +1649 -1646
- package/package.json +102 -102
- package/.next/standalone/.claude/settings.local.json +0 -55
- package/.next/standalone/.claude/spaces-env.json +0 -1
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0ecce08b._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_7e63066a._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_a012c43b._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_b4db3983._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_cd50a174._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_e7a9e2b0._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_ed6c285b._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/src_133a7c8a._.js +0 -3
- package/.next/standalone/.next/static/chunks/17d164c01fa1aaa9.js +0 -5
- package/.next/standalone/.next/static/chunks/19da759dde107f02.js +0 -1
- package/.next/standalone/.next/static/chunks/58d78765e5140dcb.js +0 -1
- package/.next/standalone/.next/static/chunks/596bd56e0ad09173.js +0 -5
- package/.next/standalone/.next/static/chunks/78dd908e70bf8c4b.js +0 -85
- package/.next/standalone/.next/static/chunks/79aacab676df80c4.js +0 -1
- package/.next/standalone/.next/static/chunks/846d6ef408f69390.js +0 -1
- package/.next/standalone/.next/static/chunks/8de5e432a2fc563a.js +0 -1
- package/.next/standalone/.next/static/chunks/9196173f0d081f2c.js +0 -1
- package/.next/standalone/.next/static/chunks/9bd8a119aaeafc9e.js +0 -1
- package/.next/standalone/.next/static/chunks/e35e863c09511a51.js +0 -1
- package/.next/standalone/.next/static/chunks/f644c11ace7a0d9d.css +0 -3
- 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/src/components/cortex/context-tab.tsx +0 -171
- /package/.next/standalone/.next/static/{B207XFa7QvXAYS7Sqq2_4 → 77VYbwIoyxFNr5xevTrCu}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{B207XFa7QvXAYS7Sqq2_4 → 77VYbwIoyxFNr5xevTrCu}/_clientMiddlewareManifest.json +0 -0
- /package/.next/standalone/.next/static/{B207XFa7QvXAYS7Sqq2_4 → 77VYbwIoyxFNr5xevTrCu}/_ssgManifest.js +0 -0
- /package/.next/standalone/node_modules/@img/{sharp-win32-x64 → sharp-libvips-linux-x64}/versions.json +0 -0
|
@@ -1,240 +1,240 @@
|
|
|
1
|
-
# Cortex v2 UI Components
|
|
2
|
-
|
|
3
|
-
**Date:** 2026-03-16
|
|
4
|
-
**Status:** Design approved, pending implementation plan
|
|
5
|
-
**Scope:** Three UI additions for Cortex v2: entity graph visualization, enhanced knowledge cards, and context assembly dashboard
|
|
6
|
-
|
|
7
|
-
## Overview
|
|
8
|
-
|
|
9
|
-
Add a dedicated `/cortex` page to Spaces with four tabs (Graph, Knowledge, Context, Settings) plus enhancements to the existing right-side panel. The graph uses a canvas-based force layout for interactive exploration. Knowledge cards gain v2 field display (scope, sensitivity, evidence, origin). A context assembly tab lets users inspect how the retrieval engine works.
|
|
10
|
-
|
|
11
|
-
### Design Principles
|
|
12
|
-
|
|
13
|
-
- Follow existing dark theme and Tailwind patterns (no component library)
|
|
14
|
-
- Minimal backend changes — 3 small modifications to existing endpoints (documented below)
|
|
15
|
-
- One new npm dependency: `force-graph` for canvas rendering
|
|
16
|
-
- Progressive enhancement — v1 data renders fine, v2 fields show when present
|
|
17
|
-
- Custom `nodeCanvasObject` callback for entity-type shapes (force-graph renders circles by default; diamonds/rectangles need manual Canvas 2D drawing)
|
|
18
|
-
|
|
19
|
-
## Component 1: Entity Graph Page
|
|
20
|
-
|
|
21
|
-
### Route: `/app/(desktop)/cortex/page.tsx`
|
|
22
|
-
|
|
23
|
-
Full-page layout with tab navigation. The "Cortex" icon (Brain from Lucide) is added to the sidebar below existing nav items, gated by `useTier().hasCortex`.
|
|
24
|
-
|
|
25
|
-
### Tab Bar
|
|
26
|
-
|
|
27
|
-
Four tabs across the top: **Graph** | **Knowledge** | **Context** | **Settings**
|
|
28
|
-
|
|
29
|
-
Right-aligned stats in the tab bar: entity count, edge count, knowledge unit count (from `/api/cortex/status` + `/api/cortex/graph/entities`).
|
|
30
|
-
|
|
31
|
-
### Graph Tab (default)
|
|
32
|
-
|
|
33
|
-
Two-column layout:
|
|
34
|
-
|
|
35
|
-
**Left: Force Graph Canvas (~70% width)**
|
|
36
|
-
- Renders via `force-graph` npm package (canvas-based, handles 1000+ nodes)
|
|
37
|
-
- Nodes colored and shaped by entity type:
|
|
38
|
-
- Person: circle, purple (#7c3aed)
|
|
39
|
-
- Team/Project: rounded rectangle, green (#10b981)
|
|
40
|
-
- System: diamond, amber (#f59e0b)
|
|
41
|
-
- Topic: small circle, cyan (#06b6d4)
|
|
42
|
-
- Department/Organization: larger rounded rect, blue (#3b82f1)
|
|
43
|
-
- Edges rendered as lines, opacity based on weight
|
|
44
|
-
- Interactions: drag nodes, zoom (scroll), pan (drag background), click to select
|
|
45
|
-
- Overlay controls: zoom +/-, recenter button (bottom-left)
|
|
46
|
-
- Legend overlay (top-right): shows shape/color mapping
|
|
47
|
-
|
|
48
|
-
**Right: Detail Panel (~30% width, 260px min)**
|
|
49
|
-
|
|
50
|
-
When no node selected: shows graph stats summary (entity counts by type, edge counts by relation).
|
|
51
|
-
|
|
52
|
-
When a node is selected:
|
|
53
|
-
- Entity header: icon + name + type + metadata (role, email, etc.)
|
|
54
|
-
- Relationships section: list of edges from/to this entity, each showing relation type, target name, weight
|
|
55
|
-
- Related Knowledge section: knowledge units linked to this entity (via entity_links or scope), shown as mini knowledge cards
|
|
56
|
-
- Actions: "Add Edge" button (opens simple form), "Delete Entity" with confirmation
|
|
57
|
-
|
|
58
|
-
### Data Fetching
|
|
59
|
-
|
|
60
|
-
```
|
|
61
|
-
GET /api/cortex/graph/entities → all nodes
|
|
62
|
-
GET /api/cortex/graph/edges?from={id} → edges for selected node
|
|
63
|
-
GET /api/cortex/graph/edges?to={id} → edges to selected node
|
|
64
|
-
GET /api/cortex/search?q=&layer=personal&limit=5 → related knowledge (when node selected)
|
|
65
|
-
GET /api/cortex/status → stats for tab bar
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
For the graph canvas, fetch ALL entities and ALL edges on mount (the graph is small — hundreds of nodes, not millions). Build the node/link arrays for force-graph from the API response.
|
|
69
|
-
|
|
70
|
-
To get all edges, add a new lightweight endpoint or use a query parameter:
|
|
71
|
-
```
|
|
72
|
-
GET /api/cortex/graph/edges?all=true → all edges (for graph rendering)
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
## Component 2: Enhanced Knowledge Cards
|
|
76
|
-
|
|
77
|
-
### Modify: `src/components/cortex/knowledge-card.tsx`
|
|
78
|
-
|
|
79
|
-
The existing card shows: type badge, age, text, confidence bar, delete button.
|
|
80
|
-
|
|
81
|
-
Add v2 fields (displayed only when present — backward compatible with v1 data):
|
|
82
|
-
|
|
83
|
-
**Badge row (top):**
|
|
84
|
-
- Existing type badge (decision, error_fix, etc.)
|
|
85
|
-
- NEW: Sensitivity badge — color-coded:
|
|
86
|
-
- public: green (#10b981)
|
|
87
|
-
- internal: blue (#6366f1)
|
|
88
|
-
- restricted: amber (#f59e0b)
|
|
89
|
-
- confidential: red (#ef4444)
|
|
90
|
-
- NEW: Scope badge — shows scope level (personal, team, department, organization) in muted purple
|
|
91
|
-
|
|
92
|
-
**Attribution row (below text):**
|
|
93
|
-
- Creator: `by {origin.creator_entity_id}` (strip "person-" prefix for display)
|
|
94
|
-
- Source: `via {origin.source_type}` (conversation, git_commit, document, etc.)
|
|
95
|
-
- Corroborations: `{corroborations} corroborations` in green if > 0
|
|
96
|
-
- Contradictions: `{contradiction_refs.length} contested` in amber if > 0
|
|
97
|
-
|
|
98
|
-
**Evidence bar (replaces confidence bar):**
|
|
99
|
-
- If `evidence_score` is present, show it instead of `confidence`
|
|
100
|
-
- Label: "0.72 evidence" instead of "85% confidence"
|
|
101
|
-
- Same visual style (horizontal bar with fill)
|
|
102
|
-
|
|
103
|
-
**Conflict indicator:**
|
|
104
|
-
- If `contradiction_refs.length > 0`, show an amber warning icon and "Contested" text
|
|
105
|
-
|
|
106
|
-
All new fields use optional chaining — if undefined, the row/badge simply doesn't render.
|
|
107
|
-
|
|
108
|
-
## Component 3: Context Assembly Tab
|
|
109
|
-
|
|
110
|
-
### Tab content within `/cortex` page
|
|
111
|
-
|
|
112
|
-
A query input at the top. User types a question and clicks "Analyze" (or presses Enter). The tab calls `GET /api/cortex/context/?q={query}&limit=5` and displays the full pipeline breakdown.
|
|
113
|
-
|
|
114
|
-
**Layout (top to bottom):**
|
|
115
|
-
|
|
116
|
-
1. **Query input** — text field + Analyze button
|
|
117
|
-
|
|
118
|
-
2. **Pipeline summary cards** (3 columns):
|
|
119
|
-
- Intent card: detected intent name (color-coded), confidence score
|
|
120
|
-
- Entities card: list of resolved entities with type badges
|
|
121
|
-
- Timing card: total ms (large number), breakdown (intent, entity, search)
|
|
122
|
-
|
|
123
|
-
3. **Source weights** — horizontal bars showing each source's computed weight. Three bars: Personal, Team, Org. Bar fill proportional to weight, numeric label.
|
|
124
|
-
|
|
125
|
-
4. **Results list** — ranked knowledge units with:
|
|
126
|
-
- Type badge
|
|
127
|
-
- Text snippet
|
|
128
|
-
- Relevance score (right-aligned)
|
|
129
|
-
- Source attribution
|
|
130
|
-
|
|
131
|
-
5. **Conflict callout** (if any) — amber box showing conflicting pairs
|
|
132
|
-
|
|
133
|
-
6. **Raw context preview** — collapsible section showing the `<cortex-context>` XML that would be injected into a Claude prompt
|
|
134
|
-
|
|
135
|
-
### Data Fetching
|
|
136
|
-
|
|
137
|
-
Single API call: `GET /api/cortex/context/?q={query}&limit=5`
|
|
138
|
-
|
|
139
|
-
Response shape (requires backend modifications — see Backend Changes section):
|
|
140
|
-
```typescript
|
|
141
|
-
{
|
|
142
|
-
results: ScoredKnowledge[]
|
|
143
|
-
context: string // pre-formatted XML
|
|
144
|
-
intent: { intent, confidence, biases }
|
|
145
|
-
entities: ResolvedEntity[] // NEW: resolved entity references
|
|
146
|
-
conflicts: ConflictPair[] // CHANGED: full pairs, not just count
|
|
147
|
-
sourceWeights: Array<{ layerKey: string; scopeLevel: string; weight: number }> // NEW
|
|
148
|
-
timing: { intentMs, entityMs, searchMs, totalMs }
|
|
149
|
-
}
|
|
150
|
-
```
|
|
151
|
-
|
|
152
|
-
## Component 4: Existing Panel Enhancement
|
|
153
|
-
|
|
154
|
-
### Modify: `src/components/cortex/cortex-panel.tsx`
|
|
155
|
-
|
|
156
|
-
Minimal changes to the existing right-side panel:
|
|
157
|
-
|
|
158
|
-
1. Add "Open full view" link at the top → navigates to `/cortex` using Next.js router
|
|
159
|
-
2. Replace `KnowledgeCard` import to use the enhanced version (same component, just has new optional fields)
|
|
160
|
-
3. No layout changes — panel stays at 384px width with existing tabs
|
|
161
|
-
|
|
162
|
-
## Component 5: Sidebar Navigation
|
|
163
|
-
|
|
164
|
-
### Modify: `src/components/layout/sidebar.tsx`
|
|
165
|
-
|
|
166
|
-
Add a "Cortex" nav item to the sidebar:
|
|
167
|
-
- Icon: Brain from lucide-react (already used by CortexIndicator)
|
|
168
|
-
- Position: after existing nav items (Terminal, Sessions, etc.)
|
|
169
|
-
- Route: `/cortex`
|
|
170
|
-
- Gated by `useTier().hasCortex`
|
|
171
|
-
- Active state: indigo background (`bg-indigo-950 text-indigo-300`) consistent with other sidebar items
|
|
172
|
-
|
|
173
|
-
The existing CortexIndicator (bottom of sidebar) remains — it shows the knowledge count badge and toggles the right panel.
|
|
174
|
-
|
|
175
|
-
## Backend Changes (3 modifications)
|
|
176
|
-
|
|
177
|
-
### 1. `EntityGraph.listAllEdges()` + edges route `all=true`
|
|
178
|
-
|
|
179
|
-
Add a `listAllEdges(): Edge[]` method to `EntityGraph` class:
|
|
180
|
-
```typescript
|
|
181
|
-
listAllEdges(): Edge[] {
|
|
182
|
-
return (this.db.prepare('SELECT * FROM edges').all() as any[]).map(r => this.rowToEdge(r));
|
|
183
|
-
}
|
|
184
|
-
```
|
|
185
|
-
|
|
186
|
-
Modify `src/app/api/cortex/graph/edges/route.ts` GET handler: if `all=true` query param is present, call `cortex.graph.listAllEdges()` and return all edges (bypassing the `from`/`to` requirement). No pagination needed — graph is small.
|
|
187
|
-
|
|
188
|
-
### 2. Context API response expansion
|
|
189
|
-
|
|
190
|
-
Modify `src/app/api/cortex/context/route.ts` to include three additional fields from `AssemblyResult`:
|
|
191
|
-
- `entities: result.entities` — resolved entity references (currently dropped)
|
|
192
|
-
- `conflicts: result.conflicts` — full `ConflictPair[]` array (currently flattened to count)
|
|
193
|
-
- `sourceWeights` — requires exposing the computed source weights from `ContextEngine`
|
|
194
|
-
|
|
195
|
-
To expose source weights, add a `sourceWeights` field to `AssemblyResult` in `context-engine.ts` and populate it from the `computeSourceWeights()` output (currently private, just return the array of `{ layerKey, scopeLevel, weight }` objects).
|
|
196
|
-
|
|
197
|
-
### 3. Sidebar active state
|
|
198
|
-
|
|
199
|
-
Use the existing indigo active state pattern (`bg-indigo-950 text-indigo-300`) for the Cortex nav item, consistent with other sidebar items. The purple (#7c3aed) is used inside the Cortex page for graph elements, not for sidebar navigation.
|
|
200
|
-
|
|
201
|
-
### Settings tab
|
|
202
|
-
|
|
203
|
-
The Settings tab renders the existing `<CortexSettings />` component (`src/components/cortex/cortex-settings.tsx`). No new settings content needed.
|
|
204
|
-
|
|
205
|
-
## File Structure
|
|
206
|
-
|
|
207
|
-
```
|
|
208
|
-
New files:
|
|
209
|
-
├── src/app/(desktop)/cortex/page.tsx — Main /cortex page with tabs
|
|
210
|
-
├── src/components/cortex/entity-graph.tsx — Force graph canvas component
|
|
211
|
-
├── src/components/cortex/entity-detail.tsx — Right-side entity detail panel
|
|
212
|
-
├── src/components/cortex/context-tab.tsx — Context assembly tab content
|
|
213
|
-
├── src/components/cortex/knowledge-tab.tsx — Knowledge list tab (reuses enhanced cards)
|
|
214
|
-
|
|
215
|
-
Modified files:
|
|
216
|
-
├── src/components/cortex/knowledge-card.tsx — Add v2 field display
|
|
217
|
-
├── src/components/cortex/cortex-panel.tsx — Add "Open full view" link
|
|
218
|
-
├── src/components/layout/sidebar.tsx — Add Cortex nav item
|
|
219
|
-
├── src/app/api/cortex/graph/edges/route.ts — Support all=true parameter + listAllEdges()
|
|
220
|
-
├── src/lib/cortex/graph/entity-graph.ts — Add listAllEdges() method
|
|
221
|
-
├── src/app/api/cortex/context/route.ts — Expand response (entities, conflicts, sourceWeights)
|
|
222
|
-
├── src/lib/cortex/retrieval/context-engine.ts — Expose sourceWeights in AssemblyResult
|
|
223
|
-
```
|
|
224
|
-
|
|
225
|
-
## npm Dependency
|
|
226
|
-
|
|
227
|
-
```
|
|
228
|
-
force-graph: ^1.44.0
|
|
229
|
-
```
|
|
230
|
-
|
|
231
|
-
Canvas-based force-directed graph renderer. ~30KB gzipped. Wraps d3-force with a Canvas/WebGL renderer. Supports zoom, drag, click, hover out of the box. The `entity-graph.tsx` component (not the backend `entity-graph.ts`) is the dynamic import target: `const ForceGraph = dynamic(() => import('./entity-graph'), { ssr: false })`. The parent page handles the loading state.
|
|
232
|
-
|
|
233
|
-
## Success Criteria
|
|
234
|
-
|
|
235
|
-
- Entity graph renders all entities and edges with correct colors/shapes
|
|
236
|
-
- Clicking a node shows its relationships and related knowledge
|
|
237
|
-
- Knowledge cards show v2 fields when present, degrade gracefully for v1 data
|
|
238
|
-
- Context tab shows full pipeline breakdown (intent, entities, weights, timing, results)
|
|
239
|
-
- All within existing dark theme, no visual inconsistencies
|
|
240
|
-
- Page loads in <1s, graph interaction is smooth (60fps)
|
|
1
|
+
# Cortex v2 UI Components
|
|
2
|
+
|
|
3
|
+
**Date:** 2026-03-16
|
|
4
|
+
**Status:** Design approved, pending implementation plan
|
|
5
|
+
**Scope:** Three UI additions for Cortex v2: entity graph visualization, enhanced knowledge cards, and context assembly dashboard
|
|
6
|
+
|
|
7
|
+
## Overview
|
|
8
|
+
|
|
9
|
+
Add a dedicated `/cortex` page to Spaces with four tabs (Graph, Knowledge, Context, Settings) plus enhancements to the existing right-side panel. The graph uses a canvas-based force layout for interactive exploration. Knowledge cards gain v2 field display (scope, sensitivity, evidence, origin). A context assembly tab lets users inspect how the retrieval engine works.
|
|
10
|
+
|
|
11
|
+
### Design Principles
|
|
12
|
+
|
|
13
|
+
- Follow existing dark theme and Tailwind patterns (no component library)
|
|
14
|
+
- Minimal backend changes — 3 small modifications to existing endpoints (documented below)
|
|
15
|
+
- One new npm dependency: `force-graph` for canvas rendering
|
|
16
|
+
- Progressive enhancement — v1 data renders fine, v2 fields show when present
|
|
17
|
+
- Custom `nodeCanvasObject` callback for entity-type shapes (force-graph renders circles by default; diamonds/rectangles need manual Canvas 2D drawing)
|
|
18
|
+
|
|
19
|
+
## Component 1: Entity Graph Page
|
|
20
|
+
|
|
21
|
+
### Route: `/app/(desktop)/cortex/page.tsx`
|
|
22
|
+
|
|
23
|
+
Full-page layout with tab navigation. The "Cortex" icon (Brain from Lucide) is added to the sidebar below existing nav items, gated by `useTier().hasCortex`.
|
|
24
|
+
|
|
25
|
+
### Tab Bar
|
|
26
|
+
|
|
27
|
+
Four tabs across the top: **Graph** | **Knowledge** | **Context** | **Settings**
|
|
28
|
+
|
|
29
|
+
Right-aligned stats in the tab bar: entity count, edge count, knowledge unit count (from `/api/cortex/status` + `/api/cortex/graph/entities`).
|
|
30
|
+
|
|
31
|
+
### Graph Tab (default)
|
|
32
|
+
|
|
33
|
+
Two-column layout:
|
|
34
|
+
|
|
35
|
+
**Left: Force Graph Canvas (~70% width)**
|
|
36
|
+
- Renders via `force-graph` npm package (canvas-based, handles 1000+ nodes)
|
|
37
|
+
- Nodes colored and shaped by entity type:
|
|
38
|
+
- Person: circle, purple (#7c3aed)
|
|
39
|
+
- Team/Project: rounded rectangle, green (#10b981)
|
|
40
|
+
- System: diamond, amber (#f59e0b)
|
|
41
|
+
- Topic: small circle, cyan (#06b6d4)
|
|
42
|
+
- Department/Organization: larger rounded rect, blue (#3b82f1)
|
|
43
|
+
- Edges rendered as lines, opacity based on weight
|
|
44
|
+
- Interactions: drag nodes, zoom (scroll), pan (drag background), click to select
|
|
45
|
+
- Overlay controls: zoom +/-, recenter button (bottom-left)
|
|
46
|
+
- Legend overlay (top-right): shows shape/color mapping
|
|
47
|
+
|
|
48
|
+
**Right: Detail Panel (~30% width, 260px min)**
|
|
49
|
+
|
|
50
|
+
When no node selected: shows graph stats summary (entity counts by type, edge counts by relation).
|
|
51
|
+
|
|
52
|
+
When a node is selected:
|
|
53
|
+
- Entity header: icon + name + type + metadata (role, email, etc.)
|
|
54
|
+
- Relationships section: list of edges from/to this entity, each showing relation type, target name, weight
|
|
55
|
+
- Related Knowledge section: knowledge units linked to this entity (via entity_links or scope), shown as mini knowledge cards
|
|
56
|
+
- Actions: "Add Edge" button (opens simple form), "Delete Entity" with confirmation
|
|
57
|
+
|
|
58
|
+
### Data Fetching
|
|
59
|
+
|
|
60
|
+
```
|
|
61
|
+
GET /api/cortex/graph/entities → all nodes
|
|
62
|
+
GET /api/cortex/graph/edges?from={id} → edges for selected node
|
|
63
|
+
GET /api/cortex/graph/edges?to={id} → edges to selected node
|
|
64
|
+
GET /api/cortex/search?q=&layer=personal&limit=5 → related knowledge (when node selected)
|
|
65
|
+
GET /api/cortex/status → stats for tab bar
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
For the graph canvas, fetch ALL entities and ALL edges on mount (the graph is small — hundreds of nodes, not millions). Build the node/link arrays for force-graph from the API response.
|
|
69
|
+
|
|
70
|
+
To get all edges, add a new lightweight endpoint or use a query parameter:
|
|
71
|
+
```
|
|
72
|
+
GET /api/cortex/graph/edges?all=true → all edges (for graph rendering)
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## Component 2: Enhanced Knowledge Cards
|
|
76
|
+
|
|
77
|
+
### Modify: `src/components/cortex/knowledge-card.tsx`
|
|
78
|
+
|
|
79
|
+
The existing card shows: type badge, age, text, confidence bar, delete button.
|
|
80
|
+
|
|
81
|
+
Add v2 fields (displayed only when present — backward compatible with v1 data):
|
|
82
|
+
|
|
83
|
+
**Badge row (top):**
|
|
84
|
+
- Existing type badge (decision, error_fix, etc.)
|
|
85
|
+
- NEW: Sensitivity badge — color-coded:
|
|
86
|
+
- public: green (#10b981)
|
|
87
|
+
- internal: blue (#6366f1)
|
|
88
|
+
- restricted: amber (#f59e0b)
|
|
89
|
+
- confidential: red (#ef4444)
|
|
90
|
+
- NEW: Scope badge — shows scope level (personal, team, department, organization) in muted purple
|
|
91
|
+
|
|
92
|
+
**Attribution row (below text):**
|
|
93
|
+
- Creator: `by {origin.creator_entity_id}` (strip "person-" prefix for display)
|
|
94
|
+
- Source: `via {origin.source_type}` (conversation, git_commit, document, etc.)
|
|
95
|
+
- Corroborations: `{corroborations} corroborations` in green if > 0
|
|
96
|
+
- Contradictions: `{contradiction_refs.length} contested` in amber if > 0
|
|
97
|
+
|
|
98
|
+
**Evidence bar (replaces confidence bar):**
|
|
99
|
+
- If `evidence_score` is present, show it instead of `confidence`
|
|
100
|
+
- Label: "0.72 evidence" instead of "85% confidence"
|
|
101
|
+
- Same visual style (horizontal bar with fill)
|
|
102
|
+
|
|
103
|
+
**Conflict indicator:**
|
|
104
|
+
- If `contradiction_refs.length > 0`, show an amber warning icon and "Contested" text
|
|
105
|
+
|
|
106
|
+
All new fields use optional chaining — if undefined, the row/badge simply doesn't render.
|
|
107
|
+
|
|
108
|
+
## Component 3: Context Assembly Tab
|
|
109
|
+
|
|
110
|
+
### Tab content within `/cortex` page
|
|
111
|
+
|
|
112
|
+
A query input at the top. User types a question and clicks "Analyze" (or presses Enter). The tab calls `GET /api/cortex/context/?q={query}&limit=5` and displays the full pipeline breakdown.
|
|
113
|
+
|
|
114
|
+
**Layout (top to bottom):**
|
|
115
|
+
|
|
116
|
+
1. **Query input** — text field + Analyze button
|
|
117
|
+
|
|
118
|
+
2. **Pipeline summary cards** (3 columns):
|
|
119
|
+
- Intent card: detected intent name (color-coded), confidence score
|
|
120
|
+
- Entities card: list of resolved entities with type badges
|
|
121
|
+
- Timing card: total ms (large number), breakdown (intent, entity, search)
|
|
122
|
+
|
|
123
|
+
3. **Source weights** — horizontal bars showing each source's computed weight. Three bars: Personal, Team, Org. Bar fill proportional to weight, numeric label.
|
|
124
|
+
|
|
125
|
+
4. **Results list** — ranked knowledge units with:
|
|
126
|
+
- Type badge
|
|
127
|
+
- Text snippet
|
|
128
|
+
- Relevance score (right-aligned)
|
|
129
|
+
- Source attribution
|
|
130
|
+
|
|
131
|
+
5. **Conflict callout** (if any) — amber box showing conflicting pairs
|
|
132
|
+
|
|
133
|
+
6. **Raw context preview** — collapsible section showing the `<cortex-context>` XML that would be injected into a Claude prompt
|
|
134
|
+
|
|
135
|
+
### Data Fetching
|
|
136
|
+
|
|
137
|
+
Single API call: `GET /api/cortex/context/?q={query}&limit=5`
|
|
138
|
+
|
|
139
|
+
Response shape (requires backend modifications — see Backend Changes section):
|
|
140
|
+
```typescript
|
|
141
|
+
{
|
|
142
|
+
results: ScoredKnowledge[]
|
|
143
|
+
context: string // pre-formatted XML
|
|
144
|
+
intent: { intent, confidence, biases }
|
|
145
|
+
entities: ResolvedEntity[] // NEW: resolved entity references
|
|
146
|
+
conflicts: ConflictPair[] // CHANGED: full pairs, not just count
|
|
147
|
+
sourceWeights: Array<{ layerKey: string; scopeLevel: string; weight: number }> // NEW
|
|
148
|
+
timing: { intentMs, entityMs, searchMs, totalMs }
|
|
149
|
+
}
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
## Component 4: Existing Panel Enhancement
|
|
153
|
+
|
|
154
|
+
### Modify: `src/components/cortex/cortex-panel.tsx`
|
|
155
|
+
|
|
156
|
+
Minimal changes to the existing right-side panel:
|
|
157
|
+
|
|
158
|
+
1. Add "Open full view" link at the top → navigates to `/cortex` using Next.js router
|
|
159
|
+
2. Replace `KnowledgeCard` import to use the enhanced version (same component, just has new optional fields)
|
|
160
|
+
3. No layout changes — panel stays at 384px width with existing tabs
|
|
161
|
+
|
|
162
|
+
## Component 5: Sidebar Navigation
|
|
163
|
+
|
|
164
|
+
### Modify: `src/components/layout/sidebar.tsx`
|
|
165
|
+
|
|
166
|
+
Add a "Cortex" nav item to the sidebar:
|
|
167
|
+
- Icon: Brain from lucide-react (already used by CortexIndicator)
|
|
168
|
+
- Position: after existing nav items (Terminal, Sessions, etc.)
|
|
169
|
+
- Route: `/cortex`
|
|
170
|
+
- Gated by `useTier().hasCortex`
|
|
171
|
+
- Active state: indigo background (`bg-indigo-950 text-indigo-300`) consistent with other sidebar items
|
|
172
|
+
|
|
173
|
+
The existing CortexIndicator (bottom of sidebar) remains — it shows the knowledge count badge and toggles the right panel.
|
|
174
|
+
|
|
175
|
+
## Backend Changes (3 modifications)
|
|
176
|
+
|
|
177
|
+
### 1. `EntityGraph.listAllEdges()` + edges route `all=true`
|
|
178
|
+
|
|
179
|
+
Add a `listAllEdges(): Edge[]` method to `EntityGraph` class:
|
|
180
|
+
```typescript
|
|
181
|
+
listAllEdges(): Edge[] {
|
|
182
|
+
return (this.db.prepare('SELECT * FROM edges').all() as any[]).map(r => this.rowToEdge(r));
|
|
183
|
+
}
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
Modify `src/app/api/cortex/graph/edges/route.ts` GET handler: if `all=true` query param is present, call `cortex.graph.listAllEdges()` and return all edges (bypassing the `from`/`to` requirement). No pagination needed — graph is small.
|
|
187
|
+
|
|
188
|
+
### 2. Context API response expansion
|
|
189
|
+
|
|
190
|
+
Modify `src/app/api/cortex/context/route.ts` to include three additional fields from `AssemblyResult`:
|
|
191
|
+
- `entities: result.entities` — resolved entity references (currently dropped)
|
|
192
|
+
- `conflicts: result.conflicts` — full `ConflictPair[]` array (currently flattened to count)
|
|
193
|
+
- `sourceWeights` — requires exposing the computed source weights from `ContextEngine`
|
|
194
|
+
|
|
195
|
+
To expose source weights, add a `sourceWeights` field to `AssemblyResult` in `context-engine.ts` and populate it from the `computeSourceWeights()` output (currently private, just return the array of `{ layerKey, scopeLevel, weight }` objects).
|
|
196
|
+
|
|
197
|
+
### 3. Sidebar active state
|
|
198
|
+
|
|
199
|
+
Use the existing indigo active state pattern (`bg-indigo-950 text-indigo-300`) for the Cortex nav item, consistent with other sidebar items. The purple (#7c3aed) is used inside the Cortex page for graph elements, not for sidebar navigation.
|
|
200
|
+
|
|
201
|
+
### Settings tab
|
|
202
|
+
|
|
203
|
+
The Settings tab renders the existing `<CortexSettings />` component (`src/components/cortex/cortex-settings.tsx`). No new settings content needed.
|
|
204
|
+
|
|
205
|
+
## File Structure
|
|
206
|
+
|
|
207
|
+
```
|
|
208
|
+
New files:
|
|
209
|
+
├── src/app/(desktop)/cortex/page.tsx — Main /cortex page with tabs
|
|
210
|
+
├── src/components/cortex/entity-graph.tsx — Force graph canvas component
|
|
211
|
+
├── src/components/cortex/entity-detail.tsx — Right-side entity detail panel
|
|
212
|
+
├── src/components/cortex/context-tab.tsx — Context assembly tab content
|
|
213
|
+
├── src/components/cortex/knowledge-tab.tsx — Knowledge list tab (reuses enhanced cards)
|
|
214
|
+
|
|
215
|
+
Modified files:
|
|
216
|
+
├── src/components/cortex/knowledge-card.tsx — Add v2 field display
|
|
217
|
+
├── src/components/cortex/cortex-panel.tsx — Add "Open full view" link
|
|
218
|
+
├── src/components/layout/sidebar.tsx — Add Cortex nav item
|
|
219
|
+
├── src/app/api/cortex/graph/edges/route.ts — Support all=true parameter + listAllEdges()
|
|
220
|
+
├── src/lib/cortex/graph/entity-graph.ts — Add listAllEdges() method
|
|
221
|
+
├── src/app/api/cortex/context/route.ts — Expand response (entities, conflicts, sourceWeights)
|
|
222
|
+
├── src/lib/cortex/retrieval/context-engine.ts — Expose sourceWeights in AssemblyResult
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
## npm Dependency
|
|
226
|
+
|
|
227
|
+
```
|
|
228
|
+
force-graph: ^1.44.0
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
Canvas-based force-directed graph renderer. ~30KB gzipped. Wraps d3-force with a Canvas/WebGL renderer. Supports zoom, drag, click, hover out of the box. The `entity-graph.tsx` component (not the backend `entity-graph.ts`) is the dynamic import target: `const ForceGraph = dynamic(() => import('./entity-graph'), { ssr: false })`. The parent page handles the loading state.
|
|
232
|
+
|
|
233
|
+
## Success Criteria
|
|
234
|
+
|
|
235
|
+
- Entity graph renders all entities and edges with correct colors/shapes
|
|
236
|
+
- Clicking a node shows its relationships and related knowledge
|
|
237
|
+
- Knowledge cards show v2 fields when present, degrade gracefully for v1 data
|
|
238
|
+
- Context tab shows full pipeline breakdown (intent, entities, weights, timing, results)
|
|
239
|
+
- All within existing dark theme, no visual inconsistencies
|
|
240
|
+
- Page loads in <1s, graph interaction is smooth (60fps)
|