@theia/ai-anthropic 1.76.0-next.7 → 1.76.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 +16 -10
- package/lib/browser/anthropic-frontend-application-contribution.d.ts.map +1 -1
- package/lib/browser/anthropic-frontend-application-contribution.js +65 -64
- package/lib/browser/anthropic-frontend-application-contribution.js.map +1 -1
- package/lib/common/anthropic-language-models-manager.d.ts +22 -0
- package/lib/common/anthropic-language-models-manager.d.ts.map +1 -1
- package/lib/common/anthropic-language-models-manager.js.map +1 -1
- package/lib/common/anthropic-preferences.d.ts +2 -1
- package/lib/common/anthropic-preferences.d.ts.map +1 -1
- package/lib/common/anthropic-preferences.js +23 -16
- package/lib/common/anthropic-preferences.js.map +1 -1
- package/lib/node/anthropic-language-model.d.ts +19 -1
- package/lib/node/anthropic-language-model.d.ts.map +1 -1
- package/lib/node/anthropic-language-model.js +20 -11
- package/lib/node/anthropic-language-model.js.map +1 -1
- package/lib/node/anthropic-language-model.spec.js +34 -0
- package/lib/node/anthropic-language-model.spec.js.map +1 -1
- package/lib/node/anthropic-language-models-manager-impl.d.ts +21 -3
- package/lib/node/anthropic-language-models-manager-impl.d.ts.map +1 -1
- package/lib/node/anthropic-language-models-manager-impl.js +73 -11
- package/lib/node/anthropic-language-models-manager-impl.js.map +1 -1
- package/lib/node/anthropic-language-models-manager-impl.spec.js +195 -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 +74 -71
- package/src/common/anthropic-language-models-manager.ts +24 -1
- package/src/common/anthropic-preferences.ts +25 -15
- package/src/node/anthropic-language-model.spec.ts +39 -1
- package/src/node/anthropic-language-model.ts +33 -12
- package/src/node/anthropic-language-models-manager-impl.spec.ts +198 -1
- package/src/node/anthropic-language-models-manager-impl.ts +86 -15
|
@@ -1,19 +1,25 @@
|
|
|
1
|
-
import { FrontendApplicationContribution } from '@theia/core/lib/browser';
|
|
2
1
|
import { AnthropicLanguageModelsManager, AnthropicModelDescription } from '../common';
|
|
3
2
|
import { AICorePreferences } from '@theia/ai-core/lib/common/ai-core-preferences';
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
import { PreferenceChange } from '@theia/core';
|
|
4
|
+
import { DiscoveringProviderContribution, ModelDiscoveryMessages } from '@theia/ai-core/lib/browser';
|
|
5
|
+
import { DiscoveredModel } from '@theia/ai-core/lib/common';
|
|
6
|
+
export declare class AnthropicFrontendApplicationContribution extends DiscoveringProviderContribution<AnthropicModelDescription> {
|
|
7
|
+
protected readonly manager: AnthropicLanguageModelsManager;
|
|
8
8
|
protected aiCorePreferences: AICorePreferences;
|
|
9
|
-
protected
|
|
9
|
+
protected readonly providerId = "anthropic";
|
|
10
|
+
protected readonly providerLabel = "Anthropic";
|
|
11
|
+
protected readonly modelOverridesPreference = "ai-features.anthropic.modelOverrides";
|
|
12
|
+
protected readonly allowEnvironmentApiKeyPreference = "ai-features.anthropic.allowEnvironmentApiKey";
|
|
10
13
|
protected prevCustomModels: Partial<AnthropicModelDescription>[];
|
|
11
|
-
|
|
12
|
-
protected
|
|
14
|
+
protected get discoveryMessages(): ModelDiscoveryMessages;
|
|
15
|
+
protected initializeProvider(): void;
|
|
16
|
+
protected handlePreferenceChange(event: PreferenceChange): void;
|
|
17
|
+
protected updateDiscoveredModels(): void;
|
|
18
|
+
/** Re-applies the model descriptions of the configured custom endpoints. */
|
|
19
|
+
protected updateCustomModels(): void;
|
|
13
20
|
protected handleCustomModelChanges(newCustomModels: Partial<AnthropicModelDescription>[]): void;
|
|
14
|
-
protected updateAllModels(): void;
|
|
15
21
|
/** Per-model details are resolved by the backend from the Anthropic /v1/models endpoint. */
|
|
16
|
-
protected
|
|
22
|
+
protected createModelDescription(model: DiscoveredModel): AnthropicModelDescription;
|
|
17
23
|
protected createCustomModelDescriptionsFromPreferences(preferences: Partial<AnthropicModelDescription>[]): AnthropicModelDescription[];
|
|
18
24
|
}
|
|
19
25
|
//# 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":"
|
|
1
|
+
{"version":3,"file":"anthropic-frontend-application-contribution.d.ts","sourceRoot":"","sources":["../../src/browser/anthropic-frontend-application-contribution.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,8BAA8B,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AAItF,OAAO,EACH,iBAAiB,EAEpB,MAAM,+CAA+C,CAAC;AACvD,OAAO,EAAO,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,OAAO,EAAE,+BAA+B,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACrG,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAI5D,qBACa,wCAAyC,SAAQ,+BAA+B,CAAC,yBAAyB,CAAC;IAGpH,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,8BAA8B,CAAC;IAG3D,SAAS,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAE/C,SAAS,CAAC,QAAQ,CAAC,UAAU,eAAyB;IACtD,SAAS,CAAC,QAAQ,CAAC,aAAa,eAAe;IAC/C,SAAS,CAAC,QAAQ,CAAC,wBAAwB,0CAAwB;IACnE,SAAS,CAAC,QAAQ,CAAC,gCAAgC,kDAA0B;IAE7E,SAAS,CAAC,gBAAgB,EAAE,OAAO,CAAC,yBAAyB,CAAC,EAAE,CAAM;IAEtE,SAAS,KAAK,iBAAiB,IAAI,sBAAsB,CAYxD;cAEkB,kBAAkB,IAAI,IAAI;cAe1B,sBAAsB,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI;cAoBrD,sBAAsB,IAAI,IAAI;IAKjD,4EAA4E;IAC5E,SAAS,CAAC,kBAAkB,IAAI,IAAI;IAKpC,SAAS,CAAC,wBAAwB,CAAC,eAAe,EAAE,OAAO,CAAC,yBAAyB,CAAC,EAAE,GAAG,IAAI;IAuB/F,4FAA4F;IAC5F,SAAS,CAAC,sBAAsB,CAAC,KAAK,EAAE,eAAe,GAAG,yBAAyB;IAuBnF,SAAS,CAAC,4CAA4C,CAAC,WAAW,EAAE,OAAO,CAAC,yBAAyB,CAAC,EAAE,GAAG,yBAAyB,EAAE;CA8BzI"}
|
|
@@ -23,61 +23,69 @@ 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
25
|
const ai_core_1 = require("@theia/ai-core");
|
|
26
|
+
const browser_1 = require("@theia/ai-core/lib/browser");
|
|
26
27
|
const ANTHROPIC_PROVIDER_ID = 'anthropic';
|
|
27
|
-
let AnthropicFrontendApplicationContribution = class AnthropicFrontendApplicationContribution {
|
|
28
|
+
let AnthropicFrontendApplicationContribution = class AnthropicFrontendApplicationContribution extends browser_1.DiscoveringProviderContribution {
|
|
28
29
|
constructor() {
|
|
29
|
-
|
|
30
|
+
super(...arguments);
|
|
31
|
+
this.providerId = ANTHROPIC_PROVIDER_ID;
|
|
32
|
+
this.providerLabel = 'Anthropic';
|
|
33
|
+
this.modelOverridesPreference = anthropic_preferences_1.MODEL_OVERRIDES_PREF;
|
|
34
|
+
this.allowEnvironmentApiKeyPreference = anthropic_preferences_1.ALLOW_ENV_API_KEY_PREF;
|
|
30
35
|
this.prevCustomModels = [];
|
|
31
36
|
}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
else if (event.preferenceName === 'http.proxy') {
|
|
53
|
-
this.manager.setProxyUrl(this.preferenceService.get('http.proxy', undefined));
|
|
54
|
-
this.updateAllModels();
|
|
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
|
-
}
|
|
62
|
-
else if (event.preferenceName === anthropic_preferences_1.CUSTOM_ENDPOINTS_PREF) {
|
|
63
|
-
this.handleCustomModelChanges(this.preferenceService.get(anthropic_preferences_1.CUSTOM_ENDPOINTS_PREF, []));
|
|
64
|
-
}
|
|
65
|
-
});
|
|
66
|
-
this.aiCorePreferences.onPreferenceChanged(event => {
|
|
67
|
-
if (event.preferenceName === ai_core_preferences_1.PREFERENCE_NAME_MAX_RETRIES) {
|
|
68
|
-
this.updateAllModels();
|
|
69
|
-
}
|
|
70
|
-
});
|
|
37
|
+
get discoveryMessages() {
|
|
38
|
+
return {
|
|
39
|
+
noCredentials: core_1.nls.localize('theia/ai/anthropic/discovery/noKey', 'No Anthropic API key set. Add a key to discover models.'),
|
|
40
|
+
consentRequired: core_1.nls.localize('theia/ai/anthropic/discovery/consentRequired', 'An Anthropic API key was found in the environment. Confirm its use to discover models.'),
|
|
41
|
+
consentPrompt: core_1.nls.localize('theia/ai/anthropic/discovery/consentPrompt', 'An Anthropic API key was found in the environment (ANTHROPIC_API_KEY). Allow Theia to use it to discover and call Anthropic models?'),
|
|
42
|
+
useEnvironmentKey: core_1.nls.localize('theia/ai/anthropic/discovery/useEnvKey', 'Use key'),
|
|
43
|
+
overridden: core_1.nls.localize('theia/ai/anthropic/discovery/overridden', 'The model list is configured manually. Clear the model overrides to discover the models from the provider again.'),
|
|
44
|
+
cached: error => core_1.nls.localize('theia/ai/anthropic/discovery/cached', 'Showing cached models; last refresh failed: {0}', error)
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
initializeProvider() {
|
|
48
|
+
this.manager.setApiKey(this.preferenceService.get(anthropic_preferences_1.API_KEY_PREF, undefined));
|
|
49
|
+
this.manager.setProxyUrl(this.preferenceService.get('http.proxy', undefined));
|
|
50
|
+
const customModels = this.preferenceService.get(anthropic_preferences_1.CUSTOM_ENDPOINTS_PREF, []);
|
|
51
|
+
this.manager.createOrUpdateLanguageModels(...this.createCustomModelDescriptionsFromPreferences(customModels));
|
|
52
|
+
this.prevCustomModels = [...customModels];
|
|
53
|
+
this.aiCorePreferences.onPreferenceChanged(event => {
|
|
54
|
+
if (event.preferenceName === ai_core_preferences_1.PREFERENCE_NAME_MAX_RETRIES) {
|
|
55
|
+
this.updateDiscoveredModels();
|
|
56
|
+
}
|
|
71
57
|
});
|
|
72
58
|
}
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
59
|
+
handlePreferenceChange(event) {
|
|
60
|
+
if (event.preferenceName === anthropic_preferences_1.API_KEY_PREF) {
|
|
61
|
+
this.manager.setApiKey(this.preferenceService.get(anthropic_preferences_1.API_KEY_PREF, undefined));
|
|
62
|
+
this.discoverAndRegisterModels();
|
|
63
|
+
}
|
|
64
|
+
else if (event.preferenceName === 'http.proxy') {
|
|
65
|
+
this.manager.setProxyUrl(this.preferenceService.get('http.proxy', undefined));
|
|
66
|
+
// A model keeps the proxy it was registered with, so the custom endpoints have to be
|
|
67
|
+
// re-registered as well: discovery only covers the models it registers itself.
|
|
68
|
+
this.updateCustomModels();
|
|
69
|
+
this.discoverAndRegisterModels();
|
|
70
|
+
}
|
|
71
|
+
else if (event.preferenceName === anthropic_preferences_1.SERVER_SIDE_COMPACTION_PREF ||
|
|
72
|
+
event.preferenceName === ai_core_preferences_1.PREFERENCE_NAME_SERVER_SIDE_COMPACTION ||
|
|
73
|
+
event.preferenceName === anthropic_preferences_1.SERVER_SIDE_COMPACTION_TOKEN_THRESHOLD_PREF ||
|
|
74
|
+
event.preferenceName === ai_core_preferences_1.PREFERENCE_NAME_SERVER_SIDE_COMPACTION_TOKEN_THRESHOLD) {
|
|
75
|
+
this.updateDiscoveredModels();
|
|
76
|
+
}
|
|
77
|
+
else if (event.preferenceName === anthropic_preferences_1.CUSTOM_ENDPOINTS_PREF) {
|
|
78
|
+
this.handleCustomModelChanges(this.preferenceService.get(anthropic_preferences_1.CUSTOM_ENDPOINTS_PREF, []));
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
updateDiscoveredModels() {
|
|
82
|
+
super.updateDiscoveredModels();
|
|
83
|
+
this.updateCustomModels();
|
|
84
|
+
}
|
|
85
|
+
/** Re-applies the model descriptions of the configured custom endpoints. */
|
|
86
|
+
updateCustomModels() {
|
|
87
|
+
const customModels = this.preferenceService.get(anthropic_preferences_1.CUSTOM_ENDPOINTS_PREF, []);
|
|
88
|
+
this.manager.createOrUpdateLanguageModels(...this.createCustomModelDescriptionsFromPreferences(customModels));
|
|
81
89
|
}
|
|
82
90
|
handleCustomModelChanges(newCustomModels) {
|
|
83
91
|
const oldModels = this.createCustomModelDescriptionsFromPreferences(this.prevCustomModels);
|
|
@@ -91,20 +99,15 @@ let AnthropicFrontendApplicationContribution = class AnthropicFrontendApplicatio
|
|
|
91
99
|
model.useCaching === newModel.useCaching &&
|
|
92
100
|
model.serverSideCompactionEnabledByDefault === newModel.serverSideCompactionEnabledByDefault &&
|
|
93
101
|
model.serverSideCompactionTokenThresholdByDefault === newModel.serverSideCompactionTokenThresholdByDefault &&
|
|
94
|
-
model.enableStreaming === newModel.enableStreaming
|
|
102
|
+
model.enableStreaming === newModel.enableStreaming &&
|
|
103
|
+
JSON.stringify(model.headers) === JSON.stringify(newModel.headers)));
|
|
95
104
|
this.manager.removeLanguageModels(...modelsToRemove.map(model => model.id));
|
|
96
105
|
this.manager.createOrUpdateLanguageModels(...modelsToAddOrUpdate);
|
|
97
106
|
this.prevCustomModels = [...newCustomModels];
|
|
98
107
|
}
|
|
99
|
-
updateAllModels() {
|
|
100
|
-
const models = this.preferenceService.get(anthropic_preferences_1.MODELS_PREF, []);
|
|
101
|
-
this.manager.createOrUpdateLanguageModels(...models.map(modelId => this.createAnthropicModelDescription(modelId)));
|
|
102
|
-
const customModels = this.preferenceService.get(anthropic_preferences_1.CUSTOM_ENDPOINTS_PREF, []);
|
|
103
|
-
this.manager.createOrUpdateLanguageModels(...this.createCustomModelDescriptionsFromPreferences(customModels));
|
|
104
|
-
}
|
|
105
108
|
/** Per-model details are resolved by the backend from the Anthropic /v1/models endpoint. */
|
|
106
|
-
|
|
107
|
-
const id = `${ANTHROPIC_PROVIDER_ID}/${
|
|
109
|
+
createModelDescription(model) {
|
|
110
|
+
const id = `${ANTHROPIC_PROVIDER_ID}/${model.id}`;
|
|
108
111
|
const maxRetries = this.aiCorePreferences.get(ai_core_preferences_1.PREFERENCE_NAME_MAX_RETRIES) ?? 3;
|
|
109
112
|
const globalCompaction = this.preferenceService.get(ai_core_preferences_1.PREFERENCE_NAME_SERVER_SIDE_COMPACTION, true);
|
|
110
113
|
const compactionOverride = this.preferenceService.get(anthropic_preferences_1.SERVER_SIDE_COMPACTION_PREF, 'default');
|
|
@@ -114,13 +117,14 @@ let AnthropicFrontendApplicationContribution = class AnthropicFrontendApplicatio
|
|
|
114
117
|
const serverSideCompactionTokenThresholdByDefault = (0, ai_core_1.resolveCompactionTokenThresholdDefault)(globalThreshold, providerThreshold);
|
|
115
118
|
return {
|
|
116
119
|
id: id,
|
|
117
|
-
model:
|
|
120
|
+
model: model.id,
|
|
118
121
|
apiKey: true,
|
|
119
122
|
enableStreaming: true,
|
|
120
123
|
useCaching: true,
|
|
121
124
|
maxRetries: maxRetries,
|
|
122
125
|
serverSideCompactionEnabledByDefault,
|
|
123
|
-
serverSideCompactionTokenThresholdByDefault
|
|
126
|
+
serverSideCompactionTokenThresholdByDefault,
|
|
127
|
+
released: model.released
|
|
124
128
|
};
|
|
125
129
|
}
|
|
126
130
|
createCustomModelDescriptionsFromPreferences(preferences) {
|
|
@@ -145,6 +149,7 @@ let AnthropicFrontendApplicationContribution = class AnthropicFrontendApplicatio
|
|
|
145
149
|
enableStreaming: pref.enableStreaming ?? true,
|
|
146
150
|
useCaching: pref.useCaching ?? true,
|
|
147
151
|
maxRetries: pref.maxRetries ?? maxRetries,
|
|
152
|
+
headers: (0, ai_core_1.resolveCustomModelHeaders)(pref.headers),
|
|
148
153
|
serverSideCompactionEnabledByDefault,
|
|
149
154
|
serverSideCompactionTokenThresholdByDefault
|
|
150
155
|
}
|
|
@@ -153,10 +158,6 @@ let AnthropicFrontendApplicationContribution = class AnthropicFrontendApplicatio
|
|
|
153
158
|
}
|
|
154
159
|
};
|
|
155
160
|
exports.AnthropicFrontendApplicationContribution = AnthropicFrontendApplicationContribution;
|
|
156
|
-
tslib_1.__decorate([
|
|
157
|
-
(0, inversify_1.inject)(core_1.PreferenceService),
|
|
158
|
-
tslib_1.__metadata("design:type", Object)
|
|
159
|
-
], AnthropicFrontendApplicationContribution.prototype, "preferenceService", void 0);
|
|
160
161
|
tslib_1.__decorate([
|
|
161
162
|
(0, inversify_1.inject)(common_1.AnthropicLanguageModelsManager),
|
|
162
163
|
tslib_1.__metadata("design:type", Object)
|
|
@@ -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;;;;
|
|
1
|
+
{"version":3,"file":"anthropic-frontend-application-contribution.js","sourceRoot":"","sources":["../../src/browser/anthropic-frontend-application-contribution.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ApiKeySource, ModelDiscoveryResult } from '@theia/ai-core/lib/common';
|
|
1
2
|
export declare const ANTHROPIC_LANGUAGE_MODELS_MANAGER_PATH = "/services/anthropic/language-model-manager";
|
|
2
3
|
export declare const AnthropicLanguageModelsManager: unique symbol;
|
|
3
4
|
export interface AnthropicModelDescription {
|
|
@@ -15,16 +16,37 @@ export interface AnthropicModelDescription {
|
|
|
15
16
|
useCaching: boolean;
|
|
16
17
|
/** Maximum number of retry attempts when a request fails. Default is 3. */
|
|
17
18
|
maxRetries: number;
|
|
19
|
+
/** Additional HTTP headers sent with every request to the endpoint, e.g. headers required by a gateway in front of the API. */
|
|
20
|
+
headers?: Record<string, string>;
|
|
18
21
|
/** Resolved default enablement of server-side compaction (global preference folded with the per-provider override). Defaults to disabled when omitted. */
|
|
19
22
|
serverSideCompactionEnabledByDefault?: boolean;
|
|
23
|
+
/** Release date (ms since epoch) reported by discovery, surfaced as {@link LanguageModelMetaData.released}. */
|
|
24
|
+
released?: number;
|
|
20
25
|
/** Resolved default input-token threshold for server-side compaction. `undefined` preserves the provider default. */
|
|
21
26
|
serverSideCompactionTokenThresholdByDefault?: number;
|
|
22
27
|
}
|
|
23
28
|
export interface AnthropicLanguageModelsManager {
|
|
24
29
|
apiKey: string | undefined;
|
|
25
30
|
setApiKey(key: string | undefined): void;
|
|
31
|
+
/**
|
|
32
|
+
* Allows or refuses the use of an API key found in the environment. Refused by default: an
|
|
33
|
+
* environment key is only used once the user has confirmed it, and setting this back to `false`
|
|
34
|
+
* stops it being used immediately, wherever it would have been used.
|
|
35
|
+
*/
|
|
36
|
+
setAllowEnvironmentApiKey(allowed: boolean): void;
|
|
26
37
|
setProxyUrl(proxyUrl: string | undefined): void;
|
|
27
38
|
createOrUpdateLanguageModels(...models: AnthropicModelDescription[]): Promise<void>;
|
|
28
39
|
removeLanguageModels(...modelIds: string[]): void;
|
|
40
|
+
/**
|
|
41
|
+
* Fetches the models Anthropic currently offers from its `/v1/models` endpoint, retrying
|
|
42
|
+
* transient connection failures and persisting a snapshot for offline use.
|
|
43
|
+
*
|
|
44
|
+
* Requires an API key. Returns an empty result when no key is configured. On a live-fetch
|
|
45
|
+
* failure it falls back to the cached snapshot (`fromCache: true`) when one exists, and only
|
|
46
|
+
* throws when there is no cache to fall back to.
|
|
47
|
+
*/
|
|
48
|
+
fetchAvailableModels(): Promise<ModelDiscoveryResult>;
|
|
49
|
+
/** Reports where the effective API key comes from (preference, environment, or none). */
|
|
50
|
+
getApiKeySource(): Promise<ApiKeySource>;
|
|
29
51
|
}
|
|
30
52
|
//# sourceMappingURL=anthropic-language-models-manager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
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,
|
|
1
|
+
{"version":3,"file":"anthropic-language-models-manager.d.ts","sourceRoot":"","sources":["../../src/common/anthropic-language-models-manager.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAE/E,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,+HAA+H;IAC/H,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,0JAA0J;IAC1J,oCAAoC,CAAC,EAAE,OAAO,CAAC;IAC/C,+GAA+G;IAC/G,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,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;;;;OAIG;IACH,yBAAyB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAClD,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,CAAC;IAClD;;;;;;;OAOG;IACH,oBAAoB,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACtD,yFAAyF;IACzF,eAAe,IAAI,OAAO,CAAC,YAAY,CAAC,CAAC;CAC5C"}
|
|
@@ -1 +1 @@
|
|
|
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;;;
|
|
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;;;AAInE,QAAA,sCAAsC,GAAG,4CAA4C,CAAC;AACtF,QAAA,8BAA8B,GAAG,MAAM,CAAC,gCAAgC,CAAC,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { PreferenceSchema } from '@theia/core';
|
|
2
2
|
export declare const API_KEY_PREF = "ai-features.anthropic.AnthropicApiKey";
|
|
3
|
-
export declare const
|
|
3
|
+
export declare const ALLOW_ENV_API_KEY_PREF = "ai-features.anthropic.allowEnvironmentApiKey";
|
|
4
|
+
export declare const MODEL_OVERRIDES_PREF = "ai-features.anthropic.modelOverrides";
|
|
4
5
|
export declare const CUSTOM_ENDPOINTS_PREF = "ai-features.anthropicCustom.customAnthropicModels";
|
|
5
6
|
export declare const SERVER_SIDE_COMPACTION_PREF = "ai-features.anthropic.serverSideCompaction";
|
|
6
7
|
export declare const SERVER_SIDE_COMPACTION_TOKEN_THRESHOLD_PREF = "ai-features.anthropic.serverSideCompactionTokenThreshold";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic-preferences.d.ts","sourceRoot":"","sources":["../../src/common/anthropic-preferences.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAuB,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpE,eAAO,MAAM,YAAY,0CAA0C,CAAC;AACpE,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"anthropic-preferences.d.ts","sourceRoot":"","sources":["../../src/common/anthropic-preferences.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAuB,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpE,eAAO,MAAM,YAAY,0CAA0C,CAAC;AACpE,eAAO,MAAM,sBAAsB,iDAAiD,CAAC;AACrF,eAAO,MAAM,oBAAoB,yCAAyC,CAAC;AAC3E,eAAO,MAAM,qBAAqB,sDAAsD,CAAC;AACzF,eAAO,MAAM,2BAA2B,+CAA+C,CAAC;AACxF,eAAO,MAAM,2CAA2C,6DAA6D,CAAC;AAEtH,eAAO,MAAM,0BAA0B,EAAE,gBA2HxC,CAAC"}
|
|
@@ -15,12 +15,13 @@
|
|
|
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.SERVER_SIDE_COMPACTION_TOKEN_THRESHOLD_PREF = exports.SERVER_SIDE_COMPACTION_PREF = exports.CUSTOM_ENDPOINTS_PREF = exports.
|
|
18
|
+
exports.AnthropicPreferencesSchema = exports.SERVER_SIDE_COMPACTION_TOKEN_THRESHOLD_PREF = exports.SERVER_SIDE_COMPACTION_PREF = exports.CUSTOM_ENDPOINTS_PREF = exports.MODEL_OVERRIDES_PREF = exports.ALLOW_ENV_API_KEY_PREF = exports.API_KEY_PREF = void 0;
|
|
19
19
|
const ai_core_preferences_1 = require("@theia/ai-core/lib/common/ai-core-preferences");
|
|
20
20
|
const language_model_1 = require("@theia/ai-core/lib/common/language-model");
|
|
21
21
|
const core_1 = require("@theia/core");
|
|
22
22
|
exports.API_KEY_PREF = 'ai-features.anthropic.AnthropicApiKey';
|
|
23
|
-
exports.
|
|
23
|
+
exports.ALLOW_ENV_API_KEY_PREF = 'ai-features.anthropic.allowEnvironmentApiKey';
|
|
24
|
+
exports.MODEL_OVERRIDES_PREF = 'ai-features.anthropic.modelOverrides';
|
|
24
25
|
exports.CUSTOM_ENDPOINTS_PREF = 'ai-features.anthropicCustom.customAnthropicModels';
|
|
25
26
|
exports.SERVER_SIDE_COMPACTION_PREF = 'ai-features.anthropic.serverSideCompaction';
|
|
26
27
|
exports.SERVER_SIDE_COMPACTION_TOKEN_THRESHOLD_PREF = 'ai-features.anthropic.serverSideCompactionTokenThreshold';
|
|
@@ -33,23 +34,22 @@ exports.AnthropicPreferencesSchema = {
|
|
|
33
34
|
on the machine running Theia. Use the environment variable `ANTHROPIC_API_KEY` to set the key securely.') + core_1.LINUX_ENV_HINT,
|
|
34
35
|
title: ai_core_preferences_1.AI_CORE_PREFERENCES_TITLE,
|
|
35
36
|
},
|
|
36
|
-
[exports.
|
|
37
|
-
type: '
|
|
38
|
-
|
|
37
|
+
[exports.ALLOW_ENV_API_KEY_PREF]: {
|
|
38
|
+
type: 'boolean',
|
|
39
|
+
default: false,
|
|
39
40
|
title: ai_core_preferences_1.AI_CORE_PREFERENCES_TITLE,
|
|
40
|
-
|
|
41
|
-
'
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
'claude-opus-4-6',
|
|
47
|
-
'claude-sonnet-4-6',
|
|
48
|
-
'claude-haiku-4-5',
|
|
49
|
-
],
|
|
41
|
+
markdownDescription: core_1.nls.localize('theia/ai/anthropic/allowEnvApiKey/description', 'Allow Theia to use an Anthropic API key found in the environment (`ANTHROPIC_API_KEY`). '
|
|
42
|
+
+ 'You are asked to confirm this once before the key is used; set it back to `false` to revoke consent.'),
|
|
43
|
+
},
|
|
44
|
+
[exports.MODEL_OVERRIDES_PREF]: {
|
|
45
|
+
type: 'array',
|
|
46
|
+
default: [],
|
|
50
47
|
items: {
|
|
51
48
|
type: 'string'
|
|
52
|
-
}
|
|
49
|
+
},
|
|
50
|
+
title: ai_core_preferences_1.AI_CORE_PREFERENCES_TITLE,
|
|
51
|
+
markdownDescription: core_1.nls.localize('theia/ai/anthropic/modelOverrides/description', 'Override the models discovered from Anthropic. When empty (default), the available models are discovered from the provider. '
|
|
52
|
+
+ 'Set explicit model ids to use exactly those instead; discovery is then not used at all.')
|
|
53
53
|
},
|
|
54
54
|
[exports.SERVER_SIDE_COMPACTION_PREF]: {
|
|
55
55
|
type: 'string',
|
|
@@ -92,6 +92,8 @@ exports.AnthropicPreferencesSchema = {
|
|
|
92
92
|
\n\
|
|
93
93
|
- specify `maxRetries: <number>` to indicate the maximum number of retries when a request fails. 3 by default.\
|
|
94
94
|
\n\
|
|
95
|
+
- specify `headers` to send additional HTTP headers with every request to the endpoint, e.g. headers required by a gateway in front of the API.\
|
|
96
|
+
\n\
|
|
95
97
|
Reasoning capabilities and the maximum output token limit are derived from the endpoint\'s `/v1/models` response.'),
|
|
96
98
|
default: [],
|
|
97
99
|
items: {
|
|
@@ -124,6 +126,11 @@ exports.AnthropicPreferencesSchema = {
|
|
|
124
126
|
maxRetries: {
|
|
125
127
|
type: 'number',
|
|
126
128
|
title: core_1.nls.localize('theia/ai/anthropic/customEndpoints/maxRetries/title', 'Maximum number of retries when a request fails. 3 by default'),
|
|
129
|
+
},
|
|
130
|
+
headers: {
|
|
131
|
+
type: 'object',
|
|
132
|
+
additionalProperties: { type: 'string' },
|
|
133
|
+
title: core_1.nls.localize('theia/ai/anthropic/customEndpoints/headers/title', 'Additional HTTP headers sent with every request to the endpoint'),
|
|
127
134
|
}
|
|
128
135
|
}
|
|
129
136
|
}
|
|
@@ -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,uFAEuD;AACvD,6EAA0G;AAC1G,sCAAoE;AAEvD,QAAA,YAAY,GAAG,uCAAuC,CAAC;AACvD,QAAA,
|
|
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,uFAEuD;AACvD,6EAA0G;AAC1G,sCAAoE;AAEvD,QAAA,YAAY,GAAG,uCAAuC,CAAC;AACvD,QAAA,sBAAsB,GAAG,8CAA8C,CAAC;AACxE,QAAA,oBAAoB,GAAG,sCAAsC,CAAC;AAC9D,QAAA,qBAAqB,GAAG,mDAAmD,CAAC;AAC5E,QAAA,2BAA2B,GAAG,4CAA4C,CAAC;AAC3E,QAAA,2CAA2C,GAAG,0DAA0D,CAAC;AAEzG,QAAA,0BAA0B,GAAqB;IACxD,UAAU,EAAE;QACR,CAAC,oBAAY,CAAC,EAAE;YACZ,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,EAAE,CAAC,gDAA0B,CAAC,EAAE,EAAE,KAAK,EAAE,WAAW,EAAoC,EAAE;YACvG,mBAAmB,EAAE,UAAG,CAAC,QAAQ,CAAC,uCAAuC,EACrE;oHACoG,CAAC,GAAG,qBAAc;YAC1H,KAAK,EAAE,+CAAyB;SACnC;QACD,CAAC,8BAAsB,CAAC,EAAE;YACtB,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,+CAAyB;YAChC,mBAAmB,EAAE,UAAG,CAAC,QAAQ,CAAC,+CAA+C,EAC7E,0FAA0F;kBACxF,sGAAsG,CAAC;SAChH;QACD,CAAC,4BAAoB,CAAC,EAAE;YACpB,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,EAAE;YACX,KAAK,EAAE;gBACH,IAAI,EAAE,QAAQ;aACjB;YACD,KAAK,EAAE,+CAAyB;YAChC,mBAAmB,EAAE,UAAG,CAAC,QAAQ,CAAC,+CAA+C,EAC7E,8HAA8H;kBAC5H,yFAAyF,CAAC;SACnG;QACD,CAAC,mCAA2B,CAAC,EAAE;YAC3B,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC;YACxC,gBAAgB,EAAE;gBACd,UAAG,CAAC,QAAQ,CAAC,uCAAuC,EAAE,wDAAwD,CAAC;gBAC/G,UAAG,CAAC,QAAQ,CAAC,uCAAuC,EAAE,6DAA6D,CAAC;gBACpH,UAAG,CAAC,QAAQ,CAAC,wCAAwC,EAAE,4DAA4D,CAAC;aACvH;YACD,OAAO,EAAE,SAAS;YAClB,mBAAmB,EAAE,UAAG,CAAC,QAAQ,CAAC,2CAA2C,EACzE,kHAAkH;gBAClH,yGAAyG;gBACzG,6DAA6D,EAC7D,MAAM,4DAAsC,KAAK,CAAC;YACtD,KAAK,EAAE,+CAAyB;SACnC;QACD,CAAC,mDAA2C,CAAC,EAAE;YAC3C,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,+DAA8C;YACvD,mBAAmB,EAAE,UAAG,CAAC,QAAQ,CAAC,yDAAyD,EACvF,yJAAyJ;gBACzJ,mDAAmD,CAAC;YACxD,KAAK,EAAE,+CAAyB;SACnC;QACD,CAAC,6BAAqB,CAAC,EAAE;YACrB,IAAI,EAAE,OAAO;YACb,WAAW,EAAE;gBACT,CAAC,gDAA0B,CAAC,EAAE,EAAE,KAAK,EAAE,UAAG,CAAC,QAAQ,CAAC,yCAAyC,EAAE,cAAc,EAAE,WAAW,CAAC,EAAoC;aAClK;YACD,KAAK,EAAE,+CAAyB;YAChC,mBAAmB,EAAE,UAAG,CAAC,QAAQ,CAAC,kDAAkD,EAChF;;;;;;;;;;;;;;;;8HAgB8G,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;oBACD,OAAO,EAAE;wBACL,IAAI,EAAE,QAAQ;wBACd,oBAAoB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;wBACxC,KAAK,EAAE,UAAG,CAAC,QAAQ,CAAC,kDAAkD,EAClE,iEAAiE,CAAC;qBACzE;iBACJ;aACJ;SACJ;KACJ;CACJ,CAAC"}
|
|
@@ -34,6 +34,22 @@ export declare const AnthropicModelIdentifier: unique symbol;
|
|
|
34
34
|
* Implements the Anthropic language model integration for Theia. Reasoning-level
|
|
35
35
|
* translation lives in {@link anthropicReasoningFor}.
|
|
36
36
|
*/
|
|
37
|
+
/** Options for {@link createAnthropicClient}. */
|
|
38
|
+
export interface AnthropicClientOptions {
|
|
39
|
+
/** The key to authenticate with. A custom endpoint may need none. */
|
|
40
|
+
readonly apiKey: string | undefined;
|
|
41
|
+
/** Base URL of a custom endpoint; the SDK's own default is used without one. */
|
|
42
|
+
readonly baseURL?: string;
|
|
43
|
+
readonly proxyUrl?: string;
|
|
44
|
+
/** Additional HTTP headers sent with every request, e.g. headers required by a gateway in front of the API. */
|
|
45
|
+
readonly headers?: Record<string, string>;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* The single place an Anthropic SDK client is built, so that a chat request, a model lookup and the
|
|
49
|
+
* model discovery all reach the provider the same way: through the configured proxy, and with a key
|
|
50
|
+
* the SDK accepts.
|
|
51
|
+
*/
|
|
52
|
+
export declare function createAnthropicClient(options: AnthropicClientOptions): Anthropic;
|
|
37
53
|
export declare class AnthropicModel implements LanguageModel {
|
|
38
54
|
readonly id: string;
|
|
39
55
|
model: string;
|
|
@@ -53,9 +69,11 @@ export declare class AnthropicModel implements LanguageModel {
|
|
|
53
69
|
serverSideCompactionSupport: boolean;
|
|
54
70
|
serverSideCompactionEnabledByDefault: boolean;
|
|
55
71
|
serverSideCompactionTokenThresholdByDefault?: number | undefined;
|
|
72
|
+
headers?: Record<string, string> | undefined;
|
|
73
|
+
released?: number | undefined;
|
|
56
74
|
/** Provider identifier, used to key per-provider settings (e.g. server tool selections) and the capabilities UI. */
|
|
57
75
|
readonly vendor = "anthropic";
|
|
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);
|
|
76
|
+
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, headers?: Record<string, string> | undefined, released?: number | undefined);
|
|
59
77
|
protected getSettings(request: LanguageModelRequest): Readonly<Record<string, unknown>>;
|
|
60
78
|
/** Resolves whether this request will route through the Anthropic Beta Messages API for server-side compaction. */
|
|
61
79
|
protected useServerSideCompaction(request: LanguageModelRequest): boolean;
|
|
@@ -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,EACb,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACnB,2BAA2B,EAE3B,yBAAyB,EACzB,YAAY,EACZ,gBAAgB,EAIhB,oBAAoB,EAIpB,WAAW,EACd,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAgB,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,KAAK,EAA+C,YAAY,EAAwC,MAAM,6BAA6B,CAAC;AAKnJ,eAAO,MAAM,kBAAkB,OAAO,CAAC;AAEvC;;;;GAIG;AACH,eAAO,MAAM,+BAA+B,yBAAyB,CAAC;AAkHtE;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CACtC,QAAQ,EAAE,SAAS,oBAAoB,EAAE,EACzC,eAAe,GAAE,OAAc,EAC/B,iBAAiB,GAAE,OAAe,GACnC;IAAE,QAAQ,EAAE,YAAY,EAAE,CAAC;IAAC,aAAa,CAAC,EAAE,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAA;CAAE,CAuBnF;AAED,wBAAgB,gCAAgC,CAAC,QAAQ,EAAE,YAAY,EAAE,GAAG,YAAY,EAAE,CAwBzF;AAED;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,GAAG,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,CA2B3H;AAED,eAAO,MAAM,wBAAwB,eAAqC,CAAC;AAmE3E;;;GAGG;AACH,qBAAa,cAAe,YAAW,aAAa;aAM5B,EAAE,EAAE,MAAM;IACnB,KAAK,EAAE,MAAM;IACb,MAAM,EAAE,mBAAmB;IAC3B,eAAe,EAAE,OAAO;IACxB,UAAU,EAAE,OAAO;IACnB,MAAM,EAAE,MAAM,MAAM,GAAG,SAAS;IAChC,GAAG,EAAE,MAAM,GAAG,SAAS;IACvB,SAAS,EAAE,MAAM;IACjB,UAAU,EAAE,MAAM;IAClB,KAAK,CAAC,EAAE,MAAM;IACd,gBAAgB,CAAC,EAAE,gBAAgB;IACnC,YAAY,CAAC,EAAE,YAAY;IAC3B,mBAAmB,CAAC,EAAE,OAAO;IAC7B,cAAc,CAAC,EAAE,MAAM;IACvB,WAAW,CAAC,EAAE,oBAAoB,EAAE;IACpC,2BAA2B,EAAE,OAAO;IACpC,oCAAoC,EAAE,OAAO;IAC7C,2CAA2C,CAAC,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"anthropic-language-model.d.ts","sourceRoot":"","sources":["../../src/node/anthropic-language-model.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,6 +19,7 @@ exports.AnthropicModel = exports.AnthropicModelIdentifier = exports.ANTHROPIC_RE
|
|
|
19
19
|
exports.transformToAnthropicParams = transformToAnthropicParams;
|
|
20
20
|
exports.mergeConsecutiveSameRoleMessages = mergeConsecutiveSameRoleMessages;
|
|
21
21
|
exports.addCacheControlToLastMessage = addCacheControlToLastMessage;
|
|
22
|
+
exports.createAnthropicClient = createAnthropicClient;
|
|
22
23
|
const ai_core_1 = require("@theia/ai-core");
|
|
23
24
|
const core_1 = require("@theia/core");
|
|
24
25
|
const sdk_1 = require("@anthropic-ai/sdk");
|
|
@@ -283,11 +284,21 @@ function buildServerToolResultPart(serverToolCalls, toolUseId, nativeName, resul
|
|
|
283
284
|
};
|
|
284
285
|
}
|
|
285
286
|
/**
|
|
286
|
-
*
|
|
287
|
-
*
|
|
287
|
+
* The single place an Anthropic SDK client is built, so that a chat request, a model lookup and the
|
|
288
|
+
* model discovery all reach the provider the same way: through the configured proxy, and with a key
|
|
289
|
+
* the SDK accepts.
|
|
288
290
|
*/
|
|
291
|
+
function createAnthropicClient(options) {
|
|
292
|
+
return new sdk_1.Anthropic({
|
|
293
|
+
// The SDK refuses to be constructed without a key, so an endpoint that needs none still gets one.
|
|
294
|
+
apiKey: options.apiKey ?? 'no-key',
|
|
295
|
+
baseURL: options.baseURL,
|
|
296
|
+
fetch: (0, node_1.createProxyFetch)(options.proxyUrl),
|
|
297
|
+
defaultHeaders: options.headers
|
|
298
|
+
});
|
|
299
|
+
}
|
|
289
300
|
class AnthropicModel {
|
|
290
|
-
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) {
|
|
301
|
+
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, headers, released) {
|
|
291
302
|
this.id = id;
|
|
292
303
|
this.model = model;
|
|
293
304
|
this.status = status;
|
|
@@ -306,6 +317,8 @@ class AnthropicModel {
|
|
|
306
317
|
this.serverSideCompactionSupport = serverSideCompactionSupport;
|
|
307
318
|
this.serverSideCompactionEnabledByDefault = serverSideCompactionEnabledByDefault;
|
|
308
319
|
this.serverSideCompactionTokenThresholdByDefault = serverSideCompactionTokenThresholdByDefault;
|
|
320
|
+
this.headers = headers;
|
|
321
|
+
this.released = released;
|
|
309
322
|
/** Provider identifier, used to key per-provider settings (e.g. server tool selections) and the capabilities UI. */
|
|
310
323
|
this.vendor = 'anthropic';
|
|
311
324
|
}
|
|
@@ -630,17 +643,15 @@ class AnthropicModel {
|
|
|
630
643
|
const response = useCompaction
|
|
631
644
|
? await anthropic.beta.messages.create(params)
|
|
632
645
|
: await anthropic.messages.create(params);
|
|
633
|
-
const textContent = response.content[0];
|
|
634
646
|
const usage = response.usage ? {
|
|
635
647
|
input_tokens: response.usage.input_tokens,
|
|
636
648
|
output_tokens: response.usage.output_tokens,
|
|
637
649
|
cache_creation_input_tokens: response.usage.cache_creation_input_tokens || undefined,
|
|
638
650
|
cache_read_input_tokens: response.usage.cache_read_input_tokens || undefined,
|
|
639
651
|
} : undefined;
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
}
|
|
643
|
-
return { text: '', usage };
|
|
652
|
+
// Thinking and other non-text blocks precede the answer, so collect every text block rather than reading content[0].
|
|
653
|
+
const text = response.content.flatMap(block => block.type === 'text' ? [block.text] : []).join('');
|
|
654
|
+
return { text, usage };
|
|
644
655
|
}
|
|
645
656
|
catch (error) {
|
|
646
657
|
throw new Error(`Failed to get response from Anthropic API: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
@@ -651,9 +662,7 @@ class AnthropicModel {
|
|
|
651
662
|
if (!apiKey && !(this.url)) {
|
|
652
663
|
throw new Error('Please provide ANTHROPIC_API_KEY in preferences or via environment variable');
|
|
653
664
|
}
|
|
654
|
-
|
|
655
|
-
const key = apiKey ?? 'no-key';
|
|
656
|
-
return new sdk_1.Anthropic({ apiKey: key, baseURL: this.url, fetch: (0, node_1.createProxyFetch)(this.proxy) });
|
|
665
|
+
return createAnthropicClient({ apiKey, baseURL: this.url, proxyUrl: this.proxy, headers: this.headers });
|
|
657
666
|
}
|
|
658
667
|
}
|
|
659
668
|
exports.AnthropicModel = AnthropicModel;
|