ai-consultants 2.10.5 → 2.10.8

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/CLAUDE.md CHANGED
@@ -6,7 +6,7 @@ AI Consultants is a multi-model AI deliberation system that queries up to 15 AI
6
6
 
7
7
  **Self-Exclusion**: The invoking agent is automatically excluded from the panel to prevent self-consultation. Claude Code won't query Claude, Codex CLI won't query Codex, etc.
8
8
 
9
- **Version**: 2.10.5
9
+ **Version**: 2.10.8
10
10
 
11
11
  ## Distribution
12
12
 
@@ -414,9 +414,9 @@ Three tiers of models are available for each consultant, configurable via `apply
414
414
 
415
415
  | Tier | Description | Example Models |
416
416
  |------|-------------|----------------|
417
- | **premium** | Latest flagship models | opus-4.6, gemini-3.1-pro-preview, gpt-5.3-codex |
418
- | **standard** | Good quality at reasonable cost | sonnet-4.6, gemini-3-flash-preview, gpt-5.3 |
419
- | **economy** | Optimized for speed and low cost | haiku-4.5, gemini-2.0-flash, gpt-4o-mini |
417
+ | **premium** | Latest flagship models | claude-opus-4-7, gemini-3.1-pro-preview, gpt-5.5 |
418
+ | **standard** | Good quality at reasonable cost | claude-sonnet-4-6, gemini-3-flash-preview, gpt-5.3 |
419
+ | **economy** | Optimized for speed and low cost | claude-haiku-4-5, gemini-2.0-flash, gpt-4o-mini |
420
420
 
421
421
  **Default models are now premium tier** for maximum quality.
422
422
 
@@ -429,7 +429,7 @@ apply_model_tier "economy" # Set all consultants to economy models
429
429
 
430
430
  # Get model for a specific consultant and tier (v2.8.1)
431
431
  get_model_for_tier "gemini" "premium" # → gemini-3.1-pro-preview
432
- get_model_for_tier "claude" "economy" # → haiku-4.5
432
+ get_model_for_tier "claude" "economy" # → claude-haiku-4-5
433
433
  ```
434
434
 
435
435
  ### Quality Tier Presets
@@ -451,17 +451,17 @@ All consultants now use premium models by default:
451
451
 
452
452
  | Consultant | Default Model |
453
453
  |------------|---------------|
454
- | Claude | opus-4.6 |
454
+ | Claude | claude-opus-4-7 |
455
455
  | Gemini | gemini-3.1-pro-preview |
456
- | Codex | gpt-5.3-codex |
456
+ | Codex | gpt-5.5 |
457
457
  | Mistral | mistral-large-3 |
458
- | Cursor | composer-1.5 |
459
- | DeepSeek | deepseek-reasoner |
458
+ | Cursor | composer-2 |
459
+ | DeepSeek | deepseek-v4-pro |
460
460
  | GLM | glm-5.1 |
461
- | Grok | grok-4.20-0309-reasoning |
461
+ | Grok | grok-4.3 |
462
462
  | Qwen3 | qwen3.6-plus |
463
463
  | Kimi | kimi-code/kimi-for-coding |
464
- | Aider | gpt-5.3-codex |
464
+ | Aider | nvidia/nemotron-3-super-120b-a12b:free |
465
465
  | MiniMax | MiniMax-M2.7 |
466
466
  | Kilo | auto |
467
467
  | Ollama | qwen2.5-coder:32b |
