@theia/ai-anthropic 1.60.0-next.47 → 1.61.0-next.8

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.
@@ -1,15 +1,11 @@
1
1
  import { FrontendApplicationContribution, PreferenceService } from '@theia/core/lib/browser';
2
2
  import { AnthropicLanguageModelsManager, AnthropicModelDescription } from '../common';
3
- import { RequestSetting } from '@theia/ai-core/lib/browser/ai-core-preferences';
4
3
  export declare class AnthropicFrontendApplicationContribution implements FrontendApplicationContribution {
5
4
  protected preferenceService: PreferenceService;
6
5
  protected manager: AnthropicLanguageModelsManager;
7
6
  protected prevModels: string[];
8
7
  onStart(): void;
9
8
  protected handleModelChanges(newModels: string[]): void;
10
- private getRequestSettingsPref;
11
- protected handleRequestSettingsChanges(newSettings: RequestSetting[]): void;
12
- protected createAnthropicModelDescription(modelId: string, requestSettings: RequestSetting[]): AnthropicModelDescription;
13
- protected getMatchingRequestSetting(modelId: string, providerId: string, requestSettings: RequestSetting[]): RequestSetting | undefined;
9
+ protected createAnthropicModelDescription(modelId: string): AnthropicModelDescription;
14
10
  }
15
11
  //# 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;AAEtF,OAAO,EAAoC,cAAc,EAAE,MAAM,gDAAgD,CAAC;AAYlH,qBACa,wCAAyC,YAAW,+BAA+B;IAG5F,SAAS,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAG/C,SAAS,CAAC,OAAO,EAAE,8BAA8B,CAAC;IAElD,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,CAAM;IAEpC,OAAO,IAAI,IAAI;IAsBf,SAAS,CAAC,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI;IAavD,OAAO,CAAC,sBAAsB;IAI9B,SAAS,CAAC,4BAA4B,CAAC,WAAW,EAAE,cAAc,EAAE,GAAG,IAAI;IAK3E,SAAS,CAAC,+BAA+B,CAAC,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,cAAc,EAAE,GAAG,yBAAyB;IAoBxH,SAAS,CAAC,yBAAyB,CAC/B,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,eAAe,EAAE,cAAc,EAAE,GAClC,cAAc,GAAG,SAAS;CAWhC"}
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;AAatF,qBACa,wCAAyC,YAAW,+BAA+B;IAG5F,SAAS,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAG/C,SAAS,CAAC,OAAO,EAAE,8BAA8B,CAAC;IAElD,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,CAAM;IAEpC,OAAO,IAAI,IAAI;IAmBf,SAAS,CAAC,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI;IAYvD,SAAS,CAAC,+BAA+B,CAAC,OAAO,EAAE,MAAM,GAAG,yBAAyB;CAiBxF"}
@@ -21,7 +21,6 @@ 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");
25
24
  const ANTHROPIC_PROVIDER_ID = 'anthropic';
26
25
  // Model-specific maxTokens values
27
26
  const DEFAULT_MODEL_MAX_TOKENS = {
@@ -39,8 +38,7 @@ let AnthropicFrontendApplicationContribution = class AnthropicFrontendApplicatio
39
38
  const apiKey = this.preferenceService.get(anthropic_preferences_1.API_KEY_PREF, undefined);
40
39
  this.manager.setApiKey(apiKey);
41
40
  const models = this.preferenceService.get(anthropic_preferences_1.MODELS_PREF, []);
42
- const requestSettings = this.getRequestSettingsPref();
43
- this.manager.createOrUpdateLanguageModels(...models.map(modelId => this.createAnthropicModelDescription(modelId, requestSettings)));
41
+ this.manager.createOrUpdateLanguageModels(...models.map(modelId => this.createAnthropicModelDescription(modelId)));
44
42
  this.prevModels = [...models];
45
43
  this.preferenceService.onPreferenceChanged(event => {
46
44
  if (event.preferenceName === anthropic_preferences_1.API_KEY_PREF) {
@@ -49,9 +47,6 @@ let AnthropicFrontendApplicationContribution = class AnthropicFrontendApplicatio
49
47
  else if (event.preferenceName === anthropic_preferences_1.MODELS_PREF) {
50
48
  this.handleModelChanges(event.newValue);
51
49
  }
52
- else if (event.preferenceName === ai_core_preferences_1.PREFERENCE_NAME_REQUEST_SETTINGS) {
53
- this.handleRequestSettingsChanges(event.newValue);
54
- }
55
50
  });
56
51
  });
57
52
  }
@@ -61,40 +56,23 @@ let AnthropicFrontendApplicationContribution = class AnthropicFrontendApplicatio
61
56
  const modelsToRemove = [...oldModels].filter(model => !updatedModels.has(model));
62
57
  const modelsToAdd = [...updatedModels].filter(model => !oldModels.has(model));
63
58
  this.manager.removeLanguageModels(...modelsToRemove.map(model => `${ANTHROPIC_PROVIDER_ID}/${model}`));
64
- const requestSettings = this.getRequestSettingsPref();
65
- this.manager.createOrUpdateLanguageModels(...modelsToAdd.map(modelId => this.createAnthropicModelDescription(modelId, requestSettings)));
59
+ this.manager.createOrUpdateLanguageModels(...modelsToAdd.map(modelId => this.createAnthropicModelDescription(modelId)));
66
60
  this.prevModels = newModels;
67
61
  }
