@theia/ai-chat-ui 1.55.1 → 1.57.0-next.112

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 (49) hide show
  1. package/README.md +2 -1
  2. package/lib/browser/ai-chat-ui-contribution.js +1 -1
  3. package/lib/browser/ai-chat-ui-contribution.js.map +1 -1
  4. package/lib/browser/ai-chat-ui-frontend-module.d.ts.map +1 -1
  5. package/lib/browser/ai-chat-ui-frontend-module.js +11 -1
  6. package/lib/browser/ai-chat-ui-frontend-module.js.map +1 -1
  7. package/lib/browser/chat-input-widget.d.ts +18 -5
  8. package/lib/browser/chat-input-widget.d.ts.map +1 -1
  9. package/lib/browser/chat-input-widget.js +239 -79
  10. package/lib/browser/chat-input-widget.js.map +1 -1
  11. package/lib/browser/chat-response-renderer/code-part-renderer.d.ts +30 -2
  12. package/lib/browser/chat-response-renderer/code-part-renderer.d.ts.map +1 -1
  13. package/lib/browser/chat-response-renderer/code-part-renderer.js +45 -10
  14. package/lib/browser/chat-response-renderer/code-part-renderer.js.map +1 -1
  15. package/lib/browser/chat-response-renderer/markdown-part-renderer.d.ts +10 -4
  16. package/lib/browser/chat-response-renderer/markdown-part-renderer.d.ts.map +1 -1
  17. package/lib/browser/chat-response-renderer/markdown-part-renderer.js +41 -11
  18. package/lib/browser/chat-response-renderer/markdown-part-renderer.js.map +1 -1
  19. package/lib/browser/chat-response-renderer/question-part-renderer.d.ts +10 -0
  20. package/lib/browser/chat-response-renderer/question-part-renderer.d.ts.map +1 -0
  21. package/lib/browser/chat-response-renderer/question-part-renderer.js +43 -0
  22. package/lib/browser/chat-response-renderer/question-part-renderer.js.map +1 -0
  23. package/lib/browser/chat-response-renderer/toolcall-part-renderer.d.ts +2 -0
  24. package/lib/browser/chat-response-renderer/toolcall-part-renderer.d.ts.map +1 -1
  25. package/lib/browser/chat-response-renderer/toolcall-part-renderer.js +38 -12
  26. package/lib/browser/chat-response-renderer/toolcall-part-renderer.js.map +1 -1
  27. package/lib/browser/chat-tree-view/chat-view-tree-widget.d.ts +6 -1
  28. package/lib/browser/chat-tree-view/chat-view-tree-widget.d.ts.map +1 -1
  29. package/lib/browser/chat-tree-view/chat-view-tree-widget.js +85 -14
  30. package/lib/browser/chat-tree-view/chat-view-tree-widget.js.map +1 -1
  31. package/lib/browser/chat-view-language-contribution.d.ts.map +1 -1
  32. package/lib/browser/chat-view-language-contribution.js +0 -1
  33. package/lib/browser/chat-view-language-contribution.js.map +1 -1
  34. package/lib/browser/chat-view-widget.d.ts +4 -1
  35. package/lib/browser/chat-view-widget.d.ts.map +1 -1
  36. package/lib/browser/chat-view-widget.js +14 -4
  37. package/lib/browser/chat-view-widget.js.map +1 -1
  38. package/package.json +12 -12
  39. package/src/browser/ai-chat-ui-contribution.ts +1 -1
  40. package/src/browser/ai-chat-ui-frontend-module.ts +29 -5
  41. package/src/browser/chat-input-widget.tsx +351 -99
  42. package/src/browser/chat-response-renderer/code-part-renderer.tsx +48 -9
  43. package/src/browser/chat-response-renderer/markdown-part-renderer.tsx +42 -13
  44. package/src/browser/chat-response-renderer/question-part-renderer.tsx +59 -0
  45. package/src/browser/chat-response-renderer/toolcall-part-renderer.tsx +46 -11
  46. package/src/browser/chat-tree-view/chat-view-tree-widget.tsx +141 -12
  47. package/src/browser/chat-view-language-contribution.ts +0 -1
  48. package/src/browser/chat-view-widget.tsx +19 -6
  49. package/src/browser/style/index.css +243 -22
@@ -1,6 +1,6 @@
1
1
  /// <reference types="react" />
2
2
  import { ChatResponseContent, CodeChatResponseContent } from '@theia/ai-chat/lib/common';
3
- import { UntitledResourceResolver, URI } from '@theia/core';
3
+ import { ContributionProvider, UntitledResourceResolver, URI } from '@theia/core';
4
4
  import { ContextMenuRenderer, TreeNode } from '@theia/core/lib/browser';
5
5
  import { ClipboardService } from '@theia/core/lib/browser/clipboard-service';
6
6
  import * as React from '@theia/core/shared/react';
@@ -12,13 +12,31 @@ import { MonacoLanguages } from '@theia/monaco/lib/browser/monaco-languages';
12
12
  import { ChatResponsePartRenderer } from '../chat-response-part-renderer';
13
13
  import { ResponseNode } from '../chat-tree-view/chat-view-tree-widget';
14
14
  import { IMouseEvent } from '@theia/monaco-editor-core';
15
+ export declare const CodePartRendererAction: unique symbol;
16
+ /**
17
+ * The CodePartRenderer offers to contribute arbitrary React nodes to the rendered code part.
18
+ * Technically anything can be rendered, however it is intended to be used for actions, like
19
+ * "Copy to Clipboard" or "Insert at Cursor".
20
+ */
21
+ export interface CodePartRendererAction {
22
+ render(response: CodeChatResponseContent, parentNode: ResponseNode): ReactNode;
23
+ /**
24
+ * Determines if the action should be rendered for the given response.
25
+ */
26
+ canRender?(response: CodeChatResponseContent, parentNode: ResponseNode): boolean;
27
+ /**
28
+ * The priority determines the order in which the actions are rendered.
29
+ * The default priorities are 10 and 20.
30
+ */
31
+ priority: number;
32
+ }
15
33
  export declare class CodePartRenderer implements ChatResponsePartRenderer<CodeChatResponseContent> {
16
- protected readonly clipboardService: ClipboardService;
17
34
  protected readonly editorManager: EditorManager;
18
35
  protected readonly untitledResourceResolver: UntitledResourceResolver;
19
36
  protected readonly editorProvider: MonacoEditorProvider;
20
37
  protected readonly languageService: MonacoLanguages;
21
38
  protected readonly contextMenuRenderer: ContextMenuRenderer;
39
+ protected readonly codePartRendererActions: ContributionProvider<CodePartRendererAction>;
22
40
  canHandle(response: ChatResponseContent): number;
23
41
  render(response: CodeChatResponseContent, parentNode: ResponseNode): ReactNode;
24
42
  protected renderTitle(response: CodeChatResponseContent): ReactNode;
@@ -32,6 +50,16 @@ export declare class CodePartRenderer implements ChatResponsePartRenderer<CodeCh
32
50
  openFileAtPosition(uri: URI, position: Position): Promise<void>;
33
51
  protected handleContextMenuEvent(node: TreeNode | undefined, event: IMouseEvent, code: string): void;
34
52
  }
