@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 +118 -3
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +118 -3
- package/dist/index.mjs.map +1 -1
- package/dist/internal/index.js +117 -2
- package/dist/internal/index.js.map +1 -1
- package/dist/internal/index.mjs +117 -2
- package/dist/internal/index.mjs.map +1 -1
- package/package.json +1 -1
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:
|
|
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.
|
|
4727
|
+
var VERSION2 = false ? "0.0.0-test" : "2.3.2";
|
|
4613
4728
|
|
|
4614
4729
|
// src/provider.ts
|
|
4615
4730
|
function createOpenRouter(options = {}) {
|