adaptive-memory-multi-model-router 2.14.44 → 2.14.46

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.
@@ -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
@@ -1 +1 @@
1
- {"version":3,"file":"advancedRouter.js","sourceRoot":"","sources":["../../src/routing/advancedRouter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"advancedRouter.js","sourceRoot":"","sources":["../../src/routing/advancedRouter.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "adaptive-memory-multi-model-router",
3
- "version": "2.14.44",
3
+ "version": "2.14.46",
4
4
  "shortName": "A3M Router",
5
5
  "displayName": "A3M Router - Adaptive Memory Multi-Model Router",
6
6
  "description": "🥇 Cheapest LLM router on RouterArena ($0.05/1K) · 15K+ downloads in 2 weeks · Open-source AI gateway with parallel multi-LLM execution across 47+ providers, ensemble voting, semantic cache, and budget enforcement",
@@ -0,0 +1,32 @@
1
+ # Research State: Fix Routing Accuracy & Memory Search
2
+
3
+ ## Hypothesis H1: Routing accuracy can be fixed by adjusting complexity_bias and quality_score weights
4
+
5
+ **Current state**: 25.9% exact tier accuracy (21/81)
6
+ **Target**: 70%+ exact tier accuracy
7
+ **Root cause**: Free models (ollama, commandcode) have cost_score=1.0 which overwhelms quality_score even for complex queries
8
+
9
+ **Experiment plan**:
10
+ 1. Increase complexity_bias from 0.3 to 0.6 for mid-tier queries (complexity > 0.5)
11
+ 2. Add a quality floor: for complexity > 0.5, minimum quality_score threshold
12
+ 3. Test with 81 labeled queries
13
+ 4. Iterate until accuracy > 60%
14
+
15
+ ## Hypothesis H2: Memory search can be improved with TF-IDF scoring + fuzzy matching
16
+
17
+ **Current state**: 50% memory test pass (basic store/recall works, multi-item search fails)
18
+ **Target**: 100% memory test pass
19
+ **Root cause**: MemoryTree.search() only does exact substring match on chunk.content. When text is chunked, individual chunks don't contain the original search terms.
20
+
21
+ **Experiment plan**:
22
+ 1. Add TF-IDF based scoring to MemoryTree.search()
23
+ 2. Add fuzzy matching (Levenshtein distance) for partial matches
24
+ 3. Add tag-based boosting
25
+ 4. Return top-K results ranked by relevance score
26
+ 5. Test with the 4 memory benchmark tests
27
+
28
+ ## Success Criteria
29
+ - Routing accuracy: > 60% exact tier match
30
+ - Memory tests: 4/4 pass (100%)
31
+ - All existing unit tests still pass (28/28)
32
+ - npm build succeeds