ai-consultants 5.0.0 → 5.1.1
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 +6 -6
- package/CLAUDE.md +26 -10
- package/README.md +14 -13
- package/SKILL.md +4 -3
- package/docs/COST_RATES.md +30 -13
- package/docs/JSON_SCHEMA.md +20 -0
- package/docs/SETUP.md +77 -2
- package/docs/cost_rates.json +42 -20
- package/package.json +2 -1
- package/references/configuration.md +9 -7
- package/scripts/config.sh +15 -15
- package/scripts/configure.sh +44 -20
- package/scripts/doctor.sh +12 -0
- package/scripts/lib/api.sh +21 -0
- package/scripts/lib/api_query.sh +3 -1
- package/scripts/lib/claude_stream.jq +36 -0
- package/scripts/lib/common.sh +10 -0
- package/scripts/lib/costs.sh +26 -1
- package/scripts/lib/grok_oauth.sh +11 -3
- package/scripts/lib/grok_sandbox.sh +53 -0
- package/scripts/lib/schema.json +17 -4
- package/scripts/query_claude.sh +60 -34
- package/scripts/query_codex.sh +46 -12
- package/scripts/query_deepseek.sh +1 -1
- package/scripts/query_grok.sh +65 -14
package/.env.example
CHANGED
|
@@ -130,8 +130,8 @@ GEMINI_API_MODEL=gemini-3.1-pro-preview
|
|
|
130
130
|
# GEMINI_REASONING_EFFORT=
|
|
131
131
|
|
|
132
132
|
# Codex - The Pragmatist
|
|
133
|
-
CODEX_MODEL=gpt-
|
|
134
|
-
CODEX_API_MAX_TOKENS=
|
|
133
|
+
CODEX_MODEL=gpt-6-astra
|
|
134
|
+
CODEX_API_MAX_TOKENS=16384
|
|
135
135
|
CODEX_TIMEOUT=180
|
|
136
136
|
CODEX_CMD=codex
|
|
137
137
|
# Reasoning effort for the codex CLI (and API mode). Passed as
|
|
@@ -158,9 +158,9 @@ KIMI_TIMEOUT=180
|
|
|
158
158
|
KIMI_CMD=kimi
|
|
159
159
|
|
|
160
160
|
# Claude - The Synthesizer
|
|
161
|
-
CLAUDE_MODEL=claude-
|
|
162
|
-
#
|
|
163
|
-
#
|
|
161
|
+
CLAUDE_MODEL=claude-fable-5-1 # ai-consultants:default
|
|
162
|
+
# For the lower-cost standard/medium Claude tier, set CLAUDE_MODEL to
|
|
163
|
+
# claude-opus-5 (or apply_model_tier standard for a single run).
|
|
164
164
|
CLAUDE_TIMEOUT=240
|
|
165
165
|
CLAUDE_CMD=claude
|
|
166
166
|
CLAUDE_API_MAX_TOKENS=16384
|
|
@@ -215,7 +215,7 @@ GROK_API_URL=https://api.x.ai/v1/chat/completions
|
|
|
215
215
|
# GROK_REASONING_EFFORT= # max_quality sets xhigh (Grok Build maximum)
|
|
216
216
|
|
|
217
217
|
# DeepSeek - The Code Specialist
|
|
218
|
-
DEEPSEEK_MODEL=deepseek-
|
|
218
|
+
DEEPSEEK_MODEL=deepseek-flash
|
|
219
219
|
DEEPSEEK_TIMEOUT=180
|
|
220
220
|
DEEPSEEK_MAX_QUALITY_TIMEOUT=600
|
|
221
221
|
DEEPSEEK_API_MAX_TOKENS=16384
|
package/CLAUDE.md
CHANGED
|
@@ -6,7 +6,7 @@ AI Consultants is a multi-model coverage system that queries up to 10 AI consult
|
|
|
6
6
|
|
|
7
7
|
**Self-Exclusion**: The invoking agent is automatically excluded from both the panel and synthesis. Claude Code won't query or synthesize with Claude, Codex CLI won't query or synthesize with Codex, etc.
|
|
8
8
|
|
|
9
|
-
**Version**: 5.
|
|
9
|
+
**Version**: 5.1.1
|
|
10
10
|
|
|
11
11
|
## Distribution
|
|
12
12
|
|
|
@@ -349,9 +349,9 @@ Three normal tiers plus a `maximum` tier are configurable via `apply_model_tier(
|
|
|
349
349
|
|
|
350
350
|
| Tier | Description | Example Models |
|
|
351
351
|
|------|-------------|----------------|
|
|
352
|
-
| **premium** | Latest flagship models | claude-
|
|
353
|
-
| **maximum** | All 10 consultants; maximum targets and highest provider effort | K3-256k, Qwen3.8-Max, MiniMax M3; Grok xhigh, GLM/DeepSeek max |
|
|
354
|
-
| **standard** | Good quality at reasonable cost | claude-
|
|
352
|
+
| **premium** | Latest flagship models | claude-fable-5-1, Gemini 3.7 Flash (High), gpt-6-astra |
|
|
353
|
+
| **maximum** | All 10 consultants; maximum targets and highest provider effort | claude-fable-5-1, K3-256k, Qwen3.8-Max, MiniMax M3; Grok xhigh, GLM/DeepSeek max |
|
|
354
|
+
| **standard** | Good quality at reasonable cost | claude-opus-5, Gemini 3.7 Flash (High), gpt-5.6-terra |
|
|
355
355
|
| **economy** | Optimized for speed and low cost | claude-haiku-4-5, Gemini 3.7 Flash (Low), gpt-5.6-luna |
|
|
356
356
|
|
|
357
357
|
**Default models are now premium tier** for maximum quality.
|
|
@@ -383,16 +383,16 @@ Three new presets leverage the model tiers:
|
|
|
383
383
|
./scripts/consult_all.sh --preset fast "quick syntax question"
|
|
384
384
|
```
|
|
385
385
|
|
|
386
|
-
### Premium Model Defaults (
|
|
386
|
+
### Premium Model Defaults (September 2026)
|
|
387
387
|
All consultants now use premium models by default:
|
|
388
388
|
|
|
389
389
|
| Consultant | Default Model |
|
|
390
390
|
|------------|---------------|
|
|
391
|
-
| Claude | claude-
|
|
391
|
+
| Claude | claude-fable-5-1 |
|
|
392
392
|
| Gemini | Gemini 3.7 Flash (High) (via agy CLI); API: gemini-3.1-pro-preview |
|
|
393
|
-
| Codex | gpt-
|
|
393
|
+
| Codex | gpt-6-astra |
|
|
394
394
|
| Mistral | CLI: mistral-medium-3.5; API: mistral-large-3 |
|
|
395
|
-
| DeepSeek | deepseek-
|
|
395
|
+
| DeepSeek | deepseek-flash (DeepSeek-V4.1-Flash) |
|
|
396
396
|
| GLM | glm-5.3-flash |
|
|
397
397
|
| Grok | grok-4.6 |
|
|
398
398
|
| Qwen3 | qwen3.7-max |
|
|
@@ -586,11 +586,11 @@ for f in scripts/*.sh scripts/lib/*.sh; do bash -n "$f" && echo "OK: $f"; done
|
|
|
586
586
|
| `ENABLE_SMART_ROUTING` | false | Intelligent routing by category |
|
|
587
587
|
| `ENABLE_COST_TRACKING` | true | Track costs |
|
|
588
588
|
| `MAX_SESSION_COST` | 1.00 | Max budget ($) |
|
|
589
|
-
| `CLAUDE_MODEL` | claude-
|
|
589
|
+
| `CLAUDE_MODEL` | claude-fable-5-1 | Claude model (use claude-opus-5 for lower-cost standard) |
|
|
590
590
|
| `CLAUDE_API_MAX_TOKENS` | 16384 | Claude API thinking + visible-output budget |
|
|
591
591
|
| `GEMINI_MODEL` | Gemini 3.7 Flash (High) | Gemini agy CLI model |
|
|
592
592
|
| `GEMINI_API_MODEL` | gemini-3.1-pro-preview | Gemini API-mode model ID (v2.15) |
|
|
593
|
-
| `CODEX_MODEL` | gpt-
|
|
593
|
+
| `CODEX_MODEL` | gpt-6-astra | Codex model (v2.5) |
|
|
594
594
|
| `MISTRAL_MODEL` | mistral-large-3 | Mistral model (v2.5) |
|
|
595
595
|
| `MISTRAL_CLI_MODEL` | mistral-medium-3.5 | Vibe CLI model alias |
|
|
596
596
|
| `SYNTHESIS_STRATEGY` | coverage | Synthesis strategy (coverage=union of distinct points) |
|
|
@@ -760,6 +760,22 @@ curl -fsSL https://raw.githubusercontent.com/matteoscurati/ai-consultants/main/s
|
|
|
760
760
|
|
|
761
761
|
## Changelog
|
|
762
762
|
|
|
763
|
+
### v5.1.1 (2026-09-10)
|
|
764
|
+
|
|
765
|
+
- **DeepSeek V4.1 Flash policy.** `scripts/config.sh` selects `deepseek-flash` for the default and every tier. `scripts/configure.sh` migrates only the two exact historical unpinned defaults; durable pins and explicit overrides remain intact. No credentials are imported or personal configuration rewritten by the upgrade.
|
|
766
|
+
- **Conservative cost accounting.** `docs/cost_rates.json` and the catalog-independent fallbacks use $0.30/M input and $1.20/M output for Flash, including retired Flash aliases now served by the new model. `format_cost_caveats` discloses the peak/cache-miss assumption and excluded discounts; estimates are not provider invoices. Other legacy rates are retained as historical estimates.
|
|
767
|
+
- **Verification and scope.** PR #27 passed all 32 CI suites, plus local API 101, configure 138 and core 451 checks. One authorized API request on `96816b5` returned HTTP 200 and a correct structured expiry-boundary answer, with `deepseek-flash` provider-reported, max effort, 119 input / 602 output measured tokens. The shared transport is unchanged; provider identity is not rewritten into a version label. No frozen P1.6 input or live benchmark claim changes.
|
|
768
|
+
|
|
769
|
+
|
|
770
|
+
### v5.1.0 (2026-09-09)
|
|
771
|
+
|
|
772
|
+
- **Fable and Astra model policy.** `scripts/config.sh` and `scripts/configure.sh` align default/premium/maximum with Fable 5.1 and Astra, retain Opus 5/Terra for standard and Haiku/Luna for economy, and migrate exact historical unpinned Codex defaults while recording their origin. `resolve_codex_effort` applies implicit high per request so a later tier cannot inherit an automatically exported value.
|
|
773
|
+
- **Completion and identity are independent checks.** `scripts/lib/claude_stream.jq` derives content identity from assistant text events, keeps billing participants separate, rejects incomplete/error/max-token streams and preserves available accounting. `query_codex.sh` reads usage from JSON events while keeping the final-message file as the answer. Requested-only Codex identity remains truthful and is not an invented promotion blocker.
|
|
774
|
+
- **Grok sandbox checks precede fallback decisions.** `scripts/lib/grok_sandbox.sh` supplies passive socket and diagnostic checks shared with doctor/OAuth. Hidden `--no-memory` is supported by the installed parser even though omitted from help: the earlier diagnosis of an unsupported flag was incorrect. It remains mandatory in dispatch. Metadata annotation cannot replace the adapter's status when its same-directory temporary file fails.
|
|
775
|
+
- **Accounting and configuration.** Fable and Astra both have catalog-independent rate fallbacks. Astra estimates disclose long-context multipliers and excluded cache/service adjustments; no estimate is called a provider invoice. Explicit `AI_CONSULTANTS_CONFIG_DIR` selects private configuration; project dotenv discovery and credential import are not added.
|
|
776
|
+
- **Validation scope.** CLI-only acceptance was selected explicitly. The three provider smoke results retain their actual commit and identity provenance; API paths retain automated tests without a live-promotion claim. The maintainer Breadth v1 harness is included in the repository but excluded from npm, and its frozen inputs are unchanged. No completed P1 benchmark or coverage-gain claim is made.
|
|
777
|
+
|
|
778
|
+
|
|
763
779
|
### v5.0.0
|
|
764
780
|
|
|
765
781
|
- **Coverage claims are now locally auditable instead of resting on synthesis prose.** `scripts/lib/coverage_integrity.sh` normalizes successful structured envelopes into deterministic `<consultant-slug>:<index>` findings, overwriting any provider-supplied IDs. `scripts/synthesize.sh` asks the synthesizer to cite those IDs, then independently compares expected and represented IDs. Missing/duplicate/non-normalizable sources produce `DEGRADED`; unknown IDs and structural failures produce `FAILED`; invented IDs are removed from published coverage. The legacy `coverage`, `weighted_recommendation`, risk, action, and individual-response fields remain present.
|
package/README.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
# AI Consultants v5.
|
|
1
|
+
# AI Consultants v5.1.1
|
|
2
2
|
|
|
3
3
|
> **Coverage, not a single guess.** A panel of up to 10 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)
|
|
@@ -412,7 +412,7 @@ the observed version is response provenance only.
|
|
|
412
412
|
| Consultant | Default Model | Persona | Focus |
|
|
413
413
|
|------------|---------------|---------|-------|
|
|
414
414
|
| **GLM** | glm-5.3-flash | The Methodologist | Structured approaches |
|
|
415
|
-
| **DeepSeek** | deepseek-
|
|
415
|
+
| **DeepSeek** | deepseek-flash (V4.1 Flash) | The Code Specialist | Algorithms, code generation |
|
|
416
416
|
|
|
417
417
|
### Installing Consultant CLIs
|
|
418
418
|
|
|
@@ -483,13 +483,13 @@ and cannot support a comprehensive coverage claim.
|
|
|
483
483
|
|
|
484
484
|
| Consultant | `max_quality` | Premium | Standard | Economy |
|
|
485
485
|
|------------|---------------|---------|----------|---------|
|
|
486
|
-
| Claude | claude-
|
|
486
|
+
| Claude | claude-fable-5-1 | claude-fable-5-1 | claude-opus-5 | claude-haiku-4-5 |
|
|
487
487
|
| Gemini CLI | Gemini 3.7 Flash (High) | Gemini 3.7 Flash (High) | Gemini 3.7 Flash (High) | Gemini 3.7 Flash (Low) |
|
|
488
488
|
| Gemini API | gemini-3.1-pro-preview | gemini-3.1-pro-preview | gemini-3.1-pro-preview | gemini-3.1-pro-preview |
|
|
489
|
-
| Codex | gpt-
|
|
489
|
+
| Codex | gpt-6-astra | gpt-6-astra | gpt-5.6-terra | gpt-5.6-luna |
|
|
490
490
|
| Mistral CLI | mistral-medium-3.5 | mistral-medium-3.5 | mistral-medium-3.5 | devstral-small-2 |
|
|
491
491
|
| Mistral API | mistral-large-3 | mistral-large-3 | mistral-large-3 | mistral-large-3 |
|
|
492
|
-
| DeepSeek | deepseek-
|
|
492
|
+
| DeepSeek | deepseek-flash | deepseek-flash | deepseek-flash | deepseek-flash |
|
|
493
493
|
| GLM | glm-5.3-flash | glm-5.3-flash | glm-5.3-flash | glm-4-flash |
|
|
494
494
|
| Grok | grok-4.6 | grok-4.6 | grok-4.5 | grok-4.5 |
|
|
495
495
|
| Qwen3 | qwen3.8-max when Token Plan is configured; otherwise qwen3.7-max | qwen3.7-max | qwen3.6-35b-a3b | qwen3-32b |
|
|
@@ -501,8 +501,9 @@ smoke through the `agy` adapter and is now the CLI default; Low is the CLI
|
|
|
501
501
|
economy target. The Google API model remains `gemini-3.1-pro-preview`, while
|
|
502
502
|
`gemini-3.7-flash` stays an API-only opt-in until that separate transport is
|
|
503
503
|
verified. The new Mistral API IDs (`mistral-medium-3-5`,
|
|
504
|
-
`mistral-large-2512`, `mistral-small-2603`)
|
|
505
|
-
|
|
504
|
+
`mistral-large-2512`, `mistral-small-2603`) remain catalogued opt-ins. Claude
|
|
505
|
+
Fable 5.1 is the default/premium/maximum target; use
|
|
506
|
+
`CLAUDE_MODEL=claude-opus-5` for the lower-cost standard override. Selecting a preset later intentionally reapplies that
|
|
506
507
|
preset's tier and can replace an explicit model override for the run.
|
|
507
508
|
Qwen3.8-Max is likewise selected by `max_quality` only when API mode already
|
|
508
509
|
points at an authenticated OpenAI-compatible Token Plan `/chat/completions`
|
|
@@ -609,11 +610,11 @@ Auto-selected `*_USE_API` values are marked `# ai-consultants:auto`, allowing a
|
|
|
609
610
|
later run to adapt when a CLI or credential changes. Environment variables,
|
|
610
611
|
`--set`, and unmarked values remain explicit user choices, except for the exact
|
|
611
612
|
historical generated Claude default described below.
|
|
612
|
-
Managed model defaults use `# ai-consultants:default`; `configure` upgrades
|
|
613
|
-
historical
|
|
614
|
-
the exact managed Gemini CLI, GLM, and Grok defaults.
|
|
615
|
-
|
|
616
|
-
`ai-consultants configure --set CLAUDE_MODEL=claude-opus-
|
|
613
|
+
Managed model defaults use `# ai-consultants:default`; `configure` upgrades
|
|
614
|
+
un-pinned historical `CLAUDE_MODEL=claude-opus-4-8` and `claude-opus-5` defaults
|
|
615
|
+
to Fable 5.1, along with the exact managed Gemini CLI, GLM, and Grok defaults.
|
|
616
|
+
To keep the lower-cost Opus 5 choice, run
|
|
617
|
+
`ai-consultants configure --set CLAUDE_MODEL=claude-opus-5`; explicit model
|
|
617
618
|
overrides are stored with `# ai-consultants:pin`.
|
|
618
619
|
|
|
619
620
|
Enter credentials through `--interactive`/`--advanced` or export them before the
|
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: 5.
|
|
8
|
+
version: 5.1.1
|
|
9
9
|
---
|
|
10
10
|
|
|
11
|
-
# AI Consultants v5.
|
|
11
|
+
# AI Consultants v5.1.1 - 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
|
|
|
@@ -106,7 +106,8 @@ smoke-tested K3-256k and MiniMax M3 targets, plus Qwen3.8-Max when an authentica
|
|
|
106
106
|
already configured. Gemini 3.7 Flash High is the exact-transport-smoked `agy`
|
|
107
107
|
default for maximum, premium, and standard CLI tiers; Low serves economy. The
|
|
108
108
|
Gemini API target remains 3.1 Pro until `gemini-3.7-flash` completes a separate
|
|
109
|
-
API smoke. Claude Fable 5
|
|
109
|
+
API smoke. Claude Fable 5.1 is the default/premium/maximum target; the new
|
|
110
|
+
Mistral API IDs remain explicit opt-ins.
|
|
110
111
|
Grok, GLM, and DeepSeek receive their
|
|
111
112
|
highest accepted reasoning effort in this preset (`xhigh`, `max`, and `max`
|
|
112
113
|
respectively); no failed target is silently replaced.
|
package/docs/COST_RATES.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Cost Rates - AI Consultants v5.
|
|
1
|
+
# Cost Rates - AI Consultants v5.1.1
|
|
2
2
|
|
|
3
3
|
This page documents the per-token rates used by the cost tracking system.
|
|
4
4
|
|
|
@@ -28,12 +28,14 @@ models programmatically.
|
|
|
28
28
|
| Gemini 3.1 Pro (High) | CLI opt-in | $0.002 | Gemini (agy CLI) |
|
|
29
29
|
| gemini-3.1-pro-preview | API default | $0.00125 | Gemini API |
|
|
30
30
|
| Gemini 3.6 Flash (High/Low) | Legacy CLI pins | $0.0015 | Gemini |
|
|
31
|
-
| gpt-
|
|
31
|
+
| gpt-6-astra | Maximum/Premium | $0.010 | Codex |
|
|
32
|
+
| gpt-5.6-sol | Explicit override | $0.004 | Codex |
|
|
32
33
|
| gpt-5.6-terra | Standard | $0.002 | Codex |
|
|
33
34
|
| gpt-5.6-luna | Economy | $0.0002 | Codex |
|
|
34
|
-
| claude-
|
|
35
|
-
| claude-
|
|
36
|
-
| claude-
|
|
35
|
+
| claude-fable-5-1 | Maximum/Premium | $0.010 | Claude |
|
|
36
|
+
| claude-opus-5 | Standard | $0.005 | Claude |
|
|
37
|
+
| claude-fable-5 | Legacy pins | $0.010 | Claude |
|
|
38
|
+
| claude-sonnet-5 | Legacy pins | $0.003 | Claude |
|
|
37
39
|
| claude-haiku-4-5 | Economy | $0.001 | Claude |
|
|
38
40
|
| mistral-large-3 | Premium | $0.002 | Mistral |
|
|
39
41
|
| mistral-medium-3.5 / mistral-medium-3-5 | Premium CLI / API opt-in | $0.0015 | Mistral |
|
|
@@ -43,8 +45,9 @@ models programmatically.
|
|
|
43
45
|
| composer-2.5 | Legacy | $0.0005 | Removed Cursor consultant |
|
|
44
46
|
| composer-2 | Legacy | $0.0005 | Removed Cursor consultant |
|
|
45
47
|
| gemini-3-flash | Legacy | $0.0005 | Removed Cursor consultant |
|
|
46
|
-
| deepseek-v4-pro |
|
|
47
|
-
| deepseek-
|
|
48
|
+
| deepseek-v4-pro | Legacy explicit override | $0.000435 | DeepSeek |
|
|
49
|
+
| deepseek-flash | All tiers | $0.0003 | DeepSeek (peak, cache miss) |
|
|
50
|
+
| deepseek-v4-flash / deepseek-v4-flash-vision-exp | Retired aliases → V4.1 Flash | $0.0003 | DeepSeek (peak, cache miss) |
|
|
48
51
|
| glm-5.3-flash | Maximum/Premium/Standard | Unpriced | GLM coding-plan endpoint |
|
|
49
52
|
| glm-5.3 | Legacy pins | Unpriced | GLM coding-plan endpoint |
|
|
50
53
|
| glm-4-flash | Economy | $0.001 | GLM |
|
|
@@ -70,12 +73,14 @@ models programmatically.
|
|
|
70
73
|
| Gemini 3.1 Pro (High) | CLI opt-in | $0.012 | Gemini (agy CLI) |
|
|
71
74
|
| gemini-3.1-pro-preview | API default | $0.005 | Gemini API |
|
|
72
75
|
| Gemini 3.6 Flash (High/Low) | Legacy CLI pins | $0.0075 | Gemini |
|
|
73
|
-
| gpt-
|
|
76
|
+
| gpt-6-astra | Maximum/Premium | $0.050 | Codex |
|
|
77
|
+
| gpt-5.6-sol | Explicit override | $0.020 | Codex |
|
|
74
78
|
| gpt-5.6-terra | Standard | $0.012 | Codex |
|
|
75
79
|
| gpt-5.6-luna | Economy | $0.0012 | Codex |
|
|
76
|
-
| claude-
|
|
77
|
-
| claude-
|
|
78
|
-
| claude-
|
|
80
|
+
| claude-fable-5-1 | Maximum/Premium | $0.050 | Claude |
|
|
81
|
+
| claude-opus-5 | Standard | $0.025 | Claude |
|
|
82
|
+
| claude-fable-5 | Legacy pins | $0.050 | Claude |
|
|
83
|
+
| claude-sonnet-5 | Legacy pins | $0.015 | Claude |
|
|
79
84
|
| claude-haiku-4-5 | Economy | $0.005 | Claude |
|
|
80
85
|
| mistral-large-3 | Premium | $0.006 | Mistral |
|
|
81
86
|
| mistral-medium-3.5 / mistral-medium-3-5 | Premium CLI / API opt-in | $0.0075 | Mistral |
|
|
@@ -85,8 +90,9 @@ models programmatically.
|
|
|
85
90
|
| composer-2.5 | Legacy | $0.0025 | Removed Cursor consultant |
|
|
86
91
|
| composer-2 | Legacy | $0.0025 | Removed Cursor consultant |
|
|
87
92
|
| gemini-3-flash | Legacy | $0.003 | Removed Cursor consultant |
|
|
88
|
-
| deepseek-v4-pro |
|
|
89
|
-
| deepseek-
|
|
93
|
+
| deepseek-v4-pro | Legacy explicit override | $0.00087 | DeepSeek |
|
|
94
|
+
| deepseek-flash | All tiers | $0.0012 | DeepSeek (peak) |
|
|
95
|
+
| deepseek-v4-flash / deepseek-v4-flash-vision-exp | Retired aliases → V4.1 Flash | $0.0012 | DeepSeek (peak) |
|
|
90
96
|
| glm-5.3-flash | Maximum/Premium/Standard | Unpriced | GLM coding-plan endpoint |
|
|
91
97
|
| glm-5.3 | Legacy pins | Unpriced | GLM coding-plan endpoint |
|
|
92
98
|
| glm-4-flash | Economy | $0.003 | GLM |
|
|
@@ -187,3 +193,14 @@ presenting them as free.
|
|
|
187
193
|
Cost tracking requires:
|
|
188
194
|
- `bc` - For floating point calculations
|
|
189
195
|
- `jq` - For JSON parsing
|
|
196
|
+
|
|
197
|
+
## DeepSeek V4.1 Flash pricing
|
|
198
|
+
|
|
199
|
+
As of 2026-09-10, the official API name `deepseek-flash` selects V4.1 Flash.
|
|
200
|
+
The estimator uses peak cache-miss rates: $0.30/M input and $1.20/M output.
|
|
201
|
+
Off-peak rates are $0.15/M input and $0.60/M output; cached input is $0.006/M
|
|
202
|
+
peak or $0.003/M off-peak. Peak hours are weekdays 01:00–04:00 and 06:00–10:00
|
|
203
|
+
UTC. The estimate deliberately excludes these discounts; it is not an invoice.
|
|
204
|
+
Legacy Flash and Flash Vision Exp aliases are now served and billed as V4.1 Flash.
|
|
205
|
+
Other legacy catalog entries remain historical estimates, not newly verified quotes.
|
|
206
|
+
Source: [DeepSeek models and pricing](https://api-docs.deepseek.com/quick_start/pricing/).
|
package/docs/JSON_SCHEMA.md
CHANGED
|
@@ -369,3 +369,23 @@ jq 'has("consultant") and has("response") and has("confidence")' output.json
|
|
|
369
369
|
}
|
|
370
370
|
}
|
|
371
371
|
```
|
|
372
|
+
|
|
373
|
+
### Codex cost and cached-input metadata
|
|
374
|
+
|
|
375
|
+
When present, `metadata.cost_source` is `unavailable` without token data, otherwise
|
|
376
|
+
`estimated-standard-rates` or `estimated-long-context-standard-rates`.
|
|
377
|
+
`metadata.cost_note` discloses excluded cache/service adjustments; an estimate
|
|
378
|
+
is not a provider invoice. `metadata.tokens_cached_input`, when supplied by
|
|
379
|
+
CLI telemetry, is the cached subset of `tokens_input` and is not added again.
|
|
380
|
+
Unknown splits use the documented estimation heuristic; they cannot establish
|
|
381
|
+
an exact long-context bill. Astra maximum/premium uses `high` by default,
|
|
382
|
+
including in max_quality; valid explicit Codex effort always takes precedence.
|
|
383
|
+
|
|
384
|
+
### Claude streaming billing metadata
|
|
385
|
+
|
|
386
|
+
`metadata.billing_models` is an optional array of provider billing model IDs.
|
|
387
|
+
It does not attest the content model. Claude content identity comes only from
|
|
388
|
+
response-bearing assistant events; successful terminal completion is a separate
|
|
389
|
+
requirement. `provider_cost_usd`, when present, is the provider's terminal cost.
|
|
390
|
+
Token accounting prefers a supplied per-model billing aggregate over terminal
|
|
391
|
+
usage, without adding those two summaries together; absent usage is estimated.
|
package/docs/SETUP.md
CHANGED
|
@@ -592,10 +592,16 @@ shell history or observed by other local processes. Use `--interactive`,
|
|
|
592
592
|
### Using .env file
|
|
593
593
|
|
|
594
594
|
```bash
|
|
595
|
-
|
|
595
|
+
mkdir -p "${XDG_CONFIG_HOME:-$HOME/.config}/ai-consultants"
|
|
596
|
+
# For a new configuration only; keep existing credentials/settings if present.
|
|
597
|
+
cp -n .env.example "${XDG_CONFIG_HOME:-$HOME/.config}/ai-consultants/.env"
|
|
598
|
+
chmod 600 "${XDG_CONFIG_HOME:-$HOME/.config}/ai-consultants/.env"
|
|
596
599
|
```
|
|
597
600
|
|
|
598
|
-
Edit `.env
|
|
601
|
+
Edit that user configuration `.env`. A different existing private directory must
|
|
602
|
+
be selected explicitly with `AI_CONSULTANTS_CONFIG_DIR`; project `.env` files
|
|
603
|
+
are not discovered automatically:
|
|
604
|
+
|
|
599
605
|
|
|
600
606
|
```bash
|
|
601
607
|
# Enable/disable consultants (10 available)
|
|
@@ -797,3 +803,72 @@ less "$output_dir/report.md"
|
|
|
797
803
|
```
|
|
798
804
|
|
|
799
805
|
See [README.md](../README.md) for usage examples and full documentation.
|
|
806
|
+
|
|
807
|
+
For a configuration outside the standard user config directory, set
|
|
808
|
+
`AI_CONSULTANTS_CONFIG_DIR=/absolute/private/config-directory` explicitly.
|
|
809
|
+
The loader does not discover project `.env` files. Keep credentials in your
|
|
810
|
+
existing private configuration; do not copy them into this repository.
|
|
811
|
+
|
|
812
|
+
Claude CLI uses `stream-json --verbose`. Only response-bearing assistant
|
|
813
|
+
messages attest the content model; terminal `modelUsage` records billing
|
|
814
|
+
participants separately. A missing or conflicting content model remains
|
|
815
|
+
`requested-only` and cannot pass a model-promotion gate. Successful terminal
|
|
816
|
+
completion is required even when partial response text or billing is available.
|
|
817
|
+
|
|
818
|
+
Codex defaults to `gpt-6-astra`; premium and maximum select Astra, standard
|
|
819
|
+
selects `gpt-5.6-terra`, economy selects `gpt-5.6-luna`. Sol remains an explicit
|
|
820
|
+
`CODEX_MODEL=gpt-5.6-sol` override. Configure migrates exact unpinned persisted
|
|
821
|
+
`gpt-5.5` and `gpt-5.6-sol` values to Astra and records `migrated-from` provenance.
|
|
822
|
+
Use `# ai-consultants:pin`, an environment override or `--set` to keep a model.
|
|
823
|
+
|
|
824
|
+
Astra uses `high` effort when no effort is configured. Explicit `low`, `medium`,
|
|
825
|
+
`high`, `xhigh`, and `max` prevail; `none`/`minimal` fail before dispatch.
|
|
826
|
+
The default completion budget is 16384 tokens, including reasoning; override
|
|
827
|
+
`CODEX_API_MAX_TOKENS` explicitly as needed. The text-only Chat Completions
|
|
828
|
+
request uses `max_completion_tokens` and `reasoning_effort`, without tools.
|
|
829
|
+
See the [official migration guide](https://developers.openai.com/api/docs/guides/latest-model).
|
|
830
|
+
CLI JSON events supply token telemetry; the final message file supplies content.
|
|
831
|
+
A CLI `-m` selection remains `requested-only`, not provider attestation.
|
|
832
|
+
|
|
833
|
+
[Astra Standard pricing](https://developers.openai.com/api/docs/models/gpt-6-astra)
|
|
834
|
+
is $10/M input and $50/M output. More than 272K input tokens doubles input
|
|
835
|
+
and multiplies output by 1.5 for the whole request. Reported cost is an estimate
|
|
836
|
+
unless a provider cost is supplied: cache writes, cached-input discounts and
|
|
837
|
+
service processing rates can change the invoice.
|
|
838
|
+
|
|
839
|
+
Grok CLI and doctor passively inspect the container-runtime socket deny paths,
|
|
840
|
+
including Docker Desktop locations. Symlink endpoints (including dangling links)
|
|
841
|
+
block CLI dispatch because the sandbox cannot safely resolve those deny rules.
|
|
842
|
+
Absent paths and ordinary socket files pass this check. Nothing is removed and
|
|
843
|
+
Docker configuration is never changed. Runtime `sandbox_profile_refused` and
|
|
844
|
+
`sandbox_not_applied` diagnostics fail even with exit zero; they cannot trigger
|
|
845
|
+
retry or API fallback. OAuth synchronization and per-run isolation remain active.
|
|
846
|
+
|
|
847
|
+
|
|
848
|
+
Grok compatibility includes a provider-free parser probe of the complete advisory
|
|
849
|
+
argument list. Hidden flags such as `--no-memory` are still required in the
|
|
850
|
+
actual request even when omitted from public help. Unsupported mandatory flags
|
|
851
|
+
block dispatch; the optional `--no-auto-update` guard is used when its parser
|
|
852
|
+
probe succeeds, including on CLIs that hide it from help.
|
|
853
|
+
|
|
854
|
+
### DeepSeek V4.1 Flash
|
|
855
|
+
|
|
856
|
+
DeepSeek uses the HTTP API with `DEEPSEEK_MODEL=deepseek-flash` in every tier.
|
|
857
|
+
This is the official API alias for DeepSeek-V4.1-Flash as of 2026-09-10, not a
|
|
858
|
+
version identity inferred from the requested name. Provider-reported model
|
|
859
|
+
metadata is retained unchanged. `max_quality` continues to request `max` effort;
|
|
860
|
+
other tiers leave effort to the provider unless explicitly configured. The
|
|
861
|
+
provider defaults to thinking mode at high effort. Existing text-only Chat
|
|
862
|
+
Completions requests and the 16,384-token completion budget remain compatible.
|
|
863
|
+
|
|
864
|
+
`configure` migrates exact unpinned `deepseek-v4-pro` and `deepseek-v4-flash`
|
|
865
|
+
values; `# ai-consultants:pin`, environment overrides and `--set` preserve explicit
|
|
866
|
+
choices. Old Flash aliases are still accepted but route to V4.1 Flash upstream.
|
|
867
|
+
An explicit pin preserves the requested ID, not a guarantee against provider
|
|
868
|
+
routing changes. Peak cache-miss costs are estimates, excluding cache/off-peak
|
|
869
|
+
discounts. An authorized one-attempt API smoke on 2026-09-10 passed with a structured
|
|
870
|
+
response and provider-reported `deepseek-flash`; no version identity was invented
|
|
871
|
+
from the alias. No CLI transport is introduced.
|
|
872
|
+
|
|
873
|
+
Sources: [models/pricing](https://api-docs.deepseek.com/quick_start/pricing/) and
|
|
874
|
+
[thinking mode](https://api-docs.deepseek.com/guides/thinking_mode/).
|
package/docs/cost_rates.json
CHANGED
|
@@ -1,9 +1,25 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "5.
|
|
2
|
+
"version": "5.1.1",
|
|
3
3
|
"updated": "2026-08-23",
|
|
4
4
|
"models": {
|
|
5
|
+
"deepseek-flash": {
|
|
6
|
+
"input": 0.0003,
|
|
7
|
+
"output": 0.0012,
|
|
8
|
+
"provider": "DeepSeek",
|
|
9
|
+
"notes": "DeepSeek-V4.1-Flash, verified 2026-09-10. Peak cache-miss estimate; off-peak and cache-hit discounts excluded. See https://api-docs.deepseek.com/quick_start/pricing/"
|
|
10
|
+
},
|
|
11
|
+
"deepseek-v4-flash-vision-exp": {
|
|
12
|
+
"input": 0.0003,
|
|
13
|
+
"output": 0.0012,
|
|
14
|
+
"provider": "DeepSeek",
|
|
15
|
+
"notes": "Retired alias served by V4.1 Flash; peak cache-miss estimate."
|
|
16
|
+
},
|
|
5
17
|
"_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 -
|
|
18
|
+
"_comment_premium": "Premium tier models - Sep 2026",
|
|
19
|
+
"claude-fable-5-1": {
|
|
20
|
+
"input": 0.01,
|
|
21
|
+
"output": 0.05
|
|
22
|
+
},
|
|
7
23
|
"claude-opus-5": {
|
|
8
24
|
"input": 0.005,
|
|
9
25
|
"output": 0.025
|
|
@@ -41,9 +57,15 @@
|
|
|
41
57
|
"input": 0.00075,
|
|
42
58
|
"output": 0.00375
|
|
43
59
|
},
|
|
60
|
+
"gpt-6-astra": {
|
|
61
|
+
"input": 0.01,
|
|
62
|
+
"output": 0.05,
|
|
63
|
+
"provider": "OpenAI",
|
|
64
|
+
"notes": "Standard estimate; >272K input: 2x input, 1.5x output for full request. Cache/service adjustments excluded."
|
|
65
|
+
},
|
|
44
66
|
"gpt-5.6-sol": {
|
|
45
|
-
"input": 0.
|
|
46
|
-
"output": 0.
|
|
67
|
+
"input": 0.004,
|
|
68
|
+
"output": 0.020
|
|
47
69
|
},
|
|
48
70
|
"gpt-5.6-terra": {
|
|
49
71
|
"input": 0.002,
|
|
@@ -370,8 +392,8 @@
|
|
|
370
392
|
"output": 0.003
|
|
371
393
|
},
|
|
372
394
|
"deepseek-v4-flash": {
|
|
373
|
-
"input": 0.
|
|
374
|
-
"output": 0.
|
|
395
|
+
"input": 0.0003,
|
|
396
|
+
"output": 0.0012
|
|
375
397
|
},
|
|
376
398
|
"glm-5.2": {
|
|
377
399
|
"input": 0.00098,
|
|
@@ -419,12 +441,12 @@
|
|
|
419
441
|
"kimi-code/k3-256k"
|
|
420
442
|
],
|
|
421
443
|
"consultant_fallbacks": {
|
|
422
|
-
"_comment": "Premium defaults - Updated
|
|
423
|
-
"claude": "claude-
|
|
444
|
+
"_comment": "Premium defaults - Updated Sep 2026",
|
|
445
|
+
"claude": "claude-fable-5-1",
|
|
424
446
|
"gemini": "Gemini 3.7 Flash (High)",
|
|
425
|
-
"codex": "gpt-
|
|
447
|
+
"codex": "gpt-6-astra",
|
|
426
448
|
"mistral": "mistral-large-3",
|
|
427
|
-
"deepseek": "deepseek-
|
|
449
|
+
"deepseek": "deepseek-flash",
|
|
428
450
|
"glm": "glm-5.3-flash",
|
|
429
451
|
"grok": "grok-4.6",
|
|
430
452
|
"qwen3": "qwen3.7-max",
|
|
@@ -434,11 +456,11 @@
|
|
|
434
456
|
"model_tiers": {
|
|
435
457
|
"_comment": "Model tiers for apply_model_tier() function",
|
|
436
458
|
"maximum": {
|
|
437
|
-
"claude": "claude-
|
|
459
|
+
"claude": "claude-fable-5-1",
|
|
438
460
|
"gemini": "Gemini 3.7 Flash (High)",
|
|
439
|
-
"codex": "gpt-
|
|
461
|
+
"codex": "gpt-6-astra",
|
|
440
462
|
"mistral": "mistral-medium-3.5",
|
|
441
|
-
"deepseek": "deepseek-
|
|
463
|
+
"deepseek": "deepseek-flash",
|
|
442
464
|
"glm": "glm-5.3-flash",
|
|
443
465
|
"grok": "grok-4.6",
|
|
444
466
|
"qwen3": "qwen3.8-max",
|
|
@@ -446,11 +468,11 @@
|
|
|
446
468
|
"minimax": "MiniMax-M3"
|
|
447
469
|
},
|
|
448
470
|
"premium": {
|
|
449
|
-
"claude": "claude-
|
|
471
|
+
"claude": "claude-fable-5-1",
|
|
450
472
|
"gemini": "Gemini 3.7 Flash (High)",
|
|
451
|
-
"codex": "gpt-
|
|
473
|
+
"codex": "gpt-6-astra",
|
|
452
474
|
"mistral": "mistral-medium-3.5",
|
|
453
|
-
"deepseek": "deepseek-
|
|
475
|
+
"deepseek": "deepseek-flash",
|
|
454
476
|
"glm": "glm-5.3-flash",
|
|
455
477
|
"grok": "grok-4.6",
|
|
456
478
|
"qwen3": "qwen3.7-max",
|
|
@@ -458,11 +480,11 @@
|
|
|
458
480
|
"minimax": "MiniMax-M2.7"
|
|
459
481
|
},
|
|
460
482
|
"standard": {
|
|
461
|
-
"claude": "claude-
|
|
483
|
+
"claude": "claude-opus-5",
|
|
462
484
|
"gemini": "Gemini 3.7 Flash (High)",
|
|
463
485
|
"codex": "gpt-5.6-terra",
|
|
464
486
|
"mistral": "mistral-medium-3.5",
|
|
465
|
-
"deepseek": "deepseek-
|
|
487
|
+
"deepseek": "deepseek-flash",
|
|
466
488
|
"glm": "glm-5.3-flash",
|
|
467
489
|
"grok": "grok-4.5",
|
|
468
490
|
"qwen3": "qwen3.6-35b-a3b",
|
|
@@ -474,7 +496,7 @@
|
|
|
474
496
|
"gemini": "Gemini 3.7 Flash (Low)",
|
|
475
497
|
"codex": "gpt-5.6-luna",
|
|
476
498
|
"mistral": "devstral-small-2",
|
|
477
|
-
"deepseek": "deepseek-
|
|
499
|
+
"deepseek": "deepseek-flash",
|
|
478
500
|
"glm": "glm-4-flash",
|
|
479
501
|
"grok": "grok-4.5",
|
|
480
502
|
"qwen3": "qwen3-32b",
|
|
@@ -501,7 +523,7 @@
|
|
|
501
523
|
"gemini_cli": ["Gemini 3.1 Pro (High)", "Gemini 3.6 Flash (High)", "Gemini 3.6 Flash (Low)"],
|
|
502
524
|
"gemini_api": ["gemini-3.7-flash"],
|
|
503
525
|
"mistral_api": ["mistral-medium-3-5", "mistral-large-2512", "mistral-small-2603"],
|
|
504
|
-
"claude": [
|
|
526
|
+
"claude": []
|
|
505
527
|
},
|
|
506
528
|
"default_rate": {
|
|
507
529
|
"input": 0.005,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ai-consultants",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.1.1",
|
|
4
4
|
"description": "A cross-vendor panel of up to 10 AI models that returns the coverage union of their distinct perspectives",
|
|
5
5
|
"bin": {
|
|
6
6
|
"ai-consultants": "bin/ai-consultants"
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
"!scripts/lib/test_helpers.sh",
|
|
14
14
|
"!scripts/release.sh",
|
|
15
15
|
"!scripts/experiment/",
|
|
16
|
+
"!benchmarks/",
|
|
16
17
|
"templates/",
|
|
17
18
|
".env.example",
|
|
18
19
|
".claude/commands/",
|
|
@@ -56,9 +56,10 @@ for API keys; command-line arguments may be visible in shell history and process
|
|
|
56
56
|
inspection.
|
|
57
57
|
Model defaults carry an `# ai-consultants:default` marker. On rewrite,
|
|
58
58
|
`configure` upgrades the historical unmarked
|
|
59
|
-
`CLAUDE_MODEL=claude-opus-4-8`
|
|
60
|
-
override supplied with `--set` is stored with
|
|
61
|
-
`--set CLAUDE_MODEL=claude-opus-
|
|
59
|
+
`CLAUDE_MODEL=claude-opus-4-8` and `claude-opus-5` generated defaults to
|
|
60
|
+
Fable 5.1. An explicit model override supplied with `--set` is stored with
|
|
61
|
+
`# ai-consultants:pin`, so `--set CLAUDE_MODEL=claude-opus-5` keeps the
|
|
62
|
+
lower-cost standard model intentionally.
|
|
62
63
|
The exhaustive parameter contract is [`.env.example`](../.env.example); the
|
|
63
64
|
configurator derives its accepted keys from that template, while
|
|
64
65
|
[`scripts/config.sh`](../scripts/config.sh) remains the runtime source of truth.
|
|
@@ -240,9 +241,10 @@ ENABLE_DEEPSEEK=false
|
|
|
240
241
|
|
|
241
242
|
```bash
|
|
242
243
|
GEMINI_MODEL=Gemini 3.7 Flash (High) # verified agy CLI default; API mode uses GEMINI_API_MODEL
|
|
243
|
-
CODEX_MODEL=gpt-
|
|
244
|
-
CODEX_API_MAX_TOKENS=
|
|
245
|
-
CLAUDE_MODEL=claude-
|
|
244
|
+
CODEX_MODEL=gpt-6-astra
|
|
245
|
+
CODEX_API_MAX_TOKENS=16384
|
|
246
|
+
CLAUDE_MODEL=claude-fable-5-1
|
|
247
|
+
# Lower-cost standard override: CLAUDE_MODEL=claude-opus-5
|
|
246
248
|
CLAUDE_API_MAX_TOKENS=16384 # API only: adaptive thinking + visible output
|
|
247
249
|
MISTRAL_MODEL=mistral-large-3
|
|
248
250
|
MISTRAL_CLI_MODEL=mistral-medium-3.5
|
|
@@ -260,7 +262,7 @@ GROK_MAX_TURNS=4
|
|
|
260
262
|
GROK_API_MAX_TOKENS=4096
|
|
261
263
|
GROK_REASONING_EFFORT= # max_quality sets xhigh (Grok Build maximum)
|
|
262
264
|
GROK_OAUTH_MODE=shared # shared (parallel default) | serialized (diagnostic)
|
|
263
|
-
DEEPSEEK_MODEL=deepseek-
|
|
265
|
+
DEEPSEEK_MODEL=deepseek-flash # DeepSeek-V4.1-Flash API alias
|
|
264
266
|
DEEPSEEK_API_MAX_TOKENS=16384
|
|
265
267
|
DEEPSEEK_MAX_QUALITY_TIMEOUT=600
|
|
266
268
|
DEEPSEEK_REASONING_EFFORT= # max_quality sets max
|