kodelyth-ecc 1.7.3 → 1.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.
Files changed (73) hide show
  1. package/.github/ISSUE_TEMPLATE/config.yml +8 -0
  2. package/.github/ISSUE_TEMPLATE/feature_request.md +41 -0
  3. package/.github/ISSUE_TEMPLATE/good_first_issue.md +36 -0
  4. package/CHANGELOG.md +43 -0
  5. package/GITHUB_SETUP.md +553 -0
  6. package/README.md +55 -6
  7. package/VERSION +1 -1
  8. package/actions/ecc-review/README.md +7 -7
  9. package/brand/concepts.svg +109 -0
  10. package/brand/convert.js +161 -0
  11. package/brand/favicon.svg +7 -0
  12. package/brand/fb-cover.svg +34 -0
  13. package/brand/fb-profile.svg +21 -0
  14. package/brand/kodelyth-dark.svg +24 -0
  15. package/brand/kodelyth-light.svg +24 -0
  16. package/brand/kodelyth-mark.svg +20 -0
  17. package/brand/package.json +12 -0
  18. package/bundles/enterprise.md +1 -1
  19. package/bundles/indie-hacker.md +1 -1
  20. package/bundles/red-team.md +1 -1
  21. package/docs/supply-chain.md +1 -1
  22. package/package.json +4 -1
  23. package/rules/common/memory-protocol.md +35 -4
  24. package/scripts/dashboard/data.js +261 -4
  25. package/scripts/dashboard/server.js +28 -3
  26. package/scripts/dashboard/static/index.html +63 -3
  27. package/social/card-agents.svg +12 -0
  28. package/social/card-install.svg +13 -1
  29. package/social/card-main.svg +14 -2
  30. package/social/facebook-v150.svg +17 -4
  31. package/social/github-social-preview.svg +51 -138
  32. package/social/hype-compound-learning.svg +129 -0
  33. package/social/hype-devil-mode.svg +240 -0
  34. package/social/hype-mcp-server.svg +148 -0
  35. package/social/hype-parallel-agents.svg +162 -0
  36. package/social/hype-stats-hero.svg +138 -0
  37. package/social/og-image.svg +65 -0
  38. package/social/readme-agents.svg +14 -2
  39. package/social/readme-hero.svg +17 -4
  40. package/social/section-agents.svg +12 -0
  41. package/social/section-author.svg +12 -0
  42. package/social/section-dashboard.svg +12 -0
  43. package/social/section-devil.svg +12 -0
  44. package/social/section-hooks.svg +12 -0
  45. package/social/section-install.svg +12 -0
  46. package/social/section-learning.svg +12 -0
  47. package/social/section-mcp.svg +13 -1
  48. package/social/section-memory.svg +12 -0
  49. package/social/section-parallel.svg +12 -0
  50. package/social/section-routing.svg +12 -0
  51. package/social/twitter-threads.md +621 -0
  52. package/social/x-card-agents-grid.svg +14 -2
  53. package/social/x-card-free.svg +14 -2
  54. package/social/x-card-hook.svg +17 -5
  55. package/tests/dashboard/data.test.js +156 -0
  56. package/tests/dashboard/server.test.js +17 -0
  57. package/wiki/FAQ.md +1 -1
  58. package/wiki/Home.md +5 -3
  59. package/wiki/Installation-Guide.md +2 -2
  60. package/MARKETING_PLAN.md +0 -893
  61. package/cat +0 -0
  62. package/social/facebook-group/POST.md +0 -121
  63. package/social/facebook-group/fb-1-3am-debug.png +0 -0
  64. package/social/facebook-group/fb-1-3am-debug.svg +0 -97
  65. package/social/facebook-group/fb-2-cpu-upgrade.png +0 -0
  66. package/social/facebook-group/fb-2-cpu-upgrade.svg +0 -132
  67. package/social/facebook-group/fb-3-before-after.png +0 -0
  68. package/social/facebook-group/fb-3-before-after.svg +0 -94
  69. package/videos/README.md +0 -88
  70. package/videos/video-01-install-and-routing.md +0 -258
  71. package/videos/video-02-compound-memory.md +0 -301
  72. package/videos/video-03-devil-mode.md +0 -294
  73. package/videos/video-04-mcp-server.md +0 -391
