adaptive-memory-multi-model-router 2.14.60 → 2.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (146) hide show
  1. package/.github/ISSUE_TEMPLATE/checklist.md +35 -0
  2. package/.github/workflows/ci.yml +9 -6
  3. package/POPULARITY_BOOSTERS.md +18 -0
  4. package/README.md +222 -1039
  5. package/assets/chart-accuracy-by-tier.svg +63 -0
  6. package/assets/chart-confusion-matrix.svg +98 -0
  7. package/assets/chart-cost-comparison.svg +66 -0
  8. package/assets/chart-latency-overhead.svg +102 -0
  9. package/assets/chart-routerena-leaderboard.svg +76 -0
  10. package/dist/analytics/costAnalytics.d.ts +1 -0
  11. package/dist/benchmark/comprehensive.d.ts +4 -53
  12. package/dist/benchmark/comprehensive.d.ts.map +1 -0
  13. package/dist/benchmark/comprehensive.js +112 -214
  14. package/dist/benchmark/comprehensive.js.map +1 -1
  15. package/dist/benchmark/reproducible.d.ts +1 -0
  16. package/dist/cache/semanticCache.d.ts +1 -0
  17. package/dist/cli/setupWizard.d.ts +6 -1
  18. package/dist/cli/setupWizard.d.ts.map +1 -1
  19. package/dist/cli/setupWizard.js +6 -9
  20. package/dist/cli/setupWizard.js.map +1 -1
  21. package/dist/cli.js +15 -14
  22. package/dist/cost/budgetEnforcer.d.ts +1 -0
  23. package/dist/cost/costTracker.d.ts +1 -0
  24. package/dist/ensemble/multiRoundDialog.d.ts +1 -0
  25. package/dist/ensemble/multiRoundDialog.d.ts.map +1 -0
  26. package/dist/ensemble/shapleyValue.d.ts +1 -0
  27. package/dist/ensemble/shapleyValue.d.ts.map +1 -0
  28. package/dist/ensemble.d.ts +1 -0
  29. package/dist/index.d.ts +1 -0
  30. package/dist/integrations/langchainAdapter.d.ts +1 -0
  31. package/dist/integrations/oauth.d.ts +1 -0
  32. package/dist/integrations/scienceAdapter.d.ts +1 -0
  33. package/dist/integrations/scienceAdapter.d.ts.map +1 -0
  34. package/dist/memory/autoFetch.d.ts +1 -0
  35. package/dist/memory/hybridMemory.d.ts +1 -0
  36. package/dist/memory/hybridMemory.d.ts.map +1 -0
  37. package/dist/memory/memoryTree.d.ts +1 -0
  38. package/dist/memory/memoryTree.d.ts.map +1 -1
  39. package/dist/memory/obsidianVault.d.ts +1 -0
  40. package/dist/memory/obsidianVault.d.ts.map +1 -1
  41. package/dist/memory/reasoningBank.d.ts +1 -0
  42. package/dist/memory/reasoningBank.d.ts.map +1 -0
  43. package/dist/observability/changeWatch.d.ts +1 -0
  44. package/dist/observability/fatigueDetector.d.ts +1 -0
  45. package/dist/observability/index.d.ts +1 -0
  46. package/dist/observability/metrics.d.ts +1 -0
  47. package/dist/observability/metrics.d.ts.map +1 -1
  48. package/dist/observability/middleware.d.ts +1 -0
  49. package/dist/observability/tracer.d.ts +1 -0
  50. package/dist/observability/tracer.d.ts.map +1 -1
  51. package/dist/observability/types.d.ts +1 -0
  52. package/dist/providers/providerConfig.d.ts +1 -0
  53. package/dist/providers/providerConfig.d.ts.map +1 -1
  54. package/dist/routing/advancedRouter.d.ts +2 -1
  55. package/dist/routing/advancedRouter.d.ts.map +1 -1
  56. package/dist/routing/crossModelValidation.d.ts +1 -0
  57. package/dist/routing/providerHealth.d.ts +1 -0
  58. package/dist/routing/providerHealth.d.ts.map +1 -1
  59. package/dist/routing/providerRetry.d.ts +1 -0
  60. package/dist/sdk.d.ts +1 -0
  61. package/dist/security/guardrails.d.ts +1 -0
  62. package/dist/security/guardrails.d.ts.map +1 -1
  63. package/dist/server/dashboard.d.ts +1 -0
  64. package/dist/server/handlers/chatHandler.d.ts +11 -0
  65. package/dist/server/handlers/chatHandler.d.ts.map +1 -0
  66. package/dist/server/handlers/chatHandler.js +159 -0
  67. package/dist/server/handlers/chatHandler.js.map +1 -0
  68. package/dist/server/handlers/completionsHandler.d.ts +10 -0
  69. package/dist/server/handlers/completionsHandler.d.ts.map +1 -0
  70. package/dist/server/handlers/completionsHandler.js +124 -0
  71. package/dist/server/handlers/completionsHandler.js.map +1 -0
  72. package/dist/server/handlers/embeddingsHandler.d.ts +17 -0
  73. package/dist/server/handlers/embeddingsHandler.d.ts.map +1 -0
  74. package/dist/server/handlers/embeddingsHandler.js +235 -0
  75. package/dist/server/handlers/embeddingsHandler.js.map +1 -0
  76. package/dist/server/handlers/healthHandler.d.ts +10 -0
  77. package/dist/server/handlers/healthHandler.d.ts.map +1 -0
  78. package/dist/server/handlers/healthHandler.js +49 -0
  79. package/dist/server/handlers/healthHandler.js.map +1 -0
  80. package/dist/server/handlers/metricsHandler.d.ts +11 -0
  81. package/dist/server/handlers/metricsHandler.d.ts.map +1 -0
  82. package/dist/server/handlers/metricsHandler.js +24 -0
  83. package/dist/server/handlers/metricsHandler.js.map +1 -0
  84. package/dist/server/handlers/modelsHandler.d.ts +10 -0
  85. package/dist/server/handlers/modelsHandler.d.ts.map +1 -0
  86. package/dist/server/handlers/modelsHandler.js +19 -0
  87. package/dist/server/handlers/modelsHandler.js.map +1 -0
  88. package/dist/server/metrics.d.ts +96 -0
  89. package/dist/server/metrics.d.ts.map +1 -0
  90. package/dist/server/metrics.js +267 -0
  91. package/dist/server/metrics.js.map +1 -0
  92. package/dist/server/modelMapper.d.ts +1 -0
  93. package/dist/server/proxyServer.d.ts +53 -17
  94. package/dist/server/proxyServer.d.ts.map +1 -1
  95. package/dist/server/proxyServer.js +66 -303
  96. package/dist/server/proxyServer.js.map +1 -1
  97. package/dist/server/router.d.ts +49 -0
  98. package/dist/server/router.d.ts.map +1 -0
  99. package/dist/server/router.js +120 -0
  100. package/dist/server/router.js.map +1 -0
  101. package/dist/server/state.d.ts +30 -0
  102. package/dist/server/state.d.ts.map +1 -0
  103. package/dist/server/state.js +18 -0
  104. package/dist/server/state.js.map +1 -0
  105. package/dist/skills/__tests__/skill_manager.test.d.ts +3 -0
  106. package/dist/skills/__tests__/skill_manager.test.d.ts.map +1 -1
  107. package/dist/skills/__tests__/skill_manager.test.js +3 -6
  108. package/dist/skills/__tests__/skill_manager.test.js.map +1 -1
  109. package/dist/tui/dashboard.d.ts +1 -0
  110. package/dist/tui/index.d.ts +1 -0
  111. package/dist/utils/costUtils.d.ts +1 -0
  112. package/dist/utils/reliability.js +4 -18
  113. package/dist/utils/sorting.d.ts +1 -0
  114. package/dist/utils/tokenUtils.d.ts +1 -0
  115. package/docs/assets/chart-accuracy-by-tier.svg +63 -0
  116. package/docs/assets/chart-confusion-matrix.svg +98 -0
  117. package/docs/assets/chart-cost-comparison.svg +66 -0
  118. package/docs/assets/chart-latency-overhead.svg +102 -0
  119. package/docs/assets/chart-routerena-leaderboard.svg +76 -0
  120. package/docs/index.html +72 -80
  121. package/docs/llms-full.txt +156 -184
  122. package/docs/llms.txt +77 -42
  123. package/hf-space/app.py +3 -3
  124. package/llms-full.txt +156 -184
  125. package/llms.txt +77 -42
  126. package/mcp-server/package.json +6 -0
  127. package/mcp-server/tsconfig.json +3 -2
  128. package/package.json +2 -2
  129. package/src/server/handlers/chatHandler.ts +173 -0
  130. package/src/server/handlers/completionsHandler.ts +120 -0
  131. package/src/server/handlers/embeddingsHandler.ts +271 -0
  132. package/src/server/handlers/healthHandler.ts +57 -0
  133. package/src/server/handlers/metricsHandler.ts +30 -0
  134. package/src/server/handlers/modelsHandler.ts +25 -0
  135. package/src/server/metrics.ts +303 -0
  136. package/src/server/proxyServer.ts +71 -394
  137. package/src/server/router.ts +157 -0
  138. package/src/server/state.ts +34 -0
  139. package/src/skills/__tests__/skill_manager.test.ts +3 -3
  140. package/NEW_OPPORTUNITIES.md +0 -163
  141. package/NEW_SUBMISSIONS.md +0 -80
  142. package/PRIORITY_REDDIT_TARGETS.md +0 -53
  143. package/VISIBILITY_PLAN.md +0 -146
  144. package/articles/TWITTER_THREAD_IMPLICATIONS.md +0 -182
  145. package/articles/TWITTER_THREAD_VAULT.md +0 -164
  146. package/index.html +0 -667
