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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (161) hide show
  1. package/lib/browser/ai-chat-ui-contribution.d.ts +66 -0
  2. package/lib/browser/ai-chat-ui-contribution.d.ts.map +1 -0
  3. package/lib/browser/ai-chat-ui-contribution.js +587 -0
  4. package/lib/browser/ai-chat-ui-contribution.js.map +1 -0
  5. package/lib/browser/ai-chat-ui-frontend-module.d.ts +5 -0
  6. package/lib/browser/ai-chat-ui-frontend-module.d.ts.map +1 -0
  7. package/lib/browser/ai-chat-ui-frontend-module.js +153 -0
  8. package/lib/browser/ai-chat-ui-frontend-module.js.map +1 -0
  9. package/lib/browser/change-set-actions/change-set-accept-action.d.ts +10 -0
  10. package/lib/browser/change-set-actions/change-set-accept-action.d.ts.map +1 -0
  11. package/lib/browser/change-set-actions/change-set-accept-action.js +47 -0
  12. package/lib/browser/change-set-actions/change-set-accept-action.js.map +1 -0
  13. package/lib/browser/change-set-actions/change-set-action-service.d.ts +31 -0
  14. package/lib/browser/change-set-actions/change-set-action-service.d.ts.map +1 -0
  15. package/lib/browser/change-set-actions/change-set-action-service.js +57 -0
  16. package/lib/browser/change-set-actions/change-set-action-service.js.map +1 -0
  17. package/lib/browser/chat-input-agent-suggestions.d.ts +11 -0
  18. package/lib/browser/chat-input-agent-suggestions.d.ts.map +1 -0
  19. package/lib/browser/chat-input-agent-suggestions.js +76 -0
  20. package/lib/browser/chat-input-agent-suggestions.js.map +1 -0
  21. package/lib/browser/chat-input-history-contribution.d.ts +17 -0
  22. package/lib/browser/chat-input-history-contribution.d.ts.map +1 -0
  23. package/lib/browser/chat-input-history-contribution.js +158 -0
  24. package/lib/browser/chat-input-history-contribution.js.map +1 -0
  25. package/lib/browser/chat-input-history.d.ts +32 -0
  26. package/lib/browser/chat-input-history.d.ts.map +1 -0
  27. package/lib/browser/chat-input-history.js +125 -0
  28. package/lib/browser/chat-input-history.js.map +1 -0
  29. package/lib/browser/chat-input-mode-contribution.d.ts +12 -0
  30. package/lib/browser/chat-input-mode-contribution.d.ts.map +1 -0
  31. package/lib/browser/chat-input-mode-contribution.js +77 -0
  32. package/lib/browser/chat-input-mode-contribution.js.map +1 -0
  33. package/lib/browser/chat-input-widget.d.ts +118 -0
  34. package/lib/browser/chat-input-widget.d.ts.map +1 -0
  35. package/lib/browser/chat-input-widget.js +1034 -0
  36. package/lib/browser/chat-input-widget.js.map +1 -0
  37. package/lib/browser/chat-node-toolbar-action-contribution.d.ts +56 -0
  38. package/lib/browser/chat-node-toolbar-action-contribution.d.ts.map +1 -0
  39. package/lib/browser/chat-node-toolbar-action-contribution.js +92 -0
  40. package/lib/browser/chat-node-toolbar-action-contribution.js.map +1 -0
  41. package/lib/browser/chat-progress-message.d.ts +7 -0
  42. package/lib/browser/chat-progress-message.d.ts.map +1 -0
  43. package/lib/browser/chat-progress-message.js +33 -0
  44. package/lib/browser/chat-progress-message.js.map +1 -0
  45. package/lib/browser/chat-response-part-renderer.d.ts +10 -0
  46. package/lib/browser/chat-response-part-renderer.d.ts.map +1 -0
  47. package/lib/browser/chat-response-part-renderer.js +20 -0
  48. package/lib/browser/chat-response-part-renderer.js.map +1 -0
  49. package/lib/browser/chat-response-renderer/ai-selection-resolver.d.ts +23 -0
  50. package/lib/browser/chat-response-renderer/ai-selection-resolver.d.ts.map +1 -0
  51. package/lib/browser/chat-response-renderer/ai-selection-resolver.js +148 -0
  52. package/lib/browser/chat-response-renderer/ai-selection-resolver.js.map +1 -0
  53. package/lib/browser/chat-response-renderer/code-part-renderer.d.ts +73 -0
  54. package/lib/browser/chat-response-renderer/code-part-renderer.d.ts.map +1 -0
  55. package/lib/browser/chat-response-renderer/code-part-renderer.js +227 -0
  56. package/lib/browser/chat-response-renderer/code-part-renderer.js.map +1 -0
  57. package/lib/browser/chat-response-renderer/command-part-renderer.d.ts +12 -0
  58. package/lib/browser/chat-response-renderer/command-part-renderer.d.ts.map +1 -0
  59. package/lib/browser/chat-response-renderer/command-part-renderer.js +67 -0
  60. package/lib/browser/chat-response-renderer/command-part-renderer.js.map +1 -0
  61. package/lib/browser/chat-response-renderer/delegation-response-renderer.d.ts +14 -0
  62. package/lib/browser/chat-response-renderer/delegation-response-renderer.d.ts.map +1 -0
  63. package/lib/browser/chat-response-renderer/delegation-response-renderer.js +144 -0
  64. package/lib/browser/chat-response-renderer/delegation-response-renderer.js.map +1 -0
  65. package/lib/browser/chat-response-renderer/error-part-renderer.d.ts +9 -0
  66. package/lib/browser/chat-response-renderer/error-part-renderer.d.ts.map +1 -0
  67. package/lib/browser/chat-response-renderer/error-part-renderer.js +40 -0
  68. package/lib/browser/chat-response-renderer/error-part-renderer.js.map +1 -0
  69. package/lib/browser/chat-response-renderer/horizontal-layout-part-renderer.d.ts +12 -0
  70. package/lib/browser/chat-response-renderer/horizontal-layout-part-renderer.d.ts.map +1 -0
  71. package/lib/browser/chat-response-renderer/horizontal-layout-part-renderer.js +54 -0
  72. package/lib/browser/chat-response-renderer/horizontal-layout-part-renderer.js.map +1 -0
  73. package/lib/browser/chat-response-renderer/index.d.ts +13 -0
  74. package/lib/browser/chat-response-renderer/index.d.ts.map +1 -0
  75. package/lib/browser/chat-response-renderer/index.js +31 -0
  76. package/lib/browser/chat-response-renderer/index.js.map +1 -0
  77. package/lib/browser/chat-response-renderer/markdown-part-renderer.d.ts +36 -0
  78. package/lib/browser/chat-response-renderer/markdown-part-renderer.d.ts.map +1 -0
  79. package/lib/browser/chat-response-renderer/markdown-part-renderer.js +129 -0
  80. package/lib/browser/chat-response-renderer/markdown-part-renderer.js.map +1 -0
  81. package/lib/browser/chat-response-renderer/progress-part-renderer.d.ts +9 -0
  82. package/lib/browser/chat-response-renderer/progress-part-renderer.d.ts.map +1 -0
  83. package/lib/browser/chat-response-renderer/progress-part-renderer.js +39 -0
  84. package/lib/browser/chat-response-renderer/progress-part-renderer.js.map +1 -0
  85. package/lib/browser/chat-response-renderer/question-part-renderer.d.ts +10 -0
  86. package/lib/browser/chat-response-renderer/question-part-renderer.d.ts.map +1 -0
  87. package/lib/browser/chat-response-renderer/question-part-renderer.js +49 -0
  88. package/lib/browser/chat-response-renderer/question-part-renderer.js.map +1 -0
  89. package/lib/browser/chat-response-renderer/text-part-renderer.d.ts +9 -0
  90. package/lib/browser/chat-response-renderer/text-part-renderer.d.ts.map +1 -0
  91. package/lib/browser/chat-response-renderer/text-part-renderer.js +43 -0
  92. package/lib/browser/chat-response-renderer/text-part-renderer.js.map +1 -0
  93. package/lib/browser/chat-response-renderer/text-part-renderer.spec.d.ts +2 -0
  94. package/lib/browser/chat-response-renderer/text-part-renderer.spec.d.ts.map +1 -0
  95. package/lib/browser/chat-response-renderer/text-part-renderer.spec.js +46 -0
  96. package/lib/browser/chat-response-renderer/text-part-renderer.spec.js.map +1 -0
  97. package/lib/browser/chat-response-renderer/thinking-part-renderer.d.ts +9 -0
  98. package/lib/browser/chat-response-renderer/thinking-part-renderer.d.ts.map +1 -0
  99. package/lib/browser/chat-response-renderer/thinking-part-renderer.js +42 -0
  100. package/lib/browser/chat-response-renderer/thinking-part-renderer.js.map +1 -0
  101. package/lib/browser/chat-response-renderer/tool-confirmation.d.ts +17 -0
  102. package/lib/browser/chat-response-renderer/tool-confirmation.d.ts.map +1 -0
  103. package/lib/browser/chat-response-renderer/tool-confirmation.js +122 -0
  104. package/lib/browser/chat-response-renderer/tool-confirmation.js.map +1 -0
  105. package/lib/browser/chat-response-renderer/toolcall-part-renderer.d.ts +20 -0
  106. package/lib/browser/chat-response-renderer/toolcall-part-renderer.d.ts.map +1 -0
  107. package/lib/browser/chat-response-renderer/toolcall-part-renderer.js +223 -0
  108. package/lib/browser/chat-response-renderer/toolcall-part-renderer.js.map +1 -0
  109. package/lib/browser/chat-response-renderer/unknown-part-renderer.d.ts +9 -0
  110. package/lib/browser/chat-response-renderer/unknown-part-renderer.d.ts.map +1 -0
  111. package/lib/browser/chat-response-renderer/unknown-part-renderer.js +42 -0
  112. package/lib/browser/chat-response-renderer/unknown-part-renderer.js.map +1 -0
  113. package/lib/browser/chat-tree-view/chat-view-tree-container.d.ts +4 -0
  114. package/lib/browser/chat-tree-view/chat-view-tree-container.d.ts.map +1 -0
  115. package/lib/browser/chat-tree-view/chat-view-tree-container.js +33 -0
  116. package/lib/browser/chat-tree-view/chat-view-tree-container.js.map +1 -0
  117. package/lib/browser/chat-tree-view/chat-view-tree-input-widget.d.ts +38 -0
  118. package/lib/browser/chat-tree-view/chat-view-tree-input-widget.d.ts.map +1 -0
  119. package/lib/browser/chat-tree-view/chat-view-tree-input-widget.js +88 -0
  120. package/lib/browser/chat-tree-view/chat-view-tree-input-widget.js.map +1 -0
  121. package/lib/browser/chat-tree-view/chat-view-tree-widget.d.ts +120 -0
  122. package/lib/browser/chat-tree-view/chat-view-tree-widget.d.ts.map +1 -0
  123. package/lib/browser/chat-tree-view/chat-view-tree-widget.js +654 -0
  124. package/lib/browser/chat-tree-view/chat-view-tree-widget.js.map +1 -0
  125. package/lib/browser/chat-tree-view/index.d.ts +3 -0
  126. package/lib/browser/chat-tree-view/index.d.ts.map +1 -0
  127. package/lib/browser/chat-tree-view/index.js +21 -0
  128. package/lib/browser/chat-tree-view/index.js.map +1 -0
  129. package/lib/browser/chat-tree-view/sub-chat-widget.d.ts +22 -0
  130. package/lib/browser/chat-tree-view/sub-chat-widget.d.ts.map +1 -0
  131. package/lib/browser/chat-tree-view/sub-chat-widget.js +92 -0
  132. package/lib/browser/chat-tree-view/sub-chat-widget.js.map +1 -0
  133. package/lib/browser/chat-view-commands.d.ts +15 -0
  134. package/lib/browser/chat-view-commands.d.ts.map +1 -0
  135. package/lib/browser/chat-view-commands.js +76 -0
  136. package/lib/browser/chat-view-commands.js.map +1 -0
  137. package/lib/browser/chat-view-contribution.d.ts +21 -0
  138. package/lib/browser/chat-view-contribution.d.ts.map +1 -0
  139. package/lib/browser/chat-view-contribution.js +183 -0
  140. package/lib/browser/chat-view-contribution.js.map +1 -0
  141. package/lib/browser/chat-view-language-contribution.d.ts +41 -0
  142. package/lib/browser/chat-view-language-contribution.d.ts.map +1 -0
  143. package/lib/browser/chat-view-language-contribution.js +269 -0
  144. package/lib/browser/chat-view-language-contribution.js.map +1 -0
  145. package/lib/browser/chat-view-widget-toolbar-contribution.d.ts +20 -0
  146. package/lib/browser/chat-view-widget-toolbar-contribution.d.ts.map +1 -0
  147. package/lib/browser/chat-view-widget-toolbar-contribution.js +115 -0
  148. package/lib/browser/chat-view-widget-toolbar-contribution.js.map +1 -0
  149. package/lib/browser/chat-view-widget.d.ts +60 -0
  150. package/lib/browser/chat-view-widget.d.ts.map +1 -0
  151. package/lib/browser/chat-view-widget.js +243 -0
  152. package/lib/browser/chat-view-widget.js.map +1 -0
  153. package/lib/browser/context-variable-picker.d.ts +9 -0
  154. package/lib/browser/context-variable-picker.d.ts.map +1 -0
  155. package/lib/browser/context-variable-picker.js +86 -0
  156. package/lib/browser/context-variable-picker.js.map +1 -0
  157. package/lib/browser/session-settings-dialog.d.ts +35 -0
  158. package/lib/browser/session-settings-dialog.d.ts.map +1 -0
  159. package/lib/browser/session-settings-dialog.js +118 -0
  160. package/lib/browser/session-settings-dialog.js.map +1 -0
  161. package/package.json +10 -10
