adaptive-memory-multi-model-router 2.12.0 → 2.12.2

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 (80) hide show
  1. package/.env +2 -0
  2. package/.github/ISSUE_TEMPLATE/bug_report.md +13 -40
  3. package/.github/ISSUE_TEMPLATE/feature_request.md +10 -27
  4. package/.github/workflows/ci.yml +8 -49
  5. package/.github/workflows/pages.yml +37 -0
  6. package/Awesome-LLM/LICENSE.md +121 -0
  7. package/Awesome-LLM/README.md +625 -0
  8. package/Awesome-LLM/contributing.md +24 -0
  9. package/Awesome-LLM/paper_list/RLHF.md +1 -0
  10. package/Awesome-LLM/paper_list/Retrieval_Augmented_Generation.md +6 -0
  11. package/Awesome-LLM/paper_list/acceleration.md +10 -0
  12. package/Awesome-LLM/paper_list/alignment.md +20 -0
  13. package/Awesome-LLM/paper_list/application.md +19 -0
  14. package/Awesome-LLM/paper_list/augmentation.md +14 -0
  15. package/Awesome-LLM/paper_list/chain_of_thougt.md +16 -0
  16. package/Awesome-LLM/paper_list/code_pretraining.md +0 -0
  17. package/Awesome-LLM/paper_list/detection.md +11 -0
  18. package/Awesome-LLM/paper_list/evaluation.md +64 -0
  19. package/Awesome-LLM/paper_list/in_context_learning.md +4 -0
  20. package/Awesome-LLM/paper_list/instruction-tuning.md +35 -0
  21. package/Awesome-LLM/paper_list/moe.md +0 -0
  22. package/Awesome-LLM/paper_list/prompt_learning.md +15 -0
  23. package/Awesome-LLM/resources/DeepSpeed_light.svg +27 -0
  24. package/Awesome-LLM/resources/alpa-logo-cropped.png +0 -0
  25. package/Awesome-LLM/resources/colossal-ai_logo_vertical.png +0 -0
  26. package/Awesome-LLM/resources/creepy_llm.jpeg +0 -0
  27. package/Awesome-LLM/resources/image8.gif +0 -0
  28. package/Awesome-LLM/resources/jax_logo_250px.png +0 -0
  29. package/Awesome-LLM/resources/logo.png +0 -0
  30. package/Awesome-LLM/resources/nvidia.png +0 -0
  31. package/Awesome-LLM/resources/tensorflow.png +0 -0
  32. package/Awesome-LLM/resources//345/244/247/345/236/213/350/257/255/350/250/200/346/250/241/345/236/213/347/232/204/350/203/275/345/212/233/345/210/206/346/236/220/344/270/216/345/272/224/347/224/250 - 30min.pdf +0 -0
  33. package/README.md +5 -4
  34. package/SUBMISSIONS.md +43 -0
  35. package/assets/chart-cost-v2.svg +91 -0
  36. package/assets/chart-cost-v3.svg +143 -0
  37. package/assets/chart-features-v2.svg +132 -0
  38. package/assets/chart-features-v3.svg +211 -0
  39. package/assets/chart-growth-v2.svg +122 -0
  40. package/assets/chart-growth-v3.svg +189 -0
  41. package/assets/cost-simple.svg +64 -0
  42. package/assets/growth-simple.svg +69 -0
  43. package/assets/hero-diagram.svg +81 -0
  44. package/assets/logo-new.svg +21 -0
  45. package/assets/social-preview-new.svg +100 -0
  46. package/assets/social-v2.svg +130 -0
  47. package/assets/social-v3.svg +212 -0
  48. package/awesome-ai-gateways/CONTRIBUTING.md +49 -0
  49. package/awesome-ai-gateways/LICENSE +3 -0
  50. package/awesome-ai-gateways/README.md +190 -0
  51. package/awesome-selfhosted/.github/ISSUE_TEMPLATE/config.yml +5 -0
  52. package/awesome-selfhosted/.github/PULL_REQUEST_TEMPLATE.md +1 -0
  53. package/awesome-selfhosted/LICENSE +376 -0
  54. package/awesome-selfhosted/README.md +2303 -0
  55. package/awesome-selfhosted/_static/awesome.png +0 -0
  56. package/awesome-selfhosted/non-free.md +377 -0
  57. package/demo-new.tape +71 -0
  58. package/demo-real.sh +198 -0
  59. package/demo-simple.tape +205 -0
  60. package/demo.html +520 -0
  61. package/demo.tape +259 -0
  62. package/dist/cli/setupWizard.d.ts +136 -0
  63. package/dist/cli/setupWizard.js +142 -165
  64. package/dist/cli/setupWizard.js.map +1 -0
  65. package/dist/cli/tui.js +152 -0
  66. package/dist/providers/providerConfig.js +28 -1
  67. package/dist/providers/providerConfig.js.map +1 -1
  68. package/dist/server/proxyServer.js +15 -0
  69. package/docs/QUICK_START.md +43 -0
  70. package/docs/USE_CASES.md +59 -0
  71. package/docs/demo-auto.html +264 -0
  72. package/docs/demo.html +416 -0
  73. package/docs/index.html +112 -599
  74. package/index.html +667 -0
  75. package/package.json +26 -169
  76. package/src/providers/providerConfig.ts +29 -1
  77. package/docs/assets/cost-comparison.svg +0 -134
  78. package/docs/assets/growth-chart-animated.svg +0 -76
  79. package/docs/assets/og-banner.svg +0 -194
  80. package/docs/assets/social-preview.svg +0 -194
@@ -1,134 +0,0 @@
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>
@@ -1,76 +0,0 @@
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>
@@ -1,194 +0,0 @@
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>
@@ -1,194 +0,0 @@
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>