converse-mcp-server 2.29.1 → 3.0.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.
Files changed (42) hide show
  1. package/.env.example +6 -3
  2. package/README.md +96 -94
  3. package/docs/API.md +703 -1562
  4. package/docs/ARCHITECTURE.md +13 -11
  5. package/docs/EXAMPLES.md +241 -667
  6. package/docs/PROVIDERS.md +104 -79
  7. package/package.json +2 -2
  8. package/src/async/asyncJobStore.js +2 -2
  9. package/src/async/jobRunner.js +6 -1
  10. package/src/async/providerStreamNormalizer.js +59 -1
  11. package/src/config.js +4 -3
  12. package/src/prompts/helpPrompt.js +43 -61
  13. package/src/providers/anthropic.js +0 -31
  14. package/src/providers/claude.js +0 -14
  15. package/src/providers/codex.js +15 -21
  16. package/src/providers/copilot.js +36 -202
  17. package/src/providers/deepseek.js +73 -53
  18. package/src/providers/gemini-cli.js +0 -3
  19. package/src/providers/google.js +10 -27
  20. package/src/providers/interface.js +0 -3
  21. package/src/providers/mistral.js +169 -63
  22. package/src/providers/openai-compatible.js +113 -28
  23. package/src/providers/openai.js +14 -66
  24. package/src/providers/openrouter-discovery.js +308 -0
  25. package/src/providers/openrouter.js +452 -282
  26. package/src/providers/xai.js +298 -280
  27. package/src/services/summarizationService.js +4 -14
  28. package/src/systemPrompts.js +19 -2
  29. package/src/tools/cancelJob.js +7 -1
  30. package/src/tools/chat.js +957 -995
  31. package/src/tools/checkStatus.js +1 -0
  32. package/src/tools/index.js +2 -6
  33. package/src/tools/modes/parallel.js +488 -0
  34. package/src/tools/modes/roundtable.js +495 -0
  35. package/src/tools/modes/streamShared.js +31 -0
  36. package/src/utils/contextProcessor.js +1 -38
  37. package/src/utils/conversationExporter.js +6 -26
  38. package/src/utils/formatStatus.js +46 -19
  39. package/src/utils/modelRouting.js +207 -4
  40. package/src/providers/openrouter-endpoints-client.js +0 -220
  41. package/src/tools/consensus.js +0 -1813
  42. package/src/tools/conversation.js +0 -1233
package/.env.example CHANGED
@@ -43,10 +43,13 @@ MISTRAL_API_KEY=your_mistral_api_key_here
43
43
  DEEPSEEK_API_KEY=your_deepseek_api_key_here
44
44
 
45
45
  # Get your OpenRouter API key from: https://openrouter.ai/keys
46
+ # Any provider/model slug works directly (e.g. z-ai/glm-5.2, anthropic/claude-sonnet-5);
47
+ # append :online to a slug to opt into web search (adds a real per-request cost).
46
48
  OPENROUTER_API_KEY=your_openrouter_api_key_here
47
49
 
48
- # OpenRouter requires a referer for compliance (your app URL or GitHub repo)
49
- OPENROUTER_REFERER=https://github.com/FallDownTheSystem/converse
50
+ # Optional: referer and title for OpenRouter ranking credit (both optional; omitting is valid)
51
+ # OPENROUTER_REFERER=https://github.com/FallDownTheSystem/converse
52
+ # OPENROUTER_TITLE=Converse
50
53
 
51
54
  # ============================================
52
55
  # Codex Configuration (Optional)
@@ -86,6 +89,6 @@ OPENROUTER_REFERER=https://github.com/FallDownTheSystem/converse
86
89
  # ============================================
87
90
 
88
91
  # Disable async execution tools (check_status, cancel_job) and async parameter
89
- # When true, removes async capabilities from chat/consensus tools
92
+ # When true, removes async capabilities from the chat tool
90
93
  # DISABLE_ASYNC_TOOLS=false
91
94
 
package/README.md CHANGED
@@ -44,7 +44,7 @@ claude mcp add converse \
44
44
  -e DEEPSEEK_API_KEY=your_key_here \
45
45
  -e OPENROUTER_API_KEY=your_key_here \
46
46
  -e ENABLE_RESPONSE_SUMMARIZATION=true \
47
- -e SUMMARIZATION_MODEL=gpt-5 \
47
+ -e SUMMARIZATION_MODEL=gpt-5-nano \
48
48
  -s user \
