fix(gemini): validate audio format before mime normalization

This commit is contained in:
KooshaPari
2026-06-26 05:29:33 -07:00
parent 41167dcf0b
commit 0a82a9c517
2 changed files with 9 additions and 1 deletions

View File

@@ -96,7 +96,8 @@ export const DEFAULT_SAFETY_SETTINGS = [
];
function normalizeAudioMimeType(format: unknown): string {
const normalized = String(format || "wav").toLowerCase();
const normalized =
typeof format === "string" && format.trim() ? format.trim().toLowerCase() : "wav";
if (normalized === "mp3") {
return "audio/mpeg";
}

View File

@@ -39,3 +39,10 @@ test("convertOpenAIContentToParts defaults the audio mime type to audio/wav", ()
]);
assert.deepEqual(parts, [{ inlineData: { mimeType: "audio/wav", data: "QUJDRA==" } }]);
});
test("convertOpenAIContentToParts ignores non-string audio format values", () => {
const parts = gemini.convertOpenAIContentToParts([
{ type: "input_audio", input_audio: { data: "QUJDRA==", format: 123 } },
]);
assert.deepEqual(parts, [{ inlineData: { mimeType: "audio/wav", data: "QUJDRA==" } }]);
});