From e0b29de02da7b71b89cac35c929b81c6949d1994 Mon Sep 17 00:00:00 2001 From: lucas-barake <86905052+lucas-barake@users.noreply.github.com> Date: Wed, 28 Jan 2026 19:54:20 -0500 Subject: [PATCH] Wrap primitive tool results in object for Gemini API compatibility --- .changeset/fix-google-primitive-tool-results.md | 5 +++++ packages/ai/google/src/GoogleLanguageModel.ts | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 .changeset/fix-google-primitive-tool-results.md diff --git a/.changeset/fix-google-primitive-tool-results.md b/.changeset/fix-google-primitive-tool-results.md new file mode 100644 index 00000000000..97194ea175c --- /dev/null +++ b/.changeset/fix-google-primitive-tool-results.md @@ -0,0 +1,5 @@ +--- +"@effect/ai-google": patch +--- + +Wrap primitive tool results in an object before sending to Gemini diff --git a/packages/ai/google/src/GoogleLanguageModel.ts b/packages/ai/google/src/GoogleLanguageModel.ts index 760022de4bd..adf1effc39b 100644 --- a/packages/ai/google/src/GoogleLanguageModel.ts +++ b/packages/ai/google/src/GoogleLanguageModel.ts @@ -386,11 +386,12 @@ const prepareMessages: ( const parts: Array = [] for (const part of message.content) { + const response = Predicate.isRecord(part.result) ? part.result : { result: part.result } parts.push({ functionResponse: { id: part.id, name: part.name, - response: part.result as any + response: response as any } }) }