Update default flash lite tool model

This commit is contained in:
davidapierce
2026-05-14 16:30:04 +00:00
committed by Sri Pasumarthi
parent f54f63cd4c
commit a57f33acbc
12 changed files with 155 additions and 54 deletions
@@ -234,8 +234,8 @@ describe('AcpSessionManager', () => {
expect(response.models?.availableModels).toEqual(
expect.arrayContaining([
expect.objectContaining({
modelId: 'gemini-3.1-flash-lite-preview',
name: 'gemini-3.1-flash-lite-preview',
modelId: 'gemini-3.1-flash-lite',
name: 'gemini-3.1-flash-lite',
}),
]),
);
+3 -3
View File
@@ -19,7 +19,7 @@ import {
PREVIEW_GEMINI_MODEL,
PREVIEW_GEMINI_3_1_CUSTOM_TOOLS_MODEL,
PREVIEW_GEMINI_FLASH_MODEL,
PREVIEW_GEMINI_3_1_FLASH_LITE_MODEL,
GEMINI_3_1_FLASH_LITE_MODEL,
getDisplayString,
AuthType,
ToolConfirmationOutcome,
@@ -346,8 +346,8 @@ export function buildAvailableModels(
if (useGemini31FlashLite) {
previewOptions.push({
value: PREVIEW_GEMINI_3_1_FLASH_LITE_MODEL,
title: getDisplayString(PREVIEW_GEMINI_3_1_FLASH_LITE_MODEL),
value: GEMINI_3_1_FLASH_LITE_MODEL,
title: getDisplayString(GEMINI_3_1_FLASH_LITE_MODEL),
});
}
@@ -19,7 +19,7 @@ import {
PREVIEW_GEMINI_3_1_MODEL,
PREVIEW_GEMINI_3_1_CUSTOM_TOOLS_MODEL,
PREVIEW_GEMINI_FLASH_MODEL,
PREVIEW_GEMINI_3_1_FLASH_LITE_MODEL,
GEMINI_3_1_FLASH_LITE_MODEL,
AuthType,
} from '@google/gemini-cli-core';
import type { Config, ModelSlashCommandEvent } from '@google/gemini-cli-core';
@@ -43,6 +43,7 @@ vi.mock('@google/gemini-cli-core', async (importOriginal) => {
}
},
PREVIEW_GEMINI_3_1_FLASH_LITE_MODEL: 'gemini-3.1-flash-lite-preview',
GEMINI_3_1_FLASH_LITE_MODEL: 'gemini-3.1-flash-lite',
};
});
@@ -155,9 +156,7 @@ describe('<ModelDialog />', () => {
// Verify order: Flash Preview -> Flash Lite Preview -> Flash -> Flash Lite
const flashPreviewIdx = output.indexOf(PREVIEW_GEMINI_FLASH_MODEL);
const flashLitePreviewIdx = output.indexOf(
PREVIEW_GEMINI_3_1_FLASH_LITE_MODEL,
);
const flashLitePreviewIdx = output.indexOf(GEMINI_3_1_FLASH_LITE_MODEL);
const flashIdx = output.indexOf(DEFAULT_GEMINI_FLASH_MODEL);
const flashLiteIdx = output.indexOf(DEFAULT_GEMINI_FLASH_LITE_MODEL);
@@ -468,7 +467,7 @@ describe('<ModelDialog />', () => {
await waitUntilReady();
const output = lastFrame();
expect(output).toContain(PREVIEW_GEMINI_3_1_FLASH_LITE_MODEL);
expect(output).toContain(GEMINI_3_1_FLASH_LITE_MODEL);
unmount();
});
});
@@ -15,6 +15,7 @@ import {
PREVIEW_GEMINI_FLASH_MODEL,
PREVIEW_GEMINI_3_1_FLASH_LITE_MODEL,
PREVIEW_GEMINI_MODEL_AUTO,
GEMINI_3_1_FLASH_LITE_MODEL,
DEFAULT_GEMINI_MODEL,
DEFAULT_GEMINI_FLASH_MODEL,
DEFAULT_GEMINI_FLASH_LITE_MODEL,
@@ -95,6 +96,7 @@ export function ModelDialog({ onClose }: ModelDialogProps): React.JSX.Element {
PREVIEW_GEMINI_3_1_MODEL,
PREVIEW_GEMINI_3_1_CUSTOM_TOOLS_MODEL,
PREVIEW_GEMINI_3_1_FLASH_LITE_MODEL,
GEMINI_3_1_FLASH_LITE_MODEL,
PREVIEW_GEMINI_FLASH_MODEL,
];
if (manualModels.includes(preferredModel)) {
@@ -283,9 +285,9 @@ export function ModelDialog({ onClose }: ModelDialogProps): React.JSX.Element {
if (useGemini31FlashLite) {
previewOptions.push({
value: PREVIEW_GEMINI_3_1_FLASH_LITE_MODEL,
title: getDisplayString(PREVIEW_GEMINI_3_1_FLASH_LITE_MODEL),
key: PREVIEW_GEMINI_3_1_FLASH_LITE_MODEL,
value: GEMINI_3_1_FLASH_LITE_MODEL,
title: getDisplayString(GEMINI_3_1_FLASH_LITE_MODEL),
key: GEMINI_3_1_FLASH_LITE_MODEL,
});
}
+33 -11
View File
@@ -89,6 +89,12 @@ export const DEFAULT_MODEL_CONFIGS: ModelConfigServiceConfig = {
model: 'gemini-2.5-flash-lite',
},
},
'gemini-3.1-flash-lite': {
extends: 'chat-base-2.5',
modelConfig: {
model: 'gemini-3.1-flash-lite',
},
},
'gemma-4-31b-it': {
extends: 'chat-base-3',
modelConfig: {
@@ -118,7 +124,7 @@ export const DEFAULT_MODEL_CONFIGS: ModelConfigServiceConfig = {
classifier: {
extends: 'base',
modelConfig: {
model: 'gemini-2.5-flash-lite',
model: 'flash-lite',
generateContentConfig: {
maxOutputTokens: 1024,
thinkingConfig: {
@@ -130,7 +136,7 @@ export const DEFAULT_MODEL_CONFIGS: ModelConfigServiceConfig = {
'prompt-completion': {
extends: 'base',
modelConfig: {
model: 'gemini-2.5-flash-lite',
model: 'flash-lite',
generateContentConfig: {
temperature: 0.3,
maxOutputTokens: 16000,
@@ -143,7 +149,7 @@ export const DEFAULT_MODEL_CONFIGS: ModelConfigServiceConfig = {
'fast-ack-helper': {
extends: 'base',
modelConfig: {
model: 'gemini-2.5-flash-lite',
model: 'flash-lite',
generateContentConfig: {
temperature: 0.2,
maxOutputTokens: 120,
@@ -156,7 +162,7 @@ export const DEFAULT_MODEL_CONFIGS: ModelConfigServiceConfig = {
'edit-corrector': {
extends: 'base',
modelConfig: {
model: 'gemini-2.5-flash-lite',
model: 'flash-lite',
generateContentConfig: {
thinkingConfig: {
thinkingBudget: 0,
@@ -167,7 +173,7 @@ export const DEFAULT_MODEL_CONFIGS: ModelConfigServiceConfig = {
'summarizer-default': {
extends: 'base',
modelConfig: {
model: 'gemini-2.5-flash-lite',
model: 'flash-lite',
generateContentConfig: {
maxOutputTokens: 2000,
},
@@ -176,7 +182,7 @@ export const DEFAULT_MODEL_CONFIGS: ModelConfigServiceConfig = {
'summarizer-shell': {
extends: 'base',
modelConfig: {
model: 'gemini-2.5-flash-lite',
model: 'flash-lite',
generateContentConfig: {
maxOutputTokens: 2000,
},
@@ -246,7 +252,7 @@ export const DEFAULT_MODEL_CONFIGS: ModelConfigServiceConfig = {
},
'chat-compression-3.1-flash-lite': {
modelConfig: {
model: 'gemini-3.1-flash-lite-preview',
model: 'gemini-3.1-flash-lite',
},
},
'chat-compression-2.5-pro': {
@@ -287,6 +293,13 @@ export const DEFAULT_MODEL_CONFIGS: ModelConfigServiceConfig = {
],
modelDefinitions: {
// Concrete Models
'gemini-3.1-flash-lite': {
tier: 'flash-lite',
family: 'gemini-3',
isPreview: false,
isVisible: true,
features: { thinking: false, multimodalToolUse: true },
},
'gemini-3.1-flash-lite-preview': {
tier: 'flash-lite',
family: 'gemini-3',
@@ -505,6 +518,15 @@ export const DEFAULT_MODEL_CONFIGS: ModelConfigServiceConfig = {
},
],
},
'gemini-3.1-flash-lite': {
default: 'gemini-3.1-flash-lite',
contexts: [
{
condition: { useGemini3_1FlashLite: false },
target: 'gemini-2.5-flash-lite',
},
],
},
flash: {
default: 'gemini-3-flash-preview',
contexts: [
@@ -515,11 +537,11 @@ export const DEFAULT_MODEL_CONFIGS: ModelConfigServiceConfig = {
],
},
'flash-lite': {
default: 'gemini-2.5-flash-lite',
default: 'gemini-3.1-flash-lite',
contexts: [
{
condition: { useGemini3_1FlashLite: true },
target: 'gemini-3.1-flash-lite-preview',
condition: { useGemini3_1FlashLite: false },
target: 'gemini-2.5-flash-lite',
},
],
},
@@ -699,7 +721,7 @@ export const DEFAULT_MODEL_CONFIGS: ModelConfigServiceConfig = {
],
lite: [
{
model: 'gemini-2.5-flash-lite',
model: 'flash-lite',
actions: {
terminal: 'silent',
transient: 'silent',
+15 -2
View File
@@ -29,6 +29,7 @@ import {
isActiveModel,
PREVIEW_GEMINI_3_1_MODEL,
PREVIEW_GEMINI_3_1_FLASH_LITE_MODEL,
GEMINI_3_1_FLASH_LITE_MODEL,
PREVIEW_GEMINI_3_1_CUSTOM_TOOLS_MODEL,
isPreviewModel,
isProModel,
@@ -363,6 +364,12 @@ describe('getDisplayString', () => {
);
});
it('should return GEMINI_3_1_FLASH_LITE_MODEL for GEMINI_3_1_FLASH_LITE_MODEL', () => {
expect(getDisplayString(GEMINI_3_1_FLASH_LITE_MODEL)).toBe(
GEMINI_3_1_FLASH_LITE_MODEL,
);
});
it('should return the model name as is for other models', () => {
expect(getDisplayString('custom-model')).toBe('custom-model');
expect(getDisplayString(GEMMA_4_31B_IT_MODEL)).toBe(GEMMA_4_31B_IT_MODEL);
@@ -420,7 +427,7 @@ describe('resolveModel', () => {
it('should return the Preview Flash-Lite model when flash-lite is requested and useGemini3_1FlashLite is true', () => {
const model = resolveModel(GEMINI_MODEL_ALIAS_FLASH_LITE, false, true);
expect(model).toBe(PREVIEW_GEMINI_3_1_FLASH_LITE_MODEL);
expect(model).toBe(GEMINI_3_1_FLASH_LITE_MODEL);
});
it('should return the requested model as-is for explicit specific models', () => {
@@ -624,16 +631,19 @@ describe('isActiveModel', () => {
expect(isActiveModel(DEFAULT_GEMINI_MODEL, true)).toBe(true);
});
it('should return true for PREVIEW_GEMINI_3_1_FLASH_LITE_MODEL only when useGemini3_1FlashLite is true', () => {
it('should return true for PREVIEW_GEMINI_3_1_FLASH_LITE_MODEL and GEMINI_3_1_FLASH_LITE_MODEL only when useGemini3_1FlashLite is true', () => {
expect(
isActiveModel(PREVIEW_GEMINI_3_1_FLASH_LITE_MODEL, false, true),
).toBe(true);
expect(isActiveModel(GEMINI_3_1_FLASH_LITE_MODEL, false, true)).toBe(true);
expect(isActiveModel(PREVIEW_GEMINI_3_1_FLASH_LITE_MODEL, true, true)).toBe(
true,
);
expect(isActiveModel(GEMINI_3_1_FLASH_LITE_MODEL, true, true)).toBe(true);
expect(
isActiveModel(PREVIEW_GEMINI_3_1_FLASH_LITE_MODEL, true, false),
).toBe(false);
expect(isActiveModel(GEMINI_3_1_FLASH_LITE_MODEL, true, false)).toBe(false);
});
it('should correctly filter Gemini 3.1 models based on useCustomToolModel when useGemini3_1 is true', () => {
@@ -670,5 +680,8 @@ describe('isActiveModel', () => {
expect(
isActiveModel(PREVIEW_GEMINI_3_1_FLASH_LITE_MODEL, false, false),
).toBe(false);
expect(isActiveModel(GEMINI_3_1_FLASH_LITE_MODEL, false, false)).toBe(
false,
);
});
});
+9 -2
View File
@@ -57,6 +57,7 @@ export const PREVIEW_GEMINI_3_1_CUSTOM_TOOLS_MODEL =
export const PREVIEW_GEMINI_FLASH_MODEL = 'gemini-3-flash-preview';
export const PREVIEW_GEMINI_3_1_FLASH_LITE_MODEL =
'gemini-3.1-flash-lite-preview';
export const GEMINI_3_1_FLASH_LITE_MODEL = 'gemini-3.1-flash-lite';
export const DEFAULT_GEMINI_MODEL = 'gemini-2.5-pro';
export const DEFAULT_GEMINI_FLASH_MODEL = 'gemini-2.5-flash';
export const DEFAULT_GEMINI_FLASH_LITE_MODEL = 'gemini-2.5-flash-lite';
@@ -70,6 +71,7 @@ export const VALID_GEMINI_MODELS = new Set([
PREVIEW_GEMINI_3_1_CUSTOM_TOOLS_MODEL,
PREVIEW_GEMINI_FLASH_MODEL,
PREVIEW_GEMINI_3_1_FLASH_LITE_MODEL,
GEMINI_3_1_FLASH_LITE_MODEL,
DEFAULT_GEMINI_MODEL,
DEFAULT_GEMINI_FLASH_MODEL,
DEFAULT_GEMINI_FLASH_LITE_MODEL,
@@ -163,7 +165,7 @@ export function resolveModel(
}
case GEMINI_MODEL_ALIAS_FLASH_LITE: {
resolved = useGemini3_1FlashLite
? PREVIEW_GEMINI_3_1_FLASH_LITE_MODEL
? GEMINI_3_1_FLASH_LITE_MODEL
: DEFAULT_GEMINI_FLASH_LITE_MODEL;
break;
}
@@ -282,6 +284,8 @@ export function getDisplayString(
return PREVIEW_GEMINI_3_1_MODEL;
case PREVIEW_GEMINI_3_1_FLASH_LITE_MODEL:
return PREVIEW_GEMINI_3_1_FLASH_LITE_MODEL;
case GEMINI_3_1_FLASH_LITE_MODEL:
return GEMINI_3_1_FLASH_LITE_MODEL;
default:
return model;
}
@@ -463,7 +467,10 @@ export function isActiveModel(
if (model === GEMMA_4_31B_IT_MODEL || model === GEMMA_4_26B_A4B_IT_MODEL) {
return experimentalGemma;
}
if (model === PREVIEW_GEMINI_3_1_FLASH_LITE_MODEL) {
if (
model === PREVIEW_GEMINI_3_1_FLASH_LITE_MODEL ||
model === GEMINI_3_1_FLASH_LITE_MODEL
) {
return useGemini3_1FlashLite;
}
if (useGemini3_1) {
@@ -27,6 +27,7 @@ import {
DEFAULT_GEMINI_FLASH_LITE_MODEL,
DEFAULT_GEMINI_FLASH_MODEL,
DEFAULT_GEMINI_MODEL,
GEMINI_3_1_FLASH_LITE_MODEL,
PREVIEW_GEMINI_MODEL,
PREVIEW_GEMINI_FLASH_MODEL,
PREVIEW_GEMINI_3_1_MODEL,
@@ -107,6 +108,7 @@ export function modelStringToModelConfigAlias(model: string): string {
case PREVIEW_GEMINI_FLASH_MODEL:
return 'chat-compression-3-flash';
case PREVIEW_GEMINI_3_1_FLASH_LITE_MODEL:
case GEMINI_3_1_FLASH_LITE_MODEL:
return 'chat-compression-3.1-flash-lite';
case DEFAULT_GEMINI_MODEL:
return 'chat-compression-2.5-pro';
@@ -10,6 +10,7 @@ import {
getDisplayString,
PREVIEW_GEMINI_3_1_MODEL,
PREVIEW_GEMINI_3_1_FLASH_LITE_MODEL,
GEMINI_3_1_FLASH_LITE_MODEL,
isProModel,
} from '../config/models.js';
@@ -185,7 +186,11 @@ export class ModelConfigService {
if (context.hasAccessToProModel === false && isProModel(id))
return false;
if (id === PREVIEW_GEMINI_3_1_MODEL && !useGemini31) return false;
if (id === PREVIEW_GEMINI_3_1_FLASH_LITE_MODEL && !useGemini31FlashLite)
if (
(id === PREVIEW_GEMINI_3_1_FLASH_LITE_MODEL ||
id === GEMINI_3_1_FLASH_LITE_MODEL) &&
!useGemini31FlashLite
)
return false;
return true;
})
@@ -97,6 +97,18 @@
"topK": 64
}
},
"gemini-3.1-flash-lite": {
"model": "gemini-3.1-flash-lite",
"generateContentConfig": {
"temperature": 1,
"topP": 0.95,
"thinkingConfig": {
"includeThoughts": true,
"thinkingBudget": 8192
},
"topK": 64
}
},
"gemma-4-31b-it": {
"model": "gemma-4-31b-it",
"generateContentConfig": {
@@ -136,7 +148,7 @@
}
},
"classifier": {
"model": "gemini-2.5-flash-lite",
"model": "flash-lite",
"generateContentConfig": {
"temperature": 0,
"topP": 1,
@@ -147,7 +159,7 @@
}
},
"prompt-completion": {
"model": "gemini-2.5-flash-lite",
"model": "flash-lite",
"generateContentConfig": {
"temperature": 0.3,
"topP": 1,
@@ -158,7 +170,7 @@
}
},
"fast-ack-helper": {
"model": "gemini-2.5-flash-lite",
"model": "flash-lite",
"generateContentConfig": {
"temperature": 0.2,
"topP": 1,
@@ -169,7 +181,7 @@
}
},
"edit-corrector": {
"model": "gemini-2.5-flash-lite",
"model": "flash-lite",
"generateContentConfig": {
"temperature": 0,
"topP": 1,
@@ -179,7 +191,7 @@
}
},
"summarizer-default": {
"model": "gemini-2.5-flash-lite",
"model": "flash-lite",
"generateContentConfig": {
"temperature": 0,
"topP": 1,
@@ -187,7 +199,7 @@
}
},
"summarizer-shell": {
"model": "gemini-2.5-flash-lite",
"model": "flash-lite",
"generateContentConfig": {
"temperature": 0,
"topP": 1,
@@ -273,7 +285,7 @@
"generateContentConfig": {}
},
"chat-compression-3.1-flash-lite": {
"model": "gemini-3.1-flash-lite-preview",
"model": "gemini-3.1-flash-lite",
"generateContentConfig": {}
},
"chat-compression-2.5-pro": {
@@ -97,6 +97,18 @@
"topK": 64
}
},
"gemini-3.1-flash-lite": {
"model": "gemini-3.1-flash-lite",
"generateContentConfig": {
"temperature": 1,
"topP": 0.95,
"thinkingConfig": {
"includeThoughts": true,
"thinkingBudget": 8192
},
"topK": 64
}
},
"gemma-4-31b-it": {
"model": "gemma-4-31b-it",
"generateContentConfig": {
@@ -136,7 +148,7 @@
}
},
"classifier": {
"model": "gemini-2.5-flash-lite",
"model": "flash-lite",
"generateContentConfig": {
"temperature": 0,
"topP": 1,
@@ -147,7 +159,7 @@
}
},
"prompt-completion": {
"model": "gemini-2.5-flash-lite",
"model": "flash-lite",
"generateContentConfig": {
"temperature": 0.3,
"topP": 1,
@@ -158,7 +170,7 @@
}
},
"fast-ack-helper": {
"model": "gemini-2.5-flash-lite",
"model": "flash-lite",
"generateContentConfig": {
"temperature": 0.2,
"topP": 1,
@@ -169,7 +181,7 @@
}
},
"edit-corrector": {
"model": "gemini-2.5-flash-lite",
"model": "flash-lite",
"generateContentConfig": {
"temperature": 0,
"topP": 1,
@@ -179,7 +191,7 @@
}
},
"summarizer-default": {
"model": "gemini-2.5-flash-lite",
"model": "flash-lite",
"generateContentConfig": {
"temperature": 0,
"topP": 1,
@@ -187,7 +199,7 @@
}
},
"summarizer-shell": {
"model": "gemini-2.5-flash-lite",
"model": "flash-lite",
"generateContentConfig": {
"temperature": 0,
"topP": 1,
@@ -273,7 +285,7 @@
"generateContentConfig": {}
},
"chat-compression-3.1-flash-lite": {
"model": "gemini-3.1-flash-lite-preview",
"model": "gemini-3.1-flash-lite",
"generateContentConfig": {}
},
"chat-compression-2.5-pro": {