From 98b97b66ae5f26094766073748f04bc6dfca24a3 Mon Sep 17 00:00:00 2001 From: Daniel Smolsky Date: Fri, 28 Nov 2025 22:12:44 -0500 Subject: [PATCH 1/2] fix: use Struct format for Gemini functionResponse to ensure API compatibility The Gemini API expects functionResponse.response to be a Struct (object), not a plain string. This change wraps the pruned content message in an object with 'name' and 'content' fields to match the expected format. --- lib/fetch-wrapper/gemini.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/fetch-wrapper/gemini.ts b/lib/fetch-wrapper/gemini.ts index 527c00a..1055700 100644 --- a/lib/fetch-wrapper/gemini.ts +++ b/lib/fetch-wrapper/gemini.ts @@ -78,12 +78,15 @@ export async function handleGemini( contentModified = true replacedCount++ // Preserve thoughtSignature if present (required for Gemini 3 Pro) - // Only replace the response content, not the structure + // response must be a Struct (object), not a plain string return { ...part, functionResponse: { ...part.functionResponse, - response: PRUNED_CONTENT_MESSAGE + response: { + name: part.functionResponse.name, + content: PRUNED_CONTENT_MESSAGE + } } } } From 8fdd9c4ae815e070f7bbdd73684301d2b397d162 Mon Sep 17 00:00:00 2001 From: Daniel Smolsky Date: Fri, 28 Nov 2025 22:12:59 -0500 Subject: [PATCH 2/2] v0.3.22 - Bump version --- README.md | 2 +- package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 4806c5b..ff73533 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ Add to your OpenCode config: ```jsonc // opencode.jsonc { - "plugin": ["@tarquinen/opencode-dcp@0.3.21"] + "plugin": ["@tarquinen/opencode-dcp@0.3.22"] } ``` diff --git a/package-lock.json b/package-lock.json index 92b3e11..4340a3a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@tarquinen/opencode-dcp", - "version": "0.3.21", + "version": "0.3.22", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@tarquinen/opencode-dcp", - "version": "0.3.21", + "version": "0.3.22", "license": "MIT", "dependencies": { "@ai-sdk/openai-compatible": "^1.0.27", diff --git a/package.json b/package.json index ea9361c..7f422e3 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/package.json", "name": "@tarquinen/opencode-dcp", - "version": "0.3.21", + "version": "0.3.22", "type": "module", "description": "OpenCode plugin that optimizes token usage by pruning obsolete tool outputs from conversation context", "main": "./dist/index.js",