diff --git a/.github/workflows/claude-review.yml b/.github/workflows/claude-review.yml index 73669ea0..ecb6c1ce 100644 --- a/.github/workflows/claude-review.yml +++ b/.github/workflows/claude-review.yml @@ -48,7 +48,7 @@ jobs: IMPORTANT: After completing your review, you MUST post your findings as a PR comment. Steps to post: 1) Write review to /tmp/review.md using the Write tool, 2) Run: gh pr comment $PR_NUMBER --body-file /tmp/review.md Get the PR number first via: gh pr list --state open --json number --jq '.[0].number' - claude_args: '--model MiniMax-M2.5 --max-turns 20 --allowedTools "Bash(git:*),Bash(gh:*),Read,Glob,Grep,WebFetch,Write"' + claude_args: '--model MiniMax-M3 --max-turns 20 --allowedTools "Bash(git:*),Bash(gh:*),Read,Glob,Grep,WebFetch,Write"' interactive: if: | @@ -68,4 +68,4 @@ jobs: ANTHROPIC_BASE_URL: https://api.minimax.io/anthropic with: anthropic_api_key: ${{ secrets.MINIMAX_API_KEY }} - claude_args: '--model MiniMax-M2.5 --max-turns 20 --allowedTools "Bash(git:*),Bash(gh:*),Read,Glob,Grep,WebFetch,Edit,Write"' + claude_args: '--model MiniMax-M3 --max-turns 20 --allowedTools "Bash(git:*),Bash(gh:*),Read,Glob,Grep,WebFetch,Edit,Write"' diff --git a/apps/webuiapps/src/lib/__tests__/llmClient.test.ts b/apps/webuiapps/src/lib/__tests__/llmClient.test.ts index 1b53438d..d8c133af 100644 --- a/apps/webuiapps/src/lib/__tests__/llmClient.test.ts +++ b/apps/webuiapps/src/lib/__tests__/llmClient.test.ts @@ -131,8 +131,8 @@ describe('getDefaultProviderConfig()', () => { it('returns correct defaults for minimax', () => { const cfg = getDefaultProviderConfig('minimax'); expect(cfg.provider).toBe('minimax'); - expect(cfg.baseUrl).toBe('https://api.minimax.io/anthropic/v1'); - expect(cfg.model).toBe('MiniMax-M2.5'); + expect(cfg.baseUrl).toBe('https://api.minimax.io/anthropic'); + expect(cfg.model).toBe('MiniMax-M3'); }); it('returns correct defaults for z.ai', () => { @@ -153,7 +153,7 @@ describe('getDefaultProviderConfig()', () => { const cfg = getDefaultProviderConfig('openrouter'); expect(cfg.provider).toBe('openrouter'); expect(cfg.baseUrl).toBe('https://openrouter.ai/api/v1'); - expect(cfg.model).toBe('minimax/MiniMax-M2.5'); + expect(cfg.model).toBe('minimax/MiniMax-M3'); }); it('returns consistent values for the same provider', () => { @@ -560,7 +560,7 @@ respond_to_user provider: 'minimax', apiKey: 'minimax-key', baseUrl: 'https://api.minimax.io/anthropic', - model: 'MiniMax-M2.5', + model: 'MiniMax-M3', }; const mockFetch = vi.fn().mockResolvedValueOnce(makeAnthropicResponse('MiniMax response')); globalThis.fetch = mockFetch; @@ -570,6 +570,7 @@ respond_to_user expect(result.content).toBe('MiniMax response'); const headers = mockFetch.mock.calls[0][1].headers as Record; expect(headers['anthropic-version']).toBe('2023-06-01'); + expect(headers['X-LLM-Target-URL']).toBe('https://api.minimax.io/anthropic/v1/messages'); }); }); diff --git a/apps/webuiapps/src/lib/llmModels.ts b/apps/webuiapps/src/lib/llmModels.ts index 346907ef..aa7ddcb2 100644 --- a/apps/webuiapps/src/lib/llmModels.ts +++ b/apps/webuiapps/src/lib/llmModels.ts @@ -87,16 +87,12 @@ export const LLM_PROVIDER_CONFIGS: Record = { minimax: { displayName: 'MiniMax', - baseUrl: 'https://api.minimax.io/anthropic/v1', - defaultModel: 'MiniMax-M2.5', + baseUrl: 'https://api.minimax.io/anthropic', + defaultModel: 'MiniMax-M3', models: [ - { id: 'MiniMax-M2.5', name: 'MiniMax M2.5', category: 'flagship' }, - { id: 'MiniMax-M2.5-highspeed', name: 'MiniMax M2.5 Highspeed', category: 'general' }, - { id: 'MiniMax-M2.1', name: 'MiniMax M2.1', category: 'coding' }, - { id: 'MiniMax-M2.1-highspeed', name: 'MiniMax M2.1 Highspeed', category: 'coding' }, + { id: 'MiniMax-M3', name: 'MiniMax M3', category: 'flagship' }, { id: 'MiniMax-M2.7', name: 'MiniMax M2.7', category: 'flagship' }, { id: 'MiniMax-M2.7-highspeed', name: 'MiniMax M2.7 Highspeed', category: 'general' }, - { id: 'MiniMax-M2', name: 'MiniMax M2', category: 'general' }, ], }, @@ -135,13 +131,11 @@ export const LLM_PROVIDER_CONFIGS: Record = { openrouter: { displayName: 'OpenRouter', baseUrl: 'https://openrouter.ai/api/v1', - defaultModel: 'minimax/MiniMax-M2.5', + defaultModel: 'minimax/MiniMax-M3', models: [ - { id: 'minimax/MiniMax-M2.5', name: 'MiniMax M2.5', category: 'flagship' }, - { id: 'minimax/MiniMax-M2.5-highspeed', name: 'MiniMax M2.5 Highspeed', category: 'general' }, + { id: 'minimax/MiniMax-M3', name: 'MiniMax M3', category: 'flagship' }, { id: 'minimax/MiniMax-M2.7', name: 'MiniMax M2.7', category: 'flagship' }, { id: 'minimax/MiniMax-M2.7-highspeed', name: 'MiniMax M2.7 Highspeed', category: 'general' }, - { id: 'minimax/MiniMax-M2.1', name: 'MiniMax M2.1', category: 'coding' }, { id: 'anthropic/claude-sonnet-4-6', name: 'Claude Sonnet 4.6', category: 'general' }, { id: 'openai/gpt-5.4', name: 'GPT-5.4', category: 'flagship' }, { id: 'deepseek/deepseek-chat', name: 'DeepSeek Chat', category: 'general' },