@theia/ai-anthropic 1.74.0-next.9 → 1.74.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/browser/anthropic-frontend-application-contribution.d.ts.map +1 -1
- package/lib/browser/anthropic-frontend-application-contribution.js +27 -2
- package/lib/browser/anthropic-frontend-application-contribution.js.map +1 -1
- package/lib/common/anthropic-language-models-manager.d.ts +4 -0
- package/lib/common/anthropic-language-models-manager.d.ts.map +1 -1
- package/lib/common/anthropic-language-models-manager.js +2 -2
- package/lib/common/anthropic-language-models-manager.js.map +1 -1
- package/lib/common/anthropic-preferences.d.ts +2 -0
- package/lib/common/anthropic-preferences.d.ts.map +1 -1
- package/lib/common/anthropic-preferences.js +29 -3
- package/lib/common/anthropic-preferences.js.map +1 -1
- package/lib/node/anthropic-language-model.d.ts +23 -2
- package/lib/node/anthropic-language-model.d.ts.map +1 -1
- package/lib/node/anthropic-language-model.js +81 -14
- package/lib/node/anthropic-language-model.js.map +1 -1
- package/lib/node/anthropic-language-model.spec.js +139 -1
- package/lib/node/anthropic-language-model.spec.js.map +1 -1
- package/lib/node/anthropic-language-models-manager-impl.d.ts +6 -0
- package/lib/node/anthropic-language-models-manager-impl.d.ts.map +1 -1
- package/lib/node/anthropic-language-models-manager-impl.js +26 -3
- package/lib/node/anthropic-language-models-manager-impl.js.map +1 -1
- package/lib/node/anthropic-language-models-manager-impl.spec.js +48 -0
- package/lib/node/anthropic-language-models-manager-impl.spec.js.map +1 -1
- package/package.json +5 -5
- package/src/browser/anthropic-frontend-application-contribution.ts +32 -4
- package/src/common/anthropic-language-models-manager.ts +5 -0
- package/src/common/anthropic-preferences.ts +32 -3
- package/src/node/anthropic-language-model.spec.ts +185 -3
- package/src/node/anthropic-language-model.ts +86 -15
- package/src/node/anthropic-language-models-manager-impl.spec.ts +51 -0
- package/src/node/anthropic-language-models-manager-impl.ts +31 -3
|
@@ -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,MAAM,yBAAyB,CAAC;AAE1E,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,MAAM,yBAAyB,CAAC;AAE1E,OAAO,EAAE,8BAA8B,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AAItF,OAAO,EACH,iBAAiB,EACpB,MAAM,+CAA+C,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAKhD,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;IACpC,SAAS,CAAC,gBAAgB,EAAE,OAAO,CAAC,yBAAyB,CAAC,EAAE,CAAM;IAEtE,OAAO,IAAI,IAAI;IA2Cf,SAAS,CAAC,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI;IAYvD,SAAS,CAAC,wBAAwB,CAAC,eAAe,EAAE,OAAO,CAAC,yBAAyB,CAAC,EAAE,GAAG,IAAI;IAsB/F,SAAS,CAAC,eAAe,IAAI,IAAI;IAQjC,4FAA4F;IAC5F,SAAS,CAAC,+BAA+B,CAAC,OAAO,EAAE,MAAM,GAAG,yBAAyB;IAsBrF,SAAS,CAAC,4CAA4C,CAAC,WAAW,EAAE,OAAO,CAAC,yBAAyB,CAAC,EAAE,GAAG,yBAAyB,EAAE;CA6BzI"}
|
|
@@ -22,6 +22,7 @@ const common_1 = require("../common");
|
|
|
22
22
|
const anthropic_preferences_1 = require("../common/anthropic-preferences");
|
|
23
23
|
const ai_core_preferences_1 = require("@theia/ai-core/lib/common/ai-core-preferences");
|
|
24
24
|
const core_1 = require("@theia/core");
|
|
25
|
+
const ai_core_1 = require("@theia/ai-core");
|
|
25
26
|
const ANTHROPIC_PROVIDER_ID = 'anthropic';
|
|
26
27
|
let AnthropicFrontendApplicationContribution = class AnthropicFrontendApplicationContribution {
|
|
27
28
|
constructor() {
|
|
@@ -52,6 +53,12 @@ let AnthropicFrontendApplicationContribution = class AnthropicFrontendApplicatio
|
|
|
52
53
|
this.manager.setProxyUrl(this.preferenceService.get('http.proxy', undefined));
|
|
53
54
|
this.updateAllModels();
|
|
54
55
|
}
|
|
56
|
+
else if (event.preferenceName === anthropic_preferences_1.SERVER_SIDE_COMPACTION_PREF ||
|
|
57
|
+
event.preferenceName === ai_core_preferences_1.PREFERENCE_NAME_SERVER_SIDE_COMPACTION ||
|
|
58
|
+
event.preferenceName === anthropic_preferences_1.SERVER_SIDE_COMPACTION_TOKEN_THRESHOLD_PREF ||
|
|
59
|
+
event.preferenceName === ai_core_preferences_1.PREFERENCE_NAME_SERVER_SIDE_COMPACTION_TOKEN_THRESHOLD) {
|
|
60
|
+
this.updateAllModels();
|
|
61
|
+
}
|
|
55
62
|
else if (event.preferenceName === anthropic_preferences_1.CUSTOM_ENDPOINTS_PREF) {
|
|
56
63
|
this.handleCustomModelChanges(this.preferenceService.get(anthropic_preferences_1.CUSTOM_ENDPOINTS_PREF, []));
|
|
57
64
|
}
|
|
@@ -82,6 +89,8 @@ let AnthropicFrontendApplicationContribution = class AnthropicFrontendApplicatio
|
|
|
82
89
|
model.apiKey === newModel.apiKey &&
|
|
83
90
|
model.maxRetries === newModel.maxRetries &&
|
|
84
91
|
model.useCaching === newModel.useCaching &&
|
|
92
|
+
model.serverSideCompactionEnabledByDefault === newModel.serverSideCompactionEnabledByDefault &&
|
|
93
|
+
model.serverSideCompactionTokenThresholdByDefault === newModel.serverSideCompactionTokenThresholdByDefault &&
|
|
85
94
|
model.enableStreaming === newModel.enableStreaming));
|
|
86
95
|
this.manager.removeLanguageModels(...modelsToRemove.map(model => model.id));
|
|
87
96
|
this.manager.createOrUpdateLanguageModels(...modelsToAddOrUpdate);
|
|
@@ -97,17 +106,31 @@ let AnthropicFrontendApplicationContribution = class AnthropicFrontendApplicatio
|
|
|
97
106
|
createAnthropicModelDescription(modelId) {
|
|
98
107
|
const id = `${ANTHROPIC_PROVIDER_ID}/${modelId}`;
|
|
99
108
|
const maxRetries = this.aiCorePreferences.get(ai_core_preferences_1.PREFERENCE_NAME_MAX_RETRIES) ?? 3;
|
|
109
|
+
const globalCompaction = this.preferenceService.get(ai_core_preferences_1.PREFERENCE_NAME_SERVER_SIDE_COMPACTION, true);
|
|
110
|
+
const compactionOverride = this.preferenceService.get(anthropic_preferences_1.SERVER_SIDE_COMPACTION_PREF, 'default');
|
|
111
|
+
const serverSideCompactionEnabledByDefault = (0, ai_core_1.resolveCompactionDefault)(globalCompaction, compactionOverride);
|
|
112
|
+
const globalThreshold = this.preferenceService.get(ai_core_preferences_1.PREFERENCE_NAME_SERVER_SIDE_COMPACTION_TOKEN_THRESHOLD, undefined);
|
|
113
|
+
const providerThreshold = this.preferenceService.get(anthropic_preferences_1.SERVER_SIDE_COMPACTION_TOKEN_THRESHOLD_PREF, undefined);
|
|
114
|
+
const serverSideCompactionTokenThresholdByDefault = (0, ai_core_1.resolveCompactionTokenThresholdDefault)(globalThreshold, providerThreshold);
|
|
100
115
|
return {
|
|
101
116
|
id: id,
|
|
102
117
|
model: modelId,
|
|
103
118
|
apiKey: true,
|
|
104
119
|
enableStreaming: true,
|
|
105
120
|
useCaching: true,
|
|
106
|
-
maxRetries: maxRetries
|
|
121
|
+
maxRetries: maxRetries,
|
|
122
|
+
serverSideCompactionEnabledByDefault,
|
|
123
|
+
serverSideCompactionTokenThresholdByDefault
|
|
107
124
|
};
|
|
108
125
|
}
|
|
109
126
|
createCustomModelDescriptionsFromPreferences(preferences) {
|
|
110
127
|
const maxRetries = this.aiCorePreferences.get(ai_core_preferences_1.PREFERENCE_NAME_MAX_RETRIES) ?? 3;
|
|
128
|
+
const globalCompaction = this.preferenceService.get(ai_core_preferences_1.PREFERENCE_NAME_SERVER_SIDE_COMPACTION, true);
|
|
129
|
+
const compactionOverride = this.preferenceService.get(anthropic_preferences_1.SERVER_SIDE_COMPACTION_PREF, 'default');
|
|
130
|
+
const serverSideCompactionEnabledByDefault = (0, ai_core_1.resolveCompactionDefault)(globalCompaction, compactionOverride);
|
|
131
|
+
const globalThreshold = this.preferenceService.get(ai_core_preferences_1.PREFERENCE_NAME_SERVER_SIDE_COMPACTION_TOKEN_THRESHOLD, undefined);
|
|
132
|
+
const providerThreshold = this.preferenceService.get(anthropic_preferences_1.SERVER_SIDE_COMPACTION_TOKEN_THRESHOLD_PREF, undefined);
|
|
133
|
+
const serverSideCompactionTokenThresholdByDefault = (0, ai_core_1.resolveCompactionTokenThresholdDefault)(globalThreshold, providerThreshold);
|
|
111
134
|
return preferences.reduce((acc, pref) => {
|
|
112
135
|
if (!pref.model || !pref.url || typeof pref.model !== 'string' || typeof pref.url !== 'string') {
|
|
113
136
|
return acc;
|
|
@@ -121,7 +144,9 @@ let AnthropicFrontendApplicationContribution = class AnthropicFrontendApplicatio
|
|
|
121
144
|
apiKey: typeof pref.apiKey === 'string' || pref.apiKey === true ? pref.apiKey : undefined,
|
|
122
145
|
enableStreaming: pref.enableStreaming ?? true,
|
|
123
146
|
useCaching: pref.useCaching ?? true,
|
|
124
|
-
maxRetries: pref.maxRetries ?? maxRetries
|
|
147
|
+
maxRetries: pref.maxRetries ?? maxRetries,
|
|
148
|
+
serverSideCompactionEnabledByDefault,
|
|
149
|
+
serverSideCompactionTokenThresholdByDefault
|
|
125
150
|
}
|
|
126
151
|
];
|
|
127
152
|
}, []);
|
|
@@ -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;;;;AAGhF,4DAAkE;AAClE,sCAAsF;AACtF,
|
|
1
|
+
{"version":3,"file":"anthropic-frontend-application-contribution.js","sourceRoot":"","sources":["../../src/browser/anthropic-frontend-application-contribution.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,6 +15,10 @@ export interface AnthropicModelDescription {
|
|
|
15
15
|
useCaching: boolean;
|
|
16
16
|
/** Maximum number of retry attempts when a request fails. Default is 3. */
|
|
17
17
|
maxRetries: number;
|
|
18
|
+
/** Resolved default enablement of server-side compaction (global preference folded with the per-provider override). Defaults to disabled when omitted. */
|
|
19
|
+
serverSideCompactionEnabledByDefault?: boolean;
|
|
20
|
+
/** Resolved default input-token threshold for server-side compaction. `undefined` preserves the provider default. */
|
|
21
|
+
serverSideCompactionTokenThresholdByDefault?: number;
|
|
18
22
|
}
|
|
19
23
|
export interface AnthropicLanguageModelsManager {
|
|
20
24
|
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":"
|
|
1
|
+
{"version":3,"file":"anthropic-language-models-manager.d.ts","sourceRoot":"","sources":["../../src/common/anthropic-language-models-manager.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,sCAAsC,+CAA+C,CAAC;AACnG,eAAO,MAAM,8BAA8B,eAA2C,CAAC;AAEvF,MAAM,WAAW,yBAAyB;IACtC,iEAAiE;IACjE,EAAE,EAAE,MAAM,CAAC;IACX,iDAAiD;IACjD,KAAK,EAAE,MAAM,CAAC;IACd,oIAAoI;IACpI,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,8FAA8F;IAC9F,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAClC,wDAAwD;IACxD,eAAe,EAAE,OAAO,CAAC;IACzB,0DAA0D;IAC1D,UAAU,EAAE,OAAO,CAAC;IACpB,2EAA2E;IAC3E,UAAU,EAAE,MAAM,CAAC;IACnB,0JAA0J;IAC1J,oCAAoC,CAAC,EAAE,OAAO,CAAC;IAC/C,qHAAqH;IACrH,2CAA2C,CAAC,EAAE,MAAM,CAAC;CACxD;AACD,MAAM,WAAW,8BAA8B;IAC3C,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IACzC,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IAChD,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,6 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.AnthropicLanguageModelsManager = exports.ANTHROPIC_LANGUAGE_MODELS_MANAGER_PATH = void 0;
|
|
4
2
|
// *****************************************************************************
|
|
5
3
|
// Copyright (C) 2024 EclipseSource GmbH.
|
|
6
4
|
//
|
|
@@ -16,6 +14,8 @@ exports.AnthropicLanguageModelsManager = exports.ANTHROPIC_LANGUAGE_MODELS_MANAG
|
|
|
16
14
|
//
|
|
17
15
|
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
18
16
|
// *****************************************************************************
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.AnthropicLanguageModelsManager = exports.ANTHROPIC_LANGUAGE_MODELS_MANAGER_PATH = void 0;
|
|
19
19
|
exports.ANTHROPIC_LANGUAGE_MODELS_MANAGER_PATH = '/services/anthropic/language-model-manager';
|
|
20
20
|
exports.AnthropicLanguageModelsManager = Symbol('AnthropicLanguageModelsManager');
|
|
21
21
|
//# sourceMappingURL=anthropic-language-models-manager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic-language-models-manager.js","sourceRoot":"","sources":["../../src/common/anthropic-language-models-manager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"anthropic-language-models-manager.js","sourceRoot":"","sources":["../../src/common/anthropic-language-models-manager.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;;;AAEnE,QAAA,sCAAsC,GAAG,4CAA4C,CAAC;AACtF,QAAA,8BAA8B,GAAG,MAAM,CAAC,gCAAgC,CAAC,CAAC"}
|
|
@@ -2,5 +2,7 @@ import { PreferenceSchema } from '@theia/core';
|
|
|
2
2
|
export declare const API_KEY_PREF = "ai-features.anthropic.AnthropicApiKey";
|
|
3
3
|
export declare const MODELS_PREF = "ai-features.anthropic.AnthropicModels";
|
|
4
4
|
export declare const CUSTOM_ENDPOINTS_PREF = "ai-features.anthropicCustom.customAnthropicModels";
|
|
5
|
+
export declare const SERVER_SIDE_COMPACTION_PREF = "ai-features.anthropic.serverSideCompaction";
|
|
6
|
+
export declare const SERVER_SIDE_COMPACTION_TOKEN_THRESHOLD_PREF = "ai-features.anthropic.serverSideCompactionTokenThreshold";
|
|
5
7
|
export declare const AnthropicPreferencesSchema: PreferenceSchema;
|
|
6
8
|
//# sourceMappingURL=anthropic-preferences.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic-preferences.d.ts","sourceRoot":"","sources":["../../src/common/anthropic-preferences.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"anthropic-preferences.d.ts","sourceRoot":"","sources":["../../src/common/anthropic-preferences.ts"],"names":[],"mappings":"AAkBA,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;AACzF,eAAO,MAAM,2BAA2B,+CAA+C,CAAC;AACxF,eAAO,MAAM,2CAA2C,6DAA6D,CAAC;AAEtH,eAAO,MAAM,0BAA0B,EAAE,gBA8GxC,CAAC"}
|
|
@@ -15,12 +15,15 @@
|
|
|
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.AnthropicPreferencesSchema = exports.CUSTOM_ENDPOINTS_PREF = exports.MODELS_PREF = exports.API_KEY_PREF = void 0;
|
|
18
|
+
exports.AnthropicPreferencesSchema = exports.SERVER_SIDE_COMPACTION_TOKEN_THRESHOLD_PREF = exports.SERVER_SIDE_COMPACTION_PREF = exports.CUSTOM_ENDPOINTS_PREF = exports.MODELS_PREF = exports.API_KEY_PREF = void 0;
|
|
19
19
|
const ai_core_preferences_1 = require("@theia/ai-core/lib/common/ai-core-preferences");
|
|
20
|
+
const language_model_1 = require("@theia/ai-core/lib/common/language-model");
|
|
20
21
|
const core_1 = require("@theia/core");
|
|
21
22
|
exports.API_KEY_PREF = 'ai-features.anthropic.AnthropicApiKey';
|
|
22
23
|
exports.MODELS_PREF = 'ai-features.anthropic.AnthropicModels';
|
|
23
24
|
exports.CUSTOM_ENDPOINTS_PREF = 'ai-features.anthropicCustom.customAnthropicModels';
|
|
25
|
+
exports.SERVER_SIDE_COMPACTION_PREF = 'ai-features.anthropic.serverSideCompaction';
|
|
26
|
+
exports.SERVER_SIDE_COMPACTION_TOKEN_THRESHOLD_PREF = 'ai-features.anthropic.serverSideCompactionTokenThreshold';
|
|
24
27
|
exports.AnthropicPreferencesSchema = {
|
|
25
28
|
properties: {
|
|
26
29
|
[exports.API_KEY_PREF]: {
|
|
@@ -34,17 +37,40 @@ exports.AnthropicPreferencesSchema = {
|
|
|
34
37
|
description: core_1.nls.localize('theia/ai/anthropic/models/description', 'Official Anthropic models to use'),
|
|
35
38
|
title: ai_core_preferences_1.AI_CORE_PREFERENCES_TITLE,
|
|
36
39
|
default: [
|
|
40
|
+
'claude-opus-5',
|
|
41
|
+
'claude-sonnet-5',
|
|
42
|
+
'claude-fable-5',
|
|
37
43
|
'claude-opus-4-8',
|
|
38
44
|
'claude-opus-4-7',
|
|
45
|
+
'claude-opus-4-6',
|
|
39
46
|
'claude-sonnet-4-6',
|
|
40
47
|
'claude-haiku-4-5',
|
|
41
|
-
'claude-fable-5',
|
|
42
|
-
'claude-opus-4-6',
|
|
43
48
|
],
|
|
44
49
|
items: {
|
|
45
50
|
type: 'string'
|
|
46
51
|
}
|
|
47
52
|
},
|
|
53
|
+
[exports.SERVER_SIDE_COMPACTION_PREF]: {
|
|
54
|
+
type: 'string',
|
|
55
|
+
enum: ['default', 'enabled', 'disabled'],
|
|
56
|
+
enumDescriptions: [
|
|
57
|
+
core_1.nls.localize('theia/ai/anthropic/compaction/default', 'Follow the global chat server-side compaction setting.'),
|
|
58
|
+
core_1.nls.localize('theia/ai/anthropic/compaction/enabled', 'Always request server-side compaction for Anthropic models.'),
|
|
59
|
+
core_1.nls.localize('theia/ai/anthropic/compaction/disabled', 'Never request server-side compaction for Anthropic models.')
|
|
60
|
+
],
|
|
61
|
+
default: 'default',
|
|
62
|
+
markdownDescription: core_1.nls.localize('theia/ai/anthropic/compaction/description', 'Override provider-native server-side compaction for Anthropic models. "default" follows the global chat setting ' +
|
|
63
|
+
'({0}). When effectively enabled, the Anthropic Beta Messages API is used so the provider can summarize ' +
|
|
64
|
+
'older turns once the conversation grows past its threshold.', `\`#${ai_core_preferences_1.PREFERENCE_NAME_SERVER_SIDE_COMPACTION}#\``),
|
|
65
|
+
title: ai_core_preferences_1.AI_CORE_PREFERENCES_TITLE,
|
|
66
|
+
},
|
|
67
|
+
[exports.SERVER_SIDE_COMPACTION_TOKEN_THRESHOLD_PREF]: {
|
|
68
|
+
type: 'integer',
|
|
69
|
+
minimum: language_model_1.SERVER_SIDE_COMPACTION_TOKEN_THRESHOLD_MINIMUM,
|
|
70
|
+
markdownDescription: core_1.nls.localize('theia/ai/anthropic/compactionTokenThreshold/description', 'Override the global input-token threshold for server-side compaction for Anthropic models. When unset, the global setting or provider default applies. ' +
|
|
71
|
+
'If set, the value must be at least 50,000 tokens.'),
|
|
72
|
+
title: ai_core_preferences_1.AI_CORE_PREFERENCES_TITLE,
|
|
73
|
+
},
|
|
48
74
|
[exports.CUSTOM_ENDPOINTS_PREF]: {
|
|
49
75
|
type: 'array',
|
|
50
76
|
title: ai_core_preferences_1.AI_CORE_PREFERENCES_TITLE,
|
|
@@ -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,
|
|
1
|
+
{"version":3,"file":"anthropic-preferences.js","sourceRoot":"","sources":["../../src/common/anthropic-preferences.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { LanguageModel, LanguageModelRequest, LanguageModelResponse, LanguageModelStatus, LanguageModelStreamResponse, LanguageModelTextResponse, ReasoningApi, ReasoningSupport, ServerToolDescriptor, UserRequest } from '@theia/ai-core';
|
|
1
|
+
import { LanguageModel, LanguageModelMessage, 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';
|
|
@@ -9,6 +9,17 @@ export declare const DEFAULT_MAX_TOKENS = 4096;
|
|
|
9
9
|
* for rendering (see {@link buildServerToolResultPart}).
|
|
10
10
|
*/
|
|
11
11
|
export declare const ANTHROPIC_RESULT_BLOCK_DATA_KEY = "anthropicResultBlock";
|
|
12
|
+
/**
|
|
13
|
+
* Transforms Theia language model messages to Anthropic API format
|
|
14
|
+
* @param messages Array of LanguageModelRequestMessage to transform
|
|
15
|
+
* @param addCacheControl whether to add prompt-cache control to the system message
|
|
16
|
+
* @param compactionEnabled whether the request will use the beta endpoint, so compaction replay blocks may be emitted
|
|
17
|
+
* @returns Object containing transformed messages and optional system message
|
|
18
|
+
*/
|
|
19
|
+
export declare function transformToAnthropicParams(messages: readonly LanguageModelMessage[], addCacheControl?: boolean, compactionEnabled?: boolean): {
|
|
20
|
+
messages: MessageParam[];
|
|
21
|
+
systemMessage?: Anthropic.Messages.TextBlockParam[];
|
|
22
|
+
};
|
|
12
23
|
export declare function mergeConsecutiveSameRoleMessages(messages: MessageParam[]): MessageParam[];
|
|
13
24
|
/**
|
|
14
25
|
* If possible adds a cache control to the last message in the conversation.
|
|
@@ -39,10 +50,20 @@ export declare class AnthropicModel implements LanguageModel {
|
|
|
39
50
|
supportsXHighEffort?: boolean | undefined;
|
|
40
51
|
maxInputTokens?: number | undefined;
|
|
41
52
|
serverTools?: ServerToolDescriptor[] | undefined;
|
|
53
|
+
serverSideCompactionSupport: boolean;
|
|
54
|
+
serverSideCompactionEnabledByDefault: boolean;
|
|
55
|
+
serverSideCompactionTokenThresholdByDefault?: number | undefined;
|
|
42
56
|
/** Provider identifier, used to key per-provider settings (e.g. server tool selections) and the capabilities UI. */
|
|
43
57
|
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);
|
|
58
|
+
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, serverSideCompactionSupport?: boolean, serverSideCompactionEnabledByDefault?: boolean, serverSideCompactionTokenThresholdByDefault?: number | undefined);
|
|
45
59
|
protected getSettings(request: LanguageModelRequest): Readonly<Record<string, unknown>>;
|
|
60
|
+
/** Resolves whether this request will route through the Anthropic Beta Messages API for server-side compaction. */
|
|
61
|
+
protected useServerSideCompaction(request: LanguageModelRequest): boolean;
|
|
62
|
+
/**
|
|
63
|
+
* Augments the base message-create params with the beta flag and context-management edit when server-side compaction
|
|
64
|
+
* is enabled for the given request. When disabled, the params are returned unchanged so the default (stable) path is byte-for-byte identical.
|
|
65
|
+
*/
|
|
66
|
+
protected applyCompactionParams<T extends Anthropic.MessageCreateParams>(params: T, request: LanguageModelRequest): T;
|
|
46
67
|
request(request: UserRequest, cancellationToken?: CancellationToken): Promise<LanguageModelResponse>;
|
|
47
68
|
protected handleStreamingRequest(anthropic: Anthropic, request: UserRequest, cancellationToken?: CancellationToken, toolMessages?: readonly Anthropic.Messages.MessageParam[]): Promise<LanguageModelStreamResponse>;
|
|
48
69
|
protected createTools(request: LanguageModelRequest): Anthropic.Messages.ToolUnion[] | undefined;
|
|
@@ -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,
|
|
1
|
+
{"version":3,"file":"anthropic-language-model.d.ts","sourceRoot":"","sources":["../../src/node/anthropic-language-model.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
// *****************************************************************************
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
18
|
exports.AnthropicModel = exports.AnthropicModelIdentifier = exports.ANTHROPIC_RESULT_BLOCK_DATA_KEY = exports.DEFAULT_MAX_TOKENS = void 0;
|
|
19
|
+
exports.transformToAnthropicParams = transformToAnthropicParams;
|
|
19
20
|
exports.mergeConsecutiveSameRoleMessages = mergeConsecutiveSameRoleMessages;
|
|
20
21
|
exports.addCacheControlToLastMessage = addCacheControlToLastMessage;
|
|
21
22
|
const ai_core_1 = require("@theia/ai-core");
|
|
@@ -31,8 +32,17 @@ exports.DEFAULT_MAX_TOKENS = 4096;
|
|
|
31
32
|
* for rendering (see {@link buildServerToolResultPart}).
|
|
32
33
|
*/
|
|
33
34
|
exports.ANTHROPIC_RESULT_BLOCK_DATA_KEY = 'anthropicResultBlock';
|
|
34
|
-
const createMessageContent = (message) => {
|
|
35
|
-
if (ai_core_1.LanguageModelMessage.
|
|
35
|
+
const createMessageContent = (message, compactionEnabled) => {
|
|
36
|
+
if (ai_core_1.LanguageModelMessage.isCompactionMessage(message)) {
|
|
37
|
+
// Only replay our own provider's compaction blocks, and only when the request will use the beta endpoint.
|
|
38
|
+
// Returning [] for a skipped/foreign/disabled compaction message lets the surrounding real history carry the context.
|
|
39
|
+
if (compactionEnabled && message.provider === 'anthropic') {
|
|
40
|
+
const data = message.data;
|
|
41
|
+
return [{ type: 'compaction', content: data.content, encrypted_content: data.encrypted_content }];
|
|
42
|
+
}
|
|
43
|
+
return [];
|
|
44
|
+
}
|
|
45
|
+
else if (ai_core_1.LanguageModelMessage.isTextMessage(message)) {
|
|
36
46
|
return [{ type: 'text', text: message.text }];
|
|
37
47
|
}
|
|
38
48
|
else if (ai_core_1.LanguageModelMessage.isThinkingMessage(message)) {
|
|
@@ -109,9 +119,11 @@ function isNonThinkingParam(content) {
|
|
|
109
119
|
/**
|
|
110
120
|
* Transforms Theia language model messages to Anthropic API format
|
|
111
121
|
* @param messages Array of LanguageModelRequestMessage to transform
|
|
122
|
+
* @param addCacheControl whether to add prompt-cache control to the system message
|
|
123
|
+
* @param compactionEnabled whether the request will use the beta endpoint, so compaction replay blocks may be emitted
|
|
112
124
|
* @returns Object containing transformed messages and optional system message
|
|
113
125
|
*/
|
|
114
|
-
function transformToAnthropicParams(messages, addCacheControl = true) {
|
|
126
|
+
function transformToAnthropicParams(messages, addCacheControl = true, compactionEnabled = false) {
|
|
115
127
|
// Extract the system message (if any), as it is a separate parameter in the Anthropic API.
|
|
116
128
|
const systemMessageObj = messages.find(message => message.actor === 'system');
|
|
117
129
|
const systemMessageText = systemMessageObj && ai_core_1.LanguageModelMessage.isTextMessage(systemMessageObj) && systemMessageObj.text || undefined;
|
|
@@ -123,8 +135,10 @@ function transformToAnthropicParams(messages, addCacheControl = true) {
|
|
|
123
135
|
.filter(message => !(ai_core_1.LanguageModelMessage.isServerToolUseMessage(message) && message.name === anthropic_server_tools_1.ANTHROPIC_TOOL_SEARCH))
|
|
124
136
|
.map(message => ({
|
|
125
137
|
role: toAnthropicRole(message),
|
|
126
|
-
content: createMessageContent(message)
|
|
127
|
-
}))
|
|
138
|
+
content: createMessageContent(message, compactionEnabled)
|
|
139
|
+
}))
|
|
140
|
+
// Drop messages whose content converted to empty (e.g. a skipped compaction message), so no empty turns are sent.
|
|
141
|
+
.filter(message => !Array.isArray(message.content) || message.content.length > 0);
|
|
128
142
|
return {
|
|
129
143
|
messages: mergeConsecutiveSameRoleMessages(convertedMessages),
|
|
130
144
|
systemMessage,
|
|
@@ -251,7 +265,7 @@ function buildServerToolResultPart(serverToolCalls, toolUseId, nativeName, resul
|
|
|
251
265
|
* translation lives in {@link anthropicReasoningFor}.
|
|
252
266
|
*/
|
|
253
267
|
class AnthropicModel {
|
|
254
|
-
constructor(id, model, status, enableStreaming, useCaching, apiKey, url, maxTokens = exports.DEFAULT_MAX_TOKENS, maxRetries = 3, proxy, reasoningSupport, reasoningApi, supportsXHighEffort, maxInputTokens, serverTools) {
|
|
268
|
+
constructor(id, model, status, enableStreaming, useCaching, apiKey, url, maxTokens = exports.DEFAULT_MAX_TOKENS, maxRetries = 3, proxy, reasoningSupport, reasoningApi, supportsXHighEffort, maxInputTokens, serverTools, serverSideCompactionSupport = false, serverSideCompactionEnabledByDefault = false, serverSideCompactionTokenThresholdByDefault) {
|
|
255
269
|
this.id = id;
|
|
256
270
|
this.model = model;
|
|
257
271
|
this.status = status;
|
|
@@ -267,6 +281,9 @@ class AnthropicModel {
|
|
|
267
281
|
this.supportsXHighEffort = supportsXHighEffort;
|
|
268
282
|
this.maxInputTokens = maxInputTokens;
|
|
269
283
|
this.serverTools = serverTools;
|
|
284
|
+
this.serverSideCompactionSupport = serverSideCompactionSupport;
|
|
285
|
+
this.serverSideCompactionEnabledByDefault = serverSideCompactionEnabledByDefault;
|
|
286
|
+
this.serverSideCompactionTokenThresholdByDefault = serverSideCompactionTokenThresholdByDefault;
|
|
270
287
|
/** Provider identifier, used to key per-provider settings (e.g. server tool selections) and the capabilities UI. */
|
|
271
288
|
this.vendor = 'anthropic';
|
|
272
289
|
}
|
|
@@ -276,6 +293,29 @@ class AnthropicModel {
|
|
|
276
293
|
...(0, anthropic_reasoning_1.anthropicReasoningFor)(request.reasoning?.level, this.reasoningApi, this.supportsXHighEffort)
|
|
277
294
|
};
|
|
278
295
|
}
|
|
296
|
+
/** Resolves whether this request will route through the Anthropic Beta Messages API for server-side compaction. */
|
|
297
|
+
useServerSideCompaction(request) {
|
|
298
|
+
return (0, ai_core_1.resolveServerSideCompaction)(this.serverSideCompactionSupport, this.serverSideCompactionEnabledByDefault, request.compaction);
|
|
299
|
+
}
|
|
300
|
+
/**
|
|
301
|
+
* Augments the base message-create params with the beta flag and context-management edit when server-side compaction
|
|
302
|
+
* is enabled for the given request. When disabled, the params are returned unchanged so the default (stable) path is byte-for-byte identical.
|
|
303
|
+
*/
|
|
304
|
+
applyCompactionParams(params, request) {
|
|
305
|
+
if (!this.useServerSideCompaction(request)) {
|
|
306
|
+
return params;
|
|
307
|
+
}
|
|
308
|
+
const betaParams = params;
|
|
309
|
+
const tokenThreshold = (0, ai_core_1.resolveCompactionTokenThreshold)(this.serverSideCompactionTokenThresholdByDefault, request.compaction);
|
|
310
|
+
betaParams.betas = ['compact-2026-01-12'];
|
|
311
|
+
betaParams.context_management = {
|
|
312
|
+
edits: [{
|
|
313
|
+
type: 'compact_20260112',
|
|
314
|
+
...(tokenThreshold !== undefined && { trigger: { type: 'input_tokens', value: tokenThreshold } })
|
|
315
|
+
}]
|
|
316
|
+
};
|
|
317
|
+
return betaParams;
|
|
318
|
+
}
|
|
279
319
|
async request(request, cancellationToken) {
|
|
280
320
|
if (!request.messages?.length) {
|
|
281
321
|
throw new Error('Request must contain at least one message');
|
|
@@ -294,7 +334,8 @@ class AnthropicModel {
|
|
|
294
334
|
}
|
|
295
335
|
async handleStreamingRequest(anthropic, request, cancellationToken, toolMessages) {
|
|
296
336
|
const settings = this.getSettings(request);
|
|
297
|
-
const
|
|
337
|
+
const useCompaction = this.useServerSideCompaction(request);
|
|
338
|
+
const { messages, systemMessage } = transformToAnthropicParams(request.messages, this.useCaching, useCompaction);
|
|
298
339
|
let anthropicMessages = [...messages, ...(toolMessages ?? [])];
|
|
299
340
|
if (this.useCaching && anthropicMessages.length) {
|
|
300
341
|
anthropicMessages = addCacheControlToLastMessage(anthropicMessages);
|
|
@@ -307,7 +348,7 @@ class AnthropicModel {
|
|
|
307
348
|
defer_loading: 'defer_loading' in tool ? tool.defer_loading : undefined
|
|
308
349
|
})));
|
|
309
350
|
}
|
|
310
|
-
const params = {
|
|
351
|
+
const params = this.applyCompactionParams({
|
|
311
352
|
max_tokens: this.maxTokens,
|
|
312
353
|
messages: anthropicMessages,
|
|
313
354
|
tools,
|
|
@@ -315,8 +356,13 @@ class AnthropicModel {
|
|
|
315
356
|
model: this.model,
|
|
316
357
|
...(systemMessage && { system: systemMessage }),
|
|
317
358
|
...settings
|
|
318
|
-
};
|
|
319
|
-
|
|
359
|
+
}, request);
|
|
360
|
+
// The beta message params are a structural superset of the stable ones for the content we build, so the cast at the beta call boundary is safe.
|
|
361
|
+
// The beta stream is likewise structurally compatible with the stable MessageStream: we narrow compaction events via explicit casts in the
|
|
362
|
+
// loop below, and casting the stream here keeps the iterator and lifecycle handling identical on both paths.
|
|
363
|
+
const stream = useCompaction
|
|
364
|
+
? anthropic.beta.messages.stream(params, { maxRetries: this.maxRetries })
|
|
365
|
+
: anthropic.messages.stream(params, { maxRetries: this.maxRetries });
|
|
320
366
|
cancellationToken?.onCancellationRequested(() => {
|
|
321
367
|
stream.abort();
|
|
322
368
|
});
|
|
@@ -332,6 +378,8 @@ class AnthropicModel {
|
|
|
332
378
|
let currentMessage = undefined;
|
|
333
379
|
let currentOutputTokens = 0;
|
|
334
380
|
let usageYielded = false;
|
|
381
|
+
// Accumulator for a streamed compaction block (beta path only): content + opaque encrypted_content across start + deltas.
|
|
382
|
+
let compaction;
|
|
335
383
|
try {
|
|
336
384
|
for await (const event of stream) {
|
|
337
385
|
if (event.type === 'content_block_start') {
|
|
@@ -342,6 +390,11 @@ class AnthropicModel {
|
|
|
342
390
|
if (contentBlock.type === 'text') {
|
|
343
391
|
yield { content: contentBlock.text };
|
|
344
392
|
}
|
|
393
|
+
// Compaction blocks only occur on the beta path; guard via type narrowing.
|
|
394
|
+
if (contentBlock.type === 'compaction') {
|
|
395
|
+
const block = contentBlock;
|
|
396
|
+
compaction = { index: event.index, content: block.content, encrypted_content: block.encrypted_content };
|
|
397
|
+
}
|
|
345
398
|
if (contentBlock.type === 'tool_use') {
|
|
346
399
|
toolCall = { name: contentBlock.name, args: '', id: contentBlock.id, index: event.index };
|
|
347
400
|
yield { tool_calls: [{ finished: false, id: toolCall.id, function: { name: toolCall.name, arguments: toolCall.args } }] };
|
|
@@ -403,6 +456,11 @@ class AnthropicModel {
|
|
|
403
456
|
if (delta.type === 'text_delta') {
|
|
404
457
|
yield { content: delta.text };
|
|
405
458
|
}
|
|
459
|
+
if (compaction && delta.type === 'compaction_delta') {
|
|
460
|
+
const compactionDelta = delta;
|
|
461
|
+
compaction.content = compactionDelta.content;
|
|
462
|
+
compaction.encrypted_content = compactionDelta.encrypted_content;
|
|
463
|
+
}
|
|
406
464
|
if (toolCall && delta.type === 'input_json_delta') {
|
|
407
465
|
toolCall.args += delta.partial_json;
|
|
408
466
|
yield { tool_calls: [{ function: { arguments: delta.partial_json } }] };
|
|
@@ -421,6 +479,11 @@ class AnthropicModel {
|
|
|
421
479
|
serverToolCalls.push(serverToolCall);
|
|
422
480
|
serverToolCall = undefined;
|
|
423
481
|
}
|
|
482
|
+
if (compaction && compaction.index === event.index) {
|
|
483
|
+
const data = { content: compaction.content, encrypted_content: compaction.encrypted_content };
|
|
484
|
+
yield { compaction: { provider: 'anthropic', data, summary: compaction.content ?? undefined } };
|
|
485
|
+
compaction = undefined;
|
|
486
|
+
}
|
|
424
487
|
}
|
|
425
488
|
else if (event.type === 'message_delta') {
|
|
426
489
|
currentOutputTokens = event.usage.output_tokens;
|
|
@@ -530,16 +593,20 @@ class AnthropicModel {
|
|
|
530
593
|
}
|
|
531
594
|
async handleNonStreamingRequest(anthropic, request) {
|
|
532
595
|
const settings = this.getSettings(request);
|
|
533
|
-
const
|
|
534
|
-
const
|
|
596
|
+
const useCompaction = this.useServerSideCompaction(request);
|
|
597
|
+
const { messages, systemMessage } = transformToAnthropicParams(request.messages, true, useCompaction);
|
|
598
|
+
const params = this.applyCompactionParams({
|
|
535
599
|
max_tokens: this.maxTokens,
|
|
536
600
|
messages,
|
|
537
601
|
model: this.model,
|
|
538
602
|
...(systemMessage && { system: systemMessage }),
|
|
539
603
|
...settings,
|
|
540
|
-
};
|
|
604
|
+
}, request);
|
|
541
605
|
try {
|
|
542
|
-
|
|
606
|
+
// The beta message params are a structural superset of the stable ones, so the cast at the beta call boundary is safe.
|
|
607
|
+
const response = useCompaction
|
|
608
|
+
? await anthropic.beta.messages.create(params)
|
|
609
|
+
: await anthropic.messages.create(params);
|
|
543
610
|
const textContent = response.content[0];
|
|
544
611
|
const usage = response.usage ? {
|
|
545
612
|
input_tokens: response.usage.input_tokens,
|