49
49
  npx converse-mcp-server
50
50
  ```
@@ -68,7 +68,7 @@ Add this configuration to your Claude Desktop settings:
68
68
  "DEEPSEEK_API_KEY": "your_key_here",
69
69
  "OPENROUTER_API_KEY": "your_key_here",
70
70
  "ENABLE_RESPONSE_SUMMARIZATION": "true",
71
- "SUMMARIZATION_MODEL": "gpt-5"
71
+ "SUMMARIZATION_MODEL": "gpt-5-nano"
72
72
  }
73
73
  }
74
74
  }
@@ -83,7 +83,7 @@ Add this configuration to your Claude Desktop settings:
83
83
  "args": ["/c", "npx", "converse-mcp-server"],
84
84
  "env": {
85
85
  "ENABLE_RESPONSE_SUMMARIZATION": "true",
86
- "SUMMARIZATION_MODEL": "gpt-5"
86
+ "SUMMARIZATION_MODEL": "gpt-5-nano"
87
87
  // ... add your API keys here
88
88
  }
89
89
  }
@@ -94,7 +94,7 @@ Add this configuration to your Claude Desktop settings:
94
94
  Once installed, you can:
95
95
 
96
96
  - **Chat with a specific model**: Ask Claude to use the chat tool with your preferred model
97
- - **Get consensus**: Ask Claude to use the consensus tool when you need multiple perspectives
97
+ - **Get consensus**: Ask Claude to use the chat tool with `mode: "consensus"` when you need multiple perspectives
98
98
  - **Run tasks in background**: Use `async: true` for long-running operations that you can check later
99
99
  - **Monitor progress**: Use the check_status tool to monitor async operations with AI-generated summaries
100
100
  - **Cancel jobs**: Use the cancel_job tool to stop running operations
@@ -105,70 +105,52 @@ Once installed, you can:
105
105
 
106
106
  ### 1. Chat Tool
107
107
 
108
- Talk to any AI model with support for files, images, and conversation history. The tool automatically routes your request to the right provider based on the model name. When AI summarization is enabled, generates smart titles and summaries for better context understanding.
108
+ One tool, three modes. Pass a `models` array and choose a `mode`. Supports files, images, conversation history, and background execution. The tool routes each model to the right provider by name; `"auto"` picks the first available provider. When AI summarization is enabled, it generates smart titles and summaries.
109
109
 
110
110
  ```javascript
111
- // Synchronous execution (default)
111
+ // mode "chat" (default) — 1..N models answer independently, in parallel
112
112
  {
113
113
  "prompt": "How should I structure the authentication module for this Express.js API?",
114
- "model": "gemini-2.5-flash", // Routes to Google
114
+ "models": ["gemini-2.5-flash"], // Routes to Google
115
115
  "files": ["/path/to/src/auth.js", "/path/to/config.json"],
116
116
  "images": ["/path/to/architecture.png"],
117
- "temperature": 0.5,
118
- "reasoning_effort": "medium",
119
- "use_websearch": false
117
+ "reasoning_effort": "medium"
120
118
  }
121
119
 
122
- // Asynchronous execution (for long-running tasks)
120
+ // mode "consensus" ≥2 models answer, then refine after seeing each other
123
121
  {
124
- "prompt": "Analyze this large codebase and provide optimization recommendations",
125
- "model": "gpt-5",
126
- "files": ["/path/to/large-project"],
127
- "async": true, // Enables background processing
128
- "continuation_id": "my-analysis-task" // Optional: custom ID for tracking
122
+ "prompt": "Should we use microservices or a monolith for our e-commerce platform?",
123
+ "models": ["gpt-5.6", "gemini-2.5-flash", "grok-4.5"],
124
+ "mode": "consensus",
125
+ "files": ["/path/to/requirements.md"]
129
126
  }
130
127
 
