@theia/ai-chat-ui 1.64.0-next.0 → 1.64.0-next.28
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/chat-tree-view/chat-view-tree-widget.d.ts +32 -0
- 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 +114 -27
- package/lib/browser/chat-tree-view/chat-view-tree-widget.js.map +1 -1
- package/package.json +10 -10
- package/src/browser/chat-tree-view/chat-view-tree-widget.tsx +134 -28
- package/src/browser/style/index.css +28 -0
|
@@ -49,6 +49,22 @@ export declare class ChatViewTreeWidget extends TreeWidget {
|
|
|
49
49
|
protected _shouldScrollToEnd: boolean;
|
|
50
50
|
protected isEnabled: boolean;
|
|
51
51
|
protected chatModelId: string;
|
|
52
|
+
/** Tracks if we are at the bottom for showing the scroll-to-bottom button. */
|
|
53
|
+
protected atBottom: boolean;
|
|
54
|
+
/**
|
|
55
|
+
* Track the visibility of the scroll button with debounce logic. Used to prevent flickering when streaming tokens.
|
|
56
|
+
*/
|
|
57
|
+
protected _showScrollButton: boolean;
|
|
58
|
+
/**
|
|
59
|
+
* Timer for debouncing the scroll button activation (prevents flicker on auto-scroll).
|
|
60
|
+
* If user scrolls up, this delays showing the button in case auto-scroll-to-bottom kicks in.
|
|
61
|
+
*/
|
|
62
|
+
protected _scrollButtonDebounceTimer?: number;
|
|
63
|
+
/**
|
|
64
|
+
* Debounce period in ms before showing scroll-to-bottom button after scrolling up.
|
|
65
|
+
* Avoids flickering of the button during LLM token streaming.
|
|
66
|
+
*/
|
|
67
|
+
protected static readonly SCROLL_BUTTON_GRACE_PERIOD = 100;
|
|
52
68
|
onScrollLockChange?: (temporaryLocked: boolean) => void;
|
|
53
69
|
protected lastScrollTop: number;
|
|
54
70
|
set shouldScrollToEnd(shouldScrollToEnd: boolean);
|
|
@@ -57,9 +73,21 @@ export declare class ChatViewTreeWidget extends TreeWidget {
|
|
|
57
73
|
protected init(): void;
|
|
58
74
|
setEnabled(enabled: boolean): void;
|
|
59
75
|
protected handleScrollEvent(scrollEvent: unknown): void;
|
|
76
|
+
/** Updates the scroll-to-bottom button state and handles debounce. */
|
|
77
|
+
protected updateScrollToBottomButtonState(isAtBottom: boolean): void;
|
|
60
78
|
protected setTemporaryScrollLock(enabled: boolean): void;
|
|
61
79
|
protected getCurrentScrollTop(scrollEvent: unknown): number;
|
|
80
|
+
/**
|
|
81
|
+
* Returns true if the scroll position is at the absolute (1px tolerance) bottom of the scroll container.
|
|
82
|
+
* Handles both virtualized and non-virtualized scroll containers.
|
|
83
|
+
* Allows for a tiny floating point epsilon (1px).
|
|
84
|
+
*/
|
|
85
|
+
protected isAtAbsoluteBottom(): boolean;
|
|
62
86
|
protected renderTree(model: TreeModel): React.ReactNode;
|
|
87
|
+
/** Shows the scroll to bottom button if not at the bottom (debounced). */
|
|
88
|
+
protected renderScrollToBottomButton(): React.ReactNode;
|
|
89
|
+
/** Scrolls to the bottom row and updates atBottom state. */
|
|
90
|
+
protected handleScrollToBottomButtonClick(): void;
|
|
63
91
|
protected renderDisabledMessage(): React.ReactNode;
|
|
64
92
|
protected renderWelcomeMessage(): React.ReactNode;
|
|
65
93
|
protected mapRequestToNode(branch: ChatHierarchyBranch): RequestNode;
|
|
@@ -84,5 +112,9 @@ export declare class ChatViewTreeWidget extends TreeWidget {
|
|
|
84
112
|
protected getChatResponsePartRenderer(content: ChatResponseContent, node: ResponseNode): React.ReactNode;
|
|
85
113
|
protected handleContextMenu(node: TreeNode | undefined, event: React.MouseEvent<HTMLElement>): void;
|
|
86
114
|
protected handleSpace(event: KeyboardEvent): boolean;
|
|
115
|
+
/**
|
|
116
|
+
* Ensure atBottom state is correct when content grows (e.g., LLM streaming while scroll lock is enabled).
|
|
117
|
+
*/
|
|
118
|
+
protected updateScrollToRow(): void;
|
|
87
119
|
}
|
|
88
120
|
//# 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,EACT,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,WAAW,EACX,wBAAwB,EAGxB,KAAK,WAAW,EAChB,KAAK,mBAAmB,EAC3B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAc,oBAAoB,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC/G,OAAO,EAGH,mBAAmB,EACnB,YAAY,EAGZ,SAAS,EACT,aAAa,EACb,SAAS,EACT,QAAQ,EACR,SAAS,EACT,UAAU,EAGb,MAAM,yBAAyB,CAAC;AASjC,OAAO,KAAK,KAAK,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,iCAAiC,EAAE,MAAM,0CAA0C,CAAC;AAC7F,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAG1E,OAAO,EAAE,sBAAsB,EAAE,KAAK,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAGnG,MAAM,WAAW,WAAY,SAAQ,QAAQ;IACzC,OAAO,EAAE,gBAAgB,CAAC;IAC1B,MAAM,EAAE,mBAAmB,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAA;CACpB;AACD,eAAO,MAAM,aAAa,SAAU,QAAQ,wBAA2C,CAAC;AAExF,MAAM,WAAW,mBAAoB,SAAQ,WAAW;IACpD,OAAO,EAAE,wBAAwB,CAAA;CACpC;AACD,eAAO,MAAM,qBAAqB,SAAU,QAAQ,gCAAkG,CAAC;AAGvJ,MAAM,WAAW,YAAa,SAAQ,QAAQ;IAC1C,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAA;CACpB;AACD,eAAO,MAAM,cAAc,SAAU,QAAQ,yBAA6C,CAAC;AAE3F,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,aAAa,GAAG,OAAO,CAE1D;AAED,eAAO,MAAM,0BAA0B,eAAuC,CAAC;AAC/E,MAAM,WAAW,0BAA0B;IACvC,oBAAoB,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC;IACzC,qBAAqB,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC;CAC7C;AAED,qBACa,kBAAmB,SAAQ,UAAU;
|
|
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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"}
|
|
@@ -58,6 +58,12 @@ let ChatViewTreeWidget = ChatViewTreeWidget_1 = class ChatViewTreeWidget extends
|
|
|
58
58
|
this.chatInputs = new Map();
|
|
59
59
|
this._shouldScrollToEnd = true;
|
|
60
60
|
this.isEnabled = false;
|
|
61
|
+
/** Tracks if we are at the bottom for showing the scroll-to-bottom button. */
|
|
62
|
+
this.atBottom = true;
|
|
63
|
+
/**
|
|
64
|
+
* Track the visibility of the scroll button with debounce logic. Used to prevent flickering when streaming tokens.
|
|
65
|
+
*/
|
|
66
|
+
this._showScrollButton = false;
|
|
61
67
|
this.lastScrollTop = 0;
|
|
62
68
|
this.toDisposeOnChatModelChange = new core_1.DisposableCollection();
|
|
63
69
|
this.id = ChatViewTreeWidget_1.ID;
|
|
@@ -94,44 +100,62 @@ let ChatViewTreeWidget = ChatViewTreeWidget_1 = class ChatViewTreeWidget extends
|
|
|
94
100
|
this.update();
|
|
95
101
|
}
|
|
96
102
|
handleScrollEvent(scrollEvent) {
|
|
97
|
-
// Get current scroll position
|
|
98
103
|
const currentScrollTop = this.getCurrentScrollTop(scrollEvent);
|
|
99
|
-
const isAtBottom = this.isScrolledToBottom();
|
|
100
|
-
// Determine scroll direction
|
|
101
104
|
const isScrollingUp = currentScrollTop < this.lastScrollTop;
|
|
102
105
|
const isScrollingDown = currentScrollTop > this.lastScrollTop;
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
//
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
// Auto-scroll is enabled, check if we need to enable temporary lock
|
|
109
|
-
if (isScrollingUp) {
|
|
110
|
-
// User is scrolling up and not at bottom - enable temporary lock
|
|
106
|
+
const isAtBottom = this.isScrolledToBottom();
|
|
107
|
+
const isAtAbsoluteBottom = this.isAtAbsoluteBottom();
|
|
108
|
+
// Asymmetric threshold logic to prevent jitter:
|
|
109
|
+
if (this.shouldScrollToEnd && isScrollingUp) {
|
|
110
|
+
if (!isAtAbsoluteBottom) {
|
|
111
111
|
this.setTemporaryScrollLock(true);
|
|
112
112
|
}
|
|
113
|
-
// Note: We don't disable temporary lock when scrolling down while shouldScrollToEnd is true
|
|
114
|
-
// because that would cause jitter. The lock will be disabled when user reaches bottom.
|
|
115
113
|
}
|
|
116
|
-
else {
|
|
117
|
-
|
|
118
|
-
if (isScrollingDown && isAtBottom) {
|
|
119
|
-
// User scrolled back to bottom - disable temporary lock
|
|
120
|
-
this.setTemporaryScrollLock(false);
|
|
121
|
-
}
|
|
122
|
-
// Note: We don't change the lock state when scrolling up while locked,
|
|
123
|
-
// as the user is intentionally scrolling away from auto-scroll behavior.
|
|
114
|
+
else if (!this.shouldScrollToEnd && isAtBottom && isScrollingDown) {
|
|
115
|
+
this.setTemporaryScrollLock(false);
|
|
124
116
|
}
|
|
125
|
-
|
|
117
|
+
this.updateScrollToBottomButtonState(isAtBottom);
|
|
126
118
|
this.lastScrollTop = currentScrollTop;
|
|
127
119
|
}
|
|
120
|
+
/** Updates the scroll-to-bottom button state and handles debounce. */
|
|
121
|
+
updateScrollToBottomButtonState(isAtBottom) {
|
|
122
|
+
const atBottomNow = isAtBottom; // Use isScrolledToBottom for threshold
|
|
123
|
+
if (atBottomNow !== this.atBottom) {
|
|
124
|
+
this.atBottom = atBottomNow;
|
|
125
|
+
if (this.atBottom) {
|
|
126
|
+
// We're at the bottom, hide the button immediately and clear any debounce timer.
|
|
127
|
+
this._showScrollButton = false;
|
|
128
|
+
if (this._scrollButtonDebounceTimer !== undefined) {
|
|
129
|
+
clearTimeout(this._scrollButtonDebounceTimer);
|
|
130
|
+
this._scrollButtonDebounceTimer = undefined;
|
|
131
|
+
}
|
|
132
|
+
this.update();
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
// User scrolled up; delay showing the scroll-to-bottom button.
|
|
136
|
+
if (this._scrollButtonDebounceTimer !== undefined) {
|
|
137
|
+
clearTimeout(this._scrollButtonDebounceTimer);
|
|
138
|
+
}
|
|
139
|
+
this._scrollButtonDebounceTimer = window.setTimeout(() => {
|
|
140
|
+
// Re-check: only show if we're still not at bottom
|
|
141
|
+
if (!this.atBottom) {
|
|
142
|
+
this._showScrollButton = true;
|
|
143
|
+
this.update();
|
|
144
|
+
}
|
|
145
|
+
this._scrollButtonDebounceTimer = undefined;
|
|
146
|
+
}, ChatViewTreeWidget_1.SCROLL_BUTTON_GRACE_PERIOD);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
128
150
|
setTemporaryScrollLock(enabled) {
|
|
129
151
|
var _a;
|
|
130
152
|
// Immediately apply scroll lock changes without delay
|
|
131
153
|
(_a = this.onScrollLockChange) === null || _a === void 0 ? void 0 : _a.call(this, enabled);
|
|
154
|
+
// Update cached scrollToRow so that outdated values do not cause unwanted scrolling on update()
|
|
155
|
+
this.updateScrollToRow();
|
|
132
156
|
}
|
|
133
157
|
getCurrentScrollTop(scrollEvent) {
|
|
134
|
-
// For virtualized trees,
|
|
158
|
+
// For virtualized trees, use the virtualized view's scroll state (most reliable)
|
|
135
159
|
if (this.props.virtualized !== false && this.view) {
|
|
136
160
|
const scrollState = this.getVirtualizedScrollState();
|
|
137
161
|
if (scrollState !== undefined) {
|
|
@@ -152,15 +176,63 @@ let ChatViewTreeWidget = ChatViewTreeWidget_1 = class ChatViewTreeWidget extends
|
|
|
152
176
|
}
|
|
153
177
|
return 0;
|
|
154
178
|
}
|
|
179
|
+
/**
|
|
180
|
+
* Returns true if the scroll position is at the absolute (1px tolerance) bottom of the scroll container.
|
|
181
|
+
* Handles both virtualized and non-virtualized scroll containers.
|
|
182
|
+
* Allows for a tiny floating point epsilon (1px).
|
|
183
|
+
*/
|
|
184
|
+
isAtAbsoluteBottom() {
|
|
185
|
+
var _a, _b;
|
|
186
|
+
let scrollTop = 0;
|
|
187
|
+
let scrollHeight = 0;
|
|
188
|
+
let clientHeight = 0;
|
|
189
|
+
const EPSILON = 1; // px
|
|
190
|
+
if (this.props.virtualized !== false && this.view) {
|
|
191
|
+
const state = this.getVirtualizedScrollState();
|
|
192
|
+
if (state) {
|
|
193
|
+
scrollTop = state.scrollTop;
|
|
194
|
+
scrollHeight = (_a = state.scrollHeight) !== null && _a !== void 0 ? _a : 0;
|
|
195
|
+
clientHeight = (_b = state.clientHeight) !== null && _b !== void 0 ? _b : 0;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
else if (this.node) {
|
|
199
|
+
scrollTop = this.node.scrollTop;
|
|
200
|
+
scrollHeight = this.node.scrollHeight;
|
|
201
|
+
clientHeight = this.node.clientHeight;
|
|
202
|
+
}
|
|
203
|
+
const diff = Math.abs(scrollTop + clientHeight - scrollHeight);
|
|
204
|
+
return diff <= EPSILON;
|
|
205
|
+
}
|
|
155
206
|
renderTree(model) {
|
|
156
207
|
var _a;
|
|
157
208
|
if (!this.isEnabled) {
|
|
158
209
|
return this.renderDisabledMessage();
|
|
159
210
|
}
|
|
160
|
-
|
|
161
|
-
|
|
211
|
+
const tree = browser_2.CompositeTreeNode.is(model.root) && ((_a = model.root.children) === null || _a === void 0 ? void 0 : _a.length) > 0
|
|
212
|
+
? super.renderTree(model)
|
|
213
|
+
: this.renderWelcomeMessage();
|
|
214
|
+
return React.createElement(React.Fragment, null,
|
|
215
|
+
tree,
|
|
216
|
+
this.renderScrollToBottomButton());
|
|
217
|
+
}
|
|
218
|
+
/** Shows the scroll to bottom button if not at the bottom (debounced). */
|
|
219
|
+
renderScrollToBottomButton() {
|
|
220
|
+
if (!this._showScrollButton) {
|
|
221
|
+
return undefined;
|
|
162
222
|
}
|
|
163
|
-
|
|
223
|
+
// Down-arrow, Theia codicon, fixed overlay on widget
|
|
224
|
+
return React.createElement("button", { className: "theia-ChatTree-ScrollToBottom codicon codicon-arrow-down", title: nls_1.nls.localize('theia/ai/chat-ui/chat-view-tree-widget/scrollToBottom', 'Jump to latest message'), onClick: () => this.handleScrollToBottomButtonClick() });
|
|
225
|
+
}
|
|
226
|
+
/** Scrolls to the bottom row and updates atBottom state. */
|
|
227
|
+
handleScrollToBottomButtonClick() {
|
|
228
|
+
this.scrollToRow = this.rows.size;
|
|
229
|
+
this.atBottom = true;
|
|
230
|
+
this._showScrollButton = false;
|
|
231
|
+
if (this._scrollButtonDebounceTimer !== undefined) {
|
|
232
|
+
clearTimeout(this._scrollButtonDebounceTimer);
|
|
233
|
+
this._scrollButtonDebounceTimer = undefined;
|
|
234
|
+
}
|
|
235
|
+
this.update();
|
|
164
236
|
}
|
|
165
237
|
renderDisabledMessage() {
|
|
166
238
|
var _a, _b, _c;
|
|
@@ -245,10 +317,12 @@ let ChatViewTreeWidget = ChatViewTreeWidget_1 = class ChatViewTreeWidget extends
|
|
|
245
317
|
}
|
|
246
318
|
}
|
|
247
319
|
getScrollToRow() {
|
|
320
|
+
// Only scroll to end if auto-scroll is enabled (not locked)
|
|
248
321
|
if (this.shouldScrollToEnd) {
|
|
249
322
|
return this.rows.size;
|
|
250
323
|
}
|
|
251
|
-
|
|
324
|
+
// When auto-scroll is disabled, don't auto-scroll at all
|
|
325
|
+
return undefined;
|
|
252
326
|
}
|
|
253
327
|
async recreateModelTree(chatModel) {
|
|
254
328
|
if (browser_2.CompositeTreeNode.is(this.model.root)) {
|
|
@@ -414,10 +488,23 @@ let ChatViewTreeWidget = ChatViewTreeWidget_1 = class ChatViewTreeWidget extends
|
|
|
414
488
|
// Otherwise, the space key will never be handled by the monaco editor
|
|
415
489
|
return false;
|
|
416
490
|
}
|
|
491
|
+
/**
|
|
492
|
+
* Ensure atBottom state is correct when content grows (e.g., LLM streaming while scroll lock is enabled).
|
|
493
|
+
*/
|
|
494
|
+
updateScrollToRow() {
|
|
495
|
+
super.updateScrollToRow();
|
|
496
|
+
const isAtBottom = this.isScrolledToBottom();
|
|
497
|
+
this.updateScrollToBottomButtonState(isAtBottom);
|
|
498
|
+
}
|
|
417
499
|
};
|
|
418
500
|
exports.ChatViewTreeWidget = ChatViewTreeWidget;
|
|
419
501
|
ChatViewTreeWidget.ID = 'chat-tree-widget';
|
|
420
502
|
ChatViewTreeWidget.CONTEXT_MENU = ['chat-tree-context-menu'];
|
|
503
|
+
/**
|
|
504
|
+
* Debounce period in ms before showing scroll-to-bottom button after scrolling up.
|
|
505
|
+
* Avoids flickering of the button during LLM token streaming.
|
|
506
|
+
*/
|
|
507
|
+
ChatViewTreeWidget.SCROLL_BUTTON_GRACE_PERIOD = 100;
|
|
421
508
|
tslib_1.__decorate([
|
|
422
509
|
(0, inversify_1.inject)(core_1.ContributionProvider),
|
|
423
510
|
(0, inversify_1.named)(chat_response_part_renderer_1.ChatResponsePartRenderer),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-view-tree-widget.js","sourceRoot":"","sources":["../../../src/browser/chat-tree-view/chat-view-tree-widget.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"chat-view-tree-widget.js","sourceRoot":"","sources":["../../../src/browser/chat-tree-view/chat-view-tree-widget.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@theia/ai-chat-ui",
|
|
3
|
-
"version": "1.64.0-next.
|
|
3
|
+
"version": "1.64.0-next.28+c0fda4c47",
|
|
4
4
|
"description": "Theia - AI Chat UI Extension",
|
|
5
5
|
"dependencies": {
|
|
6
|
-
"@theia/ai-chat": "1.64.0-next.
|
|
7
|
-
"@theia/ai-core": "1.64.0-next.
|
|
8
|
-
"@theia/core": "1.64.0-next.
|
|
9
|
-
"@theia/editor": "1.64.0-next.
|
|
10
|
-
"@theia/editor-preview": "1.64.0-next.
|
|
11
|
-
"@theia/filesystem": "1.64.0-next.
|
|
12
|
-
"@theia/monaco": "1.64.0-next.
|
|
6
|
+
"@theia/ai-chat": "1.64.0-next.28+c0fda4c47",
|
|
7
|
+
"@theia/ai-core": "1.64.0-next.28+c0fda4c47",
|
|
8
|
+
"@theia/core": "1.64.0-next.28+c0fda4c47",
|
|
9
|
+
"@theia/editor": "1.64.0-next.28+c0fda4c47",
|
|
10
|
+
"@theia/editor-preview": "1.64.0-next.28+c0fda4c47",
|
|
11
|
+
"@theia/filesystem": "1.64.0-next.28+c0fda4c47",
|
|
12
|
+
"@theia/monaco": "1.64.0-next.28+c0fda4c47",
|
|
13
13
|
"@theia/monaco-editor-core": "1.96.302",
|
|
14
|
-
"@theia/workspace": "1.64.0-next.
|
|
14
|
+
"@theia/workspace": "1.64.0-next.28+c0fda4c47",
|
|
15
15
|
"date-fns": "^4.1.0",
|
|
16
16
|
"minimatch": "^5.1.0",
|
|
17
17
|
"tslib": "^2.6.2",
|
|
@@ -56,5 +56,5 @@
|
|
|
56
56
|
"nyc": {
|
|
57
57
|
"extends": "../../configs/nyc.json"
|
|
58
58
|
},
|
|
59
|
-
"gitHead": "
|
|
59
|
+
"gitHead": "c0fda4c4706fcd4ec1616c8e2f24673352a707d1"
|
|
60
60
|
}
|
|
@@ -93,6 +93,7 @@ export interface ChatWelcomeMessageProvider {
|
|
|
93
93
|
|
|
94
94
|
@injectable()
|
|
95
95
|
export class ChatViewTreeWidget extends TreeWidget {
|
|
96
|
+
|
|
96
97
|
static readonly ID = 'chat-tree-widget';
|
|
97
98
|
static readonly CONTEXT_MENU = ['chat-tree-context-menu'];
|
|
98
99
|
|
|
@@ -140,6 +141,23 @@ export class ChatViewTreeWidget extends TreeWidget {
|
|
|
140
141
|
|
|
141
142
|
protected chatModelId: string;
|
|
142
143
|
|
|
144
|
+
/** Tracks if we are at the bottom for showing the scroll-to-bottom button. */
|
|
145
|
+
protected atBottom = true;
|
|
146
|
+
/**
|
|
147
|
+
* Track the visibility of the scroll button with debounce logic. Used to prevent flickering when streaming tokens.
|
|
148
|
+
*/
|
|
149
|
+
protected _showScrollButton = false;
|
|
150
|
+
/**
|
|
151
|
+
* Timer for debouncing the scroll button activation (prevents flicker on auto-scroll).
|
|
152
|
+
* If user scrolls up, this delays showing the button in case auto-scroll-to-bottom kicks in.
|
|
153
|
+
*/
|
|
154
|
+
protected _scrollButtonDebounceTimer?: number;
|
|
155
|
+
/**
|
|
156
|
+
* Debounce period in ms before showing scroll-to-bottom button after scrolling up.
|
|
157
|
+
* Avoids flickering of the button during LLM token streaming.
|
|
158
|
+
*/
|
|
159
|
+
protected static readonly SCROLL_BUTTON_GRACE_PERIOD = 100;
|
|
160
|
+
|
|
143
161
|
onScrollLockChange?: (temporaryLocked: boolean) => void;
|
|
144
162
|
|
|
145
163
|
protected lastScrollTop = 0;
|
|
@@ -202,47 +220,65 @@ export class ChatViewTreeWidget extends TreeWidget {
|
|
|
202
220
|
}
|
|
203
221
|
|
|
204
222
|
protected handleScrollEvent(scrollEvent: unknown): void {
|
|
205
|
-
// Get current scroll position
|
|
206
223
|
const currentScrollTop = this.getCurrentScrollTop(scrollEvent);
|
|
207
|
-
const isAtBottom = this.isScrolledToBottom();
|
|
208
|
-
|
|
209
|
-
// Determine scroll direction
|
|
210
224
|
const isScrollingUp = currentScrollTop < this.lastScrollTop;
|
|
211
225
|
const isScrollingDown = currentScrollTop > this.lastScrollTop;
|
|
226
|
+
const isAtBottom = this.isScrolledToBottom();
|
|
227
|
+
const isAtAbsoluteBottom = this.isAtAbsoluteBottom();
|
|
212
228
|
|
|
213
|
-
//
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
// the jitter when users try to scroll up by just a few pixels from the bottom.
|
|
217
|
-
if (this.shouldScrollToEnd) {
|
|
218
|
-
// Auto-scroll is enabled, check if we need to enable temporary lock
|
|
219
|
-
if (isScrollingUp) {
|
|
220
|
-
// User is scrolling up and not at bottom - enable temporary lock
|
|
229
|
+
// Asymmetric threshold logic to prevent jitter:
|
|
230
|
+
if (this.shouldScrollToEnd && isScrollingUp) {
|
|
231
|
+
if (!isAtAbsoluteBottom) {
|
|
221
232
|
this.setTemporaryScrollLock(true);
|
|
222
233
|
}
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
} else {
|
|
226
|
-
// Temporary lock is active, check if we should disable it
|
|
227
|
-
if (isScrollingDown && isAtBottom) {
|
|
228
|
-
// User scrolled back to bottom - disable temporary lock
|
|
229
|
-
this.setTemporaryScrollLock(false);
|
|
230
|
-
}
|
|
231
|
-
// Note: We don't change the lock state when scrolling up while locked,
|
|
232
|
-
// as the user is intentionally scrolling away from auto-scroll behavior.
|
|
234
|
+
} else if (!this.shouldScrollToEnd && isAtBottom && isScrollingDown) {
|
|
235
|
+
this.setTemporaryScrollLock(false);
|
|
233
236
|
}
|
|
234
237
|
|
|
235
|
-
|
|
238
|
+
this.updateScrollToBottomButtonState(isAtBottom);
|
|
239
|
+
|
|
236
240
|
this.lastScrollTop = currentScrollTop;
|
|
237
241
|
}
|
|
238
242
|
|
|
243
|
+
/** Updates the scroll-to-bottom button state and handles debounce. */
|
|
244
|
+
protected updateScrollToBottomButtonState(isAtBottom: boolean): void {
|
|
245
|
+
const atBottomNow = isAtBottom; // Use isScrolledToBottom for threshold
|
|
246
|
+
if (atBottomNow !== this.atBottom) {
|
|
247
|
+
this.atBottom = atBottomNow;
|
|
248
|
+
if (this.atBottom) {
|
|
249
|
+
// We're at the bottom, hide the button immediately and clear any debounce timer.
|
|
250
|
+
this._showScrollButton = false;
|
|
251
|
+
if (this._scrollButtonDebounceTimer !== undefined) {
|
|
252
|
+
clearTimeout(this._scrollButtonDebounceTimer);
|
|
253
|
+
this._scrollButtonDebounceTimer = undefined;
|
|
254
|
+
}
|
|
255
|
+
this.update();
|
|
256
|
+
} else {
|
|
257
|
+
// User scrolled up; delay showing the scroll-to-bottom button.
|
|
258
|
+
if (this._scrollButtonDebounceTimer !== undefined) {
|
|
259
|
+
clearTimeout(this._scrollButtonDebounceTimer);
|
|
260
|
+
}
|
|
261
|
+
this._scrollButtonDebounceTimer = window.setTimeout(() => {
|
|
262
|
+
// Re-check: only show if we're still not at bottom
|
|
263
|
+
if (!this.atBottom) {
|
|
264
|
+
this._showScrollButton = true;
|
|
265
|
+
this.update();
|
|
266
|
+
}
|
|
267
|
+
this._scrollButtonDebounceTimer = undefined;
|
|
268
|
+
}, ChatViewTreeWidget.SCROLL_BUTTON_GRACE_PERIOD);
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
|
|
239
273
|
protected setTemporaryScrollLock(enabled: boolean): void {
|
|
240
274
|
// Immediately apply scroll lock changes without delay
|
|
241
275
|
this.onScrollLockChange?.(enabled);
|
|
276
|
+
// Update cached scrollToRow so that outdated values do not cause unwanted scrolling on update()
|
|
277
|
+
this.updateScrollToRow();
|
|
242
278
|
}
|
|
243
279
|
|
|
244
280
|
protected getCurrentScrollTop(scrollEvent: unknown): number {
|
|
245
|
-
// For virtualized trees,
|
|
281
|
+
// For virtualized trees, use the virtualized view's scroll state (most reliable)
|
|
246
282
|
if (this.props.virtualized !== false && this.view) {
|
|
247
283
|
const scrollState = this.getVirtualizedScrollState();
|
|
248
284
|
if (scrollState !== undefined) {
|
|
@@ -267,14 +303,70 @@ export class ChatViewTreeWidget extends TreeWidget {
|
|
|
267
303
|
return 0;
|
|
268
304
|
}
|
|
269
305
|
|
|
306
|
+
/**
|
|
307
|
+
* Returns true if the scroll position is at the absolute (1px tolerance) bottom of the scroll container.
|
|
308
|
+
* Handles both virtualized and non-virtualized scroll containers.
|
|
309
|
+
* Allows for a tiny floating point epsilon (1px).
|
|
310
|
+
*/
|
|
311
|
+
protected isAtAbsoluteBottom(): boolean {
|
|
312
|
+
let scrollTop: number = 0;
|
|
313
|
+
let scrollHeight: number = 0;
|
|
314
|
+
let clientHeight: number = 0;
|
|
315
|
+
const EPSILON = 1; // px
|
|
316
|
+
if (this.props.virtualized !== false && this.view) {
|
|
317
|
+
const state = this.getVirtualizedScrollState();
|
|
318
|
+
if (state) {
|
|
319
|
+
scrollTop = state.scrollTop;
|
|
320
|
+
scrollHeight = state.scrollHeight ?? 0;
|
|
321
|
+
clientHeight = state.clientHeight ?? 0;
|
|
322
|
+
}
|
|
323
|
+
} else if (this.node) {
|
|
324
|
+
scrollTop = this.node.scrollTop;
|
|
325
|
+
scrollHeight = this.node.scrollHeight;
|
|
326
|
+
clientHeight = this.node.clientHeight;
|
|
327
|
+
}
|
|
328
|
+
const diff = Math.abs(scrollTop + clientHeight - scrollHeight);
|
|
329
|
+
return diff <= EPSILON;
|
|
330
|
+
}
|
|
331
|
+
|
|
270
332
|
protected override renderTree(model: TreeModel): React.ReactNode {
|
|
271
333
|
if (!this.isEnabled) {
|
|
272
334
|
return this.renderDisabledMessage();
|
|
273
335
|
}
|
|
274
|
-
|
|
275
|
-
|
|
336
|
+
|
|
337
|
+
const tree = CompositeTreeNode.is(model.root) && model.root.children?.length > 0
|
|
338
|
+
? super.renderTree(model)
|
|
339
|
+
: this.renderWelcomeMessage();
|
|
340
|
+
|
|
341
|
+
return <React.Fragment>
|
|
342
|
+
{tree}
|
|
343
|
+
{this.renderScrollToBottomButton()}
|
|
344
|
+
</React.Fragment>;
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
/** Shows the scroll to bottom button if not at the bottom (debounced). */
|
|
348
|
+
protected renderScrollToBottomButton(): React.ReactNode {
|
|
349
|
+
if (!this._showScrollButton) {
|
|
350
|
+
return undefined;
|
|
351
|
+
}
|
|
352
|
+
// Down-arrow, Theia codicon, fixed overlay on widget
|
|
353
|
+
return <button
|
|
354
|
+
className="theia-ChatTree-ScrollToBottom codicon codicon-arrow-down"
|
|
355
|
+
title={nls.localize('theia/ai/chat-ui/chat-view-tree-widget/scrollToBottom', 'Jump to latest message')}
|
|
356
|
+
onClick={() => this.handleScrollToBottomButtonClick()}
|
|
357
|
+
/>;
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
/** Scrolls to the bottom row and updates atBottom state. */
|
|
361
|
+
protected handleScrollToBottomButtonClick(): void {
|
|
362
|
+
this.scrollToRow = this.rows.size;
|
|
363
|
+
this.atBottom = true;
|
|
364
|
+
this._showScrollButton = false;
|
|
365
|
+
if (this._scrollButtonDebounceTimer !== undefined) {
|
|
366
|
+
clearTimeout(this._scrollButtonDebounceTimer);
|
|
367
|
+
this._scrollButtonDebounceTimer = undefined;
|
|
276
368
|
}
|
|
277
|
-
|
|
369
|
+
this.update();
|
|
278
370
|
}
|
|
279
371
|
|
|
280
372
|
protected renderDisabledMessage(): React.ReactNode {
|
|
@@ -309,6 +401,7 @@ export class ChatViewTreeWidget extends TreeWidget {
|
|
|
309
401
|
}
|
|
310
402
|
|
|
311
403
|
protected readonly toDisposeOnChatModelChange = new DisposableCollection();
|
|
404
|
+
|
|
312
405
|
/**
|
|
313
406
|
* Tracks the ChatModel handed over.
|
|
314
407
|
* Tracking multiple chat models will result in a weird UI
|
|
@@ -316,6 +409,7 @@ export class ChatViewTreeWidget extends TreeWidget {
|
|
|
316
409
|
public trackChatModel(chatModel: ChatModel): void {
|
|
317
410
|
this.toDisposeOnChatModelChange.dispose();
|
|
318
411
|
this.recreateModelTree(chatModel);
|
|
412
|
+
|
|
319
413
|
chatModel.getRequests().forEach(request => {
|
|
320
414
|
if (!request.response.isComplete) {
|
|
321
415
|
request.response.onDidChange(() => this.scheduleUpdateScrollToRow());
|
|
@@ -365,10 +459,12 @@ export class ChatViewTreeWidget extends TreeWidget {
|
|
|
365
459
|
}
|
|
366
460
|
|
|
367
461
|
protected override getScrollToRow(): number | undefined {
|
|
462
|
+
// Only scroll to end if auto-scroll is enabled (not locked)
|
|
368
463
|
if (this.shouldScrollToEnd) {
|
|
369
464
|
return this.rows.size;
|
|
370
465
|
}
|
|
371
|
-
|
|
466
|
+
// When auto-scroll is disabled, don't auto-scroll at all
|
|
467
|
+
return undefined;
|
|
372
468
|
}
|
|
373
469
|
|
|
374
470
|
protected async recreateModelTree(chatModel: ChatModel): Promise<void> {
|
|
@@ -592,6 +688,16 @@ export class ChatViewTreeWidget extends TreeWidget {
|
|
|
592
688
|
// Otherwise, the space key will never be handled by the monaco editor
|
|
593
689
|
return false;
|
|
594
690
|
}
|
|
691
|
+
|
|
692
|
+
/**
|
|
693
|
+
* Ensure atBottom state is correct when content grows (e.g., LLM streaming while scroll lock is enabled).
|
|
694
|
+
*/
|
|
695
|
+
protected override updateScrollToRow(): void {
|
|
696
|
+
super.updateScrollToRow();
|
|
697
|
+
const isAtBottom = this.isScrolledToBottom();
|
|
698
|
+
this.updateScrollToBottomButtonState(isAtBottom);
|
|
699
|
+
}
|
|
700
|
+
|
|
595
701
|
}
|
|
596
702
|
|
|
597
703
|
interface WidgetContainerProps {
|
|
@@ -1128,3 +1128,31 @@ details[open].collapsible-arguments .collapsible-arguments-summary {
|
|
|
1128
1128
|
margin-top: 8px;
|
|
1129
1129
|
min-height: 40px;
|
|
1130
1130
|
}
|
|
1131
|
+
|
|
1132
|
+
/* ChatTree scroll-to-bottom floating button */
|
|
1133
|
+
.theia-ChatTree-ScrollToBottom {
|
|
1134
|
+
position: absolute;
|
|
1135
|
+
right: 16px;
|
|
1136
|
+
bottom: 16px;
|
|
1137
|
+
z-index: 10;
|
|
1138
|
+
width: 32px;
|
|
1139
|
+
height: 32px;
|
|
1140
|
+
border-radius: 16px;
|
|
1141
|
+
border: none;
|
|
1142
|
+
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.10);
|
|
1143
|
+
background: var(--theia-layoutColor3, #ececec);
|
|
1144
|
+
cursor: pointer;
|
|
1145
|
+
display: flex;
|
|
1146
|
+
justify-content: center;
|
|
1147
|
+
align-items: center;
|
|
1148
|
+
font-size: 20px;
|
|
1149
|
+
opacity: 0.7;
|
|
1150
|
+
color: var(--theia-button-background, #007acc);
|
|
1151
|
+
transition: opacity 0.18s, background 0.20s, color 0.20s;
|
|
1152
|
+
}
|
|
1153
|
+
|
|
1154
|
+
.theia-ChatTree-ScrollToBottom:hover {
|
|
1155
|
+
opacity: 1;
|
|
1156
|
+
background: var(--theia-button-background, #007acc);
|
|
1157
|
+
color: var(--theia-button-foreground, #fff);
|
|
1158
|
+
}
|