@theia/ai-chat-ui 1.67.0-next.56 → 1.67.0-next.59

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 (161) hide show
  1. package/lib/browser/ai-chat-ui-contribution.d.ts +66 -0
  2. package/lib/browser/ai-chat-ui-contribution.d.ts.map +1 -0
  3. package/lib/browser/ai-chat-ui-contribution.js +587 -0
  4. package/lib/browser/ai-chat-ui-contribution.js.map +1 -0
  5. package/lib/browser/ai-chat-ui-frontend-module.d.ts +5 -0
  6. package/lib/browser/ai-chat-ui-frontend-module.d.ts.map +1 -0
  7. package/lib/browser/ai-chat-ui-frontend-module.js +153 -0
  8. package/lib/browser/ai-chat-ui-frontend-module.js.map +1 -0
  9. package/lib/browser/change-set-actions/change-set-accept-action.d.ts +10 -0
  10. package/lib/browser/change-set-actions/change-set-accept-action.d.ts.map +1 -0
  11. package/lib/browser/change-set-actions/change-set-accept-action.js +47 -0
  12. package/lib/browser/change-set-actions/change-set-accept-action.js.map +1 -0
  13. package/lib/browser/change-set-actions/change-set-action-service.d.ts +31 -0
  14. package/lib/browser/change-set-actions/change-set-action-service.d.ts.map +1 -0
  15. package/lib/browser/change-set-actions/change-set-action-service.js +57 -0
  16. package/lib/browser/change-set-actions/change-set-action-service.js.map +1 -0
  17. package/lib/browser/chat-input-agent-suggestions.d.ts +11 -0
  18. package/lib/browser/chat-input-agent-suggestions.d.ts.map +1 -0
  19. package/lib/browser/chat-input-agent-suggestions.js +76 -0
  20. package/lib/browser/chat-input-agent-suggestions.js.map +1 -0
  21. package/lib/browser/chat-input-history-contribution.d.ts +17 -0
  22. package/lib/browser/chat-input-history-contribution.d.ts.map +1 -0
  23. package/lib/browser/chat-input-history-contribution.js +158 -0
  24. package/lib/browser/chat-input-history-contribution.js.map +1 -0
  25. package/lib/browser/chat-input-history.d.ts +32 -0
  26. package/lib/browser/chat-input-history.d.ts.map +1 -0
  27. package/lib/browser/chat-input-history.js +125 -0
  28. package/lib/browser/chat-input-history.js.map +1 -0
  29. package/lib/browser/chat-input-mode-contribution.d.ts +12 -0
  30. package/lib/browser/chat-input-mode-contribution.d.ts.map +1 -0
  31. package/lib/browser/chat-input-mode-contribution.js +77 -0
  32. package/lib/browser/chat-input-mode-contribution.js.map +1 -0
  33. package/lib/browser/chat-input-widget.d.ts +118 -0
  34. package/lib/browser/chat-input-widget.d.ts.map +1 -0
  35. package/lib/browser/chat-input-widget.js +1034 -0
  36. package/lib/browser/chat-input-widget.js.map +1 -0
  37. package/lib/browser/chat-node-toolbar-action-contribution.d.ts +56 -0
  38. package/lib/browser/chat-node-toolbar-action-contribution.d.ts.map +1 -0
  39. package/lib/browser/chat-node-toolbar-action-contribution.js +92 -0
  40. package/lib/browser/chat-node-toolbar-action-contribution.js.map +1 -0
  41. package/lib/browser/chat-progress-message.d.ts +7 -0
  42. package/lib/browser/chat-progress-message.d.ts.map +1 -0
  43. package/lib/browser/chat-progress-message.js +33 -0
  44. package/lib/browser/chat-progress-message.js.map +1 -0
  45. package/lib/browser/chat-response-part-renderer.d.ts +10 -0
  46. package/lib/browser/chat-response-part-renderer.d.ts.map +1 -0
  47. package/lib/browser/chat-response-part-renderer.js +20 -0
  48. package/lib/browser/chat-response-part-renderer.js.map +1 -0
  49. package/lib/browser/chat-response-renderer/ai-selection-resolver.d.ts +23 -0
  50. package/lib/browser/chat-response-renderer/ai-selection-resolver.d.ts.map +1 -0
  51. package/lib/browser/chat-response-renderer/ai-selection-resolver.js +148 -0
  52. package/lib/browser/chat-response-renderer/ai-selection-resolver.js.map +1 -0
  53. package/lib/browser/chat-response-renderer/code-part-renderer.d.ts +73 -0
  54. package/lib/browser/chat-response-renderer/code-part-renderer.d.ts.map +1 -0
  55. package/lib/browser/chat-response-renderer/code-part-renderer.js +227 -0
  56. package/lib/browser/chat-response-renderer/code-part-renderer.js.map +1 -0
  57. package/lib/browser/chat-response-renderer/command-part-renderer.d.ts +12 -0
  58. package/lib/browser/chat-response-renderer/command-part-renderer.d.ts.map +1 -0
  59. package/lib/browser/chat-response-renderer/command-part-renderer.js +67 -0
  60. package/lib/browser/chat-response-renderer/command-part-renderer.js.map +1 -0
  61. package/lib/browser/chat-response-renderer/delegation-response-renderer.d.ts +14 -0
  62. package/lib/browser/chat-response-renderer/delegation-response-renderer.d.ts.map +1 -0
  63. package/lib/browser/chat-response-renderer/delegation-response-renderer.js +144 -0
  64. package/lib/browser/chat-response-renderer/delegation-response-renderer.js.map +1 -0
  65. package/lib/browser/chat-response-renderer/error-part-renderer.d.ts +9 -0
  66. package/lib/browser/chat-response-renderer/error-part-renderer.d.ts.map +1 -0
  67. package/lib/browser/chat-response-renderer/error-part-renderer.js +40 -0
  68. package/lib/browser/chat-response-renderer/error-part-renderer.js.map +1 -0
  69. package/lib/browser/chat-response-renderer/horizontal-layout-part-renderer.d.ts +12 -0
  70. package/lib/browser/chat-response-renderer/horizontal-layout-part-renderer.d.ts.map +1 -0
  71. package/lib/browser/chat-response-renderer/horizontal-layout-part-renderer.js +54 -0
  72. package/lib/browser/chat-response-renderer/horizontal-layout-part-renderer.js.map +1 -0
  73. package/lib/browser/chat-response-renderer/index.d.ts +13 -0
  74. package/lib/browser/chat-response-renderer/index.d.ts.map +1 -0
  75. package/lib/browser/chat-response-renderer/index.js +31 -0
  76. package/lib/browser/chat-response-renderer/index.js.map +1 -0
  77. package/lib/browser/chat-response-renderer/markdown-part-renderer.d.ts +36 -0
  78. package/lib/browser/chat-response-renderer/markdown-part-renderer.d.ts.map +1 -0
  79. package/lib/browser/chat-response-renderer/markdown-part-renderer.js +129 -0
  80. package/lib/browser/chat-response-renderer/markdown-part-renderer.js.map +1 -0
  81. package/lib/browser/chat-response-renderer/progress-part-renderer.d.ts +9 -0
  82. package/lib/browser/chat-response-renderer/progress-part-renderer.d.ts.map +1 -0
  83. package/lib/browser/chat-response-renderer/progress-part-renderer.js +39 -0
  84. package/lib/browser/chat-response-renderer/progress-part-renderer.js.map +1 -0
  85. package/lib/browser/chat-response-renderer/question-part-renderer.d.ts +10 -0
  86. package/lib/browser/chat-response-renderer/question-part-renderer.d.ts.map +1 -0
  87. package/lib/browser/chat-response-renderer/question-part-renderer.js +49 -0
  88. package/lib/browser/chat-response-renderer/question-part-renderer.js.map +1 -0
  89. package/lib/browser/chat-response-renderer/text-part-renderer.d.ts +9 -0
  90. package/lib/browser/chat-response-renderer/text-part-renderer.d.ts.map +1 -0
  91. package/lib/browser/chat-response-renderer/text-part-renderer.js +43 -0
  92. package/lib/browser/chat-response-renderer/text-part-renderer.js.map +1 -0
  93. package/lib/browser/chat-response-renderer/text-part-renderer.spec.d.ts +2 -0
  94. package/lib/browser/chat-response-renderer/text-part-renderer.spec.d.ts.map +1 -0
  95. package/lib/browser/chat-response-renderer/text-part-renderer.spec.js +46 -0
  96. package/lib/browser/chat-response-renderer/text-part-renderer.spec.js.map +1 -0
  97. package/lib/browser/chat-response-renderer/thinking-part-renderer.d.ts +9 -0
  98. package/lib/browser/chat-response-renderer/thinking-part-renderer.d.ts.map +1 -0
  99. package/lib/browser/chat-response-renderer/thinking-part-renderer.js +42 -0
  100. package/lib/browser/chat-response-renderer/thinking-part-renderer.js.map +1 -0
  101. package/lib/browser/chat-response-renderer/tool-confirmation.d.ts +17 -0
  102. package/lib/browser/chat-response-renderer/tool-confirmation.d.ts.map +1 -0
  103. package/lib/browser/chat-response-renderer/tool-confirmation.js +122 -0
  104. package/lib/browser/chat-response-renderer/tool-confirmation.js.map +1 -0
  105. package/lib/browser/chat-response-renderer/toolcall-part-renderer.d.ts +20 -0
  106. package/lib/browser/chat-response-renderer/toolcall-part-renderer.d.ts.map +1 -0
  107. package/lib/browser/chat-response-renderer/toolcall-part-renderer.js +223 -0
  108. package/lib/browser/chat-response-renderer/toolcall-part-renderer.js.map +1 -0
  109. package/lib/browser/chat-response-renderer/unknown-part-renderer.d.ts +9 -0
  110. package/lib/browser/chat-response-renderer/unknown-part-renderer.d.ts.map +1 -0
  111. package/lib/browser/chat-response-renderer/unknown-part-renderer.js +42 -0
  112. package/lib/browser/chat-response-renderer/unknown-part-renderer.js.map +1 -0
  113. package/lib/browser/chat-tree-view/chat-view-tree-container.d.ts +4 -0
  114. package/lib/browser/chat-tree-view/chat-view-tree-container.d.ts.map +1 -0
  115. package/lib/browser/chat-tree-view/chat-view-tree-container.js +33 -0
  116. package/lib/browser/chat-tree-view/chat-view-tree-container.js.map +1 -0
  117. package/lib/browser/chat-tree-view/chat-view-tree-input-widget.d.ts +38 -0
  118. package/lib/browser/chat-tree-view/chat-view-tree-input-widget.d.ts.map +1 -0
  119. package/lib/browser/chat-tree-view/chat-view-tree-input-widget.js +88 -0
  120. package/lib/browser/chat-tree-view/chat-view-tree-input-widget.js.map +1 -0
  121. package/lib/browser/chat-tree-view/chat-view-tree-widget.d.ts +120 -0
  122. package/lib/browser/chat-tree-view/chat-view-tree-widget.d.ts.map +1 -0
  123. package/lib/browser/chat-tree-view/chat-view-tree-widget.js +654 -0
  124. package/lib/browser/chat-tree-view/chat-view-tree-widget.js.map +1 -0
  125. package/lib/browser/chat-tree-view/index.d.ts +3 -0
  126. package/lib/browser/chat-tree-view/index.d.ts.map +1 -0
  127. package/lib/browser/chat-tree-view/index.js +21 -0
  128. package/lib/browser/chat-tree-view/index.js.map +1 -0
  129. package/lib/browser/chat-tree-view/sub-chat-widget.d.ts +22 -0
  130. package/lib/browser/chat-tree-view/sub-chat-widget.d.ts.map +1 -0
  131. package/lib/browser/chat-tree-view/sub-chat-widget.js +92 -0
  132. package/lib/browser/chat-tree-view/sub-chat-widget.js.map +1 -0
  133. package/lib/browser/chat-view-commands.d.ts +15 -0
  134. package/lib/browser/chat-view-commands.d.ts.map +1 -0
  135. package/lib/browser/chat-view-commands.js +76 -0
  136. package/lib/browser/chat-view-commands.js.map +1 -0
  137. package/lib/browser/chat-view-contribution.d.ts +21 -0
  138. package/lib/browser/chat-view-contribution.d.ts.map +1 -0
  139. package/lib/browser/chat-view-contribution.js +183 -0
  140. package/lib/browser/chat-view-contribution.js.map +1 -0
  141. package/lib/browser/chat-view-language-contribution.d.ts +41 -0
  142. package/lib/browser/chat-view-language-contribution.d.ts.map +1 -0
  143. package/lib/browser/chat-view-language-contribution.js +269 -0
  144. package/lib/browser/chat-view-language-contribution.js.map +1 -0
  145. package/lib/browser/chat-view-widget-toolbar-contribution.d.ts +20 -0
  146. package/lib/browser/chat-view-widget-toolbar-contribution.d.ts.map +1 -0
  147. package/lib/browser/chat-view-widget-toolbar-contribution.js +115 -0
  148. package/lib/browser/chat-view-widget-toolbar-contribution.js.map +1 -0
  149. package/lib/browser/chat-view-widget.d.ts +60 -0
  150. package/lib/browser/chat-view-widget.d.ts.map +1 -0
  151. package/lib/browser/chat-view-widget.js +243 -0
  152. package/lib/browser/chat-view-widget.js.map +1 -0
  153. package/lib/browser/context-variable-picker.d.ts +9 -0
  154. package/lib/browser/context-variable-picker.d.ts.map +1 -0
  155. package/lib/browser/context-variable-picker.js +86 -0
  156. package/lib/browser/context-variable-picker.js.map +1 -0
  157. package/lib/browser/session-settings-dialog.d.ts +35 -0
  158. package/lib/browser/session-settings-dialog.d.ts.map +1 -0
  159. package/lib/browser/session-settings-dialog.js +118 -0
  160. package/lib/browser/session-settings-dialog.js.map +1 -0
  161. package/package.json +10 -10
