adaptive-memory-multi-model-router 1.4.0 → 1.4.1
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/README.md +31 -94
- package/dist/memory/memoryTree.js +46 -8
- package/package.json +81 -147
- package/package.json.tmp +0 -0
package/README.md
CHANGED
|
@@ -21,7 +21,7 @@ You're paying **too much** for LLM inference. Running GPT-4 on simple queries. U
|
|
|
21
21
|
|
|
22
22
|
## The Solution
|
|
23
23
|
|
|
24
|
-
**A3M Router** learns your usage patterns and routes each request to the optimal model—automatically. Save 40% on costs. Get 5-10x speedups.
|
|
24
|
+
**A3M Router** learns your usage patterns and routes each request to the optimal model—automatically. Save 40% on costs. Get 5-10x speedups. Built on research from RouteLLM, RadixAttention, and Medusa.
|
|
25
25
|
|
|
26
26
|
```bash
|
|
27
27
|
npm install adaptive-memory-multi-model-router
|
|
@@ -29,16 +29,18 @@ npm install adaptive-memory-multi-model-router
|
|
|
29
29
|
|
|
30
30
|
---
|
|
31
31
|
|
|
32
|
-
## Features
|
|
32
|
+
## Features (v1.4.0)
|
|
33
33
|
|
|
34
34
|
| Capability | How It Works | Result |
|
|
35
35
|
|------------|-------------|--------|
|
|
36
36
|
| **Learned Routing** | RouteLLM cost-quality tradeoff | 40% cost reduction |
|
|
37
|
-
| **Adaptive Memory** |
|
|
37
|
+
| **Adaptive Memory** | Memory Tree + Episodic | 20x more accurate routing |
|
|
38
|
+
| **Auto-Fetch** | 20-min sync loop | Context-aware decisions |
|
|
38
39
|
| **Prefix Caching** | RadixAttention shared prompts | 5-10x speedup |
|
|
39
40
|
| **Speculative Decoding** | Medusa tree verification | 2-3x faster generation |
|
|
40
|
-
| **Token Compression** |
|
|
41
|
+
| **Token Compression** | TokenJuice-style (80% reduction) | 20-80% fewer tokens |
|
|
41
42
|
| **Circuit Breaker** | Exponential backoff | 99.9% uptime |
|
|
43
|
+
| **Obsidian Vault** | Markdown export | Human-readable logs |
|
|
42
44
|
|
|
43
45
|
---
|
|
44
46
|
|
|
@@ -50,8 +52,8 @@ npm install adaptive-memory-multi-model-router
|
|
|
50
52
|
import { createA3MRouter } from 'adaptive-memory-multi-model-router';
|
|
51
53
|
|
|
52
54
|
const router = createA3MRouter({
|
|
53
|
-
memory: true,
|
|
54
|
-
costBudget: 0.05
|
|
55
|
+
memory: true,
|
|
56
|
+
costBudget: 0.05
|
|
55
57
|
});
|
|
56
58
|
|
|
57
59
|
const result = await router.route({
|
|
@@ -67,10 +69,7 @@ console.log(result.output);
|
|
|
67
69
|
from adaptive_memory_multi_model_router import A3MRouter
|
|
68
70
|
|
|
69
71
|
router = A3MRouter()
|
|
70
|
-
result = router.route(
|
|
71
|
-
prompt="Analyze this dataset",
|
|
72
|
-
budget=0.02
|
|
73
|
-
)
|
|
72
|
+
result = router.route(prompt="Analyze this dataset", budget=0.02)
|
|
74
73
|
print(result.output)
|
|
75
74
|
```
|
|
76
75
|
|
|
@@ -79,114 +78,59 @@ print(result.output)
|
|
|
79
78
|
```bash
|
|
80
79
|
npx a3m-router route "Explain quantum computing"
|
|
81
80
|
npx a3m-router parallel "task1" "task2" "task3"
|
|
82
|
-
npx a3m-router cost
|
|
83
81
|
```
|
|
84
82
|
|
|
85
83
|
---
|
|
86
84
|
|
|
87
|
-
##
|
|
88
|
-
|
|
89
|
-
| Provider | Best For | Speed | Cost |
|
|
90
|
-
|----------|----------|-------|------|
|
|
91
|
-
| **OpenAI** | GPT-4o, GPT-4o-mini | Fast | $ |
|
|
92
|
-
| **OpenRouter** | 100+ models | Varies | $$ |
|
|
93
|
-
| **Groq** | Llama-3.3-70B | **Fastest** | Free tier |
|
|
94
|
-
| **Cerebras** | Llama-3.3-70B | Ultra-fast | Free tier |
|
|
95
|
-
| **Anthropic** | Claude-3.5-Sonnet | Fast | $$$ |
|
|
96
|
-
| **Google** | Gemini-Pro/Flash | Fast | $ |
|
|
97
|
-
| **DeepSeek** | Coding, Math | Fast | $ |
|
|
98
|
-
| **Fireworks** | Mixtral-8x7B | Fast | $ |
|
|
99
|
-
| **Perplexity** | Real-time search | Fast | $ |
|
|
100
|
-
| **Cohere** | RAG, Embeddings | Fast | $ |
|
|
101
|
-
| **Mistral** | Large/Small | Fast | $ |
|
|
102
|
-
| **AWS Bedrock** | Claude/Llama | Fast | $$$ |
|
|
103
|
-
| **xAI** | Grok-2 | Fast | $ |
|
|
104
|
-
| **Ollama** | Local models | Varies | **Free** |
|
|
85
|
+
## What's New in v1.4.0
|
|
105
86
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
import { createIntegration } from 'adaptive-memory-multi-model-router/integrations';
|
|
112
|
-
|
|
113
|
-
// GitHub - PRs, Issues, Repos
|
|
114
|
-
const github = createIntegration('github', { apiKey: 'ghp_...' });
|
|
115
|
-
await github.createIssue('owner', 'repo', 'Bug fix', 'Description');
|
|
116
|
-
|
|
117
|
-
// Slack - Messaging
|
|
118
|
-
const slack = createIntegration('slack', { webhookUrl: 'https://hooks.slack.com/...' });
|
|
119
|
-
await slack.sendMessage('#dev-team', 'Build complete!');
|
|
87
|
+
- **Enhanced Compression** - TokenJuice-style, up to 80% reduction
|
|
88
|
+
- **Auto-Fetch Sync** - 20-minute interval context sync
|
|
89
|
+
- **Memory Tree** - Hierarchical scoring and chunking
|
|
90
|
+
- **Obsidian Vault** - Markdown export for human review
|
|
91
|
+
- **OAuth Manager** - One-click GitHub, Slack, Gmail, Notion
|
|
120
92
|
|
|
121
|
-
|
|
122
|
-
const telegram = createIntegration('telegram', { botToken: '...' });
|
|
123
|
-
await telegram.sendMessage(chatId, 'Hello from A3M Router!');
|
|
124
|
-
|
|
125
|
-
// Notion - Docs & Databases
|
|
126
|
-
const notion = createIntegration('notion', { apiKey: 'secret_...' });
|
|
127
|
-
await notion.queryDatabase('database-id');
|
|
93
|
+
---
|
|
128
94
|
|
|
129
|
-
|
|
130
|
-
const linear = createIntegration('linear', { apiKey: 'lin_api_' });
|
|
131
|
-
await linear.createIssue('Fix auth bug', 'Critical', 'team-id');
|
|
95
|
+
## LLM Providers (14)
|
|
132
96
|
|
|
133
|
-
|
|
134
|
-
```
|
|
97
|
+
OpenAI, OpenRouter, Groq, Cerebras, Anthropic, Google, DeepSeek, Fireworks, Perplexity, Cohere, Mistral, AWS Bedrock, xAI, Ollama
|
|
135
98
|
|
|
136
99
|
---
|
|
137
100
|
|
|
138
|
-
##
|
|
139
|
-
|
|
140
|
-
**LangChain, LlamaIndex, AutoGen, CrewAI, HuggingFace** — all supported.
|
|
141
|
-
|
|
142
|
-
```python
|
|
143
|
-
from langchain import LLMChain
|
|
144
|
-
from adaptive_memory_multi_model_router import A3MRouter
|
|
101
|
+
## Agent & Tool Integrations (10)
|
|
145
102
|
|
|
146
|
-
|
|
147
|
-
router = A3MRouter(provider='openai')
|
|
148
|
-
chain = LLMChain(llm=router, prompt=my_prompt)
|
|
149
|
-
result = chain.run("your query")
|
|
150
|
-
```
|
|
103
|
+
GitHub, Slack, Telegram, Notion, Linear, Jira, Gmail, Discord, Airtable, Google Calendar
|
|
151
104
|
|
|
152
105
|
---
|
|
153
106
|
|
|
154
107
|
## Research-Backed
|
|
155
108
|
|
|
156
|
-
A3M Router implements techniques from peer-reviewed research—not experiments:
|
|
157
|
-
|
|
158
109
|
| Paper | Technique | Impact |
|
|
159
110
|
|-------|-----------|--------|
|
|
160
|
-
| [RouteLLM](https://arxiv.org/abs/2404.06035) | Learned
|
|
111
|
+
| [RouteLLM](https://arxiv.org/abs/2404.06035) | Learned routing | 40% cost reduction |
|
|
161
112
|
| [RadixAttention](https://arxiv.org/abs/2312.07104) | Prefix caching | 5-10x speedup |
|
|
162
113
|
| [Medusa](https://arxiv.org/abs/2401.10774) | Speculative decoding | 2-3x faster |
|
|
163
|
-
| [LLMLingua](https://arxiv.
|
|
114
|
+
| [LLMLingua](https://arxiv.org/abs/2403.12968) | Token compression | 20-80% fewer tokens |
|
|
164
115
|
|
|
165
116
|
---
|
|
166
117
|
|
|
167
118
|
## CLI Reference
|
|
168
119
|
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
| `a3m-router local "prompt"` | Local Ollama execution |
|
|
120
|
+
```bash
|
|
121
|
+
a3m-router route "prompt" # Smart routing
|
|
122
|
+
a3m-router parallel "t1" "t2" # Parallel execution
|
|
123
|
+
a3m-router compare "prompt" # Compare models
|
|
124
|
+
a3m-router cost # Show costs
|
|
125
|
+
a3m-router compress "text" # Token compression
|
|
126
|
+
a3m-router local "prompt" # Local Ollama
|
|
127
|
+
```
|
|
178
128
|
|
|
179
129
|
---
|
|
180
130
|
|
|
181
131
|
## Contributing
|
|
182
132
|
|
|
183
|
-
Issues and PRs welcome!
|
|
184
|
-
|
|
185
|
-
1. Fork the repo
|
|
186
|
-
2. Create your branch (`git checkout -b feature/amazing`)
|
|
187
|
-
3. Commit your changes (`git commit -m 'Add amazing feature'`)
|
|
188
|
-
4. Push to the branch (`git push origin feature/amazing`)
|
|
189
|
-
5. Open a Pull Request
|
|
133
|
+
Issues and PRs welcome!
|
|
190
134
|
|
|
191
135
|
---
|
|
192
136
|
|
|
@@ -194,10 +138,3 @@ Issues and PRs welcome!
|
|
|
194
138
|
|
|
195
139
|
MIT © Das-rebel
|
|
196
140
|
|
|
197
|
-
---
|
|
198
|
-
|
|
199
|
-
<div align="center">
|
|
200
|
-
|
|
201
|
-
**A3M Router** — Built for developers who care about cost, speed, and quality.
|
|
202
|
-
|
|
203
|
-
</div>
|
|
@@ -12,10 +12,17 @@ class MemoryTree {
|
|
|
12
12
|
generateId() { return `chunk_${Date.now()}_${this.idCounter++}`; }
|
|
13
13
|
|
|
14
14
|
async add(data) {
|
|
15
|
-
const
|
|
15
|
+
const texts = this.chunk(data);
|
|
16
16
|
const added = [];
|
|
17
|
-
for (const text of
|
|
18
|
-
const chunk = {
|
|
17
|
+
for (const text of texts) {
|
|
18
|
+
const chunk = {
|
|
19
|
+
id: this.generateId(),
|
|
20
|
+
content: text,
|
|
21
|
+
score: 0.5,
|
|
22
|
+
depth: 0,
|
|
23
|
+
createdAt: Date.now(),
|
|
24
|
+
accessCount: 0
|
|
25
|
+
};
|
|
19
26
|
this.chunks.set(chunk.id, chunk);
|
|
20
27
|
this.root.chunks.push(chunk);
|
|
21
28
|
added.push(chunk);
|
|
@@ -28,16 +35,47 @@ class MemoryTree {
|
|
|
28
35
|
let current = [], size = 0;
|
|
29
36
|
for (const word of words) {
|
|
30
37
|
size += word.length + 1;
|
|
31
|
-
if (size > this.maxChunkSize) {
|
|
32
|
-
|
|
38
|
+
if (size > this.maxChunkSize) {
|
|
39
|
+
chunks.push(current.join(' '));
|
|
40
|
+
current = [word];
|
|
41
|
+
size = word.length + 1;
|
|
42
|
+
} else {
|
|
43
|
+
current.push(word);
|
|
44
|
+
}
|
|
33
45
|
}
|
|
34
46
|
if (current.length) chunks.push(current.join(' '));
|
|
35
47
|
return chunks;
|
|
36
48
|
}
|
|
37
49
|
|
|
38
|
-
search(query) {
|
|
39
|
-
|
|
40
|
-
|
|
50
|
+
search(query) {
|
|
51
|
+
return Array.from(this.chunks.values()).filter(c => c.content.includes(query));
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
getContext(maxTokens = 3000) {
|
|
55
|
+
return Array.from(this.chunks.values())
|
|
56
|
+
.map(c => c.content)
|
|
57
|
+
.join('\n\n')
|
|
58
|
+
.slice(0, maxTokens);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
toMarkdown() {
|
|
62
|
+
return '# Memory Tree\n' + Array.from(this.chunks.values())
|
|
63
|
+
.map(c => `## ${c.id}\n${c.content}`)
|
|
64
|
+
.join('\n');
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
getStats() {
|
|
68
|
+
return {
|
|
69
|
+
totalChunks: this.chunks.size,
|
|
70
|
+
maxDepth: this.getMaxDepth(this.root),
|
|
71
|
+
rootChunks: this.root.chunks.length
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
getMaxDepth(node) {
|
|
76
|
+
if (node.children.length === 0) return node.depth;
|
|
77
|
+
return Math.max(...node.children.map(c => this.getMaxDepth(c)));
|
|
78
|
+
}
|
|
41
79
|
}
|
|
42
80
|
|
|
43
81
|
module.exports = { MemoryTree };
|
package/package.json
CHANGED
|
@@ -1,174 +1,108 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "adaptive-memory-multi-model-router",
|
|
3
|
-
"version": "1.4.
|
|
4
|
-
"
|
|
5
|
-
"
|
|
3
|
+
"version": "1.4.1",
|
|
4
|
+
"shortName": "A3M Router",
|
|
5
|
+
"displayName": "A3M Router - Adaptive Memory Multi-Model Router",
|
|
6
|
+
"description": "A3M Router - Adaptive Memory Multi-Model Router with learned routing (RouteLLM), prefix caching (RadixAttention), speculative decoding (Medusa), TokenJuice-style compression. 14 LLM providers, 10 integrations, Python bindings. 20x more adaptable for ML/AI developers.",
|
|
6
7
|
"main": "dist/index.js",
|
|
7
|
-
"types": "dist/index.d.ts",
|
|
8
8
|
"bin": {
|
|
9
|
-
"a3m-router": "dist/cli.js"
|
|
9
|
+
"a3m-router": "dist/cli.js",
|
|
10
|
+
"adaptive-memory-multi-model-router": "dist/cli.js"
|
|
10
11
|
},
|
|
11
|
-
"
|
|
12
|
-
"
|
|
13
|
-
"
|
|
14
|
-
"
|
|
15
|
-
"
|
|
16
|
-
"
|
|
12
|
+
"exports": {
|
|
13
|
+
".": "./dist/index.js",
|
|
14
|
+
"./providers": "./dist/providers/registry.js",
|
|
15
|
+
"./memory": "./dist/memory/memoryTree.js",
|
|
16
|
+
"./cache": "./dist/cache/prefixCache.js",
|
|
17
|
+
"./compression": "./dist/utils/enhancedCompression.js",
|
|
18
|
+
"./autofetch": "./dist/memory/autoFetch.js",
|
|
19
|
+
"./vault": "./dist/memory/obsidianVault.js",
|
|
20
|
+
"./oauth": "./dist/integrations/oauth.js",
|
|
21
|
+
"./utils": "./dist/utils/tokenUtils.js",
|
|
22
|
+
"./cost": "./dist/cost/costTracker.js",
|
|
23
|
+
"./integrations": "./dist/integrations/index.js"
|
|
17
24
|
},
|
|
18
25
|
"keywords": [
|
|
19
|
-
"
|
|
20
|
-
"
|
|
21
|
-
"
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
"
|
|
28
|
-
"llm-orchestration",
|
|
29
|
-
"llm",
|
|
30
|
-
"agent-orchestration",
|
|
31
|
-
"multi-agent",
|
|
32
|
-
"agent",
|
|
33
|
-
"parallel",
|
|
34
|
-
"streaming",
|
|
35
|
-
"cost-tracking",
|
|
36
|
-
"cost-optimization",
|
|
37
|
-
"cache",
|
|
26
|
+
"a3m",
|
|
27
|
+
"a3m-router",
|
|
28
|
+
"adaptive",
|
|
29
|
+
"adaptive-routing",
|
|
30
|
+
"agent-discoverable",
|
|
31
|
+
"ai-native",
|
|
32
|
+
"ai-agents",
|
|
33
|
+
"anthropic",
|
|
34
|
+
"batch-processing",
|
|
38
35
|
"caching",
|
|
36
|
+
"cerberas",
|
|
39
37
|
"circuit-breaker",
|
|
40
|
-
"retry",
|
|
41
|
-
"exponential-backoff",
|
|
42
|
-
"mcts",
|
|
43
|
-
"monte-carlo-tree-search",
|
|
44
|
-
"workflow-optimization",
|
|
45
|
-
"hierarchical-planning",
|
|
46
|
-
"halo",
|
|
47
|
-
"episodic-memory",
|
|
48
|
-
"semantic-memory",
|
|
49
|
-
"agent-memory",
|
|
50
|
-
"python",
|
|
51
|
-
"python-bindings",
|
|
52
|
-
"pypi",
|
|
53
|
-
"langchain",
|
|
54
|
-
"llamaindex",
|
|
55
|
-
"llama-index",
|
|
56
|
-
"autogen",
|
|
57
|
-
"crewai",
|
|
58
|
-
"huggingface",
|
|
59
|
-
"transformers",
|
|
60
|
-
"agent-codegen",
|
|
61
|
-
"ai-coding",
|
|
62
|
-
"openai",
|
|
63
|
-
"anthropic",
|
|
64
|
-
"google",
|
|
65
|
-
"groq",
|
|
66
|
-
"cerebras",
|
|
67
|
-
"mistral",
|
|
68
|
-
"xai",
|
|
69
|
-
"zai",
|
|
70
38
|
"claude",
|
|
71
|
-
"
|
|
39
|
+
"claude-router",
|
|
40
|
+
"cohere",
|
|
41
|
+
"context-aware",
|
|
42
|
+
"cost-optimization",
|
|
43
|
+
"deepseek",
|
|
44
|
+
"deepseek-chat",
|
|
45
|
+
"embeddable",
|
|
46
|
+
"fireworks",
|
|
72
47
|
"gemini",
|
|
73
|
-
"
|
|
74
|
-
"
|
|
75
|
-
"
|
|
48
|
+
"github-actions",
|
|
49
|
+
"gpt",
|
|
50
|
+
"gpt-4",
|
|
51
|
+
"gpt-4o",
|
|
52
|
+
"groq",
|
|
53
|
+
"huggingface",
|
|
54
|
+
"langchain",
|
|
55
|
+
"llm",
|
|
56
|
+
"llm-fusion",
|
|
57
|
+
"llm-optimization",
|
|
76
58
|
"llm-router",
|
|
77
|
-
"
|
|
78
|
-
"
|
|
79
|
-
"memory-based-router",
|
|
80
|
-
"memory-based-llm-router",
|
|
81
|
-
"multi-llm-router",
|
|
82
|
-
"llm-memory-router",
|
|
83
|
-
"adaptive-router",
|
|
84
|
-
"adaptive-llm-router",
|
|
85
|
-
"intelligent-router",
|
|
86
|
-
"intelligent-llm-router",
|
|
87
|
-
"learning-router",
|
|
88
|
-
"contextual-router",
|
|
89
|
-
"context-aware-router",
|
|
90
|
-
"task-aware-router",
|
|
91
|
-
"memory-augmented",
|
|
92
|
-
"memory-augmented-llm",
|
|
93
|
-
"episodic-memory-router",
|
|
94
|
-
"semantic-memory-router",
|
|
95
|
-
"task-memory",
|
|
96
|
-
"cross-context-memory",
|
|
97
|
-
"token-compression",
|
|
98
|
-
"context-compression",
|
|
99
|
-
"ison-format",
|
|
100
|
-
"message-truncation",
|
|
101
|
-
"context-management",
|
|
59
|
+
"llm-routing",
|
|
60
|
+
"llmlingua",
|
|
102
61
|
"local-llm",
|
|
62
|
+
"memory",
|
|
63
|
+
"memory-based",
|
|
64
|
+
"memory-tree",
|
|
65
|
+
"mistral",
|
|
66
|
+
"mixtral",
|
|
67
|
+
"mllm",
|
|
68
|
+
"model-router",
|
|
69
|
+
"multi-model",
|
|
70
|
+
"multi-model-router",
|
|
103
71
|
"ollama",
|
|
104
|
-
"
|
|
105
|
-
"
|
|
106
|
-
"
|
|
107
|
-
"privacy-llm",
|
|
108
|
-
"batch-processing",
|
|
109
|
-
"batch-execution",
|
|
110
|
-
"priority-queue",
|
|
111
|
-
"rate-limiting",
|
|
112
|
-
"token-counting",
|
|
113
|
-
"cost-estimation",
|
|
114
|
-
"cost-prediction",
|
|
115
|
-
"parallel-execution",
|
|
116
|
-
"multi-provider",
|
|
117
|
-
"fallback-chain",
|
|
118
|
-
"intelligent-failover",
|
|
119
|
-
"kv-cache",
|
|
120
|
-
"routellm",
|
|
72
|
+
"openai",
|
|
73
|
+
"openrouter",
|
|
74
|
+
"perplexity",
|
|
121
75
|
"prefix-caching",
|
|
122
|
-
"
|
|
76
|
+
"provider-router",
|
|
77
|
+
"python-bindings",
|
|
78
|
+
"quantization",
|
|
79
|
+
"radixattention",
|
|
80
|
+
"routellm",
|
|
81
|
+
"self-hosting",
|
|
123
82
|
"speculative-decoding",
|
|
124
|
-
"
|
|
125
|
-
"
|
|
126
|
-
"
|
|
127
|
-
"
|
|
128
|
-
"
|
|
129
|
-
"llmlingua",
|
|
130
|
-
"streamingllm",
|
|
131
|
-
"multimodel-orchestration",
|
|
132
|
-
"multi-agent-debate",
|
|
133
|
-
"self-consistency",
|
|
134
|
-
"tensor-parallelism",
|
|
135
|
-
"continuous-batching",
|
|
136
|
-
"arxiv",
|
|
137
|
-
"research-backed",
|
|
138
|
-
"icml",
|
|
139
|
-
"neurips",
|
|
140
|
-
"iclr"
|
|
83
|
+
"token-compression",
|
|
84
|
+
"tokenjuice",
|
|
85
|
+
"tmlpd",
|
|
86
|
+
"token-optimization",
|
|
87
|
+
"vllm"
|
|
141
88
|
],
|
|
142
|
-
"author": "
|
|
89
|
+
"author": "Das-rebel <subho@example.com>",
|
|
143
90
|
"license": "MIT",
|
|
144
|
-
"homepage": "https://github.com/Das-rebel/tmlpd-skill#readme",
|
|
145
91
|
"repository": {
|
|
146
92
|
"type": "git",
|
|
147
|
-
"url": "https://github.com/Das-rebel/
|
|
93
|
+
"url": "https://github.com/Das-rebel/adaptive-memory-multi-model-router"
|
|
148
94
|
},
|
|
149
95
|
"bugs": {
|
|
150
|
-
"url": "https://github.com/Das-rebel/
|
|
151
|
-
},
|
|
152
|
-
"dependencies": {
|
|
153
|
-
"nanoid": "^5.0.0"
|
|
96
|
+
"url": "https://github.com/Das-rebel/adaptive-memory-multi-model-router/issues"
|
|
154
97
|
},
|
|
155
|
-
"
|
|
156
|
-
|
|
157
|
-
"
|
|
98
|
+
"homepage": "https://github.com/Das-rebel/adaptive-memory-multi-model-router#readme",
|
|
99
|
+
"scripts": {
|
|
100
|
+
"test": "node test.js"
|
|
158
101
|
},
|
|
159
102
|
"engines": {
|
|
160
|
-
"node": ">=
|
|
103
|
+
"node": ">=16.0.0"
|
|
161
104
|
},
|
|
162
|
-
"
|
|
163
|
-
"
|
|
164
|
-
|
|
165
|
-
"Developer Tools",
|
|
166
|
-
"Programming"
|
|
167
|
-
],
|
|
168
|
-
"funding": {
|
|
169
|
-
"type": "individual",
|
|
170
|
-
"url": "https://github.com/sponsors/Das-rebel"
|
|
171
|
-
},
|
|
172
|
-
"shortName": "A3M Router",
|
|
173
|
-
"displayName": "A3M Router - Adaptive Memory Multi-Model Router"
|
|
105
|
+
"dependencies": {
|
|
106
|
+
"nanoid": "^5.0.0"
|
|
107
|
+
}
|
|
174
108
|
}
|
package/package.json.tmp
DELETED
|
File without changes
|