import test from 'node:test'; import assert from 'node:assert/strict'; import { getReasoningThinkingConfig } from '../../src/format/reasoning-effort.js'; test('Gemini 3.5 Flash high uses thinkingLevel, not a fake model', () => { const result = getReasoningThinkingConfig('gemini-3.5-flash-low', 'high'); assert.deepEqual(result.config, { includeThoughts: true, thinkingLevel: 'high' }); }); test('Gemini 3.5 Flash effort levels match old proxy', () => { assert.equal(getReasoningThinkingConfig('gemini-3.5-flash-low', 'disable').config.thinkingLevel, 'minimal'); assert.equal(getReasoningThinkingConfig('gemini-3.5-flash-low', 'low').config.thinkingLevel, 'low'); assert.equal(getReasoningThinkingConfig('gemini-3.5-flash-low', 'medium').config.thinkingLevel, 'medium'); assert.equal(getReasoningThinkingConfig('gemini-3.5-flash-low', 'auto').config.thinkingLevel, 'high'); }); test('Gemini 3 Pro only maps to low or high', () => { assert.equal(getReasoningThinkingConfig('gemini-3.1-pro-low', 'low_medium').config.thinkingLevel, 'low'); assert.equal(getReasoningThinkingConfig('gemini-3.1-pro-high', 'medium').config.thinkingLevel, 'high'); }); test('Gemini 2.5 and Claude use budgets', () => { assert.equal(getReasoningThinkingConfig('gemini-2.5-flash', 'high').config.thinkingBudget, 24576); assert.equal(getReasoningThinkingConfig('gemini-2.5-pro', 'high').config.thinkingBudget, 32768); assert.equal(getReasoningThinkingConfig('claude-sonnet-4-5-thinking', 'high').config.thinking_budget, 31999); });