From 814380b85c51500e2e4b6de63658c9f92b05f24f Mon Sep 17 00:00:00 2001 From: XIN PENG Date: Tue, 17 Feb 2026 08:21:07 -0800 Subject: [PATCH] fix: normalize Base64 data URL input before image conversion --- src/tools/look-at/mime-type-inference.test.ts | 5 +++++ src/tools/look-at/tools.ts | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/tools/look-at/mime-type-inference.test.ts b/src/tools/look-at/mime-type-inference.test.ts index ed76e1b4..69ac6e6b 100644 --- a/src/tools/look-at/mime-type-inference.test.ts +++ b/src/tools/look-at/mime-type-inference.test.ts @@ -33,4 +33,9 @@ describe("mime type inference", () => { const base64 = extractBase64Data("data:image/png;base64,abc123") expect(base64).toBe("abc123") }) + + test("extracts raw base64 data from data URL with extra parameters", () => { + const base64 = extractBase64Data("data:image/heic;name=clip.heic;base64,abc123") + expect(base64).toBe("abc123") + }) }) diff --git a/src/tools/look-at/tools.ts b/src/tools/look-at/tools.ts index b7643860..a4c67f05 100644 --- a/src/tools/look-at/tools.ts +++ b/src/tools/look-at/tools.ts @@ -60,7 +60,7 @@ export function createLookAt(ctx: PluginInput): ToolDefinition { if (needsConversion(mimeType)) { log(`[look_at] Detected unsupported Base64 format: ${mimeType}, converting to JPEG...`) try { - const { base64, tempFiles } = convertBase64ImageToJpeg(imageData, mimeType) + const { base64, tempFiles } = convertBase64ImageToJpeg(finalBase64Data, mimeType) finalBase64Data = base64 finalMimeType = "image/jpeg" tempFilesToCleanup = tempFiles