converse-mcp-server 4.3.0 → 4.4.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 +3 -3
- package/README.md +11 -10
- package/docs/API.md +10 -9
- package/docs/PROVIDERS.md +11 -10
- package/package.json +5 -5
- package/src/providers/codex.js +13 -8
- package/src/providers/copilot.js +19 -5
- package/src/providers/openai.js +41 -20
package/.env.example
CHANGED
|
@@ -91,11 +91,11 @@ TYPESAFE_API_KEY=your_typesafe_api_key_here
|
|
|
91
91
|
# The model a bare provider name ("codex", "openai", ...) and "auto" use.
|
|
92
92
|
# Each must be a model ID or alias from that provider's catalog; startup fails
|
|
93
93
|
# with "did you mean" suggestions otherwise. Per request, use "provider:model".
|
|
94
|
-
# CODEX_DEFAULT_MODEL=gpt-6-astra # 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 (CODEX_MODEL is the legacy name)
|
|
94
|
+
# CODEX_DEFAULT_MODEL=gpt-6-astra # gpt-6.1-sol, 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 (CODEX_MODEL is the legacy name)
|
|
95
95
|
# CLAUDE_DEFAULT_MODEL=claude-opus-5-5
|
|
96
96
|
# AGY_DEFAULT_MODEL=gemini-3.8-flash # Antigravity CLI: gemini-3.8-flash, gemini-3.1-pro-preview
|
|
97
|
-
# COPILOT_DEFAULT_MODEL=gpt-6-sol
|
|
98
|
-
# OPENAI_DEFAULT_MODEL=gpt-6-sol
|
|
97
|
+
# COPILOT_DEFAULT_MODEL=gpt-6.1-sol # COPILOT_MODEL is the legacy name
|
|
98
|
+
# OPENAI_DEFAULT_MODEL=gpt-6.1-sol
|
|
99
99
|
# GOOGLE_DEFAULT_MODEL=gemini-3.1-pro-preview
|
|
100
100
|
# XAI_DEFAULT_MODEL=grok-4.5
|
|
101
101
|
# ANTHROPIC_DEFAULT_MODEL=claude-opus-5-5
|
package/README.md
CHANGED
|
@@ -230,7 +230,8 @@ SUMMARIZATION_MODEL=gpt-5-nano # Default: gpt-5-nano
|
|
|
230
230
|
|
|
231
231
|
### OpenAI Models
|
|
232
232
|
|
|
233
|
-
- **gpt-6-sol** (default; aliases: `gpt-6`, `gpt-5`, `sol`):
|
|
233
|
+
- **gpt-6.1-sol** (default; aliases: `gpt-6`, `gpt-6.1`, `gpt-5`, `sol`): GPT-6.1 Sol (1M context, 128K output) - Near-Astra coding, computer use, and professional work at a fifth of the Astra price; effort `low`–`max`
|
|
234
|
+
- **gpt-6-sol**: Previous GPT-6 Sol (1M context, 128K output), reachable by versioned name only; effort `none`–`max`
|
|
234
235
|
- **gpt-6-luna** (alias: `luna`): Most efficient GPT-6 (1M context, 128K output) - Focused, high-volume tasks; effort `none`–`max`
|
|
235
236
|
- **gpt-6-astra** (alias: `astra`): Frontier GPT-6 flagship (1M context, 128K output) - Hardest end-to-end work; effort `low`–`max` (EXPENSIVE: 5x Sol)
|
|
236
237
|
- **gpt-5.6-sol** (alias: `gpt-5.6`): Previous flagship GPT-5.6 (1M context, 128K output)
|
|
@@ -307,9 +308,9 @@ Any other model works via its full `provider/model` slug or the `openrouter:` na
|
|
|
307
308
|
|
|
308
309
|
OpenAI Codex agentic coding assistant. `codex` uses its default model (GPT-6 Astra, or `CODEX_DEFAULT_MODEL`); `codex:<model>` picks one (e.g. `codex:luna`, `codex:astra`, `codex:gpt-5.6-terra`):
|
|
309
310
|
|
|
310
|
-
- **gpt-6-sol** (
|
|
311
|
+
- **gpt-6.1-sol** (`sol`, `gpt-6`), **gpt-6-sol**, **gpt-6-luna** (`luna`), **gpt-6-astra** (`astra`)
|
|
311
312
|
- **gpt-5.6-sol** (`gpt-5.6`), **gpt-5.6-terra** (`terra`), **gpt-5.6-luna**, **gpt-5.5**, **gpt-5.3-codex-spark** (`spark`)
|
|
312
|
-
- `reasoning_effort` maps onto the tiers the chosen backend accepts (Sol
|
|
313
|
+
- `reasoning_effort` maps onto the tiers the chosen backend accepts (versioned GPT-6 Sol, Luna, and GPT-5.6: `none` through `max`; GPT-6.1 Sol and GPT-6 Astra: `low` through `max`, no `none`)
|
|
313
314
|
- Thread-based sessions with persistent context
|
|
314
315
|
- Direct filesystem access from working directory
|
|
315
316
|
- Typical response time: 6-20 seconds (longer for complex tasks)
|
|
@@ -328,9 +329,9 @@ Claude via the Claude Agent SDK. `claude` uses its default model (Opus 5.5, or `
|
|
|
328
329
|
|
|
329
330
|
### GitHub Copilot SDK Models
|
|
330
331
|
|
|
331
|
-
Reach these only with the `copilot:` namespace (e.g. `copilot:gpt-6-sol`) — Copilot never serves bare model names. `copilot` alone uses GPT-6 Sol, or `COPILOT_DEFAULT_MODEL`. Uses your GitHub Copilot subscription (`gh auth login`) - no API key needed:
|
|
332
|
+
Reach these only with the `copilot:` namespace (e.g. `copilot:gpt-6.1-sol`) — Copilot never serves bare model names. `copilot` alone uses GPT-6.1 Sol, or `COPILOT_DEFAULT_MODEL`. Uses your GitHub Copilot subscription (`gh auth login`) - no API key needed:
|
|
332
333
|
|
|
333
|
-
- **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`)
|
|
334
|
+
- **OpenAI**: `gpt-6.1-sol` (aliases: `gpt-6`, `gpt-6.1`, `gpt-5`, `sol`), `gpt-6-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`)
|
|
334
335
|
- **Anthropic**: `claude-opus-5.5` (aliases: `opus`, `claude`), `claude-fable-5` (alias: `fable`), `claude-sonnet-5.5` (alias: `sonnet`), `claude-sonnet-5`, `claude-opus-5`, `claude-opus-4.8`
|
|
335
336
|
- **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`)
|
|
336
337
|
|
|
@@ -393,8 +394,8 @@ CODEX_APPROVAL_POLICY=never # never (default), untrusted, on-fa
|
|
|
393
394
|
CODEX_DEFAULT_MODEL=gpt-6-astra # CODEX_MODEL still works as a fallback
|
|
394
395
|
CLAUDE_DEFAULT_MODEL=claude-opus-5-5
|
|
395
396
|
AGY_DEFAULT_MODEL=gemini-3.8-flash # Antigravity CLI (gemini)
|
|
396
|
-
COPILOT_DEFAULT_MODEL=gpt-6-sol
|
|
397
|
-
OPENAI_DEFAULT_MODEL=gpt-6-sol
|
|
397
|
+
COPILOT_DEFAULT_MODEL=gpt-6.1-sol # COPILOT_MODEL still works as a fallback
|
|
398
|
+
OPENAI_DEFAULT_MODEL=gpt-6.1-sol
|
|
398
399
|
GOOGLE_DEFAULT_MODEL=gemini-3.1-pro-preview
|
|
399
400
|
XAI_DEFAULT_MODEL=grok-4.5
|
|
400
401
|
ANTHROPIC_DEFAULT_MODEL=claude-opus-5-5
|
|
@@ -464,7 +465,7 @@ Every entry in `models` takes one of four forms:
|
|
|
464
465
|
"codex"; // -> Codex (GPT-6 Astra)
|
|
465
466
|
"claude"; // -> Claude Agent SDK (Claude Opus 5.5)
|
|
466
467
|
"gemini"; // -> Antigravity CLI (Gemini 3.8 Flash); `agy` works too
|
|
467
|
-
"openai"; // -> OpenAI API (GPT-6 Sol)
|
|
468
|
+
"openai"; // -> OpenAI API (GPT-6.1 Sol)
|
|
468
469
|
|
|
469
470
|
// provider:model — that model on that provider only
|
|
470
471
|
"codex:astra"; // -> Codex (GPT-6 Astra)
|
|
@@ -497,8 +498,8 @@ Provider priority order (subscription-based local providers first, then API-key
|
|
|
497
498
|
1. Codex (`codex` → GPT-6 Astra)
|
|
498
499
|
2. Gemini via Antigravity CLI (`gemini` / `agy` → Gemini 3.8 Flash)
|
|
499
500
|
3. Claude Agent SDK (`claude` → Claude Opus 5.5)
|
|
500
|
-
4. Copilot (`copilot` → GPT-6 Sol; `auto` only, never bare names)
|
|
501
|
-
5. OpenAI (`openai` → GPT-6 Sol)
|
|
501
|
+
4. Copilot (`copilot` → GPT-6.1 Sol; `auto` only, never bare names)
|
|
502
|
+
5. OpenAI (`openai` → GPT-6.1 Sol)
|
|
502
503
|
6. Google (`google` → Gemini 3.1 Pro)
|
|
503
504
|
7. XAI (`xai` → Grok 4.5)
|
|
504
505
|
8. Anthropic (`anthropic` → Claude Opus 5.5)
|
package/docs/API.md
CHANGED
|
@@ -480,7 +480,8 @@ Provide models as plain name strings in the `models` array. Each entry is `auto`
|
|
|
480
480
|
|
|
481
481
|
| Model | Aliases | Context | Output | Notes |
|
|
482
482
|
|-------|---------|---------|--------|-------|
|
|
483
|
-
| `gpt-6-sol` | `gpt-6`, `gpt-5`, `sol` | 1M | 128K | Default OpenAI model; effort `
|
|
483
|
+
| `gpt-6.1-sol` | `gpt-6`, `gpt-6.1`, `gpt-5`, `sol` | 1M | 128K | Default OpenAI model; near-Astra coding, computer use, and professional work at a fifth of the Astra price; effort `low`–`max` |
|
|
484
|
+
| `gpt-6-sol` | — | 1M | 128K | Previous GPT-6 Sol; reachable by versioned name only; effort `none`–`max` |
|
|
484
485
|
| `gpt-6-luna` | `luna` | 1M | 128K | Most efficient GPT-6; effort `none`–`max` |
|
|
485
486
|
| `gpt-6-astra` | `astra` | 1M | 128K | Frontier flagship (expensive); effort `low`–`max`, no `none` |
|
|
486
487
|
| `gpt-5.6-sol` | `gpt-5.6` | 1M | 128K | Previous flagship |
|
|
@@ -568,13 +569,13 @@ Any other model works via its full `provider/model` slug (e.g. `anthropic/claude
|
|
|
568
569
|
**Codex** is an agentic coding assistant with direct filesystem access:
|
|
569
570
|
|
|
570
571
|
- **Model**: `codex` (underlying model: GPT-6 Astra by default, or `CODEX_DEFAULT_MODEL`)
|
|
571
|
-
- **Backend selection**: `codex:<model>` per request (e.g. `codex:luna`, `codex:astra`, `codex:gpt-5.6-terra`) from the Codex catalog: `gpt-6-sol` (`sol`, `gpt-6`), `gpt-6-luna` (`luna`), `gpt-6-astra` (`astra`), `gpt-5.6-sol` (`gpt-5.6`), `gpt-5.6-terra` (`terra`), `gpt-5.6-luna`, `gpt-5.5`, `gpt-5.3-codex-spark` (`spark`). Other names are rejected with suggestions. Bare IDs from this list (e.g. `gpt-6-astra`) go to Codex first, then the OpenAI API.
|
|
572
|
+
- **Backend selection**: `codex:<model>` per request (e.g. `codex:luna`, `codex:astra`, `codex:gpt-5.6-terra`) from the Codex catalog: `gpt-6.1-sol` (`sol`, `gpt-6`), `gpt-6-sol`, `gpt-6-luna` (`luna`), `gpt-6-astra` (`astra`), `gpt-5.6-sol` (`gpt-5.6`), `gpt-5.6-terra` (`terra`), `gpt-5.6-luna`, `gpt-5.5`, `gpt-5.3-codex-spark` (`spark`). Other names are rejected with suggestions. Bare IDs from this list (e.g. `gpt-6-astra`) go to Codex first, then the OpenAI API.
|
|
572
573
|
- **Availability**: the Codex SDK is installed and `~/.codex/auth.json` exists (`$CODEX_HOME/auth.json` when set) or `CODEX_API_KEY` is set
|
|
573
574
|
- **Thread-based sessions**: persistent conversation history via `continuation_id` in `chat` mode
|
|
574
575
|
- **Direct file access**: reads files from the working directory (paths relative to `CLIENT_CWD`)
|
|
575
576
|
- **Response times**: 6-20 seconds typical (complex tasks may take minutes)
|
|
576
577
|
- **Authentication**: ChatGPT login OR `CODEX_API_KEY` (NOT `OPENAI_API_KEY`)
|
|
577
|
-
- `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
|
|
578
|
+
- `reasoning_effort` is clamped onto the tiers the chosen backend accepts (GPT-6 Sol/Luna and GPT-5.6: `none`–`max`; GPT-6 Astra and GPT-6.1 Sol: `low`–`max`, no `none`); web search is not applicable — Codex manages its own execution
|
|
578
579
|
|
|
579
580
|
### Claude Agent SDK (subscription)
|
|
580
581
|
|
|
@@ -619,9 +620,9 @@ agy
|
|
|
619
620
|
|
|
620
621
|
### GitHub Copilot SDK (subscription)
|
|
621
622
|
|
|
622
|
-
Reach these only with the `copilot:` namespace (also `github-copilot:`, `copilot-sdk:`; e.g. `copilot:gpt-6-sol`) — Copilot never serves bare model names. `copilot` alone uses GPT-6 Sol, or `COPILOT_DEFAULT_MODEL`. Available when the Copilot SDK is installed; uses your GitHub Copilot subscription (`gh auth login`) — no API key needed:
|
|
623
|
+
Reach these only with the `copilot:` namespace (also `github-copilot:`, `copilot-sdk:`; e.g. `copilot:gpt-6.1-sol`) — Copilot never serves bare model names. `copilot` alone uses GPT-6.1 Sol, or `COPILOT_DEFAULT_MODEL`. Available when the Copilot SDK is installed; uses your GitHub Copilot subscription (`gh auth login`) — no API key needed:
|
|
623
624
|
|
|
624
|
-
- **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`)
|
|
625
|
+
- **OpenAI**: `gpt-6.1-sol` (aliases: `gpt-6`, `gpt-6.1`, `gpt-5`, `sol`), `gpt-6-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`)
|
|
625
626
|
- **Anthropic**: `claude-opus-5.5` (aliases: `opus`, `claude`), `claude-fable-5` (alias: `fable`), `claude-sonnet-5.5` (alias: `sonnet`), `claude-sonnet-5`, `claude-opus-5`, `claude-opus-4.8`
|
|
626
627
|
- **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`)
|
|
627
628
|
- Any other `copilot:<id>` is rejected with suggestions
|
|
@@ -639,7 +640,7 @@ Every entry in `models` takes one of four forms:
|
|
|
639
640
|
|
|
640
641
|
```text
|
|
641
642
|
"auto" // First available provider (chat); first 3 (consensus)
|
|
642
|
-
"gpt-6" // Codex (-> gpt-6-sol), else OpenAI API
|
|
643
|
+
"gpt-6" // Codex (-> gpt-6.1-sol), else OpenAI API
|
|
643
644
|
"openai:gpt-6" // OpenAI API only
|
|
644
645
|
"gemini-2.5-flash" // Google API
|
|
645
646
|
"pro" // Antigravity CLI (-> gemini-3.1-pro-preview), else Google API
|
|
@@ -656,7 +657,7 @@ Every entry in `models` takes one of four forms:
|
|
|
656
657
|
"claude:fable" // Claude Agent SDK (Claude Fable 5.1)
|
|
657
658
|
"codex:luna" // Codex (GPT-6 Luna)
|
|
658
659
|
"gemini" // Antigravity CLI (Gemini 3.8 Flash)
|
|
659
|
-
"copilot:gpt-6-sol"
|
|
660
|
+
"copilot:gpt-6.1-sol" // GitHub Copilot SDK
|
|
660
661
|
```
|
|
661
662
|
|
|
662
663
|
**Local agent permissions:** bare names and `auto` reach the local agent providers whenever they are set up. The Antigravity CLI auto-approves every tool request and the Claude Agent SDK runs with `bypassPermissions`, so a read-only prompt is not an enforced boundary there. Name the API provider (`google:pro`, `anthropic:opus`, `openai:gpt-6-astra`) to keep a request on a plain API.
|
|
@@ -705,8 +706,8 @@ Each provider's default model (used for its bare provider name and for `auto`) c
|
|
|
705
706
|
CODEX_DEFAULT_MODEL=gpt-6-astra # CODEX_MODEL is honored as a legacy fallback
|
|
706
707
|
CLAUDE_DEFAULT_MODEL=claude-opus-5-5
|
|
707
708
|
AGY_DEFAULT_MODEL=gemini-3.8-flash # Antigravity CLI (gemini)
|
|
708
|
-
COPILOT_DEFAULT_MODEL=gpt-6-sol
|
|
709
|
-
OPENAI_DEFAULT_MODEL=gpt-6-sol
|
|
709
|
+
COPILOT_DEFAULT_MODEL=gpt-6.1-sol # COPILOT_MODEL is honored as a legacy fallback
|
|
710
|
+
OPENAI_DEFAULT_MODEL=gpt-6.1-sol
|
|
710
711
|
GOOGLE_DEFAULT_MODEL=gemini-3.1-pro-preview
|
|
711
712
|
XAI_DEFAULT_MODEL=grok-4.5
|
|
712
713
|
ANTHROPIC_DEFAULT_MODEL=claude-opus-5-5
|
package/docs/PROVIDERS.md
CHANGED
|
@@ -9,7 +9,8 @@ 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-6-sol` (aliases: `gpt-6`, `gpt-5`, `sol`) - Default
|
|
12
|
+
- `gpt-6.1-sol` (aliases: `gpt-6`, `gpt-6.1`, `gpt-5`, `sol`) - Default OpenAI model (1M context, 128K output); near-Astra coding, computer use, and professional work at a fifth of the Astra price; effort `low`–`max`
|
|
13
|
+
- `gpt-6-sol` - Previous GPT-6 Sol (1M context, 128K output), reachable by versioned name only; effort `none`–`max`
|
|
13
14
|
- `gpt-6-luna` (alias: `luna`) - Most efficient GPT-6 for focused, high-volume tasks (1M context, 128K output; effort `none`–`max`)
|
|
14
15
|
- `gpt-6-astra` (alias: `astra`) - Frontier GPT-6 flagship, 5x the Sol price (1M context, 128K output; effort `low`–`max`)
|
|
15
16
|
- `gpt-5.6-sol` (alias: `gpt-5.6`) - Previous flagship GPT-5.6
|
|
@@ -111,11 +112,11 @@ This guide documents all supported AI providers in the Converse MCP Server and t
|
|
|
111
112
|
- **Supported Models**:
|
|
112
113
|
- `codex` - OpenAI Codex agentic coding assistant (GPT-6 Astra by default)
|
|
113
114
|
- `codex:<model>` - Same, with an explicit backend from the Codex catalog:
|
|
114
|
-
- `gpt-6-sol` (
|
|
115
|
+
- `gpt-6.1-sol` (`sol`, `gpt-6`), `gpt-6-sol`, `gpt-6-luna` (`luna`), `gpt-6-astra` (`astra`)
|
|
115
116
|
- `gpt-5.6-sol` (`gpt-5.6`), `gpt-5.6-terra` (`terra`), `gpt-5.6-luna`, `gpt-5.5`, `gpt-5.3-codex-spark` (`spark`)
|
|
116
117
|
- Names outside this catalog are rejected with suggestions
|
|
117
118
|
- These IDs are also bare names: `gpt-6-astra`, `luna` or `terra` alone go to Codex first and fail over to the OpenAI API (see [Model Routing Logic](#model-routing-logic))
|
|
118
|
-
- `reasoning_effort` is clamped onto what the backend accepts (Sol
|
|
119
|
+
- `reasoning_effort` is clamped onto what the backend accepts (versioned GPT-6 Sol, Luna, and GPT-5.6: `none`–`max`; GPT-6.1 Sol and GPT-6 Astra: `low`–`max`, no `none`)
|
|
119
120
|
- Thread-based sessions with persistent context
|
|
120
121
|
- Direct filesystem access from working directory
|
|
121
122
|
- Typical response time: 6-20 seconds (longer for complex tasks)
|
|
@@ -238,10 +239,10 @@ agy
|
|
|
238
239
|
- **Setup Required**: Authenticate the GitHub CLI and ensure your account has an active Copilot subscription
|
|
239
240
|
- **Availability**: The Copilot SDK (`@github/copilot-sdk`) is installed
|
|
240
241
|
- **Environment Variables**:
|
|
241
|
-
- `COPILOT_DEFAULT_MODEL` - Model used for bare `copilot` and `auto` (default: `gpt-6-sol`). The legacy name `COPILOT_MODEL` is honored when `COPILOT_DEFAULT_MODEL` is unset.
|
|
242
|
-
- **Supported Models** (namespace-only: reach them with `copilot:`, `github-copilot:` or `copilot-sdk:`, e.g. `copilot:gpt-6-sol`; Copilot never serves bare model names):
|
|
243
|
-
- `copilot` - GPT-6 Sol, or `COPILOT_DEFAULT_MODEL`
|
|
244
|
-
- 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`
|
|
242
|
+
- `COPILOT_DEFAULT_MODEL` - Model used for bare `copilot` and `auto` (default: `gpt-6.1-sol`). The legacy name `COPILOT_MODEL` is honored when `COPILOT_DEFAULT_MODEL` is unset.
|
|
243
|
+
- **Supported Models** (namespace-only: reach them with `copilot:`, `github-copilot:` or `copilot-sdk:`, e.g. `copilot:gpt-6.1-sol`; Copilot never serves bare model names):
|
|
244
|
+
- `copilot` - GPT-6.1 Sol, or `COPILOT_DEFAULT_MODEL`
|
|
245
|
+
- OpenAI: `gpt-6.1-sol` (aliases: `gpt-6`, `gpt-6.1`, `gpt-5`, `sol`), `gpt-6-sol`, `gpt-6-luna` (alias: `luna`), `gpt-5.6-sol` (alias: `gpt-5.6`), `gpt-5.6-terra`, `gpt-5.6-luna`
|
|
245
246
|
- Anthropic: `claude-opus-5.5` (aliases: `opus`, `claude`; Copilot Pro+/Max/Business/Enterprise), `claude-fable-5` (alias: `fable`), `claude-sonnet-5.5` (alias: `sonnet`), `claude-sonnet-5`, `claude-opus-5`, `claude-opus-4.8`
|
|
246
247
|
- 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`)
|
|
247
248
|
- **Reasoning**: The GPT-6 and GPT-5.6 tiers accept `reasoning_effort` (clamped onto Copilot's `low`–`xhigh`).
|
|
@@ -283,8 +284,8 @@ Each provider has a `<PROVIDER>_DEFAULT_MODEL` variable that sets the model used
|
|
|
283
284
|
CODEX_DEFAULT_MODEL=gpt-6-astra # CODEX_MODEL is honored as a legacy fallback
|
|
284
285
|
CLAUDE_DEFAULT_MODEL=claude-opus-5-5
|
|
285
286
|
AGY_DEFAULT_MODEL=gemini-3.8-flash # Antigravity CLI (gemini)
|
|
286
|
-
COPILOT_DEFAULT_MODEL=gpt-6-sol
|
|
287
|
-
OPENAI_DEFAULT_MODEL=gpt-6-sol
|
|
287
|
+
COPILOT_DEFAULT_MODEL=gpt-6.1-sol # COPILOT_MODEL is honored as a legacy fallback
|
|
288
|
+
OPENAI_DEFAULT_MODEL=gpt-6.1-sol
|
|
288
289
|
GOOGLE_DEFAULT_MODEL=gemini-3.1-pro-preview
|
|
289
290
|
XAI_DEFAULT_MODEL=grok-4.5
|
|
290
291
|
ANTHROPIC_DEFAULT_MODEL=claude-opus-5-5
|
|
@@ -381,7 +382,7 @@ Routing is derived entirely from each provider's model list (canonical IDs plus
|
|
|
381
382
|
Examples:
|
|
382
383
|
|
|
383
384
|
```text
|
|
384
|
-
"gpt-6" // Codex (gpt-6-sol), else OpenAI API
|
|
385
|
+
"gpt-6" // Codex (gpt-6.1-sol), else OpenAI API
|
|
385
386
|
"openai:gpt-6" // OpenAI API only
|
|
386
387
|
"fable" // Claude Agent SDK (claude-fable-5-1) when set up, otherwise Anthropic API (claude-fable-5)
|
|
387
388
|
"opus" // Claude Agent SDK (claude-opus-5-5), else Anthropic API
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "converse-mcp-server",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.4.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,20 +93,20 @@
|
|
|
93
93
|
".env.example"
|
|
94
94
|
],
|
|
95
95
|
"dependencies": {
|
|
96
|
-
"@anthropic-ai/claude-agent-sdk": "^0.3.
|
|
96
|
+
"@anthropic-ai/claude-agent-sdk": "^0.3.285",
|
|
97
97
|
"@anthropic-ai/sdk": "^0.129.0",
|
|
98
|
-
"@github/copilot-sdk": "^1.0.
|
|
98
|
+
"@github/copilot-sdk": "^1.0.15",
|
|
99
99
|
"@google/genai": "^2.24.0",
|
|
100
100
|
"@lydell/node-pty": "1.2.0-beta.15",
|
|
101
101
|
"@mistralai/mistralai": "^2.7.0",
|
|
102
102
|
"@modelcontextprotocol/sdk": "^1.31.0",
|
|
103
|
-
"@openai/codex-sdk": "^0.
|
|
103
|
+
"@openai/codex-sdk": "^0.159.2",
|
|
104
104
|
"cors": "^2.8.6",
|
|
105
105
|
"dotenv": "^18.0.4",
|
|
106
106
|
"express": "^5.2.1",
|
|
107
107
|
"lru-cache": "^11.5.3",
|
|
108
108
|
"nanoid": "^6.0.1",
|
|
109
|
-
"openai": "^7.
|
|
109
|
+
"openai": "^7.25.0",
|
|
110
110
|
"p-limit": "^7.3.3",
|
|
111
111
|
"vite": "^8.3.1"
|
|
112
112
|
},
|
package/src/providers/codex.js
CHANGED
|
@@ -29,14 +29,14 @@ import {
|
|
|
29
29
|
/**
|
|
30
30
|
* Models Codex can run, keyed by the slug passed to the CLI as --model. The
|
|
31
31
|
* catalog key is the canonical model ID the router resolves to. The reasoning tiers are the ones each model's API accepts, verified
|
|
32
|
-
* against the API's own rejection messages (gpt-6-astra
|
|
33
|
-
* are: 'low', 'medium', 'high', 'xhigh', and 'max'"; the
|
|
34
|
-
*
|
|
35
|
-
* type is the union across models, so the backend is the
|
|
36
|
-
* requests are clamped per model.
|
|
32
|
+
* against the API's own rejection messages (gpt-6-astra and gpt-6.1-sol:
|
|
33
|
+
* "Supported values are: 'low', 'medium', 'high', 'xhigh', and 'max'"; the
|
|
34
|
+
* GPT-6 and GPT-5.6 Sol/Luna tiers accept 'none' as well). The SDK's
|
|
35
|
+
* ModelReasoningEffort type is the union across models, so the backend is the
|
|
36
|
+
* authority and requests are clamped per model.
|
|
37
37
|
*
|
|
38
38
|
* Bare tier names (sol, luna) and the bare generation (gpt-6) point at the
|
|
39
|
-
* current
|
|
39
|
+
* current release of each tier; older releases stay reachable by full slug.
|
|
40
40
|
*
|
|
41
41
|
* Codex also exposes 'ultra' above 'max', but that tier turns on automatic
|
|
42
42
|
* sub-agent delegation — a change in how the run executes, not just how deep
|
|
@@ -44,6 +44,7 @@ import {
|
|
|
44
44
|
* and nothing at the tool level can select it.
|
|
45
45
|
*/
|
|
46
46
|
const ALL_EFFORTS = ['none', 'low', 'medium', 'high', 'xhigh', 'max'];
|
|
47
|
+
const NO_NONE_EFFORTS = ['low', 'medium', 'high', 'xhigh', 'max'];
|
|
47
48
|
|
|
48
49
|
function codexModel(slug, friendlyName, { aliases, contextWindow = 272000, supportedEfforts = ALL_EFFORTS }) {
|
|
49
50
|
return {
|
|
@@ -62,15 +63,19 @@ function codexModel(slug, friendlyName, { aliases, contextWindow = 272000, suppo
|
|
|
62
63
|
}
|
|
63
64
|
|
|
64
65
|
const SUPPORTED_MODELS = {
|
|
66
|
+
'gpt-6.1-sol': codexModel('gpt-6.1-sol', 'GPT-6.1 Sol', {
|
|
67
|
+
aliases: ['sol', 'gpt-6', 'gpt6', 'gpt-6.1', 'gpt6.1', 'gpt6.1-sol', 'gpt-6-codex'],
|
|
68
|
+
supportedEfforts: NO_NONE_EFFORTS,
|
|
69
|
+
}),
|
|
65
70
|
'gpt-6-sol': codexModel('gpt-6-sol', 'GPT-6 Sol', {
|
|
66
|
-
aliases: ['
|
|
71
|
+
aliases: ['gpt6-sol'],
|
|
67
72
|
}),
|
|
68
73
|
'gpt-6-luna': codexModel('gpt-6-luna', 'GPT-6 Luna', {
|
|
69
74
|
aliases: ['luna', 'gpt6-luna'],
|
|
70
75
|
}),
|
|
71
76
|
'gpt-6-astra': codexModel('gpt-6-astra', 'GPT-6 Astra', {
|
|
72
77
|
aliases: ['astra', 'gpt6-astra'],
|
|
73
|
-
supportedEfforts:
|
|
78
|
+
supportedEfforts: NO_NONE_EFFORTS,
|
|
74
79
|
}),
|
|
75
80
|
'gpt-5.6-sol': codexModel('gpt-5.6-sol', 'GPT-5.6 Sol', {
|
|
76
81
|
aliases: ['gpt-5.6', 'gpt5.6', 'gpt5.6-sol', 'gpt-5.6-codex'],
|
package/src/providers/copilot.js
CHANGED
|
@@ -21,16 +21,30 @@ import { clampReasoningEffort } from '../utils/reasoningEffort.js';
|
|
|
21
21
|
import { findCatalogEntry, findCatalogId } from '../utils/modelCatalog.js';
|
|
22
22
|
import { isPackageResolvable } from '../utils/localProviderAuth.js';
|
|
23
23
|
|
|
24
|
-
const DEFAULT_MODEL = 'gpt-6-sol';
|
|
24
|
+
const DEFAULT_MODEL = 'gpt-6.1-sol';
|
|
25
25
|
|
|
26
26
|
// Keyed by the SDK model ID, which is also the canonical ID the router
|
|
27
27
|
// resolves to. Every name here is reached only through the `copilot:`
|
|
28
28
|
// namespace — Copilot never serves bare model names.
|
|
29
29
|
const SUPPORTED_MODELS = {
|
|
30
30
|
// OpenAI models
|
|
31
|
-
// `gpt-6` / `gpt-5.6` point at that generation's Sol, matching
|
|
32
|
-
// bare-alias behavior; `sol`/`luna` and the legacy `gpt-5`
|
|
33
|
-
// the current
|
|
31
|
+
// `gpt-6` / `gpt-5.6` point at that generation's latest Sol, matching
|
|
32
|
+
// Copilot's own bare-alias behavior; `sol`/`luna` and the legacy `gpt-5`
|
|
33
|
+
// shortcut follow the current release of each tier. `codex` and `gpt` point
|
|
34
|
+
// at the latest GPT tier.
|
|
35
|
+
'gpt-6.1-sol': {
|
|
36
|
+
modelName: 'gpt-6.1-sol',
|
|
37
|
+
friendlyName: 'GPT-6.1 Sol (via Copilot)',
|
|
38
|
+
contextWindow: 1050000,
|
|
39
|
+
maxOutputTokens: 32768,
|
|
40
|
+
supportsStreaming: true,
|
|
41
|
+
supportsImages: false,
|
|
42
|
+
supportsWebSearch: false,
|
|
43
|
+
supportsReasoningEffort: true,
|
|
44
|
+
timeout: 1800000,
|
|
45
|
+
description: 'OpenAI GPT-6.1 Sol via Copilot subscription',
|
|
46
|
+
aliases: ['gpt-6', 'gpt-6.1', 'gpt-5', 'gpt', 'codex', 'sol'],
|
|
47
|
+
},
|
|
34
48
|
'gpt-6-sol': {
|
|
35
49
|
modelName: 'gpt-6-sol',
|
|
36
50
|
friendlyName: 'GPT-6 Sol (via Copilot)',
|
|
@@ -42,7 +56,7 @@ const SUPPORTED_MODELS = {
|
|
|
42
56
|
supportsReasoningEffort: true,
|
|
43
57
|
timeout: 1800000,
|
|
44
58
|
description: 'OpenAI GPT-6 Sol via Copilot subscription',
|
|
45
|
-
aliases: [
|
|
59
|
+
aliases: [],
|
|
46
60
|
},
|
|
47
61
|
'gpt-6-luna': {
|
|
48
62
|
modelName: 'gpt-6-luna',
|
package/src/providers/openai.js
CHANGED
|
@@ -11,14 +11,14 @@ import { clampReasoningEffort } from '../utils/reasoningEffort.js';
|
|
|
11
11
|
|
|
12
12
|
// Values each family accepts for reasoning effort, per the model pages at
|
|
13
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
|
|
15
|
-
// GPT-5.4 tier stops at 'xhigh'; the original GPT-5 minis kept
|
|
16
|
-
// never gained 'xhigh'; the o-series predates both ends of the
|
|
17
|
-
// GPT-5.4 Pro starts at 'medium'. Models without a list are passed the
|
|
14
|
+
// GPT-5.6 family take the whole ladder; GPT-6 Astra and GPT-6.1 Sol have no
|
|
15
|
+
// 'none'; the GPT-5.4 tier stops at 'xhigh'; the original GPT-5 minis kept
|
|
16
|
+
// 'minimal' but never gained 'xhigh'; the o-series predates both ends of the
|
|
17
|
+
// ladder; GPT-5.4 Pro starts at 'medium'. Models without a list are passed the
|
|
18
18
|
// requested value unchanged, except uncatalogued GPT-5 Pro snapshots, which
|
|
19
19
|
// are only known to accept 'high'.
|
|
20
20
|
const FULL_EFFORT_TIERS = ['none', 'low', 'medium', 'high', 'xhigh', 'max'];
|
|
21
|
-
const
|
|
21
|
+
const NO_NONE_EFFORT_TIERS = ['low', 'medium', 'high', 'xhigh', 'max'];
|
|
22
22
|
const GPT_54_EFFORT_TIERS = ['none', 'low', 'medium', 'high', 'xhigh'];
|
|
23
23
|
const GPT_54_PRO_EFFORT_TIERS = ['medium', 'high', 'xhigh'];
|
|
24
24
|
const GPT_5_EFFORT_TIERS = ['minimal', 'low', 'medium', 'high'];
|
|
@@ -27,35 +27,53 @@ const PRO_PASSTHROUGH_EFFORT_TIERS = ['high'];
|
|
|
27
27
|
|
|
28
28
|
// Define supported models with their capabilities.
|
|
29
29
|
// Bare tier names (sol, luna) and the bare generation (gpt-6, and the legacy
|
|
30
|
-
// gpt-5 shortcut) follow the current
|
|
31
|
-
// their versioned names.
|
|
30
|
+
// gpt-5 shortcut) follow the current release of each tier; older tiers stay
|
|
31
|
+
// reachable by their versioned names.
|
|
32
32
|
const SUPPORTED_MODELS = {
|
|
33
|
-
'gpt-6-sol': {
|
|
34
|
-
modelName: 'gpt-6-sol',
|
|
35
|
-
friendlyName: 'OpenAI (GPT-6 Sol)',
|
|
33
|
+
'gpt-6.1-sol': {
|
|
34
|
+
modelName: 'gpt-6.1-sol',
|
|
35
|
+
friendlyName: 'OpenAI (GPT-6.1 Sol)',
|
|
36
36
|
contextWindow: 1050000,
|
|
37
37
|
maxOutputTokens: 128000,
|
|
38
38
|
supportsStreaming: true,
|
|
39
39
|
supportsImages: true,
|
|
40
40
|
supportsWebSearch: true,
|
|
41
41
|
supportsResponsesAPI: true,
|
|
42
|
-
supportedEfforts:
|
|
42
|
+
supportedEfforts: NO_NONE_EFFORT_TIERS,
|
|
43
43
|
timeout: 10800000, // 3 hours
|
|
44
44
|
description:
|
|
45
|
-
'Default GPT-6 model (1M context, 128K output) -
|
|
45
|
+
'Default GPT-6 model (1M context, 128K output) - Near-Astra coding, computer use and professional work at a fifth of the Astra price',
|
|
46
46
|
aliases: [
|
|
47
47
|
'gpt-6',
|
|
48
48
|
'gpt6',
|
|
49
49
|
'gpt 6',
|
|
50
|
+
'gpt-6.1',
|
|
51
|
+
'gpt6.1',
|
|
52
|
+
'gpt 6.1',
|
|
50
53
|
'gpt-5',
|
|
51
54
|
'gpt5',
|
|
52
55
|
'gpt 5',
|
|
53
56
|
'sol',
|
|
54
|
-
'gpt6-sol',
|
|
55
|
-
'gpt-
|
|
56
|
-
'gpt 6 sol',
|
|
57
|
+
'gpt6.1-sol',
|
|
58
|
+
'gpt-6.1sol',
|
|
59
|
+
'gpt 6.1 sol',
|
|
57
60
|
],
|
|
58
61
|
},
|
|
62
|
+
'gpt-6-sol': {
|
|
63
|
+
modelName: 'gpt-6-sol',
|
|
64
|
+
friendlyName: 'OpenAI (GPT-6 Sol)',
|
|
65
|
+
contextWindow: 1050000,
|
|
66
|
+
maxOutputTokens: 128000,
|
|
67
|
+
supportsStreaming: true,
|
|
68
|
+
supportsImages: true,
|
|
69
|
+
supportsWebSearch: true,
|
|
70
|
+
supportsResponsesAPI: true,
|
|
71
|
+
supportedEfforts: FULL_EFFORT_TIERS,
|
|
72
|
+
timeout: 10800000, // 3 hours
|
|
73
|
+
description:
|
|
74
|
+
'Previous GPT-6 Sol (1M context, 128K output) - Complex coding and agentic workflows; the only Sol that accepts none effort',
|
|
75
|
+
aliases: ['gpt6-sol', 'gpt-6sol', 'gpt 6 sol'],
|
|
76
|
+
},
|
|
59
77
|
'gpt-6-luna': {
|
|
60
78
|
modelName: 'gpt-6-luna',
|
|
61
79
|
friendlyName: 'OpenAI (GPT-6 Luna)',
|
|
@@ -80,7 +98,7 @@ const SUPPORTED_MODELS = {
|
|
|
80
98
|
supportsImages: true,
|
|
81
99
|
supportsWebSearch: true,
|
|
82
100
|
supportsResponsesAPI: true,
|
|
83
|
-
supportedEfforts:
|
|
101
|
+
supportedEfforts: NO_NONE_EFFORT_TIERS,
|
|
84
102
|
timeout: 10800000, // 3 hours
|
|
85
103
|
description:
|
|
86
104
|
'Frontier GPT-6 flagship (1M context, 128K output) - Maximum intelligence for the hardest end-to-end work (EXPENSIVE: 5x Sol)',
|
|
@@ -410,7 +428,7 @@ function acceptsReasoningEffort(resolvedModel, modelConfig) {
|
|
|
410
428
|
/**
|
|
411
429
|
* Resolve the reasoning effort actually sent to the API. Catalogued models
|
|
412
430
|
* clamp onto their declared tiers. Pass-through IDs are matched by family
|
|
413
|
-
* where the tiers are known (GPT-5 Pro snapshots, GPT-6
|
|
431
|
+
* where the tiers are known (GPT-5 Pro snapshots, GPT-6.x and GPT-5.6
|
|
414
432
|
* snapshots) and otherwise keep the requested value.
|
|
415
433
|
*/
|
|
416
434
|
function resolveReasoningEffort(resolvedModel, modelConfig, reasoningEffort) {
|
|
@@ -420,8 +438,11 @@ function resolveReasoningEffort(resolvedModel, modelConfig, reasoningEffort) {
|
|
|
420
438
|
if (resolvedModel.endsWith('-pro') && resolvedModel.startsWith('gpt-5')) {
|
|
421
439
|
return clampReasoningEffort(reasoningEffort, PRO_PASSTHROUGH_EFFORT_TIERS);
|
|
422
440
|
}
|
|
423
|
-
if (
|
|
424
|
-
|
|
441
|
+
if (
|
|
442
|
+
resolvedModel.startsWith('gpt-6-astra') ||
|
|
443
|
+
resolvedModel.startsWith('gpt-6.1-sol')
|
|
444
|
+
) {
|
|
445
|
+
return clampReasoningEffort(reasoningEffort, NO_NONE_EFFORT_TIERS);
|
|
425
446
|
}
|
|
426
447
|
if (
|
|
427
448
|
resolvedModel.startsWith('gpt-6-sol') ||
|
|
@@ -547,7 +568,7 @@ function convertMessages(messages, useResponsesAPI = false) {
|
|
|
547
568
|
/**
|
|
548
569
|
* Main OpenAI provider implementation
|
|
549
570
|
*/
|
|
550
|
-
const DEFAULT_MODEL = 'gpt-6-sol';
|
|
571
|
+
const DEFAULT_MODEL = 'gpt-6.1-sol';
|
|
551
572
|
|
|
552
573
|
export const openaiProvider = {
|
|
553
574
|
defaultModel: DEFAULT_MODEL,
|