feat: launch Gemini 3 Flash in Gemini CLI ️ (#15196)

Co-authored-by: gemini-cli-robot <gemini-cli-robot@google.com>
Co-authored-by: joshualitt <joshualitt@google.com>
Co-authored-by: Sehoon Shon <sshon@google.com>
Co-authored-by: Adam Weidman <65992621+adamfweidman@users.noreply.github.com>
Co-authored-by: Adib234 <30782825+Adib234@users.noreply.github.com>
Co-authored-by: Jenna Inouye <jinouye@google.com>
This commit is contained in:
Tommaso Sciortino
2025-12-17 09:43:21 -08:00
committed by GitHub
parent 18698d6929
commit bf90b59935
65 changed files with 1898 additions and 2060 deletions
+55 -6
View File
@@ -10,6 +10,13 @@ import { makeFakeConfig } from '../test-utils/config.js';
import type { AgentDefinition, LocalAgentDefinition } from './types.js';
import type { Config } from '../config/config.js';
import { debugLogger } from '../utils/debugLogger.js';
import {
DEFAULT_GEMINI_FLASH_LITE_MODEL,
GEMINI_MODEL_ALIAS_AUTO,
PREVIEW_GEMINI_FLASH_MODEL,
PREVIEW_GEMINI_MODEL,
PREVIEW_GEMINI_MODEL_AUTO,
} from '../config/models.js';
// A test-only subclass to expose the protected `registerAgent` method.
class TestableAgentRegistry extends AgentRegistry {
@@ -74,12 +81,12 @@ describe('AgentRegistry', () => {
);
});
it('should use preview model for codebase investigator if main model is preview', async () => {
it('should use preview flash model for codebase investigator if main model is preview pro', async () => {
const previewConfig = makeFakeConfig({
model: 'gemini-3-pro-preview',
model: PREVIEW_GEMINI_MODEL,
codebaseInvestigatorSettings: {
enabled: true,
model: 'pro',
model: GEMINI_MODEL_ALIAS_AUTO,
},
});
const previewRegistry = new TestableAgentRegistry(previewConfig);
@@ -88,10 +95,52 @@ describe('AgentRegistry', () => {
const investigatorDef = previewRegistry.getDefinition(
'codebase_investigator',
);
) as LocalAgentDefinition;
expect(investigatorDef).toBeDefined();
expect((investigatorDef as LocalAgentDefinition).modelConfig.model).toBe(
'gemini-3-pro-preview',
expect(investigatorDef?.modelConfig.model).toBe(
PREVIEW_GEMINI_FLASH_MODEL,
);
});
it('should use preview flash model for codebase investigator if main model is preview auto', async () => {
const previewConfig = makeFakeConfig({
model: PREVIEW_GEMINI_MODEL_AUTO,
codebaseInvestigatorSettings: {
enabled: true,
model: GEMINI_MODEL_ALIAS_AUTO,
},
});
const previewRegistry = new TestableAgentRegistry(previewConfig);
await previewRegistry.initialize();
const investigatorDef = previewRegistry.getDefinition(
'codebase_investigator',
) as LocalAgentDefinition;
expect(investigatorDef).toBeDefined();
expect(investigatorDef?.modelConfig.model).toBe(
PREVIEW_GEMINI_FLASH_MODEL,
);
});
it('should use the model from the investigator settings', async () => {
const previewConfig = makeFakeConfig({
model: PREVIEW_GEMINI_MODEL,
codebaseInvestigatorSettings: {
enabled: true,
model: DEFAULT_GEMINI_FLASH_LITE_MODEL,
},
});
const previewRegistry = new TestableAgentRegistry(previewConfig);
await previewRegistry.initialize();
const investigatorDef = previewRegistry.getDefinition(
'codebase_investigator',
) as LocalAgentDefinition;
expect(investigatorDef).toBeDefined();
expect(investigatorDef?.modelConfig.model).toBe(
DEFAULT_GEMINI_FLASH_LITE_MODEL,
);
});
});