From 623ef2e71eaa17107838e63a4d04541f0e163aca Mon Sep 17 00:00:00 2001 From: arturfromtabnine Date: Tue, 12 Aug 2025 13:45:52 +0200 Subject: [PATCH 1/4] fix: allow object as tool content --- src/providers/google-vertex-ai/chatComplete.ts | 3 ++- src/providers/google/chatComplete.ts | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/providers/google-vertex-ai/chatComplete.ts b/src/providers/google-vertex-ai/chatComplete.ts index 66eee9d96..a68b599b0 100644 --- a/src/providers/google-vertex-ai/chatComplete.ts +++ b/src/providers/google-vertex-ai/chatComplete.ts @@ -101,7 +101,8 @@ export const VertexGoogleChatCompleteConfig: ProviderConfig = { }); } else if ( message.role === 'tool' && - typeof message.content === 'string' + (typeof message.content === 'string' || + typeof message.content === 'object') ) { parts.push({ functionResponse: { diff --git a/src/providers/google/chatComplete.ts b/src/providers/google/chatComplete.ts index 5506195a3..beca77b08 100644 --- a/src/providers/google/chatComplete.ts +++ b/src/providers/google/chatComplete.ts @@ -106,7 +106,7 @@ interface GoogleFunctionResponseMessagePart { name: string; response: { name?: string; - content: string; + content: string | ContentType[]; }; }; } From c90613fc44eca727bcd56eb70006e3423c13d996 Mon Sep 17 00:00:00 2001 From: arturfromtabnine Date: Tue, 26 Aug 2025 13:33:44 +0200 Subject: [PATCH 2/4] address comments --- src/providers/google-vertex-ai/chatComplete.ts | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/providers/google-vertex-ai/chatComplete.ts b/src/providers/google-vertex-ai/chatComplete.ts index a68b599b0..c014ff1ac 100644 --- a/src/providers/google-vertex-ai/chatComplete.ts +++ b/src/providers/google-vertex-ai/chatComplete.ts @@ -52,6 +52,18 @@ import { transformVertexLogprobs, } from './utils'; +const isContentTypeArray = (content: any): content is ContentType[] => { + return ( + Array.isArray(content) && + content.every( + (item) => + typeof item === 'object' && + item !== null && + typeof item.type === 'string' + ) + ); +}; + export const buildGoogleSearchRetrievalTool = (tool: Tool) => { const googleSearchRetrievalTool: GoogleSearchRetrievalTool = { googleSearchRetrieval: {}, @@ -102,7 +114,7 @@ export const VertexGoogleChatCompleteConfig: ProviderConfig = { } else if ( message.role === 'tool' && (typeof message.content === 'string' || - typeof message.content === 'object') + isContentTypeArray(message.content)) ) { parts.push({ functionResponse: { From 708b86c9085aabed6fbc37a2ac09ded99757f444 Mon Sep 17 00:00:00 2001 From: Narendranath Gogineni Date: Thu, 28 Aug 2025 17:26:05 +0530 Subject: [PATCH 3/4] remove check for type of content key as arrays are supported in vertex --- .../google-vertex-ai/chatComplete.ts | 20 ++----------------- 1 file changed, 2 insertions(+), 18 deletions(-) diff --git a/src/providers/google-vertex-ai/chatComplete.ts b/src/providers/google-vertex-ai/chatComplete.ts index c014ff1ac..7cabaa402 100644 --- a/src/providers/google-vertex-ai/chatComplete.ts +++ b/src/providers/google-vertex-ai/chatComplete.ts @@ -52,18 +52,6 @@ import { transformVertexLogprobs, } from './utils'; -const isContentTypeArray = (content: any): content is ContentType[] => { - return ( - Array.isArray(content) && - content.every( - (item) => - typeof item === 'object' && - item !== null && - typeof item.type === 'string' - ) - ); -}; - export const buildGoogleSearchRetrievalTool = (tool: Tool) => { const googleSearchRetrievalTool: GoogleSearchRetrievalTool = { googleSearchRetrieval: {}, @@ -111,16 +99,12 @@ export const VertexGoogleChatCompleteConfig: ProviderConfig = { }, }); }); - } else if ( - message.role === 'tool' && - (typeof message.content === 'string' || - isContentTypeArray(message.content)) - ) { + } else if (message.role === 'tool') { parts.push({ functionResponse: { name: message.name ?? 'gateway-tool-filler-name', response: { - content: message.content, + output: message.content, }, }, }); From c7a652c8a540717f75148eb0b2eebe628d309658 Mon Sep 17 00:00:00 2001 From: Narendranath Gogineni Date: Thu, 28 Aug 2025 17:27:50 +0530 Subject: [PATCH 4/4] replicate changes in google as well --- src/providers/google/chatComplete.ts | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/providers/google/chatComplete.ts b/src/providers/google/chatComplete.ts index beca77b08..ecd66fbc5 100644 --- a/src/providers/google/chatComplete.ts +++ b/src/providers/google/chatComplete.ts @@ -200,15 +200,12 @@ export const GoogleChatCompleteConfig: ProviderConfig = { }, }); }); - } else if ( - message.role === 'tool' && - typeof message.content === 'string' - ) { + } else if (message.role === 'tool') { parts.push({ functionResponse: { name: message.name ?? 'gateway-tool-filler-name', response: { - content: message.content, + output: message.content, }, }, });