@theia/ai-chat-ui 1.58.3 → 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.
- package/lib/browser/ai-chat-ui-contribution.d.ts.map +1 -1
- package/lib/browser/ai-chat-ui-contribution.js +7 -7
- package/lib/browser/ai-chat-ui-contribution.js.map +1 -1
- package/lib/browser/ai-chat-ui-frontend-module.d.ts.map +1 -1
- package/lib/browser/ai-chat-ui-frontend-module.js +7 -4
- package/lib/browser/ai-chat-ui-frontend-module.js.map +1 -1
- package/lib/browser/chat-input-widget.d.ts +21 -4
- package/lib/browser/chat-input-widget.d.ts.map +1 -1
- package/lib/browser/chat-input-widget.js +177 -37
- package/lib/browser/chat-input-widget.js.map +1 -1
- package/lib/browser/chat-response-renderer/code-part-renderer.d.ts.map +1 -1
- package/lib/browser/chat-response-renderer/code-part-renderer.js +4 -3
- package/lib/browser/chat-response-renderer/code-part-renderer.js.map +1 -1
- package/lib/browser/chat-response-renderer/text-part-renderer.d.ts.map +1 -1
- package/lib/browser/chat-response-renderer/text-part-renderer.js +3 -1
- package/lib/browser/chat-response-renderer/text-part-renderer.js.map +1 -1
- package/lib/browser/chat-response-renderer/toolcall-part-renderer.d.ts.map +1 -1
- package/lib/browser/chat-response-renderer/toolcall-part-renderer.js +7 -3
- package/lib/browser/chat-response-renderer/toolcall-part-renderer.js.map +1 -1
- package/lib/browser/chat-tree-view/chat-view-tree-widget.d.ts.map +1 -1
- package/lib/browser/chat-tree-view/chat-view-tree-widget.js +25 -16
- package/lib/browser/chat-tree-view/chat-view-tree-widget.js.map +1 -1
- package/lib/browser/chat-view-contribution.d.ts +2 -2
- package/lib/browser/chat-view-contribution.d.ts.map +1 -1
- package/lib/browser/chat-view-contribution.js +6 -6
- package/lib/browser/chat-view-contribution.js.map +1 -1
- package/lib/browser/chat-view-language-contribution.d.ts +10 -5
- package/lib/browser/chat-view-language-contribution.d.ts.map +1 -1
- package/lib/browser/chat-view-language-contribution.js +94 -14
- package/lib/browser/chat-view-language-contribution.js.map +1 -1
- package/lib/browser/chat-view-widget.d.ts +4 -1
- package/lib/browser/chat-view-widget.d.ts.map +1 -1
- package/lib/browser/chat-view-widget.js +18 -7
- package/lib/browser/chat-view-widget.js.map +1 -1
- package/lib/browser/context-variable-picker.d.ts +9 -0
- package/lib/browser/context-variable-picker.d.ts.map +1 -0
- package/lib/browser/context-variable-picker.js +86 -0
- package/lib/browser/context-variable-picker.js.map +1 -0
- package/package.json +11 -11
- package/src/browser/ai-chat-ui-contribution.ts +8 -8
- package/src/browser/ai-chat-ui-frontend-module.ts +8 -4
- package/src/browser/chat-input-widget.tsx +255 -49
- package/src/browser/chat-response-renderer/code-part-renderer.tsx +4 -3
- package/src/browser/chat-response-renderer/text-part-renderer.tsx +4 -1
- package/src/browser/chat-response-renderer/toolcall-part-renderer.tsx +9 -3
- package/src/browser/chat-tree-view/chat-view-tree-widget.tsx +26 -16
- package/src/browser/chat-view-contribution.ts +6 -6
- package/src/browser/chat-view-language-contribution.ts +103 -19
- package/src/browser/chat-view-widget.tsx +22 -8
- package/src/browser/context-variable-picker.ts +85 -0
- 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,
|
|
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: '
|
|
36
|
+
area: 'right',
|
|
37
37
|
rank: 100
|
|
38
38
|
},
|
|
39
39
|
toggleCommandId: exports.AI_CHAT_TOGGLE_COMMAND_ID,
|
|
40
|
-
toggleKeybinding: '
|
|
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":";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,4DAAkE;AAClE,
|
|
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;
|
|
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
|
|
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:
|
|
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":";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,sCAA8F;AAC9F,qDAA+G;AAC/G,mFAA0F;AAC1F,4DAA2E;AAC3E,uDAA0D;AAC1D,uEAA+D;AAC/D,2DAAkF;AAClF,mGAA4F;AAC5F,+EAAyE;AACzE,qEAUkC;AAClC,kFAMoD;AACpD,qDAA4D;AAC5D,kFAA4E;AAC5E,qEAAoE;AACpE,uFAAiF;AACjF,yDAAoD;AACpD,mGAA4F;AAC5F,
|
|
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 {
|
|
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
|
-
|
|
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
|
|
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,
|
|
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,
|
|
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.
|
|
94
|
-
tslib_1.__metadata("design:type", core_1.
|
|
95
|
-
], AIChatInputWidget.prototype, "
|
|
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
|
|
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
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
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
|
-
|
|
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' },
|
|
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
|
-
|
|
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
|
-
|
|
328
|
-
|
|
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: '
|
|
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:
|
|
343
|
-
|
|
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.
|
|
347
|
-
element.
|
|
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) =>
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
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
|
|
475
|
+
return getPendingElements(changeSet).length > 0;
|
|
357
476
|
}
|
|
358
|
-
function
|
|
359
|
-
return changeSet.getElements().filter(e => e.
|
|
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
|