shieldcortex 2.1.1 → 2.1.3

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.
Files changed (87) hide show
  1. package/README.md +1 -1
  2. package/dist/defence/firewall/encoding-detector.js +1 -1
  3. package/dist/defence/firewall/encoding-detector.js.map +1 -1
  4. package/dist/defence/firewall/index.js +22 -0
  5. package/dist/defence/firewall/index.js.map +1 -1
  6. package/dist/defence/firewall/instruction-detector.d.ts.map +1 -1
  7. package/dist/defence/firewall/instruction-detector.js +26 -0
  8. package/dist/defence/firewall/instruction-detector.js.map +1 -1
  9. package/dist/defence/pipeline.d.ts.map +1 -1
  10. package/dist/defence/pipeline.js +8 -0
  11. package/dist/defence/pipeline.js.map +1 -1
  12. package/hooks/clawdbot/cortex-memory/HOOK.md +2 -2
  13. package/package.json +13 -9
  14. package/dashboard/components.json +0 -22
  15. package/dashboard/eslint.config.mjs +0 -42
  16. package/dashboard/next.config.ts +0 -7
  17. package/dashboard/package-lock.json +0 -8053
  18. package/dashboard/package.json +0 -44
  19. package/dashboard/postcss.config.mjs +0 -7
  20. package/dashboard/public/file.svg +0 -1
  21. package/dashboard/public/globe.svg +0 -1
  22. package/dashboard/public/next.svg +0 -1
  23. package/dashboard/public/vercel.svg +0 -1
  24. package/dashboard/public/window.svg +0 -1
  25. package/dashboard/scripts/ensure-api.mjs +0 -76
  26. package/dashboard/src/app/error.tsx +0 -49
  27. package/dashboard/src/app/favicon.ico +0 -0
  28. package/dashboard/src/app/globals.css +0 -130
  29. package/dashboard/src/app/layout.tsx +0 -35
  30. package/dashboard/src/app/page.tsx +0 -364
  31. package/dashboard/src/components/Providers.tsx +0 -27
  32. package/dashboard/src/components/brain/ActivityPulseSystem.tsx +0 -229
  33. package/dashboard/src/components/brain/BrainMesh.tsx +0 -133
  34. package/dashboard/src/components/brain/BrainRegions.tsx +0 -254
  35. package/dashboard/src/components/brain/BrainScene.tsx +0 -255
  36. package/dashboard/src/components/brain/CategoryLabels.tsx +0 -103
  37. package/dashboard/src/components/brain/CoreSphere.tsx +0 -215
  38. package/dashboard/src/components/brain/DataFlowParticles.tsx +0 -123
  39. package/dashboard/src/components/brain/DataStreamRings.tsx +0 -161
  40. package/dashboard/src/components/brain/ElectronFlow.tsx +0 -323
  41. package/dashboard/src/components/brain/HolographicGrid.tsx +0 -235
  42. package/dashboard/src/components/brain/MemoryLinks.tsx +0 -271
  43. package/dashboard/src/components/brain/MemoryNode.tsx +0 -245
  44. package/dashboard/src/components/brain/NeuralPathways.tsx +0 -441
  45. package/dashboard/src/components/brain/SynapseNodes.tsx +0 -312
  46. package/dashboard/src/components/brain/TimelineControls.tsx +0 -205
  47. package/dashboard/src/components/chip/ChipScene.tsx +0 -497
  48. package/dashboard/src/components/chip/ChipSubstrate.tsx +0 -238
  49. package/dashboard/src/components/chip/CortexCore.tsx +0 -210
  50. package/dashboard/src/components/chip/DataBus.tsx +0 -416
  51. package/dashboard/src/components/chip/MemoryCell.tsx +0 -225
  52. package/dashboard/src/components/chip/MemoryGrid.tsx +0 -328
  53. package/dashboard/src/components/chip/QuantumCell.tsx +0 -316
  54. package/dashboard/src/components/chip/SectionLabel.tsx +0 -113
  55. package/dashboard/src/components/chip/index.ts +0 -14
  56. package/dashboard/src/components/controls/ControlPanel.tsx +0 -106
  57. package/dashboard/src/components/controls/VersionPanel.tsx +0 -185
  58. package/dashboard/src/components/dashboard/StatsPanel.tsx +0 -164
  59. package/dashboard/src/components/debug/ActivityLog.tsx +0 -250
  60. package/dashboard/src/components/debug/DebugPanel.tsx +0 -101
  61. package/dashboard/src/components/debug/QueryTester.tsx +0 -192
  62. package/dashboard/src/components/debug/RelationshipGraph.tsx +0 -403
  63. package/dashboard/src/components/debug/SqlConsole.tsx +0 -319
  64. package/dashboard/src/components/graph/KnowledgeGraph.tsx +0 -230
  65. package/dashboard/src/components/graph/OntologyGraph.tsx +0 -631
  66. package/dashboard/src/components/insights/ActivityHeatmap.tsx +0 -131
  67. package/dashboard/src/components/insights/InsightsView.tsx +0 -46
  68. package/dashboard/src/components/insights/KnowledgeMapPanel.tsx +0 -80
  69. package/dashboard/src/components/insights/QualityPanel.tsx +0 -116
  70. package/dashboard/src/components/memories/MemoriesView.tsx +0 -150
  71. package/dashboard/src/components/memories/MemoryCard.tsx +0 -103
  72. package/dashboard/src/components/memory/MemoryDetail.tsx +0 -325
  73. package/dashboard/src/components/nav/NavRail.tsx +0 -54
  74. package/dashboard/src/components/ui/button.tsx +0 -62
  75. package/dashboard/src/components/ui/card.tsx +0 -92
  76. package/dashboard/src/components/ui/input.tsx +0 -21
  77. package/dashboard/src/hooks/useDebouncedValue.ts +0 -24
  78. package/dashboard/src/hooks/useMemories.ts +0 -458
  79. package/dashboard/src/hooks/useSuggestions.ts +0 -46
  80. package/dashboard/src/lib/category-colors.ts +0 -84
  81. package/dashboard/src/lib/position-algorithm.ts +0 -177
  82. package/dashboard/src/lib/simplex-noise.ts +0 -217
  83. package/dashboard/src/lib/store.ts +0 -88
  84. package/dashboard/src/lib/utils.ts +0 -6
  85. package/dashboard/src/lib/websocket.ts +0 -249
  86. package/dashboard/src/types/memory.ts +0 -73
  87. package/dashboard/tsconfig.json +0 -34
