@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
|
@@ -72,15 +72,18 @@ const MarkdownRender = ({ response, openerService }) => {
|
|
|
72
72
|
* @param markdown the string to render as markdown
|
|
73
73
|
* @param skipSurroundingParagraph whether to remove a surrounding paragraph element (default: false)
|
|
74
74
|
* @param openerService the service to handle link opening
|
|
75
|
+
* @param eventHandler `handleEvent` will be called by default for `click` events and additionally
|
|
76
|
+
* for all events enumerated in {@link DeclaredEventsEventListenerObject.handledEvents}. If `handleEvent` returns `true`,
|
|
77
|
+
* no additional handlers will be run for the event.
|
|
75
78
|
* @returns the ref to use in an element to render the markdown
|
|
76
79
|
*/
|
|
77
|
-
const useMarkdownRendering = (markdown, openerService, skipSurroundingParagraph = false) => {
|
|
80
|
+
const useMarkdownRendering = (markdown, openerService, skipSurroundingParagraph = false, eventHandler) => {
|
|
78
81
|
// null is valid in React
|
|
79
82
|
// eslint-disable-next-line no-null/no-null
|
|
80
83
|
const ref = (0, react_1.useRef)(null);
|
|
81
84
|
const markdownString = typeof markdown === 'string' ? markdown : markdown.value;
|
|
82
85
|
(0, react_1.useEffect)(() => {
|
|
83
|
-
var _a, _b, _c;
|
|
86
|
+
var _a, _b, _c, _d;
|
|
84
87
|
const markdownIt = markdownit();
|
|
85
88
|
const host = document.createElement('div');
|
|
86
89
|
// markdownIt always puts the content in a paragraph element, so we remove it if we don't want that
|
|
@@ -96,6 +99,9 @@ const useMarkdownRendering = (markdown, openerService, skipSurroundingParagraph
|
|
|
96
99
|
(_b = ref === null || ref === void 0 ? void 0 : ref.current) === null || _b === void 0 ? void 0 : _b.appendChild(host);
|
|
97
100
|
// intercept link clicks to use the Theia OpenerService instead of the default browser behavior
|
|
98
101
|
const handleClick = (event) => {
|
|
102
|
+
if ((eventHandler === null || eventHandler === void 0 ? void 0 : eventHandler.handleEvent(event)) === true) {
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
99
105
|
let target = event.target;
|
|
100
106
|
while (target && target.tagName !== 'A') {
|
|
101
107
|
target = target.parentElement;
|
|
@@ -109,7 +115,12 @@ const useMarkdownRendering = (markdown, openerService, skipSurroundingParagraph
|
|
|
109
115
|
}
|
|
110
116
|
};
|
|
111
117
|
(_c = ref === null || ref === void 0 ? void 0 : ref.current) === null || _c === void 0 ? void 0 : _c.addEventListener('click', handleClick);
|
|
112
|
-
|
|
118
|
+
(_d = eventHandler === null || eventHandler === void 0 ? void 0 : eventHandler.handledEvents) === null || _d === void 0 ? void 0 : _d.forEach(eventType => { var _a; return eventType !== 'click' && ((_a = ref === null || ref === void 0 ? void 0 : ref.current) === null || _a === void 0 ? void 0 : _a.addEventListener(eventType, eventHandler)); });
|
|
119
|
+
return () => {
|
|
120
|
+
var _a, _b;
|
|
121
|
+
(_a = ref.current) === null || _a === void 0 ? void 0 : _a.removeEventListener('click', handleClick);
|
|
122
|
+
(_b = eventHandler === null || eventHandler === void 0 ? void 0 : eventHandler.handledEvents) === null || _b === void 0 ? void 0 : _b.forEach(eventType => { var _a; return eventType !== 'click' && ((_a = ref === null || ref === void 0 ? void 0 : ref.current) === null || _a === void 0 ? void 0 : _a.removeEventListener(eventType, eventHandler)); });
|
|
123
|
+
};
|
|
113
124
|
}, [markdownString, skipSurroundingParagraph, openerService]);
|
|
114
125
|
return ref;
|
|
115
126
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown-part-renderer.js","sourceRoot":"","sources":["../../../src/browser/chat-response-renderer/markdown-part-renderer.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;;;;AAGhF,4DAAkE;AAClE,sDAImC;AACnC,oDAAwE;AACxE,kDAAkD;AAClD,6DAA6D;AAC7D,0DAA0D;AAE1D,qDAA8D;AAC9D,sCAAkC;AAG3B,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAA1B;QAEgB,eAAU,GAAG,UAAU,EAAE,CAAC;IAoBjD,CAAC;IAnBG,SAAS,CAAC,QAA6B;QACnC,IAAI,oCAA2B,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC3C,OAAO,EAAE,CAAC;QACd,CAAC;QACD,IAAI,yCAAgC,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChD,OAAO,EAAE,CAAC;QACd,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;IACd,CAAC;IACD,MAAM,CAAC,QAAwE;QAC3E,6EAA6E;QAC7E,IAAI,yCAAgC,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChD,yBAAyB;YACzB,2CAA2C;YAC3C,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,OAAO,oBAAC,cAAc,IAAC,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa,GAAI,CAAC;IACrF,CAAC;CACJ,CAAA;AAtBY,oDAAoB;AACa;IAAzC,IAAA,kBAAM,EAAC,uBAAa,CAAC;;2DAAiD;+BAD9D,oBAAoB;IADhC,IAAA,sBAAU,GAAE;GACA,oBAAoB,CAsBhC;AAED,MAAM,cAAc,GAAG,CAAC,EAAE,QAAQ,EAAE,aAAa,EAA8G,EAAE,EAAE;IAC/J,MAAM,GAAG,GAAG,IAAA,4BAAoB,EAAC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IAElE,OAAO,6BAAK,GAAG,EAAE,GAAG,GAAQ,CAAC;AACjC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"markdown-part-renderer.js","sourceRoot":"","sources":["../../../src/browser/chat-response-renderer/markdown-part-renderer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { ChatResponsePartRenderer } from '../chat-response-part-renderer';
|
|
3
|
+
import { ChatResponseContent, ProgressChatResponseContent } from '@theia/ai-chat/lib/common';
|
|
4
|
+
import { ReactNode } from '@theia/core/shared/react';
|
|
5
|
+
export declare class ProgressPartRenderer implements ChatResponsePartRenderer<ProgressChatResponseContent> {
|
|
6
|
+
canHandle(response: ChatResponseContent): number;
|
|
7
|
+
render(response: ProgressChatResponseContent): ReactNode;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=progress-part-renderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"progress-part-renderer.d.ts","sourceRoot":"","sources":["../../../src/browser/chat-response-renderer/progress-part-renderer.tsx"],"names":[],"mappings":";AAgBA,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAE1E,OAAO,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AAC7F,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAIrD,qBACa,oBAAqB,YAAW,wBAAwB,CAAC,2BAA2B,CAAC;IAE9F,SAAS,CAAC,QAAQ,EAAE,mBAAmB,GAAG,MAAM;IAOhD,MAAM,CAAC,QAAQ,EAAE,2BAA2B,GAAG,SAAS;CAM3D"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// *****************************************************************************
|
|
3
|
+
// Copyright (C) 2025 EclipseSource GmbH.
|
|
4
|
+
//
|
|
5
|
+
// This program and the accompanying materials are made available under the
|
|
6
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
7
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
8
|
+
//
|
|
9
|
+
// This Source Code may also be made available under the following Secondary
|
|
10
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
11
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
12
|
+
// with the GNU Classpath Exception which is available at
|
|
13
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
14
|
+
//
|
|
15
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
16
|
+
// *****************************************************************************
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.ProgressPartRenderer = void 0;
|
|
19
|
+
const tslib_1 = require("tslib");
|
|
20
|
+
const inversify_1 = require("@theia/core/shared/inversify");
|
|
21
|
+
const common_1 = require("@theia/ai-chat/lib/common");
|
|
22
|
+
const React = require("@theia/core/shared/react");
|
|
23
|
+
const chat_progress_message_1 = require("../chat-progress-message");
|
|
24
|
+
let ProgressPartRenderer = class ProgressPartRenderer {
|
|
25
|
+
canHandle(response) {
|
|
26
|
+
if (common_1.ProgressChatResponseContent.is(response)) {
|
|
27
|
+
return 10;
|
|
28
|
+
}
|
|
29
|
+
return -1;
|
|
30
|
+
}
|
|
31
|
+
render(response) {
|
|
32
|
+
return (React.createElement(chat_progress_message_1.ProgressMessage, { content: response.message, status: 'inProgress' }));
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
exports.ProgressPartRenderer = ProgressPartRenderer;
|
|
36
|
+
exports.ProgressPartRenderer = ProgressPartRenderer = tslib_1.__decorate([
|
|
37
|
+
(0, inversify_1.injectable)()
|
|
38
|
+
], ProgressPartRenderer);
|
|
39
|
+
//# sourceMappingURL=progress-part-renderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"progress-part-renderer.js","sourceRoot":"","sources":["../../../src/browser/chat-response-renderer/progress-part-renderer.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;;;;AAGhF,4DAA0D;AAC1D,sDAA6F;AAE7F,kDAAkD;AAClD,oEAA2D;AAGpD,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAE7B,SAAS,CAAC,QAA6B;QACnC,IAAI,oCAA2B,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC3C,OAAO,EAAE,CAAC;QACd,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;IACd,CAAC;IAED,MAAM,CAAC,QAAqC;QACxC,OAAO,CACH,oBAAC,uCAAe,IAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAC,YAAY,GAAG,CACrE,CAAC;IACN,CAAC;CAEJ,CAAA;AAfY,oDAAoB;+BAApB,oBAAoB;IADhC,IAAA,sBAAU,GAAE;GACA,oBAAoB,CAehC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { AIChatInputWidget, type AIChatInputConfiguration } from '../chat-input-widget';
|
|
2
|
+
import type { EditableRequestNode } from './chat-view-tree-widget';
|
|
3
|
+
import { URI } from '@theia/core';
|
|
4
|
+
import type { ChatRequestModel, EditableChatRequestModel } from '@theia/ai-chat';
|
|
5
|
+
import type { AIVariableResolutionRequest } from '@theia/ai-core';
|
|
6
|
+
export declare const AIChatTreeInputConfiguration: unique symbol;
|
|
7
|
+
export interface AIChatTreeInputConfiguration extends AIChatInputConfiguration {
|
|
8
|
+
}
|
|
9
|
+
export declare const AIChatTreeInputArgs: unique symbol;
|
|
10
|
+
export interface AIChatTreeInputArgs {
|
|
11
|
+
node: EditableRequestNode;
|
|
12
|
+
initialValue?: string;
|
|
13
|
+
onQuery: (query: string) => Promise<void>;
|
|
14
|
+
onUnpin?: () => void;
|
|
15
|
+
onCancel?: (requestModel: ChatRequestModel) => void;
|
|
16
|
+
onDeleteChangeSet?: (requestModel: ChatRequestModel) => void;
|
|
17
|
+
onDeleteChangeSetElement?: (requestModel: ChatRequestModel, index: number) => void;
|
|
18
|
+
}
|
|
19
|
+
export declare const AIChatTreeInputFactory: unique symbol;
|
|
20
|
+
export type AIChatTreeInputFactory = (args: AIChatTreeInputArgs) => AIChatTreeInputWidget;
|
|
21
|
+
export declare class AIChatTreeInputWidget extends AIChatInputWidget {
|
|
22
|
+
static ID: string;
|
|
23
|
+
protected readonly args: AIChatTreeInputArgs;
|
|
24
|
+
protected readonly configuration: AIChatTreeInputConfiguration | undefined;
|
|
25
|
+
get requestNode(): EditableRequestNode;
|
|
26
|
+
get request(): EditableChatRequestModel;
|
|
27
|
+
protected init(): void;
|
|
28
|
+
protected getResourceUri(): URI;
|
|
29
|
+
addContext(variable: AIVariableResolutionRequest): void;
|
|
30
|
+
protected getContext(): readonly AIVariableResolutionRequest[];
|
|
31
|
+
protected deleteContextElement(index: number): void;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=chat-view-tree-input-widget.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-view-tree-input-widget.d.ts","sourceRoot":"","sources":["../../../src/browser/chat-tree-view/chat-view-tree-input-widget.tsx"],"names":[],"mappings":"AAiBA,OAAO,EAAE,iBAAiB,EAAE,KAAK,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AACxF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAElC,OAAO,KAAK,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AACjF,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAGlE,eAAO,MAAM,4BAA4B,eAAyC,CAAC;AACnF,MAAM,WAAW,4BAA6B,SAAQ,wBAAwB;CAAI;AAElF,eAAO,MAAM,mBAAmB,eAAgC,CAAC;AACjE,MAAM,WAAW,mBAAmB;IAChC,IAAI,EAAE,mBAAmB,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,CAAC,YAAY,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACpD,iBAAiB,CAAC,EAAE,CAAC,YAAY,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC7D,wBAAwB,CAAC,EAAE,CAAC,YAAY,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACtF;AACD,eAAO,MAAM,sBAAsB,eAAmC,CAAC;AACvE,MAAM,MAAM,sBAAsB,GAAG,CAAC,IAAI,EAAE,mBAAmB,KAAK,qBAAqB,CAAC;AAE1F,qBACa,qBAAsB,SAAQ,iBAAiB;IACxD,OAAuB,EAAE,SAA4B;IAGrD,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;IAE7C,mBAC4B,aAAa,EAAE,4BAA4B,GAAG,SAAS,CAAC;IAEpF,IAAI,WAAW,IAAI,mBAAmB,CAErC;IAED,IAAI,OAAO,IAAI,wBAAwB,CAEtC;cAGkB,IAAI,IAAI,IAAI;cAaZ,cAAc,IAAI,GAAG;IAI/B,UAAU,CAAC,QAAQ,EAAE,2BAA2B,GAAG,IAAI;cAI7C,UAAU,IAAI,SAAS,2BAA2B,EAAE;cAIpD,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;CAG/D"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// *****************************************************************************
|
|
3
|
+
// Copyright (C) 2025 EclipseSource GmbH.
|
|
4
|
+
//
|
|
5
|
+
// This program and the accompanying materials are made available under the
|
|
6
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
7
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
8
|
+
//
|
|
9
|
+
// This Source Code may also be made available under the following Secondary
|
|
10
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
11
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
12
|
+
// with the GNU Classpath Exception which is available at
|
|
13
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
14
|
+
//
|
|
15
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
16
|
+
// *****************************************************************************
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.AIChatTreeInputWidget = exports.AIChatTreeInputFactory = exports.AIChatTreeInputArgs = exports.AIChatTreeInputConfiguration = void 0;
|
|
19
|
+
const tslib_1 = require("tslib");
|
|
20
|
+
const inversify_1 = require("@theia/core/shared/inversify");
|
|
21
|
+
const chat_input_widget_1 = require("../chat-input-widget");
|
|
22
|
+
const core_1 = require("@theia/core");
|
|
23
|
+
const chat_view_language_contribution_1 = require("../chat-view-language-contribution");
|
|
24
|
+
const browser_1 = require("@theia/core/lib/browser");
|
|
25
|
+
exports.AIChatTreeInputConfiguration = Symbol('AIChatTreeInputConfiguration');
|
|
26
|
+
exports.AIChatTreeInputArgs = Symbol('AIChatTreeInputArgs');
|
|
27
|
+
exports.AIChatTreeInputFactory = Symbol('AIChatTreeInputFactory');
|
|
28
|
+
let AIChatTreeInputWidget = class AIChatTreeInputWidget extends chat_input_widget_1.AIChatInputWidget {
|
|
29
|
+
get requestNode() {
|
|
30
|
+
return this.args.node;
|
|
31
|
+
}
|
|
32
|
+
get request() {
|
|
33
|
+
return this.requestNode.request;
|
|
34
|
+
}
|
|
35
|
+
init() {
|
|
36
|
+
super.init();
|
|
37
|
+
this.addKeyListener(this.node, browser_1.Key.ESCAPE, () => {
|
|
38
|
+
this.request.cancelEdit();
|
|
39
|
+
});
|
|
40
|
+
this.editorReady.promise.then(() => {
|
|
41
|
+
if (this.editorRef) {
|
|
42
|
+
this.editorRef.focus();
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
getResourceUri() {
|
|
47
|
+
return new core_1.URI(`ai-chat:/${this.requestNode.id}-input.${chat_view_language_contribution_1.CHAT_VIEW_LANGUAGE_EXTENSION}`);
|
|
48
|
+
}
|
|
49
|
+
addContext(variable) {
|
|
50
|
+
this.request.editContextManager.addVariables(variable);
|
|
51
|
+
}
|
|
52
|
+
getContext() {
|
|
53
|
+
return this.request.editContextManager.getVariables();
|
|
54
|
+
}
|
|
55
|
+
deleteContextElement(index) {
|
|
56
|
+
this.request.editContextManager.deleteVariables(index);
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
exports.AIChatTreeInputWidget = AIChatTreeInputWidget;
|
|
60
|
+
AIChatTreeInputWidget.ID = 'chat-tree-input-widget';
|
|
61
|
+
tslib_1.__decorate([
|
|
62
|
+
(0, inversify_1.inject)(exports.AIChatTreeInputArgs),
|
|
63
|
+
tslib_1.__metadata("design:type", Object)
|
|
64
|
+
], AIChatTreeInputWidget.prototype, "args", void 0);
|
|
65
|
+
tslib_1.__decorate([
|
|
66
|
+
(0, inversify_1.inject)(exports.AIChatTreeInputConfiguration),
|
|
67
|
+
(0, inversify_1.optional)(),
|
|
68
|
+
tslib_1.__metadata("design:type", Object)
|
|
69
|
+
], AIChatTreeInputWidget.prototype, "configuration", void 0);
|
|
70
|
+
tslib_1.__decorate([
|
|
71
|
+
(0, inversify_1.postConstruct)(),
|
|
72
|
+
tslib_1.__metadata("design:type", Function),
|
|
73
|
+
tslib_1.__metadata("design:paramtypes", []),
|
|
74
|
+
tslib_1.__metadata("design:returntype", void 0)
|
|
75
|
+
], AIChatTreeInputWidget.prototype, "init", null);
|
|
76
|
+
exports.AIChatTreeInputWidget = AIChatTreeInputWidget = tslib_1.__decorate([
|
|
77
|
+
(0, inversify_1.injectable)()
|
|
78
|
+
], AIChatTreeInputWidget);
|
|
79
|
+
//# sourceMappingURL=chat-view-tree-input-widget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-view-tree-input-widget.js","sourceRoot":"","sources":["../../../src/browser/chat-tree-view/chat-view-tree-input-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;;;;AAEhF,4DAA2F;AAC3F,4DAAwF;AAExF,sCAAkC;AAClC,wFAAkF;AAGlF,qDAA8C;AAEjC,QAAA,4BAA4B,GAAG,MAAM,CAAC,8BAA8B,CAAC,CAAC;AAGtE,QAAA,mBAAmB,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;AAUpD,QAAA,sBAAsB,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAC;AAIhE,IAAM,qBAAqB,GAA3B,MAAM,qBAAsB,SAAQ,qCAAiB;IASxD,IAAI,WAAW;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IAC1B,CAAC;IAED,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;IACpC,CAAC;IAGkB,IAAI;QACnB,KAAK,CAAC,IAAI,EAAE,CAAC;QACb,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,aAAG,CAAC,MAAM,EAAE,GAAG,EAAE;YAC5C,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QAC9B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE;YAC/B,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACjB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;YAC3B,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAEkB,cAAc;QAC7B,OAAO,IAAI,UAAG,CAAC,YAAY,IAAI,CAAC,WAAW,CAAC,EAAE,UAAU,8DAA4B,EAAE,CAAC,CAAC;IAC5F,CAAC;IAEQ,UAAU,CAAC,QAAqC;QACrD,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC3D,CAAC;IAEkB,UAAU;QACzB,OAAO,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;IAC1D,CAAC;IAEkB,oBAAoB,CAAC,KAAa;QACjD,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAC3D,CAAC;;AA7CQ,sDAAqB;AACP,wBAAE,GAAG,wBAAwB,AAA3B,CAA4B;AAGlC;IADlB,IAAA,kBAAM,EAAC,2BAAmB,CAAC;;mDACiB;AAGjB;IAD3B,IAAA,kBAAM,EAAC,oCAA4B,CAAC;IAAE,IAAA,oBAAQ,GAAE;;4DACmC;AAWjE;IADlB,IAAA,yBAAa,GAAE;;;;iDAYf;gCA7BQ,qBAAqB;IADjC,IAAA,sBAAU,GAAE;GACA,qBAAqB,CA8CjC"}
|
|
@@ -1,15 +1,22 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import { ChatAgent, ChatAgentService, ChatModel, ChatRequestModel, ChatResponseContent, ChatResponseModel } from '@theia/ai-chat';
|
|
3
|
-
import {
|
|
2
|
+
import { ChatAgent, ChatAgentService, ChatModel, ChatRequestModel, ChatResponseContent, ChatResponseModel, ChatService, EditableChatRequestModel, type ChatRequest, type ChatHierarchyBranch } from '@theia/ai-chat';
|
|
3
|
+
import { AIVariableService } from '@theia/ai-core';
|
|
4
|
+
import { AIActivationService } from '@theia/ai-core/lib/browser';
|
|
5
|
+
import { CommandRegistry, ContributionProvider, DisposableCollection, Emitter } from '@theia/core';
|
|
4
6
|
import { ContextMenuRenderer, HoverService, NodeProps, OpenerService, TreeModel, TreeNode, TreeProps, TreeWidget } from '@theia/core/lib/browser';
|
|
5
7
|
import * as React from '@theia/core/shared/react';
|
|
6
8
|
import { ChatNodeToolbarActionContribution } from '../chat-node-toolbar-action-contribution';
|
|
7
9
|
import { ChatResponsePartRenderer } from '../chat-response-part-renderer';
|
|
8
|
-
import {
|
|
10
|
+
import { AIChatTreeInputFactory, type AIChatTreeInputWidget } from './chat-view-tree-input-widget';
|
|
9
11
|
export interface RequestNode extends TreeNode {
|
|
10
12
|
request: ChatRequestModel;
|
|
13
|
+
branch: ChatHierarchyBranch;
|
|
11
14
|
}
|
|
12
15
|
export declare const isRequestNode: (node: TreeNode) => node is RequestNode;
|
|
16
|
+
export interface EditableRequestNode extends RequestNode {
|
|
17
|
+
request: EditableChatRequestModel;
|
|
18
|
+
}
|
|
19
|
+
export declare const isEditableRequestNode: (node: TreeNode) => node is EditableRequestNode;
|
|
13
20
|
export interface ResponseNode extends TreeNode {
|
|
14
21
|
response: ChatResponseModel;
|
|
15
22
|
}
|
|
@@ -31,6 +38,12 @@ export declare class ChatViewTreeWidget extends TreeWidget {
|
|
|
31
38
|
protected readonly openerService: OpenerService;
|
|
32
39
|
protected hoverService: HoverService;
|
|
33
40
|
protected welcomeMessageProvider?: ChatWelcomeMessageProvider;
|
|
41
|
+
protected inputWidgetFactory: AIChatTreeInputFactory;
|
|
42
|
+
protected readonly activationService: AIActivationService;
|
|
43
|
+
protected readonly chatService: ChatService;
|
|
44
|
+
protected readonly onDidSubmitEditEmitter: Emitter<ChatRequest>;
|
|
45
|
+
onDidSubmitEdit: import("@theia/core").Event<ChatRequest>;
|
|
46
|
+
protected readonly chatInputs: Map<string, AIChatTreeInputWidget>;
|
|
34
47
|
protected _shouldScrollToEnd: boolean;
|
|
35
48
|
protected isEnabled: boolean;
|
|
36
49
|
set shouldScrollToEnd(shouldScrollToEnd: boolean);
|
|
@@ -41,13 +54,15 @@ export declare class ChatViewTreeWidget extends TreeWidget {
|
|
|
41
54
|
protected renderTree(model: TreeModel): React.ReactNode;
|
|
42
55
|
protected renderDisabledMessage(): React.ReactNode;
|
|
43
56
|
protected renderWelcomeMessage(): React.ReactNode;
|
|
44
|
-
protected mapRequestToNode(
|
|
57
|
+
protected mapRequestToNode(branch: ChatHierarchyBranch): RequestNode;
|
|
45
58
|
protected mapResponseToNode(response: ChatResponseModel): ResponseNode;
|
|
59
|
+
protected readonly toDisposeOnChatModelChange: DisposableCollection;
|
|
46
60
|
/**
|
|
47
61
|
* Tracks the ChatModel handed over.
|
|
48
62
|
* Tracking multiple chat models will result in a weird UI
|
|
49
63
|
*/
|
|
50
64
|
trackChatModel(chatModel: ChatModel): void;
|
|
65
|
+
protected disposeChatInputWidget(request: ChatRequestModel): void;
|
|
51
66
|
protected getScrollToRow(): number | undefined;
|
|
52
67
|
protected recreateModelTree(chatModel: ChatModel): Promise<void>;
|
|
53
68
|
protected renderNode(node: TreeNode, props: NodeProps): React.ReactNode;
|
|
@@ -60,5 +75,6 @@ export declare class ChatViewTreeWidget extends TreeWidget {
|
|
|
60
75
|
protected renderChatResponse(node: ResponseNode): React.ReactNode;
|
|
61
76
|
protected getChatResponsePartRenderer(content: ChatResponseContent, node: ResponseNode): React.ReactNode;
|
|
62
77
|
protected handleContextMenu(node: TreeNode | undefined, event: React.MouseEvent<HTMLElement>): void;
|
|
78
|
+
protected handleSpace(event: KeyboardEvent): boolean;
|
|
63
79
|
}
|
|
64
80
|
//# sourceMappingURL=chat-view-tree-widget.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-view-tree-widget.d.ts","sourceRoot":"","sources":["../../../src/browser/chat-tree-view/chat-view-tree-widget.tsx"],"names":[],"mappings":";AAeA,OAAO,EACH,SAAS,EACT,gBAAgB,EAChB,SAAS,
|
|
1
|
+
{"version":3,"file":"chat-view-tree-widget.d.ts","sourceRoot":"","sources":["../../../src/browser/chat-tree-view/chat-view-tree-widget.tsx"],"names":[],"mappings":"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"}
|