@theia/ai-chat-ui 1.65.0-next.28 → 1.65.0-next.47

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.
@@ -4,7 +4,7 @@ import { ToolCallChatResponseContent } from '@theia/ai-chat/lib/common';
4
4
  /**
5
5
  * States the tool confirmation component can be in
6
6
  */
7
- export type ToolConfirmationState = 'waiting' | 'allowed' | 'denied';
7
+ export type ToolConfirmationState = 'waiting' | 'allowed' | 'denied' | 'rejected';
8
8
  export interface ToolConfirmationProps {
9
9
  response: ToolCallChatResponseContent;
10
10
  onAllow: (mode?: 'once' | 'session' | 'forever') => void;
@@ -1 +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,CAAC;AAErE,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,CAyI5D,CAAC"}
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,CAyI5D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"toolcall-part-renderer.d.ts","sourceRoot":"","sources":["../../../src/browser/chat-response-renderer/toolcall-part-renderer.tsx"],"names":[],"mappings":";AAgBA,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAE1E,OAAO,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AAC7F,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;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;IAYlF,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"}
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"}
@@ -36,7 +36,7 @@ let ToolCallPartRenderer = class ToolCallPartRenderer {
36
36
  render(response, parentNode) {
37
37
  const chatId = parentNode.sessionId;
38
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) });
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
40
  }