@@ -0,0 +1,227 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CodeWrapper = exports.InsertCodeAtCursorButtonAction = exports.CopyToClipboardButtonAction = exports.CodePartRenderer = exports.CodePartRendererAction = void 0;
4
+ const tslib_1 = require("tslib");
5
+ // *****************************************************************************
6
+ // Copyright (C) 2024 EclipseSource GmbH.
7
+ //
8
+ // This program and the accompanying materials are made available under the
9
+ // terms of the Eclipse Public License v. 2.0 which is available at
10
+ // http://www.eclipse.org/legal/epl-2.0.
11
+ //
12
+ // This Source Code may also be made available under the following Secondary
13
+ // Licenses when the conditions for such availability set forth in the Eclipse
14
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
15
+ // with the GNU Classpath Exception which is available at
16
+ // https://www.gnu.org/software/classpath/license.html.
17
+ //
18
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
19
+ // *****************************************************************************
20
+ const common_1 = require("@theia/ai-chat/lib/common");
21
+ const core_1 = require("@theia/core");
22
+ const browser_1 = require("@theia/core/lib/browser");
23
+ const clipboard_service_1 = require("@theia/core/lib/browser/clipboard-service");
24
+ const inversify_1 = require("@theia/core/shared/inversify");
25
+ const React = require("@theia/core/shared/react");
26
+ const nls_1 = require("@theia/core/lib/common/nls");
27
+ const browser_2 = require("@theia/editor/lib/browser");
28
+ const monaco_editor_provider_1 = require("@theia/monaco/lib/browser/monaco-editor-provider");
29
+ const monaco_languages_1 = require("@theia/monaco/lib/browser/monaco-languages");
30
+ const chat_view_tree_widget_1 = require("../chat-tree-view/chat-view-tree-widget");
31
+ exports.CodePartRendererAction = Symbol('CodePartRendererAction');
32
+ let CodePartRenderer = class CodePartRenderer {
33
+ canHandle(response) {
34
+ if (common_1.CodeChatResponseContent.is(response)) {
35
+ return 10;
36
+ }
37
+ return -1;
38
+ }
39
+ render(response, parentNode) {
40
+ const language = response.language ? this.languageService.getExtension(response.language) : undefined;
41
+ return (React.createElement("div", { className: "theia-CodePartRenderer-root" },
42
+ React.createElement("div", { className: "theia-CodePartRenderer-top" },
43
+ React.createElement("div", { className: "theia-CodePartRenderer-left" }, this.renderTitle(response)),
44
+ React.createElement("div", { className: "theia-CodePartRenderer-right theia-CodePartRenderer-actions" }, this.codePartRendererActions.getContributions()
45
+ .filter(action => action.canRender ? action.canRender(response, parentNode) : true)
46
+ .sort((a, b) => a.priority - b.priority)
47
+ .map(action => action.render(response, parentNode)))),
48
+ React.createElement("div", { className: "theia-CodePartRenderer-separator" }),
49
+ React.createElement("div", { className: "theia-CodePartRenderer-bottom" },
50
+ React.createElement(exports.CodeWrapper, { content: response.code, language: language, editorProvider: this.editorProvider, untitledResourceResolver: this.untitledResourceResolver, contextMenuCallback: e => this.handleContextMenuEvent(parentNode, e, response.code) }))));
51
+ }
52
+ renderTitle(response) {
53
+ var _a, _b, _c, _d;
54
+ const uri = (_a = response.location) === null || _a === void 0 ? void 0 : _a.uri;
55
+ const position = (_b = response.location) === null || _b === void 0 ? void 0 : _b.position;
56
+ if (uri && position) {
57
+ return React.createElement("a", { onClick: this.openFileAtPosition.bind(this, uri, position) }, this.getTitle((_c = response.location) === null || _c === void 0 ? void 0 : _c.uri, response.language));
58
+ }
59
+ return this.getTitle((_d = response.location) === null || _d === void 0 ? void 0 : _d.uri, response.language);
60
+ }
61
+ getTitle(uri, language) {
62
+ var _a, _b, _c;
63
+ // If there is a URI, use the file name as the title. Otherwise, use the language as the title.
64
+ // If there is no language, use a generic fallback title.
65
+ return (_c = (_b = (_a = uri === null || uri === void 0 ? void 0 : uri.path) === null || _a === void 0 ? void 0 : _a.toString().split('/').pop()) !== null && _b !== void 0 ? _b : language) !== null && _c !== void 0 ? _c : nls_1.nls.localize('theia/ai/chat-ui/code-part-renderer/generatedCode', 'Generated Code');
66
+ }
67
+ /**
68
+ * Opens a file and moves the cursor to the specified position.
69
+ *
70
+ * @param uri - The URI of the file to open.
71
+ * @param position - The position to move the cursor to, specified as {line, character}.
72
+ */
73
+ async openFileAtPosition(uri, position) {
74
+ const editorWidget = await this.editorManager.open(uri);
75
+ if (editorWidget) {
76
+ const editor = editorWidget.editor;
77
+ editor.revealPosition(position);
78
+ editor.focus();
79
+ editor.cursor = position;
80
+ }
81
+ }
82
+ handleContextMenuEvent(node, event, code) {
83
+ this.contextMenuRenderer.render({
84
+ menuPath: chat_view_tree_widget_1.ChatViewTreeWidget.CONTEXT_MENU,
85
+ anchor: { x: event.posx, y: event.posy },
86
+ args: [node, { code }],
87
+ context: event.target
88
+ });
89
+ event.preventDefault();
90
+ }
91
+ };
92
+ exports.CodePartRenderer = CodePartRenderer;
93
+ tslib_1.__decorate([
94
+ (0, inversify_1.inject)(browser_2.EditorManager),
95
+ tslib_1.__metadata("design:type", browser_2.EditorManager)
96
+ ], CodePartRenderer.prototype, "editorManager", void 0);
97
+ tslib_1.__decorate([
98
+ (0, inversify_1.inject)(core_1.UntitledResourceResolver),
99
+ tslib_1.__metadata("design:type", core_1.UntitledResourceResolver)
100
+ ], CodePartRenderer.prototype, "untitledResourceResolver", void 0);
101
+ tslib_1.__decorate([
102
+ (0, inversify_1.inject)(monaco_editor_provider_1.MonacoEditorProvider),
103
+ tslib_1.__metadata("design:type", monaco_editor_provider_1.MonacoEditorProvider)
104
+ ], CodePartRenderer.prototype, "editorProvider", void 0);
105
+ tslib_1.__decorate([
106
+ (0, inversify_1.inject)(monaco_languages_1.MonacoLanguages),
107
+ tslib_1.__metadata("design:type", monaco_languages_1.MonacoLanguages)
108
+ ], CodePartRenderer.prototype, "languageService", void 0);
109
+ tslib_1.__decorate([
110
+ (0, inversify_1.inject)(browser_1.ContextMenuRenderer),
111
+ tslib_1.__metadata("design:type", browser_1.ContextMenuRenderer)
112
+ ], CodePartRenderer.prototype, "contextMenuRenderer", void 0);
113
+ tslib_1.__decorate([
114
+ (0, inversify_1.inject)(core_1.ContributionProvider),
115
+ (0, inversify_1.named)(exports.CodePartRendererAction),
116
+ tslib_1.__metadata("design:type", Object)
117
+ ], CodePartRenderer.prototype, "codePartRendererActions", void 0);
118
+ exports.CodePartRenderer = CodePartRenderer = tslib_1.__decorate([
119
+ (0, inversify_1.injectable)()
120
+ ], CodePartRenderer);
121
+ let CopyToClipboardButtonAction = class CopyToClipboardButtonAction {
122
+ constructor() {
123
+ this.priority = 10;
124
+ }
125
+ render(response) {
126
+ return React.createElement(CopyToClipboardButton, { key: 'copyToClipBoard', code: response.code, clipboardService: this.clipboardService });
127
+ }
128
+ };
129
+ exports.CopyToClipboardButtonAction = CopyToClipboardButtonAction;
130
+ tslib_1.__decorate([
131
+ (0, inversify_1.inject)(clipboard_service_1.ClipboardService),
132
+ tslib_1.__metadata("design:type", Object)
133
+ ], CopyToClipboardButtonAction.prototype, "clipboardService", void 0);
134
+ exports.CopyToClipboardButtonAction = CopyToClipboardButtonAction = tslib_1.__decorate([
135
+ (0, inversify_1.injectable)()
136
+ ], CopyToClipboardButtonAction);
137
+ const CopyToClipboardButton = (props) => {
138
+ const { code, clipboardService } = props;
139
+ const copyCodeToClipboard = React.useCallback(() => {
140
+ clipboardService.writeText(code);
141
+ }, [code, clipboardService]);
142
+ return React.createElement("div", { className: 'button codicon codicon-copy', title: nls_1.nls.localizeByDefault('Copy'), role: 'button', onClick: copyCodeToClipboard });
143
+ };
144
+ let InsertCodeAtCursorButtonAction = class InsertCodeAtCursorButtonAction {
145
+ constructor() {
146
+ this.priority = 20;
147
+ }
148
+ render(response) {
149
+ return React.createElement(InsertCodeAtCursorButton, { key: 'insertCodeAtCursor', code: response.code, editorManager: this.editorManager });
150
+ }
151
+ };
152
+ exports.InsertCodeAtCursorButtonAction = InsertCodeAtCursorButtonAction;
153
+ tslib_1.__decorate([
154
+ (0, inversify_1.inject)(browser_2.EditorManager),
155
+ tslib_1.__metadata("design:type", browser_2.EditorManager)
156
+ ], InsertCodeAtCursorButtonAction.prototype, "editorManager", void 0);
157
+ exports.InsertCodeAtCursorButtonAction = InsertCodeAtCursorButtonAction = tslib_1.__decorate([
158
+ (0, inversify_1.injectable)()
159
+ ], InsertCodeAtCursorButtonAction);
160
+ const InsertCodeAtCursorButton = (props) => {
161
+ const { code, editorManager } = props;
162
+ const insertCode = React.useCallback(() => {
163
+ const editor = editorManager.currentEditor;
164
+ if (editor) {
165
+ const currentEditor = editor.editor;
166
+ const selection = currentEditor.selection;
167
+ // Insert the text at the current cursor position
168
+ // If there is a selection, replace the selection with the text
169
+ currentEditor.executeEdits([{
170
+ range: {
171
+ start: selection.start,
172
+ end: selection.end
173
+ },
174
+ newText: code
175
+ }]);
176
+ }
177
+ }, [code, editorManager]);
178
+ return React.createElement("div", { className: 'button codicon codicon-insert', title: nls_1.nls.localizeByDefault('Insert At Cursor'), role: 'button', onClick: insertCode });
179
+ };
180
+ /**
181
+ * Renders the given code within a Monaco Editor
182
+ */
183
+ const CodeWrapper = (props) => {
184
+ var _a;
185
+ // eslint-disable-next-line no-null/no-null
186
+ const ref = React.useRef(null);
187
+ const editorRef = React.useRef(undefined);
188
+ const createInputElement = async () => {
189
+ const resource = await props.untitledResourceResolver.createUntitledResource(undefined, props.language);
190
+ const editor = await props.editorProvider.createSimpleInline(resource.uri, ref.current, {
191
+ readOnly: true,
192
+ autoSizing: true,
193
+ scrollBeyondLastLine: false,
194
+ scrollBeyondLastColumn: 0,
195
+ renderFinalNewline: 'off',
196
+ maxHeight: -1,
197
+ scrollbar: {
198
+ vertical: 'hidden',
199
+ alwaysConsumeMouseWheel: false
200
+ },
201
+ wordWrap: 'off',
202
+ codeLens: false,
203
+ inlayHints: { enabled: 'off' },
204
+ hover: { enabled: false }
205
+ });
206
+ editor.document.textEditorModel.setValue(props.content);
207
+ editor.getControl().onContextMenu(e => props.contextMenuCallback(e.event));
208
+ editorRef.current = editor;
209
+ };
210
+ React.useEffect(() => {
211
+ createInputElement();
212
+ return () => {
213
+ if (editorRef.current) {
214
+ editorRef.current.dispose();
215
+ }
216
+ };
217
+ }, []);
218
+ React.useEffect(() => {
219
+ if (editorRef.current) {
220
+ editorRef.current.document.textEditorModel.setValue(props.content);
221
+ }
222
+ }, [props.content]);
223
+ (_a = editorRef.current) === null || _a === void 0 ? void 0 : _a.resizeToFit();
224
+ return React.createElement("div", { className: 'theia-CodeWrapper', ref: ref });
225
+ };
226
+ exports.CodeWrapper = CodeWrapper;
227
+ //# sourceMappingURL=code-part-renderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code-part-renderer.js","sourceRoot":"","sources":["../../../src/browser/chat-response-renderer/code-part-renderer.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /// <reference types="react" />
2
+ import { ChatResponsePartRenderer } from '../chat-response-part-renderer';
3
+ import { ChatResponseContent, CommandChatResponseContent } from '@theia/ai-chat/lib/common';
4
+ import { ReactNode } from '@theia/core/shared/react';
5
+ export declare class CommandPartRenderer implements ChatResponsePartRenderer<CommandChatResponseContent> {
6
+ private commandService;
7
+ private commandRegistry;
8
+ canHandle(response: ChatResponseContent): number;
9
+ render(response: CommandChatResponseContent): ReactNode;
10
+ private onCommand;
11
+ }
12
+ //# sourceMappingURL=command-part-renderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-part-renderer.d.ts","sourceRoot":"","sources":["../../../src/browser/chat-response-renderer/command-part-renderer.tsx"],"names":[],"mappings":";AAgBA,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAE1E,OAAO,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAC5F,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAIrD,qBACa,mBAAoB,YAAW,wBAAwB,CAAC,0BAA0B,CAAC;IACpE,OAAO,CAAC,cAAc,CAAiB;IACtC,OAAO,CAAC,eAAe,CAAkB;IAClE,SAAS,CAAC,QAAQ,EAAE,mBAAmB,GAAG,MAAM;IAMhD,MAAM,CAAC,QAAQ,EAAE,0BAA0B,GAAG,SAAS;IAkBvD,OAAO,CAAC,SAAS;CASpB"}
@@ -0,0 +1,67 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.CommandPartRenderer = void 0;
19
+ const tslib_1 = require("tslib");
20
+ const inversify_1 = require("@theia/core/shared/inversify");
21
+ const common_1 = require("@theia/ai-chat/lib/common");
22
+ const React = require("@theia/core/shared/react");
23
+ const core_1 = require("@theia/core");
24
+ let CommandPartRenderer = class CommandPartRenderer {
25
+ canHandle(response) {
26
+ if (common_1.CommandChatResponseContent.is(response)) {
27
+ return 10;
28
+ }
29
+ return -1;
30
+ }
31
+ render(response) {
32
+ var _a, _b, _c, _d, _e, _f;
33
+ const label = (_f = (_d = (_b = (_a = response.customCallback) === null || _a === void 0 ? void 0 : _a.label) !== null && _b !== void 0 ? _b : (_c = response.command) === null || _c === void 0 ? void 0 : _c.label) !== null && _d !== void 0 ? _d : (_e = response.command) === null || _e === void 0 ? void 0 : _e.id.split('-').map(s => s[0].toUpperCase() + s.substring(1)).join(' ')) !== null && _f !== void 0 ? _f : core_1.nls.localizeByDefault('Execute Command');
34
+ if (!response.customCallback && response.command) {
35
+ const isCommandEnabled = this.commandRegistry.isEnabled(response.command.id);
36
+ if (!isCommandEnabled) {
37
+ return React.createElement("div", null, core_1.nls.localize('theia/ai/chat-ui/command-part-renderer/commandNotExecutable', 'The command has the id "{0}" but it is not executable from the Chat window.', response.command.id));
38
+ }
39
+ }
40
+ return React.createElement("button", { className: 'theia-button main', onClick: this.onCommand.bind(this, response) }, label);
41
+ }
42
+ onCommand(arg) {
43
+ var _a;
44
+ if (arg.customCallback) {
45
+ arg.customCallback.callback().catch(e => { console.error(e); });
46
+ }
47
+ else if (arg.command) {
48
+ this.commandService.executeCommand(arg.command.id, ...((_a = arg.arguments) !== null && _a !== void 0 ? _a : [])).catch(e => { console.error(e); });
49
+ }
50
+ else {
51
+ console.warn('No command or custom callback provided in command chat response content');
52
+ }
53
+ }
54
+ };
55
+ exports.CommandPartRenderer = CommandPartRenderer;
56
+ tslib_1.__decorate([
57
+ (0, inversify_1.inject)(core_1.CommandService),
58
+ tslib_1.__metadata("design:type", Object)
59
+ ], CommandPartRenderer.prototype, "commandService", void 0);
60
+ tslib_1.__decorate([
61
+ (0, inversify_1.inject)(core_1.CommandRegistry),
62
+ tslib_1.__metadata("design:type", core_1.CommandRegistry)
63
+ ], CommandPartRenderer.prototype, "commandRegistry", void 0);
64
+ exports.CommandPartRenderer = CommandPartRenderer = tslib_1.__decorate([
65
+ (0, inversify_1.injectable)()
66
+ ], CommandPartRenderer);
67
+ //# sourceMappingURL=command-part-renderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-part-renderer.js","sourceRoot":"","sources":["../../../src/browser/chat-response-renderer/command-part-renderer.tsx"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;;AAGhF,4DAAkE;AAClE,sDAA4F;AAE5F,kDAAkD;AAClD,sCAAmE;AAG5D,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAG5B,SAAS,CAAC,QAA6B;QACnC,IAAI,mCAA0B,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1C,OAAO,EAAE,CAAC;QACd,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;IACd,CAAC;IACD,MAAM,CAAC,QAAoC;;QACvC,MAAM,KAAK,GACP,MAAA,MAAA,MAAA,MAAA,QAAQ,CAAC,cAAc,0CAAE,KAAK,mCAC9B,MAAA,QAAQ,CAAC,OAAO,0CAAE,KAAK,mCACvB,MAAA,QAAQ,CAAC,OAAO,0CAAE,EAAE,CACf,KAAK,CAAC,GAAG,EACT,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAC5C,IAAI,CAAC,GAAG,CAAC,mCAAI,UAAG,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;QAC/D,IAAI,CAAC,QAAQ,CAAC,cAAc,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YAC/C,MAAM,gBAAgB,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC7E,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACpB,OAAO,iCAAM,UAAG,CAAC,QAAQ,CAAC,6DAA6D,EACnF,6EAA6E,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAO,CAAC;YAEnH,CAAC;QACL,CAAC;QACD,OAAO,gCAAQ,SAAS,EAAC,mBAAmB,EAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAG,KAAK,CAAU,CAAC;IAChH,CAAC;IACO,SAAS,CAAC,GAA+B;;QAC7C,IAAI,GAAG,CAAC,cAAc,EAAE,CAAC;YACrB,GAAG,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpE,CAAC;aAAM,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YACrB,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,MAAA,GAAG,CAAC,SAAS,mCAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnH,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,IAAI,CAAC,yEAAyE,CAAC,CAAC;QAC5F,CAAC;IACL,CAAC;CACJ,CAAA;AApCY,kDAAmB;AACI;IAA/B,IAAA,kBAAM,EAAC,qBAAc,CAAC;;2DAAwC;AAC9B;IAAhC,IAAA,kBAAM,EAAC,sBAAe,CAAC;sCAA0B,sBAAe;4DAAC;8BAFzD,mBAAmB;IAD/B,IAAA,sBAAU,GAAE;GACA,mBAAmB,CAoC/B"}
@@ -0,0 +1,14 @@
1
+ /// <reference types="react" />
2
+ import { ChatResponseContent } from '@theia/ai-chat';
3
+ import { ChatResponsePartRenderer } from '../chat-response-part-renderer';
4
+ import * as React from '@theia/core/shared/react';
5
+ import { DelegationResponseContent } from '@theia/ai-chat/lib/browser/delegation-response-content';
6
+ import { ResponseNode } from '../chat-tree-view';
7
+ import { SubChatWidgetFactory } from '../chat-tree-view/sub-chat-widget';
8
+ export declare class DelegationResponseRenderer implements ChatResponsePartRenderer<DelegationResponseContent> {
9
+ subChatWidgetFactory: SubChatWidgetFactory;
10
+ canHandle(response: ChatResponseContent): number;
11
+ render(response: DelegationResponseContent, parentNode: ResponseNode): React.ReactNode;
12
+ private renderExpandableNode;
13
+ }
14
+ //# sourceMappingURL=delegation-response-renderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delegation-response-renderer.d.ts","sourceRoot":"","sources":["../../../src/browser/chat-response-renderer/delegation-response-renderer.tsx"],"names":[],"mappings":";AAgBA,OAAO,EAAyB,mBAAmB,EAAqB,MAAM,gBAAgB,CAAC;AAC/F,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,KAAK,KAAK,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,yBAAyB,EAA+B,MAAM,wDAAwD,CAAC;AAChI,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAGzE,qBACa,0BAA2B,YAAW,wBAAwB,CAAC,yBAAyB,CAAC;IAGlG,oBAAoB,EAAE,oBAAoB,CAAC;IAE3C,SAAS,CAAC,QAAQ,EAAE,mBAAmB,GAAG,MAAM;IAMhD,MAAM,CAAC,QAAQ,EAAE,yBAAyB,EAAE,UAAU,EAAE,YAAY,GAAG,KAAK,CAAC,SAAS;IAItF,OAAO,CAAC,oBAAoB;CAQ/B"}
@@ -0,0 +1,144 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DelegationResponseRenderer = void 0;
4
+ const tslib_1 = require("tslib");
5
+ // *****************************************************************************
6
+ // Copyright (C) 2025 EclipseSource GmbH.
7
+ //
8
+ // This program and the accompanying materials are made available under the
9
+ // terms of the Eclipse Public License v. 2.0 which is available at
10
+ // http://www.eclipse.org/legal/epl-2.0.
11
+ //
12
+ // This Source Code may also be made available under the following Secondary
13
+ // Licenses when the conditions for such availability set forth in the Eclipse
14
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
15
+ // with the GNU Classpath Exception which is available at
16
+ // https://www.gnu.org/software/classpath/license.html.
17
+ //
18
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
19
+ // *****************************************************************************
20
+ const inversify_1 = require("@theia/core/shared/inversify");
21
+ const React = require("@theia/core/shared/react");
22
+ const delegation_response_content_1 = require("@theia/ai-chat/lib/browser/delegation-response-content");
23
+ const sub_chat_widget_1 = require("../chat-tree-view/sub-chat-widget");
24
+ const core_1 = require("@theia/core");
25
+ let DelegationResponseRenderer = class DelegationResponseRenderer {
26
+ canHandle(response) {
27
+ if ((0, delegation_response_content_1.isDelegationResponseContent)(response)) {
28
+ return 10;
29
+ }
30
+ return -1;
31
+ }
32
+ render(response, parentNode) {
33
+ return this.renderExpandableNode(response, parentNode);
34
+ }
35
+ renderExpandableNode(response, parentNode) {
36
+ return React.createElement(DelegatedChat, { response: response.response, agentId: response.agentId, prompt: response.prompt, parentNode: parentNode, subChatWidgetFactory: this.subChatWidgetFactory });
37
+ }
38
+ };
39
+ exports.DelegationResponseRenderer = DelegationResponseRenderer;
40
+ tslib_1.__decorate([
41
+ (0, inversify_1.inject)(sub_chat_widget_1.SubChatWidgetFactory),
42
+ tslib_1.__metadata("design:type", Function)
43
+ ], DelegationResponseRenderer.prototype, "subChatWidgetFactory", void 0);
44
+ exports.DelegationResponseRenderer = DelegationResponseRenderer = tslib_1.__decorate([
45
+ (0, inversify_1.injectable)()
46
+ ], DelegationResponseRenderer);
47
+ class DelegatedChat extends React.Component {
48
+ constructor(props) {
49
+ super(props);
50
+ this.toDispose = new core_1.DisposableCollection();
51
+ this.state = {
52
+ node: undefined
53
+ };
54
+ this.widget = props.subChatWidgetFactory();
55
+ }
56
+ componentDidMount() {
57
+ // Start rendering as soon as the response is created (streaming mode)
58
+ this.props.response.responseCreated.then(chatModel => {
59
+ const node = mapResponseToNode(chatModel, this.props.parentNode);
60
+ this.setState({ node });
61
+ // Listen for changes to update the rendering as the response streams in
62
+ const changeListener = () => {
63
+ // Force re-render when the response content changes
64
+ this.forceUpdate();
65
+ };
66
+ this.toDispose.push(chatModel.onDidChange(changeListener));
67
+ }).catch(error => {
68
+ console.error('Failed to create delegated chat response:', error);
69
+ // Still try to handle completion in case of partial success
70
+ });
71
+ // Keep the completion handling for final cleanup if needed
72
+ this.props.response.responseCompleted.then(() => {
73
+ // Final update when response is complete
74
+ this.forceUpdate();
75
+ }).catch(error => {
76
+ console.error('Error in delegated chat response completion:', error);
77
+ // Force update anyway to show any partial content or error state
78
+ this.forceUpdate();
79
+ });
80
+ }
81
+ componentWillUnmount() {
82
+ this.toDispose.dispose();
83
+ }
84
+ render() {
85
+ var _a, _b, _c, _d, _e, _f;
86
+ const { agentId, prompt } = this.props;
87
+ const hasNode = !!this.state.node;
88
+ const isComplete = (_b = (_a = this.state.node) === null || _a === void 0 ? void 0 : _a.response.isComplete) !== null && _b !== void 0 ? _b : false;
89
+ const isCanceled = (_d = (_c = this.state.node) === null || _c === void 0 ? void 0 : _c.response.isCanceled) !== null && _d !== void 0 ? _d : false;
90
+ const isError = (_f = (_e = this.state.node) === null || _e === void 0 ? void 0 : _e.response.isError) !== null && _f !== void 0 ? _f : false;
91
+ let statusIcon = '';
92
+ let statusText = '';
93
+ if (hasNode) {
94
+ if (isCanceled) {
95
+ statusIcon = 'codicon-close';
96
+ statusText = core_1.nls.localize('theia/ai/chat-ui/delegation-response-renderer/status/canceled', 'canceled');
97
+ }
98
+ else if (isComplete) {
99
+ statusIcon = 'codicon-check';
100
+ statusText = core_1.nls.localize('theia/ai/chat-ui/delegation-response-renderer/status/completed', 'completed');
101
+ }
102
+ else if (isError) {
103
+ statusIcon = 'codicon-error';
104
+ statusText = core_1.nls.localize('theia/ai/chat-ui/delegation-response-renderer/status/error', 'error');
105
+ }
106
+ else {
107
+ statusIcon = 'codicon-loading';
108
+ statusText = core_1.nls.localize('theia/ai/chat-ui/delegation-response-renderer/status/generating', 'generating...');
109
+ }
110
+ }
111
+ else {
112
+ statusIcon = 'codicon-loading';
113
+ statusText = core_1.nls.localize('theia/ai/chat-ui/delegation-response-renderer/status/starting', 'starting...');
114
+ }
115
+ return (React.createElement("div", { className: "theia-delegation-container" },
116
+ React.createElement("details", { className: "delegation-response-details" },
117
+ React.createElement("summary", { className: "delegation-summary" },
118
+ React.createElement("div", { className: "delegation-header" },
119
+ React.createElement("span", { className: "delegation-agent" },
120
+ React.createElement("span", { className: "codicon codicon-copilot-large" }),
121
+ " ",
122
+ agentId),
123
+ React.createElement("span", { className: "delegation-status" },
124
+ React.createElement("span", { className: `codicon ${statusIcon} delegation-status-icon` }),
125
+ React.createElement("span", { className: "delegation-status-text" }, statusText)))),
126
+ React.createElement("div", { className: "delegation-content" },
127
+ React.createElement("div", { className: "delegation-prompt-section" },
128
+ React.createElement("strong", null, core_1.nls.localize('theia/ai/chat-ui/delegation-response-renderer/prompt/label', 'Delegated prompt:')),
129
+ React.createElement("div", { className: "delegation-prompt" }, prompt)),
130
+ React.createElement("div", { className: "delegation-response-section" },
131
+ React.createElement("strong", null, core_1.nls.localize('theia/ai/chat-ui/delegation-response-renderer/response/label', 'Response:')),
132
+ React.createElement("div", { className: 'delegation-response-placeholder' }, hasNode && this.state.node ? this.widget.renderChatResponse(this.state.node) :
133
+ React.createElement("div", { className: "theia-ChatContentInProgress" }, core_1.nls.localize('theia/ai/chat-ui/delegation-response-renderer/starting', 'Starting delegation...'))))))));
134
+ }
135
+ }
136
+ function mapResponseToNode(response, parentNode) {
137
+ return {
138
+ id: response.id,
139
+ parent: parentNode,
140
+ response,
141
+ sessionId: parentNode.sessionId
142
+ };
143
+ }
144
+ //# sourceMappingURL=delegation-response-renderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delegation-response-renderer.js","sourceRoot":"","sources":["../../../src/browser/chat-response-renderer/delegation-response-renderer.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /// <reference types="react" />
2
+ import { ChatResponsePartRenderer } from '../chat-response-part-renderer';
3
+ import { ChatResponseContent, ErrorChatResponseContent } from '@theia/ai-chat/lib/common';
4
+ import { ReactNode } from '@theia/core/shared/react';
5
+ export declare class ErrorPartRenderer implements ChatResponsePartRenderer<ErrorChatResponseContent> {
6
+ canHandle(response: ChatResponseContent): number;
7
+ render(response: ErrorChatResponseContent): ReactNode;
8
+ }
9
+ //# sourceMappingURL=error-part-renderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-part-renderer.d.ts","sourceRoot":"","sources":["../../../src/browser/chat-response-renderer/error-part-renderer.tsx"],"names":[],"mappings":";AAgBA,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAE1E,OAAO,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAC1F,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAGrD,qBACa,iBAAkB,YAAW,wBAAwB,CAAC,wBAAwB,CAAC;IACxF,SAAS,CAAC,QAAQ,EAAE,mBAAmB,GAAG,MAAM;IAMhD,MAAM,CAAC,QAAQ,EAAE,wBAAwB,GAAG,SAAS;CAIxD"}
@@ -0,0 +1,40 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.ErrorPartRenderer = void 0;
19
+ const tslib_1 = require("tslib");
20
+ const inversify_1 = require("@theia/core/shared/inversify");
21
+ const common_1 = require("@theia/ai-chat/lib/common");
22
+ const React = require("@theia/core/shared/react");
23
+ let ErrorPartRenderer = class ErrorPartRenderer {
24
+ canHandle(response) {
25
+ if (common_1.ErrorChatResponseContent.is(response)) {
26
+ return 10;
27
+ }
28
+ return -1;
29
+ }
30
+ render(response) {
31
+ return React.createElement("div", { className: 'theia-ChatPart-Error' },
32
+ React.createElement("span", { className: 'codicon codicon-error' }),
33
+ React.createElement("span", null, response.error.message));
34
+ }
35
+ };
36
+ exports.ErrorPartRenderer = ErrorPartRenderer;
37
+ exports.ErrorPartRenderer = ErrorPartRenderer = tslib_1.__decorate([
38
+ (0, inversify_1.injectable)()
39
+ ], ErrorPartRenderer);
40
+ //# sourceMappingURL=error-part-renderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-part-renderer.js","sourceRoot":"","sources":["../../../src/browser/chat-response-renderer/error-part-renderer.tsx"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;;AAGhF,4DAA0D;AAC1D,sDAA0F;AAE1F,kDAAkD;AAG3C,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAC1B,SAAS,CAAC,QAA6B;QACnC,IAAI,iCAAwB,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;YACxC,OAAO,EAAE,CAAC;QACd,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;IACd,CAAC;IACD,MAAM,CAAC,QAAkC;QACrC,OAAO,6BAAK,SAAS,EAAC,sBAAsB;YAAC,8BAAM,SAAS,EAAC,uBAAuB,GAAG;YAAA,kCAAO,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAQ,CAAM,CAAC;IACvI,CAAC;CAEJ,CAAA;AAXY,8CAAiB;4BAAjB,iBAAiB;IAD7B,IAAA,sBAAU,GAAE;GACA,iBAAiB,CAW7B"}
@@ -0,0 +1,12 @@
1
+ /// <reference types="react" />
2
+ import { ChatResponsePartRenderer } from '../chat-response-part-renderer';
3
+ import { ChatResponseContent, HorizontalLayoutChatResponseContent } from '@theia/ai-chat/lib/common';
4
+ import { ReactNode } from '@theia/core/shared/react';
5
+ import { ContributionProvider } from '@theia/core';
6
+ import { ResponseNode } from '../chat-tree-view/chat-view-tree-widget';
7
+ export declare class HorizontalLayoutPartRenderer implements ChatResponsePartRenderer<ChatResponseContent> {
8
+ protected readonly chatResponsePartRenderers: ContributionProvider<ChatResponsePartRenderer<ChatResponseContent>>;
9
+ canHandle(response: ChatResponseContent): number;
10
+ render(response: HorizontalLayoutChatResponseContent, parentNode: ResponseNode): ReactNode;
11
+ }
12
+ //# sourceMappingURL=horizontal-layout-part-renderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"horizontal-layout-part-renderer.d.ts","sourceRoot":"","sources":["../../../src/browser/chat-response-renderer/horizontal-layout-part-renderer.tsx"],"names":[],"mappings":";AAgBA,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAE1E,OAAO,EACH,mBAAmB,EACnB,mCAAmC,EACtC,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAErD,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AAEvE,qBACa,4BACT,YAAW,wBAAwB,CAAC,mBAAmB,CAAC;IAGxD,SAAS,CAAC,QAAQ,CAAC,yBAAyB,EAAE,oBAAoB,CAC9D,wBAAwB,CAAC,mBAAmB,CAAC,CAChD,CAAC;IAEF,SAAS,CAAC,QAAQ,EAAE,mBAAmB,GAAG,MAAM;IAMhD,MAAM,CAAC,QAAQ,EAAE,mCAAmC,EAAE,UAAU,EAAE,YAAY,GAAG,SAAS;CAgB7F"}