ai-consultants 5.1.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
@@ -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.1.0
9
+ **Version**: 5.1.1
10
10
 
11
11
  ## Distribution
12
12
 
@@ -392,7 +392,7 @@ All consultants now use premium models by default:
392
392
  | Gemini | Gemini 3.7 Flash (High) (via agy CLI); API: gemini-3.1-pro-preview |
393
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 |
@@ -760,6 +760,13 @@ 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
+
763
770
  ### v5.1.0 (2026-09-09)
764
771
 
765
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.
package/README.md CHANGED
@@ -1,8 +1,8 @@
1
- # AI Consultants v5.1.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.1.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
 
@@ -489,7 +489,7 @@ and cannot support a comprehensive coverage claim.
489
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 |
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.1.0
8
+ version: 5.1.1
9
9
  ---
10
10
 
11
- # AI Consultants v5.1.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
 
@@ -1,4 +1,4 @@
1
- # Cost Rates - AI Consultants v5.1.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
 
@@ -45,8 +45,9 @@ models programmatically.
45
45
  | composer-2.5 | Legacy | $0.0005 | Removed Cursor consultant |
46
46
  | composer-2 | Legacy | $0.0005 | Removed Cursor consultant |
47
47
  | gemini-3-flash | Legacy | $0.0005 | Removed Cursor consultant |
48
- | deepseek-v4-pro | Premium | $0.000435 | DeepSeek |
49
- | 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) |
50
51
  | glm-5.3-flash | Maximum/Premium/Standard | Unpriced | GLM coding-plan endpoint |
51
52
  | glm-5.3 | Legacy pins | Unpriced | GLM coding-plan endpoint |
52
53
  | glm-4-flash | Economy | $0.001 | GLM |
@@ -89,8 +90,9 @@ models programmatically.
89
90
  | composer-2.5 | Legacy | $0.0025 | Removed Cursor consultant |
90
91
  | composer-2 | Legacy | $0.0025 | Removed Cursor consultant |
91
92
  | gemini-3-flash | Legacy | $0.003 | Removed Cursor consultant |
92
- | deepseek-v4-pro | Premium | $0.00087 | DeepSeek |
93
- | 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) |
94
96
  | glm-5.3-flash | Maximum/Premium/Standard | Unpriced | GLM coding-plan endpoint |
95
97
  | glm-5.3 | Legacy pins | Unpriced | GLM coding-plan endpoint |
96
98
  | glm-4-flash | Economy | $0.003 | GLM |
@@ -191,3 +193,14 @@ presenting them as free.
191
193
  Cost tracking requires:
192
194
  - `bc` - For floating point calculations
193
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/SETUP.md CHANGED
@@ -850,3 +850,25 @@ argument list. Hidden flags such as `--no-memory` are still required in the
850
850
  actual request even when omitted from public help. Unsupported mandatory flags
851
851
  block dispatch; the optional `--no-auto-update` guard is used when its parser
