@hybridlabor-api/bdb-synapse 1.1.1 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/internal/judge/cli.go +27 -1
  2. package/internal/server/analyze.go +1 -1
  3. package/internal/server/static/assets/{index-ndrpq0ER.js → index-Dxzi7dw9.js} +3 -3
  4. package/internal/server/static/assets/logo.svg +56 -0
  5. package/internal/server/static/assets/synapse-app-logo.svg +69 -0
  6. package/internal/server/static/assets/synapse-sidebar-logo.svg +64 -0
  7. package/internal/server/static/favicon.svg +50 -0
  8. package/internal/server/static/index.html +2 -5
  9. package/package.json +1 -1
  10. package/web/index.html +1 -4
  11. package/web/public/assets/logo.svg +56 -0
  12. package/web/public/assets/synapse-app-logo.svg +69 -0
  13. package/web/public/assets/synapse-sidebar-logo.svg +64 -0
  14. package/web/public/favicon.svg +50 -0
  15. package/web/src/ui/LogoMark.tsx +8 -30
  16. package/web/src/ui/ReportPanel.tsx +11 -1
  17. package/web/src/ui/SessionRail.tsx +7 -6
  18. package/bin/synapse +0 -0
  19. package/bin/synapse-darwin-arm64 +0 -0
  20. package/bin/synapse-linux-amd64 +0 -0
  21. package/bin/synapse.exe +0 -0
  22. package/web/dist/assets/fraunces-latin-ext-standard-italic-CGbN9UgK.woff2 +0 -0
  23. package/web/dist/assets/fraunces-latin-ext-standard-normal-CJcjJNj7.woff2 +0 -0
  24. package/web/dist/assets/fraunces-latin-standard-italic-lSdLDfvT.woff2 +0 -0
  25. package/web/dist/assets/fraunces-latin-standard-normal-DihXLNYH.woff2 +0 -0
  26. package/web/dist/assets/fraunces-vietnamese-standard-italic-DxWqP7Ku.woff2 +0 -0
  27. package/web/dist/assets/fraunces-vietnamese-standard-normal-Czevyj-6.woff2 +0 -0
  28. package/web/dist/assets/index-BNoY_BiB.css +0 -1
  29. package/web/dist/assets/index-ndrpq0ER.js +0 -3
  30. package/web/dist/assets/index-ndrpq0ER.js.map +0 -1
  31. package/web/dist/assets/react-gcHzaSmV.js +0 -10
  32. package/web/dist/assets/react-gcHzaSmV.js.map +0 -1
  33. package/web/dist/assets/schibsted-grotesk-latin-ext-wght-normal-hsMS0n0O.woff2 +0 -0
  34. package/web/dist/assets/schibsted-grotesk-latin-wght-normal-Bb8VGrTG.woff2 +0 -0
  35. package/web/dist/assets/three-DnGjZfD1.js +0 -4012
  36. package/web/dist/assets/three-DnGjZfD1.js.map +0 -1
  37. package/web/dist/index.html +0 -26
  38. package/web/tsconfig.tsbuildinfo +0 -1