@@ -0,0 +1,17 @@
1
+ /// <reference types="react" />
2
+ import * as React from '@theia/core/shared/react';
3
+ import { ToolCallChatResponseContent } from '@theia/ai-chat/lib/common';
4
+ /**
5
+ * States the tool confirmation component can be in
6
+ */
7
+ export type ToolConfirmationState = 'waiting' | 'allowed' | 'denied' | 'rejected';
8
+ export interface ToolConfirmationProps {
9
+ response: ToolCallChatResponseContent;
10
+ onAllow: (mode?: 'once' | 'session' | 'forever') => void;
11
+ onDeny: (mode?: 'once' | 'session' | 'forever') => void;
12
+ }
13
+ /**
14
+ * Component that displays approval/denial buttons for tool execution
15
+ */
16
+ export declare const ToolConfirmation: React.FC<ToolConfirmationProps>;
17
+ //# sourceMappingURL=tool-confirmation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-confirmation.d.ts","sourceRoot":"","sources":["../../../src/browser/chat-response-renderer/tool-confirmation.tsx"],"names":[],"mappings":";AAgBA,OAAO,KAAK,KAAK,MAAM,0BAA0B,CAAC;AAGlD,OAAO,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AAExE;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,UAAU,CAAC;AAElF,MAAM,WAAW,qBAAqB;IAClC,QAAQ,EAAE,2BAA2B,CAAC;IACtC,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,KAAK,IAAI,CAAC;IACzD,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,KAAK,IAAI,CAAC;CAC3D;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CA2I5D,CAAC"}
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2025 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.ToolConfirmation = void 0;
19
+ const React = require("@theia/core/shared/react");
20
+ const nls_1 = require("@theia/core/lib/common/nls");
21
+ const browser_1 = require("@theia/core/lib/browser");
22
+ /**
23
+ * Component that displays approval/denial buttons for tool execution
24
+ */
25
+ const ToolConfirmation = ({ response, onAllow, onDeny }) => {
26
+ const [state, setState] = React.useState('waiting');
27
+ // Track selected mode for each action
28
+ const [allowMode, setAllowMode] = React.useState('once');
29
+ const [denyMode, setDenyMode] = React.useState('once');
30
+ const [dropdownOpen, setDropdownOpen] = React.useState(undefined);
31
+ const handleAllow = React.useCallback(() => {
32
+ setState('allowed');
33
+ onAllow(allowMode);
34
+ }, [onAllow, allowMode]);
35
+ const handleDeny = React.useCallback(() => {
36
+ setState('denied');
37
+ onDeny(denyMode);
38
+ }, [onDeny, denyMode]);
39
+ if (state === 'allowed') {
40
+ return (React.createElement("div", { className: "theia-tool-confirmation-status allowed" },
41
+ React.createElement("span", { className: (0, browser_1.codicon)('check') }),
42
+ " ",
43
+ nls_1.nls.localize('theia/ai/chat-ui/toolconfirmation/allowed', 'Tool execution allowed')));
44
+ }
45
+ if (state === 'denied') {
46
+ return (React.createElement("div", { className: "theia-tool-confirmation-status denied" },
47
+ React.createElement("span", { className: (0, browser_1.codicon)('close') }),
48
+ " ",
49
+ nls_1.nls.localize('theia/ai/chat-ui/toolconfirmation/denied', 'Tool execution denied')));
50
+ }
51
+ // Helper for dropdown options
52
+ const MODES = ['once', 'session', 'forever'];
53
+ // Unified labels for both main button and dropdown, as requested
54
+ const modeLabel = (type, mode) => {
55
+ if (type === 'allow') {
56
+ switch (mode) {
57
+ case 'once': return nls_1.nls.localize('theia/ai/chat-ui/toolconfirmation/allow', 'Allow');
58
+ case 'session': return nls_1.nls.localize('theia/ai/chat-ui/toolconfirmation/allow-session', 'Allow for this Chat');
59
+ case 'forever': return nls_1.nls.localize('theia/ai/chat-ui/toolconfirmation/allow-forever', 'Always Allow');
60
+ }
61
+ }
62
+ else {
63
+ switch (mode) {
64
+ case 'once': return nls_1.nls.localize('theia/ai/chat-ui/toolconfirmation/deny', 'Deny');
65
+ case 'session': return nls_1.nls.localize('theia/ai/chat-ui/toolconfirmation/deny-session', 'Deny for this Chat');
66
+ case 'forever': return nls_1.nls.localize('theia/ai/chat-ui/toolconfirmation/deny-forever', 'Always Deny');
67
+ }
68
+ }
69
+ };
70
+ // Main button label is always the same as the dropdown label for the selected mode
71
+ const mainButtonLabel = modeLabel; // Use the same function for both
72
+ // Tooltips for dropdown options
73
+ const modeTooltip = (type, mode) => {
74
+ if (type === 'allow') {
75
+ switch (mode) {
76
+ case 'once': return nls_1.nls.localize('theia/ai/chat-ui/toolconfirmation/allow-tooltip', 'Allow this tool call once');
77
+ case 'session': return nls_1.nls.localize('theia/ai/chat-ui/toolconfirmation/allow-session-tooltip', 'Allow all calls of this tool for this chat session');
78
+ case 'forever': return nls_1.nls.localize('theia/ai/chat-ui/toolconfirmation/allow-forever-tooltip', 'Always allow this tool');
79
+ }
80
+ }
81
+ else {
82
+ switch (mode) {
83
+ case 'once': return nls_1.nls.localize('theia/ai/chat-ui/toolconfirmation/deny-tooltip', 'Deny this tool call once');
84
+ case 'session': return nls_1.nls.localize('theia/ai/chat-ui/toolconfirmation/deny-session-tooltip', 'Deny all calls of this tool for this chat session');
85
+ case 'forever': return nls_1.nls.localize('theia/ai/chat-ui/toolconfirmation/deny-forever-tooltip', 'Always deny this tool');
86
+ }
87
+ }
88
+ };
89
+ // Split button for approve/deny
90
+ const renderSplitButton = (type) => {
91
+ const selectedMode = type === 'allow' ? allowMode : denyMode;
92
+ const setMode = type === 'allow' ? setAllowMode : setDenyMode;
93
+ const handleMain = type === 'allow' ? handleAllow : handleDeny;
94
+ const otherModes = MODES.filter(m => m !== selectedMode);
95
+ return (React.createElement("div", { className: `theia-tool-confirmation-split-button ${type}`, style: { display: 'inline-flex', position: 'relative' } },
96
+ React.createElement("button", { className: `theia-button ${type === 'allow' ? 'primary' : 'secondary'} theia-tool-confirmation-main-btn`, onClick: handleMain }, mainButtonLabel(type, selectedMode)),
97
+ React.createElement("button", { className: `theia-button ${type === 'allow' ? 'primary' : 'secondary'} theia-tool-confirmation-chevron-btn`, onClick: () => setDropdownOpen(dropdownOpen === type ? undefined : type), "aria-haspopup": "true", "aria-expanded": dropdownOpen === type, tabIndex: 0, title: type === 'allow'
98
+ ? nls_1.nls.localize('theia/ai/chat-ui/toolconfirmation/allow-options-dropdown-tooltip', 'More Allow Options')
99
+ : nls_1.nls.localize('theia/ai/chat-ui/toolconfirmation/deny-options-dropdown-tooltip', 'More Deny Options') },
100
+ React.createElement("span", { className: (0, browser_1.codicon)('chevron-down') })),
101
+ dropdownOpen === type && (React.createElement("ul", { className: "theia-tool-confirmation-dropdown-menu", onMouseLeave: () => setDropdownOpen(undefined) }, otherModes.map(mode => (React.createElement("li", { key: mode, className: "theia-tool-confirmation-dropdown-item", onClick: () => {
102
+ setMode(mode);
103
+ setDropdownOpen(undefined);
104
+ }, title: modeTooltip(type, mode) }, modeLabel(type, mode))))))));
105
+ };
106
+ return (React.createElement("div", { className: "theia-tool-confirmation" },
107
+ React.createElement("div", { className: "theia-tool-confirmation-header" },
108
+ React.createElement("span", { className: (0, browser_1.codicon)('shield') }),
109
+ " ",
110
+ nls_1.nls.localize('theia/ai/chat-ui/toolconfirmation/header', 'Confirm Tool Execution')),
111
+ React.createElement("div", { className: "theia-tool-confirmation-info" },
112
+ React.createElement("div", { className: "theia-tool-confirmation-name" },
113
+ React.createElement("span", { className: "label" },
114
+ nls_1.nls.localize('theia/ai/chat-ui/toolconfirmation/tool', 'Tool'),
115
+ ":"),
116
+ React.createElement("span", { className: "value" }, response.name))),
117
+ React.createElement("div", { className: "theia-tool-confirmation-actions" },
118
+ renderSplitButton('deny'),
119
+ renderSplitButton('allow'))));
120
+ };
121
+ exports.ToolConfirmation = ToolConfirmation;
122
+ //# sourceMappingURL=tool-confirmation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-confirmation.js","sourceRoot":"","sources":["../../../src/browser/chat-response-renderer/tool-confirmation.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
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
+ import { OpenerService } from '@theia/core/lib/browser';
6
+ import { ToolConfirmationMode } from '@theia/ai-chat/lib/common/chat-tool-preferences';
7
+ import { ResponseNode } from '../chat-tree-view';
8
+ import { ToolConfirmationManager } from '@theia/ai-chat/lib/browser/chat-tool-preference-bindings';
9
+ export declare class ToolCallPartRenderer implements ChatResponsePartRenderer<ToolCallChatResponseContent> {
10
+ protected toolConfirmationManager: ToolConfirmationManager;
11
+ protected openerService: OpenerService;
12
+ canHandle(response: ChatResponseContent): number;
13
+ render(response: ToolCallChatResponseContent, parentNode: ResponseNode): ReactNode;
14
+ protected renderResult(response: ToolCallChatResponseContent): ReactNode;
15
+ private tryParse;
16
+ protected getToolConfirmationSettings(responseId: string, chatId: string): ToolConfirmationMode;
17
+ protected renderCollapsibleArguments(args: string | undefined): ReactNode;
18
+ private prettyPrintArgs;
19
+ }
20
+ //# 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;AAErD,OAAO,EAAW,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAGjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iDAAiD,CAAC;AACvF,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,0DAA0D,CAAC;AAEnG,qBACa,oBAAqB,YAAW,wBAAwB,CAAC,2BAA2B,CAAC;IAG9F,SAAS,CAAC,uBAAuB,EAAE,uBAAuB,CAAC;IAG3D,SAAS,CAAC,aAAa,EAAE,aAAa,CAAC;IAEvC,SAAS,CAAC,QAAQ,EAAE,mBAAmB,GAAG,MAAM;IAOhD,MAAM,CAAC,QAAQ,EAAE,2BAA2B,EAAE,UAAU,EAAE,YAAY,GAAG,SAAS;IAalF,SAAS,CAAC,YAAY,CAAC,QAAQ,EAAE,2BAA2B,GAAG,SAAS;IAkCxE,OAAO,CAAC,QAAQ;IAWhB,SAAS,CAAC,2BAA2B,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,oBAAoB;IAI/F,SAAS,CAAC,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAazE,OAAO,CAAC,eAAe;CAQ1B"}
@@ -0,0 +1,223 @@
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 nls_1 = require("@theia/core/lib/common/nls");
23
+ const browser_1 = require("@theia/core/lib/browser");
24
+ const React = require("@theia/core/shared/react");
25
+ const tool_confirmation_1 = require("./tool-confirmation");
26
+ const chat_tool_preferences_1 = require("@theia/ai-chat/lib/common/chat-tool-preferences");
27
+ const markdown_part_renderer_1 = require("./markdown-part-renderer");
28
+ const chat_tool_preference_bindings_1 = require("@theia/ai-chat/lib/browser/chat-tool-preference-bindings");
29
+ let ToolCallPartRenderer = class ToolCallPartRenderer {
30
+ canHandle(response) {
31
+ if (common_1.ToolCallChatResponseContent.is(response)) {
32
+ return 10;
33
+ }
34
+ return -1;
35
+ }
36
+ render(response, parentNode) {
37
+ const chatId = parentNode.sessionId;
38
+ const confirmationMode = response.name ? this.getToolConfirmationSettings(response.name, chatId) : chat_tool_preferences_1.ToolConfirmationMode.DISABLED;
39
+ return React.createElement(ToolCallContent, { response: response, confirmationMode: confirmationMode, toolConfirmationManager: this.toolConfirmationManager, chatId: chatId, renderCollapsibleArguments: this.renderCollapsibleArguments.bind(this), responseRenderer: this.renderResult.bind(this), requestCanceled: parentNode.response.isCanceled });
40
+ }
41
+ renderResult(response) {
42
+ const result = this.tryParse(response.result);
43
+ if (!result) {
44
+ return undefined;
45
+ }
46
+ if (typeof result === 'string') {
47
+ return React.createElement("pre", null, JSON.stringify(result, undefined, 2));
48
+ }
49
+ if ('content' in result) {
50
+ return React.createElement("div", { className: 'theia-toolCall-response-content' }, result.content.map((content, idx) => {
51
+ switch (content.type) {
52
+ case 'image': {
53
+ return React.createElement("div", { key: `content-${idx}-${content.type}`, className: 'theia-toolCall-image-result' },
54
+ React.createElement("img", { src: `data:${content.mimeType};base64,${content.base64data}` }));
55
+ }
56
+ case 'text': {
57
+ return React.createElement("div", { key: `content-${idx}-${content.type}`, className: 'theia-toolCall-text-result' },
58
+ React.createElement(MarkdownRender, { text: content.text, openerService: this.openerService }));
59
+ }
60
+ case 'audio':
61
+ case 'error':
62
+ default: {
63
+ return React.createElement("div", { key: `content-${idx}-${content.type}`, className: 'theia-toolCall-default-result' },
64
+ React.createElement("pre", null, JSON.stringify(response, undefined, 2)));
65
+ }
66
+ }
67
+ }));
68
+ }
69
+ return React.createElement("pre", null, JSON.stringify(result, undefined, 2));
70
+ }
71
+ tryParse(result) {
72
+ if (!result) {
73
+ return undefined;
74
+ }
75
+ try {
76
+ return typeof result === 'string' ? JSON.parse(result) : result;
77
+ }
78
+ catch (error) {
79
+ return result;
80
+ }
81
+ }
82
+ getToolConfirmationSettings(responseId, chatId) {
83
+ return this.toolConfirmationManager.getConfirmationMode(responseId, chatId);
84
+ }
85
+ renderCollapsibleArguments(args) {
86
+ if (!args || !args.trim() || args.trim() === '{}') {
87
+ return undefined;
88
+ }
89
+ return (React.createElement("details", { className: "collapsible-arguments" },
90
+ React.createElement("summary", { className: "collapsible-arguments-summary" }, "..."),
91
+ React.createElement("span", null, this.prettyPrintArgs(args))));
92
+ }
93
+ prettyPrintArgs(args) {
94
+ try {
95
+ return JSON.stringify(JSON.parse(args), undefined, 2);
96
+ }
97
+ catch (e) {
98
+ // fall through
99
+ return args;
100
+ }
101
+ }
102
+ };
103
+ exports.ToolCallPartRenderer = ToolCallPartRenderer;
104
+ tslib_1.__decorate([
105
+ (0, inversify_1.inject)(chat_tool_preference_bindings_1.ToolConfirmationManager),
106
+ tslib_1.__metadata("design:type", chat_tool_preference_bindings_1.ToolConfirmationManager)
107
+ ], ToolCallPartRenderer.prototype, "toolConfirmationManager", void 0);
108
+ tslib_1.__decorate([
109
+ (0, inversify_1.inject)(browser_1.OpenerService),
110
+ tslib_1.__metadata("design:type", Object)
111
+ ], ToolCallPartRenderer.prototype, "openerService", void 0);
112
+ exports.ToolCallPartRenderer = ToolCallPartRenderer = tslib_1.__decorate([
113
+ (0, inversify_1.injectable)()
114
+ ], ToolCallPartRenderer);
115
+ const Spinner = () => (React.createElement("span", { className: `${(0, browser_1.codicon)('loading')} theia-animation-spin` }));
116
+ /**
117
+ * A function component to handle tool call rendering and confirmation
118
+ */
119
+ const ToolCallContent = ({ response, confirmationMode, toolConfirmationManager, chatId, responseRenderer, renderCollapsibleArguments, requestCanceled }) => {
120
+ const [confirmationState, setConfirmationState] = React.useState('waiting');
121
+ const [rejectionReason, setRejectionReason] = React.useState(undefined);
122
+ const formatReason = (reason) => {
123
+ if (!reason) {
124
+ return '';
125
+ }
126
+ if (reason instanceof Error) {
127
+ return reason.message;
128
+ }
129
+ if (typeof reason === 'string') {
130
+ return reason;
131
+ }
132
+ try {
133
+ return JSON.stringify(reason);
134
+ }
135
+ catch (e) {
136
+ return String(reason);
137
+ }
138
+ };
139
+ React.useEffect(() => {
140
+ if (confirmationMode === chat_tool_preferences_1.ToolConfirmationMode.ALWAYS_ALLOW) {
141
+ response.confirm();
142
+ setConfirmationState('allowed');
143
+ return;
144
+ }
145
+ else if (confirmationMode === chat_tool_preferences_1.ToolConfirmationMode.DISABLED) {
146
+ response.deny();
147
+ setConfirmationState('denied');
148
+ return;
149
+ }
150
+ response.confirmed
151
+ .then(confirmed => {
152
+ if (confirmed === true) {
153
+ setConfirmationState('allowed');
154
+ }
155
+ else {
156
+ setConfirmationState('denied');
157
+ }
158
+ })
159
+ .catch(reason => {
160
+ setRejectionReason(reason);
161
+ setConfirmationState('rejected');
162
+ });
163
+ }, [response, confirmationMode]);
164
+ const handleAllow = React.useCallback((mode = 'once') => {
165
+ if (mode === 'forever' && response.name) {
166
+ toolConfirmationManager.setConfirmationMode(response.name, chat_tool_preferences_1.ToolConfirmationMode.ALWAYS_ALLOW);
167
+ }
168
+ else if (mode === 'session' && response.name) {
169
+ toolConfirmationManager.setSessionConfirmationMode(response.name, chat_tool_preferences_1.ToolConfirmationMode.ALWAYS_ALLOW, chatId);
170
+ }
171
+ response.confirm();
172
+ }, [response, toolConfirmationManager, chatId]);
173
+ const handleDeny = React.useCallback((mode = 'once') => {
174
+ if (mode === 'forever' && response.name) {
175
+ toolConfirmationManager.setConfirmationMode(response.name, chat_tool_preferences_1.ToolConfirmationMode.DISABLED);
176
+ }
177
+ else if (mode === 'session' && response.name) {
178
+ toolConfirmationManager.setSessionConfirmationMode(response.name, chat_tool_preferences_1.ToolConfirmationMode.DISABLED, chatId);
179
+ }
180
+ response.deny();
181
+ }, [response, toolConfirmationManager, chatId]);
182
+ const reasonText = formatReason(rejectionReason);
183
+ return (React.createElement("div", { className: 'theia-toolCall' },
184
+ confirmationState === 'rejected' ? (React.createElement("span", { className: 'theia-toolCall-rejected' },
185
+ React.createElement("span", { className: (0, browser_1.codicon)('error') }),
186
+ " ",
187
+ nls_1.nls.localize('theia/ai/chat-ui/toolcall-part-renderer/rejected', 'Execution canceled'),
188
+ ": ",
189
+ response.name,
190
+ reasonText ? React.createElement("span", null,
191
+ " \u2014 ",
192
+ reasonText) : undefined)) : requestCanceled && !response.finished ? (React.createElement("span", { className: 'theia-toolCall-rejected' },
193
+ React.createElement("span", { className: (0, browser_1.codicon)('error') }),
194
+ " ",
195
+ nls_1.nls.localize('theia/ai/chat-ui/toolcall-part-renderer/rejected', 'Execution canceled'),
196
+ ": ",
197
+ response.name)) : confirmationState === 'denied' ? (React.createElement("span", { className: 'theia-toolCall-denied' },
198
+ React.createElement("span", { className: (0, browser_1.codicon)('error') }),
199
+ " ",
200
+ nls_1.nls.localize('theia/ai/chat-ui/toolcall-part-renderer/denied', 'Execution denied'),
201
+ ": ",
202
+ response.name)) : response.finished ? (React.createElement("details", { className: 'theia-toolCall-finished' },
203
+ React.createElement("summary", null,
204
+ nls_1.nls.localize('theia/ai/chat-ui/toolcall-part-renderer/finished', 'Ran'),
205
+ " ",
206
+ response.name,
207
+ "(",
208
+ renderCollapsibleArguments(response.arguments),
209
+ ")"),
210
+ React.createElement("div", { className: 'theia-toolCall-response-result' }, responseRenderer(response)))) : (confirmationState === 'allowed' && !requestCanceled && (React.createElement("span", { className: 'theia-toolCall-allowed' },
211
+ React.createElement(Spinner, null),
212
+ " ",
213
+ nls_1.nls.localizeByDefault('Running'),
214
+ " ",
215
+ response.name))),
216
+ confirmationState === 'waiting' && !requestCanceled && (React.createElement("span", { className: 'theia-toolCall-waiting' },
217
+ React.createElement(tool_confirmation_1.ToolConfirmation, { response: response, onAllow: handleAllow, onDeny: handleDeny })))));
218
+ };
219
+ const MarkdownRender = ({ text, openerService }) => {
220
+ const ref = (0, markdown_part_renderer_1.useMarkdownRendering)(text, openerService);
221
+ return React.createElement("div", { ref: ref });
222
+ };
223
+ //# 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":"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"}
@@ -0,0 +1,9 @@
1
+ /// <reference types="react" />
2
+ import { ChatResponsePartRenderer } from '../chat-response-part-renderer';
3
+ import { ChatResponseContent, UnknownChatResponseContent } from '@theia/ai-chat/lib/common';
4
+ import { ReactNode } from '@theia/core/shared/react';
5
+ export declare class UnknownPartRenderer implements ChatResponsePartRenderer<UnknownChatResponseContent> {
6
+ canHandle(response: ChatResponseContent): number;
7
+ render(response: UnknownChatResponseContent): ReactNode;
8
+ }
9
+ //# sourceMappingURL=unknown-part-renderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unknown-part-renderer.d.ts","sourceRoot":"","sources":["../../../src/browser/chat-response-renderer/unknown-part-renderer.tsx"],"names":[],"mappings":";AAiBA,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAC5F,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAKrD,qBACa,mBAAoB,YAAW,wBAAwB,CAAC,0BAA0B,CAAC;IAC5F,SAAS,CAAC,QAAQ,EAAE,mBAAmB,GAAG,MAAM;IAIhD,MAAM,CAAC,QAAQ,EAAE,0BAA0B,GAAG,SAAS;CAqB1D"}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2025 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.UnknownPartRenderer = void 0;
19
+ const tslib_1 = require("tslib");
20
+ const inversify_1 = require("@theia/core/shared/inversify");
21
+ const nls_1 = require("@theia/core/lib/common/nls");
22
+ const React = require("@theia/core/shared/react");
23
+ const browser_1 = require("@theia/core/lib/browser");
24
+ let UnknownPartRenderer = class UnknownPartRenderer {
25
+ canHandle(response) {
26
+ return response.kind === 'unknown' ? 10 : -1;
27
+ }
28
+ render(response) {
29
+ var _a;
30
+ const fallbackMessage = response.fallbackMessage || ((_a = response.asString) === null || _a === void 0 ? void 0 : _a.call(response)) || '';
31
+ return (React.createElement("div", { className: "theia-chat-unknown-content" },
32
+ React.createElement("div", { className: "theia-chat-unknown-content-warning" },
33
+ React.createElement("i", { className: (0, browser_1.codicon)('warning') }),
34
+ React.createElement("span", null, nls_1.nls.localize('theia/ai/chat-ui/unknown-part-renderer/contentNotRestoreable', "This content (type '{0}') could not be fully restored. It may be from an extension that is no longer available.", response.originalKind))),
35
+ React.createElement("div", { className: "theia-chat-unknown-content-fallback" }, fallbackMessage)));
36
+ }
37
+ };
38
+ exports.UnknownPartRenderer = UnknownPartRenderer;
39
+ exports.UnknownPartRenderer = UnknownPartRenderer = tslib_1.__decorate([
40
+ (0, inversify_1.injectable)()
41
+ ], UnknownPartRenderer);
42
+ //# sourceMappingURL=unknown-part-renderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unknown-part-renderer.js","sourceRoot":"","sources":["../../../src/browser/chat-response-renderer/unknown-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,4DAA0D;AAI1D,oDAAiD;AACjD,kDAAkD;AAClD,qDAAkD;AAG3C,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAC5B,SAAS,CAAC,QAA6B;QACnC,OAAO,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,MAAM,CAAC,QAAoC;;QACvC,MAAM,eAAe,GAAG,QAAQ,CAAC,eAAe,KAAI,MAAA,QAAQ,CAAC,QAAQ,wDAAI,CAAA,IAAI,EAAE,CAAC;QAEhF,OAAO,CACH,6BAAK,SAAS,EAAC,4BAA4B;YACvC,6BAAK,SAAS,EAAC,oCAAoC;gBAC/C,2BAAG,SAAS,EAAE,IAAA,iBAAO,EAAC,SAAS,CAAC,GAAI;gBACpC,kCACK,SAAG,CAAC,QAAQ,CACT,8DAA8D,EAC9D,iHAAiH,EACjH,QAAQ,CAAC,YAAY,CACxB,CACE,CACL;YACN,6BAAK,SAAS,EAAC,qCAAqC,IAC/C,eAAe,CACd,CACJ,CACT,CAAC;IACN,CAAC;CACJ,CAAA;AA1BY,kDAAmB;8BAAnB,mBAAmB;IAD/B,IAAA,sBAAU,GAAE;GACA,mBAAmB,CA0B/B"}
@@ -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,38 @@
1
+ import { AIChatInputWidget, type AIChatInputConfiguration } from '../chat-input-widget';
2
+ import type { EditableRequestNode } from './chat-view-tree-widget';
3
+ import { URI } from '@theia/core';
4
+ import type { ChatRequestModel, EditableChatRequestModel, ChatHierarchyBranch } from '@theia/ai-chat';
5
+ import type { AIVariableResolutionRequest } from '@theia/ai-core';
6
+ export declare const AIChatTreeInputConfiguration: unique symbol;
7
+ export interface AIChatTreeInputConfiguration extends AIChatInputConfiguration {
8
+ }
9
+ export declare const AIChatTreeInputArgs: unique symbol;
10
+ export interface AIChatTreeInputArgs {
11
+ node: EditableRequestNode;
12
+ /**
13
+ * The branch of the chat tree for this request node (used by the input widget for state tracking).
14
+ */
15
+ branch?: ChatHierarchyBranch;
16
+ initialValue?: string;
17
+ onQuery: (query: string) => Promise<void>;
18
+ onUnpin?: () => void;
19
+ onCancel?: (requestModel: ChatRequestModel) => void;
20
+ onDeleteChangeSet?: (requestModel: ChatRequestModel) => void;
21
+ onDeleteChangeSetElement?: (requestModel: ChatRequestModel, index: number) => void;
22
+ }
23
+ export declare const AIChatTreeInputFactory: unique symbol;
24
+ export type AIChatTreeInputFactory = (args: AIChatTreeInputArgs) => AIChatTreeInputWidget;
25
+ export declare class AIChatTreeInputWidget extends AIChatInputWidget {
26
+ static ID: string;
27
+ protected readonly args: AIChatTreeInputArgs;
28
+ protected readonly configuration: AIChatTreeInputConfiguration | undefined;
29
+ get requestNode(): EditableRequestNode;
30
+ get request(): EditableChatRequestModel;
31
+ protected init(): void;
32
+ protected updateBranch(): void;
33
+ protected getResourceUri(): URI;
34
+ addContext(variable: AIVariableResolutionRequest): void;
35
+ protected getContext(): readonly AIVariableResolutionRequest[];
36
+ protected deleteContextElement(index: number): void;
37
+ }
38
+ //# sourceMappingURL=chat-view-tree-input-widget.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-view-tree-input-widget.d.ts","sourceRoot":"","sources":["../../../src/browser/chat-tree-view/chat-view-tree-input-widget.tsx"],"names":[],"mappings":"AAiBA,OAAO,EAAE,iBAAiB,EAAE,KAAK,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AACxF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAElC,OAAO,KAAK,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACtG,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAGlE,eAAO,MAAM,4BAA4B,eAAyC,CAAC;AACnF,MAAM,WAAW,4BAA6B,SAAQ,wBAAwB;CAAI;AAElF,eAAO,MAAM,mBAAmB,eAAgC,CAAC;AACjE,MAAM,WAAW,mBAAmB;IAChC,IAAI,EAAE,mBAAmB,CAAC;IAC1B;;OAEG;IACH,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,CAAC,YAAY,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACpD,iBAAiB,CAAC,EAAE,CAAC,YAAY,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC7D,wBAAwB,CAAC,EAAE,CAAC,YAAY,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACtF;AACD,eAAO,MAAM,sBAAsB,eAAmC,CAAC;AACvE,MAAM,MAAM,sBAAsB,GAAG,CAAC,IAAI,EAAE,mBAAmB,KAAK,qBAAqB,CAAC;AAE1F,qBACa,qBAAsB,SAAQ,iBAAiB;IACxD,OAAuB,EAAE,SAA4B;IAGrD,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;IAE7C,mBAC4B,aAAa,EAAE,4BAA4B,GAAG,SAAS,CAAC;IAEpF,IAAI,WAAW,IAAI,mBAAmB,CAErC;IAED,IAAI,OAAO,IAAI,wBAAwB,CAEtC;cAGkB,IAAI,IAAI,IAAI;IAoB/B,SAAS,CAAC,YAAY,IAAI,IAAI;cAIX,cAAc,IAAI,GAAG;IAI/B,UAAU,CAAC,QAAQ,EAAE,2BAA2B,GAAG,IAAI;cAI7C,UAAU,IAAI,SAAS,2BAA2B,EAAE;cAIpD,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;CAG/D"}