converse-mcp-server 3.6.1 → 3.7.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
@@ -80,9 +80,9 @@ OPENROUTER_API_KEY=your_openrouter_api_key_here
80
80
  # WARNING: Interactive policies may cause hangs in server/headless mode
81
81
  # CODEX_APPROVAL_POLICY=never
82
82
 
83
- # Default Codex backend model (default: gpt-6-astra). Per-request override: models: ["codex:<model>"]
84
- # Options: gpt-6-astra, gpt-5.6-sol, gpt-5.6-terra, gpt-5.6-luna, gpt-5.5, gpt-5.3-codex-spark
85
- # CODEX_MODEL=gpt-6-astra
83
+ # Default Codex backend model (default: gpt-6-sol). Per-request override: models: ["codex:<model>"]
84
+ # Options: gpt-6-sol, gpt-6-luna, gpt-6-astra, gpt-5.6-sol, gpt-5.6-terra, gpt-5.6-luna, gpt-5.5, gpt-5.3-codex-spark
85
+ # CODEX_MODEL=gpt-6-sol
86
86
 
87
87
  # ============================================
88
88
  # Server Configuration
package/README.md CHANGED
@@ -211,9 +211,12 @@ SUMMARIZATION_MODEL=gpt-5-nano # Default: gpt-5-nano
211
211
 
212
212
  ### OpenAI Models
213
213
 
214
- - **gpt-5.6-sol** (default; aliases: `gpt-5.6`, `gpt-5`, `sol`): Flagship GPT-5.6 (1M context, 128K output) - Frontier reasoning, coding, and agentic workflows
215
- - **gpt-5.6-terra** (alias: `terra`): Lower-cost GPT-5.6 (400K context, 128K output) - Performance competitive with the flagship at half the price
216
- - **gpt-5.6-luna** (alias: `luna`): Fastest, most affordable GPT-5.6 (400K context, 128K output) - High-volume, latency-sensitive workloads
214
+ - **gpt-6-sol** (default; aliases: `gpt-6`, `gpt-5`, `sol`): Default GPT-6 (1M context, 128K output) - Complex coding and agentic workflows; effort `none`–`max`
215
+ - **gpt-6-luna** (alias: `luna`): Most efficient GPT-6 (1M context, 128K output) - Focused, high-volume tasks; effort `none`–`max`
216
+ - **gpt-6-astra** (alias: `astra`): Frontier GPT-6 flagship (1M context, 128K output) - Hardest end-to-end work; effort `low`–`max` (EXPENSIVE: 5x Sol)
217
+ - **gpt-5.6-sol** (alias: `gpt-5.6`): Previous flagship GPT-5.6 (1M context, 128K output)
218
+ - **gpt-5.6-terra** (alias: `terra`): Lower-cost GPT-5.6 (400K context, 128K output) - Performance competitive with GPT-5.5 at half the price
219
+ - **gpt-5.6-luna**: Fastest, most affordable GPT-5.6 (400K context, 128K output)
217
220
  - **gpt-5.4**: Flagship-class reasoning (1M context, 128K output)
218
221
  - **gpt-5.4-pro** (alias: `gpt-5-pro`): Maximum-performance reasoning (1M context, 272K output) - Hardest problems, extended compute time (EXPENSIVE)
219
222
  - **gpt-5-mini**, **gpt-5-nano**: Faster, cost-efficient GPT-5 tiers (400K context, 128K output)
@@ -247,9 +250,10 @@ SUMMARIZATION_MODEL=gpt-5-nano # Default: gpt-5-nano
247
250
 
248
251
  ### Anthropic Models
249
252
 
253
+ - **claude-opus-5-5** (default; aliases: `opus`, `opus-5.5`, `claude-opus`): Flagship Opus for complex agentic coding and deep reasoning; thinking always on, effort `low`–`max` (1M context, 128K output)
250
254
  - **claude-fable-5** (alias: `fable`): Most capable model for demanding reasoning and long-horizon agentic work (1M context, 128K output)
251
- - **claude-opus-4-8** (alias: `opus`): Most capable Opus for complex reasoning and agentic coding (200K context, 1M via beta, 128K output)
252
- - **claude-opus-4-7** / **claude-opus-4-6**: Previous Opus generations with adaptive thinking (128K output)
255
+ - **claude-opus-5** (alias: `opus-5`): Previous Opus generation (1M context, 128K output)
256
+ - **claude-opus-4-8** / **claude-opus-4-7** / **claude-opus-4-6**: Earlier Opus generations with adaptive thinking (200K context, 1M via beta, 128K output)
253
257
  - **claude-opus-4-5** / **claude-opus-4-1**: Legacy Opus models with extended thinking (64K / 32K output)
254
258
  - **claude-sonnet-4-6** (alias: `sonnet`): Best combination of speed and intelligence with adaptive thinking (64K output)
255
259
  - **claude-haiku-4-5** (alias: `haiku`): Fast and intelligent for simple queries (64K output)
@@ -281,9 +285,9 @@ Any other model works via its full `provider/model` slug or the `openrouter:` na
281
285
 
282
286
  ### Codex Models
283
287
 
284
- - **codex**: OpenAI Codex agentic coding assistant (GPT-6 Astra by default)
285
- - Pick another backend per request with `codex:<model>` (e.g. `codex:sol`, `codex:gpt-5.6-terra`) or globally with `CODEX_MODEL`; backends: `gpt-6-astra` (alias `astra`), `gpt-5.6-sol` (`sol`), `gpt-5.6-terra` (`terra`), `gpt-5.6-luna` (`luna`), `gpt-5.5`, `gpt-5.3-codex-spark` (`spark`)
286
- - `reasoning_effort` maps onto the tiers the chosen backend accepts (GPT-6 Astra: `low` through `max`, no `none`)
288
+ - **codex**: OpenAI Codex agentic coding assistant (GPT-6 Sol by default)
289
+ - Pick another backend per request with `codex:<model>` (e.g. `codex:luna`, `codex:astra`, `codex:gpt-5.6-terra`) or globally with `CODEX_MODEL`; backends: `gpt-6-sol` (aliases `sol`, `gpt-6`), `gpt-6-luna` (`luna`), `gpt-6-astra` (`astra`), `gpt-5.6-sol`, `gpt-5.6-terra` (`terra`), `gpt-5.6-luna`, `gpt-5.5`, `gpt-5.3-codex-spark` (`spark`)
290
+ - `reasoning_effort` maps onto the tiers the chosen backend accepts (Sol/Luna: `none` through `max`; GPT-6 Astra: `low` through `max`, no `none`)
287
291
  - Thread-based sessions with persistent context
288
292
  - Direct filesystem access from working directory
289
293
  - Typical response time: 6-20 seconds (longer for complex tasks)
@@ -293,17 +297,17 @@ Any other model works via its full `provider/model` slug or the `openrouter:` na
293
297
  ### Claude Agent SDK Models
294
298
 
295
299
  - **claude** (aliases: `claude-sdk`, `claude-code`): Claude via the Claude Agent SDK
296
- - Defaults to Claude Fable 5.1 (`claude-fable-5-1`); `claude:fable` and `claude:fable-5.1` select 5.1, `claude:fable-5` selects 5.0, and `claude:opus` selects Opus 5
300
+ - Defaults to Claude Opus 5.5 (`claude-opus-5-5`); `claude:opus` selects Opus 5.5, `claude:opus-5` selects Opus 5, `claude:fable` / `claude:fable-5.1` select Fable 5.1, and `claude:fable-5` selects Fable 5.0
297
301
  - Uses Claude Code CLI authentication (`claude login`) - no API key needed
298
302
  - Direct filesystem access from working directory
299
303
  - Unknown `claude:`-prefixed names pass through to the SDK (e.g. `claude:claude-sonnet-4-6`)
300
304
 
301
305
  ### GitHub Copilot SDK Models
302
306
 
303
- Reach these with the `copilot:` namespace (e.g. `copilot:gpt-5.6-terra`); uses your GitHub Copilot subscription (`gh auth login`) - no API key needed:
307
+ Reach these with the `copilot:` namespace (e.g. `copilot:gpt-6-sol`); uses your GitHub Copilot subscription (`gh auth login`) - no API key needed:
304
308
 
305
- - **OpenAI**: `gpt-5.6-sol` (aliases: `gpt-5.6`, `gpt-5`), `gpt-5.6-terra`, `gpt-5.6-luna` (all support `reasoning_effort`)
306
- - **Anthropic**: `claude-fable-5` (alias: `fable`), `claude-sonnet-5` (alias: `sonnet`), `claude-opus-4.8` (aliases: `opus`, `claude`)
309
+ - **OpenAI**: `gpt-6-sol` (aliases: `gpt-6`, `gpt-5`, `sol`), `gpt-6-luna` (alias: `luna`), `gpt-5.6-sol` (alias: `gpt-5.6`), `gpt-5.6-terra`, `gpt-5.6-luna` (all support `reasoning_effort`)
310
+ - **Anthropic**: `claude-opus-5.5` (aliases: `opus`, `claude`), `claude-fable-5` (alias: `fable`), `claude-sonnet-5` (alias: `sonnet`), `claude-opus-5`, `claude-opus-4.8`
307
311
  - **Google**: `gemini-3.1-pro-preview` (aliases: `gemini`, `gemini-3.1-pro`), `gemini-3.8-flash` (aliases: `gemini-3.8`, `flash-3.8`), `gemini-3.5-flash` (alias: `gemini-flash`)
