ai-consultants 3.0.0 → 3.2.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 +15 -7
- package/CLAUDE.md +33 -6
- package/README.md +20 -7
- package/SKILL.md +5 -4
- package/docs/COST_RATES.md +3 -3
- package/docs/RECIPES.md +6 -3
- package/docs/SETUP.md +6 -2
- package/docs/cost_rates.json +11 -7
- package/docs/releases/v3.1.0.md +95 -0
- package/docs/releases/v3.1.1.md +54 -0
- package/docs/releases/v3.2.0.md +96 -0
- package/package.json +1 -1
- package/references/configuration.md +24 -4
- package/scripts/config.sh +31 -10
- package/scripts/configure.sh +54 -7
- package/scripts/doctor.sh +17 -13
- package/scripts/lib/api.sh +6 -2
- package/scripts/lib/api_query.sh +18 -1
- package/scripts/lib/common.sh +16 -12
- package/scripts/lib/costs.sh +17 -7
- package/scripts/query_claude.sh +39 -8
- package/scripts/query_grok.sh +214 -5
- package/scripts/update_clis.sh +3 -1
package/.env.example
CHANGED
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
# =============================================================================
|
|
39
39
|
# API-BASED CONSULTANT KEYS
|
|
40
40
|
# =============================================================================
|
|
41
|
-
# These are required for
|
|
41
|
+
# These are required for API transports and API-only consultants.
|
|
42
42
|
|
|
43
43
|
# Qwen3 (Alibaba DashScope) - The Analyst
|
|
44
44
|
# Get yours at: https://dashscope.console.aliyun.com/
|
|
@@ -48,7 +48,8 @@
|
|
|
48
48
|
# Get yours at: https://open.z.ai/
|
|
49
49
|
# GLM_API_KEY=your_zhipu_api_key
|
|
50
50
|
|
|
51
|
-
# Grok (
|
|
51
|
+
# Grok API fallback (the Grok Build CLI normally uses its own login)
|
|
52
|
+
# Official docs call this XAI_API_KEY; GROK_API_KEY remains the project setting.
|
|
52
53
|
# Get yours at: https://console.x.ai/
|
|
53
54
|
# GROK_API_KEY=your_xai_api_key
|
|
54
55
|
|
|
@@ -73,18 +74,18 @@ ENABLE_MISTRAL=true
|
|
|
73
74
|
ENABLE_CURSOR=true
|
|
74
75
|
ENABLE_KIMI=true
|
|
75
76
|
ENABLE_QWEN3=true
|
|
77
|
+
ENABLE_GROK=true
|
|
76
78
|
ENABLE_MINIMAX=true
|
|
77
79
|
ENABLE_CLAUDE=true
|
|
78
80
|
|
|
79
81
|
# API-only consultants (default: disabled - require API keys)
|
|
80
82
|
ENABLE_GLM=false
|
|
81
|
-
ENABLE_GROK=false
|
|
82
83
|
ENABLE_DEEPSEEK=false
|
|
83
84
|
|
|
84
85
|
# =============================================================================
|
|
85
86
|
# CLI/API MODE SWITCHING (v2.6+)
|
|
86
87
|
# =============================================================================
|
|
87
|
-
#
|
|
88
|
+
# 7 agents support switching: Gemini, Codex, Claude, Mistral, Qwen3, Grok, MiniMax
|
|
88
89
|
# When API mode is enabled, CLI mode is automatically disabled.
|
|
89
90
|
|
|
90
91
|
# GEMINI_USE_API is auto-resolved when left UNSET (v2.15.1): API mode if
|
|
@@ -143,9 +144,10 @@ KIMI_TIMEOUT=180
|
|
|
143
144
|
KIMI_CMD=kimi
|
|
144
145
|
|
|
145
146
|
# Claude - The Synthesizer
|
|
146
|
-
CLAUDE_MODEL=claude-opus-
|
|
147
|
+
CLAUDE_MODEL=claude-opus-5 # ai-consultants:default
|
|
147
148
|
CLAUDE_TIMEOUT=240
|
|
148
149
|
CLAUDE_CMD=claude
|
|
150
|
+
CLAUDE_API_MAX_TOKENS=16384
|
|
149
151
|
|
|
150
152
|
# Qwen3 - The Analyst (CLI/API switchable v2.7)
|
|
151
153
|
QWEN3_MODEL=qwen3.7-max
|
|
@@ -160,8 +162,13 @@ QWEN3_CMD=qwen
|
|
|
160
162
|
# rejected by the provider with a 400, not silently ignored.
|
|
161
163
|
# QWEN3_REASONING_EFFORT=
|
|
162
164
|
|
|
165
|
+
# GROK_USE_API is auto-resolved CLI-first: Grok Build is used whenever `grok`
|
|
166
|
+
# is installed; the xAI API is selected when the CLI is unavailable and a key
|
|
167
|
+
# exists. A failed CLI launch also falls back to the API at runtime.
|
|
168
|
+
# GROK_USE_API=false
|
|
169
|
+
|
|
163
170
|
# =============================================================================
|
|
164
|
-
# API-
|
|
171
|
+
# API-ONLY AND FALLBACK CONFIGURATION
|
|
165
172
|
# =============================================================================
|
|
166
173
|
|
|
167
174
|
# GLM - The Methodologist
|
|
@@ -169,7 +176,8 @@ GLM_MODEL=glm-5.2
|
|
|
169
176
|
GLM_TIMEOUT=180
|
|
170
177
|
GLM_API_URL=https://api.z.ai/api/coding/paas/v4/chat/completions
|
|
171
178
|
|
|
172
|
-
# Grok - The Provocateur
|
|
179
|
+
# Grok Build CLI + xAI API fallback - The Provocateur
|
|
180
|
+
GROK_CMD=grok
|
|
173
181
|
GROK_MODEL=grok-4.5
|
|
174
182
|
GROK_TIMEOUT=180
|
|
175
183
|
GROK_API_URL=https://api.x.ai/v1/chat/completions
|
package/CLAUDE.md
CHANGED
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
## Project Overview
|
|
4
4
|
|
|
5
|
-
AI Consultants is a multi-model
|
|
5
|
+
AI Consultants is a multi-model coverage system that queries up to 11 AI consultants (Gemini, Codex, Mistral, Cursor, Kimi, Claude, Qwen3, GLM, Grok, DeepSeek, MiniMax) to obtain diverse perspectives on coding problems.
|
|
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.
|
|
9
|
+
**Version**: 3.2.0
|
|
10
10
|
|
|
11
11
|
## Distribution
|
|
12
12
|
|
|
@@ -368,7 +368,7 @@ Three tiers of models are available for each consultant, configurable via `apply
|
|
|
368
368
|
|
|
369
369
|
| Tier | Description | Example Models |
|
|
370
370
|
|------|-------------|----------------|
|
|
371
|
-
| **premium** | Latest flagship models | claude-opus-
|
|
371
|
+
| **premium** | Latest flagship models | claude-opus-5, Gemini 3.1 Pro (High), gpt-5.5 |
|
|
372
372
|
| **standard** | Good quality at reasonable cost | claude-sonnet-4-6, Gemini 3.5 Flash (High), gpt-5.4 |
|
|
373
373
|
| **economy** | Optimized for speed and low cost | claude-haiku-4-5, Gemini 3.5 Flash (Low), gpt-5.4-nano |
|
|
374
374
|
|
|
@@ -400,12 +400,12 @@ Three new presets leverage the model tiers:
|
|
|
400
400
|
./scripts/consult_all.sh --preset fast "quick syntax question"
|
|
401
401
|
```
|
|
402
402
|
|
|
403
|
-
### Premium Model Defaults (
|
|
403
|
+
### Premium Model Defaults (July 2026)
|
|
404
404
|
All consultants now use premium models by default:
|
|
405
405
|
|
|
406
406
|
| Consultant | Default Model |
|
|
407
407
|
|------------|---------------|
|
|
408
|
-
| Claude | claude-opus-
|
|
408
|
+
| Claude | claude-opus-5 |
|
|
409
409
|
| Gemini | Gemini 3.1 Pro (High) (via agy CLI) |
|
|
410
410
|
| Codex | gpt-5.5 |
|
|
411
411
|
| Mistral | mistral-large-3 |
|
|
@@ -419,6 +419,15 @@ All consultants now use premium models by default:
|
|
|
419
419
|
|
|
420
420
|
Override with environment variables: `CLAUDE_MODEL`, `GEMINI_MODEL`, `CODEX_MODEL`, `KIMI_MODEL`, etc.
|
|
421
421
|
|
|
422
|
+
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
|
|
424
|
+
`--prompt-file`; HOME and CWD are isolated, built-in/MCP tools are denied, and
|
|
425
|
+
the strict sandbox prevents user or project extensions from joining the
|
|
426
|
+
consultation. The xAI Chat Completions path is retained only when the CLI is
|
|
427
|
+
missing, cannot launch, or lacks usable authentication and `GROK_API_KEY` is
|
|
428
|
+
available. A timeout, model error, empty response, or other post-launch failure
|
|
429
|
+
is surfaced and never silently rerouted to the API.
|
|
430
|
+
|
|
422
431
|
## v2.4 Features
|
|
423
432
|
|
|
424
433
|
### Budget Enforcement (Opt-in)
|
|
@@ -604,7 +613,8 @@ for f in scripts/*.sh scripts/lib/*.sh; do bash -n "$f" && echo "OK: $f"; done
|
|
|
604
613
|
| `ENABLE_SMART_ROUTING` | false | Intelligent routing by category |
|
|
605
614
|
| `ENABLE_COST_TRACKING` | true | Track costs |
|
|
606
615
|
| `MAX_SESSION_COST` | 1.00 | Max budget ($) |
|
|
607
|
-
| `CLAUDE_MODEL` | claude-opus-
|
|
616
|
+
| `CLAUDE_MODEL` | claude-opus-5 | Claude model (v2.5) |
|
|
617
|
+
| `CLAUDE_API_MAX_TOKENS` | 16384 | Claude API thinking + visible-output budget |
|
|
608
618
|
| `GEMINI_MODEL` | Gemini 3.1 Pro (High) | Gemini agy CLI model (v2.15) |
|
|
609
619
|
| `GEMINI_API_MODEL` | gemini-3.1-pro-preview | Gemini API-mode model ID (v2.15) |
|
|
610
620
|
| `CODEX_MODEL` | gpt-5.5 | Codex model (v2.5) |
|
|
@@ -777,6 +787,23 @@ curl -fsSL https://raw.githubusercontent.com/matteoscurati/ai-consultants/main/s
|
|
|
777
787
|
|
|
778
788
|
## Changelog
|
|
779
789
|
|
|
790
|
+
### v3.2.0
|
|
791
|
+
- **Claude premium upgraded from Opus 4.8 to Opus 5.** The default `CLAUDE_MODEL`, premium/max/best tier, standalone adapter fallback, configuration examples, model table, and cost catalog now resolve to the canonical `claude-opus-5` ID (`scripts/config.sh:274`, `scripts/query_claude.sh:29`). Pricing remains $5/$25 per million tokens; `claude-opus-4-8` stays in the legacy catalog for historical responses and intentional pins.
|
|
792
|
+
- **Opus 5 adaptive thinking is accounted for end to end.** Claude CLI mode now requests the JSON result envelope, extracts visible `.result`, aggregates provider usage across `modelUsage`, and persists the provider's exact `costUSD` (`scripts/query_claude.sh:72-126`, `scripts/lib/common.sh:904-980`, `scripts/lib/costs.sh:307-354`). This fixes the review finding that pricing only the visible answer undercounted hidden thinking and cache charges. The implementation deliberately prefers provider cost over reconstructing cache pricing from token totals.
|
|
793
|
+
- **Anthropic API responses no longer disappear when thinking precedes text.** `parse_anthropic_response` selects every `type=text` block rather than assuming `.content[0].text` (`scripts/lib/api.sh:325-343`). The API token budget is now the configurable `CLAUDE_API_MAX_TOKENS=16384`, shared by adaptive thinking and visible output; `stop_reason=max_tokens` fails closed instead of admitting a partial answer into synthesis (`scripts/lib/api_query.sh:94-153`).
|
|
794
|
+
- **Historical generated defaults migrate with provenance.** Before this release, `init` copied `CLAUDE_MODEL=claude-opus-4-8` without distinguishing a generated default from a user pin, so the new runtime fallback was unreachable for existing installations. `configure` now upgrades that exact historical value to Opus 5 and writes `# ai-consultants:default`; model values supplied by environment, interactive input, or `--set` receive `# ai-consultants:pin` and survive later rewrites (`scripts/configure.sh:183-291`, `scripts/configure.sh:357-420`). An intentionally retained 4.8 value should be reasserted once with `--set CLAUDE_MODEL=claude-opus-4-8`.
|
|
795
|
+
- **Verification expanded around all four review findings.** `test_query_claude.sh` exercises CLI JSON extraction, measured usage, provider cost persistence, and session billing. `test_api_transport.sh` covers thinking-before-text, the 16,384-token request default, invalid budgets, and truncation rejection; `test_configure.sh` covers managed migration and persistent pins. Full gate: 17/17 suites; core suite: 299/299; shellcheck green. The real maintainer config was not rewritten during implementation and remained on 4.8 until the release installation step.
|
|
796
|
+
|
|
797
|
+
### v3.1.1
|
|
798
|
+
- **`doctor` no longer aborts at the first missing enabled consultant.** The v3.1.0 tag workflow exposed the pre-existing `set -e` interaction when Grok became CLI-first and the clean Ubuntu runner had no `grok` binary: the main JSON diagnostic exited before emitting output. Missing CLI/API configuration checks now add their issue and continue to the final summary, which still exits unhealthy. `test_doctor.sh` stubs the complete CLI roster, rejects empty JSON output, and includes a dedicated missing-Grok regression. Full gate: 16/16 suites; shellcheck green.
|
|
799
|
+
|
|
800
|
+
### v3.1.0
|
|
801
|
+
- **Grok is now a first-class CLI/API-switchable consultant on `grok-4.5`.** `scripts/query_grok.sh` uses the official Grok Build headless interface, `scripts/config.sh` resolves CLI-first while preserving API-only installations, and configure/doctor/update-clis/docs all classify Grok with the other switchable consultants. `XAI_API_KEY` is accepted as the official alias for the historical `GROK_API_KEY` contract. The route that actually answered is recorded as `metadata.transport = cli|api|api_fallback`.
|
|
802
|
+
- **The CLI boundary is enforced rather than documented.** The first implementation disabled plan/subagents/memory/web but still inherited the current checkout and the maintainer's Grok environment; `grok inspect --json` showed 1 MCP server, 13 plugins, 11 hooks, 79 skills, and 3 project instructions available to an advisory consultation. Each run now creates an ephemeral mode-700 HOME/CWD, copies only a regular non-symlink `auth.json` at mode 600, supplies `--tools ""`, `--permission-mode dontAsk`, `--sandbox strict`, and explicit deny rules, then validates the temp-prefix before recursive cleanup. A live Grok 4.5 smoke succeeded through this isolated path.
|
|
803
|
+
- **Prompts use `--prompt-file`, not argv.** `FULL_QUERY` includes context files; passing it through `-p "$FULL_QUERY"` exposed the prompt in the process list and failed before Grok launched once the combined context crossed `ARG_MAX`. Reproduced locally with a 1.1 MiB context (`timeout: Argument list too long`). The private prompt file removes both failure modes, and the regression suite drives the same 1.1 MiB case.
|
|
804
|
+
- **API fallback means transport unavailable, not "any non-zero".** The initial adapter sent every CLI error to the API when a key existed — including timeouts, model errors, empty responses, and a generic tested `exit 42` — which hid CLI regressions and could add an unexpected API charge. `grok_cli_is_unavailable` now recognizes missing/unexecutable binaries and authentication/startup failures only; post-launch failures remain `transport=cli` and surface as errors. Missing-command and authentication fallback paths are tested separately.
|
|
805
|
+
- **Regression and release coverage.** New `test_query_grok.sh` carries 26 assertions across headless flags/model pinning, HOME/CWD/auth isolation, tool denial, transport metadata, API fallback boundaries, and large contexts. The master runner discovers it automatically, taking `npm test` to 16 suites; the v3.1.0 release gate and shellcheck pass. README, SKILL, setup/recipes/configuration references, changelog, and the showcase roster are synchronized.
|
|
806
|
+
|
|
780
807
|
### v3.0.0
|
|
781
808
|
- **Phase 2 of the panel-premise investigation: the deliberation/consensus machinery is removed and the default is now the coverage union.** Two independent reviews (Codex `gpt-5.6-sol`, then Fable-5) had judged the panel premise weak — voting/consensus measure *agreement*, not correctness, and no held-out comparison against one strong model existed. A held-out A/W/C coverage experiment (maintainer instrumentation on the `experiment/coverage-metric` branch, not shipped) resolved it: **task-dependent.** On convergent single-answer defect-finding a single strong model (Gemini 3.1 Pro) caught **19/19** hard bugs (repo-internal + external CVEs/concurrency incl. the Rust `Arc` bug found by RustBelt formal verification) → the panel has no coverage headroom. On **breadth/enumeration** (deep 60-point rubrics across JWT/webhook/cache), rubric coverage was **A 51% · self-consistency C 70% · panel W 93%, W>C>A on every item** → diversity, not volume, and specifically the raw **union** (deliberation OFF). The durable value is the diverse fan-out + union; the averaging machinery adds nothing measurable. Directional (n=3 breadth, hand-validated; n=19 defect).
|
|
782
809
|
- **Removed end to end** (six test-green commits on `refactor/remove-deliberation`, merged via PR #6): `lib/voting.sh` (voted recommendation, 1-10 score, consensus score, dissenters), `lib/orchestration.sh` (shape planner + convergence loop) + `debate_round.sh`, `lib/stance.sh`, `peer_review.sh`, and the capability-calibration cluster `roster_audit.sh`/`roster_calibrate.sh`/`run_calibration.sh`/`taste_elo.sh` + `references/calibration_benchmark.json` + the `capabilities`/`category_axis` blocks in `affinity.json`. Panic functions cut from `common.sh`; capability functions (`get_capability`/`get_category_axis`) and the `ENABLE_CAPABILITY_ROUTING` branch cut from `routing.sh`. Config: `ENABLE_DEBATE`/`DEBATE_ROUNDS`, `ORCHESTRATION_MODE`/`CONVERGENCE_*`, `ENABLE_DEBATE_OPTIMIZATION`/`DEBATE_*`, `ENABLE_PANIC_MODE`/`PANIC_*`, `ENABLE_ADVERSARIAL_VERIFY`, `ENABLE_PEER_REVIEW`/`PEER_REVIEW_MIN`, `ENABLE_CAPABILITY_*`/`CAPABILITY_*`, `ENABLE_STANCE_CONSENSUS`/`STANCE_*`. Presets no longer force debate/peer-review. The `debate` and `roster-audit` slash commands are gone (installers prune them). 19 files deleted, ~-4600 lines. 6 test suites removed.
|
package/README.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
# AI Consultants v3.
|
|
1
|
+
# AI Consultants v3.2.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
|
-
[](https://github.com/matteoscurati/ai-consultants)
|
|
6
6
|
[](LICENSE)
|
|
7
7
|
[](https://docs.anthropic.com/en/docs/claude-code/skills)
|
|
8
8
|
[](https://github.com/matteoscurati/ai-consultants)
|
|
@@ -379,17 +379,22 @@ INVOKING_AGENT=codex ./scripts/consult_all.sh "Question" # Codex excluded
|
|
|
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
|
+
| **Grok** | `grok` | The Provocateur | Challenge conventions |
|
|
382
383
|
| **MiniMax** | `mmx` | The Pragmatic Optimizer | Performance, efficiency, pragmatism |
|
|
383
384
|
|
|
384
|
-
|
|
385
|
-
|
|
385
|
+
Grok uses Grok Build with `grok-4.5` in an isolated, tool-free sandbox. Prompts
|
|
386
|
+
are passed through a private file rather than process arguments. It falls back
|
|
387
|
+
to the xAI API only when the CLI is missing, cannot launch, or has no usable
|
|
388
|
+
authentication and `GROK_API_KEY` is configured; post-launch request failures
|
|
389
|
+
are surfaced without a silent API charge. Qwen3 and MiniMax can also switch
|
|
390
|
+
from their CLI to API transport. Gemini, Codex, Claude, and Mistral are
|
|
391
|
+
CLI/API switchable.
|
|
386
392
|
|
|
387
393
|
### API-Only Consultants
|
|
388
394
|
|
|
389
395
|
| Consultant | Default Model | Persona | Focus |
|
|
390
396
|
|------------|---------------|---------|-------|
|
|
391
397
|
| **GLM** | glm-5.2 | The Methodologist | Structured approaches |
|
|
392
|
-
| **Grok** | grok-4.5 | The Provocateur | Challenge conventions |
|
|
393
398
|
| **DeepSeek** | deepseek-v4-pro | The Code Specialist | Algorithms, code generation |
|
|
394
399
|
|
|
395
400
|
### Installing Consultant CLIs
|
|
@@ -405,6 +410,7 @@ curl https://cursor.com/install -fsS | bash # Cursor
|
|
|
405
410
|
# Optional CLI-based consultants
|
|
406
411
|
curl -L code.kimi.com/install.sh | bash # Kimi K3
|
|
407
412
|
npm install -g @qwen-code/qwen-code@latest # Qwen (alternative to API)
|
|
413
|
+
curl -fsSL https://x.ai/cli/install.sh | bash # Grok Build (grok-4.5)
|
|
408
414
|
npm install -g mmx-cli # MiniMax
|
|
409
415
|
|
|
410
416
|
```
|
|
@@ -438,7 +444,7 @@ parallel and returns the coverage union.
|
|
|
438
444
|
|
|
439
445
|
| Consultant | Premium | Standard | Economy |
|
|
440
446
|
|------------|---------|----------|---------|
|
|
441
|
-
| Claude | claude-opus-
|
|
447
|
+
| Claude | claude-opus-5 | claude-sonnet-4-6 | claude-haiku-4-5 |
|
|
442
448
|
| Gemini | Gemini 3.1 Pro (High) | Gemini 3.5 Flash (High) | Gemini 3.5 Flash (Low) |
|
|
443
449
|
| Codex | gpt-5.5 | gpt-5.4 | gpt-5.4-nano |
|
|
444
450
|
| Mistral | mistral-large-3 | mistral-medium-latest | devstral-small-2 |
|
|
@@ -540,7 +546,13 @@ with `--set`). Rewrites create a private timestamped backup. Use `--advanced` to
|
|
|
540
546
|
review every parameter or `--dry-run` to preview a redacted result.
|
|
541
547
|
Auto-selected `*_USE_API` values are marked `# ai-consultants:auto`, allowing a
|
|
542
548
|
later run to adapt when a CLI or credential changes. Environment variables,
|
|
543
|
-
`--set`, and unmarked values remain explicit user choices
|
|
549
|
+
`--set`, and unmarked values remain explicit user choices, except for the exact
|
|
550
|
+
historical generated Claude default described below.
|
|
551
|
+
Managed model defaults use `# ai-consultants:default`; `configure` upgrades the
|
|
552
|
+
historical unmarked `CLAUDE_MODEL=claude-opus-4-8` default to Opus 5. To keep
|
|
553
|
+
4.8 intentionally, run
|
|
554
|
+
`ai-consultants configure --set CLAUDE_MODEL=claude-opus-4-8`; explicit model
|
|
555
|
+
overrides are stored with `# ai-consultants:pin`.
|
|
544
556
|
|
|
545
557
|
Enter credentials through `--interactive`/`--advanced` or export them before the
|
|
546
558
|
run; avoid passing API keys through `--set`, where the shell may retain them in
|
|
@@ -557,6 +569,7 @@ DEFAULT_STRATEGY=coverage # coverage | compare_only | majority | risk_averse
|
|
|
557
569
|
ENABLE_SMART_ROUTING=true # Auto-select consultants by question category
|
|
558
570
|
MAX_SESSION_COST=1.00 # USD budget cap (paired with ENABLE_BUDGET_LIMIT=true to enforce)
|
|
559
571
|
KIMI_MODEL=kimi-code/k3 # Pin the Kimi consultant to K3
|
|
572
|
+
CLAUDE_API_MAX_TOKENS=16384 # Shared thinking + visible-output budget in API mode
|
|
560
573
|
```
|
|
561
574
|
|
|
562
575
|
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.
|
|
8
|
+
version: 3.2.0
|
|
9
9
|
---
|
|
10
10
|
|
|
11
|
-
# AI Consultants v3.
|
|
11
|
+
# AI Consultants v3.2.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
|
|
|
@@ -38,11 +38,12 @@ Configuration (presets, strategies, features, personas, API keys) can be managed
|
|
|
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 |
|
|
41
|
+
| **Grok** | `grok` | The Provocateur | Challenge conventions |
|
|
41
42
|
| **MiniMax** | `mmx` | The Pragmatic Optimizer | Performance, efficiency, pragmatism |
|
|
42
43
|
|
|
43
|
-
**API-only consultants**: GLM (The Methodologist),
|
|
44
|
+
**API-only consultants**: GLM (The Methodologist), DeepSeek (The Code Specialist)
|
|
44
45
|
|
|
45
|
-
**CLI/API Mode**: Gemini, Codex, Claude, Mistral, Qwen, and MiniMax can switch between CLI and API mode via `*_USE_API` environment variables. 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.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
47
|
|
|
47
48
|
**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.
|
|
48
49
|
|
package/docs/COST_RATES.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Cost Rates - AI Consultants v3.
|
|
1
|
+
# Cost Rates - AI Consultants v3.2.0
|
|
2
2
|
|
|
3
3
|
This page documents the per-token rates used by the cost tracking system.
|
|
4
4
|
|
|
@@ -26,7 +26,7 @@ Since v2.5, models are organized into three tiers. Use `apply_model_tier()` or `
|
|
|
26
26
|
| gpt-5.5 | Premium | $0.005 | Codex |
|
|
27
27
|
| gpt-5.4 | Standard | $0.0025 | Codex |
|
|
28
28
|
| gpt-5.4-nano | Economy | $0.0002 | Codex |
|
|
29
|
-
| claude-opus-
|
|
29
|
+
| claude-opus-5 | Premium | $0.005 | Claude |
|
|
30
30
|
| claude-sonnet-4-6 | Standard | $0.003 | Claude |
|
|
31
31
|
| claude-haiku-4-5 | Economy | $0.001 | Claude |
|
|
32
32
|
| mistral-large-3 | Premium | $0.002 | Mistral |
|
|
@@ -59,7 +59,7 @@ Since v2.5, models are organized into three tiers. Use `apply_model_tier()` or `
|
|
|
59
59
|
| gpt-5.5 | Premium | $0.030 | Codex |
|
|
60
60
|
| gpt-5.4 | Standard | $0.015 | Codex |
|
|
61
61
|
| gpt-5.4-nano | Economy | $0.00125 | Codex |
|
|
62
|
-
| claude-opus-
|
|
62
|
+
| claude-opus-5 | Premium | $0.025 | Claude |
|
|
63
63
|
| claude-sonnet-4-6 | Standard | $0.015 | Claude |
|
|
64
64
|
| claude-haiku-4-5 | Economy | $0.005 | Claude |
|
|
65
65
|
| mistral-large-3 | Premium | $0.006 | Mistral |
|
package/docs/RECIPES.md
CHANGED
|
@@ -124,10 +124,10 @@ CLAUDE_USE_API=false
|
|
|
124
124
|
MISTRAL_USE_API=false
|
|
125
125
|
QWEN3_USE_API=false
|
|
126
126
|
MINIMAX_USE_API=false
|
|
127
|
+
GROK_USE_API=false
|
|
127
128
|
KIMI_MODEL=kimi-code/k3
|
|
128
129
|
|
|
129
130
|
ENABLE_GLM=false
|
|
130
|
-
ENABLE_GROK=false
|
|
131
131
|
ENABLE_DEEPSEEK=false
|
|
132
132
|
```
|
|
133
133
|
|
|
@@ -140,8 +140,10 @@ even when `~/.kimi/config.toml` still names an older default model.
|
|
|
140
140
|
|
|
141
141
|
## 8. Hybrid CLI and API panel
|
|
142
142
|
|
|
143
|
-
Enable API transport only where needed.
|
|
144
|
-
|
|
143
|
+
Enable API transport only where needed. Grok normally uses Grok Build and
|
|
144
|
+
automatically falls back to the xAI API if the CLI cannot run. Gemini and
|
|
145
|
+
MiniMax automatically choose API mode when their API key is present unless
|
|
146
|
+
`*_USE_API` is explicitly set.
|
|
145
147
|
|
|
146
148
|
```dotenv
|
|
147
149
|
CODEX_USE_API=false
|
|
@@ -151,6 +153,7 @@ QWEN3_USE_API=true
|
|
|
151
153
|
QWEN3_API_KEY=your-dashscope-key
|
|
152
154
|
|
|
153
155
|
ENABLE_GROK=true
|
|
156
|
+
GROK_USE_API=false
|
|
154
157
|
GROK_API_KEY=your-xai-key
|
|
155
158
|
GROK_MODEL=grok-4.5
|
|
156
159
|
|
package/docs/SETUP.md
CHANGED
|
@@ -394,7 +394,7 @@ INVOKING_AGENT=codex ./scripts/consult_all.sh "Question"
|
|
|
394
394
|
|
|
395
395
|
## CLI/API Mode Switching (v2.6+)
|
|
396
396
|
|
|
397
|
-
|
|
397
|
+
Seven consultants can switch between CLI mode (using local CLI tools) and API mode (direct API calls): **Gemini, Codex, Claude, Mistral, Qwen3, Grok, and MiniMax**. Grok is CLI-first and runs in an isolated, tool-free strict sandbox. It falls back automatically only when Grok Build is missing, cannot launch, or lacks usable authentication and a key is available; request failures after launch are surfaced without an API fallback.
|
|
398
398
|
|
|
399
399
|
### Why Use API Mode?
|
|
400
400
|
|
|
@@ -418,6 +418,9 @@ export ANTHROPIC_API_KEY="sk-ant-..."
|
|
|
418
418
|
export MISTRAL_USE_API=true
|
|
419
419
|
export MISTRAL_API_KEY="your-mistral-key"
|
|
420
420
|
|
|
421
|
+
export GROK_USE_API=true
|
|
422
|
+
export GROK_API_KEY="your-xai-key"
|
|
423
|
+
|
|
421
424
|
export QWEN3_USE_API=true # Enable API mode for Qwen3
|
|
422
425
|
export QWEN3_API_KEY="your-dashscope-key"
|
|
423
426
|
```
|
|
@@ -590,8 +593,8 @@ ENABLE_CLAUDE=false # Auto-excluded when invoked from Claude Code
|
|
|
590
593
|
ENABLE_MISTRAL=false
|
|
591
594
|
ENABLE_CURSOR=false
|
|
592
595
|
ENABLE_QWEN3=false # v2.7: The Analyst (CLI/API)
|
|
596
|
+
ENABLE_GROK=true # Grok Build CLI; API fallback when unavailable
|
|
593
597
|
ENABLE_GLM=false
|
|
594
|
-
ENABLE_GROK=false
|
|
595
598
|
ENABLE_DEEPSEEK=false
|
|
596
599
|
ENABLE_KIMI=true
|
|
597
600
|
ENABLE_MINIMAX=true
|
|
@@ -606,6 +609,7 @@ OPENAI_API_KEY=sk-your-key
|
|
|
606
609
|
MISTRAL_API_KEY=your-key
|
|
607
610
|
ANTHROPIC_API_KEY=sk-ant-your-key
|
|
608
611
|
QWEN3_API_KEY=your-dashscope-key
|
|
612
|
+
GROK_API_KEY=your-xai-key # optional fallback; Grok Build normally uses login
|
|
609
613
|
|
|
610
614
|
# CLI/API Mode Switching (v2.6+)
|
|
611
615
|
# GEMINI_USE_API auto-resolves when unset (v2.15.1): API if GEMINI_API_KEY is
|
package/docs/cost_rates.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "3.
|
|
3
|
-
"updated": "2026-07-
|
|
2
|
+
"version": "3.2.0",
|
|
3
|
+
"updated": "2026-07-25",
|
|
4
4
|
"models": {
|
|
5
5
|
"_comment_units": "All rates are USD per 1,000 tokens (per-1K). lib/costs.sh computes cost as (token_count / 1000) * rate, so every value here MUST be a per-1K rate = (provider $/1M price) / 1000. Do NOT paste $/MTok figures directly.",
|
|
6
|
-
"_comment_premium": "Premium tier models -
|
|
7
|
-
"claude-opus-
|
|
6
|
+
"_comment_premium": "Premium tier models - Jul 2026",
|
|
7
|
+
"claude-opus-5": {
|
|
8
8
|
"input": 0.005,
|
|
9
9
|
"output": 0.025
|
|
10
10
|
},
|
|
@@ -137,6 +137,10 @@
|
|
|
137
137
|
"output": 0.001
|
|
138
138
|
},
|
|
139
139
|
"_comment_legacy": "Legacy models for backwards compatibility",
|
|
140
|
+
"claude-opus-4-8": {
|
|
141
|
+
"input": 0.005,
|
|
142
|
+
"output": 0.025
|
|
143
|
+
},
|
|
140
144
|
"claude-opus-4-7": {
|
|
141
145
|
"input": 0.005,
|
|
142
146
|
"output": 0.025
|
|
@@ -331,8 +335,8 @@
|
|
|
331
335
|
"qwen3.8-max-preview"
|
|
332
336
|
],
|
|
333
337
|
"consultant_fallbacks": {
|
|
334
|
-
"_comment": "Premium defaults - Updated
|
|
335
|
-
"claude": "claude-opus-
|
|
338
|
+
"_comment": "Premium defaults - Updated Jul 2026",
|
|
339
|
+
"claude": "claude-opus-5",
|
|
336
340
|
"gemini": "Gemini 3.1 Pro (High)",
|
|
337
341
|
"codex": "gpt-5.5",
|
|
338
342
|
"mistral": "mistral-large-3",
|
|
@@ -347,7 +351,7 @@
|
|
|
347
351
|
"model_tiers": {
|
|
348
352
|
"_comment": "Model tiers for apply_model_tier() function",
|
|
349
353
|
"premium": {
|
|
350
|
-
"claude": "claude-opus-
|
|
354
|
+
"claude": "claude-opus-5",
|
|
351
355
|
"gemini": "Gemini 3.1 Pro (High)",
|
|
352
356
|
"codex": "gpt-5.5",
|
|
353
357
|
"mistral": "mistral-large-3",
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
# Release v3.1.0
|
|
2
|
+
|
|
3
|
+
**Date:** 2026-07-24
|
|
4
|
+
**Type:** Minor — Grok 4.5 becomes a secure CLI-first consultant through Grok Build
|
|
5
|
+
**Previous:** v3.0.0
|
|
6
|
+
|
|
7
|
+
## Highlights
|
|
8
|
+
|
|
9
|
+
- **Grok 4.5 now uses the official Grok Build CLI by default**, including OAuth/subscription authentication already available on the machine.
|
|
10
|
+
- **Each Grok consultation runs in an isolated, tool-free environment** without importing local plugins, hooks, MCP servers, skills, memories, or project instructions.
|
|
11
|
+
- **The xAI API remains available as a focused fallback** when Grok Build is missing, cannot launch, or is not authenticated.
|
|
12
|
+
- **CLI request failures never silently become billable API requests.** Timeouts, model errors, and empty responses are returned as failures on the attempted CLI transport.
|
|
13
|
+
- **Large contexts are safe from shell argument limits** because prompts are delivered through a private file instead of the process command line.
|
|
14
|
+
|
|
15
|
+
## What's New
|
|
16
|
+
|
|
17
|
+
### Grok Build CLI transport
|
|
18
|
+
|
|
19
|
+
Grok joins the CLI-first consultant roster with `grok-4.5` pinned explicitly. Existing installations prefer the `grok` command; API-only installations continue to use the xAI Chat Completions transport when `GROK_API_KEY` or `XAI_API_KEY` is configured.
|
|
20
|
+
|
|
21
|
+
Every response records the route that answered:
|
|
22
|
+
|
|
23
|
+
| `metadata.transport` | Meaning |
|
|
24
|
+
|---|---|
|
|
25
|
+
| `cli` | Grok Build answered |
|
|
26
|
+
| `api` | API mode was explicitly selected |
|
|
27
|
+
| `api_fallback` | The CLI was unavailable and the xAI API answered |
|
|
28
|
+
|
|
29
|
+
### Isolated advisory execution
|
|
30
|
+
|
|
31
|
+
AI Consultants uses Grok as an advisory model, not as an editing agent. The adapter therefore starts Grok Build with:
|
|
32
|
+
|
|
33
|
+
- an ephemeral HOME and empty working directory;
|
|
34
|
+
- no built-in tools, MCP tools, subagents, memory, or web access;
|
|
35
|
+
- fail-closed permissions and the strict sandbox;
|
|
36
|
+
- only the existing Grok authentication material copied into the private runtime;
|
|
37
|
+
- automatic cleanup after the response.
|
|
38
|
+
|
|
39
|
+
The consultation receives only the prompt and context explicitly assembled by AI Consultants.
|
|
40
|
+
|
|
41
|
+
### Narrow API fallback
|
|
42
|
+
|
|
43
|
+
The API fallback is limited to transport availability:
|
|
44
|
+
|
|
45
|
+
- Grok Build is not installed;
|
|
46
|
+
- the command cannot execute or launch;
|
|
47
|
+
- the CLI has no usable authentication.
|
|
48
|
+
|
|
49
|
+
Failures after the CLI request starts—including timeouts, model errors, and empty output—are surfaced directly. This prevents a broken CLI request from silently producing a separate API charge.
|
|
50
|
+
|
|
51
|
+
### Private prompt files
|
|
52
|
+
|
|
53
|
+
The complete prompt is written to a mode-600 temporary file and passed with `--prompt-file`. This keeps prompt content out of process listings and supports contexts larger than the operating system's argument-vector limit.
|
|
54
|
+
|
|
55
|
+
## Breaking Changes
|
|
56
|
+
|
|
57
|
+
None — this release is backwards-compatible. `GROK_USE_API=true` still forces the API transport, and the existing `GROK_API_KEY` configuration remains supported.
|
|
58
|
+
|
|
59
|
+
## Upgrade Guide
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
# If installed via git clone
|
|
63
|
+
cd ~/.claude/skills/ai-consultants && git pull
|
|
64
|
+
|
|
65
|
+
# If installed via curl | bash
|
|
66
|
+
curl -fsSL https://raw.githubusercontent.com/matteoscurati/ai-consultants/main/scripts/install.sh | bash
|
|
67
|
+
|
|
68
|
+
# If used through npx
|
|
69
|
+
npx ai-consultants@latest "your question"
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
Install and authenticate Grok Build to use the new default transport:
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
curl -fsSL https://x.ai/cli/install.sh | bash
|
|
76
|
+
grok login
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
No configuration changes are required. Systems without a usable Grok Build CLI continue to use the configured xAI API fallback.
|
|
80
|
+
|
|
81
|
+
## Verification
|
|
82
|
+
|
|
83
|
+
- Live Grok 4.5 smoke through the isolated CLI runtime
|
|
84
|
+
- Grok adapter regression suite: 26 checks
|
|
85
|
+
- Full repository gate: 16/16 suites
|
|
86
|
+
- Core suite: 295/295 checks
|
|
87
|
+
- Shellcheck and release-surface validation
|
|
88
|
+
|
|
89
|
+
## Commits
|
|
90
|
+
|
|
91
|
+
- `ed84c8c` feat: integrate Grok 4.5 through Grok Build CLI
|
|
92
|
+
|
|
93
|
+
## Contributors
|
|
94
|
+
|
|
95
|
+
- Matteo Scurati
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# Release v3.1.1
|
|
2
|
+
|
|
3
|
+
**Date:** 2026-07-24
|
|
4
|
+
**Type:** Patch — complete doctor diagnostics when a consultant is unavailable
|
|
5
|
+
**Previous:** v3.1.0
|
|
6
|
+
|
|
7
|
+
## Highlights
|
|
8
|
+
|
|
9
|
+
- **`doctor` now reaches its final summary when an enabled CLI is missing.**
|
|
10
|
+
- **JSON diagnostics always emit a complete object before returning unhealthy.**
|
|
11
|
+
- **Missing API credentials follow the same accumulate-and-report behavior.**
|
|
12
|
+
|
|
13
|
+
## What Was Fixed
|
|
14
|
+
|
|
15
|
+
The diagnostic checks correctly recognized an enabled but unavailable consultant
|
|
16
|
+
as unhealthy, but returned a non-zero status from inside the pipeline. Because
|
|
17
|
+
`doctor.sh` runs with `set -e`, that return terminated the entire command before
|
|
18
|
+
the human summary or JSON object could be produced.
|
|
19
|
+
|
|
20
|
+
This became visible in the clean Linux release runner after Grok Build became the
|
|
21
|
+
default Grok transport in v3.1.0: the runner had no `grok` executable, so
|
|
22
|
+
`doctor --json` emitted nothing.
|
|
23
|
+
|
|
24
|
+
CLI, switchable API-mode, and API-only checks now record the issue and continue.
|
|
25
|
+
The command still exits 1 after the completed summary when any issue exists.
|
|
26
|
+
|
|
27
|
+
## Verification
|
|
28
|
+
|
|
29
|
+
- Dedicated missing-Grok JSON regression
|
|
30
|
+
- Empty output is no longer accepted as valid JSON
|
|
31
|
+
- Doctor suite: 43/43 checks
|
|
32
|
+
- Full repository gate: 16/16 suites
|
|
33
|
+
- Shellcheck passed
|
|
34
|
+
|
|
35
|
+
## Breaking Changes
|
|
36
|
+
|
|
37
|
+
None.
|
|
38
|
+
|
|
39
|
+
## Upgrade Guide
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
# If installed via git clone
|
|
43
|
+
cd ~/.claude/skills/ai-consultants && git pull
|
|
44
|
+
|
|
45
|
+
# If installed via curl | bash
|
|
46
|
+
curl -fsSL https://raw.githubusercontent.com/matteoscurati/ai-consultants/main/scripts/install.sh | bash
|
|
47
|
+
|
|
48
|
+
# If used through npx
|
|
49
|
+
npx ai-consultants@latest doctor
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## Contributors
|
|
53
|
+
|
|
54
|
+
- Matteo Scurati
|