@openrouter/ai-sdk-provider 1.5.1 → 1.5.3
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 +34 -10
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +34 -10
- package/dist/index.mjs.map +1 -1
- package/dist/internal/index.js +33 -9
- package/dist/internal/index.js.map +1 -1
- package/dist/internal/index.mjs +33 -9
- package/dist/internal/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1025,10 +1025,10 @@ var FileAnnotationSchema = import_v43.z.object({
|
|
|
1025
1025
|
import_v43.z.object({
|
|
1026
1026
|
type: import_v43.z.string(),
|
|
1027
1027
|
text: import_v43.z.string().optional()
|
|
1028
|
-
}).
|
|
1028
|
+
}).catchall(import_v43.z.any())
|
|
1029
1029
|
).optional()
|
|
1030
|
-
}).
|
|
1031
|
-
});
|
|
1030
|
+
}).catchall(import_v43.z.any())
|
|
1031
|
+
}).catchall(import_v43.z.any());
|
|
1032
1032
|
var OpenRouterProviderMetadataSchema = import_v43.z.object({
|
|
1033
1033
|
provider: import_v43.z.string(),
|
|
1034
1034
|
reasoning_details: import_v43.z.array(ReasoningDetailUnionSchema).optional(),
|
|
@@ -1037,18 +1037,18 @@ var OpenRouterProviderMetadataSchema = import_v43.z.object({
|
|
|
1037
1037
|
promptTokens: import_v43.z.number(),
|
|
1038
1038
|
promptTokensDetails: import_v43.z.object({
|
|
1039
1039
|
cachedTokens: import_v43.z.number()
|
|
1040
|
-
}).
|
|
1040
|
+
}).catchall(import_v43.z.any()).optional(),
|
|
1041
1041
|
completionTokens: import_v43.z.number(),
|
|
1042
1042
|
completionTokensDetails: import_v43.z.object({
|
|
1043
1043
|
reasoningTokens: import_v43.z.number()
|
|
1044
|
-
}).
|
|
1044
|
+
}).catchall(import_v43.z.any()).optional(),
|
|
1045
1045
|
totalTokens: import_v43.z.number(),
|
|
1046
1046
|
cost: import_v43.z.number().optional(),
|
|
1047
1047
|
costDetails: import_v43.z.object({
|
|
1048
1048
|
upstreamInferenceCost: import_v43.z.number()
|
|
1049
|
-
}).
|
|
1050
|
-
}).
|
|
1051
|
-
}).
|
|
1049
|
+
}).catchall(import_v43.z.any()).optional()
|
|
1050
|
+
}).catchall(import_v43.z.any())
|
|
1051
|
+
}).catchall(import_v43.z.any());
|
|
1052
1052
|
var OpenRouterProviderOptionsSchema = import_v43.z.object({
|
|
1053
1053
|
openrouter: import_v43.z.object({
|
|
1054
1054
|
reasoning_details: import_v43.z.array(ReasoningDetailUnionSchema).optional(),
|
|
@@ -1886,9 +1886,15 @@ var OpenRouterChatLanguageModel = class {
|
|
|
1886
1886
|
const fileAnnotations = (_k = choice.message.annotations) == null ? void 0 : _k.filter(
|
|
1887
1887
|
(a) => a.type === "file"
|
|
1888
1888
|
);
|
|
1889
|
+
const hasToolCalls = choice.message.tool_calls && choice.message.tool_calls.length > 0;
|
|
1890
|
+
const hasEncryptedReasoning = reasoningDetails.some(
|
|
1891
|
+
(d) => d.type === "reasoning.encrypted" /* Encrypted */ && d.data
|
|
1892
|
+
);
|
|
1893
|
+
const shouldOverrideFinishReason = hasToolCalls && hasEncryptedReasoning && choice.finish_reason === "stop";
|
|
1894
|
+
const effectiveFinishReason = shouldOverrideFinishReason ? "tool-calls" : mapOpenRouterFinishReason(choice.finish_reason);
|
|
1889
1895
|
return {
|
|
1890
1896
|
content,
|
|
1891
|
-
finishReason:
|
|
1897
|
+
finishReason: effectiveFinishReason,
|
|
1892
1898
|
usage: usageInfo,
|
|
1893
1899
|
warnings: [],
|
|
1894
1900
|
providerMetadata: {
|
|
@@ -1960,6 +1966,7 @@ var OpenRouterChatLanguageModel = class {
|
|
|
1960
1966
|
};
|
|
1961
1967
|
const openrouterUsage = {};
|
|
1962
1968
|
const accumulatedReasoningDetails = [];
|
|
1969
|
+
const accumulatedFileAnnotations = [];
|
|
1963
1970
|
let textStarted = false;
|
|
1964
1971
|
let reasoningStarted = false;
|
|
1965
1972
|
let textId;
|
|
@@ -2138,6 +2145,13 @@ var OpenRouterChatLanguageModel = class {
|
|
|
2138
2145
|
}
|
|
2139
2146
|
}
|
|
2140
2147
|
});
|
|
2148
|
+
} else if (annotation.type === "file") {
|
|
2149
|
+
const file = annotation.file;
|
|
2150
|
+
if (file && typeof file === "object" && "hash" in file && "name" in file) {
|
|
2151
|
+
accumulatedFileAnnotations.push(
|
|
2152
|
+
annotation
|
|
2153
|
+
);
|
|
2154
|
+
}
|
|
2141
2155
|
}
|
|
2142
2156
|
}
|
|
2143
2157
|
}
|
|
@@ -2266,6 +2280,13 @@ var OpenRouterChatLanguageModel = class {
|
|
|
2266
2280
|
},
|
|
2267
2281
|
flush(controller) {
|
|
2268
2282
|
var _a16;
|
|
2283
|
+
const hasToolCalls = toolCalls.length > 0;
|
|
2284
|
+
const hasEncryptedReasoning = accumulatedReasoningDetails.some(
|
|
2285
|
+
(d) => d.type === "reasoning.encrypted" /* Encrypted */ && d.data
|
|
2286
|
+
);
|
|
2287
|
+
if (hasToolCalls && hasEncryptedReasoning && finishReason === "stop") {
|
|
2288
|
+
finishReason = "tool-calls";
|
|
2289
|
+
}
|
|
2269
2290
|
if (finishReason === "tool-calls") {
|
|
2270
2291
|
for (const toolCall of toolCalls) {
|
|
2271
2292
|
if (toolCall && !toolCall.sent) {
|
|
@@ -2306,6 +2327,9 @@ var OpenRouterChatLanguageModel = class {
|
|
|
2306
2327
|
if (accumulatedReasoningDetails.length > 0) {
|
|
2307
2328
|
openrouterMetadata.reasoning_details = accumulatedReasoningDetails;
|
|
2308
2329
|
}
|
|
2330
|
+
if (accumulatedFileAnnotations.length > 0) {
|
|
2331
|
+
openrouterMetadata.annotations = accumulatedFileAnnotations;
|
|
2332
|
+
}
|
|
2309
2333
|
controller.enqueue({
|
|
2310
2334
|
type: "finish",
|
|
2311
2335
|
finishReason,
|
|
@@ -2857,7 +2881,7 @@ function withUserAgentSuffix(headers, ...userAgentSuffixParts) {
|
|
|
2857
2881
|
}
|
|
2858
2882
|
|
|
2859
2883
|
// src/version.ts
|
|
2860
|
-
var VERSION = false ? "0.0.0-test" : "1.5.
|
|
2884
|
+
var VERSION = false ? "0.0.0-test" : "1.5.3";
|
|
2861
2885
|
|
|
2862
2886
|
// src/provider.ts
|
|
2863
2887
|
function createOpenRouter(options = {}) {
|