852
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,7 +1,19 @@
1
1
  {
2
- "version": "5.1.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
18
  "_comment_premium": "Premium tier models - Sep 2026",
7
19
  "claude-fable-5-1": {
@@ -380,8 +392,8 @@
380
392
  "output": 0.003
381
393
  },
382
394
  "deepseek-v4-flash": {
383
- "input": 0.00014,
384
- "output": 0.00028
395
+ "input": 0.0003,
396
+ "output": 0.0012
385
397
  },
386
398
  "glm-5.2": {
387
399
  "input": 0.00098,
@@ -434,7 +446,7 @@
434
446
  "gemini": "Gemini 3.7 Flash (High)",
435
447
  "codex": "gpt-6-astra",
436
448
  "mistral": "mistral-large-3",
437
- "deepseek": "deepseek-v4-pro",
449
+ "deepseek": "deepseek-flash",
438
450
  "glm": "glm-5.3-flash",
439
451
  "grok": "grok-4.6",
440
452
  "qwen3": "qwen3.7-max",
@@ -448,7 +460,7 @@
448
460
  "gemini": "Gemini 3.7 Flash (High)",
449
461
  "codex": "gpt-6-astra",
450
462
  "mistral": "mistral-medium-3.5",
451
- "deepseek": "deepseek-v4-pro",
463
+ "deepseek": "deepseek-flash",
452
464
  "glm": "glm-5.3-flash",
453
465
  "grok": "grok-4.6",
454
466
  "qwen3": "qwen3.8-max",
@@ -460,7 +472,7 @@
460
472
  "gemini": "Gemini 3.7 Flash (High)",
461
473
  "codex": "gpt-6-astra",
462
474
  "mistral": "mistral-medium-3.5",
463
- "deepseek": "deepseek-v4-pro",
475
+ "deepseek": "deepseek-flash",
464
476
  "glm": "glm-5.3-flash",
465
477
  "grok": "grok-4.6",
466
478
  "qwen3": "qwen3.7-max",
@@ -472,7 +484,7 @@
472
484
  "gemini": "Gemini 3.7 Flash (High)",
473
485
  "codex": "gpt-5.6-terra",
474
486
  "mistral": "mistral-medium-3.5",
475
- "deepseek": "deepseek-v4-flash",
487
+ "deepseek": "deepseek-flash",
476
488
  "glm": "glm-5.3-flash",
477
489
  "grok": "grok-4.5",
478
490
  "qwen3": "qwen3.6-35b-a3b",
@@ -484,7 +496,7 @@
484
496
  "gemini": "Gemini 3.7 Flash (Low)",
485
497
  "codex": "gpt-5.6-luna",
486
498
  "mistral": "devstral-small-2",
487
- "deepseek": "deepseek-v4-flash",
499
+ "deepseek": "deepseek-flash",
488
500
  "glm": "glm-4-flash",
489
501
  "grok": "grok-4.5",
490
502
  "qwen3": "qwen3-32b",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ai-consultants",
3
- "version": "5.1.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"
@@ -262,7 +262,7 @@ GROK_MAX_TURNS=4
262
262
  GROK_API_MAX_TOKENS=4096
263
263
  GROK_REASONING_EFFORT= # max_quality sets xhigh (Grok Build maximum)
264
264
  GROK_OAUTH_MODE=shared # shared (parallel default) | serialized (diagnostic)
265
- DEEPSEEK_MODEL=deepseek-v4-pro
265
+ DEEPSEEK_MODEL=deepseek-flash # DeepSeek-V4.1-Flash API alias
266
266
  DEEPSEEK_API_MAX_TOKENS=16384
267
267
  DEEPSEEK_MAX_QUALITY_TIMEOUT=600
268
268
  DEEPSEEK_REASONING_EFFORT= # max_quality sets max
package/scripts/config.sh CHANGED
@@ -243,7 +243,7 @@ export GROK_USE_API GROK_OAUTH_MODE
243
243
  # DEEPSEEK CONFIGURATION - The Methodologist (API-based)
244
244
  # =============================================================================
245
245
 
246
- DEEPSEEK_MODEL="${DEEPSEEK_MODEL:-deepseek-v4-pro}"
246
+ DEEPSEEK_MODEL="${DEEPSEEK_MODEL:-deepseek-flash}"
247
247
  if [[ -n "${DEEPSEEK_TIMEOUT+x}" ]]; then
248
248
  DEEPSEEK_TIMEOUT_SECONDS="$DEEPSEEK_TIMEOUT"
249
249
  elif [[ -z "${DEEPSEEK_TIMEOUT_SECONDS+x}" ]]; then
@@ -622,7 +622,7 @@ get_model_for_tier() {
622
622
  gemini) [[ "$transport" == "api" ]] && echo "gemini-3.1-pro-preview" || echo "Gemini 3.7 Flash (High)" ;;
623
623
  codex) echo "gpt-6-astra" ;;
624
624
  mistral) [[ "$transport" == "api" ]] && echo "mistral-large-3" || echo "mistral-medium-3.5" ;;
