ai-consultants 3.4.0 → 3.5.0

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/.env.example CHANGED
@@ -122,6 +122,8 @@ GEMINI_TIMEOUT=180
122
122
  GEMINI_CMD=agy
123
123
  # API-mode model ID (only used when GEMINI_USE_API=true)
124
124
  GEMINI_API_MODEL=gemini-3.1-pro-preview
125
+ # Authenticated opt-ins: use Gemini 3.7 Flash (High/Low) for GEMINI_MODEL or
126
+ # gemini-3.7-flash for GEMINI_API_MODEL.
125
127
  # Reasoning effort for the agy CLI. Passed as --effort <value>. Accepts only
126
128
  # low|medium|high; anything else is rejected by the provider and surfaces as a
127
129
  # diagnosed error (provider owns the enum — same stance as QWEN3_REASONING_EFFORT).
@@ -137,22 +139,30 @@ CODEX_CMD=codex
137
139
  # CODEX_REASONING_EFFORT=
138
140
 
139
141
  # Mistral Vibe - The Devil's Advocate
142
+ # API model ID. Vibe uses the separate CLI alias below. Mistral Medium 3.5,
143
+ # Large 3, and Small 4 API IDs are documented opt-ins until an API smoke passes.
140
144
  MISTRAL_MODEL=mistral-large-3
145
+ MISTRAL_CLI_MODEL=mistral-medium-3.5
146
+ # Official API opt-ins: use mistral-medium-3-5, mistral-large-2512, or
147
+ # mistral-small-2603 for MISTRAL_MODEL after an authenticated API smoke.
141
148
  MISTRAL_TIMEOUT=180
142
149
  MISTRAL_CMD=vibe
143
150
 
144
151
  # Cursor - The Integrator
145
152
  CURSOR_MODEL=composer-2.5
146
153
  CURSOR_TIMEOUT=180
147
- CURSOR_CMD=agent
154
+ CURSOR_CMD=cursor-agent
148
155
 
149
156
  # Kimi - The Eastern Sage (K3 via Kimi Code CLI)
150
157
  KIMI_MODEL=kimi-code/k3
158
+ # max_quality selects the inventory-probed kimi-code/k3-256k target.
151
159
  KIMI_TIMEOUT=180
152
160
  KIMI_CMD=kimi
153
161
 
154
162
  # Claude - The Synthesizer
155
163
  CLAUDE_MODEL=claude-opus-5 # ai-consultants:default
164
+ # Fable 5 is catalogued and priced but remains an explicit CLAUDE_MODEL opt-in
165
+ # after its local smoke timed out.
156
166
  CLAUDE_TIMEOUT=240
157
167
  CLAUDE_CMD=claude
158
168
  CLAUDE_API_MAX_TOKENS=16384
@@ -184,13 +194,13 @@ QWEN3_CMD=qwen
184
194
  # =============================================================================
185
195
 
186
196
  # GLM - The Methodologist
187
- GLM_MODEL=glm-5.2
197
+ GLM_MODEL=glm-5.3
188
198
  GLM_TIMEOUT=180
189
199
  GLM_API_URL=https://api.z.ai/api/coding/paas/v4/chat/completions
190
200
 
191
201
  # Grok Build CLI + xAI API fallback - The Provocateur
192
202
  GROK_CMD=grok
193
- GROK_MODEL=grok-4.5
203
+ GROK_MODEL=grok-4.6
194
204
  GROK_TIMEOUT=180
195
205
  GROK_API_URL=https://api.x.ai/v1/chat/completions
196
206
 
@@ -202,6 +212,7 @@ DEEPSEEK_API_URL=https://api.deepseek.com/v1/chat/completions
202
212
  # MiniMax - The Pragmatic Optimizer (CLI via mmx by default, v2.21; API opt-in)
203
213
  MINIMAX_CMD=mmx
204
214
  MINIMAX_MODEL=MiniMax-M2.7
215
+ # max_quality selects the smoke-tested MiniMax-M3 target.
205
216
  MINIMAX_TIMEOUT=180
206
217
  MINIMAX_API_URL=https://api.minimax.io/v1/chat/completions
207
218
 
package/CLAUDE.md CHANGED
@@ -6,7 +6,7 @@ AI Consultants is a multi-model coverage system that queries up to 11 AI consult
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**: 3.4.0
9
+ **Version**: 3.5.0
10
10
 
11
11
  ## Distribution
12
12
 
@@ -180,7 +180,7 @@ Functions in `lib/common.sh`:
180
180
  ### Configuration Presets
181
181
  ```bash
182
182
  # Quality Tier Presets (v2.5)
183
- ./scripts/consult_all.sh --preset max_quality "question" # 8 of 11 consultants + premium models + peer review
183
+ ./scripts/consult_all.sh --preset max_quality "question" # 8 of 11 consultants + maximum tier + peer review
184
184
  ./scripts/consult_all.sh --preset medium "question" # 4 consultants + standard models
185
185
  ./scripts/consult_all.sh --preset fast "question" # 2 consultants + economy models
186
186
 
@@ -364,11 +364,12 @@ The `doctor.sh` script now shows CLI/API mode status:
364
364
  ## v2.5 Features
365
365
 
366
366
  ### Model Quality Tiers
367
- Three tiers of models are available for each consultant, configurable via `apply_model_tier()`:
367
+ Three normal tiers plus a `maximum` tier are configurable via `apply_model_tier()`:
368
368
 
369
369
  | Tier | Description | Example Models |
370
370
  |------|-------------|----------------|
371
371
  | **premium** | Latest flagship models | claude-opus-5, Gemini 3.1 Pro (High), gpt-5.6-sol |
372
+ | **maximum** | Smoke-tested separate-plan targets used by max_quality | K3-256k, Qwen3.8-Max, MiniMax M3 |
372
373
  | **standard** | Good quality at reasonable cost | claude-sonnet-5, Gemini 3.6 Flash (High), gpt-5.6-terra |
373
374
  | **economy** | Optimized for speed and low cost | claude-haiku-4-5, Gemini 3.6 Flash (Low), gpt-5.6-luna |
374
375
 
@@ -378,6 +379,7 @@ Three tiers of models are available for each consultant, configurable via `apply
378
379
  # Programmatic usage
