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 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-5.6-sol
134
- CODEX_API_MAX_TOKENS=4096
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-opus-5 # ai-consultants:default
162
- # Fable 5 is catalogued and priced but remains an explicit CLAUDE_MODEL opt-in
163
- # after its local smoke timed out.
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-v4-pro
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.0.0
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-opus-5, Gemini 3.7 Flash (High), gpt-5.6-sol |
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-sonnet-5, Gemini 3.7 Flash (High), gpt-5.6-terra |
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 (August 2026)
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-opus-5 |
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-5.6-sol |
393
+ | Codex | gpt-6-astra |
394
394
  | Mistral | CLI: mistral-medium-3.5; API: mistral-large-3 |
395
- | DeepSeek | deepseek-v4-pro |
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-opus-5 | Claude model (v2.5) |
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-5.6-sol | Codex model (v2.5) |
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.0.0
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
- [![Version](https://img.shields.io/badge/version-5.0.0-blue.svg)](https://github.com/matteoscurati/ai-consultants)
5
+ [![Version](https://img.shields.io/badge/version-5.1.1-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)
@@ -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-v4-pro | The Code Specialist | Algorithms, code generation |
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-opus-5 | claude-opus-5 | claude-sonnet-5 | claude-haiku-4-5 |
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-5.6-sol | gpt-5.6-sol | gpt-5.6-terra | gpt-5.6-luna |
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-v4-pro | deepseek-v4-pro | deepseek-v4-flash | deepseek-v4-flash |
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`) and Claude Fable 5 likewise remain
505
- catalogued opt-ins. Selecting a preset later intentionally reapplies that
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 the
613
- historical unmarked `CLAUDE_MODEL=claude-opus-4-8` default to Opus 5 and upgrades
614
- the exact managed Gemini CLI, GLM, and Grok defaults. To keep
615
- 4.8 intentionally, run
616
- `ai-consultants configure --set CLAUDE_MODEL=claude-opus-4-8`; explicit model
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.0.0
8
+ version: 5.1.1
9
9
  ---
10
10
 
11
- # AI Consultants v5.0.0 - AI Expert Panel
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 and the new Mistral API IDs remain explicit opt-ins.
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.
@@ -1,4 +1,4 @@
1
- # Cost Rates - AI Consultants v5.0.0
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-5.6-sol | Premium | $0.005 | Codex |
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-opus-5 | Premium | $0.005 | Claude |
35
- | claude-fable-5 | Opt-in | $0.010 | Claude |
36
- | claude-sonnet-5 | Standard | $0.003 | 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 | Premium | $0.000435 | DeepSeek |
47
- | deepseek-v4-flash | Standard/Economy | $0.00014 | 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-5.6-sol | Premium | $0.030 | Codex |
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-opus-5 | Premium | $0.025 | Claude |
77
- | claude-fable-5 | Opt-in | $0.050 | Claude |
78
- | claude-sonnet-5 | Standard | $0.015 | 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 | Premium | $0.00087 | DeepSeek |
89
- | deepseek-v4-flash | Standard/Economy | $0.00028 | 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/).
@@ -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
- cp .env.example .env
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/).
@@ -1,9 +1,25 @@
1
1
  {
2
- "version": "5.0.0",
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 - Aug 2026",
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.005,
46
- "output": 0.030
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.00014,
374
- "output": 0.00028
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 Aug 2026",
423
- "claude": "claude-opus-5",
444
+ "_comment": "Premium defaults - Updated Sep 2026",
445
+ "claude": "claude-fable-5-1",
424
446
  "gemini": "Gemini 3.7 Flash (High)",
425
- "codex": "gpt-5.6-sol",
447
+ "codex": "gpt-6-astra",
426
448
  "mistral": "mistral-large-3",
427
- "deepseek": "deepseek-v4-pro",
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-opus-5",
459
+ "claude": "claude-fable-5-1",
438
460
  "gemini": "Gemini 3.7 Flash (High)",
439
- "codex": "gpt-5.6-sol",
461
+ "codex": "gpt-6-astra",
440
462
  "mistral": "mistral-medium-3.5",
441
- "deepseek": "deepseek-v4-pro",
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-opus-5",
471
+ "claude": "claude-fable-5-1",
450
472
  "gemini": "Gemini 3.7 Flash (High)",
451
- "codex": "gpt-5.6-sol",
473
+ "codex": "gpt-6-astra",
452
474
  "mistral": "mistral-medium-3.5",
453
- "deepseek": "deepseek-v4-pro",
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-sonnet-5",
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-v4-flash",
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-v4-flash",
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": ["claude-fable-5"]
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.0.0",
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` generated default to Opus 5. An explicit model
60
- override supplied with `--set` is stored with `# ai-consultants:pin`, so
61
- `--set CLAUDE_MODEL=claude-opus-4-8` keeps the legacy model intentionally.
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-5.6-sol
244
- CODEX_API_MAX_TOKENS=4096
245
- CLAUDE_MODEL=claude-opus-5
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-v4-pro
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