@theia/ai-chat 1.46.0-next.241

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.
Files changed (122) hide show
  1. package/README.md +31 -0
  2. package/lib/browser/ai-chat-frontend-module.d.ts +4 -0
  3. package/lib/browser/ai-chat-frontend-module.d.ts.map +1 -0
  4. package/lib/browser/ai-chat-frontend-module.js +79 -0
  5. package/lib/browser/ai-chat-frontend-module.js.map +1 -0
  6. package/lib/browser/ai-chat-preferences.d.ts +4 -0
  7. package/lib/browser/ai-chat-preferences.d.ts.map +1 -0
  8. package/lib/browser/ai-chat-preferences.js +32 -0
  9. package/lib/browser/ai-chat-preferences.js.map +1 -0
  10. package/lib/browser/custom-agent-factory.d.ts +4 -0
  11. package/lib/browser/custom-agent-factory.d.ts.map +1 -0
  12. package/lib/browser/custom-agent-factory.js +20 -0
  13. package/lib/browser/custom-agent-factory.js.map +1 -0
  14. package/lib/browser/custom-agent-frontend-application-contribution.d.ts +13 -0
  15. package/lib/browser/custom-agent-frontend-application-contribution.d.ts.map +1 -0
  16. package/lib/browser/custom-agent-frontend-application-contribution.js +82 -0
  17. package/lib/browser/custom-agent-frontend-application-contribution.js.map +1 -0
  18. package/lib/browser/frontend-chat-service.d.ts +8 -0
  19. package/lib/browser/frontend-chat-service.d.ts.map +1 -0
  20. package/lib/browser/frontend-chat-service.js +67 -0
  21. package/lib/browser/frontend-chat-service.js.map +1 -0
  22. package/lib/common/chat-agent-service.d.ts +45 -0
  23. package/lib/common/chat-agent-service.d.ts.map +1 -0
  24. package/lib/common/chat-agent-service.js +78 -0
  25. package/lib/common/chat-agent-service.js.map +1 -0
  26. package/lib/common/chat-agents-variable-contribution.d.ts +17 -0
  27. package/lib/common/chat-agents-variable-contribution.d.ts.map +1 -0
  28. package/lib/common/chat-agents-variable-contribution.js +51 -0
  29. package/lib/common/chat-agents-variable-contribution.js.map +1 -0
  30. package/lib/common/chat-agents.d.ts +108 -0
  31. package/lib/common/chat-agents.d.ts.map +1 -0
  32. package/lib/common/chat-agents.js +321 -0
  33. package/lib/common/chat-agents.js.map +1 -0
  34. package/lib/common/chat-history-entry.d.ts +7 -0
  35. package/lib/common/chat-history-entry.d.ts.map +1 -0
  36. package/lib/common/chat-history-entry.js +42 -0
  37. package/lib/common/chat-history-entry.js.map +1 -0
  38. package/lib/common/chat-model-util.d.ts +7 -0
  39. package/lib/common/chat-model-util.d.ts.map +1 -0
  40. package/lib/common/chat-model-util.js +50 -0
  41. package/lib/common/chat-model-util.js.map +1 -0
  42. package/lib/common/chat-model.d.ts +393 -0
  43. package/lib/common/chat-model.d.ts.map +1 -0
  44. package/lib/common/chat-model.js +612 -0
  45. package/lib/common/chat-model.js.map +1 -0
  46. package/lib/common/chat-request-parser.d.ts +20 -0
  47. package/lib/common/chat-request-parser.d.ts.map +1 -0
  48. package/lib/common/chat-request-parser.js +158 -0
  49. package/lib/common/chat-request-parser.js.map +1 -0
  50. package/lib/common/chat-request-parser.spec.d.ts +2 -0
  51. package/lib/common/chat-request-parser.spec.d.ts.map +1 -0
  52. package/lib/common/chat-request-parser.spec.js +108 -0
  53. package/lib/common/chat-request-parser.spec.js.map +1 -0
  54. package/lib/common/chat-service.d.ts +72 -0
  55. package/lib/common/chat-service.d.ts.map +1 -0
  56. package/lib/common/chat-service.js +170 -0
  57. package/lib/common/chat-service.js.map +1 -0
  58. package/lib/common/command-chat-agents.d.ts +33 -0
  59. package/lib/common/command-chat-agents.d.ts.map +1 -0
  60. package/lib/common/command-chat-agents.js +329 -0
  61. package/lib/common/command-chat-agents.js.map +1 -0
  62. package/lib/common/custom-chat-agent.d.ts +14 -0
  63. package/lib/common/custom-chat-agent.d.ts.map +1 -0
  64. package/lib/common/custom-chat-agent.js +43 -0
  65. package/lib/common/custom-chat-agent.js.map +1 -0
  66. package/lib/common/index.d.ts +12 -0
  67. package/lib/common/index.d.ts.map +1 -0
  68. package/lib/common/index.js +30 -0
  69. package/lib/common/index.js.map +1 -0
  70. package/lib/common/o1-chat-agent.d.ts +13 -0
  71. package/lib/common/o1-chat-agent.d.ts.map +1 -0
  72. package/lib/common/o1-chat-agent.js +45 -0
  73. package/lib/common/o1-chat-agent.js.map +1 -0
  74. package/lib/common/orchestrator-chat-agent.d.ts +22 -0
  75. package/lib/common/orchestrator-chat-agent.d.ts.map +1 -0
  76. package/lib/common/orchestrator-chat-agent.js +167 -0
  77. package/lib/common/orchestrator-chat-agent.js.map +1 -0
  78. package/lib/common/parse-contents.d.ts +11 -0
  79. package/lib/common/parse-contents.d.ts.map +1 -0
  80. package/lib/common/parse-contents.js +67 -0
  81. package/lib/common/parse-contents.js.map +1 -0
  82. package/lib/common/parse-contents.spec.d.ts +9 -0
  83. package/lib/common/parse-contents.spec.d.ts.map +1 -0
  84. package/lib/common/parse-contents.spec.js +134 -0
  85. package/lib/common/parse-contents.spec.js.map +1 -0
  86. package/lib/common/parsed-chat-request.d.ts +66 -0
  87. package/lib/common/parsed-chat-request.d.ts.map +1 -0
  88. package/lib/common/parsed-chat-request.js +83 -0
  89. package/lib/common/parsed-chat-request.js.map +1 -0
  90. package/lib/common/response-content-matcher.d.ts +63 -0
  91. package/lib/common/response-content-matcher.d.ts.map +1 -0
  92. package/lib/common/response-content-matcher.js +86 -0
  93. package/lib/common/response-content-matcher.js.map +1 -0
  94. package/lib/common/universal-chat-agent.d.ts +16 -0
  95. package/lib/common/universal-chat-agent.d.ts.map +1 -0
  96. package/lib/common/universal-chat-agent.js +109 -0
  97. package/lib/common/universal-chat-agent.js.map +1 -0
  98. package/package.json +54 -0
  99. package/src/browser/ai-chat-frontend-module.ts +98 -0
  100. package/src/browser/ai-chat-preferences.ts +32 -0
  101. package/src/browser/custom-agent-factory.ts +20 -0
  102. package/src/browser/custom-agent-frontend-application-contribution.ts +73 -0
  103. package/src/browser/frontend-chat-service.ts +66 -0
  104. package/src/common/chat-agent-service.ts +100 -0
  105. package/src/common/chat-agents-variable-contribution.ts +81 -0
  106. package/src/common/chat-agents.ts +392 -0
  107. package/src/common/chat-history-entry.ts +47 -0
  108. package/src/common/chat-model-util.ts +44 -0
  109. package/src/common/chat-model.ts +889 -0
  110. package/src/common/chat-request-parser.spec.ts +120 -0
  111. package/src/common/chat-request-parser.ts +220 -0
  112. package/src/common/chat-service.ts +236 -0
  113. package/src/common/command-chat-agents.ts +354 -0
  114. package/src/common/custom-chat-agent.ts +44 -0
  115. package/src/common/index.ts +26 -0
  116. package/src/common/o1-chat-agent.ts +51 -0
  117. package/src/common/orchestrator-chat-agent.ts +179 -0
  118. package/src/common/parse-contents.spec.ts +144 -0
  119. package/src/common/parse-contents.ts +93 -0
  120. package/src/common/parsed-chat-request.ts +112 -0
  121. package/src/common/response-content-matcher.ts +103 -0
  122. package/src/common/universal-chat-agent.ts +117 -0