308
312
  - Any other `copilot:<id>` is forwarded to the Copilot backend verbatim
309
313
 
@@ -359,7 +363,7 @@ CODEX_API_KEY=your_codex_api_key_here # Optional if ChatGPT login availabl
359
363
  CODEX_SANDBOX_MODE=read-only # read-only (default), workspace-write, danger-full-access
360
364
  CODEX_SKIP_GIT_CHECK=true # true (default), false
361
365
  CODEX_APPROVAL_POLICY=never # never (default), untrusted, on-failure, on-request
362
- CODEX_MODEL=gpt-6-astra # gpt-6-astra (default), gpt-5.6-sol, gpt-5.6-terra, gpt-5.6-luna, gpt-5.5
366
+ CODEX_MODEL=gpt-6-sol # gpt-6-sol (default), gpt-6-luna, gpt-6-astra, gpt-5.6-sol, gpt-5.6-terra, gpt-5.6-luna, gpt-5.5
363
367
  ```
364
368
 
365
369
  ### Configuration Options
@@ -433,12 +437,13 @@ Use `"auto"` for automatic model selection, or specify exact models:
433
437
  "deepseek"; // -> deepseek-v4-pro
434
438
  "mistral"; // -> mistral-medium-3-5
435
439
  "fable"; // -> claude-fable-5 (Anthropic API)
436
- "opus"; // -> claude-opus-4-8 (Anthropic API)
440
+ "opus"; // -> claude-opus-5-5 (Anthropic API)
437
441
 
438
442
  // SDK providers (subscription-based, no API key)
439
- "claude"; // -> Claude Agent SDK (Claude Fable 5.1)
440
- "claude:opus"; // -> Claude Agent SDK (Claude Opus 4.8)
441
- "copilot:gpt-5.6-terra"; // -> GitHub Copilot SDK
443
+ "claude"; // -> Claude Agent SDK (Claude Opus 5.5)
444
+ "claude:fable"; // -> Claude Agent SDK (Claude Fable 5.1)
445
+ "codex:luna"; // -> Codex (GPT-6 Luna)
446
+ "copilot:gpt-6-sol"; // -> GitHub Copilot SDK
442
447
  ```
443
448
 
444
449
  **Auto Model Behavior:**
@@ -448,14 +453,14 @@ Use `"auto"` for automatic model selection, or specify exact models:
448
453
 
449
454
  Provider priority order (subscription-based SDK providers first, then API-key providers):
450
455
 
451
- 1. Codex (`codex`)
456
+ 1. Codex (`codex` → GPT-6 Sol)
452
457
  2. Gemini via Antigravity CLI (`gemini` → Gemini 3.8 Flash, `gemini:pro`)
453
- 3. Claude Agent SDK (`claude` → Claude Fable 5.1)
458
+ 3. Claude Agent SDK (`claude` → Claude Opus 5.5)
454
459
  4. Copilot (`copilot`)
455
- 5. OpenAI (`gpt-5.6`)
460
+ 5. OpenAI (`gpt-6` → GPT-6 Sol)
456
461
  6. Google (`gemini-pro`)
457
462
  7. XAI (`grok-4.5`)
458
- 8. Anthropic (`claude-sonnet-4-20250514`)
463
+ 8. Anthropic (`claude-opus-5-5`)
459
464
  9. Mistral (`mistral-medium-3-5`)
460
465
  10. DeepSeek (`deepseek-v4-pro`)
461
466
  11. OpenRouter (`z-ai/glm-5.2`)
package/docs/API.md CHANGED
@@ -374,9 +374,12 @@ Provide models as plain name strings in the `models` array. Bare names and alias
374
374
 
375
375
  | Model | Aliases | Context | Output | Notes |
376
376
  |-------|---------|---------|--------|-------|
377
- | `gpt-5.6-sol` | `gpt-5.6`, `gpt-5`, `sol` | 1M | 128K | Flagship, default OpenAI model |
378
- | `gpt-5.6-terra` | `terra` | 400K | 128K | Lower-cost flagship-class tier |
379
- | `gpt-5.6-luna` | `luna` | 400K | 128K | Fastest, most affordable tier |
377
+ | `gpt-6-sol` | `gpt-6`, `gpt-5`, `sol` | 1M | 128K | Default OpenAI model; effort `none`–`max` |
378
+ | `gpt-6-luna` | `luna` | 1M | 128K | Most efficient GPT-6; effort `none`–`max` |
379
+ | `gpt-6-astra` | `astra` | 1M | 128K | Frontier flagship (expensive); effort `low`–`max`, no `none` |
380
+ | `gpt-5.6-sol` | `gpt-5.6` | 1M | 128K | Previous flagship |
381
+ | `gpt-5.6-terra` | `terra` | 400K | 128K | Lower-cost GPT-5.6 tier |
382
+ | `gpt-5.6-luna` | — | 400K | 128K | Fastest GPT-5.6 tier |
380
383
  | `gpt-5.4` | — | 1M | 128K | Flagship-class reasoning |
381
384
  | `gpt-5.4-pro` | `gpt-5-pro` | 1M | 272K | Maximum performance (expensive) |
382
385
  | `gpt-5-mini`, `gpt-5-nano` | — | 400K | 128K | Fast, cost-efficient tiers |
@@ -410,14 +413,15 @@ Provide models as plain name strings in the `models` array. Bare names and alias
410
413
 
411
414
  | Model | Aliases | Context | Output | Notes |
412
415
  |-------|---------|---------|--------|-------|
416
+ | `claude-opus-5-5` | `opus`, `opus-5.5`, `claude-opus` | 1M | 128K | Default. Flagship Opus, always-on adaptive thinking + effort (no compaction yet) |
413
417
  | `claude-fable-5` | `fable`, `fable-5` | 1M | 128K | Most capable, adaptive thinking + effort, images, caching, compaction |
414
- | `claude-opus-5` | `opus`, `opus-5` | 1M | 128K | Most capable Opus, adaptive thinking + effort, compaction |
418
+ | `claude-opus-5` | `opus-5` | 1M | 128K | Previous Opus, adaptive thinking + effort, compaction |
415
419
  | `claude-opus-4-8`, `claude-opus-4-7`, `claude-opus-4-6` | `opus-4.8`, `opus-4.7`, `opus-4.6` | 200K (1M beta) | 128K | Previous Opus generations |
416
420
  | `claude-opus-4-5-20251101`, `claude-opus-4-1-20250805` | `opus-4.5`, `opus-4.1` | 200K | 64K / 32K | Earlier Opus tiers |
417
421
  | `claude-sonnet-4-6` | `sonnet`, `sonnet-4.6` | 200K (1M beta) | 64K | Best speed/intelligence balance, adaptive thinking |
418
422
  | `claude-haiku-4-5-20251001` | `haiku`, `haiku-4.5` | 200K | 64K | Fast and intelligent |
419
423
 
420
- Models with adaptive thinking control depth via `reasoning_effort`, which is passed by name to Anthropic's `effort` parameter and clamped to what each model accepts: Fable 5, Opus 5, Opus 4.8, and Opus 4.7 take `low`–`max`; Opus 4.6 and Sonnet 4.6 lack `xhigh` (it becomes `max`); Opus 4.5 tops out at `high`. `none` and `minimal` become `low` everywhere. System prompts are automatically cached for 1 hour; cache stats appear in response metadata as `cache_creation_input_tokens` / `cache_read_input_tokens`.
424
+ Models with adaptive thinking control depth via `reasoning_effort`, which is passed by name to Anthropic's `effort` parameter and clamped to what each model accepts: Opus 5.5, Fable 5, Opus 5, Opus 4.8, and Opus 4.7 take `low`–`max`; Opus 4.6 and Sonnet 4.6 lack `xhigh` (it becomes `max`); Opus 4.5 tops out at `high`. `none` and `minimal` become `low` everywhere. System prompts are automatically cached for 1 hour; cache stats appear in response metadata as `cache_creation_input_tokens` / `cache_read_input_tokens`.
421
425
 
422
426
  ### Mistral Models
423
427
 
