diff --git a/packages/core/src/core/client.ts b/packages/core/src/core/client.ts index ff1f2e68c8..940c8349dd 100644 --- a/packages/core/src/core/client.ts +++ b/packages/core/src/core/client.ts @@ -221,37 +221,23 @@ export class GeminiClient { async startChat(extraHistory?: Content[]): Promise { this.forceFullIdeContext = true; this.hasFailedCompressionAttempt = false; + const envParts = await getEnvironmentContext(this.config); const toolRegistry = this.config.getToolRegistry(); const toolDeclarations = toolRegistry.getFunctionDeclarations(); const tools: Tool[] = [{ functionDeclarations: toolDeclarations }]; - // 1. Get the environment context parts as an array - const envParts = await getEnvironmentContext(this.config); - - // 2. Convert the array of parts into a single string - const envContextString = envParts - .map((part) => part.text || '') - .join('\n\n'); - - // 3. Combine the dynamic context with the static handshake instruction - const allSetupText = ` -${envContextString} - -Reminder: Do not return an empty response when a tool call is required. - -My setup is complete. I will provide my first command in the next turn. - `.trim(); - - // 4. Create the history with a single, comprehensive user turn const history: Content[] = [ { role: 'user', - parts: [{ text: allSetupText }], + parts: envParts, + }, + { + role: 'model', + parts: [{ text: 'Got it. Thanks for the context!' }], }, ...(extraHistory ?? []), ]; - try { const userMemory = this.config.getUserMemory(); const systemInstruction = getCoreSystemPrompt(userMemory); diff --git a/packages/core/src/core/turn.test.ts b/packages/core/src/core/turn.test.ts index 45f78a26a5..d3451166a9 100644 --- a/packages/core/src/core/turn.test.ts +++ b/packages/core/src/core/turn.test.ts @@ -251,7 +251,7 @@ describe('Turn', () => { expect(reportError).toHaveBeenCalledWith( error, 'Error when talking to Gemini API', - [...historyContent, { role: 'user', parts: reqParts }], + [...historyContent, reqParts], 'Turn.run-sendMessageStream', ); }); diff --git a/packages/core/src/core/turn.ts b/packages/core/src/core/turn.ts index 9a93209c27..aef017c414 100644 --- a/packages/core/src/core/turn.ts +++ b/packages/core/src/core/turn.ts @@ -28,7 +28,6 @@ import { } from '../utils/errors.js'; import type { GeminiChat } from './geminiChat.js'; import { parseThought, type ThoughtSummary } from '../utils/thoughtUtils.js'; -import { createUserContent } from '@google/genai'; // Define a structure for tools passed to the server export interface ServerTool { @@ -307,10 +306,7 @@ export class Turn { throw error; } - const contextForReport = [ - ...this.chat.getHistory(/*curated*/ true), - createUserContent(req), - ]; + const contextForReport = [...this.chat.getHistory(/*curated*/ true), req]; await reportError( error, 'Error when talking to Gemini API',