@openrouter/ai-sdk-provider 2.3.0 → 2.3.2

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
@@ -2793,11 +2793,12 @@ function convertToOpenRouterChatMessages(prompt) {
2793
2793
  }
2794
2794
  finalReasoningDetails = uniqueDetails.length > 0 ? uniqueDetails : void 0;
2795
2795
  }
2796
+ const effectiveReasoning = reasoning && finalReasoningDetails ? reasoning : void 0;
2796
2797
  messages.push({
2797
2798
  role: "assistant",
2798
2799
  content: text,
2799
2800
  tool_calls: toolCalls.length > 0 ? toolCalls : void 0,
2800
- reasoning: reasoning || void 0,
2801
+ reasoning: effectiveReasoning,
2801
2802
  reasoning_details: finalReasoningDetails,
2802
2803
  annotations: messageAnnotations,
2803
2804
  cache_control: getCacheControl(providerOptions)
@@ -2834,12 +2835,126 @@ function getToolResultContent(input) {
2834
2835
  return input.output.value;
2835
2836
  case "json":
2836
2837
  case "error-json":
2837
- case "content":
2838
2838
  return JSON.stringify(input.output.value);
2839
+ case "content":
2840
+ return mapToolResultContentParts(input.output.value);
2839
2841
  case "execution-denied":
2840
2842
  return (_a16 = input.output.reason) != null ? _a16 : "Tool execution denied";
2841
2843
  }
2842
2844
  }
2845
+ function mapToolResultContentParts(parts) {
2846
+ return parts.map((part) => {
2847
+ var _a16, _b16, _c;
2848
+ switch (part.type) {
2849
+ case "text":
2850
+ return { type: "text", text: part.text };
2851
+ case "image-data":
2852
+ return {
2853
+ type: "image_url",
2854
+ image_url: {
2855
+ url: buildFileDataUrl({
2856
+ data: part.data,
2857
+ mediaType: part.mediaType,
2858
+ defaultMediaType: "image/jpeg"
2859
+ })
2860
+ }
2861
+ };
2862
+ case "image-url":
2863
+ return {
2864
+ type: "image_url",
2865
+ image_url: { url: part.url }
2866
+ };
2867
+ case "file-data": {
2868
+ const dataUrl = buildFileDataUrl({
2869
+ data: part.data,
2870
+ mediaType: part.mediaType,
2871
+ defaultMediaType: "application/octet-stream"
2872
+ });
2873
+ if ((_a16 = part.mediaType) == null ? void 0 : _a16.startsWith("image/")) {
2874
+ return {
2875
+ type: "image_url",
2876
+ image_url: { url: dataUrl }
2877
+ };
2878
+ }
2879
+ if ((_b16 = part.mediaType) == null ? void 0 : _b16.startsWith("audio/")) {
2880
+ const rawFormat = part.mediaType.replace("audio/", "");
2881
+ const format = MIME_TO_FORMAT[rawFormat];
2882
+ if (format !== void 0) {
2883
+ return {
2884
+ type: "input_audio",
2885
+ input_audio: {
2886
+ data: getBase64FromDataUrl(dataUrl),
2887
+ format
2888
+ }
2889
+ };
2890
+ }
2891
+ }
2892
+ return {
2893
+ type: "file",
2894
+ file: {
2895
+ filename: (_c = part.filename) != null ? _c : "",
2896
+ file_data: dataUrl
2897
+ }
2898
+ };
2899
+ }
2900
+ case "file-url": {
2901
+ if (looksLikeImageUrl(part.url)) {
2902
+ return {
2903
+ type: "image_url",
2904
+ image_url: { url: part.url }
2905
+ };
2906
+ }
2907
+ return {
2908
+ type: "file",
2909
+ file: {
2910
+ filename: filenameFromUrl(part.url),
2911
+ file_data: part.url
2912
+ }
2913
+ };
2914
+ }
2915
+ case "file-id":
2916
+ case "image-file-id":
2917
+ case "custom":
2918
+ return { type: "text", text: JSON.stringify(part) };
2919
+ default: {
2920
+ const _exhaustiveCheck = part;
2921
+ return { type: "text", text: JSON.stringify(_exhaustiveCheck) };
2922
+ }
2923
+ }
2924
+ });
2925
+ }
2926
+ var IMAGE_EXTENSIONS = /* @__PURE__ */ new Set([
2927
+ "jpg",
2928
+ "jpeg",
2929
+ "png",
2930
+ "gif",
2931
+ "webp",
2932
+ "svg",
2933
+ "bmp",
2934
+ "ico",
2935
+ "tif",
2936
+ "tiff",
2937
+ "avif"
2938
+ ]);
2939
+ function looksLikeImageUrl(url) {
2940
+ var _a16;
2941
+ try {
2942
+ const pathname = new URL(url).pathname;
2943
+ const ext = (_a16 = pathname.split(".").pop()) == null ? void 0 : _a16.toLowerCase();
2944
+ return ext !== void 0 && IMAGE_EXTENSIONS.has(ext);
2945
+ } catch (e) {
2946
+ return false;
2947
+ }
2948
+ }
2949
+ function filenameFromUrl(url) {
2950
+ try {
2951
+ const pathname = new URL(url).pathname;
2952
+ const last = pathname.split("/").pop();
2953
+ return (last == null ? void 0 : last.includes(".")) ? last : "";
2954
+ } catch (e) {
2955
+ return "";
2956
+ }
2957
+ }
2843
2958
  function findFirstReasoningDetails(content) {
2844
2959
  var _a16, _b16, _c;
2845
2960
  for (const part of content) {
@@ -4609,7 +4724,7 @@ function withUserAgentSuffix2(headers, ...userAgentSuffixParts) {
4609
4724
  }
4610
4725
 
4611
4726
  // src/version.ts
4612
- var VERSION2 = false ? "0.0.0-test" : "2.3.0";
4727
+ var VERSION2 = false ? "0.0.0-test" : "2.3.2";
4613
4728
 
4614
4729
  // src/provider.ts
4615
4730
  function createOpenRouter(options = {}) {