ai-consultants 3.3.0 → 3.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/docs/RECIPES.md CHANGED
@@ -155,7 +155,7 @@ QWEN3_API_KEY=your-dashscope-key
155
155
  ENABLE_GROK=true
156
156
  GROK_USE_API=false
157
157
  GROK_API_KEY=your-xai-key
158
- GROK_MODEL=grok-4.5
158
+ GROK_MODEL=grok-4.6
159
159
 
160
160
  ENABLE_GLM=false
161
161
  ENABLE_DEEPSEEK=false
@@ -190,28 +190,39 @@ For every available variable and its default, see
190
190
  [`references/configuration.md`](../references/configuration.md). The executable
191
191
  source of truth is [`scripts/config.sh`](../scripts/config.sh).
192
192
 
193
- ## Qwen via Qwen Cloud Token Plan (opt-in, preview)
193
+ ## Qwen via Qwen Cloud Token Plan (opt-in)
194
194
 
195
- `qwen3.8-max-preview` is **not** served by DashScope/ModelStudio. It is reachable
195
+ `qwen3.8-max` is **not** served by DashScope/ModelStudio. It is reachable
196
196
  only through a Qwen Cloud **Token Plan** subscription, which has its own base URL
197
197
  and its own API key. This is opt-in: nothing below is a default, and the panel's
198
- premium Qwen model remains `qwen3.7-max`.
198
+ premium Qwen model remains `qwen3.7-max`; `max_quality` selects the separately
199
+ smoke-tested `qwen3.8-max` Token Plan target.
199
200
 
200
201
  Understand the tradeoffs before enabling it:
201
202
 
202
- - **Preview, not GA.** Alibaba describes it as continuously evolving. No open
203
- weights, no published benchmarks, no stable per-token price.
203
+ - **Token Plan only.** No open weights, no published benchmarks, no stable
204
+ per-token price.
204
205
  - **Billed in prepaid credits**, not per token — and credit consumption varies
205
206
  with reasoning depth. Cost reports therefore exclude it and say so explicitly
206
207
  rather than estimating a figure.
207
208
 
209
+ Both `qwen3.8-max` and `qwen3.8-max-preview` are served by Token Plan and are
210
+ **separate deployments**, not an alias or rename: each completion reports its
211
+ own requested id back in `.model`. Verified against the live endpoint on
212
+ 2026-08-05. Prefer `qwen3.8-max`; `qwen3.8-max-preview` is the older
213
+ deployment and the natural candidate for eventual retirement. An existing
214
+ `qwen3.8-max-preview` pin keeps working and stays correctly catalogued — both
215
+ ids are listed in `unpriced_models`, so the session report continues to
216
+ disclose them as credit-billed and excluded from the total rather than falling
217
+ through to `default_rate`.
218
+
208
219
  ### API mode (the effort knob works here)
209
220
 
210
221
  ```bash
211
222
  QWEN3_USE_API=true
212
223
  QWEN3_FORMAT=openai # Token Plan is OpenAI-compatible; DashScope is not
213
224
  QWEN3_API_URL=https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1/chat/completions
214
- QWEN3_MODEL=qwen3.8-max-preview
225
+ QWEN3_MODEL=qwen3.8-max
215
226
  QWEN3_API_KEY=<your Token Plan key>
216
227
  QWEN3_REASONING_EFFORT=high # none|minimal|low|medium|high|xhigh|max; default xhigh
217
228
  ```