@@ -653,9 +653,9 @@ for f in scripts/*.sh scripts/lib/*.sh; do bash -n "$f" && echo "OK: $f"; done
653
653
  | `PANIC_CONFIDENCE_THRESHOLD` | 5 | Panic threshold (v2.2) |
654
654
  | `ENABLE_OLLAMA` | false | Local model support (v2.2) |
655
655
  | `OLLAMA_MODEL` | qwen2.5-coder:32b | Ollama model (v2.5 - premium default) |
656
- | `CLAUDE_MODEL` | opus-4.6 | Claude model (v2.5) |
656
+ | `CLAUDE_MODEL` | claude-opus-4-7 | Claude model (v2.5) |
657
657
  | `GEMINI_MODEL` | gemini-3.1-pro-preview | Gemini model (v2.5) |
658
- | `CODEX_MODEL` | gpt-5.3-codex | Codex model (v2.5) |
658
+ | `CODEX_MODEL` | gpt-5.5 | Codex model (v2.5) |
659
659
  | `MISTRAL_MODEL` | mistral-large-3 | Mistral model (v2.5) |
660
660
  | `SYNTHESIS_STRATEGY` | majority | Synthesis strategy (v2.2) |
661
661
  | `ENABLE_SEMANTIC_CACHE` | true | Semantic response caching (v2.3) |
@@ -802,6 +802,28 @@ curl -fsSL https://raw.githubusercontent.com/matteoscurati/ai-consultants/main/s
802
802
 
803
803
  ## Changelog
804
804
 
805
+ ### v2.10.8
806
+ - Fixed `docs/cost_rates.json` drift introduced by v2.10.6: `consultant_fallbacks` (used at runtime by `lib/costs.sh`) and `model_tiers` were still pointing at the old IDs (`opus-4.6`, `gpt-5.3-codex`, `composer-1.5`, `deepseek-reasoner`, `sonnet-4.6`, `haiku-4.5`)
807
+ - Added price entries for the v2.10.6 model IDs: `claude-opus-4-7`, `claude-sonnet-4-6`, `claude-haiku-4-5`, `gpt-5.5`, `composer-2`, `deepseek-v4-pro`, `nvidia/nemotron-3-super-120b-a12b:free`
808
+ - Moved superseded IDs to the legacy section so cost calculation still works for historical responses or pinned overrides
809
+ - Synced `COST_RATES.md` tables to match
810
+ - Pricing for `nvidia/nemotron-3-super-120b-a12b:free` set to $0/$0 (OpenRouter free tier)
811
+
812
+ ### v2.10.7
813
+ - Grok premium upgraded from `grok-4.20-0309-reasoning` to `grok-4.3` (released 2026-04-30)
814
+ - ~75% cheaper input ($1.25/M vs $5.00/M) and ~83% cheaper output ($2.50/M vs $15.00/M)
815
+ - 1M-token context window
816
+ - Moved `grok-4.20-0309-reasoning` to legacy section in cost catalog
817
+ - Standard (`grok-3`) and economy (`grok-3-mini`) tiers unchanged
818
+
819
+ ### v2.10.6
820
+ - Codex premium upgraded from `gpt-5.3-codex` to `gpt-5.5`
821
+ - Cursor premium upgraded from `composer-1.5` to `composer-2`
822
+ - Aider switched provider: `gpt-5.3-codex` → `nvidia/nemotron-3-super-120b-a12b:free` (free tier)
823
+ - DeepSeek premium upgraded from `deepseek-reasoner` to `deepseek-v4-pro`
824
+ - Claude IDs migrated from short aliases to canonical model IDs across all tiers: `opus-4.6` → `claude-opus-4-7`, `sonnet-4.6` → `claude-sonnet-4-6`, `haiku-4.5` → `claude-haiku-4-5`
825
+ - Fixed Kilo SIGPIPE abort under `set -euo pipefail` (replaced `head -c` with parameter expansion)
826
+
805
827
  ### v2.10.5
806
828
  - Qwen3 premium model upgraded from `qwen3.5-plus` to `qwen3.6-plus` ($0.325/$1.95 per M tokens)
807
829
  - Qwen3 standard tier now uses open-weight `qwen3.6-35b-a3b` (MoE, 35B total / 3B active)
package/README.md CHANGED
@@ -1,8 +1,8 @@
1
- # AI Consultants v2.10.5
1
+ # AI Consultants v2.10.8
2
2
 
3
3
  > Query multiple AI models simultaneously for expert opinions on coding questions. Get diverse perspectives, automatic synthesis, confidence-weighted recommendations, and multi-agent debate.
4
4
 
5
- [![Version](https://img.shields.io/badge/version-2.10.5-blue.svg)](https://github.com/matteoscurati/ai-consultants)
5
+ [![Version](https://img.shields.io/badge/version-2.10.8-blue.svg)](https://github.com/matteoscurati/ai-consultants)
6
6
  [![License](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)
7
7
  [![Claude Code Skill](https://img.shields.io/badge/Claude%20Code-Skill-orange.svg)](https://docs.anthropic.com/en/docs/claude-code/skills)
8
8
  [![GitHub stars](https://img.shields.io/github/stars/matteoscurati/ai-consultants?style=social)](https://github.com/matteoscurati/ai-consultants)
package/SKILL.md CHANGED
@@ -5,10 +5,10 @@ license: MIT
5
5
  compatibility: Requires bash, jq, and at least 2 AI CLI tools (gemini, codex, vibe, etc.). macOS and Linux.
6
6
  metadata:
7
7
  author: matteoscurati
8
- version: 2.10.5
8
+ version: 2.10.8
9
9
  ---
10
10
 
11
- # AI Consultants v2.10.5 - AI Expert Panel
11
+ # AI Consultants v2.10.8 - AI Expert Panel
12
12
 
13
13
  Simultaneously consult multiple AIs as "consultants" for coding questions. Each consultant has a **configurable persona** that influences their response style.
14
14
 
@@ -1,4 +1,4 @@
1
- # Cost Rates - AI Consultants v2.10.5
1
+ # Cost Rates - AI Consultants v2.10.8
2
2
 
3
3
  This page documents the per-token rates used by the cost tracking system.
4
4
 
@@ -21,22 +21,23 @@ Since v2.5, models are organized into three tiers. Use `apply_model_tier()` or `
21
21
  | gemini-3.1-pro-preview | Premium | $0.00125 | Gemini |
22
22
  | gemini-3-flash-preview | Standard | $0.000075 | Gemini |
23
23
  | gemini-2.0-flash | Economy | $0.0001 | Gemini |
24
- | gpt-5.3-codex | Premium | $0.01 | Codex |
25
- | gpt-5.3 | Standard | $0.005 | Codex |
26
- | gpt-4o-mini | Economy | $0.00015 | Codex |
27
- | opus-4.6 | Premium | $0.015 | Claude |
28
- | sonnet-4.6 | Standard | $0.003 | Claude |
29
- | haiku-4.5 | Economy | $0.00025 | Claude |
24
+ | gpt-5.5 | Premium | $0.01 | Codex |
25
+ | gpt-5.3 | Standard | $0.005 | Codex/Aider |
26
+ | gpt-4o-mini | Economy | $0.00015 | Codex/Aider |
27
+ | nvidia/nemotron-3-super-120b-a12b:free | Premium | $0.00 | Aider |
28
+ | claude-opus-4-7 | Premium | $0.015 | Claude |
29
+ | claude-sonnet-4-6 | Standard | $0.003 | Claude |
30
+ | claude-haiku-4-5 | Economy | $0.00025 | Claude |
30
31
  | mistral-large-3 | Premium | $0.004 | Mistral |
31
32
  | mistral-medium-latest | Standard | $0.0027 | Mistral |
32
33
  | devstral-small-2 | Economy | $0.001 | Mistral |
33
- | composer-1.5 | Premium/Standard | $0.005 | Cursor |
34
- | deepseek-reasoner | Premium | $0.002 | DeepSeek |
34
+ | composer-2 | Premium/Standard | $0.005 | Cursor |
35
+ | deepseek-v4-pro | Premium | $0.002 | DeepSeek |
35
36
  | deepseek-v3.2 | Standard | $0.0014 | DeepSeek |
36
37
  | deepseek-chat | Economy | $0.001 | DeepSeek |
37
38
  | glm-5.1 | Premium/Standard | $0.002 | GLM |
38
39
  | glm-4-flash | Economy | $0.0005 | GLM |
39
- | grok-4.20-0309-reasoning | Premium | $0.005 | Grok |
40
+ | grok-4.3 | Premium | $0.00125 | Grok |
40
41
  | grok-3 | Standard | $0.003 | Grok |
41
42
  | grok-3-mini | Economy | $0.001 | Grok |
42
43
  | qwen3.6-plus | Premium | $0.000325 | Qwen3 |
@@ -55,22 +56,23 @@ Since v2.5, models are organized into three tiers. Use `apply_model_tier()` or `
55
56
  | gemini-3.1-pro-preview | Premium | $0.005 | Gemini |
56
57
  | gemini-3-flash-preview | Standard | $0.0003 | Gemini |
57
58
  | gemini-2.0-flash | Economy | $0.0004 | Gemini |
58
- | gpt-5.3-codex | Premium | $0.03 | Codex |
59
- | gpt-5.3 | Standard | $0.015 | Codex |
60
- | gpt-4o-mini | Economy | $0.0006 | Codex |
61
- | opus-4.6 | Premium | $0.075 | Claude |
62
- | sonnet-4.6 | Standard | $0.015 | Claude |
63
- | haiku-4.5 | Economy | $0.00125 | Claude |
59
+ | gpt-5.5 | Premium | $0.03 | Codex |
60
+ | gpt-5.3 | Standard | $0.015 | Codex/Aider |
61
+ | gpt-4o-mini | Economy | $0.0006 | Codex/Aider |
62
+ | nvidia/nemotron-3-super-120b-a12b:free | Premium | $0.00 | Aider |
63
+ | claude-opus-4-7 | Premium | $0.075 | Claude |
64
+ | claude-sonnet-4-6 | Standard | $0.015 | Claude |
65
+ | claude-haiku-4-5 | Economy | $0.00125 | Claude |
64
66
  | mistral-large-3 | Premium | $0.012 | Mistral |
65
67
  | mistral-medium-latest | Standard | $0.0081 | Mistral |
66
68
  | devstral-small-2 | Economy | $0.003 | Mistral |
67
- | composer-1.5 | Premium/Standard | $0.015 | Cursor |
68
- | deepseek-reasoner | Premium | $0.006 | DeepSeek |
69
+ | composer-2 | Premium/Standard | $0.015 | Cursor |
70
+ | deepseek-v4-pro | Premium | $0.006 | DeepSeek |
69
71
  | deepseek-v3.2 | Standard | $0.004 | DeepSeek |
70
72
  | deepseek-chat | Economy | $0.003 | DeepSeek |
71
73
  | glm-5.1 | Premium/Standard | $0.006 | GLM |
72
74
  | glm-4-flash | Economy | $0.0015 | GLM |
73
- | grok-4.20-0309-reasoning | Premium | $0.015 | Grok |
75
+ | grok-4.3 | Premium | $0.0025 | Grok |
74
76
  | grok-3 | Standard | $0.009 | Grok |
75
77
  | grok-3-mini | Economy | $0.003 | Grok |
76
78
  | qwen3.6-plus | Premium | $0.00195 | Qwen3 |
@@ -1,24 +1,25 @@
1
1
  {
2
- "version": "2.10.5",
3
- "updated": "2026-03-04",
2
+ "version": "2.10.8",
3
+ "updated": "2026-05-03",
4
4
  "models": {
5
- "_comment_premium": "Premium tier models - March 2026",
6
- "opus-4.6": {"input": 5.00, "output": 25.00},
5
+ "_comment_premium": "Premium tier models - May 2026",
6
+ "claude-opus-4-7": {"input": 5.00, "output": 25.00},
7
7
  "gemini-3.1-pro-preview": {"input": 1.25, "output": 5.00},
8
- "gpt-5.3-codex": {"input": 3.00, "output": 12.00},
8
+ "gpt-5.5": {"input": 3.00, "output": 12.00},
9
9
  "mistral-large-3": {"input": 2.00, "output": 6.00},
10
- "deepseek-reasoner": {"input": 0.55, "output": 2.19},
10
+ "deepseek-v4-pro": {"input": 0.55, "output": 2.19},
11
11
  "glm-5.1": {"input": 0.50, "output": 2.00},
12
- "grok-4.20-0309-reasoning": {"input": 5.00, "output": 15.00},
12
+ "grok-4.3": {"input": 1.25, "output": 2.50},
13
13
  "qwen3.6-plus": {"input": 0.325, "output": 1.95},
14
14
  "qwen3.6-35b-a3b": {"input": 0.163, "output": 0.90},
15
- "composer-1.5": {"input": 0.005, "output": 0.015},
15
+ "composer-2": {"input": 0.005, "output": 0.015},
16
16
  "minimax-m2.7": {"input": 0.50, "output": 2.00},
17
17
  "kimi-code/kimi-for-coding": {"input": 0.50, "output": 2.00},
18
18
  "amp": {"input": 0.005, "output": 0.015},
19
+ "nvidia/nemotron-3-super-120b-a12b:free": {"input": 0.00, "output": 0.00},
19
20
 
20
21
  "_comment_standard": "Standard tier models",
21
- "sonnet-4.6": {"input": 3.00, "output": 15.00},
22
+ "claude-sonnet-4-6": {"input": 3.00, "output": 15.00},
22
23
  "gemini-3-flash-preview": {"input": 0.075, "output": 0.30},
23
24
  "gpt-5.3": {"input": 2.50, "output": 10.00},
24
25
  "mistral-medium-latest": {"input": 0.0027, "output": 0.0081},
@@ -26,7 +27,7 @@
26
27
  "grok-3": {"input": 3.00, "output": 9.00},
27
28
 
28
29
  "_comment_economy": "Economy tier models",
29
- "haiku-4.5": {"input": 0.001, "output": 0.005},
30
+ "claude-haiku-4-5": {"input": 0.001, "output": 0.005},
30
31
  "gemini-2.0-flash": {"input": 0.0001, "output": 0.0004},
31
32
  "gpt-4o-mini": {"input": 0.00015, "output": 0.0006},
32
33
  "devstral-small-2": {"input": 0.001, "output": 0.003},
@@ -37,7 +38,14 @@
37
38
  "minimax-m2.5": {"input": 0.30, "output": 1.50},
38
39
 
39
40
  "_comment_legacy": "Legacy models for backwards compatibility",
41
+ "opus-4.6": {"input": 5.00, "output": 25.00},
42
+ "sonnet-4.6": {"input": 3.00, "output": 15.00},
43
+ "haiku-4.5": {"input": 0.001, "output": 0.005},
44
+ "gpt-5.3-codex": {"input": 3.00, "output": 12.00},
45
+ "composer-1.5": {"input": 0.005, "output": 0.015},
46
+ "deepseek-reasoner": {"input": 0.55, "output": 2.19},
40
47
  "qwen3.5-plus": {"input": 1.60, "output": 6.40},
48
+ "grok-4.20-0309-reasoning": {"input": 5.00, "output": 15.00},
41
49
  "claude-opus-4-5-20251124": {"input": 5.00, "output": 25.00},
42
50
  "claude-sonnet-4-5-20251124": {"input": 3.00, "output": 15.00},
43
51
  "claude-3-5-haiku-20241022": {"input": 0.001, "output": 0.005},
@@ -69,18 +77,18 @@
69
77
  "minimax-m2.1": {"input": 0.30, "output": 1.50}
70
78
  },
71
79
  "consultant_fallbacks": {
72
- "_comment": "Premium defaults - Updated March 2026",
73
- "claude": "opus-4.6",
80
+ "_comment": "Premium defaults - Updated May 2026",
81
+ "claude": "claude-opus-4-7",
74
82
  "gemini": "gemini-3.1-pro-preview",
75
- "codex": "gpt-5.3-codex",
83
+ "codex": "gpt-5.5",
76
84
  "mistral": "mistral-large-3",
77
- "deepseek": "deepseek-reasoner",
85
+ "deepseek": "deepseek-v4-pro",
78
86
  "glm": "glm-5.1",
79
- "grok": "grok-4.20-0309-reasoning",
87
+ "grok": "grok-4.3",
80
88
  "qwen3": "qwen3.6-plus",
81
- "aider": "gpt-5.3-codex",
89
+ "aider": "nvidia/nemotron-3-super-120b-a12b:free",
82
90
  "kilo": "auto",
83
- "cursor": "composer-1.5",
91
+ "cursor": "composer-2",
84
92
  "amp": "amp",
85
93
  "kimi": "kimi-code/kimi-for-coding",
86
94
  "minimax": "minimax-m2.7",
@@ -89,24 +97,24 @@
89
97
  "model_tiers": {
90
98
  "_comment": "Model tiers for apply_model_tier() function",
91
99
  "premium": {
92
- "claude": "opus-4.6",
100
+ "claude": "claude-opus-4-7",
93
101
  "gemini": "gemini-3.1-pro-preview",
94
- "codex": "gpt-5.3-codex",
102
+ "codex": "gpt-5.5",
95
103
  "mistral": "mistral-large-3",
96
- "deepseek": "deepseek-reasoner",
104
+ "deepseek": "deepseek-v4-pro",
97
105
  "glm": "glm-5.1",
98
- "grok": "grok-4.20-0309-reasoning",
106
+ "grok": "grok-4.3",
99
107
  "qwen3": "qwen3.6-plus",
100
- "aider": "gpt-5.3-codex",
108
+ "aider": "nvidia/nemotron-3-super-120b-a12b:free",
101
109
  "kilo": "auto",
102
- "cursor": "composer-1.5",
110
+ "cursor": "composer-2",
103
111
  "amp": "amp",
104
112
  "kimi": "kimi-code/kimi-for-coding",
105
113
  "minimax": "minimax-m2.7",
106
114
  "ollama": "qwen2.5-coder:32b"
107
115
  },
108
116
  "standard": {
109
- "claude": "sonnet-4.6",
117
+ "claude": "claude-sonnet-4-6",
110
118
  "gemini": "gemini-3-flash-preview",
111
119
  "codex": "gpt-5.3",
112
120
  "mistral": "mistral-medium-latest",
@@ -116,14 +124,14 @@
116
124
  "qwen3": "qwen3.6-35b-a3b",
117
125
  "aider": "gpt-5.3",
118
126
  "kilo": "auto",
119
- "cursor": "composer-1.5",
127
+ "cursor": "composer-2",
120
128
  "amp": "amp",
121
129
  "kimi": "kimi-code/kimi-for-coding",
122
130
  "minimax": "minimax-m2.7",
123
131
  "ollama": "llama3.3"
124
132
  },
125
133
  "economy": {
126
- "claude": "haiku-4.5",
134
+ "claude": "claude-haiku-4-5",
127
135
  "gemini": "gemini-2.0-flash",
128
136
  "codex": "gpt-4o-mini",
129
137
  "mistral": "devstral-small-2",
@@ -0,0 +1,59 @@
1
+ # Release v2.10.6
2
+
3
+ **Date:** 2026-05-02
4
+ **Type:** Patch — Premium model upgrades across 5 consultants + Kilo SIGPIPE fix
5
+ **Previous:** v2.10.5
6
+
7
+ ## Highlights
8
+
9
+ - Codex, Cursor, Aider, DeepSeek, and Claude all bumped to newer premium defaults
10
+ - Aider switches provider to NVIDIA Nemotron 3 Super (free tier) via OpenRouter
11
+ - Claude model IDs migrated from short aliases (`opus-4.6`) to canonical IDs (`claude-opus-4-7`)
12
+ - Kilo no longer aborts under `set -euo pipefail` due to SIGPIPE from `head -c`
13
+
14
+ ## What's New
15
+
16
+ ### Premium Model Upgrades
17
+
18
+ | Consultant | Before (v2.10.5) | After (v2.10.6) |
19
+ |------------|------------------|------------------|
20
+ | Codex | `gpt-5.3-codex` | `gpt-5.5` |
21
+ | Cursor | `composer-1.5` | `composer-2` |
22
+ | Aider | `gpt-5.3-codex` | `nvidia/nemotron-3-super-120b-a12b:free` |
23
+ | DeepSeek | `deepseek-reasoner` | `deepseek-v4-pro` |
24
+ | Claude | `opus-4.6` / `sonnet-4.6` / `haiku-4.5` | `claude-opus-4-7` / `claude-sonnet-4-6` / `claude-haiku-4-5` |
25
+
26
+ The Claude rename also covers standard and economy tiers — all three Claude tiers now use canonical IDs (`claude-<family>-<major>-<minor>`) matching the Anthropic API model identifiers, eliminating the alias indirection that previously required mapping in API mode.
27
+
28
+ Aider moves off OpenAI Codex to NVIDIA's Nemotron 3 Super 120B (A12B-active MoE) on the OpenRouter free tier, lowering cost-per-consultation for collaborative coding workflows.
29
+
30
+ ### Kilo SIGPIPE Fix
31
+
32
+ `query_kilo.sh` previously truncated output via `echo "$CONTENT" | head -5 | ... | head -c 200`. Under `set -o pipefail`, `head -c` closing the pipe before the upstream `sed` finished writing produced a SIGPIPE that aborted the entire script. Replaced the trailing `head -c` with bash parameter expansion (`${var:0:N}`), which truncates safely without involving the pipeline.
33
+
34
+ ## Breaking Changes
35
+
36
+ None. Existing `CLAUDE_MODEL`, `CODEX_MODEL`, `CURSOR_MODEL`, `AIDER_MODEL`, and `DEEPSEEK_MODEL` overrides continue to work — only the *defaults* changed.
37
+
38
+ If you were relying on the short Claude aliases (`opus-4.6`, etc.) in scripts, those still work as overrides through the CLI; the change only affects what's selected when no override is present.
39
+
40
+ ## Upgrade Guide
41
+
42
+ ```bash
43
+ # If installed via git clone
44
+ cd ~/.claude/skills/ai-consultants && git pull
45
+
46
+ # If installed via curl | bash
47
+ curl -fsSL https://raw.githubusercontent.com/matteoscurati/ai-consultants/main/scripts/install.sh | bash
48
+ ```
49
+
50
+ No configuration changes required.
51
+
52
+ ## Commits
53
+
54
+ - `e797d69` fix(kilo): use parameter expansion to avoid SIGPIPE under set -euo pipefail
55
+ - `e52d6d4` feat: upgrade Codex, Cursor, Aider, DeepSeek, Claude premium models
56
+
57
+ ## Contributors
58
+
59
+ - @matteoscurati
@@ -0,0 +1,53 @@
1
+ # Release v2.10.7
2
+
3
+ **Date:** 2026-05-02
4
+ **Type:** Patch — Grok premium model upgrade to grok-4.3
5
+ **Previous:** v2.10.6
6
+
7
+ ## Highlights
8
+
9
+ - Grok premium upgraded from `grok-4.20-0309-reasoning` to `grok-4.3`
10
+ - ~75% cheaper input, ~83% cheaper output, with a 1M-token context window
11
+ - xAI explicitly recommends migrating all callers to grok-4.3
12
+
13
+ ## What's New
14
+
15
+ ### Grok 4.3 Upgrade
16
+
17
+ xAI released Grok 4.3 on April 30, 2026 as their flagship model, replacing the previous reasoning-focused `grok-4.20-0309-reasoning`. The new model is positioned as both the most intelligent and the fastest in the lineup, with aggressive pricing.
18
+
19
+ | Tier | Before (v2.10.6) | After (v2.10.7) |
20
+ |------|-------------------|------------------|
21
+ | Premium | grok-4.20-0309-reasoning ($5.00/$15.00 per M) | grok-4.3 ($1.25/$2.50 per M) |
22
+ | Standard | grok-3 ($3.00/$9.00 per M) | grok-3 (unchanged) |
23
+ | Economy | grok-3-mini ($1.00/$3.00 per M) | grok-3-mini (unchanged) |
24
+
25
+ The premium tier moves from $20.00 combined per million tokens (input + output average) to $3.75 — a roughly 5x reduction at typical query shapes. The 1M-token context window is unchanged from the prior reasoning variant.
26
+
27
+ **Note on tiered pricing:** xAI bills requests exceeding 200k input tokens at a higher rate. For very long-context queries, consult the xAI Console for the exact tiered pricing.
28
+
29
+ The standard and economy tiers continue to use `grok-3` and `grok-3-mini` respectively. The previous premium model `grok-4.20-0309-reasoning` was moved to the legacy section of `docs/cost_rates.json` so cost calculation continues to work for any historical responses or pinned overrides.
30
+
31
+ ## Breaking Changes
32
+
33
+ None. Existing `GROK_MODEL` overrides continue to work — only the default changed.
34
+
35
+ ## Upgrade Guide
36
+
37
+ ```bash
38
+ # If installed via git clone
39
+ cd ~/.claude/skills/ai-consultants && git pull
40
+
41
+ # If installed via curl | bash
42
+ curl -fsSL https://raw.githubusercontent.com/matteoscurati/ai-consultants/main/scripts/install.sh | bash
43
+ ```
44
+
45
+ No configuration changes required.
46
+
47
+ ## Commits
48
+
49
+ - `1d3a53b` feat(grok): upgrade premium to grok-4.3 (released 2026-04-30)
50
+
51
+ ## Contributors
52
+
53
+ - @matteoscurati
@@ -0,0 +1,58 @@
1
+ # Release v2.10.8
2
+
3
+ **Date:** 2026-05-03
4
+ **Type:** Patch — Cost catalog sync (fixes v2.10.6 drift)
5
+ **Previous:** v2.10.7
6
+
7
+ ## Highlights
8
+
9
+ - Fixes a runtime drift introduced by v2.10.6: `docs/cost_rates.json` was still pointing `consultant_fallbacks` at the old model IDs (`opus-4.6`, `gpt-5.3-codex`, `composer-1.5`, `deepseek-reasoner`)
10
+ - Adds price entries for the v2.10.6 model IDs (Claude canonical IDs, `gpt-5.5`, `composer-2`, `deepseek-v4-pro`, `nvidia/nemotron-3-super-120b-a12b:free`)
11
+ - Old IDs preserved in the legacy section so cost calculation still works for historical responses or pinned overrides
12
+
13
+ ## What's New
14
+
15
+ ### Cost Catalog Sync
16
+
17
+ In v2.10.6 we updated `scripts/config.sh` to use canonical model IDs for Claude and to switch Codex/Cursor/Aider/DeepSeek to newer models. However, `docs/cost_rates.json` — which is read at runtime by `lib/costs.sh` to resolve fallback prices when a consultant doesn't report its own model — was not updated. Two effects:
18
+
19
+ 1. `consultant_fallbacks.claude = "opus-4.6"` would have caused fallback cost lookups to use `opus-4.6` even when the consultant ran on `claude-opus-4-7`. The price for `claude-opus-4-7` was missing from the catalog entirely, which would have triggered the `default_rate` ($0.005/$0.015 per 1k) for any direct lookup of the new ID.
20
+ 2. The reference `model_tiers` table in the JSON file (documentation, not used at runtime) was inconsistent with the canonical source in `config.sh::get_model_for_tier()`.
21
+
22
+ Both issues are now fixed. `consultant_fallbacks` and `model_tiers` mirror the active defaults in `config.sh`, and every model ID referenced by the defaults has a corresponding price entry.
23
+
24
+ ### Catalog Layout Changes
25
+
26
+ | Section | Added | Moved to legacy |
27
+ |---------|-------|------------------|
28
+ | Premium | `claude-opus-4-7`, `gpt-5.5`, `composer-2`, `deepseek-v4-pro`, `nvidia/nemotron-3-super-120b-a12b:free` | `opus-4.6`, `gpt-5.3-codex`, `composer-1.5`, `deepseek-reasoner` |
29
+ | Standard | `claude-sonnet-4-6` | `sonnet-4.6` |
30
+ | Economy | `claude-haiku-4-5` | `haiku-4.5` |
31
+
32
+ Pricing values mirror the prior entries for direct successors (the model lineage is the same, only the canonical ID changed). `nvidia/nemotron-3-super-120b-a12b:free` is set to $0/$0 to reflect OpenRouter's free tier — this means Aider consultations contribute zero to cost tracking when running on the default model.
33
+
34
+ `COST_RATES.md` was updated to mirror the new active and legacy IDs.
35
+
36
+ ## Breaking Changes
37
+
38
+ None.
39
+
40
+ ## Upgrade Guide
41
+
42
+ ```bash
43
+ # If installed via git clone
44
+ cd ~/.claude/skills/ai-consultants && git pull
45
+
46
+ # If installed via curl | bash
47
+ curl -fsSL https://raw.githubusercontent.com/matteoscurati/ai-consultants/main/scripts/install.sh | bash
48
+ ```
49
+
50
+ No configuration changes required.
51
+
52
+ ## Commits
53
+
54
+ - `885e2ea` fix(costs): sync cost catalog with v2.10.6 model defaults
55
+
56
+ ## Contributors
57
+
58
+ - @matteoscurati
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ai-consultants",
3
- "version": "2.10.5",
3
+ "version": "2.10.8",
4
4
  "description": "Multi-model AI deliberation system - query up to 15 AI consultants for coding problems",
5
5
  "bin": {
6
6
  "ai-consultants": "bin/ai-consultants"
package/scripts/config.sh CHANGED
@@ -63,8 +63,8 @@ GEMINI_CMD="${GEMINI_CMD:-gemini}"
63
63
  # CODEX CONFIGURATION - The Pragmatist
64
64
  # =============================================================================
65
65
 
66
- # Model: "gpt-5.3-codex" (default), "gpt-5.3", "gpt-4o-mini", etc.
67
- CODEX_MODEL="${CODEX_MODEL:-gpt-5.3-codex}"
66
+ # Model: "gpt-5.5" (default), "gpt-5.3", "gpt-4o-mini", etc.
67
+ CODEX_MODEL="${CODEX_MODEL:-gpt-5.5}"
68
68
  CODEX_TIMEOUT_SECONDS="${CODEX_TIMEOUT:-180}"
69
69
  CODEX_CMD="${CODEX_CMD:-codex}"
70
70
 
@@ -89,7 +89,7 @@ KILO_CMD="${KILO_CMD:-kilocode}"
89
89
  # CURSOR CONFIGURATION - The Integrator
90
90
  # =============================================================================
91
91
 
92
- CURSOR_MODEL="${CURSOR_MODEL:-composer-1.5}"
92
+ CURSOR_MODEL="${CURSOR_MODEL:-composer-2}"
93
93
  CURSOR_TIMEOUT_SECONDS="${CURSOR_TIMEOUT:-180}"
94
94
  CURSOR_CMD="${CURSOR_CMD:-agent}"
95
95
 
@@ -97,7 +97,7 @@ CURSOR_CMD="${CURSOR_CMD:-agent}"
97
97
  # AIDER CONFIGURATION - The Pair Programmer
98
98
  # =============================================================================
99
99
 
100
- AIDER_MODEL="${AIDER_MODEL:-gpt-5.3-codex}"
100
+ AIDER_MODEL="${AIDER_MODEL:-nvidia/nemotron-3-super-120b-a12b:free}"
101
101
  AIDER_TIMEOUT_SECONDS="${AIDER_TIMEOUT:-180}"
102
102
  AIDER_CMD="${AIDER_CMD:-aider}"
103
103
 
@@ -127,7 +127,7 @@ GLM_FORMAT="${GLM_FORMAT:-openai}"
127
127
  # GROK CONFIGURATION - The Provocateur (API-based)
128
128
  # =============================================================================
129
129
 
130
- GROK_MODEL="${GROK_MODEL:-grok-4.20-0309-reasoning}"
130
+ GROK_MODEL="${GROK_MODEL:-grok-4.3}"
131
131
  GROK_TIMEOUT_SECONDS="${GROK_TIMEOUT:-180}"
132
132
  GROK_API_URL="${GROK_API_URL:-https://api.x.ai/v1/chat/completions}"
133
133
  GROK_FORMAT="${GROK_FORMAT:-openai}"
@@ -137,7 +137,7 @@ GROK_FORMAT="${GROK_FORMAT:-openai}"
137
137
  # DEEPSEEK CONFIGURATION - The Methodologist (API-based)
138
138
  # =============================================================================
139
139
 
140
- DEEPSEEK_MODEL="${DEEPSEEK_MODEL:-deepseek-reasoner}"
140
+ DEEPSEEK_MODEL="${DEEPSEEK_MODEL:-deepseek-v4-pro}"
141
141
  DEEPSEEK_TIMEOUT_SECONDS="${DEEPSEEK_TIMEOUT:-180}"
142
142
  DEEPSEEK_API_URL="${DEEPSEEK_API_URL:-https://api.deepseek.com/v1/chat/completions}"
143
143
  DEEPSEEK_FORMAT="${DEEPSEEK_FORMAT:-openai}"
@@ -176,7 +176,7 @@ KIMI_CMD="${KIMI_CMD:-kimi}"
176
176
  # CLAUDE CONFIGURATION - The Synthesizer (v2.2)
177
177
  # =============================================================================
178
178
 
179
- CLAUDE_MODEL="${CLAUDE_MODEL:-opus-4.6}"
179
+ CLAUDE_MODEL="${CLAUDE_MODEL:-claude-opus-4-7}"
180
180
  CLAUDE_TIMEOUT_SECONDS="${CLAUDE_TIMEOUT:-240}"
181
181
  CLAUDE_CMD="${CLAUDE_CMD:-claude}"
182
182
 
@@ -525,16 +525,16 @@ get_model_for_tier() {
525
525
  case "$tier" in
526
526
  premium|max|best)
527
527
  case "$consultant" in
528
- claude) echo "opus-4.6" ;;
528
+ claude) echo "claude-opus-4-7" ;;
529
529
  gemini) echo "gemini-3.1-pro-preview" ;;
530
- codex) echo "gpt-5.3-codex" ;;
530
+ codex) echo "gpt-5.5" ;;
531
531
  mistral) echo "mistral-large-3" ;;
532
- cursor) echo "composer-1.5" ;;
533
- deepseek) echo "deepseek-reasoner" ;;
532
+ cursor) echo "composer-2" ;;
533
+ deepseek) echo "deepseek-v4-pro" ;;
534
534
  glm) echo "glm-5.1" ;;
535
- grok) echo "grok-4.20-0309-reasoning" ;;
535
+ grok) echo "grok-4.3" ;;
536
536
  qwen3) echo "qwen3.6-plus" ;;
537
- aider) echo "gpt-5.3-codex" ;;
537
+ aider) echo "nvidia/nemotron-3-super-120b-a12b:free" ;;
538
538
  amp) echo "amp" ;;
539
539
  ollama) echo "qwen2.5-coder:32b" ;;
540
540
  kimi) echo "kimi-code/kimi-for-coding" ;;
@@ -545,7 +545,7 @@ get_model_for_tier() {
545
545
  ;;
546
546
  standard|medium|balanced)
547
547
  case "$consultant" in
548
- claude) echo "sonnet-4.6" ;;
548
+ claude) echo "claude-sonnet-4-6" ;;
549
549
  gemini) echo "gemini-3-flash-preview" ;;
550
550
  codex) echo "gpt-5.3" ;;
551
551
  mistral) echo "mistral-medium-latest" ;;
@@ -565,7 +565,7 @@ get_model_for_tier() {
565
565
  ;;
566
566
  economy|fast|quick)
567
567
  case "$consultant" in
568
- claude) echo "haiku-4.5" ;;
568
+ claude) echo "claude-haiku-4-5" ;;
569
569
  gemini) echo "gemini-2.0-flash" ;;
570
570
  codex) echo "gpt-4o-mini" ;;
571
571
  mistral) echo "devstral-small-2" ;;
@@ -750,4 +750,4 @@ EOF
750
750
  # VERSION
751
751
  # =============================================================================
752
752
 
753
- AI_CONSULTANTS_VERSION="2.10.5"
753
+ AI_CONSULTANTS_VERSION="2.10.8"
@@ -95,13 +95,15 @@ if [[ $exit_code -eq 0 && -n "${CONTENT:-}" ]]; then
95
95
  "$TEMP_OUTPUT" "$OUTPUT_FILE" "$exit_code" "$LATENCY_MS"
96
96
  else
97
97
  # Extract structured fields from markdown/text output
98
- # Summary: first meaningful line(s), up to 200 chars
99
- local_summary=$(echo "$CONTENT" | head -5 | tr '\n' ' ' | sed 's/^[[:space:]]*//;s/[[:space:]]*$//' | head -c 200)
98
+ # Note: truncation via parameter expansion (not `head -c`) to avoid SIGPIPE
99
+ # aborting the script under `set -euo pipefail`.
100
+ local_summary=$(echo "$CONTENT" | head -5 | tr '\n' ' ' | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')
101
+ local_summary="${local_summary:0:200}"
100
102
 
101
- # Approach: look for headings or key phrases
102
103
  local_approach=$(echo "$CONTENT" | grep -iE '^#+\s|^approach:|^recommendation:|^solution:' | head -1 | \
103
- sed 's/^[#[:space:]]*//;s/^[Aa]pproach:[[:space:]]*//' | head -c 100)
104
- [[ -z "$local_approach" ]] && local_approach=$(echo "$local_summary" | head -c 60)
104
+ sed 's/^[#[:space:]]*//;s/^[Aa]pproach:[[:space:]]*//' || true)
105
+ local_approach="${local_approach:0:100}"
106
+ [[ -z "$local_approach" ]] && local_approach="${local_summary:0:60}"
105
107
 