@@ -0,0 +1,612 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2024 EclipseSource GmbH.
4
+ //
5
+ // This program and the accompanying materials are made available under the
6
+ // terms of the Eclipse Public License v. 2.0 which is available at
7
+ // http://www.eclipse.org/legal/epl-2.0.
8
+ //
9
+ // This Source Code may also be made available under the following Secondary
10
+ // Licenses when the conditions for such availability set forth in the Eclipse
11
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
+ // with the GNU Classpath Exception which is available at
13
+ // https://www.gnu.org/software/classpath/license.html.
14
+ //
15
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
+ // *****************************************************************************
17
+ /*---------------------------------------------------------------------------------------------
18
+ * Copyright (c) Microsoft Corporation. All rights reserved.
19
+ * Licensed under the MIT License. See License.txt in the project root for license information.
20
+ *--------------------------------------------------------------------------------------------*/
21
+ // Partially copied from https://github.com/microsoft/vscode/blob/a2cab7255c0df424027be05d58e1b7b941f4ea60/src/vs/workbench/contrib/chat/common/chatModel.ts
22
+ Object.defineProperty(exports, "__esModule", { value: true });
23
+ exports.ErrorChatResponseModelImpl = exports.QuestionResponseContentImpl = exports.HorizontalLayoutChatResponseContentImpl = exports.CommandChatResponseContentImpl = exports.COMMAND_CHAT_RESPONSE_COMMAND = exports.ToolCallChatResponseContentImpl = exports.CodeChatResponseContentImpl = exports.InformationalChatResponseContentImpl = exports.MarkdownChatResponseContentImpl = exports.TextChatResponseContentImpl = exports.ErrorChatResponseContentImpl = exports.ChatRequestModelImpl = exports.ChatModelImpl = exports.QuestionResponseContent = exports.ErrorChatResponseContent = exports.ToolCallChatResponseContent = exports.HorizontalLayoutChatResponseContent = exports.CodeChatResponseContent = exports.CommandChatResponseContent = exports.InformationalChatResponseContent = exports.MarkdownChatResponseContent = exports.TextChatResponseContent = exports.Location = exports.ChatResponseContent = void 0;
24
+ const core_1 = require("@theia/core");
25
+ const markdown_rendering_1 = require("@theia/core/lib/common/markdown-rendering");
26
+ const vscode_languageserver_protocol_1 = require("@theia/core/shared/vscode-languageserver-protocol");
27
+ const chat_agents_1 = require("./chat-agents");
28
+ var ChatResponseContent;
29
+ (function (ChatResponseContent) {
30
+ function is(obj) {
31
+ return !!(obj &&
32
+ typeof obj === 'object' &&
33
+ 'kind' in obj &&
34
+ typeof obj.kind === 'string');
35
+ }
36
+ ChatResponseContent.is = is;
37
+ function hasAsString(obj) {
38
+ return typeof obj.asString === 'function';
39
+ }
40
+ ChatResponseContent.hasAsString = hasAsString;
41
+ function hasMerge(obj) {
42
+ return typeof obj.merge === 'function';
43
+ }
44
+ ChatResponseContent.hasMerge = hasMerge;
45
+ })(ChatResponseContent || (exports.ChatResponseContent = ChatResponseContent = {}));
46
+ var Location;
47
+ (function (Location) {
48
+ function is(obj) {
49
+ return !!obj && typeof obj === 'object' &&
50
+ 'uri' in obj && obj.uri instanceof core_1.URI &&
51
+ 'position' in obj && vscode_languageserver_protocol_1.Position.is(obj.position);
52
+ }
53
+ Location.is = is;
54
+ })(Location || (exports.Location = Location = {}));
55
+ var TextChatResponseContent;
56
+ (function (TextChatResponseContent) {
57
+ function is(obj) {
58
+ return (ChatResponseContent.is(obj) &&
59
+ obj.kind === 'text' &&
60
+ 'content' in obj &&
61
+ typeof obj.content === 'string');
62
+ }
63
+ TextChatResponseContent.is = is;
64
+ })(TextChatResponseContent || (exports.TextChatResponseContent = TextChatResponseContent = {}));
65
+ var MarkdownChatResponseContent;
66
+ (function (MarkdownChatResponseContent) {
67
+ function is(obj) {
68
+ return (ChatResponseContent.is(obj) &&
69
+ obj.kind === 'markdownContent' &&
70
+ 'content' in obj &&
71
+ markdown_rendering_1.MarkdownString.is(obj.content));
72
+ }
73
+ MarkdownChatResponseContent.is = is;
74
+ })(MarkdownChatResponseContent || (exports.MarkdownChatResponseContent = MarkdownChatResponseContent = {}));
75
+ var InformationalChatResponseContent;
76
+ (function (InformationalChatResponseContent) {
77
+ function is(obj) {
78
+ return (ChatResponseContent.is(obj) &&
79
+ obj.kind === 'informational' &&
80
+ 'content' in obj &&
81
+ markdown_rendering_1.MarkdownString.is(obj.content));
82
+ }
83
+ InformationalChatResponseContent.is = is;
84
+ })(InformationalChatResponseContent || (exports.InformationalChatResponseContent = InformationalChatResponseContent = {}));
85
+ var CommandChatResponseContent;
86
+ (function (CommandChatResponseContent) {
87
+ function is(obj) {
88
+ return (ChatResponseContent.is(obj) &&
89
+ obj.kind === 'command' &&
90
+ 'command' in obj &&
91
+ core_1.Command.is(obj.command));
92
+ }
93
+ CommandChatResponseContent.is = is;
94
+ })(CommandChatResponseContent || (exports.CommandChatResponseContent = CommandChatResponseContent = {}));
95
+ var CodeChatResponseContent;
96
+ (function (CodeChatResponseContent) {
97
+ function is(obj) {
98
+ return (ChatResponseContent.is(obj) &&
99
+ obj.kind === 'code' &&
100
+ 'code' in obj &&
101
+ typeof obj.code === 'string');
102
+ }
103
+ CodeChatResponseContent.is = is;
104
+ })(CodeChatResponseContent || (exports.CodeChatResponseContent = CodeChatResponseContent = {}));
105
+ var HorizontalLayoutChatResponseContent;
106
+ (function (HorizontalLayoutChatResponseContent) {
107
+ function is(obj) {
108
+ return (ChatResponseContent.is(obj) &&
109
+ obj.kind === 'horizontal' &&
110
+ 'content' in obj &&
111
+ Array.isArray(obj.content) &&
112
+ obj.content.every(ChatResponseContent.is));
113
+ }
114
+ HorizontalLayoutChatResponseContent.is = is;
115
+ })(HorizontalLayoutChatResponseContent || (exports.HorizontalLayoutChatResponseContent = HorizontalLayoutChatResponseContent = {}));
116
+ var ToolCallChatResponseContent;
117
+ (function (ToolCallChatResponseContent) {
118
+ function is(obj) {
119
+ return ChatResponseContent.is(obj) && obj.kind === 'toolCall';
120
+ }
121
+ ToolCallChatResponseContent.is = is;
122
+ })(ToolCallChatResponseContent || (exports.ToolCallChatResponseContent = ToolCallChatResponseContent = {}));
123
+ var ErrorChatResponseContent;
124
+ (function (ErrorChatResponseContent) {
125
+ function is(obj) {
126
+ return (ChatResponseContent.is(obj) &&
127
+ obj.kind === 'error' &&
128
+ 'error' in obj &&
129
+ obj.error instanceof Error);
130
+ }
131
+ ErrorChatResponseContent.is = is;
132
+ })(ErrorChatResponseContent || (exports.ErrorChatResponseContent = ErrorChatResponseContent = {}));
133
+ var QuestionResponseContent;
134
+ (function (QuestionResponseContent) {
135
+ function is(obj) {
136
+ return (ChatResponseContent.is(obj) &&
137
+ obj.kind === 'question' &&
138
+ 'question' in obj &&
139
+ typeof obj.question === 'string' &&
140
+ 'options' in obj &&
141
+ Array.isArray(obj.options) &&
142
+ obj.options.every(option => typeof option === 'object' &&
143
+ option && 'text' in option &&
144
+ typeof option.text === 'string' &&
145
+ ('value' in option ? typeof option.value === 'string' || typeof option.value === 'undefined' : true)) &&
146
+ 'handler' in obj &&
147
+ typeof obj.handler === 'function' &&
148
+ 'request' in obj &&
149
+ obj.request instanceof ChatRequestModelImpl);
150
+ }
151
+ QuestionResponseContent.is = is;
152
+ })(QuestionResponseContent || (exports.QuestionResponseContent = QuestionResponseContent = {}));
153
+ /**********************
154
+ * Implementations
155
+ **********************/
156
+ class ChatModelImpl {
157
+ constructor(location = chat_agents_1.ChatAgentLocation.Panel) {
158
+ this.location = location;
159
+ this._onDidChangeEmitter = new core_1.Emitter();
160
+ this.onDidChange = this._onDidChangeEmitter.event;
161
+ // TODO accept serialized data as a parameter to restore a previously saved ChatModel
162
+ this._requests = [];
163
+ this._id = (0, core_1.generateUuid)();
164
+ }
165
+ getRequests() {
166
+ return this._requests;
167
+ }
168
+ get id() {
169
+ return this._id;
170
+ }
171
+ addRequest(parsedChatRequest, agentId) {
172
+ const requestModel = new ChatRequestModelImpl(this, parsedChatRequest, agentId);
173
+ this._requests.push(requestModel);
174
+ this._onDidChangeEmitter.fire({
175
+ kind: 'addRequest',
176
+ request: requestModel,
177
+ });
178
+ return requestModel;
179
+ }
180
+ isEmpty() {
181
+ return this._requests.length === 0;
182
+ }
183
+ }
184
+ exports.ChatModelImpl = ChatModelImpl;
185
+ class ChatRequestModelImpl {
186
+ constructor(session, message, agentId, data = {}) {
187
+ this.message = message;
188
+ // TODO accept serialized data as a parameter to restore a previously saved ChatRequestModel
189
+ this._request = message.request;
190
+ this._id = (0, core_1.generateUuid)();
191
+ this._session = session;
192
+ this._response = new ChatResponseModelImpl(this._id, agentId);
193
+ this._agentId = agentId;
194
+ this._data = data;
195
+ }
196
+ get data() {
197
+ return this._data;
198
+ }
199
+ addData(key, value) {
200
+ this._data[key] = value;
201
+ }
202
+ getDataByKey(key) {
203
+ return this._data[key];
204
+ }
205
+ get id() {
206
+ return this._id;
207
+ }
208
+ get session() {
209
+ return this._session;
210
+ }
211
+ get request() {
212
+ return this._request;
213
+ }
214
+ get response() {
215
+ return this._response;
216
+ }
217
+ get agentId() {
218
+ return this._agentId;
219
+ }
220
+ }
221
+ exports.ChatRequestModelImpl = ChatRequestModelImpl;
222
+ class ErrorChatResponseContentImpl {
223
+ constructor(error) {
224
+ this.kind = 'error';
225
+ this._error = error;
226
+ }
227
+ get error() {
228
+ return this._error;
229
+ }
230
+ asString() {
231
+ return undefined;
232
+ }
233
+ }
234
+ exports.ErrorChatResponseContentImpl = ErrorChatResponseContentImpl;
235
+ class TextChatResponseContentImpl {
236
+ constructor(content) {
237
+ this.kind = 'text';
238
+ this._content = content;
239
+ }
240
+ get content() {
241
+ return this._content;
242
+ }
243
+ asString() {
244
+ return this._content;
245
+ }
246
+ merge(nextChatResponseContent) {
247
+ this._content += nextChatResponseContent.content;
248
+ return true;
249
+ }
250
+ }
251
+ exports.TextChatResponseContentImpl = TextChatResponseContentImpl;
252
+ class MarkdownChatResponseContentImpl {
253
+ constructor(content) {
254
+ this.kind = 'markdownContent';
255
+ this._content = new markdown_rendering_1.MarkdownStringImpl();
256
+ this._content.appendMarkdown(content);
257
+ }
258
+ get content() {
259
+ return this._content;
260
+ }
261
+ asString() {
262
+ return this._content.value;
263
+ }
264
+ merge(nextChatResponseContent) {
265
+ this._content.appendMarkdown(nextChatResponseContent.content.value);
266
+ return true;
267
+ }
268
+ }
269
+ exports.MarkdownChatResponseContentImpl = MarkdownChatResponseContentImpl;
270
+ class InformationalChatResponseContentImpl {
271
+ constructor(content) {
272
+ this.kind = 'informational';
273
+ this._content = new markdown_rendering_1.MarkdownStringImpl(content);
274
+ }
275
+ get content() {
276
+ return this._content;
277
+ }
278
+ asString() {
279
+ return undefined;
280
+ }
281
+ merge(nextChatResponseContent) {
282
+ this._content.appendMarkdown(nextChatResponseContent.content.value);
283
+ return true;
284
+ }
285
+ }
286
+ exports.InformationalChatResponseContentImpl = InformationalChatResponseContentImpl;
287
+ class CodeChatResponseContentImpl {
288
+ constructor(code, language, location) {
289
+ this.kind = 'code';
290
+ this._code = code;
291
+ this._language = language;
292
+ this._location = location;
293
+ }
294
+ get code() {
295
+ return this._code;
296
+ }
297
+ get language() {
298
+ return this._language;
299
+ }
300
+ get location() {
301
+ return this._location;
302
+ }
303
+ asString() {
304
+ var _a;
305
+ return `\`\`\`${(_a = this._language) !== null && _a !== void 0 ? _a : ''}\n${this._code}\n\`\`\``;
306
+ }
307
+ merge(nextChatResponseContent) {
308
+ this._code += `${nextChatResponseContent.code}`;
309
+ return true;
310
+ }
311
+ }
312
+ exports.CodeChatResponseContentImpl = CodeChatResponseContentImpl;
313
+ class ToolCallChatResponseContentImpl {
314
+ constructor(id, name, arg_string, finished, result) {
315
+ this.kind = 'toolCall';
316
+ this._id = id;
317
+ this._name = name;
318
+ this._arguments = arg_string;
319
+ this._finished = finished;
320
+ this._result = result;
321
+ }
322
+ get id() {
323
+ return this._id;
324
+ }
325
+ get name() {
326
+ return this._name;
327
+ }
328
+ get arguments() {
329
+ return this._arguments;
330
+ }
331
+ get finished() {
332
+ return this._finished === undefined ? false : this._finished;
333
+ }
334
+ get result() {
335
+ return this._result;
336
+ }
337
+ asString() {
338
+ var _a;
339
+ return `Tool call: ${this._name}(${(_a = this._arguments) !== null && _a !== void 0 ? _a : ''})`;
340
+ }
341
+ merge(nextChatResponseContent) {
342
+ if (nextChatResponseContent.id === this.id) {
343
+ this._finished = nextChatResponseContent.finished;
344
+ this._result = nextChatResponseContent.result;
345
+ return true;
346
+ }
347
+ if (nextChatResponseContent.name !== undefined) {
348
+ return false;
349
+ }
350
+ if (nextChatResponseContent.arguments === undefined) {
351
+ return false;
352
+ }
353
+ this._arguments += `${nextChatResponseContent.arguments}`;
354
+ return true;
355
+ }
356
+ }
357
+ exports.ToolCallChatResponseContentImpl = ToolCallChatResponseContentImpl;
358
+ exports.COMMAND_CHAT_RESPONSE_COMMAND = {
359
+ id: 'ai-chat.command-chat-response.generic'
360
+ };
361
+ class CommandChatResponseContentImpl {
362
+ constructor(command, customCallback, args) {
363
+ this.command = command;
364
+ this.customCallback = customCallback;
365
+ this.args = args;
366
+ this.kind = 'command';
367
+ }
368
+ get arguments() {
369
+ var _a;
370
+ return (_a = this.args) !== null && _a !== void 0 ? _a : [];
371
+ }
372
+ asString() {
373
+ var _a, _b;
374
+ return ((_a = this.command) === null || _a === void 0 ? void 0 : _a.id) || ((_b = this.customCallback) === null || _b === void 0 ? void 0 : _b.label) || 'command';
375
+ }
376
+ }
377
+ exports.CommandChatResponseContentImpl = CommandChatResponseContentImpl;
378
+ class HorizontalLayoutChatResponseContentImpl {
379
+ constructor(content = []) {
380
+ this.kind = 'horizontal';
381
+ this._content = content;
382
+ }
383
+ get content() {
384
+ return this._content;
385
+ }
386
+ asString() {
387
+ return this._content.map(child => child.asString && child.asString()).join(' ');
388
+ }
389
+ merge(nextChatResponseContent) {
390
+ if (HorizontalLayoutChatResponseContent.is(nextChatResponseContent)) {
391
+ this._content.push(...nextChatResponseContent.content);
392
+ }
393
+ else {
394
+ this._content.push(nextChatResponseContent);
395
+ }
396
+ return true;
397
+ }
398
+ }
399
+ exports.HorizontalLayoutChatResponseContentImpl = HorizontalLayoutChatResponseContentImpl;
400
+ /**
401
+ * Default implementation for the QuestionResponseContent.
402
+ */
403
+ class QuestionResponseContentImpl {
404
+ constructor(question, options, request, handler) {
405
+ this.question = question;
406
+ this.options = options;
407
+ this.request = request;
408
+ this.handler = handler;
409
+ this.kind = 'question';
410
+ }
411
+ set selectedOption(option) {
412
+ this._selectedOption = option;
413
+ this.request.response.response.responseContentChanged();
414
+ }
415
+ get selectedOption() {
416
+ return this._selectedOption;
417
+ }
418
+ asString() {
419
+ var _a;
420
+ return `Question: ${this.question}
421
+ ${this.selectedOption ? `Answer: ${(_a = this.selectedOption) === null || _a === void 0 ? void 0 : _a.text}` : 'No answer'}`;
422
+ }
423
+ merge() {
424
+ return false;
425
+ }
426
+ }
427
+ exports.QuestionResponseContentImpl = QuestionResponseContentImpl;
428
+ class ChatResponseImpl {
429
+ constructor() {
430
+ this._onDidChangeEmitter = new core_1.Emitter();
431
+ this.onDidChange = this._onDidChangeEmitter.event;
432
+ // TODO accept serialized data as a parameter to restore a previously saved ChatResponse
433
+ this._content = [];
434
+ }
435
+ get content() {
436
+ return this._content;
437
+ }
438
+ addContents(contents) {
439
+ contents.forEach(c => this.doAddContent(c));
440
+ this._onDidChangeEmitter.fire();
441
+ }
442
+ addContent(nextContent) {
443
+ // TODO: Support more complex merges affecting different content than the last, e.g. via some kind of ProcessorRegistry
444
+ // TODO: Support more of the built-in VS Code behavior, see
445
+ // https://github.com/microsoft/vscode/blob/a2cab7255c0df424027be05d58e1b7b941f4ea60/src/vs/workbench/contrib/chat/common/chatModel.ts#L188-L244
446
+ this.doAddContent(nextContent);
447
+ this._onDidChangeEmitter.fire();
448
+ }
449
+ doAddContent(nextContent) {
450
+ var _a;
451
+ if (ToolCallChatResponseContent.is(nextContent) && nextContent.id !== undefined) {
452
+ const fittingTool = this._content.find(c => ToolCallChatResponseContent.is(c) && c.id === nextContent.id);
453
+ if (fittingTool !== undefined) {
454
+ (_a = fittingTool.merge) === null || _a === void 0 ? void 0 : _a.call(fittingTool, nextContent);
455
+ }
456
+ else {
457
+ this._content.push(nextContent);
458
+ }
459
+ }
460
+ else {
461
+ const lastElement = this._content.length > 0
462
+ ? this._content[this._content.length - 1]
463
+ : undefined;
464
+ if ((lastElement === null || lastElement === void 0 ? void 0 : lastElement.kind) === nextContent.kind && ChatResponseContent.hasMerge(lastElement)) {
465
+ const mergeSuccess = lastElement.merge(nextContent);
466
+ if (!mergeSuccess) {
467
+ this._content.push(nextContent);
468
+ }
469
+ }
470
+ else {
471
+ this._content.push(nextContent);
472
+ }
473
+ }
474
+ this._updateResponseRepresentation();
475
+ }
476
+ responseContentChanged() {
477
+ this._updateResponseRepresentation();
478
+ this._onDidChangeEmitter.fire();
479
+ }
480
+ _updateResponseRepresentation() {
481
+ this._responseRepresentation = this._content
482
+ .map(responseContent => {
483
+ if (ChatResponseContent.hasAsString(responseContent)) {
484
+ return responseContent.asString();
485
+ }
486
+ if (TextChatResponseContent.is(responseContent)) {
487
+ return responseContent.content;
488
+ }
489
+ console.warn('Was not able to map responseContent to a string', responseContent);
490
+ return undefined;
491
+ })
492
+ .filter(text => text !== undefined)
493
+ .join('\n\n');
494
+ }
495
+ asString() {
496
+ return this._responseRepresentation;
497
+ }
498
+ }
499
+ class ChatResponseModelImpl {
500
+ constructor(requestId, agentId) {
501
+ this._onDidChangeEmitter = new core_1.Emitter();
502
+ this.onDidChange = this._onDidChangeEmitter.event;
503
+ // TODO accept serialized data as a parameter to restore a previously saved ChatResponseModel
504
+ this._requestId = requestId;
505
+ this._id = (0, core_1.generateUuid)();
506
+ this._progressMessages = [];
507
+ const response = new ChatResponseImpl();
508
+ response.onDidChange(() => this._onDidChangeEmitter.fire());
509
+ this._response = response;
510
+ this._isComplete = false;
511
+ this._isCanceled = false;
512
+ this._isWaitingForInput = false;
513
+ this._agentId = agentId;
514
+ }
515
+ get id() {
516
+ return this._id;
517
+ }
518
+ get requestId() {
519
+ return this._requestId;
520
+ }
521
+ get progressMessages() {
522
+ return this._progressMessages;
523
+ }
524
+ addProgressMessage(message) {
525
+ var _a, _b, _c;
526
+ const id = (_a = message.id) !== null && _a !== void 0 ? _a : (0, core_1.generateUuid)();
527
+ const existingMessage = this.getProgressMessage(id);
528
+ if (existingMessage) {
529
+ this.updateProgressMessage({ id, ...message });
530
+ return existingMessage;
531
+ }
532
+ const newMessage = {
533
+ kind: 'progressMessage',
534
+ id,
535
+ status: (_b = message.status) !== null && _b !== void 0 ? _b : 'inProgress',
536
+ show: (_c = message.show) !== null && _c !== void 0 ? _c : 'untilFirstContent',
537
+ ...message,
538
+ };
539
+ this._progressMessages.push(newMessage);
540
+ this._onDidChangeEmitter.fire();
541
+ return newMessage;
542
+ }
543
+ getProgressMessage(id) {
544
+ return this._progressMessages.find(message => message.id === id);
545
+ }
546
+ updateProgressMessage(message) {
547
+ const progressMessage = this.getProgressMessage(message.id);
548
+ if (progressMessage) {
549
+ Object.assign(progressMessage, message);
550
+ this._onDidChangeEmitter.fire();
551
+ }
552
+ }
553
+ get response() {
554
+ return this._response;
555
+ }
556
+ get isComplete() {
557
+ return this._isComplete;
558
+ }
559
+ get isCanceled() {
560
+ return this._isCanceled;
561
+ }
562
+ get isWaitingForInput() {
563
+ return this._isWaitingForInput;
564
+ }
565
+ get agentId() {
566
+ return this._agentId;
567
+ }
568
+ overrideAgentId(agentId) {
569
+ this._agentId = agentId;
570
+ }
571
+ complete() {
572
+ this._isComplete = true;
573
+ this._isWaitingForInput = false;
574
+ this._onDidChangeEmitter.fire();
575
+ }
576
+ cancel() {
577
+ this._isComplete = true;
578
+ this._isCanceled = true;
579
+ this._isWaitingForInput = false;
580
+ this._onDidChangeEmitter.fire();
581
+ }
582
+ waitForInput() {
583
+ this._isWaitingForInput = true;
584
+ this._onDidChangeEmitter.fire();
585
+ }
586
+ stopWaitingForInput() {
587
+ this._isWaitingForInput = false;
588
+ this._onDidChangeEmitter.fire();
589
+ }
590
+ error(error) {
591
+ this._isComplete = true;
592
+ this._isCanceled = false;
593
+ this._isWaitingForInput = false;
594
+ this._isError = true;
595
+ this._errorObject = error;
596
+ this._onDidChangeEmitter.fire();
597
+ }
598
+ get errorObject() {
599
+ return this._errorObject;
600
+ }
601
+ get isError() {
602
+ return this._isError;
603
+ }
604
+ }
605
+ class ErrorChatResponseModelImpl extends ChatResponseModelImpl {
606
+ constructor(requestId, error, agentId) {
607
+ super(requestId, agentId);
608
+ this.error(error);
609
+ }
610
+ }
611
+ exports.ErrorChatResponseModelImpl = ErrorChatResponseModelImpl;
612
+ //# sourceMappingURL=chat-model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-model.js","sourceRoot":"","sources":["../../src/common/chat-model.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { ChatAgentService } from './chat-agent-service';
2
+ import { ChatAgentLocation } from './chat-agents';
3
+ import { ChatRequest } from './chat-model';
4
+ import { ParsedChatRequest } from './parsed-chat-request';
5
+ import { AIVariableService, ToolInvocationRegistry } from '@theia/ai-core';
6
+ export declare const ChatRequestParser: unique symbol;
7
+ export interface ChatRequestParser {
8
+ parseChatRequest(request: ChatRequest, location: ChatAgentLocation): ParsedChatRequest;
9
+ }
10
+ export declare class ChatRequestParserImpl {
11
+ private readonly agentService;
12
+ private readonly variableService;
13
+ private readonly toolInvocationRegistry;
14
+ constructor(agentService: ChatAgentService, variableService: AIVariableService, toolInvocationRegistry: ToolInvocationRegistry);
15
+ parseChatRequest(request: ChatRequest, location: ChatAgentLocation): ParsedChatRequest;
16
+ private tryToParseAgent;
17
+ private tryToParseVariable;
18
+ private tryParseFunction;
19
+ }
20
+ //# sourceMappingURL=chat-request-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-request-parser.d.ts","sourceRoot":"","sources":["../../src/common/chat-request-parser.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EASH,iBAAiB,EAEpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAc,iBAAiB,EAAE,sBAAsB,EAAe,MAAM,gBAAgB,CAAC;AAMpG,eAAO,MAAM,iBAAiB,eAA8B,CAAC;AAC7D,MAAM,WAAW,iBAAiB;IAC9B,gBAAgB,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,iBAAiB,GAAG,iBAAiB,CAAC;CAC1F;AAQD,qBACa,qBAAqB;IAEA,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC5B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAC3B,OAAO,CAAC,QAAQ,CAAC,sBAAsB;gBAF5B,YAAY,EAAE,gBAAgB,EAC7B,eAAe,EAAE,iBAAiB,EAC7B,sBAAsB,EAAE,sBAAsB;IAGnG,gBAAgB,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,iBAAiB,GAAG,iBAAiB;IA2EtF,OAAO,CAAC,eAAe;IAiDvB,OAAO,CAAC,kBAAkB;IAiB1B,OAAO,CAAC,gBAAgB;CAgB3B"}