@llmgateway/ai-sdk-provider 3.7.0 → 3.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2240,6 +2240,29 @@ function getBase64FromDataUrl(dataUrl) {
2240
2240
  }
2241
2241
 
2242
2242
  // src/chat/convert-to-llmgateway-chat-messages.ts
2243
+ var AUDIO_FORMAT_BY_MIME = {
2244
+ "audio/wav": "wav",
2245
+ "audio/wave": "wav",
2246
+ "audio/x-wav": "wav",
2247
+ "audio/mpeg": "mp3",
2248
+ "audio/mp3": "mp3",
2249
+ "audio/mp4": "mp4",
2250
+ "audio/m4a": "m4a",
2251
+ "audio/x-m4a": "m4a",
2252
+ "audio/aac": "aac",
2253
+ "audio/ogg": "ogg",
2254
+ "audio/flac": "flac",
2255
+ "audio/aiff": "aiff",
2256
+ "audio/x-aiff": "aiff",
2257
+ "audio/webm": "webm"
2258
+ };
2259
+ function audioFormatFromMime(mime) {
2260
+ var _a16;
2261
+ if (!mime) return void 0;
2262
+ const lower = (_a16 = mime.toLowerCase().split(";")[0]) == null ? void 0 : _a16.trim();
2263
+ if (!lower) return void 0;
2264
+ return AUDIO_FORMAT_BY_MIME[lower];
2265
+ }
2243
2266
  function getCacheControl(providerOptions) {
2244
2267
  var _a16, _b16, _c;
2245
2268
  const anthropic = providerOptions == null ? void 0 : providerOptions.anthropic;
@@ -2278,7 +2301,7 @@ function convertToLLMGatewayChatMessages(prompt) {
2278
2301
  const messageCacheControl = getCacheControl(providerOptions);
2279
2302
  const contentParts = content.map(
2280
2303
  (part) => {
2281
- var _a17, _b17, _c2, _d, _e, _f;
2304
+ var _a17, _b17, _c2, _d, _e, _f, _g;
2282
2305
  const cacheControl = (_a17 = getCacheControl(part.providerOptions)) != null ? _a17 : messageCacheControl;
2283
2306
  switch (part.type) {
2284
2307
  case "text":
@@ -2303,8 +2326,27 @@ function convertToLLMGatewayChatMessages(prompt) {
2303
2326
  cache_control: cacheControl
2304
2327
  };
2305
2328
  }
2329
+ if ((_c2 = part.mediaType) == null ? void 0 : _c2.startsWith("audio/")) {
2330
+ const format = audioFormatFromMime(part.mediaType);
2331
+ if (format) {
2332
+ const fileUrl = getFileUrl({
2333
+ part,
2334
+ defaultMediaType: part.mediaType
2335
+ });
2336
+ if (fileUrl.startsWith("data:")) {
2337
+ return {
2338
+ type: "input_audio",
2339
+ input_audio: {
2340
+ data: getBase64FromDataUrl(fileUrl),
2341
+ format
2342
+ },
2343
+ cache_control: cacheControl
2344
+ };
2345
+ }
2346
+ }
2347
+ }
2306
2348
  const fileName = String(
2307
- (_f = (_e = (_d = (_c2 = part.providerOptions) == null ? void 0 : _c2.llmgateway) == null ? void 0 : _d.filename) != null ? _e : part.filename) != null ? _f : ""
2349
+ (_g = (_f = (_e = (_d = part.providerOptions) == null ? void 0 : _d.llmgateway) == null ? void 0 : _e.filename) != null ? _f : part.filename) != null ? _g : ""
2308
2350
  );
2309
2351
  const fileData = getFileUrl({
2310
2352
  part,