From 81ff590f695eb97c39c2acf71463a56ff774ae46 Mon Sep 17 00:00:00 2001 From: Sandy Tao Date: Sat, 12 Jul 2025 21:08:06 -0700 Subject: [PATCH 1/4] Fix not using flash for next speaker check --- packages/core/src/utils/nextSpeakerChecker.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/core/src/utils/nextSpeakerChecker.ts b/packages/core/src/utils/nextSpeakerChecker.ts index 165f277a30c..5bf65f0f57d 100644 --- a/packages/core/src/utils/nextSpeakerChecker.ts +++ b/packages/core/src/utils/nextSpeakerChecker.ts @@ -4,6 +4,7 @@ * SPDX-License-Identifier: Apache-2.0 */ +import { DEFAULT_GEMINI_FLASH_MODEL } from '@google/gemini-cli-core'; import { Content, SchemaUnion, Type } from '@google/genai'; import { GeminiClient } from '../core/client.js'; import { GeminiChat } from '../core/geminiChat.js'; @@ -131,6 +132,7 @@ export async function checkNextSpeaker( contents, RESPONSE_SCHEMA, abortSignal, + DEFAULT_GEMINI_FLASH_MODEL, )) as unknown as NextSpeakerResponse; if ( From fb1fda8175bc86a119fa03ab5a835abcee533af1 Mon Sep 17 00:00:00 2001 From: Sandy Tao Date: Sat, 12 Jul 2025 21:17:33 -0700 Subject: [PATCH 2/4] Add test --- .../core/src/utils/nextSpeakerChecker.test.ts | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/packages/core/src/utils/nextSpeakerChecker.test.ts b/packages/core/src/utils/nextSpeakerChecker.test.ts index 475b5662494..9e3cb06c6d7 100644 --- a/packages/core/src/utils/nextSpeakerChecker.test.ts +++ b/packages/core/src/utils/nextSpeakerChecker.test.ts @@ -5,6 +5,7 @@ */ import { describe, it, expect, vi, beforeEach, Mock, afterEach } from 'vitest'; +import { DEFAULT_GEMINI_FLASH_MODEL } from '@google/gemini-cli-core'; import { Content, GoogleGenAI, Models } from '@google/genai'; import { GeminiClient } from '../core/client.js'; import { Config } from '../config/config.js'; @@ -231,4 +232,22 @@ describe('checkNextSpeaker', () => { ); expect(result).toBeNull(); }); + + it('should call generateJson with DEFAULT_GEMINI_FLASH_MODEL', async () => { + (chatInstance.getHistory as Mock).mockReturnValue([ + { role: 'model', parts: [{ text: 'Some model output.' }] }, + ] as Content[]); + const mockApiResponse: NextSpeakerResponse = { + reasoning: 'Model made a statement, awaiting user input.', + next_speaker: 'user', + }; + (mockGeminiClient.generateJson as Mock).mockResolvedValue(mockApiResponse); + + await checkNextSpeaker(chatInstance, mockGeminiClient, abortSignal); + + expect(mockGeminiClient.generateJson).toHaveBeenCalled(); + const generateJsonCall = (mockGeminiClient.generateJson as Mock).mock + .calls[0]; + expect(generateJsonCall[3]).toBe(DEFAULT_GEMINI_FLASH_MODEL); + }); }); From 15dde645e6c3827d1238ad82fcf32e75a8b5da35 Mon Sep 17 00:00:00 2001 From: Sandy Tao Date: Sat, 12 Jul 2025 21:20:53 -0700 Subject: [PATCH 3/4] Import from config --- packages/core/src/utils/nextSpeakerChecker.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core/src/utils/nextSpeakerChecker.ts b/packages/core/src/utils/nextSpeakerChecker.ts index 5bf65f0f57d..9d428887eb6 100644 --- a/packages/core/src/utils/nextSpeakerChecker.ts +++ b/packages/core/src/utils/nextSpeakerChecker.ts @@ -4,8 +4,8 @@ * SPDX-License-Identifier: Apache-2.0 */ -import { DEFAULT_GEMINI_FLASH_MODEL } from '@google/gemini-cli-core'; import { Content, SchemaUnion, Type } from '@google/genai'; +import { DEFAULT_GEMINI_FLASH_MODEL } from '../config/models.js'; import { GeminiClient } from '../core/client.js'; import { GeminiChat } from '../core/geminiChat.js'; import { isFunctionResponse } from './messageInspectors.js'; From 85eebd0af9a968e8a1d02b772d858cff03780551 Mon Sep 17 00:00:00 2001 From: Sandy Tao Date: Sat, 12 Jul 2025 21:21:50 -0700 Subject: [PATCH 4/4] Import from config --- packages/core/src/utils/nextSpeakerChecker.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core/src/utils/nextSpeakerChecker.test.ts b/packages/core/src/utils/nextSpeakerChecker.test.ts index 9e3cb06c6d7..9141105f1e6 100644 --- a/packages/core/src/utils/nextSpeakerChecker.test.ts +++ b/packages/core/src/utils/nextSpeakerChecker.test.ts @@ -5,8 +5,8 @@ */ import { describe, it, expect, vi, beforeEach, Mock, afterEach } from 'vitest'; -import { DEFAULT_GEMINI_FLASH_MODEL } from '@google/gemini-cli-core'; import { Content, GoogleGenAI, Models } from '@google/genai'; +import { DEFAULT_GEMINI_FLASH_MODEL } from '../config/models.js'; import { GeminiClient } from '../core/client.js'; import { Config } from '../config/config.js'; import { checkNextSpeaker, NextSpeakerResponse } from './nextSpeakerChecker.js';