379
380
  source scripts/config.sh
380
381
  apply_model_tier "premium" # Set all consultants to premium models
382
+ apply_model_tier "maximum" # max_quality-only / separate-plan models
381
383
  apply_model_tier "standard" # Set all consultants to standard models
382
384
  apply_model_tier "economy" # Set all consultants to economy models
383
385
 
@@ -390,7 +392,7 @@ get_model_for_tier "claude" "economy" # → claude-haiku-4-5
390
392
  Three new presets leverage the model tiers:
391
393
 
392
394
  ```bash
393
- # Maximum quality - all premium models + debate + peer review
395
+ # Maximum quality - maximum tier + debate + peer review
394
396
  ./scripts/consult_all.sh --preset max_quality "critical architecture decision"
395
397
 
396
398
  # Balanced quality - standard models, 4 consultants, light debate
@@ -408,11 +410,11 @@ All consultants now use premium models by default:
408
410
  | Claude | claude-opus-5 |
409
411
  | Gemini | Gemini 3.1 Pro (High) (via agy CLI) |
410
412
  | Codex | gpt-5.6-sol |
411
- | Mistral | mistral-large-3 |
413
+ | Mistral | CLI: mistral-medium-3.5; API: mistral-large-3 |
412
414
  | Cursor | composer-2.5 |
413
415
  | DeepSeek | deepseek-v4-pro |
414
- | GLM | glm-5.2 |
415
- | Grok | grok-4.5 |
416
+ | GLM | glm-5.3 |
417
+ | Grok | grok-4.6 |
416
418
  | Qwen3 | qwen3.7-max |
417
419
  | Kimi | kimi-code/k3 |
418
420
  | MiniMax | MiniMax-M2.7 |
@@ -420,7 +422,7 @@ All consultants now use premium models by default:
420
422
  Override with environment variables: `CLAUDE_MODEL`, `GEMINI_MODEL`, `CODEX_MODEL`, `KIMI_MODEL`, etc.
421
423
 
422
424
  Grok is CLI-first through the official Grok Build `grok` command, with
423
- `grok-4.5` passed explicitly in headless mode. The prompt is delivered with
425
+ `grok-4.6` passed explicitly in headless mode. The prompt is delivered with
424
426
  `--prompt-file`; HOME and CWD are isolated, built-in/MCP tools are denied, and
425
427
  the strict sandbox prevents user or project extensions from joining the
426
428
  consultation. The xAI Chat Completions path is retained only when the CLI is
@@ -619,6 +621,7 @@ for f in scripts/*.sh scripts/lib/*.sh; do bash -n "$f" && echo "OK: $f"; done
619
621
  | `GEMINI_API_MODEL` | gemini-3.1-pro-preview | Gemini API-mode model ID (v2.15) |
620
622
  | `CODEX_MODEL` | gpt-5.6-sol | Codex model (v2.5) |
621
623
  | `MISTRAL_MODEL` | mistral-large-3 | Mistral model (v2.5) |
624
+ | `MISTRAL_CLI_MODEL` | mistral-medium-3.5 | Vibe CLI model alias |
622
625
  | `SYNTHESIS_STRATEGY` | coverage | Synthesis strategy (coverage=union of distinct points) |
623
626
  | `ENABLE_SEMANTIC_CACHE` | true | Semantic response caching (v2.3) |
624
627
  | `CACHE_TTL_HOURS` | 24 | Cache expiration in hours (v2.3) |
@@ -643,7 +646,7 @@ for f in scripts/*.sh scripts/lib/*.sh; do bash -n "$f" && echo "OK: $f"; done
643
646
  - `agy` CLI - Antigravity CLI (Gemini consultant; successor to the deprecated Gemini CLI, v2.15)
644
647
  - `codex` CLI - OpenAI Codex
645
648
  - `vibe` CLI - Mistral Vibe
646
- - `agent` CLI - Cursor
649
+ - `cursor-agent` CLI - Cursor (validated by capability, read-only ask mode)
647
650
  - `kimi` CLI - Kimi Code (v2.9)
648
651
  - `claude` CLI - Claude (v2.2, also used for synthesis)
649
652
  - `qwen` CLI - Qwen via qwen-code (v2.7, optional)
@@ -787,6 +790,18 @@ curl -fsSL https://raw.githubusercontent.com/matteoscurati/ai-consultants/main/s
787
790
 
788
791
  ## Changelog
789
792
 
793
+ ### v3.5.0
794
+
795
+ - **The catalog now distinguishes an advisory panel's normal premium tier from subscription-only maximum targets.** `get_model_for_tier()` accepts an explicit transport, while `apply_model_tier maximum` selects K3-256k and MiniMax M3 and promotes Qwen3.8-Max only when `QWEN3_USE_API=true`, the wire is OpenAI-compatible, the endpoint is a Token Plan `/chat/completions` URL, and a key is present (`scripts/config.sh:581-737`). The Qwen effort is marked tier-managed, cleared when leaving maximum, and never overwrites a user pin. Gemini 3.7, Fable 5, and the new Mistral API IDs remain catalogued opt-ins after their exact transports failed authentication or timed out; normal runs do not inherit delegation-kit's routing gates.
796
+ - **Mistral CLI and API names are no longer conflated.** `MISTRAL_CLI_MODEL=mistral-medium-3.5` reaches Vibe through `VIBE_ACTIVE_MODEL`; `MISTRAL_MODEL` remains API-only. Vibe verifies its bounded read-only interface, runs `plan` for one turn in a mode-700 temporary workspace, and treats empty or post-launch failures as failures (`scripts/query_mistral.sh:47-143`). The current machine passed the exact Vibe smoke; no Mistral API key was available, so the new API IDs were not promoted.
797
+ - **Cursor now means Cursor.** The old `CURSOR_CMD=agent` resolved to Grok on this machine. Runtime, configure, and doctor now default to `cursor-agent`, validate the Cursor help surface, bound model-inventory calls, require Composer 2.5, and invoke `--mode ask --trust` only against an ephemeral workspace (`scripts/query_cursor.sh:33-132`, `scripts/configure.sh:322-363`). The local Cursor account is not logged in, so runtime authentication remains a user gate rather than something this release works around.
798
+ - **Model identity evidence is additive and honest.** Every envelope carries the requested ID and one of `provider-reported`, `capability-probed`, or `requested-only`; API model strings are syntax-validated before adoption (`scripts/lib/common.sh:935-1068`, `scripts/lib/api_query.sh:162-194`). `modelUsage` remains billing participation, not content identity. The shared billing resolver prefers a known effective ID, then the explicit requested ID, and uses consultant fallback only for legacy responses that lack the new metadata (`scripts/lib/costs.sh:311-430`).
799
+ - **The reliability boundary is finite.** Cursor/Gemini/Mistral capability probes and Cursor configure/doctor probes have explicit time limits. An HTTP 200 with an empty body increments the retry counter, including at the shipped `MAX_RETRIES=2`, instead of spinning indefinitely (`scripts/lib/api.sh`, `scripts/test_api_transport.sh`). Google `thinkingConfig` is emitted only for Gemini 3.7; the proven 3.1 API body remains byte-compatible.
800
+ - **Managed migrations are exact and pins survive.** `configure` upgrades only the historical managed Cursor command, GLM 5.2, and Grok 4.5 values. Environment/`--set` model values and any `# ai-consultants:pin` entry remain user-owned. The new catalog-parity gate checks all 44 consultant/tier cells and all 16 Gemini/Mistral transport cells against `docs/cost_rates.json`, requiring every automatic target to be priced or explicitly unpriced.
801
+ - **Promotion evidence is recorded without overstating it.** Exact ai-consultants smokes passed for Mistral Vibe Medium 3.5, GLM 5.3, Grok 4.6, K3-256k, Qwen3.8-Max Token Plan, and MiniMax M3. Gemini 3.7 lacked agy/API auth, Mistral API lacked a key, Fable 5 timed out, and Cursor lacked login; those stay opt-in/unverified. Cross-family Opus 5/max review first returned `NO-SHIP` with four blockers, then `SHIP` after the hermeticity, trust, probe, thinking, billing, retry, and parity findings were fixed. Final gate: 22/22 suites, 443/443 core checks, ShellCheck and npm tarball green.
802
+
803
+ Deliberate residuals: Cursor and Vibe isolate the workspace but retain ambient HOME for their authenticated CLI state; unpriced credit/subscription models are disclosed but cannot be enforced by a dollar budget; provider/requested model substitutions are available in raw JSON but not yet summarized in the human report.
804
+
790
805
  ### v3.4.0
