@theia/ai-chat-ui 1.54.0

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 (118) hide show
  1. package/README.md +32 -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 +83 -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 +205 -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 +186 -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 +17 -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 +70 -0
  49. package/lib/browser/chat-response-renderer/markdown-part-renderer.js.map +1 -0
  50. package/lib/browser/chat-response-renderer/text-part-renderer.d.ts +9 -0
  51. package/lib/browser/chat-response-renderer/text-part-renderer.d.ts.map +1 -0
  52. package/lib/browser/chat-response-renderer/text-part-renderer.js +41 -0
  53. package/lib/browser/chat-response-renderer/text-part-renderer.js.map +1 -0
  54. package/lib/browser/chat-response-renderer/text-part-renderer.spec.d.ts +2 -0
  55. package/lib/browser/chat-response-renderer/text-part-renderer.spec.d.ts.map +1 -0
  56. package/lib/browser/chat-response-renderer/text-part-renderer.spec.js +46 -0
  57. package/lib/browser/chat-response-renderer/text-part-renderer.spec.js.map +1 -0
  58. package/lib/browser/chat-response-renderer/toolcall-part-renderer.d.ts +9 -0
  59. package/lib/browser/chat-response-renderer/toolcall-part-renderer.d.ts.map +1 -0
  60. package/lib/browser/chat-response-renderer/toolcall-part-renderer.js +49 -0
  61. package/lib/browser/chat-response-renderer/toolcall-part-renderer.js.map +1 -0
  62. package/lib/browser/chat-tree-view/chat-view-tree-container.d.ts +4 -0
  63. package/lib/browser/chat-tree-view/chat-view-tree-container.d.ts.map +1 -0
  64. package/lib/browser/chat-tree-view/chat-view-tree-container.js +33 -0
  65. package/lib/browser/chat-tree-view/chat-view-tree-container.js.map +1 -0
  66. package/lib/browser/chat-tree-view/chat-view-tree-widget.d.ts +53 -0
  67. package/lib/browser/chat-tree-view/chat-view-tree-widget.d.ts.map +1 -0
  68. package/lib/browser/chat-tree-view/chat-view-tree-widget.js +324 -0
  69. package/lib/browser/chat-tree-view/chat-view-tree-widget.js.map +1 -0
  70. package/lib/browser/chat-tree-view/index.d.ts +3 -0
  71. package/lib/browser/chat-tree-view/index.d.ts.map +1 -0
  72. package/lib/browser/chat-tree-view/index.js +21 -0
  73. package/lib/browser/chat-tree-view/index.js.map +1 -0
  74. package/lib/browser/chat-view-commands.d.ts +8 -0
  75. package/lib/browser/chat-view-commands.d.ts.map +1 -0
  76. package/lib/browser/chat-view-commands.js +44 -0
  77. package/lib/browser/chat-view-commands.js.map +1 -0
  78. package/lib/browser/chat-view-contribution.d.ts +18 -0
  79. package/lib/browser/chat-view-contribution.d.ts.map +1 -0
  80. package/lib/browser/chat-view-contribution.js +153 -0
  81. package/lib/browser/chat-view-contribution.js.map +1 -0
  82. package/lib/browser/chat-view-language-contribution.d.ts +20 -0
  83. package/lib/browser/chat-view-language-contribution.d.ts.map +1 -0
  84. package/lib/browser/chat-view-language-contribution.js +98 -0
  85. package/lib/browser/chat-view-language-contribution.js.map +1 -0
  86. package/lib/browser/chat-view-widget-toolbar-contribution.d.ts +11 -0
  87. package/lib/browser/chat-view-widget-toolbar-contribution.d.ts.map +1 -0
  88. package/lib/browser/chat-view-widget-toolbar-contribution.js +65 -0
  89. package/lib/browser/chat-view-widget-toolbar-contribution.js.map +1 -0
  90. package/lib/browser/chat-view-widget.d.ts +41 -0
  91. package/lib/browser/chat-view-widget.d.ts.map +1 -0
  92. package/lib/browser/chat-view-widget.js +182 -0
  93. package/lib/browser/chat-view-widget.js.map +1 -0
  94. package/package.json +59 -0
  95. package/src/browser/ai-chat-ui-contribution.ts +171 -0
  96. package/src/browser/ai-chat-ui-frontend-module.ts +101 -0
  97. package/src/browser/chat-input-widget.tsx +247 -0
  98. package/src/browser/chat-node-toolbar-action-contribution.ts +63 -0
  99. package/src/browser/chat-response-part-renderer.ts +25 -0
  100. package/src/browser/chat-response-renderer/ai-editor-manager.ts +183 -0
  101. package/src/browser/chat-response-renderer/code-part-renderer.tsx +208 -0
  102. package/src/browser/chat-response-renderer/command-part-renderer.tsx +60 -0
  103. package/src/browser/chat-response-renderer/error-part-renderer.tsx +35 -0
  104. package/src/browser/chat-response-renderer/horizontal-layout-part-renderer.tsx +59 -0
  105. package/src/browser/chat-response-renderer/index.ts +23 -0
  106. package/src/browser/chat-response-renderer/markdown-part-renderer.tsx +71 -0
  107. package/src/browser/chat-response-renderer/text-part-renderer.spec.ts +50 -0
  108. package/src/browser/chat-response-renderer/text-part-renderer.tsx +35 -0
  109. package/src/browser/chat-response-renderer/toolcall-part-renderer.tsx +49 -0
  110. package/src/browser/chat-tree-view/chat-view-tree-container.ts +32 -0
  111. package/src/browser/chat-tree-view/chat-view-tree-widget.tsx +410 -0
  112. package/src/browser/chat-tree-view/index.ts +18 -0
  113. package/src/browser/chat-view-commands.ts +45 -0
  114. package/src/browser/chat-view-contribution.ts +154 -0
  115. package/src/browser/chat-view-language-contribution.ts +141 -0
  116. package/src/browser/chat-view-widget-toolbar-contribution.tsx +54 -0
  117. package/src/browser/chat-view-widget.tsx +194 -0
  118. package/src/browser/style/index.css +328 -0
