adaptive-memory-multi-model-router 1.2.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.
- package/README.md +114 -0
- package/demo/research-demo.js +266 -0
- package/dist/cache/prefixCache.d.ts +114 -0
- package/dist/cache/prefixCache.d.ts.map +1 -0
- package/dist/cache/prefixCache.js +285 -0
- package/dist/cache/prefixCache.js.map +1 -0
- package/dist/cache/responseCache.d.ts +58 -0
- package/dist/cache/responseCache.d.ts.map +1 -0
- package/dist/cache/responseCache.js +153 -0
- package/dist/cache/responseCache.js.map +1 -0
- package/dist/cli.js +59 -0
- package/dist/cost/costTracker.d.ts +95 -0
- package/dist/cost/costTracker.d.ts.map +1 -0
- package/dist/cost/costTracker.js +240 -0
- package/dist/cost/costTracker.js.map +1 -0
- package/dist/index.d.ts +723 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +239 -0
- package/dist/index.js.map +1 -0
- package/dist/memory/episodicMemory.d.ts +82 -0
- package/dist/memory/episodicMemory.d.ts.map +1 -0
- package/dist/memory/episodicMemory.js +145 -0
- package/dist/memory/episodicMemory.js.map +1 -0
- package/dist/orchestration/haloOrchestrator.d.ts +102 -0
- package/dist/orchestration/haloOrchestrator.d.ts.map +1 -0
- package/dist/orchestration/haloOrchestrator.js +207 -0
- package/dist/orchestration/haloOrchestrator.js.map +1 -0
- package/dist/orchestration/mctsWorkflow.d.ts +85 -0
- package/dist/orchestration/mctsWorkflow.d.ts.map +1 -0
- package/dist/orchestration/mctsWorkflow.js +210 -0
- package/dist/orchestration/mctsWorkflow.js.map +1 -0
- package/dist/providers/localProvider.d.ts +102 -0
- package/dist/providers/localProvider.d.ts.map +1 -0
- package/dist/providers/localProvider.js +338 -0
- package/dist/providers/localProvider.js.map +1 -0
- package/dist/providers/registry.d.ts +55 -0
- package/dist/providers/registry.d.ts.map +1 -0
- package/dist/providers/registry.js +138 -0
- package/dist/providers/registry.js.map +1 -0
- package/dist/routing/advancedRouter.d.ts +68 -0
- package/dist/routing/advancedRouter.d.ts.map +1 -0
- package/dist/routing/advancedRouter.js +332 -0
- package/dist/routing/advancedRouter.js.map +1 -0
- package/dist/tools/tmlpdTools.d.ts +101 -0
- package/dist/tools/tmlpdTools.d.ts.map +1 -0
- package/dist/tools/tmlpdTools.js +368 -0
- package/dist/tools/tmlpdTools.js.map +1 -0
- package/dist/utils/batchProcessor.d.ts +96 -0
- package/dist/utils/batchProcessor.d.ts.map +1 -0
- package/dist/utils/batchProcessor.js +170 -0
- package/dist/utils/batchProcessor.js.map +1 -0
- package/dist/utils/compression.d.ts +61 -0
- package/dist/utils/compression.d.ts.map +1 -0
- package/dist/utils/compression.js +281 -0
- package/dist/utils/compression.js.map +1 -0
- package/dist/utils/reliability.d.ts +74 -0
- package/dist/utils/reliability.d.ts.map +1 -0
- package/dist/utils/reliability.js +177 -0
- package/dist/utils/reliability.js.map +1 -0
- package/dist/utils/speculativeDecoding.d.ts +117 -0
- package/dist/utils/speculativeDecoding.d.ts.map +1 -0
- package/dist/utils/speculativeDecoding.js +246 -0
- package/dist/utils/speculativeDecoding.js.map +1 -0
- package/dist/utils/tokenUtils.d.ts +50 -0
- package/dist/utils/tokenUtils.d.ts.map +1 -0
- package/dist/utils/tokenUtils.js +124 -0
- package/dist/utils/tokenUtils.js.map +1 -0
- package/examples/QUICKSTART.md +183 -0
- package/notebooks/quickstart.ipynb +157 -0
- package/package.json +83 -0
- package/python/examples.py +53 -0
- package/python/integrations.py +330 -0
- package/python/setup.py +28 -0
- package/python/tmlpd.py +369 -0
- package/qna/REDDIT_GAP_ANALYSIS.md +299 -0
- package/qna/TMLPD_QNA.md +751 -0
- package/rust/tmlpd.h +268 -0
- package/skill/SKILL.md +238 -0
- package/src/cache/prefixCache.ts +365 -0
- package/src/cache/responseCache.ts +147 -0
- package/src/cost/costTracker.ts +302 -0
- package/src/index.ts +224 -0
- package/src/memory/episodicMemory.ts +185 -0
- package/src/orchestration/haloOrchestrator.ts +266 -0
- package/src/orchestration/mctsWorkflow.ts +262 -0
- package/src/providers/localProvider.ts +406 -0
- package/src/providers/registry.ts +164 -0
- package/src/routing/advancedRouter.ts +406 -0
- package/src/tools/tmlpdTools.ts +433 -0
- package/src/utils/batchProcessor.ts +232 -0
- package/src/utils/compression.ts +325 -0
- package/src/utils/reliability.ts +221 -0
- package/src/utils/speculativeDecoding.ts +344 -0
- package/src/utils/tokenUtils.ts +145 -0
- package/tsconfig.json +18 -0
|
@@ -0,0 +1,338 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* TMLPD Local Provider Support
|
|
4
|
+
*
|
|
5
|
+
* Integration with local LLM runtimes:
|
|
6
|
+
* - Ollama (localhost:11434)
|
|
7
|
+
* - vLLM (localhost:8000)
|
|
8
|
+
* - LM Studio (localhost:1234)
|
|
9
|
+
*
|
|
10
|
+
* Enables privacy-preserving, cost-free parallel LLM execution.
|
|
11
|
+
*/
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.LocalProviderManager = exports.LocalProvider = void 0;
|
|
14
|
+
exports.createOllamaProvider = createOllamaProvider;
|
|
15
|
+
exports.createVLLMProvider = createVLLMProvider;
|
|
16
|
+
exports.createLMStudioProvider = createLMStudioProvider;
|
|
17
|
+
// Default endpoints for each runtime
|
|
18
|
+
const DEFAULT_ENDPOINTS = {
|
|
19
|
+
ollama: "http://localhost:11434",
|
|
20
|
+
vllm: "http://localhost:8000",
|
|
21
|
+
lmstudio: "http://localhost:1234"
|
|
22
|
+
};
|
|
23
|
+
class LocalProvider {
|
|
24
|
+
runtime;
|
|
25
|
+
endpoint;
|
|
26
|
+
default_model;
|
|
27
|
+
timeout_ms;
|
|
28
|
+
constructor(config) {
|
|
29
|
+
this.runtime = config.runtime;
|
|
30
|
+
this.endpoint = config.endpoint || DEFAULT_ENDPOINTS[config.runtime];
|
|
31
|
+
this.default_model = config.default_model || "llama-3.3-70b";
|
|
32
|
+
this.timeout_ms = config.timeout_ms || 120000;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* List available models on this runtime.
|
|
36
|
+
*/
|
|
37
|
+
async listModels() {
|
|
38
|
+
try {
|
|
39
|
+
if (this.runtime === "ollama") {
|
|
40
|
+
return await this.listOllamaModels();
|
|
41
|
+
}
|
|
42
|
+
else if (this.runtime === "vllm") {
|
|
43
|
+
return await this.listVLLMModels();
|
|
44
|
+
}
|
|
45
|
+
else if (this.runtime === "lmstudio") {
|
|
46
|
+
return await this.listLMStudioModels();
|
|
47
|
+
}
|
|
48
|
+
return [];
|
|
49
|
+
}
|
|
50
|
+
catch (error) {
|
|
51
|
+
console.error(`Failed to list models from ${this.runtime}:`, error);
|
|
52
|
+
return [];
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
async listOllamaModels() {
|
|
56
|
+
const response = await fetch(`${this.endpoint}/api/tags`, {
|
|
57
|
+
method: "GET",
|
|
58
|
+
headers: { "Content-Type": "application/json" }
|
|
59
|
+
});
|
|
60
|
+
if (!response.ok)
|
|
61
|
+
throw new Error(`Ollama API error: ${response.status}`);
|
|
62
|
+
const data = await response.json();
|
|
63
|
+
return (data.models || []).map((m) => ({
|
|
64
|
+
name: m.name,
|
|
65
|
+
size: m.size ? this.formatSize(m.size) : undefined,
|
|
66
|
+
quantization: m.details?.quantization,
|
|
67
|
+
capabilities: []
|
|
68
|
+
}));
|
|
69
|
+
}
|
|
70
|
+
async listVLLMModels() {
|
|
71
|
+
// vLLM doesn't have a model list API, use OpenAI compatible endpoint
|
|
72
|
+
const response = await fetch(`${this.endpoint}/v1/models`, {
|
|
73
|
+
method: "GET",
|
|
74
|
+
headers: { "Content-Type": "application/json" }
|
|
75
|
+
});
|
|
76
|
+
if (!response.ok)
|
|
77
|
+
throw new Error(`vLLM API error: ${response.status}`);
|
|
78
|
+
const data = await response.json();
|
|
79
|
+
return (data.data || []).map((m) => ({
|
|
80
|
+
name: m.id,
|
|
81
|
+
capabilities: m.extensions || []
|
|
82
|
+
}));
|
|
83
|
+
}
|
|
84
|
+
async listLMStudioModels() {
|
|
85
|
+
// LM Studio has a different API
|
|
86
|
+
const response = await fetch(`${this.endpoint}/api/v0/models`, {
|
|
87
|
+
method: "GET",
|
|
88
|
+
headers: { "Content-Type": "application/json" }
|
|
89
|
+
});
|
|
90
|
+
if (!response.ok)
|
|
91
|
+
throw new Error(`LM Studio API error: ${response.status}`);
|
|
92
|
+
const data = await response.json();
|
|
93
|
+
return (data.models || []).map((m) => ({
|
|
94
|
+
name: m.id || m.name || "unknown",
|
|
95
|
+
size: m.size,
|
|
96
|
+
capabilities: []
|
|
97
|
+
}));
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Generate completion (generic, works with all runtimes).
|
|
101
|
+
*/
|
|
102
|
+
async generate(prompt, model, options) {
|
|
103
|
+
const targetModel = model || this.default_model;
|
|
104
|
+
try {
|
|
105
|
+
if (this.runtime === "ollama") {
|
|
106
|
+
return await this.ollamaGenerate(targetModel, prompt, options);
|
|
107
|
+
}
|
|
108
|
+
else if (this.runtime === "vllm") {
|
|
109
|
+
return await this.vllmGenerate(targetModel, prompt, options);
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
return await this.lmstudioGenerate(targetModel, prompt, options);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
catch (error) {
|
|
116
|
+
return {
|
|
117
|
+
success: false,
|
|
118
|
+
error: `Local generation failed: ${error}`,
|
|
119
|
+
model: targetModel,
|
|
120
|
+
provider: this.runtime,
|
|
121
|
+
content: "",
|
|
122
|
+
duration_ms: 0,
|
|
123
|
+
tokens: 0,
|
|
124
|
+
cost: 0
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
async ollamaGenerate(model, prompt, options) {
|
|
129
|
+
const response = await fetch(`${this.endpoint}/api/generate`, {
|
|
130
|
+
method: "POST",
|
|
131
|
+
headers: { "Content-Type": "application/json" },
|
|
132
|
+
body: JSON.stringify({
|
|
133
|
+
model,
|
|
134
|
+
prompt,
|
|
135
|
+
stream: false,
|
|
136
|
+
options: options || {}
|
|
137
|
+
})
|
|
138
|
+
});
|
|
139
|
+
if (!response.ok)
|
|
140
|
+
throw new Error(`Ollama error: ${response.status}`);
|
|
141
|
+
const data = await response.json();
|
|
142
|
+
return {
|
|
143
|
+
success: true,
|
|
144
|
+
error: null,
|
|
145
|
+
model: data.model || model,
|
|
146
|
+
provider: "ollama",
|
|
147
|
+
content: data.response || "",
|
|
148
|
+
duration_ms: data.total_duration ? data.total_duration / 1_000_000 : 0,
|
|
149
|
+
tokens: data.eval_count || 0,
|
|
150
|
+
cost: 0 // Local = free
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
async vllmGenerate(model, prompt, options) {
|
|
154
|
+
// vLLM uses OpenAI-compatible API
|
|
155
|
+
const response = await fetch(`${this.endpoint}/v1/completions`, {
|
|
156
|
+
method: "POST",
|
|
157
|
+
headers: { "Content-Type": "application/json" },
|
|
158
|
+
body: JSON.stringify({
|
|
159
|
+
model,
|
|
160
|
+
prompt,
|
|
161
|
+
max_tokens: options?.max_tokens || 1024,
|
|
162
|
+
temperature: options?.temperature || 0.7
|
|
163
|
+
})
|
|
164
|
+
});
|
|
165
|
+
if (!response.ok)
|
|
166
|
+
throw new Error(`vLLM error: ${response.status}`);
|
|
167
|
+
const data = await response.json();
|
|
168
|
+
const completion = data.choices?.[0]?.text || "";
|
|
169
|
+
return {
|
|
170
|
+
success: true,
|
|
171
|
+
error: null,
|
|
172
|
+
model: data.model || model,
|
|
173
|
+
provider: "vllm",
|
|
174
|
+
content: completion,
|
|
175
|
+
duration_ms: data.elapsed_time ? data.elapsed_time * 1000 : 0,
|
|
176
|
+
tokens: data.usage?.total_tokens || 0,
|
|
177
|
+
cost: 0
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
async lmstudioGenerate(model, prompt, options) {
|
|
181
|
+
// LM Studio uses OpenAI-compatible API
|
|
182
|
+
const response = await fetch(`${this.endpoint}/v1/completions`, {
|
|
183
|
+
method: "POST",
|
|
184
|
+
headers: { "Content-Type": "application/json" },
|
|
185
|
+
body: JSON.stringify({
|
|
186
|
+
model,
|
|
187
|
+
prompt,
|
|
188
|
+
max_tokens: options?.max_tokens || 1024,
|
|
189
|
+
temperature: options?.temperature || 0.7
|
|
190
|
+
})
|
|
191
|
+
});
|
|
192
|
+
if (!response.ok)
|
|
193
|
+
throw new Error(`LM Studio error: ${response.status}`);
|
|
194
|
+
const data = await response.json();
|
|
195
|
+
const completion = data.choices?.[0]?.text || "";
|
|
196
|
+
return {
|
|
197
|
+
success: true,
|
|
198
|
+
error: null,
|
|
199
|
+
model: data.model || model,
|
|
200
|
+
provider: "lmstudio",
|
|
201
|
+
content: completion,
|
|
202
|
+
duration_ms: 0,
|
|
203
|
+
tokens: data.usage?.total_tokens || 0,
|
|
204
|
+
cost: 0
|
|
205
|
+
};
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Check if this runtime is available/healthy.
|
|
209
|
+
*/
|
|
210
|
+
async healthCheck() {
|
|
211
|
+
try {
|
|
212
|
+
if (this.runtime === "ollama") {
|
|
213
|
+
const response = await fetch(`${this.endpoint}/api/tags`, { method: "GET" });
|
|
214
|
+
return response.ok;
|
|
215
|
+
}
|
|
216
|
+
else if (this.runtime === "vllm" || this.runtime === "lmstudio") {
|
|
217
|
+
const response = await fetch(`${this.endpoint}/v1/models`, { method: "GET" });
|
|
218
|
+
return response.ok;
|
|
219
|
+
}
|
|
220
|
+
return false;
|
|
221
|
+
}
|
|
222
|
+
catch {
|
|
223
|
+
return false;
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Get runtime info.
|
|
228
|
+
*/
|
|
229
|
+
getInfo() {
|
|
230
|
+
return {
|
|
231
|
+
runtime: this.runtime,
|
|
232
|
+
endpoint: this.endpoint,
|
|
233
|
+
default_model: this.default_model,
|
|
234
|
+
timeout_ms: this.timeout_ms
|
|
235
|
+
};
|
|
236
|
+
}
|
|
237
|
+
formatSize(bytes) {
|
|
238
|
+
const units = ["B", "KB", "MB", "GB", "TB"];
|
|
239
|
+
let unitIndex = 0;
|
|
240
|
+
let size = bytes;
|
|
241
|
+
while (size >= 1024 && unitIndex < units.length - 1) {
|
|
242
|
+
size /= 1024;
|
|
243
|
+
unitIndex++;
|
|
244
|
+
}
|
|
245
|
+
return `${size.toFixed(1)} ${units[unitIndex]}`;
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
exports.LocalProvider = LocalProvider;
|
|
249
|
+
/**
|
|
250
|
+
* Manager for multiple local providers.
|
|
251
|
+
*/
|
|
252
|
+
class LocalProviderManager {
|
|
253
|
+
providers = new Map();
|
|
254
|
+
addProvider(name, config) {
|
|
255
|
+
this.providers.set(name, new LocalProvider(config));
|
|
256
|
+
}
|
|
257
|
+
async executeParallel(prompt, options) {
|
|
258
|
+
const models = options?.models || ["local/llama-3.3-70b"];
|
|
259
|
+
const results = [];
|
|
260
|
+
// Execute in parallel across providers
|
|
261
|
+
const promises = models.map(async (model) => {
|
|
262
|
+
// Parse model string like "ollama/llama-3.3-70b" or just "llama-3.3-70b"
|
|
263
|
+
const parts = model.split("/");
|
|
264
|
+
const providerType = parts.length > 1 ? parts[0] : "ollama";
|
|
265
|
+
const modelName = parts.length > 1 ? parts[1] : model;
|
|
266
|
+
const provider = this.providers.get(providerType) ||
|
|
267
|
+
new LocalProvider({ runtime: providerType });
|
|
268
|
+
return provider.generate(prompt, modelName);
|
|
269
|
+
});
|
|
270
|
+
const settled = await Promise.allSettled(promises);
|
|
271
|
+
for (let i = 0; i < settled.length; i++) {
|
|
272
|
+
const result = settled[i];
|
|
273
|
+
if (result.status === "fulfilled") {
|
|
274
|
+
results.push(result.value);
|
|
275
|
+
}
|
|
276
|
+
else {
|
|
277
|
+
results.push({
|
|
278
|
+
success: false,
|
|
279
|
+
error: result.reason?.message || "Unknown error",
|
|
280
|
+
model: models[i],
|
|
281
|
+
provider: "unknown",
|
|
282
|
+
content: "",
|
|
283
|
+
duration_ms: 0,
|
|
284
|
+
tokens: 0,
|
|
285
|
+
cost: 0
|
|
286
|
+
});
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
const successful = results.filter(r => r.success);
|
|
290
|
+
return {
|
|
291
|
+
success: successful.length > 0,
|
|
292
|
+
responses: results,
|
|
293
|
+
total_models: models.length,
|
|
294
|
+
successful_models: successful.length,
|
|
295
|
+
total_cost: results.reduce((sum, r) => sum + r.cost, 0),
|
|
296
|
+
duration_ms: Math.max(...results.map(r => r.duration_ms), 0)
|
|
297
|
+
};
|
|
298
|
+
}
|
|
299
|
+
async healthCheckAll() {
|
|
300
|
+
const results = {};
|
|
301
|
+
for (const [name, provider] of this.providers) {
|
|
302
|
+
results[name] = await provider.healthCheck();
|
|
303
|
+
}
|
|
304
|
+
return results;
|
|
305
|
+
}
|
|
306
|
+
listProviders() {
|
|
307
|
+
return Array.from(this.providers.keys());
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
exports.LocalProviderManager = LocalProviderManager;
|
|
311
|
+
// Utility function for creating common local configurations
|
|
312
|
+
function createOllamaProvider(model) {
|
|
313
|
+
return new LocalProvider({
|
|
314
|
+
runtime: "ollama",
|
|
315
|
+
default_model: model || "llama-3.3-70b"
|
|
316
|
+
});
|
|
317
|
+
}
|
|
318
|
+
function createVLLMProvider(endpoint, model) {
|
|
319
|
+
return new LocalProvider({
|
|
320
|
+
runtime: "vllm",
|
|
321
|
+
endpoint: endpoint || "http://localhost:8000",
|
|
322
|
+
default_model: model || "meta-llama/Llama-3.3-70b-Instruct"
|
|
323
|
+
});
|
|
324
|
+
}
|
|
325
|
+
function createLMStudioProvider(model) {
|
|
326
|
+
return new LocalProvider({
|
|
327
|
+
runtime: "lmstudio",
|
|
328
|
+
default_model: model || "llama-3.3-70b"
|
|
329
|
+
});
|
|
330
|
+
}
|
|
331
|
+
exports.default = {
|
|
332
|
+
LocalProvider,
|
|
333
|
+
LocalProviderManager,
|
|
334
|
+
createOllamaProvider,
|
|
335
|
+
createVLLMProvider,
|
|
336
|
+
createLMStudioProvider
|
|
337
|
+
};
|
|
338
|
+
//# sourceMappingURL=localProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"localProvider.js","sourceRoot":"","sources":["../../src/providers/localProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TMLPD Provider Registry
|
|
3
|
+
*
|
|
4
|
+
* Manages provider configurations, API keys, and base URLs.
|
|
5
|
+
*/
|
|
6
|
+
export interface ProviderConfig {
|
|
7
|
+
name: string;
|
|
8
|
+
apiKey: string;
|
|
9
|
+
baseUrl: string;
|
|
10
|
+
mode: "openai" | "anthropic" | "gemini";
|
|
11
|
+
priority: number;
|
|
12
|
+
enabled: boolean;
|
|
13
|
+
cooldownUntil: number;
|
|
14
|
+
failureCount: number;
|
|
15
|
+
lastError: string | null;
|
|
16
|
+
lastStatus: number | null;
|
|
17
|
+
}
|
|
18
|
+
export interface ProviderRegistryConfig {
|
|
19
|
+
providers: string[];
|
|
20
|
+
modelPriority: string[];
|
|
21
|
+
useOpenclawFallback: boolean;
|
|
22
|
+
maxTokens: number;
|
|
23
|
+
}
|
|
24
|
+
export declare class ProviderRegistry {
|
|
25
|
+
private providers;
|
|
26
|
+
private config;
|
|
27
|
+
private modelPriority;
|
|
28
|
+
constructor(config?: Partial<ProviderRegistryConfig>);
|
|
29
|
+
private initializeProviders;
|
|
30
|
+
/**
|
|
31
|
+
* Check if provider is ready (has API key, not in cooldown)
|
|
32
|
+
*/
|
|
33
|
+
isProviderReady(name: string): boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Get best available model from priority list
|
|
36
|
+
*/
|
|
37
|
+
selectModel(): string | null;
|
|
38
|
+
/**
|
|
39
|
+
* Get all providers sorted by priority
|
|
40
|
+
*/
|
|
41
|
+
getReadyProviders(): string[];
|
|
42
|
+
/**
|
|
43
|
+
* Record provider success
|
|
44
|
+
*/
|
|
45
|
+
recordSuccess(name: string): void;
|
|
46
|
+
/**
|
|
47
|
+
* Record provider failure
|
|
48
|
+
*/
|
|
49
|
+
recordFailure(name: string, statusCode: number | null, error: string): void;
|
|
50
|
+
/**
|
|
51
|
+
* Get provider status summary
|
|
52
|
+
*/
|
|
53
|
+
getStatus(): Record<string, any>;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/providers/registry.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,QAAQ,GAAG,WAAW,GAAG,QAAQ,CAAC;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;CACnB;AASD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,SAAS,CAA0C;IAC3D,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,aAAa,CAAW;gBAEpB,MAAM,GAAE,OAAO,CAAC,sBAAsB,CAAM;IAMxD,OAAO,CAAC,mBAAmB;IAiC3B;;OAEG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAOtC;;OAEG;IACH,WAAW,IAAI,MAAM,GAAG,IAAI;IAU5B;;OAEG;IACH,iBAAiB,IAAI,MAAM,EAAE;IAO7B;;OAEG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAUjC;;OAEG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAc3E;;OAEG;IACH,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CAoBjC"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* TMLPD Provider Registry
|
|
4
|
+
*
|
|
5
|
+
* Manages provider configurations, API keys, and base URLs.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.ProviderRegistry = void 0;
|
|
9
|
+
const DEFAULT_PROVIDER_CONFIG = {
|
|
10
|
+
providers: ["openai", "openrouter", "groq", "cerebras", "mistral", "xai", "zai", "anthropic", "google"],
|
|
11
|
+
modelPriority: ["openai/gpt-4o", "groq/llama-3.3-70b-versatile", "cerebras/llama-3.3-70b"],
|
|
12
|
+
useOpenclawFallback: false,
|
|
13
|
+
maxTokens: 4096,
|
|
14
|
+
};
|
|
15
|
+
class ProviderRegistry {
|
|
16
|
+
providers = new Map();
|
|
17
|
+
config;
|
|
18
|
+
modelPriority;
|
|
19
|
+
constructor(config = {}) {
|
|
20
|
+
this.config = { ...DEFAULT_PROVIDER_CONFIG, ...config };
|
|
21
|
+
this.modelPriority = this.config.modelPriority;
|
|
22
|
+
this.initializeProviders();
|
|
23
|
+
}
|
|
24
|
+
initializeProviders() {
|
|
25
|
+
// Initialize from environment
|
|
26
|
+
const envVars = {
|
|
27
|
+
openai: { key: "OPENAI_API_KEY", url: "OPENAI_OPENAI_BASE_URL", mode: "openai" },
|
|
28
|
+
openrouter: { key: "OPENROUTER_API_KEY", url: "OPENROUTER_OPENAI_BASE_URL", mode: "openai" },
|
|
29
|
+
groq: { key: "GROQ_API_KEY", url: "GROQ_OPENAI_BASE_URL", mode: "openai" },
|
|
30
|
+
cerebras: { key: "CEREBRAS_API_KEY", url: "CEREBRAS_OPENAI_BASE_URL", mode: "openai" },
|
|
31
|
+
mistral: { key: "MISTRAL_API_KEY", url: "MISTRAL_OPENAI_BASE_URL", mode: "openai" },
|
|
32
|
+
xai: { key: "XAI_API_KEY", url: "XAI_OPENAI_BASE_URL", mode: "openai" },
|
|
33
|
+
zai: { key: "ZAI_API_KEY", url: "ZAI_OPENAI_BASE_URL", mode: "anthropic" },
|
|
34
|
+
anthropic: { key: "ANTHROPIC_API_KEY", url: "ANTHROPIC_BASE_URL", mode: "anthropic" },
|
|
35
|
+
google: { key: "GOOGLE_API_KEY", url: "GOOGLE_GEMINI_BASE_URL", mode: "gemini" },
|
|
36
|
+
};
|
|
37
|
+
for (const [name, env] of Object.entries(envVars)) {
|
|
38
|
+
const apiKey = process.env[env.key] || "";
|
|
39
|
+
const baseUrl = process.env[env.url] || "";
|
|
40
|
+
this.providers.set(name, {
|
|
41
|
+
name,
|
|
42
|
+
apiKey,
|
|
43
|
+
baseUrl,
|
|
44
|
+
mode: env.mode,
|
|
45
|
+
priority: this.modelPriority.findIndex((m) => m.startsWith(name + "/")),
|
|
46
|
+
enabled: Boolean(apiKey),
|
|
47
|
+
cooldownUntil: 0,
|
|
48
|
+
failureCount: 0,
|
|
49
|
+
lastError: null,
|
|
50
|
+
lastStatus: null,
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Check if provider is ready (has API key, not in cooldown)
|
|
56
|
+
*/
|
|
57
|
+
isProviderReady(name) {
|
|
58
|
+
const provider = this.providers.get(name);
|
|
59
|
+
if (!provider || !provider.enabled)
|
|
60
|
+
return false;
|
|
61
|
+
if (Date.now() < provider.cooldownUntil)
|
|
62
|
+
return false;
|
|
63
|
+
return true;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Get best available model from priority list
|
|
67
|
+
*/
|
|
68
|
+
selectModel() {
|
|
69
|
+
for (const model of this.modelPriority) {
|
|
70
|
+
const providerName = model.split("/")[0];
|
|
71
|
+
if (this.isProviderReady(providerName)) {
|
|
72
|
+
return model;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return null;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Get all providers sorted by priority
|
|
79
|
+
*/
|
|
80
|
+
getReadyProviders() {
|
|
81
|
+
return Array.from(this.providers.entries())
|
|
82
|
+
.filter(([_, p]) => this.isProviderReady(p.name))
|
|
83
|
+
.sort((a, b) => a[1].priority - b[1].priority)
|
|
84
|
+
.map(([name]) => name);
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Record provider success
|
|
88
|
+
*/
|
|
89
|
+
recordSuccess(name) {
|
|
90
|
+
const provider = this.providers.get(name);
|
|
91
|
+
if (provider) {
|
|
92
|
+
provider.cooldownUntil = 0;
|
|
93
|
+
provider.failureCount = 0;
|
|
94
|
+
provider.lastError = null;
|
|
95
|
+
provider.lastStatus = null;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Record provider failure
|
|
100
|
+
*/
|
|
101
|
+
recordFailure(name, statusCode, error) {
|
|
102
|
+
const provider = this.providers.get(name);
|
|
103
|
+
if (!provider)
|
|
104
|
+
return;
|
|
105
|
+
provider.failureCount++;
|
|
106
|
+
provider.lastError = error;
|
|
107
|
+
provider.lastStatus = statusCode;
|
|
108
|
+
// Apply exponential backoff cooldown
|
|
109
|
+
const baseDelay = statusCode === 429 ? 60000 : statusCode === 403 ? 300000 : 30000;
|
|
110
|
+
const multiplier = Math.min(4, Math.pow(2, Math.max(0, provider.failureCount - 1)));
|
|
111
|
+
provider.cooldownUntil = Date.now() + baseDelay * multiplier;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Get provider status summary
|
|
115
|
+
*/
|
|
116
|
+
getStatus() {
|
|
117
|
+
const status = {};
|
|
118
|
+
for (const [name, provider] of this.providers.entries()) {
|
|
119
|
+
status[name] = {
|
|
120
|
+
enabled: provider.enabled,
|
|
121
|
+
mode: provider.mode,
|
|
122
|
+
ready: this.isProviderReady(name),
|
|
123
|
+
cooldownUntil: provider.cooldownUntil ? new Date(provider.cooldownUntil).toISOString() : null,
|
|
124
|
+
lastError: provider.lastError,
|
|
125
|
+
lastStatus: provider.lastStatus,
|
|
126
|
+
failureCount: provider.failureCount,
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
return {
|
|
130
|
+
modelPriority: this.modelPriority,
|
|
131
|
+
readyProviders: this.getReadyProviders(),
|
|
132
|
+
providers: status,
|
|
133
|
+
timestamp: new Date().toISOString(),
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
exports.ProviderRegistry = ProviderRegistry;
|
|
138
|
+
//# sourceMappingURL=registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/providers/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TMLPD Advanced Routing - RouteLLM Style
|
|
3
|
+
*
|
|
4
|
+
* Learned routing based on arXiv:2404.06035 (RouteLLM)
|
|
5
|
+
* Balances cost-quality tradeoff with confidence-based model selection
|
|
6
|
+
*/
|
|
7
|
+
export interface QueryFeatures {
|
|
8
|
+
complexity: number;
|
|
9
|
+
length: number;
|
|
10
|
+
has_code: boolean;
|
|
11
|
+
has_math: boolean;
|
|
12
|
+
is_multilingual: boolean;
|
|
13
|
+
is_creative: boolean;
|
|
14
|
+
requires_reasoning: boolean;
|
|
15
|
+
}
|
|
16
|
+
export interface ModelProfile {
|
|
17
|
+
name: string;
|
|
18
|
+
provider: string;
|
|
19
|
+
cost_per_1k_input: number;
|
|
20
|
+
cost_per_1k_output: number;
|
|
21
|
+
latency_ms: number;
|
|
22
|
+
quality_score: number;
|
|
23
|
+
strengths: string[];
|
|
24
|
+
context_window: number;
|
|
25
|
+
}
|
|
26
|
+
export interface RouteDecision {
|
|
27
|
+
primary_model: string;
|
|
28
|
+
fallback_models: string[];
|
|
29
|
+
confidence: number;
|
|
30
|
+
reasoning: string;
|
|
31
|
+
estimated_cost: number;
|
|
32
|
+
estimated_latency_ms: number;
|
|
33
|
+
}
|
|
34
|
+
export declare const MODEL_PROFILES: Record<string, ModelProfile>;
|
|
35
|
+
/**
|
|
36
|
+
* Extract features from prompt for routing decision
|
|
37
|
+
*/
|
|
38
|
+
export declare function extractQueryFeatures(prompt: string): QueryFeatures;
|
|
39
|
+
/**
|
|
40
|
+
* RouteLLM-style learned routing decision
|
|
41
|
+
*/
|
|
42
|
+
export declare function routeQuery(prompt: string, available_models?: string[], budget_multiplier?: number): RouteDecision;
|
|
43
|
+
/**
|
|
44
|
+
* Batch routing for multiple prompts
|
|
45
|
+
*/
|
|
46
|
+
export declare function routeBatch(prompts: string[], options?: {
|
|
47
|
+
same_model?: boolean;
|
|
48
|
+
max_cost_per_prompt?: number;
|
|
49
|
+
balance_cost?: boolean;
|
|
50
|
+
}): RouteDecision[];
|
|
51
|
+
/**
|
|
52
|
+
* Get model recommendation for task type
|
|
53
|
+
*/
|
|
54
|
+
export declare function recommendForTask(task: string): string[];
|
|
55
|
+
/**
|
|
56
|
+
* Update model profile from execution feedback (online learning)
|
|
57
|
+
*/
|
|
58
|
+
export declare function updateModelProfile(model_name: string, actual_latency_ms: number, actual_cost: number, quality_rating: number): void;
|
|
59
|
+
declare const _default: {
|
|
60
|
+
extractQueryFeatures: typeof extractQueryFeatures;
|
|
61
|
+
routeQuery: typeof routeQuery;
|
|
62
|
+
routeBatch: typeof routeBatch;
|
|
63
|
+
recommendForTask: typeof recommendForTask;
|
|
64
|
+
updateModelProfile: typeof updateModelProfile;
|
|
65
|
+
MODEL_PROFILES: Record<string, ModelProfile>;
|
|
66
|
+
};
|
|
67
|
+
export default _default;
|
|
68
|
+
//# sourceMappingURL=advancedRouter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"advancedRouter.d.ts","sourceRoot":"","sources":["../../src/routing/advancedRouter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,eAAe,EAAE,OAAO,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,kBAAkB,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAGD,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CA2FvD,CAAC;AAEF;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,CAiElE;AAgDD;;GAEG;AACH,wBAAgB,UAAU,CACxB,MAAM,EAAE,MAAM,EACd,gBAAgB,CAAC,EAAE,MAAM,EAAE,EAC3B,iBAAiB,GAAE,MAAY,GAC9B,aAAa,CAgEf;AAED;;GAEG;AACH,wBAAgB,UAAU,CACxB,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,CAAC,EAAE;IACR,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,GACA,aAAa,EAAE,CA2BjB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAMvD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,MAAM,EAClB,iBAAiB,EAAE,MAAM,EACzB,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,MAAM,GACrB,IAAI,CAgBN;;;;;;;;;AAED,wBAOE"}
|