@theia/ai-chat-ui 1.59.0-next.62 → 1.59.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 (57) hide show
  1. package/lib/browser/ai-chat-ui-frontend-module.d.ts +1 -1
  2. package/lib/browser/ai-chat-ui-frontend-module.d.ts.map +1 -1
  3. package/lib/browser/ai-chat-ui-frontend-module.js +12 -11
  4. package/lib/browser/ai-chat-ui-frontend-module.js.map +1 -1
  5. package/lib/browser/change-set-actions/change-set-accept-action.d.ts +10 -0
  6. package/lib/browser/change-set-actions/change-set-accept-action.d.ts.map +1 -0
  7. package/lib/browser/change-set-actions/change-set-accept-action.js +47 -0
  8. package/lib/browser/change-set-actions/change-set-accept-action.js.map +1 -0
  9. package/lib/browser/change-set-actions/change-set-action-service.d.ts +31 -0
  10. package/lib/browser/change-set-actions/change-set-action-service.d.ts.map +1 -0
  11. package/lib/browser/change-set-actions/change-set-action-service.js +57 -0
  12. package/lib/browser/change-set-actions/change-set-action-service.js.map +1 -0
  13. package/lib/browser/chat-input-widget.d.ts +6 -4
  14. package/lib/browser/chat-input-widget.d.ts.map +1 -1
  15. package/lib/browser/chat-input-widget.js +57 -43
  16. package/lib/browser/chat-input-widget.js.map +1 -1
  17. package/lib/browser/chat-response-renderer/ai-selection-resolver.d.ts +23 -0
  18. package/lib/browser/chat-response-renderer/ai-selection-resolver.d.ts.map +1 -0
  19. package/lib/browser/chat-response-renderer/{ai-editor-manager.js → ai-selection-resolver.js} +2 -38
  20. package/lib/browser/chat-response-renderer/ai-selection-resolver.js.map +1 -0
  21. package/lib/browser/chat-response-renderer/code-part-renderer.d.ts.map +1 -1
  22. package/lib/browser/chat-response-renderer/code-part-renderer.js +3 -2
  23. package/lib/browser/chat-response-renderer/code-part-renderer.js.map +1 -1
  24. package/lib/browser/chat-response-renderer/index.d.ts +1 -1
  25. package/lib/browser/chat-response-renderer/index.d.ts.map +1 -1
  26. package/lib/browser/chat-response-renderer/index.js +1 -1
  27. package/lib/browser/chat-response-renderer/index.js.map +1 -1
  28. package/lib/browser/chat-tree-view/chat-view-tree-widget.d.ts.map +1 -1
  29. package/lib/browser/chat-tree-view/chat-view-tree-widget.js +2 -1
  30. package/lib/browser/chat-tree-view/chat-view-tree-widget.js.map +1 -1
  31. package/lib/browser/chat-view-contribution.d.ts.map +1 -1
  32. package/lib/browser/chat-view-contribution.js +2 -2
  33. package/lib/browser/chat-view-contribution.js.map +1 -1
  34. package/lib/browser/chat-view-language-contribution.d.ts +1 -0
  35. package/lib/browser/chat-view-language-contribution.d.ts.map +1 -1
  36. package/lib/browser/chat-view-language-contribution.js +19 -9
  37. package/lib/browser/chat-view-language-contribution.js.map +1 -1
  38. package/lib/browser/chat-view-widget.d.ts +1 -1
  39. package/lib/browser/chat-view-widget.d.ts.map +1 -1
  40. package/lib/browser/chat-view-widget.js +2 -3
  41. package/lib/browser/chat-view-widget.js.map +1 -1
  42. package/package.json +11 -11
  43. package/src/browser/ai-chat-ui-frontend-module.ts +12 -14
  44. package/src/browser/change-set-actions/change-set-accept-action.tsx +52 -0
  45. package/src/browser/change-set-actions/change-set-action-service.ts +65 -0
  46. package/src/browser/chat-input-widget.tsx +88 -61
  47. package/src/browser/chat-response-renderer/{ai-editor-manager.ts → ai-selection-resolver.ts} +6 -45
  48. package/src/browser/chat-response-renderer/code-part-renderer.tsx +3 -2
  49. package/src/browser/chat-response-renderer/index.ts +1 -1
  50. package/src/browser/chat-tree-view/chat-view-tree-widget.tsx +2 -1
  51. package/src/browser/chat-view-contribution.ts +2 -2
  52. package/src/browser/chat-view-language-contribution.ts +22 -10
  53. package/src/browser/chat-view-widget.tsx +2 -3
  54. package/src/browser/style/index.css +20 -4
  55. package/lib/browser/chat-response-renderer/ai-editor-manager.d.ts +0 -36
  56. package/lib/browser/chat-response-renderer/ai-editor-manager.d.ts.map +0 -1
  57. package/lib/browser/chat-response-renderer/ai-editor-manager.js.map +0 -1
