@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.
@@ -943,10 +943,10 @@ var FileAnnotationSchema = z3.object({
943
943
  z3.object({
944
944
  type: z3.string(),
945
945
  text: z3.string().optional()
946
- }).passthrough()
946
+ }).catchall(z3.any())
947
947
  ).optional()
948
- }).passthrough()
949
- });
948
+ }).catchall(z3.any())
949
+ }).catchall(z3.any());
950
950
  var OpenRouterProviderMetadataSchema = z3.object({
951
951
  provider: z3.string(),
952
952
  reasoning_details: z3.array(ReasoningDetailUnionSchema).optional(),
@@ -955,18 +955,18 @@ var OpenRouterProviderMetadataSchema = z3.object({
955
955
  promptTokens: z3.number(),
956
956
  promptTokensDetails: z3.object({
957
957
  cachedTokens: z3.number()
958
- }).passthrough().optional(),
958
+ }).catchall(z3.any()).optional(),
959
959
  completionTokens: z3.number(),
960
960
  completionTokensDetails: z3.object({
961
961
  reasoningTokens: z3.number()
962
- }).passthrough().optional(),
962
+ }).catchall(z3.any()).optional(),
963
963
  totalTokens: z3.number(),
964
964
  cost: z3.number().optional(),
965
965
  costDetails: z3.object({
966
966
  upstreamInferenceCost: z3.number()
967
- }).passthrough().optional()
968
- }).passthrough()
969
- }).passthrough();
967
+ }).catchall(z3.any()).optional()
968
+ }).catchall(z3.any())
969
+ }).catchall(z3.any());
970
970
  var OpenRouterProviderOptionsSchema = z3.object({
971
971
  openrouter: z3.object({
972
972
  reasoning_details: z3.array(ReasoningDetailUnionSchema).optional(),
@@ -1804,9 +1804,15 @@ var OpenRouterChatLanguageModel = class {
1804
1804
  const fileAnnotations = (_k = choice.message.annotations) == null ? void 0 : _k.filter(
1805
1805
  (a) => a.type === "file"
1806
1806
  );
1807
+ const hasToolCalls = choice.message.tool_calls && choice.message.tool_calls.length > 0;
1808
+ const hasEncryptedReasoning = reasoningDetails.some(
1809
+ (d) => d.type === "reasoning.encrypted" /* Encrypted */ && d.data
1810
+ );
1811
+ const shouldOverrideFinishReason = hasToolCalls && hasEncryptedReasoning && choice.finish_reason === "stop";
1812
+ const effectiveFinishReason = shouldOverrideFinishReason ? "tool-calls" : mapOpenRouterFinishReason(choice.finish_reason);
1807
1813
  return {
1808
1814
  content,
1809
- finishReason: mapOpenRouterFinishReason(choice.finish_reason),
1815
+ finishReason: effectiveFinishReason,
1810
1816
  usage: usageInfo,
1811
1817
  warnings: [],
1812
1818
  providerMetadata: {
@@ -1878,6 +1884,7 @@ var OpenRouterChatLanguageModel = class {
1878
1884
  };
1879
1885
  const openrouterUsage = {};
1880
1886
  const accumulatedReasoningDetails = [];
1887
+ const accumulatedFileAnnotations = [];
1881
1888
  let textStarted = false;
1882
1889
  let reasoningStarted = false;
1883
1890
  let textId;
@@ -2056,6 +2063,13 @@ var OpenRouterChatLanguageModel = class {
2056
2063
  }
2057
2064
  }
2058
2065
  });
2066
+ } else if (annotation.type === "file") {
2067
+ const file = annotation.file;
2068
+ if (file && typeof file === "object" && "hash" in file && "name" in file) {
2069
+ accumulatedFileAnnotations.push(
2070
+ annotation
2071
+ );
2072
+ }
2059
2073
  }
2060
2074
  }
2061
2075
  }
@@ -2184,6 +2198,13 @@ var OpenRouterChatLanguageModel = class {
2184
2198
  },
2185
2199
  flush(controller) {
2186
2200
  var _a16;
2201
+ const hasToolCalls = toolCalls.length > 0;
2202
+ const hasEncryptedReasoning = accumulatedReasoningDetails.some(
2203
+ (d) => d.type === "reasoning.encrypted" /* Encrypted */ && d.data
2204
+ );
2205
+ if (hasToolCalls && hasEncryptedReasoning && finishReason === "stop") {
2206
+ finishReason = "tool-calls";
2207
+ }
2187
2208
  if (finishReason === "tool-calls") {
2188
2209
  for (const toolCall of toolCalls) {
2189
2210
  if (toolCall && !toolCall.sent) {
@@ -2224,6 +2245,9 @@ var OpenRouterChatLanguageModel = class {
2224
2245
  if (accumulatedReasoningDetails.length > 0) {
2225
2246
  openrouterMetadata.reasoning_details = accumulatedReasoningDetails;
2226
2247
  }
2248
+ if (accumulatedFileAnnotations.length > 0) {
2249
+ openrouterMetadata.annotations = accumulatedFileAnnotations;
2250
+ }
2227
2251
  controller.enqueue({
2228
2252
  type: "finish",
2229
2253
  finishReason,