@ai-sdk/anthropic 3.0.0-beta.35 → 3.0.0-beta.37

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/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @ai-sdk/anthropic
2
2
 
3
+ ## 3.0.0-beta.37
4
+
5
+ ### Patch Changes
6
+
7
+ - 7c4328e: Adds url-based pdf and image support for anthropic tool results
8
+
9
+ ## 3.0.0-beta.36
10
+
11
+ ### Patch Changes
12
+
13
+ - 21f378c: fix(provider/anthropic): do not limit maxTokens when model id is unknown
14
+
3
15
  ## 3.0.0-beta.35
4
16
 
5
17
  ### Patch Changes
package/dist/index.js CHANGED
@@ -31,7 +31,7 @@ var import_provider4 = require("@ai-sdk/provider");
31
31
  var import_provider_utils20 = require("@ai-sdk/provider-utils");
32
32
 
33
33
  // src/version.ts
34
- var VERSION = true ? "3.0.0-beta.35" : "0.0.0-test";
34
+ var VERSION = true ? "3.0.0-beta.37" : "0.0.0-test";
35
35
 
36
36
  // src/anthropic-messages-language-model.ts
37
37
  var import_provider3 = require("@ai-sdk/provider");
@@ -1381,6 +1381,24 @@ async function convertToAnthropicMessagesPrompt({
1381
1381
  }
1382
1382
  };
1383
1383
  }
1384
+ case "image-url": {
1385
+ return {
1386
+ type: "image",
1387
+ source: {
1388
+ type: "url",
1389
+ url: contentPart.url
1390
+ }
1391
+ };
1392
+ }
1393
+ case "file-url": {
1394
+ return {
1395
+ type: "document",
1396
+ source: {
1397
+ type: "url",
1398
+ url: contentPart.url
1399
+ }
1400
+ };
1401
+ }
1384
1402
  case "file-data": {
1385
1403
  if (contentPart.mediaType === "application/pdf") {
1386
1404
  betas.add("pdfs-2024-09-25");
@@ -1919,7 +1937,7 @@ var AnthropicMessagesLanguageModel = class {
1919
1937
  });
1920
1938
  const isThinking = ((_b = anthropicOptions == null ? void 0 : anthropicOptions.thinking) == null ? void 0 : _b.type) === "enabled";
1921
1939
  const thinkingBudget = (_c = anthropicOptions == null ? void 0 : anthropicOptions.thinking) == null ? void 0 : _c.budgetTokens;
1922
- const maxOutputTokensForModel = getMaxOutputTokensForModel(this.modelId);
1940
+ const { maxOutputTokens: maxOutputTokensForModel, knownModel } = getMaxOutputTokensForModel(this.modelId);
1923
1941
  const maxTokens = maxOutputTokens != null ? maxOutputTokens : maxOutputTokensForModel;
1924
1942
  const baseArgs = {
1925
1943
  // model id:
@@ -1994,7 +2012,7 @@ var AnthropicMessagesLanguageModel = class {
1994
2012
  }
1995
2013
  baseArgs.max_tokens = maxTokens + thinkingBudget;
1996
2014
  }
1997
- if (baseArgs.max_tokens > maxOutputTokensForModel) {
2015
+ if (knownModel && baseArgs.max_tokens > maxOutputTokensForModel) {
1998
2016
  if (maxOutputTokens != null) {
1999
2017
  warnings.push({
2000
2018
  type: "unsupported-setting",
@@ -2884,13 +2902,15 @@ var AnthropicMessagesLanguageModel = class {
2884
2902
  };
2885
2903
  function getMaxOutputTokensForModel(modelId) {
2886
2904
  if (modelId.includes("claude-sonnet-4-") || modelId.includes("claude-3-7-sonnet") || modelId.includes("claude-haiku-4-5")) {
2887
- return 64e3;
2905
+ return { maxOutputTokens: 64e3, knownModel: true };
2888
2906
  } else if (modelId.includes("claude-opus-4-")) {
2889
- return 32e3;
2907
+ return { maxOutputTokens: 32e3, knownModel: true };
2890
2908
  } else if (modelId.includes("claude-3-5-haiku")) {
2891
- return 8192;
2909
+ return { maxOutputTokens: 8192, knownModel: true };
2910
+ } else if (modelId.includes("claude-3-haiku")) {
2911
+ return { maxOutputTokens: 4096, knownModel: true };
2892
2912
  } else {
2893
- return 4096;
2913
+ return { maxOutputTokens: 4096, knownModel: false };
2894
2914
  }
2895
2915
  }
2896
2916