Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions apps/web/src/lib/ai-gateway/providers/model-settings.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
import { MINIMAX_CURRENT_MODEL_ID } from './minimax';
import { getModelVariants } from './model-settings';

describe('MiniMax model variants', () => {
it.each([MINIMAX_CURRENT_MODEL_ID, 'opencode-go/minimax-m3'])(
'defaults to thinking while exposing instant for MiniMax M3 model %s',
model => {
const variants = getModelVariants(model);

expect(Object.keys(variants ?? {})).toEqual(['thinking', 'instant']);
expect(variants).toEqual({
thinking: { reasoning: { enabled: true, effort: 'high' } },
instant: { reasoning: { enabled: false, effort: 'none' } },
});
}
);

it('keeps instant as the default for older MiniMax models', () => {
const variants = getModelVariants('minimax/minimax-m2.7');

expect(Object.keys(variants ?? {})).toEqual(['instant', 'thinking']);
expect(variants).toEqual({
instant: { reasoning: { enabled: false, effort: 'none' } },
thinking: { reasoning: { enabled: true, effort: 'high' } },
});
});
});
12 changes: 11 additions & 1 deletion apps/web/src/lib/ai-gateway/providers/model-settings.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,15 @@ const REASONING_VARIANTS_THINKING_ONLY = {
thinking: { reasoning: { enabled: true, effort: 'high' } },
} as const;

const REASONING_DISABLED = { reasoning: { enabled: false, effort: 'none' } } as const;

const REASONING_VARIANTS_THINKING_INSTANT = {
...REASONING_VARIANTS_THINKING_ONLY,
instant: REASONING_DISABLED,
} as const;

export const REASONING_VARIANTS_BINARY = {
instant: { reasoning: { enabled: false, effort: 'none' } },
instant: REASONING_DISABLED,
...REASONING_VARIANTS_THINKING_ONLY,
} as const;

Expand Down Expand Up @@ -107,6 +114,9 @@ export function getModelVariants(model: string): OpenCodeSettings['variants'] {
if (model.includes('kimi-k2.7-code')) {
return REASONING_VARIANTS_THINKING_ONLY;
}
if (isMinimaxModel(model) && model.toLowerCase().includes('minimax-m3')) {
return REASONING_VARIANTS_THINKING_INSTANT;
}
if (
isMinimaxModel(model) ||
isKimiModel(model) ||
Expand Down