@@ -1,44 +0,0 @@
1
- {
2
- "name": "dashboard",
3
- "version": "0.1.0",
4
- "private": true,
5
- "scripts": {
6
- "predev": "node scripts/ensure-api.mjs",
7
- "dev": "next dev -p 3030",
8
- "build": "next build",
9
- "start": "next start -p 3030",
10
- "lint": "eslint"
11
- },
12
- "dependencies": {
13
- "@radix-ui/react-slot": "^1.2.4",
14
- "@react-three/drei": "^10.7.7",
15
- "@react-three/fiber": "^9.5.0",
16
- "@react-three/postprocessing": "^3.0.4",
17
- "@tanstack/react-query": "^5.90.19",
18
- "@types/three": "^0.182.0",
19
- "class-variance-authority": "^0.7.1",
20
- "clsx": "^2.1.1",
21
- "framer-motion": "^12.29.0",
22
- "lucide-react": "^0.562.0",
23
- "next": "16.1.4",
24
- "react": "19.2.3",
25
- "react-dom": "19.2.3",
26
- "react-force-graph-2d": "^1.29.0",
27
- "react-resizable-panels": "^4.4.1",
28
- "recharts": "^3.7.0",
29
- "tailwind-merge": "^3.4.0",
30
- "three": "^0.182.0",
31
- "zustand": "^5.0.10"
32
- },
33
- "devDependencies": {
34
- "@tailwindcss/postcss": "^4",
35
- "@types/node": "^20",
36
- "@types/react": "^19",
37
- "@types/react-dom": "^19",
38
- "eslint": "^9",
39
- "eslint-config-next": "16.1.4",
40
- "tailwindcss": "^4",
41
- "tw-animate-css": "^1.4.0",
42
- "typescript": "^5"
43
- }
44
- }
@@ -1,7 +0,0 @@
1
- const config = {
2
- plugins: {
3
- "@tailwindcss/postcss": {},
4
- },
5
- };
6
-
7
- export default config;
@@ -1 +0,0 @@
1
- <svg fill="none" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M14.5 13.5V5.41a1 1 0 0 0-.3-.7L9.8.29A1 1 0 0 0 9.08 0H1.5v13.5A2.5 2.5 0 0 0 4 16h8a2.5 2.5 0 0 0 2.5-2.5m-1.5 0v-7H8v-5H3v12a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1M9.5 5V2.12L12.38 5zM5.13 5h-.62v1.25h2.12V5zm-.62 3h7.12v1.25H4.5zm.62 3h-.62v1.25h7.12V11z" clip-rule="evenodd" fill="#666" fill-rule="evenodd"/></svg>
@@ -1 +0,0 @@
1
- <svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><g clip-path="url(#a)"><path fill-rule="evenodd" clip-rule="evenodd" d="M10.27 14.1a6.5 6.5 0 0 0 3.67-3.45q-1.24.21-2.7.34-.31 1.83-.97 3.1M8 16A8 8 0 1 0 8 0a8 8 0 0 0 0 16m.48-1.52a7 7 0 0 1-.96 0H7.5a4 4 0 0 1-.84-1.32q-.38-.89-.63-2.08a40 40 0 0 0 3.92 0q-.25 1.2-.63 2.08a4 4 0 0 1-.84 1.31zm2.94-4.76q1.66-.15 2.95-.43a7 7 0 0 0 0-2.58q-1.3-.27-2.95-.43a18 18 0 0 1 0 3.44m-1.27-3.54a17 17 0 0 1 0 3.64 39 39 0 0 1-4.3 0 17 17 0 0 1 0-3.64 39 39 0 0 1 4.3 0m1.1-1.17q1.45.13 2.69.34a6.5 6.5 0 0 0-3.67-3.44q.65 1.26.98 3.1M8.48 1.5l.01.02q.41.37.84 1.31.38.89.63 2.08a40 40 0 0 0-3.92 0q.25-1.2.63-2.08a4 4 0 0 1 .85-1.32 7 7 0 0 1 .96 0m-2.75.4a6.5 6.5 0 0 0-3.67 3.44 29 29 0 0 1 2.7-.34q.31-1.83.97-3.1M4.58 6.28q-1.66.16-2.95.43a7 7 0 0 0 0 2.58q1.3.27 2.95.43a18 18 0 0 1 0-3.44m.17 4.71q-1.45-.12-2.69-.34a6.5 6.5 0 0 0 3.67 3.44q-.65-1.27-.98-3.1" fill="#666"/></g><defs><clipPath id="a"><path fill="#fff" d="M0 0h16v16H0z"/></clipPath></defs></svg>
@@ -1 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 394 80"><path fill="#000" d="M262 0h68.5v12.7h-27.2v66.6h-13.6V12.7H262V0ZM149 0v12.7H94v20.4h44.3v12.6H94v21h55v12.6H80.5V0h68.7zm34.3 0h-17.8l63.8 79.4h17.9l-32-39.7 32-39.6h-17.9l-23 28.6-23-28.6zm18.3 56.7-9-11-27.1 33.7h17.8l18.3-22.7z"/><path fill="#000" d="M81 79.3 17 0H0v79.3h13.6V17l50.2 62.3H81Zm252.6-.4c-1 0-1.8-.4-2.5-1s-1.1-1.6-1.1-2.6.3-1.8 1-2.5 1.6-1 2.6-1 1.8.3 2.5 1a3.4 3.4 0 0 1 .6 4.3 3.7 3.7 0 0 1-3 1.8zm23.2-33.5h6v23.3c0 2.1-.4 4-1.3 5.5a9.1 9.1 0 0 1-3.8 3.5c-1.6.8-3.5 1.3-5.7 1.3-2 0-3.7-.4-5.3-1s-2.8-1.8-3.7-3.2c-.9-1.3-1.4-3-1.4-5h6c.1.8.3 1.6.7 2.2s1 1.2 1.6 1.5c.7.4 1.5.5 2.4.5 1 0 1.8-.2 2.4-.6a4 4 0 0 0 1.6-1.8c.3-.8.5-1.8.5-3V45.5zm30.9 9.1a4.4 4.4 0 0 0-2-3.3 7.5 7.5 0 0 0-4.3-1.1c-1.3 0-2.4.2-3.3.5-.9.4-1.6 1-2 1.6a3.5 3.5 0 0 0-.3 4c.3.5.7.9 1.3 1.2l1.8 1 2 .5 3.2.8c1.3.3 2.5.7 3.7 1.2a13 13 0 0 1 3.2 1.8 8.1 8.1 0 0 1 3 6.5c0 2-.5 3.7-1.5 5.1a10 10 0 0 1-4.4 3.5c-1.8.8-4.1 1.2-6.8 1.2-2.6 0-4.9-.4-6.8-1.2-2-.8-3.4-2-4.5-3.5a10 10 0 0 1-1.7-5.6h6a5 5 0 0 0 3.5 4.6c1 .4 2.2.6 3.4.6 1.3 0 2.5-.2 3.5-.6 1-.4 1.8-1 2.4-1.7a4 4 0 0 0 .8-2.4c0-.9-.2-1.6-.7-2.2a11 11 0 0 0-2.1-1.4l-3.2-1-3.8-1c-2.8-.7-5-1.7-6.6-3.2a7.2 7.2 0 0 1-2.4-5.7 8 8 0 0 1 1.7-5 10 10 0 0 1 4.3-3.5c2-.8 4-1.2 6.4-1.2 2.3 0 4.4.4 6.2 1.2 1.8.8 3.2 2 4.3 3.4 1 1.4 1.5 3 1.5 5h-5.8z"/></svg>
@@ -1 +0,0 @@
1
- <svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1155 1000"><path d="m577.3 0 577.4 1000H0z" fill="#fff"/></svg>
@@ -1 +0,0 @@
1
- <svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path fill-rule="evenodd" clip-rule="evenodd" d="M1.5 2.5h13v10a1 1 0 0 1-1 1h-11a1 1 0 0 1-1-1zM0 1h16v11.5a2.5 2.5 0 0 1-2.5 2.5h-11A2.5 2.5 0 0 1 0 12.5zm3.75 4.5a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5M7 4.75a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0m1.75.75a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5" fill="#666"/></svg>
@@ -1,76 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * Ensures the API server is running before starting the dashboard.
4
- * Automatically spawns the API if it's not reachable.
5
- */
6
-
7
- import { spawn } from 'child_process';
8
- import { fileURLToPath } from 'url';
9
- import { dirname, join } from 'path';
10
-
11
- const __dirname = dirname(fileURLToPath(import.meta.url));
12
- const rootDir = join(__dirname, '..', '..');
13
-
14
- const API_URL = process.env.NEXT_PUBLIC_API_URL || 'http://localhost:3001';
15
- const HEALTH_ENDPOINT = `${API_URL}/api/health`;
16
- const MAX_WAIT_MS = 10000;
17
- const POLL_INTERVAL_MS = 500;
18
-
19
- async function checkApiHealth() {
20
- try {
21
- const response = await fetch(HEALTH_ENDPOINT, {
22
- signal: AbortSignal.timeout(2000)
23
- });
24
- return response.ok;
25
- } catch {
26
- return false;
27
- }
28
- }
29
-
30
- async function waitForApi(timeoutMs) {
31
- const start = Date.now();
32
- while (Date.now() - start < timeoutMs) {
33
- if (await checkApiHealth()) {
34
- return true;
35
- }
36
- await new Promise(r => setTimeout(r, POLL_INTERVAL_MS));
37
- }
38
- return false;
39
- }
40
-
41
- async function main() {
42
- console.log('[Dashboard] Checking if API server is running...');
43
-
44
- if (await checkApiHealth()) {
45
- console.log('[Dashboard] API server is already running ✓');
46
- process.exit(0);
47
- }
48
-
49
- console.log('[Dashboard] API server not detected, starting it...');
50
-
51
- // Spawn API server in background (fully detached)
52
- // Using 'ignore' for all stdio to prevent SIGPIPE when parent exits
53
- const apiProcess = spawn('npm', ['run', 'dev:api'], {
54
- cwd: rootDir,
55
- detached: true,
56
- stdio: 'ignore',
57
- shell: true,
58
- });
59
-
60
- // Fully detach - allow parent to exit without killing child
61
- apiProcess.unref();
62
-
63
- // Wait for API to be ready
64
- console.log('[Dashboard] Waiting for API server to be ready...');
65
- const ready = await waitForApi(MAX_WAIT_MS);
66
-
67
- if (ready) {
68
- console.log('[Dashboard] API server is ready ✓');
69
- process.exit(0);
70
- } else {
71
- console.error('[Dashboard] API server failed to start within timeout');
72
- process.exit(1);
73
- }
74
- }
75
-
76
- main();
@@ -1,49 +0,0 @@
1
- 'use client';
2
-
3
- import { useEffect } from 'react';
4
-
5
- export default function Error({
6
- error,
7
- reset,
8
- }: {
9
- error: Error & { digest?: string };
10
- reset: () => void;
11
- }) {
12
- useEffect(() => {
13
- console.error('[shieldcortex] Dashboard error:', error);
14
- }, [error]);
15
-
16
- return (
17
- <div className="min-h-screen bg-[#0a0a0f] flex items-center justify-center p-4">
18
- <div className="max-w-md w-full bg-gray-900 rounded-lg border border-gray-800 p-6 text-center">
19
- <div className="text-4xl mb-4">🧠</div>
20
- <h2 className="text-xl font-semibold text-white mb-2">
21
- Visualization Error
22
- </h2>
23
- <p className="text-gray-400 mb-4">
24
- The brain visualization encountered an error. This might be due to WebGL
25
- compatibility or memory constraints.
26
- </p>
27
- {error.message && (
28
- <pre className="text-xs text-red-400 bg-gray-950 p-3 rounded mb-4 overflow-auto max-h-32 text-left">
29
- {error.message}
30
- </pre>
31
- )}
32
- <div className="flex gap-3 justify-center">
33
- <button
34
- onClick={reset}
35
- className="px-4 py-2 bg-cyan-600 hover:bg-cyan-700 text-white rounded-md transition-colors"
36
- >
37
- Try Again
38
- </button>
39
- <button
40
- onClick={() => window.location.reload()}
41
- className="px-4 py-2 bg-gray-700 hover:bg-gray-600 text-white rounded-md transition-colors"
42
- >
43
- Reload Page
44
- </button>
45
- </div>
46
- </div>
47
- </div>
48
- );
49
- }
Binary file
@@ -1,130 +0,0 @@
1
- @import "tailwindcss";
2
- @import "tw-animate-css";
3
-
4
- @custom-variant dark (&:is(.dark *));
5
-
6
- @theme inline {
7
- --color-background: var(--background);
8
- --color-foreground: var(--foreground);
9
- --font-sans: var(--font-geist-sans);
10
- --font-mono: var(--font-geist-mono);
11
- --color-sidebar-ring: var(--sidebar-ring);
12
- --color-sidebar-border: var(--sidebar-border);
13
- --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
14
- --color-sidebar-accent: var(--sidebar-accent);
15
- --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
16
- --color-sidebar-primary: var(--sidebar-primary);
17
- --color-sidebar-foreground: var(--sidebar-foreground);
18
- --color-sidebar: var(--sidebar);
19
- --color-chart-5: var(--chart-5);
20
- --color-chart-4: var(--chart-4);
21
- --color-chart-3: var(--chart-3);
22
- --color-chart-2: var(--chart-2);
23
- --color-chart-1: var(--chart-1);
24
- --color-ring: var(--ring);
25
- --color-input: var(--input);
26
- --color-border: var(--border);
27
- --color-destructive: var(--destructive);
28
- --color-accent-foreground: var(--accent-foreground);
29
- --color-accent: var(--accent);
30
- --color-muted-foreground: var(--muted-foreground);
31
- --color-muted: var(--muted);
32
- --color-secondary-foreground: var(--secondary-foreground);
33
- --color-secondary: var(--secondary);
34
- --color-primary-foreground: var(--primary-foreground);
35
- --color-primary: var(--primary);
36
- --color-popover-foreground: var(--popover-foreground);
37
- --color-popover: var(--popover);
38
- --color-card-foreground: var(--card-foreground);
39
- --color-card: var(--card);
40
- --radius-sm: calc(var(--radius) - 4px);
41
- --radius-md: calc(var(--radius) - 2px);
42
- --radius-lg: var(--radius);
43
- --radius-xl: calc(var(--radius) + 4px);
44
- --radius-2xl: calc(var(--radius) + 8px);
45
- --radius-3xl: calc(var(--radius) + 12px);
46
- --radius-4xl: calc(var(--radius) + 16px);
47
- }
48
-
49
- :root {
50
- --radius: 0.625rem;
51
- --background: oklch(1 0 0);
52
- --foreground: oklch(0.145 0 0);
53
- --card: oklch(1 0 0);
54
- --card-foreground: oklch(0.145 0 0);
55
- --popover: oklch(1 0 0);
56
- --popover-foreground: oklch(0.145 0 0);
57
- --primary: oklch(0.205 0 0);
58
- --primary-foreground: oklch(0.985 0 0);
59
- --secondary: oklch(0.97 0 0);
60
- --secondary-foreground: oklch(0.205 0 0);
61
- --muted: oklch(0.97 0 0);
62
- --muted-foreground: oklch(0.556 0 0);
63
- --accent: oklch(0.97 0 0);
64
- --accent-foreground: oklch(0.205 0 0);
65
- --destructive: oklch(0.577 0.245 27.325);
66
- --border: oklch(0.922 0 0);
67
- --input: oklch(0.922 0 0);
68
- --ring: oklch(0.708 0 0);
69
- --chart-1: oklch(0.646 0.222 41.116);
70
- --chart-2: oklch(0.6 0.118 184.704);
71
- --chart-3: oklch(0.398 0.07 227.392);
72
- --chart-4: oklch(0.828 0.189 84.429);
73
- --chart-5: oklch(0.769 0.188 70.08);
74
- --sidebar: oklch(0.985 0 0);
75
- --sidebar-foreground: oklch(0.145 0 0);
76
- --sidebar-primary: oklch(0.205 0 0);
77
- --sidebar-primary-foreground: oklch(0.985 0 0);
78
- --sidebar-accent: oklch(0.97 0 0);
79
- --sidebar-accent-foreground: oklch(0.205 0 0);
80
- --sidebar-border: oklch(0.922 0 0);
81
- --sidebar-ring: oklch(0.708 0 0);
82
- }
83
-
84
- .dark {
85
- --background: oklch(0.145 0 0);
86
- --foreground: oklch(0.985 0 0);
87
- --card: oklch(0.205 0 0);
88
- --card-foreground: oklch(0.985 0 0);
89
- --popover: oklch(0.205 0 0);
90
- --popover-foreground: oklch(0.985 0 0);
91
- --primary: oklch(0.922 0 0);
92
- --primary-foreground: oklch(0.205 0 0);
93
- --secondary: oklch(0.269 0 0);
94
- --secondary-foreground: oklch(0.985 0 0);
95
- --muted: oklch(0.269 0 0);
96
- --muted-foreground: oklch(0.708 0 0);
97
- --accent: oklch(0.269 0 0);
98
- --accent-foreground: oklch(0.985 0 0);
99
- --destructive: oklch(0.704 0.191 22.216);
100
- --border: oklch(1 0 0 / 10%);
101
- --input: oklch(1 0 0 / 15%);
102
- --ring: oklch(0.556 0 0);
103
- --chart-1: oklch(0.488 0.243 264.376);
104
- --chart-2: oklch(0.696 0.17 162.48);
105
- --chart-3: oklch(0.769 0.188 70.08);
106
- --chart-4: oklch(0.627 0.265 303.9);
107
- --chart-5: oklch(0.645 0.246 16.439);
108
- --sidebar: oklch(0.205 0 0);
109
- --sidebar-foreground: oklch(0.985 0 0);
110
- --sidebar-primary: oklch(0.488 0.243 264.376);
111
- --sidebar-primary-foreground: oklch(0.985 0 0);
112
- --sidebar-accent: oklch(0.269 0 0);
113
- --sidebar-accent-foreground: oklch(0.985 0 0);
114
- --sidebar-border: oklch(1 0 0 / 10%);
115
- --sidebar-ring: oklch(0.556 0 0);
116
- }
117
-
118
- @layer base {
119
- * {
120
- @apply border-border outline-ring/50;
121
- }
122
- body {
123
- @apply bg-background text-foreground;
124
- }
125
- }
126
-
127
- /* Hide scrollbar but keep scroll functionality */
128
- .scrollbar-hide::-webkit-scrollbar {
129
- display: none;
130
- }
@@ -1,35 +0,0 @@
1
- import type { Metadata } from "next";
2
- import { Geist, Geist_Mono } from "next/font/google";
3
- import "./globals.css";
4
- import { Providers } from "@/components/Providers";
5
-
6
- const geistSans = Geist({
7
- variable: "--font-geist-sans",
8
- subsets: ["latin"],
9
- });
10
-
11
- const geistMono = Geist_Mono({
12
- variable: "--font-geist-mono",
13
- subsets: ["latin"],
14
- });
15
-
16
- export const metadata: Metadata = {
17
- title: "ShieldCortex",
18
- description: "AI Brain Visualization for ShieldCortex Memory System",
19
- };
20
-
21
- export default function RootLayout({
22
- children,
23
- }: Readonly<{
24
- children: React.ReactNode;
25
- }>) {
26
- return (
27
- <html lang="en" className="dark">
28
- <body
29
- className={`${geistSans.variable} ${geistMono.variable} antialiased bg-slate-950`}
30
- >
31
- <Providers>{children}</Providers>
32
- </body>
33
- </html>
34
- );
35
- }