From 07056c8f16a9340aedcc716a5c247da07c135cf2 Mon Sep 17 00:00:00 2001 From: Jacob Richman Date: Mon, 9 Feb 2026 12:45:55 -0800 Subject: [PATCH] Harded code assist converter. (#18656) --- packages/core/src/code_assist/converter.test.ts | 10 ++++++++++ packages/core/src/code_assist/converter.ts | 10 +++++++--- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/packages/core/src/code_assist/converter.test.ts b/packages/core/src/code_assist/converter.test.ts index 17dba1e4da..31e66bcd17 100644 --- a/packages/core/src/code_assist/converter.test.ts +++ b/packages/core/src/code_assist/converter.test.ts @@ -331,6 +331,16 @@ describe('converter', () => { const genaiRes = fromGenerateContentResponse(codeAssistRes); expect(genaiRes.responseId).toBeUndefined(); }); + + it('should handle missing response property gracefully', () => { + const invalidRes = { + traceId: 'some-trace-id', + } as unknown as CaGenerateContentResponse; + + const genaiRes = fromGenerateContentResponse(invalidRes); + expect(genaiRes.responseId).toEqual('some-trace-id'); + expect(genaiRes.candidates).toEqual([]); + }); }); describe('toContents', () => { diff --git a/packages/core/src/code_assist/converter.ts b/packages/core/src/code_assist/converter.ts index 2b8b0a3a33..8dcfe80d78 100644 --- a/packages/core/src/code_assist/converter.ts +++ b/packages/core/src/code_assist/converter.ts @@ -133,14 +133,18 @@ export function toGenerateContentRequest( export function fromGenerateContentResponse( res: CaGenerateContentResponse, ): GenerateContentResponse { - const inres = res.response; const out = new GenerateContentResponse(); - out.candidates = inres.candidates; + out.responseId = res.traceId; + const inres = res.response; + if (!inres) { + out.candidates = []; + return out; + } + out.candidates = inres.candidates ?? []; out.automaticFunctionCallingHistory = inres.automaticFunctionCallingHistory; out.promptFeedback = inres.promptFeedback; out.usageMetadata = inres.usageMetadata; out.modelVersion = inres.modelVersion; - out.responseId = res.traceId; return out; }