41
41
  renderResult(response) {
42
42
  const result = this.tryParse(response.result);
@@ -116,8 +116,26 @@ const Spinner = () => (React.createElement("span", { className: `${(0, browser_1
116
116
  /**
117
117
  * A function component to handle tool call rendering and confirmation
118
118
  */
119
- const ToolCallContent = ({ response, confirmationMode, toolConfirmationManager, chatId, responseRenderer, renderCollapsibleArguments }) => {
119
+ const ToolCallContent = ({ response, confirmationMode, toolConfirmationManager, chatId, responseRenderer, renderCollapsibleArguments, requestCanceled }) => {
120
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
+ };
121
139
  React.useEffect(() => {
122
140
  if (confirmationMode === chat_tool_preferences_1.ToolConfirmationMode.ALWAYS_ALLOW) {
123
141
  response.confirm();
@@ -129,7 +147,8 @@ const ToolCallContent = ({ response, confirmationMode, toolConfirmationManager,
129
147
  setConfirmationState('denied');
130
148
  return;
131
149
  }
132
- response.confirmed.then(confirmed => {
150
+ response.confirmed
151
+ .then(confirmed => {
133
152
  if (confirmed === true) {
134
153
  setConfirmationState('allowed');
135
154
  }
@@ -137,8 +156,9 @@ const ToolCallContent = ({ response, confirmationMode, toolConfirmationManager,
137
156
  setConfirmationState('denied');
138
157
  }
139
158
  })
140
- .catch(() => {
141
- setConfirmationState('denied');
159
+ .catch(reason => {
160
+ setRejectionReason(reason);
161
+ setConfirmationState('rejected');
142
162
  });
143
163
  }, [response, confirmationMode]);
144
164
  const handleAllow = React.useCallback((mode = 'once') => {
@@ -159,8 +179,22 @@ const ToolCallContent = ({ response, confirmationMode, toolConfirmationManager,
159
179
  }
160
180
  response.deny();
161
181
  }, [response, toolConfirmationManager, chatId]);
182
+ const reasonText = formatReason(rejectionReason);
162
183
  return (React.createElement("div", { className: 'theia-toolCall' },
163
- confirmationState === 'denied' ? (React.createElement("span", { className: 'theia-toolCall-denied' },
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' },
164
198
  React.createElement("span", { className: (0, browser_1.codicon)('error') }),
165
199
  " ",
166
200
  nls_1.nls.localize('theia/ai/chat-ui/toolcall-part-renderer/denied', 'Execution denied'),
@@ -173,13 +207,13 @@ const ToolCallContent = ({ response, confirmationMode, toolConfirmationManager,
173
207
  "(",
174
208
  renderCollapsibleArguments(response.arguments),
175
209
  ")"),
176
- React.createElement("div", { className: 'theia-toolCall-response-result' }, responseRenderer(response)))) : (confirmationState === 'allowed' && (React.createElement("span", { className: 'theia-toolCall-allowed' },
210
+ React.createElement("div", { className: 'theia-toolCall-response-result' }, responseRenderer(response)))) : (confirmationState === 'allowed' && !requestCanceled && (React.createElement("span", { className: 'theia-toolCall-allowed' },
177
211
  React.createElement(Spinner, null),
178
212
  " ",
179
213
  nls_1.nls.localizeByDefault('Running'),
180
214
  " ",
181
215
  response.name))),
182
- confirmationState === 'waiting' && (React.createElement("span", { className: 'theia-toolCall-waiting' },
216
+ confirmationState === 'waiting' && !requestCanceled && (React.createElement("span", { className: 'theia-toolCall-waiting' },
183
217
  React.createElement(tool_confirmation_1.ToolConfirmation, { response: response, onAllow: handleAllow, onDeny: handleDeny })))));
184
218
  };
185
219
  const MarkdownRender = ({ text, openerService }) => {
@@ -1 +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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"}
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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"}
package/package.json CHANGED
@@ -1,17 +1,17 @@
1
1
  {
2
2
  "name": "@theia/ai-chat-ui",
3
- "version": "1.65.0-next.28+7c6aec352",
3
+ "version": "1.65.0-next.47+58532a637",
4
4
  "description": "Theia - AI Chat UI Extension",
5
5
  "dependencies": {
6
- "@theia/ai-chat": "1.65.0-next.28+7c6aec352",
7
- "@theia/ai-core": "1.65.0-next.28+7c6aec352",
8
- "@theia/core": "1.65.0-next.28+7c6aec352",
9
- "@theia/editor": "1.65.0-next.28+7c6aec352",
10
- "@theia/editor-preview": "1.65.0-next.28+7c6aec352",
11
- "@theia/filesystem": "1.65.0-next.28+7c6aec352",
12
- "@theia/monaco": "1.65.0-next.28+7c6aec352",
6
+ "@theia/ai-chat": "1.65.0-next.47+58532a637",
7
+ "@theia/ai-core": "1.65.0-next.47+58532a637",
8
+ "@theia/core": "1.65.0-next.47+58532a637",
9
+ "@theia/editor": "1.65.0-next.47+58532a637",
10
+ "@theia/editor-preview": "1.65.0-next.47+58532a637",
11
+ "@theia/filesystem": "1.65.0-next.47+58532a637",
12
+ "@theia/monaco": "1.65.0-next.47+58532a637",
13
13
  "@theia/monaco-editor-core": "1.96.302",
14
- "@theia/workspace": "1.65.0-next.28+7c6aec352",
14
+ "@theia/workspace": "1.65.0-next.47+58532a637",
15
15
  "date-fns": "^4.1.0",
16
16
  "minimatch": "^5.1.0",
17
17
  "tslib": "^2.6.2",
@@ -56,5 +56,5 @@
56
56
  "nyc": {
57
57
  "extends": "../../configs/nyc.json"
58
58
  },
59
- "gitHead": "7c6aec3525bb27b346e55cd46899d6b82145f6bd"
59
+ "gitHead": "58532a637bf1327ee71bd84c9035b9aa4404180f"
60
60
  }
@@ -22,7 +22,7 @@ import { ToolCallChatResponseContent } from '@theia/ai-chat/lib/common';
22
22
  /**
23
23
  * States the tool confirmation component can be in
24
24
  */
25
- export type ToolConfirmationState = 'waiting' | 'allowed' | 'denied';
25
+ export type ToolConfirmationState = 'waiting' | 'allowed' | 'denied' | 'rejected';
26
26
 
27
27
  export interface ToolConfirmationProps {
28
28
  response: ToolCallChatResponseContent;
@@ -53,7 +53,8 @@ export class ToolCallPartRenderer implements ChatResponsePartRenderer<ToolCallCh
53
53
  toolConfirmationManager={this.toolConfirmationManager}
54
54
  chatId={chatId}
55
55
  renderCollapsibleArguments={this.renderCollapsibleArguments.bind(this)}
56
- responseRenderer={this.renderResult.bind(this)} />;
56
+ responseRenderer={this.renderResult.bind(this)}
57
+ requestCanceled={parentNode.response.isCanceled} />;
57
58
  }
58
59
 
59
60
  protected renderResult(response: ToolCallChatResponseContent): ReactNode {
@@ -139,13 +140,40 @@ interface ToolCallContentProps {
139
140
  chatId: string;
140
141
  renderCollapsibleArguments: (args: string | undefined) => ReactNode;
141
142
  responseRenderer: (response: ToolCallChatResponseContent) => ReactNode | undefined;
143
+ requestCanceled: boolean;
142
144
  }
143
145
 
144
146
  /**
145
147
  * A function component to handle tool call rendering and confirmation
146
148
  */
147
- const ToolCallContent: React.FC<ToolCallContentProps> = ({ response, confirmationMode, toolConfirmationManager, chatId, responseRenderer, renderCollapsibleArguments }) => {
149
+ const ToolCallContent: React.FC<ToolCallContentProps> = ({
150
+ response,
151
+ confirmationMode,
152
+ toolConfirmationManager,
153
+ chatId,
154
+ responseRenderer,
155
+ renderCollapsibleArguments,
156
+ requestCanceled
157
+ }) => {
148
158
  const [confirmationState, setConfirmationState] = React.useState<ToolConfirmationState>('waiting');
159
+ const [rejectionReason, setRejectionReason] = React.useState<unknown>(undefined);
160
+
161
+ const formatReason = (reason: unknown): string => {
162
+ if (!reason) {
163
+ return '';
164
+ }
165
+ if (reason instanceof Error) {
166
+ return reason.message;
167
+ }
168
+ if (typeof reason === 'string') {
169
+ return reason;
170
+ }
171
+ try {
172
+ return JSON.stringify(reason);
173
+ } catch (e) {
174
+ return String(reason);
175
+ }
176
+ };
149
177
 
150
178
  React.useEffect(() => {
151
179
  if (confirmationMode === ToolConfirmationMode.ALWAYS_ALLOW) {
@@ -157,17 +185,17 @@ const ToolCallContent: React.FC<ToolCallContentProps> = ({ response, confirmatio
157
185
  setConfirmationState('denied');
158
186
  return;
159
187
  }
160
- response.confirmed.then(
161
- confirmed => {
188
+ response.confirmed
189
+ .then(confirmed => {
162
190
  if (confirmed === true) {
163
191
  setConfirmationState('allowed');
164
192
  } else {
165
193
  setConfirmationState('denied');
166
194
  }
167
- }
168
- )
169
- .catch(() => {
170
- setConfirmationState('denied');
195
+ })
196
+ .catch(reason => {
197
+ setRejectionReason(reason);
198
+ setConfirmationState('rejected');
171
199
  });
172
200
  }, [response, confirmationMode]);
173
201
 
@@ -189,9 +217,20 @@ const ToolCallContent: React.FC<ToolCallContentProps> = ({ response, confirmatio
189
217
  response.deny();
190
218
  }, [response, toolConfirmationManager, chatId]);
191
219
 
220
+ const reasonText = formatReason(rejectionReason);
221
+
192
222
  return (
193
223
  <div className='theia-toolCall'>
194
- {confirmationState === 'denied' ? (
224
+ {confirmationState === 'rejected' ? (
225
+ <span className='theia-toolCall-rejected'>
226
+ <span className={codicon('error')}></span> {nls.localize('theia/ai/chat-ui/toolcall-part-renderer/rejected', 'Execution canceled')}: {response.name}
227
+ {reasonText ? <span> — {reasonText}</span> : undefined}
228
+ </span>
229
+ ) : requestCanceled && !response.finished ? (
230
+ <span className='theia-toolCall-rejected'>
231
+ <span className={codicon('error')}></span> {nls.localize('theia/ai/chat-ui/toolcall-part-renderer/rejected', 'Execution canceled')}: {response.name}
232
+ </span>
233
+ ) : confirmationState === 'denied' ? (
195
234
  <span className='theia-toolCall-denied'>
196
235
  <span className={codicon('error')}></span> {nls.localize('theia/ai/chat-ui/toolcall-part-renderer/denied', 'Execution denied')}: {response.name}
197
236
  </span>
@@ -206,7 +245,7 @@ const ToolCallContent: React.FC<ToolCallContentProps> = ({ response, confirmatio
206
245
  </div>
207
246
  </details>
208
247
  ) : (
209
- confirmationState === 'allowed' && (
248
+ confirmationState === 'allowed' && !requestCanceled && (
210
249
  <span className='theia-toolCall-allowed'>
211
250
  <Spinner /> {nls.localizeByDefault('Running')} {response.name}
212
251
  </span>
@@ -214,7 +253,7 @@ const ToolCallContent: React.FC<ToolCallContentProps> = ({ response, confirmatio
214
253
  )}
215
254
 
216
255
  {/* Show confirmation UI when waiting for allow */}
217
- {confirmationState === 'waiting' && (
256
+ {confirmationState === 'waiting' && !requestCanceled && (
218
257
  <span className='theia-toolCall-waiting'>
219
258
  <ToolConfirmation
220
259
  response={response}