131
- // Codex - Agentic coding assistant with local file access
128
+ // mode "roundtable" models speak SEQUENTIALLY in the given order, each seeing
129
+ // the running transcript. One call = one lap; pass continuation_id for more laps.
132
130
  {
133
- "prompt": "Analyze this codebase and suggest improvements",
134
- "model": "codex",
135
- "files": ["/path/to/your/project"],
136
- "async": true // Recommended for Codex (responses take 6-20+ seconds)
131
+ "prompt": "Critique this caching strategy and propose improvements.",
132
+ "models": ["codex", "gemini", "claude"], // ORDER MATTERS
133
+ "mode": "roundtable"
134
+ }
135
+
136
+ // Asynchronous execution (for long-running tasks) — any mode
137
+ {
138
+ "prompt": "Analyze this large codebase and provide optimization recommendations",
139
+ "models": ["gpt-5.6"],
140
+ "files": ["/path/to/large-project"],
141
+ "async": true, // Enables background processing
142
+ "continuation_id": "my-analysis-task" // Optional: custom ID for tracking
137
143
  }
138
144
  ```
139
145
 
140
146
  **Codex Notes:**
141
147
 
142
- - Uses thread-based sessions (context persists with `continuation_id`)
148
+ - Uses thread-based sessions in `chat` mode (context persists with `continuation_id`)
143
149
  - Responses typically take 6-20 seconds (complex tasks may take minutes)
144
150
  - Accesses files directly from your working directory
145
151
  - Configure sandbox mode via `CODEX_SANDBOX_MODE` environment variable
146
152
 
147
- ### 2. Consensus Tool
148
-
149
- Get multiple AI models to analyze the same question simultaneously. Each model can see and respond to the others' answers, creating a rich discussion.
150
-
151
- ```javascript
152
- // Synchronous consensus (default)
153
- {
154
- "prompt": "Should we use microservices or monolith architecture for our e-commerce platform?",
155
- "models": ["gpt-5", "gemini-2.5-flash", "grok-4"],
156
- "files": ["/path/to/requirements.md"],
157
- "enable_cross_feedback": true,
158
- "temperature": 0.2
159
- }
160
-
161
- // Asynchronous consensus (for complex analysis)
162
- {
163
- "prompt": "Review our system architecture and provide comprehensive recommendations",
164
- "models": ["gpt-5", "gemini-2.5-pro", "claude-sonnet-4-6"],
165
- "files": ["/path/to/architecture-docs"],
166
- "async": true, // Run in background
167
- "enable_cross_feedback": true
168
- }
169
- ```
170
-
171
- ### 3. Check Status Tool
153
+ ### 2. Check Status Tool
172
154
 
173
155
  Monitor the progress and retrieve results from asynchronous operations. When AI summarization is enabled, provides intelligent summaries of ongoing and completed tasks.
174
156
 
@@ -189,7 +171,7 @@ Monitor the progress and retrieve results from asynchronous operations. When AI
189
171
  }
190
172
  ```
191
173
 
192
- ### 4. Cancel Job Tool
174
+ ### 3. Cancel Job Tool
193
175
 
194
176
  Cancel running asynchronous operations when needed.
195
177
 
@@ -229,19 +211,16 @@ SUMMARIZATION_MODEL=gpt-5-nano # Default: gpt-5-nano
229
211
 
230
212
  ### OpenAI Models
231
213
 
232
- - **gpt-5**: Latest flagship model (400K context, 128K output) - Superior reasoning, code generation, and analysis
233
- - **gpt-5-mini**: Faster, cost-efficient GPT-5 (400K context, 128K output) - Well-defined tasks, precise prompts
234
- - **gpt-5-nano**: Fastest, most cost-efficient GPT-5 (400K context, 128K output) - Summarization, classification
235
- - **gpt-5-pro**: Most advanced reasoning model (400K context, 272K output) - Hardest problems, extended compute time (EXPENSIVE)
236
- - **o3**: Strong reasoning (200K context)
237
- - **o3-mini**: Fast O3 variant (200K context)
238
- - **o3-pro**: Professional-grade reasoning (200K context) - EXTREMELY EXPENSIVE
239
- - **o3-deep-research**: Deep research model (200K context) - 30-90 min runtime
240
- - **o4-mini**: Latest reasoning model (200K context)
241
- - **o4-mini-deep-research**: Fast deep research model (200K context) - 15-60 min runtime
242
- - **gpt-4.1**: Advanced reasoning (1M context)
243
- - **gpt-4o**: Multimodal flagship (128K context)
244
- - **gpt-4o-mini**: Fast multimodal (128K context)
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
217
+ - **gpt-5.4**: Flagship-class reasoning (1M context, 128K output)
218
+ - **gpt-5.4-pro** (alias: `gpt-5-pro`): Maximum-performance reasoning (1M context, 272K output) - Hardest problems, extended compute time (EXPENSIVE)
219
+ - **gpt-5-mini**, **gpt-5-nano**: Faster, cost-efficient GPT-5 tiers (400K context, 128K output)
220
+ - **gpt-5.4-mini**, **gpt-5.4-nano**: Fast, efficient GPT-5.4 tiers (400K context, 128K output)
221
+ - **o3**, **o3-pro**, **o4-mini**: Advanced reasoning models (200K context)
222
+ - **gpt-4.1**: Large context (1M tokens, 32K output)
223
+ - **o3-deep-research** (30-90 min runtime), **o4-mini-deep-research** (15-60 min runtime): Deep research models (200K context)
245
224
 
