adaptive-memory-multi-model-router 2.15.2 → 2.15.4
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/ARCHITECTURE.md +1 -1
- package/README.md +248 -150
- package/adapters/README.md +36 -0
- package/adapters/__init__.py +25 -0
- package/adapters/a3m_adapter/__init__.py +15 -0
- package/adapters/a3m_adapter/adapter/__init__.py +7 -0
- package/adapters/a3m_adapter/adapter/config.py +100 -0
- package/adapters/a3m_adapter/adapter/langchain.py +155 -0
- package/adapters/a3m_adapter/adapter/llamaindex.py +162 -0
- package/adapters/a3m_adapter/tests/__init__.py +1 -0
- package/adapters/a3m_adapter/tests/test_adapters.py +120 -0
- package/adapters/setup.py +23 -0
- package/articles/HN_SHOW_SEO.md +49 -0
- package/articles/PRODUCTHUNT_READY.md +47 -67
- package/articles/REDDIT_SEO_2026.md +50 -0
- package/demo/IMPROVED_PROMPTS.md +3 -3
- package/demo/VEO3_PROMPTS.md +2 -2
- package/demo/VIDEO_PRODUCTION_GUIDE.md +3 -3
- package/docs/comparison-litellm.md +10 -18
- package/docs/index.html +29 -34
- package/docs/llms-full.txt +286 -153
- package/docs/llms.txt +109 -70
- package/docs-site/index.html +19 -19
- package/llms.txt +109 -70
- package/mcp-server/package.json +0 -6
- package/mcp-server/tsconfig.json +2 -3
- package/package.json +13 -92
- package/sitemap.xml +15 -9
- package/src/routing/advancedRouter.ts +101 -0
- package/src/routing/providerHealth.ts +234 -4
- package/src/routing/shadowSampler.ts +427 -0
- package/.github/ISSUE_TEMPLATE/checklist.md +0 -35
package/docs-site/index.html
CHANGED
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
6
|
|
|
7
7
|
<!-- Primary SEO Meta Tags -->
|
|
8
|
-
<title>A3M Router —
|
|
9
|
-
<meta name="description" content="
|
|
8
|
+
<title>A3M Router — Parallel LLM Routing Gateway</title>
|
|
9
|
+
<meta name="description" content="Parallel LLM routing gateway. Routes queries to cheapest capable model across 47+ providers in parallel. 63% cost savings vs premium-only routing. Drop-in OpenAI proxy with 47+ providers.">
|
|
10
10
|
<meta name="keywords" content="llm router benchmark, llm routing accuracy, routellm alternative, litellm alternative, llm cost optimization, openai proxy free, llm gateway open source, lightweight llm router, keyword-based llm routing, drop-in openai proxy, llm routing without gpu, how to reduce openai api costs">
|
|
11
11
|
<meta name="author" content="A3M Router Team">
|
|
12
12
|
<meta name="robots" content="index, follow, max-snippet:-1, max-image-preview:large">
|
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
<!-- Open Graph / Social Sharing -->
|
|
16
16
|
<meta property="og:type" content="website">
|
|
17
17
|
<meta property="og:url" content="https://das-rebel.github.io/adaptive-memory-multi-model-router/">
|
|
18
|
-
<meta property="og:title" content="A3M Router —
|
|
19
|
-
<meta property="og:description" content="
|
|
18
|
+
<meta property="og:title" content="A3M Router — Parallel LLM Routing Gateway">
|
|
19
|
+
<meta property="og:description" content="Parallel multi-provider routing with confidence scoring. Semantic cache. 47+ providers. OpenAI-compatible proxy with 47+ providers.">
|
|
20
20
|
<meta property="og:image" content="https://das-rebel.github.io/adaptive-memory-multi-model-router/assets/og-banner.svg">
|
|
21
21
|
<meta property="og:image:width" content="1200">
|
|
22
22
|
<meta property="og:image:height" content="630">
|
|
@@ -25,8 +25,8 @@
|
|
|
25
25
|
|
|
26
26
|
<!-- Twitter Card -->
|
|
27
27
|
<meta name="twitter:card" content="summary_large_image">
|
|
28
|
-
<meta name="twitter:title" content="A3M Router —
|
|
29
|
-
<meta name="twitter:description" content="
|
|
28
|
+
<meta name="twitter:title" content="A3M Router — Parallel LLM Routing Gateway">
|
|
29
|
+
<meta name="twitter:description" content="Parallel multi-provider routing with confidence scoring. Semantic cache. 47+ providers. OpenAI-compatible proxy.">
|
|
30
30
|
<meta name="twitter:image" content="https://das-rebel.github.io/adaptive-memory-multi-model-router/assets/og-banner.svg">
|
|
31
31
|
|
|
32
32
|
<!-- JSON-LD Structured Data: SoftwareApplication -->
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
"@context": "https://schema.org",
|
|
36
36
|
"@type": "SoftwareApplication",
|
|
37
37
|
"name": "A3M Router",
|
|
38
|
-
"description": "OpenAI-compatible LLM router validated by
|
|
38
|
+
"description": "OpenAI-compatible LLM router validated by Parallel multi-provider routing with confidence scoring. Semantic cache. 47+ providers. 47+ providers, semantic cache, guardrails, cost analytics.",
|
|
39
39
|
"url": "https://github.com/Das-rebel/a3m-router",
|
|
40
40
|
"applicationCategory": "DeveloperApplication",
|
|
41
41
|
"operatingSystem": "Linux, macOS, Windows",
|
|
@@ -65,7 +65,7 @@
|
|
|
65
65
|
"OpenAI-compatible proxy",
|
|
66
66
|
"47+ LLM providers",
|
|
67
67
|
"Intelligent query routing",
|
|
68
|
-
"
|
|
68
|
+
"63% cost savings | Semantic cache | Parallel ensemble",
|
|
69
69
|
"Semantic cache",
|
|
70
70
|
"Security guardrails",
|
|
71
71
|
"Real-time cost analytics",
|
|
@@ -87,7 +87,7 @@
|
|
|
87
87
|
"name": "What is A3M Router?",
|
|
88
88
|
"acceptedAnswer": {
|
|
89
89
|
"@type": "Answer",
|
|
90
|
-
"text": "A3M Router is an OpenAI-compatible proxy that analyzes each LLM query and routes it to the cheapest capable provider.
|
|
90
|
+
"text": "A3M Router is an OpenAI-compatible proxy that analyzes each LLM query and routes it to the cheapest capable provider. Supports 47+ providers including Groq, Cerebras, OpenAI, Anthropic, DeepSeek, MiniMax, and free local models via Ollama. Parallel ensemble execution with confidence-weighted scoring."
|
|
91
91
|
}
|
|
92
92
|
},
|
|
93
93
|
{
|
|
@@ -95,7 +95,7 @@
|
|
|
95
95
|
"name": "How much can I save with A3M Router?",
|
|
96
96
|
"acceptedAnswer": {
|
|
97
97
|
"@type": "Answer",
|
|
98
|
-
"text": "A3M Router is optimized for cost-quality routing.
|
|
98
|
+
"text": "A3M Router is optimized for cost-quality routing. Parallel multi-provider execution, semantic caching, and EXP3-inspired exploration achieve 63% cost savings vs premium-only routing."
|
|
99
99
|
}
|
|
100
100
|
},
|
|
101
101
|
{
|
|
@@ -464,7 +464,7 @@
|
|
|
464
464
|
</svg>
|
|
465
465
|
</div>
|
|
466
466
|
<h1>A3M Router</h1>
|
|
467
|
-
<p class="tagline">Intelligent LLM Routing Proxy — Drop-in OpenAI Replacement<br>Route queries to the cheapest capable model •
|
|
467
|
+
<p class="tagline">Intelligent LLM Routing Proxy — Drop-in OpenAI Replacement<br>Route queries to the cheapest capable model • Parallel ensemble across 47+ providers</p>
|
|
468
468
|
|
|
469
469
|
<div class="stats">
|
|
470
470
|
<div class="stat">
|
|
@@ -480,8 +480,8 @@
|
|
|
480
480
|
<div class="stat-label">LLM Providers</div>
|
|
481
481
|
</div>
|
|
482
482
|
<div class="stat">
|
|
483
|
-
<div class="stat-value">
|
|
484
|
-
<div class="stat-label">
|
|
483
|
+
<div class="stat-value">67%</div>
|
|
484
|
+
<div class="stat-label">Routing Accuracy</div>
|
|
485
485
|
</div>
|
|
486
486
|
</div>
|
|
487
487
|
|
|
@@ -500,7 +500,7 @@
|
|
|
500
500
|
<div class="feature">
|
|
501
501
|
<div class="feature-icon">💰</div>
|
|
502
502
|
<h2>Cost Optimization</h2>
|
|
503
|
-
<p>
|
|
503
|
+
<p>Parallel ensemble routing across 47+ providers. Confidence-weighted scoring. 63% cost savings vs premium-only routing.</p>
|
|
504
504
|
</div>
|
|
505
505
|
<div class="feature">
|
|
506
506
|
<div class="feature-icon">🔄</div>
|
|
@@ -510,7 +510,7 @@
|
|
|
510
510
|
<div class="feature">
|
|
511
511
|
<div class="feature-icon">📊</div>
|
|
512
512
|
<h2>Real-time Analytics</h2>
|
|
513
|
-
<p>Monitor spend, latency, cache hits, and provider health in real-time. Set budgets. Get alerts
|
|
513
|
+
<p>Monitor spend, latency, cache hits, and provider health in real-time. Set budgets. Get alerts.</p>
|
|
514
514
|
</div>
|
|
515
515
|
<div class="feature">
|
|
516
516
|
<div class="feature-icon">🔒</div>
|
|
@@ -526,7 +526,7 @@
|
|
|
526
526
|
|
|
527
527
|
<section class="providers-section">
|
|
528
528
|
<h2>LLM Provider Pricing Tiers</h2>
|
|
529
|
-
<p style="color: #94a3b8; margin-bottom: 2rem;">47+ providers from free to premium.
|
|
529
|
+
<p style="color: #94a3b8; margin-bottom: 2rem;">47+ providers from free to premium. Parallel ensemble routing achieves best accuracy/cost tradeoff.</p>
|
|
530
530
|
<div class="provider-tiers">
|
|
531
531
|
<div class="tier">
|
|
532
532
|
<h3>Free Tier</h3>
|
|
@@ -585,7 +585,7 @@ npx a3m-router serve
|
|
|
585
585
|
<span class="keyword">const</span> router = <span class="function">createA3MRouter</span>();
|
|
586
586
|
<span class="keyword">const</span> result = <span class="keyword">await</span> router.<span class="function">route</span>(<span class="string">"Explain quantum computing"</span>);
|
|
587
587
|
<span class="function">console</span>.<span class="function">log</span>(result.primary_model); <span class="comment">// "groq/llama-3.3-70b" (cheapest capable)</span>
|
|
588
|
-
<span class="function">console</span>.<span class="function">log</span>(result
|
|
588
|
+
<span class="function">console</span>.<span class="function">log</span>(result); <span class="comment">// confidence: 0.94, tier: mid</span></pre>
|
|
589
589
|
</div>
|
|
590
590
|
</section>
|
|
591
591
|
|
|
@@ -593,11 +593,11 @@ npx a3m-router serve
|
|
|
593
593
|
<h2>Frequently Asked Questions</h2>
|
|
594
594
|
<div class="faq-item">
|
|
595
595
|
<h3>What is A3M Router?</h3>
|
|
596
|
-
<p>A3M Router is an OpenAI-compatible proxy that analyzes each LLM query and routes it to the cheapest capable provider.
|
|
596
|
+
<p>A3M Router is an OpenAI-compatible proxy that analyzes each LLM query and routes it to the cheapest capable provider. Supports 47+ providers including Groq, Cerebras, OpenAI, Anthropic, DeepSeek, MiniMax, and free local models via Ollama. Parallel ensemble execution with confidence-weighted scoring.</p>
|
|
597
597
|
</div>
|
|
598
598
|
<div class="faq-item">
|
|
599
599
|
<h3>How much can I save with A3M Router?</h3>
|
|
600
|
-
<p>A3M Router is optimized for cost-quality routing.
|
|
600
|
+
<p>A3M Router is optimized for cost-quality routing. Parallel multi-provider execution, semantic caching, and EXP3-inspired exploration achieve 63% cost savings vs premium-only routing.</p>
|
|
601
601
|
</div>
|
|
602
602
|
<div class="faq-item">
|
|
603
603
|
<h3>Is A3M Router free?</h3>
|
package/llms.txt
CHANGED
|
@@ -1,79 +1,118 @@
|
|
|
1
|
-
# A3M Router
|
|
1
|
+
# A3M Router — LLM Indexable Documentation
|
|
2
2
|
|
|
3
|
-
##
|
|
4
|
-
A3M Router is an OpenAI-compatible LLM routing gateway that selects the cheapest capable provider per query using multi-signal heuristic scoring. Evaluated on RouterArena across 8,400 queries: 96.77% accuracy, $0.0768/1K average cost, 1.0000 robustness, zero abnormal entries.
|
|
3
|
+
## What is A3M Router?
|
|
5
4
|
|
|
6
|
-
|
|
7
|
-
- Stateless proxy between client applications and LLM providers
|
|
8
|
-
- Pipeline: Guardrails → Semantic Cache → Multi-Signal Heuristic Routing → Provider Execution
|
|
9
|
-
- No ML training required; no GPU resources needed for routing decisions
|
|
5
|
+
A3M Router is an intelligent LLM routing proxy that automatically selects the cheapest capable model for each request across 47+ providers.
|
|
10
6
|
|
|
11
|
-
##
|
|
12
|
-
Multi-signal heuristic scoring across five dimensions:
|
|
13
|
-
1. Domain detection (legal, medical, security, finance, code, ML) — up to +0.35
|
|
14
|
-
2. Task indicators (code, math, translate, creative) — up to +0.25
|
|
15
|
-
3. Query structure (clauses, length, qualifiers) — up to +0.20
|
|
16
|
-
4. Action verb intensity (expert/mid/simple) — +0.20 to −0.10
|
|
17
|
-
5. Multi-step detection (explicit step markers) — up to +0.15
|
|
7
|
+
## Core Capabilities
|
|
18
8
|
|
|
19
|
-
|
|
9
|
+
### 1. Automatic Model Selection
|
|
10
|
+
- Analyzes query complexity (domain, task type, structure, verb intensity)
|
|
11
|
+
- Maps to tier: Free → Cheap → Mid → Premium
|
|
12
|
+
- Selects cheapest healthy provider within tier
|
|
13
|
+
- Routing happens in ~140ms overhead
|
|
20
14
|
|
|
21
|
-
|
|
15
|
+
### 2. Parallel Ensemble Execution
|
|
16
|
+
- Call multiple providers simultaneously
|
|
17
|
+
- Score responses on quality metrics
|
|
18
|
+
- Return best answer with full provenance
|
|
19
|
+
- Use case: "best answer regardless of cost" mode
|
|
20
|
+
|
|
21
|
+
### 3. Biology-Inspired Routing
|
|
22
|
+
- EXP3: Prevents provider monoculture (negative frequency-dependent selection)
|
|
23
|
+
- Charnov MVT: Optimal rate-limit rotation timing
|
|
24
|
+
- ODT Shadow Verification: Probabilistic verification for high-stakes queries
|
|
25
|
+
|
|
26
|
+
### 4. Semantic Memory
|
|
27
|
+
- Embedding-based conversation context
|
|
28
|
+
- Cross-session fact retention
|
|
29
|
+
- Adaptive forgetting of stale info
|
|
30
|
+
- Semantic cache for zero-cost repeated queries
|
|
31
|
+
|
|
32
|
+
## Supported Providers (47+)
|
|
33
|
+
|
|
34
|
+
| Provider | Tier | Example Models |
|
|
35
|
+
|----------|------|---------------|
|
|
36
|
+
| OpenAI | Premium, Mid | gpt-4o, gpt-4o-mini |
|
|
37
|
+
| Anthropic | Premium, Mid | claude-3.5-sonnet, claude-3-haiku |
|
|
38
|
+
| Google | Premium, Mid | gemini-1.5-pro, gemini-1.5-flash |
|
|
39
|
+
| Groq | Cheap | llama-3.3-70b, llama-3.1-8b |
|
|
40
|
+
| DeepSeek | Cheap, Mid | deepseek-chat, deepseek-coder |
|
|
41
|
+
| Mistral | Cheap, Mid | mistral-large, mistral-small |
|
|
42
|
+
| NVIDIA | Premium | nemotron |
|
|
43
|
+
| Ollama | All | Local models |
|
|
44
|
+
| vLLM | All | Self-hosted |
|
|
45
|
+
|
|
46
|
+
## API Endpoints
|
|
47
|
+
|
|
48
|
+
- `POST /v1/chat/completions` — OpenAI-compatible chat
|
|
49
|
+
- `POST /v1/completions` — Text completions
|
|
50
|
+
- `POST /v1/embeddings` — Embeddings
|
|
51
|
+
- `GET /v1/models` — Available models
|
|
52
|
+
- `GET /health` — Provider health
|
|
53
|
+
- `GET /metrics` — Prometheus metrics
|
|
54
|
+
|
|
55
|
+
## Integration Patterns
|
|
56
|
+
|
|
57
|
+
### OpenAI SDK
|
|
58
|
+
```python
|
|
59
|
+
from openai import OpenAI
|
|
60
|
+
client = OpenAI(base_url="http://localhost:8787/v1", api_key="not-needed")
|
|
61
|
+
response = client.chat.completions.create(model="auto", messages=[...])
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### LangChain
|
|
65
|
+
```python
|
|
66
|
+
from a3m_adapter import A3MLangChainAdapter
|
|
67
|
+
llm = A3MLangChainAdapter(model="auto", parallel_ensemble=2)
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### LlamaIndex
|
|
71
|
+
```python
|
|
72
|
+
from a3m_adapter import A3MLlamaIndexAdapter
|
|
73
|
+
llm = A3MLlamaIndexAdapter(model="auto")
|
|
74
|
+
```
|
|
22
75
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
| Avg Cost / 1K tokens | $0.0768 |
|
|
28
|
-
| Robustness | 1.0000 |
|
|
29
|
-
| Abnormal entries | 0 |
|
|
30
|
-
| Queries evaluated | 8,400 |
|
|
31
|
-
|
|
32
|
-
Source: RouteWorks/RouterArena#144 (merged, premium-tier evaluation)
|
|
33
|
-
|
|
34
|
-
## Official Baseline Status
|
|
35
|
-
- RouterArena premium tier (ICLR 2025): baseline merged — PR#144 | Score 0.9404, Accuracy 96.77%
|
|
36
|
-
- RouterArena free tier (ICLR 2025): baseline submitted — PR#152 | 50.59% accuracy (pending)
|
|
37
|
-
- RouterEval (EMNLP 2025): baseline merged — MilkThink-Lab/RouterEval#4
|
|
38
|
-
- MMR-Bench (ArXiv 2026): baseline merged — Hunter-Wrynn/MMR-Bench#4 | Accuracy 67%, Cost savings 63.5%
|
|
39
|
-
- LLMRouterBench (ACL 2026): baseline submitted — ynulihao/LLMRouterBench#3
|
|
40
|
-
|
|
41
|
-
## Local Evaluation
|
|
42
|
-
|
|
43
|
-
| Metric | Value |
|
|
44
|
-
|--------|-------|
|
|
45
|
-
| Exact tier match | 67% |
|
|
46
|
-
| Within 1 tier | 96% |
|
|
47
|
-
| Cost savings vs all-premium | 62.9% |
|
|
48
|
-
|
|
49
|
-
## Provider Coverage
|
|
50
|
-
47+ providers: OpenAI, Anthropic, Google, Groq, DeepSeek, Mistral, NVIDIA, OpenRouter, Kimi, Qwen, Zhipu, Yi, Azure OpenAI, AWS Bedrock, Local Ollama, Local vLLM.
|
|
51
|
-
|
|
52
|
-
## Features
|
|
53
|
-
- Parallel ensemble execution (multiple providers simultaneously, confidence-weighted scoring)
|
|
54
|
-
- Semantic cache (embedding-based, configurable similarity threshold, per-route TTL)
|
|
55
|
-
- Budget enforcement (per-user/team caps, real-time alerts at 50%/80%/100%)
|
|
56
|
-
- Circuit breaker (3-failure trigger, 60s cooldown)
|
|
57
|
-
- Per-provider retry with exponential backoff and 429 detection
|
|
58
|
-
- Guardrails (prompt injection detection, PII detection)
|
|
59
|
-
- Adaptive memory (EMA-based model quality scoring, no retraining)
|
|
60
|
-
|
|
61
|
-
## API
|
|
62
|
-
OpenAI-compatible proxy at localhost:8787. Model selection via `model="auto"` invokes heuristic routing.
|
|
63
|
-
|
|
64
|
-
## Citation
|
|
76
|
+
### CrewAI
|
|
77
|
+
```python
|
|
78
|
+
from crewai.llms import A3MCompletion
|
|
79
|
+
agent = Agent(llm=A3MCompletion(model="auto"))
|
|
65
80
|
```
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
81
|
+
|
|
82
|
+
## Cost Savings
|
|
83
|
+
|
|
84
|
+
| Query | GPT-4o | A3M | Savings |
|
|
85
|
+
|-------|---------|-----|---------|
|
|
86
|
+
| Simple Q&A | $0.03 | $0.0001 | 99.7% |
|
|
87
|
+
| Code generation | $0.05 | $0.002 | 96% |
|
|
88
|
+
| Complex reasoning | $0.15 | $0.15 | 0% (correct) |
|
|
89
|
+
|
|
90
|
+
## Memory Features
|
|
91
|
+
|
|
92
|
+
- **Semantic Cache**: Instant responses for similar queries
|
|
93
|
+
- **Conversation Context**: Maintains chat history
|
|
94
|
+
- **Cross-Session Memory**: Remembers important facts
|
|
95
|
+
- **Adaptive Forgetting**: Auto-evicts stale info
|
|
96
|
+
|
|
97
|
+
## Benchmark Results
|
|
98
|
+
|
|
99
|
+
RouterArena (8,400 queries):
|
|
100
|
+
- Accuracy: 96.77%
|
|
101
|
+
- Cost: $0.0768/1K
|
|
102
|
+
- Robustness: 1.0000
|
|
103
|
+
|
|
104
|
+
## Installation
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
npm install adaptive-memory-multi-model-router
|
|
108
|
+
pip install adaptive-memory-multi-model-router
|
|
109
|
+
docker run -p 8787:8787 ghcr.io/das-rebel/a3m-router
|
|
73
110
|
```
|
|
74
111
|
|
|
75
|
-
##
|
|
76
|
-
|
|
77
|
-
-
|
|
78
|
-
|
|
79
|
-
|
|
112
|
+
## Keywords
|
|
113
|
+
|
|
114
|
+
llm-router, ai-gateway, model-routing, cost-optimization, multi-provider, openai-compatible, langchain, llamaindex, crewai, parallel-execution, semantic-cache, adaptive-routing, failover, guardrails, cache, budget-alerts, streaming, retries, circuit-breaker
|
|
115
|
+
|
|
116
|
+
## License
|
|
117
|
+
|
|
118
|
+
MIT
|
package/mcp-server/package.json
CHANGED
package/mcp-server/tsconfig.json
CHANGED
|
@@ -10,10 +10,9 @@
|
|
|
10
10
|
"esModuleInterop": true,
|
|
11
11
|
"skipLibCheck": true,
|
|
12
12
|
"forceConsistentCasingInFileNames": true,
|
|
13
|
-
"resolveJsonModule": true,
|
|
14
13
|
"declaration": true,
|
|
15
|
-
"
|
|
16
|
-
"
|
|
14
|
+
"sourceMap": true,
|
|
15
|
+
"resolveJsonModule": true
|
|
17
16
|
},
|
|
18
17
|
"include": ["src/**/*"],
|
|
19
18
|
"exclude": ["node_modules", "dist"]
|
package/package.json
CHANGED
|
@@ -1,58 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "adaptive-memory-multi-model-router",
|
|
3
|
-
"version": "2.15.
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
"description": "Universal LLM routing gateway. Routes requests to cheapest capable provider across 47+ models. Heuristic routing, parallel ensemble, semantic cache.",
|
|
7
|
-
"main": "dist/index.js",
|
|
3
|
+
"version": "2.15.4",
|
|
4
|
+
"description": "Best in class open source LLM router across 47+ providers with Evolution-inspired routing: EXP3 diversity, MVT rate-limit rotation, optimal defense theory verification.",
|
|
5
|
+
"main": "src/index.js",
|
|
8
6
|
"bin": {
|
|
9
|
-
"a3m-router": "
|
|
10
|
-
"a3m": "
|
|
11
|
-
"a3m-tui": "dist/tui/index.js",
|
|
12
|
-
"adaptive-memory-multi-model-router": "dist/cli.js"
|
|
7
|
+
"a3m-router": "./bin/cli.js",
|
|
8
|
+
"a3m": "./bin/cli.js"
|
|
13
9
|
},
|
|
14
|
-
"
|
|
15
|
-
"
|
|
16
|
-
"
|
|
17
|
-
"
|
|
18
|
-
"./cache": {
|
|
19
|
-
"import": "./dist/cache/semanticCache.js",
|
|
20
|
-
"require": "./dist/cache/semanticCache.js",
|
|
21
|
-
"types": "./dist/cache/semanticCache.d.ts"
|
|
22
|
-
},
|
|
23
|
-
"./compression": "./dist/utils/enhancedCompression.js",
|
|
24
|
-
"./autofetch": "./dist/memory/autoFetch.js",
|
|
25
|
-
"./vault": "./dist/memory/obsidianVault.js",
|
|
26
|
-
"./oauth": "./dist/integrations/oauth.js",
|
|
27
|
-
"./utils": "./dist/utils/tokenUtils.js",
|
|
28
|
-
"./cost": "./dist/cost/costTracker.js",
|
|
29
|
-
"./integrations": "./dist/integrations/index.js",
|
|
30
|
-
"./security": "./dist/security/inputValidation.js",
|
|
31
|
-
"./langchain": {
|
|
32
|
-
"import": "./dist/integrations/langchainAdapter.js",
|
|
33
|
-
"require": "./dist/integrations/langchainAdapter.js",
|
|
34
|
-
"types": "./dist/integrations/langchainAdapter.d.ts"
|
|
35
|
-
},
|
|
36
|
-
"./geo": "./dist/geo/generativeEngineOptimization.js",
|
|
37
|
-
"./server": {
|
|
38
|
-
"import": "./dist/server/proxyServer.js",
|
|
39
|
-
"require": "./dist/server/proxyServer.js",
|
|
40
|
-
"types": "./dist/server/proxyServer.d.ts"
|
|
41
|
-
},
|
|
42
|
-
"./guardrails": {
|
|
43
|
-
"import": "./dist/security/guardrails.js",
|
|
44
|
-
"require": "./dist/security/guardrails.js",
|
|
45
|
-
"types": "./dist/security/guardrails.d.ts"
|
|
46
|
-
},
|
|
47
|
-
"./analytics": {
|
|
48
|
-
"import": "./dist/analytics/costAnalytics.js",
|
|
49
|
-
"require": "./dist/analytics/costAnalytics.js",
|
|
50
|
-
"types": "./dist/analytics/costAnalytics.d.ts"
|
|
51
|
-
},
|
|
52
|
-
"./sdk": {
|
|
53
|
-
"import": "./dist/sdk.js",
|
|
54
|
-
"require": "./dist/sdk.js"
|
|
55
|
-
}
|
|
10
|
+
"scripts": {
|
|
11
|
+
"start": "node bin/cli.js serve",
|
|
12
|
+
"test": "node --test",
|
|
13
|
+
"lint": "eslint src/"
|
|
56
14
|
},
|
|
57
15
|
"keywords": [
|
|
58
16
|
"a3m",
|
|
@@ -156,53 +114,16 @@
|
|
|
156
114
|
"multi-llm-router",
|
|
157
115
|
"multi-model-router"
|
|
158
116
|
],
|
|
159
|
-
"author": "Das-rebel <subho@example.com>",
|
|
160
|
-
"license": "MIT",
|
|
161
117
|
"repository": {
|
|
162
118
|
"type": "git",
|
|
163
|
-
"url": "
|
|
164
|
-
},
|
|
165
|
-
"bugs": {
|
|
166
|
-
"url": "https://github.com/Das-rebel/a3m-router/issues"
|
|
119
|
+
"url": "https://github.com/Das-rebel/a3m-router"
|
|
167
120
|
},
|
|
168
121
|
"homepage": "https://das-rebel.github.io/a3m-router/",
|
|
169
|
-
"scripts": {
|
|
170
|
-
"test": "node test.js && node test/provider-test.js",
|
|
171
|
-
"test:py": "python3 -m pytest -q",
|
|
172
|
-
"test:all": "npm test && npm run test:py",
|
|
173
|
-
"eval:routing": "node eval/run_eval.js",
|
|
174
|
-
"eval:golden": "node eval/check_golden_routes.js",
|
|
175
|
-
"eval:faults": "node eval/run_fault_injection.js",
|
|
176
|
-
"eval:shadow": "node eval/run_shadow_eval.js",
|
|
177
|
-
"eval:report": "node eval/generate_report.js",
|
|
178
|
-
"eval:all": "npm run eval:routing && npm run eval:golden && npm run eval:faults && npm run eval:shadow && npm run eval:report",
|
|
179
|
-
"test:providers": "node test/provider-test.js",
|
|
180
|
-
"benchmark": "node test/benchmark.js",
|
|
181
|
-
"benchmark:verbose": "node test/benchmark.js --verbose",
|
|
182
|
-
"build": "npx tsc -p tsconfig.build.json",
|
|
183
|
-
"postinstall": "node scripts/postinstall-nudge.js"
|
|
184
|
-
},
|
|
185
|
-
"engines": {
|
|
186
|
-
"node": ">=18.0.0"
|
|
187
|
-
},
|
|
188
|
-
"peerDependencies": {
|
|
189
|
-
"@langchain/core": ">=0.1.0"
|
|
190
|
-
},
|
|
191
|
-
"peerDependenciesMeta": {
|
|
192
|
-
"@langchain/core": {
|
|
193
|
-
"optional": true
|
|
194
|
-
}
|
|
195
|
-
},
|
|
196
122
|
"dependencies": {
|
|
197
123
|
"blessed": "^0.1.81",
|
|
198
124
|
"nanoid": "^6.0.0"
|
|
199
125
|
},
|
|
200
|
-
"
|
|
201
|
-
"
|
|
202
|
-
|
|
203
|
-
"esbuild": "^0.28.1",
|
|
204
|
-
"typescript": "^7.0.2",
|
|
205
|
-
"vitest": "^4.1.9"
|
|
206
|
-
},
|
|
207
|
-
"types": "dist/index.d.ts"
|
|
126
|
+
"engines": {
|
|
127
|
+
"node": ">=18.0.0"
|
|
128
|
+
}
|
|
208
129
|
}
|
package/sitemap.xml
CHANGED
|
@@ -2,56 +2,62 @@
|
|
|
2
2
|
<ns0:urlset xmlns:ns0="http://www.sitemaps.org/schemas/sitemap/0.9">
|
|
3
3
|
<ns0:url>
|
|
4
4
|
<ns0:loc>https://das-rebel.github.io/a3m-router/</ns0:loc>
|
|
5
|
-
<ns0:lastmod>2026-
|
|
5
|
+
<ns0:lastmod>2026-07-25</ns0:lastmod>
|
|
6
6
|
<ns0:changefreq>weekly</ns0:changefreq>
|
|
7
7
|
<ns0:priority>1.0</ns0:priority>
|
|
8
8
|
</ns0:url>
|
|
9
9
|
<ns0:url>
|
|
10
10
|
<ns0:loc>https://das-rebel.github.io/a3m-router/quick-start</ns0:loc>
|
|
11
|
-
<ns0:lastmod>2026-
|
|
11
|
+
<ns0:lastmod>2026-07-25</ns0:lastmod>
|
|
12
12
|
<ns0:changefreq>weekly</ns0:changefreq>
|
|
13
13
|
<ns0:priority>0.9</ns0:priority>
|
|
14
14
|
</ns0:url>
|
|
15
15
|
<ns0:url>
|
|
16
16
|
<ns0:loc>https://das-rebel.github.io/a3m-router/benchmark</ns0:loc>
|
|
17
|
-
<ns0:lastmod>2026-
|
|
17
|
+
<ns0:lastmod>2026-07-25</ns0:lastmod>
|
|
18
18
|
<ns0:changefreq>weekly</ns0:changefreq>
|
|
19
19
|
<ns0:priority>0.9</ns0:priority>
|
|
20
20
|
</ns0:url>
|
|
21
21
|
<ns0:url>
|
|
22
22
|
<ns0:loc>https://das-rebel.github.io/a3m-router/api</ns0:loc>
|
|
23
|
-
<ns0:lastmod>2026-
|
|
23
|
+
<ns0:lastmod>2026-07-25</ns0:lastmod>
|
|
24
24
|
<ns0:changefreq>monthly</ns0:changefreq>
|
|
25
25
|
<ns0:priority>0.8</ns0:priority>
|
|
26
26
|
</ns0:url>
|
|
27
27
|
<ns0:url>
|
|
28
28
|
<ns0:loc>https://das-rebel.github.io/a3m-router/llms.txt</ns0:loc>
|
|
29
|
-
<ns0:lastmod>2026-
|
|
29
|
+
<ns0:lastmod>2026-07-25</ns0:lastmod>
|
|
30
30
|
<ns0:changefreq>weekly</ns0:changefreq>
|
|
31
31
|
<ns0:priority>0.7</ns0:priority>
|
|
32
32
|
</ns0:url>
|
|
33
33
|
<ns0:url>
|
|
34
34
|
<ns0:loc>https://das-rebel.github.io/a3m-router/llms-full.txt</ns0:loc>
|
|
35
|
-
<ns0:lastmod>2026-
|
|
35
|
+
<ns0:lastmod>2026-07-25</ns0:lastmod>
|
|
36
36
|
<ns0:changefreq>weekly</ns0:changefreq>
|
|
37
37
|
<ns0:priority>0.7</ns0:priority>
|
|
38
38
|
</ns0:url>
|
|
39
39
|
<ns0:url>
|
|
40
40
|
<ns0:loc>https://das-rebel.github.io/a3m-router/docs/ai-plugin.json</ns0:loc>
|
|
41
|
-
<ns0:lastmod>2026-
|
|
41
|
+
<ns0:lastmod>2026-07-25</ns0:lastmod>
|
|
42
42
|
<ns0:changefreq>monthly</ns0:changefreq>
|
|
43
43
|
<ns0:priority>0.6</ns0:priority>
|
|
44
44
|
</ns0:url>
|
|
45
45
|
<ns0:url>
|
|
46
46
|
<ns0:loc>https://github.com/Das-rebel/a3m-router</ns0:loc>
|
|
47
|
-
<ns0:lastmod>2026-
|
|
47
|
+
<ns0:lastmod>2026-07-25</ns0:lastmod>
|
|
48
48
|
<ns0:changefreq>weekly</ns0:changefreq>
|
|
49
49
|
<ns0:priority>0.9</ns0:priority>
|
|
50
50
|
</ns0:url>
|
|
51
51
|
<ns0:url>
|
|
52
52
|
<ns0:loc>https://www.npmjs.com/package/adaptive-memory-multi-model-router</ns0:loc>
|
|
53
|
-
<ns0:lastmod>2026-
|
|
53
|
+
<ns0:lastmod>2026-07-25</ns0:lastmod>
|
|
54
54
|
<ns0:changefreq>weekly</ns0:changefreq>
|
|
55
55
|
<ns0:priority>0.8</ns0:priority>
|
|
56
56
|
</ns0:url>
|
|
57
|
+
<ns0:url>
|
|
58
|
+
<ns0:loc>https://www.npmjs.com/package/adaptive-memory-multi-model-router?activeTab=readme</ns0:loc>
|
|
59
|
+
<ns0:lastmod>2026-07-25</ns0:lastmod>
|
|
60
|
+
<ns0:changefreq>weekly</ns0:changefreq>
|
|
61
|
+
<ns0:priority>0.9</ns0:priority>
|
|
62
|
+
</ns0:url>
|
|
57
63
|
</ns0:urlset>
|