@@ -0,0 +1,56 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" width="100%" height="100%">
2
+ <defs>
3
+ <linearGradient id="pLight" x1="0%" y1="0%" x2="100%" y2="100%">
4
+ <stop offset="0%" stop-color="#FFFFFF"/>
5
+ <stop offset="60%" stop-color="#FFFFFF"/>
6
+ <stop offset="100%" stop-color="#E7E7EA"/>
7
+ </linearGradient>
8
+ <linearGradient id="pMid" x1="0%" y1="0%" x2="0%" y2="100%">
9
+ <stop offset="0%" stop-color="#9b30c4"/>
10
+ <stop offset="100%" stop-color="#51116F"/>
11
+ </linearGradient>
12
+ <linearGradient id="pDark" x1="0%" y1="0%" x2="0%" y2="100%">
13
+ <stop offset="0%" stop-color="#1C1C1F"/>
14
+ <stop offset="100%" stop-color="#050505"/>
15
+ </linearGradient>
16
+ </defs>
17
+ <g transform="translate(70, 70) scale(1.0)">
18
+
19
+ <g transform="translate(186 186) scale(1.7) translate(-186 -186)">
20
+ <polygon points="186,198 306,258 186,318 66,258" fill="#0d0d10" stroke="#000" stroke-width="3"/>
21
+ <g stroke="#9b30c4" stroke-width="0.75" opacity="0.3">
22
+ <line x1="126" y1="228" x2="126" y2="288"/>
23
+ <line x1="186" y1="198" x2="186" y2="318"/>
24
+ <line x1="246" y1="228" x2="246" y2="288"/>
25
+ </g>
26
+ <!-- back-to-front building order -->
27
+ <polygon points="152.0,211.5 169.0,220.0 169.0,250.0 152.0,241.5" fill="#B4B4B8" stroke="#000" stroke-width="1.5"/>
28
+ <polygon points="169.0,220.0 186.0,211.5 186.0,241.5 169.0,250.0" fill="#DADADE" stroke="#000" stroke-width="1.5"/>
29
+ <polygon points="169.0,203.0 186.0,211.5 169.0,220.0 152.0,211.5" fill="#FFFFFF" stroke="#000" stroke-width="1.5"/>
30
+
31
+ <polygon points="186.0,151.5 203.0,160.0 203.0,250.0 186.0,241.5" fill="#3d1350" stroke="#000" stroke-width="1.5"/>
32
+ <polygon points="203.0,160.0 220.0,151.5 220.0,241.5 203.0,250.0" fill="#6b1f8a" stroke="#000" stroke-width="1.5"/>
33
+ <polygon points="203.0,143.0 220.0,151.5 203.0,160.0 186.0,151.5" fill="#9b30c4" stroke="#000" stroke-width="1.5"/>
34
+
35
+ <polygon points="135.0,205.0 152.0,213.5 152.0,258.5 135.0,250.0" fill="#0E0E10" stroke="#000" stroke-width="1.5"/>
36
+ <polygon points="152.0,213.5 169.0,205.0 169.0,250.0 152.0,258.5" fill="#1C1C1F" stroke="#000" stroke-width="1.5"/>
37
+ <polygon points="152.0,196.5 169.0,205.0 152.0,213.5 135.0,205.0" fill="#2E2E32" stroke="#000" stroke-width="1.5"/>
38
+
39
+ <polygon points="169.0,210.0 186.0,218.5 186.0,258.5 169.0,250.0" fill="#B4B4B8" stroke="#000" stroke-width="1.5"/>
40
+ <polygon points="186.0,218.5 203.0,210.0 203.0,250.0 186.0,258.5" fill="#DADADE" stroke="#000" stroke-width="1.5"/>
41
+ <polygon points="186.0,201.5 203.0,210.0 186.0,218.5 169.0,210.0" fill="#FFFFFF" stroke="#000" stroke-width="1.5"/>
42
+
43
+ <polygon points="203.0,225.0 220.0,233.5 220.0,258.5 203.0,250.0" fill="#0E0E10" stroke="#000" stroke-width="1.5"/>
44
+ <polygon points="220.0,233.5 237.0,225.0 237.0,250.0 220.0,258.5" fill="#1C1C1F" stroke="#000" stroke-width="1.5"/>
45
+ <polygon points="220.0,216.5 237.0,225.0 220.0,233.5 203.0,225.0" fill="#2E2E32" stroke="#000" stroke-width="1.5"/>
46
+
47
+ <polygon points="152.0,203.5 169.0,212.0 169.0,267.0 152.0,258.5" fill="#3d1350" stroke="#000" stroke-width="1.5"/>
48
+ <polygon points="169.0,212.0 186.0,203.5 186.0,258.5 169.0,267.0" fill="#6b1f8a" stroke="#000" stroke-width="1.5"/>
49
+ <polygon points="169.0,195.0 186.0,203.5 169.0,212.0 152.0,203.5" fill="#9b30c4" stroke="#000" stroke-width="1.5"/>
50
+
51
+ <polygon points="186.0,188.5 203.0,197.0 203.0,267.0 186.0,258.5" fill="#B4B4B8" stroke="#000" stroke-width="1.5"/>
52
+ <polygon points="203.0,197.0 220.0,188.5 220.0,258.5 203.0,267.0" fill="#DADADE" stroke="#000" stroke-width="1.5"/>
53
+ <polygon points="203.0,180.0 220.0,188.5 203.0,197.0 186.0,188.5" fill="#FFFFFF" stroke="#000" stroke-width="1.5"/>
54
+ </g>
55
+ </g>
56
+ </svg>
@@ -0,0 +1,69 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 520 120" width="100%" height="100%">
2
+ <defs>
3
+ <linearGradient id="pLight" x1="0%" y1="0%" x2="100%" y2="100%">
4
+ <stop offset="0%" stop-color="#FFFFFF"/>
5
+ <stop offset="60%" stop-color="#FFFFFF"/>
6
+ <stop offset="100%" stop-color="#E7E7EA"/>
7
+ </linearGradient>
8
+ <linearGradient id="pMid" x1="0%" y1="0%" x2="0%" y2="100%">
9
+ <stop offset="0%" stop-color="#9b30c4"/>
10
+ <stop offset="100%" stop-color="#51116F"/>
11
+ </linearGradient>
12
+ <linearGradient id="pDark" x1="0%" y1="0%" x2="0%" y2="100%">
13
+ <stop offset="0%" stop-color="#1C1C1F"/>
14
+ <stop offset="100%" stop-color="#050505"/>
15
+ </linearGradient>
16
+ </defs>
17
+
18
+ <!-- ICON (Left) -->
19
+ <g transform="translate(10, 8) scale(0.27)">
20
+
21
+ <g transform="translate(186 186) scale(1.7) translate(-186 -186)">
22
+ <polygon points="186,198 306,258 186,318 66,258" fill="#0d0d10" stroke="#000" stroke-width="3"/>
23
+ <g stroke="#9b30c4" stroke-width="0.75" opacity="0.3">
24
+ <line x1="126" y1="228" x2="126" y2="288"/>
25
+ <line x1="186" y1="198" x2="186" y2="318"/>
26
+ <line x1="246" y1="228" x2="246" y2="288"/>
27
+ </g>
28
+ <!-- back-to-front building order -->
29
+ <polygon points="152.0,211.5 169.0,220.0 169.0,250.0 152.0,241.5" fill="#B4B4B8" stroke="#000" stroke-width="1.5"/>
30
+ <polygon points="169.0,220.0 186.0,211.5 186.0,241.5 169.0,250.0" fill="#DADADE" stroke="#000" stroke-width="1.5"/>
31
+ <polygon points="169.0,203.0 186.0,211.5 169.0,220.0 152.0,211.5" fill="#FFFFFF" stroke="#000" stroke-width="1.5"/>
32
+
33
+ <polygon points="186.0,151.5 203.0,160.0 203.0,250.0 186.0,241.5" fill="#3d1350" stroke="#000" stroke-width="1.5"/>
34
+ <polygon points="203.0,160.0 220.0,151.5 220.0,241.5 203.0,250.0" fill="#6b1f8a" stroke="#000" stroke-width="1.5"/>
35
+ <polygon points="203.0,143.0 220.0,151.5 203.0,160.0 186.0,151.5" fill="#9b30c4" stroke="#000" stroke-width="1.5"/>
36
+
37
+ <polygon points="135.0,205.0 152.0,213.5 152.0,258.5 135.0,250.0" fill="#0E0E10" stroke="#000" stroke-width="1.5"/>
38
+ <polygon points="152.0,213.5 169.0,205.0 169.0,250.0 152.0,258.5" fill="#1C1C1F" stroke="#000" stroke-width="1.5"/>
39
+ <polygon points="152.0,196.5 169.0,205.0 152.0,213.5 135.0,205.0" fill="#2E2E32" stroke="#000" stroke-width="1.5"/>
40
+
41
+ <polygon points="169.0,210.0 186.0,218.5 186.0,258.5 169.0,250.0" fill="#B4B4B8" stroke="#000" stroke-width="1.5"/>
42
+ <polygon points="186.0,218.5 203.0,210.0 203.0,250.0 186.0,258.5" fill="#DADADE" stroke="#000" stroke-width="1.5"/>
43
+ <polygon points="186.0,201.5 203.0,210.0 186.0,218.5 169.0,210.0" fill="#FFFFFF" stroke="#000" stroke-width="1.5"/>
44
+
45
+ <polygon points="203.0,225.0 220.0,233.5 220.0,258.5 203.0,250.0" fill="#0E0E10" stroke="#000" stroke-width="1.5"/>
46
+ <polygon points="220.0,233.5 237.0,225.0 237.0,250.0 220.0,258.5" fill="#1C1C1F" stroke="#000" stroke-width="1.5"/>
47
+ <polygon points="220.0,216.5 237.0,225.0 220.0,233.5 203.0,225.0" fill="#2E2E32" stroke="#000" stroke-width="1.5"/>
48
+
49
+ <polygon points="152.0,203.5 169.0,212.0 169.0,267.0 152.0,258.5" fill="#3d1350" stroke="#000" stroke-width="1.5"/>
50
+ <polygon points="169.0,212.0 186.0,203.5 186.0,258.5 169.0,267.0" fill="#6b1f8a" stroke="#000" stroke-width="1.5"/>
51
+ <polygon points="169.0,195.0 186.0,203.5 169.0,212.0 152.0,203.5" fill="#9b30c4" stroke="#000" stroke-width="1.5"/>
52
+
53
+ <polygon points="186.0,188.5 203.0,197.0 203.0,267.0 186.0,258.5" fill="#B4B4B8" stroke="#000" stroke-width="1.5"/>
54
+ <polygon points="203.0,197.0 220.0,188.5 220.0,258.5 203.0,267.0" fill="#DADADE" stroke="#000" stroke-width="1.5"/>
55
+ <polygon points="203.0,180.0 220.0,188.5 203.0,197.0 186.0,188.5" fill="#FFFFFF" stroke="#000" stroke-width="1.5"/>
56
+ </g>
57
+ </g>
58
+
59
+ <!-- TITLE -->
60
+ <text x="130" y="58" font-family="system-ui, -apple-system, sans-serif" font-size="34" font-weight="900" letter-spacing="1.5" fill="#FFFFFF">
61
+ BDB SYNAPSE
62
+ </text>
63
+
64
+ <!-- COMMAND PILL -->
65
+ <g transform="translate(130, 72)">
66
+ <rect x="0" y="0" width="115" height="24" rx="4" fill="#180524" stroke="#FFFFFF" stroke-width="1.2"/>
67
+ <text x="10" y="17" font-family="ui-monospace, monospace" font-size="11" font-weight="800" letter-spacing="1.5" fill="#FFFFFF">SYNAPSE >_</text>
68
+ </g>
69
+ </svg>
@@ -0,0 +1,64 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 220 50" width="100%" height="100%">
2
+ <!-- ICON (Left) - scaled precisely to fit the 50px height -->
3
+ <g transform="translate(4, -14) scale(0.15)">
4
+ <g transform="translate(186 186) scale(1.7) translate(-186 -186)">
5
+ <!-- Original Floor: #0d0d10 -->
6
+ <polygon points="186,198 306,258 186,318 66,258" fill="#0d0d10" stroke="#333" stroke-width="3"/>
7
+ <g stroke="#9b30c4" stroke-width="0.75" opacity="0.3">
8
+ <line x1="126" y1="228" x2="126" y2="288"/>
9
+ <line x1="186" y1="198" x2="186" y2="318"/>
10
+ <line x1="246" y1="228" x2="246" y2="288"/>
11
+ </g>
12
+
13
+ <!-- Bar 1: White -->
14
+ <polygon points="152.0,211.5 169.0,220.0 169.0,250.0 152.0,241.5" fill="#B4B4B8" stroke="#111" stroke-width="1.5"/>
15
+ <polygon points="169.0,220.0 186.0,211.5 186.0,241.5 169.0,250.0" fill="#DADADE" stroke="#111" stroke-width="1.5"/>
16
+ <polygon points="169.0,203.0 186.0,211.5 169.0,220.0 152.0,211.5" fill="#FFFFFF" stroke="#111" stroke-width="1.5"/>
17
+
18
+ <!-- Bar 2: Purple -->
19
+ <polygon points="186.0,151.5 203.0,160.0 203.0,250.0 186.0,241.5" fill="#3d1350" stroke="#111" stroke-width="1.5"/>
20
+ <polygon points="203.0,160.0 220.0,151.5 220.0,241.5 203.0,250.0" fill="#6b1f8a" stroke="#111" stroke-width="1.5"/>
21
+ <polygon points="203.0,143.0 220.0,151.5 203.0,160.0 186.0,151.5" fill="#9b30c4" stroke="#111" stroke-width="1.5"/>
22
+
23
+ <!-- Bar 3: Purple (Was Black) -->
24
+ <polygon points="135.0,205.0 152.0,213.5 152.0,258.5 135.0,250.0" fill="#3d1350" stroke="#111" stroke-width="1.5"/>
25
+ <polygon points="152.0,213.5 169.0,205.0 169.0,250.0 152.0,258.5" fill="#6b1f8a" stroke="#111" stroke-width="1.5"/>
26
+ <polygon points="152.0,196.5 169.0,205.0 152.0,213.5 135.0,205.0" fill="#9b30c4" stroke="#111" stroke-width="1.5"/>
27
+
28
+ <!-- Bar 4: White -->
29
+ <polygon points="169.0,210.0 186.0,218.5 186.0,258.5 169.0,250.0" fill="#B4B4B8" stroke="#111" stroke-width="1.5"/>
30
+ <polygon points="186.0,218.5 203.0,210.0 203.0,250.0 186.0,258.5" fill="#DADADE" stroke="#111" stroke-width="1.5"/>
31
+ <polygon points="186.0,201.5 203.0,210.0 186.0,218.5 169.0,210.0" fill="#FFFFFF" stroke="#111" stroke-width="1.5"/>
32
+
33
+ <!-- Bar 5: Purple (Was Black) -->
34
+ <polygon points="203.0,225.0 220.0,233.5 220.0,258.5 203.0,250.0" fill="#3d1350" stroke="#111" stroke-width="1.5"/>
35
+ <polygon points="220.0,233.5 237.0,225.0 237.0,250.0 220.0,258.5" fill="#6b1f8a" stroke="#111" stroke-width="1.5"/>
36
+ <polygon points="220.0,216.5 237.0,225.0 220.0,233.5 203.0,225.0" fill="#9b30c4" stroke="#111" stroke-width="1.5"/>
37
+
38
+ <!-- Bar 6: Purple -->
39
+ <polygon points="152.0,203.5 169.0,212.0 169.0,267.0 152.0,258.5" fill="#3d1350" stroke="#111" stroke-width="1.5"/>
40
+ <polygon points="169.0,212.0 186.0,203.5 186.0,258.5 169.0,267.0" fill="#6b1f8a" stroke="#111" stroke-width="1.5"/>
41
+ <polygon points="169.0,195.0 186.0,203.5 169.0,212.0 152.0,203.5" fill="#9b30c4" stroke="#111" stroke-width="1.5"/>
42
+
43
+ <!-- Bar 7: White -->
44
+ <polygon points="186.0,188.5 203.0,197.0 203.0,267.0 186.0,258.5" fill="#B4B4B8" stroke="#111" stroke-width="1.5"/>
45
+ <polygon points="203.0,197.0 220.0,188.5 220.0,258.5 203.0,267.0" fill="#DADADE" stroke="#111" stroke-width="1.5"/>
46
+ <polygon points="203.0,180.0 220.0,188.5 203.0,197.0 186.0,188.5" fill="#FFFFFF" stroke="#111" stroke-width="1.5"/>
47
+ </g>
48
+ </g>
49
+
50
+ <!-- TITLE -->
51
+ <text x="68" y="24" font-family="system-ui, -apple-system, sans-serif" font-size="20" font-weight="900" letter-spacing="-0.5" fill="#FFFFFF">
52
+ BDB SYNAPSE
53
+ </text>
54
+
55
+ <!-- PILL FRAME -->
56
+ <!-- Adjusted size and position -->
57
+ <rect x="68" y="30" width="76" height="15" rx="3" fill="#180524" stroke="#6b1f8a" stroke-width="1"/>
58
+
59
+ <!-- SUBTITLE -->
60
+ <!-- Shifted baseline for perfect vertical centering in the pill -->
61
+ <text x="73.5" y="41.5" font-family="monospace, ui-monospace" font-size="9" font-weight="600" letter-spacing="0.5" fill="#FFFFFF">
62
+ 3D CODEBASE
63
+ </text>
64
+ </svg>
@@ -0,0 +1,50 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" width="100%" height="100%">
2
+ <!-- White Background -->
3
+ <rect width="64" height="64" rx="14" fill="#FFFFFF"/>
4
+ <g transform="translate(6, 6) scale(0.14)">
5
+ <g transform="translate(186 186) scale(1.7) translate(-186 -186)">
6
+ <!-- Floor: dark shadow base -->
7
+ <polygon points="186,198 306,258 186,318 66,258" fill="#0d0d10" stroke="#000" stroke-width="3"/>
8
+ <g stroke="#9b30c4" stroke-width="0.75" opacity="0.5">
9
+ <line x1="126" y1="228" x2="126" y2="288"/>
10
+ <line x1="186" y1="198" x2="186" y2="318"/>
11
+ <line x1="246" y1="228" x2="246" y2="288"/>
12
+ </g>
13
+
14
+ <!-- Bar 1: White -->
15
+ <polygon points="152.0,211.5 169.0,220.0 169.0,250.0 152.0,241.5" fill="#B4B4B8" stroke="#111" stroke-width="1.5"/>
16
+ <polygon points="169.0,220.0 186.0,211.5 186.0,241.5 169.0,250.0" fill="#DADADE" stroke="#111" stroke-width="1.5"/>
17
+ <polygon points="169.0,203.0 186.0,211.5 169.0,220.0 152.0,211.5" fill="#FFFFFF" stroke="#111" stroke-width="1.5"/>
18
+
19
+ <!-- Bar 2: Purple -->
20
+ <polygon points="186.0,151.5 203.0,160.0 203.0,250.0 186.0,241.5" fill="#3d1350" stroke="#111" stroke-width="1.5"/>
21
+ <polygon points="203.0,160.0 220.0,151.5 220.0,241.5 203.0,250.0" fill="#6b1f8a" stroke="#111" stroke-width="1.5"/>
22
+ <polygon points="203.0,143.0 220.0,151.5 203.0,160.0 186.0,151.5" fill="#9b30c4" stroke="#111" stroke-width="1.5"/>
23
+
24
+ <!-- Bar 3: Purple (Replaced Black for consistency and contrast) -->
25
+ <polygon points="135.0,205.0 152.0,213.5 152.0,258.5 135.0,250.0" fill="#3d1350" stroke="#111" stroke-width="1.5"/>
26
+ <polygon points="152.0,213.5 169.0,205.0 169.0,250.0 152.0,258.5" fill="#6b1f8a" stroke="#111" stroke-width="1.5"/>
27
+ <polygon points="152.0,196.5 169.0,205.0 152.0,213.5 135.0,205.0" fill="#9b30c4" stroke="#111" stroke-width="1.5"/>
28
+
29
+ <!-- Bar 4: White -->
30
+ <polygon points="169.0,210.0 186.0,218.5 186.0,258.5 169.0,250.0" fill="#B4B4B8" stroke="#111" stroke-width="1.5"/>
31
+ <polygon points="186.0,218.5 203.0,210.0 203.0,250.0 186.0,258.5" fill="#DADADE" stroke="#111" stroke-width="1.5"/>
32
+ <polygon points="186.0,201.5 203.0,210.0 186.0,218.5 169.0,210.0" fill="#FFFFFF" stroke="#111" stroke-width="1.5"/>
33
+
34
+ <!-- Bar 5: Purple (Replaced Black for consistency and contrast) -->
35
+ <polygon points="203.0,225.0 220.0,233.5 220.0,258.5 203.0,250.0" fill="#3d1350" stroke="#111" stroke-width="1.5"/>
36
+ <polygon points="220.0,233.5 237.0,225.0 237.0,250.0 220.0,258.5" fill="#6b1f8a" stroke="#111" stroke-width="1.5"/>
37
+ <polygon points="220.0,216.5 237.0,225.0 220.0,233.5 203.0,225.0" fill="#9b30c4" stroke="#111" stroke-width="1.5"/>
38
+
39
+ <!-- Bar 6: Purple -->
40
+ <polygon points="152.0,203.5 169.0,212.0 169.0,267.0 152.0,258.5" fill="#3d1350" stroke="#111" stroke-width="1.5"/>
41
+ <polygon points="169.0,212.0 186.0,203.5 186.0,258.5 169.0,267.0" fill="#6b1f8a" stroke="#111" stroke-width="1.5"/>
42
+ <polygon points="169.0,195.0 186.0,203.5 169.0,212.0 152.0,203.5" fill="#9b30c4" stroke="#111" stroke-width="1.5"/>
43
+
44
+ <!-- Bar 7: White -->
45
+ <polygon points="186.0,188.5 203.0,197.0 203.0,267.0 186.0,258.5" fill="#B4B4B8" stroke="#111" stroke-width="1.5"/>
46
+ <polygon points="203.0,197.0 220.0,188.5 220.0,258.5 203.0,267.0" fill="#DADADE" stroke="#111" stroke-width="1.5"/>
47
+ <polygon points="203.0,180.0 220.0,188.5 203.0,197.0 186.0,188.5" fill="#FFFFFF" stroke="#111" stroke-width="1.5"/>
48
+ </g>
49
+ </g>
50
+ </svg>
@@ -5,17 +5,14 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
6
  <meta name="color-scheme" content="dark" />