625
- deepseek) echo "deepseek-v4-pro" ;;
625
+ deepseek) echo "deepseek-flash" ;;
626
626
  glm) echo "glm-5.3-flash" ;;
627
627
  grok) echo "grok-4.6" ;;
628
628
  qwen3) echo "qwen3.8-max" ;;
@@ -637,7 +637,7 @@ get_model_for_tier() {
637
637
  gemini) [[ "$transport" == "api" ]] && echo "gemini-3.1-pro-preview" || echo "Gemini 3.7 Flash (High)" ;;
638
638
  codex) echo "gpt-6-astra" ;;
639
639
  mistral) [[ "$transport" == "api" ]] && echo "mistral-large-3" || echo "mistral-medium-3.5" ;;
640
- deepseek) echo "deepseek-v4-pro" ;;
640
+ deepseek) echo "deepseek-flash" ;;
641
641
  glm) echo "glm-5.3-flash" ;;
642
642
  grok) echo "grok-4.6" ;;
643
643
  qwen3) echo "qwen3.7-max" ;;
@@ -652,7 +652,7 @@ get_model_for_tier() {
652
652
  gemini) [[ "$transport" == "api" ]] && echo "gemini-3.1-pro-preview" || echo "Gemini 3.7 Flash (High)" ;;
653
653
  codex) echo "gpt-5.6-terra" ;;
654
654
  mistral) [[ "$transport" == "api" ]] && echo "mistral-large-3" || echo "mistral-medium-3.5" ;;
655
- deepseek) echo "deepseek-v4-flash" ;;
655
+ deepseek) echo "deepseek-flash" ;;
656
656
  glm) echo "glm-5.3-flash" ;; # Same as premium (no mid-tier GLM)
657
657
  grok) echo "grok-4.5" ;;
658
658
  qwen3) echo "qwen3.6-35b-a3b" ;; # Open-weight MoE (35B total, 3B active)
@@ -667,7 +667,7 @@ get_model_for_tier() {
667
667
  gemini) [[ "$transport" == "api" ]] && echo "gemini-3.1-pro-preview" || echo "Gemini 3.7 Flash (Low)" ;;
668
668
  codex) echo "gpt-5.6-luna" ;;
669
669
  mistral) [[ "$transport" == "api" ]] && echo "mistral-large-3" || echo "devstral-small-2" ;;
670
- deepseek) echo "deepseek-v4-flash" ;;
670
+ deepseek) echo "deepseek-flash" ;;
671
671
  glm) echo "glm-4-flash" ;;
672
672
  grok) echo "grok-4.5" ;;
673
673
  qwen3) echo "qwen3-32b" ;;
@@ -1035,4 +1035,4 @@ list_presets() {
1035
1035
  # VERSION
1036
1036
  # =============================================================================
1037
1037
 
1038
- AI_CONSULTANTS_VERSION="5.1.0"
1038
+ AI_CONSULTANTS_VERSION="5.1.1"
@@ -335,6 +335,17 @@ if [[ "$(read_value "$WORK_FILE" GROK_MODEL 2>/dev/null || true)" == "grok-4.5"
335
335
  echo "Migrated managed Grok default: grok-4.5 -> grok-4.6" >&2
336
336
  fi
337
337
 
338
+ # Refresh only exact unpinned historical DeepSeek defaults. Environment and
339
+ # --set selections carry pin markers and remain user-owned.
340
+ case "$(read_value "$WORK_FILE" DEEPSEEK_MODEL 2>/dev/null || true)" in
341
+ deepseek-v4-pro|deepseek-v4-flash)
342
+ if ! has_value_marker "$WORK_FILE" DEEPSEEK_MODEL "$PIN_MARKER"; then
343
+ set_value DEEPSEEK_MODEL "deepseek-flash $DEFAULT_MARKER"
344
+ echo "Migrated managed DeepSeek default to deepseek-flash (V4.1 Flash)" >&2
345
+ fi
346
+ ;;
347
+ esac
348
+
338
349
  configure_cli_only() {
339
350
  local enable_key="$1" cmd_key="$2" cmd enabled=false
340
351
  cmd=$(effective_input_value "$cmd_key")
@@ -136,6 +136,7 @@ get_input_cost_per_1k() {
136
136
  gemini-2.5-pro) echo "0.00125" ;;
137
137
  gemini-2.5-flash) echo "0.000075" ;;
138
138
  gemini-2.0-flash) echo "0.0001" ;;
139
+ deepseek-flash|deepseek-v4-flash|deepseek-v4-flash-vision-exp) echo "0.0003" ;;
139
140
  gpt-6-astra|claude-fable-5-1) echo "0.01" ;;
