@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.
package/dist/index.js CHANGED
@@ -2308,6 +2308,29 @@ function getBase64FromDataUrl(dataUrl) {
2308
2308
  }
2309
2309
 
2310
2310
  // src/chat/convert-to-llmgateway-chat-messages.ts
2311
+ var AUDIO_FORMAT_BY_MIME = {
2312
+ "audio/wav": "wav",
2313
+ "audio/wave": "wav",
2314
+ "audio/x-wav": "wav",
2315
+ "audio/mpeg": "mp3",
2316
+ "audio/mp3": "mp3",
2317
+ "audio/mp4": "mp4",
2318
+ "audio/m4a": "m4a",
2319
+ "audio/x-m4a": "m4a",
2320
+ "audio/aac": "aac",
2321
+ "audio/ogg": "ogg",
2322
+ "audio/flac": "flac",
2323
+ "audio/aiff": "aiff",
2324
+ "audio/x-aiff": "aiff",
2325
+ "audio/webm": "webm"
2326
+ };
2327
+ function audioFormatFromMime(mime) {
2328
+ var _a16;
2329
+ if (!mime) return void 0;
2330
+ const lower = (_a16 = mime.toLowerCase().split(";")[0]) == null ? void 0 : _a16.trim();
2331
+ if (!lower) return void 0;
2332
+ return AUDIO_FORMAT_BY_MIME[lower];
2333
+ }
2311
2334
  function getCacheControl(providerOptions) {
2312
2335
  var _a16, _b16, _c;
2313
2336
  const anthropic = providerOptions == null ? void 0 : providerOptions.anthropic;
@@ -2346,7 +2369,7 @@ function convertToLLMGatewayChatMessages(prompt) {
2346
2369
  const messageCacheControl = getCacheControl(providerOptions);
2347
2370
  const contentParts = content.map(
2348
2371
  (part) => {
2349
- var _a17, _b17, _c2, _d, _e, _f;
2372
+ var _a17, _b17, _c2, _d, _e, _f, _g;
2350
2373
  const cacheControl = (_a17 = getCacheControl(part.providerOptions)) != null ? _a17 : messageCacheControl;
2351
2374
  switch (part.type) {
2352
2375
  case "text":
@@ -2371,8 +2394,27 @@ function convertToLLMGatewayChatMessages(prompt) {
2371
2394
  cache_control: cacheControl
2372
2395
  };
2373
2396
  }
2397
+ if ((_c2 = part.mediaType) == null ? void 0 : _c2.startsWith("audio/")) {
2398
+ const format = audioFormatFromMime(part.mediaType);
2399
+ if (format) {
2400
+ const fileUrl = getFileUrl({
2401
+ part,
2402
+ defaultMediaType: part.mediaType
2403
+ });
2404
+ if (fileUrl.startsWith("data:")) {
2405
+ return {
2406
+ type: "input_audio",
2407
+ input_audio: {
2408
+ data: getBase64FromDataUrl(fileUrl),
2409
+ format
2410
+ },
2411
+ cache_control: cacheControl
2412
+ };
2413
+ }
2414
+ }
2415
+ }
2374
2416
  const fileName = String(
2375
- (_f = (_e = (_d = (_c2 = part.providerOptions) == null ? void 0 : _c2.llmgateway) == null ? void 0 : _d.filename) != null ? _e : part.filename) != null ? _f : ""
2417
+ (_g = (_f = (_e = (_d = part.providerOptions) == null ? void 0 : _d.llmgateway) == null ? void 0 : _e.filename) != null ? _f : part.filename) != null ? _g : ""
2376
2418
  );
2377
2419
  const fileData = getFileUrl({
2378
2420
  part,