@@ -456,20 +460,20 @@ Any other model works via its full `provider/model` slug (e.g. `anthropic/claude
456
460
 
457
461
  **Codex** is an agentic coding assistant with direct filesystem access:
458
462
 
459
- - **Model**: `codex` (underlying model: GPT-6 Astra by default)
460
- - **Backend selection**: `codex:<model>` per request (e.g. `codex:astra`, `codex:sol`, `codex:gpt-5.6-terra`), or `CODEX_MODEL` globally; unknown names pass through to the CLI verbatim
463
+ - **Model**: `codex` (underlying model: GPT-6 Sol by default)
464
+ - **Backend selection**: `codex:<model>` per request (e.g. `codex:luna`, `codex:astra`, `codex:gpt-5.6-terra`), or `CODEX_MODEL` globally; `sol`/`luna`/`gpt-6` name the GPT-6 tiers, the GPT-5.6 tiers are reached by full slug; unknown names pass through to the CLI verbatim
461
465
  - **Thread-based sessions**: persistent conversation history via `continuation_id` in `chat` mode
462
466
  - **Direct file access**: reads files from the working directory (paths relative to `CLIENT_CWD`)
463
467
  - **Response times**: 6-20 seconds typical (complex tasks may take minutes)
464
468
  - **Authentication**: ChatGPT login OR `CODEX_API_KEY` (NOT `OPENAI_API_KEY`)
465
- - `reasoning_effort` is clamped onto the tiers the chosen backend accepts (GPT-6 Astra: `low`–`max`, no `none`; GPT-5.6: `none`–`max`); web search is not applicable — Codex manages its own execution
469
+ - `reasoning_effort` is clamped onto the tiers the chosen backend accepts (GPT-6 Sol/Luna and GPT-5.6: `none`–`max`; GPT-6 Astra: `low`–`max`, no `none`); web search is not applicable — Codex manages its own execution
466
470
 
467
471
  ### Claude Agent SDK (subscription)
468
472
 
469
473
  **Claude** is available through the Claude Agent SDK, using Claude Code CLI authentication instead of an API key:
470
474
 
471
- - **Model**: `claude` (aliases: `claude-sdk`, `claude-code`) — defaults to Claude Fable 5.1 (`claude-fable-5-1`)
472
- - **Model selection**: `claude:fable` or `claude:fable-5.1` (Claude Fable 5.1), `claude:fable-5` (Claude Fable 5.0), or `claude:opus` (Claude Opus 5); unknown `claude:`-prefixed names pass through to the SDK (e.g. `claude:claude-sonnet-4-6`)
475
+ - **Model**: `claude` (aliases: `claude-sdk`, `claude-code`) — defaults to Claude Opus 5.5 (`claude-opus-5-5`)
476
+ - **Model selection**: `claude:opus` or `claude:opus-5.5` (Claude Opus 5.5), `claude:opus-5` (Claude Opus 5), `claude:fable` or `claude:fable-5.1` (Claude Fable 5.1), `claude:fable-5` (Claude Fable 5.0); unknown `claude:`-prefixed names pass through to the SDK (e.g. `claude:claude-sonnet-4-6`)
473
477
  - **Authentication**: `claude login` — no `ANTHROPIC_API_KEY` needed
474
478
  - **Direct file access**: reads files from the working directory
475
479
  - **Reasoning effort**: `reasoning_effort` maps to the SDK's `effort` option: `low`, `medium`, `high`, `xhigh`, or `max`; `none` and `minimal` become `low`. Omitting it retains the SDK default.
@@ -502,10 +506,10 @@ agy
502
506
 
503
507
  ### GitHub Copilot SDK (subscription)
504
508
 
505
- Reach these with the `copilot:` namespace (e.g. `copilot:gpt-5.6-terra`); uses your GitHub Copilot subscription (`gh auth login`) — no API key needed:
509
+ Reach these with the `copilot:` namespace (e.g. `copilot:gpt-6-sol`); uses your GitHub Copilot subscription (`gh auth login`) — no API key needed:
506
510
 
507
- - **OpenAI**: `gpt-5.6-sol` (aliases: `gpt-5.6`, `gpt-5`), `gpt-5.6-terra`, `gpt-5.6-luna` (all accept `reasoning_effort`)
508
- - **Anthropic**: `claude-fable-5` (alias: `fable`), `claude-sonnet-5` (alias: `sonnet`), `claude-opus-5` (aliases: `opus`, `claude`), `claude-opus-4.8`
511
+ - **OpenAI**: `gpt-6-sol` (aliases: `gpt-6`, `gpt-5`, `sol`), `gpt-6-luna` (alias: `luna`), `gpt-5.6-sol` (alias: `gpt-5.6`), `gpt-5.6-terra`, `gpt-5.6-luna` (all accept `reasoning_effort`)
512
+ - **Anthropic**: `claude-opus-5.5` (aliases: `opus`, `claude`), `claude-fable-5` (alias: `fable`), `claude-sonnet-5` (alias: `sonnet`), `claude-opus-5`, `claude-opus-4.8`
509
513
  - **Google**: `gemini-3.1-pro-preview` (aliases: `gemini`, `gemini-3.1-pro`), `gemini-3.8-flash` (aliases: `gemini-3.8`, `flash-3.8`), `gemini-3.5-flash` (alias: `gemini-flash`)
510
514
  - Any other `copilot:<id>` is forwarded to the Copilot backend verbatim
511
515
 
@@ -515,7 +519,7 @@ Use `"auto"` for automatic selection, or specify exact models:
515
519
 
516
520
  ```text
517
521
  "auto" // First available provider (chat); first 3 (consensus)
518
- "gpt-5.6" // OpenAI flagship
522
+ "gpt-6" // OpenAI flagship (-> gpt-6-sol)
519
523
  "gemini-2.5-flash" // Google API
520
524
  "grok-4.5" // X.AI
521
525
  "deepseek" // DeepSeek (-> deepseek-v4-pro)
@@ -523,11 +527,12 @@ Use `"auto"` for automatic selection, or specify exact models:
523
527
  "z-ai/glm-5.2" // OpenRouter (full slug)
524
528
  "z-ai/glm-5.2:online" // OpenRouter with web search opt-in
525
529
  "fable" // Anthropic API (-> claude-fable-5)
526
- "opus" // Anthropic API (-> claude-opus-5)
527
- "claude" // Claude Agent SDK (-> Claude Fable 5.1)
528
- "claude:opus" // Claude Agent SDK (Claude Opus 5)
530
+ "opus" // Anthropic API (-> claude-opus-5-5)
531
+ "claude" // Claude Agent SDK (-> Claude Opus 5.5)
532
+ "claude:fable" // Claude Agent SDK (Claude Fable 5.1)
533
+ "codex:luna" // Codex (GPT-6 Luna)
529
534
  "gemini" // Antigravity CLI (Gemini 3.8 Flash)
530
- "copilot:gpt-5.6-terra" // GitHub Copilot SDK
535
+ "copilot:gpt-6-sol" // GitHub Copilot SDK
531
536
  ```
532
537
 
533
538
  **Auto behavior:**
@@ -554,7 +559,7 @@ Control Codex behavior through environment variables:
554
559
  - **`CODEX_SANDBOX_MODE`** — filesystem access: `read-only` (default), `workspace-write`, `danger-full-access` (containers only)
555
560
  - **`CODEX_SKIP_GIT_CHECK`** — `true` (default) works in any directory; `false` requires a Git repository
556
561
  - **`CODEX_APPROVAL_POLICY`** — `never` (default, recommended for servers), `untrusted`, `on-failure`, `on-request`
557
- - **`CODEX_MODEL`** — underlying model for Codex sessions (default: `gpt-5.6-sol`)
562
+ - **`CODEX_MODEL`** — underlying model for Codex sessions (default: `gpt-6-sol`)
558
563
  - **`CODEX_API_KEY`** — optional API key for headless deployments (alternative to ChatGPT login)
559
564
 
560
565
  **Example (.env):**
@@ -563,7 +568,7 @@ CODEX_API_KEY=your_codex_api_key_here
563
568
  CODEX_SANDBOX_MODE=read-only
564
569
  CODEX_SKIP_GIT_CHECK=true
565
570
  CODEX_APPROVAL_POLICY=never
566
- CODEX_MODEL=gpt-5.6-sol
571
+ CODEX_MODEL=gpt-6-sol
567
572
  ```
568
573
 
569
574
  ## Context Processing
package/docs/PROVIDERS.md CHANGED
@@ -9,9 +9,12 @@ This guide documents all supported AI providers in the Converse MCP Server and t
9
9
  - **Get Key**: [platform.openai.com/api-keys](https://platform.openai.com/api-keys)
10
10
  - **Environment Variable**: `OPENAI_API_KEY`
11
11
  - **Supported Models**:
12
- - `gpt-5.6-sol` (aliases: `gpt-5.6`, `gpt-5`, `sol`) - Flagship GPT-5.6, the default OpenAI model
12
+ - `gpt-6-sol` (aliases: `gpt-6`, `gpt-5`, `sol`) - Default GPT-6 and the default OpenAI model (1M context, 128K output; effort `none`–`max`)
13
+ - `gpt-6-luna` (alias: `luna`) - Most efficient GPT-6 for focused, high-volume tasks (1M context, 128K output; effort `none`–`max`)
14
+ - `gpt-6-astra` (alias: `astra`) - Frontier GPT-6 flagship, 5x the Sol price (1M context, 128K output; effort `low`–`max`)
15
+ - `gpt-5.6-sol` (alias: `gpt-5.6`) - Previous flagship GPT-5.6
13
16
  - `gpt-5.6-terra` (alias: `terra`) - Lower-cost GPT-5.6, competitive with GPT-5.5
14
- - `gpt-5.6-luna` (alias: `luna`) - Fastest, most affordable GPT-5.6
17
+ - `gpt-5.6-luna` - Fastest, most affordable GPT-5.6
15
18
  - `gpt-5.4`, `gpt-5.4-mini`, `gpt-5.4-nano`, `gpt-5.4-pro`, `gpt-5-mini`, `gpt-5-nano` - GPT-5.4/GPT-5 family
16
19
  - `o3`, `o3-pro`, `o4-mini` - Advanced reasoning models
17
20
  - `gpt-4.1` - Large context (1M tokens)
@@ -45,9 +48,10 @@ This guide documents all supported AI providers in the Converse MCP Server and t
45
48
  - **Get Key**: [console.anthropic.com](https://console.anthropic.com/)
46
49
  - **Environment Variable**: `ANTHROPIC_API_KEY`
47
50
  - **Supported Models**:
51
+ - `claude-opus-5-5` (aliases `opus`, `opus-5.5`, `claude-opus`) - Default. Flagship Opus for complex agentic coding and deep reasoning; thinking is always on, effort `low`–`max` (1M context, 128K output)
48
52
  - `claude-fable-5` (alias `fable`) - Most capable model for demanding reasoning and long-horizon agentic work (1M context, 128K output)
49
- - `claude-opus-5` (alias `opus`) - Most capable Opus for complex agentic coding and deep reasoning (1M context, 128K output)
50
- - `claude-opus-4-8`, `claude-opus-4-7`, `claude-opus-4-6` - Previous Opus generations with adaptive thinking (128K output)
53
+ - `claude-opus-5` (alias `opus-5`) - Previous Opus generation (1M context, 128K output)
54
+ - `claude-opus-4-8`, `claude-opus-4-7`, `claude-opus-4-6` - Earlier Opus generations with adaptive thinking (128K output)
51
55
  - `claude-opus-4-5-20251101`, `claude-opus-4-1-20250805` - Legacy Opus models (64K / 32K output)
52
56
  - `claude-sonnet-4-6` (alias `sonnet`) - Best combination of speed and intelligence with adaptive thinking (64K output)
53
57
  - `claude-sonnet-4-5-20250929` - Legacy Sonnet (64K output)
@@ -101,11 +105,11 @@ This guide documents all supported AI providers in the Converse MCP Server and t
101
105
  - `CODEX_SANDBOX_MODE` - Filesystem access control (default: read-only)
102
106
  - `CODEX_SKIP_GIT_CHECK` - Skip Git repository validation (default: true)
103
107
  - `CODEX_APPROVAL_POLICY` - Command approval behavior (default: never)
104
- - `CODEX_MODEL` - Underlying model for Codex sessions (default: gpt-6-astra; e.g. gpt-5.6-sol, gpt-5.6-terra, gpt-5.6-luna, gpt-5.5)
108
+ - `CODEX_MODEL` - Underlying model for Codex sessions (default: gpt-6-sol; e.g. gpt-6-luna, gpt-6-astra, gpt-5.6-sol, gpt-5.6-terra, gpt-5.6-luna, gpt-5.5)
105
109
  - **Supported Models**:
106
- - `codex` - OpenAI Codex agentic coding assistant (GPT-6 Astra by default)
107
- - `codex:<model>` - Same, with an explicit backend: `codex:astra`, `codex:sol`, `codex:terra`, `codex:luna`, `codex:gpt-5.5`, `codex:spark`, or any slug the Codex CLI knows
108
- - `reasoning_effort` is clamped onto what the backend accepts (GPT-6 Astra: `low`–`max`, no `none`)
110
+ - `codex` - OpenAI Codex agentic coding assistant (GPT-6 Sol by default)
111
+ - `codex:<model>` - Same, with an explicit backend: `codex:sol`, `codex:luna`, `codex:astra` (GPT-6), `codex:gpt-5.6-sol`, `codex:terra`, `codex:gpt-5.6-luna`, `codex:gpt-5.5`, `codex:spark`, or any slug the Codex CLI knows
112
+ - `reasoning_effort` is clamped onto what the backend accepts (Sol/Luna: `none`–`max`; GPT-6 Astra: `low`–`max`, no `none`)
109
113
  - Thread-based sessions with persistent context
110
114
  - Direct filesystem access from working directory
111
115
  - Typical response time: 6-20 seconds (longer for complex tasks)
@@ -195,10 +199,11 @@ agy
195
199
  - **Setup Required**: Authenticate once with `claude login` (Claude Code CLI)
196
200
  - **Environment Variables**: None (uses Claude Code credentials)
197
201
  - **Supported Models**:
198
- - `claude` (aliases: `claude-sdk`, `claude-code`) - Defaults to Claude Fable 5.1 (`claude-fable-5-1`)
199
- - `claude:fable` or `claude:fable-5.1` - Claude Fable 5.1 explicitly
202
+ - `claude` (aliases: `claude-sdk`, `claude-code`) - Defaults to Claude Opus 5.5 (`claude-opus-5-5`)
203
+ - `claude:opus` or `claude:opus-5.5` - Claude Opus 5.5 explicitly
204
+ - `claude:opus-5` - Claude Opus 5 (`claude-opus-5`)
205
+ - `claude:fable` or `claude:fable-5.1` - Claude Fable 5.1 (`claude-fable-5-1`)
200
206
  - `claude:fable-5` - Claude Fable 5.0 (`claude-fable-5`)
201
- - `claude:opus` - Claude Opus 5
202
207
  - Other `claude:`-prefixed names pass through to the SDK (e.g. `claude:claude-sonnet-4-6`)
203
208
 
204
209
  **Key Features:**
@@ -218,12 +223,12 @@ agy
218
223
  - **Authentication**: GitHub Copilot subscription via the Copilot CLI (`gh auth login` with an active Copilot subscription) — no API key needed
219
224
  - **Setup Required**: Authenticate the GitHub CLI and ensure your account has an active Copilot subscription
220
225
  - **Environment Variables**: None
221
- - **Supported Models** (reach them with the `copilot:` namespace, e.g. `copilot:gpt-5.6-terra`):
226
+ - **Supported Models** (reach them with the `copilot:` namespace, e.g. `copilot:gpt-6-sol`):
222
227
  - `copilot` - Uses Copilot's default or env-configured model
223
- - OpenAI: `gpt-5.6-sol` (aliases: bare `gpt-5.6`, `gpt-5`), `gpt-5.6-terra` (recommended balanced tier), `gpt-5.6-luna`
224
- - Anthropic: `claude-fable-5` (alias: `fable`), `claude-sonnet-5` (alias: `sonnet`), `claude-opus-5` (aliases: `opus`, `claude`), `claude-opus-4.8`
228
+ - OpenAI: `gpt-6-sol` (aliases: bare `gpt-6`, `gpt-5`, `sol`), `gpt-6-luna` (alias: `luna`), `gpt-5.6-sol` (alias: `gpt-5.6`), `gpt-5.6-terra`, `gpt-5.6-luna`
229
+ - Anthropic: `claude-opus-5.5` (aliases: `opus`, `claude`; Copilot Pro+/Max/Business/Enterprise), `claude-fable-5` (alias: `fable`), `claude-sonnet-5` (alias: `sonnet`), `claude-opus-5`, `claude-opus-4.8`
225
230
  - Google: `gemini-3.1-pro-preview` (aliases: `gemini`, `gemini-3.1-pro`), `gemini-3.8-flash` (aliases: `gemini-3.8`, `flash-3.8`), `gemini-3.5-flash` (alias: `gemini-flash`)
226
- - **Reasoning**: The `gpt-5.6-sol`/`terra`/`luna` tiers accept `reasoning_effort`.
231
+ - **Reasoning**: The GPT-6 and GPT-5.6 tiers accept `reasoning_effort` (clamped onto Copilot's `low`–`xhigh`).
227
232
  - **Explicit pass-through**: Any other `copilot:<id>` model string is forwarded to the Copilot backend verbatim, so IDs outside the curated list still work while the backend accepts them.
228
233
 
229
234
  **Key Features:**
@@ -340,12 +345,12 @@ When using the chat tool in any mode, specify models using their identifiers:
340
345
  The `models` array always holds plain model-name strings. Each string routes as follows:
341
346
 
342
347
  ```text
343
- "gpt-5.6" // OpenAI (keyword match)
348
+ "gpt-6" // OpenAI (keyword match -> gpt-6-sol)
344
349
  "fable" // Anthropic (keyword match -> claude-fable-5)
345
- "opus" // Anthropic (keyword match -> claude-opus-5)
350
+ "opus" // Anthropic (keyword match -> claude-opus-5-5)
346
351
  "sonnet" // Anthropic (keyword match -> claude-sonnet-4-6)
347
- "claude" // Claude Agent SDK (defaults to Claude Fable 5.1)
348
- "claude:opus" // Claude Agent SDK (Claude Opus 5)
352
+ "claude" // Claude Agent SDK (defaults to Claude Opus 5.5)
353
+ "claude:fable" // Claude Agent SDK (Claude Fable 5.1)
349
354
  "gemini-2.5-pro" // Google (keyword match)
350
355
  "grok-4.5" // X.AI (keyword match)
351
356
  "mistral-large" // Mistral (alias -> mistral-large-2512)
@@ -377,7 +382,7 @@ The `models` array always holds plain model-name strings. Each string routes as
377
382
 
378
383
  ### Model Not Found
379
384
  - Use exact model identifiers as listed above
380
- - Some providers support aliases (e.g., "fable" → "claude-fable-5", "opus" → "claude-opus-5")
385
+ - Some providers support aliases (e.g., "fable" → "claude-fable-5", "opus" → "claude-opus-5-5")
381
386
  - Note: bare "claude" routes to the Claude Agent SDK provider, not the Anthropic API
382
387
  - Check provider documentation for model availability in your region
383
388
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "converse-mcp-server",
3
- "version": "3.6.1",
3
+ "version": "3.7.1",
4
4
  "description": "Converse MCP Server - Converse with other LLMs with chat and consensus tools",
5
5
  "type": "module",
6
6
  "main": "src/index.js",
@@ -93,28 +93,28 @@
93
93
  ".env.example"
94
94
  ],
95
95
  "dependencies": {
96
- "@anthropic-ai/claude-agent-sdk": "^0.3.263",
97
- "@anthropic-ai/sdk": "^0.124.0",
98
- "@github/copilot-sdk": "^1.0.13",
99
- "@google/genai": "^2.21.0",
96
+ "@anthropic-ai/claude-agent-sdk": "^0.3.280",
97
+ "@anthropic-ai/sdk": "^0.128.0",
98
+ "@github/copilot-sdk": "^1.0.14",
99
+ "@google/genai": "^2.24.0",
100
100
  "@lydell/node-pty": "1.2.0-beta.15",
101
- "@mistralai/mistralai": "^2.6.4",
101
+ "@mistralai/mistralai": "^2.7.0",
102
102
  "@modelcontextprotocol/sdk": "^1.30.0",
103
- "@openai/codex-sdk": "^0.153.4",
103
+ "@openai/codex-sdk": "^0.156.1",
104
104
  "cors": "^2.8.6",
105
- "dotenv": "^17.4.2",
105
+ "dotenv": "^18.0.3",
106
106
  "express": "^5.2.1",
107
- "lru-cache": "^11.5.2",
107
+ "lru-cache": "^11.5.3",
108
108
  "nanoid": "^6.0.1",
109
- "openai": "^7.10.0",
110
- "p-limit": "^7.3.2",
111
- "vite": "^8.2.2"
109
+ "openai": "^7.23.0",
110
+ "p-limit": "^7.3.3",
111
+ "vite": "^8.3.0"
112
112
  },
113
113
  "devDependencies": {
114
- "@vitest/coverage-v8": "^5.0.0",
114
+ "@vitest/coverage-v8": "^5.0.1",
115
115
  "cross-env": "^10.1.0",
116
- "eslint": "^10.10.0",
116
+ "eslint": "^10.11.0",
117
117
  "rimraf": "^6.1.3",
118
- "vitest": "^5.0.0"
118
+ "vitest": "^5.0.1"
119
119
  }
120
120
  }
package/src/config.js CHANGED
@@ -280,9 +280,9 @@ const CONFIG_SCHEMA = {
280
280
  },
281
281
  CODEX_MODEL: {
282
282
  type: 'string',
283
- default: 'gpt-6-astra',
283
+ default: 'gpt-6-sol',
284
284
  description:
285
- 'Default Codex backend model (e.g., gpt-6-astra, gpt-5.6-sol, gpt-5.6-terra, gpt-5.6-luna, gpt-5.5)',
285
+ 'Default Codex backend model (e.g., gpt-6-sol, gpt-6-luna, gpt-6-astra, gpt-5.6-sol, gpt-5.6-terra, gpt-5.6-luna, gpt-5.5)',
286
286
  },
287
287
 
288
288
  // Copilot configuration
@@ -295,7 +295,7 @@ const CONFIG_SCHEMA = {
295
295
  type: 'string',
296
296
  required: false,
297
297
  description:
298
- 'Default model for Copilot SDK sessions (e.g., gpt-5.6-sol, claude-sonnet-5)',
298
+ 'Default model for Copilot SDK sessions (e.g., gpt-6-sol, claude-opus-5.5, claude-sonnet-5)',
299
299
  },
300
300
  COPILOT_CLI_PATH: {
301
301
  type: 'string',
@@ -21,6 +21,37 @@ const EFFORT_TIERS_LEGACY = ['low', 'medium', 'high'];
21
21
 
22
22
  // Define supported Claude models with their capabilities
23
23
  const SUPPORTED_MODELS = {
24
+ 'claude-opus-5-5': {
25
+ modelName: 'claude-opus-5-5',
26
+ friendlyName: 'Claude Opus 5.5',
27
+ contextWindow: 1000000, // 1M context by default - no beta header required
28
+ maxOutputTokens: 128000,
29
+ supportsStreaming: true,
30
+ supportsImages: true,
31
+ supportsWebSearch: false,
32
+ supportsThinking: true,
33
+ supportsAdaptiveThinking: true, // Thinking is always on and cannot be disabled
34
+ timeout: 1800000,
35
+ supportsEffort: true,
36
+ effortGA: true,
37
+ effortTiers: EFFORT_TIERS_FULL,
38
+ // Absent from Anthropic's compaction compatibility list, unlike Opus 5
39
+ supportsCompaction: false,
40
+ description:
41
+ 'Claude Opus 5.5 - Flagship Opus for complex agentic coding and deep reasoning; matches Fable 5.1 on most work at Opus pricing',
42
+ aliases: [
43
+ 'claude-opus-5-5',
44
+ 'claude-opus-5.5',
45
+ 'claude-5.5-opus',
46
+ 'claude-5-5-opus',
47
+ 'opus-5.5',
48
+ 'opus-5-5',
49
+ 'opus5.5',
50
+ 'opus5-5',
51
+ 'opus',
52
+ 'claude-opus',
53
+ ],
54
+ },
24
55
  'claude-fable-5': {
25
56
  modelName: 'claude-fable-5',
26
57
  friendlyName: 'Claude Fable 5',
@@ -63,15 +94,13 @@ const SUPPORTED_MODELS = {
63
94
  effortTiers: EFFORT_TIERS_FULL,
64
95
  supportsCompaction: true,
65
96
  description:
66
- 'Claude Opus 5 - Most capable Opus for complex agentic coding and deep reasoning',
97
+ 'Claude Opus 5 - Previous Opus generation for complex agentic coding and deep reasoning',
67
98
  aliases: [
68
99
  'claude-opus-5',
69
100
  'claude-5-opus',
70
101
  'opus-5',
71
102
  'opus5',
72
103
  'claude-opus-5.0',
73
- 'opus',
74
- 'claude-opus',
75
104
  ],
76
105
  },
77
106
  'claude-opus-4-8': {
@@ -567,7 +596,7 @@ export const anthropicProvider = {
567
596
  */
568
597
  async invoke(messages, options = {}) {
569
598
  const {
570
- model = 'claude-3-5-sonnet-20241022',
599
+ model = 'claude-opus-5-5',
571
600
  maxTokens = null,
572
601
  stream = false,
573
602
  reasoning_effort = 'medium',
@@ -17,15 +17,15 @@ import { debugLog, debugError } from '../utils/console.js';
17
17
  import { ProviderError, ErrorCodes, StopReasons } from './interface.js';
18
18
  import { clampReasoningEffort } from '../utils/reasoningEffort.js';
19
19
 
20
- // Default underlying model when the request is just "claude" (or "claude:fable")
21
- const DEFAULT_SDK_MODEL = 'claude-fable-5-1';
20
+ // Default underlying model when the request is just "claude" (or "claude:opus")
21
+ const DEFAULT_SDK_MODEL = 'claude-opus-5-5';
22
22
  const SDK_EFFORT_TIERS = ['low', 'medium', 'high', 'xhigh', 'max'];
23
23
 
24
24
  // Supported Claude SDK models with their configurations
25
25
  const SUPPORTED_MODELS = {
26
- 'fable-5': {
27
- modelName: 'claude-fable-5',
28
- friendlyName: 'Claude Fable 5 (via Agent SDK)',
26
+ opus: {
27
+ modelName: 'claude-opus-5-5',
28
+ friendlyName: 'Claude Opus 5.5 (via Agent SDK)',
29
29
  contextWindow: 1000000,
30
30
  maxOutputTokens: 128000,
31
31
  supportsStreaming: true,
@@ -33,8 +33,31 @@ const SUPPORTED_MODELS = {
33
33
  supportsWebSearch: false, // SDK accesses files directly, not web
34
34
  timeout: 1800000, // 30 minutes
35
35
  description:
36
- 'Claude Fable 5 via Agent SDK - requires claude login authentication',
37
- aliases: ['claude-fable-5'],
36
+ 'Claude Opus 5.5 via Agent SDK (default) - requires claude login authentication',
37
+ aliases: [
38
+ 'claude',
39
+ 'claude-sdk',
40
+ 'claude-code',
41
+ 'claude:opus',
42
+ 'claude-opus',
43
+ 'claude-opus-5-5',
44
+ 'claude-opus-5.5',
45
+ 'opus-5-5',
46
+ 'opus-5.5',
47
+ ],
48
+ },
49
+ 'opus-5': {
50
+ modelName: 'claude-opus-5',
51
+ friendlyName: 'Claude Opus 5 (via Agent SDK)',
52
+ contextWindow: 1000000,
53
+ maxOutputTokens: 128000,
54
+ supportsStreaming: true,
55
+ supportsImages: true,
56
+ supportsWebSearch: false,
57
+ timeout: 1800000,
58
+ description:
59
+ 'Claude Opus 5 via Agent SDK - requires claude login authentication',
60
+ aliases: ['claude-opus-5'],
38
61
  },
39
62
  fable: {
40
63
  modelName: 'claude-fable-5-1',
@@ -46,11 +69,8 @@ const SUPPORTED_MODELS = {
46
69
  supportsWebSearch: false,
47
70
  timeout: 1800000,
48
71
  description:
49
- 'Claude Fable 5.1 via Agent SDK (default) - requires claude login authentication',
72
+ 'Claude Fable 5.1 via Agent SDK - requires claude login authentication',
50
73
  aliases: [
51
- 'claude',
52
- 'claude-sdk',
53
- 'claude-code',
54
74
  'claude:fable',
55
75
  'claude-fable',
56
76
  'claude-fable-5-1',
@@ -59,18 +79,18 @@ const SUPPORTED_MODELS = {
59
79
  'fable-5.1',
60
80
  ],
61
81
  },
62
- opus: {
63
- modelName: 'claude-opus-5',
64
- friendlyName: 'Claude Opus 5 (via Agent SDK)',
82
+ 'fable-5': {
83
+ modelName: 'claude-fable-5',
84
+ friendlyName: 'Claude Fable 5 (via Agent SDK)',
65
85
  contextWindow: 1000000,
66
86
  maxOutputTokens: 128000,
67
87
  supportsStreaming: true,
68
- supportsImages: true, // Supported via streaming input mode
69
- supportsWebSearch: false, // SDK accesses files directly, not web
70
- timeout: 1800000, // 30 minutes
88
+ supportsImages: true,
89
+ supportsWebSearch: false,
90
+ timeout: 1800000,
71
91
  description:
72
- 'Claude Opus 5 via Agent SDK - requires claude login authentication',
73
- aliases: ['claude:opus', 'claude-opus-5'],
92
+ 'Claude Fable 5 via Agent SDK - requires claude login authentication',
93
+ aliases: ['claude-fable-5'],
74
94
  },
75
95
  };
76
96
 
@@ -133,7 +153,7 @@ function findModelConfig(modelName) {
133
153
  if (name.toLowerCase().startsWith('claude:')) {
134
154
  name = name.slice('claude:'.length).trim();
135
155
  }
136
- if (!name) return SUPPORTED_MODELS.fable;
156
+ if (!name) return SUPPORTED_MODELS.opus;
137
157
 
138
158
  const nameLower = name.toLowerCase();
139
159
 
@@ -155,8 +175,8 @@ function findModelConfig(modelName) {
155
175
 
156
176
  /**
157
177
  * Resolve the requested model to the underlying SDK model ID.
158
- * - "claude" (and bare "claude:") defaults to Claude Fable 5.1
159
- * - "claude:fable" / "claude:opus" select the specific model
178
+ * - "claude" (and bare "claude:") defaults to Claude Opus 5.5
179
+ * - "claude:opus" / "claude:opus-5" / "claude:fable" / "claude:fable-5" select the specific model
160
180
  * - Unknown names are passed through (after prefix stripping) so users can
161
181
  * target any model ID the Agent SDK accepts (e.g. "claude:claude-sonnet-4-6")
162
182
  */
@@ -624,7 +644,7 @@ export const claudeProvider = {
624
644
 
625
645
  /**
626
646
  * Get model configuration for specific model
627
- * Handles claude: prefixed names (e.g. "claude:opus", "claude:fable")
647
+ * Handles claude: prefixed names (e.g. "claude:opus", "claude:fable", "claude:opus-5")
628
648
  */
629
649
  getModelConfig(modelName) {
630
650
  return findModelConfig(modelName);
@@ -25,9 +25,13 @@ import {
25
25
  * Backend models Codex can run, keyed by the slug passed to the CLI as
26
26
  * --model. The reasoning tiers are the ones each model's API accepts, verified
27
27
  * against the API's own rejection messages (gpt-6-astra: "Supported values
28
- * are: 'low', 'medium', 'high', 'xhigh', and 'max'"). The SDK's
29
- * ModelReasoningEffort type is the union across models, so the backend is the
30
- * authority and requests are clamped per model.
28
+ * are: 'low', 'medium', 'high', 'xhigh', and 'max'"; the Sol/Luna tiers of
29
+ * both generations accept 'none' as well). The SDK's ModelReasoningEffort
30
+ * type is the union across models, so the backend is the authority and
31
+ * requests are clamped per model.
32
+ *
33
+ * Bare tier names (sol, luna) and the bare generation (gpt-6) point at the
34
+ * current generation; the GPT-5.6 tiers stay reachable by full slug.
31
35
  *
32
36
  * Codex also exposes 'ultra' above 'max', but that tier turns on automatic
33
37
  * sub-agent delegation — a change in how the run executes, not just how deep
@@ -35,23 +39,33 @@ import {
35
39
  * and nothing at the tool level can select it.
36
40
  */
37
41
  const CODEX_BACKEND_MODELS = {
42
+ 'gpt-6-sol': {
43
+ aliases: ['sol', 'gpt-6', 'gpt6', 'gpt6-sol', 'gpt-6-codex'],
44
+ contextWindow: 272000,
45
+ supportedEfforts: ['none', 'low', 'medium', 'high', 'xhigh', 'max'],
46
+ },
47
+ 'gpt-6-luna': {
48
+ aliases: ['luna', 'gpt6-luna'],
49
+ contextWindow: 272000,
50
+ supportedEfforts: ['none', 'low', 'medium', 'high', 'xhigh', 'max'],
51
+ },
38
52
  'gpt-6-astra': {
39
- aliases: ['astra', 'gpt-6', 'gpt6', 'gpt6-astra'],
53
+ aliases: ['astra', 'gpt6-astra'],
40
54
  contextWindow: 272000,
41
55
  supportedEfforts: ['low', 'medium', 'high', 'xhigh', 'max'],
42
56
  },
43
57
  'gpt-5.6-sol': {
44
- aliases: ['sol', 'gpt-5.6', 'gpt5.6', 'gpt-5.6-codex'],
58
+ aliases: ['gpt-5.6', 'gpt5.6', 'gpt5.6-sol', 'gpt-5.6-codex'],
45
59
  contextWindow: 272000,
46
60
  supportedEfforts: ['none', 'low', 'medium', 'high', 'xhigh', 'max'],
47
61
  },
48
62
  'gpt-5.6-terra': {
49
- aliases: ['terra'],
63
+ aliases: ['terra', 'gpt5.6-terra'],
50
64
  contextWindow: 272000,
51
65
  supportedEfforts: ['none', 'low', 'medium', 'high', 'xhigh', 'max'],
52
66
  },
53
67
  'gpt-5.6-luna': {
54
- aliases: ['luna'],
68
+ aliases: ['gpt5.6-luna'],
55
69
  contextWindow: 272000,
56
70
  supportedEfforts: ['none', 'low', 'medium', 'high', 'xhigh', 'max'],
57
71
  },
@@ -67,14 +81,14 @@ const CODEX_BACKEND_MODELS = {
67
81
  },
68
82
  };
69
83
 
70
- const DEFAULT_BACKEND_MODEL = 'gpt-6-astra';
84
+ const DEFAULT_BACKEND_MODEL = 'gpt-6-sol';
71
85
 
72
86
  // The single user-facing model the router exposes. The backend model behind it
73
87
  // comes from CODEX_MODEL, or from a `codex:<model>` spec.
74
88
  const SUPPORTED_MODELS = {
75
89
  codex: {
76
90
  modelName: 'codex',
77
- friendlyName: 'OpenAI Codex (GPT-6 Astra)',
91
+ friendlyName: 'OpenAI Codex (GPT-6 Sol)',
78
92
  contextWindow: CODEX_BACKEND_MODELS[DEFAULT_BACKEND_MODEL].contextWindow,
79
93
  maxOutputTokens: 128000,
80
94
  supportsStreaming: true,
@@ -82,7 +96,7 @@ const SUPPORTED_MODELS = {
82
96
  supportsWebSearch: false, // Codex accesses files directly, not web
83
97
  timeout: 1800000, // 30 minutes
84
98
  description:
85
- 'OpenAI Codex agentic coding assistant with local file access and tool execution (GPT-6 Astra by default; pick another backend with codex:<model> or CODEX_MODEL)',
99
+ 'OpenAI Codex agentic coding assistant with local file access and tool execution (GPT-6 Sol by default; pick another backend with codex:<model> or CODEX_MODEL)',
86
100
  aliases: [],
87
101
  },
88
102
  };
@@ -266,7 +280,7 @@ export function getBackendModelConfig(name) {
266
280
  /**
267
281
  * Resolve the requested model spec to the backend slug passed to the CLI.
268
282
  *
269
- * `codex` uses CODEX_MODEL (default gpt-6-astra); `codex:<model>` names a
283
+ * `codex` uses CODEX_MODEL (default gpt-6-sol); `codex:<model>` names a
270
284
  * backend directly, by slug or alias. Unknown names pass through verbatim so a
271
285
  * newly released model works before it is catalogued here — the CLI rejects
272
286
  * anything the backend does not know.
@@ -35,11 +35,38 @@ const SUPPORTED_MODELS = {
35
35
  },
36
36
 
37
37
  // OpenAI models
38
- // Bare `gpt-5.6` (and the legacy `gpt-5` shortcut) route to Sol, matching
39
- // Copilot's own bare-alias behavior. Terra is the recommended balanced tier.
40
- // `codex` and `gpt` point at the latest GPT tier (reachable only via the
41
- // `copilot:` namespace — bare `codex` routes to the Codex provider and bare
42
- // `gpt*` keyword-routes to OpenAI before Copilot's catalog is consulted).
38
+ // Bare `gpt-6` / `gpt-5.6` route to that generation's Sol, matching
39
+ // Copilot's own bare-alias behavior; `sol`/`luna` and the legacy `gpt-5`
40
+ // shortcut follow the current generation. `codex` and `gpt` point at the
41
+ // latest GPT tier (reachable only via the `copilot:` namespace — bare
42
+ // `codex` routes to the Codex provider and bare `gpt*` keyword-routes to
43
+ // OpenAI before Copilot's catalog is consulted).
44
+ 'gpt-6-sol': {
45
+ modelName: 'gpt-6-sol',
46
+ friendlyName: 'GPT-6 Sol (via Copilot)',
47
+ contextWindow: 1050000,
48
+ maxOutputTokens: 32768,
49
+ supportsStreaming: true,
50
+ supportsImages: false,
51
+ supportsWebSearch: false,
52
+ supportsReasoningEffort: true,
53
+ timeout: 1800000,
54
+ description: 'OpenAI GPT-6 Sol via Copilot subscription',
55
+ aliases: ['gpt-6', 'gpt-5', 'gpt', 'codex', 'sol'],
56
+ },
57
+ 'gpt-6-luna': {
58
+ modelName: 'gpt-6-luna',
59
+ friendlyName: 'GPT-6 Luna (via Copilot)',
60
+ contextWindow: 1050000,
61
+ maxOutputTokens: 32768,
62
+ supportsStreaming: true,
63
+ supportsImages: false,
64
+ supportsWebSearch: false,
65
+ supportsReasoningEffort: true,
66
+ timeout: 1800000,
67
+ description: 'OpenAI GPT-6 Luna via Copilot subscription',
68
+ aliases: ['luna'],
69
+ },
43
70
  'gpt-5.6-sol': {
44
71
  modelName: 'gpt-5.6-sol',
45
72
  friendlyName: 'GPT-5.6 Sol (via Copilot)',
@@ -51,7 +78,7 @@ const SUPPORTED_MODELS = {
51
78
  supportsReasoningEffort: true,
52
79
  timeout: 1800000,
53
80
  description: 'OpenAI GPT-5.6 Sol via Copilot subscription',
54
- aliases: ['gpt-5.6', 'gpt-5', 'gpt', 'codex'],
81
+ aliases: ['gpt-5.6'],
55
82
  },
56
83
  'gpt-5.6-terra': {
57
84
  modelName: 'gpt-5.6-terra',
@@ -81,6 +108,19 @@ const SUPPORTED_MODELS = {
81
108
  },
82
109
 
83
110
  // Anthropic models
111
+ // Bare `opus` and `claude` follow the current Opus generation.
112
+ 'claude-opus-5.5': {
113
+ modelName: 'claude-opus-5.5',
114
+ friendlyName: 'Claude Opus 5.5 (via Copilot)',
115
+ contextWindow: 200000,
116
+ maxOutputTokens: 32768,
117
+ supportsStreaming: true,
118
+ supportsImages: false,
119
+ supportsWebSearch: false,
120
+ timeout: 1800000,
121
+ description: 'Anthropic Claude Opus 5.5 via Copilot subscription',
122
+ aliases: ['opus', 'claude', 'claude-opus-5-5'],
123
+ },
84
124
  'claude-fable-5': {
85
125
  modelName: 'claude-fable-5',
86
126
  friendlyName: 'Claude Fable 5 (via Copilot)',
@@ -115,7 +155,7 @@ const SUPPORTED_MODELS = {
115
155
  supportsWebSearch: false,
116
156
  timeout: 1800000,
117
157
  description: 'Anthropic Claude Opus 5 via Copilot subscription',
118
- aliases: ['opus', 'claude'],
158
+ aliases: [],
119
159
  },
120
160
  'claude-opus-4.8': {
121
161
  modelName: 'claude-opus-4.8',
@@ -10,21 +10,82 @@ import { debugLog, debugError } from '../utils/console.js';
10
10
  import { clampReasoningEffort } from '../utils/reasoningEffort.js';
11
11
 
12
12
  // Values each family accepts for reasoning effort, per the model pages at
13
- // developers.openai.com/api/docs/models. GPT-5.6 is the only family with
14
- // 'max'; the GPT-5.4 tier stops at 'xhigh'; the original GPT-5 minis kept
15
- // 'minimal' but never gained 'xhigh'; the o-series predates both ends of the
16
- // ladder; GPT-5.4 Pro starts at 'medium'. Models without a list are passed
17
- // the requested value unchanged, except uncatalogued GPT-5 Pro snapshots,
18
- // which are only known to accept 'high'.
19
- const GPT_56_EFFORT_TIERS = ['none', 'low', 'medium', 'high', 'xhigh', 'max'];
13
+ // developers.openai.com/api/docs/models. The GPT-6 Sol/Luna tiers and the
14
+ // GPT-5.6 family take the whole ladder; GPT-6 Astra has no 'none'; the
15
+ // GPT-5.4 tier stops at 'xhigh'; the original GPT-5 minis kept 'minimal' but
16
+ // never gained 'xhigh'; the o-series predates both ends of the ladder;
17
+ // GPT-5.4 Pro starts at 'medium'. Models without a list are passed the
18
+ // requested value unchanged, except uncatalogued GPT-5 Pro snapshots, which
19
+ // are only known to accept 'high'.
20
+ const FULL_EFFORT_TIERS = ['none', 'low', 'medium', 'high', 'xhigh', 'max'];
21
+ const GPT_6_ASTRA_EFFORT_TIERS = ['low', 'medium', 'high', 'xhigh', 'max'];
20
22
  const GPT_54_EFFORT_TIERS = ['none', 'low', 'medium', 'high', 'xhigh'];
21
23
  const GPT_54_PRO_EFFORT_TIERS = ['medium', 'high', 'xhigh'];
22
24
  const GPT_5_EFFORT_TIERS = ['minimal', 'low', 'medium', 'high'];
23
25
  const O_SERIES_EFFORT_TIERS = ['low', 'medium', 'high'];
24
26
  const PRO_PASSTHROUGH_EFFORT_TIERS = ['high'];
25
27
 
26
- // Define supported models with their capabilities
28
+ // Define supported models with their capabilities.
29
+ // Bare tier names (sol, luna) and the bare generation (gpt-6, and the legacy
30
+ // gpt-5 shortcut) follow the current generation; older tiers stay reachable by
31
+ // their versioned names.
27
32
  const SUPPORTED_MODELS = {
33
+ 'gpt-6-sol': {
34
+ modelName: 'gpt-6-sol',
35
+ friendlyName: 'OpenAI (GPT-6 Sol)',
36
+ contextWindow: 1050000,
37
+ maxOutputTokens: 128000,
38
+ supportsStreaming: true,
39
+ supportsImages: true,
40
+ supportsWebSearch: true,
41
+ supportsResponsesAPI: true,
42
+ supportedEfforts: FULL_EFFORT_TIERS,
43
+ timeout: 10800000, // 3 hours
44
+ description:
45
+ 'Default GPT-6 model (1M context, 128K output) - Complex coding and agentic workflows at a fifth of the Astra price',
46
+ aliases: [
47
+ 'gpt-6',
48
+ 'gpt6',
49
+ 'gpt 6',
50
+ 'gpt-5',
51
+ 'gpt5',
52
+ 'gpt 5',
53
+ 'sol',
54
+ 'gpt6-sol',
55
+ 'gpt-6sol',
56
+ 'gpt 6 sol',
57
+ ],
58
+ },
59
+ 'gpt-6-luna': {
60
+ modelName: 'gpt-6-luna',
61
+ friendlyName: 'OpenAI (GPT-6 Luna)',
62
+ contextWindow: 1050000,
63
+ maxOutputTokens: 128000,
64
+ supportsStreaming: true,
65
+ supportsImages: true,
66
+ supportsWebSearch: true,
67
+ supportsResponsesAPI: true,
68
+ supportedEfforts: FULL_EFFORT_TIERS,
69
+ timeout: 1800000, // 30 minutes
70
+ description:
71
+ 'Most efficient GPT-6 (1M context, 128K output) - Focused, high-volume tasks',
72
+ aliases: ['luna', 'gpt6-luna', 'gpt-6luna', 'gpt 6 luna'],
73
+ },
74
+ 'gpt-6-astra': {
75
+ modelName: 'gpt-6-astra',
76
+ friendlyName: 'OpenAI (GPT-6 Astra)',
77
+ contextWindow: 1050000,
78
+ maxOutputTokens: 128000,
79
+ supportsStreaming: true,
80
+ supportsImages: true,
81
+ supportsWebSearch: true,
82
+ supportsResponsesAPI: true,
83
+ supportedEfforts: GPT_6_ASTRA_EFFORT_TIERS,
84
+ timeout: 10800000, // 3 hours
85
+ description:
86
+ 'Frontier GPT-6 flagship (1M context, 128K output) - Maximum intelligence for the hardest end-to-end work (EXPENSIVE: 5x Sol)',
87
+ aliases: ['astra', 'gpt6-astra', 'gpt-6astra', 'gpt 6 astra'],
88
+ },
28
89
  'gpt-5.6-sol': {
29
90
  modelName: 'gpt-5.6-sol',
30
91
  friendlyName: 'OpenAI (GPT-5.6 Sol)',
@@ -34,18 +95,15 @@ const SUPPORTED_MODELS = {
34
95
  supportsImages: true,
35
96
  supportsWebSearch: true,
36
97
  supportsResponsesAPI: true,
37
- supportedEfforts: GPT_56_EFFORT_TIERS,
98
+ supportedEfforts: FULL_EFFORT_TIERS,
38
99
  timeout: 10800000, // 3 hours
39
100
  description:
40
- 'Flagship GPT-5.6 model (1M context, 128K output) - Frontier reasoning, coding, agentic workflows. Most token-efficient flagship',
101
+ 'Previous flagship GPT-5.6 (1M context, 128K output) - Frontier reasoning, coding, agentic workflows',
41
102
  aliases: [
42
103
  'gpt-5.6',
43
104
  'gpt5.6',
44
105
  'gpt 5.6',
45
- 'gpt-5',
46
- 'gpt5',
47
- 'gpt 5',
48
- 'sol',
106
+ 'gpt5.6-sol',
49
107
  'gpt-5.6sol',
50
108
  'gpt 5.6 sol',
51
109
  ],
@@ -59,7 +117,7 @@ const SUPPORTED_MODELS = {
59
117
  supportsImages: true,
60
118
  supportsWebSearch: true,
61
119
  supportsResponsesAPI: true,
62
- supportedEfforts: GPT_56_EFFORT_TIERS,
120
+ supportedEfforts: FULL_EFFORT_TIERS,
63
121
  timeout: 5400000, // 90 minutes
64
122
  description:
65
123
  'Lower-cost GPT-5.6 (400K context, 128K output) - Performance competitive with GPT-5.5 at half the flagship price',
@@ -74,11 +132,11 @@ const SUPPORTED_MODELS = {
74
132
  supportsImages: true,
75
133
  supportsWebSearch: true,
76
134
  supportsResponsesAPI: true,
77
- supportedEfforts: GPT_56_EFFORT_TIERS,
135
+ supportedEfforts: FULL_EFFORT_TIERS,
78
136
  timeout: 1800000, // 30 minutes
79
137
  description:
80
138
  'Fastest, most affordable GPT-5.6 (400K context, 128K output) - High-volume, latency-sensitive workloads',
81
- aliases: ['gpt5.6-luna', 'gpt-5.6luna', 'gpt 5.6 luna', 'luna'],
139
+ aliases: ['gpt5.6-luna', 'gpt-5.6luna', 'gpt 5.6 luna'],
82
140
  },
83
141
  'gpt-5.4': {
84
142
  modelName: 'gpt-5.4',
@@ -342,14 +400,18 @@ function acceptsReasoningEffort(resolvedModel, modelConfig) {
342
400
  if (modelConfig.supportedEfforts) {
343
401
  return true;
344
402
  }
345
- return resolvedModel.startsWith('o3') || resolvedModel.startsWith('gpt-5');
403
+ return (
404
+ resolvedModel.startsWith('o3') ||
405
+ resolvedModel.startsWith('gpt-5') ||
406
+ resolvedModel.startsWith('gpt-6')
407
+ );
346
408
  }
347
409
 
348
410
  /**
349
411
  * Resolve the reasoning effort actually sent to the API. Catalogued models
350
412
  * clamp onto their declared tiers. Pass-through IDs are matched by family
351
- * where the tiers are known (GPT-5 Pro snapshots, GPT-5.6 snapshots) and
352
- * otherwise keep the requested value.
413
+ * where the tiers are known (GPT-5 Pro snapshots, GPT-6 Sol/Luna and GPT-5.6
414
+ * snapshots) and otherwise keep the requested value.
353
415
  */
354
416
  function resolveReasoningEffort(resolvedModel, modelConfig, reasoningEffort) {
355
417
  if (modelConfig.supportedEfforts) {
@@ -358,8 +420,15 @@ function resolveReasoningEffort(resolvedModel, modelConfig, reasoningEffort) {
358
420
  if (resolvedModel.endsWith('-pro') && resolvedModel.startsWith('gpt-5')) {
359
421
  return clampReasoningEffort(reasoningEffort, PRO_PASSTHROUGH_EFFORT_TIERS);
360
422
  }
361
- if (resolvedModel.startsWith('gpt-5.6')) {
362
- return clampReasoningEffort(reasoningEffort, GPT_56_EFFORT_TIERS);
423
+ if (resolvedModel.startsWith('gpt-6-astra')) {
424
+ return clampReasoningEffort(reasoningEffort, GPT_6_ASTRA_EFFORT_TIERS);
425
+ }
426
+ if (
427
+ resolvedModel.startsWith('gpt-6-sol') ||
428
+ resolvedModel.startsWith('gpt-6-luna') ||
429
+ resolvedModel.startsWith('gpt-5.6')
430
+ ) {
431
+ return clampReasoningEffort(reasoningEffort, FULL_EFFORT_TIERS);
363
432
  }
364
433
  return reasoningEffort;
365
434
  }
@@ -487,7 +556,7 @@ export const openaiProvider = {
487
556
  */
488
557
  async invoke(messages, options = {}) {
489
558
  const {
490
- model = 'gpt-5.6',
559
+ model = 'gpt-6',
491
560
  maxTokens = null,
492
561
  stream = false,
493
562
  reasoning_effort = 'medium',
@@ -38,16 +38,16 @@ export function getDefaultModelForProvider(providerName) {
38
38
  'gemini-cli': 'gemini',
39
39
  claude: 'claude',
40
40
  copilot: 'copilot',
41
- openai: 'gpt-5.6',
41
+ openai: 'gpt-6',
42
42
  xai: 'grok-4.5',
43
43
  google: 'gemini-pro',
44
- anthropic: 'claude-sonnet-4-20250514',
44
+ anthropic: 'claude-opus-5-5',
45
45
  mistral: 'mistral-medium-3-5',
46
46
  deepseek: 'deepseek-v4-pro',
47
47
  openrouter: 'z-ai/glm-5.2',
48
48
  };
49
49
 
50
- return defaults[providerName] || 'gpt-5.6';
50
+ return defaults[providerName] || 'gpt-6';
51
51
  }
52
52
 
53
53
  /**