@@ -0,0 +1,70 @@
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 : 'Execute';
34
+ if (!response.customCallback && response.command) {
35
+ const isCommandEnabled = this.commandRegistry.isEnabled(response.command.id);
36
+ if (!isCommandEnabled) {
37
+ return React.createElement("div", null,
38
+ "The command has the id \"",
39
+ response.command.id,
40
+ "\" but it is not executable from the Chat window.");
41
+ }
42
+ }
43
+ return React.createElement("button", { className: 'theia-button main', onClick: this.onCommand.bind(this, response) }, label);
44
+ }
45
+ onCommand(arg) {
46
+ var _a;
47
+ if (arg.customCallback) {
48
+ arg.customCallback.callback().catch(e => { console.error(e); });
49
+ }
50
+ else if (arg.command) {
51
+ this.commandService.executeCommand(arg.command.id, ...((_a = arg.arguments) !== null && _a !== void 0 ? _a : [])).catch(e => { console.error(e); });
52
+ }
53
+ else {
54
+ console.warn('No command or custom callback provided in command chat response content');
55
+ }
56
+ }
57
+ };
58
+ exports.CommandPartRenderer = CommandPartRenderer;
59
+ tslib_1.__decorate([
60
+ (0, inversify_1.inject)(core_1.CommandService),
61
+ tslib_1.__metadata("design:type", Object)
62
+ ], CommandPartRenderer.prototype, "commandService", void 0);
63
+ tslib_1.__decorate([
64
+ (0, inversify_1.inject)(core_1.CommandRegistry),
65
+ tslib_1.__metadata("design:type", core_1.CommandRegistry)
66
+ ], CommandPartRenderer.prototype, "commandRegistry", void 0);
67
+ exports.CommandPartRenderer = CommandPartRenderer = tslib_1.__decorate([
68
+ (0, inversify_1.injectable)()
69
+ ], CommandPartRenderer);
70
+ //# 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,sCAA8D;AAGvD,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,SAAS,CAAC;QAChC,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;;oBAA8B,QAAQ,CAAC,OAAO,CAAC,EAAE;wEAAuD,CAAC;YAEpH,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;AAnCY,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,CAmC/B"}
@@ -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"}
@@ -0,0 +1,54 @@
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.HorizontalLayoutPartRenderer = void 0;
19
+ const tslib_1 = require("tslib");
20
+ const chat_response_part_renderer_1 = require("../chat-response-part-renderer");
21
+ const inversify_1 = require("@theia/core/shared/inversify");
22
+ const common_1 = require("@theia/ai-chat/lib/common");
23
+ const React = require("@theia/core/shared/react");
24
+ const core_1 = require("@theia/core");
25
+ let HorizontalLayoutPartRenderer = class HorizontalLayoutPartRenderer {
26
+ canHandle(response) {
27
+ if (common_1.HorizontalLayoutChatResponseContent.is(response)) {
28
+ return 10;
29
+ }
30
+ return -1;
31
+ }
32
+ render(response, parentNode) {
33
+ const contributions = this.chatResponsePartRenderers.getContributions();
34
+ return (React.createElement("div", { className: "ai-chat-horizontal-layout", style: { display: 'flex', flexDirection: 'row', flexWrap: 'wrap' } }, response.content.map(content => {
35
+ const renderer = contributions
36
+ .map(c => ({
37
+ prio: c.canHandle(content),
38
+ renderer: c,
39
+ }))
40
+ .sort((a, b) => b.prio - a.prio)[0].renderer;
41
+ return renderer.render(content, parentNode);
42
+ })));
43
+ }
44
+ };
45
+ exports.HorizontalLayoutPartRenderer = HorizontalLayoutPartRenderer;
46
+ tslib_1.__decorate([
47
+ (0, inversify_1.inject)(core_1.ContributionProvider),
48
+ (0, inversify_1.named)(chat_response_part_renderer_1.ChatResponsePartRenderer),
49
+ tslib_1.__metadata("design:type", Object)
50
+ ], HorizontalLayoutPartRenderer.prototype, "chatResponsePartRenderers", void 0);
51
+ exports.HorizontalLayoutPartRenderer = HorizontalLayoutPartRenderer = tslib_1.__decorate([
52
+ (0, inversify_1.injectable)()
53
+ ], HorizontalLayoutPartRenderer);
54
+ //# sourceMappingURL=horizontal-layout-part-renderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"horizontal-layout-part-renderer.js","sourceRoot":"","sources":["../../../src/browser/chat-response-renderer/horizontal-layout-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;;;;AAEhF,gFAA0E;AAC1E,4DAAyE;AACzE,sDAGmC;AAEnC,kDAAkD;AAClD,sCAAmD;AAI5C,IAAM,4BAA4B,GAAlC,MAAM,4BAA4B;IAQrC,SAAS,CAAC,QAA6B;QACnC,IAAI,4CAAmC,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnD,OAAO,EAAE,CAAC;QACd,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;IACd,CAAC;IACD,MAAM,CAAC,QAA6C,EAAE,UAAwB;QAC1E,MAAM,aAAa,GAAG,IAAI,CAAC,yBAAyB,CAAC,gBAAgB,EAAE,CAAC;QACxE,OAAO,CACH,6BAAK,SAAS,EAAC,2BAA2B,EAAC,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,IACxG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;YAC5B,MAAM,QAAQ,GAAG,aAAa;iBACzB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACP,IAAI,EAAE,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC;gBAC1B,QAAQ,EAAE,CAAC;aACd,CAAC,CAAC;iBACF,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YACjD,OAAO,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAChD,CAAC,CAAC,CACA,CACT,CAAC;IACN,CAAC;CACJ,CAAA;AA9BY,oEAA4B;AAIlB;IAFlB,IAAA,kBAAM,EAAC,2BAAoB,CAAC;IAC5B,IAAA,iBAAK,EAAC,sDAAwB,CAAC;;+EAG9B;uCANO,4BAA4B;IADxC,IAAA,sBAAU,GAAE;GACA,4BAA4B,CA8BxC"}
@@ -0,0 +1,9 @@
1
+ export * from './ai-editor-manager';
2
+ export * from './code-part-renderer';
3
+ export * from './command-part-renderer';
4
+ export * from './error-part-renderer';
5
+ export * from './horizontal-layout-part-renderer';
6
+ export * from './markdown-part-renderer';
7
+ export * from './text-part-renderer';
8
+ export * from './toolcall-part-renderer';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/browser/chat-response-renderer/index.ts"],"names":[],"mappings":"AAeA,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mCAAmC,CAAC;AAClD,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ // *****************************************************************************
5
+ // Copyright (C) 2024 EclipseSource GmbH.
6
+ //
7
+ // This program and the accompanying materials are made available under the
8
+ // terms of the Eclipse Public License v. 2.0 which is available at
9
+ // http://www.eclipse.org/legal/epl-2.0.
10
+ //
11
+ // This Source Code may also be made available under the following Secondary
12
+ // Licenses when the conditions for such availability set forth in the Eclipse
13
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
14
+ // with the GNU Classpath Exception which is available at
15
+ // https://www.gnu.org/software/classpath/license.html.
16
+ //
17
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
18
+ // *****************************************************************************
19
+ tslib_1.__exportStar(require("./ai-editor-manager"), exports);
20
+ tslib_1.__exportStar(require("./code-part-renderer"), exports);
21
+ tslib_1.__exportStar(require("./command-part-renderer"), exports);
22
+ tslib_1.__exportStar(require("./error-part-renderer"), exports);
23
+ tslib_1.__exportStar(require("./horizontal-layout-part-renderer"), exports);
24
+ tslib_1.__exportStar(require("./markdown-part-renderer"), exports);
25
+ tslib_1.__exportStar(require("./text-part-renderer"), exports);
26
+ tslib_1.__exportStar(require("./toolcall-part-renderer"), exports);
27
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/browser/chat-response-renderer/index.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;AAChF,8DAAoC;AACpC,+DAAqC;AACrC,kEAAwC;AACxC,gEAAsC;AACtC,4EAAkD;AAClD,mEAAyC;AACzC,+DAAqC;AACrC,mEAAyC"}
@@ -0,0 +1,17 @@
1
+ /// <reference types="react" />
2
+ import { ChatResponsePartRenderer } from '../chat-response-part-renderer';
3
+ import { ChatResponseContent, InformationalChatResponseContent, MarkdownChatResponseContent } from '@theia/ai-chat/lib/common';
4
+ import { ReactNode } from '@theia/core/shared/react';
5
+ import * as React from '@theia/core/shared/react';
6
+ import { MarkdownString } from '@theia/core/lib/common/markdown-rendering';
7
+ export declare class MarkdownPartRenderer implements ChatResponsePartRenderer<MarkdownChatResponseContent | InformationalChatResponseContent> {
8
+ private renderer;
9
+ canHandle(response: ChatResponseContent): number;
10
+ private renderMarkdown;
11
+ render(response: MarkdownChatResponseContent | InformationalChatResponseContent): ReactNode;
12
+ }
13
+ export declare const MarkdownWrapper: (props: {
14
+ data: MarkdownString;
15
+ renderCallback: (md: MarkdownString) => HTMLElement;
16
+ }) => React.JSX.Element;
17
+ //# sourceMappingURL=markdown-part-renderer.d.ts.map
@@ -0,0 +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,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAC;AAG3E,qBACa,oBAAqB,YAAW,wBAAwB,CAAC,2BAA2B,GAAG,gCAAgC,CAAC;IACvG,OAAO,CAAC,QAAQ,CAAmB;IAC7D,SAAS,CAAC,QAAQ,EAAE,mBAAmB,GAAG,MAAM;IAShD,OAAO,CAAC,cAAc;IAGtB,MAAM,CAAC,QAAQ,EAAE,2BAA2B,GAAG,gCAAgC,GAAG,SAAS;CAU9F;AAED,eAAO,MAAM,eAAe,UAAW;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,cAAc,EAAE,CAAC,EAAE,EAAE,cAAc,KAAK,WAAW,CAAA;CAAE,sBAenH,CAAC"}
@@ -0,0 +1,70 @@
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.MarkdownWrapper = exports.MarkdownPartRenderer = 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_1 = require("@theia/core/shared/react");
23
+ const React = require("@theia/core/shared/react");
24
+ const markdown_renderer_1 = require("@theia/core/lib/browser/markdown-rendering/markdown-renderer");
25
+ let MarkdownPartRenderer = class MarkdownPartRenderer {
26
+ canHandle(response) {
27
+ if (common_1.MarkdownChatResponseContent.is(response)) {
28
+ return 10;
29
+ }
30
+ if (common_1.InformationalChatResponseContent.is(response)) {
31
+ return 10;
32
+ }
33
+ return -1;
34
+ }
35
+ renderMarkdown(md) {
36
+ return this.renderer.render(md).element;
37
+ }
38
+ render(response) {
39
+ // TODO let the user configure whether they want to see informational content
40
+ if (common_1.InformationalChatResponseContent.is(response)) {
41
+ // null is valid in React
42
+ // eslint-disable-next-line no-null/no-null
43
+ return null;
44
+ }
45
+ return React.createElement(exports.MarkdownWrapper, { data: response.content, renderCallback: this.renderMarkdown.bind(this) });
46
+ }
47
+ };
48
+ exports.MarkdownPartRenderer = MarkdownPartRenderer;
49
+ tslib_1.__decorate([
50
+ (0, inversify_1.inject)(markdown_renderer_1.MarkdownRenderer),
51
+ tslib_1.__metadata("design:type", Object)
52
+ ], MarkdownPartRenderer.prototype, "renderer", void 0);
53
+ exports.MarkdownPartRenderer = MarkdownPartRenderer = tslib_1.__decorate([
54
+ (0, inversify_1.injectable)()
55
+ ], MarkdownPartRenderer);
56
+ const MarkdownWrapper = (props) => {
57
+ // eslint-disable-next-line no-null/no-null
58
+ const ref = (0, react_1.useRef)(null);
59
+ (0, react_1.useEffect)(() => {
60
+ var _a, _b;
61
+ const myDomElement = props.renderCallback(props.data);
62
+ while ((_a = ref === null || ref === void 0 ? void 0 : ref.current) === null || _a === void 0 ? void 0 : _a.firstChild) {
63
+ ref.current.removeChild(ref.current.firstChild);
64
+ }
65
+ (_b = ref === null || ref === void 0 ? void 0 : ref.current) === null || _b === void 0 ? void 0 : _b.appendChild(myDomElement);
66
+ }, [props.data.value]);
67
+ return React.createElement("div", { ref: ref });
68
+ };
69
+ exports.MarkdownWrapper = MarkdownWrapper;
70
+ //# sourceMappingURL=markdown-part-renderer.js.map
@@ -0,0 +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,4DAAkE;AAClE,sDAImC;AACnC,oDAAwE;AACxE,kDAAkD;AAElD,oGAAgG;AAGzF,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,IAAI,yCAAgC,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChD,OAAO,EAAE,CAAC;QACd,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;IACd,CAAC;IACO,cAAc,CAAC,EAAkB;QACrC,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC;IAC5C,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;QACD,OAAO,oBAAC,uBAAe,IAAC,IAAI,EAAE,QAAQ,CAAC,OAAO,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,GAAoB,CAAC;IACvH,CAAC;CAEJ,CAAA;AAxBY,oDAAoB;AACK;IAAjC,IAAA,kBAAM,EAAC,oCAAgB,CAAC;;sDAAoC;+BADpD,oBAAoB;IADhC,IAAA,sBAAU,GAAE;GACA,oBAAoB,CAwBhC;AAEM,MAAM,eAAe,GAAG,CAAC,KAAoF,EAAE,EAAE;IACpH,2CAA2C;IAC3C,MAAM,GAAG,GAAkD,IAAA,cAAM,EAAC,IAAI,CAAC,CAAC;IAExE,IAAA,iBAAS,EAAC,GAAG,EAAE;;QACX,MAAM,YAAY,GAAG,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEtD,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,YAAY,CAAC,CAAC;IAC5C,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAEvB,OAAO,6BAAK,GAAG,EAAE,GAAG,GAAQ,CAAC;AACjC,CAAC,CAAC;AAfW,QAAA,eAAe,mBAe1B"}
@@ -0,0 +1,9 @@
1
+ /// <reference types="react" />
2
+ import { ChatResponsePartRenderer } from '../chat-response-part-renderer';
3
+ import { ChatResponseContent } from '@theia/ai-chat/lib/common';
4
+ import { ReactNode } from '@theia/core/shared/react';
5
+ export declare class TextPartRenderer implements ChatResponsePartRenderer<ChatResponseContent> {
6
+ canHandle(_reponse: ChatResponseContent): number;
7
+ render(response: ChatResponseContent): ReactNode;
8
+ }
9
+ //# sourceMappingURL=text-part-renderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text-part-renderer.d.ts","sourceRoot":"","sources":["../../../src/browser/chat-response-renderer/text-part-renderer.tsx"],"names":[],"mappings":";AAgBA,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAE1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAGrD,qBACa,gBAAiB,YAAW,wBAAwB,CAAC,mBAAmB,CAAC;IAClF,SAAS,CAAC,QAAQ,EAAE,mBAAmB,GAAG,MAAM;IAIhD,MAAM,CAAC,QAAQ,EAAE,mBAAmB,GAAG,SAAS;CAMnD"}
@@ -0,0 +1,41 @@
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.TextPartRenderer = 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 TextPartRenderer = class TextPartRenderer {
24
+ canHandle(_reponse) {
25
+ // this is the fallback renderer
26
+ return 1;
27
+ }
28
+ render(response) {
29
+ if (response && common_1.ChatResponseContent.hasAsString(response)) {
30
+ return React.createElement("span", null, response.asString());
31
+ }
32
+ return React.createElement("span", null,
33
+ "Can't display response, please check your ChatResponsePartRenderers! ",
34
+ JSON.stringify(response));
35
+ }
36
+ };
37
+ exports.TextPartRenderer = TextPartRenderer;
38
+ exports.TextPartRenderer = TextPartRenderer = tslib_1.__decorate([
39
+ (0, inversify_1.injectable)()
40
+ ], TextPartRenderer);
41
+ //# sourceMappingURL=text-part-renderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text-part-renderer.js","sourceRoot":"","sources":["../../../src/browser/chat-response-renderer/text-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,sDAAgE;AAEhE,kDAAkD;AAG3C,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IACzB,SAAS,CAAC,QAA6B;QACnC,gCAAgC;QAChC,OAAO,CAAC,CAAC;IACb,CAAC;IACD,MAAM,CAAC,QAA6B;QAChC,IAAI,QAAQ,IAAI,4BAAmB,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;YACxD,OAAO,kCAAO,QAAQ,CAAC,QAAQ,EAAE,CAAQ,CAAC;QAC9C,CAAC;QACD,OAAO;;YAA4E,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAQ,CAAC;IACxH,CAAC;CACJ,CAAA;AAXY,4CAAgB;2BAAhB,gBAAgB;IAD5B,IAAA,sBAAU,GAAE;GACA,gBAAgB,CAW5B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=text-part-renderer.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text-part-renderer.spec.d.ts","sourceRoot":"","sources":["../../../src/browser/chat-response-renderer/text-part-renderer.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,46 @@
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 text_part_renderer_1 = require("./text-part-renderer");
19
+ const chai_1 = require("chai");
20
+ describe('TextPartRenderer', () => {
21
+ it('accepts all parts', () => {
22
+ const renderer = new text_part_renderer_1.TextPartRenderer();
23
+ (0, chai_1.expect)(renderer.canHandle({ kind: 'text' })).to.be.greaterThan(0);
24
+ (0, chai_1.expect)(renderer.canHandle({ kind: 'code' })).to.be.greaterThan(0);
25
+ (0, chai_1.expect)(renderer.canHandle({ kind: 'command' })).to.be.greaterThan(0);
26
+ (0, chai_1.expect)(renderer.canHandle({ kind: 'error' })).to.be.greaterThan(0);
27
+ (0, chai_1.expect)(renderer.canHandle({ kind: 'horizontal' })).to.be.greaterThan(0);
28
+ (0, chai_1.expect)(renderer.canHandle({ kind: 'informational' })).to.be.greaterThan(0);
29
+ (0, chai_1.expect)(renderer.canHandle({ kind: 'markdownContent' })).to.be.greaterThan(0);
30
+ (0, chai_1.expect)(renderer.canHandle({ kind: 'toolCall' })).to.be.greaterThan(0);
31
+ (0, chai_1.expect)(renderer.canHandle(undefined)).to.be.greaterThan(0);
32
+ });
33
+ it('renders text correctly', () => {
34
+ const renderer = new text_part_renderer_1.TextPartRenderer();
35
+ const part = { kind: 'text', asString: () => 'Hello, World!' };
36
+ const node = renderer.render(part);
37
+ (0, chai_1.expect)(JSON.stringify(node)).to.contain('Hello, World!');
38
+ });
39
+ it('handles undefined content gracefully', () => {
40
+ const renderer = new text_part_renderer_1.TextPartRenderer();
41
+ const part = undefined;
42
+ const node = renderer.render(part);
43
+ (0, chai_1.expect)(node).to.exist;
44
+ });
45
+ });
46
+ //# sourceMappingURL=text-part-renderer.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text-part-renderer.spec.js","sourceRoot":"","sources":["../../../src/browser/chat-response-renderer/text-part-renderer.spec.ts"],"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, ToolCallChatResponseContent } from '@theia/ai-chat/lib/common';
4
+ import { ReactNode } from '@theia/core/shared/react';
5
+ export declare class ToolCallPartRenderer implements ChatResponsePartRenderer<ToolCallChatResponseContent> {
6
+ canHandle(response: ChatResponseContent): number;
7
+ render(response: ToolCallChatResponseContent): ReactNode;
8
+ }
9
+ //# sourceMappingURL=toolcall-part-renderer.d.ts.map
@@ -0,0 +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;CAa3D"}
@@ -0,0 +1,49 @@
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 ?
32
+ React.createElement("details", null,
33
+ React.createElement("summary", null,
34
+ "Ran ",
35
+ response.name),
36
+ React.createElement("p", null, response.result))
37
+ : React.createElement("span", null,
38
+ React.createElement(Spinner, null),
39
+ " Running [",
40
+ response.name,
41
+ "]"));
42
+ }
43
+ };
44
+ exports.ToolCallPartRenderer = ToolCallPartRenderer;
45
+ exports.ToolCallPartRenderer = ToolCallPartRenderer = tslib_1.__decorate([
46
+ (0, inversify_1.injectable)()
47
+ ], ToolCallPartRenderer);
48
+ const Spinner = () => (React.createElement("i", { className: "fa fa-spinner fa-spin" }));
49
+ //# 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;IACD,MAAM,CAAC,QAAqC;QACxC,OAAO,4BAAI,SAAS,EAAC,gBAAgB,IAChC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAChB;gBACI;;oBAAc,QAAQ,CAAC,IAAI,CAAW;gBACtC,+BAAI,QAAQ,CAAC,MAAM,CAAK,CAClB;YACV,CAAC,CAAC;gBAAM,oBAAC,OAAO,OAAG;;gBAAW,QAAQ,CAAC,IAAI;oBAAS,CAEvD,CAAC;IAEV,CAAC;CAEJ,CAAA;AArBY,oDAAoB;+BAApB,oBAAoB;IADhC,IAAA,sBAAU,GAAE;GACA,oBAAoB,CAqBhC;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"}