@theia/ai-anthropic 1.66.0-next.0 → 1.66.0-next.27

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.
@@ -2,6 +2,14 @@ import { LanguageModel, LanguageModelRequest, LanguageModelResponse, LanguageMod
2
2
  import { CancellationToken } from '@theia/core';
3
3
  import { Anthropic } from '@anthropic-ai/sdk';
4
4
  export declare const DEFAULT_MAX_TOKENS = 4096;
5
+ /**
6
+ * If possible adds a cache control to the last message in the conversation.
7
+ * This is used to enable incremental caching of the conversation.
8
+ * @param messages The messages to process
9
+ * @returns A new messages array with the last message adapted to include cache control. If no cache control can be added, the original messages are returned.
10
+ * In any case, the original messages are not modified
11
+ */
12
+ export declare function addCacheControlToLastMessage(messages: Anthropic.Messages.MessageParam[]): Anthropic.Messages.MessageParam[];
5
13
  export declare const AnthropicModelIdentifier: unique symbol;
6
14
  /**
7
15
  * Implements the Anthropic language model integration for Theia
@@ -1 +1 @@
1
- {"version":3,"file":"anthropic-language-model.d.ts","sourceRoot":"","sources":["../../src/node/anthropic-language-model.ts"],"names":[],"mappings":"AAgBA,OAAO,EACH,aAAa,EACb,oBAAoB,EAEpB,qBAAqB,EACrB,2BAA2B,EAE3B,yBAAyB,EACzB,iBAAiB,EAEjB,WAAW,EAIX,mBAAmB,EACtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAW,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAG9C,eAAO,MAAM,kBAAkB,OAAO,CAAC;AA2GvC,eAAO,MAAM,wBAAwB,eAAqC,CAAC;AAwC3E;;GAEG;AACH,qBAAa,cAAe,YAAW,aAAa;aAG5B,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,SAAS,EAAE,MAAM;IACjB,UAAU,EAAE,MAAM;IACzB,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC;gBARrB,EAAE,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,mBAAmB,EAC3B,eAAe,EAAE,OAAO,EACxB,UAAU,EAAE,OAAO,EACnB,MAAM,EAAE,MAAM,MAAM,GAAG,SAAS,EAChC,SAAS,GAAE,MAA2B,EACtC,UAAU,GAAE,MAAU,EACV,iBAAiB,CAAC,+BAAmB;IAG5D,SAAS,CAAC,WAAW,CAAC,OAAO,EAAE,oBAAoB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAIjF,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,iBAAiB,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,qBAAqB,CAAC;cAkB1F,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;IA4IvC,SAAS,CAAC,WAAW,CAAC,OAAO,EAAE,oBAAoB,GAAG,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,SAAS;cAiB3E,yBAAyB,CACrC,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,WAAW,GACrB,OAAO,CAAC,yBAAyB,CAAC;IAoCrC,SAAS,CAAC,mBAAmB,IAAI,SAAS;CAQ7C"}
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,EAIX,mBAAmB,EACtB,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;AA8EvC;;;;;;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;AAwC3E;;GAEG;AACH,qBAAa,cAAe,YAAW,aAAa;aAG5B,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,SAAS,EAAE,MAAM;IACjB,UAAU,EAAE,MAAM;IACzB,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC;gBARrB,EAAE,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,mBAAmB,EAC3B,eAAe,EAAE,OAAO,EACxB,UAAU,EAAE,OAAO,EACnB,MAAM,EAAE,MAAM,MAAM,GAAG,SAAS,EAChC,SAAS,GAAE,MAA2B,EACtC,UAAU,GAAE,MAAU,EACV,iBAAiB,CAAC,+BAAmB;IAG5D,SAAS,CAAC,WAAW,CAAC,OAAO,EAAE,oBAAoB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAIjF,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,iBAAiB,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,qBAAqB,CAAC;cAkB1F,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;IA4IvC,SAAS,CAAC,WAAW,CAAC,OAAO,EAAE,oBAAoB,GAAG,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,SAAS;cAiB3E,yBAAyB,CACrC,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,WAAW,GACrB,OAAO,CAAC,yBAAyB,CAAC;IAoCrC,SAAS,CAAC,mBAAmB,IAAI,SAAS;CAQ7C"}
@@ -15,7 +15,7 @@
15
15
  // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
16
  // *****************************************************************************
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.AnthropicModel = exports.AnthropicModelIdentifier = exports.DEFAULT_MAX_TOKENS = void 0;
18
+ exports.AnthropicModel = exports.AnthropicModelIdentifier = exports.addCacheControlToLastMessage = exports.DEFAULT_MAX_TOKENS = void 0;
19
19
  const ai_core_1 = require("@theia/ai-core");
20
20
  const core_1 = require("@theia/core");
21
21
  const sdk_1 = require("@anthropic-ai/sdk");
@@ -92,24 +92,32 @@ function addCacheControlToLastMessage(messages) {
92
92
  const clonedMessages = [...messages];
93
93
  const latestMessage = clonedMessages.pop();
94
94
  if (latestMessage) {
95
- let content = undefined;
96
95
  if (typeof latestMessage.content === 'string') {
97
- content = { type: 'text', text: latestMessage.content };
96
+ // Wrap the string content into a content block with cache control
97
+ const cachedContent = {
98
+ type: 'text',
99
+ text: latestMessage.content,
100
+ cache_control: { type: 'ephemeral' }
101
+ };
102
+ return [...clonedMessages, { ...latestMessage, content: [cachedContent] }];
98
103
  }
99
104
  else if (Array.isArray(latestMessage.content)) {
100
- // we can't set cache control on thinking messages, so we only set it on the last non-thinking block
101
- const filteredContent = latestMessage.content.filter(isNonThinkingParam);
102
- if (filteredContent.length) {
103
- content = filteredContent[filteredContent.length - 1];
105
+ // Update the last non-thinking content block to include cache control
106
+ const updatedContent = [...latestMessage.content];
107
+ for (let i = updatedContent.length - 1; i >= 0; i--) {
108
+ if (isNonThinkingParam(updatedContent[i])) {
109
+ updatedContent[i] = {
110
+ ...updatedContent[i],
111
+ cache_control: { type: 'ephemeral' }
112
+ };
113
+ return [...clonedMessages, { ...latestMessage, content: updatedContent }];
114
+ }
104
115
  }
105
116
  }
106
- if (content) {
107
- const cachedContent = { ...content, cache_control: { type: 'ephemeral' } };
108
- return [...clonedMessages, { ...latestMessage, content: [cachedContent] }];
109
- }
110
117
  }
111
118
  return messages;
112
119
  }
120
+ exports.addCacheControlToLastMessage = addCacheControlToLastMessage;
113
121
  exports.AnthropicModelIdentifier = Symbol('AnthropicModelIdentifier');
114
122
  /**
115
123
  * Converts Theia message actor to Anthropic role
@@ -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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"}
@@ -43,5 +43,82 @@ describe('AnthropicModel', () => {
43
43
  (0, chai_1.expect)(model.maxRetries).to.equal(5);
44
44
  });
45
45
  });
46
+ describe('addCacheControlToLastMessage', () => {
47
+ it('should preserve all content blocks when adding cache control to parallel tool calls', () => {
48
+ const messages = [
49
+ {
50
+ role: 'user',
51
+ content: [
52
+ { type: 'tool_result', tool_use_id: 'tool1', content: 'result1' },
53
+ { type: 'tool_result', tool_use_id: 'tool2', content: 'result2' },
54
+ { type: 'tool_result', tool_use_id: 'tool3', content: 'result3' }
55
+ ]
56
+ }
57
+ ];
58
+ const result = (0, anthropic_language_model_1.addCacheControlToLastMessage)(messages);
59
+ (0, chai_1.expect)(result).to.have.lengthOf(1);
60
+ (0, chai_1.expect)(result[0].content).to.be.an('array').with.lengthOf(3);
61
+ (0, chai_1.expect)(result[0].content[0]).to.deep.equal({ type: 'tool_result', tool_use_id: 'tool1', content: 'result1' });
62
+ (0, chai_1.expect)(result[0].content[1]).to.deep.equal({ type: 'tool_result', tool_use_id: 'tool2', content: 'result2' });
63
+ (0, chai_1.expect)(result[0].content[2]).to.deep.equal({
64
+ type: 'tool_result',
65
+ tool_use_id: 'tool3',
66
+ content: 'result3',
67
+ cache_control: { type: 'ephemeral' }
68
+ });
69
+ });
70
+ it('should add cache control to last non-thinking block in mixed content', () => {
71
+ const messages = [
72
+ {
73
+ role: 'assistant',
74
+ content: [
75
+ { type: 'text', text: 'Some text' },
76
+ { type: 'tool_use', id: 'tool1', name: 'getTool', input: {} },
77
+ { type: 'thinking', thinking: 'thinking content', signature: 'signature' }
78
+ ]
79
+ }
80
+ ];
81
+ const result = (0, anthropic_language_model_1.addCacheControlToLastMessage)(messages);
82
+ (0, chai_1.expect)(result).to.have.lengthOf(1);
83
+ (0, chai_1.expect)(result[0].content).to.be.an('array').with.lengthOf(3);
84
+ (0, chai_1.expect)(result[0].content[0]).to.deep.equal({ type: 'text', text: 'Some text' });
85
+ (0, chai_1.expect)(result[0].content[1]).to.deep.equal({
86
+ type: 'tool_use',
87
+ id: 'tool1',
88
+ name: 'getTool',
89
+ input: {},
90
+ cache_control: { type: 'ephemeral' }
91
+ });
92
+ (0, chai_1.expect)(result[0].content[2]).to.deep.equal({ type: 'thinking', thinking: 'thinking content', signature: 'signature' });
93
+ });
94
+ it('should handle string content by converting to content block', () => {
95
+ const messages = [
96
+ {
97
+ role: 'user',
98
+ content: 'Simple text message'
99
+ }
100
+ ];
101
+ const result = (0, anthropic_language_model_1.addCacheControlToLastMessage)(messages);
102
+ (0, chai_1.expect)(result).to.have.lengthOf(1);
103
+ (0, chai_1.expect)(result[0].content).to.be.an('array').with.lengthOf(1);
104
+ (0, chai_1.expect)(result[0].content[0]).to.deep.equal({
105
+ type: 'text',
106
+ text: 'Simple text message',
107
+ cache_control: { type: 'ephemeral' }
108
+ });
109
+ });
110
+ it('should not modify original messages', () => {
111
+ const originalMessages = [
112
+ {
113
+ role: 'user',
114
+ content: [
115
+ { type: 'tool_result', tool_use_id: 'tool1', content: 'result1' }
116
+ ]
117
+ }
118
+ ];
119
+ (0, anthropic_language_model_1.addCacheControlToLastMessage)(originalMessages);
120
+ (0, chai_1.expect)(originalMessages[0].content[0]).to.not.have.property('cache_control');
121
+ });
122
+ });
46
123
  });
47
124
  //# sourceMappingURL=anthropic-language-model.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"anthropic-language-model.spec.js","sourceRoot":"","sources":["../../src/node/anthropic-language-model.spec.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;AAEhF,+BAA8B;AAC9B,yEAAgF;AAEhF,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAE5B,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QACzB,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;YAC5D,MAAM,KAAK,GAAG,IAAI,yCAAc,CAC5B,SAAS,EACT,wBAAwB,EACxB;gBACI,MAAM,EAAE,OAAO;aAClB,EACD,IAAI,EACJ,IAAI,EACJ,GAAG,EAAE,CAAC,cAAc,EACpB,6CAAkB,CACrB,CAAC;YAEF,IAAA,aAAM,EAAC,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;YAClD,MAAM,gBAAgB,GAAG,CAAC,CAAC;YAC3B,MAAM,KAAK,GAAG,IAAI,yCAAc,CAC5B,SAAS,EACT,wBAAwB,EACxB;gBACI,MAAM,EAAE,OAAO;aAClB,EACD,IAAI,EACJ,IAAI,EACJ,GAAG,EAAE,CAAC,cAAc,EACpB,6CAAkB,EAClB,gBAAgB,CACnB,CAAC;YAEF,IAAA,aAAM,EAAC,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;YACxD,MAAM,KAAK,GAAG,IAAI,yCAAc,CAC5B,SAAS,EACT,wBAAwB,EACxB;gBACI,MAAM,EAAE,OAAO;aAClB,EACD,IAAI,EACJ,IAAI,EACJ,GAAG,EAAE,CAAC,cAAc,EACpB,6CAAkB,EAClB,CAAC,CACJ,CAAC;YAEF,IAAA,aAAM,EAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACrC,IAAA,aAAM,EAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;YACvD,IAAA,aAAM,EAAC,KAAK,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YACzC,IAAA,aAAM,EAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,6CAAkB,CAAC,CAAC;YACrD,IAAA,aAAM,EAAC,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"anthropic-language-model.spec.js","sourceRoot":"","sources":["../../src/node/anthropic-language-model.spec.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;AAEhF,+BAA8B;AAC9B,yEAA8G;AAE9G,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAE5B,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QACzB,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;YAC5D,MAAM,KAAK,GAAG,IAAI,yCAAc,CAC5B,SAAS,EACT,wBAAwB,EACxB;gBACI,MAAM,EAAE,OAAO;aAClB,EACD,IAAI,EACJ,IAAI,EACJ,GAAG,EAAE,CAAC,cAAc,EACpB,6CAAkB,CACrB,CAAC;YAEF,IAAA,aAAM,EAAC,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;YAClD,MAAM,gBAAgB,GAAG,CAAC,CAAC;YAC3B,MAAM,KAAK,GAAG,IAAI,yCAAc,CAC5B,SAAS,EACT,wBAAwB,EACxB;gBACI,MAAM,EAAE,OAAO;aAClB,EACD,IAAI,EACJ,IAAI,EACJ,GAAG,EAAE,CAAC,cAAc,EACpB,6CAAkB,EAClB,gBAAgB,CACnB,CAAC;YAEF,IAAA,aAAM,EAAC,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;YACxD,MAAM,KAAK,GAAG,IAAI,yCAAc,CAC5B,SAAS,EACT,wBAAwB,EACxB;gBACI,MAAM,EAAE,OAAO;aAClB,EACD,IAAI,EACJ,IAAI,EACJ,GAAG,EAAE,CAAC,cAAc,EACpB,6CAAkB,EAClB,CAAC,CACJ,CAAC;YAEF,IAAA,aAAM,EAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACrC,IAAA,aAAM,EAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;YACvD,IAAA,aAAM,EAAC,KAAK,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YACzC,IAAA,aAAM,EAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,6CAAkB,CAAC,CAAC;YACrD,IAAA,aAAM,EAAC,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;QAC1C,EAAE,CAAC,qFAAqF,EAAE,GAAG,EAAE;YAC3F,MAAM,QAAQ,GAAG;gBACb;oBACI,IAAI,EAAE,MAAe;oBACrB,OAAO,EAAE;wBACL,EAAE,IAAI,EAAE,aAAsB,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE;wBAC1E,EAAE,IAAI,EAAE,aAAsB,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE;wBAC1E,EAAE,IAAI,EAAE,aAAsB,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE;qBAC7E;iBACJ;aACJ,CAAC;YAEF,MAAM,MAAM,GAAG,IAAA,uDAA4B,EAAC,QAAQ,CAAC,CAAC;YAEtD,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACnC,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC7D,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;YAC9G,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;YAC9G,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;gBACvC,IAAI,EAAE,aAAa;gBACnB,WAAW,EAAE,OAAO;gBACpB,OAAO,EAAE,SAAS;gBAClB,aAAa,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;aACvC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sEAAsE,EAAE,GAAG,EAAE;YAC5E,MAAM,QAAQ,GAAG;gBACb;oBACI,IAAI,EAAE,WAAoB;oBAC1B,OAAO,EAAE;wBACL,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,WAAW,EAAE;wBAC5C,EAAE,IAAI,EAAE,UAAmB,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE;wBACtE,EAAE,IAAI,EAAE,UAAmB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,SAAS,EAAE,WAAW,EAAE;qBACtF;iBACJ;aACJ,CAAC;YAEF,MAAM,MAAM,GAAG,IAAA,uDAA4B,EAAC,QAAQ,CAAC,CAAC;YAEtD,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACnC,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC7D,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;YAChF,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;gBACvC,IAAI,EAAE,UAAU;gBAChB,EAAE,EAAE,OAAO;gBACX,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,EAAE;gBACT,aAAa,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;aACvC,CAAC,CAAC;YACH,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,kBAAkB,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,CAAC;QAC3H,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;YACnE,MAAM,QAAQ,GAAG;gBACb;oBACI,IAAI,EAAE,MAAe;oBACrB,OAAO,EAAE,qBAAqB;iBACjC;aACJ,CAAC;YAEF,MAAM,MAAM,GAAG,IAAA,uDAA4B,EAAC,QAAQ,CAAC,CAAC;YAEtD,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACnC,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC7D,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;gBACvC,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,qBAAqB;gBAC3B,aAAa,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;aACvC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;YAC3C,MAAM,gBAAgB,GAAG;gBACrB;oBACI,IAAI,EAAE,MAAe;oBACrB,OAAO,EAAE;wBACL,EAAE,IAAI,EAAE,aAAsB,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE;qBAC7E;iBACJ;aACJ,CAAC;YAEF,IAAA,uDAA4B,EAAC,gBAAgB,CAAC,CAAC;YAE/C,IAAA,aAAM,EAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QACjF,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@theia/ai-anthropic",
3
- "version": "1.66.0-next.0+008c83404",
3
+ "version": "1.66.0-next.27+a9334fd8e",
4
4
  "description": "Theia - Anthropic Integration",
5
5
  "dependencies": {
6
6
  "@anthropic-ai/sdk": "^0.52.0",
7
- "@theia/ai-core": "1.66.0-next.0+008c83404",
8
- "@theia/core": "1.66.0-next.0+008c83404"
7
+ "@theia/ai-core": "1.66.0-next.27+a9334fd8e",
8
+ "@theia/core": "1.66.0-next.27+a9334fd8e"
9
9
  },
10
10
  "publishConfig": {
11
11
  "access": "public"
@@ -46,5 +46,5 @@
46
46
  "nyc": {
47
47
  "extends": "../../configs/nyc.json"
48
48
  },
49
- "gitHead": "008c8340465f7e42298839881d814863bef0b039"
49
+ "gitHead": "a9334fd8e3fa0dfd9beccf1c2f0fe15c6c2c071d"
50
50
  }
@@ -15,7 +15,7 @@
15
15
  // *****************************************************************************
16
16
 
17
17
  import { expect } from 'chai';
18
- import { AnthropicModel, DEFAULT_MAX_TOKENS } from './anthropic-language-model';
18
+ import { AnthropicModel, DEFAULT_MAX_TOKENS, addCacheControlToLastMessage } from './anthropic-language-model';
19
19
 
20
20
  describe('AnthropicModel', () => {
21
21
 
@@ -75,4 +75,93 @@ describe('AnthropicModel', () => {
75
75
  expect(model.maxRetries).to.equal(5);
76
76
  });
77
77
  });
78
+
79
+ describe('addCacheControlToLastMessage', () => {
80
+ it('should preserve all content blocks when adding cache control to parallel tool calls', () => {
81
+ const messages = [
82
+ {
83
+ role: 'user' as const,
84
+ content: [
85
+ { type: 'tool_result' as const, tool_use_id: 'tool1', content: 'result1' },
86
+ { type: 'tool_result' as const, tool_use_id: 'tool2', content: 'result2' },
87
+ { type: 'tool_result' as const, tool_use_id: 'tool3', content: 'result3' }
88
+ ]
89
+ }
90
+ ];
91
+
92
+ const result = addCacheControlToLastMessage(messages);
93
+
94
+ expect(result).to.have.lengthOf(1);
95
+ expect(result[0].content).to.be.an('array').with.lengthOf(3);
96
+ expect(result[0].content[0]).to.deep.equal({ type: 'tool_result', tool_use_id: 'tool1', content: 'result1' });
97
+ expect(result[0].content[1]).to.deep.equal({ type: 'tool_result', tool_use_id: 'tool2', content: 'result2' });
98
+ expect(result[0].content[2]).to.deep.equal({
99
+ type: 'tool_result',
100
+ tool_use_id: 'tool3',
101
+ content: 'result3',
102
+ cache_control: { type: 'ephemeral' }
103
+ });
104
+ });
105
+
106
+ it('should add cache control to last non-thinking block in mixed content', () => {
107
+ const messages = [
108
+ {
109
+ role: 'assistant' as const,
110
+ content: [
111
+ { type: 'text' as const, text: 'Some text' },
112
+ { type: 'tool_use' as const, id: 'tool1', name: 'getTool', input: {} },
113
+ { type: 'thinking' as const, thinking: 'thinking content', signature: 'signature' }
114
+ ]
115
+ }
116
+ ];
117
+
118
+ const result = addCacheControlToLastMessage(messages);
119
+
120
+ expect(result).to.have.lengthOf(1);
121
+ expect(result[0].content).to.be.an('array').with.lengthOf(3);
122
+ expect(result[0].content[0]).to.deep.equal({ type: 'text', text: 'Some text' });
123
+ expect(result[0].content[1]).to.deep.equal({
124
+ type: 'tool_use',
125
+ id: 'tool1',
126
+ name: 'getTool',
127
+ input: {},
128
+ cache_control: { type: 'ephemeral' }
129
+ });
130
+ expect(result[0].content[2]).to.deep.equal({ type: 'thinking', thinking: 'thinking content', signature: 'signature' });
131
+ });
132
+
133
+ it('should handle string content by converting to content block', () => {
134
+ const messages = [
135
+ {
136
+ role: 'user' as const,
137
+ content: 'Simple text message'
138
+ }
139
+ ];
140
+
141
+ const result = addCacheControlToLastMessage(messages);
142
+
143
+ expect(result).to.have.lengthOf(1);
144
+ expect(result[0].content).to.be.an('array').with.lengthOf(1);
145
+ expect(result[0].content[0]).to.deep.equal({
146
+ type: 'text',
147
+ text: 'Simple text message',
148
+ cache_control: { type: 'ephemeral' }
149
+ });
150
+ });
151
+
152
+ it('should not modify original messages', () => {
153
+ const originalMessages = [
154
+ {
155
+ role: 'user' as const,
156
+ content: [
157
+ { type: 'tool_result' as const, tool_use_id: 'tool1', content: 'result1' }
158
+ ]
159
+ }
160
+ ];
161
+
162
+ addCacheControlToLastMessage(originalMessages);
163
+
164
+ expect(originalMessages[0].content[0]).to.not.have.property('cache_control');
165
+ });
166
+ });
78
167
  });
@@ -119,24 +119,31 @@ function transformToAnthropicParams(
119
119
  * @returns A new messages array with the last message adapted to include cache control. If no cache control can be added, the original messages are returned.
120
120
  * In any case, the original messages are not modified
121
121
  */
122
- function addCacheControlToLastMessage(messages: Anthropic.Messages.MessageParam[]): Anthropic.Messages.MessageParam[] {
122
+ export function addCacheControlToLastMessage(messages: Anthropic.Messages.MessageParam[]): Anthropic.Messages.MessageParam[] {
123
123
  const clonedMessages = [...messages];
124
124
  const latestMessage = clonedMessages.pop();
125
125
  if (latestMessage) {
126
- let content: NonThinkingParam | undefined = undefined;
127
126
  if (typeof latestMessage.content === 'string') {
128
- content = { type: 'text', text: latestMessage.content };
127
+ // Wrap the string content into a content block with cache control
128
+ const cachedContent: NonThinkingParam = {
129
+ type: 'text',
130
+ text: latestMessage.content,
131
+ cache_control: { type: 'ephemeral' }
132
+ };
133
+ return [...clonedMessages, { ...latestMessage, content: [cachedContent] }];
129
134
  } else if (Array.isArray(latestMessage.content)) {
130
- // we can't set cache control on thinking messages, so we only set it on the last non-thinking block
131
- const filteredContent = latestMessage.content.filter(isNonThinkingParam);
132
- if (filteredContent.length) {
133
- content = filteredContent[filteredContent.length - 1];
135
+ // Update the last non-thinking content block to include cache control
136
+ const updatedContent = [...latestMessage.content];
137
+ for (let i = updatedContent.length - 1; i >= 0; i--) {
138
+ if (isNonThinkingParam(updatedContent[i])) {
139
+ updatedContent[i] = {
140
+ ...updatedContent[i],
141
+ cache_control: { type: 'ephemeral' }
142
+ } as NonThinkingParam;
143
+ return [...clonedMessages, { ...latestMessage, content: updatedContent }];
144
+ }
134
145
  }
135
146
  }
136
- if (content) {
137
- const cachedContent: NonThinkingParam = { ...content, cache_control: { type: 'ephemeral' } };
138
- return [...clonedMessages, { ...latestMessage, content: [cachedContent] }];
139
- }
140
147
  }
141
148
  return messages;
142
149
  }