@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/internal/index.js
CHANGED
|
@@ -977,10 +977,10 @@ var FileAnnotationSchema = import_v43.z.object({
|
|
|
977
977
|
import_v43.z.object({
|
|
978
978
|
type: import_v43.z.string(),
|
|
979
979
|
text: import_v43.z.string().optional()
|
|
980
|
-
}).
|
|
980
|
+
}).catchall(import_v43.z.any())
|
|
981
981
|
).optional()
|
|
982
|
-
}).
|
|
983
|
-
});
|
|
982
|
+
}).catchall(import_v43.z.any())
|
|
983
|
+
}).catchall(import_v43.z.any());
|
|
984
984
|
var OpenRouterProviderMetadataSchema = import_v43.z.object({
|
|
985
985
|
provider: import_v43.z.string(),
|
|
986
986
|
reasoning_details: import_v43.z.array(ReasoningDetailUnionSchema).optional(),
|
|
@@ -989,18 +989,18 @@ var OpenRouterProviderMetadataSchema = import_v43.z.object({
|
|
|
989
989
|
promptTokens: import_v43.z.number(),
|
|
990
990
|
promptTokensDetails: import_v43.z.object({
|
|
991
991
|
cachedTokens: import_v43.z.number()
|
|
992
|
-
}).
|
|
992
|
+
}).catchall(import_v43.z.any()).optional(),
|
|
993
993
|
completionTokens: import_v43.z.number(),
|
|
994
994
|
completionTokensDetails: import_v43.z.object({
|
|
995
995
|
reasoningTokens: import_v43.z.number()
|
|
996
|
-
}).
|
|
996
|
+
}).catchall(import_v43.z.any()).optional(),
|
|
997
997
|
totalTokens: import_v43.z.number(),
|
|
998
998
|
cost: import_v43.z.number().optional(),
|
|
999
999
|
costDetails: import_v43.z.object({
|
|
1000
1000
|
upstreamInferenceCost: import_v43.z.number()
|
|
1001
|
-
}).
|
|
1002
|
-
}).
|
|
1003
|
-
}).
|
|
1001
|
+
}).catchall(import_v43.z.any()).optional()
|
|
1002
|
+
}).catchall(import_v43.z.any())
|
|
1003
|
+
}).catchall(import_v43.z.any());
|
|
1004
1004
|
var OpenRouterProviderOptionsSchema = import_v43.z.object({
|
|
1005
1005
|
openrouter: import_v43.z.object({
|
|
1006
1006
|
reasoning_details: import_v43.z.array(ReasoningDetailUnionSchema).optional(),
|
|
@@ -1838,9 +1838,15 @@ var OpenRouterChatLanguageModel = class {
|
|
|
1838
1838
|
const fileAnnotations = (_k = choice.message.annotations) == null ? void 0 : _k.filter(
|
|
1839
1839
|
(a) => a.type === "file"
|
|
1840
1840
|
);
|
|
1841
|
+
const hasToolCalls = choice.message.tool_calls && choice.message.tool_calls.length > 0;
|
|
1842
|
+
const hasEncryptedReasoning = reasoningDetails.some(
|
|
1843
|
+
(d) => d.type === "reasoning.encrypted" /* Encrypted */ && d.data
|
|
1844
|
+
);
|
|
1845
|
+
const shouldOverrideFinishReason = hasToolCalls && hasEncryptedReasoning && choice.finish_reason === "stop";
|
|
1846
|
+
const effectiveFinishReason = shouldOverrideFinishReason ? "tool-calls" : mapOpenRouterFinishReason(choice.finish_reason);
|
|
1841
1847
|
return {
|
|
1842
1848
|
content,
|
|
1843
|
-
finishReason:
|
|
1849
|
+
finishReason: effectiveFinishReason,
|
|
1844
1850
|
usage: usageInfo,
|
|
1845
1851
|
warnings: [],
|
|
1846
1852
|
providerMetadata: {
|
|
@@ -1912,6 +1918,7 @@ var OpenRouterChatLanguageModel = class {
|
|
|
1912
1918
|
};
|
|
1913
1919
|
const openrouterUsage = {};
|
|
1914
1920
|
const accumulatedReasoningDetails = [];
|
|
1921
|
+
const accumulatedFileAnnotations = [];
|
|
1915
1922
|
let textStarted = false;
|
|
1916
1923
|
let reasoningStarted = false;
|
|
1917
1924
|
let textId;
|
|
@@ -2090,6 +2097,13 @@ var OpenRouterChatLanguageModel = class {
|
|
|
2090
2097
|
}
|
|
2091
2098
|
}
|
|
2092
2099
|
});
|
|
2100
|
+
} else if (annotation.type === "file") {
|
|
2101
|
+
const file = annotation.file;
|
|
2102
|
+
if (file && typeof file === "object" && "hash" in file && "name" in file) {
|
|
2103
|
+
accumulatedFileAnnotations.push(
|
|
2104
|
+
annotation
|
|
2105
|
+
);
|
|
2106
|
+
}
|
|
2093
2107
|
}
|
|
2094
2108
|
}
|
|
2095
2109
|
}
|
|
@@ -2218,6 +2232,13 @@ var OpenRouterChatLanguageModel = class {
|
|
|
2218
2232
|
},
|
|
2219
2233
|
flush(controller) {
|
|
2220
2234
|
var _a16;
|
|
2235
|
+
const hasToolCalls = toolCalls.length > 0;
|
|
2236
|
+
const hasEncryptedReasoning = accumulatedReasoningDetails.some(
|
|
2237
|
+
(d) => d.type === "reasoning.encrypted" /* Encrypted */ && d.data
|
|
2238
|
+
);
|
|
2239
|
+
if (hasToolCalls && hasEncryptedReasoning && finishReason === "stop") {
|
|
2240
|
+
finishReason = "tool-calls";
|
|
2241
|
+
}
|
|
2221
2242
|
if (finishReason === "tool-calls") {
|
|
2222
2243
|
for (const toolCall of toolCalls) {
|
|
2223
2244
|
if (toolCall && !toolCall.sent) {
|
|
@@ -2258,6 +2279,9 @@ var OpenRouterChatLanguageModel = class {
|
|
|
2258
2279
|
if (accumulatedReasoningDetails.length > 0) {
|
|
2259
2280
|
openrouterMetadata.reasoning_details = accumulatedReasoningDetails;
|
|
2260
2281
|
}
|
|
2282
|
+
if (accumulatedFileAnnotations.length > 0) {
|
|
2283
|
+
openrouterMetadata.annotations = accumulatedFileAnnotations;
|
|
2284
|
+
}
|
|
2261
2285
|
controller.enqueue({
|
|
2262
2286
|
type: "finish",
|
|
2263
2287
|
finishReason,
|