@theia/ai-chat-ui 1.58.2 → 1.59.0-next.62

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 (51) hide show
  1. package/lib/browser/ai-chat-ui-contribution.d.ts.map +1 -1
  2. package/lib/browser/ai-chat-ui-contribution.js +7 -7
  3. package/lib/browser/ai-chat-ui-contribution.js.map +1 -1
  4. package/lib/browser/ai-chat-ui-frontend-module.d.ts.map +1 -1
  5. package/lib/browser/ai-chat-ui-frontend-module.js +7 -4
  6. package/lib/browser/ai-chat-ui-frontend-module.js.map +1 -1
  7. package/lib/browser/chat-input-widget.d.ts +21 -4
  8. package/lib/browser/chat-input-widget.d.ts.map +1 -1
  9. package/lib/browser/chat-input-widget.js +177 -37
  10. package/lib/browser/chat-input-widget.js.map +1 -1
  11. package/lib/browser/chat-response-renderer/code-part-renderer.d.ts.map +1 -1
  12. package/lib/browser/chat-response-renderer/code-part-renderer.js +4 -3
  13. package/lib/browser/chat-response-renderer/code-part-renderer.js.map +1 -1
  14. package/lib/browser/chat-response-renderer/text-part-renderer.d.ts.map +1 -1
  15. package/lib/browser/chat-response-renderer/text-part-renderer.js +3 -1
  16. package/lib/browser/chat-response-renderer/text-part-renderer.js.map +1 -1
  17. package/lib/browser/chat-response-renderer/toolcall-part-renderer.d.ts.map +1 -1
  18. package/lib/browser/chat-response-renderer/toolcall-part-renderer.js +7 -3
  19. package/lib/browser/chat-response-renderer/toolcall-part-renderer.js.map +1 -1
  20. package/lib/browser/chat-tree-view/chat-view-tree-widget.d.ts.map +1 -1
  21. package/lib/browser/chat-tree-view/chat-view-tree-widget.js +25 -16
  22. package/lib/browser/chat-tree-view/chat-view-tree-widget.js.map +1 -1
  23. package/lib/browser/chat-view-contribution.d.ts +2 -2
  24. package/lib/browser/chat-view-contribution.d.ts.map +1 -1
  25. package/lib/browser/chat-view-contribution.js +6 -6
  26. package/lib/browser/chat-view-contribution.js.map +1 -1
  27. package/lib/browser/chat-view-language-contribution.d.ts +10 -5
  28. package/lib/browser/chat-view-language-contribution.d.ts.map +1 -1
  29. package/lib/browser/chat-view-language-contribution.js +94 -14
  30. package/lib/browser/chat-view-language-contribution.js.map +1 -1
  31. package/lib/browser/chat-view-widget.d.ts +4 -1
  32. package/lib/browser/chat-view-widget.d.ts.map +1 -1
  33. package/lib/browser/chat-view-widget.js +18 -7
  34. package/lib/browser/chat-view-widget.js.map +1 -1
  35. package/lib/browser/context-variable-picker.d.ts +9 -0
  36. package/lib/browser/context-variable-picker.d.ts.map +1 -0
  37. package/lib/browser/context-variable-picker.js +86 -0
  38. package/lib/browser/context-variable-picker.js.map +1 -0
  39. package/package.json +11 -11
  40. package/src/browser/ai-chat-ui-contribution.ts +8 -8
  41. package/src/browser/ai-chat-ui-frontend-module.ts +8 -4
  42. package/src/browser/chat-input-widget.tsx +255 -49
  43. package/src/browser/chat-response-renderer/code-part-renderer.tsx +4 -3
  44. package/src/browser/chat-response-renderer/text-part-renderer.tsx +4 -1
  45. package/src/browser/chat-response-renderer/toolcall-part-renderer.tsx +9 -3
  46. package/src/browser/chat-tree-view/chat-view-tree-widget.tsx +26 -16
  47. package/src/browser/chat-view-contribution.ts +6 -6
  48. package/src/browser/chat-view-language-contribution.ts +103 -19
  49. package/src/browser/chat-view-widget.tsx +22 -8
  50. package/src/browser/context-variable-picker.ts +85 -0
  51. package/src/browser/style/index.css +95 -9
@@ -1 +1 @@
1
- {"version":3,"file":"ai-chat-ui-contribution.d.ts","sourceRoot":"","sources":["../../src/browser/ai-chat-ui-contribution.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAClG,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAEjD,OAAO,EAAqB,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAE,MAAM,iDAAiD,CAAC;AAC3F,OAAO,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,+CAA+C,CAAC;AACjH,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,kDAAkD,CAAC;AAE1F,eAAO,MAAM,yBAAyB,kBAAkB,CAAC;AAEzD,qBACa,kBAAmB,SAAQ,wBAAwB,CAAC,cAAc,CAAE,YAAW,yBAAyB;IAGjH,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAE5C,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAExD,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,EAAE,gBAAgB,CAG5D;IAGF,SAAS,CAAC,QAAQ,CAAC,sBAAsB,EAAE,sBAAsB,CAAC;;IAezD,gBAAgB,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IA8B1D,oBAAoB,CAAC,QAAQ,EAAE,qBAAqB,GAAG,IAAI;IAe3D,SAAS,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO;cAIpC,UAAU,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAc7D,SAAS,CAAC,iBAAiB,IAAI,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;IAmCjE,SAAS,CAAC,UAAU,CAChB,MAAM,GAAE,MAAM,GAAG,SAA+B,EAChD,SAAS,GAAE,CAAC,MAAM,EAAE,cAAc,KAAK,OAAoB,GAC5D,OAAO,GAAG,KAAK;IAIlB,SAAS,CAAC,eAAe,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;IAIzD,kBAAkB,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO;CAGxD"}
1
+ {"version":3,"file":"ai-chat-ui-contribution.d.ts","sourceRoot":"","sources":["../../src/browser/ai-chat-ui-contribution.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,eAAe,EAAc,gBAAgB,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC9G,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAEjD,OAAO,EAAqB,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAE,MAAM,iDAAiD,CAAC;AAC3F,OAAO,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,+CAA+C,CAAC;AACjH,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,kDAAkD,CAAC;AAE1F,eAAO,MAAM,yBAAyB,kBAAkB,CAAC;AAEzD,qBACa,kBAAmB,SAAQ,wBAAwB,CAAC,cAAc,CAAE,YAAW,yBAAyB;IAGjH,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAE5C,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAExD,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,EAAE,gBAAgB,CAG5D;IAGF,SAAS,CAAC,QAAQ,CAAC,sBAAsB,EAAE,sBAAsB,CAAC;;IAezD,gBAAgB,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IA8B1D,oBAAoB,CAAC,QAAQ,EAAE,qBAAqB,GAAG,IAAI;IAe3D,SAAS,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO;cAIpC,UAAU,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAc7D,SAAS,CAAC,iBAAiB,IAAI,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;IAmCjE,SAAS,CAAC,UAAU,CAChB,MAAM,GAAE,MAAM,GAAG,SAA+B,EAChD,SAAS,GAAE,CAAC,MAAM,EAAE,cAAc,KAAK,OAAoB,GAC5D,OAAO,GAAG,KAAK;IAIlB,SAAS,CAAC,eAAe,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;IAIzD,kBAAkB,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO;CAGxD"}
@@ -33,11 +33,11 @@ let AIChatContribution = AIChatContribution_1 = class AIChatContribution extends
33
33
  widgetId: chat_view_widget_1.ChatViewWidget.ID,
34
34
  widgetName: chat_view_widget_1.ChatViewWidget.LABEL,
35
35
  defaultWidgetOptions: {
36
- area: 'left',
36
+ area: 'right',
37
37
  rank: 100
38
38
  },
39
39
  toggleCommandId: exports.AI_CHAT_TOGGLE_COMMAND_ID,
40
- toggleKeybinding: 'ctrlcmd+alt+i'
40
+ toggleKeybinding: core_1.isOSX ? 'ctrl+cmd+i' : 'ctrl+alt+i'
41
41
  });