53
+ export declare class CopyToClipboardButtonAction implements CodePartRendererAction {
54
+ protected readonly clipboardService: ClipboardService;
55
+ priority: number;
56
+ render(response: CodeChatResponseContent): ReactNode;
57
+ }
58
+ export declare class InsertCodeAtCursorButtonAction implements CodePartRendererAction {
59
+ protected readonly editorManager: EditorManager;
60
+ priority: number;
61
+ render(response: CodeChatResponseContent): ReactNode;
62
+ }
35
63
  /**
36
64
  * Renders the given code within a Monaco Editor
37
65
  */
@@ -1 +1 @@
1
- {"version":3,"file":"code-part-renderer.d.ts","sourceRoot":"","sources":["../../../src/browser/chat-response-renderer/code-part-renderer.tsx"],"names":[],"mappings":";AAgBA,OAAO,EACH,mBAAmB,EACnB,uBAAuB,EAC1B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,wBAAwB,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAE7E,OAAO,KAAK,KAAK,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,mDAAmD,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAgB,MAAM,2BAA2B,CAAC;AAExE,OAAO,EAAE,oBAAoB,EAAE,MAAM,kDAAkD,CAAC;AACxF,OAAO,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAC;AAC7E,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAsB,YAAY,EAAE,MAAM,yCAAyC,CAAC;AAC3F,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,qBACa,gBACT,YAAW,wBAAwB,CAAC,uBAAuB,CAAC;IAG5D,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAEtD,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IAEhD,SAAS,CAAC,QAAQ,CAAC,wBAAwB,EAAE,wBAAwB,CAAC;IAEtE,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,oBAAoB,CAAC;IAExD,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAEpD,SAAS,CAAC,QAAQ,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;IAE5D,SAAS,CAAC,QAAQ,EAAE,mBAAmB,GAAG,MAAM;IAOhD,MAAM,CAAC,QAAQ,EAAE,uBAAuB,EAAE,UAAU,EAAE,YAAY,GAAG,SAAS;IAyB9E,SAAS,CAAC,WAAW,CAAC,QAAQ,EAAE,uBAAuB,GAAG,SAAS;IASnE,OAAO,CAAC,QAAQ;IAMhB;;;;;OAKG;IACG,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAUrE,SAAS,CAAC,sBAAsB,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;CAQvG;AAgCD;;GAEG;AACH,eAAO,MAAM,WAAW,UAAW;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wBAAwB,EAAE,wBAAwB,CAAC;IACnD,cAAc,EAAE,oBAAoB,CAAC;IACrC,mBAAmB,EAAE,CAAC,CAAC,EAAE,WAAW,KAAK,IAAI,CAAA;CAChD,sBA8CA,CAAC"}
1
+ {"version":3,"file":"code-part-renderer.d.ts","sourceRoot":"","sources":["../../../src/browser/chat-response-renderer/code-part-renderer.tsx"],"names":[],"mappings":"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"}
@@ -1,4 +1,7 @@
1
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");
2
5
  // *****************************************************************************
3
6
  // Copyright (C) 2024 EclipseSource GmbH.
4
7
  //
@@ -14,9 +17,6 @@
14
17
  //
15
18
  // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
19
  // *****************************************************************************
17
- Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.CodeWrapper = exports.CodePartRenderer = void 0;
19
- const tslib_1 = require("tslib");
20
20
  const common_1 = require("@theia/ai-chat/lib/common");
21
21
  const core_1 = require("@theia/core");
22
22
  const browser_1 = require("@theia/core/lib/browser");
@@ -27,6 +27,7 @@ const browser_2 = require("@theia/editor/lib/browser");
27
27
  const monaco_editor_provider_1 = require("@theia/monaco/lib/browser/monaco-editor-provider");
28
28
  const monaco_languages_1 = require("@theia/monaco/lib/browser/monaco-languages");
29
29
  const chat_view_tree_widget_1 = require("../chat-tree-view/chat-view-tree-widget");
