@theia/ai-chat-ui 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 (123) hide show
  1. package/README.md +33 -0
  2. package/lib/browser/ai-chat-ui-contribution.d.ts +24 -0
  3. package/lib/browser/ai-chat-ui-contribution.d.ts.map +1 -0
  4. package/lib/browser/ai-chat-ui-contribution.js +161 -0
  5. package/lib/browser/ai-chat-ui-contribution.js.map +1 -0
  6. package/lib/browser/ai-chat-ui-frontend-module.d.ts +5 -0
  7. package/lib/browser/ai-chat-ui-frontend-module.d.ts.map +1 -0
  8. package/lib/browser/ai-chat-ui-frontend-module.js +87 -0
  9. package/lib/browser/ai-chat-ui-frontend-module.js.map +1 -0
  10. package/lib/browser/chat-input-widget.d.ts +32 -0
  11. package/lib/browser/chat-input-widget.d.ts.map +1 -0
  12. package/lib/browser/chat-input-widget.js +217 -0
  13. package/lib/browser/chat-input-widget.js.map +1 -0
  14. package/lib/browser/chat-node-toolbar-action-contribution.d.ts +47 -0
  15. package/lib/browser/chat-node-toolbar-action-contribution.d.ts.map +1 -0
  16. package/lib/browser/chat-node-toolbar-action-contribution.js +25 -0
  17. package/lib/browser/chat-node-toolbar-action-contribution.js.map +1 -0
  18. package/lib/browser/chat-response-part-renderer.d.ts +10 -0
  19. package/lib/browser/chat-response-part-renderer.d.ts.map +1 -0
  20. package/lib/browser/chat-response-part-renderer.js +20 -0
  21. package/lib/browser/chat-response-part-renderer.js.map +1 -0
  22. package/lib/browser/chat-response-renderer/ai-editor-manager.d.ts +36 -0
  23. package/lib/browser/chat-response-renderer/ai-editor-manager.d.ts.map +1 -0
  24. package/lib/browser/chat-response-renderer/ai-editor-manager.js +184 -0
  25. package/lib/browser/chat-response-renderer/ai-editor-manager.js.map +1 -0
  26. package/lib/browser/chat-response-renderer/code-part-renderer.d.ts +45 -0
  27. package/lib/browser/chat-response-renderer/code-part-renderer.d.ts.map +1 -0
  28. package/lib/browser/chat-response-renderer/code-part-renderer.js +190 -0
  29. package/lib/browser/chat-response-renderer/code-part-renderer.js.map +1 -0
  30. package/lib/browser/chat-response-renderer/command-part-renderer.d.ts +12 -0
  31. package/lib/browser/chat-response-renderer/command-part-renderer.d.ts.map +1 -0
  32. package/lib/browser/chat-response-renderer/command-part-renderer.js +70 -0
  33. package/lib/browser/chat-response-renderer/command-part-renderer.js.map +1 -0
  34. package/lib/browser/chat-response-renderer/error-part-renderer.d.ts +9 -0
  35. package/lib/browser/chat-response-renderer/error-part-renderer.d.ts.map +1 -0
  36. package/lib/browser/chat-response-renderer/error-part-renderer.js +40 -0
  37. package/lib/browser/chat-response-renderer/error-part-renderer.js.map +1 -0
  38. package/lib/browser/chat-response-renderer/horizontal-layout-part-renderer.d.ts +12 -0
  39. package/lib/browser/chat-response-renderer/horizontal-layout-part-renderer.d.ts.map +1 -0
  40. package/lib/browser/chat-response-renderer/horizontal-layout-part-renderer.js +54 -0
  41. package/lib/browser/chat-response-renderer/horizontal-layout-part-renderer.js.map +1 -0
  42. package/lib/browser/chat-response-renderer/index.d.ts +9 -0
  43. package/lib/browser/chat-response-renderer/index.d.ts.map +1 -0
  44. package/lib/browser/chat-response-renderer/index.js +27 -0
  45. package/lib/browser/chat-response-renderer/index.js.map +1 -0
  46. package/lib/browser/chat-response-renderer/markdown-part-renderer.d.ts +25 -0
  47. package/lib/browser/chat-response-renderer/markdown-part-renderer.d.ts.map +1 -0
  48. package/lib/browser/chat-response-renderer/markdown-part-renderer.js +89 -0
  49. package/lib/browser/chat-response-renderer/markdown-part-renderer.js.map +1 -0
  50. package/lib/browser/chat-response-renderer/question-part-renderer.d.ts +10 -0
  51. package/lib/browser/chat-response-renderer/question-part-renderer.d.ts.map +1 -0
  52. package/lib/browser/chat-response-renderer/question-part-renderer.js +43 -0
  53. package/lib/browser/chat-response-renderer/question-part-renderer.js.map +1 -0
  54. package/lib/browser/chat-response-renderer/text-part-renderer.d.ts +9 -0
  55. package/lib/browser/chat-response-renderer/text-part-renderer.d.ts.map +1 -0
  56. package/lib/browser/chat-response-renderer/text-part-renderer.js +41 -0
  57. package/lib/browser/chat-response-renderer/text-part-renderer.js.map +1 -0
  58. package/lib/browser/chat-response-renderer/text-part-renderer.spec.d.ts +2 -0
  59. package/lib/browser/chat-response-renderer/text-part-renderer.spec.d.ts.map +1 -0
  60. package/lib/browser/chat-response-renderer/text-part-renderer.spec.js +46 -0
  61. package/lib/browser/chat-response-renderer/text-part-renderer.spec.js.map +1 -0
  62. package/lib/browser/chat-response-renderer/toolcall-part-renderer.d.ts +12 -0
  63. package/lib/browser/chat-response-renderer/toolcall-part-renderer.d.ts.map +1 -0
  64. package/lib/browser/chat-response-renderer/toolcall-part-renderer.js +81 -0
  65. package/lib/browser/chat-response-renderer/toolcall-part-renderer.js.map +1 -0
  66. package/lib/browser/chat-tree-view/chat-view-tree-container.d.ts +4 -0
  67. package/lib/browser/chat-tree-view/chat-view-tree-container.d.ts.map +1 -0
  68. package/lib/browser/chat-tree-view/chat-view-tree-container.js +33 -0
  69. package/lib/browser/chat-tree-view/chat-view-tree-container.js.map +1 -0
  70. package/lib/browser/chat-tree-view/chat-view-tree-widget.d.ts +56 -0
  71. package/lib/browser/chat-tree-view/chat-view-tree-widget.d.ts.map +1 -0
  72. package/lib/browser/chat-tree-view/chat-view-tree-widget.js +388 -0
  73. package/lib/browser/chat-tree-view/chat-view-tree-widget.js.map +1 -0
  74. package/lib/browser/chat-tree-view/index.d.ts +3 -0
  75. package/lib/browser/chat-tree-view/index.d.ts.map +1 -0
  76. package/lib/browser/chat-tree-view/index.js +21 -0
  77. package/lib/browser/chat-tree-view/index.js.map +1 -0
  78. package/lib/browser/chat-view-commands.d.ts +8 -0
  79. package/lib/browser/chat-view-commands.d.ts.map +1 -0
  80. package/lib/browser/chat-view-commands.js +44 -0
  81. package/lib/browser/chat-view-commands.js.map +1 -0
  82. package/lib/browser/chat-view-contribution.d.ts +18 -0
  83. package/lib/browser/chat-view-contribution.d.ts.map +1 -0
  84. package/lib/browser/chat-view-contribution.js +153 -0
  85. package/lib/browser/chat-view-contribution.js.map +1 -0
  86. package/lib/browser/chat-view-language-contribution.d.ts +20 -0
  87. package/lib/browser/chat-view-language-contribution.d.ts.map +1 -0
  88. package/lib/browser/chat-view-language-contribution.js +98 -0
  89. package/lib/browser/chat-view-language-contribution.js.map +1 -0
  90. package/lib/browser/chat-view-widget-toolbar-contribution.d.ts +11 -0
  91. package/lib/browser/chat-view-widget-toolbar-contribution.d.ts.map +1 -0
  92. package/lib/browser/chat-view-widget-toolbar-contribution.js +65 -0
  93. package/lib/browser/chat-view-widget-toolbar-contribution.js.map +1 -0
  94. package/lib/browser/chat-view-widget.d.ts +41 -0
  95. package/lib/browser/chat-view-widget.d.ts.map +1 -0
  96. package/lib/browser/chat-view-widget.js +182 -0
  97. package/lib/browser/chat-view-widget.js.map +1 -0
  98. package/package.json +59 -0
  99. package/src/browser/ai-chat-ui-contribution.ts +171 -0
  100. package/src/browser/ai-chat-ui-frontend-module.ts +105 -0
  101. package/src/browser/chat-input-widget.tsx +262 -0
  102. package/src/browser/chat-node-toolbar-action-contribution.ts +63 -0
  103. package/src/browser/chat-response-part-renderer.ts +25 -0
  104. package/src/browser/chat-response-renderer/ai-editor-manager.ts +183 -0
  105. package/src/browser/chat-response-renderer/code-part-renderer.tsx +211 -0
  106. package/src/browser/chat-response-renderer/command-part-renderer.tsx +60 -0
  107. package/src/browser/chat-response-renderer/error-part-renderer.tsx +35 -0
  108. package/src/browser/chat-response-renderer/horizontal-layout-part-renderer.tsx +59 -0
  109. package/src/browser/chat-response-renderer/index.ts +23 -0
  110. package/src/browser/chat-response-renderer/markdown-part-renderer.tsx +92 -0
  111. package/src/browser/chat-response-renderer/question-part-renderer.tsx +59 -0
  112. package/src/browser/chat-response-renderer/text-part-renderer.spec.ts +50 -0
  113. package/src/browser/chat-response-renderer/text-part-renderer.tsx +35 -0
  114. package/src/browser/chat-response-renderer/toolcall-part-renderer.tsx +89 -0
  115. package/src/browser/chat-tree-view/chat-view-tree-container.ts +32 -0
  116. package/src/browser/chat-tree-view/chat-view-tree-widget.tsx +526 -0
  117. package/src/browser/chat-tree-view/index.ts +18 -0
  118. package/src/browser/chat-view-commands.ts +45 -0
  119. package/src/browser/chat-view-contribution.ts +154 -0
  120. package/src/browser/chat-view-language-contribution.ts +141 -0
  121. package/src/browser/chat-view-widget-toolbar-contribution.tsx +54 -0
  122. package/src/browser/chat-view-widget.tsx +194 -0
  123. package/src/browser/style/index.css +415 -0