68
- getRequestSettingsPref() {
69
- return this.preferenceService.get(ai_core_preferences_1.PREFERENCE_NAME_REQUEST_SETTINGS, []);
70
- }
71
- handleRequestSettingsChanges(newSettings) {
72
- const models = this.preferenceService.get(anthropic_preferences_1.MODELS_PREF, []);
73
- this.manager.createOrUpdateLanguageModels(...models.map(modelId => this.createAnthropicModelDescription(modelId, newSettings)));
74
- }
75
- createAnthropicModelDescription(modelId, requestSettings) {
62
+ createAnthropicModelDescription(modelId) {
76
63
  const id = `${ANTHROPIC_PROVIDER_ID}/${modelId}`;
77
- const modelRequestSetting = this.getMatchingRequestSetting(modelId, ANTHROPIC_PROVIDER_ID, requestSettings);
78
64
  const maxTokens = DEFAULT_MODEL_MAX_TOKENS[modelId];
79
65
  const description = {
80
66
  id: id,
81
67
  model: modelId,
82
68
  apiKey: true,
83
- enableStreaming: true,
84
- defaultRequestSettings: modelRequestSetting === null || modelRequestSetting === void 0 ? void 0 : modelRequestSetting.requestSettings
69
+ enableStreaming: true
85
70
  };
86
71
  if (maxTokens !== undefined) {
87
72
  description.maxTokens = maxTokens;
88
73
  }
89
74
  return description;
90
75
  }
91
- getMatchingRequestSetting(modelId, providerId, requestSettings) {
92
- const matchingSettings = requestSettings.filter(setting => (!setting.providerId || setting.providerId === providerId) && setting.modelId === modelId);
93
- if (matchingSettings.length > 1) {
94
- console.warn(`Multiple entries found for provider "${providerId}" and model "${modelId}". Using the first match.`);
95
- }
96
- return matchingSettings[0];
97
- }
98
76
  };
99
77
  exports.AnthropicFrontendApplicationContribution = AnthropicFrontendApplicationContribution;