7
7
  <meta name="theme-color" content="#12151c" />
8
- <link
9
- rel="icon"
10
- href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cdefs%3E%3CradialGradient id='halo'%3E%3Cstop offset='0' stop-color='%23f1aa57' stop-opacity='0.55'/%3E%3Cstop offset='1' stop-color='%23f1aa57' stop-opacity='0'/%3E%3C/radialGradient%3E%3C/defs%3E%3Crect width='64' height='64' rx='14' fill='%230f141b'/%3E%3Ccircle cx='20' cy='15' r='1.6' fill='%233b4047'/%3E%3Ccircle cx='11' cy='27' r='1.4' fill='%233b4047'/%3E%3Ccircle cx='51' cy='40' r='1.6' fill='%233b4047'/%3E%3Ccircle cx='34' cy='53' r='1.4' fill='%233b4047'/%3E%3Cg fill='%23f1aa57'%3E%3Ccircle cx='18.6' cy='47.9' r='1.15' opacity='0.35'/%3E%3Ccircle cx='22.7' cy='45.2' r='1.25' opacity='0.42'/%3E%3Ccircle cx='25.9' cy='42.0' r='1.35' opacity='0.49'/%3E%3Ccircle cx='28.2' cy='38.1' r='1.45' opacity='0.56'/%3E%3Ccircle cx='30.9' cy='29.3' r='1.55' opacity='0.64'/%3E%3Ccircle cx='33.0' cy='25.4' r='1.65' opacity='0.72'/%3E%3Ccircle cx='36.0' cy='22.1' r='1.75' opacity='0.8'/%3E%3Ccircle cx='38.0' cy='20.4' r='1.85' opacity='0.88'/%3E%3C/g%3E%3Ccircle cx='13' cy='50' r='4.5' fill='%239fc67b' opacity='0.16'/%3E%3Ccircle cx='13' cy='50' r='2.4' fill='%239fc67b'/%3E%3Ccircle cx='29.5' cy='34' r='5' fill='%23b6daf1' opacity='0.16'/%3E%3Ccircle cx='29.5' cy='34' r='2.7' fill='%23b6daf1'/%3E%3Ccircle cx='44' cy='17.5' r='9.5' fill='url(%23halo)'/%3E%3Ccircle cx='44' cy='17.5' r='3.4' fill='%23f1aa57'/%3E%3Ccircle cx='44' cy='17.5' r='1.7' fill='%23ffe0b0'/%3E%3C/svg%3E"
11
- />
8
+ <link rel="icon" href="/favicon.svg" type="image/svg+xml" />
12
9
  <title>Synapse</title>