@@ -14,11 +14,11 @@
14
14
  // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
15
  // *****************************************************************************
16
16
 
17
- import { CancellationToken, ContributionProvider, Prioritizeable, RecursivePartial, URI } from '@theia/core';
18
- import { inject, injectable, named } from '@theia/core/shared/inversify';
17
+ import { CancellationToken, RecursivePartial, URI } from '@theia/core';
18
+ import { inject, injectable } from '@theia/core/shared/inversify';
19
19
  import { EditorOpenerOptions, EditorWidget, Range } from '@theia/editor/lib/browser';
20
20
 
21
- import { EditorPreviewManager } from '@theia/editor-preview/lib/browser/editor-preview-manager';
21
+ import { EditorSelectionResolver } from '@theia/editor/lib/browser/editor-manager';
22
22
  import { DocumentSymbol } from '@theia/monaco-editor-core/esm/vs/editor/common/languages';
23
23
  import { TextModel } from '@theia/monaco-editor-core/esm/vs/editor/common/model/textModel';
24
24
  import { ILanguageFeaturesService } from '@theia/monaco-editor-core/esm/vs/editor/common/services/languageFeatures';
@@ -29,17 +29,8 @@ import { MonacoToProtocolConverter } from '@theia/monaco/lib/browser/monaco-to-p
29
29
  /** Regex to match GitHub-style position and range declaration with line (L) and column (C) */
30
30
  export const LOCATION_REGEX = /#L(\d+)?(?:C(\d+))?(?:-L(\d+)?(?:C(\d+))?)?$/;
31
31
 
32
- export const AIEditorSelectionResolver = Symbol('AIEditorSelectionResolver');
33
- export interface AIEditorSelectionResolver {
34
- /**
35
- * The priority of the resolver. A higher value resolver will be called before others.
36
- */
37
- priority?: number;
38
- resolveSelection(widget: EditorWidget, options: EditorOpenerOptions, uri?: URI): Promise<RecursivePartial<Range> | undefined>
39
- }
40
-
41
32
  @injectable()