@@ -240,8 +251,8 @@ ai-consultants cannot deliver it per call and warns if you set
240
251
  "modelProviders": {
241
252
  "openai": [
242
253
  {
243
- "id": "qwen3.8-max-preview",
244
- "name": "[Token Plan] qwen3.8-max-preview",
254
+ "id": "qwen3.8-max",
255
+ "name": "[Token Plan] qwen3.8-max",
245
256
  "baseUrl": "https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",
246
257
  "envKey": "BAILIAN_TOKEN_PLAN_API_KEY",
247
258
  "generationConfig": { "reasoning": { "effort": "high" } }
package/docs/SETUP.md CHANGED
@@ -294,6 +294,7 @@ Get API key: [Mistral Console](https://console.mistral.ai/api-keys/)
294
294
  curl https://cursor.com/install -fsS | bash
295
295
 
296
296
  # Uses Cursor subscription - no additional key needed
297
+ cursor-agent status
297
298
  ```
298
299
 
299
300
  ### Claude CLI (The Synthesizer) - v2.2
@@ -339,6 +340,9 @@ export KIMI_MODEL=kimi-code/k3
339
340
  ./scripts/query_kimi.sh "Review this API boundary"
340
341
  ```
341
342
 
343
+ `max_quality` selects `kimi-code/k3-256k`, whose availability is verified from
344
+ the Kimi provider inventory before the request.
345
+
342
346
  ### MiniMax (CLI via mmx) - v2.21
343
347
 
344
348
  MiniMax runs via the `mmx` CLI by default (CLI-first, OAuth). Install and sign in:
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "3.3.0",
2
+ "version": "3.5.0",
3
3
  "updated": "2026-07-25",
4
4
  "models": {
5
5
  "_comment_units": "All rates are USD per 1,000 tokens (per-1K). lib/costs.sh computes cost as (token_count / 1000) * rate, so every value here MUST be a per-1K rate = (provider $/1M price) / 1000. Do NOT paste $/MTok figures directly.",
@@ -8,6 +8,10 @@
8
8
  "input": 0.005,
9
9
  "output": 0.025
10
10
  },
11
+ "claude-fable-5": {
12
+ "input": 0.01,
13
+ "output": 0.05
14
+ },
11
15
  "gemini-3.1-pro-preview": {
12
16
  "input": 0.00125,
13
17
  "output": 0.005
@@ -17,22 +21,58 @@
17
21
  "input": 0.002,
18
22
  "output": 0.012
19
23
  },
20
- "Gemini 3.5 Flash (High)": {
24
+ "Gemini 3.6 Flash (High)": {
21
25
  "input": 0.0015,
22
- "output": 0.009
26
+ "output": 0.0075
23
27
  },
24
- "Gemini 3.5 Flash (Low)": {
28
+ "Gemini 3.6 Flash (Low)": {
25
29
  "input": 0.0015,
26
- "output": 0.009
30
+ "output": 0.0075
27
31
  },
28
- "gpt-5.5": {
32
+ "gemini-3.7-flash": {
33
+ "input": 0.00075,
34
+ "output": 0.00375
35
+ },
36
+ "Gemini 3.7 Flash (High)": {
37
+ "input": 0.00075,
38
+ "output": 0.00375
39
+ },
40
+ "Gemini 3.7 Flash (Low)": {
41
+ "input": 0.00075,
42
+ "output": 0.00375
43
+ },
44
+ "gpt-5.6-sol": {
29
45
  "input": 0.005,
30
46
  "output": 0.030
31
47
  },
48
+ "gpt-5.6-terra": {
49
+ "input": 0.002,
50
+ "output": 0.012
51
+ },
52
+ "gpt-5.6-luna": {
53
+ "input": 0.0002,
54
+ "output": 0.0012
55
+ },
32
56
  "mistral-large-3": {
33
57
  "input": 0.002,
34
58
  "output": 0.006
35
59
  },
60
+ "mistral-medium-3-5": {
61
+ "input": 0.0015,
62
+ "output": 0.0075
63
+ },
64
+ "mistral-medium-3.5": {
65
+ "input": 0.0015,
66
+ "output": 0.0075
67
+ },
68
+ "mistral-large-2512": {
69
+ "input": 0.0005,
70
+ "output": 0.0015
71
+ },
72
+ "mistral-small-2603": {
73
+ "input": 0.00015,
74
+ "output": 0.0006
75
+ },
36
76
  "deepseek-v4-pro": {
37
77
  "input": 0.000435,
38
78
  "output": 0.00087
@@ -45,6 +85,10 @@
45
85
  "input": 0.002,
46
86
  "output": 0.006
47
87
  },
88
+ "grok-4.6": {
89
+ "input": 0.002,
90
+ "output": 0.006
91
+ },
48
92
  "qwen3.6-plus": {
49
93
  "input": 0.000325,
50
94
  "output": 0.00195
@@ -58,8 +102,12 @@
58
102
  "output": 0.0025
59
103
  },
60
104
  "minimax-m2.7": {
61
- "input": 0.00025,
62
- "output": 0.001
105
+ "input": 0.0003,
106
+ "output": 0.0012
107
+ },
108
+ "minimax-m3": {
109
+ "input": 0.0003,
110
+ "output": 0.0012
63
111
  },
64
112
  "kimi-code/k3": {
65
113
  "input": 0.0005,
@@ -75,7 +123,7 @@
75
123
  "output": 0.00
76
124
  },
77
125
  "_comment_standard": "Standard tier models",
78
- "claude-sonnet-4-6": {
126
+ "claude-sonnet-5": {
79
127
  "input": 0.003,
80
128
  "output": 0.015
81
129
  },
@@ -133,10 +181,34 @@
133
181
  "output": 0.0016
134
182
  },
135
183
  "minimax-m2.5": {
136
- "input": 0.000255,
137
- "output": 0.001
184
+ "input": 0.0003,
185
+ "output": 0.0012
138
186
  },
139
187
  "_comment_legacy": "Legacy models for backwards compatibility",
188
+ "Gemini 3.5 Flash (High)": {
189
+ "input": 0.0015,
190
+ "output": 0.009
191
+ },
192
+ "Gemini 3.5 Flash (Low)": {
193
+ "input": 0.0015,
194
+ "output": 0.009
195
+ },
196
+ "gpt-5.5": {
197
+ "input": 0.005,
198
+ "output": 0.030
199
+ },
200
+ "gpt-5.4": {
201
+ "input": 0.0025,
202
+ "output": 0.015
203
+ },
204
+ "gpt-5.4-nano": {
205
+ "input": 0.0002,
206
+ "output": 0.00125
207
+ },
208
+ "claude-sonnet-4-6": {
209
+ "input": 0.003,
210
+ "output": 0.015
211
+ },
140
212
  "claude-opus-4-8": {
141
213
  "input": 0.005,
142
214
  "output": 0.025
@@ -289,14 +361,6 @@
289
361
  "input": 0.0003,
290
362
  "output": 0.0015
291
363
  },
292
- "gpt-5.4": {
293
- "input": 0.0025,
294
- "output": 0.015
295
- },
296
- "gpt-5.4-nano": {
297
- "input": 0.0002,
298
- "output": 0.00125
299
- },
300
364
  "composer-2.5": {
301
365
  "input": 0.0005,
302
366
  "output": 0.0025
@@ -326,23 +390,38 @@
326
390
  "output": 0.0025
327
391
  },
328
392
  "_comment_unpriced": "Credit-billed models: drawn from a prepaid subscription pool, with no published per-token price. Rated 0 so the estimator does not fabricate a figure - an absent model would otherwise fall through to default_rate (0.005/0.015) and be reported as a confident, wrong number. Every entry here must also be listed in unpriced_models, which is what makes the session report disclose the exclusion instead of implying the model was free.",
393
+ "qwen3.8-max": {
394
+ "input": 0,
395
+ "output": 0
396
+ },
329
397
  "qwen3.8-max-preview": {
330
398
  "input": 0,
331
399
  "output": 0
400
+ },
401
+ "glm-5.3": {
402
+ "input": 0,
403
+ "output": 0
404
+ },
405
+ "kimi-code/k3-256k": {
406
+ "input": 0,
407
+ "output": 0
332
408
  }
333
409
  },
334
410
  "unpriced_models": [
335
- "qwen3.8-max-preview"
411
+ "qwen3.8-max",
412
+ "qwen3.8-max-preview",
413
+ "glm-5.3",
414
+ "kimi-code/k3-256k"
336
415
  ],
337
416
  "consultant_fallbacks": {
338
- "_comment": "Premium defaults - Updated Jul 2026",
417
+ "_comment": "Premium defaults - Updated Aug 2026",
339
418
  "claude": "claude-opus-5",
340
419
  "gemini": "Gemini 3.1 Pro (High)",
341
- "codex": "gpt-5.5",
420
+ "codex": "gpt-5.6-sol",
342
421
  "mistral": "mistral-large-3",
343
422
  "deepseek": "deepseek-v4-pro",
344
- "glm": "glm-5.2",
345
- "grok": "grok-4.5",
423
+ "glm": "glm-5.3",
424
+ "grok": "grok-4.6",
346
425
  "qwen3": "qwen3.7-max",
347
426
  "cursor": "composer-2.5",
348
427
  "kimi": "kimi-code/k3",
@@ -350,46 +429,79 @@
350
429
  },
351
430
  "model_tiers": {
352
431
  "_comment": "Model tiers for apply_model_tier() function",
432
+ "maximum": {
433
+ "claude": "claude-opus-5",
434
+ "gemini": "Gemini 3.1 Pro (High)",
435
+ "codex": "gpt-5.6-sol",
436
+ "mistral": "mistral-medium-3.5",
437
+ "deepseek": "deepseek-v4-pro",
438
+ "glm": "glm-5.3",
439
+ "grok": "grok-4.6",
440
+ "qwen3": "qwen3.8-max",
441
+ "cursor": "composer-2.5",
442
+ "kimi": "kimi-code/k3-256k",
443
+ "minimax": "MiniMax-M3"
444
+ },
353
445
  "premium": {
354
446
  "claude": "claude-opus-5",
355
447
  "gemini": "Gemini 3.1 Pro (High)",
356
- "codex": "gpt-5.5",
357
- "mistral": "mistral-large-3",
448
+ "codex": "gpt-5.6-sol",
449
+ "mistral": "mistral-medium-3.5",
358
450
  "deepseek": "deepseek-v4-pro",
359
- "glm": "glm-5.2",
360
- "grok": "grok-4.5",
451
+ "glm": "glm-5.3",
452
+ "grok": "grok-4.6",
361
453
  "qwen3": "qwen3.7-max",
362
454
  "cursor": "composer-2.5",
363
455
  "kimi": "kimi-code/k3",
364
- "minimax": "minimax-m2.7"
456
+ "minimax": "MiniMax-M2.7"
365
457
  },
366
458
  "standard": {
367
- "claude": "claude-sonnet-4-6",
368
- "gemini": "Gemini 3.5 Flash (High)",
369
- "codex": "gpt-5.4",
370
- "mistral": "mistral-medium-latest",
459
+ "claude": "claude-sonnet-5",
460
+ "gemini": "Gemini 3.6 Flash (High)",
461
+ "codex": "gpt-5.6-terra",
462
+ "mistral": "mistral-medium-3.5",
371
463
  "deepseek": "deepseek-v4-flash",
372
- "glm": "glm-5.2",
373
- "grok": "grok-4.1-fast",
464
+ "glm": "glm-5.3",
465
+ "grok": "grok-4.5",
374
466
  "qwen3": "qwen3.6-35b-a3b",
375
- "cursor": "composer-2",
467
+ "cursor": "composer-2.5",
376
468
  "kimi": "kimi-code/k3",
377
- "minimax": "minimax-m2.7"
469
+ "minimax": "MiniMax-M2.7"
378
470
  },
379
471
  "economy": {
380
472
  "claude": "claude-haiku-4-5",
381
- "gemini": "Gemini 3.5 Flash (Low)",
382
- "codex": "gpt-5.4-nano",
473
+ "gemini": "Gemini 3.6 Flash (Low)",
474
+ "codex": "gpt-5.6-luna",
383
475
  "mistral": "devstral-small-2",
384
476
  "deepseek": "deepseek-v4-flash",
385
477
  "glm": "glm-4-flash",
386
- "grok": "grok-4.1-fast",
478
+ "grok": "grok-4.5",
387
479
  "qwen3": "qwen3-32b",
388
- "cursor": "gemini-3-flash",
480
+ "cursor": "composer-2.5",
389
481
  "kimi": "kimi-code/k3",
390
- "minimax": "minimax-m2.5"
482
+ "minimax": "MiniMax-M2.5"
391
483
  }
392
484
  },
485
+ "transport_model_tiers": {
486
+ "_comment": "Transport-specific namespaces used by Gemini and Mistral; the legacy model_tiers table reflects their CLI values.",
487
+ "gemini": {
488
+ "maximum": {"cli": "Gemini 3.1 Pro (High)", "api": "gemini-3.1-pro-preview"},
489
+ "premium": {"cli": "Gemini 3.1 Pro (High)", "api": "gemini-3.1-pro-preview"},
490
+ "standard": {"cli": "Gemini 3.6 Flash (High)", "api": "gemini-3.1-pro-preview"},
491
+ "economy": {"cli": "Gemini 3.6 Flash (Low)", "api": "gemini-3.1-pro-preview"}
492
+ },
493
+ "mistral": {
494
+ "maximum": {"cli": "mistral-medium-3.5", "api": "mistral-large-3"},
495
+ "premium": {"cli": "mistral-medium-3.5", "api": "mistral-large-3"},
496
+ "standard": {"cli": "mistral-medium-3.5", "api": "mistral-large-3"},
497
+ "economy": {"cli": "devstral-small-2", "api": "mistral-large-3"}
498
+ }
499
+ },
500
+ "opt_in_targets": {
501
+ "gemini": ["gemini-3.7-flash", "Gemini 3.7 Flash (High)", "Gemini 3.7 Flash (Low)"],
502
+ "mistral_api": ["mistral-medium-3-5", "mistral-large-2512", "mistral-small-2603"],
503
+ "claude": ["claude-fable-5"]
504
+ },
393
505
  "default_rate": {
394
506
  "input": 0.005,
395
507
  "output": 0.015
@@ -0,0 +1,102 @@
1
+ # Release v3.4.0
2
+
3
+ **Date:** 2026-08-05
4
+ **Type:** Minor — Gemini works over SSH again, the Codex consultant is isolated, and the model catalog moves to the current generation
5
+ **Previous:** v3.3.0
6
+
7
+ ## Highlights
8
+
9
+ - **Gemini consultations from an SSH session were failing authentication, and re-signing-in could not fix it.** Now fixed at every `agy` call site.
10
+ - **The Codex consultant no longer inherits your local Codex environment** — no `config.toml`, no `AGENTS.md`, no hooks, no MCP servers, and a read-only sandbox.
11
+ - **Model catalog refreshed** to `gpt-5.6-sol/terra/luna`, `claude-sonnet-5`, and Gemini 3.6 Flash, every id verified against the installed CLIs rather than documentation.
12
+ - **`*_REASONING_EFFORT` actually works now.** It was honored in API mode only, which meant it did nothing in the default CLI-first configuration.
13
+ - **Existing installations receive the new Codex model.** Without the migration added here, they would have kept querying `gpt-5.5` indefinitely while every doc claimed otherwise.
14
+
15
+ ## What's New
16
+
17
+ ### Gemini authentication over SSH
18
+
19
+ The Antigravity CLI picks its credential store from the environment. When it sees any of `SSH_CLIENT`, `SSH_CONNECTION`, or `SSH_TTY`, it switches to a file-based token store and never consults the macOS Keychain. If you signed in locally — as almost everyone does — the credential lives in the Keychain, so every Gemini consultation over SSH failed to authenticate. Signing in again did not help: the new login also landed in the store the CLI had already decided to ignore.
20
+
21
+ Those three markers are now stripped for every `agy` invocation: consultations, `doctor`, `update-clis`, and synthesis. On a local session they are already unset, so this changes nothing there. It grants no additional tools and no filesystem access — only which credential store the CLI consults.
22
+
23
+ If you drive ai-consultants over SSH, this is the release that makes Gemini work.
24
+
25
+ ### The Codex consultant runs isolated
26
+
27
+ Previously the Codex adapter ran `codex exec` in your ambient environment. That meant your `~/.codex/config.toml`, the repository's `AGENTS.md`, your hooks, your MCP servers, and your execpolicy rules all shaped what is supposed to be an independent second opinion — and the sandbox was unpinned.
28
+
29
+ CLI mode now runs under an ephemeral HOME and working directory with `--ephemeral`, `--ignore-user-config`, `--ignore-rules`, and `-s read-only`. **Authentication is unaffected**: `CODEX_HOME` still resolves to your real Codex auth store.
30
+
31
+ Two side effects worth knowing:
32
+
33
+ - **Large contexts no longer break it.** The prompt is delivered on stdin rather than argv, which removes both the `ARG_MAX` ceiling and the exposure of your prompt in the process list.
34
+ - **Failures are reported as failures.** A timeout, authentication error, or exhausted retry is never rewritten into a success, even when a partial answer reached disk.
35
+
36
+ ### Reasoning effort works in CLI mode
37
+
38
+ `*_REASONING_EFFORT` was documented as API-mode only. Since CLI-first transport became mandatory in v2.21, that meant the setting did nothing at all in the default configuration — while three consultant CLIs did expose the control.
39
+
40
+ | Consultant | Variable | Passed as |
41
+ |---|---|---|
42
+ | Codex | `CODEX_REASONING_EFFORT` | `-c model_reasoning_effort=<value>` |
43
+ | Claude | `CLAUDE_REASONING_EFFORT` | `--effort <value>` |
44
+ | Gemini | `GEMINI_REASONING_EFFORT` | `--effort <value>` |
45
+
46
+ There is deliberately no local allowlist of accepted values. The enum belongs to the provider — `agy`, for instance, accepts only `low|medium|high` — and an unsupported value comes back as a diagnosed error rather than being silently pre-empted. Consultants whose CLI has no such flag still warn, as before.
47
+
48
+ All three are optional. Leave them unset and each CLI keeps its own default.
49
+
50
+ ### Model catalog
51
+
52
+ Every replacement id was verified live against the installed CLIs:
53
+
54
+ | Consultant | Premium | Standard | Economy |
55
+ |---|---|---|---|
56
+ | Codex | `gpt-5.6-sol` | `gpt-5.6-terra` | `gpt-5.6-luna` |
57
+ | Claude | `claude-opus-5` *(unchanged)* | `claude-sonnet-5` | `claude-haiku-4-5` *(unchanged)* |
58
+ | Gemini | `Gemini 3.1 Pro (High)` *(unchanged)* | `Gemini 3.6 Flash (High)` | `Gemini 3.6 Flash (Low)` |
59
+
60
+ Gemini's premium tier stays on 3.1 Pro because the live model inventory has no 3.6 Pro. Cost rates ship alongside the new ids — a model missing from the catalog would otherwise be billed at the fallback rate and reported as a confident, wrong figure. Superseded ids remain catalogued so pinned configurations and historical responses still resolve.
61
+
62
+ The opt-in Qwen Token Plan model is referenced as `qwen3.8-max`. Both it and `qwen3.8-max-preview` are still served by Token Plan, and they are separate deployments rather than aliases — each reports its own id back. Both stay catalogued, so an existing `-preview` pin keeps working and keeps its credit-billed cost disclosure. The shipped premium Qwen model remains `qwen3.7-max`.
63
+
64
+ ### Existing installations get the new Codex model
65
+
66
+ `init` copies `.env.example` verbatim, so the then-current Codex default was written into your config as an ordinary value — and `configure` reads any unmarked value as a deliberate pin. A catalog refresh alone would therefore never have reached you: your panel would have kept querying `gpt-5.5` while the docs, tier tables, and cost catalog all said `gpt-5.6-sol`.
67
+
68
+ `configure` now migrates that one exact historical value and marks it as managed, so future refreshes can reach it too. **An explicit pin is preserved** — if you deliberately want `gpt-5.5`, record it with `--set CODEX_MODEL=gpt-5.5` and it will survive.
69
+
70
+ ## Breaking Changes
71
+
72
+ None. All new parameters are additive, existing configurations migrate, and no consultant is added or removed.
73
+
74
+ Two behavior changes are worth noting even though nothing breaks:
75
+
76
+ - **Codex answers may differ**, because it no longer sees your local Codex configuration. That is the intent — an advisory consultation shaped by your own hooks and project instructions is not an independent opinion.
77
+ - **Codex and Gemini tier models changed.** Pin `CODEX_MODEL` / `GEMINI_MODEL` explicitly if you need the previous ones.
78
+
79
+ ## Upgrade Guide
80
+
81
+ ```bash
82
+ # If installed via npx, nothing to do — npx resolves the published version
83
+ npx ai-consultants "your question"
84
+
85
+ # If installed via git clone
86
+ cd ~/.claude/skills/ai-consultants && git pull
87
+
88
+ # If installed via curl | bash
89
+ curl -fsSL https://raw.githubusercontent.com/matteoscurati/ai-consultants/main/scripts/install.sh | bash
90
+ ```
91
+
92
+ Then, to pick up the new Codex default in an existing configuration:
93
+
94
+ ```bash
95
+ ai-consultants configure
96
+ ```
97
+
98
+ No other configuration changes are required. Run `ai-consultants doctor --live` afterwards to confirm each consultant actually answers — the static check only verifies that CLIs are installed and keys are present.
99
+
100
+ ## Contributors
101
+
102
+ - @matteoscurati
@@ -0,0 +1,129 @@
1
+ # Release v3.5.0
2
+
3
+ **Date:** 2026-08-21
4
+ **Type:** Minor — transport-aware model catalog and honest model identity
5
+ **Previous:** v3.4.0
6
+
7
+ ## Highlights
8
+
9
+ - Normal premium runs remain cost-balanced; `max_quality` gains a separate maximum tier for exact-transport-smoked subscription targets.
10
+ - Mistral Vibe uses `mistral-medium-3.5` through a dedicated CLI setting, while API IDs remain separate and opt-in until verified.
11
+ - Cursor now invokes and validates `cursor-agent`, never the unrelated `agent` binary, and runs in read-only ask mode inside an ephemeral workspace.
12
+ - Responses distinguish requested models from provider-reported or capability-probed effective identity.
13
+ - GLM 5.3 and Grok 4.6 become the promoted defaults; new prices, unpriced disclosures, migrations, and 22-suite regression coverage ship with them.
14
+
15
+ ## What's New
16
+
17
+ ### A maximum tier that fails closed
18
+
19
+ `max_quality` no longer means simply “the normal premium tier with more consultants.” It selects the strongest targets that completed a smoke through ai-consultants' own adapter and output contract:
20
+
21
+ | Consultant | Normal premium | `max_quality` maximum | Promotion evidence |
22
+ |---|---|---|---|
23
+ | Kimi | `kimi-code/k3` | `kimi-code/k3-256k` | CLI inventory + live response |
24
+ | Qwen3 | `qwen3.7-max` | `qwen3.8-max` only on an already-configured Token Plan transport | Provider-reported API model |
25
+ | MiniMax | `MiniMax-M2.7` | `MiniMax-M3` | Explicit CLI model + live response |
26
+ | Claude | `claude-opus-5` | `claude-opus-5` | Fable 5 timed out, so it remains opt-in |
27
+
28
+ Qwen is never silently redirected from DashScope or CLI mode to a different paid endpoint. Without the exact Token Plan configuration, maximum keeps Qwen on `qwen3.7-max`.
29
+
30
+ ### Transport-aware Gemini and Mistral configuration
31
+
32
+ Gemini and Mistral no longer pretend that one model string works on both transports:
33
+
34
+ - Gemini keeps separate `GEMINI_MODEL` and `GEMINI_API_MODEL` values. Gemini 3.7 Flash is priced and documented but remains opt-in because neither local transport could authenticate for its smoke.
35
+ - Mistral API continues to use `MISTRAL_MODEL`; Vibe uses the new `MISTRAL_CLI_MODEL`, defaulting to `mistral-medium-3.5` through `VIBE_ACTIVE_MODEL`.
36
+ - The official Mistral API IDs `mistral-medium-3-5`, `mistral-large-2512`, and `mistral-small-2603` remain opt-in because no Mistral API key was available for exact transport verification.
37
+
38
+ ### Bounded advisory CLIs
39
+
40
+ Cursor and Mistral now run in temporary workspaces with read-only modes and bounded capability probes:
41
+
42
+ - Cursor defaults to `cursor-agent`, verifies the Cursor interface and requested Composer 2.5 inventory, and uses `--mode ask --trust` only for the newly-created workspace. `-f`/force mode is never used.
43
+ - Mistral verifies prompt/output/agent/workdir/max-turn capabilities and the built-in plan agent before dispatch.
44
+ - A failed or timed-out probe stops before a model request. A timeout, empty reply, or other failure after launch never triggers a silent alternate model or transport.
45
+
46
+ ### Requested versus effective model identity
47
+
48
+ Response metadata adds:
49
+
50
+ ```json
51
+ {
52
+ "requested_model": "glm-5.3",
53
+ "model_identity_source": "provider-reported"
54
+ }
55
+ ```
56
+
57
+ `model_identity_source` is one of:
58
+
59
+ - `provider-reported` — the API explicitly named the effective model;
60
+ - `capability-probed` — the requested CLI model was present in an authenticated inventory;
61
+ - `requested-only` — the transport accepted the request but exposed no stronger content-model evidence.
62
+
63
+ The top-level `model` remains the best effective identifier available. Provider billing participants such as Claude CLI `modelUsage` are not misrepresented as content identity.
64
+
65
+ ### Prices, unpriced targets, and migrations
66
+
67
+ The catalog now includes current entries for Fable 5, Gemini 3.7 Flash, Mistral Medium 3.5/Large 3/Small 4, Grok 4.6, and MiniMax M3/M2.7/M2.5. GLM 5.3 on the coding-plan endpoint, Qwen3.8-Max Token Plan, and K3-256k remain explicitly unpriced: reports disclose their exclusion instead of inventing a dollar rate or calling them free.
68
+
69
+ `ai-consultants configure` migrates only these exact historical managed values:
70
+
71
+ - `CURSOR_CMD=agent` → `cursor-agent`
72
+ - `GLM_MODEL=glm-5.2` → `glm-5.3`
73
+ - `GROK_MODEL=grok-4.5` → `grok-4.6`
74
+
75
+ Values carrying `# ai-consultants:pin` remain unchanged.
76
+
77
+ ## Verification and Provider Status
78
+
79
+ - Full gate: 22/22 suites
80
+ - Core gate: 443/443 checks
81
+ - ShellCheck, Bash syntax, JSON validation, and npm tarball: passed
82
+ - Cross-family material review: Claude Opus 5 at max effort; initial `NO-SHIP`, final `SHIP` after findings were resolved
83
+ - PR CI: full GitHub Actions job executed and passed
84
+
85
+ Not verified locally in this release:
86
+
87
+ - Gemini 3.7 Flash — agy/API authentication unavailable
88
+ - Mistral new API IDs — no API key available
89
+ - Claude Fable 5 — max-effort adapter and direct probes timed out
90
+ - Cursor response — CLI installed, account not logged in
91
+
92
+ These targets are not presented as verified defaults.
93
+
94
+ ## Breaking Changes
95
+
96
+ None — this release is backwards-compatible. New metadata and configuration fields are additive. Managed migrations are limited to exact historical defaults and preserve explicit pins.
97
+
98
+ `max_quality` can select subscription/credit-billed targets that have no reliable per-token USD price. They are disclosed in the cost caveat, but a dollar budget cannot cap consumption the estimator cannot price.
99
+
100
+ ## Upgrade Guide
101
+
102
+ ```bash
103
+ # npx (no install)
104
+ npx ai-consultants "question"
105
+
106
+ # git clone install
107
+ cd ~/.claude/skills/ai-consultants && git pull
108
+
109
+ # curl | bash install
110
+ curl -fsSL https://raw.githubusercontent.com/matteoscurati/ai-consultants/main/scripts/install.sh | bash
111
+ ```
112
+
113
+ Run the configurator once to migrate managed Cursor, GLM, and Grok defaults:
114
+
115
+ ```bash
116
+ ai-consultants configure
117
+ ai-consultants doctor --live
118
+ ```
119
+
120
+ No credential or authentication state is modified automatically.
121
+
122
+ ## Commits
123
+
124
+ - `97f537c` feat: refresh consultant model catalog and transport contracts
125
+ - `3614949` Merge pull request #12 from `agent/model-catalog-3.5.0`
126
+
127
+ ## Contributors
128
+
129
+ - @matteoscurati
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ai-consultants",
3
- "version": "3.3.0",
3
+ "version": "3.5.0",
4
4
  "description": "A harness for every question - a panel of up to 11 AI models that picks its own deliberation strategy per question (convergence, adversarial verification, tournament) and checks its work before answering",
5
5
  "bin": {
6
6
  "ai-consultants": "bin/ai-consultants"