adaptive-memory-multi-model-router 2.0.6 → 2.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LAUNCH.md +160 -412
- package/README.md +144 -112
- package/articles/HN_FINAL.md +87 -139
- package/articles/devto-llm-routing.md +93 -80
- package/articles/hackernews-show-hn.md +35 -63
- package/articles/reddit-ml.md +59 -76
- package/articles/twitter-thread-cost-savings.md +54 -72
- package/assets/social-preview.svg +178 -48
- package/benchmark-results.json +54 -0
- package/dist/routing/advancedRouter.js +1 -1
- package/docs/GEO.md +124 -0
- package/docs/HN_SUBMISSION_FINAL.md +83 -49
- package/docs/SEO_AUDIT.md +112 -167
- package/docs/assets/cost-comparison.svg +134 -0
- package/docs/assets/growth-chart-animated.svg +76 -0
- package/docs/assets/og-banner.svg +194 -0
- package/docs/assets/social-preview.svg +194 -0
- package/docs/index.html +632 -0
- package/docs-site/assets/og-banner.svg +180 -95
- package/docs-site/index.html +10 -10
- package/llms.txt +31 -11
- package/package.json +26 -163
- package/public/robots.txt +12 -2
- package/public/sitemap.xml +37 -1
- package/scripts/routing-benchmark-v2.js +373 -0
- package/scripts/routing-benchmark.js +462 -0
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="780" height="520" viewBox="0 0 780 520">
|
|
2
|
+
<defs>
|
|
3
|
+
<linearGradient id="gpt4bar" x1="0" y1="0" x2="1" y2="0">
|
|
4
|
+
<stop offset="0%" stop-color="#f85149"/>
|
|
5
|
+
<stop offset="100%" stop-color="#da3633"/>
|
|
6
|
+
</linearGradient>
|
|
7
|
+
<linearGradient id="a3mbar" x1="0" y1="0" x2="1" y2="0">
|
|
8
|
+
<stop offset="0%" stop-color="#3fb950"/>
|
|
9
|
+
<stop offset="100%" stop-color="#238636"/>
|
|
10
|
+
</linearGradient>
|
|
11
|
+
<linearGradient id="header" x1="0" y1="0" x2="0" y2="1">
|
|
12
|
+
<stop offset="0%" stop-color="#161b22"/>
|
|
13
|
+
<stop offset="100%" stop-color="#0d1117"/>
|
|
14
|
+
</linearGradient>
|
|
15
|
+
</defs>
|
|
16
|
+
|
|
17
|
+
<!-- Background -->
|
|
18
|
+
<rect width="780" height="520" rx="12" fill="#0d1117" stroke="#30363d" stroke-width="1"/>
|
|
19
|
+
|
|
20
|
+
<!-- Header -->
|
|
21
|
+
<rect width="780" height="56" rx="12" fill="url(#header)"/>
|
|
22
|
+
<rect y="44" width="780" height="12" fill="url(#header)"/>
|
|
23
|
+
<text x="24" y="28" font-family="-apple-system,system-ui,sans-serif" font-size="18" fill="#c9d1d9" font-weight="700">💰 Cost Comparison</text>
|
|
24
|
+
<text x="24" y="46" font-family="-apple-system,system-ui,sans-serif" font-size="12" fill="#8b949e">10,000 queries/month · Real provider pricing · Mixed query complexity</text>
|
|
25
|
+
|
|
26
|
+
<!-- Legend -->
|
|
27
|
+
<rect x="580" y="16" width="14" height="14" rx="3" fill="url(#gpt4bar)"/>
|
|
28
|
+
<text x="600" y="27" font-family="-apple-system,system-ui,sans-serif" font-size="12" fill="#f85149">All → GPT-4o</text>
|
|
29
|
+
<rect x="680" y="16" width="14" height="14" rx="3" fill="url(#a3mbar)"/>
|
|
30
|
+
<text x="700" y="27" font-family="-apple-system,system-ui,sans-serif" font-size="12" fill="#3fb950">A3M Routed</text>
|
|
31
|
+
|
|
32
|
+
<!-- Chart rows -->
|
|
33
|
+
<g font-family="'SF Mono','Fira Code',monospace" font-size="12">
|
|
34
|
+
|
|
35
|
+
<!-- Row 1: Simple Q&A -->
|
|
36
|
+
<text x="24" y="82" fill="#8b949e">Simple Q&A</text>
|
|
37
|
+
<text x="24" y="96" fill="#484f58" font-size="10">47% of traffic · "What is 2+2?"</text>
|
|
38
|
+
<rect x="140" y="78" width="200" height="20" rx="4" fill="url(#gpt4bar)" opacity="0.9">
|
|
39
|
+
<animate attributeName="width" from="0" to="200" dur="0.6s" fill="freeze"/>
|
|
40
|
+
</rect>
|
|
41
|
+
<text x="346" y="93" fill="#f85149" font-size="11">$4.94</text>
|
|
42
|
+
<rect x="140" y="100" width="2" height="14" rx="2" fill="url(#a3mbar)">
|
|
43
|
+
<animate attributeName="width" from="0" to="2" dur="0.4s" fill="freeze"/>
|
|
44
|
+
</rect>
|
|
45
|
+
<text x="148" y="112" fill="#3fb950" font-size="11">$0.00 → CommandCode (FREE)</text>
|
|
46
|
+
<text x="720" y="96" fill="#3fb950" font-weight="bold" font-size="13">100% ✓</text>
|
|
47
|
+
|
|
48
|
+
<!-- Row 2: Code generation -->
|
|
49
|
+
<text x="24" y="148" fill="#8b949e">Code generation</text>
|
|
50
|
+
<text x="24" y="162" fill="#484f58" font-size="10">15% of traffic · "Write Python sort"</text>
|
|
51
|
+
<rect x="140" y="144" width="198" height="20" rx="4" fill="url(#gpt4bar)" opacity="0.9">
|
|
52
|
+
<animate attributeName="width" from="0" to="198" dur="0.6s" begin="0.15s" fill="freeze"/>
|
|
53
|
+
</rect>
|
|
54
|
+
<text x="344" y="159" fill="#f85149" font-size="11">$4.88</text>
|
|
55
|
+
<rect x="140" y="166" width="7" height="14" rx="2" fill="url(#a3mbar)">
|
|
56
|
+
<animate attributeName="width" from="0" to="7" dur="0.4s" begin="0.15s" fill="freeze"/>
|
|
57
|
+
</rect>
|
|
58
|
+
<text x="153" y="178" fill="#3fb950" font-size="11">$0.17 → DeepSeek v3</text>
|
|
59
|
+
<text x="720" y="162" fill="#3fb950" font-weight="bold" font-size="13">97% ✓</text>
|
|
60
|
+
|
|
61
|
+
<!-- Row 3: Summarization -->
|
|
62
|
+
<text x="24" y="214" fill="#8b949e">Summarization</text>
|
|
63
|
+
<text x="24" y="228" fill="#484f58" font-size="10">18% of traffic · "Summarize this doc"</text>
|
|
64
|
+
<rect x="140" y="210" width="292" height="20" rx="4" fill="url(#gpt4bar)" opacity="0.9">
|
|
65
|
+
<animate attributeName="width" from="0" to="292" dur="0.6s" begin="0.3s" fill="freeze"/>
|
|
66
|
+
</rect>
|
|
67
|
+
<text x="438" y="225" fill="#f85149" font-size="11">$7.20</text>
|
|
68
|
+
<rect x="140" y="232" width="17" height="14" rx="2" fill="url(#a3mbar)">
|
|
69
|
+
<animate attributeName="width" from="0" to="17" dur="0.4s" begin="0.3s" fill="freeze"/>
|
|
70
|
+
</rect>
|
|
71
|
+
<text x="163" y="244" fill="#3fb950" font-size="11">$0.43 → GPT-4o-mini</text>
|
|
72
|
+
<text x="720" y="228" fill="#3fb950" font-weight="bold" font-size="13">94% ✓</text>
|
|
73
|
+
|
|
74
|
+
<!-- Row 4: Complex reasoning -->
|
|
75
|
+
<text x="24" y="280" fill="#8b949e">Complex reasoning</text>
|
|
76
|
+
<text x="24" y="294" fill="#484f58" font-size="10">12% of traffic · "Analyze economics of..."</text>
|
|
77
|
+
<rect x="140" y="276" width="352" height="20" rx="4" fill="url(#gpt4bar)" opacity="0.9">
|
|
78
|
+
<animate attributeName="width" from="0" to="352" dur="0.6s" begin="0.45s" fill="freeze"/>
|
|
79
|
+
</rect>
|
|
80
|
+
<text x="498" y="291" fill="#f85149" font-size="11">$8.70</text>
|
|
81
|
+
<rect x="140" y="298" width="136" height="14" rx="2" fill="url(#a3mbar)">
|
|
82
|
+
<animate attributeName="width" from="0" to="136" dur="0.4s" begin="0.45s" fill="freeze"/>
|
|
83
|
+
</rect>
|
|
84
|
+
<text x="282" y="310" fill="#3fb950" font-size="11">$3.36 → Claude Haiku</text>
|
|
85
|
+
<text x="720" y="294" fill="#ffa657" font-weight="bold" font-size="13">61% ✓</text>
|
|
86
|
+
|
|
87
|
+
<!-- Row 5: Expert analysis -->
|
|
88
|
+
<text x="24" y="346" fill="#8b949e">Expert analysis</text>
|
|
89
|
+
<text x="24" y="360" fill="#484f58" font-size="10">8% of traffic · "Legal contract review"</text>
|
|
90
|
+
<rect x="140" y="342" width="340" height="20" rx="4" fill="url(#gpt4bar)" opacity="0.9">
|
|
91
|
+
<animate attributeName="width" from="0" to="340" dur="0.6s" begin="0.6s" fill="freeze"/>
|
|
92
|
+
</rect>
|
|
93
|
+
<text x="486" y="357" fill="#f85149" font-size="11">$8.40</text>
|
|
94
|
+
<rect x="140" y="364" width="340" height="14" rx="2" fill="url(#a3mbar)" opacity="0.5">
|
|
95
|
+
<animate attributeName="width" from="0" to="340" dur="0.4s" begin="0.6s" fill="freeze"/>
|
|
96
|
+
</rect>
|
|
97
|
+
<text x="486" y="376" fill="#8b949e" font-size="11">$8.40 → GPT-4o (no shortcut)</text>
|
|
98
|
+
<text x="720" y="360" fill="#8b949e" font-weight="bold" font-size="13">0%</text>
|
|
99
|
+
</g>
|
|
100
|
+
|
|
101
|
+
<!-- Divider -->
|
|
102
|
+
<line x1="24" y1="396" x2="756" y2="396" stroke="#30363d" stroke-width="1"/>
|
|
103
|
+
|
|
104
|
+
<!-- Total -->
|
|
105
|
+
<g font-family="-apple-system,system-ui,sans-serif">
|
|
106
|
+
<text x="24" y="418" fill="#c9d1d9" font-size="16" font-weight="700">Total: 10,000 queries</text>
|
|
107
|
+
<text x="380" y="418" fill="#f85149" font-size="16" font-weight="700">$34.11/mo</text>
|
|
108
|
+
<text x="470" y="418" fill="#484f58" font-size="16">→</text>
|
|
109
|
+
<text x="498" y="418" fill="#3fb950" font-size="16" font-weight="700">$12.36/mo</text>
|
|
110
|
+
<text x="600" y="418" fill="#3fb950" font-size="20" font-weight="800">Save 64%</text>
|
|
111
|
+
</g>
|
|
112
|
+
|
|
113
|
+
<!-- Scale projections -->
|
|
114
|
+
<g font-family="'SF Mono','Fira Code',monospace" font-size="11">
|
|
115
|
+
<text x="24" y="448" fill="#8b949e">At scale:</text>
|
|
116
|
+
<text x="24" y="468" fill="#484f58"> 100K queries/mo</text>
|
|
117
|
+
<text x="200" y="468" fill="#f85149">$341</text>
|
|
118
|
+
<text x="240" y="468" fill="#484f58">→</text>
|
|
119
|
+
<text x="260" y="468" fill="#3fb950">$124</text>
|
|
120
|
+
<text x="310" y="468" fill="#3fb950">save $218/mo</text>
|
|
121
|
+
|
|
122
|
+
<text x="420" y="468" fill="#484f58"> 1M queries/mo</text>
|
|
123
|
+
<text x="580" y="468" fill="#f85149">$3,411</text>
|
|
124
|
+
<text x="630" y="468" fill="#484f58">→</text>
|
|
125
|
+
<text x="650" y="468" fill="#3fb950">$1,236</text>
|
|
126
|
+
<text x="700" y="468" fill="#3fb950">save $2,175/mo</text>
|
|
127
|
+
</g>
|
|
128
|
+
|
|
129
|
+
<!-- Bottom note -->
|
|
130
|
+
<rect x="16" y="488" width="748" height="24" rx="4" fill="#161b22"/>
|
|
131
|
+
<text x="390" y="504" text-anchor="middle" font-family="-apple-system,system-ui,sans-serif" font-size="11" fill="#8b949e">
|
|
132
|
+
Based on real provider pricing from providerConfig.ts · RouteLLM query distribution (47% simple) · Savings vary by usage
|
|
133
|
+
</text>
|
|
134
|
+
</svg>
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="600" height="280" viewBox="0 0 600 280">
|
|
2
|
+
<style>
|
|
3
|
+
.label { font-family: 'SF Mono', monospace; font-size: 12px; fill: #8b949e; }
|
|
4
|
+
.value { font-family: 'SF Mono', monospace; font-size: 14px; font-weight: bold; }
|
|
5
|
+
.title { font-family: -apple-system, system-ui, sans-serif; font-size: 16px; fill: #c9d1d9; font-weight: 600; }
|
|
6
|
+
.subtitle { font-family: -apple-system, system-ui, sans-serif; font-size: 12px; fill: #8b949e; }
|
|
7
|
+
</style>
|
|
8
|
+
|
|
9
|
+
<!-- Background -->
|
|
10
|
+
<rect width="600" height="280" rx="12" fill="#0d1117" stroke="#30363d" stroke-width="1"/>
|
|
11
|
+
|
|
12
|
+
<!-- Title -->
|
|
13
|
+
<text x="300" y="30" text-anchor="middle" class="title">📈 Downloads Over 3 Days</text>
|
|
14
|
+
<text x="300" y="48" text-anchor="middle" class="subtitle">Zero marketing budget. Pure npm keyword discovery + word-of-mouth.</text>
|
|
15
|
+
|
|
16
|
+
<!-- Chart area -->
|
|
17
|
+
<g transform="translate(80, 70)">
|
|
18
|
+
<!-- Grid lines -->
|
|
19
|
+
<line x1="0" y1="0" x2="440" y2="0" stroke="#21262d" stroke-width="1"/>
|
|
20
|
+
<line x1="0" y1="40" x2="440" y2="40" stroke="#21262d" stroke-width="1" stroke-dasharray="4"/>
|
|
21
|
+
<line x1="0" y1="80" x2="440" y2="80" stroke="#21262d" stroke-width="1" stroke-dasharray="4"/>
|
|
22
|
+
<line x1="0" y1="120" x2="440" y2="120" stroke="#21262d" stroke-width="1" stroke-dasharray="4"/>
|
|
23
|
+
<line x1="0" y1="160" x2="440" y2="160" stroke="#21262d" stroke-width="1"/>
|
|
24
|
+
|
|
25
|
+
<!-- Y-axis labels -->
|
|
26
|
+
<text x="-10" y="4" text-anchor="end" class="label">2000</text>
|
|
27
|
+
<text x="-10" y="44" text-anchor="end" class="label">1500</text>
|
|
28
|
+
<text x="-10" y="84" text-anchor="end" class="label">1000</text>
|
|
29
|
+
<text x="-10" y="124" text-anchor="end" class="label">500</text>
|
|
30
|
+
<text x="-10" y="164" text-anchor="end" class="label">0</text>
|
|
31
|
+
|
|
32
|
+
<!-- Area fill -->
|
|
33
|
+
<polygon points="73,116 220,134 367,8 367,160 73,160" fill="#238636" fill-opacity="0.15">
|
|
34
|
+
<animate attributeName="fill-opacity" from="0" to="0.15" dur="1s" fill="freeze"/>
|
|
35
|
+
</polygon>
|
|
36
|
+
|
|
37
|
+
<!-- Line -->
|
|
38
|
+
<polyline points="73,116 220,134 367,8" fill="none" stroke="#3fb950" stroke-width="3" stroke-linecap="round" stroke-linejoin="round">
|
|
39
|
+
<animate attributeName="stroke-dashoffset" from="400" to="0" dur="1.5s" fill="freeze"/>
|
|
40
|
+
<set attributeName="stroke-dasharray" to="400"/>
|
|
41
|
+
</polyline>
|
|
42
|
+
|
|
43
|
+
<!-- Data points -->
|
|
44
|
+
<circle cx="73" cy="116" r="6" fill="#0d1117" stroke="#3fb950" stroke-width="3">
|
|
45
|
+
<animate attributeName="r" from="0" to="6" dur="0.3s" begin="0.5s" fill="freeze"/>
|
|
46
|
+
</circle>
|
|
47
|
+
<circle cx="220" cy="134" r="6" fill="#0d1117" stroke="#f0883e" stroke-width="3">
|
|
48
|
+
<animate attributeName="r" from="0" to="6" dur="0.3s" begin="1s" fill="freeze"/>
|
|
49
|
+
</circle>
|
|
50
|
+
<circle cx="367" cy="8" r="6" fill="#0d1117" stroke="#3fb950" stroke-width="3">
|
|
51
|
+
<animate attributeName="r" from="0" to="6" dur="0.3s" begin="1.5s" fill="freeze"/>
|
|
52
|
+
</circle>
|
|
53
|
+
|
|
54
|
+
<!-- Value labels -->
|
|
55
|
+
<text x="73" y="106" text-anchor="middle" class="value" fill="#c9d1d9">552</text>
|
|
56
|
+
<text x="220" y="152" text-anchor="middle" class="value" fill="#f0883e">320</text>
|
|
57
|
+
<text x="367" y="-4" text-anchor="middle" class="value" fill="#3fb950">1,903</text>
|
|
58
|
+
|
|
59
|
+
<!-- X-axis labels -->
|
|
60
|
+
<text x="73" y="180" text-anchor="middle" class="label">Day 1</text>
|
|
61
|
+
<text x="73" y="194" text-anchor="middle" class="subtitle">May 15</text>
|
|
62
|
+
<text x="220" y="180" text-anchor="middle" class="label">Day 2</text>
|
|
63
|
+
<text x="220" y="194" text-anchor="middle" class="subtitle">May 16</text>
|
|
64
|
+
<text x="367" y="180" text-anchor="middle" class="label">Day 3</text>
|
|
65
|
+
<text x="367" y="194" text-anchor="middle" class="subtitle">May 17</text>
|
|
66
|
+
|
|
67
|
+
<!-- Annotations -->
|
|
68
|
+
<text x="147" y="105" text-anchor="middle" class="subtitle" fill="#f0883e">-42%</text>
|
|
69
|
+
<text x="293" y="60" text-anchor="middle" class="subtitle" fill="#3fb950">+495%</text>
|
|
70
|
+
</g>
|
|
71
|
+
|
|
72
|
+
<!-- Bottom stats -->
|
|
73
|
+
<text x="150" y="270" text-anchor="middle" class="value" fill="#3fb950">2,775 total</text>
|
|
74
|
+
<text x="300" y="270" text-anchor="middle" class="value" fill="#79c0ff">245% growth</text>
|
|
75
|
+
<text x="450" y="270" text-anchor="middle" class="value" fill="#d2a8ff">$0 budget</text>
|
|
76
|
+
</svg>
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 630" width="1200" height="630">
|
|
2
|
+
<defs>
|
|
3
|
+
<linearGradient id="bgGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
4
|
+
<stop offset="0%" style="stop-color:#0d1117"/>
|
|
5
|
+
<stop offset="40%" style="stop-color:#101822"/>
|
|
6
|
+
<stop offset="100%" style="stop-color:#0d1117"/>
|
|
7
|
+
</linearGradient>
|
|
8
|
+
<linearGradient id="accentGrad" x1="0%" y1="0%" x2="100%" y2="0%">
|
|
9
|
+
<stop offset="0%" style="stop-color:#58a6ff"/>
|
|
10
|
+
<stop offset="50%" style="stop-color:#a78bfa"/>
|
|
11
|
+
<stop offset="100%" style="stop-color:#2ea043"/>
|
|
12
|
+
</linearGradient>
|
|
13
|
+
<linearGradient id="greenPill" x1="0%" y1="0%" x2="100%" y2="0%">
|
|
14
|
+
<stop offset="0%" style="stop-color:#238636"/>
|
|
15
|
+
<stop offset="100%" style="stop-color:#2ea043"/>
|
|
16
|
+
</linearGradient>
|
|
17
|
+
<linearGradient id="bluePill" x1="0%" y1="0%" x2="100%" y2="0%">
|
|
18
|
+
<stop offset="0%" style="stop-color:#1f6feb"/>
|
|
19
|
+
<stop offset="100%" style="stop-color:#58a6ff"/>
|
|
20
|
+
</linearGradient>
|
|
21
|
+
<linearGradient id="purplePill" x1="0%" y1="0%" x2="100%" y2="0%">
|
|
22
|
+
<stop offset="0%" style="stop-color:#7c3aed"/>
|
|
23
|
+
<stop offset="100%" style="stop-color:#a78bfa"/>
|
|
24
|
+
</linearGradient>
|
|
25
|
+
<linearGradient id="growthArrow" x1="0%" y1="100%" x2="100%" y2="0%">
|
|
26
|
+
<stop offset="0%" style="stop-color:#238636"/>
|
|
27
|
+
<stop offset="100%" style="stop-color:#2ea043"/>
|
|
28
|
+
</linearGradient>
|
|
29
|
+
<filter id="glow">
|
|
30
|
+
<feGaussianBlur stdDeviation="4" result="blur"/>
|
|
31
|
+
<feMerge>
|
|
32
|
+
<feMergeNode in="blur"/>
|
|
33
|
+
<feMergeNode in="SourceGraphic"/>
|
|
34
|
+
</feMerge>
|
|
35
|
+
</filter>
|
|
36
|
+
<filter id="cardShadow" x="-5%" y="-5%" width="110%" height="115%">
|
|
37
|
+
<feDropShadow dx="0" dy="3" stdDeviation="6" flood-color="#000000" flood-opacity="0.4"/>
|
|
38
|
+
</filter>
|
|
39
|
+
</defs>
|
|
40
|
+
|
|
41
|
+
<!-- Background -->
|
|
42
|
+
<rect width="1200" height="630" fill="url(#bgGrad)"/>
|
|
43
|
+
|
|
44
|
+
<!-- Decorative grid -->
|
|
45
|
+
<g opacity="0.025">
|
|
46
|
+
<line x1="0" y1="0" x2="1200" y2="630" stroke="#58a6ff" stroke-width="1"/>
|
|
47
|
+
<line x1="1200" y1="0" x2="0" y2="630" stroke="#58a6ff" stroke-width="1"/>
|
|
48
|
+
<circle cx="600" cy="315" r="180" fill="none" stroke="#58a6ff" stroke-width="0.5"/>
|
|
49
|
+
<circle cx="600" cy="315" r="300" fill="none" stroke="#58a6ff" stroke-width="0.5"/>
|
|
50
|
+
</g>
|
|
51
|
+
|
|
52
|
+
<!-- Top accent line -->
|
|
53
|
+
<rect x="0" y="0" width="1200" height="4" fill="url(#accentGrad)"/>
|
|
54
|
+
<!-- Left accent line -->
|
|
55
|
+
<rect x="0" y="0" width="4" height="630" fill="url(#accentGrad)" opacity="0.6"/>
|
|
56
|
+
|
|
57
|
+
<!-- Shuffle emoji -->
|
|
58
|
+
<text x="90" y="108" font-size="56" opacity="0.85">🔀</text>
|
|
59
|
+
|
|
60
|
+
<!-- Main title -->
|
|
61
|
+
<text x="160" y="100" font-family="'SF Pro Display', -apple-system, 'Segoe UI', Helvetica, Arial, sans-serif" font-size="64" font-weight="800" fill="url(#accentGrad)" filter="url(#glow)">
|
|
62
|
+
A3M Router
|
|
63
|
+
</text>
|
|
64
|
+
|
|
65
|
+
<!-- Tagline -->
|
|
66
|
+
<text x="90" y="145" font-family="'SF Pro Text', -apple-system, 'Segoe UI', Helvetica, Arial, sans-serif" font-size="22" fill="#8b949e" font-weight="400">
|
|
67
|
+
Intelligent LLM routing · Drop-in OpenAI-compatible proxy
|
|
68
|
+
</text>
|
|
69
|
+
|
|
70
|
+
<!-- Day-by-day breakdown section -->
|
|
71
|
+
<g transform="translate(90, 185)">
|
|
72
|
+
<!-- Section label -->
|
|
73
|
+
<text x="0" y="12" font-family="'SF Pro Text', -apple-system, 'Segoe UI', Helvetica, Arial, sans-serif" font-size="12" fill="#484f58" font-weight="600" letter-spacing="2">
|
|
74
|
+
LAUNCH TRAJECTORY
|
|
75
|
+
</text>
|
|
76
|
+
|
|
77
|
+
<!-- Day cards -->
|
|
78
|
+
<!-- Day 1 -->
|
|
79
|
+
<g filter="url(#cardShadow)">
|
|
80
|
+
<rect x="0" y="30" width="300" height="100" rx="12" fill="#161b22" stroke="#30363d" stroke-width="1.5"/>
|
|
81
|
+
<rect x="0" y="30" width="300" height="3" rx="1.5" fill="url(#greenPill)"/>
|
|
82
|
+
<text x="24" y="68" font-family="'SF Pro Text', -apple-system, 'Segoe UI', Helvetica, Arial, sans-serif" font-size="13" fill="#484f58" font-weight="600">DAY 1</text>
|
|
83
|
+
<text x="24" y="110" font-family="'SF Mono', 'Fira Code', 'Consolas', monospace" font-size="40" font-weight="800" fill="#2ea043">552</text>
|
|
84
|
+
<text x="160" y="110" font-family="'SF Pro Text', -apple-system, 'Segoe UI', Helvetica, Arial, sans-serif" font-size="13" fill="#484f58">downloads</text>
|
|
85
|
+
</g>
|
|
86
|
+
|
|
87
|
+
<!-- Arrow between Day 1 and Day 2 -->
|
|
88
|
+
<g transform="translate(316, 60)">
|
|
89
|
+
<polygon points="0,20 16,35 0,50" fill="#30363d"/>
|
|
90
|
+
</g>
|
|
91
|
+
|
|
92
|
+
<!-- Day 2 -->
|
|
93
|
+
<g filter="url(#cardShadow)">
|
|
94
|
+
<rect x="345" y="30" width="300" height="100" rx="12" fill="#161b22" stroke="#30363d" stroke-width="1.5"/>
|
|
95
|
+
<rect x="345" y="30" width="300" height="3" rx="1.5" fill="url(#bluePill)"/>
|
|
96
|
+
<text x="369" y="68" font-family="'SF Pro Text', -apple-system, 'Segoe UI', Helvetica, Arial, sans-serif" font-size="13" fill="#484f58" font-weight="600">DAY 2</text>
|
|
97
|
+
<text x="369" y="110" font-family="'SF Mono', 'Fira Code', 'Consolas', monospace" font-size="40" font-weight="800" fill="#58a6ff">320</text>
|
|
98
|
+
<text x="505" y="110" font-family="'SF Pro Text', -apple-system, 'Segoe UI', Helvetica, Arial, sans-serif" font-size="13" fill="#484f58">downloads</text>
|
|
99
|
+
</g>
|
|
100
|
+
|
|
101
|
+
<!-- Arrow between Day 2 and Day 3 -->
|
|
102
|
+
<g transform="translate(661, 55)">
|
|
103
|
+
<polygon points="0,15 18,35 0,55" fill="#2ea043"/>
|
|
104
|
+
</g>
|
|
105
|
+
|
|
106
|
+
<!-- Day 3 (highlighted) -->
|
|
107
|
+
<g filter="url(#cardShadow)">
|
|
108
|
+
<rect x="690" y="30" width="320" height="100" rx="12" fill="#161b22" stroke="#2ea043" stroke-width="2"/>
|
|
109
|
+
<rect x="690" y="30" width="320" height="3" rx="1.5" fill="url(#greenPill)"/>
|
|
110
|
+
<!-- Glow badge -->
|
|
111
|
+
<rect x="910" y="42" width="84" height="22" rx="11" fill="#238636" opacity="0.2"/>
|
|
112
|
+
<text x="952" y="57" font-family="'SF Pro Text', -apple-system, 'Segoe UI', Helvetica, Arial, sans-serif" font-size="11" fill="#2ea043" text-anchor="middle" font-weight="700">+494%</text>
|
|
113
|
+
<text x="714" y="68" font-family="'SF Pro Text', -apple-system, 'Segoe UI', Helvetica, Arial, sans-serif" font-size="13" fill="#484f58" font-weight="600">DAY 3</text>
|
|
114
|
+
<text x="714" y="110" font-family="'SF Mono', 'Fira Code', 'Consolas', monospace" font-size="40" font-weight="800" fill="#2ea043">1,903</text>
|
|
115
|
+
<text x="878" y="110" font-family="'SF Pro Text', -apple-system, 'Segoe UI', Helvetica, Arial, sans-serif" font-size="13" fill="#484f58">downloads</text>
|
|
116
|
+
</g>
|
|
117
|
+
</g>
|
|
118
|
+
|
|
119
|
+
<!-- Growth highlight banner -->
|
|
120
|
+
<g transform="translate(90, 355)">
|
|
121
|
+
<rect x="0" y="0" width="1020" height="60" rx="12" fill="#161b22" stroke="#30363d" stroke-width="1"/>
|
|
122
|
+
<rect x="0" y="0" width="6" height="60" rx="3" fill="url(#accentGrad)"/>
|
|
123
|
+
<text x="510" y="28" font-family="'SF Pro Display', -apple-system, 'Segoe UI', Helvetica, Arial, sans-serif" font-size="22" fill="#c9d1d9" text-anchor="middle" font-weight="700">
|
|
124
|
+
245% growth. Zero budget.
|
|
125
|
+
</text>
|
|
126
|
+
<text x="510" y="48" font-family="'SF Pro Text', -apple-system, 'Segoe UI', Helvetica, Arial, sans-serif" font-size="13" fill="#484f58" text-anchor="middle">
|
|
127
|
+
2,775 total downloads · 39 providers · 100% organic
|
|
128
|
+
</text>
|
|
129
|
+
</g>
|
|
130
|
+
|
|
131
|
+
<!-- Bottom section -->
|
|
132
|
+
<g transform="translate(90, 445)">
|
|
133
|
+
<!-- npm install box -->
|
|
134
|
+
<rect x="0" y="0" width="520" height="52" rx="10" fill="#161b22" stroke="#30363d" stroke-width="1.5"/>
|
|
135
|
+
<circle cx="26" cy="26" r="6" fill="#238636"/>
|
|
136
|
+
<circle cx="26" cy="26" r="3" fill="#0d1117"/>
|
|
137
|
+
<text x="46" y="32" font-family="'SF Mono', 'Fira Code', 'Consolas', monospace" font-size="16" fill="#c9d1d9" font-weight="500">
|
|
138
|
+
$ npm install adaptive-memory-router
|
|
139
|
+
</text>
|
|
140
|
+
|
|
141
|
+
<!-- GitHub link -->
|
|
142
|
+
<rect x="560" y="0" width="460" height="52" rx="10" fill="#161b22" stroke="#30363d" stroke-width="1.5"/>
|
|
143
|
+
<text x="580" y="22" font-family="'SF Pro Text', -apple-system, 'Segoe UI', Helvetica, Arial, sans-serif" font-size="11" fill="#484f58" font-weight="600" letter-spacing="1">
|
|
144
|
+
GITHUB
|
|
145
|
+
</text>
|
|
146
|
+
<text x="580" y="42" font-family="'SF Mono', 'Fira Code', 'Consolas', monospace" font-size="15" fill="#58a6ff" font-weight="500">
|
|
147
|
+
github.com/Das-rebel/adaptive-memory-router
|
|
148
|
+
</text>
|
|
149
|
+
</g>
|
|
150
|
+
|
|
151
|
+
<!-- Provider strip at very bottom -->
|
|
152
|
+
<g transform="translate(0, 530)">
|
|
153
|
+
<rect x="0" y="0" width="1200" height="100" fill="#080b10"/>
|
|
154
|
+
<rect x="0" y="0" width="1200" height="1" fill="#21262d"/>
|
|
155
|
+
|
|
156
|
+
<!-- Mini provider badges -->
|
|
157
|
+
<g transform="translate(90, 24)">
|
|
158
|
+
<rect x="0" y="0" width="80" height="28" rx="14" fill="#1a1f27" stroke="#30363d" stroke-width="0.5"/>
|
|
159
|
+
<text x="40" y="19" font-family="'SF Pro Text', -apple-system, 'Segoe UI', Helvetica, Arial, sans-serif" font-size="11" fill="#8b949e" text-anchor="middle" font-weight="600">OpenAI</text>
|
|
160
|
+
|
|
161
|
+
<rect x="96" y="0" width="95" height="28" rx="14" fill="#1a1f27" stroke="#30363d" stroke-width="0.5"/>
|
|
162
|
+
<text x="143" y="19" font-family="'SF Pro Text', -apple-system, 'Segoe UI', Helvetica, Arial, sans-serif" font-size="11" fill="#8b949e" text-anchor="middle" font-weight="600">Anthropic</text>
|
|
163
|
+
|
|
164
|
+
<rect x="207" y="0" width="68" height="28" rx="14" fill="#1a1f27" stroke="#30363d" stroke-width="0.5"/>
|
|
165
|
+
<text x="241" y="19" font-family="'SF Pro Text', -apple-system, 'Segoe UI', Helvetica, Arial, sans-serif" font-size="11" fill="#8b949e" text-anchor="middle" font-weight="600">Groq</text>
|
|
166
|
+
|
|
167
|
+
<rect x="289" y="0" width="88" height="28" rx="14" fill="#1a1f27" stroke="#30363d" stroke-width="0.5"/>
|
|
168
|
+
<text x="333" y="19" font-family="'SF Pro Text', -apple-system, 'Segoe UI', Helvetica, Arial, sans-serif" font-size="11" fill="#8b949e" text-anchor="middle" font-weight="600">Cerebras</text>
|
|
169
|
+
|
|
170
|
+
<rect x="391" y="0" width="78" height="28" rx="14" fill="#1a1f27" stroke="#30363d" stroke-width="0.5"/>
|
|
171
|
+
<text x="430" y="19" font-family="'SF Pro Text', -apple-system, 'Segoe UI', Helvetica, Arial, sans-serif" font-size="11" fill="#8b949e" text-anchor="middle" font-weight="600">Mistral</text>
|
|
172
|
+
|
|
173
|
+
<rect x="483" y="0" width="92" height="28" rx="14" fill="#1a1f27" stroke="#30363d" stroke-width="0.5"/>
|
|
174
|
+
<text x="529" y="19" font-family="'SF Pro Text', -apple-system, 'Segoe UI', Helvetica, Arial, sans-serif" font-size="11" fill="#8b949e" text-anchor="middle" font-weight="600">DeepSeek</text>
|
|
175
|
+
|
|
176
|
+
<rect x="589" y="0" width="76" height="28" rx="14" fill="#1a1f27" stroke="#30363d" stroke-width="0.5"/>
|
|
177
|
+
<text x="627" y="19" font-family="'SF Pro Text', -apple-system, 'Segoe UI', Helvetica, Arial, sans-serif" font-size="11" fill="#8b949e" text-anchor="middle" font-weight="600">Ollama</text>
|
|
178
|
+
|
|
179
|
+
<rect x="680" y="0" width="76" height="28" rx="14" fill="#1a1f27" stroke="#30363d" stroke-width="0.5"/>
|
|
180
|
+
<text x="718" y="19" font-family="'SF Pro Text', -apple-system, 'Segoe UI', Helvetica, Arial, sans-serif" font-size="11" fill="#8b949e" text-anchor="middle" font-weight="600">Gemini</text>
|
|
181
|
+
|
|
182
|
+
<rect x="770" y="0" width="62" height="28" rx="14" fill="#1a1f27" stroke="#30363d" stroke-width="0.5"/>
|
|
183
|
+
<text x="801" y="19" font-family="'SF Pro Text', -apple-system, 'Segoe UI', Helvetica, Arial, sans-serif" font-size="11" fill="#8b949e" text-anchor="middle" font-weight="600">SGLang</text>
|
|
184
|
+
|
|
185
|
+
<rect x="846" y="0" width="86" height="28" rx="14" fill="none" stroke="#30363d" stroke-width="0.5" stroke-dasharray="3 2"/>
|
|
186
|
+
<text x="889" y="19" font-family="'SF Pro Text', -apple-system, 'Segoe UI', Helvetica, Arial, sans-serif" font-size="11" fill="#484f58" text-anchor="middle" font-weight="500">+30 more</text>
|
|
187
|
+
</g>
|
|
188
|
+
|
|
189
|
+
<!-- Bottom tagline -->
|
|
190
|
+
<text x="600" y="75" font-family="'SF Pro Text', -apple-system, 'Segoe UI', Helvetica, Arial, sans-serif" font-size="11" fill="#30363d" text-anchor="middle" letter-spacing="3" font-weight="500">
|
|
191
|
+
ONE API KEY · EVERY PROVIDER · ZERO LOCK-IN
|
|
192
|
+
</text>
|
|
193
|
+
</g>
|
|
194
|
+
</svg>
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 640" width="1280" height="640">
|
|
2
|
+
<defs>
|
|
3
|
+
<!-- Background gradient -->
|
|
4
|
+
<linearGradient id="bgGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
5
|
+
<stop offset="0%" style="stop-color:#0d1117"/>
|
|
6
|
+
<stop offset="50%" style="stop-color:#111820"/>
|
|
7
|
+
<stop offset="100%" style="stop-color:#0d1117"/>
|
|
8
|
+
</linearGradient>
|
|
9
|
+
<!-- Green accent gradient -->
|
|
10
|
+
<linearGradient id="greenGrad" x1="0%" y1="0%" x2="100%" y2="0%">
|
|
11
|
+
<stop offset="0%" style="stop-color:#238636"/>
|
|
12
|
+
<stop offset="100%" style="stop-color:#2ea043"/>
|
|
13
|
+
</linearGradient>
|
|
14
|
+
<!-- Blue accent gradient -->
|
|
15
|
+
<linearGradient id="blueGrad" x1="0%" y1="0%" x2="100%" y2="0%">
|
|
16
|
+
<stop offset="0%" style="stop-color:#1f6feb"/>
|
|
17
|
+
<stop offset="100%" style="stop-color:#58a6ff"/>
|
|
18
|
+
</linearGradient>
|
|
19
|
+
<!-- Purple accent gradient -->
|
|
20
|
+
<linearGradient id="purpleGrad" x1="0%" y1="0%" x2="100%" y2="0%">
|
|
21
|
+
<stop offset="0%" style="stop-color:#8b5cf6"/>
|
|
22
|
+
<stop offset="100%" style="stop-color:#a78bfa"/>
|
|
23
|
+
</linearGradient>
|
|
24
|
+
<!-- Title gradient -->
|
|
25
|
+
<linearGradient id="titleGrad" x1="0%" y1="0%" x2="100%" y2="0%">
|
|
26
|
+
<stop offset="0%" style="stop-color:#58a6ff"/>
|
|
27
|
+
<stop offset="40%" style="stop-color:#a78bfa"/>
|
|
28
|
+
<stop offset="100%" style="stop-color:#2ea043"/>
|
|
29
|
+
</linearGradient>
|
|
30
|
+
<!-- Glow filter -->
|
|
31
|
+
<filter id="glow">
|
|
32
|
+
<feGaussianBlur stdDeviation="3" result="blur"/>
|
|
33
|
+
<feMerge>
|
|
34
|
+
<feMergeNode in="blur"/>
|
|
35
|
+
<feMergeNode in="SourceGraphic"/>
|
|
36
|
+
</feMerge>
|
|
37
|
+
</filter>
|
|
38
|
+
<!-- Subtle shadow for cards -->
|
|
39
|
+
<filter id="cardShadow" x="-5%" y="-5%" width="110%" height="115%">
|
|
40
|
+
<feDropShadow dx="0" dy="4" stdDeviation="8" flood-color="#000000" flood-opacity="0.3"/>
|
|
41
|
+
</filter>
|
|
42
|
+
<!-- Emoji glow -->
|
|
43
|
+
<filter id="emojiGlow" x="-20%" y="-20%" width="140%" height="140%">
|
|
44
|
+
<feGaussianBlur stdDeviation="6" result="blur"/>
|
|
45
|
+
<feMerge>
|
|
46
|
+
<feMergeNode in="blur"/>
|
|
47
|
+
<feMergeNode in="SourceGraphic"/>
|
|
48
|
+
</feMerge>
|
|
49
|
+
</filter>
|
|
50
|
+
</defs>
|
|
51
|
+
|
|
52
|
+
<!-- Background -->
|
|
53
|
+
<rect width="1280" height="640" fill="url(#bgGrad)" rx="0"/>
|
|
54
|
+
|
|
55
|
+
<!-- Subtle grid pattern -->
|
|
56
|
+
<g opacity="0.03">
|
|
57
|
+
<line x1="0" y1="0" x2="1280" y2="640" stroke="#58a6ff" stroke-width="1"/>
|
|
58
|
+
<line x1="1280" y1="0" x2="0" y2="640" stroke="#58a6ff" stroke-width="1"/>
|
|
59
|
+
<line x1="640" y1="0" x2="640" y2="640" stroke="#58a6ff" stroke-width="0.5"/>
|
|
60
|
+
<line x1="0" y1="320" x2="1280" y2="320" stroke="#58a6ff" stroke-width="0.5"/>
|
|
61
|
+
<circle cx="640" cy="320" r="200" fill="none" stroke="#58a6ff" stroke-width="0.5"/>
|
|
62
|
+
<circle cx="640" cy="320" r="350" fill="none" stroke="#58a6ff" stroke-width="0.5"/>
|
|
63
|
+
</g>
|
|
64
|
+
|
|
65
|
+
<!-- Decorative accent lines -->
|
|
66
|
+
<rect x="0" y="0" width="6" height="640" fill="url(#titleGrad)" opacity="0.8"/>
|
|
67
|
+
<rect x="1274" y="0" width="6" height="640" fill="url(#titleGrad)" opacity="0.4"/>
|
|
68
|
+
|
|
69
|
+
<!-- Top decorative bar -->
|
|
70
|
+
<rect x="80" y="28" width="1120" height="2" fill="url(#titleGrad)" opacity="0.3" rx="1"/>
|
|
71
|
+
|
|
72
|
+
<!-- Emoji shuffle icon -->
|
|
73
|
+
<text x="120" y="130" font-size="72" filter="url(#emojiGlow)" opacity="0.9">🔀</text>
|
|
74
|
+
|
|
75
|
+
<!-- Main title -->
|
|
76
|
+
<text x="200" y="122" font-family="'SF Pro Display', -apple-system, 'Segoe UI', Helvetica, Arial, sans-serif" font-size="72" font-weight="800" fill="url(#titleGrad)" filter="url(#glow)">
|
|
77
|
+
A3M Router
|
|
78
|
+
</text>
|
|
79
|
+
|
|
80
|
+
<!-- Subtitle -->
|
|
81
|
+
<text x="120" y="170" font-family="'SF Pro Text', -apple-system, 'Segoe UI', Helvetica, Arial, sans-serif" font-size="24" fill="#8b949e" font-weight="400">
|
|
82
|
+
Drop-in OpenAI proxy · 39 providers · 245% growth in 3 days
|
|
83
|
+
</text>
|
|
84
|
+
|
|
85
|
+
<!-- Stat cards row -->
|
|
86
|
+
<!-- Card 1: Downloads -->
|
|
87
|
+
<g filter="url(#cardShadow)">
|
|
88
|
+
<rect x="120" y="210" width="320" height="160" rx="16" fill="#161b22" stroke="#238636" stroke-width="2" opacity="0.95"/>
|
|
89
|
+
<rect x="120" y="210" width="320" height="4" rx="2" fill="url(#greenGrad)"/>
|
|
90
|
+
<text x="280" y="268" font-family="'SF Mono', 'Fira Code', 'Consolas', monospace" font-size="52" font-weight="800" fill="#2ea043" text-anchor="middle">
|
|
91
|
+
2,775
|
|
92
|
+
</text>
|
|
93
|
+
<text x="280" y="305" font-family="'SF Pro Text', -apple-system, 'Segoe UI', Helvetica, Arial, sans-serif" font-size="16" fill="#8b949e" text-anchor="middle" font-weight="500">
|
|
94
|
+
npm downloads
|
|
95
|
+
</text>
|
|
96
|
+
<text x="280" y="340" font-family="'SF Pro Text', -apple-system, 'Segoe UI', Helvetica, Arial, sans-serif" font-size="13" fill="#484f58" text-anchor="middle">
|
|
97
|
+
in first 3 days
|
|
98
|
+
</text>
|
|
99
|
+
</g>
|
|
100
|
+
|
|
101
|
+
<!-- Card 2: Growth -->
|
|
102
|
+
<g filter="url(#cardShadow)">
|
|
103
|
+
<rect x="480" y="210" width="320" height="160" rx="16" fill="#161b22" stroke="#1f6feb" stroke-width="2" opacity="0.95"/>
|
|
104
|
+
<rect x="480" y="210" width="320" height="4" rx="2" fill="url(#blueGrad)"/>
|
|
105
|
+
<text x="640" y="268" font-family="'SF Mono', 'Fira Code', 'Consolas', monospace" font-size="52" font-weight="800" fill="#58a6ff" text-anchor="middle">
|
|
106
|
+
245%
|
|
107
|
+
</text>
|
|
108
|
+
<text x="640" y="305" font-family="'SF Pro Text', -apple-system, 'Segoe UI', Helvetica, Arial, sans-serif" font-size="16" fill="#8b949e" text-anchor="middle" font-weight="500">
|
|
109
|
+
day-over-day growth
|
|
110
|
+
</text>
|
|
111
|
+
<text x="640" y="340" font-family="'SF Pro Text', -apple-system, 'Segoe UI', Helvetica, Arial, sans-serif" font-size="13" fill="#484f58" text-anchor="middle">
|
|
112
|
+
organic, no marketing
|
|
113
|
+
</text>
|
|
114
|
+
</g>
|
|
115
|
+
|
|
116
|
+
<!-- Card 3: Budget -->
|
|
117
|
+
<g filter="url(#cardShadow)">
|
|
118
|
+
<rect x="840" y="210" width="320" height="160" rx="16" fill="#161b22" stroke="#8b5cf6" stroke-width="2" opacity="0.95"/>
|
|
119
|
+
<rect x="840" y="210" width="320" height="4" rx="2" fill="url(#purpleGrad)"/>
|
|
120
|
+
<text x="1000" y="268" font-family="'SF Mono', 'Fira Code', 'Consolas', monospace" font-size="52" font-weight="800" fill="#a78bfa" text-anchor="middle">
|
|
121
|
+
$0
|
|
122
|
+
</text>
|
|
123
|
+
<text x="1000" y="305" font-family="'SF Pro Text', -apple-system, 'Segoe UI', Helvetica, Arial, sans-serif" font-size="16" fill="#8b949e" text-anchor="middle" font-weight="500">
|
|
124
|
+
marketing budget
|
|
125
|
+
</text>
|
|
126
|
+
<text x="1000" y="340" font-family="'SF Pro Text', -apple-system, 'Segoe UI', Helvetica, Arial, sans-serif" font-size="13" fill="#484f58" text-anchor="middle">
|
|
127
|
+
100% community driven
|
|
128
|
+
</text>
|
|
129
|
+
</g>
|
|
130
|
+
|
|
131
|
+
<!-- Provider logos row -->
|
|
132
|
+
<g transform="translate(0, 420)">
|
|
133
|
+
<text x="640" y="10" font-family="'SF Pro Text', -apple-system, 'Segoe UI', Helvetica, Arial, sans-serif" font-size="12" fill="#484f58" text-anchor="middle" letter-spacing="3" font-weight="600">
|
|
134
|
+
SUPPORTED PROVIDERS
|
|
135
|
+
</text>
|
|
136
|
+
|
|
137
|
+
<!-- Provider pills -->
|
|
138
|
+
<!-- OpenAI -->
|
|
139
|
+
<rect x="68" y="26" width="130" height="38" rx="19" fill="#1a1f27" stroke="#30363d" stroke-width="1"/>
|
|
140
|
+
<circle cx="95" cy="45" r="8" fill="#10a37f"/>
|
|
141
|
+
<text x="108" y="51" font-family="'SF Pro Text', -apple-system, 'Segoe UI', Helvetica, Arial, sans-serif" font-size="14" fill="#c9d1d9" font-weight="600">OpenAI</text>
|
|
142
|
+
|
|
143
|
+
<!-- Anthropic -->
|
|
144
|
+
<rect x="218" y="26" width="140" height="38" rx="19" fill="#1a1f27" stroke="#30363d" stroke-width="1"/>
|
|
145
|
+
<circle cx="248" cy="45" r="8" fill="#d4a574"/>
|
|
146
|
+
<text x="262" y="51" font-family="'SF Pro Text', -apple-system, 'Segoe UI', Helvetica, Arial, sans-serif" font-size="14" fill="#c9d1d9" font-weight="600">Anthropic</text>
|
|
147
|
+
|
|
148
|
+
<!-- Groq -->
|
|
149
|
+
<rect x="378" y="26" width="110" height="38" rx="19" fill="#1a1f27" stroke="#30363d" stroke-width="1"/>
|
|
150
|
+
<circle cx="405" cy="45" r="8" fill="#f55036"/>
|
|
151
|
+
<text x="418" y="51" font-family="'SF Pro Text', -apple-system, 'Segoe UI', Helvetica, Arial, sans-serif" font-size="14" fill="#c9d1d9" font-weight="600">Groq</text>
|
|
152
|
+
|
|
153
|
+
<!-- Cerebras -->
|
|
154
|
+
<rect x="508" y="26" width="130" height="38" rx="19" fill="#1a1f27" stroke="#30363d" stroke-width="1"/>
|
|
155
|
+
<circle cx="538" cy="45" r="8" fill="#7c3aed"/>
|
|
156
|
+
<text x="552" y="51" font-family="'SF Pro Text', -apple-system, 'Segoe UI', Helvetica, Arial, sans-serif" font-size="14" fill="#c9d1d9" font-weight="600">Cerebras</text>
|
|
157
|
+
|
|
158
|
+
<!-- Mistral -->
|
|
159
|
+
<rect x="658" y="26" width="120" height="38" rx="19" fill="#1a1f27" stroke="#30363d" stroke-width="1"/>
|
|
160
|
+
<circle cx="685" cy="45" r="8" fill="#ff7000"/>
|
|
161
|
+
<text x="698" y="51" font-family="'SF Pro Text', -apple-system, 'Segoe UI', Helvetica, Arial, sans-serif" font-size="14" fill="#c9d1d9" font-weight="600">Mistral</text>
|
|
162
|
+
|
|
163
|
+
<!-- DeepSeek -->
|
|
164
|
+
<rect x="798" y="26" width="140" height="38" rx="19" fill="#1a1f27" stroke="#30363d" stroke-width="1"/>
|
|
165
|
+
<circle cx="828" cy="45" r="8" fill="#4d6bfe"/>
|
|
166
|
+
<text x="842" y="51" font-family="'SF Pro Text', -apple-system, 'Segoe UI', Helvetica, Arial, sans-serif" font-size="14" fill="#c9d1d9" font-weight="600">DeepSeek</text>
|
|
167
|
+
|
|
168
|
+
<!-- Ollama -->
|
|
169
|
+
<rect x="958" y="26" width="120" height="38" rx="19" fill="#1a1f27" stroke="#30363d" stroke-width="1"/>
|
|
170
|
+
<circle cx="985" cy="45" r="8" fill="#6366f1"/>
|
|
171
|
+
<text x="998" y="51" font-family="'SF Pro Text', -apple-system, 'Segoe UI', Helvetica, Arial, sans-serif" font-size="14" fill="#c9d1d9" font-weight="600">Ollama</text>
|
|
172
|
+
|
|
173
|
+
<!-- +32 more -->
|
|
174
|
+
<rect x="1098" y="26" width="110" height="38" rx="19" fill="none" stroke="#30363d" stroke-width="1" stroke-dasharray="4 3"/>
|
|
175
|
+
<text x="1153" y="51" font-family="'SF Pro Text', -apple-system, 'Segoe UI', Helvetica, Arial, sans-serif" font-size="13" fill="#484f58" text-anchor="middle" font-weight="500">+32 more</text>
|
|
176
|
+
</g>
|
|
177
|
+
|
|
178
|
+
<!-- Bottom bar -->
|
|
179
|
+
<rect x="80" y="530" width="1120" height="1" fill="#21262d" rx="0.5"/>
|
|
180
|
+
|
|
181
|
+
<!-- Bottom tagline -->
|
|
182
|
+
<text x="640" y="570" font-family="'SF Mono', 'Fira Code', 'Consolas', monospace" font-size="15" fill="#484f58" text-anchor="middle">
|
|
183
|
+
$ npx adaptive-memory-router --provider auto
|
|
184
|
+
</text>
|
|
185
|
+
|
|
186
|
+
<!-- Bottom right badge -->
|
|
187
|
+
<rect x="1020" y="585" width="180" height="30" rx="15" fill="#161b22" stroke="#30363d" stroke-width="1"/>
|
|
188
|
+
<text x="1110" y="605" font-family="'SF Pro Text', -apple-system, 'Segoe UI', Helvetica, Arial, sans-serif" font-size="12" fill="#8b949e" text-anchor="middle" font-weight="500">
|
|
189
|
+
github.com/Das-rebel
|
|
190
|
+
</text>
|
|
191
|
+
|
|
192
|
+
<!-- Bottom decorative bar -->
|
|
193
|
+
<rect x="80" y="610" width="1120" height="2" fill="url(#titleGrad)" opacity="0.3" rx="1"/>
|
|
194
|
+
</svg>
|