adaptive-memory-multi-model-router 2.14.43 → 2.14.45

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.
@@ -129,18 +129,77 @@ class MemoryTree {
129
129
  }
130
130
  }
131
131
  /**
132
- * Search chunks by content
132
+ * Score a chunk by word-level overlap with the query (TF-IDF inspired).
133
+ * Returns a relevance score in [0, 1].
133
134
  */
134
- search(query) {
135
- const results = [];
136
- const queryLower = query.toLowerCase();
135
+ scoreChunkRelevance(query, content) {
136
+ const queryWords = this.tokenize(query);
137
+ const contentWords = this.tokenize(content);
138
+ if (queryWords.length === 0 || contentWords.length === 0)
139
+ return 0;
140
+ const contentSet = new Set(contentWords);
141
+ // Exact word matches (case-insensitive)
142
+ const exactMatches = queryWords.filter(w => contentSet.has(w)).length;
143
+ // Partial/fuzzy matches: query word is substring of content word or vice versa
144
+ let partialMatches = 0;
145
+ for (const qw of queryWords) {
146
+ if (exactMatches > 0 && contentSet.has(qw))
147
+ continue; // already counted
148
+ for (const cw of contentSet) {
149
+ if (cw.includes(qw) || qw.includes(cw)) {
150
+ partialMatches++;
151
+ break;
152
+ }
153
+ }
154
+ }
155
+ // Weighted score: exact matches worth more than partial
156
+ const weightedMatch = exactMatches * 1.0 + partialMatches * 0.4;
157
+ const coverage = weightedMatch / queryWords.length;
158
+ // Normalize by length ratio to favor concise matches
159
+ const lengthRatio = Math.min(1, contentWords.length / Math.max(queryWords.length, 1));
160
+ return Math.min(1, coverage * (1 / lengthRatio) * 0.5 + coverage * 0.5);
161
+ }
162
+ /**
163
+ * Simple word tokenizer — splits on whitespace and normalizes to lowercase.
164
+ */
165
+ tokenize(text) {
166
+ return text
167
+ .toLowerCase()
168
+ .split(/\s+/)
169
+ .map(w => w.replace(/[^a-z0-9\u00C0-\u024F]/g, ''))
170
+ .filter(w => w.length > 1);
171
+ }
172
+ /**
173
+ * Search chunks by relevance scoring.
174
+ * - Word-level TF-IDF style overlap scoring
175
+ * - Fuzzy partial word matching
176
+ * - Returns top-K results sorted by relevance
177
+ * - Recency fallback: if no word matches, returns most recently added chunks
178
+ */
179
+ search(query, topK = 10) {
180
+ const scored = [];
181
+ const queryWords = this.tokenize(query);
137
182
  for (const chunk of this.chunks.values()) {
138
- if (chunk.content.toLowerCase().includes(queryLower)) {
183
+ const relevance = this.scoreChunkRelevance(query, chunk.content);
184
+ if (relevance > 0) {
139
185
  chunk.accessCount++;
140
- results.push(chunk);
186
+ scored.push({ chunk, score: relevance });
141
187
  }
142
188
  }
143
- return results.sort((a, b) => b.score - a.score);
189
+ // Sort by score descending
190
+ scored.sort((a, b) => b.score - a.score);
191
+ // If we have results with relevance > 0, take topK
192
+ if (scored.length > 0) {
193
+ return scored.slice(0, topK).map(s => s.chunk);
194
+ }
195
+ // Recency fallback: return most recently added chunks
196
+ const fallback = Array.from(this.chunks.values())
197
+ .sort((a, b) => b.createdAt - a.createdAt)
198
+ .slice(0, topK);
199
+ for (const chunk of fallback) {
200
+ chunk.accessCount++;
201
+ }
202
+ return fallback;
144
203
  }
145
204
  /**
146
205
  * Get context for routing
@@ -1 +1 @@
1
- {"version":3,"file":"memoryTree.js","sourceRoot":"","sources":["../../src/memory/memoryTree.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"memoryTree.js","sourceRoot":"","sources":["../../src/memory/memoryTree.ts"],"names":[],"mappings":"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"}
@@ -111,10 +111,17 @@ ${decision.prompt}
111
111
  */
112
112
  escapeMarkdown(text) {
113
113
  return text
114
+ .replace(/\\/g, '\\\\')
114
115
  .replace(/\*/g, '\\*')
115
116
  .replace(/#/g, '\\#')
116
117
  .replace(/\|/g, '\\|')
117
- .replace(/`/g, '\\`');
118
+ .replace(/`/g, '\\`')
119
+ .replace(/\[/g, '\\[')
120
+ .replace(/\]/g, '\\]')
121
+ .replace(/\(/g, '\\(')
122
+ .replace(/\)/g, '\\)')
123
+ .replace(/>/g, '\\>')
124
+ .replace(/_/g, '\\_');
118
125
  }
119
126
  /**
120
127
  * Update the vault index
@@ -1 +1 @@
1
- {"version":3,"file":"obsidianVault.js","sourceRoot":"","sources":["../../src/memory/obsidianVault.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"obsidianVault.js","sourceRoot":"","sources":["../../src/memory/obsidianVault.ts"],"names":[],"mappings":"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"}
@@ -613,18 +613,30 @@ exports.DEFAULT_PROVIDERS = {
613
613
  baseUrl: 'https://openrouter.ai/api/v1/chat/completions',
614
614
  apiKeyEnv: 'OPENROUTER_API_KEY',
615
615
  models: [
616
+ // Premium-tier free models (high context, powerful) — assigned equivalent costs for routing
617
+ // so the router classifies them as mid/premium tier
618
+ 'moonshotai/kimi-k2.6:free',
619
+ 'qwen/qwen3-coder:free',
620
+ 'nvidia/nemotron-3-ultra-550b-a55b:free',
621
+ 'nvidia/nemotron-3-super-120b-a12b:free',
622
+ 'google/gemma-4-31b-it:free',
623
+ 'qwen/qwen3-next-80b-a3b-instruct:free',
624
+ 'nousresearch/hermes-3-llama-3.1-405b:free',
625
+ 'openai/gpt-oss-120b:free',
626
+ 'meta-llama/llama-3.3-70b-instruct:free',
627
+ // Paid models (passthrough pricing — set representative costs for routing)
616
628
  'openai/gpt-4o',
617
629
  'anthropic/claude-3.5-sonnet',
618
630
  'google/gemini-pro-1.5',
619
631
  'meta-llama/llama-3.1-70b-instruct',
620
632
  'mistralai/mistral-large',
621
633
  ],
622
- costPerK: { input: 0, output: 0 }, // Passthrough pricing
634
+ costPerK: { input: 0, output: 0 }, // Passthrough pricing — router uses model-specific costs
623
635
  tier: 'cheap',
624
636
  format: 'openai',
625
637
  type: 'api',
626
638
  priority: 34,
627
- maxTokens: 8192,
639
+ maxTokens: 128000,
628
640
  },
629
641
  // ========================================================================
630
642
  // CLI PROVIDERS (local tools)
@@ -809,7 +821,12 @@ async function healthCheck(providerId) {
809
821
  if (provider.type === 'cli') {
810
822
  const { execSync } = require('child_process');
811
823
  try {
812
- execSync(`which ${provider.cliCommand || provider.id}`, { stdio: 'pipe' });
824
+ // Sanitize command to prevent shell injection
825
+ const cmd = (provider.cliCommand || provider.id).replace(/[^a-zA-Z0-9-]/g, '');
826
+ if (!cmd) {
827
+ return { healthy: false, error: 'Invalid CLI command for ' + provider.name };
828
+ }
829
+ execSync(`which ${cmd}`, { stdio: 'pipe' });
813
830
  return { healthy: true, latency: 0, type: 'cli' };
814
831
  }
815
832
  catch {
@@ -1 +1 @@
1
- {"version":3,"file":"providerConfig.js","sourceRoot":"","sources":["../../src/providers/providerConfig.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"providerConfig.js","sourceRoot":"","sources":["../../src/providers/providerConfig.ts"],"names":[],"mappings":"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"}
@@ -32,14 +32,33 @@ function buildModelProfiles() {
32
32
  for (const [providerId, provider] of Object.entries(available)) {
33
33
  for (const model of provider.models) {
34
34
  const modelKey = model.includes('/') ? model : providerId + '/' + model;
35
- const costPerKInput = provider.costPerK ? provider.costPerK.input : 0;
36
- const costPerKOutput = provider.costPerK ? provider.costPerK.output : 0;
35
+ let costPerKInput = provider.costPerK ? provider.costPerK.input : 0;
36
+ let costPerKOutput = provider.costPerK ? provider.costPerK.output : 0;
37
+ // OpenRouter: per-model cost overrides for paid models
38
+ if (provider.name === 'OpenRouter') {
39
+ const orCosts = {
40
+ 'openai/gpt-4o': [2.5, 10],
41
+ 'anthropic/claude-3.5-sonnet': [3, 15],
42
+ 'google/gemini-pro-1.5': [1.25, 5],
43
+ 'meta-llama/llama-3.1-70b-instruct': [0.18, 0.18],
44
+ 'mistralai/mistral-large': [2, 6],
45
+ };
46
+ const orKey = model.includes('/') ? model : 'openrouter/' + model;
47
+ // Try matching by full key or by model name
48
+ for (const [pattern, cost] of Object.entries(orCosts)) {
49
+ if (orKey.includes(pattern) || model.includes(pattern.split('/')[1] || pattern)) {
50
+ costPerKInput = cost[0];
51
+ costPerKOutput = cost[1];
52
+ break;
53
+ }
54
+ }
55
+ }
37
56
  // Assign strengths based on model characteristics
38
57
  const strengths = [];
39
58
  if (provider.type === 'cli') {
40
59
  strengths.push('free', 'local');
41
60
  }
42
- if (costPerKInput < 0.3) {
61
+ if (costPerKInput < 0.3 && provider.name !== 'OpenRouter') {
43
62
  strengths.push('budget', 'fast');
44
63
  }
45
64
  else if (costPerKInput > 2) {
@@ -48,6 +67,29 @@ function buildModelProfiles() {
48
67
  if (provider.name === 'Mistral' || provider.name === 'Groq' || provider.name === 'Cerebras') {
49
68
  strengths.push('fast', 'coding');
50
69
  }
70
+ // OpenRouter premium free models get quality boosts
71
+ if (provider.name === 'OpenRouter') {
72
+ const modelLower = modelKey.toLowerCase();
73
+ // Premium-tier free models (large, high-context)
74
+ if (modelLower.includes('kimi') || modelLower.includes('qwen3-coder') ||
75
+ modelLower.includes('nemotron-3-ultra') || modelLower.includes('nemotron-3-super') ||
76
+ modelLower.includes('hermes-3') || modelLower.includes('gemma-4')) {
77
+ strengths.push('reasoning', 'long-context', 'premium');
78
+ }
79
+ // Mid-tier free models (good quality, smaller)
80
+ else if (modelLower.includes('gpt-oss') || modelLower.includes('qwen3-next') ||
81
+ modelLower.includes('gemma-4') || modelLower.includes('llama-3.3')) {
82
+ strengths.push('fast', 'reasoning');
83
+ }
84
+ // Budget free models
85
+ else {
86
+ strengths.push('fast');
87
+ }
88
+ }
89
+ // Minimax gets a quality boost (capable model, cheap pricing)
90
+ if (provider.name === 'MiniMax') {
91
+ strengths.push('fast', 'reasoning');
92
+ }
51
93
  if (provider.name === 'CommandCode') {
52
94
  strengths.push('code-aware', 'context-rich');
53
95
  }
@@ -352,6 +394,30 @@ function extractQueryFeatures(prompt) {
352
394
  const isCreative = /write a story|write a poem|creative|imagination|artistic/i.test(lower) || isTranslation;
353
395
  const isDevops = /docker|kubernetes|terraform|ansible|ci.cd|pipeline|sql|nosql|database|sqlserver|mysql|postgres|deploy|container|orchestrat/i.test(lower);
354
396
  const isMultimodal = /image|video|audio|generate.*picture|generate.*image|transcribe|voice/i.test(lower);
397
+ // === ARCHITECTURAL COMPLEXITY SIGNALS ===
398
+ // Boost complexity for system design / architecture queries
399
+ // These indicate the query needs a capable model
400
+ const archPatterns = [
401
+ /architect\s+(a\s+)?(distributed|real-time|high-availability|fault-tolerant|scalable|multi-region|global)/i,
402
+ /design\s+(a\s+)?(distributed|real-time|high-availability|fault-tolerant|scalable|multi-region|global)\s+(system|architecture|platform|infrastructure)/i,
403
+ /design\s+a\s+system\s+that\s+handles/i,
404
+ /data\s+warehouse\s+architecture/i,
405
+ /security\s+architecture\s+for/i,
406
+ /multi-cloud\s+hybrid/i,
407
+ /disaster\s+recovery\s+strategy/i,
408
+ /zero-downtime\s+deployment/i,
409
+ /petabyte-scale/i,
410
+ /billion\s+events?/i,
411
+ /million\s+transactions?/i,
412
+ /sensor\s+fusion/i,
413
+ /autonomous\s+vehicle/i,
414
+ /fraud\s+detection\s+system/i,
415
+ /privacy-preserving\s+analytics/i,
416
+ /real-time\s+(anomaly|fraud|video)\s+detection/i,
417
+ ];
418
+ const archMatches = archPatterns.filter(p => p.test(prompt)).length;
419
+ if (archMatches > 0)
420
+ complexity += 0.25 + (archMatches * 0.08);
355
421
  // Cap at 1.0
356
422
  complexity = Math.min(complexity, 1.0);
357
423
  // === SIGNAL: Risk Profile (Game-Theoretic) ===
@@ -396,6 +462,70 @@ function extractQueryFeatures(prompt) {
396
462
  }
397
463
  function scoreModelFit(model, features) {
398
464
  let score = model.quality_score * 0.6;
465
+ // === ADAPTIVE TIER DETECTION ===
466
+ // Uses cost percentiles computed from actually available providers.
467
+ // If user has only free models → everything is "free" tier.
468
+ // If user has free + groq + openai → quartiles split them naturally.
469
+ const modelCost = (model.cost_per_1k_input + model.cost_per_1k_output) / 2;
470
+ let tierFromModel;
471
+ if (model.strengths.includes('free') || modelCost === 0) {
472
+ tierFromModel = 'free';
473
+ }
474
+ else if (modelCost <= _costPercentiles.p25) {
475
+ tierFromModel = 'cheap';
476
+ }
477
+ else if (modelCost <= _costPercentiles.p75) {
478
+ tierFromModel = 'mid';
479
+ }
480
+ else {
481
+ tierFromModel = 'premium';
482
+ }
483
+ // === ADAPTIVE TIER SCORING ===
484
+ // Boost/penalty scales with how well the model's tier matches the query complexity
485
+ // Simple queries (0-0.3): strongly prefer free/cheap
486
+ // Medium queries (0.3-0.5): prefer cheap/mid
487
+ // Complex queries (0.5-0.65): prefer mid
488
+ // Very complex (0.65+): prefer premium/mid
489
+ if (features.complexity < 0.3) {
490
+ if (tierFromModel === 'free')
491
+ score += 0.20;
492
+ else if (tierFromModel === 'cheap')
493
+ score += 0.10;
494
+ else if (tierFromModel === 'mid')
495
+ score -= 0.05;
496
+ else if (tierFromModel === 'premium')
497
+ score -= 0.15;
498
+ }
499
+ else if (features.complexity < 0.5) {
500
+ if (tierFromModel === 'cheap')
501
+ score += 0.20;
502
+ else if (tierFromModel === 'free')
503
+ score += 0.10;
504
+ else if (tierFromModel === 'mid')
505
+ score += 0.05;
506
+ else if (tierFromModel === 'premium')
507
+ score -= 0.05;
508
+ }
509
+ else if (features.complexity <= 0.65) {
510
+ if (tierFromModel === 'mid')
511
+ score += 0.30;
512
+ else if (tierFromModel === 'cheap')
513
+ score += 0.10;
514
+ else if (tierFromModel === 'premium')
515
+ score += 0.10;
516
+ else if (tierFromModel === 'free')
517
+ score -= 0.20;
518
+ }
519
+ else {
520
+ if (tierFromModel === 'premium')
521
+ score += 0.35;
522
+ else if (tierFromModel === 'mid')
523
+ score += 0.15;
524
+ else if (tierFromModel === 'cheap')
525
+ score -= 0.15;
526
+ else if (tierFromModel === 'free')
527
+ score -= 0.30;
528
+ }
399
529
  // Domain match (reduced for budget models)
400
530
  // Premium models get +0.2 for domain match
401
531
  // Budget/free models get only +0.05 (they lack capability for complex domains)
@@ -478,9 +608,22 @@ function costEfficiency(model, features) {
478
608
  const weight = features.complexity < 0.5 ? 0.6 : features.complexity < 0.65 ? 0.3 : 0.15;
479
609
  return cost_score * weight;
480
610
  }
611
+ // Cost percentile cache for adaptive tier detection (updated on each routeQuery call)
612
+ let _costPercentiles = { p25: 0, p50: 0.5, p75: 1.0 };
613
+ // ============================================================
614
+ // ADAPTIVE SCORING CORE
615
+ // ============================================================
481
616
  function routeQuery(prompt, available_models, budget_multiplier = 1.0) {
482
617
  // Use cached profiles instead of rebuilding every time (5-10ms savings)
483
618
  const profiles = getModelProfiles();
619
+ // === ADAPTIVE: Compute cost percentiles from available providers ===
620
+ // This makes tier detection dynamic based on what the user has configured
621
+ const allCosts = Object.values(profiles).map(p => (p.cost_per_1k_input + p.cost_per_1k_output) / 2).sort((a, b) => a - b);
622
+ _costPercentiles = {
623
+ p25: allCosts[Math.floor(allCosts.length * 0.25)] || 0,
624
+ p50: allCosts[Math.floor(allCosts.length * 0.50)] || 0.5,
625
+ p75: allCosts[Math.floor(allCosts.length * 0.75)] || 1.0,
626
+ };
484
627
  const features = extractQueryFeatures(prompt);
485
628
  const candidate_names = available_models || Object.keys(profiles);
486
629
  // Filter to available models
@@ -508,10 +651,51 @@ function routeQuery(prompt, available_models, budget_multiplier = 1.0) {
508
651
  estimated_latency_ms: 0,
509
652
  };
510
653
  }
511
- // Sort by total score (quality vs cost tradeoff based on complexity)
512
- const complexity_bias = features.complexity > 0.6 ? 0.7 : features.complexity > 0.5 ? 0.45 : 0.3;
654
+ // === ADAPTIVE SCORING: Dynamic tier boundaries based on available providers ===
655
+ // Instead of fixed complexity thresholds, we analyze the actual provider landscape
656
+ // and adjust scoring to make the best use of what's available.
657
+ // Gather provider statistics for adaptive scoring
658
+ const allProfiles = Object.values(profiles);
659
+ const freeModels = allProfiles.filter(p => (p.cost_per_1k_input + p.cost_per_1k_output) === 0);
660
+ const paidModels = allProfiles.filter(p => (p.cost_per_1k_input + p.cost_per_1k_output) > 0);
661
+ const maxQuality = Math.max(...allProfiles.map(p => p.quality_score), 0.95);
662
+ const minQuality = Math.min(...allProfiles.map(p => p.quality_score), 0.72);
663
+ const qualityRange = maxQuality - minQuality;
664
+ // Calculate the "value gap" — how much better paid models are than free ones
665
+ const avgFreeQuality = freeModels.length > 0
666
+ ? freeModels.reduce((s, p) => s + p.quality_score, 0) / freeModels.length
667
+ : 0.72;
668
+ const avgPaidQuality = paidModels.length > 0
669
+ ? paidModels.reduce((s, p) => s + p.quality_score, 0) / paidModels.length
670
+ : 0.85;
671
+ const qualityGap = avgPaidQuality - avgFreeQuality;
672
+ // Adaptive complexity bias:
673
+ // - If quality gap is large (paid models are much better), weight quality more
674
+ // - If quality gap is small (free models are good enough), weight cost more
675
+ // - Scale by complexity: complex queries need quality, simple queries need cost savings
676
+ const baseComplexityBias = features.complexity < 0.3 ? 0.3
677
+ : features.complexity <= 0.5 ? 0.5
678
+ : features.complexity <= 0.65 ? 0.7
679
+ : 0.85;
680
+ // Adjust bias based on quality gap: bigger gap → more weight on quality
681
+ const gapAdjustment = Math.min(qualityGap * 0.5, 0.15); // max 0.15 adjustment
682
+ const complexity_bias = Math.min(baseComplexityBias + gapAdjustment, 0.9);
683
+ const cost_bias = 1 - complexity_bias;
684
+ // Adaptive quality floor: scale with complexity and available quality
685
+ // For complex queries, require at least avgPaidQuality if paid models exist
686
+ const adaptiveQualityFloor = features.complexity > 0.5
687
+ ? Math.max(avgPaidQuality - 0.1, 0.75)
688
+ : 0;
513
689
  const scoreFn = (c) => c.quality_score * complexity_bias + c.cost_score * (1 - complexity_bias);
514
- const topCandidates = (0, sorting_1.quickselectTopK)(candidates, 4, scoreFn);
690
+ let topCandidates = (0, sorting_1.quickselectTopK)(candidates, 4, scoreFn);
691
+ // Adaptive quality floor: for complex queries, prefer models above the floor
692
+ if (adaptiveQualityFloor > 0) {
693
+ const qualified = topCandidates.filter(c => c.quality_score >= adaptiveQualityFloor);
694
+ if (qualified.length > 0) {
695
+ topCandidates = qualified;
696
+ }
697
+ // If no model meets the floor, keep original topCandidates (graceful degradation)
698
+ }
515
699
  const primary = topCandidates[0];
516
700
  const secondary = topCandidates.slice(1, 3);
517
701
  // Calculate confidence based on score gap