@theia/ai-anthropic 1.63.0-next.0 → 1.63.0-next.52
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/browser/anthropic-frontend-application-contribution.d.ts +3 -0
- package/lib/browser/anthropic-frontend-application-contribution.d.ts.map +1 -1
- package/lib/browser/anthropic-frontend-application-contribution.js +20 -2
- package/lib/browser/anthropic-frontend-application-contribution.js.map +1 -1
- package/lib/common/anthropic-language-models-manager.d.ts +8 -0
- package/lib/common/anthropic-language-models-manager.d.ts.map +1 -1
- package/lib/node/anthropic-language-model.d.ts +4 -2
- package/lib/node/anthropic-language-model.d.ts.map +1 -1
- package/lib/node/anthropic-language-model.js +77 -8
- package/lib/node/anthropic-language-model.js.map +1 -1
- package/lib/node/anthropic-language-model.spec.d.ts +2 -0
- package/lib/node/anthropic-language-model.spec.d.ts.map +1 -0
- package/lib/node/anthropic-language-model.spec.js +41 -0
- package/lib/node/anthropic-language-model.spec.js.map +1 -0
- 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/package.json +5 -5
- package/src/browser/anthropic-frontend-application-contribution.ts +20 -2
- package/src/common/anthropic-language-models-manager.ts +8 -0
- package/src/node/anthropic-language-model.spec.ts +69 -0
- package/src/node/anthropic-language-model.ts +90 -11
- package/src/node/anthropic-language-models-manager-impl.ts +3 -0
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import { FrontendApplicationContribution, PreferenceService } from '@theia/core/lib/browser';
|
|
2
2
|
import { AnthropicLanguageModelsManager, AnthropicModelDescription } from '../common';
|
|
3
|
+
import { AICorePreferences } from '@theia/ai-core/lib/browser/ai-core-preferences';
|
|
3
4
|
export declare class AnthropicFrontendApplicationContribution implements FrontendApplicationContribution {
|
|
4
5
|
protected preferenceService: PreferenceService;
|
|
5
6
|
protected manager: AnthropicLanguageModelsManager;
|
|
7
|
+
protected aiCorePreferences: AICorePreferences;
|
|
6
8
|
protected prevModels: string[];
|
|
7
9
|
onStart(): void;
|
|
8
10
|
protected handleModelChanges(newModels: string[]): void;
|
|
11
|
+
protected updateAllModelsWithNewRetries(): void;
|
|
9
12
|
protected createAnthropicModelDescription(modelId: string): AnthropicModelDescription;
|
|
10
13
|
}
|
|
11
14
|
//# sourceMappingURL=anthropic-frontend-application-contribution.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic-frontend-application-contribution.d.ts","sourceRoot":"","sources":["../../src/browser/anthropic-frontend-application-contribution.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,+BAA+B,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE7F,OAAO,EAAE,8BAA8B,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"anthropic-frontend-application-contribution.d.ts","sourceRoot":"","sources":["../../src/browser/anthropic-frontend-application-contribution.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,+BAA+B,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE7F,OAAO,EAAE,8BAA8B,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AAEtF,OAAO,EAAE,iBAAiB,EAA+B,MAAM,gDAAgD,CAAC;AAchH,qBACa,wCAAyC,YAAW,+BAA+B;IAG5F,SAAS,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAG/C,SAAS,CAAC,OAAO,EAAE,8BAA8B,CAAC;IAGlD,SAAS,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAE/C,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,CAAM;IAEpC,OAAO,IAAI,IAAI;IAyBf,SAAS,CAAC,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI;IAYvD,SAAS,CAAC,6BAA6B,IAAI,IAAI;IAK/C,SAAS,CAAC,+BAA+B,CAAC,OAAO,EAAE,MAAM,GAAG,yBAAyB;CAsBxF"}
|
|
@@ -21,6 +21,7 @@ const browser_1 = require("@theia/core/lib/browser");
|
|
|
21
21
|
const inversify_1 = require("@theia/core/shared/inversify");
|
|
22
22
|
const common_1 = require("../common");
|
|
23
23
|
const anthropic_preferences_1 = require("./anthropic-preferences");
|
|
24
|
+
const ai_core_preferences_1 = require("@theia/ai-core/lib/browser/ai-core-preferences");
|
|
24
25
|
const ANTHROPIC_PROVIDER_ID = 'anthropic';
|
|
25
26
|
// Model-specific maxTokens values
|
|
26
27
|
const DEFAULT_MODEL_MAX_TOKENS = {
|
|
@@ -28,7 +29,7 @@ const DEFAULT_MODEL_MAX_TOKENS = {
|
|
|
28
29
|
'claude-3-5-haiku-latest': 8192,
|
|
29
30
|
'claude-3-5-sonnet-latest': 8192,
|
|
30
31
|
'claude-3-7-sonnet-latest': 64000,
|
|
31
|
-
'claude-opus-4-20250514':
|
|
32
|
+
'claude-opus-4-20250514': 32000,
|
|
32
33
|
'claude-sonnet-4-20250514': 64000
|
|
33
34
|
};
|
|
34
35
|
let AnthropicFrontendApplicationContribution = class AnthropicFrontendApplicationContribution {
|
|
@@ -50,6 +51,11 @@ let AnthropicFrontendApplicationContribution = class AnthropicFrontendApplicatio
|
|
|
50
51
|
this.handleModelChanges(event.newValue);
|
|
51
52
|
}
|
|
52
53
|
});
|
|
54
|
+
this.aiCorePreferences.onPreferenceChanged(event => {
|
|
55
|
+
if (event.preferenceName === ai_core_preferences_1.PREFERENCE_NAME_MAX_RETRIES) {
|
|
56
|
+
this.updateAllModelsWithNewRetries();
|
|
57
|
+
}
|
|
58
|
+
});
|
|
53
59
|
});
|
|
54
60
|
}
|
|
55
61
|
handleModelChanges(newModels) {
|
|
@@ -61,14 +67,22 @@ let AnthropicFrontendApplicationContribution = class AnthropicFrontendApplicatio
|
|
|
61
67
|
this.manager.createOrUpdateLanguageModels(...modelsToAdd.map(modelId => this.createAnthropicModelDescription(modelId)));
|
|
62
68
|
this.prevModels = newModels;
|
|
63
69
|
}
|
|
70
|
+
updateAllModelsWithNewRetries() {
|
|
71
|
+
const models = this.preferenceService.get(anthropic_preferences_1.MODELS_PREF, []);
|
|
72
|
+
this.manager.createOrUpdateLanguageModels(...models.map(modelId => this.createAnthropicModelDescription(modelId)));
|
|
73
|
+
}
|
|
64
74
|
createAnthropicModelDescription(modelId) {
|
|
75
|
+
var _a;
|
|
65
76
|
const id = `${ANTHROPIC_PROVIDER_ID}/${modelId}`;
|
|
66
77
|
const maxTokens = DEFAULT_MODEL_MAX_TOKENS[modelId];
|
|
78
|
+
const maxRetries = (_a = this.aiCorePreferences.get(ai_core_preferences_1.PREFERENCE_NAME_MAX_RETRIES)) !== null && _a !== void 0 ? _a : 3;
|
|
67
79
|
const description = {
|
|
68
80
|
id: id,
|
|
69
81
|
model: modelId,
|
|
70
82
|
apiKey: true,
|
|
71
|
-
enableStreaming: true
|
|
83
|
+
enableStreaming: true,
|
|
84
|
+
useCaching: true,
|
|
85
|
+
maxRetries: maxRetries
|
|
72
86
|
};
|
|
73
87
|
if (maxTokens !== undefined) {
|
|
74
88
|
description.maxTokens = maxTokens;
|
|
@@ -88,6 +102,10 @@ tslib_1.__decorate([
|
|
|
88
102
|
(0, inversify_1.inject)(common_1.AnthropicLanguageModelsManager),
|
|
89
103
|
tslib_1.__metadata("design:type", Object)
|
|
90
104
|
], AnthropicFrontendApplicationContribution.prototype, "manager", void 0);
|
|
105
|
+
tslib_1.__decorate([
|
|
106
|
+
(0, inversify_1.inject)(ai_core_preferences_1.AICorePreferences),
|
|
107
|
+
tslib_1.__metadata("design:type", Object)
|
|
108
|
+
], AnthropicFrontendApplicationContribution.prototype, "aiCorePreferences", void 0);
|
|
91
109
|
exports.AnthropicFrontendApplicationContribution = AnthropicFrontendApplicationContribution = tslib_1.__decorate([
|
|
92
110
|
(0, inversify_1.injectable)()
|
|
93
111
|
], AnthropicFrontendApplicationContribution);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic-frontend-application-contribution.js","sourceRoot":"","sources":["../../src/browser/anthropic-frontend-application-contribution.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,qDAA6F;AAC7F,4DAAkE;AAClE,sCAAsF;AACtF,mEAAoE;
|
|
1
|
+
{"version":3,"file":"anthropic-frontend-application-contribution.js","sourceRoot":"","sources":["../../src/browser/anthropic-frontend-application-contribution.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,10 +17,18 @@ export interface AnthropicModelDescription {
|
|
|
17
17
|
* Indicate whether the streaming API shall be used.
|
|
18
18
|
*/
|
|
19
19
|
enableStreaming: boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Indicate whether the model supports prompt caching.
|
|
22
|
+
*/
|
|
23
|
+
useCaching: boolean;
|
|
20
24
|
/**
|
|
21
25
|
* Maximum number of tokens to generate. Default is 4096.
|
|
22
26
|
*/
|
|
23
27
|
maxTokens?: number;
|
|
28
|
+
/**
|
|
29
|
+
* Maximum number of retry attempts when a request fails. Default is 3.
|
|
30
|
+
*/
|
|
31
|
+
maxRetries: number;
|
|
24
32
|
}
|
|
25
33
|
export interface AnthropicLanguageModelsManager {
|
|
26
34
|
apiKey: string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic-language-models-manager.d.ts","sourceRoot":"","sources":["../../src/common/anthropic-language-models-manager.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,sCAAsC,+CAA+C,CAAC;AACnG,eAAO,MAAM,8BAA8B,eAA2C,CAAC;AACvF,MAAM,WAAW,yBAAyB;IACtC;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAClC;;OAEG;IACH,eAAe,EAAE,OAAO,CAAC;IACzB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CAEtB;AACD,MAAM,WAAW,8BAA8B;IAC3C,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IACzC,4BAA4B,CAAC,GAAG,MAAM,EAAE,yBAAyB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpF,oBAAoB,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;CACpD"}
|
|
1
|
+
{"version":3,"file":"anthropic-language-models-manager.d.ts","sourceRoot":"","sources":["../../src/common/anthropic-language-models-manager.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,sCAAsC,+CAA+C,CAAC;AACnG,eAAO,MAAM,8BAA8B,eAA2C,CAAC;AACvF,MAAM,WAAW,yBAAyB;IACtC;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAClC;;OAEG;IACH,eAAe,EAAE,OAAO,CAAC;IACzB;;OAEG;IACH,UAAU,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;CAEtB;AACD,MAAM,WAAW,8BAA8B;IAC3C,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IACzC,4BAA4B,CAAC,GAAG,MAAM,EAAE,yBAAyB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpF,oBAAoB,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;CACpD"}
|
|
@@ -10,10 +10,12 @@ export declare class AnthropicModel implements LanguageModel {
|
|
|
10
10
|
readonly id: string;
|
|
11
11
|
model: string;
|
|
12
12
|
enableStreaming: boolean;
|
|
13
|
+
useCaching: boolean;
|
|
13
14
|
apiKey: () => string | undefined;
|
|
14
15
|
maxTokens: number;
|
|
16
|
+
maxRetries: number;
|
|
15
17
|
protected readonly tokenUsageService?: TokenUsageService | undefined;
|
|
16
|
-
constructor(id: string, model: string, enableStreaming: boolean, apiKey: () => string | undefined, maxTokens?: number, tokenUsageService?: TokenUsageService | undefined);
|
|
18
|
+
constructor(id: string, model: string, enableStreaming: boolean, useCaching: boolean, apiKey: () => string | undefined, maxTokens?: number, maxRetries?: number, tokenUsageService?: TokenUsageService | undefined);
|
|
17
19
|
protected getSettings(request: LanguageModelRequest): Readonly<Record<string, unknown>>;
|
|
18
20
|
request(request: UserRequest, cancellationToken?: CancellationToken): Promise<LanguageModelResponse>;
|
|
19
21
|
protected formatToolCallResult(result: unknown): string | Array<{
|
|
@@ -21,7 +23,7 @@ export declare class AnthropicModel implements LanguageModel {
|
|
|
21
23
|
text: string;
|
|
22
24
|
}>;
|
|
23
25
|
protected handleStreamingRequest(anthropic: Anthropic, request: UserRequest, cancellationToken?: CancellationToken, toolMessages?: readonly Anthropic.Messages.MessageParam[]): Promise<LanguageModelStreamResponse>;
|
|
24
|
-
|
|
26
|
+
protected createTools(request: LanguageModelRequest): Anthropic.Messages.Tool[] | undefined;
|
|
25
27
|
protected handleNonStreamingRequest(anthropic: Anthropic, request: UserRequest): Promise<LanguageModelTextResponse>;
|
|
26
28
|
protected initializeAnthropic(): Anthropic;
|
|
27
29
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic-language-model.d.ts","sourceRoot":"","sources":["../../src/node/anthropic-language-model.ts"],"names":[],"mappings":"AAgBA,OAAO,EACH,aAAa,EACb,oBAAoB,EAEpB,qBAAqB,EACrB,2BAA2B,EAE3B,yBAAyB,EACzB,iBAAiB,EAEjB,WAAW,
|
|
1
|
+
{"version":3,"file":"anthropic-language-model.d.ts","sourceRoot":"","sources":["../../src/node/anthropic-language-model.ts"],"names":[],"mappings":"AAgBA,OAAO,EACH,aAAa,EACb,oBAAoB,EAEpB,qBAAqB,EACrB,2BAA2B,EAE3B,yBAAyB,EACzB,iBAAiB,EAEjB,WAAW,EAGd,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAW,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAG9C,eAAO,MAAM,kBAAkB,OAAO,CAAC;AA2GvC,eAAO,MAAM,wBAAwB,eAAqC,CAAC;AAgB3E;;GAEG;AACH,qBAAa,cAAe,YAAW,aAAa;aAG5B,EAAE,EAAE,MAAM;IACnB,KAAK,EAAE,MAAM;IACb,eAAe,EAAE,OAAO;IACxB,UAAU,EAAE,OAAO;IACnB,MAAM,EAAE,MAAM,MAAM,GAAG,SAAS;IAChC,SAAS,EAAE,MAAM;IACjB,UAAU,EAAE,MAAM;IACzB,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC;gBAPrB,EAAE,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,eAAe,EAAE,OAAO,EACxB,UAAU,EAAE,OAAO,EACnB,MAAM,EAAE,MAAM,MAAM,GAAG,SAAS,EAChC,SAAS,GAAE,MAA2B,EACtC,UAAU,GAAE,MAAU,EACV,iBAAiB,CAAC,+BAAmB;IAG5D,SAAS,CAAC,WAAW,CAAC,OAAO,EAAE,oBAAoB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAIjF,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,iBAAiB,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAkB1G,SAAS,CAAC,oBAAoB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;cAiB/E,sBAAsB,CAClC,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,WAAW,EACpB,iBAAiB,CAAC,EAAE,iBAAiB,EACrC,YAAY,CAAC,EAAE,SAAS,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,GAC1D,OAAO,CAAC,2BAA2B,CAAC;IA+IvC,SAAS,CAAC,WAAW,CAAC,OAAO,EAAE,oBAAoB,GAAG,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,SAAS;cAiB3E,yBAAyB,CACrC,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,WAAW,GACrB,OAAO,CAAC,yBAAyB,CAAC;IAoCrC,SAAS,CAAC,mBAAmB,IAAI,SAAS;CAQ7C"}
|
|
@@ -22,7 +22,7 @@ const sdk_1 = require("@anthropic-ai/sdk");
|
|
|
22
22
|
exports.DEFAULT_MAX_TOKENS = 4096;
|
|
23
23
|
const createMessageContent = (message) => {
|
|
24
24
|
if (ai_core_1.LanguageModelMessage.isTextMessage(message)) {
|
|
25
|
-
return message.text;
|
|
25
|
+
return [{ type: 'text', text: message.text }];
|
|
26
26
|
}
|
|
27
27
|
else if (ai_core_1.LanguageModelMessage.isThinkingMessage(message)) {
|
|
28
28
|
return [{ signature: message.signature, thinking: message.thinking, type: 'thinking' }];
|
|
@@ -33,17 +33,43 @@ const createMessageContent = (message) => {
|
|
|
33
33
|
else if (ai_core_1.LanguageModelMessage.isToolResultMessage(message)) {
|
|
34
34
|
return [{ type: 'tool_result', tool_use_id: message.tool_use_id }];
|
|
35
35
|
}
|
|
36
|
+
else if (ai_core_1.LanguageModelMessage.isImageMessage(message)) {
|
|
37
|
+
if (ai_core_1.ImageContent.isBase64(message.image)) {
|
|
38
|
+
return [{ type: 'image', source: { type: 'base64', media_type: mimeTypeToMediaType(message.image.mimeType), data: message.image.base64data } }];
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
return [{ type: 'image', source: { type: 'url', url: message.image.url } }];
|
|
42
|
+
}
|
|
43
|
+
}
|
|
36
44
|
throw new Error(`Unknown message type:'${JSON.stringify(message)}'`);
|
|
37
45
|
};
|
|
46
|
+
function mimeTypeToMediaType(mimeType) {
|
|
47
|
+
switch (mimeType) {
|
|
48
|
+
case 'image/gif':
|
|
49
|
+
return 'image/gif';
|
|
50
|
+
case 'image/jpeg':
|
|
51
|
+
return 'image/jpeg';
|
|
52
|
+
case 'image/png':
|
|
53
|
+
return 'image/png';
|
|
54
|
+
case 'image/webp':
|
|
55
|
+
return 'image/webp';
|
|
56
|
+
default:
|
|
57
|
+
return 'image/jpeg';
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
function isNonThinkingParam(content) {
|
|
61
|
+
return content.type !== 'thinking' && content.type !== 'redacted_thinking';
|
|
62
|
+
}
|
|
38
63
|
/**
|
|
39
64
|
* Transforms Theia language model messages to Anthropic API format
|
|
40
65
|
* @param messages Array of LanguageModelRequestMessage to transform
|
|
41
66
|
* @returns Object containing transformed messages and optional system message
|
|
42
67
|
*/
|
|
43
|
-
function transformToAnthropicParams(messages) {
|
|
68
|
+
function transformToAnthropicParams(messages, addCacheControl = true) {
|
|
44
69
|
// Extract the system message (if any), as it is a separate parameter in the Anthropic API.
|
|
45
70
|
const systemMessageObj = messages.find(message => message.actor === 'system');
|
|
46
|
-
const
|
|
71
|
+
const systemMessageText = systemMessageObj && ai_core_1.LanguageModelMessage.isTextMessage(systemMessageObj) && systemMessageObj.text || undefined;
|
|
72
|
+
const systemMessage = systemMessageText ? [{ type: 'text', text: systemMessageText, cache_control: addCacheControl ? { type: 'ephemeral' } : undefined }] : undefined;
|
|
47
73
|
const convertedMessages = messages
|
|
48
74
|
.filter(message => message.actor !== 'system')
|
|
49
75
|
.map(message => ({
|
|
@@ -55,6 +81,35 @@ function transformToAnthropicParams(messages) {
|
|
|
55
81
|
systemMessage,
|
|
56
82
|
};
|
|
57
83
|
}
|
|
84
|
+
/**
|
|
85
|
+
* If possible adds a cache control to the last message in the conversation.
|
|
86
|
+
* This is used to enable incremental caching of the conversation.
|
|
87
|
+
* @param messages The messages to process
|
|
88
|
+
* @returns A new messages array with the last message adapted to include cache control. If no cache control can be added, the original messages are returned.
|
|
89
|
+
* In any case, the original messages are not modified
|
|
90
|
+
*/
|
|
91
|
+
function addCacheControlToLastMessage(messages) {
|
|
92
|
+
const clonedMessages = [...messages];
|
|
93
|
+
const latestMessage = clonedMessages.pop();
|
|
94
|
+
if (latestMessage) {
|
|
95
|
+
let content = undefined;
|
|
96
|
+
if (typeof latestMessage.content === 'string') {
|
|
97
|
+
content = { type: 'text', text: latestMessage.content };
|
|
98
|
+
}
|
|
99
|
+
else if (Array.isArray(latestMessage.content)) {
|
|
100
|
+
// we can't set cache control on thinking messages, so we only set it on the last non-thinking block
|
|
101
|
+
const filteredContent = latestMessage.content.filter(isNonThinkingParam);
|
|
102
|
+
if (filteredContent.length) {
|
|
103
|
+
content = filteredContent[filteredContent.length - 1];
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
if (content) {
|
|
107
|
+
const cachedContent = { ...content, cache_control: { type: 'ephemeral' } };
|
|
108
|
+
return [...clonedMessages, { ...latestMessage, content: [cachedContent] }];
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
return messages;
|
|
112
|
+
}
|
|
58
113
|
exports.AnthropicModelIdentifier = Symbol('AnthropicModelIdentifier');
|
|
59
114
|
/**
|
|
60
115
|
* Converts Theia message actor to Anthropic role
|
|
@@ -73,12 +128,14 @@ function toAnthropicRole(message) {
|
|
|
73
128
|
* Implements the Anthropic language model integration for Theia
|
|
74
129
|
*/
|
|
75
130
|
class AnthropicModel {
|
|
76
|
-
constructor(id, model, enableStreaming, apiKey, maxTokens = exports.DEFAULT_MAX_TOKENS, tokenUsageService) {
|
|
131
|
+
constructor(id, model, enableStreaming, useCaching, apiKey, maxTokens = exports.DEFAULT_MAX_TOKENS, maxRetries = 3, tokenUsageService) {
|
|
77
132
|
this.id = id;
|
|
78
133
|
this.model = model;
|
|
79
134
|
this.enableStreaming = enableStreaming;
|
|
135
|
+
this.useCaching = useCaching;
|
|
80
136
|
this.apiKey = apiKey;
|
|
81
137
|
this.maxTokens = maxTokens;
|
|
138
|
+
this.maxRetries = maxRetries;
|
|
82
139
|
this.tokenUsageService = tokenUsageService;
|
|
83
140
|
}
|
|
84
141
|
getSettings(request) {
|
|
@@ -117,18 +174,22 @@ class AnthropicModel {
|
|
|
117
174
|
}
|
|
118
175
|
async handleStreamingRequest(anthropic, request, cancellationToken, toolMessages) {
|
|
119
176
|
const settings = this.getSettings(request);
|
|
120
|
-
const { messages, systemMessage } = transformToAnthropicParams(request.messages);
|
|
177
|
+
const { messages, systemMessage } = transformToAnthropicParams(request.messages, this.useCaching);
|
|
178
|
+
let anthropicMessages = [...messages, ...(toolMessages !== null && toolMessages !== void 0 ? toolMessages : [])];
|
|
179
|
+
if (this.useCaching && anthropicMessages.length) {
|
|
180
|
+
anthropicMessages = addCacheControlToLastMessage(anthropicMessages);
|
|
181
|
+
}
|
|
121
182
|
const tools = this.createTools(request);
|
|
122
183
|
const params = {
|
|
123
184
|
max_tokens: this.maxTokens,
|
|
124
|
-
messages:
|
|
185
|
+
messages: anthropicMessages,
|
|
125
186
|
tools,
|
|
126
187
|
tool_choice: tools ? { type: 'auto' } : undefined,
|
|
127
188
|
model: this.model,
|
|
128
189
|
...(systemMessage && { system: systemMessage }),
|
|
129
190
|
...settings
|
|
130
191
|
};
|
|
131
|
-
const stream = anthropic.messages.stream(params);
|
|
192
|
+
const stream = anthropic.messages.stream(params, { maxRetries: this.maxRetries });
|
|
132
193
|
cancellationToken === null || cancellationToken === void 0 ? void 0 : cancellationToken.onCancellationRequested(() => {
|
|
133
194
|
stream.abort();
|
|
134
195
|
});
|
|
@@ -196,6 +257,8 @@ class AnthropicModel {
|
|
|
196
257
|
const tokenUsageParams = {
|
|
197
258
|
inputTokens: currentMessage.usage.input_tokens,
|
|
198
259
|
outputTokens: currentMessage.usage.output_tokens,
|
|
260
|
+
cachedInputTokens: currentMessage.usage.cache_creation_input_tokens || undefined,
|
|
261
|
+
readCachedInputTokens: currentMessage.usage.cache_read_input_tokens || undefined,
|
|
199
262
|
requestId: request.requestId
|
|
200
263
|
};
|
|
201
264
|
await that.tokenUsageService.recordTokenUsage(that.id, tokenUsageParams);
|
|
@@ -244,11 +307,17 @@ class AnthropicModel {
|
|
|
244
307
|
if (((_a = request.tools) === null || _a === void 0 ? void 0 : _a.length) === 0) {
|
|
245
308
|
return undefined;
|
|
246
309
|
}
|
|
247
|
-
|
|
310
|
+
const tools = (_b = request.tools) === null || _b === void 0 ? void 0 : _b.map(tool => ({
|
|
248
311
|
name: tool.name,
|
|
249
312
|
description: tool.description,
|
|
250
313
|
input_schema: tool.parameters
|
|
251
314
|
}));
|
|
315
|
+
if (this.useCaching) {
|
|
316
|
+
if (tools === null || tools === void 0 ? void 0 : tools.length) {
|
|
317
|
+
tools[tools.length - 1].cache_control = { type: 'ephemeral' };
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
return tools;
|
|
252
321
|
}
|
|
253
322
|
async handleNonStreamingRequest(anthropic, request) {
|
|
254
323
|
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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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"anthropic-language-model.spec.d.ts","sourceRoot":"","sources":["../../src/node/anthropic-language-model.spec.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// *****************************************************************************
|
|
3
|
+
// Copyright (C) 2025 EclipseSource GmbH.
|
|
4
|
+
//
|
|
5
|
+
// This program and the accompanying materials are made available under the
|
|
6
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
7
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
8
|
+
//
|
|
9
|
+
// This Source Code may also be made available under the following Secondary
|
|
10
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
11
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
12
|
+
// with the GNU Classpath Exception which is available at
|
|
13
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
14
|
+
//
|
|
15
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
16
|
+
// *****************************************************************************
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
const chai_1 = require("chai");
|
|
19
|
+
const anthropic_language_model_1 = require("./anthropic-language-model");
|
|
20
|
+
describe('AnthropicModel', () => {
|
|
21
|
+
describe('constructor', () => {
|
|
22
|
+
it('should set default maxRetries to 3 when not provided', () => {
|
|
23
|
+
const model = new anthropic_language_model_1.AnthropicModel('test-id', 'claude-3-opus-20240229', true, true, () => 'test-api-key', anthropic_language_model_1.DEFAULT_MAX_TOKENS);
|
|
24
|
+
(0, chai_1.expect)(model.maxRetries).to.equal(3);
|
|
25
|
+
});
|
|
26
|
+
it('should set custom maxRetries when provided', () => {
|
|
27
|
+
const customMaxRetries = 5;
|
|
28
|
+
const model = new anthropic_language_model_1.AnthropicModel('test-id', 'claude-3-opus-20240229', true, true, () => 'test-api-key', anthropic_language_model_1.DEFAULT_MAX_TOKENS, customMaxRetries);
|
|
29
|
+
(0, chai_1.expect)(model.maxRetries).to.equal(customMaxRetries);
|
|
30
|
+
});
|
|
31
|
+
it('should preserve all other constructor parameters', () => {
|
|
32
|
+
const model = new anthropic_language_model_1.AnthropicModel('test-id', 'claude-3-opus-20240229', true, true, () => 'test-api-key', anthropic_language_model_1.DEFAULT_MAX_TOKENS, 5);
|
|
33
|
+
(0, chai_1.expect)(model.id).to.equal('test-id');
|
|
34
|
+
(0, chai_1.expect)(model.model).to.equal('claude-3-opus-20240229');
|
|
35
|
+
(0, chai_1.expect)(model.enableStreaming).to.be.true;
|
|
36
|
+
(0, chai_1.expect)(model.maxTokens).to.equal(anthropic_language_model_1.DEFAULT_MAX_TOKENS);
|
|
37
|
+
(0, chai_1.expect)(model.maxRetries).to.equal(5);
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
//# sourceMappingURL=anthropic-language-model.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"anthropic-language-model.spec.js","sourceRoot":"","sources":["../../src/node/anthropic-language-model.spec.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,+BAA8B;AAC9B,yEAAgF;AAEhF,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAE5B,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QACzB,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;YAC5D,MAAM,KAAK,GAAG,IAAI,yCAAc,CAC5B,SAAS,EACT,wBAAwB,EACxB,IAAI,EACJ,IAAI,EACJ,GAAG,EAAE,CAAC,cAAc,EACpB,6CAAkB,CACrB,CAAC;YAEF,IAAA,aAAM,EAAC,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;YAClD,MAAM,gBAAgB,GAAG,CAAC,CAAC;YAC3B,MAAM,KAAK,GAAG,IAAI,yCAAc,CAC5B,SAAS,EACT,wBAAwB,EACxB,IAAI,EACJ,IAAI,EACJ,GAAG,EAAE,CAAC,cAAc,EACpB,6CAAkB,EAClB,gBAAgB,CACnB,CAAC;YAEF,IAAA,aAAM,EAAC,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;YACxD,MAAM,KAAK,GAAG,IAAI,yCAAc,CAC5B,SAAS,EACT,wBAAwB,EACxB,IAAI,EACJ,IAAI,EACJ,GAAG,EAAE,CAAC,cAAc,EACpB,6CAAkB,EAClB,CAAC,CACJ,CAAC;YAEF,IAAA,aAAM,EAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACrC,IAAA,aAAM,EAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;YACvD,IAAA,aAAM,EAAC,KAAK,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YACzC,IAAA,aAAM,EAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,6CAAkB,CAAC,CAAC;YACrD,IAAA,aAAM,EAAC,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic-language-models-manager-impl.d.ts","sourceRoot":"","sources":["../../src/node/anthropic-language-models-manager-impl.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAG1E,OAAO,EAAE,8BAA8B,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AAEtF,qBACa,kCAAmC,YAAW,8BAA8B;IAErF,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAGtC,SAAS,CAAC,QAAQ,CAAC,qBAAqB,EAAE,qBAAqB,CAAC;IAGhE,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAExD,IAAI,MAAM,IAAI,MAAM,GAAG,SAAS,CAE/B;IAEK,4BAA4B,CAAC,GAAG,iBAAiB,EAAE,yBAAyB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"anthropic-language-models-manager-impl.d.ts","sourceRoot":"","sources":["../../src/node/anthropic-language-models-manager-impl.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAG1E,OAAO,EAAE,8BAA8B,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AAEtF,qBACa,kCAAmC,YAAW,8BAA8B;IAErF,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAGtC,SAAS,CAAC,QAAQ,CAAC,qBAAqB,EAAE,qBAAqB,CAAC;IAGhE,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAExD,IAAI,MAAM,IAAI,MAAM,GAAG,SAAS,CAE/B;IAEK,4BAA4B,CAAC,GAAG,iBAAiB,EAAE,yBAAyB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA4CpG,oBAAoB,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IAIjD,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;CAO9C"}
|
|
@@ -51,10 +51,11 @@ let AnthropicLanguageModelsManagerImpl = class AnthropicLanguageModelsManagerImp
|
|
|
51
51
|
else {
|
|
52
52
|
model.maxTokens = anthropic_language_model_1.DEFAULT_MAX_TOKENS;
|
|
53
53
|
}
|
|
54
|
+
model.maxRetries = modelDescription.maxRetries;
|
|
54
55
|
}
|
|
55
56
|
else {
|
|
56
57
|
this.languageModelRegistry.addLanguageModels([
|
|
57
|
-
new anthropic_language_model_1.AnthropicModel(modelDescription.id, modelDescription.model, modelDescription.enableStreaming, apiKeyProvider, modelDescription.maxTokens, this.tokenUsageService)
|
|
58
|
+
new anthropic_language_model_1.AnthropicModel(modelDescription.id, modelDescription.model, modelDescription.enableStreaming, modelDescription.useCaching, apiKeyProvider, modelDescription.maxTokens, modelDescription.maxRetries, this.tokenUsageService)
|
|
58
59
|
]);
|
|
59
60
|
}
|
|
60
61
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic-language-models-manager-impl.js","sourceRoot":"","sources":["../../src/node/anthropic-language-models-manager-impl.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,4CAA0E;AAC1E,4DAAkE;AAClE,yEAAgF;AAIzE,IAAM,kCAAkC,GAAxC,MAAM,kCAAkC;IAU3C,IAAI,MAAM;;QACN,OAAO,MAAA,IAAI,CAAC,OAAO,mCAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,4BAA4B,CAAC,GAAG,iBAA8C;QAChF,KAAK,MAAM,gBAAgB,IAAI,iBAAiB,EAAE,CAAC;YAC/C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;YACrF,MAAM,cAAc,GAAG,GAAG,EAAE;gBACxB,IAAI,gBAAgB,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;oBACnC,OAAO,IAAI,CAAC,MAAM,CAAC;gBACvB,CAAC;gBACD,IAAI,gBAAgB,CAAC,MAAM,EAAE,CAAC;oBAC1B,OAAO,gBAAgB,CAAC,MAAM,CAAC;gBACnC,CAAC;gBACD,OAAO,SAAS,CAAC;YACrB,CAAC,CAAC;YAEF,IAAI,KAAK,EAAE,CAAC;gBACR,IAAI,CAAC,CAAC,KAAK,YAAY,yCAAc,CAAC,EAAE,CAAC;oBACrC,OAAO,CAAC,IAAI,CAAC,oBAAoB,gBAAgB,CAAC,EAAE,4BAA4B,CAAC,CAAC;oBAClF,SAAS;gBACb,CAAC;gBACD,KAAK,CAAC,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC;gBACrC,KAAK,CAAC,eAAe,GAAG,gBAAgB,CAAC,eAAe,CAAC;gBACzD,KAAK,CAAC,MAAM,GAAG,cAAc,CAAC;gBAC9B,IAAI,gBAAgB,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;oBAC3C,KAAK,CAAC,SAAS,GAAG,gBAAgB,CAAC,SAAS,CAAC;gBACjD,CAAC;qBAAM,CAAC;oBACJ,KAAK,CAAC,SAAS,GAAG,6CAAkB,CAAC;gBACzC,CAAC;
|
|
1
|
+
{"version":3,"file":"anthropic-language-models-manager-impl.js","sourceRoot":"","sources":["../../src/node/anthropic-language-models-manager-impl.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@theia/ai-anthropic",
|
|
3
|
-
"version": "1.63.0-next.
|
|
3
|
+
"version": "1.63.0-next.52+176018e53",
|
|
4
4
|
"description": "Theia - Anthropic Integration",
|
|
5
5
|
"dependencies": {
|
|
6
|
-
"@anthropic-ai/sdk": "^0.
|
|
7
|
-
"@theia/ai-core": "1.63.0-next.
|
|
8
|
-
"@theia/core": "1.63.0-next.
|
|
6
|
+
"@anthropic-ai/sdk": "^0.52.0",
|
|
7
|
+
"@theia/ai-core": "1.63.0-next.52+176018e53",
|
|
8
|
+
"@theia/core": "1.63.0-next.52+176018e53"
|
|
9
9
|
},
|
|
10
10
|
"publishConfig": {
|
|
11
11
|
"access": "public"
|
|
@@ -46,5 +46,5 @@
|
|
|
46
46
|
"nyc": {
|
|
47
47
|
"extends": "../../configs/nyc.json"
|
|
48
48
|
},
|
|
49
|
-
"gitHead": "
|
|
49
|
+
"gitHead": "176018e53e62cafec9b25b23ac9f0b4826b6d0f7"
|
|
50
50
|
}
|
|
@@ -18,6 +18,7 @@ import { FrontendApplicationContribution, PreferenceService } from '@theia/core/
|
|
|
18
18
|
import { inject, injectable } from '@theia/core/shared/inversify';
|
|
19
19
|
import { AnthropicLanguageModelsManager, AnthropicModelDescription } from '../common';
|
|
20
20
|
import { API_KEY_PREF, MODELS_PREF } from './anthropic-preferences';
|
|
21
|
+
import { AICorePreferences, PREFERENCE_NAME_MAX_RETRIES } from '@theia/ai-core/lib/browser/ai-core-preferences';
|
|
21
22
|
|
|
22
23
|
const ANTHROPIC_PROVIDER_ID = 'anthropic';
|
|
23
24
|
|
|
@@ -27,7 +28,7 @@ const DEFAULT_MODEL_MAX_TOKENS: Record<string, number> = {
|
|
|
27
28
|
'claude-3-5-haiku-latest': 8192,
|
|
28
29
|
'claude-3-5-sonnet-latest': 8192,
|
|
29
30
|
'claude-3-7-sonnet-latest': 64000,
|
|
30
|
-
'claude-opus-4-20250514':
|
|
31
|
+
'claude-opus-4-20250514': 32000,
|
|
31
32
|
'claude-sonnet-4-20250514': 64000
|
|
32
33
|
};
|
|
33
34
|
|
|
@@ -40,6 +41,9 @@ export class AnthropicFrontendApplicationContribution implements FrontendApplica
|
|
|
40
41
|
@inject(AnthropicLanguageModelsManager)
|
|
41
42
|
protected manager: AnthropicLanguageModelsManager;
|
|
42
43
|
|
|
44
|
+
@inject(AICorePreferences)
|
|
45
|
+
protected aiCorePreferences: AICorePreferences;
|
|
46
|
+
|
|
43
47
|
protected prevModels: string[] = [];
|
|
44
48
|
|
|
45
49
|
onStart(): void {
|
|
@@ -58,6 +62,12 @@ export class AnthropicFrontendApplicationContribution implements FrontendApplica
|
|
|
58
62
|
this.handleModelChanges(event.newValue as string[]);
|
|
59
63
|
}
|
|
60
64
|
});
|
|
65
|
+
|
|
66
|
+
this.aiCorePreferences.onPreferenceChanged(event => {
|
|
67
|
+
if (event.preferenceName === PREFERENCE_NAME_MAX_RETRIES) {
|
|
68
|
+
this.updateAllModelsWithNewRetries();
|
|
69
|
+
}
|
|
70
|
+
});
|
|
61
71
|
});
|
|
62
72
|
}
|
|
63
73
|
|
|
@@ -73,15 +83,23 @@ export class AnthropicFrontendApplicationContribution implements FrontendApplica
|
|
|
73
83
|
this.prevModels = newModels;
|
|
74
84
|
}
|
|
75
85
|
|
|
86
|
+
protected updateAllModelsWithNewRetries(): void {
|
|
87
|
+
const models = this.preferenceService.get<string[]>(MODELS_PREF, []);
|
|
88
|
+
this.manager.createOrUpdateLanguageModels(...models.map(modelId => this.createAnthropicModelDescription(modelId)));
|
|
89
|
+
}
|
|
90
|
+
|
|
76
91
|
protected createAnthropicModelDescription(modelId: string): AnthropicModelDescription {
|
|
77
92
|
const id = `${ANTHROPIC_PROVIDER_ID}/${modelId}`;
|
|
78
93
|
const maxTokens = DEFAULT_MODEL_MAX_TOKENS[modelId];
|
|
94
|
+
const maxRetries = this.aiCorePreferences.get(PREFERENCE_NAME_MAX_RETRIES) ?? 3;
|
|
79
95
|
|
|
80
96
|
const description: AnthropicModelDescription = {
|
|
81
97
|
id: id,
|
|
82
98
|
model: modelId,
|
|
83
99
|
apiKey: true,
|
|
84
|
-
enableStreaming: true
|
|
100
|
+
enableStreaming: true,
|
|
101
|
+
useCaching: true,
|
|
102
|
+
maxRetries: maxRetries
|
|
85
103
|
};
|
|
86
104
|
|
|
87
105
|
if (maxTokens !== undefined) {
|
|
@@ -32,10 +32,18 @@ export interface AnthropicModelDescription {
|
|
|
32
32
|
* Indicate whether the streaming API shall be used.
|
|
33
33
|
*/
|
|
34
34
|
enableStreaming: boolean;
|
|
35
|
+
/**
|
|
36
|
+
* Indicate whether the model supports prompt caching.
|
|
37
|
+
*/
|
|
38
|
+
useCaching: boolean;
|
|
35
39
|
/**
|
|
36
40
|
* Maximum number of tokens to generate. Default is 4096.
|
|
37
41
|
*/
|
|
38
42
|
maxTokens?: number;
|
|
43
|
+
/**
|
|
44
|
+
* Maximum number of retry attempts when a request fails. Default is 3.
|
|
45
|
+
*/
|
|
46
|
+
maxRetries: number;
|
|
39
47
|
|
|
40
48
|
}
|
|
41
49
|
export interface AnthropicLanguageModelsManager {
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
// *****************************************************************************
|
|
2
|
+
// Copyright (C) 2025 EclipseSource GmbH.
|
|
3
|
+
//
|
|
4
|
+
// This program and the accompanying materials are made available under the
|
|
5
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
//
|
|
8
|
+
// This Source Code may also be made available under the following Secondary
|
|
9
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
// with the GNU Classpath Exception which is available at
|
|
12
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
//
|
|
14
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
|
+
// *****************************************************************************
|
|
16
|
+
|
|
17
|
+
import { expect } from 'chai';
|
|
18
|
+
import { AnthropicModel, DEFAULT_MAX_TOKENS } from './anthropic-language-model';
|
|
19
|
+
|
|
20
|
+
describe('AnthropicModel', () => {
|
|
21
|
+
|
|
22
|
+
describe('constructor', () => {
|
|
23
|
+
it('should set default maxRetries to 3 when not provided', () => {
|
|
24
|
+
const model = new AnthropicModel(
|
|
25
|
+
'test-id',
|
|
26
|
+
'claude-3-opus-20240229',
|
|
27
|
+
true,
|
|
28
|
+
true,
|
|
29
|
+
() => 'test-api-key',
|
|
30
|
+
DEFAULT_MAX_TOKENS
|
|
31
|
+
);
|
|
32
|
+
|
|
33
|
+
expect(model.maxRetries).to.equal(3);
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
it('should set custom maxRetries when provided', () => {
|
|
37
|
+
const customMaxRetries = 5;
|
|
38
|
+
const model = new AnthropicModel(
|
|
39
|
+
'test-id',
|
|
40
|
+
'claude-3-opus-20240229',
|
|
41
|
+
true,
|
|
42
|
+
true,
|
|
43
|
+
() => 'test-api-key',
|
|
44
|
+
DEFAULT_MAX_TOKENS,
|
|
45
|
+
customMaxRetries
|
|
46
|
+
);
|
|
47
|
+
|
|
48
|
+
expect(model.maxRetries).to.equal(customMaxRetries);
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
it('should preserve all other constructor parameters', () => {
|
|
52
|
+
const model = new AnthropicModel(
|
|
53
|
+
'test-id',
|
|
54
|
+
'claude-3-opus-20240229',
|
|
55
|
+
true,
|
|
56
|
+
true,
|
|
57
|
+
() => 'test-api-key',
|
|
58
|
+
DEFAULT_MAX_TOKENS,
|
|
59
|
+
5
|
|
60
|
+
);
|
|
61
|
+
|
|
62
|
+
expect(model.id).to.equal('test-id');
|
|
63
|
+
expect(model.model).to.equal('claude-3-opus-20240229');
|
|
64
|
+
expect(model.enableStreaming).to.be.true;
|
|
65
|
+
expect(model.maxTokens).to.equal(DEFAULT_MAX_TOKENS);
|
|
66
|
+
expect(model.maxRetries).to.equal(5);
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
});
|
|
@@ -24,11 +24,13 @@ import {
|
|
|
24
24
|
LanguageModelTextResponse,
|
|
25
25
|
TokenUsageService,
|
|
26
26
|
TokenUsageParams,
|
|
27
|
-
UserRequest
|
|
27
|
+
UserRequest,
|
|
28
|
+
ImageContent,
|
|
29
|
+
ImageMimeType
|
|
28
30
|
} from '@theia/ai-core';
|
|
29
31
|
import { CancellationToken, isArray } from '@theia/core';
|
|
30
32
|
import { Anthropic } from '@anthropic-ai/sdk';
|
|
31
|
-
import { Message, MessageParam } from '@anthropic-ai/sdk/resources';
|
|
33
|
+
import { Message, MessageParam, Base64ImageSource } from '@anthropic-ai/sdk/resources';
|
|
32
34
|
|
|
33
35
|
export const DEFAULT_MAX_TOKENS = 4096;
|
|
34
36
|
|
|
@@ -41,28 +43,59 @@ interface ToolCallback {
|
|
|
41
43
|
|
|
42
44
|
const createMessageContent = (message: LanguageModelMessage): MessageParam['content'] => {
|
|
43
45
|
if (LanguageModelMessage.isTextMessage(message)) {
|
|
44
|
-
return message.text;
|
|
46
|
+
return [{ type: 'text', text: message.text }];
|
|
45
47
|
} else if (LanguageModelMessage.isThinkingMessage(message)) {
|
|
46
48
|
return [{ signature: message.signature, thinking: message.thinking, type: 'thinking' }];
|
|
47
49
|
} else if (LanguageModelMessage.isToolUseMessage(message)) {
|
|
48
50
|
return [{ id: message.id, input: message.input, name: message.name, type: 'tool_use' }];
|
|
49
51
|
} else if (LanguageModelMessage.isToolResultMessage(message)) {
|
|
50
52
|
return [{ type: 'tool_result', tool_use_id: message.tool_use_id }];
|
|
53
|
+
} else if (LanguageModelMessage.isImageMessage(message)) {
|
|
54
|
+
if (ImageContent.isBase64(message.image)) {
|
|
55
|
+
return [{ type: 'image', source: { type: 'base64', media_type: mimeTypeToMediaType(message.image.mimeType), data: message.image.base64data } }];
|
|
56
|
+
} else {
|
|
57
|
+
return [{ type: 'image', source: { type: 'url', url: message.image.url } }];
|
|
58
|
+
}
|
|
51
59
|
}
|
|
52
60
|
throw new Error(`Unknown message type:'${JSON.stringify(message)}'`);
|
|
53
61
|
};
|
|
54
62
|
|
|
63
|
+
function mimeTypeToMediaType(mimeType: ImageMimeType): Base64ImageSource['media_type'] {
|
|
64
|
+
switch (mimeType) {
|
|
65
|
+
case 'image/gif':
|
|
66
|
+
return 'image/gif';
|
|
67
|
+
case 'image/jpeg':
|
|
68
|
+
return 'image/jpeg';
|
|
69
|
+
case 'image/png':
|
|
70
|
+
return 'image/png';
|
|
71
|
+
case 'image/webp':
|
|
72
|
+
return 'image/webp';
|
|
73
|
+
default:
|
|
74
|
+
return 'image/jpeg';
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
type NonThinkingParam = Exclude<Anthropic.Messages.ContentBlockParam, Anthropic.Messages.ThinkingBlockParam | Anthropic.Messages.RedactedThinkingBlockParam>;
|
|
79
|
+
function isNonThinkingParam(
|
|
80
|
+
content: Anthropic.Messages.ContentBlockParam
|
|
81
|
+
): content is NonThinkingParam {
|
|
82
|
+
return content.type !== 'thinking' && content.type !== 'redacted_thinking';
|
|
83
|
+
}
|
|
84
|
+
|
|
55
85
|
/**
|
|
56
86
|
* Transforms Theia language model messages to Anthropic API format
|
|
57
87
|
* @param messages Array of LanguageModelRequestMessage to transform
|
|
58
88
|
* @returns Object containing transformed messages and optional system message
|
|
59
89
|
*/
|
|
60
90
|
function transformToAnthropicParams(
|
|
61
|
-
messages: readonly LanguageModelMessage[]
|
|
62
|
-
|
|
91
|
+
messages: readonly LanguageModelMessage[],
|
|
92
|
+
addCacheControl: boolean = true
|
|
93
|
+
): { messages: MessageParam[]; systemMessage?: Anthropic.Messages.TextBlockParam[] } {
|
|
63
94
|
// Extract the system message (if any), as it is a separate parameter in the Anthropic API.
|
|
64
95
|
const systemMessageObj = messages.find(message => message.actor === 'system');
|
|
65
|
-
const
|
|
96
|
+
const systemMessageText = systemMessageObj && LanguageModelMessage.isTextMessage(systemMessageObj) && systemMessageObj.text || undefined;
|
|
97
|
+
const systemMessage: Anthropic.Messages.TextBlockParam[] | undefined =
|
|
98
|
+
systemMessageText ? [{ type: 'text', text: systemMessageText, cache_control: addCacheControl ? { type: 'ephemeral' } : undefined }] : undefined;
|
|
66
99
|
|
|
67
100
|
const convertedMessages = messages
|
|
68
101
|
.filter(message => message.actor !== 'system')
|
|
@@ -77,6 +110,35 @@ function transformToAnthropicParams(
|
|
|
77
110
|
};
|
|
78
111
|
}
|
|
79
112
|
|
|
113
|
+
/**
|
|
114
|
+
* If possible adds a cache control to the last message in the conversation.
|
|
115
|
+
* This is used to enable incremental caching of the conversation.
|
|
116
|
+
* @param messages The messages to process
|
|
117
|
+
* @returns A new messages array with the last message adapted to include cache control. If no cache control can be added, the original messages are returned.
|
|
118
|
+
* In any case, the original messages are not modified
|
|
119
|
+
*/
|
|
120
|
+
function addCacheControlToLastMessage(messages: Anthropic.Messages.MessageParam[]): Anthropic.Messages.MessageParam[] {
|
|
121
|
+
const clonedMessages = [...messages];
|
|
122
|
+
const latestMessage = clonedMessages.pop();
|
|
123
|
+
if (latestMessage) {
|
|
124
|
+
let content: NonThinkingParam | undefined = undefined;
|
|
125
|
+
if (typeof latestMessage.content === 'string') {
|
|
126
|
+
content = { type: 'text', text: latestMessage.content };
|
|
127
|
+
} else if (Array.isArray(latestMessage.content)) {
|
|
128
|
+
// we can't set cache control on thinking messages, so we only set it on the last non-thinking block
|
|
129
|
+
const filteredContent = latestMessage.content.filter(isNonThinkingParam);
|
|
130
|
+
if (filteredContent.length) {
|
|
131
|
+
content = filteredContent[filteredContent.length - 1];
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
if (content) {
|
|
135
|
+
const cachedContent: NonThinkingParam = { ...content, cache_control: { type: 'ephemeral' } };
|
|
136
|
+
return [...clonedMessages, { ...latestMessage, content: [cachedContent] }];
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
return messages;
|
|
140
|
+
}
|
|
141
|
+
|
|
80
142
|
export const AnthropicModelIdentifier = Symbol('AnthropicModelIdentifier');
|
|
81
143
|
|
|
82
144
|
/**
|
|
@@ -102,8 +164,10 @@ export class AnthropicModel implements LanguageModel {
|
|
|
102
164
|
public readonly id: string,
|
|
103
165
|
public model: string,
|
|
104
166
|
public enableStreaming: boolean,
|
|
167
|
+
public useCaching: boolean,
|
|
105
168
|
public apiKey: () => string | undefined,
|
|
106
169
|
public maxTokens: number = DEFAULT_MAX_TOKENS,
|
|
170
|
+
public maxRetries: number = 3,
|
|
107
171
|
protected readonly tokenUsageService?: TokenUsageService
|
|
108
172
|
) { }
|
|
109
173
|
|
|
@@ -153,18 +217,25 @@ export class AnthropicModel implements LanguageModel {
|
|
|
153
217
|
toolMessages?: readonly Anthropic.Messages.MessageParam[]
|
|
154
218
|
): Promise<LanguageModelStreamResponse> {
|
|
155
219
|
const settings = this.getSettings(request);
|
|
156
|
-
const { messages, systemMessage } = transformToAnthropicParams(request.messages);
|
|
220
|
+
const { messages, systemMessage } = transformToAnthropicParams(request.messages, this.useCaching);
|
|
221
|
+
|
|
222
|
+
let anthropicMessages = [...messages, ...(toolMessages ?? [])];
|
|
223
|
+
|
|
224
|
+
if (this.useCaching && anthropicMessages.length) {
|
|
225
|
+
anthropicMessages = addCacheControlToLastMessage(anthropicMessages);
|
|
226
|
+
}
|
|
227
|
+
|
|
157
228
|
const tools = this.createTools(request);
|
|
158
229
|
const params: Anthropic.MessageCreateParams = {
|
|
159
230
|
max_tokens: this.maxTokens,
|
|
160
|
-
messages:
|
|
231
|
+
messages: anthropicMessages,
|
|
161
232
|
tools,
|
|
162
233
|
tool_choice: tools ? { type: 'auto' } : undefined,
|
|
163
234
|
model: this.model,
|
|
164
235
|
...(systemMessage && { system: systemMessage }),
|
|
165
236
|
...settings
|
|
166
237
|
};
|
|
167
|
-
const stream = anthropic.messages.stream(params);
|
|
238
|
+
const stream = anthropic.messages.stream(params, { maxRetries: this.maxRetries });
|
|
168
239
|
|
|
169
240
|
cancellationToken?.onCancellationRequested(() => {
|
|
170
241
|
stream.abort();
|
|
@@ -231,6 +302,8 @@ export class AnthropicModel implements LanguageModel {
|
|
|
231
302
|
const tokenUsageParams: TokenUsageParams = {
|
|
232
303
|
inputTokens: currentMessage.usage.input_tokens,
|
|
233
304
|
outputTokens: currentMessage.usage.output_tokens,
|
|
305
|
+
cachedInputTokens: currentMessage.usage.cache_creation_input_tokens || undefined,
|
|
306
|
+
readCachedInputTokens: currentMessage.usage.cache_read_input_tokens || undefined,
|
|
234
307
|
requestId: request.requestId
|
|
235
308
|
};
|
|
236
309
|
await that.tokenUsageService.recordTokenUsage(that.id, tokenUsageParams);
|
|
@@ -285,15 +358,21 @@ export class AnthropicModel implements LanguageModel {
|
|
|
285
358
|
return { stream: asyncIterator };
|
|
286
359
|
}
|
|
287
360
|
|
|
288
|
-
|
|
361
|
+
protected createTools(request: LanguageModelRequest): Anthropic.Messages.Tool[] | undefined {
|
|
289
362
|
if (request.tools?.length === 0) {
|
|
290
363
|
return undefined;
|
|
291
364
|
}
|
|
292
|
-
|
|
365
|
+
const tools = request.tools?.map(tool => ({
|
|
293
366
|
name: tool.name,
|
|
294
367
|
description: tool.description,
|
|
295
368
|
input_schema: tool.parameters
|
|
296
369
|
} as Anthropic.Messages.Tool));
|
|
370
|
+
if (this.useCaching) {
|
|
371
|
+
if (tools?.length) {
|
|
372
|
+
tools[tools.length - 1].cache_control = { type: 'ephemeral' };
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
return tools;
|
|
297
376
|
}
|
|
298
377
|
|
|
299
378
|
protected async handleNonStreamingRequest(
|
|
@@ -60,14 +60,17 @@ export class AnthropicLanguageModelsManagerImpl implements AnthropicLanguageMode
|
|
|
60
60
|
} else {
|
|
61
61
|
model.maxTokens = DEFAULT_MAX_TOKENS;
|
|
62
62
|
}
|
|
63
|
+
model.maxRetries = modelDescription.maxRetries;
|
|
63
64
|
} else {
|
|
64
65
|
this.languageModelRegistry.addLanguageModels([
|
|
65
66
|
new AnthropicModel(
|
|
66
67
|
modelDescription.id,
|
|
67
68
|
modelDescription.model,
|
|
68
69
|
modelDescription.enableStreaming,
|
|
70
|
+
modelDescription.useCaching,
|
|
69
71
|
apiKeyProvider,
|
|
70
72
|
modelDescription.maxTokens,
|
|
73
|
+
modelDescription.maxRetries,
|
|
71
74
|
this.tokenUsageService
|
|
72
75
|
)
|
|
73
76
|
]);
|