246
225
  ### Google/Gemini Models
247
226
 
@@ -253,18 +232,17 @@ SUMMARIZATION_MODEL=gpt-5-nano # Default: gpt-5-nano
253
232
 
254
233
  **Supported Models**:
255
234
 
256
- - **gemini-3-pro-preview** (aliases: `pro`, `gemini`): Enhanced reasoning with thinking levels (1M context, 64K output)
257
- - **gemini-2.5-flash** (alias: `flash`): Ultra-fast (1M context, 65K output)
235
+ - **gemini-3.1-pro-preview** (aliases: `pro`, `gemini-pro`): Most advanced reasoning with expanded thinking levels (1M context, 64K output)
236
+ - **gemini-3.5-flash** (aliases: `gemini-3.5`, `flash-3.5`): Frontier-level agentic and coding performance at Flash speed (1M context, 65K output)
258
237
  - **gemini-2.5-pro** (alias: `pro 2.5`): Deep reasoning with thinking budget (1M context, 65K output)
259
- - **gemini-2.0-flash**: Latest with experimental thinking (1M context, 65K output)
260
- - **gemini-2.0-flash-lite**: Lightweight fast model, text-only (1M context, 65K output)
238
+ - **gemini-2.5-flash** (alias: `flash`): Ultra-fast (1M context, 65K output)
239
+ - **gemini-2.5-flash-lite** (alias: `flash-lite`): Lightweight fast model (1M context, 65K output)
261
240
 
262
- **Note**: Default aliases (`gemini`, `pro`) now point to Gemini 3.0 Pro. Use `gemini-2.5-pro` explicitly if you need version 2.5.
241
+ **Note**: The bare aliases `pro` and `gemini-pro` route to Gemini 3.1 Pro through the Google API. The short name `gemini` (and `gemini:pro`/`gemini:flash`) routes to the Antigravity CLI provider instead — see below.
263
242
 
264
243
  ### X.AI/Grok Models
265
244
 
266
- - **grok-4-0709** (aliases: `grok`, `grok-4`): Latest advanced model (256K context)
267
- - **grok-code-fast-1**: Speedy and economical reasoning model that excels at agentic coding (256K context)
245
+ - **grok-4.5** (default; aliases: `grok`, `grok-4.5-latest`, `grok-build-latest`): Flagship model with image input, reasoning content, and native web/X search (500K context). Reasoning maps to `low`/`medium`/`high` and cannot be disabled; web search is automatic. Older Grok IDs still pass through as explicit model strings.
268
246
 
269
247
  ### Anthropic Models
270
248
 
@@ -277,20 +255,28 @@ SUMMARIZATION_MODEL=gpt-5-nano # Default: gpt-5-nano
277
255
 
278
256
  ### Mistral Models
279
257
 
280
- - **magistral-medium**: Frontier-class reasoning model (40K context)
281
- - **magistral-small**: Small reasoning model (40K context)
282
- - **mistral-medium-3**: Frontier-class multimodal model (128K context)
258
+ - **mistral-medium-3-5** (default; aliases: `mistral`, `mistral-medium`): Frontier-class multimodal model with adjustable reasoning (256K context)
259
+ - **mistral-small-2603** (alias: `mistral-small`): Hybrid multimodal model unifying instruct, reasoning, and coding (256K context)
260
+ - **mistral-large-2512** (alias: `mistral-large`): Open-weight MoE flagship, image-capable, no adjustable reasoning (256K context)
261
+
262
+ Reasoning maps to `high` (enabled) or `none` (disabled) on Medium 3.5 and Small; Large has no adjustable reasoning.
283
263
 
284
264
  ### DeepSeek Models
285
265
 