13
10
  <style>
14
11
  html {
15
12
  background: #12151c;
16
13
  }
17
14
  </style>
18
- <script type="module" crossorigin src="/assets/index-ndrpq0ER.js"></script>
15
+ <script type="module" crossorigin src="/assets/index-Dxzi7dw9.js"></script>
19
16
  <link rel="modulepreload" crossorigin href="/assets/react-gcHzaSmV.js">
20
17
  <link rel="modulepreload" crossorigin href="/assets/three-DnGjZfD1.js">
21
18
  <link rel="stylesheet" crossorigin href="/assets/index-BNoY_BiB.css">
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hybridlabor-api/bdb-synapse",
3
- "version": "1.1.1",
3
+ "version": "1.2.0",
4
4
  "description": "BDB Synapse — 3D Codebase Visualizer & Agent Session Replay Engine",
5
5
  "license": "MIT",
6
6
  "repository": {
package/web/index.html CHANGED
@@ -5,10 +5,7 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
6
  <meta name="color-scheme" content="dark" />
7
7
  <meta name="theme-color" content="#12151c" />
8
- <link
9
- rel="icon"
10
- href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cdefs%3E%3CradialGradient id='halo'%3E%3Cstop offset='0' stop-color='%23f1aa57' stop-opacity='0.55'/%3E%3Cstop offset='1' stop-color='%23f1aa57' stop-opacity='0'/%3E%3C/radialGradient%3E%3C/defs%3E%3Crect width='64' height='64' rx='14' fill='%230f141b'/%3E%3Ccircle cx='20' cy='15' r='1.6' fill='%233b4047'/%3E%3Ccircle cx='11' cy='27' r='1.4' fill='%233b4047'/%3E%3Ccircle cx='51' cy='40' r='1.6' fill='%233b4047'/%3E%3Ccircle cx='34' cy='53' r='1.4' fill='%233b4047'/%3E%3Cg fill='%23f1aa57'%3E%3Ccircle cx='18.6' cy='47.9' r='1.15' opacity='0.35'/%3E%3Ccircle cx='22.7' cy='45.2' r='1.25' opacity='0.42'/%3E%3Ccircle cx='25.9' cy='42.0' r='1.35' opacity='0.49'/%3E%3Ccircle cx='28.2' cy='38.1' r='1.45' opacity='0.56'/%3E%3Ccircle cx='30.9' cy='29.3' r='1.55' opacity='0.64'/%3E%3Ccircle cx='33.0' cy='25.4' r='1.65' opacity='0.72'/%3E%3Ccircle cx='36.0' cy='22.1' r='1.75' opacity='0.8'/%3E%3Ccircle cx='38.0' cy='20.4' r='1.85' opacity='0.88'/%3E%3C/g%3E%3Ccircle cx='13' cy='50' r='4.5' fill='%239fc67b' opacity='0.16'/%3E%3Ccircle cx='13' cy='50' r='2.4' fill='%239fc67b'/%3E%3Ccircle cx='29.5' cy='34' r='5' fill='%23b6daf1' opacity='0.16'/%3E%3Ccircle cx='29.5' cy='34' r='2.7' fill='%23b6daf1'/%3E%3Ccircle cx='44' cy='17.5' r='9.5' fill='url(%23halo)'/%3E%3Ccircle cx='44' cy='17.5' r='3.4' fill='%23f1aa57'/%3E%3Ccircle cx='44' cy='17.5' r='1.7' fill='%23ffe0b0'/%3E%3C/svg%3E"
11
- />
8
+ <link rel="icon" href="/favicon.svg" type="image/svg+xml" />
12
9
  <title>Synapse</title>
13
10
  <style>
14
11
  html {
@@ -0,0 +1,56 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" width="100%" height="100%">
2
+ <defs>
3
+ <linearGradient id="pLight" x1="0%" y1="0%" x2="100%" y2="100%">
4
+ <stop offset="0%" stop-color="#FFFFFF"/>
5
+ <stop offset="60%" stop-color="#FFFFFF"/>
6
+ <stop offset="100%" stop-color="#E7E7EA"/>
7
+ </linearGradient>
8
+ <linearGradient id="pMid" x1="0%" y1="0%" x2="0%" y2="100%">
9
+ <stop offset="0%" stop-color="#9b30c4"/>
10
+ <stop offset="100%" stop-color="#51116F"/>
11
+ </linearGradient>
12
+ <linearGradient id="pDark" x1="0%" y1="0%" x2="0%" y2="100%">
13
+ <stop offset="0%" stop-color="#1C1C1F"/>
14
+ <stop offset="100%" stop-color="#050505"/>
15
+ </linearGradient>
16
+ </defs>
17
+ <g transform="translate(70, 70) scale(1.0)">
18
+
19
+ <g transform="translate(186 186) scale(1.7) translate(-186 -186)">
20
+ <polygon points="186,198 306,258 186,318 66,258" fill="#0d0d10" stroke="#000" stroke-width="3"/>
21
+ <g stroke="#9b30c4" stroke-width="0.75" opacity="0.3">
22
+ <line x1="126" y1="228" x2="126" y2="288"/>
23
+ <line x1="186" y1="198" x2="186" y2="318"/>
24
+ <line x1="246" y1="228" x2="246" y2="288"/>
25
+ </g>
26
+ <!-- back-to-front building order -->
27
+ <polygon points="152.0,211.5 169.0,220.0 169.0,250.0 152.0,241.5" fill="#B4B4B8" stroke="#000" stroke-width="1.5"/>
28
+ <polygon points="169.0,220.0 186.0,211.5 186.0,241.5 169.0,250.0" fill="#DADADE" stroke="#000" stroke-width="1.5"/>
29
+ <polygon points="169.0,203.0 186.0,211.5 169.0,220.0 152.0,211.5" fill="#FFFFFF" stroke="#000" stroke-width="1.5"/>
30
+
31
+ <polygon points="186.0,151.5 203.0,160.0 203.0,250.0 186.0,241.5" fill="#3d1350" stroke="#000" stroke-width="1.5"/>
32
+ <polygon points="203.0,160.0 220.0,151.5 220.0,241.5 203.0,250.0" fill="#6b1f8a" stroke="#000" stroke-width="1.5"/>
33
+ <polygon points="203.0,143.0 220.0,151.5 203.0,160.0 186.0,151.5" fill="#9b30c4" stroke="#000" stroke-width="1.5"/>
34
+
35
+ <polygon points="135.0,205.0 152.0,213.5 152.0,258.5 135.0,250.0" fill="#0E0E10" stroke="#000" stroke-width="1.5"/>
36
+ <polygon points="152.0,213.5 169.0,205.0 169.0,250.0 152.0,258.5" fill="#1C1C1F" stroke="#000" stroke-width="1.5"/>
37
+ <polygon points="152.0,196.5 169.0,205.0 152.0,213.5 135.0,205.0" fill="#2E2E32" stroke="#000" stroke-width="1.5"/>
38
+
39
+ <polygon points="169.0,210.0 186.0,218.5 186.0,258.5 169.0,250.0" fill="#B4B4B8" stroke="#000" stroke-width="1.5"/>
40
+ <polygon points="186.0,218.5 203.0,210.0 203.0,250.0 186.0,258.5" fill="#DADADE" stroke="#000" stroke-width="1.5"/>
41
+ <polygon points="186.0,201.5 203.0,210.0 186.0,218.5 169.0,210.0" fill="#FFFFFF" stroke="#000" stroke-width="1.5"/>
42
+
43
+ <polygon points="203.0,225.0 220.0,233.5 220.0,258.5 203.0,250.0" fill="#0E0E10" stroke="#000" stroke-width="1.5"/>
44
+ <polygon points="220.0,233.5 237.0,225.0 237.0,250.0 220.0,258.5" fill="#1C1C1F" stroke="#000" stroke-width="1.5"/>
45
+ <polygon points="220.0,216.5 237.0,225.0 220.0,233.5 203.0,225.0" fill="#2E2E32" stroke="#000" stroke-width="1.5"/>
46
+
47
+ <polygon points="152.0,203.5 169.0,212.0 169.0,267.0 152.0,258.5" fill="#3d1350" stroke="#000" stroke-width="1.5"/>
48
+ <polygon points="169.0,212.0 186.0,203.5 186.0,258.5 169.0,267.0" fill="#6b1f8a" stroke="#000" stroke-width="1.5"/>
49
+ <polygon points="169.0,195.0 186.0,203.5 169.0,212.0 152.0,203.5" fill="#9b30c4" stroke="#000" stroke-width="1.5"/>
50
+
51
+ <polygon points="186.0,188.5 203.0,197.0 203.0,267.0 186.0,258.5" fill="#B4B4B8" stroke="#000" stroke-width="1.5"/>
52
+ <polygon points="203.0,197.0 220.0,188.5 220.0,258.5 203.0,267.0" fill="#DADADE" stroke="#000" stroke-width="1.5"/>
53
+ <polygon points="203.0,180.0 220.0,188.5 203.0,197.0 186.0,188.5" fill="#FFFFFF" stroke="#000" stroke-width="1.5"/>
54
+ </g>
55
+ </g>
56
+ </svg>
@@ -0,0 +1,69 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 520 120" width="100%" height="100%">
2
+ <defs>
3
+ <linearGradient id="pLight" x1="0%" y1="0%" x2="100%" y2="100%">
4
+ <stop offset="0%" stop-color="#FFFFFF"/>
5
+ <stop offset="60%" stop-color="#FFFFFF"/>
6
+ <stop offset="100%" stop-color="#E7E7EA"/>
7
+ </linearGradient>
8
+ <linearGradient id="pMid" x1="0%" y1="0%" x2="0%" y2="100%">
9
+ <stop offset="0%" stop-color="#9b30c4"/>
10
+ <stop offset="100%" stop-color="#51116F"/>
11
+ </linearGradient>
12
+ <linearGradient id="pDark" x1="0%" y1="0%" x2="0%" y2="100%">
13
+ <stop offset="0%" stop-color="#1C1C1F"/>
14
+ <stop offset="100%" stop-color="#050505"/>
15
+ </linearGradient>
16
+ </defs>
17
+
18
+ <!-- ICON (Left) -->
19
+ <g transform="translate(10, 8) scale(0.27)">
20
+
21
+ <g transform="translate(186 186) scale(1.7) translate(-186 -186)">
22
+ <polygon points="186,198 306,258 186,318 66,258" fill="#0d0d10" stroke="#000" stroke-width="3"/>
23
+ <g stroke="#9b30c4" stroke-width="0.75" opacity="0.3">
24
+ <line x1="126" y1="228" x2="126" y2="288"/>
25
+ <line x1="186" y1="198" x2="186" y2="318"/>
26
+ <line x1="246" y1="228" x2="246" y2="288"/>
27
+ </g>
28
+ <!-- back-to-front building order -->
29
+ <polygon points="152.0,211.5 169.0,220.0 169.0,250.0 152.0,241.5" fill="#B4B4B8" stroke="#000" stroke-width="1.5"/>
30
+ <polygon points="169.0,220.0 186.0,211.5 186.0,241.5 169.0,250.0" fill="#DADADE" stroke="#000" stroke-width="1.5"/>
31
+ <polygon points="169.0,203.0 186.0,211.5 169.0,220.0 152.0,211.5" fill="#FFFFFF" stroke="#000" stroke-width="1.5"/>
32
+
33
+ <polygon points="186.0,151.5 203.0,160.0 203.0,250.0 186.0,241.5" fill="#3d1350" stroke="#000" stroke-width="1.5"/>
34
+ <polygon points="203.0,160.0 220.0,151.5 220.0,241.5 203.0,250.0" fill="#6b1f8a" stroke="#000" stroke-width="1.5"/>
35
+ <polygon points="203.0,143.0 220.0,151.5 203.0,160.0 186.0,151.5" fill="#9b30c4" stroke="#000" stroke-width="1.5"/>
36
+
37
+ <polygon points="135.0,205.0 152.0,213.5 152.0,258.5 135.0,250.0" fill="#0E0E10" stroke="#000" stroke-width="1.5"/>
38
+ <polygon points="152.0,213.5 169.0,205.0 169.0,250.0 152.0,258.5" fill="#1C1C1F" stroke="#000" stroke-width="1.5"/>
39
+ <polygon points="152.0,196.5 169.0,205.0 152.0,213.5 135.0,205.0" fill="#2E2E32" stroke="#000" stroke-width="1.5"/>
40
+
41
+ <polygon points="169.0,210.0 186.0,218.5 186.0,258.5 169.0,250.0" fill="#B4B4B8" stroke="#000" stroke-width="1.5"/>
42
+ <polygon points="186.0,218.5 203.0,210.0 203.0,250.0 186.0,258.5" fill="#DADADE" stroke="#000" stroke-width="1.5"/>
43
+ <polygon points="186.0,201.5 203.0,210.0 186.0,218.5 169.0,210.0" fill="#FFFFFF" stroke="#000" stroke-width="1.5"/>
44
+
45
+ <polygon points="203.0,225.0 220.0,233.5 220.0,258.5 203.0,250.0" fill="#0E0E10" stroke="#000" stroke-width="1.5"/>
46
+ <polygon points="220.0,233.5 237.0,225.0 237.0,250.0 220.0,258.5" fill="#1C1C1F" stroke="#000" stroke-width="1.5"/>
47
+ <polygon points="220.0,216.5 237.0,225.0 220.0,233.5 203.0,225.0" fill="#2E2E32" stroke="#000" stroke-width="1.5"/>
48
+
49
+ <polygon points="152.0,203.5 169.0,212.0 169.0,267.0 152.0,258.5" fill="#3d1350" stroke="#000" stroke-width="1.5"/>
50
+ <polygon points="169.0,212.0 186.0,203.5 186.0,258.5 169.0,267.0" fill="#6b1f8a" stroke="#000" stroke-width="1.5"/>
51
+ <polygon points="169.0,195.0 186.0,203.5 169.0,212.0 152.0,203.5" fill="#9b30c4" stroke="#000" stroke-width="1.5"/>
52
+
53
+ <polygon points="186.0,188.5 203.0,197.0 203.0,267.0 186.0,258.5" fill="#B4B4B8" stroke="#000" stroke-width="1.5"/>
54
+ <polygon points="203.0,197.0 220.0,188.5 220.0,258.5 203.0,267.0" fill="#DADADE" stroke="#000" stroke-width="1.5"/>
55
+ <polygon points="203.0,180.0 220.0,188.5 203.0,197.0 186.0,188.5" fill="#FFFFFF" stroke="#000" stroke-width="1.5"/>
56
+ </g>
57
+ </g>
58
+
59
+ <!-- TITLE -->
60
+ <text x="130" y="58" font-family="system-ui, -apple-system, sans-serif" font-size="34" font-weight="900" letter-spacing="1.5" fill="#FFFFFF">
61
+ BDB SYNAPSE
62
+ </text>
63
+
64
+ <!-- COMMAND PILL -->
65
+ <g transform="translate(130, 72)">
66
+ <rect x="0" y="0" width="115" height="24" rx="4" fill="#180524" stroke="#FFFFFF" stroke-width="1.2"/>
67
+ <text x="10" y="17" font-family="ui-monospace, monospace" font-size="11" font-weight="800" letter-spacing="1.5" fill="#FFFFFF">SYNAPSE >_</text>
68
+ </g>
69
+ </svg>
@@ -0,0 +1,64 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 220 50" width="100%" height="100%">
2
+ <!-- ICON (Left) - scaled precisely to fit the 50px height -->
3
+ <g transform="translate(4, -14) scale(0.15)">
4
+ <g transform="translate(186 186) scale(1.7) translate(-186 -186)">
5
+ <!-- Original Floor: #0d0d10 -->
6
+ <polygon points="186,198 306,258 186,318 66,258" fill="#0d0d10" stroke="#333" stroke-width="3"/>
7
+ <g stroke="#9b30c4" stroke-width="0.75" opacity="0.3">
8
+ <line x1="126" y1="228" x2="126" y2="288"/>
9
+ <line x1="186" y1="198" x2="186" y2="318"/>
10
+ <line x1="246" y1="228" x2="246" y2="288"/>
11
+ </g>
12
+
13
+ <!-- Bar 1: White -->
14
+ <polygon points="152.0,211.5 169.0,220.0 169.0,250.0 152.0,241.5" fill="#B4B4B8" stroke="#111" stroke-width="1.5"/>
15
+ <polygon points="169.0,220.0 186.0,211.5 186.0,241.5 169.0,250.0" fill="#DADADE" stroke="#111" stroke-width="1.5"/>
16
+ <polygon points="169.0,203.0 186.0,211.5 169.0,220.0 152.0,211.5" fill="#FFFFFF" stroke="#111" stroke-width="1.5"/>
17
+
18
+ <!-- Bar 2: Purple -->
19
+ <polygon points="186.0,151.5 203.0,160.0 203.0,250.0 186.0,241.5" fill="#3d1350" stroke="#111" stroke-width="1.5"/>
20
+ <polygon points="203.0,160.0 220.0,151.5 220.0,241.5 203.0,250.0" fill="#6b1f8a" stroke="#111" stroke-width="1.5"/>
21
+ <polygon points="203.0,143.0 220.0,151.5 203.0,160.0 186.0,151.5" fill="#9b30c4" stroke="#111" stroke-width="1.5"/>
22
+
23
+ <!-- Bar 3: Purple (Was Black) -->
24
+ <polygon points="135.0,205.0 152.0,213.5 152.0,258.5 135.0,250.0" fill="#3d1350" stroke="#111" stroke-width="1.5"/>
25
+ <polygon points="152.0,213.5 169.0,205.0 169.0,250.0 152.0,258.5" fill="#6b1f8a" stroke="#111" stroke-width="1.5"/>
26
+ <polygon points="152.0,196.5 169.0,205.0 152.0,213.5 135.0,205.0" fill="#9b30c4" stroke="#111" stroke-width="1.5"/>
27
+
28
+ <!-- Bar 4: White -->
29
+ <polygon points="169.0,210.0 186.0,218.5 186.0,258.5 169.0,250.0" fill="#B4B4B8" stroke="#111" stroke-width="1.5"/>
30
+ <polygon points="186.0,218.5 203.0,210.0 203.0,250.0 186.0,258.5" fill="#DADADE" stroke="#111" stroke-width="1.5"/>
31
+ <polygon points="186.0,201.5 203.0,210.0 186.0,218.5 169.0,210.0" fill="#FFFFFF" stroke="#111" stroke-width="1.5"/>
32
+
33
+ <!-- Bar 5: Purple (Was Black) -->
34
+ <polygon points="203.0,225.0 220.0,233.5 220.0,258.5 203.0,250.0" fill="#3d1350" stroke="#111" stroke-width="1.5"/>
35
+ <polygon points="220.0,233.5 237.0,225.0 237.0,250.0 220.0,258.5" fill="#6b1f8a" stroke="#111" stroke-width="1.5"/>
36
+ <polygon points="220.0,216.5 237.0,225.0 220.0,233.5 203.0,225.0" fill="#9b30c4" stroke="#111" stroke-width="1.5"/>
37
+
38
+ <!-- Bar 6: Purple -->
39
+ <polygon points="152.0,203.5 169.0,212.0 169.0,267.0 152.0,258.5" fill="#3d1350" stroke="#111" stroke-width="1.5"/>
40
+ <polygon points="169.0,212.0 186.0,203.5 186.0,258.5 169.0,267.0" fill="#6b1f8a" stroke="#111" stroke-width="1.5"/>
41
+ <polygon points="169.0,195.0 186.0,203.5 169.0,212.0 152.0,203.5" fill="#9b30c4" stroke="#111" stroke-width="1.5"/>
42
+
43
+ <!-- Bar 7: White -->
44
+ <polygon points="186.0,188.5 203.0,197.0 203.0,267.0 186.0,258.5" fill="#B4B4B8" stroke="#111" stroke-width="1.5"/>
45
+ <polygon points="203.0,197.0 220.0,188.5 220.0,258.5 203.0,267.0" fill="#DADADE" stroke="#111" stroke-width="1.5"/>
46
+ <polygon points="203.0,180.0 220.0,188.5 203.0,197.0 186.0,188.5" fill="#FFFFFF" stroke="#111" stroke-width="1.5"/>
47
+ </g>
48
+ </g>
49
+
50
+ <!-- TITLE -->
51
+ <text x="68" y="24" font-family="system-ui, -apple-system, sans-serif" font-size="20" font-weight="900" letter-spacing="-0.5" fill="#FFFFFF">
52
+ BDB SYNAPSE
53
+ </text>
54
+
55
+ <!-- PILL FRAME -->
56
+ <!-- Adjusted size and position -->
57
+ <rect x="68" y="30" width="76" height="15" rx="3" fill="#180524" stroke="#6b1f8a" stroke-width="1"/>
58
+
59
+ <!-- SUBTITLE -->
60
+ <!-- Shifted baseline for perfect vertical centering in the pill -->
61
+ <text x="73.5" y="41.5" font-family="monospace, ui-monospace" font-size="9" font-weight="600" letter-spacing="0.5" fill="#FFFFFF">
62
+ 3D CODEBASE
63
+ </text>
64
+ </svg>
@@ -0,0 +1,50 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" width="100%" height="100%">
2
+ <!-- White Background -->
3
+ <rect width="64" height="64" rx="14" fill="#FFFFFF"/>
4
+ <g transform="translate(6, 6) scale(0.14)">
5
+ <g transform="translate(186 186) scale(1.7) translate(-186 -186)">
6
+ <!-- Floor: dark shadow base -->
7
+ <polygon points="186,198 306,258 186,318 66,258" fill="#0d0d10" stroke="#000" stroke-width="3"/>
8
+ <g stroke="#9b30c4" stroke-width="0.75" opacity="0.5">
9
+ <line x1="126" y1="228" x2="126" y2="288"/>
10
+ <line x1="186" y1="198" x2="186" y2="318"/>
11
+ <line x1="246" y1="228" x2="246" y2="288"/>
12
+ </g>
13
+
14
+ <!-- Bar 1: White -->
15
+ <polygon points="152.0,211.5 169.0,220.0 169.0,250.0 152.0,241.5" fill="#B4B4B8" stroke="#111" stroke-width="1.5"/>
16
+ <polygon points="169.0,220.0 186.0,211.5 186.0,241.5 169.0,250.0" fill="#DADADE" stroke="#111" stroke-width="1.5"/>
17
+ <polygon points="169.0,203.0 186.0,211.5 169.0,220.0 152.0,211.5" fill="#FFFFFF" stroke="#111" stroke-width="1.5"/>
18
+
19
+ <!-- Bar 2: Purple -->
20
+ <polygon points="186.0,151.5 203.0,160.0 203.0,250.0 186.0,241.5" fill="#3d1350" stroke="#111" stroke-width="1.5"/>
21
+ <polygon points="203.0,160.0 220.0,151.5 220.0,241.5 203.0,250.0" fill="#6b1f8a" stroke="#111" stroke-width="1.5"/>
22
+ <polygon points="203.0,143.0 220.0,151.5 203.0,160.0 186.0,151.5" fill="#9b30c4" stroke="#111" stroke-width="1.5"/>
23
+
24
+ <!-- Bar 3: Purple (Replaced Black for consistency and contrast) -->
25
+ <polygon points="135.0,205.0 152.0,213.5 152.0,258.5 135.0,250.0" fill="#3d1350" stroke="#111" stroke-width="1.5"/>
26
+ <polygon points="152.0,213.5 169.0,205.0 169.0,250.0 152.0,258.5" fill="#6b1f8a" stroke="#111" stroke-width="1.5"/>
27
+ <polygon points="152.0,196.5 169.0,205.0 152.0,213.5 135.0,205.0" fill="#9b30c4" stroke="#111" stroke-width="1.5"/>
28
+
29
+ <!-- Bar 4: White -->
30
+ <polygon points="169.0,210.0 186.0,218.5 186.0,258.5 169.0,250.0" fill="#B4B4B8" stroke="#111" stroke-width="1.5"/>
31
+ <polygon points="186.0,218.5 203.0,210.0 203.0,250.0 186.0,258.5" fill="#DADADE" stroke="#111" stroke-width="1.5"/>
32
+ <polygon points="186.0,201.5 203.0,210.0 186.0,218.5 169.0,210.0" fill="#FFFFFF" stroke="#111" stroke-width="1.5"/>
33
+
34
+ <!-- Bar 5: Purple (Replaced Black for consistency and contrast) -->
35
+ <polygon points="203.0,225.0 220.0,233.5 220.0,258.5 203.0,250.0" fill="#3d1350" stroke="#111" stroke-width="1.5"/>
36
+ <polygon points="220.0,233.5 237.0,225.0 237.0,250.0 220.0,258.5" fill="#6b1f8a" stroke="#111" stroke-width="1.5"/>
37
+ <polygon points="220.0,216.5 237.0,225.0 220.0,233.5 203.0,225.0" fill="#9b30c4" stroke="#111" stroke-width="1.5"/>
38
+
39
+ <!-- Bar 6: Purple -->
40
+ <polygon points="152.0,203.5 169.0,212.0 169.0,267.0 152.0,258.5" fill="#3d1350" stroke="#111" stroke-width="1.5"/>
41
+ <polygon points="169.0,212.0 186.0,203.5 186.0,258.5 169.0,267.0" fill="#6b1f8a" stroke="#111" stroke-width="1.5"/>
42
+ <polygon points="169.0,195.0 186.0,203.5 169.0,212.0 152.0,203.5" fill="#9b30c4" stroke="#111" stroke-width="1.5"/>
43
+
44
+ <!-- Bar 7: White -->
45
+ <polygon points="186.0,188.5 203.0,197.0 203.0,267.0 186.0,258.5" fill="#B4B4B8" stroke="#111" stroke-width="1.5"/>
46
+ <polygon points="203.0,197.0 220.0,188.5 220.0,258.5 203.0,267.0" fill="#DADADE" stroke="#111" stroke-width="1.5"/>
47
+ <polygon points="203.0,180.0 220.0,188.5 203.0,197.0 186.0,188.5" fill="#FFFFFF" stroke="#111" stroke-width="1.5"/>
48
+ </g>
49
+ </g>
50
+ </svg>
@@ -4,35 +4,13 @@
4
4
  // Colors are literal so the mark stays identical to the favicon and README asset.
5
5
  export function LogoMark({ size = 22 }: { size?: number }) {
6
6
  return (
7
- <svg viewBox="0 0 64 64" width={size} height={size} aria-hidden focusable="false">
8
- <defs>
9
- <radialGradient id="logo-halo">
10
- <stop offset="0%" stopColor="#f1aa57" stopOpacity="0.55" />
11
- <stop offset="100%" stopColor="#f1aa57" stopOpacity="0" />
12
- </radialGradient>
13
- </defs>
14
- <rect width="64" height="64" rx="14" fill="#0f141b" />
15
- <circle cx="20" cy="15" r="1.6" fill="#3b4047" />
16
- <circle cx="11" cy="27" r="1.4" fill="#3b4047" />
17
- <circle cx="51" cy="40" r="1.6" fill="#3b4047" />
18
- <circle cx="34" cy="53" r="1.4" fill="#3b4047" />
19
- <g fill="#f1aa57">
20
- <circle cx="18.6" cy="47.9" r="1.15" opacity="0.35" />
21
- <circle cx="22.7" cy="45.2" r="1.25" opacity="0.42" />
22
- <circle cx="25.9" cy="42" r="1.35" opacity="0.49" />
23
- <circle cx="28.2" cy="38.1" r="1.45" opacity="0.56" />
24
- <circle cx="30.9" cy="29.3" r="1.55" opacity="0.64" />
25
- <circle cx="33" cy="25.4" r="1.65" opacity="0.72" />
26
- <circle cx="36" cy="22.1" r="1.75" opacity="0.8" />
27
- <circle cx="38" cy="20.4" r="1.85" opacity="0.88" />
28
- </g>
29
- <circle cx="13" cy="50" r="4.5" fill="#9fc67b" opacity="0.16" />
30
- <circle cx="13" cy="50" r="2.4" fill="#9fc67b" />
31
- <circle cx="29.5" cy="34" r="5" fill="#b6daf1" opacity="0.16" />
32
- <circle cx="29.5" cy="34" r="2.7" fill="#b6daf1" />
33
- <circle cx="44" cy="17.5" r="9.5" fill="url(#logo-halo)" />
34
- <circle cx="44" cy="17.5" r="3.4" fill="#f1aa57" />
35
- <circle cx="44" cy="17.5" r="1.7" fill="#ffe0b0" />
36
- </svg>
7
+ <img
8
+ src="/assets/logo.svg"
9
+ alt="Synapse Logo"
10
+ width={size}
11
+ height={size}
12
+ style={{ display: "block" }}
13
+ aria-hidden
14
+ />
37
15
  );
38
16
  }