791
806
  - **Gemini was unreachable from an SSH session, and no amount of re-authenticating helped.** `agy` picks its credential store from the environment: seeing `SSH_CLIENT`, `SSH_CONNECTION`, or `SSH_TTY` it switches to a file-based token store and never consults the macOS Keychain. A user who signed in locally therefore lost Gemini entirely over SSH, and signing in again landed the new credential in the Keychain the CLI had already decided to ignore. Reproduced live before fixing (`agy models` → "Please sign in"; the same command under `env -u SSH_CLIENT -u SSH_CONNECTION -u SSH_TTY` → full inventory), and confirmed again end to end after. Found by reading delegation-kit's 0.13.1 fix and checking whether the same failure applied here — it did, in the very session doing the work.
792
807
  - **The fix ships in two shapes on purpose** (`lib/common.sh:163-164`). `AGY_ENV_PREFIX` is an array of `env -u …` for anything that reaches `agy` through `run_with_timeout`, because GNU `timeout` execs a binary and **cannot invoke a shell function**; `agy_env` is the same-shell wrapper, defined *from* that array so the two cannot drift. Applied at every executing call site — `query_gemini.sh`, `doctor.sh`, `update_clis.sh`, and `build_synthesis_args` (which is executed directly by `synthesize.sh:304`, not through timeout, so either shape would work there — it uses the array for consistency). The remaining `${GEMINI_CMD:-agy}` hits are `command -v` probes and config-dump strings, which execute nothing.
package/README.md CHANGED
@@ -1,8 +1,8 @@
1
- # AI Consultants v3.4.0
1
+ # AI Consultants v3.5.0
2
2
 
3
3
  > **Coverage, not a single guess.** A panel of up to 11 frontier models from different vendors fans out on your question in parallel and hands you the *union* of what they collectively see — the risks, edge cases, and approaches a single model misses.
4
4
 
