@ai-sdk/anthropic 3.0.93 → 3.0.95
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 +17 -0
- package/dist/index.js +12 -6
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +17 -9
- package/dist/index.mjs.map +1 -1
- package/dist/internal/index.js +3 -3
- package/dist/internal/index.js.map +1 -1
- package/dist/internal/index.mjs +8 -6
- package/dist/internal/index.mjs.map +1 -1
- package/package.json +2 -2
- package/src/anthropic-messages-language-model.ts +2 -1
- package/src/anthropic-provider.ts +13 -2
- package/src/convert-to-anthropic-messages-prompt.ts +5 -3
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ai-sdk/anthropic",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.95",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
39
|
"@ai-sdk/provider": "3.0.13",
|
|
40
|
-
"@ai-sdk/provider-utils": "4.0.
|
|
40
|
+
"@ai-sdk/provider-utils": "4.0.37"
|
|
41
41
|
},
|
|
42
42
|
"devDependencies": {
|
|
43
43
|
"@types/node": "20.17.24",
|
|
@@ -24,6 +24,7 @@ import {
|
|
|
24
24
|
parseProviderOptions,
|
|
25
25
|
postJsonToApi,
|
|
26
26
|
resolve,
|
|
27
|
+
secureJsonParse,
|
|
27
28
|
type FetchFunction,
|
|
28
29
|
type InferSchema,
|
|
29
30
|
type ParseResult,
|
|
@@ -2078,7 +2079,7 @@ export class AnthropicMessagesLanguageModel implements LanguageModelV3 {
|
|
|
2078
2079
|
contentBlock.input === '' ? '{}' : contentBlock.input;
|
|
2079
2080
|
if (contentBlock.providerToolName === 'code_execution') {
|
|
2080
2081
|
try {
|
|
2081
|
-
const parsed =
|
|
2082
|
+
const parsed = secureJsonParse(finalInput);
|
|
2082
2083
|
if (
|
|
2083
2084
|
parsed != null &&
|
|
2084
2085
|
typeof parsed === 'object' &&
|
|
@@ -17,6 +17,17 @@ import { AnthropicMessagesLanguageModel } from './anthropic-messages-language-mo
|
|
|
17
17
|
import type { AnthropicMessagesModelId } from './anthropic-messages-options';
|
|
18
18
|
import { anthropicTools } from './anthropic-tools';
|
|
19
19
|
|
|
20
|
+
const ANTHROPIC_API_URL = 'https://api.anthropic.com';
|
|
21
|
+
const ANTHROPIC_API_VERSIONED_URL = `${ANTHROPIC_API_URL}/v1`;
|
|
22
|
+
|
|
23
|
+
function normalizeBaseURL(baseURL: string | undefined): string | undefined {
|
|
24
|
+
const baseURLWithoutTrailingSlash = withoutTrailingSlash(baseURL);
|
|
25
|
+
|
|
26
|
+
return baseURLWithoutTrailingSlash === ANTHROPIC_API_URL
|
|
27
|
+
? ANTHROPIC_API_VERSIONED_URL
|
|
28
|
+
: baseURLWithoutTrailingSlash;
|
|
29
|
+
}
|
|
30
|
+
|
|
20
31
|
export interface AnthropicProvider extends ProviderV3 {
|
|
21
32
|
/**
|
|
22
33
|
* Creates a model for text generation.
|
|
@@ -91,12 +102,12 @@ export function createAnthropic(
|
|
|
91
102
|
options: AnthropicProviderSettings = {},
|
|
92
103
|
): AnthropicProvider {
|
|
93
104
|
const baseURL =
|
|
94
|
-
|
|
105
|
+
normalizeBaseURL(
|
|
95
106
|
loadOptionalSetting({
|
|
96
107
|
settingValue: options.baseURL,
|
|
97
108
|
environmentVariableName: 'ANTHROPIC_BASE_URL',
|
|
98
109
|
}),
|
|
99
|
-
) ??
|
|
110
|
+
) ?? ANTHROPIC_API_VERSIONED_URL;
|
|
100
111
|
|
|
101
112
|
const providerName = options.name ?? 'anthropic.messages';
|
|
102
113
|
|
|
@@ -11,8 +11,9 @@ import {
|
|
|
11
11
|
convertToBase64,
|
|
12
12
|
parseProviderOptions,
|
|
13
13
|
safeParseJSON,
|
|
14
|
-
validateTypes,
|
|
15
14
|
isNonNullable,
|
|
15
|
+
secureJsonParse,
|
|
16
|
+
validateTypes,
|
|
16
17
|
type ToolNameMapping,
|
|
17
18
|
} from '@ai-sdk/provider-utils';
|
|
18
19
|
import {
|
|
@@ -436,7 +437,8 @@ export async function convertToAnthropicMessagesPrompt({
|
|
|
436
437
|
contentValue = output.value;
|
|
437
438
|
break;
|
|
438
439
|
case 'execution-denied':
|
|
439
|
-
contentValue =
|
|
440
|
+
contentValue =
|
|
441
|
+
output.reason ?? 'Tool call execution denied.';
|
|
440
442
|
break;
|
|
441
443
|
case 'json':
|
|
442
444
|
case 'error-json':
|
|
@@ -767,7 +769,7 @@ export async function convertToAnthropicMessagesPrompt({
|
|
|
767
769
|
let errorInfo: { type?: string; errorCode?: string } = {};
|
|
768
770
|
try {
|
|
769
771
|
if (typeof output.value === 'string') {
|
|
770
|
-
errorInfo =
|
|
772
|
+
errorInfo = secureJsonParse(output.value);
|
|
771
773
|
} else if (
|
|
772
774
|
typeof output.value === 'object' &&
|
|
773
775
|
output.value !== null
|