106
108
  # Confidence: estimate from language strength
107
109
  local_confidence=6
@@ -1088,7 +1088,7 @@ test_economic_models() {
1088
1088
 
1089
1089
  assert_equals "gemini-2.0-flash" "$(get_economic_model "gemini")" "gemini economy is gemini-2.0-flash"
1090
1090
  assert_equals "gpt-4o-mini" "$(get_economic_model "codex")" "codex economy is gpt-4o-mini"
1091
- assert_equals "haiku-4.5" "$(get_economic_model "claude")" "claude economy is haiku-4.5"
1091
+ assert_equals "claude-haiku-4-5" "$(get_economic_model "claude")" "claude economy is claude-haiku-4-5"
1092
1092
  assert_equals "MiniMax-M2.5" "$(get_economic_model "minimax")" "minimax economy is MiniMax-M2.5"
1093
1093
  assert_equals "" "$(get_economic_model "unknown")" "unknown consultant returns empty"
1094
1094
  }
@@ -1424,9 +1424,9 @@ test_escalation() {
1424
1424
  test_model_for_tier() {
1425
1425
  suite "config.sh: get_model_for_tier"
1426
1426
 
1427
- assert_equals "opus-4.6" "$(get_model_for_tier "claude" "premium")" "claude premium is opus-4.6"
1428
- assert_equals "sonnet-4.6" "$(get_model_for_tier "claude" "standard")" "claude standard is sonnet-4.6"
1429
- assert_equals "haiku-4.5" "$(get_model_for_tier "claude" "economy")" "claude economy is haiku-4.5"
1427
+ assert_equals "claude-opus-4-7" "$(get_model_for_tier "claude" "premium")" "claude premium is claude-opus-4-7"
1428
+ assert_equals "claude-sonnet-4-6" "$(get_model_for_tier "claude" "standard")" "claude standard is claude-sonnet-4-6"
1429
+ assert_equals "claude-haiku-4-5" "$(get_model_for_tier "claude" "economy")" "claude economy is claude-haiku-4-5"
1430
1430
  assert_equals "gemini-3.1-pro-preview" "$(get_model_for_tier "gemini" "premium")" "gemini premium is gemini-3.1-pro-preview"
1431
1431
  assert_equals "gemini-2.0-flash" "$(get_model_for_tier "gemini" "economy")" "gemini economy is gemini-2.0-flash"
1432
1432
  assert_equals "MiniMax-M2.7" "$(get_model_for_tier "minimax" "premium")" "minimax premium is MiniMax-M2.7"