@theia/ai-chat-ui 1.60.2 → 1.61.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.
- package/lib/browser/ai-chat-ui-contribution.d.ts +5 -1
- package/lib/browser/ai-chat-ui-contribution.d.ts.map +1 -1
- package/lib/browser/ai-chat-ui-contribution.js +102 -4
- 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 +30 -1
- package/lib/browser/ai-chat-ui-frontend-module.js.map +1 -1
- package/lib/browser/chat-input-agent-suggestions.d.ts +11 -0
- package/lib/browser/chat-input-agent-suggestions.d.ts.map +1 -0
- package/lib/browser/chat-input-agent-suggestions.js +76 -0
- package/lib/browser/chat-input-agent-suggestions.js.map +1 -0
- package/lib/browser/chat-input-widget.d.ts +17 -6
- package/lib/browser/chat-input-widget.d.ts.map +1 -1
- package/lib/browser/chat-input-widget.js +72 -22
- package/lib/browser/chat-input-widget.js.map +1 -1
- package/lib/browser/chat-node-toolbar-action-contribution.d.ts +8 -0
- package/lib/browser/chat-node-toolbar-action-contribution.d.ts.map +1 -1
- package/lib/browser/chat-node-toolbar-action-contribution.js +55 -1
- package/lib/browser/chat-node-toolbar-action-contribution.js.map +1 -1
- package/lib/browser/chat-progress-message.d.ts +7 -0
- package/lib/browser/chat-progress-message.d.ts.map +1 -0
- package/lib/browser/chat-progress-message.js +33 -0
- package/lib/browser/chat-progress-message.js.map +1 -0
- package/lib/browser/chat-response-renderer/code-part-renderer.js +1 -1
- package/lib/browser/chat-response-renderer/code-part-renderer.js.map +1 -1
- package/lib/browser/chat-response-renderer/index.d.ts +1 -0
- package/lib/browser/chat-response-renderer/index.d.ts.map +1 -1
- package/lib/browser/chat-response-renderer/index.js +1 -0
- package/lib/browser/chat-response-renderer/index.js.map +1 -1
- package/lib/browser/chat-response-renderer/markdown-part-renderer.d.ts +7 -1
- package/lib/browser/chat-response-renderer/markdown-part-renderer.d.ts.map +1 -1
- package/lib/browser/chat-response-renderer/markdown-part-renderer.js +14 -3
- package/lib/browser/chat-response-renderer/markdown-part-renderer.js.map +1 -1
- package/lib/browser/chat-response-renderer/progress-part-renderer.d.ts +9 -0
- package/lib/browser/chat-response-renderer/progress-part-renderer.d.ts.map +1 -0
- package/lib/browser/chat-response-renderer/progress-part-renderer.js +39 -0
- package/lib/browser/chat-response-renderer/progress-part-renderer.js.map +1 -0
- package/lib/browser/chat-tree-view/chat-view-tree-input-widget.d.ts +33 -0
- package/lib/browser/chat-tree-view/chat-view-tree-input-widget.d.ts.map +1 -0
- package/lib/browser/chat-tree-view/chat-view-tree-input-widget.js +79 -0
- package/lib/browser/chat-tree-view/chat-view-tree-input-widget.js.map +1 -0
- package/lib/browser/chat-tree-view/chat-view-tree-widget.d.ts +20 -4
- 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 +184 -48
- package/lib/browser/chat-tree-view/chat-view-tree-widget.js.map +1 -1
- package/lib/browser/chat-view-commands.d.ts +3 -0
- package/lib/browser/chat-view-commands.d.ts.map +1 -1
- package/lib/browser/chat-view-commands.js +15 -0
- package/lib/browser/chat-view-commands.js.map +1 -1
- package/lib/browser/chat-view-contribution.d.ts +1 -0
- package/lib/browser/chat-view-contribution.d.ts.map +1 -1
- package/lib/browser/chat-view-contribution.js +16 -14
- package/lib/browser/chat-view-contribution.js.map +1 -1
- package/lib/browser/chat-view-language-contribution.d.ts +3 -3
- package/lib/browser/chat-view-language-contribution.d.ts.map +1 -1
- package/lib/browser/chat-view-language-contribution.js +9 -22
- package/lib/browser/chat-view-language-contribution.js.map +1 -1
- package/lib/browser/chat-view-widget.d.ts +6 -2
- package/lib/browser/chat-view-widget.d.ts.map +1 -1
- package/lib/browser/chat-view-widget.js +36 -19
- package/lib/browser/chat-view-widget.js.map +1 -1
- package/package.json +12 -12
- package/src/browser/ai-chat-ui-contribution.ts +93 -6
- package/src/browser/ai-chat-ui-frontend-module.ts +33 -3
- package/src/browser/chat-input-agent-suggestions.tsx +85 -0
- package/src/browser/chat-input-widget.tsx +122 -32
- package/src/browser/chat-node-toolbar-action-contribution.ts +40 -1
- package/src/browser/chat-progress-message.tsx +40 -0
- package/src/browser/chat-response-renderer/code-part-renderer.tsx +3 -3
- package/src/browser/chat-response-renderer/index.ts +1 -0
- package/src/browser/chat-response-renderer/markdown-part-renderer.tsx +19 -2
- package/src/browser/chat-response-renderer/progress-part-renderer.tsx +40 -0
- package/src/browser/chat-tree-view/chat-view-tree-input-widget.tsx +89 -0
- package/src/browser/chat-tree-view/chat-view-tree-widget.tsx +200 -37
- package/src/browser/chat-view-commands.ts +18 -0
- package/src/browser/chat-view-contribution.ts +20 -16
- package/src/browser/chat-view-language-contribution.ts +10 -24
- package/src/browser/chat-view-widget.tsx +18 -5
- package/src/browser/style/index.css +58 -4
|
@@ -2,9 +2,10 @@ import { ChatAgentService } from '@theia/ai-chat';
|
|
|
2
2
|
import { AIVariableService } from '@theia/ai-core/lib/common';
|
|
3
3
|
import { ToolInvocationRegistry } from '@theia/ai-core/lib/common/tool-invocation-registry';
|
|
4
4
|
import { MaybePromise } from '@theia/core';
|
|
5
|
-
import {
|
|
5
|
+
import { FrontendApplication, FrontendApplicationContribution } from '@theia/core/lib/browser';
|
|
6
6
|
import * as monaco from '@theia/monaco-editor-core';
|
|
7
7
|
import { ProviderResult } from '@theia/monaco-editor-core/esm/vs/editor/common/languages';
|
|
8
|
+
import { AIChatFrontendContribution } from '@theia/ai-chat/lib/browser/ai-chat-frontend-contribution';
|
|
8
9
|
export declare const CHAT_VIEW_LANGUAGE_ID = "theia-ai-chat-view-language";
|
|
9
10
|
export declare const SETTINGS_LANGUAGE_ID = "theia-ai-chat-settings-language";
|
|
10
11
|
export declare const CHAT_VIEW_LANGUAGE_EXTENSION = "aichatviewlanguage";
|
|
@@ -21,7 +22,7 @@ export declare class ChatViewLanguageContribution implements FrontendApplication
|
|
|
21
22
|
protected readonly agentService: ChatAgentService;
|
|
22
23
|
protected readonly variableService: AIVariableService;
|
|
23
24
|
protected readonly toolInvocationRegistry: ToolInvocationRegistry;
|
|
24
|
-
protected readonly
|
|
25
|
+
protected readonly chatFrontendContribution: AIChatFrontendContribution;
|
|
25
26
|
onStart(_app: FrontendApplication): MaybePromise<void>;
|
|
26
27
|
protected registerCompletionProviders(): void;
|
|
27
28
|
protected registerStandardCompletionProvider<T>(source: CompletionSource<T>): void;
|
|
@@ -30,7 +31,6 @@ export declare class ChatViewLanguageContribution implements FrontendApplication
|
|
|
30
31
|
provideVariableWithArgCompletions(model: monaco.editor.ITextModel, position: monaco.Position): Promise<monaco.languages.CompletionList>;
|
|
31
32
|
protected triggerVariableArgumentPicker(): Promise<void>;
|
|
32
33
|
protected getCharacterBeforePosition(model: monaco.editor.ITextModel, position: monaco.Position): string;
|
|
33
|
-
protected addContextVariable(variableName: string, arg: string | undefined): Promise<void>;
|
|
34
34
|
}
|
|
35
35
|
export {};
|
|
36
36
|
//# sourceMappingURL=chat-view-language-contribution.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-view-language-contribution.d.ts","sourceRoot":"","sources":["../../src/browser/chat-view-language-contribution.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,
|
|
1
|
+
{"version":3,"file":"chat-view-language-contribution.d.ts","sourceRoot":"","sources":["../../src/browser/chat-view-language-contribution.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,oDAAoD,CAAC;AAC5F,OAAO,EAAE,YAAY,EAAO,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,+BAA+B,EAAE,MAAM,yBAAyB,CAAC;AAE/F,OAAO,KAAK,MAAM,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,0DAA0D,CAAC;AAC1F,OAAO,EAAE,0BAA0B,EAAgC,MAAM,0DAA0D,CAAC;AAEpI,eAAO,MAAM,qBAAqB,gCAAgC,CAAC;AACnE,eAAO,MAAM,oBAAoB,oCAAoC,CAAC;AACtE,eAAO,MAAM,4BAA4B,uBAAuB,CAAC;AAKjE,UAAU,gBAAgB,CAAC,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,kBAAkB,CAAC;IAC1C,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC;IAC3B,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC;IAC7B,cAAc,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC;CACtC;AAED,qBACa,4BAA6B,YAAW,+BAA+B;IAGhF,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,gBAAgB,CAAC;IAGlD,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,iBAAiB,CAAC;IAGtD,SAAS,CAAC,QAAQ,CAAC,sBAAsB,EAAE,sBAAsB,CAAC;IAGlE,SAAS,CAAC,QAAQ,CAAC,wBAAwB,EAAE,0BAA0B,CAAC;IAExE,OAAO,CAAC,IAAI,EAAE,mBAAmB,GAAG,YAAY,CAAC,IAAI,CAAC;IAStD,SAAS,CAAC,2BAA2B,IAAI,IAAI;IAwC7C,SAAS,CAAC,kCAAkC,CAAC,CAAC,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,IAAI;IAQlF,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,gBAAgB,EAAE,MAAM,GAAG,MAAM,CAAC,KAAK,GAAG,SAAS;IAgClI,SAAS,CAAC,kBAAkB,CAAC,CAAC,EAC1B,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,EAC/B,QAAQ,EAAE,MAAM,CAAC,QAAQ,EACzB,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAC5B,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC;IAmB5C,iCAAiC,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC;cAiD7H,6BAA6B,IAAI,OAAO,CAAC,IAAI,CAAC;IA8C9D,SAAS,CAAC,0BAA0B,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,GAAG,MAAM;CAG3G"}
|
|
@@ -22,23 +22,20 @@ const common_1 = require("@theia/ai-core/lib/common");
|
|
|
22
22
|
const prompt_text_1 = require("@theia/ai-core/lib/common/prompt-text");
|
|
23
23
|
const tool_invocation_registry_1 = require("@theia/ai-core/lib/common/tool-invocation-registry");
|
|
24
24
|
const core_1 = require("@theia/core");
|
|
25
|
-
const browser_1 = require("@theia/core/lib/browser");
|
|
26
25
|
const inversify_1 = require("@theia/core/shared/inversify");
|
|
27
26
|
const monaco = require("@theia/monaco-editor-core");
|
|
28
|
-
const
|
|
27
|
+
const ai_chat_frontend_contribution_1 = require("@theia/ai-chat/lib/browser/ai-chat-frontend-contribution");
|
|
29
28
|
exports.CHAT_VIEW_LANGUAGE_ID = 'theia-ai-chat-view-language';
|
|
30
29
|
exports.SETTINGS_LANGUAGE_ID = 'theia-ai-chat-settings-language';
|
|
31
30
|
exports.CHAT_VIEW_LANGUAGE_EXTENSION = 'aichatviewlanguage';
|
|
32
31
|
const VARIABLE_RESOLUTION_CONTEXT = { context: 'chat-input-autocomplete' };
|
|
33
32
|
const VARIABLE_ARGUMENT_PICKER_COMMAND = 'trigger-variable-argument-picker';
|
|
34
|
-
const VARIABLE_ADD_CONTEXT_COMMAND = 'add-context-variable';
|
|
35
33
|
let ChatViewLanguageContribution = class ChatViewLanguageContribution {
|
|
36
34
|
onStart(_app) {
|
|
37
35
|
monaco.languages.register({ id: exports.CHAT_VIEW_LANGUAGE_ID, extensions: [exports.CHAT_VIEW_LANGUAGE_EXTENSION] });
|
|
38
36
|
monaco.languages.register({ id: exports.SETTINGS_LANGUAGE_ID, extensions: ['json'], filenames: ['editor'] });
|
|
39
37
|
this.registerCompletionProviders();
|
|
40
38
|
monaco.editor.registerCommand(VARIABLE_ARGUMENT_PICKER_COMMAND, this.triggerVariableArgumentPicker.bind(this));
|
|
41
|
-
monaco.editor.registerCommand(VARIABLE_ADD_CONTEXT_COMMAND, (_, ...args) => args.length > 1 ? this.addContextVariable(args[0], args[1]) : undefined);
|
|
42
39
|
}
|
|
43
40
|
registerCompletionProviders() {
|
|
44
41
|
this.registerStandardCompletionProvider({
|
|
@@ -149,12 +146,12 @@ let ChatViewLanguageContribution = class ChatViewLanguageContribution {
|
|
|
149
146
|
const items = await provider(model, position);
|
|
150
147
|
if (items) {
|
|
151
148
|
suggestions.push(...items.map(item => ({
|
|
152
|
-
...item,
|
|
153
149
|
command: {
|
|
154
|
-
title:
|
|
155
|
-
id: VARIABLE_ADD_CONTEXT_COMMAND,
|
|
150
|
+
title: ai_chat_frontend_contribution_1.VARIABLE_ADD_CONTEXT_COMMAND.label,
|
|
151
|
+
id: ai_chat_frontend_contribution_1.VARIABLE_ADD_CONTEXT_COMMAND.id,
|
|
156
152
|
arguments: [variable.name, item.insertText]
|
|
157
|
-
}
|
|
153
|
+
},
|
|
154
|
+
...item,
|
|
158
155
|
})));
|
|
159
156
|
}
|
|
160
157
|
}
|
|
@@ -198,21 +195,11 @@ let ChatViewLanguageContribution = class ChatViewLanguageContribution {
|
|
|
198
195
|
range: new monaco.Range(position.lineNumber, position.column, position.lineNumber, position.column),
|
|
199
196
|
text: arg
|
|
200
197
|
}]);
|
|
201
|
-
await this.addContextVariable(variableName, arg);
|
|
198
|
+
await this.chatFrontendContribution.addContextVariable(variableName, arg);
|
|
202
199
|
}
|
|
203
200
|
getCharacterBeforePosition(model, position) {
|
|
204
201
|
return model.getLineContent(position.lineNumber)[position.column - 1 - 1];
|
|
205
202
|
}
|
|
206
|
-
async addContextVariable(variableName, arg) {
|
|
207
|
-
const variable = this.variableService.getVariable(variableName);
|
|
208
|
-
if (!variable || !common_1.AIContextVariable.is(variable)) {
|
|
209
|
-
return;
|
|
210
|
-
}
|
|
211
|
-
const widget = this.shell.getWidgetById(chat_view_widget_1.ChatViewWidget.ID);
|
|
212
|
-
if (widget instanceof chat_view_widget_1.ChatViewWidget) {
|
|
213
|
-
widget.addContext({ variable, arg });
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
203
|
};
|
|
217
204
|
exports.ChatViewLanguageContribution = ChatViewLanguageContribution;
|
|
218
205
|
tslib_1.__decorate([
|
|
@@ -228,9 +215,9 @@ tslib_1.__decorate([
|
|
|
228
215
|
tslib_1.__metadata("design:type", Object)
|
|
229
216
|
], ChatViewLanguageContribution.prototype, "toolInvocationRegistry", void 0);
|
|
230
217
|
tslib_1.__decorate([
|
|
231
|
-
(0, inversify_1.inject)(
|
|
232
|
-
tslib_1.__metadata("design:type",
|
|
233
|
-
], ChatViewLanguageContribution.prototype, "
|
|
218
|
+
(0, inversify_1.inject)(ai_chat_frontend_contribution_1.AIChatFrontendContribution),
|
|
219
|
+
tslib_1.__metadata("design:type", ai_chat_frontend_contribution_1.AIChatFrontendContribution)
|
|
220
|
+
], ChatViewLanguageContribution.prototype, "chatFrontendContribution", void 0);
|
|
234
221
|
exports.ChatViewLanguageContribution = ChatViewLanguageContribution = tslib_1.__decorate([
|
|
235
222
|
(0, inversify_1.injectable)()
|
|
236
223
|
], ChatViewLanguageContribution);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-view-language-contribution.js","sourceRoot":"","sources":["../../src/browser/chat-view-language-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;AAChF,4CAAkD;AAClD,
|
|
1
|
+
{"version":3,"file":"chat-view-language-contribution.js","sourceRoot":"","sources":["../../src/browser/chat-view-language-contribution.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { CommandService, Emitter, Event, MessageService } from '@theia/core';
|
|
2
|
-
import { ChatRequestModel, ChatService, ChatSession } from '@theia/ai-chat';
|
|
2
|
+
import { ChatRequest, ChatRequestModel, ChatService, ChatSession } from '@theia/ai-chat';
|
|
3
3
|
import { BaseWidget, ExtractableWidget, Message, PreferenceService, StatefulWidget } from '@theia/core/lib/browser';
|
|
4
4
|
import { AIChatInputWidget } from './chat-input-widget';
|
|
5
5
|
import { ChatViewTreeWidget } from './chat-tree-view/chat-view-tree-widget';
|
|
6
6
|
import { AIActivationService } from '@theia/ai-core/lib/browser/ai-activation-service';
|
|
7
7
|
import { AIVariableResolutionRequest } from '@theia/ai-core';
|
|
8
|
+
import { ProgressBarFactory } from '@theia/core/lib/browser/progress-bar-factory';
|
|
9
|
+
import { FrontendVariableService } from '@theia/ai-core/lib/browser';
|
|
8
10
|
export declare namespace ChatViewWidget {
|
|
9
11
|
interface State {
|
|
10
12
|
locked?: boolean;
|
|
@@ -20,6 +22,8 @@ export declare class ChatViewWidget extends BaseWidget implements ExtractableWid
|
|
|
20
22
|
protected readonly preferenceService: PreferenceService;
|
|
21
23
|
protected readonly commandService: CommandService;
|
|
22
24
|
protected readonly activationService: AIActivationService;
|
|
25
|
+
protected readonly variableService: FrontendVariableService;
|
|
26
|
+
protected readonly progressBarFactory: ProgressBarFactory;
|
|
23
27
|
protected chatSession: ChatSession;
|
|
24
28
|
protected _state: ChatViewWidget.State;
|
|
25
29
|
protected readonly onStateChangedEmitter: Emitter<ChatViewWidget.State>;
|
|
@@ -33,7 +37,7 @@ export declare class ChatViewWidget extends BaseWidget implements ExtractableWid
|
|
|
33
37
|
protected get state(): ChatViewWidget.State;
|
|
34
38
|
protected set state(state: ChatViewWidget.State);
|
|
35
39
|
get onStateChanged(): Event<ChatViewWidget.State>;
|
|
36
|
-
protected onQuery(query: string): Promise<void>;
|
|
40
|
+
protected onQuery(query: string | ChatRequest): Promise<void>;
|
|
37
41
|
protected onUnpin(): void;
|
|
38
42
|
protected onCancel(requestModel: ChatRequestModel): void;
|
|
39
43
|
protected onDeleteChangeSet(sessionId: string): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-view-widget.d.ts","sourceRoot":"","sources":["../../src/browser/chat-view-widget.tsx"],"names":[],"mappings":"AAeA,OAAO,EAAE,cAAc,EAAa,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACxF,OAAO,
|
|
1
|
+
{"version":3,"file":"chat-view-widget.d.ts","sourceRoot":"","sources":["../../src/browser/chat-view-widget.tsx"],"names":[],"mappings":"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"}
|
|
@@ -26,6 +26,8 @@ const inversify_1 = require("@theia/core/shared/inversify");
|
|
|
26
26
|
const chat_input_widget_1 = require("./chat-input-widget");
|
|
27
27
|
const chat_view_tree_widget_1 = require("./chat-tree-view/chat-view-tree-widget");
|
|
28
28
|
const ai_activation_service_1 = require("@theia/ai-core/lib/browser/ai-activation-service");
|
|
29
|
+
const progress_bar_factory_1 = require("@theia/core/lib/browser/progress-bar-factory");
|
|
30
|
+
const browser_2 = require("@theia/ai-core/lib/browser");
|
|
29
31
|
let ChatViewWidget = ChatViewWidget_1 = class ChatViewWidget extends browser_1.BaseWidget {
|
|
30
32
|
constructor(treeWidget, inputWidget) {
|
|
31
33
|
super();
|
|
@@ -72,26 +74,33 @@ let ChatViewWidget = ChatViewWidget_1 = class ChatViewWidget extends browser_1.B
|
|
|
72
74
|
this.inputWidget.setEnabled(change);
|
|
73
75
|
this.update();
|
|
74
76
|
});
|
|
77
|
+
this.toDispose.push(this.progressBarFactory({ container: this.node, insertMode: 'prepend', locationId: 'ai-chat' }));
|
|
75
78
|
}
|
|
76
79
|
initListeners() {
|
|
77
|
-
this.toDispose.
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
const session = event.sessionId ? this.chatService.getSession(event.sessionId) : this.chatService.createSession();
|
|
82
|
-
if (session) {
|
|
83
|
-
this.chatSession = session;
|
|
84
|
-
this.treeWidget.trackChatModel(this.chatSession.model);
|
|
85
|
-
this.inputWidget.chatModel = this.chatSession.model;
|
|
86
|
-
this.inputWidget.pinnedAgent = this.chatSession.pinnedAgent;
|
|
87
|
-
if (event.focus) {
|
|
88
|
-
this.show();
|
|
80
|
+
this.toDispose.pushAll([
|
|
81
|
+
this.chatService.onSessionEvent(event => {
|
|
82
|
+
if (!(0, ai_chat_1.isActiveSessionChangedEvent)(event)) {
|
|
83
|
+
return;
|
|
89
84
|
}
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
85
|
+
const session = event.sessionId ? this.chatService.getSession(event.sessionId) : this.chatService.createSession();
|
|
86
|
+
if (session) {
|
|
87
|
+
this.chatSession = session;
|
|
88
|
+
this.treeWidget.trackChatModel(this.chatSession.model);
|
|
89
|
+
this.inputWidget.chatModel = this.chatSession.model;
|
|
90
|
+
this.inputWidget.pinnedAgent = this.chatSession.pinnedAgent;
|
|
91
|
+
if (event.focus) {
|
|
92
|
+
this.show();
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
console.warn(`Session with ${event.sessionId} not found.`);
|
|
97
|
+
}
|
|
98
|
+
}),
|
|
99
|
+
// The chat view needs to handle the submission of the edit request
|
|
100
|
+
this.treeWidget.onDidSubmitEdit(request => {
|
|
101
|
+
this.onQuery(request);
|
|
102
|
+
})
|
|
103
|
+
]);
|
|
95
104
|
}
|
|
96
105
|
onActivateRequest(msg) {
|
|
97
106
|
super.onActivateRequest(msg);
|
|
@@ -118,10 +127,10 @@ let ChatViewWidget = ChatViewWidget_1 = class ChatViewWidget extends browser_1.B
|
|
|
118
127
|
return this.onStateChangedEmitter.event;
|
|
119
128
|
}
|
|
120
129
|
async onQuery(query) {
|
|
121
|
-
|
|
130
|
+
const chatRequest = typeof query === 'string' ? { text: query } : { ...query };
|
|
131
|
+
if (chatRequest.text.length === 0) {
|
|
122
132
|
return;
|
|
123
133
|
}
|
|
124
|
-
const chatRequest = { text: query };
|
|
125
134
|
const requestProgress = await this.chatService.sendRequest(this.chatSession.id, chatRequest);
|
|
126
135
|
requestProgress === null || requestProgress === void 0 ? void 0 : requestProgress.responseCompleted.then(responseModel => {
|
|
127
136
|
var _a, _b;
|
|
@@ -198,6 +207,14 @@ tslib_1.__decorate([
|
|
|
198
207
|
(0, inversify_1.inject)(ai_activation_service_1.AIActivationService),
|
|
199
208
|
tslib_1.__metadata("design:type", ai_activation_service_1.AIActivationService)
|
|
200
209
|
], ChatViewWidget.prototype, "activationService", void 0);
|
|
210
|
+
tslib_1.__decorate([
|
|
211
|
+
(0, inversify_1.inject)(browser_2.FrontendVariableService),
|
|
212
|
+
tslib_1.__metadata("design:type", Object)
|
|
213
|
+
], ChatViewWidget.prototype, "variableService", void 0);
|
|
214
|
+
tslib_1.__decorate([
|
|
215
|
+
(0, inversify_1.inject)(progress_bar_factory_1.ProgressBarFactory),
|
|
216
|
+
tslib_1.__metadata("design:type", Function)
|
|
217
|
+
], ChatViewWidget.prototype, "progressBarFactory", void 0);
|
|
201
218
|
tslib_1.__decorate([
|
|
202
219
|
(0, inversify_1.postConstruct)(),
|
|
203
220
|
tslib_1.__metadata("design:type", Function),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-view-widget.js","sourceRoot":"","sources":["../../src/browser/chat-view-widget.tsx"],"names":[],"mappings":";;;;;AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;AAChF,sCAAwF;AACxF,4CAAwI;AACxI,qDAA0I;AAC1I,oDAAiD;AACjD,4DAAiF;AACjF,2DAAwD;AACxD,kFAA4E;AAC5E,4FAAuF;
|
|
1
|
+
{"version":3,"file":"chat-view-widget.js","sourceRoot":"","sources":["../../src/browser/chat-view-widget.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@theia/ai-chat-ui",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.61.0",
|
|
4
4
|
"description": "Theia - AI Chat UI Extension",
|
|
5
5
|
"dependencies": {
|
|
6
|
-
"@theia/ai-chat": "1.
|
|
7
|
-
"@theia/ai-core": "1.
|
|
8
|
-
"@theia/ai-history": "1.
|
|
9
|
-
"@theia/core": "1.
|
|
10
|
-
"@theia/editor": "1.
|
|
11
|
-
"@theia/editor-preview": "1.
|
|
12
|
-
"@theia/filesystem": "1.
|
|
13
|
-
"@theia/monaco": "1.
|
|
6
|
+
"@theia/ai-chat": "1.61.0",
|
|
7
|
+
"@theia/ai-core": "1.61.0",
|
|
8
|
+
"@theia/ai-history": "1.61.0",
|
|
9
|
+
"@theia/core": "1.61.0",
|
|
10
|
+
"@theia/editor": "1.61.0",
|
|
11
|
+
"@theia/editor-preview": "1.61.0",
|
|
12
|
+
"@theia/filesystem": "1.61.0",
|
|
13
|
+
"@theia/monaco": "1.61.0",
|
|
14
14
|
"@theia/monaco-editor-core": "1.96.302",
|
|
15
|
-
"@theia/workspace": "1.
|
|
15
|
+
"@theia/workspace": "1.61.0",
|
|
16
16
|
"date-fns": "^4.1.0",
|
|
17
17
|
"minimatch": "^5.1.0",
|
|
18
18
|
"tslib": "^2.6.2",
|
|
@@ -52,10 +52,10 @@
|
|
|
52
52
|
"watch": "theiaext watch"
|
|
53
53
|
},
|
|
54
54
|
"devDependencies": {
|
|
55
|
-
"@theia/ext-scripts": "1.
|
|
55
|
+
"@theia/ext-scripts": "1.61.0"
|
|
56
56
|
},
|
|
57
57
|
"nyc": {
|
|
58
58
|
"extends": "../../configs/nyc.json"
|
|
59
59
|
},
|
|
60
|
-
"gitHead": "
|
|
60
|
+
"gitHead": "c99af52568c2e1f453c80c1b0d1fb73c3a23dcc0"
|
|
61
61
|
}
|
|
@@ -15,9 +15,13 @@
|
|
|
15
15
|
// *****************************************************************************
|
|
16
16
|
|
|
17
17
|
import { inject, injectable } from '@theia/core/shared/inversify';
|
|
18
|
-
import { CommandRegistry, isOSX, nls, QuickInputButton, QuickInputService, QuickPickItem } from '@theia/core';
|
|
18
|
+
import { CommandRegistry, Emitter, isOSX, MessageService, nls, QuickInputButton, QuickInputService, QuickPickItem } from '@theia/core';
|
|
19
19
|
import { Widget } from '@theia/core/lib/browser';
|
|
20
|
-
import {
|
|
20
|
+
import {
|
|
21
|
+
AI_CHAT_NEW_CHAT_WINDOW_COMMAND,
|
|
22
|
+
AI_CHAT_SHOW_CHATS_COMMAND,
|
|
23
|
+
ChatCommands
|
|
24
|
+
} from './chat-view-commands';
|
|
21
25
|
import { ChatAgentLocation, ChatService } from '@theia/ai-chat';
|
|
22
26
|
import { AbstractViewContribution } from '@theia/core/lib/browser/shell/view-contribution';
|
|
23
27
|
import { TabBarToolbarContribution, TabBarToolbarRegistry } from '@theia/core/lib/browser/shell/tab-bar-toolbar';
|
|
@@ -28,6 +32,10 @@ import { formatDistance } from 'date-fns';
|
|
|
28
32
|
import * as locales from 'date-fns/locale';
|
|
29
33
|
import { AI_SHOW_SETTINGS_COMMAND } from '@theia/ai-core/lib/browser';
|
|
30
34
|
import { OPEN_AI_HISTORY_VIEW } from '@theia/ai-history/lib/browser/ai-history-contribution';
|
|
35
|
+
import { ChatNodeToolbarCommands } from './chat-node-toolbar-action-contribution';
|
|
36
|
+
import { isEditableRequestNode, type EditableRequestNode } from './chat-tree-view';
|
|
37
|
+
import { TASK_CONTEXT_VARIABLE } from '@theia/ai-chat/lib/browser/task-context-variable';
|
|
38
|
+
import { TaskContextService } from '@theia/ai-chat/lib/browser/task-context-service';
|
|
31
39
|
|
|
32
40
|
export const AI_CHAT_TOGGLE_COMMAND_ID = 'aiChat:toggle';
|
|
33
41
|
|
|
@@ -38,6 +46,10 @@ export class AIChatContribution extends AbstractViewContribution<ChatViewWidget>
|
|
|
38
46
|
protected readonly chatService: ChatService;
|
|
39
47
|
@inject(QuickInputService)
|
|
40
48
|
protected readonly quickInputService: QuickInputService;
|
|
49
|
+
@inject(TaskContextService)
|
|
50
|
+
protected readonly taskContextService: TaskContextService;
|
|
51
|
+
@inject(MessageService)
|
|
52
|
+
protected readonly messageService: MessageService;
|
|
41
53
|
|
|
42
54
|
protected static readonly RENAME_CHAT_BUTTON: QuickInputButton = {
|
|
43
55
|
iconClass: 'codicon-edit',
|
|
@@ -83,14 +95,66 @@ export class AIChatContribution extends AbstractViewContribution<ChatViewWidget>
|
|
|
83
95
|
})
|
|
84
96
|
});
|
|
85
97
|
registry.registerCommand(AI_CHAT_NEW_CHAT_WINDOW_COMMAND, {
|
|
86
|
-
execute: () => this.chatService.createSession(ChatAgentLocation.Panel, { focus: true }),
|
|
87
|
-
isEnabled: widget => this.withWidget(widget, () => true),
|
|
98
|
+
execute: () => this.openView().then(() => this.chatService.createSession(ChatAgentLocation.Panel, { focus: true })),
|
|
88
99
|
isVisible: widget => this.withWidget(widget, () => true),
|
|
89
100
|
});
|
|
101
|
+
registry.registerCommand(ChatCommands.AI_CHAT_NEW_WITH_TASK_CONTEXT, {
|
|
102
|
+
execute: async () => {
|
|
103
|
+
const activeSession = this.chatService.getActiveSession();
|
|
104
|
+
const id = await this.summarizeActiveSession();
|
|
105
|
+
if (!id || !activeSession) { return; }
|
|
106
|
+
const newSession = this.chatService.createSession(ChatAgentLocation.Panel, { focus: true }, activeSession.pinnedAgent);
|
|
107
|
+
const summaryVariable = { variable: TASK_CONTEXT_VARIABLE, arg: id };
|
|
108
|
+
newSession.model.context.addVariables(summaryVariable);
|
|
109
|
+
},
|
|
110
|
+
isVisible: () => false
|
|
111
|
+
});
|
|
112
|
+
registry.registerCommand(ChatCommands.AI_CHAT_SUMMARIZE_CURRENT_SESSION, {
|
|
113
|
+
execute: async () => this.summarizeActiveSession(),
|
|
114
|
+
isVisible: widget => {
|
|
115
|
+
if (widget && !this.withWidget(widget)) { return false; }
|
|
116
|
+
const activeSession = this.chatService.getActiveSession();
|
|
117
|
+
return activeSession?.model.location === ChatAgentLocation.Panel
|
|
118
|
+
&& !this.taskContextService.hasSummary(activeSession);
|
|
119
|
+
},
|
|
120
|
+
isEnabled: widget => {
|
|
121
|
+
if (widget && !this.withWidget(widget)) { return false; }
|
|
122
|
+
const activeSession = this.chatService.getActiveSession();
|
|
123
|
+
return activeSession?.model.location === ChatAgentLocation.Panel
|
|
124
|
+
&& !activeSession.model.isEmpty()
|
|
125
|
+
&& !this.taskContextService.hasSummary(activeSession);
|
|
126
|
+
}
|
|
127
|
+
});
|
|
128
|
+
registry.registerCommand(ChatCommands.AI_CHAT_OPEN_SUMMARY_FOR_CURRENT_SESSION, {
|
|
129
|
+
execute: async () => {
|
|
130
|
+
const id = await this.summarizeActiveSession();
|
|
131
|
+
if (!id) { return; }
|
|
132
|
+
await this.taskContextService.open(id);
|
|
133
|
+
},
|
|
134
|
+
isVisible: widget => {
|
|
135
|
+
if (widget && !this.withWidget(widget)) { return false; }
|
|
136
|
+
const activeSession = this.chatService.getActiveSession();
|
|
137
|
+
return !!activeSession && this.taskContextService.hasSummary(activeSession);
|
|
138
|
+
}
|
|
139
|
+
});
|
|
90
140
|
registry.registerCommand(AI_CHAT_SHOW_CHATS_COMMAND, {
|
|
91
141
|
execute: () => this.selectChat(),
|
|
92
|
-
isEnabled: widget => this.withWidget(widget
|
|
93
|
-
isVisible: widget => this.withWidget(widget
|
|
142
|
+
isEnabled: widget => this.withWidget(widget) && this.chatService.getSessions().length > 1,
|
|
143
|
+
isVisible: widget => this.withWidget(widget)
|
|
144
|
+
});
|
|
145
|
+
registry.registerCommand(ChatNodeToolbarCommands.EDIT, {
|
|
146
|
+
isEnabled: node => isEditableRequestNode(node) && !node.request.isEditing,
|
|
147
|
+
isVisible: node => isEditableRequestNode(node) && !node.request.isEditing,
|
|
148
|
+
execute: (node: EditableRequestNode) => {
|
|
149
|
+
node.request.enableEdit();
|
|
150
|
+
}
|
|
151
|
+
});
|
|
152
|
+
registry.registerCommand(ChatNodeToolbarCommands.CANCEL, {
|
|
153
|
+
isEnabled: node => isEditableRequestNode(node) && node.request.isEditing,
|
|
154
|
+
isVisible: node => isEditableRequestNode(node) && node.request.isEditing,
|
|
155
|
+
execute: (node: EditableRequestNode) => {
|
|
156
|
+
node.request.cancelEdit();
|
|
157
|
+
}
|
|
94
158
|
});
|
|
95
159
|
}
|
|
96
160
|
|
|
@@ -123,6 +187,19 @@ export class AIChatContribution extends AbstractViewContribution<ChatViewWidget>
|
|
|
123
187
|
priority: 1,
|
|
124
188
|
isVisible: widget => this.withWidget(widget),
|
|
125
189
|
});
|
|
190
|
+
const sessionSummarizibilityChangedEmitter = new Emitter<void>();
|
|
191
|
+
this.taskContextService.onDidChange(() => sessionSummarizibilityChangedEmitter.fire());
|
|
192
|
+
this.chatService.onSessionEvent(event => event.type === 'activeChange' && sessionSummarizibilityChangedEmitter.fire());
|
|
193
|
+
registry.registerItem({
|
|
194
|
+
id: 'chat-view.' + ChatCommands.AI_CHAT_SUMMARIZE_CURRENT_SESSION.id,
|
|
195
|
+
command: ChatCommands.AI_CHAT_SUMMARIZE_CURRENT_SESSION.id,
|
|
196
|
+
onDidChange: sessionSummarizibilityChangedEmitter.event
|
|
197
|
+
});
|
|
198
|
+
registry.registerItem({
|
|
199
|
+
id: 'chat-view.' + ChatCommands.AI_CHAT_OPEN_SUMMARY_FOR_CURRENT_SESSION.id,
|
|
200
|
+
command: ChatCommands.AI_CHAT_OPEN_SUMMARY_FOR_CURRENT_SESSION.id,
|
|
201
|
+
onDidChange: sessionSummarizibilityChangedEmitter.event
|
|
202
|
+
});
|
|
126
203
|
}
|
|
127
204
|
|
|
128
205
|
protected async selectChat(sessionId?: string): Promise<void> {
|
|
@@ -211,6 +288,16 @@ export class AIChatContribution extends AbstractViewContribution<ChatViewWidget>
|
|
|
211
288
|
canExtractChatView(chatView: ChatViewWidget): boolean {
|
|
212
289
|
return !chatView.secondaryWindow;
|
|
213
290
|
}
|
|
291
|
+
|
|
292
|
+
protected async summarizeActiveSession(): Promise<string | undefined> {
|
|
293
|
+
const activeSession = this.chatService.getActiveSession();
|
|
294
|
+
if (!activeSession) { return; }
|
|
295
|
+
return this.taskContextService.summarize(activeSession).catch(err => {
|
|
296
|
+
console.warn('Error while summarizing session:', err);
|
|
297
|
+
this.messageService.error('Unable to summarize current session. Please confirm that the summary agent is not disabled.');
|
|
298
|
+
return undefined;
|
|
299
|
+
});
|
|
300
|
+
}
|
|
214
301
|
}
|
|
215
302
|
|
|
216
303
|
function getDateFnsLocale(): locales.Locale {
|
|
@@ -22,7 +22,7 @@ import { ContainerModule, interfaces } from '@theia/core/shared/inversify';
|
|
|
22
22
|
import { EditorSelectionResolver } from '@theia/editor/lib/browser/editor-manager';
|
|
23
23
|
import { AIChatContribution } from './ai-chat-ui-contribution';
|
|
24
24
|
import { AIChatInputConfiguration, AIChatInputWidget } from './chat-input-widget';
|
|
25
|
-
import { ChatNodeToolbarActionContribution } from './chat-node-toolbar-action-contribution';
|
|
25
|
+
import { ChatNodeToolbarActionContribution, DefaultChatNodeToolbarActionContribution } from './chat-node-toolbar-action-contribution';
|
|
26
26
|
import { ChatResponsePartRenderer } from './chat-response-part-renderer';
|
|
27
27
|
import {
|
|
28
28
|
CodePartRenderer,
|
|
@@ -35,6 +35,7 @@ import {
|
|
|
35
35
|
MarkdownPartRenderer,
|
|
36
36
|
ToolCallPartRenderer,
|
|
37
37
|
ThinkingPartRenderer,
|
|
38
|
+
ProgressPartRenderer,
|
|
38
39
|
} from './chat-response-renderer';
|
|
39
40
|
import {
|
|
40
41
|
GitHubSelectionResolver,
|
|
@@ -51,6 +52,7 @@ import { ChatViewWidgetToolbarContribution } from './chat-view-widget-toolbar-co
|
|
|
51
52
|
import { ContextVariablePicker } from './context-variable-picker';
|
|
52
53
|
import { ChangeSetActionRenderer, ChangeSetActionService } from './change-set-actions/change-set-action-service';
|
|
53
54
|
import { ChangeSetAcceptAction } from './change-set-actions/change-set-accept-action';
|
|
55
|
+
import { AIChatTreeInputArgs, AIChatTreeInputConfiguration, AIChatTreeInputFactory, AIChatTreeInputWidget } from './chat-tree-view/chat-view-tree-input-widget';
|
|
54
56
|
|
|
55
57
|
export default new ContainerModule((bind, _unbind, _isBound, rebind) => {
|
|
56
58
|
bindViewContribution(bind, AIChatContribution);
|
|
@@ -63,8 +65,9 @@ export default new ContainerModule((bind, _unbind, _isBound, rebind) => {
|
|
|
63
65
|
bind(AIChatInputWidget).toSelf();
|
|
64
66
|
bind(AIChatInputConfiguration).toConstantValue({
|
|
65
67
|
showContext: true,
|
|
66
|
-
showPinnedAgent: true
|
|
67
|
-
|
|
68
|
+
showPinnedAgent: true,
|
|
69
|
+
showChangeSet: true
|
|
70
|
+
} satisfies AIChatInputConfiguration);
|
|
68
71
|
bind(WidgetFactory).toDynamicValue(({ container }) => ({
|
|
69
72
|
id: AIChatInputWidget.ID,
|
|
70
73
|
createWidget: () => container.get(AIChatInputWidget)
|
|
@@ -78,6 +81,30 @@ export default new ContainerModule((bind, _unbind, _isBound, rebind) => {
|
|
|
78
81
|
createWidget: () => container.get(ChatViewTreeWidget)
|
|
79
82
|
})).inSingletonScope();
|
|
80
83
|
|
|
84
|
+
bind(AIChatTreeInputFactory).toFactory(ctx => (args: AIChatTreeInputArgs) => {
|
|
85
|
+
const container = ctx.container.createChild();
|
|
86
|
+
container.bind(AIChatTreeInputArgs).toConstantValue(args);
|
|
87
|
+
container.bind(AIChatTreeInputConfiguration).toConstantValue({
|
|
88
|
+
showContext: true,
|
|
89
|
+
showPinnedAgent: true,
|
|
90
|
+
showChangeSet: false
|
|
91
|
+
} satisfies AIChatInputConfiguration);
|
|
92
|
+
container.bind(AIChatTreeInputWidget).toSelf().inSingletonScope();
|
|
93
|
+
const widget = container.get(AIChatTreeInputWidget);
|
|
94
|
+
const noOp = () => { };
|
|
95
|
+
widget.node.classList.add('chat-input-widget');
|
|
96
|
+
widget.chatModel = args.node.request.session;
|
|
97
|
+
widget.initialValue = args.initialValue;
|
|
98
|
+
widget.setEnabled(true);
|
|
99
|
+
widget.onQuery = args.onQuery;
|
|
100
|
+
// We need to set those values here, otherwise the widget will throw an error
|
|
101
|
+
widget.onUnpin = args.onUnpin ?? noOp;
|
|
102
|
+
widget.onCancel = args.onCancel ?? noOp;
|
|
103
|
+
widget.onDeleteChangeSet = args.onDeleteChangeSet ?? noOp;
|
|
104
|
+
widget.onDeleteChangeSetElement = args.onDeleteChangeSetElement ?? noOp;
|
|
105
|
+
return widget;
|
|
106
|
+
});
|
|
107
|
+
|
|
81
108
|
bind(ContextVariablePicker).toSelf().inSingletonScope();
|
|
82
109
|
|
|
83
110
|
bind(ChatResponsePartRenderer).to(HorizontalLayoutPartRenderer).inSingletonScope();
|
|
@@ -89,6 +116,7 @@ export default new ContainerModule((bind, _unbind, _isBound, rebind) => {
|
|
|
89
116
|
bind(ChatResponsePartRenderer).to(ErrorPartRenderer).inSingletonScope();
|
|
90
117
|
bind(ChatResponsePartRenderer).to(ThinkingPartRenderer).inSingletonScope();
|
|
91
118
|
bind(ChatResponsePartRenderer).to(QuestionPartRenderer).inSingletonScope();
|
|
119
|
+
bind(ChatResponsePartRenderer).to(ProgressPartRenderer).inSingletonScope();
|
|
92
120
|
[CommandContribution, MenuContribution].forEach(serviceIdentifier =>
|
|
93
121
|
bind(serviceIdentifier).to(ChatViewMenuContribution).inSingletonScope()
|
|
94
122
|
);
|
|
@@ -113,6 +141,8 @@ export default new ContainerModule((bind, _unbind, _isBound, rebind) => {
|
|
|
113
141
|
bind(ChangeSetActionRenderer).toService(ChangeSetAcceptAction);
|
|
114
142
|
|
|
115
143
|
bindContributionProvider(bind, ChatNodeToolbarActionContribution);
|
|
144
|
+
bind(DefaultChatNodeToolbarActionContribution).toSelf().inSingletonScope();
|
|
145
|
+
bind(ChatNodeToolbarActionContribution).toService(DefaultChatNodeToolbarActionContribution);
|
|
116
146
|
});
|
|
117
147
|
|
|
118
148
|
function bindChatViewWidget(bind: interfaces.Bind): void {
|