@@ -0,0 +1,240 @@
1
+ <svg width="1200" height="675" viewBox="0 0 1200 675" xmlns="http://www.w3.org/2000/svg" font-family="'Segoe UI', system-ui, -apple-system, sans-serif">
2
+ <defs>
3
+ <linearGradient id="bgGrad" x1="0%" y1="0%" x2="100%" y2="100%">
4
+ <stop offset="0%" style="stop-color:#050811"/>
5
+ <stop offset="60%" style="stop-color:#0a0508"/>
6
+ <stop offset="100%" style="stop-color:#060309"/>
7
+ </linearGradient>
8
+ <linearGradient id="redGrad" x1="0%" y1="0%" x2="100%" y2="0%">
9
+ <stop offset="0%" style="stop-color:#ef4444"/>
10
+ <stop offset="100%" style="stop-color:#dc2626"/>
11
+ </linearGradient>
12
+ <linearGradient id="termBg" x1="0%" y1="0%" x2="0%" y2="100%">
13
+ <stop offset="0%" style="stop-color:#0c0c14"/>
14
+ <stop offset="100%" style="stop-color:#080810"/>
15
+ </linearGradient>
16
+ <linearGradient id="badgeGrad" x1="0%" y1="0%" x2="100%" y2="0%">
17
+ <stop offset="0%" style="stop-color:#2d0a0a"/>
18
+ <stop offset="100%" style="stop-color:#1a0505"/>
19
+ </linearGradient>
20
+ <linearGradient id="barCrit" x1="0%" y1="0%" x2="100%" y2="0%">
21
+ <stop offset="0%" style="stop-color:#ef4444"/>
22
+ <stop offset="100%" style="stop-color:#b91c1c"/>
23
+ </linearGradient>
24
+ <linearGradient id="barHigh" x1="0%" y1="0%" x2="100%" y2="0%">
25
+ <stop offset="0%" style="stop-color:#f97316"/>
26
+ <stop offset="100%" style="stop-color:#ea580c"/>
27
+ </linearGradient>
28
+ <linearGradient id="barClear" x1="0%" y1="0%" x2="100%" y2="0%">
29
+ <stop offset="0%" style="stop-color:#22c55e"/>
30
+ <stop offset="100%" style="stop-color:#16a34a"/>
31
+ </linearGradient>
32
+ <linearGradient id="accentLine" x1="0%" y1="0%" x2="100%" y2="0%">
33
+ <stop offset="0%" style="stop-color:#ef4444" stop-opacity="0.8"/>
34
+ <stop offset="50%" style="stop-color:#dc2626" stop-opacity="0.4"/>
35
+ <stop offset="100%" style="stop-color:#ef4444" stop-opacity="0"/>
36
+ </linearGradient>
37
+ </defs>
38
+
39
+ <!-- Background -->
40
+ <rect width="1200" height="675" fill="url(#bgGrad)"/>
41
+
42
+ <!-- Subtle background texture — faint grid lines -->
43
+ <line x1="0" y1="225" x2="1200" y2="225" stroke="#ef4444" stroke-opacity="0.025" stroke-width="1"/>
44
+ <line x1="0" y1="450" x2="1200" y2="450" stroke="#ef4444" stroke-opacity="0.025" stroke-width="1"/>
45
+ <line x1="400" y1="0" x2="400" y2="675" stroke="#ef4444" stroke-opacity="0.02" stroke-width="1"/>
46
+ <line x1="800" y1="0" x2="800" y2="675" stroke="#ef4444" stroke-opacity="0.02" stroke-width="1"/>
47
+
48
+ <!-- Ambient red glow — top-left corner, very subtle -->
49
+ <radialGradient id="glowTL" cx="0%" cy="0%" r="60%">
50
+ <stop offset="0%" style="stop-color:#ef4444" stop-opacity="0.07"/>
51
+ <stop offset="100%" style="stop-color:#ef4444" stop-opacity="0"/>
52
+ </radialGradient>
53
+ <rect width="1200" height="675" fill="url(#glowTL)"/>
54
+
55
+ <!-- Left border accent line -->
56
+ <rect x="0" y="0" width="3" height="675" fill="url(#redGrad)"/>
57
+
58
+ <!-- ============================================================ -->
59
+ <!-- TOP BADGE -->
60
+ <!-- ============================================================ -->
61
+ <rect x="56" y="40" width="198" height="28" rx="4" fill="url(#badgeGrad)" stroke="#ef4444" stroke-opacity="0.5" stroke-width="1"/>
62
+ <text x="66" y="59" font-size="11" font-weight="700" fill="#ef4444" letter-spacing="1.5">DEVIL MODE</text>
63
+ <rect x="164" y="47" width="1" height="14" fill="#ef4444" opacity="0.4"/>
64
+ <text x="172" y="59" font-size="11" font-weight="500" fill="#484f58" letter-spacing="0.5">v1.7.5</text>
65
+
66
+ <!-- ============================================================ -->
67
+ <!-- MAIN HEADLINE -->
68
+ <!-- ============================================================ -->
69
+ <text x="56" y="126" font-size="52" font-weight="900" letter-spacing="-2" fill="#ffffff">8 agents read your code</text>
70
+ <text x="56" y="184" font-size="52" font-weight="900" letter-spacing="-2" fill="url(#redGrad)">like an attacker.</text>
71
+
72
+ <!-- Subline -->
73
+ <text x="56" y="220" font-size="16" font-weight="400" fill="#8b949e" letter-spacing="0.2">Prompt injection. Supply chain. Secrets. Backdoors. Jailbreaks. All parallel.</text>
74
+
75
+ <!-- Separator line -->
76
+ <rect x="56" y="242" width="500" height="1" fill="url(#accentLine)"/>
77
+
78
+ <!-- ============================================================ -->
79
+ <!-- TERMINAL BLOCK — left panel -->
80
+ <!-- ============================================================ -->
81
+ <rect x="56" y="258" width="680" height="348" rx="8" fill="url(#termBg)" stroke="#1e1e2e" stroke-width="1"/>
82
+ <!-- Terminal top bar -->
83
+ <rect x="56" y="258" width="680" height="32" rx="8" fill="#0f0f1a"/>
84
+ <rect x="56" y="278" width="680" height="12" fill="#0f0f1a"/>
85
+ <!-- Traffic lights -->
86
+ <circle cx="80" cy="274" r="5" fill="#2d1b1b"/>
87
+ <circle cx="98" cy="274" r="5" fill="#2a1a10"/>
88
+ <circle cx="116" cy="274" r="5" fill="#0f1a10"/>
89
+ <!-- Terminal title -->
90
+ <text x="600" y="279" font-size="11" fill="#484f58" text-anchor="middle" font-family="'Consolas', 'SF Mono', monospace">bash — devil-mode</text>
91
+
92
+ <!-- Command line -->
93
+ <text x="80" y="314" font-size="13" font-family="'Consolas', 'SF Mono', 'Courier New', monospace" fill="#ef4444" font-weight="700">/devil-mode --all</text>
94
+
95
+ <!-- Agent rows — each row: arrow + name + progress bar + status label -->
96
+ <!-- Row 1: prompt-injection-hunter CRITICAL: 2 -->
97
+ <text x="80" y="343" font-size="12" font-family="'Consolas', 'SF Mono', monospace" fill="#484f58">&#x2192;</text>
98
+ <text x="100" y="343" font-size="12" font-family="'Consolas', 'SF Mono', monospace" fill="#e6edf3">prompt-injection-hunter</text>
99
+ <rect x="330" y="331" width="186" height="9" rx="2" fill="#1a1a2a"/>
100
+ <rect x="330" y="331" width="186" height="9" rx="2" fill="url(#barCrit)"/>
101
+ <text x="526" y="342" font-size="11" font-family="'Consolas', 'SF Mono', monospace" fill="#ef4444" font-weight="700"> CRITICAL: 2</text>
102
+
103
+ <!-- Row 2: supply-chain-auditor HIGH: 1 -->
104
+ <text x="80" y="368" font-size="12" font-family="'Consolas', 'SF Mono', monospace" fill="#484f58">&#x2192;</text>
105
+ <text x="100" y="368" font-size="12" font-family="'Consolas', 'SF Mono', monospace" fill="#e6edf3">supply-chain-auditor</text>
106
+ <rect x="330" y="356" width="186" height="9" rx="2" fill="#1a1a2a"/>
107
+ <rect x="330" y="356" width="186" height="9" rx="2" fill="url(#barHigh)"/>
108
+ <text x="526" y="367" font-size="11" font-family="'Consolas', 'SF Mono', monospace" fill="#f97316" font-weight="700"> HIGH: 1</text>
109
+
110
+ <!-- Row 3: secret-hunter CLEAR -->
111
+ <text x="80" y="393" font-size="12" font-family="'Consolas', 'SF Mono', monospace" fill="#484f58">&#x2192;</text>
112
+ <text x="100" y="393" font-size="12" font-family="'Consolas', 'SF Mono', monospace" fill="#e6edf3">secret-hunter</text>
113
+ <rect x="330" y="381" width="186" height="9" rx="2" fill="#1a1a2a"/>
114
+ <rect x="330" y="381" width="186" height="9" rx="2" fill="url(#barClear)"/>
115
+ <text x="526" y="392" font-size="11" font-family="'Consolas', 'SF Mono', monospace" fill="#22c55e" font-weight="700"> CLEAR</text>
116
+
117
+ <!-- Row 4: backdoor-hunter CLEAR -->
118
+ <text x="80" y="418" font-size="12" font-family="'Consolas', 'SF Mono', monospace" fill="#484f58">&#x2192;</text>
119
+ <text x="100" y="418" font-size="12" font-family="'Consolas', 'SF Mono', monospace" fill="#e6edf3">backdoor-hunter</text>
120
+ <rect x="330" y="406" width="186" height="9" rx="2" fill="#1a1a2a"/>
121
+ <rect x="330" y="406" width="186" height="9" rx="2" fill="url(#barClear)"/>
122
+ <text x="526" y="417" font-size="11" font-family="'Consolas', 'SF Mono', monospace" fill="#22c55e" font-weight="700"> CLEAR</text>
123
+
124
+ <!-- Row 5: jailbreak-tester HIGH: 1 -->
125
+ <text x="80" y="443" font-size="12" font-family="'Consolas', 'SF Mono', monospace" fill="#484f58">&#x2192;</text>
126
+ <text x="100" y="443" font-size="12" font-family="'Consolas', 'SF Mono', monospace" fill="#e6edf3">jailbreak-tester</text>
127
+ <rect x="330" y="431" width="186" height="9" rx="2" fill="#1a1a2a"/>
128
+ <rect x="330" y="431" width="186" height="9" rx="2" fill="url(#barHigh)"/>
129
+ <text x="526" y="442" font-size="11" font-family="'Consolas', 'SF Mono', monospace" fill="#f97316" font-weight="700"> HIGH: 1</text>
130
+
131
+ <!-- Row 6: license-violation-finder CLEAR -->
132
+ <text x="80" y="468" font-size="12" font-family="'Consolas', 'SF Mono', monospace" fill="#484f58">&#x2192;</text>
133
+ <text x="100" y="468" font-size="12" font-family="'Consolas', 'SF Mono', monospace" fill="#e6edf3">license-violation-finder</text>
134
+ <rect x="330" y="456" width="186" height="9" rx="2" fill="#1a1a2a"/>
135
+ <rect x="330" y="456" width="186" height="9" rx="2" fill="url(#barClear)"/>
136
+ <text x="526" y="467" font-size="11" font-family="'Consolas', 'SF Mono', monospace" fill="#22c55e" font-weight="700"> CLEAR</text>
137
+
138
+ <!-- Row 7: code-stealer-detector CLEAR -->
139
+ <text x="80" y="493" font-size="12" font-family="'Consolas', 'SF Mono', monospace" fill="#484f58">&#x2192;</text>
140
+ <text x="100" y="493" font-size="12" font-family="'Consolas', 'SF Mono', monospace" fill="#e6edf3">code-stealer-detector</text>
141
+ <rect x="330" y="481" width="186" height="9" rx="2" fill="#1a1a2a"/>
142
+ <rect x="330" y="481" width="186" height="9" rx="2" fill="url(#barClear)"/>
143
+ <text x="526" y="492" font-size="11" font-family="'Consolas', 'SF Mono', monospace" fill="#22c55e" font-weight="700"> CLEAR</text>
144
+
145
+ <!-- Row 8: chaos-engineer HIGH: 3 -->
146
+ <text x="80" y="518" font-size="12" font-family="'Consolas', 'SF Mono', monospace" fill="#484f58">&#x2192;</text>
147
+ <text x="100" y="518" font-size="12" font-family="'Consolas', 'SF Mono', monospace" fill="#e6edf3">chaos-engineer</text>
148
+ <rect x="330" y="506" width="186" height="9" rx="2" fill="#1a1a2a"/>
149
+ <rect x="330" y="506" width="186" height="9" rx="2" fill="url(#barHigh)"/>
150
+ <text x="526" y="517" font-size="11" font-family="'Consolas', 'SF Mono', monospace" fill="#f97316" font-weight="700"> HIGH: 3</text>
151
+
152
+ <!-- Summary line -->
153
+ <line x1="80" y1="536" x2="710" y2="536" stroke="#1e1e2e" stroke-width="1"/>
154
+ <text x="80" y="556" font-size="12" font-family="'Consolas', 'SF Mono', monospace" fill="#484f58">60 min</text>
155
+ <text x="138" y="556" font-size="12" font-family="'Consolas', 'SF Mono', monospace" fill="#ef4444" font-weight="700">&#x2192;</text>
156
+ <text x="158" y="556" font-size="12" font-family="'Consolas', 'SF Mono', monospace" fill="#22c55e" font-weight="700">8 min</text>
157
+ <text x="214" y="556" font-size="12" font-family="'Consolas', 'SF Mono', monospace" fill="#484f58"> &#xB7; 3 issues need your attention</text>
158
+
159
+ <!-- ============================================================ -->
160
+ <!-- RIGHT PANEL — stats / context -->
161
+ <!-- ============================================================ -->
162
+
163
+ <!-- Stat box 1: Agents -->
164
+ <rect x="768" y="258" width="392" height="100" rx="8" fill="#0c0c16" stroke="#1e1a28" stroke-width="1"/>
165
+ <rect x="768" y="258" width="3" height="100" rx="1" fill="url(#redGrad)"/>
166
+ <text x="788" y="292" font-size="40" font-weight="900" fill="#ef4444" letter-spacing="-1">8</text>
167
+ <text x="836" y="292" font-size="15" font-weight="700" fill="#e6edf3">adversarial agents</text>
168
+ <text x="836" y="314" font-size="12" fill="#484f58">firing simultaneously in parallel</text>
169
+ <text x="836" y="332" font-size="12" fill="#484f58">— no sequential bottleneck</text>
170
+
171
+ <!-- Stat box 2: Time -->
172
+ <rect x="768" y="374" width="392" height="100" rx="8" fill="#0c0c16" stroke="#1e1a28" stroke-width="1"/>
173
+ <rect x="768" y="374" width="3" height="100" rx="1" fill="url(#redGrad)"/>
174
+ <text x="788" y="408" font-size="40" font-weight="900" fill="#ef4444" letter-spacing="-1">7x</text>
175
+ <text x="850" y="408" font-size="15" font-weight="700" fill="#e6edf3">faster than sequential</text>
176
+ <text x="788" y="430" font-size="12" fill="#484f58">8 min full adversarial sweep</text>
177
+ <text x="788" y="448" font-size="12" fill="#484f58">vs. 60 min doing each by hand</text>
178
+
179
+ <!-- Stat box 3: Coverage -->
180
+ <rect x="768" y="490" width="392" height="116" rx="8" fill="#0c0c16" stroke="#1e1a28" stroke-width="1"/>
181
+ <rect x="768" y="490" width="3" height="116" rx="1" fill="url(#redGrad)"/>
182
+ <text x="788" y="520" font-size="13" font-weight="700" fill="#e6edf3">Attack surface covered</text>
183
+ <!-- Tag pills -->
184
+ <rect x="788" y="530" width="78" height="20" rx="3" fill="#2d0a0a" stroke="#ef4444" stroke-opacity="0.35" stroke-width="1"/>
185
+ <text x="796" y="544" font-size="10" fill="#ef4444">AI injection</text>
186
+
187
+ <rect x="874" y="530" width="92" height="20" rx="3" fill="#2d0a0a" stroke="#ef4444" stroke-opacity="0.35" stroke-width="1"/>
188
+ <text x="882" y="544" font-size="10" fill="#ef4444">supply chain</text>
189
+
190
+ <rect x="974" y="530" width="62" height="20" rx="3" fill="#2d0a0a" stroke="#ef4444" stroke-opacity="0.35" stroke-width="1"/>
191
+ <text x="982" y="544" font-size="10" fill="#ef4444">secrets</text>
192
+
193
+ <rect x="788" y="558" width="72" height="20" rx="3" fill="#2d0a0a" stroke="#ef4444" stroke-opacity="0.35" stroke-width="1"/>
194
+ <text x="796" y="572" font-size="10" fill="#ef4444">backdoors</text>
195
+
196
+ <rect x="868" y="558" width="80" height="20" rx="3" fill="#2d0a0a" stroke="#ef4444" stroke-opacity="0.35" stroke-width="1"/>
197
+ <text x="876" y="572" font-size="10" fill="#ef4444">jailbreaks</text>
198
+
199
+ <rect x="956" y="558" width="60" height="20" rx="3" fill="#2d0a0a" stroke="#ef4444" stroke-opacity="0.35" stroke-width="1"/>
200
+ <text x="964" y="572" font-size="10" fill="#ef4444">licenses</text>
201
+
202
+ <rect x="788" y="586" width="94" height="20" rx="3" fill="#2d0a0a" stroke="#ef4444" stroke-opacity="0.35" stroke-width="1"/>
203
+ <text x="796" y="600" font-size="10" fill="#ef4444">code provenance</text>
204
+
205
+ <rect x="890" y="586" width="56" height="20" rx="3" fill="#2d0a0a" stroke="#ef4444" stroke-opacity="0.35" stroke-width="1"/>
206
+ <text x="898" y="600" font-size="10" fill="#ef4444">chaos</text>
207
+
208
+ <!-- ============================================================ -->
209
+ <!-- BOTTOM BAR -->
210
+ <!-- ============================================================ -->
211
+ <rect x="0" y="637" width="1200" height="38" fill="#07080f"/>
212
+ <line x1="0" y1="637" x2="1200" y2="637" stroke="#1e1e2e" stroke-width="1"/>
213
+
214
+ <!-- Left: npx install command -->
215
+ <text x="56" y="661" font-size="12" font-family="'Consolas', 'SF Mono', monospace" fill="#ef4444" font-weight="600">npx kodelyth-ecc</text>
216
+
217
+ <!-- Dot separator -->
218
+ <text x="206" y="661" font-size="12" fill="#2d3340">&#xB7;</text>
219
+
220
+ <!-- GitHub URL -->
221
+ <text x="222" y="661" font-size="12" font-family="'Consolas', 'SF Mono', monospace" fill="#484f58">github.com/sifxprime/kodelyth-ecc</text>
222
+
223
+ <!-- Dot separator -->
224
+ <text x="562" y="661" font-size="12" fill="#2d3340">&#xB7;</text>
225
+
226
+ <!-- MIT license -->
227
+ <text x="578" y="661" font-size="12" font-family="'Consolas', 'SF Mono', monospace" fill="#484f58">MIT</text>
228
+
229
+ <!-- Ghost Depth Mark — brand stamp (scale 0.55×) -->
230
+ <g transform="translate(1044, 282) scale(0.55)" opacity="0.16">
231
+ <polyline points="-44,4 12,100 -44,196"
232
+ stroke="#ffffff" stroke-width="10"
233
+ stroke-linecap="round" stroke-linejoin="round"
234
+ fill="none"/>
235
+ <polyline points="0,0 88,100 0,200"
236
+ stroke="#ffffff" stroke-width="32"
237
+ stroke-linecap="round" stroke-linejoin="round"
238
+ fill="none"/>
239
+ </g>
240
+ </svg>
@@ -0,0 +1,148 @@
1
+ <svg width="1200" height="675" viewBox="0 0 1200 675" xmlns="http://www.w3.org/2000/svg" font-family="'Segoe UI', system-ui, -apple-system, sans-serif">
2
+ <defs>
3
+ <linearGradient id="bg" x1="0%" y1="0%" x2="100%" y2="100%">
4
+ <stop offset="0%" style="stop-color:#050811"/>
5
+ <stop offset="100%" style="stop-color:#06080e"/>
6
+ </linearGradient>
7
+ <linearGradient id="purple" x1="0%" y1="0%" x2="100%" y2="0%">
8
+ <stop offset="0%" style="stop-color:#a78bfa"/>
9
+ <stop offset="100%" style="stop-color:#7c3aed"/>
10
+ </linearGradient>
11
+ <linearGradient id="blue" x1="0%" y1="0%" x2="100%" y2="0%">
12
+ <stop offset="0%" style="stop-color:#38bdf8"/>
13
+ <stop offset="100%" style="stop-color:#0284c7"/>
14
+ </linearGradient>
15
+ <linearGradient id="termBg" x1="0%" y1="0%" x2="0%" y2="100%">
16
+ <stop offset="0%" style="stop-color:#0b0c16"/>
17
+ <stop offset="100%" style="stop-color:#080810"/>
18
+ </linearGradient>
19
+ <linearGradient id="accentFade" x1="0%" y1="0%" x2="100%" y2="0%">
20
+ <stop offset="0%" style="stop-color:#a78bfa" stop-opacity="0.8"/>
21
+ <stop offset="100%" style="stop-color:#a78bfa" stop-opacity="0"/>
22
+ </linearGradient>
23
+ <linearGradient id="connLine" x1="0%" y1="50%" x2="100%" y2="50%">
24
+ <stop offset="0%" style="stop-color:#a78bfa" stop-opacity="0.6"/>
25
+ <stop offset="100%" style="stop-color:#38bdf8" stop-opacity="0.3"/>
26
+ </linearGradient>
27
+ </defs>
28
+
29
+ <rect width="1200" height="675" fill="url(#bg)"/>
30
+ <radialGradient id="glowP" cx="20%" cy="20%" r="55%">
31
+ <stop offset="0%" style="stop-color:#a78bfa" stop-opacity="0.05"/>
32
+ <stop offset="100%" style="stop-color:#a78bfa" stop-opacity="0"/>
33
+ </radialGradient>
34
+ <rect width="1200" height="675" fill="url(#glowP)"/>
35
+ <rect x="0" y="0" width="3" height="675" fill="url(#purple)"/>
36
+
37
+ <!-- Badge -->
38
+ <rect x="56" y="40" width="168" height="28" rx="4" fill="#120a28" stroke="#a78bfa" stroke-opacity="0.5" stroke-width="1"/>
39
+ <text x="66" y="59" font-size="11" font-weight="700" fill="#a78bfa" letter-spacing="1.5">MCP SERVER</text>
40
+ <rect x="168" y="47" width="1" height="14" fill="#a78bfa" opacity="0.4"/>
41
+ <text x="176" y="59" font-size="11" font-weight="500" fill="#484f58">v1.7.5</text>
42
+
43
+ <!-- Headline -->
44
+ <text x="56" y="126" font-size="52" font-weight="900" letter-spacing="-2" fill="#ffffff">One server.</text>
45
+ <text x="56" y="184" font-size="52" font-weight="900" letter-spacing="-2" fill="url(#purple)">Every AI framework.</text>
46
+ <text x="56" y="222" font-size="16" fill="#8b949e">16 tools · 6 prompts · 377 resources. Runs locally. Bridges any MCP client.</text>
47
+
48
+ <rect x="56" y="244" width="460" height="1" fill="url(#accentFade)"/>
49
+
50
+ <!-- Terminal block -->
51
+ <rect x="56" y="260" width="540" height="280" rx="8" fill="url(#termBg)" stroke="#1a1a2e" stroke-width="1"/>
52
+ <rect x="56" y="260" width="540" height="32" rx="8" fill="#0f0f1a"/>
53
+ <rect x="56" y="280" width="540" height="12" fill="#0f0f1a"/>
54
+ <circle cx="80" cy="276" r="5" fill="#1a1020"/>
55
+ <circle cx="98" cy="276" r="5" fill="#14100a"/>
56
+ <circle cx="116" cy="276" r="5" fill="#0f1a10"/>
57
+ <text x="456" y="281" font-size="11" fill="#484f58" text-anchor="middle" font-family="'Consolas', 'SF Mono', monospace">bash — mcp server</text>
58
+
59
+ <!-- Command -->
60
+ <text x="80" y="316" font-size="13" font-family="'Consolas', 'SF Mono', monospace" fill="#a78bfa" font-weight="700">npx kodelyth-ecc mcp</text>
61
+
62
+ <text x="80" y="344" font-size="12" font-family="'Consolas', 'SF Mono', monospace" fill="#484f58">[INFO] Starting MCP server...</text>
63
+ <text x="80" y="364" font-size="12" font-family="'Consolas', 'SF Mono', monospace" fill="#484f58">[INFO] Listening on stdio (JSON-RPC 2.0)</text>
64
+ <text x="80" y="384" font-size="12" font-family="'Consolas', 'SF Mono', monospace" fill="#10b981">[INFO] Tools registered:</text>
65
+ <text x="100" y="404" font-size="12" font-family="'Consolas', 'SF Mono', monospace" fill="#a78bfa">agent_invoke, memory_search, skill_load</text>
66
+ <text x="100" y="422" font-size="12" font-family="'Consolas', 'SF Mono', monospace" fill="#a78bfa">swarm_run, cost_route, session_analyze</text>
67
+ <text x="100" y="440" font-size="12" font-family="'Consolas', 'SF Mono', monospace" fill="#484f58">+ 10 more tools</text>
68
+ <text x="80" y="464" font-size="12" font-family="'Consolas', 'SF Mono', monospace" fill="#10b981">[INFO] Resources:</text>
69
+ <text x="100" y="484" font-size="12" font-family="'Consolas', 'SF Mono', monospace" fill="#38bdf8">377 resources (agents + skills + commands)</text>
70
+ <text x="80" y="508" font-size="12" font-family="'Consolas', 'SF Mono', monospace" fill="#10b981" font-weight="600">[READY] Server ready. Connect your MCP client.</text>
71
+
72
+ <!-- Right panel — connection diagram -->
73
+ <!-- Center node: ECC MCP -->
74
+ <rect x="748" y="340" width="200" height="64" rx="8" fill="#120a28" stroke="#a78bfa" stroke-opacity="0.7" stroke-width="1.5"/>
75
+ <text x="848" y="366" font-size="13" font-weight="700" fill="#a78bfa" text-anchor="middle">Kodelyth ECC</text>
76
+ <text x="848" y="384" font-size="11" fill="#484f58" text-anchor="middle">MCP Server</text>
77
+ <text x="848" y="398" font-size="10" fill="#2d2040" text-anchor="middle">16 tools · 6 prompts · 377 res</text>
78
+
79
+ <!-- Connection lines from center to clients -->
80
+ <line x1="748" y1="358" x2="660" y2="290" stroke="#a78bfa" stroke-opacity="0.3" stroke-width="1" stroke-dasharray="4,3"/>
81
+ <line x1="748" y1="372" x2="660" y2="440" stroke="#a78bfa" stroke-opacity="0.3" stroke-width="1" stroke-dasharray="4,3"/>
82
+ <line x1="948" y1="358" x2="1044" y2="290" stroke="#38bdf8" stroke-opacity="0.3" stroke-width="1" stroke-dasharray="4,3"/>
83
+ <line x1="948" y1="372" x2="1044" y2="440" stroke="#38bdf8" stroke-opacity="0.3" stroke-width="1" stroke-dasharray="4,3"/>
84
+ <line x1="848" y1="340" x2="848" y2="272" stroke="#a78bfa" stroke-opacity="0.3" stroke-width="1" stroke-dasharray="4,3"/>
85
+ <line x1="848" y1="404" x2="848" y2="472" stroke="#38bdf8" stroke-opacity="0.3" stroke-width="1" stroke-dasharray="4,3"/>
86
+
87
+ <!-- Client boxes -->
88
+ <!-- Claude Desktop -->
89
+ <rect x="604" y="256" width="148" height="50" rx="6" fill="#0d0d18" stroke="#21262d" stroke-width="1"/>
90
+ <text x="678" y="279" font-size="11" font-weight="700" fill="#e6edf3" text-anchor="middle">Claude Desktop</text>
91
+ <text x="678" y="296" font-size="10" fill="#484f58" text-anchor="middle">native MCP client</text>
92
+
93
+ <!-- Claude Code -->
94
+ <rect x="766" y="256" width="164" height="50" rx="6" fill="#0d0d18" stroke="#21262d" stroke-width="1"/>
95
+ <text x="848" y="279" font-size="11" font-weight="700" fill="#e6edf3" text-anchor="middle">Claude Code</text>
96
+ <text x="848" y="296" font-size="10" fill="#484f58" text-anchor="middle">CLI + IDE extension</text>
97
+
98
+ <!-- LangGraph -->
99
+ <rect x="960" y="256" width="148" height="50" rx="6" fill="#0d0d18" stroke="#21262d" stroke-width="1"/>
100
+ <text x="1034" y="279" font-size="11" font-weight="700" fill="#e6edf3" text-anchor="middle">LangGraph</text>
101
+ <text x="1034" y="296" font-size="10" fill="#484f58" text-anchor="middle">agent framework</text>
102
+
103
+ <!-- AutoGen -->
104
+ <rect x="604" y="422" width="148" height="50" rx="6" fill="#0d0d18" stroke="#21262d" stroke-width="1"/>
105
+ <text x="678" y="445" font-size="11" font-weight="700" fill="#e6edf3" text-anchor="middle">AutoGen</text>
106
+ <text x="678" y="462" font-size="10" fill="#484f58" text-anchor="middle">multi-agent</text>
107
+
108
+ <!-- CrewAI -->
109
+ <rect x="766" y="472" width="164" height="50" rx="6" fill="#0d0d18" stroke="#21262d" stroke-width="1"/>
110
+ <text x="848" y="495" font-size="11" font-weight="700" fill="#e6edf3" text-anchor="middle">CrewAI</text>
111
+ <text x="848" y="512" font-size="10" fill="#484f58" text-anchor="middle">crew orchestration</text>
112
+
113
+ <!-- OpenAI Agents -->
114
+ <rect x="960" y="422" width="148" height="50" rx="6" fill="#0d0d18" stroke="#21262d" stroke-width="1"/>
115
+ <text x="1034" y="445" font-size="11" font-weight="700" fill="#e6edf3" text-anchor="middle">OpenAI Agents</text>
116
+ <text x="1034" y="462" font-size="10" fill="#484f58" text-anchor="middle">SDK bridge</text>
117
+
118
+ <!-- Stats row at bottom right -->
119
+ <text x="770" y="565" font-size="32" font-weight="900" fill="#a78bfa">16</text>
120
+ <text x="770" y="582" font-size="10" fill="#484f58" letter-spacing="1">TOOLS</text>
121
+
122
+ <text x="880" y="565" font-size="32" font-weight="900" fill="#38bdf8">6</text>
123
+ <text x="880" y="582" font-size="10" fill="#484f58" letter-spacing="1">PROMPTS</text>
124
+
125
+ <text x="980" y="565" font-size="32" font-weight="900" fill="#10b981">377</text>
126
+ <text x="980" y="582" font-size="10" fill="#484f58" letter-spacing="1">RESOURCES</text>
127
+
128
+ <!-- Bottom bar -->
129
+ <rect x="0" y="637" width="1200" height="38" fill="#07080f"/>
130
+ <line x1="0" y1="637" x2="1200" y2="637" stroke="#1e1e2e" stroke-width="1"/>
131
+ <text x="56" y="661" font-size="12" font-family="'Consolas', 'SF Mono', monospace" fill="#a78bfa" font-weight="600">npx kodelyth-ecc mcp</text>
132
+ <text x="240" y="661" font-size="12" fill="#2d3340">&#xB7;</text>
133
+ <text x="256" y="661" font-size="12" font-family="'Consolas', 'SF Mono', monospace" fill="#484f58">github.com/sifxprime/kodelyth-ecc</text>
134
+ <text x="596" y="661" font-size="12" fill="#2d3340">&#xB7;</text>
135
+ <text x="612" y="661" font-size="12" font-family="'Consolas', 'SF Mono', monospace" fill="#484f58">localhost only · zero telemetry</text>
136
+
137
+ <!-- Ghost Depth Mark — brand stamp (scale 0.55×) -->
138
+ <g transform="translate(1044, 282) scale(0.55)" opacity="0.16">
139
+ <polyline points="-44,4 12,100 -44,196"
140
+ stroke="#ffffff" stroke-width="10"
141
+ stroke-linecap="round" stroke-linejoin="round"
142
+ fill="none"/>
143
+ <polyline points="0,0 88,100 0,200"
144
+ stroke="#ffffff" stroke-width="32"
145
+ stroke-linecap="round" stroke-linejoin="round"
146
+ fill="none"/>
147
+ </g>
148
+ </svg>
@@ -0,0 +1,162 @@
1
+ <svg width="1200" height="675" viewBox="0 0 1200 675" xmlns="http://www.w3.org/2000/svg" font-family="'Segoe UI', system-ui, -apple-system, sans-serif">
2
+ <defs>
3
+ <linearGradient id="bg" x1="0%" y1="0%" x2="100%" y2="100%">
4
+ <stop offset="0%" style="stop-color:#050811"/>
5
+ <stop offset="100%" style="stop-color:#0d0a03"/>
6
+ </linearGradient>
7
+ <linearGradient id="amber" x1="0%" y1="0%" x2="100%" y2="0%">
8
+ <stop offset="0%" style="stop-color:#f59e0b"/>
9
+ <stop offset="100%" style="stop-color:#d97706"/>
10
+ </linearGradient>
11
+ <linearGradient id="termBg" x1="0%" y1="0%" x2="0%" y2="100%">
12
+ <stop offset="0%" style="stop-color:#0c0c10"/>
13
+ <stop offset="100%" style="stop-color:#080810"/>
14
+ </linearGradient>
15
+ <linearGradient id="slowBar" x1="0%" y1="0%" x2="100%" y2="0%">
16
+ <stop offset="0%" style="stop-color:#374151"/>
17
+ <stop offset="100%" style="stop-color:#1f2937"/>
18
+ </linearGradient>
19
+ <linearGradient id="fastBar" x1="0%" y1="0%" x2="100%" y2="0%">
20
+ <stop offset="0%" style="stop-color:#f59e0b"/>
21
+ <stop offset="100%" style="stop-color:#10b981"/>
22
+ </linearGradient>
23
+ <linearGradient id="accentFade" x1="0%" y1="0%" x2="100%" y2="0%">
24
+ <stop offset="0%" style="stop-color:#f59e0b" stop-opacity="0.8"/>
25
+ <stop offset="100%" style="stop-color:#f59e0b" stop-opacity="0"/>
26
+ </linearGradient>
27
+ </defs>
28
+
29
+ <rect width="1200" height="675" fill="url(#bg)"/>
30
+ <!-- Ambient glow -->
31
+ <radialGradient id="glowA" cx="15%" cy="15%" r="50%">
32
+ <stop offset="0%" style="stop-color:#f59e0b" stop-opacity="0.05"/>
33
+ <stop offset="100%" style="stop-color:#f59e0b" stop-opacity="0"/>
34
+ </radialGradient>
35
+ <rect width="1200" height="675" fill="url(#glowA)"/>
36
+ <!-- Left border -->
37
+ <rect x="0" y="0" width="3" height="675" fill="url(#amber)"/>
38
+
39
+ <!-- Badge -->
40
+ <rect x="56" y="40" width="200" height="28" rx="4" fill="#1a1200" stroke="#f59e0b" stroke-opacity="0.5" stroke-width="1"/>
41
+ <text x="66" y="59" font-size="11" font-weight="700" fill="#f59e0b" letter-spacing="1.5">PARALLEL AGENTS</text>
42
+ <rect x="198" y="47" width="1" height="14" fill="#f59e0b" opacity="0.4"/>
43
+ <text x="206" y="59" font-size="11" font-weight="500" fill="#484f58">v1.7.5</text>
44
+
45
+ <!-- Headline -->
46
+ <text x="56" y="126" font-size="52" font-weight="900" letter-spacing="-2" fill="#ffffff">4 specialists, 15 minutes.</text>
47
+ <text x="56" y="184" font-size="52" font-weight="900" letter-spacing="-2" fill="url(#amber)">Not 60.</text>
48
+ <text x="56" y="222" font-size="16" fill="#8b949e">Fire code, security, performance, and API reviewers simultaneously with /team-review.</text>
49
+
50
+ <rect x="56" y="244" width="480" height="1" fill="url(#accentFade)"/>
51
+
52
+ <!-- Terminal block -->
53
+ <rect x="56" y="260" width="660" height="330" rx="8" fill="url(#termBg)" stroke="#1e1e2e" stroke-width="1"/>
54
+ <rect x="56" y="260" width="660" height="32" rx="8" fill="#0f0f18"/>
55
+ <rect x="56" y="280" width="660" height="12" fill="#0f0f18"/>
56
+ <circle cx="80" cy="276" r="5" fill="#1a1a10"/>
57
+ <circle cx="98" cy="276" r="5" fill="#1a1208"/>
58
+ <circle cx="116" cy="276" r="5" fill="#0f1a10"/>
59
+ <text x="576" y="281" font-size="11" fill="#484f58" text-anchor="middle" font-family="'Consolas', 'SF Mono', monospace">bash — /team-review</text>
60
+
61
+ <!-- Command -->
62
+ <text x="80" y="316" font-size="13" font-family="'Consolas', 'SF Mono', monospace" fill="#f59e0b" font-weight="700">/team-review</text>
63
+ <text x="222" y="316" font-size="13" font-family="'Consolas', 'SF Mono', monospace" fill="#484f58"> # spawning 4 agents in parallel</text>
64
+
65
+ <!-- Agent launch rows -->
66
+ <text x="80" y="346" font-size="12" font-family="'Consolas', 'SF Mono', monospace" fill="#484f58">&#x2192;</text>
67
+ <text x="100" y="346" font-size="12" font-family="'Consolas', 'SF Mono', monospace" fill="#e6edf3">code-reviewer</text>
68
+ <text x="290" y="346" font-size="12" font-family="'Consolas', 'SF Mono', monospace" fill="#484f58">launching...</text>
69
+ <rect x="404" y="336" width="80" height="8" rx="2" fill="#1a2010"/>
70
+ <rect x="404" y="336" width="80" height="8" rx="2" fill="#10b981" opacity="0.8"/>
71
+ <text x="494" y="346" font-size="11" font-family="'Consolas', 'SF Mono', monospace" fill="#10b981"> running</text>
72
+
73
+ <text x="80" y="372" font-size="12" font-family="'Consolas', 'SF Mono', monospace" fill="#484f58">&#x2192;</text>
74
+ <text x="100" y="372" font-size="12" font-family="'Consolas', 'SF Mono', monospace" fill="#e6edf3">security-reviewer</text>
75
+ <text x="290" y="372" font-size="12" font-family="'Consolas', 'SF Mono', monospace" fill="#484f58">launching...</text>
76
+ <rect x="404" y="362" width="80" height="8" rx="2" fill="#1a2010"/>
77
+ <rect x="404" y="362" width="80" height="8" rx="2" fill="#10b981" opacity="0.8"/>
78
+ <text x="494" y="372" font-size="11" font-family="'Consolas', 'SF Mono', monospace" fill="#10b981"> running</text>
79
+
80
+ <text x="80" y="398" font-size="12" font-family="'Consolas', 'SF Mono', monospace" fill="#484f58">&#x2192;</text>
81
+ <text x="100" y="398" font-size="12" font-family="'Consolas', 'SF Mono', monospace" fill="#e6edf3">performance-optimizer</text>
82
+ <text x="340" y="398" font-size="12" font-family="'Consolas', 'SF Mono', monospace" fill="#484f58">launching...</text>
83
+ <rect x="454" y="388" width="80" height="8" rx="2" fill="#1a2010"/>
84
+ <rect x="454" y="388" width="80" height="8" rx="2" fill="#10b981" opacity="0.8"/>
85
+ <text x="544" y="398" font-size="11" font-family="'Consolas', 'SF Mono', monospace" fill="#10b981"> running</text>
86
+
87
+ <text x="80" y="424" font-size="12" font-family="'Consolas', 'SF Mono', monospace" fill="#484f58">&#x2192;</text>
88
+ <text x="100" y="424" font-size="12" font-family="'Consolas', 'SF Mono', monospace" fill="#e6edf3">api-guardian</text>
89
+ <text x="256" y="424" font-size="12" font-family="'Consolas', 'SF Mono', monospace" fill="#484f58">launching...</text>
90
+ <rect x="404" y="414" width="80" height="8" rx="2" fill="#1a2010"/>
91
+ <rect x="404" y="414" width="80" height="8" rx="2" fill="#10b981" opacity="0.8"/>
92
+ <text x="494" y="424" font-size="11" font-family="'Consolas', 'SF Mono', monospace" fill="#10b981"> running</text>
93
+
94
+ <!-- Done line -->
95
+ <line x1="80" y1="442" x2="690" y2="442" stroke="#1e1e2e" stroke-width="1"/>
96
+ <text x="80" y="462" font-size="12" font-family="'Consolas', 'SF Mono', monospace" fill="#484f58">all 4 agents running</text>
97
+ <text x="264" y="462" font-size="12" font-family="'Consolas', 'SF Mono', monospace" fill="#f59e0b" font-weight="700"> simultaneously</text>
98
+ <text x="80" y="484" font-size="12" font-family="'Consolas', 'SF Mono', monospace" fill="#484f58">report ready in ~15 min (was 60 min sequential)</text>
99
+
100
+ <!-- Time comparison visual -->
101
+ <text x="80" y="534" font-size="11" fill="#484f58" font-weight="700" letter-spacing="1">SEQUENTIAL</text>
102
+ <rect x="80" y="542" width="540" height="14" rx="3" fill="url(#slowBar)"/>
103
+ <text x="628" y="554" font-size="11" fill="#6e7681" font-family="'Consolas', 'SF Mono', monospace">60 min</text>
104
+
105
+ <text x="80" y="576" font-size="11" fill="#f59e0b" font-weight="700" letter-spacing="1">PARALLEL</text>
106
+ <rect x="80" y="584" width="135" height="14" rx="3" fill="url(#fastBar)"/>
107
+ <text x="224" y="596" font-size="11" fill="#10b981" font-family="'Consolas', 'SF Mono', monospace">15 min</text>
108
+
109
+ <!-- Right panel -->
110
+ <!-- Card 1 -->
111
+ <rect x="748" y="260" width="400" height="90" rx="8" fill="#0d0d16" stroke="#1e2030" stroke-width="1"/>
112
+ <rect x="748" y="260" width="3" height="90" rx="1" fill="url(#amber)"/>
113
+ <text x="770" y="288" font-size="11" font-weight="700" fill="#f59e0b" letter-spacing="1">CODE QUALITY</text>
114
+ <text x="770" y="308" font-size="13" fill="#8b949e">Patterns, dead code, naming,</text>
115
+ <text x="770" y="326" font-size="13" fill="#8b949e">complexity, maintainability</text>
116
+ <text x="770" y="342" font-size="11" fill="#484f58">code-reviewer agent</text>
117
+
118
+ <!-- Card 2 -->
119
+ <rect x="748" y="366" width="400" height="90" rx="8" fill="#0d0d16" stroke="#1e2030" stroke-width="1"/>
120
+ <rect x="748" y="366" width="3" height="90" rx="1" fill="#ef4444"/>
121
+ <text x="770" y="394" font-size="11" font-weight="700" fill="#ef4444" letter-spacing="1">SECURITY</text>
122
+ <text x="770" y="414" font-size="13" fill="#8b949e">OWASP Top 10, secrets, injection,</text>
123
+ <text x="770" y="432" font-size="13" fill="#8b949e">auth gaps, CVEs in deps</text>
124
+ <text x="770" y="448" font-size="11" fill="#484f58">security-reviewer agent</text>
125
+
126
+ <!-- Card 3 -->
127
+ <rect x="748" y="472" width="192" height="90" rx="8" fill="#0d0d16" stroke="#1e2030" stroke-width="1"/>
128
+ <rect x="748" y="472" width="3" height="90" rx="1" fill="#38bdf8"/>
129
+ <text x="770" y="498" font-size="11" font-weight="700" fill="#38bdf8" letter-spacing="1">PERFORMANCE</text>
130
+ <text x="770" y="518" font-size="12" fill="#8b949e">N+1, memory,</text>
131
+ <text x="770" y="536" font-size="12" fill="#8b949e">bundle, slow queries</text>
132
+ <text x="770" y="554" font-size="11" fill="#484f58">perf-optimizer</text>
133
+
134
+ <!-- Card 4 -->
135
+ <rect x="956" y="472" width="192" height="90" rx="8" fill="#0d0d16" stroke="#1e2030" stroke-width="1"/>
136
+ <rect x="956" y="472" width="3" height="90" rx="1" fill="#a78bfa"/>
137
+ <text x="978" y="498" font-size="11" font-weight="700" fill="#a78bfa" letter-spacing="1">API CONTRACTS</text>
138
+ <text x="978" y="518" font-size="12" fill="#8b949e">Breaking changes,</text>
139
+ <text x="978" y="536" font-size="12" fill="#8b949e">contract drift</text>
140
+ <text x="978" y="554" font-size="11" fill="#484f58">api-guardian</text>
141
+
142
+ <!-- Bottom bar -->
143
+ <rect x="0" y="637" width="1200" height="38" fill="#07080f"/>
144
+ <line x1="0" y1="637" x2="1200" y2="637" stroke="#1e1e2e" stroke-width="1"/>
145
+ <text x="56" y="661" font-size="12" font-family="'Consolas', 'SF Mono', monospace" fill="#f59e0b" font-weight="600">npx kodelyth-ecc</text>
146
+ <text x="206" y="661" font-size="12" fill="#2d3340">&#xB7;</text>
147
+ <text x="222" y="661" font-size="12" font-family="'Consolas', 'SF Mono', monospace" fill="#484f58">github.com/sifxprime/kodelyth-ecc</text>
148
+ <text x="562" y="661" font-size="12" fill="#2d3340">&#xB7;</text>
149
+ <text x="578" y="661" font-size="12" font-family="'Consolas', 'SF Mono', monospace" fill="#484f58">MIT · free forever</text>
150
+
151
+ <!-- Ghost Depth Mark — brand stamp (scale 0.55×) -->
152
+ <g transform="translate(1044, 282) scale(0.55)" opacity="0.16">
153
+ <polyline points="-44,4 12,100 -44,196"
154
+ stroke="#ffffff" stroke-width="10"
155
+ stroke-linecap="round" stroke-linejoin="round"
156
+ fill="none"/>
157
+ <polyline points="0,0 88,100 0,200"
158
+ stroke="#ffffff" stroke-width="32"
159
+ stroke-linecap="round" stroke-linejoin="round"
160
+ fill="none"/>
161
+ </g>
162
+ </svg>