42
42
  }
43
43
  registerCommands(registry) {
@@ -73,13 +73,13 @@ let AIChatContribution = AIChatContribution_1 = class AIChatContribution extends
73
73
  registry.registerItem({
74
74
  id: chat_view_commands_1.AI_CHAT_NEW_CHAT_WINDOW_COMMAND.id,
75
75
  command: chat_view_commands_1.AI_CHAT_NEW_CHAT_WINDOW_COMMAND.id,
76
- tooltip: 'New Chat',
76
+ tooltip: core_1.nls.localizeByDefault('New Chat'),
77
77
  isVisible: widget => this.isChatViewWidget(widget)
78
78
  });
79
79
  registry.registerItem({
80
80
  id: chat_view_commands_1.AI_CHAT_SHOW_CHATS_COMMAND.id,
81
81
  command: chat_view_commands_1.AI_CHAT_SHOW_CHATS_COMMAND.id,
82
- tooltip: 'Show Chats...',
82
+ tooltip: core_1.nls.localizeByDefault('Show Chats...'),
83
83
  isVisible: widget => this.isChatViewWidget(widget),
84
84
  });
85
85
  }
@@ -101,14 +101,14 @@ let AIChatContribution = AIChatContribution_1 = class AIChatContribution extends
101
101
  const getItems = () => this.chatService.getSessions().filter(session => !session.isActive).map(session => {
102
102
  var _a;
103
103
  return ({
104
- label: (_a = session.title) !== null && _a !== void 0 ? _a : 'New Chat',
104
+ label: (_a = session.title) !== null && _a !== void 0 ? _a : core_1.nls.localizeByDefault('New Chat'),
105
105
  id: session.id,
106
106
  buttons: [AIChatContribution_1.REMOVE_CHAT_BUTTON]
107
107
  });
108
108
  }).reverse();
109
109
  const defer = new promise_util_1.Deferred();
110
110
  const quickPick = this.quickInputService.createQuickPick();
111
- quickPick.placeholder = 'Select chat';
111
+ quickPick.placeholder = core_1.nls.localize('theia/ai/chat-ui/selectChat', 'Select chat');
112
112
  quickPick.canSelectMany = false;
113
113
  quickPick.items = getItems();