5
- [![Version](https://img.shields.io/badge/version-3.4.0-blue.svg)](https://github.com/matteoscurati/ai-consultants)
5
+ [![Version](https://img.shields.io/badge/version-3.5.0-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)
@@ -375,20 +375,22 @@ INVOKING_AGENT=codex ./scripts/consult_all.sh "Question" # Codex excluded
375
375
  | **Google Gemini** | `agy` | The Architect | Design patterns, scalability, enterprise |
376
376
  | **OpenAI Codex** | `codex` | The Pragmatist | Simplicity, quick wins, proven solutions |
377
377
  | **Mistral Vibe** | `vibe` | The Devil's Advocate | Problems, edge cases, vulnerabilities |
378
- | **Cursor** | `agent` | The Integrator | Full-stack perspective |
378
+ | **Cursor** | `cursor-agent` | The Integrator | Full-stack perspective |
379
379
  | **Kimi K3** | `kimi` | The Eastern Sage | Holistic, balanced perspectives |
380
380
  | **Claude** | `claude` | The Synthesizer | Big picture, synthesis, connecting ideas |
381
381
  | **Qwen3** | `qwen` | The Analyst | Data-driven analysis |
382
382
  | **Grok** | `grok` | The Provocateur | Challenge conventions |
383
383
  | **MiniMax** | `mmx` | The Pragmatic Optimizer | Performance, efficiency, pragmatism |
384
384
 
385
- Grok uses Grok Build with `grok-4.5` in an isolated, tool-free sandbox. Prompts
385
+ Grok uses Grok Build with `grok-4.6` in an isolated, tool-free sandbox. Prompts
386
386
  are passed through a private file rather than process arguments. It falls back
387
387
  to the xAI API only when the CLI is missing, cannot launch, or has no usable
388
388
  authentication and `GROK_API_KEY` is configured; post-launch request failures
389
389
  are surfaced without a silent API charge. Qwen3 and MiniMax can also switch
390
390
  from their CLI to API transport. Gemini, Codex, Claude, and Mistral are
391
- CLI/API switchable. Grok and Kimi compatibility is capability-probed before
391
+ CLI/API switchable. Gemini, Cursor, Grok, and Kimi verify the requested model
392
+ against the CLI inventory before dispatch when that inventory exists. Grok and
393
+ Kimi compatibility is capability-probed before
392
394
  dispatch: the requested model, headless arguments, and structured-output
393
395
  surface must be available. Any CLI version is accepted when those checks pass;
394
396
  the observed version is response provenance only.
@@ -397,7 +399,7 @@ the observed version is response provenance only.
397
399
 
398
400
  | Consultant | Default Model | Persona | Focus |
399
401
  |------------|---------------|---------|-------|
400
- | **GLM** | glm-5.2 | The Methodologist | Structured approaches |
402
+ | **GLM** | glm-5.3 | The Methodologist | Structured approaches |
401
403
  | **DeepSeek** | deepseek-v4-pro | The Code Specialist | Algorithms, code generation |
402
404
 
403
405
  ### Installing Consultant CLIs
@@ -413,7 +415,7 @@ curl https://cursor.com/install -fsS | bash # Cursor
413
415
  # Optional CLI-based consultants
414
416
  curl -L code.kimi.com/install.sh | bash # Kimi K3
415
417
  npm install -g @qwen-code/qwen-code@latest # Qwen (alternative to API)
416
- curl -fsSL https://x.ai/cli/install.sh | bash # Grok Build (grok-4.5)
418
+ curl -fsSL https://x.ai/cli/install.sh | bash # Grok Build (grok-4.6)
417
419
  npm install -g mmx-cli # MiniMax
418
420
 
419
421
  ```
@@ -436,7 +438,7 @@ Choose the right balance of quality, speed, and cost with model quality tiers.
436
438
 
437
439
  | Preset | Tier | Agents | Use Case |
438
440
  |--------|------|--------|----------|
439
- | `max_quality` | Premium | 8 of 11 | Critical decisions |
441
+ | `max_quality` | Maximum | 8 of 11 | Critical decisions |
440
442
  | `medium` | Standard | 4 | General questions |
441
443
  | `fast` | Economy | 2 | Quick checks |
442
444
 
@@ -445,19 +447,31 @@ parallel and returns the coverage union.
445
447
 
446
448
  ### Models by Tier
447
449
 
448
- | Consultant | Premium | Standard | Economy |
449
- |------------|---------|----------|---------|
450
- | Claude | claude-opus-5 | claude-sonnet-5 | claude-haiku-4-5 |
451
- | Gemini | Gemini 3.1 Pro (High) | Gemini 3.6 Flash (High) | Gemini 3.6 Flash (Low) |
452
- | Codex | gpt-5.6-sol | gpt-5.6-terra | gpt-5.6-luna |
453
- | Mistral | mistral-large-3 | mistral-medium-latest | devstral-small-2 |
454
- | Cursor | composer-2.5 | composer-2 | gemini-3-flash |
455
- | DeepSeek | deepseek-v4-pro | deepseek-v4-flash | deepseek-v4-flash |
456
- | GLM | glm-5.2 | glm-5.2 | glm-4-flash |
457
- | Grok | grok-4.5 | grok-4.1-fast | grok-4.1-fast |
458
- | Qwen3 | qwen3.7-max | qwen3.6-35b-a3b | qwen3-32b |
459
- | Kimi | kimi-code/k3 | kimi-code/k3 | kimi-code/k3 |
460
- | MiniMax | MiniMax-M2.7 | MiniMax-M2.7 | MiniMax-M2.5 |
450
+ | Consultant | `max_quality` | Premium | Standard | Economy |
451
+ |------------|---------------|---------|----------|---------|
452
+ | Claude | claude-opus-5 | claude-opus-5 | claude-sonnet-5 | claude-haiku-4-5 |
453
+ | Gemini | Gemini 3.1 Pro (High) | Gemini 3.1 Pro (High) | Gemini 3.6 Flash (High) | Gemini 3.6 Flash (Low) |
454
+ | Codex | gpt-5.6-sol | gpt-5.6-sol | gpt-5.6-terra | gpt-5.6-luna |
455
+ | Mistral CLI | mistral-medium-3.5 | mistral-medium-3.5 | mistral-medium-3.5 | devstral-small-2 |
456
+ | Mistral API | mistral-large-3 | mistral-large-3 | mistral-large-3 | mistral-large-3 |
457
+ | Cursor | composer-2.5 | composer-2.5 | composer-2.5 | composer-2.5 |
458
+ | DeepSeek | deepseek-v4-pro | deepseek-v4-pro | deepseek-v4-flash | deepseek-v4-flash |
459
+ | GLM | glm-5.3 | glm-5.3 | glm-5.3 | glm-4-flash |
460
+ | Grok | grok-4.6 | grok-4.6 | grok-4.5 | grok-4.5 |
461
+ | Qwen3 | qwen3.8-max when Token Plan is configured; otherwise qwen3.7-max | qwen3.7-max | qwen3.6-35b-a3b | qwen3-32b |
462
+ | Kimi | kimi-code/k3-256k | kimi-code/k3 | kimi-code/k3 | kimi-code/k3 |
463
+ | MiniMax | MiniMax-M3 | MiniMax-M2.7 | MiniMax-M2.7 | MiniMax-M2.5 |
464
+
465
+ Promotion is transport-specific. Gemini 3.7 Flash, the new Mistral API IDs
466
+ (`mistral-medium-3-5`, `mistral-large-2512`, `mistral-small-2603`), and Claude
467
+ Fable 5 are catalogued opt-ins because this release could not complete an exact
468
+ authenticated smoke for those transports. Select them explicitly only after
469
+ your own `doctor --live`/adapter check. They are never promoted automatically;
470
+ selecting a preset later intentionally reapplies that preset's tier and can
471
+ replace an explicit model override for the run.
472
+ Qwen3.8-Max is likewise selected by `max_quality` only when API mode already
473
+ points at an authenticated OpenAI-compatible Token Plan `/chat/completions`
474
+ endpoint; the preset never repoints a DashScope key or CLI installation.
461
475
 
462
476
  ### Usage
463
477
 
@@ -475,6 +489,7 @@ parallel and returns the coverage union.
475
489
  # Programmatic tier selection
476
490
  source scripts/config.sh
477
491
  apply_model_tier "premium" # Set all to premium models
492
+ apply_model_tier "maximum" # max_quality-only / separate-plan models
478
493
  apply_model_tier "economy" # Set all to economy models
479
494
  ```
480
495
 
@@ -488,7 +503,7 @@ Choose how many consultants to use:
488
503
 
489
504
  | Preset | Consultants | Tier | Use Case |
490
505
  |--------|-------------|------|----------|
491
- | `max_quality` | 8 of 11 | Premium | Critical decisions |
506
+ | `max_quality` | 8 of 11 | Maximum | Critical decisions |
492
507
  | `medium` | 4 | Standard | General questions |
493
508
  | `fast` | 2 | Economy | Quick checks |
494
509
  | `minimal` | 2 (Gemini + Codex) | Default | Quick questions, low cost |
@@ -552,7 +567,8 @@ later run to adapt when a CLI or credential changes. Environment variables,
552
567
  `--set`, and unmarked values remain explicit user choices, except for the exact
553
568
  historical generated Claude default described below.
554
569
  Managed model defaults use `# ai-consultants:default`; `configure` upgrades the
555
- historical unmarked `CLAUDE_MODEL=claude-opus-4-8` default to Opus 5. To keep
570
+ historical unmarked `CLAUDE_MODEL=claude-opus-4-8` default to Opus 5 and upgrades
571
+ the exact managed Cursor, GLM, and Grok defaults. To keep
556
572
  4.8 intentionally, run
557
573
  `ai-consultants configure --set CLAUDE_MODEL=claude-opus-4-8`; explicit model
558
574
  overrides are stored with `# ai-consultants:pin`.
@@ -573,6 +589,7 @@ ENABLE_SMART_ROUTING=true # Auto-select consultants by question category
573
589
  MAX_SESSION_COST=1.00 # USD budget cap (paired with ENABLE_BUDGET_LIMIT=true to enforce)
574
590
  KIMI_MODEL=kimi-code/k3 # Pin the Kimi consultant to K3
575
591
  CLAUDE_API_MAX_TOKENS=16384 # Shared thinking + visible-output budget in API mode
592
+ MISTRAL_CLI_MODEL=mistral-medium-3.5 # Vibe alias; MISTRAL_MODEL remains API-only
576
593
  ```
577
594
 
578
595
  Full reference: [`references/configuration.md`](references/configuration.md). Copy-paste workflows: [`docs/RECIPES.md`](docs/RECIPES.md). For category-aware preset suggestions: `ai-consultants doctor --suggest-preset --question "..."`.
package/SKILL.md CHANGED
@@ -5,10 +5,10 @@ license: MIT
5
5
  compatibility: Requires bash, jq, and at least 2 AI CLI tools (agy, codex, vibe, etc.). macOS and Linux.
6
6
  metadata:
7
7
  author: matteoscurati
8
- version: 3.4.0
8
+ version: 3.5.0
9
9
  ---
10
10
 
11
- # AI Consultants v3.4.0 - AI Expert Panel
11
+ # AI Consultants v3.5.0 - AI Expert Panel
12
12
 
13
13
  **Coverage, not a single guess.** Convene a panel of AI "consultants" from different vendors for coding questions: they fan out in parallel and you get the *union* of what they collectively see — the risks, edge cases, and approaches a single model misses. Each consultant has a **configurable persona** that decorrelates its analysis.
14
14
 
@@ -34,7 +34,7 @@ Configuration (presets, strategies, features, personas, API keys) can be managed
34
34
  | **Google Gemini** | `agy` | The Architect | Design patterns, scalability |
35
35
  | **OpenAI Codex** | `codex` | The Pragmatist | Simplicity, proven solutions |
36
36
  | **Mistral Vibe** | `vibe` | The Devil's Advocate | Edge cases, vulnerabilities |
37
- | **Cursor** | `agent` | The Integrator | Full-stack perspective |
37
+ | **Cursor** | `cursor-agent` | The Integrator | Full-stack perspective |
38
38
  | **Kimi K3** | `kimi` | The Eastern Sage | Holistic, balanced perspectives |
39
39
  | **Claude** | `claude` | The Synthesizer | Big picture, synthesis |
40
40
  | **Qwen** | `qwen` | The Analyst | Data-driven, metrics |
@@ -43,13 +43,19 @@ Configuration (presets, strategies, features, personas, API keys) can be managed
43
43
 
44
44
  **API-only consultants**: GLM (The Methodologist), DeepSeek (The Code Specialist)
45
45
 
46
- **CLI/API Mode**: Gemini, Codex, Claude, Mistral, Qwen, Grok, and MiniMax can switch between CLI and API mode via `*_USE_API` environment variables. Grok is CLI-first on Grok Build with `grok-4.5` and falls back to the xAI API when the CLI cannot run. Gemini auto-selects API mode when `GEMINI_API_KEY` is set (no `agy` install needed) and the CLI otherwise.
46
+ **CLI/API Mode**: Gemini, Codex, Claude, Mistral, Qwen, Grok, and MiniMax can switch between CLI and API mode via `*_USE_API` environment variables. Grok is CLI-first on Grok Build with `grok-4.6` and falls back to the xAI API when the CLI cannot run. Gemini auto-selects API mode when `GEMINI_API_KEY` is set (no `agy` install needed) and the CLI otherwise. Mistral keeps separate API (`MISTRAL_MODEL`) and Vibe (`MISTRAL_CLI_MODEL`) identifiers; Cursor uses `cursor-agent --mode ask` in an isolated workspace.
47
47
 
48
48
  Grok and Kimi are compatible by capability rather than by CLI version. Before
49
49
  dispatch, their adapters verify the required headless arguments, requested
50
50
  model, and structured-output surface. Compatible version changes are accepted;
51
51
  the observed version is recorded only as response provenance.
52
52
 
53
+ The `max_quality` preset uses the separately smoke-tested K3-256k and MiniMax
54
+ M3 targets, plus Qwen3.8-Max when an authenticated Token Plan transport is
55
+ already configured. Gemini 3.7 Flash, Claude Fable 5, and the
56
+ new Mistral API IDs remain explicit opt-ins until their exact local transports
57
+ can authenticate and complete a smoke; no failed target is silently replaced.
58
+
53
59
  **Self-Exclusion**: The invoking agent is automatically excluded from the panel. When invoked from Claude Code, Claude is excluded; when invoked from Codex CLI, Codex is excluded, etc.
54
60
 
55
61
  ## Requirements
@@ -1,4 +1,4 @@
1
- # Cost Rates - AI Consultants v3.4.0
1
+ # Cost Rates - AI Consultants v3.5.0
2
2
 
3
3
  This page documents the per-token rates used by the cost tracking system.
4
4
 
@@ -6,11 +6,14 @@ This page documents the per-token rates used by the cost tracking system.
6
6
 
7
7
  ## Model Quality Tiers (v2.5+)
8
8
 
9
- Since v2.5, models are organized into three tiers. Use `apply_model_tier()` or `get_model_for_tier()` to select models programmatically.
9
+ Automatic selection has three normal tiers plus the `maximum` tier used by
10
+ `max_quality`. Use `apply_model_tier()` or `get_model_for_tier()` to select
11
+ models programmatically.
10
12
 
11
13
  | Tier | Description | Cost Level |
12
14
  |------|-------------|------------|
13
15
  | **Premium** | Latest flagship models (default) | Highest |
16
+ | **Maximum** | Smoke-tested separate-plan or highest-cost targets | Varies / may be unpriced |
14
17
  | **Standard** | Good quality at reasonable cost | Medium |
15
18
  | **Economy** | Optimized for speed and low cost | Lowest |
16
19
 
@@ -23,30 +26,37 @@ Since v2.5, models are organized into three tiers. Use `apply_model_tier()` or `
23
26
  | Gemini 3.1 Pro (High) | Premium | $0.002 | Gemini (agy CLI) |
24
27
  | Gemini 3.6 Flash (High) | Standard | $0.0015 | Gemini (agy CLI) |
25
28
  | Gemini 3.6 Flash (Low) | Economy | $0.0015 | Gemini (agy CLI) |
29
+ | Gemini 3.7 Flash (High/Low) | Opt-in | $0.00075 | Gemini (CLI/API; promotional through 2026-12-31) |
26
30
  | gpt-5.6-sol | Premium | $0.005 | Codex |
27
31
  | gpt-5.6-terra | Standard | $0.002 | Codex |
28
32
  | gpt-5.6-luna | Economy | $0.0002 | Codex |
29
33
  | claude-opus-5 | Premium | $0.005 | Claude |
34
+ | claude-fable-5 | Opt-in | $0.010 | Claude |
30
35
  | claude-sonnet-5 | Standard | $0.003 | Claude |
31
36
  | claude-haiku-4-5 | Economy | $0.001 | Claude |
32
37
  | mistral-large-3 | Premium | $0.002 | Mistral |
33
- | mistral-medium-latest | Standard | $0.001 | Mistral |
38
+ | mistral-medium-3.5 / mistral-medium-3-5 | Premium CLI / API opt-in | $0.0015 | Mistral |
39
+ | mistral-large-2512 | API opt-in | $0.0005 | Mistral |
40
+ | mistral-small-2603 | API opt-in | $0.00015 | Mistral |
34
41
  | devstral-small-2 | Economy | $0.00 | Mistral |
35
- | composer-2.5 | Premium | $0.0005 | Cursor |
36
- | composer-2 | Standard | $0.0005 | Cursor |
37
- | gemini-3-flash | Economy | $0.0005 | Cursor |
42
+ | composer-2.5 | Maximum/Premium/Standard/Economy | $0.0005 | Cursor |
43
+ | composer-2 | Legacy | $0.0005 | Cursor |
44
+ | gemini-3-flash | Legacy | $0.0005 | Cursor |
38
45
  | deepseek-v4-pro | Premium | $0.000435 | DeepSeek |
39
46
  | deepseek-v4-flash | Standard/Economy | $0.00014 | DeepSeek |
40
- | glm-5.2 | Premium/Standard | $0.00098 | GLM |
47
+ | glm-5.3 | Maximum/Premium/Standard | Unpriced | GLM coding-plan endpoint |
41
48
  | glm-4-flash | Economy | $0.001 | GLM |
42
- | grok-4.5 | Premium | $0.002 | Grok |
43
- | grok-4.1-fast | Standard/Economy | $0.0002 | Grok |
49
+ | grok-4.6 | Maximum/Premium | $0.002 | Grok |
50
+ | grok-4.5 | Standard/Economy | $0.002 | Grok |
44
51
  | qwen3.7-max | Premium | $0.0012 | Qwen3 |
45
52
  | qwen3.6-35b-a3b | Standard | $0.000163 | Qwen3 |
46
53
  | qwen3-32b | Economy | $0.0004 | Qwen3 |
47
- | MiniMax-M2.7 | Premium/Standard | $0.00025 | MiniMax |
48
- | MiniMax-M2.5 | Economy | $0.000255 | MiniMax |
54
+ | qwen3.8-max | Maximum | Unpriced | Qwen3 Token Plan |
55
+ | MiniMax-M3 | Maximum | $0.0003 | MiniMax (≤512k standard input) |
56
+ | MiniMax-M2.7 | Premium/Standard | $0.0003 | MiniMax |
57
+ | MiniMax-M2.5 | Economy | $0.0003 | MiniMax |
49
58
  | kimi-code/k3 | Premium/Standard/Economy | $0.0005 | Kimi |
59
+ | kimi-code/k3-256k | Maximum | Unpriced | Kimi subscription |
50
60
  | default | - | $0.005 | Fallback |
51
61
 
52
62
  ### Output Tokens
@@ -56,30 +66,37 @@ Since v2.5, models are organized into three tiers. Use `apply_model_tier()` or `
56
66
  | Gemini 3.1 Pro (High) | Premium | $0.012 | Gemini (agy CLI) |
57
67
  | Gemini 3.6 Flash (High) | Standard | $0.0075 | Gemini (agy CLI) |
58
68
  | Gemini 3.6 Flash (Low) | Economy | $0.0075 | Gemini (agy CLI) |
69
+ | Gemini 3.7 Flash (High/Low) | Opt-in | $0.00375 | Gemini (CLI/API; promotional through 2026-12-31) |
59
70
  | gpt-5.6-sol | Premium | $0.030 | Codex |
60
71
  | gpt-5.6-terra | Standard | $0.012 | Codex |
61
72
  | gpt-5.6-luna | Economy | $0.0012 | Codex |
62
73
  | claude-opus-5 | Premium | $0.025 | Claude |
74
+ | claude-fable-5 | Opt-in | $0.050 | Claude |
63
75
  | claude-sonnet-5 | Standard | $0.015 | Claude |
64
76
  | claude-haiku-4-5 | Economy | $0.005 | Claude |
65
77
  | mistral-large-3 | Premium | $0.006 | Mistral |
66
- | mistral-medium-latest | Standard | $0.003 | Mistral |
78
+ | mistral-medium-3.5 / mistral-medium-3-5 | Premium CLI / API opt-in | $0.0075 | Mistral |
79
+ | mistral-large-2512 | API opt-in | $0.0015 | Mistral |
80
+ | mistral-small-2603 | API opt-in | $0.0006 | Mistral |
67
81
  | devstral-small-2 | Economy | $0.00 | Mistral |
68
- | composer-2.5 | Premium | $0.0025 | Cursor |
69
- | composer-2 | Standard | $0.0025 | Cursor |
70
- | gemini-3-flash | Economy | $0.003 | Cursor |
82
+ | composer-2.5 | Maximum/Premium/Standard/Economy | $0.0025 | Cursor |
83
+ | composer-2 | Legacy | $0.0025 | Cursor |
84
+ | gemini-3-flash | Legacy | $0.003 | Cursor |
71
85
  | deepseek-v4-pro | Premium | $0.00087 | DeepSeek |
72
86
  | deepseek-v4-flash | Standard/Economy | $0.00028 | DeepSeek |
73
- | glm-5.2 | Premium/Standard | $0.00308 | GLM |
87
+ | glm-5.3 | Maximum/Premium/Standard | Unpriced | GLM coding-plan endpoint |
74
88
  | glm-4-flash | Economy | $0.003 | GLM |
75
- | grok-4.5 | Premium | $0.006 | Grok |
76
- | grok-4.1-fast | Standard/Economy | $0.0005 | Grok |
89
+ | grok-4.6 | Maximum/Premium | $0.006 | Grok |
90
+ | grok-4.5 | Standard/Economy | $0.006 | Grok |
77
91
  | qwen3.7-max | Premium | $0.006 | Qwen3 |
78
92
  | qwen3.6-35b-a3b | Standard | $0.0009 | Qwen3 |
79
93
  | qwen3-32b | Economy | $0.0016 | Qwen3 |
80
- | MiniMax-M2.7 | Premium/Standard | $0.001 | MiniMax |
81
- | MiniMax-M2.5 | Economy | $0.001 | MiniMax |
94
+ | qwen3.8-max | Maximum | Unpriced | Qwen3 Token Plan |
95
+ | MiniMax-M3 | Maximum | $0.0012 | MiniMax (≤512k standard input) |
96
+ | MiniMax-M2.7 | Premium/Standard | $0.0012 | MiniMax |
97
+ | MiniMax-M2.5 | Economy | $0.0012 | MiniMax |
82
98
  | kimi-code/k3 | Premium/Standard/Economy | $0.002 | Kimi |
99
+ | kimi-code/k3-256k | Maximum | Unpriced | Kimi subscription |
83
100
  | default | - | $0.015 | Fallback |
84
101
 
85
102
  ## Cost Estimation per Session
@@ -155,7 +172,18 @@ This is a conservative estimate. Actual costs may vary.
155
172
 
156
173
  ### Data Source
157
174
 
158
- Rates are defined in `scripts/lib/costs.sh` and are periodically updated to reflect official provider pricing.
175
+ Rates are defined in `docs/cost_rates.json` and are periodically updated from
176
+ the providers' official pricing pages: [Anthropic](https://platform.claude.com/docs/en/about-claude/models/choosing-a-model),
177
+ [Google](https://ai.google.dev/gemini-api/docs/pricing),
178
+ [Mistral](https://docs.mistral.ai/getting-started/models/models_overview/),
179
+ [xAI](https://docs.x.ai/developers/models), and
180
+ [MiniMax](https://platform.minimax.io/docs/guides/pricing-paygo). Gemini 3.7's
181
+ listed rate is the promotion effective through December 31, 2026.
182
+
183
+ `glm-5.3`, `qwen3.8-max`, and `kimi-code/k3-256k` are explicitly unpriced on
184
+ the transports used here. Their zero catalog entries prevent the estimator from
185
+ inventing a dollar figure; session reports disclose their exclusion rather than
186
+ presenting them as free.
159
187
 
160
188
  ### Dependencies
161
189
 
@@ -37,6 +37,8 @@ The schema is defined in `scripts/lib/schema.json` following JSON Schema Draft-0
37
37
  "tokens_output": 300,
38
38
  "latency_ms": 2345,
39
39
  "model_version": "gemini-3.1-pro-preview",
40
+ "requested_model": "gemini-3.1-pro-preview",
41
+ "model_identity_source": "provider-reported",
40
42
  "cli_version": "0.27.0",
41
43
  "cli_compatibility": "capability-probed",
42
44
  "timestamp": "2024-01-14T12:34:56Z"
@@ -198,6 +200,8 @@ Present only if Multi-Agent Debate is enabled (round >= 2):
198
200
  "tokens_output": 300,
199
201
  "latency_ms": 2345,
200
202
  "model_version": "gemini-3.1-pro-preview",
203
+ "requested_model": "gemini-3.1-pro-preview",
204
+ "model_identity_source": "provider-reported",
201
205
  "timestamp": "2024-01-14T12:34:56Z"
202
206
  }
203
207
  }
@@ -210,7 +214,9 @@ Present only if Multi-Agent Debate is enabled (round >= 2):
210
214
  | `tokens_input` | integer | Prompt tokens, when the provider reported them (API mode only) |
211
215
  | `tokens_output` | integer | Completion tokens, when the provider reported them (API mode only) |
212
216
  | `latency_ms` | integer | Response time in ms |
213
- | `model_version` | string | Exact model version |
217
+ | `model_version` | string | Best effective model identifier available to the transport |
218
+ | `requested_model` | string | Model identifier requested before provider resolution |
219
+ | `model_identity_source` | string | `provider-reported` \| `capability-probed` \| `requested-only` |
214
220
  | `cli_version` | string | Observed CLI version for provenance; never a compatibility gate |
215
221
  | `cli_compatibility` | string | Capability-probe result: `capability-probed` or `incompatible` |
216
222
  | `timestamp` | string | ISO 8601 timestamp |
@@ -335,6 +341,8 @@ jq 'has("consultant") and has("response") and has("confidence")' output.json
335
341
  "tokens_source": "estimated",
336
342
  "latency_ms": 1850,
337
343
  "model_version": "gemini-3.1-pro-preview",
344
+ "requested_model": "gemini-3.1-pro-preview",
345
+ "model_identity_source": "requested-only",
338
346
  "timestamp": "2024-01-14T12:34:56Z"
339
347
  }
340
348
  }
package/docs/RECIPES.md CHANGED
@@ -155,7 +155,7 @@ QWEN3_API_KEY=your-dashscope-key
155
155
  ENABLE_GROK=true
156
156
  GROK_USE_API=false
157
157
  GROK_API_KEY=your-xai-key
158
- GROK_MODEL=grok-4.5
158
+ GROK_MODEL=grok-4.6
159
159
 
160
160
  ENABLE_GLM=false
161
161
  ENABLE_DEEPSEEK=false
@@ -195,7 +195,8 @@ source of truth is [`scripts/config.sh`](../scripts/config.sh).
195
195
  `qwen3.8-max` is **not** served by DashScope/ModelStudio. It is reachable
196
196
  only through a Qwen Cloud **Token Plan** subscription, which has its own base URL
197
197
  and its own API key. This is opt-in: nothing below is a default, and the panel's
198
- premium Qwen model remains `qwen3.7-max`.
198
+ premium Qwen model remains `qwen3.7-max`; `max_quality` selects the separately
199
+ smoke-tested `qwen3.8-max` Token Plan target.
199
200
 
200
201
  Understand the tradeoffs before enabling it:
201
202
 
package/docs/SETUP.md CHANGED
@@ -294,6 +294,7 @@ Get API key: [Mistral Console](https://console.mistral.ai/api-keys/)
294
294
  curl https://cursor.com/install -fsS | bash
295
295
 
296
296
  # Uses Cursor subscription - no additional key needed
297
+ cursor-agent status
297
298
  ```
298
299
 
299
300
  ### Claude CLI (The Synthesizer) - v2.2
@@ -339,6 +340,9 @@ export KIMI_MODEL=kimi-code/k3
339
340
  ./scripts/query_kimi.sh "Review this API boundary"
340
341
  ```
341
342
 
343
+ `max_quality` selects `kimi-code/k3-256k`, whose availability is verified from
344
+ the Kimi provider inventory before the request.
345
+
342
346
  ### MiniMax (CLI via mmx) - v2.21
343
347
 
344
348
  MiniMax runs via the `mmx` CLI by default (CLI-first, OAuth). Install and sign in: