refactor(translator): P4 concern #2 encodeDataUri — dedupe base64 data-uri building

- imageHelper.encodeDataUri(mime, base64) replaces 5 inline `data:${m};base64,${d}` templates
- Applied to gemini/claude/antigravity request + gemini response translators
- Golden tests pass, identical output

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
decolua
2026-06-13 21:23:32 +07:00
co-authored by Cursor
parent 4cc667253a
commit 252bf56a9f
5 changed files with 13 additions and 4 deletions
@@ -1,6 +1,7 @@
import { register } from "../index.js";
import { FORMATS } from "../formats.js";
import { adjustMaxTokens } from "../helpers/maxTokensHelper.js";
import { encodeDataUri } from "../helpers/imageHelper.js";
// Convert Antigravity request to OpenAI format
// Antigravity body: { project, model, userAgent, requestType, requestId, request: { contents, systemInstruction, tools, toolConfig, generationConfig, sessionId } }
@@ -156,7 +157,7 @@ function convertContent(content) {
textParts.push({
type: "image_url",
image_url: {
url: `data:${part.inlineData.mimeType};base64,${part.inlineData.data}`
url: encodeDataUri(part.inlineData.mimeType, part.inlineData.data)
}
});
}
@@ -1,6 +1,7 @@
import { register } from "../index.js";
import { FORMATS } from "../formats.js";
import { adjustMaxTokens } from "../helpers/maxTokensHelper.js";
import { encodeDataUri } from "../helpers/imageHelper.js";
function stripAnthropicBillingHeader(text) {
if (typeof text !== "string") return "";
@@ -140,7 +141,7 @@ function convertClaudeMessage(msg) {
parts.push({
type: "image_url",
image_url: {
url: `data:${block.source.media_type};base64,${block.source.data}`
url: encodeDataUri(block.source.media_type, block.source.data)
}
});
}
@@ -1,6 +1,7 @@
import { register } from "../index.js";
import { FORMATS } from "../formats.js";
import { adjustMaxTokens } from "../helpers/maxTokensHelper.js";
import { encodeDataUri } from "../helpers/imageHelper.js";
// Convert Gemini request to OpenAI format
export function geminiToOpenAIRequest(model, body, stream) {
@@ -88,7 +89,7 @@ function convertGeminiContent(content) {
parts.push({
type: "image_url",
image_url: {
url: `data:${part.inlineData.mimeType};base64,${part.inlineData.data}`
url: encodeDataUri(part.inlineData.mimeType, part.inlineData.data)
}
});
}