42
- export class GitHubSelectionResolver implements AIEditorSelectionResolver {
33
+ export class GitHubSelectionResolver implements EditorSelectionResolver {
43
34
  priority = 100;
44
35
 
45
36
  async resolveSelection(widget: EditorWidget, options: EditorOpenerOptions, uri?: URI): Promise<RecursivePartial<Range> | undefined> {
@@ -67,7 +58,7 @@ export class GitHubSelectionResolver implements AIEditorSelectionResolver {
67
58
  }
68
59
 
69
60
  @injectable()
70
- export class TypeDocSymbolSelectionResolver implements AIEditorSelectionResolver {
61
+ export class TypeDocSymbolSelectionResolver implements EditorSelectionResolver {
71
62
  priority = 50;
72
63
 
73
64
  @inject(MonacoToProtocolConverter) protected readonly m2p: MonacoToProtocolConverter;
@@ -123,7 +114,7 @@ export class TypeDocSymbolSelectionResolver implements AIEditorSelectionResolver
123
114
  }
124
115
 
125
116
  @injectable()
126
- export class TextFragmentSelectionResolver implements AIEditorSelectionResolver {
117
+ export class TextFragmentSelectionResolver implements EditorSelectionResolver {
127
118
  async resolveSelection(widget: EditorWidget, options: EditorOpenerOptions, uri?: URI): Promise<RecursivePartial<Range> | undefined> {
128
119
  if (!uri) {
129
120
  return;
@@ -151,33 +142,3 @@ export class TextFragmentSelectionResolver implements AIEditorSelectionResolver
151
142
  return uri.fragment;
152
143
  }
153
144
  }
154
-
155
- @injectable()
156
- export class AIEditorManager extends EditorPreviewManager {
157
- @inject(ContributionProvider) @named(AIEditorSelectionResolver)
158
- protected readonly resolvers: ContributionProvider<AIEditorSelectionResolver>;
159
-
160
- protected override async revealSelection(widget: EditorWidget, options: EditorOpenerOptions = {}, uri?: URI): Promise<void> {
161
- if (!options.selection) {
162
- options.selection = await this.resolveSelection(options, widget, uri);
163
- }
164
- super.revealSelection(widget, options, uri);
165
- }
166
-
167
- protected async resolveSelection(options: EditorOpenerOptions, widget: EditorWidget, uri: URI | undefined): Promise<RecursivePartial<Range> | undefined> {
168
- if (!options.selection) {
169
- const orderedResolvers = Prioritizeable.prioritizeAllSync(this.resolvers.getContributions(), resolver => resolver.priority ?? 1);
170
- for (const linkResolver of orderedResolvers) {
171
- try {
172
- const selection = await linkResolver.value.resolveSelection(widget, options, uri);
173
- if (selection) {
174
- return selection;
175
- }
176
- } catch (error) {
177
- console.error(error);
178
- }
179
- }
180
- }
181
- return undefined;
182
- }
183
- }
@@ -137,7 +137,8 @@ export class CodePartRenderer
137
137
  this.contextMenuRenderer.render({
138
138
  menuPath: ChatViewTreeWidget.CONTEXT_MENU,
139
139
  anchor: { x: event.posx, y: event.posy },
140
- args: [node, { code }]
140
+ args: [node, { code }],
141
+ context: event.target
141
142
  });
142
143
  event.preventDefault();
143
144
  }
@@ -190,7 +191,7 @@ const InsertCodeAtCursorButton = (props: { code: string, editorManager: EditorMa
190
191
  }]);
191
192
  }
192
193
  }, [code, editorManager]);
193
- return <div className='button codicon codicon-insert' title={nls.localizeByDefault('Insert at Cursor')} role='button' onClick={insertCode}></div>;
194
+ return <div className='button codicon codicon-insert' title={nls.localizeByDefault('Insert At Cursor')} role='button' onClick={insertCode}></div>;
194
195
  };
195
196
 
