@theia/ai-ide 1.74.0-next.8 → 1.74.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-allow-all-mode-chat-banner.d.ts +68 -0
- package/lib/browser/ai-allow-all-mode-chat-banner.d.ts.map +1 -0
- package/lib/browser/ai-allow-all-mode-chat-banner.js +184 -0
- package/lib/browser/ai-allow-all-mode-chat-banner.js.map +1 -0
- package/lib/browser/ai-allow-all-mode-chat-banner.spec.d.ts +2 -0
- package/lib/browser/ai-allow-all-mode-chat-banner.spec.d.ts.map +1 -0
- package/lib/browser/ai-allow-all-mode-chat-banner.spec.js +170 -0
- package/lib/browser/ai-allow-all-mode-chat-banner.spec.js.map +1 -0
- package/lib/browser/ai-configuration/tools-configuration-widget.d.ts +3 -4
- package/lib/browser/ai-configuration/tools-configuration-widget.d.ts.map +1 -1
- package/lib/browser/ai-configuration/tools-configuration-widget.js +17 -10
- package/lib/browser/ai-configuration/tools-configuration-widget.js.map +1 -1
- package/lib/browser/ai-first-perspective-contribution.d.ts +6 -0
- package/lib/browser/ai-first-perspective-contribution.d.ts.map +1 -0
- package/lib/browser/ai-first-perspective-contribution.js +50 -0
- package/lib/browser/ai-first-perspective-contribution.js.map +1 -0
- package/lib/browser/ai-sessions-view-contribution.d.ts +13 -0
- package/lib/browser/ai-sessions-view-contribution.d.ts.map +1 -0
- package/lib/browser/ai-sessions-view-contribution.js +69 -0
- package/lib/browser/ai-sessions-view-contribution.js.map +1 -0
- package/lib/browser/ai-sessions-widget.d.ts +27 -0
- package/lib/browser/ai-sessions-widget.d.ts.map +1 -0
- package/lib/browser/ai-sessions-widget.js +131 -0
- package/lib/browser/ai-sessions-widget.js.map +1 -0
- package/lib/browser/chat-session-item-action-contribution.js +2 -2
- package/lib/browser/chat-session-item-action-contribution.js.map +1 -1
- package/lib/browser/chat-session-item.d.ts +15 -0
- package/lib/browser/chat-session-item.d.ts.map +1 -1
- package/lib/browser/chat-session-item.js +39 -18
- package/lib/browser/chat-session-item.js.map +1 -1
- package/lib/browser/chat-session-list-components.d.ts +38 -0
- package/lib/browser/chat-session-list-components.d.ts.map +1 -0
- package/lib/browser/chat-session-list-components.js +87 -0
- package/lib/browser/chat-session-list-components.js.map +1 -0
- package/lib/browser/chat-session-list-service.d.ts +34 -0
- package/lib/browser/chat-session-list-service.d.ts.map +1 -0
- package/lib/browser/chat-session-list-service.js +251 -0
- package/lib/browser/chat-session-list-service.js.map +1 -0
- package/lib/browser/chat-session-list-service.spec.d.ts +2 -0
- package/lib/browser/chat-session-list-service.spec.d.ts.map +1 -0
- package/lib/browser/{chat-sessions-welcome-message-provider.spec.js → chat-session-list-service.spec.js} +133 -39
- package/lib/browser/chat-session-list-service.spec.js.map +1 -0
- package/lib/browser/chat-session-tooltip.d.ts +2 -2
- package/lib/browser/chat-session-tooltip.d.ts.map +1 -1
- package/lib/browser/chat-session-tooltip.js +33 -10
- package/lib/browser/chat-session-tooltip.js.map +1 -1
- package/lib/browser/chat-sessions-welcome-message-provider.d.ts +9 -35
- package/lib/browser/chat-sessions-welcome-message-provider.d.ts.map +1 -1
- package/lib/browser/chat-sessions-welcome-message-provider.js +51 -205
- package/lib/browser/chat-sessions-welcome-message-provider.js.map +1 -1
- package/lib/browser/context-file-validation-service-impl.spec.js +2 -2
- package/lib/browser/context-file-validation-service-impl.spec.js.map +1 -1
- package/lib/browser/frontend-module.d.ts.map +1 -1
- package/lib/browser/frontend-module.js +20 -0
- package/lib/browser/frontend-module.js.map +1 -1
- package/lib/browser/workspace-functions.d.ts +5 -6
- package/lib/browser/workspace-functions.d.ts.map +1 -1
- package/lib/browser/workspace-functions.js +24 -9
- package/lib/browser/workspace-functions.js.map +1 -1
- package/lib/browser/workspace-functions.spec.js +29 -29
- package/lib/browser/workspace-functions.spec.js.map +1 -1
- package/lib/browser/workspace-launch-provider.spec.js +3 -3
- package/lib/browser/workspace-launch-provider.spec.js.map +1 -1
- package/lib/browser/workspace-search-provider.d.ts.map +1 -1
- package/lib/browser/workspace-search-provider.js +28 -20
- package/lib/browser/workspace-search-provider.js.map +1 -1
- package/lib/browser/workspace-search-provider.spec.js +68 -0
- package/lib/browser/workspace-search-provider.spec.js.map +1 -1
- package/lib/browser/workspace-task-provider.spec.js +4 -4
- package/lib/browser/workspace-task-provider.spec.js.map +1 -1
- package/package.json +25 -25
- package/src/browser/ai-allow-all-mode-chat-banner.spec.ts +205 -0
- package/src/browser/ai-allow-all-mode-chat-banner.tsx +217 -0
- package/src/browser/ai-configuration/tools-configuration-widget.tsx +20 -13
- package/src/browser/ai-first-perspective-contribution.ts +48 -0
- package/src/browser/ai-sessions-view-contribution.ts +67 -0
- package/src/browser/ai-sessions-widget.tsx +151 -0
- package/src/browser/chat-session-item-action-contribution.ts +2 -2
- package/src/browser/chat-session-item.tsx +82 -27
- package/src/browser/chat-session-list-components.tsx +136 -0
- package/src/browser/{chat-sessions-welcome-message-provider.spec.ts → chat-session-list-service.spec.ts} +136 -30
- package/src/browser/chat-session-list-service.ts +261 -0
- package/src/browser/chat-session-tooltip.ts +31 -11
- package/src/browser/chat-sessions-welcome-message-provider.tsx +78 -268
- package/src/browser/context-file-validation-service-impl.spec.ts +3 -3
- package/src/browser/frontend-module.ts +23 -0
- package/src/browser/style/index.css +150 -3
- package/src/browser/workspace-functions.spec.ts +36 -37
- package/src/browser/workspace-functions.ts +8 -9
- package/src/browser/workspace-launch-provider.spec.ts +5 -5
- package/src/browser/workspace-search-provider.spec.ts +101 -0
- package/src/browser/workspace-search-provider.ts +34 -23
- package/src/browser/workspace-task-provider.spec.ts +6 -7
- package/lib/browser/chat-sessions-welcome-message-provider.spec.d.ts +0 -2
- package/lib/browser/chat-sessions-welcome-message-provider.spec.d.ts.map +0 -1
- package/lib/browser/chat-sessions-welcome-message-provider.spec.js.map +0 -1
|
@@ -23,7 +23,8 @@ const chai_1 = require("chai");
|
|
|
23
23
|
const core_1 = require("@theia/core");
|
|
24
24
|
const ai_chat_1 = require("@theia/ai-chat");
|
|
25
25
|
const chat_view_widget_1 = require("@theia/ai-chat-ui/lib/browser/chat-view-widget");
|
|
26
|
-
const
|
|
26
|
+
const chat_session_list_service_1 = require("./chat-session-list-service");
|
|
27
|
+
const chat_session_list_components_1 = require("./chat-session-list-components");
|
|
27
28
|
disableJSDOM();
|
|
28
29
|
/**
|
|
29
30
|
* Subclass that exposes the protected watch hook and lets tests inject fake services.
|
|
@@ -31,7 +32,7 @@ disableJSDOM();
|
|
|
31
32
|
* unread bookkeeping; spinning up the full container would pull in unrelated
|
|
32
33
|
* services and obscure the assertion.
|
|
33
34
|
*/
|
|
34
|
-
class
|
|
35
|
+
class TestableService extends chat_session_list_service_1.ChatSessionListService {
|
|
35
36
|
constructor(chatService, shell) {
|
|
36
37
|
super();
|
|
37
38
|
this.chatService = chatService;
|
|
@@ -48,6 +49,7 @@ function createFakeSession(id) {
|
|
|
48
49
|
id,
|
|
49
50
|
isActive: false,
|
|
50
51
|
model: {
|
|
52
|
+
status: 'idle',
|
|
51
53
|
getRequests: () => requests,
|
|
52
54
|
onDidChange: onDidChangeEmitter.event,
|
|
53
55
|
}
|
|
@@ -58,7 +60,7 @@ function createFakeSession(id) {
|
|
|
58
60
|
pushRequest: complete => requests.push({ response: { isComplete: complete } })
|
|
59
61
|
};
|
|
60
62
|
}
|
|
61
|
-
describe('
|
|
63
|
+
describe('ChatSessionListService', () => {
|
|
62
64
|
describe('unread state', () => {
|
|
63
65
|
let activeSessionId;
|
|
64
66
|
let activeWidget;
|
|
@@ -96,27 +98,27 @@ describe('ChatSessionsWelcomeMessageProvider', () => {
|
|
|
96
98
|
};
|
|
97
99
|
});
|
|
98
100
|
it('marks the session unread when a new request arrives and the chat view is not focused', () => {
|
|
99
|
-
const
|
|
101
|
+
const service = new TestableService(chatService, shell);
|
|
100
102
|
const { session, fire, pushRequest } = createFakeSession('s1');
|
|
101
103
|
activeSessionId = 's1';
|
|
102
104
|
activeWidget = otherWidget;
|
|
103
|
-
|
|
105
|
+
service.watch(session);
|
|
104
106
|
pushRequest(true);
|
|
105
107
|
fire();
|
|
106
|
-
(0, chai_1.expect)(
|
|
108
|
+
(0, chai_1.expect)(service.isUnread('s1')).to.equal(true);
|
|
107
109
|
});
|
|
108
110
|
it('does not mark unread when the session is active AND the chat view is focused', () => {
|
|
109
|
-
const
|
|
111
|
+
const service = new TestableService(chatService, shell);
|
|
110
112
|
const { session, fire, pushRequest } = createFakeSession('s1');
|
|
111
113
|
activeSessionId = 's1';
|
|
112
114
|
activeWidget = chatViewWidget;
|
|
113
|
-
|
|
115
|
+
service.watch(session);
|
|
114
116
|
pushRequest(true);
|
|
115
117
|
fire();
|
|
116
|
-
(0, chai_1.expect)(
|
|
118
|
+
(0, chai_1.expect)(service.isUnread('s1')).to.equal(false);
|
|
117
119
|
});
|
|
118
120
|
it('does not mark unread when focus is inside a child widget of the chat view', () => {
|
|
119
|
-
const
|
|
121
|
+
const service = new TestableService(chatService, shell);
|
|
120
122
|
const { session, fire, pushRequest } = createFakeSession('s1');
|
|
121
123
|
activeSessionId = 's1';
|
|
122
124
|
// Simulate focus inside a descendant (e.g. AIChatInputWidget): the shell's
|
|
@@ -124,77 +126,77 @@ describe('ChatSessionsWelcomeMessageProvider', () => {
|
|
|
124
126
|
const childWidget = { parent: chatViewWidget };
|
|
125
127
|
activeWidget = childWidget;
|
|
126
128
|
widgetForActiveElement = childWidget;
|
|
127
|
-
|
|
129
|
+
service.watch(session);
|
|
128
130
|
pushRequest(true);
|
|
129
131
|
fire();
|
|
130
|
-
(0, chai_1.expect)(
|
|
132
|
+
(0, chai_1.expect)(service.isUnread('s1')).to.equal(false);
|
|
131
133
|
});
|
|
132
134
|
it('marks unread when the session is not the active one, even if the chat view is focused', () => {
|
|
133
|
-
const
|
|
135
|
+
const service = new TestableService(chatService, shell);
|
|
134
136
|
const { session, fire, pushRequest } = createFakeSession('s1');
|
|
135
137
|
activeSessionId = 'other';
|
|
136
138
|
activeWidget = chatViewWidget;
|
|
137
|
-
|
|
139
|
+
service.watch(session);
|
|
138
140
|
pushRequest(true);
|
|
139
141
|
fire();
|
|
140
|
-
(0, chai_1.expect)(
|
|
142
|
+
(0, chai_1.expect)(service.isUnread('s1')).to.equal(true);
|
|
141
143
|
});
|
|
142
144
|
it('fires onUnreadChanged once when a session transitions to unread', () => {
|
|
143
|
-
const
|
|
145
|
+
const service = new TestableService(chatService, shell);
|
|
144
146
|
const { session, fire, pushRequest } = createFakeSession('s1');
|
|
145
147
|
activeSessionId = undefined;
|
|
146
148
|
activeWidget = otherWidget;
|
|
147
149
|
let fired = 0;
|
|
148
|
-
|
|
149
|
-
|
|
150
|
+
service.onUnreadChanged(() => { fired++; });
|
|
151
|
+
service.watch(session);
|
|
150
152
|
pushRequest(true);
|
|
151
153
|
fire();
|
|
152
154
|
pushRequest(true);
|
|
153
155
|
fire();
|
|
154
|
-
(0, chai_1.expect)(
|
|
156
|
+
(0, chai_1.expect)(service.isUnread('s1')).to.equal(true);
|
|
155
157
|
(0, chai_1.expect)(fired).to.equal(1);
|
|
156
158
|
});
|
|
157
159
|
});
|
|
158
160
|
describe('computeVisibleSessionSlots', () => {
|
|
159
161
|
it('hides the inline list when the cap is 0', () => {
|
|
160
|
-
(0, chai_1.expect)((0,
|
|
162
|
+
(0, chai_1.expect)((0, chat_session_list_components_1.computeVisibleSessionSlots)(10, 10, 0)).to.deep.equal({ activeCount: 0, restoredCount: 0 });
|
|
161
163
|
});
|
|
162
164
|
it('clamps a negative cap to 0', () => {
|
|
163
|
-
(0, chai_1.expect)((0,
|
|
165
|
+
(0, chai_1.expect)((0, chat_session_list_components_1.computeVisibleSessionSlots)(10, 10, -5)).to.deep.equal({ activeCount: 0, restoredCount: 0 });
|
|
164
166
|
});
|
|
165
167
|
it('caps active when there are no restored sessions', () => {
|
|
166
|
-
(0, chai_1.expect)((0,
|
|
168
|
+
(0, chai_1.expect)((0, chat_session_list_components_1.computeVisibleSessionSlots)(30, 0, 20)).to.deep.equal({ activeCount: 20, restoredCount: 0 });
|
|
167
169
|
});
|
|
168
170
|
it('shows all active when below the cap and there are no restored sessions', () => {
|
|
169
|
-
(0, chai_1.expect)((0,
|
|
171
|
+
(0, chai_1.expect)((0, chat_session_list_components_1.computeVisibleSessionSlots)(5, 0, 20)).to.deep.equal({ activeCount: 5, restoredCount: 0 });
|
|
170
172
|
});
|
|
171
173
|
it('caps restored when there are no active sessions', () => {
|
|
172
|
-
(0, chai_1.expect)((0,
|
|
174
|
+
(0, chai_1.expect)((0, chat_session_list_components_1.computeVisibleSessionSlots)(0, 30, 20)).to.deep.equal({ activeCount: 0, restoredCount: 20 });
|
|
173
175
|
});
|
|
174
176
|
it('reserves up to 5 restored slots when both sections overflow the cap', () => {
|
|
175
177
|
// 5 slots reserved for restored, the remaining 15 go to active.
|
|
176
|
-
(0, chai_1.expect)((0,
|
|
178
|
+
(0, chai_1.expect)((0, chat_session_list_components_1.computeVisibleSessionSlots)(20, 10, 20)).to.deep.equal({ activeCount: 15, restoredCount: 5 });
|
|
177
179
|
});
|
|
178
180
|
it('only reserves as many restored slots as there are restored sessions', () => {
|
|
179
181
|
// Just 3 restored exist, so active gets the other 17.
|
|
180
|
-
(0, chai_1.expect)((0,
|
|
182
|
+
(0, chai_1.expect)((0, chat_session_list_components_1.computeVisibleSessionSlots)(20, 3, 20)).to.deep.equal({ activeCount: 17, restoredCount: 3 });
|
|
181
183
|
});
|
|
182
184
|
it('gives leftover slots to restored when active does not fill its share', () => {
|
|
183
185
|
// Total (12) fits under the cap, so everything is shown.
|
|
184
|
-
(0, chai_1.expect)((0,
|
|
186
|
+
(0, chai_1.expect)((0, chat_session_list_components_1.computeVisibleSessionSlots)(2, 10, 20)).to.deep.equal({ activeCount: 2, restoredCount: 10 });
|
|
185
187
|
});
|
|
186
188
|
it('shows everything when the cap exceeds the total', () => {
|
|
187
|
-
(0, chai_1.expect)((0,
|
|
189
|
+
(0, chai_1.expect)((0, chat_session_list_components_1.computeVisibleSessionSlots)(2, 2, 20)).to.deep.equal({ activeCount: 2, restoredCount: 2 });
|
|
188
190
|
});
|
|
189
191
|
it('keeps a restored slot even when the cap is 1 and both sections are non-empty', () => {
|
|
190
|
-
(0, chai_1.expect)((0,
|
|
192
|
+
(0, chai_1.expect)((0, chat_session_list_components_1.computeVisibleSessionSlots)(10, 10, 1)).to.deep.equal({ activeCount: 0, restoredCount: 1 });
|
|
191
193
|
});
|
|
192
194
|
it('splits a cap of 2 evenly between both sections', () => {
|
|
193
|
-
(0, chai_1.expect)((0,
|
|
195
|
+
(0, chai_1.expect)((0, chat_session_list_components_1.computeVisibleSessionSlots)(10, 10, 2)).to.deep.equal({ activeCount: 1, restoredCount: 1 });
|
|
194
196
|
});
|
|
195
197
|
});
|
|
196
198
|
describe('getSections', () => {
|
|
197
|
-
class
|
|
199
|
+
class SectionsTestService extends chat_session_list_service_1.ChatSessionListService {
|
|
198
200
|
constructor(sessions, persistedSessions) {
|
|
199
201
|
super();
|
|
200
202
|
this.chatService = { getSessions: () => sessions };
|
|
@@ -205,7 +207,6 @@ describe('ChatSessionsWelcomeMessageProvider', () => {
|
|
|
205
207
|
}
|
|
206
208
|
}
|
|
207
209
|
function makeSession(id, title, opts) {
|
|
208
|
-
const requests = opts?.lastRequest ? [{ response: opts.lastRequest }] : [];
|
|
209
210
|
return {
|
|
210
211
|
id,
|
|
211
212
|
title,
|
|
@@ -214,7 +215,8 @@ describe('ChatSessionsWelcomeMessageProvider', () => {
|
|
|
214
215
|
pinnedAgent: opts?.pinnedAgentId ? { id: opts.pinnedAgentId } : undefined,
|
|
215
216
|
model: {
|
|
216
217
|
location: opts?.location ?? ai_chat_1.ChatAgentLocation.Panel,
|
|
217
|
-
|
|
218
|
+
status: opts?.status ?? 'idle',
|
|
219
|
+
getRequests: () => []
|
|
218
220
|
}
|
|
219
221
|
};
|
|
220
222
|
}
|
|
@@ -222,7 +224,7 @@ describe('ChatSessionsWelcomeMessageProvider', () => {
|
|
|
222
224
|
return { sessionId, title: sessionId, saveDate, location: ai_chat_1.ChatAgentLocation.Panel };
|
|
223
225
|
}
|
|
224
226
|
function getSections(sessions, persistedSessions) {
|
|
225
|
-
return new
|
|
227
|
+
return new SectionsTestService(sessions, persistedSessions).sections();
|
|
226
228
|
}
|
|
227
229
|
it('excludes active sessions without a title', () => {
|
|
228
230
|
const sections = getSections([
|
|
@@ -244,11 +246,11 @@ describe('ChatSessionsWelcomeMessageProvider', () => {
|
|
|
244
246
|
(0, chai_1.expect)(sections.active.map(s => s.sessionId)).to.deep.equal(['a']);
|
|
245
247
|
(0, chai_1.expect)(sections.restored.map(s => s.sessionId)).to.deep.equal(['b']);
|
|
246
248
|
});
|
|
247
|
-
it('flags an active session whose
|
|
249
|
+
it('flags an active session whose status is failed', () => {
|
|
248
250
|
const sections = getSections([
|
|
249
|
-
makeSession('ok', 'Ok', {
|
|
250
|
-
makeSession('err', 'Err', {
|
|
251
|
-
makeSession('running', 'Running', {
|
|
251
|
+
makeSession('ok', 'Ok', { status: 'idle' }),
|
|
252
|
+
makeSession('err', 'Err', { status: 'failed' }),
|
|
253
|
+
makeSession('running', 'Running', { status: 'running' })
|
|
252
254
|
], []);
|
|
253
255
|
const byId = new Map(sections.active.map(s => [s.sessionId, s.hasError]));
|
|
254
256
|
(0, chai_1.expect)(byId.get('ok')).to.equal(false);
|
|
@@ -263,5 +265,97 @@ describe('ChatSessionsWelcomeMessageProvider', () => {
|
|
|
263
265
|
(0, chai_1.expect)(sections.active[0].location).to.equal(ai_chat_1.ChatAgentLocation.Panel);
|
|
264
266
|
});
|
|
265
267
|
});
|
|
268
|
+
describe('session hierarchy', () => {
|
|
269
|
+
class HierarchyTestService extends chat_session_list_service_1.ChatSessionListService {
|
|
270
|
+
constructor(chatService, persistedSessions = []) {
|
|
271
|
+
super();
|
|
272
|
+
this.chatService = chatService;
|
|
273
|
+
this._persistedSessions = persistedSessions;
|
|
274
|
+
}
|
|
275
|
+
rows(sections) {
|
|
276
|
+
return this.buildRows(sections);
|
|
277
|
+
}
|
|
278
|
+
subtreeRequiresAction(row) {
|
|
279
|
+
return this.descendantRequiresAction(row);
|
|
280
|
+
}
|
|
281
|
+
expand(session) {
|
|
282
|
+
this.expandAncestors(session);
|
|
283
|
+
}
|
|
284
|
+
get expanded() {
|
|
285
|
+
return this.expandedRoots;
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
function meta(sessionId, opts) {
|
|
289
|
+
return {
|
|
290
|
+
sessionId,
|
|
291
|
+
title: sessionId,
|
|
292
|
+
saveDate: 0,
|
|
293
|
+
location: ai_chat_1.ChatAgentLocation.Panel,
|
|
294
|
+
rootSessionId: opts?.rootSessionId,
|
|
295
|
+
parentSessionId: opts?.parentSessionId
|
|
296
|
+
};
|
|
297
|
+
}
|
|
298
|
+
function loadedSession(id, status, opts) {
|
|
299
|
+
return {
|
|
300
|
+
id,
|
|
301
|
+
rootSessionId: opts?.rootSessionId,
|
|
302
|
+
parentSessionId: opts?.parentSessionId,
|
|
303
|
+
model: { status }
|
|
304
|
+
};
|
|
305
|
+
}
|
|
306
|
+
function findRow(rows, sessionId) {
|
|
307
|
+
const row = rows.find(r => r.session.sessionId === sessionId);
|
|
308
|
+
(0, chai_1.expect)(row, `row ${sessionId}`).to.not.be.undefined;
|
|
309
|
+
return row;
|
|
310
|
+
}
|
|
311
|
+
it('nests a restored A -> B hierarchy with an active C under the root', () => {
|
|
312
|
+
const service = new HierarchyTestService({ getSession: () => undefined });
|
|
313
|
+
const sections = {
|
|
314
|
+
active: [meta('C', { rootSessionId: 'A', parentSessionId: 'B' })],
|
|
315
|
+
restored: [meta('A'), meta('B', { rootSessionId: 'A', parentSessionId: 'A' })]
|
|
316
|
+
};
|
|
317
|
+
const rows = service.rows(sections);
|
|
318
|
+
const rowA = findRow(rows, 'A');
|
|
319
|
+
(0, chai_1.expect)(rowA.isRestored).to.equal(true);
|
|
320
|
+
(0, chai_1.expect)(rowA.childSessions.map(c => c.session.sessionId)).to.deep.equal(['B']);
|
|
321
|
+
const rowB = rowA.childSessions[0];
|
|
322
|
+
(0, chai_1.expect)(rowB.isRestored).to.equal(true);
|
|
323
|
+
(0, chai_1.expect)(rowB.childSessions.map(c => c.session.sessionId)).to.deep.equal(['C']);
|
|
324
|
+
(0, chai_1.expect)(rowB.childSessions[0].isRestored).to.equal(false);
|
|
325
|
+
});
|
|
326
|
+
it('propagates a deep descendant needing action up the tree', () => {
|
|
327
|
+
// Only the leaf C awaits input; both B and the root A must report a descendant needing action.
|
|
328
|
+
const chatService = {
|
|
329
|
+
getSession: (id) => id === 'C' ? loadedSession('C', 'awaitingInput') : loadedSession(id, 'idle')
|
|
330
|
+
};
|
|
331
|
+
const service = new HierarchyTestService(chatService);
|
|
332
|
+
const sections = {
|
|
333
|
+
active: [meta('C', { rootSessionId: 'A', parentSessionId: 'B' })],
|
|
334
|
+
restored: [meta('A'), meta('B', { rootSessionId: 'A', parentSessionId: 'A' })]
|
|
335
|
+
};
|
|
336
|
+
const rows = service.rows(sections);
|
|
337
|
+
const rowA = findRow(rows, 'A');
|
|
338
|
+
const rowB = rowA.childSessions[0];
|
|
339
|
+
const rowC = rowB.childSessions[0];
|
|
340
|
+
(0, chai_1.expect)(service.subtreeRequiresAction(rowA)).to.equal(true);
|
|
341
|
+
(0, chai_1.expect)(service.subtreeRequiresAction(rowB)).to.equal(true);
|
|
342
|
+
(0, chai_1.expect)(service.subtreeRequiresAction(rowC)).to.equal(false);
|
|
343
|
+
});
|
|
344
|
+
it('expands every ancestor of a session that needs action, falling back to persisted-only ancestors', () => {
|
|
345
|
+
// C is loaded and awaiting input; its ancestors B and A exist only in the persisted index
|
|
346
|
+
// (e.g. C was opened directly from "Browse all chats"). The walk must reach the root A, not
|
|
347
|
+
// stop at the first ancestor `getSession` cannot resolve.
|
|
348
|
+
const c = loadedSession('C', 'awaitingInput', { rootSessionId: 'A', parentSessionId: 'B' });
|
|
349
|
+
const chatService = {
|
|
350
|
+
getSession: (id) => id === 'C' ? c : undefined
|
|
351
|
+
};
|
|
352
|
+
const service = new HierarchyTestService(chatService, [
|
|
353
|
+
meta('A'),
|
|
354
|
+
meta('B', { rootSessionId: 'A', parentSessionId: 'A' })
|
|
355
|
+
]);
|
|
356
|
+
service.expand(c);
|
|
357
|
+
(0, chai_1.expect)([...service.expanded].sort()).to.deep.equal(['A', 'B']);
|
|
358
|
+
});
|
|
359
|
+
});
|
|
266
360
|
});
|
|
267
|
-
//# sourceMappingURL=chat-
|
|
361
|
+
//# sourceMappingURL=chat-session-list-service.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-session-list-service.spec.js","sourceRoot":"","sources":["../../src/browser/chat-session-list-service.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,10 +8,10 @@ import { Disposable } from '@theia/core';
|
|
|
8
8
|
export interface SessionTooltip extends Disposable {
|
|
9
9
|
element: HTMLElement;
|
|
10
10
|
}
|
|
11
|
-
export declare function buildSessionTooltip(session: ChatSession, metadata: ChatSessionMetadata, agentService: ChatAgentService, markdownRenderer: MarkdownRenderer, isUnread: boolean,
|
|
11
|
+
export declare function buildSessionTooltip(session: ChatSession, metadata: ChatSessionMetadata, agentService: ChatAgentService, markdownRenderer: MarkdownRenderer, isUnread: boolean, descendantNeedsAttention?: boolean): SessionTooltip;
|
|
12
12
|
/**
|
|
13
13
|
* Build a tooltip for a session that hasn't been loaded yet (i.e. a restored / persisted entry
|
|
14
14
|
* shown on the home view). Avoids any restore I/O so hover does not promote the item to Active.
|
|
15
15
|
*/
|
|
16
|
-
export declare function buildRestoredSessionTooltip(metadata: ChatSessionMetadata, agentService: ChatAgentService): SessionTooltip;
|
|
16
|
+
export declare function buildRestoredSessionTooltip(metadata: ChatSessionMetadata, agentService: ChatAgentService, descendantNeedsAttention?: boolean): SessionTooltip;
|
|
17
17
|
//# sourceMappingURL=chat-session-tooltip.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-session-tooltip.d.ts","sourceRoot":"","sources":["../../src/browser/chat-session-tooltip.ts"],"names":[],"mappings":"AAgBA,OAAO,EACH,gBAAgB,EAAyC,WAAW,EAAE,mBAAmB,EAE5F,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,8DAA8D,CAAC;AAEhG,OAAO,EAAE,UAAU,EAAwB,MAAM,aAAa,CAAC;AAK/D;;;GAGG;AACH,MAAM,WAAW,cAAe,SAAQ,UAAU;IAC9C,OAAO,EAAE,WAAW,CAAC;CACxB;AAuDD,wBAAgB,mBAAmB,CAC/B,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,mBAAmB,EACnD,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,EAClE,QAAQ,EAAE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"chat-session-tooltip.d.ts","sourceRoot":"","sources":["../../src/browser/chat-session-tooltip.ts"],"names":[],"mappings":"AAgBA,OAAO,EACH,gBAAgB,EAAyC,WAAW,EAAE,mBAAmB,EAE5F,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,8DAA8D,CAAC;AAEhG,OAAO,EAAE,UAAU,EAAwB,MAAM,aAAa,CAAC;AAK/D;;;GAGG;AACH,MAAM,WAAW,cAAe,SAAQ,UAAU;IAC9C,OAAO,EAAE,WAAW,CAAC;CACxB;AAuDD,wBAAgB,mBAAmB,CAC/B,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,mBAAmB,EACnD,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,EAClE,QAAQ,EAAE,OAAO,EAAE,wBAAwB,GAAE,OAAe,GAC7D,cAAc,CA0GhB;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CACvC,QAAQ,EAAE,mBAAmB,EAAE,YAAY,EAAE,gBAAgB,EAAE,wBAAwB,GAAE,OAAe,GACzG,cAAc,CA6BhB"}
|
|
@@ -71,26 +71,42 @@ function addDefinitionEntry(definitionList, term, detail) {
|
|
|
71
71
|
detailElement.textContent = detail;
|
|
72
72
|
definitionList.appendChild(detailElement);
|
|
73
73
|
}
|
|
74
|
-
function buildSessionTooltip(session, metadata, agentService, markdownRenderer, isUnread,
|
|
74
|
+
function buildSessionTooltip(session, metadata, agentService, markdownRenderer, isUnread, descendantNeedsAttention = false) {
|
|
75
75
|
const toDispose = new core_1.DisposableCollection();
|
|
76
76
|
const requests = session.model.getRequests();
|
|
77
77
|
const lastRequest = requests.at(-1);
|
|
78
|
+
const status = session.model.status;
|
|
78
79
|
const container = document.createElement('div');
|
|
79
80
|
container.className = 'theia-chat-session-tooltip';
|
|
80
|
-
//
|
|
81
|
-
|
|
81
|
+
// Waiting on the user takes precedence over the generic running badge: it signals that the
|
|
82
|
+
// user, not the agent, needs to act.
|
|
83
|
+
if (status === 'awaitingApproval') {
|
|
84
|
+
const badge = document.createElement('div');
|
|
85
|
+
badge.className = 'theia-chat-session-badge-attention-tooltip';
|
|
86
|
+
badge.textContent = nls_1.nls.localize('theia/ai/ide/requiresApproval', 'Requires your approval');
|
|
87
|
+
container.appendChild(badge);
|
|
88
|
+
}
|
|
89
|
+
else if (status === 'awaitingInput') {
|
|
82
90
|
const badge = document.createElement('div');
|
|
83
91
|
badge.className = 'theia-chat-session-badge-attention-tooltip';
|
|
84
92
|
badge.textContent = nls_1.nls.localize('theia/ai/ide/waitingForInput', 'Waiting for your input');
|
|
85
93
|
container.appendChild(badge);
|
|
86
94
|
}
|
|
87
|
-
else if (
|
|
95
|
+
else if (descendantNeedsAttention) {
|
|
96
|
+
// The session itself is not awaiting the user, but one of its delegated children is;
|
|
97
|
+
// surface that instead of the generic running badge so the reason is clear.
|
|
98
|
+
const badge = document.createElement('div');
|
|
99
|
+
badge.className = 'theia-chat-session-badge-attention-tooltip';
|
|
100
|
+
badge.textContent = nls_1.nls.localize('theia/ai/ide/childInteractionNeeded', 'A delegated session needs your attention');
|
|
101
|
+
container.appendChild(badge);
|
|
102
|
+
}
|
|
103
|
+
else if (ai_chat_1.ChatSessionStatus.isInProgress(status)) {
|
|
88
104
|
const badge = document.createElement('div');
|
|
89
105
|
badge.className = 'theia-chat-session-badge-running-tooltip';
|
|
90
106
|
badge.textContent = nls_1.nls.localizeByDefault('Running');
|
|
91
107
|
container.appendChild(badge);
|
|
92
108
|
}
|
|
93
|
-
else if (
|
|
109
|
+
else if (status === 'failed') {
|
|
94
110
|
const badge = document.createElement('div');
|
|
95
111
|
badge.className = 'theia-chat-session-badge-error-tooltip';
|
|
96
112
|
badge.textContent = nls_1.nls.localizeByDefault('Error');
|
|
@@ -104,7 +120,7 @@ function buildSessionTooltip(session, metadata, agentService, markdownRenderer,
|
|
|
104
120
|
}
|
|
105
121
|
if (lastRequest) {
|
|
106
122
|
const lastResponse = lastRequest.response;
|
|
107
|
-
const errorText =
|
|
123
|
+
const errorText = status === 'failed' ? getResponseErrorMessage(lastResponse) : undefined;
|
|
108
124
|
if (errorText) {
|
|
109
125
|
const label = document.createElement('div');
|
|
110
126
|
label.className = 'theia-chat-session-tooltip-label';
|
|
@@ -149,7 +165,7 @@ function buildSessionTooltip(session, metadata, agentService, markdownRenderer,
|
|
|
149
165
|
const exchangeLabel = count === 1
|
|
150
166
|
? nls_1.nls.localize('theia/ai/ide/tooltip/oneExchange', '1 exchange')
|
|
151
167
|
: nls_1.nls.localize('theia/ai/ide/tooltip/multipleExchanges', '{0} exchanges', count);
|
|
152
|
-
addDefinitionEntry(definitionList, nls_1.nls.
|
|
168
|
+
addDefinitionEntry(definitionList, nls_1.nls.localizeByDefault('Messages'), exchangeLabel);
|
|
153
169
|
const date = session.lastInteraction ?? new Date(metadata.saveDate);
|
|
154
170
|
addDefinitionEntry(definitionList, nls_1.nls.localize('theia/ai/ide/tooltip/lastActivity', 'Last activity'), date.toLocaleString());
|
|
155
171
|
container.appendChild(definitionList);
|
|
@@ -159,12 +175,19 @@ function buildSessionTooltip(session, metadata, agentService, markdownRenderer,
|
|
|
159
175
|
* Build a tooltip for a session that hasn't been loaded yet (i.e. a restored / persisted entry
|
|
160
176
|
* shown on the home view). Avoids any restore I/O so hover does not promote the item to Active.
|
|
161
177
|
*/
|
|
162
|
-
function buildRestoredSessionTooltip(metadata, agentService) {
|
|
178
|
+
function buildRestoredSessionTooltip(metadata, agentService, descendantNeedsAttention = false) {
|
|
163
179
|
const container = document.createElement('div');
|
|
164
180
|
container.className = 'theia-chat-session-tooltip';
|
|
165
181
|
const badge = document.createElement('div');
|
|
166
|
-
|
|
167
|
-
|
|
182
|
+
if (descendantNeedsAttention) {
|
|
183
|
+
// A persisted parent whose delegated child needs the user; show that rather than "Restored".
|
|
184
|
+
badge.className = 'theia-chat-session-badge-attention-tooltip';
|
|
185
|
+
badge.textContent = nls_1.nls.localize('theia/ai/ide/childInteractionNeeded', 'A delegated session needs your attention');
|
|
186
|
+
}
|
|
187
|
+
else {
|
|
188
|
+
badge.className = 'theia-chat-session-badge-restored-tooltip';
|
|
189
|
+
badge.textContent = nls_1.nls.localize('theia/ai/ide/restoredSession', 'Restored session');
|
|
190
|
+
}
|
|
168
191
|
container.appendChild(badge);
|
|
169
192
|
const definitionList = document.createElement('dl');
|
|
170
193
|
if (metadata.pinnedAgentId) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-session-tooltip.js","sourceRoot":"","sources":["../../src/browser/chat-session-tooltip.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,oDAAoD;AACpD,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;;AA0EhF,
|
|
1
|
+
{"version":3,"file":"chat-session-tooltip.js","sourceRoot":"","sources":["../../src/browser/chat-session-tooltip.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,26 +1,13 @@
|
|
|
1
1
|
import { ChatWelcomeMessageProvider } from '@theia/ai-chat-ui/lib/browser/chat-tree-view';
|
|
2
|
-
import { ChatAgentService, ChatService,
|
|
2
|
+
import { ChatAgentService, ChatService, ChatSessionMetadata } from '@theia/ai-chat';
|
|
3
3
|
import { ChatSessionItemAction, ChatSessionItemActionContribution } from './chat-session-item-action-contribution';
|
|
4
|
+
import { ChatSessionListService } from './chat-session-list-service';
|
|
5
|
+
import { SectionedSessions, SessionRow } from './chat-session-list-components';
|
|
4
6
|
import { FrontendLanguageModelRegistry } from '@theia/ai-core/lib/common';
|
|
5
7
|
import { CommandRegistry, ContributionProvider, Emitter, Event, PreferenceService } from '@theia/core';
|
|
6
8
|
import { ApplicationShell, HoverService } from '@theia/core/lib/browser';
|
|
7
9
|
import { MarkdownRenderer, MarkdownRendererFactory } from '@theia/core/lib/browser/markdown-rendering/markdown-renderer';
|
|
8
10
|
import * as React from '@theia/core/shared/react';
|
|
9
|
-
export interface SectionedSessions {
|
|
10
|
-
active: ChatSessionMetadata[];
|
|
11
|
-
restored: ChatSessionMetadata[];
|
|
12
|
-
}
|
|
13
|
-
export interface VisibleSessionSlots {
|
|
14
|
-
activeCount: number;
|
|
15
|
-
restoredCount: number;
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Allocates the capped number of visible items between the Active and Restored sections of the
|
|
19
|
-
* overview. When both sections are non-empty, up to {@link RESTORED_MIN_RESERVATION} slots are
|
|
20
|
-
* reserved for Restored so active sessions cannot crowd it out entirely. A cap of 0 hides the
|
|
21
|
-
* inline list (every session stays reachable via the "Browse all chats..." link).
|
|
22
|
-
*/
|
|
23
|
-
export declare function computeVisibleSessionSlots(activeTotal: number, restoredTotal: number, maxSessions: number): VisibleSessionSlots;
|
|
24
11
|
export declare class ChatSessionsWelcomeMessageProvider implements ChatWelcomeMessageProvider {
|
|
25
12
|
readonly priority = 50;
|
|
26
13
|
protected readonly chatService: ChatService;
|
|
@@ -32,34 +19,21 @@ export declare class ChatSessionsWelcomeMessageProvider implements ChatWelcomeMe
|
|
|
32
19
|
protected readonly chatSessionItemActionContributions: ContributionProvider<ChatSessionItemActionContribution>;
|
|
33
20
|
protected readonly languageModelRegistry: FrontendLanguageModelRegistry;
|
|
34
21
|
protected readonly shell: ApplicationShell;
|
|
22
|
+
protected readonly sessionListService: ChatSessionListService;
|
|
35
23
|
protected _inputEnabled: boolean;
|
|
36
|
-
|
|
37
|
-
private readonly onUnreadChangedEmitter;
|
|
38
|
-
readonly onUnreadChanged: Event<string>;
|
|
24
|
+
protected _sessionsWidgetAttached: boolean;
|
|
39
25
|
protected _markdownRenderer: MarkdownRenderer | undefined;
|
|
40
26
|
protected get markdownRenderer(): MarkdownRenderer;
|
|
41
|
-
/** Persisted sessions index sorted newest first. May include duplicates of active sessions. */
|
|
42
|
-
protected _persistedSessions: ChatSessionMetadata[];
|
|
43
27
|
protected readonly onStateChangedEmitter: Emitter<void>;
|
|
44
28
|
readonly onStateChanged: Event<void>;
|
|
45
29
|
protected init(): void;
|
|
30
|
+
protected isSessionsWidgetAttached(): boolean;
|
|
46
31
|
protected updateInputEnabled(): Promise<void>;
|
|
47
|
-
protected loadSessions(): Promise<void>;
|
|
48
|
-
protected isPersistenceEnabled(): boolean;
|
|
49
|
-
isUnread(sessionId: string): boolean;
|
|
50
|
-
protected watchSession(session: ChatSession): void;
|
|
51
|
-
protected markSessionRead(sessionId: string): void;
|
|
52
|
-
protected unwatchSession(sessionId: string): void;
|
|
53
|
-
private countCompleted;
|
|
54
|
-
/**
|
|
55
|
-
* Splits sessions into active vs. restored. Active sessions are sourced from
|
|
56
|
-
* `chatService.getSessions()` (in-memory). Restored sessions are the persisted index entries
|
|
57
|
-
* that aren't already loaded as an active session.
|
|
58
|
-
*/
|
|
59
|
-
protected getSections(): SectionedSessions;
|
|
60
32
|
renderWelcomeMessage(): React.ReactNode;
|
|
61
33
|
protected renderSessionsSection(sections: SectionedSessions): React.ReactNode;
|
|
62
|
-
protected
|
|
34
|
+
protected getSessionActions(session: ChatSessionMetadata): ChatSessionItemAction[];
|
|
35
|
+
protected renderSessionRow: (row: SessionRow) => React.ReactNode;
|
|
36
|
+
protected renderSessionRowAtDepth(row: SessionRow, depth: number): React.ReactNode;
|
|
63
37
|
protected handleSessionItemAction: (action: ChatSessionItemAction, session: ChatSessionMetadata) => void;
|
|
64
38
|
protected handleSessionItemClick: (sessionId: string) => Promise<void>;
|
|
65
39
|
protected handleBrowseAllChats: () => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-sessions-welcome-message-provider.d.ts","sourceRoot":"","sources":["../../src/browser/chat-sessions-welcome-message-provider.tsx"],"names":[],"mappings":"AAgBA,OAAO,EAAE,0BAA0B,EAAE,MAAM,8CAA8C,CAAC;AAE1F,OAAO,EACH,gBAAgB,EAAE,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"chat-sessions-welcome-message-provider.d.ts","sourceRoot":"","sources":["../../src/browser/chat-sessions-welcome-message-provider.tsx"],"names":[],"mappings":"AAgBA,OAAO,EAAE,0BAA0B,EAAE,MAAM,8CAA8C,CAAC;AAE1F,OAAO,EACH,gBAAgB,EAAE,WAAW,EAAE,mBAAmB,EACrD,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,qBAAqB,EAAE,iCAAiC,EAAE,MAAM,yCAAyC,CAAC;AACnH,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAgB,MAAM,gCAAgC,CAAC;AAE7F,OAAO,EAAE,6BAA6B,EAAE,MAAM,2BAA2B,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACvG,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEzE,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,8DAA8D,CAAC;AAEzH,OAAO,KAAK,KAAK,MAAM,0BAA0B,CAAC;AAElD,qBACa,kCAAmC,YAAW,0BAA0B;IAEjF,QAAQ,CAAC,QAAQ,MAAM;IAGvB,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAG5C,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAGpD,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAGxD,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAGtD,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IAG9C,SAAS,CAAC,QAAQ,CAAC,uBAAuB,EAAE,uBAAuB,CAAC;IAGpE,SAAS,CAAC,QAAQ,CAAC,kCAAkC,EAAE,oBAAoB,CAAC,iCAAiC,CAAC,CAAC;IAG/G,SAAS,CAAC,QAAQ,CAAC,qBAAqB,EAAE,6BAA6B,CAAC;IAGxE,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;IAG3C,SAAS,CAAC,QAAQ,CAAC,kBAAkB,EAAE,sBAAsB,CAAC;IAE9D,SAAS,CAAC,aAAa,UAAS;IAEhC,SAAS,CAAC,uBAAuB,UAAS;IAE1C,SAAS,CAAC,iBAAiB,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAC1D,SAAS,KAAK,gBAAgB,IAAI,gBAAgB,CAKjD;IAED,SAAS,CAAC,QAAQ,CAAC,qBAAqB,gBAAuB;IAC/D,QAAQ,CAAC,cAAc,EAAE,KAAK,CAAC,IAAI,CAAC,CAAoC;IAGxE,SAAS,CAAC,IAAI,IAAI,IAAI;IAgCtB,SAAS,CAAC,wBAAwB,IAAI,OAAO;cAO7B,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;IAWnD,oBAAoB,IAAI,KAAK,CAAC,SAAS;IAevC,SAAS,CAAC,qBAAqB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,KAAK,CAAC,SAAS;IAkB7E,SAAS,CAAC,iBAAiB,CAAC,OAAO,EAAE,mBAAmB,GAAG,qBAAqB,EAAE;IAQlF,SAAS,CAAC,gBAAgB,GAAI,KAAK,UAAU,KAAG,KAAK,CAAC,SAAS,CAAyC;IAExG,SAAS,CAAC,uBAAuB,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS;IA+BlF,SAAS,CAAC,uBAAuB,GAAI,QAAQ,qBAAqB,EAAE,SAAS,mBAAmB,KAAG,IAAI,CAErG;IAEF,SAAS,CAAC,sBAAsB,GAAU,WAAW,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC,CAGzE;IAEF,SAAS,CAAC,oBAAoB,QAAO,IAAI,CAEvC;CACL"}
|