286
- - **deepseek-chat**: Strong MoE model with 671B/37B parameters (64K context)
287
- - **deepseek-reasoner**: Advanced reasoning model with CoT (64K context)
266
+ - **deepseek-v4-pro** (default; aliases: `deepseek`, `deepseek-pro`): Flagship MoE model with thinking mode (1M context, 384K max output, text-only)
267
+ - **deepseek-v4-flash** (alias: `deepseek-flash`): Faster, lower-cost V4 tier with thinking mode (1M context, 384K max output, text-only)
268
+
269
+ Thinking mode maps `reasoning_effort` to `none` (off), `high` (enabled levels), or `max`.
288
270
 
289
271
  ### OpenRouter Models
290
272
 
291
- - **qwen3-235b-thinking**: Qwen3 with enhanced reasoning (32K context)
292
- - **qwen3-coder**: Specialized for programming tasks (32K context)
293
- - **kimi-k2**: Moonshot AI Kimi K2 with extended context (200K context)
273
+ - **z-ai/glm-5.2** (default; aliases: `glm`, `glm-5.2`): Large-scale reasoning model, text-only (1M context)
274
+ - **deepseek/deepseek-v4-pro**, **deepseek/deepseek-v4-flash**: DeepSeek V4 reasoning tiers, text-only (1M context)
275
+ - **qwen/qwen3.7-max**, **qwen/qwen3.7-plus**: Flagship Qwen tiers (1M context; `plus` is image-capable)
276
+ - **moonshotai/kimi-k2.7-code**, **moonshotai/kimi-k2.6**: Image-capable Moonshot models (256K context; `k2.7-code` always reasons)
277
+ - **openrouter/auto**: Auto-selects the best model for your prompt
278
+
279
+ Any other model works via its full `provider/model` slug or the `openrouter:` namespace — no extra configuration. Append `:online` to a slug to opt into web search (adds a real per-request cost).
294
280
 
295
281
  ### Codex Models
296
282
 
@@ -309,6 +295,15 @@ SUMMARIZATION_MODEL=gpt-5-nano # Default: gpt-5-nano
309
295
  - Direct filesystem access from working directory
310
296
  - Unknown `claude:`-prefixed names pass through to the SDK (e.g. `claude:claude-sonnet-4-6`)
311
297
 
298
+ ### GitHub Copilot SDK Models
299
+
300
+ 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:
301
+
302
+ - **OpenAI**: `gpt-5.6-sol` (aliases: `gpt-5.6`, `gpt-5`), `gpt-5.6-terra`, `gpt-5.6-luna` (all support `reasoning_effort`)
303
+ - **Anthropic**: `claude-fable-5` (alias: `fable`), `claude-sonnet-5` (alias: `sonnet`), `claude-opus-4.8` (aliases: `opus`, `claude`)
304
+ - **Google**: `gemini-3.1-pro-preview` (aliases: `gemini`, `gemini-3.1-pro`), `gemini-3.5-flash` (alias: `gemini-flash`)
305
+ - Any other `copilot:<id>` is forwarded to the Copilot backend verbatim
306
+
312
307
  ## 📚 Help & Documentation
313
308
 
314
309
  ### Built-in Help
@@ -352,10 +347,9 @@ LOG_LEVEL=info
352
347
  ENABLE_RESPONSE_SUMMARIZATION=true # Enable AI-generated titles and summaries
353
348
  SUMMARIZATION_MODEL=gpt-5-nano # Model to use for summarization (default: gpt-5-nano)
354
349
 
355
- # Optional: OpenRouter configuration
350
+ # Optional: OpenRouter attribution (for ranking credit; both optional)
356
351
  OPENROUTER_REFERER=https://github.com/FallDownTheSystem/converse
357
352
  OPENROUTER_TITLE=Converse
358
- OPENROUTER_DYNAMIC_MODELS=true
359
353
 
360
354
  # Optional: Codex configuration
361
355
  CODEX_API_KEY=your_codex_api_key_here # Optional if ChatGPT login available
@@ -399,27 +393,30 @@ Use `"auto"` for automatic model selection, or specify exact models:
399
393
 
400
394
  // Specific models
401
395
  "gemini-2.5-flash";
402
- "gpt-5";
403
- "grok-4-0709";
396
+ "gpt-5.6";
397
+ "grok-4.5";
398
+ "z-ai/glm-5.2"; // -> OpenRouter (full slug)
399
+ "z-ai/glm-5.2:online"; // -> OpenRouter with web search opt-in
404
400
 