140
141
  gpt-4) echo "0.03" ;;
141
142
  gpt-4-turbo) echo "0.01" ;;
@@ -183,6 +184,7 @@ get_output_cost_per_1k() {
183
184
  gemini-2.5-pro) echo "0.005" ;;
184
185
  gemini-2.5-flash) echo "0.0003" ;;
185
186
  gemini-2.0-flash) echo "0.0004" ;;
187
+ deepseek-flash|deepseek-v4-flash|deepseek-v4-flash-vision-exp) echo "0.0012" ;;
186
188
  gpt-6-astra|claude-fable-5-1) echo "0.05" ;;
187
189
  gpt-4) echo "0.06" ;;
188
190
  gpt-4-turbo) echo "0.03" ;;
@@ -401,7 +403,7 @@ format_cost_caveats() {
401
403
  local responses_dir="${1:-}"
402
404
  [[ -d "$responses_dir" ]] || return 0
403
405
 
404
- local estimated=0 unknown=0 priced=0 f astra_estimate=0
406
+ local estimated=0 unknown=0 priced=0 f astra_estimate=0 deepseek_flash_estimate=0
405
407
  local unpriced_models=()
406
408
  while IFS= read -r f; do
407
409
  [[ -n "$f" ]] || continue
@@ -423,6 +425,13 @@ format_cost_caveats() {
423
425
  if [[ "$model" == gpt-6-astra ]] && ! jq -e '.metadata.provider_cost_usd | numbers' "$f" >/dev/null 2>&1; then
424
426
  astra_estimate=1
425
427
  fi
428
+ case "$model" in
429
+ deepseek-flash|deepseek-v4-flash|deepseek-v4-flash-vision-exp)
430
+ if ! jq -e '.metadata.provider_cost_usd | numbers' "$f" >/dev/null 2>&1; then
431
+ deepseek_flash_estimate=1
432
+ fi
433
+ ;;
434
+ esac
426
435
  is_unpriced_model "$model" || continue
427
436
  seen=false
428
437
  for item in "${unpriced_models[@]+"${unpriced_models[@]}"}"; do
@@ -441,6 +450,9 @@ format_cost_caveats() {
441
450
  if [[ $astra_estimate -eq 1 ]]; then
442
451
  parts="${parts:+$parts; }cost estimated using Astra Standard rates; cache/service adjustments excluded, not an invoice"
443
452
  fi
453
+ if [[ $deepseek_flash_estimate -eq 1 ]]; then
454
+ parts="${parts:+$parts; }DeepSeek Flash cost estimated at peak cache-miss rates; off-peak/cache discounts excluded, not an invoice"
455
+ fi
444
456
  local unpriced=""
445
457
  if (( ${#unpriced_models[@]} > 0 )); then
446
458
  unpriced=$(IFS=,; printf '%s' "${unpriced_models[*]}")
@@ -5,7 +5,7 @@
5
5
  #
6
6
  # Environment variables:
7
7
  # DEEPSEEK_API_KEY - API key for DeepSeek (required)
8
- # DEEPSEEK_MODEL - Model to use (default: deepseek-reasoner)
8
+ # DEEPSEEK_MODEL - Model to use (default: deepseek-flash (DeepSeek-V4.1-Flash))
9
9
  # DEEPSEEK_TIMEOUT - Timeout in seconds (default: 180)
10
10
  # ENABLE_PERSONA - Enable "The Code Specialist" persona (default: true)
11
11