114
114
  quickPick.onDidTriggerItemButton(async (context) => {
@@ -140,7 +140,7 @@ let AIChatContribution = AIChatContribution_1 = class AIChatContribution extends
140
140
  exports.AIChatContribution = AIChatContribution;
141
141
  AIChatContribution.REMOVE_CHAT_BUTTON = {
142
142
  iconClass: 'codicon-remove-close',
143
- tooltip: 'Remove Chat',
143
+ tooltip: core_1.nls.localize('theia/ai/chat-ui/removeChat', 'Remove Chat'),
144
144
  };
145
145
  tslib_1.__decorate([
146
146
  (0, inversify_1.inject)(ai_chat_1.ChatService),
@@ -1 +1 @@
1
- {"version":3,"file":"ai-chat-ui-contribution.js","sourceRoot":"","sources":["../../src/browser/ai-chat-ui-contribution.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ai-chat-ui-contribution.js","sourceRoot":"","sources":["../../src/browser/ai-chat-ui-contribution.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ai-chat-ui-frontend-module.d.ts","sourceRoot":"","sources":["../../src/browser/ai-chat-ui-frontend-module.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,eAAe,EAAc,MAAM,8BAA8B,CAAC;AAgC3E,OAAO,mCAAmC,CAAC;;AAE3C,wBA0DG"}
1
+ {"version":3,"file":"ai-chat-ui-frontend-module.d.ts","sourceRoot":"","sources":["../../src/browser/ai-chat-ui-frontend-module.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,eAAe,EAAc,MAAM,8BAA8B,CAAC;AAG3E,OAAO,mCAAmC,CAAC;;AAgC3C,wBA6DG"}
@@ -19,22 +19,23 @@ const core_1 = require("@theia/core");
19
19
  const browser_1 = require("@theia/core/lib/browser");
20
20
  const tab_bar_toolbar_1 = require("@theia/core/lib/browser/shell/tab-bar-toolbar");
21
21
  const inversify_1 = require("@theia/core/shared/inversify");
22
+ const editor_preview_manager_1 = require("@theia/editor-preview/lib/browser/editor-preview-manager");
22
23
  const browser_2 = require("@theia/editor/lib/browser");
24
+ require("../../src/browser/style/index.css");
23
25
  const ai_chat_ui_contribution_1 = require("./ai-chat-ui-contribution");
24
26
  const chat_input_widget_1 = require("./chat-input-widget");
25
27
  const chat_node_toolbar_action_contribution_1 = require("./chat-node-toolbar-action-contribution");
26
28
  const chat_response_part_renderer_1 = require("./chat-response-part-renderer");
27
29
  const chat_response_renderer_1 = require("./chat-response-renderer");
28
30
  const ai_editor_manager_1 = require("./chat-response-renderer/ai-editor-manager");
31
+ const question_part_renderer_1 = require("./chat-response-renderer/question-part-renderer");
29
32
  const chat_tree_view_1 = require("./chat-tree-view");
30
33
  const chat_view_tree_widget_1 = require("./chat-tree-view/chat-view-tree-widget");
31
34
  const chat_view_contribution_1 = require("./chat-view-contribution");
32
35
  const chat_view_language_contribution_1 = require("./chat-view-language-contribution");
33
36
  const chat_view_widget_1 = require("./chat-view-widget");
34
37
  const chat_view_widget_toolbar_contribution_1 = require("./chat-view-widget-toolbar-contribution");
35
- const editor_preview_manager_1 = require("@theia/editor-preview/lib/browser/editor-preview-manager");
36
- const question_part_renderer_1 = require("./chat-response-renderer/question-part-renderer");
37
- require("../../src/browser/style/index.css");
38
+ const context_variable_picker_1 = require("./context-variable-picker");
38
39
  exports.default = new inversify_1.ContainerModule((bind, _unbind, _isBound, rebind) => {
39
40
  (0, browser_1.bindViewContribution)(bind, ai_chat_ui_contribution_1.AIChatContribution);
40
41
  bind(tab_bar_toolbar_1.TabBarToolbarContribution).toService(ai_chat_ui_contribution_1.AIChatContribution);
@@ -42,7 +43,8 @@ exports.default = new inversify_1.ContainerModule((bind, _unbind, _isBound, rebi
42
43
  bindChatViewWidget(bind);
43
44
  bind(chat_input_widget_1.AIChatInputWidget).toSelf();
44
45
  bind(chat_input_widget_1.AIChatInputConfiguration).toConstantValue({
45
- showContext: false
46
+ showContext: true,
47
+ showPinnedAgent: true
46
48
  });
47
49
  bind(browser_1.WidgetFactory).toDynamicValue(({ container }) => ({
48
50
  id: chat_input_widget_1.AIChatInputWidget.ID,
@@ -53,6 +55,7 @@ exports.default = new inversify_1.ContainerModule((bind, _unbind, _isBound, rebi
53
55
  id: chat_view_tree_widget_1.ChatViewTreeWidget.ID,
54
56
  createWidget: () => container.get(chat_view_tree_widget_1.ChatViewTreeWidget)
55
57
  })).inSingletonScope();
58
+ bind(context_variable_picker_1.ContextVariablePicker).toSelf().inSingletonScope();
56
59
  bind(chat_response_part_renderer_1.ChatResponsePartRenderer).to(chat_response_renderer_1.HorizontalLayoutPartRenderer).inSingletonScope();
57
60
  bind(chat_response_part_renderer_1.ChatResponsePartRenderer).to(chat_response_renderer_1.ErrorPartRenderer).inSingletonScope();
58
61
  bind(chat_response_part_renderer_1.ChatResponsePartRenderer).to(chat_response_renderer_1.MarkdownPartRenderer).inSingletonScope();
@@ -1 +1 @@
1
- {"version":3,"file":"ai-chat-ui-frontend-module.js","sourceRoot":"","sources":["../../src/browser/ai-chat-ui-frontend-module.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ai-chat-ui-frontend-module.js","sourceRoot":"","sources":["../../src/browser/ai-chat-ui-frontend-module.ts"],"names":[],"mappings":"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"}
@@ -1,32 +1,42 @@
1
1
  /// <reference types="react" />
2
- import { ChatModel, ChatRequestModel } from '@theia/ai-chat';
3
- import { UntitledResourceResolver } from '@theia/core';
2
+ import { ChatAgent, ChatModel, ChatRequestModel } from '@theia/ai-chat';
3
+ import { InMemoryResources } from '@theia/core';
4
4
  import { ContextMenuRenderer, LabelProvider, Message, ReactWidget } from '@theia/core/lib/browser';
5
5
  import * as React from '@theia/core/shared/react';
6
6
  import { IMouseEvent } from '@theia/monaco-editor-core';
7
7
  import { MonacoEditor } from '@theia/monaco/lib/browser/monaco-editor';
8
8
  import { MonacoEditorProvider } from '@theia/monaco/lib/browser/monaco-editor-provider';
9
- type Query = (query: string) => Promise<void>;
9
+ import { AIVariableResolutionRequest } from '@theia/ai-core';
10
+ import { FrontendVariableService } from '@theia/ai-core/lib/browser';
11
+ import { ContextVariablePicker } from './context-variable-picker';
12
+ type Query = (query: string, context?: AIVariableResolutionRequest[]) => Promise<void>;
13
+ type Unpin = () => void;
10
14
  type Cancel = (requestModel: ChatRequestModel) => void;
11
15
  type DeleteChangeSet = (requestModel: ChatRequestModel) => void;
12
16
  type DeleteChangeSetElement = (requestModel: ChatRequestModel, index: number) => void;
13
17
  export declare const AIChatInputConfiguration: unique symbol;
14
18
  export interface AIChatInputConfiguration {
15
19
  showContext?: boolean;
20
+ showPinnedAgent?: boolean;
16
21
  }
17
22
  export declare class AIChatInputWidget extends ReactWidget {
18
23
  static ID: string;
19
24
  static readonly CONTEXT_MENU: string[];
20
25
  protected readonly editorProvider: MonacoEditorProvider;
21
- protected readonly untitledResourceResolver: UntitledResourceResolver;
26
+ protected readonly resources: InMemoryResources;
22
27
  protected readonly contextMenuRenderer: ContextMenuRenderer;
23
28
  protected readonly configuration: AIChatInputConfiguration | undefined;
29
+ protected readonly variableService: FrontendVariableService;
24
30
  protected readonly labelProvider: LabelProvider;
31
+ protected readonly contextVariablePicker: ContextVariablePicker;
25
32
  protected editorRef: MonacoEditor | undefined;
26
33
  private editorReady;
27
34
  protected isEnabled: boolean;
35
+ protected context: AIVariableResolutionRequest[];
28
36
  private _onQuery;
29
37
  set onQuery(query: Query);
38
+ private _onUnpin;
39
+ set onUnpin(unpin: Unpin);
30
40
  private _onCancel;
31
41
  set onCancel(cancel: Cancel);
32
42
  private _onDeleteChangeSet;
@@ -35,11 +45,18 @@ export declare class AIChatInputWidget extends ReactWidget {
35
45
  set onDeleteChangeSetElement(deleteChangeSetElement: DeleteChangeSetElement);
36
46
  private _chatModel;
37
47
  set chatModel(chatModel: ChatModel);
48
+ private _pinnedAgent;
49
+ set pinnedAgent(pinnedAgent: ChatAgent | undefined);
38
50
  protected init(): void;
39
51
  protected onActivateRequest(msg: Message): void;
40
52
  protected render(): React.ReactNode;
53
+ protected onDragOver(event: React.DragEvent): void;
54
+ protected onDrop(event: React.DragEvent): void;
41
55
  setEnabled(enabled: boolean): void;
56
+ protected addContextElement(): void;
57
+ protected deleteContextElement(index: number): void;
42
58
  protected handleContextMenu(event: IMouseEvent): void;
59
+ addContext(variableRequest: AIVariableResolutionRequest): void;
43
60
  }
44
61
  export {};
45
62
  //# sourceMappingURL=chat-input-widget.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"chat-input-widget.d.ts","sourceRoot":"","sources":["../../src/browser/chat-input-widget.tsx"],"names":[],"mappings":";AAeA,OAAO,EAAgD,SAAS,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC3G,OAAO,EAAc,wBAAwB,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAGnG,OAAO,KAAK,KAAK,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,kDAAkD,CAAC;AAGxF,KAAK,KAAK,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAC9C,KAAK,MAAM,GAAG,CAAC,YAAY,EAAE,gBAAgB,KAAK,IAAI,CAAC;AACvD,KAAK,eAAe,GAAG,CAAC,YAAY,EAAE,gBAAgB,KAAK,IAAI,CAAC;AAChE,KAAK,sBAAsB,GAAG,CAAC,YAAY,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;AAEtF,eAAO,MAAM,wBAAwB,eAAqC,CAAC;AAC3E,MAAM,WAAW,wBAAwB;IACrC,WAAW,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,qBACa,iBAAkB,SAAQ,WAAW;IAC9C,OAAc,EAAE,SAAuB;IACvC,MAAM,CAAC,QAAQ,CAAC,YAAY,WAA+B;IAG3D,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,oBAAoB,CAAC;IAGxD,SAAS,CAAC,QAAQ,CAAC,wBAAwB,EAAE,wBAAwB,CAAC;IAGtE,SAAS,CAAC,QAAQ,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;IAG5D,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,wBAAwB,GAAG,SAAS,CAAC;IAGvE,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IAEhD,SAAS,CAAC,SAAS,EAAE,YAAY,GAAG,SAAS,CAAa;IAC1D,OAAO,CAAC,WAAW,CAAwB;IAE3C,SAAS,CAAC,SAAS,UAAS;IAE5B,OAAO,CAAC,QAAQ,CAAQ;IACxB,IAAI,OAAO,CAAC,KAAK,EAAE,KAAK,EAEvB;IACD,OAAO,CAAC,SAAS,CAAS;IAC1B,IAAI,QAAQ,CAAC,MAAM,EAAE,MAAM,EAE1B;IACD,OAAO,CAAC,kBAAkB,CAAkB;IAC5C,IAAI,iBAAiB,CAAC,eAAe,EAAE,eAAe,EAErD;IACD,OAAO,CAAC,yBAAyB,CAAyB;IAC1D,IAAI,wBAAwB,CAAC,sBAAsB,EAAE,sBAAsB,EAE1E;IACD,OAAO,CAAC,UAAU,CAAY;IAC9B,IAAI,SAAS,CAAC,SAAS,EAAE,SAAS,EAGjC;IAGD,SAAS,CAAC,IAAI,IAAI,IAAI;cAMH,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IASxD,SAAS,CAAC,MAAM,IAAI,KAAK,CAAC,SAAS;IAsB5B,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAKzC,SAAS,CAAC,iBAAiB,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;CAQxD"}
1
+ {"version":3,"file":"chat-input-widget.d.ts","sourceRoot":"","sources":["../../src/browser/chat-input-widget.tsx"],"names":[],"mappings":"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"}
@@ -26,6 +26,8 @@ const inversify_1 = require("@theia/core/shared/inversify");
26
26
  const React = require("@theia/core/shared/react");
27
27
  const monaco_editor_provider_1 = require("@theia/monaco/lib/browser/monaco-editor-provider");
28
28
  const chat_view_language_contribution_1 = require("./chat-view-language-contribution");
29
+ const browser_2 = require("@theia/ai-core/lib/browser");
30
+ const context_variable_picker_1 = require("./context-variable-picker");
29
31
  exports.AIChatInputConfiguration = Symbol('AIChatInputConfiguration');
30
32
  let AIChatInputWidget = AIChatInputWidget_1 = class AIChatInputWidget extends browser_1.ReactWidget {
31
33
  constructor() {
@@ -33,10 +35,14 @@ let AIChatInputWidget = AIChatInputWidget_1 = class AIChatInputWidget extends br
33
35
  this.editorRef = undefined;
34
36
  this.editorReady = new promise_util_1.Deferred();
35
37
  this.isEnabled = false;
38
+ this.context = [];
36
39
  }
37
40
  set onQuery(query) {
38
41
  this._onQuery = query;
39
42
  }
43
+ set onUnpin(unpin) {
44
+ this._onUnpin = unpin;
45
+ }
40
46
  set onCancel(cancel) {
41
47
  this._onCancel = cancel;
42
48
  }
@@ -50,6 +56,10 @@ let AIChatInputWidget = AIChatInputWidget_1 = class AIChatInputWidget extends br
50
56
  this._chatModel = chatModel;
51
57
  this.update();
52
58
  }
59
+ set pinnedAgent(pinnedAgent) {
60
+ this._pinnedAgent = pinnedAgent;
61
+ this.update();
62
+ }
53
63
  init() {
54
64
  this.id = AIChatInputWidget_1.ID;
55
65
  this.title.closable = false;
@@ -64,16 +74,63 @@ let AIChatInputWidget = AIChatInputWidget_1 = class AIChatInputWidget extends br
64
74
  });
65
75
  }
66
76
  render() {
67
- var _a;
68
- return (React.createElement(ChatInput, { onQuery: this._onQuery.bind(this), onCancel: this._onCancel.bind(this), onDeleteChangeSet: this._onDeleteChangeSet.bind(this), onDeleteChangeSetElement: this._onDeleteChangeSetElement.bind(this), chatModel: this._chatModel, editorProvider: this.editorProvider, untitledResourceResolver: this.untitledResourceResolver, contextMenuCallback: this.handleContextMenu.bind(this), isEnabled: this.isEnabled, setEditorRef: editor => {
77
+ var _a, _b;
78
+ return (React.createElement(ChatInput, { onQuery: this._onQuery.bind(this), onUnpin: this._onUnpin.bind(this), onCancel: this._onCancel.bind(this), onDragOver: this.onDragOver.bind(this), onDrop: this.onDrop.bind(this), onDeleteChangeSet: this._onDeleteChangeSet.bind(this), onDeleteChangeSetElement: this._onDeleteChangeSetElement.bind(this), onAddContextElement: this.addContextElement.bind(this), onDeleteContextElement: this.deleteContextElement.bind(this), context: this.context, chatModel: this._chatModel, pinnedAgent: this._pinnedAgent, editorProvider: this.editorProvider, resources: this.resources, contextMenuCallback: this.handleContextMenu.bind(this), isEnabled: this.isEnabled, setEditorRef: editor => {
69
79
  this.editorRef = editor;
70
80
  this.editorReady.resolve();
71
- }, showContext: (_a = this.configuration) === null || _a === void 0 ? void 0 : _a.showContext, labelProvider: this.labelProvider }));
81
+ }, showContext: (_a = this.configuration) === null || _a === void 0 ? void 0 : _a.showContext, showPinnedAgent: (_b = this.configuration) === null || _b === void 0 ? void 0 : _b.showPinnedAgent, labelProvider: this.labelProvider }));
82
+ }
83
+ onDragOver(event) {
84
+ var _a;
85
+ event.preventDefault();
86
+ event.stopPropagation();
87
+ this.node.classList.add('drag-over');
88
+ if ((_a = event.dataTransfer) === null || _a === void 0 ? void 0 : _a.types.includes('text/plain')) {
89
+ event.dataTransfer.dropEffect = 'copy';
90
+ }
91
+ else {
92
+ event.dataTransfer.dropEffect = 'link';
93
+ }
94
+ }
95
+ onDrop(event) {
96
+ var _a, _b, _c;
97
+ event.preventDefault();
98
+ event.stopPropagation();
99
+ this.node.classList.remove('drag-over');
100
+ const dataTransferText = (_a = event.dataTransfer) === null || _a === void 0 ? void 0 : _a.getData('text/plain');
101
+ const position = (_c = (_b = this.editorRef) === null || _b === void 0 ? void 0 : _b.getControl().getTargetAtClientPoint(event.clientX, event.clientY)) === null || _c === void 0 ? void 0 : _c.position;
102
+ this.variableService.getDropResult(event.nativeEvent, { type: 'ai-chat-input-widget' }).then(result => {
103
+ var _a, _b;
104
+ result.variables.forEach(variable => this.addContext(variable));
105
+ const text = (_a = result.text) !== null && _a !== void 0 ? _a : dataTransferText;
106
+ if (position && text) {
107
+ (_b = this.editorRef) === null || _b === void 0 ? void 0 : _b.getControl().executeEdits('drag-and-drop', [{
108
+ range: {
109
+ startLineNumber: position.lineNumber,
110
+ startColumn: position.column,
111
+ endLineNumber: position.lineNumber,
112
+ endColumn: position.column
113
+ },
114
+ text
115
+ }]);
116
+ }
117
+ });
72
118
  }
73
119
  setEnabled(enabled) {
74
120
  this.isEnabled = enabled;
75
121
  this.update();
76
122
  }
123
+ addContextElement() {
124
+ this.contextVariablePicker.pickContextVariable().then(contextElement => {
125
+ if (contextElement) {
126
+ this.addContext(contextElement);
127
+ }
128
+ });
129
+ }
130
+ deleteContextElement(index) {
131
+ this.context.splice(index, 1);
132
+ this.update();
133
+ }
77
134
  handleContextMenu(event) {
78
135
  this.contextMenuRenderer.render({
79
136
  menuPath: AIChatInputWidget_1.CONTEXT_MENU,
@@ -81,6 +138,13 @@ let AIChatInputWidget = AIChatInputWidget_1 = class AIChatInputWidget extends br
81
138
  });
82
139
  event.preventDefault();
83
140
  }
141
+ addContext(variableRequest) {
142
+ if (this.context.some(existing => existing.variable.id === variableRequest.variable.id && existing.arg === variableRequest.arg)) {
143
+ return;
144
+ }
145
+ this.context.push(variableRequest);
146
+ this.update();
147
+ }
84
148
  };
85
149
  exports.AIChatInputWidget = AIChatInputWidget;
86
150
  AIChatInputWidget.ID = 'chat-input-widget';
@@ -90,9 +154,9 @@ tslib_1.__decorate([
90
154
  tslib_1.__metadata("design:type", monaco_editor_provider_1.MonacoEditorProvider)
91
155
  ], AIChatInputWidget.prototype, "editorProvider", void 0);
92
156
  tslib_1.__decorate([
93
- (0, inversify_1.inject)(core_1.UntitledResourceResolver),
94
- tslib_1.__metadata("design:type", core_1.UntitledResourceResolver)
95
- ], AIChatInputWidget.prototype, "untitledResourceResolver", void 0);
157
+ (0, inversify_1.inject)(core_1.InMemoryResources),
158
+ tslib_1.__metadata("design:type", core_1.InMemoryResources)
159
+ ], AIChatInputWidget.prototype, "resources", void 0);
96
160
  tslib_1.__decorate([
97
161
  (0, inversify_1.inject)(browser_1.ContextMenuRenderer),
98
162
  tslib_1.__metadata("design:type", browser_1.ContextMenuRenderer)
@@ -102,10 +166,18 @@ tslib_1.__decorate([
102
166
  (0, inversify_1.optional)(),
103
167
  tslib_1.__metadata("design:type", Object)
104
168
  ], AIChatInputWidget.prototype, "configuration", void 0);
169
+ tslib_1.__decorate([
170
+ (0, inversify_1.inject)(browser_2.FrontendVariableService),
171
+ tslib_1.__metadata("design:type", Object)
172
+ ], AIChatInputWidget.prototype, "variableService", void 0);
105
173
  tslib_1.__decorate([
106
174
  (0, inversify_1.inject)(browser_1.LabelProvider),
107
175
  tslib_1.__metadata("design:type", browser_1.LabelProvider)
108
176
  ], AIChatInputWidget.prototype, "labelProvider", void 0);
177
+ tslib_1.__decorate([
178
+ (0, inversify_1.inject)(context_variable_picker_1.ContextVariablePicker),
179
+ tslib_1.__metadata("design:type", context_variable_picker_1.ContextVariablePicker)
180
+ ], AIChatInputWidget.prototype, "contextVariablePicker", void 0);
109
181
  tslib_1.__decorate([
110
182
  (0, inversify_1.postConstruct)(),
111
183
  tslib_1.__metadata("design:type", Function),
@@ -127,12 +199,13 @@ const ChatInput = (props) => {
127
199
  const placeholderRef = React.useRef(null);
128
200
  const editorRef = React.useRef(undefined);
129
201
  React.useEffect(() => {
202
+ const uri = new core_1.URI(`ai-chat:/input.${chat_view_language_contribution_1.CHAT_VIEW_LANGUAGE_EXTENSION}`);
203
+ const resource = props.resources.add(uri, '');
130
204
  const createInputElement = async () => {
131
205
  const paddingTop = 6;
132
206
  const lineHeight = 20;
133
207
  const maxHeight = 240;
134
- const resource = await props.untitledResourceResolver.createUntitledResource('', chat_view_language_contribution_1.CHAT_VIEW_LANGUAGE_EXTENSION);
135
- const editor = await props.editorProvider.createInline(resource.uri, editorContainerRef.current, {
208
+ const editor = await props.editorProvider.createInline(uri, editorContainerRef.current, {
136
209
  language: chat_view_language_contribution_1.CHAT_VIEW_LANGUAGE_EXTENSION,
137
210
  // Disable code lens, inlay hints and hover support to avoid console errors from other contributions
138
211
  codeLens: false,
@@ -190,6 +263,7 @@ const ChatInput = (props) => {
190
263
  };
191
264
  createInputElement();
192
265
  return () => {
266
+ resource.dispose();
193
267
  props.setEditorRef(undefined);
194
268
  if (editorRef.current) {
195
269
  editorRef.current.dispose();
@@ -232,7 +306,7 @@ const ChatInput = (props) => {
232
306
  return;
233
307
  }
234
308
  setInProgress(true);
235
- props.onQuery(value);
309
+ props.onQuery(value, props.context);
236
310
  if (editorRef.current) {
237
311
  editorRef.current.document.textEditorModel.setValue('');
238
312
  }
@@ -270,14 +344,45 @@ const ChatInput = (props) => {
270
344
  (_b = placeholderRef.current) === null || _b === void 0 ? void 0 : _b.classList.add('hidden');
271
345
  }
272
346
  };
273
- const leftOptions = props.showContext ? [{
274
- title: 'Attach elements to context',
275
- handler: () => { },
276
- className: 'codicon-add'
277
- }] : [];
347
+ const handlePin = () => {
348
+ var _a, _b;
349
+ if (editorRef.current) {
350
+ (_a = editorRef.current.getControl().getModel()) === null || _a === void 0 ? void 0 : _a.applyEdits([{
351
+ range: {
352
+ startLineNumber: 1,
353
+ startColumn: 1,
354
+ endLineNumber: 1,
355
+ endColumn: 1
356
+ },
357
+ text: '@ ',
358
+ }]);
359
+ editorRef.current.getControl().setPosition({ lineNumber: 1, column: 2 });
360
+ (_b = editorRef.current.getControl().getAction('editor.action.triggerSuggest')) === null || _b === void 0 ? void 0 : _b.run();
361
+ }
362
+ };
363
+ const leftOptions = [
364
+ ...(props.showContext
365
+ ? [{
366
+ title: core_1.nls.localize('theia/ai/chat-ui/attachToContext', 'Attach elements to context'),
367
+ handler: () => props.onAddContextElement(),
368
+ className: 'codicon-add'
369
+ }]
370
+ : []),
371
+ ...(props.showPinnedAgent
372
+ ? [{
373
+ title: props.pinnedAgent ? core_1.nls.localize('theia/ai/chat-ui/unpinAgent', 'Unpin Agent') : core_1.nls.localize('theia/ai/chat-ui/pinAgent', 'Pin Agent'),
374
+ handler: props.pinnedAgent ? props.onUnpin : handlePin,
375
+ className: 'at-icon',
376
+ text: {
377
+ align: 'right',
378
+ content: props.pinnedAgent && props.pinnedAgent.name
379
+ },
380
+ }]
381
+ : []),
382
+ ];
278
383
  const rightOptions = inProgress
279
384
  ? [{
280
- title: 'Cancel (Esc)',
385
+ title: core_1.nls.localize('theia/ai/chat-ui/cancel', 'Cancel (Esc)'),
281
386
  handler: () => {
282
387
  const latestRequest = getLatestRequest(props.chatModel);
283
388
  if (latestRequest) {
@@ -288,7 +393,7 @@ const ChatInput = (props) => {
288
393
  className: 'codicon-stop-circle'
289
394
  }]
290
395
  : [{
291
- title: 'Send (Enter)',
396
+ title: core_1.nls.localize('theia/ai/chat-ui/send', 'Send (Enter)'),
292
397
  handler: () => {
293
398
  var _a;
294
399
  if (props.isEnabled) {
@@ -298,12 +403,15 @@ const ChatInput = (props) => {
298
403
  className: 'codicon-send',
299
404
  disabled: isInputEmpty || !props.isEnabled
300
405
  }];
301
- return React.createElement("div", { className: 'theia-ChatInput' },
406
+ const contextUI = buildContextUI(props.context, props.labelProvider, props.onDeleteContextElement);
407
+ return React.createElement("div", { className: 'theia-ChatInput', onDragOver: props.onDragOver, onDrop: props.onDrop },
302
408
  (changeSetUI === null || changeSetUI === void 0 ? void 0 : changeSetUI.elements) &&
303
409
  React.createElement(ChangeSetBox, { changeSet: changeSetUI }),
304
410
  React.createElement("div", { className: 'theia-ChatInput-Editor-Box' },
305
411
  React.createElement("div", { className: 'theia-ChatInput-Editor', ref: editorContainerRef, onKeyDown: onKeyDown, onFocus: handleInputFocus, onBlur: handleInputBlur },
306
- React.createElement("div", { ref: placeholderRef, className: 'theia-ChatInput-Editor-Placeholder' }, "Ask a question")),
412
+ React.createElement("div", { ref: placeholderRef, className: 'theia-ChatInput-Editor-Placeholder' }, core_1.nls.localizeByDefault('Ask a question'))),
413
+ props.context && props.context.length > 0 &&
414
+ React.createElement(ChatContext, { context: contextUI.context }),
307
415
  React.createElement(ChatInputOptions, { leftOptions: leftOptions, rightOptions: rightOptions })));
308
416
  };
309
417
  const noPropagation = (handler) => (e) => {
@@ -313,7 +421,7 @@ const noPropagation = (handler) => (e) => {
313
421
  const buildChangeSetUI = (changeSet, labelProvider, onDeleteChangeSet, onDeleteChangeSetElement) => ({
314
422
  title: changeSet.title,
315
423
  disabled: !hasPendingElementsToAccept(changeSet),
316
- acceptAllPendingElements: () => acceptAllPendingElements(changeSet),
424
+ applyAllPendingElements: () => applyAllPendingElements(changeSet),
317
425
  delete: () => onDeleteChangeSet(),
318
426
  elements: changeSet.getElements().map(element => {
319
427
  var _a, _b, _c, _d, _e, _f, _g, _h;
@@ -324,8 +432,8 @@ const buildChangeSetUI = (changeSet, labelProvider, onDeleteChangeSet, onDeleteC
324
432
  name: (_d = element.name) !== null && _d !== void 0 ? _d : labelProvider.getName(element.uri),
325
433
  additionalInfo: (_e = element.additionalInfo) !== null && _e !== void 0 ? _e : labelProvider.getDetails(element.uri),
326
434
  openChange: (_f = element === null || element === void 0 ? void 0 : element.openChange) === null || _f === void 0 ? void 0 : _f.bind(element),
327
- accept: element.state !== 'applied' ? (_g = element === null || element === void 0 ? void 0 : element.accept) === null || _g === void 0 ? void 0 : _g.bind(element) : undefined,
328
- discard: element.state === 'applied' ? (_h = element === null || element === void 0 ? void 0 : element.discard) === null || _h === void 0 ? void 0 : _h.bind(element) : undefined,
435
+ apply: element.state !== 'applied' ? (_g = element === null || element === void 0 ? void 0 : element.apply) === null || _g === void 0 ? void 0 : _g.bind(element) : undefined,
436
+ revert: element.state === 'applied' || element.state === 'stale' ? (_h = element === null || element === void 0 ? void 0 : element.revert) === null || _h === void 0 ? void 0 : _h.bind(element) : undefined,
329
437
  delete: () => onDeleteChangeSetElement(changeSet.getElements().indexOf(element))
330
438
  });
331
439
  })
@@ -334,32 +442,64 @@ const ChangeSetBox = ({ changeSet }) => (React.createElement("div", { className:
334
442
  React.createElement("div", { className: 'theia-ChatInput-ChangeSet-Header' },
335
443
  React.createElement("h3", null, changeSet.title),
336
444
  React.createElement("div", { className: 'theia-ChatInput-ChangeSet-Header-Actions' },
337
- React.createElement("button", { className: 'theia-button', disabled: changeSet.disabled, title: 'Accept all pending changes', onClick: () => changeSet.acceptAllPendingElements() }, "Accept"),
338
- React.createElement("span", { className: 'codicon codicon-close action', title: 'Delete Change Set', onClick: () => changeSet.delete() }))),
445
+ React.createElement("button", { className: 'theia-button', disabled: changeSet.disabled, title: core_1.nls.localize('theia/ai/chat-ui/applyAllTitle', 'Apply all pending suggestions'), onClick: () => changeSet.applyAllPendingElements() }, core_1.nls.localize('theia/ai/chat-ui/acceptAll', 'Apply All')),
446
+ React.createElement("span", { className: 'codicon codicon-close action', title: core_1.nls.localize('theia/ai/chat-ui/deleteChangeSet', 'Delete Change Set'), onClick: () => changeSet.delete() }))),
339
447
  React.createElement("div", { className: 'theia-ChatInput-ChangeSet-List' },
340
- React.createElement("ul", null, changeSet.elements.map((element, index) => (React.createElement("li", { key: index, title: 'Open Diff', onClick: () => { var _a; return (_a = element.openChange) === null || _a === void 0 ? void 0 : _a.call(element); } },
448
+ React.createElement("ul", null, changeSet.elements.map((element, index) => (React.createElement("li", { key: index, title: core_1.nls.localize('theia/ai/chat-ui/openDiff', 'Open Diff'), onClick: () => { var _a; return (_a = element.openChange) === null || _a === void 0 ? void 0 : _a.call(element); } },
341
449
  React.createElement("div", { className: `theia-ChatInput-ChangeSet-Icon ${element.iconClass}` }),
342
- React.createElement("span", { className: `theia-ChatInput-ChangeSet-title ${element.nameClass}` }, element.name),
343
- React.createElement("span", { className: 'theia-ChatInput-ChangeSet-additionalInfo' }, element.additionalInfo),
450
+ React.createElement("span", { className: 'theia-ChatInput-ChangeSet-labelParts' },
451
+ React.createElement("span", { className: `theia-ChatInput-ChangeSet-title ${element.nameClass}` }, element.name),
452
+ React.createElement("span", { className: 'theia-ChatInput-ChangeSet-additionalInfo' }, element.additionalInfo)),
344
453
  React.createElement("div", { className: 'theia-ChatInput-ChangeSet-Actions' },
345
- element.open && (React.createElement("span", { className: 'codicon codicon-file action', title: 'Open Original File', onClick: noPropagation(() => element.open()) })),
346
- element.discard && (React.createElement("span", { className: 'codicon codicon-discard action', title: 'Undo', onClick: noPropagation(() => element.discard()) })),
347
- element.accept && (React.createElement("span", { className: 'codicon codicon-check action', title: 'Accept', onClick: noPropagation(() => element.accept()) })),
348
- React.createElement("span", { className: 'codicon codicon-close action', title: 'Delete', onClick: noPropagation(() => element.delete()) })))))))));
454
+ element.open && (React.createElement("span", { className: 'codicon codicon-file action', title: core_1.nls.localize('theia/ai/chat-ui/openOriginalFile', 'Open Original File'), onClick: noPropagation(() => element.open()) })),
455
+ element.revert && (React.createElement("span", { className: 'codicon codicon-discard action', title: core_1.nls.localizeByDefault('Revert'), onClick: noPropagation(() => element.revert()) })),
456
+ element.apply && (React.createElement("span", { className: 'codicon codicon-check action', title: core_1.nls.localizeByDefault('Apply'), onClick: noPropagation(() => element.apply()) })),
457
+ React.createElement("span", { className: 'codicon codicon-close action', title: core_1.nls.localizeByDefault('Delete'), onClick: noPropagation(() => element.delete()) })))))))));
349
458
  const ChatInputOptions = ({ leftOptions, rightOptions }) => (React.createElement("div", { className: "theia-ChatInputOptions" },
350
- React.createElement("div", { className: "theia-ChatInputOptions-left" }, leftOptions.map((option, index) => (React.createElement("span", { key: index, className: `codicon ${option.className} option ${option.disabled ? 'disabled' : ''}`, title: option.title, onClick: option.handler })))),
351
- React.createElement("div", { className: "theia-ChatInputOptions-right" }, rightOptions.map((option, index) => (React.createElement("span", { key: index, className: `codicon ${option.className} option ${option.disabled ? 'disabled' : ''}`, title: option.title, onClick: option.handler }))))));
352
- function acceptAllPendingElements(changeSet) {
353
- acceptablePendingElements(changeSet).forEach(e => e.accept());
459
+ React.createElement("div", { className: "theia-ChatInputOptions-left" }, leftOptions.map((option, index) => {
460
+ var _a, _b;
461
+ return (React.createElement("span", { key: index, className: `option ${option.disabled ? 'disabled' : ''} ${((_a = option.text) === null || _a === void 0 ? void 0 : _a.align) === 'right' ? 'reverse' : ''}`, title: option.title, onClick: option.handler },
462
+ React.createElement("span", null, (_b = option.text) === null || _b === void 0 ? void 0 : _b.content),
463
+ React.createElement("span", { className: `codicon ${option.className}` })));
464
+ })),
465
+ React.createElement("div", { className: "theia-ChatInputOptions-right" }, rightOptions.map((option, index) => {
466
+ var _a, _b;
467
+ return (React.createElement("span", { key: index, className: `option ${option.disabled ? 'disabled' : ''} ${((_a = option.text) === null || _a === void 0 ? void 0 : _a.align) === 'right' ? 'reverse' : ''}`, title: option.title, onClick: option.handler },
468
+ React.createElement("span", null, (_b = option.text) === null || _b === void 0 ? void 0 : _b.content),
469
+ React.createElement("span", { className: `codicon ${option.className}` })));
470
+ }))));
471
+ function applyAllPendingElements(changeSet) {
472
+ getPendingElements(changeSet).forEach(e => e.apply());
354
473
  }
355
474
  function hasPendingElementsToAccept(changeSet) {
356
- return acceptablePendingElements(changeSet).length > 0;
475
+ return getPendingElements(changeSet).length > 0;
357
476
  }
358
- function acceptablePendingElements(changeSet) {
359
- return changeSet.getElements().filter(e => e.accept && (e.state === undefined || e.state === 'pending'));
477
+ function getPendingElements(changeSet) {
478
+ return changeSet.getElements().filter(e => e.apply && (e.state === undefined || e.state === 'pending'));
360
479
  }
361
480
  function getLatestRequest(chatModel) {
362
481
  const requests = chatModel.getRequests();
363
482
  return requests.length > 0 ? requests[requests.length - 1] : undefined;
364
483
  }
484
+ function buildContextUI(context, labelProvider, onDeleteContextElement) {
485
+ if (!context) {
486
+ return { context: [] };
487
+ }
488
+ return {
489
+ context: context.map((element, index) => ({
490
+ name: labelProvider.getName(element),
491
+ iconClass: labelProvider.getIcon(element),
492
+ nameClass: element.variable.name,
493
+ additionalInfo: labelProvider.getDetails(element),
494
+ details: labelProvider.getLongName(element),
495
+ delete: () => onDeleteContextElement(index),
496
+ }))
497
+ };
498
+ }
499
+ const ChatContext = ({ context }) => (React.createElement("div", { className: "theia-ChatInput-ChatContext" },
500
+ React.createElement("ul", null, context.map((element, index) => (React.createElement("li", { key: index, className: "theia-ChatInput-ChatContext-Element", title: element.details, onClick: () => { var _a; return (_a = element.open) === null || _a === void 0 ? void 0 : _a.call(element); } },
501
+ React.createElement("div", { className: `theia-ChatInput-ChatContext-Icon ${element.iconClass}` }),
502
+ React.createElement("span", { className: `theia-ChatInput-ChatContext-title ${element.nameClass}` }, element.name),
503
+ React.createElement("span", { className: 'theia-ChatInput-ChatContext-additionalInfo' }, element.additionalInfo),
504
+ React.createElement("span", { className: "codicon codicon-close action", title: core_1.nls.localizeByDefault('Delete'), onClick: () => element.delete() })))))));
365
505
  //# sourceMappingURL=chat-input-widget.js.map