@@ -0,0 +1,157 @@
1
+ /**
2
+ * A3M Router - HTTP Route Registry
3
+ *
4
+ * Pluggable route table pattern replacing monolithic if/else routing.
5
+ * Adding a new endpoint = 1 handler file + 1 registration line.
6
+ *
7
+ * Usage:
8
+ * import { createRouter, registerRoute } from './router';
9
+ * registerRoute('GET', /^\/health$/, handleHealth);
10
+ * registerRoute('POST', /^\/v1\/chat\/completions$/, handleChatCompletions);
11
+ * const router = createRouter();
12
+ * server.use(router);
13
+ */
14
+
15
+ import * as http from 'http';
16
+
17
+ // ============================================================
18
+ // TYPES
19
+ // ============================================================
20
+
21
+ export type HTTPMethod = 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH' | 'OPTIONS';
22
+
23
+ export interface RouteContext {
24
+ requestId: string;
25
+ startTime: number;
26
+ method: HTTPMethod;
27
+ path: string;
28
+ query: Record<string, string>;
29
+ }
30
+
31
+ export type RouteHandler = (
32
+ req: http.IncomingMessage,
33
+ res: http.ServerResponse,
34
+ ctx: RouteContext
35
+ ) => Promise<void> | void;
36
+
37
+ export interface Route {
38
+ method: HTTPMethod;
39
+ pattern: RegExp;
40
+ handler: RouteHandler;
41
+ name: string;
42
+ }
43
+
44
+ // ============================================================
45
+ // ROUTE REGISTRY
46
+ // ============================================================
47
+
48
+ const routes: Route[] = [];
49
+
50
+ /**
51
+ * Generate a short request ID.
52
+ */
53
+ function generateRequestId(): string {
54
+ return 'req-' + Math.random().toString(36).substring(2, 10) + Date.now().toString(36);
55
+ }
56
+
57
+ /**
58
+ * Parse query string from URL.
59
+ */
60
+ function parseQuery(url: string): Record<string, string> {
61
+ try {
62
+ const urlObj = new URL(url, 'http://localhost');
63
+ const query: Record<string, string> = {};
64
+ urlObj.searchParams.forEach((value, key) => {
65
+ query[key] = value;
66
+ });
67
+ return query;
68
+ } catch {
69
+ return {};
70
+ }
71
+ }
72
+
73
+ /**
74
+ * Parse HTTP method safely.
75
+ */
76
+ function parseMethod(method: string | undefined): HTTPMethod {
77
+ const m = (method || 'GET').toUpperCase();
78
+ if (['GET', 'POST', 'PUT', 'DELETE', 'PATCH', 'OPTIONS'].includes(m)) {
79
+ return m as HTTPMethod;
80
+ }
81
+ return 'GET';
82
+ }
83
+
84
+ /**
85
+ * Register a route. Routes are matched in registration order.
86
+ */
87
+ export function registerRoute(
88
+ method: HTTPMethod,
89
+ pattern: RegExp,
90
+ handler: RouteHandler,
91
+ name?: string
92
+ ): void {
93
+ routes.push({ method, pattern, handler, name: name || `${method} ${pattern}` });
94
+ }
95
+
96
+ /**
97
+ * Create the request handler function for the registered routes.
98
+ * Returns a function compatible with http.createServer's requestListener.
99
+ */
100
+ export function createRequestHandler(): (req: http.IncomingMessage, res: http.ServerResponse) => Promise<void> {
101
+ return async function handleRequest(req: http.IncomingMessage, res: http.ServerResponse): Promise<void> {
102
+ const method = parseMethod(req.method);
103
+ const url = req.url || '/';
104
+ const ctx: RouteContext = {
105
+ requestId: generateRequestId(),
106
+ startTime: Date.now(),
107
+ method,
108
+ path: url.split('?')[0],
109
+ query: parseQuery(url),
110
+ };
111
+
112
+ // CORS preflight
113
+ if (method === 'OPTIONS') {
114
+ res.writeHead(204, {
115
+ 'Access-Control-Allow-Origin': '*',
116
+ 'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, PATCH, OPTIONS',
117
+ 'Access-Control-Allow-Headers': 'Content-Type, Authorization, x-request-id',
118
+ 'Access-Control-Max-Age': '86400',
119
+ });
120
+ res.end();
121
+ return;
122
+ }
123
+
124
+ // Find matching route
125
+ for (const route of routes) {
126
+ if (route.method !== method) continue;
127
+ const match = ctx.path.match(route.pattern);
128
+ if (match) {
129
+ try {
130
+ await route.handler(req, res, ctx);
131
+ } catch (err: any) {
132
+ console.error(`[a3m-router] Route ${route.name} error: ${err.message}`);
133
+ if (!res.headersSent) {
134
+ res.writeHead(500, { 'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*' });
135
+ res.end(JSON.stringify({ error: { message: err.message, type: 'server_error' } }));
136
+ }
137
+ }
138
+ return;
139
+ }
140
+ }
141
+
142
+ // No route matched — 404
143
+ if (!res.headersSent) {
144
+ res.writeHead(404, { 'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*' });
145
+ res.end(JSON.stringify({ error: { message: `Not found: ${method} ${url}`, type: 'not_found' } }));
146
+ }
147
+ };
148
+ }
149
+
150
+ /**
151
+ * Get all registered routes (for debugging and /routes endpoint).
152
+ */
153
+ export function getRegisteredRoutes(): Route[] {
154
+ return [...routes];
155
+ }
156
+
157
+ export default { registerRoute, createRequestHandler, getRegisteredRoutes };
@@ -0,0 +1,34 @@
1
+ /**
2
+ * A3M Router - Shared Server State
3
+ *
4
+ * Singleton state shared across the proxy server and all handlers.
5
+ * Extracted from proxyServer.ts to enable modular handler architecture.
6
+ */
7
+
8
+ import { CostTracker } from '../cost/costTracker';
9
+
10
+ // ============================================================
11
+ // SHARED STATE
12
+ // ============================================================
13
+
14
+ /** Singleton cost tracker instance */
15
+ export const costTracker = new CostTracker();
16
+
17
+ /** In-memory request log (last 1000 entries) */
18
+ export interface RequestLog {
19
+ id: string;
20
+ model: string;
21
+ resolvedProvider: string;
22
+ resolvedModel: string;
23
+ latencyMs: number;
24
+ tokensIn: number;
25
+ tokensOut: number;
26
+ cost: number;
27
+ status: 'success' | 'error';
28
+ error?: string;
29
+ timestamp: number;
30
+ }
31
+
32
+ export const requestLogs: RequestLog[] = [];
33
+
34
+ export default { costTracker, requestLogs };
@@ -1,6 +1,6 @@
1
- """
2
- Tests for SkillManager and TMLEnhancedAgent
3
- """
1
+ /**
2
+ * Tests for SkillManager and TMLEnhancedAgent
3
+ */
4
4
 