100
78
  tslib_1.__decorate([
@@ -1 +1 @@
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
+ {"version":3,"file":"anthropic-frontend-application-contribution.js","sourceRoot":"","sources":["../../src/browser/anthropic-frontend-application-contribution.ts"],"names":[],"mappings":"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"}
@@ -21,12 +21,6 @@ export interface AnthropicModelDescription {
21
21
  * Maximum number of tokens to generate. Default is 4096.
22
22
  */
23
23
  maxTokens?: number;
24
- /**
25
- * Default request settings for the Anthropic model.
26
- */
27
- defaultRequestSettings?: {
28
- [key: string]: unknown;
29
- };
30
24
  }
31
25
  export interface AnthropicLanguageModelsManager {
32
26
  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;IACnB;;OAEG;IACH,sBAAsB,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;CACvD;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,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,4 +1,4 @@
1
- import { LanguageModel, LanguageModelRequest, LanguageModelResponse, LanguageModelStreamResponse, LanguageModelTextResponse } from '@theia/ai-core';
1
+ import { LanguageModel, LanguageModelRequest, LanguageModelResponse, LanguageModelStreamResponse, LanguageModelTextResponse, TokenUsageService, UserRequest } from '@theia/ai-core';
2
2
  import { CancellationToken } from '@theia/core';
3
3
  import { Anthropic } from '@anthropic-ai/sdk';
4
4
  export declare const DEFAULT_MAX_TOKENS = 4096;
@@ -11,18 +11,18 @@ export declare class AnthropicModel implements LanguageModel {
11
11
  model: string;
12
12
  enableStreaming: boolean;
13
13
  apiKey: () => string | undefined;
14
- defaultRequestSettings?: Readonly<Record<string, unknown>> | undefined;
15
14
  maxTokens: number;
16
- constructor(id: string, model: string, enableStreaming: boolean, apiKey: () => string | undefined, defaultRequestSettings?: Readonly<Record<string, unknown>> | undefined, maxTokens?: number);
15
+ protected readonly tokenUsageService?: TokenUsageService | undefined;
16
+ constructor(id: string, model: string, enableStreaming: boolean, apiKey: () => string | undefined, maxTokens?: number, tokenUsageService?: TokenUsageService | undefined);
17
17
  protected getSettings(request: LanguageModelRequest): Readonly<Record<string, unknown>>;
18
- request(request: LanguageModelRequest, cancellationToken?: CancellationToken): Promise<LanguageModelResponse>;
18
+ request(request: UserRequest, cancellationToken?: CancellationToken): Promise<LanguageModelResponse>;
19
19
  protected formatToolCallResult(result: unknown): string | Array<{
20
20
  type: 'text';
21
21
  text: string;
22
22
  }>;
23
- protected handleStreamingRequest(anthropic: Anthropic, request: LanguageModelRequest, cancellationToken?: CancellationToken, toolMessages?: readonly Anthropic.Messages.MessageParam[]): Promise<LanguageModelStreamResponse>;
23
+ protected handleStreamingRequest(anthropic: Anthropic, request: UserRequest, cancellationToken?: CancellationToken, toolMessages?: readonly Anthropic.Messages.MessageParam[]): Promise<LanguageModelStreamResponse>;
24
24
  private createTools;
25
- protected handleNonStreamingRequest(anthropic: Anthropic, request: LanguageModelRequest): Promise<LanguageModelTextResponse>;
25
+ protected handleNonStreamingRequest(anthropic: Anthropic, request: UserRequest): Promise<LanguageModelTextResponse>;
26
26
  protected initializeAnthropic(): Anthropic;
27
27
  }
28
28
  //# sourceMappingURL=anthropic-language-model.d.ts.map
@@ -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,EAC5B,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;AAuCvC,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,MAAM,EAAE,MAAM,MAAM,GAAG,SAAS;IAChC,sBAAsB,CAAC;IACvB,SAAS,EAAE,MAAM;gBALR,EAAE,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,eAAe,EAAE,OAAO,EACxB,MAAM,EAAE,MAAM,MAAM,GAAG,SAAS,EAChC,sBAAsB,CAAC,+CAAmC,EAC1D,SAAS,GAAE,MAA2B;IAGjD,SAAS,CAAC,WAAW,CAAC,OAAO,EAAE,oBAAoB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAIjF,OAAO,CAAC,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAkBnH,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,oBAAoB,EAC7B,iBAAiB,CAAC,EAAE,iBAAiB,EACrC,YAAY,CAAC,EAAE,SAAS,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,GAC1D,OAAO,CAAC,2BAA2B,CAAC;IA8GvC,OAAO,CAAC,WAAW;cAQH,yBAAyB,CACrC,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,oBAAoB,GAC9B,OAAO,CAAC,yBAAyB,CAAC;IA2BrC,SAAS,CAAC,mBAAmB,IAAI,SAAS;CAQ7C"}
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,EACd,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;AA+CvC,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,MAAM,EAAE,MAAM,MAAM,GAAG,SAAS;IAChC,SAAS,EAAE,MAAM;IACxB,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC;gBALrB,EAAE,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,eAAe,EAAE,OAAO,EACxB,MAAM,EAAE,MAAM,MAAM,GAAG,SAAS,EAChC,SAAS,GAAE,MAA2B,EAC1B,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;IAsIvC,OAAO,CAAC,WAAW;cAWH,yBAAyB,CACrC,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,WAAW,GACrB,OAAO,CAAC,yBAAyB,CAAC;IAoCrC,SAAS,CAAC,mBAAmB,IAAI,SAAS;CAQ7C"}
@@ -16,13 +16,24 @@
16
16
  // *****************************************************************************
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.AnthropicModel = exports.AnthropicModelIdentifier = exports.DEFAULT_MAX_TOKENS = void 0;
19
+ const ai_core_1 = require("@theia/ai-core");
19
20
  const core_1 = require("@theia/core");
20
21
  const sdk_1 = require("@anthropic-ai/sdk");
21
22
  exports.DEFAULT_MAX_TOKENS = 4096;
22
- const EMPTY_INPUT_SCHEMA = {
23
- type: 'object',
24
- properties: {},
25
- required: []
23
+ const createMessageContent = (message) => {
24
+ if (ai_core_1.LanguageModelMessage.isTextMessage(message)) {
25
+ return message.text;
26
+ }
27
+ else if (ai_core_1.LanguageModelMessage.isThinkingMessage(message)) {
28
+ return [{ signature: message.signature, thinking: message.thinking, type: 'thinking' }];
29
+ }
30
+ else if (ai_core_1.LanguageModelMessage.isToolUseMessage(message)) {
31
+ return [{ id: message.id, input: message.input, name: message.name, type: 'tool_use' }];
32
+ }
33
+ else if (ai_core_1.LanguageModelMessage.isToolResultMessage(message)) {
34
+ return [{ type: 'tool_result', tool_use_id: message.tool_use_id }];
35
+ }
36
+ throw new Error(`Unknown message type:'${JSON.stringify(message)}'`);
26
37
  };
27
38
  /**
28
39
  * Transforms Theia language model messages to Anthropic API format
@@ -32,12 +43,12 @@ const EMPTY_INPUT_SCHEMA = {
32
43
  function transformToAnthropicParams(messages) {
33
44
  // Extract the system message (if any), as it is a separate parameter in the Anthropic API.
34
45
  const systemMessageObj = messages.find(message => message.actor === 'system');
35
- const systemMessage = systemMessageObj === null || systemMessageObj === void 0 ? void 0 : systemMessageObj.query;
46
+ const systemMessage = systemMessageObj && ai_core_1.LanguageModelMessage.isTextMessage(systemMessageObj) && systemMessageObj.text || undefined;
36
47
  const convertedMessages = messages
37
48
  .filter(message => message.actor !== 'system')
38
49
  .map(message => ({
39
50
  role: toAnthropicRole(message),
40
- content: message.query || '',
51
+ content: createMessageContent(message)
41
52
  }));
42
53
  return {
43
54
  messages: convertedMessages,
@@ -62,17 +73,17 @@ function toAnthropicRole(message) {
62
73
  * Implements the Anthropic language model integration for Theia
63
74
  */
64
75
  class AnthropicModel {
65
- constructor(id, model, enableStreaming, apiKey, defaultRequestSettings, maxTokens = exports.DEFAULT_MAX_TOKENS) {
76
+ constructor(id, model, enableStreaming, apiKey, maxTokens = exports.DEFAULT_MAX_TOKENS, tokenUsageService) {
66
77
  this.id = id;
67
78
  this.model = model;
68
79
  this.enableStreaming = enableStreaming;
69
80
  this.apiKey = apiKey;
70
- this.defaultRequestSettings = defaultRequestSettings;
71
81
  this.maxTokens = maxTokens;
82
+ this.tokenUsageService = tokenUsageService;
72
83
  }
73
84
  getSettings(request) {
74
- var _a, _b;
75
- return (_b = (_a = request.settings) !== null && _a !== void 0 ? _a : this.defaultRequestSettings) !== null && _b !== void 0 ? _b : {};
85
+ var _a;
86
+ return (_a = request.settings) !== null && _a !== void 0 ? _a : {};
76
87
  }
77
88
  async request(request, cancellationToken) {
78
89
  var _a;
@@ -112,6 +123,7 @@ class AnthropicModel {
112
123
  max_tokens: this.maxTokens,
113
124
  messages: [...messages, ...(toolMessages !== null && toolMessages !== void 0 ? toolMessages : [])],
114
125
  tools,
126
+ tool_choice: tools ? { type: 'auto' } : undefined,
115
127
  model: this.model,
116
128
  ...(systemMessage && { system: systemMessage }),
117
129
  ...settings
@@ -123,11 +135,17 @@ class AnthropicModel {
123
135
  const that = this;
124
136
  const asyncIterator = {
125
137
  async *[Symbol.asyncIterator]() {
138
+ var _a;
126
139
  const toolCalls = [];
127
140
  let toolCall;
141
+ const currentMessages = [];
142
+ let currentMessage = undefined;
128
143
  for await (const event of stream) {
129
144
  if (event.type === 'content_block_start') {
130
145
  const contentBlock = event.content_block;
146
+ if (contentBlock.type === 'thinking') {
147
+ yield { thought: contentBlock.thinking, signature: (_a = contentBlock.signature) !== null && _a !== void 0 ? _a : '' };
148
+ }
131
149
  if (contentBlock.type === 'text') {
132
150
  yield { content: contentBlock.text };
133
151
  }
@@ -138,6 +156,12 @@ class AnthropicModel {
138
156
  }
139
157
  else if (event.type === 'content_block_delta') {
140
158
  const delta = event.delta;
159
+ if (delta.type === 'thinking_delta') {
160
+ yield { thought: delta.thinking, signature: '' };
161
+ }
162
+ if (delta.type === 'signature_delta') {
163
+ yield { thought: '', signature: delta.signature };
164
+ }
141
165
  if (delta.type === 'text_delta') {
142
166
  yield { content: delta.text };
143
167
  }
@@ -160,6 +184,24 @@ class AnthropicModel {
160
184
  throw new Error(`The response was stopped because it exceeded the max token limit of ${event.usage.output_tokens}.`);
161
185
  }
162
186
  }
187
+ else if (event.type === 'message_start') {
188
+ currentMessages.push(event.message);
189
+ currentMessage = event.message;
190
+ }
191
+ else if (event.type === 'message_stop') {
192
+ if (currentMessage) {
193
+ yield { input_tokens: currentMessage.usage.input_tokens, output_tokens: currentMessage.usage.output_tokens };
194
+ // Record token usage if token usage service is available
195
+ if (that.tokenUsageService && currentMessage.usage) {
196
+ const tokenUsageParams = {
197
+ inputTokens: currentMessage.usage.input_tokens,
198
+ outputTokens: currentMessage.usage.output_tokens,
199
+ requestId: request.requestId
200
+ };
201
+ await that.tokenUsageService.recordTokenUsage(that.id, tokenUsageParams);
202
+ }
203
+ }
204
+ }
163
205
  }
164
206
  if (toolCalls.length > 0) {
165
207
  const toolResult = await Promise.all(toolCalls.map(async (tc) => {
@@ -173,15 +215,6 @@ class AnthropicModel {
173
215
  return { finished: true, id: tr.id, result: resultAsString, function: { name: tr.name, arguments: tr.arguments } };
174
216
  });
175
217
  yield { tool_calls: calls };
176
- const toolRequestMessage = {
177
- role: 'assistant',
178
- content: toolResult.map(call => ({
179
- type: 'tool_use',
180
- id: call.id,
181
- name: call.name,
182
- input: JSON.parse(call.arguments)
183
- }))
184
- };
185
218
  const toolResponseMessage = {
186
219
  role: 'user',
187
220
  content: toolResult.map(call => ({
@@ -190,7 +223,11 @@ class AnthropicModel {
190
223
  content: that.formatToolCallResult(call.result)
191
224
  }))
192
225
  };
193
- const result = await that.handleStreamingRequest(anthropic, request, cancellationToken, [...(toolMessages !== null && toolMessages !== void 0 ? toolMessages : []), toolRequestMessage, toolResponseMessage]);
226
+ const result = await that.handleStreamingRequest(anthropic, request, cancellationToken, [
227
+ ...(toolMessages !== null && toolMessages !== void 0 ? toolMessages : []),
228
+ ...currentMessages.map(m => ({ role: m.role, content: m.content })),
229
+ toolResponseMessage
230
+ ]);
194
231
  for await (const nestedEvent of result.stream) {
195
232
  yield nestedEvent;
196
233
  }
@@ -203,15 +240,15 @@ class AnthropicModel {
203
240
  return { stream: asyncIterator };
204
241
  }
205
242
  createTools(request) {
206
- var _a;
207
- return (_a = request.tools) === null || _a === void 0 ? void 0 : _a.map(tool => {
208
- var _a;
209
- return ({
210
- name: tool.name,
211
- description: tool.description,
212
- input_schema: (_a = tool.parameters) !== null && _a !== void 0 ? _a : EMPTY_INPUT_SCHEMA
213
- });
214
- });
243
+ var _a, _b;
244
+ if (((_a = request.tools) === null || _a === void 0 ? void 0 : _a.length) === 0) {
245
+ return undefined;
246
+ }
247
+ return (_b = request.tools) === null || _b === void 0 ? void 0 : _b.map(tool => ({
248
+ name: tool.name,
249
+ description: tool.description,
250
+ input_schema: tool.parameters
251
+ }));
215
252
  }
216
253
  async handleNonStreamingRequest(anthropic, request) {
217
254
  const settings = this.getSettings(request);
@@ -226,6 +263,15 @@ class AnthropicModel {
226
263
  try {
227
264
  const response = await anthropic.messages.create(params);
228
265
  const textContent = response.content[0];
266
+ // Record token usage if token usage service is available
267
+ if (this.tokenUsageService && response.usage) {
268
+ const tokenUsageParams = {
269
+ inputTokens: response.usage.input_tokens,
270
+ outputTokens: response.usage.output_tokens,
271
+ requestId: request.requestId
272
+ };
273
+ await this.tokenUsageService.recordTokenUsage(this.id, tokenUsageParams);
274
+ }
229
275
  if ((textContent === null || textContent === void 0 ? void 0 : textContent.type) === 'text') {
230
276
  return { text: textContent.text };
231
277
  }
@@ -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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"}
@@ -1,8 +1,9 @@
1
- import { LanguageModelRegistry } from '@theia/ai-core';
1
+ import { LanguageModelRegistry, TokenUsageService } from '@theia/ai-core';
2
2
  import { AnthropicLanguageModelsManager, AnthropicModelDescription } from '../common';
3
3
  export declare class AnthropicLanguageModelsManagerImpl implements AnthropicLanguageModelsManager {
4
4
  protected _apiKey: string | undefined;
5
5
  protected readonly languageModelRegistry: LanguageModelRegistry;
6
+ protected readonly tokenUsageService: TokenUsageService;
6
7
  get apiKey(): string | undefined;
7
8
  createOrUpdateLanguageModels(...modelDescriptions: AnthropicModelDescription[]): Promise<void>;
8
9
  removeLanguageModels(...modelIds: string[]): void;
@@ -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,MAAM,gBAAgB,CAAC;AAGvD,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;IAEhE,IAAI,MAAM,IAAI,MAAM,GAAG,SAAS,CAE/B;IAEK,4BAA4B,CAAC,GAAG,iBAAiB,EAAE,yBAAyB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA0CpG,oBAAoB,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IAIjD,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;CAO9C"}
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;IAyCpG,oBAAoB,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IAIjD,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;CAO9C"}
@@ -45,7 +45,6 @@ let AnthropicLanguageModelsManagerImpl = class AnthropicLanguageModelsManagerImp
45
45
  model.model = modelDescription.model;
46
46
  model.enableStreaming = modelDescription.enableStreaming;
47
47
  model.apiKey = apiKeyProvider;
48
- model.defaultRequestSettings = modelDescription.defaultRequestSettings;
49
48
  if (modelDescription.maxTokens !== undefined) {
50
49
  model.maxTokens = modelDescription.maxTokens;
51
50
  }
@@ -55,7 +54,7 @@ let AnthropicLanguageModelsManagerImpl = class AnthropicLanguageModelsManagerImp
55
54
  }
56
55
  else {
57
56
  this.languageModelRegistry.addLanguageModels([
58
- new anthropic_language_model_1.AnthropicModel(modelDescription.id, modelDescription.model, modelDescription.enableStreaming, apiKeyProvider, modelDescription.defaultRequestSettings, modelDescription.maxTokens)
57
+ new anthropic_language_model_1.AnthropicModel(modelDescription.id, modelDescription.model, modelDescription.enableStreaming, apiKeyProvider, modelDescription.maxTokens, this.tokenUsageService)
59
58
  ]);
60
59
  }
61
60
  }
@@ -77,6 +76,10 @@ tslib_1.__decorate([
77
76
  (0, inversify_1.inject)(ai_core_1.LanguageModelRegistry),
78
77
  tslib_1.__metadata("design:type", Object)
79
78
  ], AnthropicLanguageModelsManagerImpl.prototype, "languageModelRegistry", void 0);
79
+ tslib_1.__decorate([
80
+ (0, inversify_1.inject)(ai_core_1.TokenUsageService),
81
+ tslib_1.__metadata("design:type", Object)
82
+ ], AnthropicLanguageModelsManagerImpl.prototype, "tokenUsageService", void 0);
80
83
  exports.AnthropicLanguageModelsManagerImpl = AnthropicLanguageModelsManagerImpl = tslib_1.__decorate([
81
84
  (0, inversify_1.injectable)()
82
85
  ], AnthropicLanguageModelsManagerImpl);
@@ -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,4CAAuD;AACvD,4DAAkE;AAClE,yEAAgF;AAIzE,IAAM,kCAAkC,GAAxC,MAAM,kCAAkC;IAO3C,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,KAAK,CAAC,sBAAsB,GAAG,gBAAgB,CAAC,sBAAsB,CAAC;gBACvE,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;YACL,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,qBAAqB,CAAC,iBAAiB,CAAC;oBACzC,IAAI,yCAAc,CACd,gBAAgB,CAAC,EAAE,EACnB,gBAAgB,CAAC,KAAK,EACtB,gBAAgB,CAAC,eAAe,EAChC,cAAc,EACd,gBAAgB,CAAC,sBAAsB,EACvC,gBAAgB,CAAC,SAAS,CAC7B;iBACJ,CAAC,CAAC;YACP,CAAC;QACL,CAAC;IACL,CAAC;IAED,oBAAoB,CAAC,GAAG,QAAkB;QACtC,IAAI,CAAC,qBAAqB,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAC9D,CAAC;IAED,SAAS,CAAC,MAA0B;QAChC,IAAI,MAAM,EAAE,CAAC;YACT,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QAC1B,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;QAC7B,CAAC;IACL,CAAC;CACJ,CAAA;AAhEY,gFAAkC;AAKxB;IADlB,IAAA,kBAAM,EAAC,+BAAqB,CAAC;;iFACkC;6CALvD,kCAAkC;IAD9C,IAAA,sBAAU,GAAE;GACA,kCAAkC,CAgE9C"}
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;YACL,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,qBAAqB,CAAC,iBAAiB,CAAC;oBACzC,IAAI,yCAAc,CACd,gBAAgB,CAAC,EAAE,EACnB,gBAAgB,CAAC,KAAK,EACtB,gBAAgB,CAAC,eAAe,EAChC,cAAc,EACd,gBAAgB,CAAC,SAAS,EAC1B,IAAI,CAAC,iBAAiB,CACzB;iBACJ,CAAC,CAAC;YACP,CAAC;QACL,CAAC;IACL,CAAC;IAED,oBAAoB,CAAC,GAAG,QAAkB;QACtC,IAAI,CAAC,qBAAqB,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAC9D,CAAC;IAED,SAAS,CAAC,MAA0B;QAChC,IAAI,MAAM,EAAE,CAAC;YACT,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QAC1B,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;QAC7B,CAAC;IACL,CAAC;CACJ,CAAA;AAlEY,gFAAkC;AAKxB;IADlB,IAAA,kBAAM,EAAC,+BAAqB,CAAC;;iFACkC;AAG7C;IADlB,IAAA,kBAAM,EAAC,2BAAiB,CAAC;;6EAC8B;6CAR/C,kCAAkC;IAD9C,IAAA,sBAAU,GAAE;GACA,kCAAkC,CAkE9C"}
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@theia/ai-anthropic",
3
- "version": "1.60.0-next.47+9332521b9",
3
+ "version": "1.61.0-next.8+436de3c45",
4
4
  "description": "Theia - Anthropic Integration",
5
5
  "dependencies": {
6
- "@anthropic-ai/sdk": "^0.32.1",
7
- "@theia/ai-core": "1.60.0-next.47+9332521b9",
8
- "@theia/core": "1.60.0-next.47+9332521b9"
6
+ "@anthropic-ai/sdk": "^0.39.0",
7
+ "@theia/ai-core": "1.61.0-next.8+436de3c45",
8
+ "@theia/core": "1.61.0-next.8+436de3c45"
9
9
  },
10
10
  "publishConfig": {
11
11
  "access": "public"
@@ -41,10 +41,10 @@
41
41
  "watch": "theiaext watch"
42
42
  },
43
43
  "devDependencies": {
44
- "@theia/ext-scripts": "1.59.0"
44
+ "@theia/ext-scripts": "1.60.0"
45
45
  },
46
46
  "nyc": {
47
47
  "extends": "../../configs/nyc.json"
48
48
  },
49
- "gitHead": "9332521b9aa74bf534d45968905d37e30a13c3b5"
49
+ "gitHead": "436de3c4571e0000fdcbbf2e94ddfc992f38ccb2"
50
50
  }
@@ -18,7 +18,6 @@ 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 { PREFERENCE_NAME_REQUEST_SETTINGS, RequestSetting } from '@theia/ai-core/lib/browser/ai-core-preferences';
22
21
 
23
22
  const ANTHROPIC_PROVIDER_ID = 'anthropic';
24
23
 
@@ -47,8 +46,7 @@ export class AnthropicFrontendApplicationContribution implements FrontendApplica
47
46
  this.manager.setApiKey(apiKey);
48
47
 
49
48
  const models = this.preferenceService.get<string[]>(MODELS_PREF, []);
50
- const requestSettings = this.getRequestSettingsPref();
51
- this.manager.createOrUpdateLanguageModels(...models.map(modelId => this.createAnthropicModelDescription(modelId, requestSettings)));
49
+ this.manager.createOrUpdateLanguageModels(...models.map(modelId => this.createAnthropicModelDescription(modelId)));
52
50
  this.prevModels = [...models];
53
51
 
54
52
  this.preferenceService.onPreferenceChanged(event => {
@@ -56,8 +54,6 @@ export class AnthropicFrontendApplicationContribution implements FrontendApplica
56
54
  this.manager.setApiKey(event.newValue);
57
55
  } else if (event.preferenceName === MODELS_PREF) {
58
56
  this.handleModelChanges(event.newValue as string[]);
59
- } else if (event.preferenceName === PREFERENCE_NAME_REQUEST_SETTINGS) {
60
- this.handleRequestSettingsChanges(event.newValue as RequestSetting[]);
61
57
  }
62
58
  });
63
59
  });
@@ -71,31 +67,19 @@ export class AnthropicFrontendApplicationContribution implements FrontendApplica
71
67
  const modelsToAdd = [...updatedModels].filter(model => !oldModels.has(model));
72
68
 
73
69
  this.manager.removeLanguageModels(...modelsToRemove.map(model => `${ANTHROPIC_PROVIDER_ID}/${model}`));
74
- const requestSettings = this.getRequestSettingsPref();
75
- this.manager.createOrUpdateLanguageModels(...modelsToAdd.map(modelId => this.createAnthropicModelDescription(modelId, requestSettings)));
70
+ this.manager.createOrUpdateLanguageModels(...modelsToAdd.map(modelId => this.createAnthropicModelDescription(modelId)));
76
71
  this.prevModels = newModels;
77
72
  }
78
73
 
79
- private getRequestSettingsPref(): RequestSetting[] {
80
- return this.preferenceService.get<RequestSetting[]>(PREFERENCE_NAME_REQUEST_SETTINGS, []);
81
- }
82
-
83
- protected handleRequestSettingsChanges(newSettings: RequestSetting[]): void {
84
- const models = this.preferenceService.get<string[]>(MODELS_PREF, []);
85
- this.manager.createOrUpdateLanguageModels(...models.map(modelId => this.createAnthropicModelDescription(modelId, newSettings)));
86
- }
87
-
88
- protected createAnthropicModelDescription(modelId: string, requestSettings: RequestSetting[]): AnthropicModelDescription {
74
+ protected createAnthropicModelDescription(modelId: string): AnthropicModelDescription {
89
75
  const id = `${ANTHROPIC_PROVIDER_ID}/${modelId}`;
90
- const modelRequestSetting = this.getMatchingRequestSetting(modelId, ANTHROPIC_PROVIDER_ID, requestSettings);
91
76
  const maxTokens = DEFAULT_MODEL_MAX_TOKENS[modelId];
92
77
 
93
78
  const description: AnthropicModelDescription = {
94
79
  id: id,
95
80
  model: modelId,
96
81
  apiKey: true,
97
- enableStreaming: true,
98
- defaultRequestSettings: modelRequestSetting?.requestSettings
82
+ enableStreaming: true
99
83
  };
100
84
 
101
85
  if (maxTokens !== undefined) {
@@ -104,20 +88,4 @@ export class AnthropicFrontendApplicationContribution implements FrontendApplica
104
88
 
105
89
  return description;
106
90
  }
107
-
108
- protected getMatchingRequestSetting(
109
- modelId: string,
110
- providerId: string,
111
- requestSettings: RequestSetting[]
112
- ): RequestSetting | undefined {
113
- const matchingSettings = requestSettings.filter(
114
- setting => (!setting.providerId || setting.providerId === providerId) && setting.modelId === modelId
115
- );
116
- if (matchingSettings.length > 1) {
117
- console.warn(
118
- `Multiple entries found for provider "${providerId}" and model "${modelId}". Using the first match.`
119
- );
120
- }
121
- return matchingSettings[0];
122
- }
123
91
  }
@@ -36,10 +36,7 @@ export interface AnthropicModelDescription {
36
36
  * Maximum number of tokens to generate. Default is 4096.
37
37
  */
38
38
  maxTokens?: number;
39
- /**
40
- * Default request settings for the Anthropic model.
41
- */
42
- defaultRequestSettings?: { [key: string]: unknown };
39
+
43
40
  }
44
41
  export interface AnthropicLanguageModelsManager {
45
42
  apiKey: string | undefined;
@@ -17,22 +17,20 @@
17
17
  import {
18
18
  LanguageModel,
19
19
  LanguageModelRequest,
20
- LanguageModelRequestMessage,
20
+ LanguageModelMessage,
21
21
  LanguageModelResponse,
22
22
  LanguageModelStreamResponse,
23
23
  LanguageModelStreamResponsePart,
24
- LanguageModelTextResponse
24
+ LanguageModelTextResponse,
25
+ TokenUsageService,
26
+ TokenUsageParams,
27
+ UserRequest
25
28
  } from '@theia/ai-core';
26
29
  import { CancellationToken, isArray } from '@theia/core';
27
30
  import { Anthropic } from '@anthropic-ai/sdk';
28
- import { MessageParam } from '@anthropic-ai/sdk/resources';
31
+ import { Message, MessageParam } from '@anthropic-ai/sdk/resources';
29
32
 
30
33
  export const DEFAULT_MAX_TOKENS = 4096;
31
- const EMPTY_INPUT_SCHEMA = {
32
- type: 'object',
33
- properties: {},
34
- required: []
35
- } as const;
36
34
 
37
35
  interface ToolCallback {
38
36
  readonly name: string;
@@ -41,23 +39,36 @@ interface ToolCallback {
41
39
  args: string;
42
40
  }
43
41
 
42
+ const createMessageContent = (message: LanguageModelMessage): MessageParam['content'] => {
43
+ if (LanguageModelMessage.isTextMessage(message)) {
44
+ return message.text;
45
+ } else if (LanguageModelMessage.isThinkingMessage(message)) {
46
+ return [{ signature: message.signature, thinking: message.thinking, type: 'thinking' }];
47
+ } else if (LanguageModelMessage.isToolUseMessage(message)) {
48
+ return [{ id: message.id, input: message.input, name: message.name, type: 'tool_use' }];
49
+ } else if (LanguageModelMessage.isToolResultMessage(message)) {
50
+ return [{ type: 'tool_result', tool_use_id: message.tool_use_id }];
51
+ }
52
+ throw new Error(`Unknown message type:'${JSON.stringify(message)}'`);
53
+ };
54
+
44
55
  /**
45
56
  * Transforms Theia language model messages to Anthropic API format
46
57
  * @param messages Array of LanguageModelRequestMessage to transform
47
58
  * @returns Object containing transformed messages and optional system message
48
59
  */
49
60
  function transformToAnthropicParams(
50
- messages: readonly LanguageModelRequestMessage[]
61
+ messages: readonly LanguageModelMessage[]
51
62
  ): { messages: MessageParam[]; systemMessage?: string } {
52
63
  // Extract the system message (if any), as it is a separate parameter in the Anthropic API.
53
64
  const systemMessageObj = messages.find(message => message.actor === 'system');
54
- const systemMessage = systemMessageObj?.query;
65
+ const systemMessage = systemMessageObj && LanguageModelMessage.isTextMessage(systemMessageObj) && systemMessageObj.text || undefined;
55
66
 
56
67
  const convertedMessages = messages
57
68
  .filter(message => message.actor !== 'system')
58
69
  .map(message => ({
59
70
  role: toAnthropicRole(message),
60
- content: message.query || '',
71
+ content: createMessageContent(message)
61
72
  }));
62
73
 
63
74
  return {
@@ -73,7 +84,7 @@ export const AnthropicModelIdentifier = Symbol('AnthropicModelIdentifier');
73
84
  * @param message The message to convert
74
85
  * @returns Anthropic role ('user' or 'assistant')
75
86
  */
76
- function toAnthropicRole(message: LanguageModelRequestMessage): 'user' | 'assistant' {
87
+ function toAnthropicRole(message: LanguageModelMessage): 'user' | 'assistant' {
77
88
  switch (message.actor) {
78
89
  case 'ai':
79
90
  return 'assistant';
@@ -92,15 +103,15 @@ export class AnthropicModel implements LanguageModel {
92
103
  public model: string,
93
104
  public enableStreaming: boolean,
94
105
  public apiKey: () => string | undefined,
95
- public defaultRequestSettings?: Readonly<Record<string, unknown>>,
96
- public maxTokens: number = DEFAULT_MAX_TOKENS
106
+ public maxTokens: number = DEFAULT_MAX_TOKENS,
107
+ protected readonly tokenUsageService?: TokenUsageService
97
108
  ) { }
98
109
 
99
110
  protected getSettings(request: LanguageModelRequest): Readonly<Record<string, unknown>> {
100
- return request.settings ?? this.defaultRequestSettings ?? {};
111
+ return request.settings ?? {};
101
112
  }
102
113
 
103
- async request(request: LanguageModelRequest, cancellationToken?: CancellationToken): Promise<LanguageModelResponse> {
114
+ async request(request: UserRequest, cancellationToken?: CancellationToken): Promise<LanguageModelResponse> {
104
115
  if (!request.messages?.length) {
105
116
  throw new Error('Request must contain at least one message');
106
117
  }
@@ -137,7 +148,7 @@ export class AnthropicModel implements LanguageModel {
137
148
 
138
149
  protected async handleStreamingRequest(
139
150
  anthropic: Anthropic,
140
- request: LanguageModelRequest,
151
+ request: UserRequest,
141
152
  cancellationToken?: CancellationToken,
142
153
  toolMessages?: readonly Anthropic.Messages.MessageParam[]
143
154
  ): Promise<LanguageModelStreamResponse> {
@@ -148,11 +159,11 @@ export class AnthropicModel implements LanguageModel {
148
159
  max_tokens: this.maxTokens,
149
160
  messages: [...messages, ...(toolMessages ?? [])],
150
161
  tools,
162
+ tool_choice: tools ? { type: 'auto' } : undefined,
151
163
  model: this.model,
152
164
  ...(systemMessage && { system: systemMessage }),
153
165
  ...settings
154
166
  };
155
-
156
167
  const stream = anthropic.messages.stream(params);
157
168
 
158
169
  cancellationToken?.onCancellationRequested(() => {
@@ -165,11 +176,16 @@ export class AnthropicModel implements LanguageModel {
165
176
 
166
177
  const toolCalls: ToolCallback[] = [];
167
178
  let toolCall: ToolCallback | undefined;
179
+ const currentMessages: Message[] = [];
180
+ let currentMessage: Message | undefined = undefined;
168
181
 
169
182
  for await (const event of stream) {
170
183
  if (event.type === 'content_block_start') {
171
184
  const contentBlock = event.content_block;
172
185
 
186
+ if (contentBlock.type === 'thinking') {
187
+ yield { thought: contentBlock.thinking, signature: contentBlock.signature ?? '' };
188
+ }
173
189
  if (contentBlock.type === 'text') {
174
190
  yield { content: contentBlock.text };
175
191
  }
@@ -179,7 +195,12 @@ export class AnthropicModel implements LanguageModel {
179
195
  }
180
196
  } else if (event.type === 'content_block_delta') {
181
197
  const delta = event.delta;
182
-
198
+ if (delta.type === 'thinking_delta') {
199
+ yield { thought: delta.thinking, signature: '' };
200
+ }
201
+ if (delta.type === 'signature_delta') {
202
+ yield { thought: '', signature: delta.signature };
203
+ }
183
204
  if (delta.type === 'text_delta') {
184
205
  yield { content: delta.text };
185
206
  }
@@ -199,6 +220,23 @@ export class AnthropicModel implements LanguageModel {
199
220
  }
200
221
  throw new Error(`The response was stopped because it exceeded the max token limit of ${event.usage.output_tokens}.`);
201
222
  }
223
+ } else if (event.type === 'message_start') {
224
+ currentMessages.push(event.message);
225
+ currentMessage = event.message;
226
+ } else if (event.type === 'message_stop') {
227
+ if (currentMessage) {
228
+ yield { input_tokens: currentMessage.usage.input_tokens, output_tokens: currentMessage.usage.output_tokens };
229
+ // Record token usage if token usage service is available
230
+ if (that.tokenUsageService && currentMessage.usage) {
231
+ const tokenUsageParams: TokenUsageParams = {
232
+ inputTokens: currentMessage.usage.input_tokens,
233
+ outputTokens: currentMessage.usage.output_tokens,
234
+ requestId: request.requestId
235
+ };
236
+ await that.tokenUsageService.recordTokenUsage(that.id, tokenUsageParams);
237
+ }
238
+ }
239
+
202
240
  }
203
241
  }
204
242
  if (toolCalls.length > 0) {
@@ -216,17 +254,6 @@ export class AnthropicModel implements LanguageModel {
216
254
  });
217
255
  yield { tool_calls: calls };
218
256
 
219
- const toolRequestMessage: Anthropic.Messages.MessageParam = {
220
- role: 'assistant',
221
- content: toolResult.map(call => ({
222
-
223
- type: 'tool_use',
224
- id: call.id,
225
- name: call.name,
226
- input: JSON.parse(call.arguments)
227
- }))
228
- };
229
-
230
257
  const toolResponseMessage: Anthropic.Messages.MessageParam = {
231
258
  role: 'user',
232
259
  content: toolResult.map(call => ({
@@ -235,7 +262,15 @@ export class AnthropicModel implements LanguageModel {
235
262
  content: that.formatToolCallResult(call.result)
236
263
  }))
237
264
  };
238
- const result = await that.handleStreamingRequest(anthropic, request, cancellationToken, [...(toolMessages ?? []), toolRequestMessage, toolResponseMessage]);
265
+ const result = await that.handleStreamingRequest(
266
+ anthropic,
267
+ request,
268
+ cancellationToken,
269
+ [
270
+ ...(toolMessages ?? []),
271
+ ...currentMessages.map(m => ({ role: m.role, content: m.content })),
272
+ toolResponseMessage
273
+ ]);
239
274
  for await (const nestedEvent of result.stream) {
240
275
  yield nestedEvent;
241
276
  }
@@ -251,19 +286,21 @@ export class AnthropicModel implements LanguageModel {
251
286
  }
252
287
 
253
288
  private createTools(request: LanguageModelRequest): Anthropic.Messages.Tool[] | undefined {
289
+ if (request.tools?.length === 0) {
290
+ return undefined;
291
+ }
254
292
  return request.tools?.map(tool => ({
255
293
  name: tool.name,
256
294
  description: tool.description,
257
- input_schema: tool.parameters ?? EMPTY_INPUT_SCHEMA
295
+ input_schema: tool.parameters
258
296
  } as Anthropic.Messages.Tool));
259
297
  }
260
298
 
261
299
  protected async handleNonStreamingRequest(
262
300
  anthropic: Anthropic,
263
- request: LanguageModelRequest
301
+ request: UserRequest
264
302
  ): Promise<LanguageModelTextResponse> {
265
303
  const settings = this.getSettings(request);
266
-
267
304
  const { messages, systemMessage } = transformToAnthropicParams(request.messages);
268
305
 
269
306
  const params: Anthropic.MessageCreateParams = {
@@ -278,6 +315,16 @@ export class AnthropicModel implements LanguageModel {
278
315
  const response = await anthropic.messages.create(params);
279
316
  const textContent = response.content[0];
280
317
 
318
+ // Record token usage if token usage service is available
319
+ if (this.tokenUsageService && response.usage) {
320
+ const tokenUsageParams: TokenUsageParams = {
321
+ inputTokens: response.usage.input_tokens,
322
+ outputTokens: response.usage.output_tokens,
323
+ requestId: request.requestId
324
+ };
325
+ await this.tokenUsageService.recordTokenUsage(this.id, tokenUsageParams);
326
+ }
327
+
281
328
  if (textContent?.type === 'text') {
282
329
  return { text: textContent.text };
283
330
  }
@@ -14,7 +14,7 @@
14
14
  // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
15
  // *****************************************************************************
16
16
 
17
- import { LanguageModelRegistry } from '@theia/ai-core';
17
+ import { LanguageModelRegistry, TokenUsageService } from '@theia/ai-core';
18
18
  import { inject, injectable } from '@theia/core/shared/inversify';
19
19
  import { AnthropicModel, DEFAULT_MAX_TOKENS } from './anthropic-language-model';
20
20
  import { AnthropicLanguageModelsManager, AnthropicModelDescription } from '../common';
@@ -27,6 +27,9 @@ export class AnthropicLanguageModelsManagerImpl implements AnthropicLanguageMode
27
27
  @inject(LanguageModelRegistry)
28
28
  protected readonly languageModelRegistry: LanguageModelRegistry;
29
29
 
30
+ @inject(TokenUsageService)
31
+ protected readonly tokenUsageService: TokenUsageService;
32
+
30
33
  get apiKey(): string | undefined {
31
34
  return this._apiKey ?? process.env.ANTHROPIC_API_KEY;
32
35
  }
@@ -52,7 +55,6 @@ export class AnthropicLanguageModelsManagerImpl implements AnthropicLanguageMode
52
55
  model.model = modelDescription.model;
53
56
  model.enableStreaming = modelDescription.enableStreaming;
54
57
  model.apiKey = apiKeyProvider;
55
- model.defaultRequestSettings = modelDescription.defaultRequestSettings;
56
58
  if (modelDescription.maxTokens !== undefined) {
57
59
  model.maxTokens = modelDescription.maxTokens;
58
60
  } else {
@@ -65,8 +67,8 @@ export class AnthropicLanguageModelsManagerImpl implements AnthropicLanguageMode
65
67
  modelDescription.model,
66
68
  modelDescription.enableStreaming,
67
69
  apiKeyProvider,
68
- modelDescription.defaultRequestSettings,
69
- modelDescription.maxTokens
70
+ modelDescription.maxTokens,
71
+ this.tokenUsageService
70
72
  )
71
73
  ]);
72
74
  }