30
+ exports.CodePartRendererAction = Symbol('CodePartRendererAction');
30
31
  let CodePartRenderer = class CodePartRenderer {
31
32
  canHandle(response) {
32
33
  if (common_1.CodeChatResponseContent.is(response)) {
@@ -39,9 +40,10 @@ let CodePartRenderer = class CodePartRenderer {
39
40
  return (React.createElement("div", { className: "theia-CodePartRenderer-root" },
40
41
  React.createElement("div", { className: "theia-CodePartRenderer-top" },
41
42
  React.createElement("div", { className: "theia-CodePartRenderer-left" }, this.renderTitle(response)),
42
- React.createElement("div", { className: "theia-CodePartRenderer-right" },
43
- React.createElement(CopyToClipboardButton, { code: response.code, clipboardService: this.clipboardService }),
44
- React.createElement(InsertCodeAtCursorButton, { code: response.code, editorManager: this.editorManager }))),
43
+ React.createElement("div", { className: "theia-CodePartRenderer-right theia-CodePartRenderer-actions" }, this.codePartRendererActions.getContributions()
44
+ .filter(action => action.canRender ? action.canRender(response, parentNode) : true)
45
+ .sort((a, b) => a.priority - b.priority)
46
+ .map(action => action.render(response, parentNode)))),
45
47
  React.createElement("div", { className: "theia-CodePartRenderer-separator" }),
46
48
  React.createElement("div", { className: "theia-CodePartRenderer-bottom" },
47
49
  React.createElement(exports.CodeWrapper, { content: response.code, language: language, editorProvider: this.editorProvider, untitledResourceResolver: this.untitledResourceResolver, contextMenuCallback: e => this.handleContextMenuEvent(parentNode, e, response.code) }))));
@@ -86,10 +88,6 @@ let CodePartRenderer = class CodePartRenderer {
86
88
  }
87
89
  };
88
90
  exports.CodePartRenderer = CodePartRenderer;
89
- tslib_1.__decorate([
90
- (0, inversify_1.inject)(clipboard_service_1.ClipboardService),
91
- tslib_1.__metadata("design:type", Object)
92
- ], CodePartRenderer.prototype, "clipboardService", void 0);
93
91
  tslib_1.__decorate([
94
92
  (0, inversify_1.inject)(browser_2.EditorManager),
95
93
  tslib_1.__metadata("design:type", browser_2.EditorManager)
@@ -110,9 +108,30 @@ tslib_1.__decorate([
110
108
  (0, inversify_1.inject)(browser_1.ContextMenuRenderer),
111
109
  tslib_1.__metadata("design:type", browser_1.ContextMenuRenderer)
112
110
  ], CodePartRenderer.prototype, "contextMenuRenderer", void 0);
111
+ tslib_1.__decorate([
112
+ (0, inversify_1.inject)(core_1.ContributionProvider),
113
+ (0, inversify_1.named)(exports.CodePartRendererAction),
114
+ tslib_1.__metadata("design:type", Object)
115
+ ], CodePartRenderer.prototype, "codePartRendererActions", void 0);
113
116
  exports.CodePartRenderer = CodePartRenderer = tslib_1.__decorate([
114
117
  (0, inversify_1.injectable)()
115
118
  ], CodePartRenderer);
119
+ let CopyToClipboardButtonAction = class CopyToClipboardButtonAction {
120
+ constructor() {
121
+ this.priority = 10;
122
+ }
123
+ render(response) {
124
+ return React.createElement(CopyToClipboardButton, { key: 'copyToClipBoard', code: response.code, clipboardService: this.clipboardService });
125
+ }
126
+ };
127
+ exports.CopyToClipboardButtonAction = CopyToClipboardButtonAction;
128
+ tslib_1.__decorate([
129
+ (0, inversify_1.inject)(clipboard_service_1.ClipboardService),
130
+ tslib_1.__metadata("design:type", Object)
131
+ ], CopyToClipboardButtonAction.prototype, "clipboardService", void 0);
132
+ exports.CopyToClipboardButtonAction = CopyToClipboardButtonAction = tslib_1.__decorate([
133
+ (0, inversify_1.injectable)()
134
+ ], CopyToClipboardButtonAction);
116
135
  const CopyToClipboardButton = (props) => {
117
136
  const { code, clipboardService } = props;
118
137
  const copyCodeToClipboard = React.useCallback(() => {
@@ -120,6 +139,22 @@ const CopyToClipboardButton = (props) => {
120
139
  }, [code, clipboardService]);
121
140
  return React.createElement("div", { className: 'button codicon codicon-copy', title: 'Copy', role: 'button', onClick: copyCodeToClipboard });
122
141
  };
142
+ let InsertCodeAtCursorButtonAction = class InsertCodeAtCursorButtonAction {
143
+ constructor() {
144
+ this.priority = 20;
145
+ }
146
+ render(response) {
147
+ return React.createElement(InsertCodeAtCursorButton, { key: 'insertCodeAtCursor', code: response.code, editorManager: this.editorManager });
148
+ }
149
+ };
150
+ exports.InsertCodeAtCursorButtonAction = InsertCodeAtCursorButtonAction;
151
+ tslib_1.__decorate([
152
+ (0, inversify_1.inject)(browser_2.EditorManager),
153
+ tslib_1.__metadata("design:type", browser_2.EditorManager)
154
+ ], InsertCodeAtCursorButtonAction.prototype, "editorManager", void 0);
155
+ exports.InsertCodeAtCursorButtonAction = InsertCodeAtCursorButtonAction = tslib_1.__decorate([
156
+ (0, inversify_1.injectable)()
157
+ ], InsertCodeAtCursorButtonAction);
123
158
  const InsertCodeAtCursorButton = (props) => {
124
159
  const { code, editorManager } = props;
125
160
  const insertCode = React.useCallback(() => {
@@ -1 +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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"}
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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"}
@@ -5,7 +5,9 @@ import { ReactNode } from '@theia/core/shared/react';
5
5
  import * as React from '@theia/core/shared/react';
6
6
  import * as markdownit from '@theia/core/shared/markdown-it';
7
7
  import { MarkdownString } from '@theia/core/lib/common/markdown-rendering';
8
+ import { OpenerService } from '@theia/core/lib/browser';
8
9
  export declare class MarkdownPartRenderer implements ChatResponsePartRenderer<MarkdownChatResponseContent | InformationalChatResponseContent> {
10
+ protected readonly openerService: OpenerService;
9
11
  protected readonly markdownIt: markdownit;
10
12
  canHandle(response: ChatResponseContent): number;
11
13
  render(response: MarkdownChatResponseContent | InformationalChatResponseContent): ReactNode;
@@ -13,12 +15,16 @@ export declare class MarkdownPartRenderer implements ChatResponsePartRenderer<Ma
13
15
  /**
14
16
  * This hook uses markdown-it directly to render markdown.
15
17
  * The reason to use markdown-it directly is that the MarkdownRenderer is
16
- * overriden by theia with a monaco version. This monaco version strips all html
17
- * tags from the markdown with empty content.
18
- * This leads to unexpected behavior when rendering markdown with html tags.
18
+ * overridden by theia with a monaco version. This monaco version strips all html
19
+ * tags from the markdown with empty content. This leads to unexpected behavior when
20
+ * rendering markdown with html tags.
21
+ *
22
+ * Moreover, we want to intercept link clicks to use the Theia OpenerService instead of the default browser behavior.
19
23
  *
20
24
  * @param markdown the string to render as markdown
25
+ * @param skipSurroundingParagraph whether to remove a surrounding paragraph element (default: false)
26
+ * @param openerService the service to handle link opening
21
27
  * @returns the ref to use in an element to render the markdown
22
28
  */
23
- export declare const useMarkdownRendering: (markdown: string | MarkdownString) => React.MutableRefObject<HTMLDivElement | null>;
29
+ export declare const useMarkdownRendering: (markdown: string | MarkdownString, openerService: OpenerService, skipSurroundingParagraph?: boolean) => React.MutableRefObject<HTMLDivElement | null>;
24
30
  //# sourceMappingURL=markdown-part-renderer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"markdown-part-renderer.d.ts","sourceRoot":"","sources":["../../../src/browser/chat-response-renderer/markdown-part-renderer.tsx"],"names":[],"mappings":";AAgBA,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAE1E,OAAO,EACH,mBAAmB,EACnB,gCAAgC,EAChC,2BAA2B,EAC9B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,SAAS,EAAqB,MAAM,0BAA0B,CAAC;AACxE,OAAO,KAAK,KAAK,MAAM,0BAA0B,CAAC;AAClD,OAAO,KAAK,UAAU,MAAM,gCAAgC,CAAC;AAE7D,OAAO,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAC;AAE3E,qBACa,oBAAqB,YAAW,wBAAwB,CAAC,2BAA2B,GAAG,gCAAgC,CAAC;IACjI,SAAS,CAAC,QAAQ,CAAC,UAAU,aAAgB;IAC7C,SAAS,CAAC,QAAQ,EAAE,mBAAmB,GAAG,MAAM;IAShD,MAAM,CAAC,QAAQ,EAAE,2BAA2B,GAAG,gCAAgC,GAAG,SAAS;CAW9F;AAQD;;;;;;;;;GASG;AACH,eAAO,MAAM,oBAAoB,aAAc,MAAM,GAAG,cAAc,kDAmBrE,CAAC"}
1
+ {"version":3,"file":"markdown-part-renderer.d.ts","sourceRoot":"","sources":["../../../src/browser/chat-response-renderer/markdown-part-renderer.tsx"],"names":[],"mappings":";AAgBA,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAE1E,OAAO,EACH,mBAAmB,EACnB,gCAAgC,EAChC,2BAA2B,EAC9B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,SAAS,EAAqB,MAAM,0BAA0B,CAAC;AACxE,OAAO,KAAK,KAAK,MAAM,0BAA0B,CAAC;AAClD,OAAO,KAAK,UAAU,MAAM,gCAAgC,CAAC;AAE7D,OAAO,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAQ,MAAM,yBAAyB,CAAC;AAG9D,qBACa,oBAAqB,YAAW,wBAAwB,CAAC,2BAA2B,GAAG,gCAAgC,CAAC;IAC1G,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACvE,SAAS,CAAC,QAAQ,CAAC,UAAU,aAAgB;IAC7C,SAAS,CAAC,QAAQ,EAAE,mBAAmB,GAAG,MAAM;IAShD,MAAM,CAAC,QAAQ,EAAE,2BAA2B,GAAG,gCAAgC,GAAG,SAAS;CAU9F;AAQD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,oBAAoB,aAAc,MAAM,GAAG,cAAc,iBAAiB,aAAa,6BAA4B,OAAO,kDA0CtI,CAAC"}
@@ -23,6 +23,8 @@ const react_1 = require("@theia/core/shared/react");
23
23
  const React = require("@theia/core/shared/react");
24
24
  const markdownit = require("@theia/core/shared/markdown-it");
25
25
  const DOMPurify = require("@theia/core/shared/dompurify");
26
+ const browser_1 = require("@theia/core/lib/browser");
27
+ const core_1 = require("@theia/core");
26
28
  let MarkdownPartRenderer = class MarkdownPartRenderer {
27
29
  constructor() {
28
30
  this.markdownIt = markdownit();
@@ -43,44 +45,72 @@ let MarkdownPartRenderer = class MarkdownPartRenderer {
43
45
  // eslint-disable-next-line no-null/no-null
44
46
  return null;
45
47
  }
46
- return React.createElement(MarkdownRender, { response: response });
48
+ return React.createElement(MarkdownRender, { response: response, openerService: this.openerService });
47
49
  }
48
50
  };
49
51
  exports.MarkdownPartRenderer = MarkdownPartRenderer;
52
+ tslib_1.__decorate([
53
+ (0, inversify_1.inject)(browser_1.OpenerService),
54
+ tslib_1.__metadata("design:type", Object)
55
+ ], MarkdownPartRenderer.prototype, "openerService", void 0);
50
56
  exports.MarkdownPartRenderer = MarkdownPartRenderer = tslib_1.__decorate([
51
57
  (0, inversify_1.injectable)()
52
58
  ], MarkdownPartRenderer);
53
- const MarkdownRender = ({ response }) => {
54
- const ref = (0, exports.useMarkdownRendering)(response.content);
59
+ const MarkdownRender = ({ response, openerService }) => {
60
+ const ref = (0, exports.useMarkdownRendering)(response.content, openerService);
55
61
  return React.createElement("div", { ref: ref });
56
62
  };
57
63
  /**
58
64
  * This hook uses markdown-it directly to render markdown.
59
65
  * The reason to use markdown-it directly is that the MarkdownRenderer is
60
- * overriden by theia with a monaco version. This monaco version strips all html
61
- * tags from the markdown with empty content.
62
- * This leads to unexpected behavior when rendering markdown with html tags.
66
+ * overridden by theia with a monaco version. This monaco version strips all html
67
+ * tags from the markdown with empty content. This leads to unexpected behavior when
68
+ * rendering markdown with html tags.
69
+ *
70
+ * Moreover, we want to intercept link clicks to use the Theia OpenerService instead of the default browser behavior.
63
71
  *
64
72
  * @param markdown the string to render as markdown
73
+ * @param skipSurroundingParagraph whether to remove a surrounding paragraph element (default: false)
74
+ * @param openerService the service to handle link opening
65
75
  * @returns the ref to use in an element to render the markdown
66
76
  */
67
- const useMarkdownRendering = (markdown) => {
77
+ const useMarkdownRendering = (markdown, openerService, skipSurroundingParagraph = false) => {
78
+ // null is valid in React
68
79
  // eslint-disable-next-line no-null/no-null
69
80
  const ref = (0, react_1.useRef)(null);
70
81
  const markdownString = typeof markdown === 'string' ? markdown : markdown.value;
71
82
  (0, react_1.useEffect)(() => {
72
- var _a, _b;
83
+ var _a, _b, _c;
73
84
  const markdownIt = markdownit();
74
85
  const host = document.createElement('div');
75
- const html = markdownIt.render(markdownString);
86
+ // markdownIt always puts the content in a paragraph element, so we remove it if we don't want that
87
+ const html = skipSurroundingParagraph ? markdownIt.render(markdownString).replace(/^<p>|<\/p>|<p><\/p>$/g, '') : markdownIt.render(markdownString);
76
88
  host.innerHTML = DOMPurify.sanitize(html, {
77
- ALLOW_UNKNOWN_PROTOCOLS: true // DOMPurify usually strips non http(s) links from hrefs
89
+ // DOMPurify usually strips non http(s) links from hrefs
90
+ // but we want to allow them (see handleClick via OpenerService below)
91
+ ALLOW_UNKNOWN_PROTOCOLS: true
78
92
  });
79
93
  while ((_a = ref === null || ref === void 0 ? void 0 : ref.current) === null || _a === void 0 ? void 0 : _a.firstChild) {
80
94
  ref.current.removeChild(ref.current.firstChild);
81
95
  }
82
96
  (_b = ref === null || ref === void 0 ? void 0 : ref.current) === null || _b === void 0 ? void 0 : _b.appendChild(host);
83
- }, [markdownString]);
97
+ // intercept link clicks to use the Theia OpenerService instead of the default browser behavior
98
+ const handleClick = (event) => {
99
+ let target = event.target;
100
+ while (target && target.tagName !== 'A') {
101
+ target = target.parentElement;
102
+ }
103
+ if (target && target.tagName === 'A') {
104
+ const href = target.getAttribute('href');
105
+ if (href) {
106
+ (0, browser_1.open)(openerService, new core_1.URI(href));
107
+ event.preventDefault();
108
+ }
109
+ }
110
+ };
111
+ (_c = ref === null || ref === void 0 ? void 0 : ref.current) === null || _c === void 0 ? void 0 : _c.addEventListener('click', handleClick);
112
+ return () => { var _a; return (_a = ref.current) === null || _a === void 0 ? void 0 : _a.removeEventListener('click', handleClick); };
113
+ }, [markdownString, skipSurroundingParagraph, openerService]);
84
114
  return ref;
85
115
  };
86
116
  exports.useMarkdownRendering = useMarkdownRendering;
@@ -1 +1 @@
1
- {"version":3,"file":"markdown-part-renderer.js","sourceRoot":"","sources":["../../../src/browser/chat-response-renderer/markdown-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,sDAImC;AACnC,oDAAwE;AACxE,kDAAkD;AAClD,6DAA6D;AAC7D,0DAA0D;AAInD,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAA1B;QACgB,eAAU,GAAG,UAAU,EAAE,CAAC;IAqBjD,CAAC;IApBG,SAAS,CAAC,QAA6B;QACnC,IAAI,oCAA2B,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC3C,OAAO,EAAE,CAAC;QACd,CAAC;QACD,IAAI,yCAAgC,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChD,OAAO,EAAE,CAAC;QACd,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;IACd,CAAC;IACD,MAAM,CAAC,QAAwE;QAC3E,6EAA6E;QAC7E,IAAI,yCAAgC,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChD,yBAAyB;YACzB,2CAA2C;YAC3C,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,OAAO,oBAAC,cAAc,IAAC,QAAQ,EAAE,QAAQ,GAAI,CAAC;IAClD,CAAC;CAEJ,CAAA;AAtBY,oDAAoB;+BAApB,oBAAoB;IADhC,IAAA,sBAAU,GAAE;GACA,oBAAoB,CAsBhC;AAED,MAAM,cAAc,GAAG,CAAC,EAAE,QAAQ,EAAgF,EAAE,EAAE;IAClH,MAAM,GAAG,GAAG,IAAA,4BAAoB,EAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAEnD,OAAO,6BAAK,GAAG,EAAE,GAAG,GAAQ,CAAC;AACjC,CAAC,CAAC;AAEF;;;;;;;;;GASG;AACI,MAAM,oBAAoB,GAAG,CAAC,QAAiC,EAAE,EAAE;IACtE,2CAA2C;IAC3C,MAAM,GAAG,GAAG,IAAA,cAAM,EAAwB,IAAI,CAAC,CAAC;IAChD,MAAM,cAAc,GAAG,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;IAChF,IAAA,iBAAS,EAAC,GAAG,EAAE;;QACX,MAAM,UAAU,GAAG,UAAU,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC3C,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QAC/C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE;YACtC,uBAAuB,EAAE,IAAI,CAAC,wDAAwD;SACzF,CAAC,CAAC;QACH,OAAO,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,OAAO,0CAAE,UAAU,EAAE,CAAC;YAC9B,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACpD,CAAC;QAED,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,OAAO,0CAAE,WAAW,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;IAErB,OAAO,GAAG,CAAC;AACf,CAAC,CAAC;AAnBW,QAAA,oBAAoB,wBAmB/B"}
1
+ {"version":3,"file":"markdown-part-renderer.js","sourceRoot":"","sources":["../../../src/browser/chat-response-renderer/markdown-part-renderer.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /// <reference types="react" />
2
+ import { ChatResponseContent, QuestionResponseContent } from '@theia/ai-chat';
3
+ import { ReactNode } from '@theia/core/shared/react';
4
+ import { ChatResponsePartRenderer } from '../chat-response-part-renderer';
5
+ import { ResponseNode } from '../chat-tree-view';
6
+ export declare class QuestionPartRenderer implements ChatResponsePartRenderer<QuestionResponseContent> {
7
+ canHandle(response: ChatResponseContent): number;
8
+ render(question: QuestionResponseContent, node: ResponseNode): ReactNode;
9
+ }
10
+ //# sourceMappingURL=question-part-renderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"question-part-renderer.d.ts","sourceRoot":"","sources":["../../../src/browser/chat-response-renderer/question-part-renderer.tsx"],"names":[],"mappings":";AAeA,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAG9E,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,qBACa,oBACT,YAAW,wBAAwB,CAAC,uBAAuB,CAAC;IAE5D,SAAS,CAAC,QAAQ,EAAE,mBAAmB,GAAG,MAAM;IAOhD,MAAM,CAAC,QAAQ,EAAE,uBAAuB,EAAE,IAAI,EAAE,YAAY,GAAG,SAAS;CAyB3E"}
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.QuestionPartRenderer = 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 ai_chat_1 = require("@theia/ai-chat");
21
+ const inversify_1 = require("@theia/core/shared/inversify");
22
+ const React = require("@theia/core/shared/react");
23
+ let QuestionPartRenderer = class QuestionPartRenderer {
24
+ canHandle(response) {
25
+ if (ai_chat_1.QuestionResponseContent.is(response)) {
26
+ return 10;
27
+ }
28
+ return -1;
29
+ }
30
+ render(question, node) {
31
+ return (React.createElement("div", { className: "theia-QuestionPartRenderer-root" },
32
+ React.createElement("div", { className: "theia-QuestionPartRenderer-question" }, question.question),
33
+ React.createElement("div", { className: "theia-QuestionPartRenderer-options" }, question.options.map((option, index) => (React.createElement("button", { className: `theia-button theia-QuestionPartRenderer-option ${question.selectedOption === option ? 'selected' : ''}`, onClick: () => {
34
+ question.selectedOption = option;
35
+ question.handler(option);
36
+ }, disabled: question.selectedOption !== undefined || !node.response.isWaitingForInput, key: index }, option.text))))));
37
+ }
38
+ };
39
+ exports.QuestionPartRenderer = QuestionPartRenderer;
40
+ exports.QuestionPartRenderer = QuestionPartRenderer = tslib_1.__decorate([
41
+ (0, inversify_1.injectable)()
42
+ ], QuestionPartRenderer);
43
+ //# sourceMappingURL=question-part-renderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"question-part-renderer.js","sourceRoot":"","sources":["../../../src/browser/chat-response-renderer/question-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;AAChF,4CAA8E;AAC9E,4DAA0D;AAC1D,kDAAkD;AAM3C,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAG7B,SAAS,CAAC,QAA6B;QACnC,IAAI,iCAAuB,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;YACvC,OAAO,EAAE,CAAC;QACd,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;IACd,CAAC;IAED,MAAM,CAAC,QAAiC,EAAE,IAAkB;QACxD,OAAO,CACH,6BAAK,SAAS,EAAC,iCAAiC;YAC5C,6BAAK,SAAS,EAAC,qCAAqC,IAAE,QAAQ,CAAC,QAAQ,CAAO;YAC9E,6BAAK,SAAS,EAAC,oCAAoC,IAE3C,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CACpC,gCACI,SAAS,EAAE,kDAAkD,QAAQ,CAAC,cAAc,KAAK,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,EACnH,OAAO,EAAE,GAAG,EAAE;oBACV,QAAQ,CAAC,cAAc,GAAG,MAAM,CAAC;oBACjC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBAC7B,CAAC,EACD,QAAQ,EAAE,QAAQ,CAAC,cAAc,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EACnF,GAAG,EAAE,KAAK,IAET,MAAM,CAAC,IAAI,CACP,CACZ,CAAC,CAEJ,CACJ,CACT,CAAC;IACN,CAAC;CAEJ,CAAA;AAnCY,oDAAoB;+BAApB,oBAAoB;IADhC,IAAA,sBAAU,GAAE;GACA,oBAAoB,CAmChC"}
@@ -5,6 +5,8 @@ import { ReactNode } from '@theia/core/shared/react';
5
5
  export declare class ToolCallPartRenderer implements ChatResponsePartRenderer<ToolCallChatResponseContent> {
6
6
  canHandle(response: ChatResponseContent): number;
7
7
  render(response: ToolCallChatResponseContent): ReactNode;
8
+ protected renderCollapsibleArguments(args: string | undefined): ReactNode;
9
+ private prettyPrintArgs;
8
10
  private tryPrettyPrintJson;
9
11
  }
10
12
  //# sourceMappingURL=toolcall-part-renderer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"toolcall-part-renderer.d.ts","sourceRoot":"","sources":["../../../src/browser/chat-response-renderer/toolcall-part-renderer.tsx"],"names":[],"mappings":";AAgBA,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAE1E,OAAO,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AAC7F,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAGrD,qBACa,oBAAqB,YAAW,wBAAwB,CAAC,2BAA2B,CAAC;IAE9F,SAAS,CAAC,QAAQ,EAAE,mBAAmB,GAAG,MAAM;IAMhD,MAAM,CAAC,QAAQ,EAAE,2BAA2B,GAAG,SAAS;IAaxD,OAAO,CAAC,kBAAkB;CAW7B"}
1
+ {"version":3,"file":"toolcall-part-renderer.d.ts","sourceRoot":"","sources":["../../../src/browser/chat-response-renderer/toolcall-part-renderer.tsx"],"names":[],"mappings":";AAgBA,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAE1E,OAAO,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AAC7F,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAGrD,qBACa,oBAAqB,YAAW,wBAAwB,CAAC,2BAA2B,CAAC;IAE9F,SAAS,CAAC,QAAQ,EAAE,mBAAmB,GAAG,MAAM;IAOhD,MAAM,CAAC,QAAQ,EAAE,2BAA2B,GAAG,SAAS;IAmBxD,SAAS,CAAC,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAazE,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,kBAAkB;CAiB7B"}
@@ -28,26 +28,52 @@ let ToolCallPartRenderer = class ToolCallPartRenderer {
28
28
  return -1;
29
29
  }
30
30
  render(response) {
31
- return React.createElement("h4", { className: 'theia-toolCall' }, response.finished ?
32
- React.createElement("details", null,
33
- React.createElement("summary", null,
34
- "Ran ",
35
- response.name),
36
- React.createElement("pre", null, this.tryPrettyPrintJson(response)))
37
- : React.createElement("span", null,
38
- React.createElement(Spinner, null),
39
- " Running [",
31
+ return (React.createElement("h4", { className: 'theia-toolCall' }, response.finished ? (React.createElement("details", null,
32
+ React.createElement("summary", null,
33
+ "Ran ",
40
34
  response.name,
41
- "]"));
35
+ "(",
36
+ this.renderCollapsibleArguments(response.arguments),
37
+ ")"),
38
+ React.createElement("pre", null, this.tryPrettyPrintJson(response)))) : (React.createElement("span", null,
39
+ React.createElement(Spinner, null),
40
+ " Running ",
41
+ response.name,
42
+ "(",
43
+ this.renderCollapsibleArguments(response.arguments),
44
+ ")"))));
45
+ }
46
+ renderCollapsibleArguments(args) {
47
+ if (!args || !args.trim() || args.trim() === '{}') {
48
+ return undefined;
49
+ }
50
+ return (React.createElement("details", { className: "collapsible-arguments" },
51
+ React.createElement("summary", { className: "collapsible-arguments-summary" }, "..."),
52
+ React.createElement("span", null, this.prettyPrintArgs(args))));
53
+ }
54
+ prettyPrintArgs(args) {
55
+ try {
56
+ return JSON.stringify(JSON.parse(args), undefined, 2);
57
+ }
58
+ catch (e) {
59
+ // fall through
60
+ return args;
61
+ }
42
62
  }
43
63
  tryPrettyPrintJson(response) {
44
64
  let responseContent = response.result;
45
65
  try {
46
- if (response.result) {
47
- responseContent = JSON.stringify(JSON.parse(response.result), undefined, 2);
66
+ if (responseContent) {
67
+ if (typeof responseContent === 'string') {
68
+ responseContent = JSON.parse(responseContent);
69
+ }
70
+ responseContent = JSON.stringify(responseContent, undefined, 2);
48
71
  }
49
72
  }
50
73
  catch (e) {
74
+ if (typeof responseContent !== 'string') {
75
+ responseContent = `The content could not be converted to string: '${e.message}'. This is the original content: '${responseContent}'.`;
76
+ }
51
77
  // fall through
52
78
  }
53
79
  return responseContent;
@@ -1 +1 @@
1
- {"version":3,"file":"toolcall-part-renderer.js","sourceRoot":"","sources":["../../../src/browser/chat-response-renderer/toolcall-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,sDAA6F;AAE7F,kDAAkD;AAG3C,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAE7B,SAAS,CAAC,QAA6B;QACnC,IAAI,oCAA2B,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC3C,OAAO,EAAE,CAAC;QACd,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;IACd,CAAC;IACD,MAAM,CAAC,QAAqC;QACxC,OAAO,4BAAI,SAAS,EAAC,gBAAgB,IAChC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAChB;gBACI;;oBAAc,QAAQ,CAAC,IAAI,CAAW;gBACtC,iCAAM,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAO,CACxC;YACV,CAAC,CAAC;gBAAM,oBAAC,OAAO,OAAG;;gBAAW,QAAQ,CAAC,IAAI;oBAAS,CAEvD,CAAC;IAEV,CAAC;IAEO,kBAAkB,CAAC,QAAqC;QAC5D,IAAI,eAAe,GAAG,QAAQ,CAAC,MAAM,CAAC;QACtC,IAAI,CAAC;YACD,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;gBAClB,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;YAChF,CAAC;QACL,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,eAAe;QACnB,CAAC;QACD,OAAO,eAAe,CAAC;IAC3B,CAAC;CACJ,CAAA;AAhCY,oDAAoB;+BAApB,oBAAoB;IADhC,IAAA,sBAAU,GAAE;GACA,oBAAoB,CAgChC;AAED,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,CAClB,2BAAG,SAAS,EAAC,uBAAuB,GAAK,CAC5C,CAAC"}
1
+ {"version":3,"file":"toolcall-part-renderer.js","sourceRoot":"","sources":["../../../src/browser/chat-response-renderer/toolcall-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,sDAA6F;AAE7F,kDAAkD;AAG3C,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAE7B,SAAS,CAAC,QAA6B;QACnC,IAAI,oCAA2B,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC3C,OAAO,EAAE,CAAC;QACd,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;IACd,CAAC;IAED,MAAM,CAAC,QAAqC;QACxC,OAAO,CACH,4BAAI,SAAS,EAAC,gBAAgB,IACzB,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CACjB;YACI;;gBAAc,QAAQ,CAAC,IAAI;;gBACrB,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,SAAS,CAAC;oBAC/C;YACV,iCAAM,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAO,CACxC,CACb,CAAC,CAAC,CAAC,CACA;YACI,oBAAC,OAAO,OAAG;;YAAU,QAAQ,CAAC,IAAI;;YAAG,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,SAAS,CAAC;gBACrF,CACV,CACA,CACR,CAAC;IACN,CAAC;IAES,0BAA0B,CAAC,IAAwB;QACzD,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;YAChD,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,OAAO,CACH,iCAAS,SAAS,EAAC,uBAAuB;YACtC,iCAAS,SAAS,EAAC,+BAA+B,UAAc;YAChE,kCAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAQ,CACnC,CACb,CAAC;IACN,CAAC;IAEO,eAAe,CAAC,IAAY;QAChC,IAAI,CAAC;YACD,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;QAC1D,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,eAAe;YACf,OAAO,IAAI,CAAC;QAChB,CAAC;IACL,CAAC;IAEO,kBAAkB,CAAC,QAAqC;QAC5D,IAAI,eAAe,GAAG,QAAQ,CAAC,MAAM,CAAC;QACtC,IAAI,CAAC;YACD,IAAI,eAAe,EAAE,CAAC;gBAClB,IAAI,OAAO,eAAe,KAAK,QAAQ,EAAE,CAAC;oBACtC,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;gBAClD,CAAC;gBACD,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;YACpE,CAAC;QACL,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,IAAI,OAAO,eAAe,KAAK,QAAQ,EAAE,CAAC;gBACtC,eAAe,GAAG,kDAAkD,CAAC,CAAC,OAAO,qCAAqC,eAAe,IAAI,CAAC;YAC1I,CAAC;YACD,eAAe;QACnB,CAAC;QACD,OAAO,eAAe,CAAC;IAC3B,CAAC;CACJ,CAAA;AAnEY,oDAAoB;+BAApB,oBAAoB;IADhC,IAAA,sBAAU,GAAE;GACA,oBAAoB,CAmEhC;AAED,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,CAClB,2BAAG,SAAS,EAAC,uBAAuB,GAAK,CAC5C,CAAC"}
@@ -1,10 +1,11 @@
1
1
  /// <reference types="react" />
2
2
  import { ChatAgentService, ChatModel, ChatRequestModel, ChatResponseContent, ChatResponseModel } from '@theia/ai-chat';
3
3
  import { ContributionProvider } from '@theia/core';
4
- import { ContextMenuRenderer, NodeProps, TreeModel, TreeNode, TreeProps, TreeWidget } from '@theia/core/lib/browser';
4
+ import { ContextMenuRenderer, NodeProps, OpenerService, TreeModel, TreeNode, TreeProps, TreeWidget } from '@theia/core/lib/browser';
5
5
  import * as React from '@theia/core/shared/react';
6
6
  import { ChatNodeToolbarActionContribution } from '../chat-node-toolbar-action-contribution';
7
7
  import { ChatResponsePartRenderer } from '../chat-response-part-renderer';
8
+ import { AIVariableService } from '@theia/ai-core';
8
9
  export interface RequestNode extends TreeNode {
9
10
  request: ChatRequestModel;
10
11
  }
@@ -19,7 +20,10 @@ export declare class ChatViewTreeWidget extends TreeWidget {
19
20
  protected readonly chatResponsePartRenderers: ContributionProvider<ChatResponsePartRenderer<ChatResponseContent>>;
20
21
  protected readonly chatNodeToolbarActionContributions: ContributionProvider<ChatNodeToolbarActionContribution>;
21
22
  protected chatAgentService: ChatAgentService;
23
+ protected readonly variableService: AIVariableService;
22
24
  private commandRegistry;
25
+ protected readonly openerService: OpenerService;
26
+ private hoverService;
23
27
  protected _shouldScrollToEnd: boolean;
24
28
  protected isEnabled: boolean;
25
29
  set shouldScrollToEnd(shouldScrollToEnd: boolean);
@@ -42,6 +46,7 @@ export declare class ChatViewTreeWidget extends TreeWidget {
42
46
  protected renderNode(node: TreeNode, props: NodeProps): React.ReactNode;
43
47
  private renderAgent;
44
48
  private getAgentLabel;
49
+ private getAgent;
45
50
  private getAgentIconClassName;
46
51
  private renderDetail;
47
52
  private renderChatRequest;
@@ -1 +1 @@
1
- {"version":3,"file":"chat-view-tree-widget.d.ts","sourceRoot":"","sources":["../../../src/browser/chat-tree-view/chat-view-tree-widget.tsx"],"names":[],"mappings":";AAeA,OAAO,EACH,gBAAgB,EAChB,SAAS,EAET,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAmB,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACpE,OAAO,EAIH,mBAAmB,EAGnB,SAAS,EACT,SAAS,EACT,QAAQ,EACR,SAAS,EACT,UAAU,EACb,MAAM,yBAAyB,CAAC;AAOjC,OAAO,KAAK,KAAK,MAAM,0BAA0B,CAAC;AAElD,OAAO,EAAE,iCAAiC,EAAE,MAAM,0CAA0C,CAAC;AAC7F,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAI1E,MAAM,WAAW,WAAY,SAAQ,QAAQ;IACzC,OAAO,EAAE,gBAAgB,CAAA;CAC5B;AACD,eAAO,MAAM,aAAa,SAAU,QAAQ,wBAA2C,CAAC;AAGxF,MAAM,WAAW,YAAa,SAAQ,QAAQ;IAC1C,QAAQ,EAAE,iBAAiB,CAAA;CAC9B;AACD,eAAO,MAAM,cAAc,SAAU,QAAQ,yBAA6C,CAAC;AAM3F,qBACa,kBAAmB,SAAQ,UAAU;IAC9C,MAAM,CAAC,QAAQ,CAAC,EAAE,sBAAsB;IACxC,MAAM,CAAC,QAAQ,CAAC,YAAY,WAA8B;IAG1D,SAAS,CAAC,QAAQ,CAAC,yBAAyB,EAAE,oBAAoB,CAAC,wBAAwB,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAGlH,SAAS,CAAC,QAAQ,CAAC,kCAAkC,EAAE,oBAAoB,CAAC,iCAAiC,CAAC,CAAC;IAG/G,SAAS,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAG7C,OAAO,CAAC,eAAe,CAAkB;IAEzC,SAAS,CAAC,kBAAkB,UAAQ;IAEpC,SAAS,CAAC,SAAS,UAAS;IAE5B,IAAI,iBAAiB,CAAC,iBAAiB,EAAE,OAAO,EAG/C;IAED,IAAI,iBAAiB,IAAI,OAAO,CAE/B;gBAGsB,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,SAAS,EACN,mBAAmB,EAAE,mBAAmB;cAiBtD,IAAI,IAAI,IAAI;IAOxB,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;cAKtB,UAAU,CAAC,KAAK,EAAE,SAAS,GAAG,KAAK,CAAC,SAAS;IAOhE,OAAO,CAAC,qBAAqB;IAiD7B,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,iBAAiB;IAQzB;;;OAGG;IACI,cAAc,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;cAiB9B,cAAc,IAAI,MAAM,GAAG,SAAS;YAOzC,iBAAiB;cAYZ,UAAU,CACzB,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,SAAS,GACjB,KAAK,CAAC,SAAS;IAelB,OAAO,CAAC,WAAW;IAsCnB,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,qBAAqB;IAS7B,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,kBAAkB;IAe1B,OAAO,CAAC,2BAA2B;IAgBnC,SAAS,CAAC,iBAAiB,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,IAAI;CAQtG"}
1
+ {"version":3,"file":"chat-view-tree-widget.d.ts","sourceRoot":"","sources":["../../../src/browser/chat-tree-view/chat-view-tree-widget.tsx"],"names":[],"mappings":";AAeA,OAAO,EAEH,gBAAgB,EAChB,SAAS,EAET,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EAGpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAmB,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACpE,OAAO,EAIH,mBAAmB,EAInB,SAAS,EACT,aAAa,EACb,SAAS,EACT,QAAQ,EACR,SAAS,EACT,UAAU,EACb,MAAM,yBAAyB,CAAC;AAOjC,OAAO,KAAK,KAAK,MAAM,0BAA0B,CAAC;AAElD,OAAO,EAAE,iCAAiC,EAAE,MAAM,0CAA0C,CAAC;AAC7F,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAE1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAGnD,MAAM,WAAW,WAAY,SAAQ,QAAQ;IACzC,OAAO,EAAE,gBAAgB,CAAA;CAC5B;AACD,eAAO,MAAM,aAAa,SAAU,QAAQ,wBAA2C,CAAC;AAGxF,MAAM,WAAW,YAAa,SAAQ,QAAQ;IAC1C,QAAQ,EAAE,iBAAiB,CAAA;CAC9B;AACD,eAAO,MAAM,cAAc,SAAU,QAAQ,yBAA6C,CAAC;AAM3F,qBACa,kBAAmB,SAAQ,UAAU;IAC9C,MAAM,CAAC,QAAQ,CAAC,EAAE,sBAAsB;IACxC,MAAM,CAAC,QAAQ,CAAC,YAAY,WAA8B;IAG1D,SAAS,CAAC,QAAQ,CAAC,yBAAyB,EAAE,oBAAoB,CAAC,wBAAwB,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAGlH,SAAS,CAAC,QAAQ,CAAC,kCAAkC,EAAE,oBAAoB,CAAC,iCAAiC,CAAC,CAAC;IAG/G,SAAS,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAG7C,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,iBAAiB,CAAC;IAGtD,OAAO,CAAC,eAAe,CAAkB;IAGzC,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IAGhD,OAAO,CAAC,YAAY,CAAe;IAEnC,SAAS,CAAC,kBAAkB,UAAQ;IAEpC,SAAS,CAAC,SAAS,UAAS;IAE5B,IAAI,iBAAiB,CAAC,iBAAiB,EAAE,OAAO,EAG/C;IAED,IAAI,iBAAiB,IAAI,OAAO,CAE/B;gBAGsB,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,SAAS,EACN,mBAAmB,EAAE,mBAAmB;cAiBtD,IAAI,IAAI,IAAI;IAOxB,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;cAKtB,UAAU,CAAC,KAAK,EAAE,SAAS,GAAG,KAAK,CAAC,SAAS;IAOhE,OAAO,CAAC,qBAAqB;IAiD7B,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,iBAAiB;IAQzB;;;OAGG;IACI,cAAc,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;cAiB9B,cAAc,IAAI,MAAM,GAAG,SAAS;YAOzC,iBAAiB;cAYZ,UAAU,CACzB,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,SAAS,GACjB,KAAK,CAAC,SAAS;IAelB,OAAO,CAAC,WAAW;IAuDnB,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,qBAAqB;IAS7B,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,kBAAkB;IA+B1B,OAAO,CAAC,2BAA2B;IAgBnC,SAAS,CAAC,iBAAiB,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,IAAI;CAQtG"}