5
5
  import { describe, it, expect, beforeEach, jest } from '@jest/globals';
6
6
  import { SkillManager, Skill } from '../skill_manager';
@@ -1,163 +0,0 @@
1
- # A3M Router - NEW Achievements & Opportunities
2
-
3
- ## 📊 Current Status
4
- - npm Downloads: 25,573+ (avg ~413/day)
5
- - GitHub Stars: 10
6
- - Benchmarks: 4 PRs open (RouterArena, LLMRouterBench, routerbench, MMR-Bench)
7
- - Awesome Lists: 11 PRs open
8
-
9
- ---
10
-
11
- ## 🎯 NEW Awesome Lists to Submit To
12
-
13
- ### High Priority (Relevant + Not Submitted)
14
-
15
- | # | Repo | Stars | Relevance | Status |
16
- |---|------|-------|-----------|--------|
17
- | 1 | cuihuan/awesome-ai-gateway | 25⭐ | AI Gateway | ❌ NEW |
18
- | 2 | inference-gateway/inference-gateway | 127⭐ | Gateway | ❌ NEW |
19
- | 3 | liyueyuan123/llm-api-gateway | 116⭐ | Gateway | ❌ NEW |
20
-
21
- ### Medium Priority
22
-
23
- | # | Repo | Stars | Relevance | Status |
24
- |---|------|-------|-----------|--------|
25
- | 4 | howardpen9/awesome-ai-api-proxy | 12⭐ | AI API | ❌ NEW |
26
- | 5 | stormfire-io/awesome-ai-proxy | NEW | AI Proxy | ❌ NEW |
27
-
28
- ---
29
-
30
- ## 🏆 NEW Benchmarks to Target
31
-
32
- ### Related to LLM Routing/Inference
33
-
34
- | # | Repo | Stars | Relevance | Status |
35
- |---|------|-------|-----------|--------|
36
- | 1 | digailab/PCB-Bench | 13⭐ | Routing | ❌ NEW |
37
- | 2 | Achyuthan-S/moe-bench | 10⭐ | MoE | ❌ NEW |
38
- | 3 | GregsGreyCode/Logos | 6⭐ | Routing | ❌ NEW |
39
-
40
- ### Cost Optimization Benchmarks
41
-
42
- | # | Repo | Stars | Relevance | Status |
43
- |---|------|-------|-----------|--------|
44
- | 1 | atharv404/ClawRoute | 80⭐ | Cost Routing | ❌ NEW |
45
- | 2 | bitrouter/bitrouter | 184⭐ | Router | ❌ NEW |
46
-
47
- ---
48
-
49
- ## 🌐 Platform Listings to Target
50
-
51
- ### Package Registries
52
- | Platform | Action | Difficulty |
53
- |----------|--------|------------|
54
- | Docker Hub | Publish container image | MEDIUM |
55
- | PyPI | Create Python wrapper | MEDIUM |
56
- | Homebrew | Create brew formula | LOW |
57
-
58
- ### AI Tool Directories
59
- | Directory | URL | Status |
60
- |----------|-----|--------|
61
- | There's An AI For That | thereisanai.com | ❌ NOT LISTED |
62
- | Future Tools | futuretools.io | ❌ NOT LISTED |
63
- | AI Navigator | ainav.io | ❌ NOT LISTED |
64
- | AlternativeTo | alternativeto.net | ❌ NOT LISTED |
65
-
66
- ### API Marketplaces
67
- | Platform | URL | Status |
68
- |----------|-----|--------|
69
- | RapidAPI | rapidapi.com | ❌ NOT LISTED |
70
- | API.market | api.market | ❌ NOT LISTED |
71
- | APILayer | apilayer.com | ❌ NOT LISTED |
72
-
73
- ---
74
-
75
- ## 🎓 Academic & Research Opportunities
76
-
77
- ### Papers with Code
78
- | Venue | Topic | Action |
79
- |-------|-------|--------|
80
- | arXiv | LLM Routing | Submit paper |
81
- | ACL/EMNLP | Routing optimization | Submit |
82
-
83
- ### University Resources
84
- | Resource | Relevance | Action |
85
- |---------|-----------|--------|
86
- | Awesome LLM Long Context | 2,130⭐ | Submit to |
87
- | AgentBench | 3,515⭐ | Submit benchmark |
88
-
89
- ---
90
-
91
- ## 📱 Content & Community
92
-
93
- ### Social Platforms
94
- | Platform | Content Ready | Status |
95
- |---------|--------------|--------|
96
- | Twitter/X | ✅ Yes | ❌ No account |
97
- | LinkedIn | ✅ Adapt from Twitter | ❌ No posts |
98
- | DEV.to | ✅ Yes | ❌ Token invalid |
99
- | Product Hunt | ✅ Yes | ❌ Not launched |
100
-
101
- ### Forums & Communities
102
- | Community | Platform | Action |
103
- |-----------|----------|--------|
104
- | Hacker News | news.ycombinator.com | Comment + Post |
105
- | Reddit | reddit.com/r/LocalLLaMA | ❌ IP blocked |
106
- | Discord | LangChain, HuggingFace | Join + Share |
107
-
108
- ---
109
-
110
- ## 🏅 Ranking Opportunities
111
-
112
- ### Leaderboards
113
- | Leaderboard | URL | Current | Target |
114
- |------------|-----|---------|--------|
115
- | RouterArena | routerarena.ai | 50.59% | 85%+ |
116
- | npm trends | npmtrends.com | ~400/day | 1000+/day |
117
-
118
- ### Awards & Competitions
119
- | Award | Deadline | Relevance |
120
- |-------|----------|-----------|
121
- | GitHub Archive program | Rolling | MEDIUM |
122
- | OSS Fund | Rolling | MEDIUM |
123
-
124
- ---
125
-
126
- ## 🚀 Quick Wins (This Week)
127
-
128
- 1. **Submit to cuihuan/awesome-ai-gateway** - 25 stars, relevant
129
- 2. **Submit to inference-gateway/inference-gateway** - 127 stars, very relevant
130
- 3. **Submit to liyueyuan123/llm-api-gateway** - 116 stars, very relevant
131
- 4. **Create Docker Hub listing** - Popular containers
132
- 5. **Enable GitHub Discussions** - Free engagement
133
-
134
- ---
135
-
136
- ## 🎯 Strategic Goals
137
-
138
- ### 85%+ Accuracy Achievement
139
- **Path A: GLM-5.1 Reset** (Jun 26)
140
- - Wait for weekly rate limit reset
141
- - Run 4 req/min for 35+ hours
142
- - Cost: ~$0 (Z.ai free tier)
143
-
144
- **Path B: Budget Upgrade** ($50+)
145
- - DeepSeek-V4 or GPT-4 API
146
- - Faster completion
147
- - Cost: ~$50-100
148
-
149
- **Path C: Self-Consistency** (10-15 votes)
150
- - Ensemble voting approach
151
- - ~80% accuracy expected
152
- - Cost: Variable
153
-
154
- ---
155
-
156
- ## 📈 Growth Targets
157
-
158
- | Metric | Current | Target | Method |
159
- |--------|---------|--------|--------|
160
- | npm downloads | ~413/day | 1000+/day | Spikes + steady |
161
- | GitHub stars | 10 | 100+ | Content + visibility |
162
- | Benchmark PRs | 4 open | 10+ | More submissions |
163
- | Awesome Lists | 11 open | 20+ | More submissions |
@@ -1,80 +0,0 @@
1
- # New Benchmark & Awesome List Submissions
2
-
3
- ## New Benchmarks to Submit To
4
-
5
- | # | Repo | Stars | Relevance | Notes |
6
- |---|------|-------|----------|-------|
7
- | 1 | LiveBench/LiveBench | 1,213 | Medium | Not router-specific but LLM eval |
8
- | 2 | lmarena/arena-hard-auto | 1,040 | Medium | Arena for LLMs |
9
- | 3 | jeinlee1991/chinese-llm-benchmark | 6,206 | High | Chinese LLM benchmark |
10
- | 4 | llm2014/llm_benchmark | 1,375 | Medium | General LLM benchmarks |
11
- | 5 | carlini/yet-another-applied-llm-benchmark | 1,060 | Medium | Applied LLM eval |
12
- | 6 | leobeeson/llm_benchmarks | 570 | Medium | Collection of benchmarks |
13
- | 7 | ray-project/llmperf-leaderboard | 474 | High | LLM performance |
14
-
15
- ---
16
-
17
- ## New Awesome Lists to Submit To
18
-
19
- | # | Repo | Stars | Category | Notes |
20
- |---|------|-------|----------|-------|
21
- | 1 | 1duo/awesome-ai-infrastructures | 453 | AI Infrastructure | High priority |
22
- | 2 | brandonhimpfen/awesome-ai-infrastructure | 62 | AI Infrastructure | Lower priority |
23
- | 3 | suncloudsmoon/awesome-open-source-ai | 305 | Open Source AI | Medium |
24
- | 4 | aidatatools/ollama-benchmark | 373 | Ollama | Could add A3M to alternatives |
25
- | 5 | llm2014/llm_benchmark | 1,375 | LLM Benchmark | Very relevant |
26
- | 6 | leobeeson/llm_benchmarks | 570 | Benchmarks | Collection |
27
-
28
- ---
29
-
30
- ## Submission Template for Benchmarks
31
-
32
- ```
33
- ## A3M Router
34
-
35
- **Description:** Parallel multi-LLM execution with automatic model selection
36
-
37
- **Key Metrics:**
38
- - RouterArena #1: 96.77% accuracy
39
- - Cost: $0.077/1K (130x cheaper than GPT-5)
40
- - Robustness: 1.0
41
-
42
- **Submission Format:**
43
- [Routed Models, Predictions File, Configuration]
44
-
45
- **Repo:** https://github.com/Das-rebel/a3m-router
46
- **npm:** adaptive-memory-multi-model-router
47
- ```
48
-
49
- ---
50
-
51
- ## Submission Template for Awesome Lists
52
-
53
- ```
54
- ## A3M Router
55
-
56
- **Description:** Open-source LLM routing proxy with parallel multi-LLM execution
57
-
58
- **Website:** https://github.com/Das-rebel/a3m-router
59
- **npm:** https://www.npmjs.com/package/adaptive-memory-multi-model-router
60
- **License:** MIT
61
-
62
- **Key Features:**
63
- - RouterArena #1 accuracy (96.77%)
64
- - $0.077/1K cost (130x cheaper than GPT-5)
65
- - 47+ provider support
66
- - Parallel multi-LLM execution
67
- - OpenAI-compatible API
68
- ```
69
-
70
- ---
71
-
72
- ## High Priority Actions
73
-
74
- 1. **1duo/awesome-ai-infrastructures** - Submit PR for AI infrastructure category
75
- 2. **jeinlee1991/chinese-llm-benchmark** - Submit to large Chinese LLM benchmark
76
- 3. **llm2014/llm_benchmark** - Submit to comprehensive LLM benchmark
77
-
78
- ---
79
-
80
- ## Status: Not Yet Submitted
@@ -1,53 +0,0 @@
1
- # Priority Reddit Posts to Comment On
2
- ## Strategy: Find posts where A3M Router solves the exact problem
3
-
4
- ### Target Subreddits
5
- - r/LocalLLaMA (most relevant - LLM enthusiasts)
6
- - r/MachineLearning (ML practitioners)
7
- - r/programming (developers)
8
- - r/ChatGPT (end users)
9
- - r/LLMDevs (dev community)
10
-
11
- ### Search Queries to Use (manual)
12
- 1. "llm router" OR "multi llm" OR "parallel llm"
13
- 2. "reduce openai cost" OR "llm api expensive" OR "cheap llm"
14
- 3. "llm gateway" OR "api proxy" OR "llm proxy"
15
- 4. "litellm alternative" OR "portkey alternative" OR "route llm"
16
- 5. "llm fallback" OR "llm reliability" OR "429 error"
17
-
18
- ### High-Value Post Types
19
- 1. **Cost complaints**: "GPT-4o too expensive" - A3M saves 70%+
20
- 2. **Reliability issues**: "OpenAI down" - A3M has fallback
21
- 3. **Multi-model needs**: "Use both Claude and GPT" - A3M does this
22
- 4. **Routing questions**: "Which LLM for X?" - A3M auto-selects
23
-
24
- ### Comment Template
25
- ```
26
- Have you looked at A3M Router? It's an open-source LLM gateway that:
27
- - Routes to 47+ providers in parallel
28
- - Auto-selects cheapest provider for your query type
29
- - 96.77% accuracy on RouterArena benchmark
30
- - $0.077/1K tokens (vs $10+ for GPT-4o)
31
- - Built-in fallback when providers fail
32
-
33
- npm install adaptive-memory-multi-model-router
34
-
35
- Disclosure: I'm the author, happy to help with setup!
36
- ```
37
-
38
- ### Posts to Find (manual search required)
39
- Since Reddit blocks automated searching, do these searches manually:
40
-
41
- 1. r/LocalLLaMA - search "router" → sort by top → look for cost/routing posts
42
- 2. r/LocalLLaMA - search "gateway" → sort by top → look for multi-LLM posts
43
- 3. r/programming - search "llm router" → sort by top
44
- 4. r/MachineLearning - search "llm cost" → sort by top
45
-
46
- ### Engagement Tips
47
- - Comment within 1 hour of posting (newer posts have less competition)
48
- - Provide genuine help, not spam
49
- - Mention specific features that match the post's problem
50
- - Include working code snippet if possible
51
- - Ask follow-up question to increase engagement
52
- - Don't mention stars/GitHub in initial comment
53
-
@@ -1,146 +0,0 @@
1
- # A3M Router Visibility Expansion Plan
2
-
3
- ## Current Status
4
- - ✅ npm: 25K+ downloads
5
- - ✅ GitHub: 10 stars
6
- - ✅ 19 PRs submitted (12 merged/in README)
7
- - ✅ HuggingFace Space
8
- - ✅ GitHub Pages
9
- - ✅ 4 benchmark PRs open
10
- - ❌ No Twitter presence
11
- - ❌ No YouTube tutorials
12
- - ❌ No conference talks
13
- - ❌ No podcast appearances
14
- - ❌ Reddit blocked by IP
15
- - ❌ No LinkedIn presence
16
-
17
- ---
18
-
19
- ## 🚀 High Impact Actions (Do Now)
20
-
21
- ### 1. Twitter/X Thread (READY TO POST)
22
- - **File**: `TWITTER_THREAD_VAULT.md` or `TWITTER_FINAL.md`
23
- - **Hook**: "The entire LLM gateway space has been thinking about this wrong"
24
- - **Unique Angle**: Parallel vs sequential routing
25
- - **Action**: Post 10-tweet thread
26
-
27
- ### 2. DEV.to Articles (READY TO POST)
28
- - **Files**:
29
- - `DEVTO_READY.md`
30
- - `DEVTO_FINAL.md`
31
- - `DEVTO_MULTI_PROVIDER.md`
32
- - **Topics**:
33
- - "How I built an LLM router that beats GPT-5"
34
- - "Parallel multi-LLM execution explained"
35
- - **Action**: Publish to DEV.to
36
-
37
- ### 3. Newsletter Outreach (READY TO SEND)
38
- - **File**: `NEWSLETTER_SEND_NOW.md`
39
- - **Target Newsletters**:
40
- - TLDR (dev newsletter)
41
- - AI Weekly
42
- - Morning ML
43
- - ByteDance ML
44
- - **Action**: Submit guest posts
45
-
46
- ### 4. GitHub Discussions (ENABLE)
47
- - Create discussion categories
48
- - Ask for feature requests
49
- - Share roadmap
50
- - **Action**: Enable GitHub Discussions tab
51
-
52
- ---
53
-
54
- ## 🔧 Medium Impact (This Week)
55
-
56
- ### 5. LinkedIn Presence
57
- - Post about RouterArena #1 achievement
58
- - Share technical deep-dives
59
- - Connect with AI developers
60
- - **Template**: `articles/TWITTER_THREAD_VAULT.md` adapted for LinkedIn
61
-
62
- ### 6. Hacker News Visibility
63
- - Post when score improves to 85%+
64
- - Comment on related threads
65
- - Build karma before posting
66
-
67
- ### 7. YouTube Tutorial
68
- - **Script Ready**: `youtube-tutorial-script.md`
69
- - Record 10-min demo
70
- - Upload with RouterArena #1 title
71
-
72
- ### 8. Product Hunt
73
- - **File**: `PRODUCTHUNT_READY.md`
74
- - Submit on Tuesday-Wednesday (best days)
75
- - Prepare screenshots
76
-
77
- ---
78
-
79
- ## 📈 Long Term (This Month)
80
-
81
- ### 9. Conference Talks
82
- - Submit to: PyCon, NodeConf, AI conferences
83
- - Topic: "Parallel LLM Routing: Beyond Sequential Fallback"
84
- - Early bird deadlines
85
-
86
- ### 10. Podcast Guesting
87
- - AI podcasts looking for guests
88
- - Developer podcasts
89
- - Offer to talk about LLM routing architecture
90
-
91
- ### 11. GitHub Action
92
- - Create `a3m-router-action`
93
- - Package as GitHub Action
94
- - Get featured in GitHub Marketplace
95
-
96
- ### 12. Docker Image
97
- - Publish to Docker Hub
98
- - Add to container registries
99
-
100
- ---
101
-
102
- ## 🎯 Competitor Analysis (What Works for Them)
103
-
104
- ### litellm (48K stars)
105
- - Multiple blog posts
106
- - Conference talks
107
- - YouTube tutorials
108
- - Active Discord
109
- - Enterprise customers
110
-
111
- ### RouteLLM (5069 stars)
112
- - Academic paper
113
- - GitHub Pages docs
114
- - Integration guides
115
-
116
- ### ClawRouter (6587 stars)
117
- - Website: clawrouter.com
118
- - x402 micropayments
119
- - Agent-native positioning
120
-
121
- ---
122
-
123
- ## 📊 Priority Matrix
124
-
125
- | Channel | Impact | Effort | Status |
126
- |---------|--------|--------|--------|
127
- | Twitter Thread | HIGH | LOW | READY |
128
- | DEV.to Article | HIGH | LOW | READY |
129
- | Newsletter | HIGH | MED | READY |
130
- | GitHub Discussions | MED | LOW | TODO |
131
- | LinkedIn | MED | LOW | TODO |
132
- | YouTube | HIGH | HIGH | SCRIPT READY |
133
- | Product Hunt | MED | MED | READY |
134
- | GitHub Action | HIGH | HIGH | TODO |
135
- | Docker Hub | MED | MED | TODO |
136
- | Conference Talks | HIGH | HIGH | TODO |
137
-
138
- ---
139
-
140
- ## ✅ Immediate Next Steps
141
-
142
- 1. **Today**: Post Twitter thread
143
- 2. **Today**: Submit DEV.to article
144
- 3. **This Week**: Enable GitHub Discussions
145
- 4. **This Week**: Submit to Product Hunt
146
- 5. **This Week**: Start LinkedIn presence