@@ -0,0 +1,81 @@
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.ToolCallPartRenderer = 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 ToolCallPartRenderer = class ToolCallPartRenderer {
24
+ canHandle(response) {
25
+ if (common_1.ToolCallChatResponseContent.is(response)) {
26
+ return 10;
27
+ }
28
+ return -1;
29
+ }
30
+ render(response) {
31
+ return (React.createElement("h4", { className: 'theia-toolCall' }, response.finished ? (React.createElement("details", null,
32
+ React.createElement("summary", null,
33
+ "Ran ",
34
+ response.name,
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
+ }
62
+ }
63
+ tryPrettyPrintJson(response) {
64
+ let responseContent = response.result;
65
+ try {
66
+ if (response.result) {
67
+ responseContent = JSON.stringify(JSON.parse(response.result), undefined, 2);
68
+ }
69
+ }
70
+ catch (e) {
71
+ // fall through
72
+ }
73
+ return responseContent;
74
+ }
75
+ };
76
+ exports.ToolCallPartRenderer = ToolCallPartRenderer;
77
+ exports.ToolCallPartRenderer = ToolCallPartRenderer = tslib_1.__decorate([
78
+ (0, inversify_1.injectable)()
79
+ ], ToolCallPartRenderer);
80
+ const Spinner = () => (React.createElement("i", { className: "fa fa-spinner fa-spin" }));
81
+ //# sourceMappingURL=toolcall-part-renderer.js.map
@@ -0,0 +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;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,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;AA7DY,oDAAoB;+BAApB,oBAAoB;IADhC,IAAA,sBAAU,GAAE;GACA,oBAAoB,CA6DhC;AAED,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,CAClB,2BAAG,SAAS,EAAC,uBAAuB,GAAK,CAC5C,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { interfaces } from '@theia/core/shared/inversify';
2
+ import { ChatViewTreeWidget } from './chat-view-tree-widget';
3
+ export declare function createChatViewTreeWidget(parent: interfaces.Container): ChatViewTreeWidget;
4
+ //# sourceMappingURL=chat-view-tree-container.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-view-tree-container.d.ts","sourceRoot":"","sources":["../../../src/browser/chat-tree-view/chat-view-tree-container.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAO7D,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,UAAU,CAAC,SAAS,GAAG,kBAAkB,CAMzF"}
@@ -0,0 +1,33 @@
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.createChatViewTreeWidget = void 0;
19
+ const browser_1 = require("@theia/core/lib/browser");
20
+ const chat_view_tree_widget_1 = require("./chat-view-tree-widget");
21
+ const CHAT_VIEW_TREE_PROPS = {
22
+ multiSelect: false,
23
+ search: false,
24
+ };
25
+ function createChatViewTreeWidget(parent) {
26
+ const child = (0, browser_1.createTreeContainer)(parent, {
27
+ props: CHAT_VIEW_TREE_PROPS,
28
+ widget: chat_view_tree_widget_1.ChatViewTreeWidget,
29
+ });
30
+ return child.get(chat_view_tree_widget_1.ChatViewTreeWidget);
31
+ }
32
+ exports.createChatViewTreeWidget = createChatViewTreeWidget;
33
+ //# sourceMappingURL=chat-view-tree-container.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-view-tree-container.js","sourceRoot":"","sources":["../../../src/browser/chat-tree-view/chat-view-tree-container.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;AAEhF,qDAAyE;AAEzE,mEAA6D;AAE7D,MAAM,oBAAoB,GAAG;IACzB,WAAW,EAAE,KAAK;IAClB,MAAM,EAAE,KAAK;CACH,CAAC;AAEf,SAAgB,wBAAwB,CAAC,MAA4B;IACjE,MAAM,KAAK,GAAG,IAAA,6BAAmB,EAAC,MAAM,EAAE;QACtC,KAAK,EAAE,oBAAoB;QAC3B,MAAM,EAAE,0CAAkB;KAC7B,CAAC,CAAC;IACH,OAAO,KAAK,CAAC,GAAG,CAAC,0CAAkB,CAAC,CAAC;AACzC,CAAC;AAND,4DAMC"}
@@ -0,0 +1,56 @@
1
+ /// <reference types="react" />
2
+ import { ChatAgentService, ChatModel, ChatRequestModel, ChatResponseContent, ChatResponseModel } from '@theia/ai-chat';
3
+ import { ContributionProvider } from '@theia/core';
4
+ import { ContextMenuRenderer, NodeProps, TreeModel, TreeNode, TreeProps, TreeWidget } from '@theia/core/lib/browser';
5
+ import * as React from '@theia/core/shared/react';
6
+ import { ChatNodeToolbarActionContribution } from '../chat-node-toolbar-action-contribution';
7
+ import { ChatResponsePartRenderer } from '../chat-response-part-renderer';
8
+ import { AIVariableService } from '@theia/ai-core';
9
+ export interface RequestNode extends TreeNode {
10
+ request: ChatRequestModel;
11
+ }
12
+ export declare const isRequestNode: (node: TreeNode) => node is RequestNode;
13
+ export interface ResponseNode extends TreeNode {
14
+ response: ChatResponseModel;
15
+ }
16
+ export declare const isResponseNode: (node: TreeNode) => node is ResponseNode;
17
+ export declare class ChatViewTreeWidget extends TreeWidget {
18
+ static readonly ID = "chat-tree-widget";
19
+ static readonly CONTEXT_MENU: string[];
20
+ protected readonly chatResponsePartRenderers: ContributionProvider<ChatResponsePartRenderer<ChatResponseContent>>;
21
+ protected readonly chatNodeToolbarActionContributions: ContributionProvider<ChatNodeToolbarActionContribution>;
22
+ protected chatAgentService: ChatAgentService;
23
+ protected readonly variableService: AIVariableService;
24
+ private commandRegistry;
25
+ private hoverService;
26
+ protected _shouldScrollToEnd: boolean;
27
+ protected isEnabled: boolean;
28
+ set shouldScrollToEnd(shouldScrollToEnd: boolean);
29
+ get shouldScrollToEnd(): boolean;
30
+ constructor(props: TreeProps, model: TreeModel, contextMenuRenderer: ContextMenuRenderer);
31
+ protected init(): void;
32
+ setEnabled(enabled: boolean): void;
33
+ protected renderTree(model: TreeModel): React.ReactNode;
34
+ private renderDisabledMessage;
35
+ private renderLinkButton;
36
+ private mapRequestToNode;
37
+ private mapResponseToNode;
38
+ /**
39
+ * Tracks the ChatModel handed over.
40
+ * Tracking multiple chat models will result in a weird UI
41
+ */
42
+ trackChatModel(chatModel: ChatModel): void;
43
+ protected getScrollToRow(): number | undefined;
44
+ private recreateModelTree;
45
+ protected renderNode(node: TreeNode, props: NodeProps): React.ReactNode;
46
+ private renderAgent;
47
+ private getAgentLabel;
48
+ private getAgent;
49
+ private getAgentIconClassName;
50
+ private renderDetail;
51
+ private renderChatRequest;
52
+ private renderChatResponse;
53
+ private getChatResponsePartRenderer;
54
+ protected handleContextMenu(node: TreeNode | undefined, event: React.MouseEvent<HTMLElement>): void;
55
+ }
56
+ //# sourceMappingURL=chat-view-tree-widget.d.ts.map
@@ -0,0 +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,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,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,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;IASzB,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"}
@@ -0,0 +1,388 @@
1
+ "use strict";
2
+ var ChatViewTreeWidget_1;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.ChatViewTreeWidget = exports.isResponseNode = exports.isRequestNode = void 0;
5
+ const tslib_1 = require("tslib");
6
+ // *****************************************************************************
7
+ // Copyright (C) 2024 EclipseSource GmbH.
8
+ //
9
+ // This program and the accompanying materials are made available under the
10
+ // terms of the Eclipse Public License v. 2.0 which is available at
11
+ // http://www.eclipse.org/legal/epl-2.0.
12
+ //
13
+ // This Source Code may also be made available under the following Secondary
14
+ // Licenses when the conditions for such availability set forth in the Eclipse
15
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
16
+ // with the GNU Classpath Exception which is available at
17
+ // https://www.gnu.org/software/classpath/license.html.
18
+ //
19
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
20
+ // *****************************************************************************
21
+ const ai_chat_1 = require("@theia/ai-chat");
22
+ const core_1 = require("@theia/core");
23
+ const browser_1 = require("@theia/core/lib/browser");
24
+ const inversify_1 = require("@theia/core/shared/inversify");
25
+ const React = require("@theia/core/shared/react");
26
+ const chat_node_toolbar_action_contribution_1 = require("../chat-node-toolbar-action-contribution");
27
+ const chat_response_part_renderer_1 = require("../chat-response-part-renderer");
28
+ const markdown_part_renderer_1 = require("../chat-response-renderer/markdown-part-renderer");
29
+ const ai_core_1 = require("@theia/ai-core");
30
+ const isRequestNode = (node) => 'request' in node;
31
+ exports.isRequestNode = isRequestNode;
32
+ const isResponseNode = (node) => 'response' in node;
33
+ exports.isResponseNode = isResponseNode;
34
+ function isEnterKey(e) {
35
+ var _a;
36
+ return browser_1.Key.ENTER.keyCode === ((_a = browser_1.KeyCode.createKeyCode(e.nativeEvent).key) === null || _a === void 0 ? void 0 : _a.keyCode);
37
+ }
38
+ let ChatViewTreeWidget = ChatViewTreeWidget_1 = class ChatViewTreeWidget extends browser_1.TreeWidget {
39
+ set shouldScrollToEnd(shouldScrollToEnd) {
40
+ this._shouldScrollToEnd = shouldScrollToEnd;
41
+ this.shouldScrollToRow = this._shouldScrollToEnd;
42
+ }
43
+ get shouldScrollToEnd() {
44
+ return this._shouldScrollToEnd;
45
+ }
46
+ constructor(props, model, contextMenuRenderer) {
47
+ super(props, model, contextMenuRenderer);
48
+ this._shouldScrollToEnd = true;
49
+ this.isEnabled = false;
50
+ this.id = ChatViewTreeWidget_1.ID;
51
+ this.title.closable = false;
52
+ model.root = {
53
+ id: 'ChatTree',
54
+ name: 'ChatRootNode',
55
+ parent: undefined,
56
+ visible: false,
57
+ children: [],
58
+ };
59
+ }
60
+ init() {
61
+ super.init();
62
+ this.id = ChatViewTreeWidget_1.ID + '-treeContainer';
63
+ this.addClass('treeContainer');
64
+ }
65
+ setEnabled(enabled) {
66
+ this.isEnabled = enabled;
67
+ this.update();
68
+ }
69
+ renderTree(model) {
70
+ if (this.isEnabled) {
71
+ return super.renderTree(model);
72
+ }
73
+ return this.renderDisabledMessage();
74
+ }
75
+ renderDisabledMessage() {
76
+ return React.createElement("div", { className: 'theia-ResponseNode' },
77
+ React.createElement("div", { className: 'theia-ResponseNode-Content', key: 'disabled-message' },
78
+ React.createElement("div", { className: "disable-message" },
79
+ React.createElement("span", { className: "section-header" }, " \uD83D\uDE80 Experimental AI Feature Available!"),
80
+ React.createElement("div", { className: "section-title" },
81
+ React.createElement("p", null,
82
+ React.createElement("code", null, "Currently, all AI Features are disabled!"))),
83
+ React.createElement("div", { className: "section-title" },
84
+ React.createElement("p", null, "How to Enable Experimental AI Features:")),
85
+ React.createElement("div", { className: "section-content" },
86
+ React.createElement("p", null,
87
+ "To enable the experimental AI features, please go to \u00A0",
88
+ this.renderLinkButton('the settings menu', browser_1.CommonCommands.OPEN_PREFERENCES.id),
89
+ "\u00A0and locate the ",
90
+ React.createElement("strong", null, "AI Features"),
91
+ " section."),
92
+ React.createElement("ol", null,
93
+ React.createElement("li", null,
94
+ "Toggle the switch for ",
95
+ React.createElement("strong", null, "'Ai-features: Enable'"),
96
+ "."),
97
+ React.createElement("li", null,
98
+ "Provide at least one LLM provider (e.g. OpenAI), also see ",
99
+ React.createElement("a", { href: "https://theia-ide.org/docs/user_ai/", target: "_blank" }, "the documentation"),
100
+ "for more information.")),
101
+ React.createElement("p", null, "This will activate the new AI capabilities in the app. Please remember, these features are still in development, so they may change or be unstable. \uD83D\uDEA7")),
102
+ React.createElement("div", { className: "section-title" },
103
+ React.createElement("p", null, "Currently Supported Views and Features:")),
104
+ React.createElement("div", { className: "section-content" },
105
+ React.createElement("p", null, "Once the experimental AI features are enabled, you can access the following views and features:"),
106
+ React.createElement("ul", null,
107
+ React.createElement("li", null, "Code Completion"),
108
+ React.createElement("li", null, "Terminal Assistance (via CTRL+I in a terminal)"),
109
+ React.createElement("li", null,
110
+ "This Chat View (features the following agents):",
111
+ React.createElement("ul", null,
112
+ React.createElement("li", null, "Universal Chat Agent"),
113
+ React.createElement("li", null, "Workspace Chat Agent"),
114
+ React.createElement("li", null, "Command Chat Agent"),
115
+ React.createElement("li", null, "Orchestrator Chat Agent"))),
116
+ React.createElement("li", null, this.renderLinkButton('AI History View', 'aiHistory:open')),
117
+ React.createElement("li", null, this.renderLinkButton('AI Configuration View', 'aiConfiguration:open'))),
118
+ React.createElement("p", null,
119
+ "See ",
120
+ React.createElement("a", { href: "https://theia-ide.org/docs/user_ai/", target: "_blank" }, "the documentation"),
121
+ " for more information.")))));
122
+ }
123
+ renderLinkButton(title, openCommandId) {
124
+ return React.createElement("a", { role: 'button', tabIndex: 0, onClick: () => this.commandRegistry.executeCommand(openCommandId), onKeyDown: e => isEnterKey(e) && this.commandRegistry.executeCommand(openCommandId) }, title);
125
+ }
126
+ mapRequestToNode(request) {
127
+ return {
128
+ id: request.id,
129
+ parent: this.model.root,
130
+ request
131
+ };
132
+ }
133
+ mapResponseToNode(response) {
134
+ return {
135
+ id: response.id,
136
+ parent: this.model.root,
137
+ response
138
+ };
139
+ }
140
+ /**
141
+ * Tracks the ChatModel handed over.
142
+ * Tracking multiple chat models will result in a weird UI
143
+ */
144
+ trackChatModel(chatModel) {
145
+ this.recreateModelTree(chatModel);
146
+ chatModel.getRequests().forEach(request => {
147
+ if (!request.response.isComplete) {
148
+ request.response.onDidChange(() => this.scheduleUpdateScrollToRow());
149
+ }
150
+ });
151
+ this.toDispose.push(chatModel.onDidChange(event => {
152
+ this.recreateModelTree(chatModel);
153
+ if (event.kind === 'addRequest' && !event.request.response.isComplete) {
154
+ event.request.response.onDidChange(() => this.scheduleUpdateScrollToRow());
155
+ }
156
+ }));
157
+ }
158
+ getScrollToRow() {
159
+ if (this.shouldScrollToEnd) {
160
+ return this.rows.size;
161
+ }
162
+ return super.getScrollToRow();
163
+ }
164
+ async recreateModelTree(chatModel) {
165
+ if (browser_1.CompositeTreeNode.is(this.model.root)) {
166
+ const nodes = [];
167
+ chatModel.getRequests().forEach(request => {
168
+ nodes.push(this.mapRequestToNode(request));
169
+ nodes.push(this.mapResponseToNode(request.response));
170
+ });
171
+ this.model.root.children = nodes;
172
+ this.model.refresh();
173
+ }
174
+ }
175
+ renderNode(node, props) {
176
+ if (!browser_1.TreeNode.isVisible(node)) {
177
+ return undefined;
178
+ }
179
+ if (!((0, exports.isRequestNode)(node) || (0, exports.isResponseNode)(node))) {
180
+ return super.renderNode(node, props);
181
+ }
182
+ return React.createElement(React.Fragment, { key: node.id },
183
+ React.createElement("div", { className: 'theia-ChatNode', onContextMenu: e => this.handleContextMenu(node, e) },
184
+ this.renderAgent(node),
185
+ this.renderDetail(node)));
186
+ }
187
+ renderAgent(node) {
188
+ var _a;
189
+ const inProgress = (0, exports.isResponseNode)(node) && !node.response.isComplete && !node.response.isCanceled && !node.response.isError;
190
+ const waitingForInput = (0, exports.isResponseNode)(node) && node.response.isWaitingForInput;
191
+ const toolbarContributions = !inProgress
192
+ ? this.chatNodeToolbarActionContributions.getContributions()
193
+ .flatMap(c => c.getToolbarActions(node))
194
+ .filter(action => this.commandRegistry.isEnabled(action.commandId, node))
195
+ .sort((a, b) => { var _a, _b; return ((_a = a.priority) !== null && _a !== void 0 ? _a : 0) - ((_b = b.priority) !== null && _b !== void 0 ? _b : 0); })
196
+ : [];
197
+ const agentLabel = React.createRef();
198
+ const agentDescription = (_a = this.getAgent(node)) === null || _a === void 0 ? void 0 : _a.description;
199
+ return React.createElement(React.Fragment, null,
200
+ React.createElement("div", { className: 'theia-ChatNodeHeader' },
201
+ React.createElement("div", { className: `theia-AgentAvatar ${this.getAgentIconClassName(node)}` }),
202
+ React.createElement("h3", { ref: agentLabel, className: 'theia-AgentLabel', onMouseEnter: () => {
203
+ if (agentDescription) {
204
+ this.hoverService.requestHover({
205
+ content: agentDescription,
206
+ target: agentLabel.current,
207
+ position: 'right'
208
+ });
209
+ }
210
+ } }, this.getAgentLabel(node)),
211
+ inProgress && React.createElement("span", { className: 'theia-ChatContentInProgress' }, "Generating"),
212
+ inProgress && waitingForInput && React.createElement("span", { className: 'theia-ChatContentInProgress' }, "Waiting for input"),
213
+ React.createElement("div", { className: 'theia-ChatNodeToolbar' }, !inProgress &&
214
+ toolbarContributions.length > 0 &&
215
+ toolbarContributions.map(action => React.createElement("span", { key: action.commandId, className: `theia-ChatNodeToolbarAction ${action.icon}`, title: action.tooltip, onClick: e => {
216
+ e.stopPropagation();
217
+ this.commandRegistry.executeCommand(action.commandId, node);
218
+ }, onKeyDown: e => {
219
+ if (isEnterKey(e)) {
220
+ e.stopPropagation();
221
+ this.commandRegistry.executeCommand(action.commandId, node);
222
+ }
223
+ }, role: 'button' })))));
224
+ }
225
+ getAgentLabel(node) {
226
+ var _a, _b;
227
+ if ((0, exports.isRequestNode)(node)) {
228
+ // TODO find user name
229
+ return 'You';
230
+ }
231
+ return (_b = (_a = this.getAgent(node)) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : 'AI';
232
+ }
233
+ getAgent(node) {
234
+ if ((0, exports.isRequestNode)(node)) {
235
+ return undefined;
236
+ }
237
+ return node.response.agentId ? this.chatAgentService.getAgent(node.response.agentId) : undefined;
238
+ }
239
+ getAgentIconClassName(node) {
240
+ var _a;
241
+ if ((0, exports.isRequestNode)(node)) {
242
+ return (0, browser_1.codicon)('account');
243
+ }
244
+ const agent = node.response.agentId ? this.chatAgentService.getAgent(node.response.agentId) : undefined;
245
+ return (_a = agent === null || agent === void 0 ? void 0 : agent.iconClass) !== null && _a !== void 0 ? _a : (0, browser_1.codicon)('copilot');
246
+ }
247
+ renderDetail(node) {
248
+ if ((0, exports.isRequestNode)(node)) {
249
+ return this.renderChatRequest(node);
250
+ }
251
+ if ((0, exports.isResponseNode)(node)) {
252
+ return this.renderChatResponse(node);
253
+ }
254
+ ;
255
+ }
256
+ renderChatRequest(node) {
257
+ return React.createElement(ChatRequestRender, { node: node, hoverService: this.hoverService, chatAgentService: this.chatAgentService, variableService: this.variableService });
258
+ }
259
+ renderChatResponse(node) {
260
+ return (React.createElement("div", { className: 'theia-ResponseNode' },
261
+ !node.response.isComplete
262
+ && node.response.response.content.length === 0
263
+ && node.response.progressMessages
264
+ .filter(c => c.show === 'untilFirstContent')
265
+ .map((c, i) => React.createElement(ProgressMessage, { ...c, key: `${node.id}-progress-untilFirstContent-${i}` })),
266
+ node.response.response.content.map((c, i) => React.createElement("div", { className: 'theia-ResponseNode-Content', key: `${node.id}-content-${i}` }, this.getChatResponsePartRenderer(c, node))),
267
+ !node.response.isComplete
268
+ && node.response.progressMessages
269
+ .filter(c => c.show === 'whileIncomplete')
270
+ .map((c, i) => React.createElement(ProgressMessage, { ...c, key: `${node.id}-progress-whileIncomplete-${i}` })),
271
+ node.response.progressMessages
272
+ .filter(c => c.show === 'forever')
273
+ .map((c, i) => React.createElement(ProgressMessage, { ...c, key: `${node.id}-progress-afterComplete-${i}` }))));
274
+ }
275
+ getChatResponsePartRenderer(content, node) {
276
+ const renderer = this.chatResponsePartRenderers.getContributions().reduce((prev, current) => {
277
+ const prio = current.canHandle(content);
278
+ if (prio > prev[0]) {
279
+ return [prio, current];
280
+ }
281
+ return prev;
282
+ }, [-1, undefined])[1];
283
+ if (!renderer) {
284
+ console.error('No renderer found for content', content);
285
+ return React.createElement("div", null, "Error: No renderer found");
286
+ }
287
+ return renderer.render(content, node);
288
+ }
289
+ handleContextMenu(node, event) {
290
+ this.contextMenuRenderer.render({
291
+ menuPath: ChatViewTreeWidget_1.CONTEXT_MENU,
292
+ anchor: { x: event.clientX, y: event.clientY },
293
+ args: [node]
294
+ });
295
+ event.preventDefault();
296
+ }
297
+ };
298
+ exports.ChatViewTreeWidget = ChatViewTreeWidget;
299
+ ChatViewTreeWidget.ID = 'chat-tree-widget';
300
+ ChatViewTreeWidget.CONTEXT_MENU = ['chat-tree-context-menu'];
301
+ tslib_1.__decorate([
302
+ (0, inversify_1.inject)(core_1.ContributionProvider),
303
+ (0, inversify_1.named)(chat_response_part_renderer_1.ChatResponsePartRenderer),
304
+ tslib_1.__metadata("design:type", Object)
305
+ ], ChatViewTreeWidget.prototype, "chatResponsePartRenderers", void 0);
306
+ tslib_1.__decorate([
307
+ (0, inversify_1.inject)(core_1.ContributionProvider),
308
+ (0, inversify_1.named)(chat_node_toolbar_action_contribution_1.ChatNodeToolbarActionContribution),
309
+ tslib_1.__metadata("design:type", Object)
310
+ ], ChatViewTreeWidget.prototype, "chatNodeToolbarActionContributions", void 0);
311
+ tslib_1.__decorate([
312
+ (0, inversify_1.inject)(ai_chat_1.ChatAgentService),
313
+ tslib_1.__metadata("design:type", Object)
314
+ ], ChatViewTreeWidget.prototype, "chatAgentService", void 0);
315
+ tslib_1.__decorate([
316
+ (0, inversify_1.inject)(ai_core_1.AIVariableService),
317
+ tslib_1.__metadata("design:type", Object)
318
+ ], ChatViewTreeWidget.prototype, "variableService", void 0);
319
+ tslib_1.__decorate([
320
+ (0, inversify_1.inject)(core_1.CommandRegistry),
321
+ tslib_1.__metadata("design:type", core_1.CommandRegistry)
322
+ ], ChatViewTreeWidget.prototype, "commandRegistry", void 0);
323
+ tslib_1.__decorate([
324
+ (0, inversify_1.inject)(browser_1.HoverService),
325
+ tslib_1.__metadata("design:type", browser_1.HoverService)
326
+ ], ChatViewTreeWidget.prototype, "hoverService", void 0);
327
+ tslib_1.__decorate([
328
+ (0, inversify_1.postConstruct)(),
329
+ tslib_1.__metadata("design:type", Function),
330
+ tslib_1.__metadata("design:paramtypes", []),
331
+ tslib_1.__metadata("design:returntype", void 0)
332
+ ], ChatViewTreeWidget.prototype, "init", null);
333
+ exports.ChatViewTreeWidget = ChatViewTreeWidget = ChatViewTreeWidget_1 = tslib_1.__decorate([
334
+ (0, inversify_1.injectable)(),
335
+ tslib_1.__param(0, (0, inversify_1.inject)(browser_1.TreeProps)),
336
+ tslib_1.__param(1, (0, inversify_1.inject)(browser_1.TreeModel)),
337
+ tslib_1.__param(2, (0, inversify_1.inject)(browser_1.ContextMenuRenderer)),
338
+ tslib_1.__metadata("design:paramtypes", [Object, Object, browser_1.ContextMenuRenderer])
339
+ ], ChatViewTreeWidget);
340
+ const ChatRequestRender = ({ node, hoverService, chatAgentService, variableService }) => {
341
+ const parts = node.request.message.parts;
342
+ return (React.createElement("div", { className: "theia-RequestNode" },
343
+ React.createElement("p", null, parts.map((part, index) => {
344
+ var _a, _b;
345
+ if (part instanceof ai_chat_1.ParsedChatRequestAgentPart || part instanceof ai_chat_1.ParsedChatRequestVariablePart) {
346
+ let description = undefined;
347
+ let className = '';
348
+ if (part instanceof ai_chat_1.ParsedChatRequestAgentPart) {
349
+ description = (_a = chatAgentService.getAgent(part.agentId)) === null || _a === void 0 ? void 0 : _a.description;
350
+ className = 'theia-RequestNode-AgentLabel';
351
+ }
352
+ else if (part instanceof ai_chat_1.ParsedChatRequestVariablePart) {
353
+ description = (_b = variableService.getVariable(part.variableName)) === null || _b === void 0 ? void 0 : _b.description;
354
+ className = 'theia-RequestNode-VariableLabel';
355
+ }
356
+ return (React.createElement(HoverableLabel, { key: index, text: part.text, description: description, hoverService: hoverService, className: className }));
357
+ }
358
+ else {
359
+ // maintain the leading and trailing spaces with explicit `&nbsp;`, otherwise they would get trimmed by the markdown renderer
360
+ const ref = (0, markdown_part_renderer_1.useMarkdownRendering)(part.text.replace(/^\s|\s$/g, '&nbsp;'), true);
361
+ return (React.createElement("span", { key: index, ref: ref }));
362
+ }
363
+ }))));
364
+ };
365
+ const HoverableLabel = ({ text, description, hoverService, className }) => {
366
+ const spanRef = React.createRef();
367
+ return (React.createElement("span", { className: className, ref: spanRef, onMouseEnter: () => {
368
+ if (description) {
369
+ hoverService.requestHover({
370
+ content: description,
371
+ target: spanRef.current,
372
+ position: 'right'
373
+ });
374
+ }
375
+ } }, text));
376
+ };
377
+ const ProgressMessage = (c) => (React.createElement("div", { className: 'theia-ResponseNode-ProgressMessage' },
378
+ React.createElement(Indicator, { ...c }),
379
+ " ",
380
+ c.content));
381
+ const Indicator = (progressMessage) => (React.createElement("span", { className: 'theia-ResponseNode-ProgressMessage-Indicator' },
382
+ progressMessage.status === 'inProgress' &&
383
+ React.createElement("i", { className: 'fa fa-spinner fa-spin ' + progressMessage.status }),
384
+ progressMessage.status === 'completed' &&
385
+ React.createElement("i", { className: 'fa fa-check ' + progressMessage.status }),
386
+ progressMessage.status === 'failed' &&
387
+ React.createElement("i", { className: 'fa fa-warning ' + progressMessage.status })));
388
+ //# sourceMappingURL=chat-view-tree-widget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-view-tree-widget.js","sourceRoot":"","sources":["../../../src/browser/chat-tree-view/chat-view-tree-widget.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export * from './chat-view-tree-container';
2
+ export * from './chat-view-tree-widget';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/browser/chat-tree-view/index.ts"],"names":[],"mappings":"AAgBA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC"}
@@ -0,0 +1,21 @@
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
+ const tslib_1 = require("tslib");
19
+ tslib_1.__exportStar(require("./chat-view-tree-container"), exports);
20
+ tslib_1.__exportStar(require("./chat-view-tree-widget"), exports);
21
+ //# sourceMappingURL=index.js.map