405
401
  // Using aliases
406
402
  "flash"; // -> gemini-2.5-flash
407
- "pro"; // -> gemini-2.5-pro
408
- "grok"; // -> grok-4-0709
409
- "grok-4"; // -> grok-4-0709
403
+ "pro"; // -> gemini-3.1-pro-preview
404
+ "grok"; // -> grok-4.5
405
+ "deepseek"; // -> deepseek-v4-pro
406
+ "mistral"; // -> mistral-medium-3-5
410
407
  "fable"; // -> claude-fable-5 (Anthropic API)
411
408
  "opus"; // -> claude-opus-4-8 (Anthropic API)
412
409
 
413
410
  // SDK providers (subscription-based, no API key)
414
411
  "claude"; // -> Claude Agent SDK (Claude Fable 5)
415
412
  "claude:opus"; // -> Claude Agent SDK (Claude Opus 4.8)
416
- "copilot:codex"; // -> GitHub Copilot SDK (gpt-5.3-codex)
413
+ "copilot:gpt-5.6-terra"; // -> GitHub Copilot SDK
417
414
  ```
418
415
 
419
416
  **Auto Model Behavior:**
420
417
 
421
- - **Chat Tool**: Selects the first available provider and uses its default model
422
- - **Consensus Tool**: When using `["auto"]`, automatically expands to the first 3 available providers
418
+ - **chat mode**: `["auto"]` selects the first available provider and uses its default model
419
+ - **consensus mode**: `["auto"]` automatically expands to the first 3 available providers
423
420
 
424
421
  Provider priority order (subscription-based SDK providers first, then API-key providers):
425
422
 
@@ -427,13 +424,13 @@ Provider priority order (subscription-based SDK providers first, then API-key pr
427
424
  2. Gemini via Antigravity CLI (`gemini`, `gemini:flash`)
428
425
  3. Claude Agent SDK (`claude` → Claude Fable 5)
429
426
  4. Copilot (`copilot`)
430
- 5. OpenAI (`gpt-5`)
427
+ 5. OpenAI (`gpt-5.6`)
431
428
  6. Google (`gemini-pro`)
432
- 7. XAI (`grok-4-0709`)
429
+ 7. XAI (`grok-4.5`)
433
430
  8. Anthropic (`claude-sonnet-4-20250514`)
434
- 9. Mistral (`magistral-medium-2506`)
435
- 10. DeepSeek (`deepseek-reasoner`)
436
- 11. OpenRouter (`qwen/qwen3-coder`)
431
+ 9. Mistral (`mistral-medium-3-5`)
432
+ 10. DeepSeek (`deepseek-v4-pro`)
433
+ 11. OpenRouter (`z-ai/glm-5.2`)
437
434
 
438
435
  The system will use the first 3 providers that are available (authenticated SDK or valid API key). This enables automatic multi-model consensus without manually specifying models.
439
436
 
@@ -668,11 +665,16 @@ converse/
668
665
  │ │ ├── mistral.js # Mistral AI provider
669
666
  │ │ ├── deepseek.js # DeepSeek provider
670
667
  │ │ ├── openrouter.js # OpenRouter provider
671
- │ │ └── openai-compatible.js # Base for OpenAI-compatible APIs
668
+ │ │ ├── openrouter-discovery.js # Request-local OpenRouter slug discovery
669
+ │ │ ├── openai-compatible.js # Base for OpenAI-compatible APIs
670
+ │ │ ├── codex.js # Codex agentic SDK provider
671
+ │ │ ├── claude.js # Claude Agent SDK provider
672
+ │ │ ├── gemini-cli.js # Gemini via Antigravity CLI provider
673
+ │ │ └── copilot.js # GitHub Copilot SDK provider
672
674
  │ ├── tools/ # MCP tool implementations
673
675
  │ │ ├── index.js # Tool registry
674
- │ │ ├── chat.js # Chat tool
675
- │ │ └── consensus.js # Consensus tool
676
+ │ │ ├── chat.js # Unified chat tool (chat/consensus/roundtable modes)
677
+ │ │ └── modes/ # parallel.js + roundtable.js execution engines
676
678
  │ └── utils/ # Utility modules
677
679
  │ ├── contextProcessor.js # File/image processing
678
680
  │ ├── errorHandler.js # Error handling