@theia/ai-anthropic 1.73.0-next.7 → 1.73.0
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/lib/common/anthropic-preferences.d.ts.map +1 -1
- package/lib/common/anthropic-preferences.js +2 -0
- package/lib/common/anthropic-preferences.js.map +1 -1
- package/lib/node/anthropic-language-model.d.ts +14 -3
- package/lib/node/anthropic-language-model.d.ts.map +1 -1
- package/lib/node/anthropic-language-model.js +144 -12
- package/lib/node/anthropic-language-model.js.map +1 -1
- package/lib/node/anthropic-language-model.spec.js +133 -1
- package/lib/node/anthropic-language-model.spec.js.map +1 -1
- package/lib/node/anthropic-language-models-manager-impl.d.ts.map +1 -1
- package/lib/node/anthropic-language-models-manager-impl.js +2 -1
- package/lib/node/anthropic-language-models-manager-impl.js.map +1 -1
- package/lib/node/anthropic-server-tools.d.ts +10 -0
- package/lib/node/anthropic-server-tools.d.ts.map +1 -0
- package/lib/node/anthropic-server-tools.js +38 -0
- package/lib/node/anthropic-server-tools.js.map +1 -0
- package/package.json +6 -6
- package/src/common/anthropic-preferences.ts +2 -0
- package/src/node/anthropic-language-model.spec.ts +150 -3
- package/src/node/anthropic-language-model.ts +153 -12
- package/src/node/anthropic-language-models-manager-impl.ts +3 -1
- package/src/node/anthropic-server-tools.ts +38 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic-preferences.d.ts","sourceRoot":"","sources":["../../src/common/anthropic-preferences.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAuB,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpE,eAAO,MAAM,YAAY,0CAA0C,CAAC;AACpE,eAAO,MAAM,WAAW,0CAA0C,CAAC;AACnE,eAAO,MAAM,qBAAqB,sDAAsD,CAAC;AAEzF,eAAO,MAAM,0BAA0B,EAAE,
|
|
1
|
+
{"version":3,"file":"anthropic-preferences.d.ts","sourceRoot":"","sources":["../../src/common/anthropic-preferences.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAuB,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpE,eAAO,MAAM,YAAY,0CAA0C,CAAC;AACpE,eAAO,MAAM,WAAW,0CAA0C,CAAC;AACnE,eAAO,MAAM,qBAAqB,sDAAsD,CAAC;AAEzF,eAAO,MAAM,0BAA0B,EAAE,gBAoFxC,CAAC"}
|
|
@@ -34,9 +34,11 @@ exports.AnthropicPreferencesSchema = {
|
|
|
34
34
|
description: core_1.nls.localize('theia/ai/anthropic/models/description', 'Official Anthropic models to use'),
|
|
35
35
|
title: ai_core_preferences_1.AI_CORE_PREFERENCES_TITLE,
|
|
36
36
|
default: [
|
|
37
|
+
'claude-opus-4-8',
|
|
37
38
|
'claude-opus-4-7',
|
|
38
39
|
'claude-sonnet-4-6',
|
|
39
40
|
'claude-haiku-4-5',
|
|
41
|
+
'claude-fable-5',
|
|
40
42
|
'claude-opus-4-6',
|
|
41
43
|
],
|
|
42
44
|
items: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic-preferences.js","sourceRoot":"","sources":["../../src/common/anthropic-preferences.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;AAEhF,uFAA0F;AAC1F,sCAAoE;AAEvD,QAAA,YAAY,GAAG,uCAAuC,CAAC;AACvD,QAAA,WAAW,GAAG,uCAAuC,CAAC;AACtD,QAAA,qBAAqB,GAAG,mDAAmD,CAAC;AAE5E,QAAA,0BAA0B,GAAqB;IACxD,UAAU,EAAE;QACR,CAAC,oBAAY,CAAC,EAAE;YACZ,IAAI,EAAE,QAAQ;YACd,mBAAmB,EAAE,UAAG,CAAC,QAAQ,CAAC,uCAAuC,EACrE;oHACoG,CAAC,GAAG,qBAAc;YAC1H,KAAK,EAAE,+CAAyB;SACnC;QACD,CAAC,mBAAW,CAAC,EAAE;YACX,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,UAAG,CAAC,QAAQ,CAAC,uCAAuC,EAAE,kCAAkC,CAAC;YACtG,KAAK,EAAE,+CAAyB;YAChC,OAAO,EAAE;gBACL,iBAAiB;gBACjB,mBAAmB;gBACnB,kBAAkB;gBAClB,iBAAiB;aACpB;YACD,KAAK,EAAE;gBACH,IAAI,EAAE,QAAQ;aACjB;SACJ;QACD,CAAC,6BAAqB,CAAC,EAAE;YACrB,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,+CAAyB;YAChC,mBAAmB,EAAE,UAAG,CAAC,QAAQ,CAAC,kDAAkD,EAChF;;;;;;;;;;;;;;8HAc8G,CAAC;YACnH,OAAO,EAAE,EAAE;YACX,KAAK,EAAE;gBACH,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACR,KAAK,EAAE;wBACH,IAAI,EAAE,QAAQ;wBACd,KAAK,EAAE,UAAG,CAAC,QAAQ,CAAC,kDAAkD,EAAE,UAAU,CAAC;qBACtF;oBACD,GAAG,EAAE;wBACD,IAAI,EAAE,QAAQ;wBACd,KAAK,EAAE,UAAG,CAAC,QAAQ,CAAC,8CAA8C,EAAE,iEAAiE,CAAC;qBACzI;oBACD,EAAE,EAAE;wBACA,IAAI,EAAE,QAAQ;wBACd,KAAK,EAAE,UAAG,CAAC,QAAQ,CAAC,6CAA6C,EAAE,0EAA0E,CAAC;qBACjJ;oBACD,MAAM,EAAE;wBACJ,IAAI,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC;wBAC3B,KAAK,EAAE,UAAG,CAAC,QAAQ,CAAC,iDAAiD,EACjE,wGAAwG,CAAC;qBAChH;oBACD,eAAe,EAAE;wBACb,IAAI,EAAE,SAAS;wBACf,KAAK,EAAE,UAAG,CAAC,QAAQ,CAAC,0DAA0D,EAC1E,uEAAuE,CAAC;qBAC/E;oBACD,UAAU,EAAE;wBACR,IAAI,EAAE,SAAS;wBACf,KAAK,EAAE,UAAG,CAAC,QAAQ,CAAC,qDAAqD,EACrE,wEAAwE,CAAC;qBAChF;oBACD,UAAU,EAAE;wBACR,IAAI,EAAE,QAAQ;wBACd,KAAK,EAAE,UAAG,CAAC,QAAQ,CAAC,qDAAqD,EACrE,8DAA8D,CAAC;qBACtE;iBACJ;aACJ;SACJ;KACJ;CACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"anthropic-preferences.js","sourceRoot":"","sources":["../../src/common/anthropic-preferences.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;AAEhF,uFAA0F;AAC1F,sCAAoE;AAEvD,QAAA,YAAY,GAAG,uCAAuC,CAAC;AACvD,QAAA,WAAW,GAAG,uCAAuC,CAAC;AACtD,QAAA,qBAAqB,GAAG,mDAAmD,CAAC;AAE5E,QAAA,0BAA0B,GAAqB;IACxD,UAAU,EAAE;QACR,CAAC,oBAAY,CAAC,EAAE;YACZ,IAAI,EAAE,QAAQ;YACd,mBAAmB,EAAE,UAAG,CAAC,QAAQ,CAAC,uCAAuC,EACrE;oHACoG,CAAC,GAAG,qBAAc;YAC1H,KAAK,EAAE,+CAAyB;SACnC;QACD,CAAC,mBAAW,CAAC,EAAE;YACX,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,UAAG,CAAC,QAAQ,CAAC,uCAAuC,EAAE,kCAAkC,CAAC;YACtG,KAAK,EAAE,+CAAyB;YAChC,OAAO,EAAE;gBACL,iBAAiB;gBACjB,iBAAiB;gBACjB,mBAAmB;gBACnB,kBAAkB;gBAClB,gBAAgB;gBAChB,iBAAiB;aACpB;YACD,KAAK,EAAE;gBACH,IAAI,EAAE,QAAQ;aACjB;SACJ;QACD,CAAC,6BAAqB,CAAC,EAAE;YACrB,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,+CAAyB;YAChC,mBAAmB,EAAE,UAAG,CAAC,QAAQ,CAAC,kDAAkD,EAChF;;;;;;;;;;;;;;8HAc8G,CAAC;YACnH,OAAO,EAAE,EAAE;YACX,KAAK,EAAE;gBACH,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACR,KAAK,EAAE;wBACH,IAAI,EAAE,QAAQ;wBACd,KAAK,EAAE,UAAG,CAAC,QAAQ,CAAC,kDAAkD,EAAE,UAAU,CAAC;qBACtF;oBACD,GAAG,EAAE;wBACD,IAAI,EAAE,QAAQ;wBACd,KAAK,EAAE,UAAG,CAAC,QAAQ,CAAC,8CAA8C,EAAE,iEAAiE,CAAC;qBACzI;oBACD,EAAE,EAAE;wBACA,IAAI,EAAE,QAAQ;wBACd,KAAK,EAAE,UAAG,CAAC,QAAQ,CAAC,6CAA6C,EAAE,0EAA0E,CAAC;qBACjJ;oBACD,MAAM,EAAE;wBACJ,IAAI,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC;wBAC3B,KAAK,EAAE,UAAG,CAAC,QAAQ,CAAC,iDAAiD,EACjE,wGAAwG,CAAC;qBAChH;oBACD,eAAe,EAAE;wBACb,IAAI,EAAE,SAAS;wBACf,KAAK,EAAE,UAAG,CAAC,QAAQ,CAAC,0DAA0D,EAC1E,uEAAuE,CAAC;qBAC/E;oBACD,UAAU,EAAE;wBACR,IAAI,EAAE,SAAS;wBACf,KAAK,EAAE,UAAG,CAAC,QAAQ,CAAC,qDAAqD,EACrE,wEAAwE,CAAC;qBAChF;oBACD,UAAU,EAAE;wBACR,IAAI,EAAE,QAAQ;wBACd,KAAK,EAAE,UAAG,CAAC,QAAQ,CAAC,qDAAqD,EACrE,8DAA8D,CAAC;qBACtE;iBACJ;aACJ;SACJ;KACJ;CACJ,CAAC"}
|
|
@@ -1,8 +1,14 @@
|
|
|
1
|
-
import { LanguageModel, LanguageModelRequest, LanguageModelResponse, LanguageModelStatus, LanguageModelStreamResponse, LanguageModelTextResponse, ReasoningApi, ReasoningSupport, UserRequest } from '@theia/ai-core';
|
|
1
|
+
import { LanguageModel, LanguageModelRequest, LanguageModelResponse, LanguageModelStatus, LanguageModelStreamResponse, LanguageModelTextResponse, ReasoningApi, ReasoningSupport, ServerToolDescriptor, UserRequest } from '@theia/ai-core';
|
|
2
2
|
import { CancellationToken } from '@theia/core';
|
|
3
3
|
import { Anthropic } from '@anthropic-ai/sdk';
|
|
4
4
|
import type { MessageParam } from '@anthropic-ai/sdk/resources';
|
|
5
5
|
export declare const DEFAULT_MAX_TOKENS = 4096;
|
|
6
|
+
/**
|
|
7
|
+
* Key under which the raw Anthropic server tool result block is stored on the server tool call's `data`,
|
|
8
|
+
* so it can be reconstructed faithfully on replay. The human-readable `result` summary is kept separately
|
|
9
|
+
* for rendering (see {@link buildServerToolResultPart}).
|
|
10
|
+
*/
|
|
11
|
+
export declare const ANTHROPIC_RESULT_BLOCK_DATA_KEY = "anthropicResultBlock";
|
|
6
12
|
export declare function mergeConsecutiveSameRoleMessages(messages: MessageParam[]): MessageParam[];
|
|
7
13
|
/**
|
|
8
14
|
* If possible adds a cache control to the last message in the conversation.
|
|
@@ -32,11 +38,16 @@ export declare class AnthropicModel implements LanguageModel {
|
|
|
32
38
|
reasoningApi?: ReasoningApi | undefined;
|
|
33
39
|
supportsXHighEffort?: boolean | undefined;
|
|
34
40
|
maxInputTokens?: number | undefined;
|
|
35
|
-
|
|
41
|
+
serverTools?: ServerToolDescriptor[] | undefined;
|
|
42
|
+
/** Provider identifier, used to key per-provider settings (e.g. server tool selections) and the capabilities UI. */
|
|
43
|
+
readonly vendor = "anthropic";
|
|
44
|
+
constructor(id: string, model: string, status: LanguageModelStatus, enableStreaming: boolean, useCaching: boolean, apiKey: () => string | undefined, url: string | undefined, maxTokens?: number, maxRetries?: number, proxy?: string | undefined, reasoningSupport?: ReasoningSupport | undefined, reasoningApi?: ReasoningApi | undefined, supportsXHighEffort?: boolean | undefined, maxInputTokens?: number | undefined, serverTools?: ServerToolDescriptor[] | undefined);
|
|
36
45
|
protected getSettings(request: LanguageModelRequest): Readonly<Record<string, unknown>>;
|
|
37
46
|
request(request: UserRequest, cancellationToken?: CancellationToken): Promise<LanguageModelResponse>;
|
|
38
47
|
protected handleStreamingRequest(anthropic: Anthropic, request: UserRequest, cancellationToken?: CancellationToken, toolMessages?: readonly Anthropic.Messages.MessageParam[]): Promise<LanguageModelStreamResponse>;
|
|
39
|
-
protected createTools(request: LanguageModelRequest): Anthropic.Messages.
|
|
48
|
+
protected createTools(request: LanguageModelRequest): Anthropic.Messages.ToolUnion[] | undefined;
|
|
49
|
+
/** Translates the enabled server tool ids on the request into native Anthropic server tool params. */
|
|
50
|
+
protected createServerTools(request: LanguageModelRequest): Anthropic.Messages.ToolUnion[];
|
|
40
51
|
protected handleNonStreamingRequest(anthropic: Anthropic, request: UserRequest): Promise<LanguageModelTextResponse>;
|
|
41
52
|
protected initializeAnthropic(): Anthropic;
|
|
42
53
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic-language-model.d.ts","sourceRoot":"","sources":["../../src/node/anthropic-language-model.ts"],"names":[],"mappings":"AAgBA,OAAO,EAIH,aAAa,EAEb,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACnB,2BAA2B,EAE3B,yBAAyB,EACzB,YAAY,EACZ,gBAAgB,
|
|
1
|
+
{"version":3,"file":"anthropic-language-model.d.ts","sourceRoot":"","sources":["../../src/node/anthropic-language-model.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
16
16
|
// *****************************************************************************
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
-
exports.AnthropicModel = exports.AnthropicModelIdentifier = exports.DEFAULT_MAX_TOKENS = void 0;
|
|
18
|
+
exports.AnthropicModel = exports.AnthropicModelIdentifier = exports.ANTHROPIC_RESULT_BLOCK_DATA_KEY = exports.DEFAULT_MAX_TOKENS = void 0;
|
|
19
19
|
exports.mergeConsecutiveSameRoleMessages = mergeConsecutiveSameRoleMessages;
|
|
20
20
|
exports.addCacheControlToLastMessage = addCacheControlToLastMessage;
|
|
21
21
|
const ai_core_1 = require("@theia/ai-core");
|
|
@@ -23,7 +23,14 @@ const core_1 = require("@theia/core");
|
|
|
23
23
|
const sdk_1 = require("@anthropic-ai/sdk");
|
|
24
24
|
const node_1 = require("@theia/ai-core/lib/node");
|
|
25
25
|
const anthropic_reasoning_1 = require("./anthropic-reasoning");
|
|
26
|
+
const anthropic_server_tools_1 = require("./anthropic-server-tools");
|
|
26
27
|
exports.DEFAULT_MAX_TOKENS = 4096;
|
|
28
|
+
/**
|
|
29
|
+
* Key under which the raw Anthropic server tool result block is stored on the server tool call's `data`,
|
|
30
|
+
* so it can be reconstructed faithfully on replay. The human-readable `result` summary is kept separately
|
|
31
|
+
* for rendering (see {@link buildServerToolResultPart}).
|
|
32
|
+
*/
|
|
33
|
+
exports.ANTHROPIC_RESULT_BLOCK_DATA_KEY = 'anthropicResultBlock';
|
|
27
34
|
const createMessageContent = (message) => {
|
|
28
35
|
if (ai_core_1.LanguageModelMessage.isTextMessage(message)) {
|
|
29
36
|
return [{ type: 'text', text: message.text }];
|
|
@@ -37,6 +44,41 @@ const createMessageContent = (message) => {
|
|
|
37
44
|
else if (ai_core_1.LanguageModelMessage.isToolResultMessage(message)) {
|
|
38
45
|
return [{ type: 'tool_result', tool_use_id: message.tool_use_id, content: formatToolCallResult(message.content) }];
|
|
39
46
|
}
|
|
47
|
+
else if (ai_core_1.LanguageModelMessage.isServerToolUseMessage(message)) {
|
|
48
|
+
// Reconstruct the server tool invocation and its result so Anthropic can replay the prior turn.
|
|
49
|
+
// The raw provider result block was stored on the message's `data` (see buildServerToolResultPart);
|
|
50
|
+
// fall back to `result` for forward compatibility if it is missing.
|
|
51
|
+
const useBlock = {
|
|
52
|
+
type: 'server_tool_use',
|
|
53
|
+
id: message.id,
|
|
54
|
+
name: message.name,
|
|
55
|
+
input: message.input
|
|
56
|
+
};
|
|
57
|
+
let resultContent = message.result;
|
|
58
|
+
const rawBlock = message.data?.[exports.ANTHROPIC_RESULT_BLOCK_DATA_KEY];
|
|
59
|
+
if (rawBlock) {
|
|
60
|
+
try {
|
|
61
|
+
resultContent = JSON.parse(rawBlock);
|
|
62
|
+
}
|
|
63
|
+
catch {
|
|
64
|
+
// keep message.result as the fallback
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
if (message.name === anthropic_server_tools_1.ANTHROPIC_WEB_SEARCH) {
|
|
68
|
+
const resultBlock = {
|
|
69
|
+
type: 'web_search_tool_result',
|
|
70
|
+
tool_use_id: message.id,
|
|
71
|
+
content: resultContent
|
|
72
|
+
};
|
|
73
|
+
return [useBlock, resultBlock];
|
|
74
|
+
}
|
|
75
|
+
const fetchResultBlock = {
|
|
76
|
+
type: 'web_fetch_tool_result',
|
|
77
|
+
tool_use_id: message.id,
|
|
78
|
+
content: resultContent
|
|
79
|
+
};
|
|
80
|
+
return [useBlock, fetchResultBlock];
|
|
81
|
+
}
|
|
40
82
|
else if (ai_core_1.LanguageModelMessage.isImageMessage(message)) {
|
|
41
83
|
if (ai_core_1.ImageContent.isBase64(message.image)) {
|
|
42
84
|
return [{ type: 'image', source: { type: 'base64', media_type: mimeTypeToMediaType(message.image.mimeType), data: message.image.base64data } }];
|
|
@@ -183,12 +225,30 @@ function formatToolCallResult(result) {
|
|
|
183
225
|
}
|
|
184
226
|
return result;
|
|
185
227
|
}
|
|
228
|
+
/**
|
|
229
|
+
* Builds a finished server tool call stream part from a provider result block. The raw block is stored on
|
|
230
|
+
* `data` for faithful replay, while `result` holds a compact, human-readable summary for rendering (the raw
|
|
231
|
+
* fetched document / search payload would otherwise render as an unreadable JSON blob).
|
|
232
|
+
*/
|
|
233
|
+
function buildServerToolResultPart(serverToolCalls, toolUseId, nativeName, result, rawContent) {
|
|
234
|
+
const matching = serverToolCalls.find(call => call.id === toolUseId);
|
|
235
|
+
return {
|
|
236
|
+
server_tool_calls: [{
|
|
237
|
+
id: toolUseId,
|
|
238
|
+
name: matching?.name ?? nativeName,
|
|
239
|
+
arguments: matching?.args,
|
|
240
|
+
finished: true,
|
|
241
|
+
result,
|
|
242
|
+
data: { [exports.ANTHROPIC_RESULT_BLOCK_DATA_KEY]: JSON.stringify(rawContent) }
|
|
243
|
+
}]
|
|
244
|
+
};
|
|
245
|
+
}
|
|
186
246
|
/**
|
|
187
247
|
* Implements the Anthropic language model integration for Theia. Reasoning-level
|
|
188
248
|
* translation lives in {@link anthropicReasoningFor}.
|
|
189
249
|
*/
|
|
190
250
|
class AnthropicModel {
|
|
191
|
-
constructor(id, model, status, enableStreaming, useCaching, apiKey, url, maxTokens = exports.DEFAULT_MAX_TOKENS, maxRetries = 3, proxy, reasoningSupport, reasoningApi, supportsXHighEffort, maxInputTokens) {
|
|
251
|
+
constructor(id, model, status, enableStreaming, useCaching, apiKey, url, maxTokens = exports.DEFAULT_MAX_TOKENS, maxRetries = 3, proxy, reasoningSupport, reasoningApi, supportsXHighEffort, maxInputTokens, serverTools) {
|
|
192
252
|
this.id = id;
|
|
193
253
|
this.model = model;
|
|
194
254
|
this.status = status;
|
|
@@ -203,6 +263,9 @@ class AnthropicModel {
|
|
|
203
263
|
this.reasoningApi = reasoningApi;
|
|
204
264
|
this.supportsXHighEffort = supportsXHighEffort;
|
|
205
265
|
this.maxInputTokens = maxInputTokens;
|
|
266
|
+
this.serverTools = serverTools;
|
|
267
|
+
/** Provider identifier, used to key per-provider settings (e.g. server tool selections) and the capabilities UI. */
|
|
268
|
+
this.vendor = 'anthropic';
|
|
206
269
|
}
|
|
207
270
|
getSettings(request) {
|
|
208
271
|
return {
|
|
@@ -234,6 +297,13 @@ class AnthropicModel {
|
|
|
234
297
|
anthropicMessages = addCacheControlToLastMessage(anthropicMessages);
|
|
235
298
|
}
|
|
236
299
|
const tools = this.createTools(request);
|
|
300
|
+
if (request.deferredToolIds?.length && tools) {
|
|
301
|
+
console.debug('Anthropic: converted tools for deferred loading:', tools.map(tool => ({
|
|
302
|
+
name: 'name' in tool ? tool.name : undefined,
|
|
303
|
+
type: 'type' in tool ? tool.type : 'custom',
|
|
304
|
+
defer_loading: 'defer_loading' in tool ? tool.defer_loading : undefined
|
|
305
|
+
})));
|
|
306
|
+
}
|
|
237
307
|
const params = {
|
|
238
308
|
max_tokens: this.maxTokens,
|
|
239
309
|
messages: anthropicMessages,
|
|
@@ -252,6 +322,9 @@ class AnthropicModel {
|
|
|
252
322
|
async *[Symbol.asyncIterator]() {
|
|
253
323
|
const toolCalls = [];
|
|
254
324
|
let toolCall;
|
|
325
|
+
// Server tools are executed by Anthropic; we surface their invocations/results but do not call any client handler.
|
|
326
|
+
const serverToolCalls = [];
|
|
327
|
+
let serverToolCall;
|
|
255
328
|
const currentMessages = [];
|
|
256
329
|
let currentMessage = undefined;
|
|
257
330
|
let currentOutputTokens = 0;
|
|
@@ -270,6 +343,40 @@ class AnthropicModel {
|
|
|
270
343
|
toolCall = { name: contentBlock.name, args: '', id: contentBlock.id, index: event.index };
|
|
271
344
|
yield { tool_calls: [{ finished: false, id: toolCall.id, function: { name: toolCall.name, arguments: toolCall.args } }] };
|
|
272
345
|
}
|
|
346
|
+
if (contentBlock.type === 'server_tool_use') {
|
|
347
|
+
// The deferred-tool search invocation also arrives as `server_tool_use`; it is handled by Anthropic
|
|
348
|
+
// internally and must not be surfaced to the UI as a server tool call.
|
|
349
|
+
if (contentBlock.name === 'tool_search_tool_bm25') {
|
|
350
|
+
console.debug('Anthropic: received deferred tool stream block:', contentBlock);
|
|
351
|
+
}
|
|
352
|
+
else {
|
|
353
|
+
serverToolCall = { name: contentBlock.name, args: '', id: contentBlock.id, index: event.index };
|
|
354
|
+
yield { server_tool_calls: [{ id: serverToolCall.id, name: serverToolCall.name, arguments: '', finished: false }] };
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
if (contentBlock.type === 'web_fetch_tool_result') {
|
|
358
|
+
// Result blocks are delivered complete (not streamed). Surface them as a finished server tool call.
|
|
359
|
+
const fetchContent = contentBlock.content;
|
|
360
|
+
const result = fetchContent.type === 'web_fetch_result'
|
|
361
|
+
? { content: [{ type: 'text', text: `Fetched ${fetchContent.url}${fetchContent.content.title ? ` — ${fetchContent.content.title}` : ''}` }] }
|
|
362
|
+
: (0, ai_core_1.createToolCallError)(`Web fetch failed: ${fetchContent.error_code}`);
|
|
363
|
+
yield buildServerToolResultPart(serverToolCalls, contentBlock.tool_use_id, anthropic_server_tools_1.ANTHROPIC_WEB_FETCH, result, fetchContent);
|
|
364
|
+
}
|
|
365
|
+
if (contentBlock.type === 'web_search_tool_result') {
|
|
366
|
+
const searchContent = contentBlock.content;
|
|
367
|
+
let result;
|
|
368
|
+
if (Array.isArray(searchContent)) {
|
|
369
|
+
const lines = searchContent.map(entry => [entry.title, entry.url].filter(Boolean).join(' — ')).filter(line => line.length > 0);
|
|
370
|
+
result = { content: [{ type: 'text', text: lines.length > 0 ? lines.join('\n') : 'No search results.' }] };
|
|
371
|
+
}
|
|
372
|
+
else {
|
|
373
|
+
result = (0, ai_core_1.createToolCallError)(`Web search failed: ${searchContent.error_code}`);
|
|
374
|
+
}
|
|
375
|
+
yield buildServerToolResultPart(serverToolCalls, contentBlock.tool_use_id, anthropic_server_tools_1.ANTHROPIC_WEB_SEARCH, result, searchContent);
|
|
376
|
+
}
|
|
377
|
+
if (contentBlock.type === 'tool_search_tool_result') {
|
|
378
|
+
console.debug('Anthropic: received deferred tool stream block:', contentBlock);
|
|
379
|
+
}
|
|
273
380
|
}
|
|
274
381
|
else if (event.type === 'content_block_delta') {
|
|
275
382
|
const delta = event.delta;
|
|
@@ -286,12 +393,20 @@ class AnthropicModel {
|
|
|
286
393
|
toolCall.args += delta.partial_json;
|
|
287
394
|
yield { tool_calls: [{ function: { arguments: delta.partial_json } }] };
|
|
288
395
|
}
|
|
396
|
+
if (serverToolCall && delta.type === 'input_json_delta') {
|
|
397
|
+
serverToolCall.args += delta.partial_json;
|
|
398
|
+
yield { server_tool_calls: [{ id: serverToolCall.id, name: serverToolCall.name, arguments: serverToolCall.args, finished: false }] };
|
|
399
|
+
}
|
|
289
400
|
}
|
|
290
401
|
else if (event.type === 'content_block_stop') {
|
|
291
402
|
if (toolCall && toolCall.index === event.index) {
|
|
292
403
|
toolCalls.push(toolCall);
|
|
293
404
|
toolCall = undefined;
|
|
294
405
|
}
|
|
406
|
+
if (serverToolCall && serverToolCall.index === event.index) {
|
|
407
|
+
serverToolCalls.push(serverToolCall);
|
|
408
|
+
serverToolCall = undefined;
|
|
409
|
+
}
|
|
295
410
|
}
|
|
296
411
|
else if (event.type === 'message_delta') {
|
|
297
412
|
currentOutputTokens = event.usage.output_tokens;
|
|
@@ -367,20 +482,37 @@ class AnthropicModel {
|
|
|
367
482
|
return { stream: asyncIterator };
|
|
368
483
|
}
|
|
369
484
|
createTools(request) {
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
}
|
|
373
|
-
const tools = request.tools?.map(tool => ({
|
|
485
|
+
const deferred = new Set(request.deferredToolIds ?? []);
|
|
486
|
+
const tools = (request.tools ?? []).map(tool => ({
|
|
374
487
|
name: tool.name,
|
|
375
488
|
description: tool.description,
|
|
376
|
-
input_schema: tool.parameters
|
|
489
|
+
input_schema: { ...tool.parameters, type: 'object' },
|
|
490
|
+
defer_loading: deferred.has(tool.id) ? true : undefined
|
|
377
491
|
}));
|
|
378
|
-
if (
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
492
|
+
if (deferred.size > 0) {
|
|
493
|
+
tools.push({
|
|
494
|
+
type: 'tool_search_tool_bm25',
|
|
495
|
+
name: 'tool_search_tool_bm25'
|
|
496
|
+
});
|
|
497
|
+
}
|
|
498
|
+
// Cache the client tools as before; server tools are appended afterwards.
|
|
499
|
+
if (this.useCaching && tools.length) {
|
|
500
|
+
tools[tools.length - 1].cache_control = { type: 'ephemeral' };
|
|
501
|
+
}
|
|
502
|
+
tools.push(...this.createServerTools(request));
|
|
503
|
+
return tools.length > 0 ? tools : undefined;
|
|
504
|
+
}
|
|
505
|
+
/** Translates the enabled server tool ids on the request into native Anthropic server tool params. */
|
|
506
|
+
createServerTools(request) {
|
|
507
|
+
const enabled = request.serverTools ?? [];
|
|
508
|
+
const serverTools = [];
|
|
509
|
+
if (enabled.includes(anthropic_server_tools_1.ANTHROPIC_WEB_FETCH)) {
|
|
510
|
+
serverTools.push({ type: 'web_fetch_20250910', name: 'web_fetch' });
|
|
511
|
+
}
|
|
512
|
+
if (enabled.includes(anthropic_server_tools_1.ANTHROPIC_WEB_SEARCH)) {
|
|
513
|
+
serverTools.push({ type: 'web_search_20250305', name: 'web_search' });
|
|
382
514
|
}
|
|
383
|
-
return
|
|
515
|
+
return serverTools;
|
|
384
516
|
}
|
|
385
517
|
async handleNonStreamingRequest(anthropic, request) {
|
|
386
518
|
const settings = this.getSettings(request);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic-language-model.js","sourceRoot":"","sources":["../../src/node/anthropic-language-model.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"anthropic-language-model.js","sourceRoot":"","sources":["../../src/node/anthropic-language-model.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,11 +22,14 @@ const REASONING_SUPPORT = {
|
|
|
22
22
|
supportedLevels: ['off', 'minimal', 'low', 'medium', 'high', 'auto'],
|
|
23
23
|
defaultLevel: 'auto'
|
|
24
24
|
};
|
|
25
|
-
/** Test helper that exposes the otherwise protected getSettings()
|
|
25
|
+
/** Test helper that exposes the otherwise protected getSettings()/createTools() methods. */
|
|
26
26
|
class TestableAnthropicModel extends anthropic_language_model_1.AnthropicModel {
|
|
27
27
|
callGetSettings(request) {
|
|
28
28
|
return this.getSettings(request);
|
|
29
29
|
}
|
|
30
|
+
callCreateTools(request) {
|
|
31
|
+
return this.createTools(request);
|
|
32
|
+
}
|
|
30
33
|
}
|
|
31
34
|
function createReasoningModel(modelId, reasoningApi, supportsXHighEffort = false) {
|
|
32
35
|
return new TestableAnthropicModel('test-id', modelId, { status: 'ready' }, true, false, () => 'test-key', undefined, anthropic_language_model_1.DEFAULT_MAX_TOKENS, 3, undefined, REASONING_SUPPORT, reasoningApi, supportsXHighEffort);
|
|
@@ -59,6 +62,10 @@ describe('AnthropicModel', () => {
|
|
|
59
62
|
(0, chai_1.expect)(model.maxTokens).to.equal(anthropic_language_model_1.DEFAULT_MAX_TOKENS);
|
|
60
63
|
(0, chai_1.expect)(model.maxRetries).to.equal(5);
|
|
61
64
|
});
|
|
65
|
+
it('exposes the anthropic vendor (used to key server tool selections and the capabilities UI)', () => {
|
|
66
|
+
const model = createNonReasoningModel('claude-opus-4-5');
|
|
67
|
+
(0, chai_1.expect)(model.vendor).to.equal('anthropic');
|
|
68
|
+
});
|
|
62
69
|
it('should set custom url when provided', () => {
|
|
63
70
|
const model = new anthropic_language_model_1.AnthropicModel('test-id', 'claude-3-opus-20240229', {
|
|
64
71
|
status: 'ready'
|
|
@@ -501,5 +508,130 @@ describe('AnthropicModel', () => {
|
|
|
501
508
|
(0, chai_1.expect)(result.thinking).to.equal(undefined);
|
|
502
509
|
});
|
|
503
510
|
});
|
|
511
|
+
describe('server tools', () => {
|
|
512
|
+
it('createTools injects native params only for enabled server tool ids', () => {
|
|
513
|
+
const model = createNonReasoningModel('claude-opus-4-5');
|
|
514
|
+
const tools = model.callCreateTools({ messages: [], tools: [], serverTools: ['web_fetch', 'web_search'] });
|
|
515
|
+
(0, chai_1.expect)(tools).to.deep.include({ type: 'web_fetch_20250910', name: 'web_fetch' });
|
|
516
|
+
(0, chai_1.expect)(tools).to.deep.include({ type: 'web_search_20250305', name: 'web_search' });
|
|
517
|
+
});
|
|
518
|
+
it('createTools omits server tools that are not enabled', () => {
|
|
519
|
+
const model = createNonReasoningModel('claude-opus-4-5');
|
|
520
|
+
const tools = model.callCreateTools({ messages: [], tools: [], serverTools: ['web_fetch'] });
|
|
521
|
+
(0, chai_1.expect)(tools?.some(tool => 'type' in tool && tool.type === 'web_fetch_20250910')).to.be.true;
|
|
522
|
+
(0, chai_1.expect)(tools?.some(tool => 'type' in tool && tool.type === 'web_search_20250305')).to.be.false;
|
|
523
|
+
});
|
|
524
|
+
it('createTools returns undefined when neither client nor server tools are present', () => {
|
|
525
|
+
const model = createNonReasoningModel('claude-opus-4-5');
|
|
526
|
+
(0, chai_1.expect)(model.callCreateTools({ messages: [], tools: [] })).to.equal(undefined);
|
|
527
|
+
});
|
|
528
|
+
it('surfaces a finished server tool call from server_tool_use + web_fetch_tool_result blocks', async () => {
|
|
529
|
+
const resultContent = { type: 'web_fetch_result', url: 'https://example.com', content: { type: 'document' } };
|
|
530
|
+
const events = [
|
|
531
|
+
{ type: 'message_start', message: { usage: { input_tokens: 10, output_tokens: 0 } } },
|
|
532
|
+
{ type: 'content_block_start', index: 0, content_block: { type: 'server_tool_use', id: 'srv-1', name: 'web_fetch', input: {} } },
|
|
533
|
+
{ type: 'content_block_delta', index: 0, delta: { type: 'input_json_delta', partial_json: '{"url":"https://example.com"}' } },
|
|
534
|
+
{ type: 'content_block_stop', index: 0 },
|
|
535
|
+
{ type: 'content_block_start', index: 1, content_block: { type: 'web_fetch_tool_result', tool_use_id: 'srv-1', content: resultContent } },
|
|
536
|
+
{ type: 'content_block_stop', index: 1 },
|
|
537
|
+
{ type: 'message_delta', delta: { stop_reason: 'end_turn' }, usage: { output_tokens: 5 } },
|
|
538
|
+
{ type: 'message_stop' },
|
|
539
|
+
];
|
|
540
|
+
const model = new class extends anthropic_language_model_1.AnthropicModel {
|
|
541
|
+
initializeAnthropic() {
|
|
542
|
+
return buildMockAnthropicStream(events);
|
|
543
|
+
}
|
|
544
|
+
}('test-id', 'claude-opus-4-5', { status: 'ready' }, true, false, () => 'test-key', undefined);
|
|
545
|
+
const parts = await collectParts(model, 'fetch https://example.com');
|
|
546
|
+
const serverParts = parts.filter(ai_core_1.isServerToolCallResponsePart);
|
|
547
|
+
const finished = serverParts.flatMap(p => p.server_tool_calls).find(c => c.finished);
|
|
548
|
+
(0, chai_1.expect)(finished).to.not.be.undefined;
|
|
549
|
+
(0, chai_1.expect)(finished.id).to.equal('srv-1');
|
|
550
|
+
(0, chai_1.expect)(finished.name).to.equal('web_fetch');
|
|
551
|
+
(0, chai_1.expect)(finished.arguments).to.equal('{"url":"https://example.com"}');
|
|
552
|
+
// The result is a compact, human-readable summary for rendering...
|
|
553
|
+
(0, chai_1.expect)(finished.result).to.deep.equal({ content: [{ type: 'text', text: 'Fetched https://example.com' }] });
|
|
554
|
+
// ...while the raw provider block is preserved on `data` for faithful replay.
|
|
555
|
+
(0, chai_1.expect)(JSON.parse(finished.data[anthropic_language_model_1.ANTHROPIC_RESULT_BLOCK_DATA_KEY])).to.deep.equal(resultContent);
|
|
556
|
+
});
|
|
557
|
+
it('reconstructs the server tool blocks from a ServerToolUseMessage on replay', async () => {
|
|
558
|
+
let capturedParams;
|
|
559
|
+
const model = new class extends anthropic_language_model_1.AnthropicModel {
|
|
560
|
+
initializeAnthropic() {
|
|
561
|
+
return {
|
|
562
|
+
messages: {
|
|
563
|
+
stream: (params) => {
|
|
564
|
+
capturedParams = params;
|
|
565
|
+
async function* iterate() { }
|
|
566
|
+
const iter = iterate();
|
|
567
|
+
iter.on = () => { };
|
|
568
|
+
iter.abort = () => { };
|
|
569
|
+
return iter;
|
|
570
|
+
}
|
|
571
|
+
}
|
|
572
|
+
};
|
|
573
|
+
}
|
|
574
|
+
}('test-id', 'claude-opus-4-5', { status: 'ready' }, true, false, () => 'test-key', undefined);
|
|
575
|
+
const rawBlock = { type: 'web_fetch_result', url: 'https://example.com', content: { type: 'document', title: 'Example' } };
|
|
576
|
+
const request = {
|
|
577
|
+
messages: [
|
|
578
|
+
{ actor: 'user', type: 'text', text: 'hi' },
|
|
579
|
+
{
|
|
580
|
+
actor: 'ai', type: 'server_tool_use', id: 'srv-1', name: 'web_fetch',
|
|
581
|
+
input: { url: 'https://example.com' },
|
|
582
|
+
// The renderable summary lives on result; the faithful raw block lives on data.
|
|
583
|
+
result: { content: [{ type: 'text', text: 'Fetched https://example.com' }] },
|
|
584
|
+
data: { [anthropic_language_model_1.ANTHROPIC_RESULT_BLOCK_DATA_KEY]: JSON.stringify(rawBlock) }
|
|
585
|
+
}
|
|
586
|
+
],
|
|
587
|
+
agentId: 'test', sessionId: 'session', requestId: 'req'
|
|
588
|
+
};
|
|
589
|
+
const response = await model.request(request);
|
|
590
|
+
if ('stream' in response) {
|
|
591
|
+
// drain to ensure stream() is invoked
|
|
592
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
593
|
+
for await (const _part of response.stream) { /* no-op */ }
|
|
594
|
+
}
|
|
595
|
+
const allBlocks = (capturedParams?.messages ?? []).flatMap(m => Array.isArray(m.content) ? m.content : []);
|
|
596
|
+
(0, chai_1.expect)(allBlocks.some(b => b.type === 'server_tool_use' && b.id === 'srv-1')).to.be.true;
|
|
597
|
+
const resultBlock = allBlocks.find(b => b.type === 'web_fetch_tool_result' && b.tool_use_id === 'srv-1');
|
|
598
|
+
(0, chai_1.expect)(resultBlock).to.not.be.undefined;
|
|
599
|
+
// The raw block from `data` is reconstructed faithfully (not the rendering summary).
|
|
600
|
+
(0, chai_1.expect)(resultBlock.content).to.deep.equal(rawBlock);
|
|
601
|
+
});
|
|
602
|
+
});
|
|
504
603
|
});
|
|
604
|
+
/** Builds a mock Anthropic client whose messages.stream() yields the supplied raw events. */
|
|
605
|
+
function buildMockAnthropicStream(anthropicEvents) {
|
|
606
|
+
return {
|
|
607
|
+
messages: {
|
|
608
|
+
stream: (_params) => {
|
|
609
|
+
async function* iterate() {
|
|
610
|
+
for (const event of anthropicEvents) {
|
|
611
|
+
yield event;
|
|
612
|
+
}
|
|
613
|
+
}
|
|
614
|
+
const iter = iterate();
|
|
615
|
+
iter.on = () => { };
|
|
616
|
+
iter.abort = () => { };
|
|
617
|
+
return iter;
|
|
618
|
+
}
|
|
619
|
+
}
|
|
620
|
+
};
|
|
621
|
+
}
|
|
622
|
+
async function collectParts(model, text) {
|
|
623
|
+
const request = {
|
|
624
|
+
messages: [{ actor: 'user', type: 'text', text }],
|
|
625
|
+
serverTools: ['web_fetch'],
|
|
626
|
+
agentId: 'test', sessionId: 'session', requestId: 'req'
|
|
627
|
+
};
|
|
628
|
+
const response = await model.request(request);
|
|
629
|
+
const parts = [];
|
|
630
|
+
if ('stream' in response) {
|
|
631
|
+
for await (const part of response.stream) {
|
|
632
|
+
parts.push(part);
|
|
633
|
+
}
|
|
634
|
+
}
|
|
635
|
+
return parts;
|
|
636
|
+
}
|
|
505
637
|
//# sourceMappingURL=anthropic-language-model.spec.js.map
|