196
197
  /**
@@ -13,7 +13,7 @@
13
13
  //
14
14
  // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
15
  // *****************************************************************************
16
- export * from './ai-editor-manager';
16
+ export * from './ai-selection-resolver';
17
17
  export * from './code-part-renderer';
18
18
  export * from './command-part-renderer';
19
19
  export * from './error-part-renderer';
@@ -439,7 +439,8 @@ export class ChatViewTreeWidget extends TreeWidget {
439
439
  this.contextMenuRenderer.render({
440
440
  menuPath: ChatViewTreeWidget.CONTEXT_MENU,
441
441
  anchor: { x: event.clientX, y: event.clientY },
442
- args: [node]
442
+ args: [node],
443
+ context: event.currentTarget
443
444
  });
444
445
  event.preventDefault();
445
446
  }
@@ -29,10 +29,10 @@ export namespace ChatViewCommands {
29
29
  id: 'chat.copy.all',
30
30
  label: 'Copy All'
31
31
  });
32
- export const COPY_CODE = Command.toDefaultLocalizedCommand({
32
+ export const COPY_CODE = Command.toLocalizedCommand({
33
33
  id: 'chat.copy.code',
34
34
  label: 'Copy Code Block'
35
- });
35
+ }, 'theia/ai/chat-ui/copyCodeBlock');
36
36
  }
37
37
 
38
38
  @injectable()
@@ -71,17 +71,15 @@ export class ChatViewLanguageContribution implements FrontendApplicationContribu
71
71
  }
72
72
 
73
73
  getCompletionRange(model: monaco.editor.ITextModel, position: monaco.Position, triggerCharacter: string): monaco.Range | undefined {
74
- // Check if the character before the current position is the trigger character
74
+ const wordInfo = model.getWordUntilPosition(position);
75
75
  const lineContent = model.getLineContent(position.lineNumber);
76
- const characterBefore = lineContent[position.column - 2]; // Get the character before the current position
77
-
78
- if (characterBefore !== triggerCharacter) {
79
- // Do not return agent suggestions if the user didn't just type the trigger character
76
+ // one to the left, and -1 for 0-based index
77
+ const characterBeforeCurrentWord = lineContent[wordInfo.startColumn - 1 - 1];
78
+ // return suggestions only if the word is directly preceded by the trigger character
79
+ if (characterBeforeCurrentWord !== triggerCharacter) {
80
80
  return undefined;
81
81
  }
82
82
 
83
- // Calculate the range from the position of the trigger character
84
- const wordInfo = model.getWordUntilPosition(position);
85
83
  return new monaco.Range(
86
84
  position.lineNumber,
87
85
  wordInfo.startColumn,
@@ -136,7 +134,7 @@ export class ChatViewLanguageContribution implements FrontendApplicationContribu
136
134
  PromptText.VARIABLE_CHAR,
137
135
  this.variableService.getVariables(),
138
136
  monaco.languages.CompletionItemKind.Variable,
139
- variable => variable.name,
137
+ variable => variable.args?.some(arg => !arg.isOptional) ? variable.name + PromptText.VARIABLE_SEPARATOR_CHAR : variable.name,
140
138
  variable => variable.name,
141
139
  variable => variable.description,
142
140
  {
@@ -192,7 +190,16 @@ export class ChatViewLanguageContribution implements FrontendApplicationContribu
192
190
  if (!model || !position) {
193
191
  return;
194
192
  }
195
- const variableName = model.getWordAtPosition(position)?.word;
193
+
194
+ // account for the variable separator character if present
195
+ let endOfWordPosition = position.column;
196
+ let insertTextPrefix = PromptText.VARIABLE_SEPARATOR_CHAR;
197
+ if (this.getCharacterBeforePosition(model, position) === PromptText.VARIABLE_SEPARATOR_CHAR) {
198
+ endOfWordPosition = position.column - 1;
199
+ insertTextPrefix = '';
200
+ }
201
+
202
+ const variableName = model.getWordAtPosition({ ...position, column: endOfWordPosition })?.word;
196
203
  if (!variableName) {
197
204
  return;
198
205
  }
@@ -206,11 +213,16 @@ export class ChatViewLanguageContribution implements FrontendApplicationContribu
206
213
  }
207
214
  inputEditor.executeEdits('variable-argument-picker', [{
208
215
  range: new monaco.Range(position.lineNumber, position.column, position.lineNumber, position.column),
209
- text: PromptText.VARIABLE_SEPARATOR_CHAR + arg
216
+ text: insertTextPrefix + arg
210
217
  }]);
211
218
  await this.addContextVariable(variableName, arg);
212
219
  }
213
220
 
221
+ protected getCharacterBeforePosition(model: monaco.editor.ITextModel, position: monaco.Position): string {
222
+ // one to the left, and -1 for 0-based index
223
+ return model.getLineContent(position.lineNumber)[position.column - 1 - 1];
224
+ }
225
+
214
226
  protected async addContextVariable(variableName: string, arg: string | undefined): Promise<void> {
215
227
  const variable = this.variableService.getVariable(variableName);
216
228
  if (!variable || !AIContextVariable.is(variable)) {
@@ -161,12 +161,11 @@ export class ChatViewWidget extends BaseWidget implements ExtractableWidget, Sta
161
161
  return this.onStateChangedEmitter.event;
162
162
  }
163
163
 
164
- protected async onQuery(query: string, contextVariableRequests?: AIVariableResolutionRequest[]): Promise<void> {
164
+ protected async onQuery(query: string): Promise<void> {
165
165
  if (query.length === 0) { return; }
166
166
 
167
167
  const chatRequest: ChatRequest = { text: query };
168
- const context = { variableRequests: contextVariableRequests ?? [] };
169
- const requestProgress = await this.chatService.sendRequest(this.chatSession.id, chatRequest, context);
168
+ const requestProgress = await this.chatService.sendRequest(this.chatSession.id, chatRequest);
170
169
  requestProgress?.responseCompleted.then(responseModel => {
171
170
  if (responseModel.isError) {
172
171
  this.messageService.error(responseModel.errorObject?.message ??
@@ -248,14 +248,15 @@ div:last-child > .theia-ChatNode {
248
248
  color: var(--theia-disabledForeground);
249
249
  padding-top: 0;
250
250
  margin: 0;
251
- display: flex;
252
251
  }
253
252
 
254
- .theia-ChatInput-ChangeSet-Header-Actions button {
253
+ .theia-ChatInput-ChangeSet-Header-Actions .theia-button {
254
+ height: 100%;
255
+ box-sizing: border-box;
255
256
  font-size: 12px;
256
257
  padding: 2px 4px;
257
258
  min-width: 40px;
258
- margin-left: 6px;
259
+ margin: 0;
259
260
  }
260
261
 
261
262
  .theia-ChatInput-ChangeSet-List ul {
@@ -339,6 +340,17 @@ div:last-child > .theia-ChatNode {
339
340
  text-overflow: ellipsis;
340
341
  }
341
342
 
343
+ .theia-ChatInput-ChangeSet-Header-Actions {
344
+ display: flex;
345
+ flex: none;
346
+ flex-flow: row nowrap;
347
+ gap: var(--theia-ui-padding);
348
+ }
349
+
350
+ .theia-changeSet-Action {
351
+ flex: none;
352
+ }
353
+
342
354
  .theia-ChatInput-ChangeSet-Header-Actions,
343
355
  .theia-ChatInput-ChangeSet-Box h3,
344
356
  .theia-ChatInput-ChangeSet-additionalInfo {
@@ -393,6 +405,10 @@ div:last-child > .theia-ChatNode {
393
405
  border-color: var(--theia-focusBorder);
394
406
  }
395
407
 
408
+ .theia-ChatInput-Editor-Box .monaco-editor {
409
+ outline-color: var(--theia-editor-background);
410
+ }
411
+
396
412
  .theia-ChatInput-Editor {
397
413
  width: 100%;
398
414
  height: auto;
@@ -481,7 +497,7 @@ div:last-child > .theia-ChatNode {
481
497
  }
482
498
 
483
499
  .theia-ChatInputOptions .reverse {
484
- flex-direction: row-reverse;
500
+ flex-direction: row-reverse;
485
501
  }
486
502
 
487
503
  .theia-CodePartRenderer-root {
@@ -1,36 +0,0 @@
1
- import { ContributionProvider, RecursivePartial, URI } from '@theia/core';
2
- import { EditorOpenerOptions, EditorWidget, Range } from '@theia/editor/lib/browser';
3
- import { EditorPreviewManager } from '@theia/editor-preview/lib/browser/editor-preview-manager';
4
- import { DocumentSymbol } from '@theia/monaco-editor-core/esm/vs/editor/common/languages';
5
- import { MonacoToProtocolConverter } from '@theia/monaco/lib/browser/monaco-to-protocol-converter';
6
- /** Regex to match GitHub-style position and range declaration with line (L) and column (C) */
7
- export declare const LOCATION_REGEX: RegExp;
8
- export declare const AIEditorSelectionResolver: unique symbol;
9
- export interface AIEditorSelectionResolver {
10
- /**
11
- * The priority of the resolver. A higher value resolver will be called before others.
12
- */
13
- priority?: number;
14
- resolveSelection(widget: EditorWidget, options: EditorOpenerOptions, uri?: URI): Promise<RecursivePartial<Range> | undefined>;
15
- }
16
- export declare class GitHubSelectionResolver implements AIEditorSelectionResolver {
17
- priority: number;
18
- resolveSelection(widget: EditorWidget, options: EditorOpenerOptions, uri?: URI): Promise<RecursivePartial<Range> | undefined>;
19
- }
20
- export declare class TypeDocSymbolSelectionResolver implements AIEditorSelectionResolver {
21
- priority: number;
22
- protected readonly m2p: MonacoToProtocolConverter;
23
- resolveSelection(widget: EditorWidget, options: EditorOpenerOptions, uri?: URI): Promise<RecursivePartial<Range> | undefined>;
24
- protected findSymbolPath(uri: URI): string[] | undefined;
25
- protected findSymbolByPath(symbols: DocumentSymbol[], symbolPath: string[]): DocumentSymbol | undefined;
26
- }
27
- export declare class TextFragmentSelectionResolver implements AIEditorSelectionResolver {
28
- resolveSelection(widget: EditorWidget, options: EditorOpenerOptions, uri?: URI): Promise<RecursivePartial<Range> | undefined>;
29
- protected findFragment(uri: URI): string | undefined;
30
- }
31
- export declare class AIEditorManager extends EditorPreviewManager {
32
- protected readonly resolvers: ContributionProvider<AIEditorSelectionResolver>;
33
- protected revealSelection(widget: EditorWidget, options?: EditorOpenerOptions, uri?: URI): Promise<void>;
34
- protected resolveSelection(options: EditorOpenerOptions, widget: EditorWidget, uri: URI | undefined): Promise<RecursivePartial<Range> | undefined>;
35
- }
36
- //# sourceMappingURL=ai-editor-manager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ai-editor-manager.d.ts","sourceRoot":"","sources":["../../../src/browser/chat-response-renderer/ai-editor-manager.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAqB,oBAAoB,EAAkB,gBAAgB,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAE7G,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAErF,OAAO,EAAE,oBAAoB,EAAE,MAAM,0DAA0D,CAAC;AAChG,OAAO,EAAE,cAAc,EAAE,MAAM,0DAA0D,CAAC;AAK1F,OAAO,EAAE,yBAAyB,EAAE,MAAM,wDAAwD,CAAC;AAEnG,8FAA8F;AAC9F,eAAO,MAAM,cAAc,QAAiD,CAAC;AAE7E,eAAO,MAAM,yBAAyB,eAAsC,CAAC;AAC7E,MAAM,WAAW,yBAAyB;IACtC;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,mBAAmB,EAAE,GAAG,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC,CAAA;CAChI;AAED,qBACa,uBAAwB,YAAW,yBAAyB;IACrE,QAAQ,SAAO;IAET,gBAAgB,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,mBAAmB,EAAE,GAAG,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;CAsBtI;AAED,qBACa,8BAA+B,YAAW,yBAAyB;IAC5E,QAAQ,SAAM;IAEqB,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,yBAAyB,CAAC;IAE/E,gBAAgB,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,mBAAmB,EAAE,GAAG,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;IA6BnI,SAAS,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,EAAE,GAAG,SAAS;IAIxD,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,cAAc,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,cAAc,GAAG,SAAS;CAe1G;AAED,qBACa,6BAA8B,YAAW,yBAAyB;IACrE,gBAAgB,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,mBAAmB,EAAE,GAAG,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;IAuBnI,SAAS,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,GAAG,SAAS;CAGvD;AAED,qBACa,eAAgB,SAAQ,oBAAoB;IAErD,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,oBAAoB,CAAC,yBAAyB,CAAC,CAAC;cAErD,eAAe,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,GAAE,mBAAwB,EAAE,GAAG,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;cAO3G,gBAAgB,CAAC,OAAO,EAAE,mBAAmB,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,EAAE,GAAG,GAAG,SAAS,GAAG,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;CAgB3J"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ai-editor-manager.js","sourceRoot":"","sources":["../../../src/browser/chat-response-renderer/ai-editor-manager.ts"],"names":[],"mappings":"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"}