diff --git a/README.md b/README.md index f9adcb5..3739f19 100644 --- a/README.md +++ b/README.md @@ -209,7 +209,7 @@ Set `LLM_PROVIDER` to one of: `anthropic`, `openai`, `gemini`, `codex`, `openrou | `openrouter` | `LLM_API_KEY` | openrouter/auto | | `codex` | None (uses `~/.codex/auth.json`) | gpt-5.3-codex | | `minimax` | `LLM_API_KEY` | MiniMax-M2.5 | -| `mistral` | `LLM_API_KEY` | mistral-medium | +| `mistral` | `LLM_API_KEY` | mistral-large-latest | For Codex, run `npx @openai/codex login` to authenticate via your ChatGPT subscription. diff --git a/lib/llm/mistral.mjs b/lib/llm/mistral.mjs index fa3e525..dde09db 100644 --- a/lib/llm/mistral.mjs +++ b/lib/llm/mistral.mjs @@ -8,7 +8,7 @@ export class MistralProvider extends LLMProvider { super(config); this.name = 'mistral'; this.apiKey = config.apiKey; - this.model = config.model || 'mistral-medium'; + this.model = config.model || 'mistral-large-latest'; } get isConfigured() { return !!this.apiKey; } diff --git a/test/llm-mistral.test.mjs b/test/llm-mistral.test.mjs index 2dc1d8d..24fe17d 100644 --- a/test/llm-mistral.test.mjs +++ b/test/llm-mistral.test.mjs @@ -50,7 +50,7 @@ describe('MistralProvider', () => { const mockResponse = { choices: [{ message: { content: 'Hello from Mistral' } }], usage: { prompt_tokens: 10, completion_tokens: 5 }, - model: 'mistral-medium', + model: 'mistral-large-latest', }; const originalFetch = globalThis.fetch; globalThis.fetch = mock.fn(() => @@ -61,14 +61,14 @@ describe('MistralProvider', () => { assert.equal(result.text, 'Hello from Mistral'); assert.equal(result.usage.inputTokens, 10); assert.equal(result.usage.outputTokens, 5); - assert.equal(result.model, 'mistral-medium'); + assert.equal(result.model, 'mistral-large-latest'); } finally { globalThis.fetch = originalFetch; } }); it('should send correct request format', async () => { - const provider = new MistralProvider({ apiKey: 'sk-test-key', model: 'mistral-medium' }); + const provider = new MistralProvider({ apiKey: 'sk-test-key', model: 'mistral-large-latest' }); let capturedUrl, capturedOpts; const originalFetch = globalThis.fetch; globalThis.fetch = mock.fn((url, opts) => { @@ -79,7 +79,7 @@ describe('MistralProvider', () => { json: () => Promise.resolve({ choices: [{ message: { content: 'ok' } }], usage: { prompt_tokens: 1, completion_tokens: 1 }, - model: 'mistral-medium', + model: 'mistral-large-latest', }), }); }); @@ -91,7 +91,7 @@ describe('MistralProvider', () => { assert.equal(headers['Content-Type'], 'application/json'); assert.equal(headers['Authorization'], 'Bearer sk-test-key'); const body = JSON.parse(capturedOpts.body); - assert.equal(body.model, 'mistral-medium'); + assert.equal(body.model, 'mistral-large-latest'); assert.equal(body.max_tokens, 2048); assert.equal(body.messages[0].role, 'system'); assert.equal(body.messages[0].content, 'system prompt');