@theia/ai-chat 1.66.0-next.67 → 1.66.0-next.80
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/agent-delegation-tool.d.ts.map +1 -1
- package/lib/browser/agent-delegation-tool.js +4 -2
- package/lib/browser/agent-delegation-tool.js.map +1 -1
- package/lib/browser/ai-chat-frontend-module.d.ts.map +1 -1
- package/lib/browser/ai-chat-frontend-module.js +15 -0
- package/lib/browser/ai-chat-frontend-module.js.map +1 -1
- package/lib/browser/change-set-file-element-deserializer.d.ts +7 -0
- package/lib/browser/change-set-file-element-deserializer.d.ts.map +1 -0
- package/lib/browser/change-set-file-element-deserializer.js +61 -0
- package/lib/browser/change-set-file-element-deserializer.js.map +1 -0
- package/lib/browser/change-set-file-element.d.ts +2 -0
- package/lib/browser/change-set-file-element.d.ts.map +1 -1
- package/lib/browser/change-set-file-element.js +17 -0
- package/lib/browser/change-set-file-element.js.map +1 -1
- package/lib/browser/chat-session-store-impl.d.ts +36 -0
- package/lib/browser/chat-session-store-impl.d.ts.map +1 -0
- package/lib/browser/chat-session-store-impl.js +287 -0
- package/lib/browser/chat-session-store-impl.js.map +1 -0
- package/lib/common/change-set-element-deserializer.d.ts +30 -0
- package/lib/common/change-set-element-deserializer.d.ts.map +1 -0
- package/lib/common/change-set-element-deserializer.js +81 -0
- package/lib/common/change-set-element-deserializer.js.map +1 -0
- package/lib/common/change-set.d.ts +7 -0
- package/lib/common/change-set.d.ts.map +1 -1
- package/lib/common/change-set.js.map +1 -1
- package/lib/common/chat-auto-save.spec.d.ts +2 -0
- package/lib/common/chat-auto-save.spec.d.ts.map +1 -0
- package/lib/common/chat-auto-save.spec.js +304 -0
- package/lib/common/chat-auto-save.spec.js.map +1 -0
- package/lib/common/chat-content-deserializer.d.ts +161 -0
- package/lib/common/chat-content-deserializer.d.ts.map +1 -0
- package/lib/common/chat-content-deserializer.js +166 -0
- package/lib/common/chat-content-deserializer.js.map +1 -0
- package/lib/common/chat-content-deserializer.spec.d.ts +2 -0
- package/lib/common/chat-content-deserializer.spec.d.ts.map +1 -0
- package/lib/common/chat-content-deserializer.spec.js +307 -0
- package/lib/common/chat-content-deserializer.spec.js.map +1 -0
- package/lib/common/chat-model-serialization.d.ts +110 -0
- package/lib/common/chat-model-serialization.d.ts.map +1 -0
- package/lib/common/chat-model-serialization.js +20 -0
- package/lib/common/chat-model-serialization.js.map +1 -0
- package/lib/common/chat-model-serialization.spec.d.ts +2 -0
- package/lib/common/chat-model-serialization.spec.d.ts.map +1 -0
- package/lib/common/chat-model-serialization.spec.js +278 -0
- package/lib/common/chat-model-serialization.spec.js.map +1 -0
- package/lib/common/chat-model.d.ts +163 -14
- package/lib/common/chat-model.d.ts.map +1 -1
- package/lib/common/chat-model.js +444 -36
- package/lib/common/chat-model.js.map +1 -1
- package/lib/common/chat-service-deletion.spec.d.ts +2 -0
- package/lib/common/chat-service-deletion.spec.d.ts.map +1 -0
- package/lib/common/chat-service-deletion.spec.js +221 -0
- package/lib/common/chat-service-deletion.spec.js.map +1 -0
- package/lib/common/chat-service.d.ts +30 -2
- package/lib/common/chat-service.d.ts.map +1 -1
- package/lib/common/chat-service.js +182 -10
- package/lib/common/chat-service.js.map +1 -1
- package/lib/common/chat-session-store.d.ts +43 -0
- package/lib/common/chat-session-store.d.ts.map +1 -0
- package/lib/common/chat-session-store.js +20 -0
- package/lib/common/chat-session-store.js.map +1 -0
- package/lib/common/index.d.ts +3 -0
- package/lib/common/index.d.ts.map +1 -1
- package/lib/common/index.js +3 -0
- package/lib/common/index.js.map +1 -1
- package/package.json +9 -9
- package/src/browser/agent-delegation-tool.ts +4 -2
- package/src/browser/ai-chat-frontend-module.ts +27 -0
- package/src/browser/change-set-file-element-deserializer.ts +62 -0
- package/src/browser/change-set-file-element.ts +19 -0
- package/src/browser/chat-session-store-impl.ts +326 -0
- package/src/common/change-set-element-deserializer.ts +90 -0
- package/src/common/change-set.ts +8 -0
- package/src/common/chat-auto-save.spec.ts +372 -0
- package/src/common/chat-content-deserializer.spec.ts +375 -0
- package/src/common/chat-content-deserializer.ts +327 -0
- package/src/common/chat-model-serialization.spec.ts +343 -0
- package/src/common/chat-model-serialization.ts +133 -0
- package/src/common/chat-model.ts +644 -41
- package/src/common/chat-service-deletion.spec.ts +269 -0
- package/src/common/chat-service.ts +227 -10
- package/src/common/chat-session-store.ts +63 -0
- package/src/common/index.ts +3 -0
|
@@ -32,6 +32,10 @@ const chat_model_1 = require("./chat-model");
|
|
|
32
32
|
const chat_request_parser_1 = require("./chat-request-parser");
|
|
33
33
|
const chat_session_naming_service_1 = require("./chat-session-naming-service");
|
|
34
34
|
const parsed_chat_request_1 = require("./parsed-chat-request");
|
|
35
|
+
const chat_session_store_1 = require("./chat-session-store");
|
|
36
|
+
const chat_content_deserializer_1 = require("./chat-content-deserializer");
|
|
37
|
+
const change_set_element_deserializer_1 = require("./change-set-element-deserializer");
|
|
38
|
+
const debounce = require("@theia/core/shared/lodash.debounce");
|
|
35
39
|
function isActiveSessionChangedEvent(obj) {
|
|
36
40
|
// eslint-disable-next-line no-null/no-null
|
|
37
41
|
return typeof obj === 'object' && obj !== null && 'type' in obj && obj.type === 'activeChange';
|
|
@@ -74,29 +78,40 @@ let ChatServiceImpl = class ChatServiceImpl {
|
|
|
74
78
|
const model = new chat_model_1.MutableChatModel(location);
|
|
75
79
|
const session = {
|
|
76
80
|
id: model.id,
|
|
81
|
+
lastInteraction: new Date(),
|
|
77
82
|
model,
|
|
78
83
|
isActive: true,
|
|
79
84
|
pinnedAgent
|
|
80
85
|
};
|
|
81
86
|
this._sessions.push(session);
|
|
87
|
+
this.setupAutoSaveForSession(session);
|
|
82
88
|
this.setActiveSession(session.id, options);
|
|
83
89
|
this.onSessionEventEmitter.fire({ type: 'created', sessionId: session.id });
|
|
84
90
|
return session;
|
|
85
91
|
}
|
|
86
|
-
deleteSession(sessionId) {
|
|
92
|
+
async deleteSession(sessionId) {
|
|
87
93
|
var _a;
|
|
88
94
|
const sessionIndex = this._sessions.findIndex(candidate => candidate.id === sessionId);
|
|
89
|
-
|
|
90
|
-
|
|
95
|
+
// If session is in memory, remove it
|
|
96
|
+
if (sessionIndex !== -1) {
|
|
97
|
+
const session = this._sessions[sessionIndex];
|
|
98
|
+
// If the removed session is the active one, set the newest one as active
|
|
99
|
+
if (session.isActive) {
|
|
100
|
+
this.setActiveSession((_a = this._sessions[this._sessions.length - 1]) === null || _a === void 0 ? void 0 : _a.id);
|
|
101
|
+
}
|
|
102
|
+
session.model.dispose();
|
|
103
|
+
this._sessions.splice(sessionIndex, 1);
|
|
104
|
+
this.onSessionEventEmitter.fire({ type: 'deleted', sessionId: sessionId });
|
|
91
105
|
}
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
106
|
+
// Always delete from persistent storage
|
|
107
|
+
if (this.sessionStore) {
|
|
108
|
+
try {
|
|
109
|
+
await this.sessionStore.deleteSession(sessionId);
|
|
110
|
+
}
|
|
111
|
+
catch (error) {
|
|
112
|
+
this.logger.error('Failed to delete session from storage', { sessionId, error });
|
|
113
|
+
}
|
|
96
114
|
}
|
|
97
|
-
session.model.dispose();
|
|
98
|
-
this._sessions.splice(sessionIndex, 1);
|
|
99
|
-
this.onSessionEventEmitter.fire({ type: 'deleted', sessionId: sessionId });
|
|
100
115
|
}
|
|
101
116
|
getActiveSession() {
|
|
102
117
|
const activeSessions = this._sessions.filter(candidate => candidate.isActive);
|
|
@@ -177,6 +192,8 @@ let ChatServiceImpl = class ChatServiceImpl {
|
|
|
177
192
|
namingService.generateChatSessionName(session, otherSessionNames).then(name => {
|
|
178
193
|
if (name && session.title === requestText) {
|
|
179
194
|
session.title = name;
|
|
195
|
+
// Trigger persistence when title changes
|
|
196
|
+
this.saveSession(session.id);
|
|
180
197
|
}
|
|
181
198
|
didGenerateName = true;
|
|
182
199
|
}).catch(error => this.logger.error('Failed to generate chat session name', error));
|
|
@@ -258,6 +275,148 @@ let ChatServiceImpl = class ChatServiceImpl {
|
|
|
258
275
|
var _a;
|
|
259
276
|
(_a = this.getSession(sessionId)) === null || _a === void 0 ? void 0 : _a.model.changeSet.removeElements(uri);
|
|
260
277
|
}
|
|
278
|
+
saveSession(sessionId) {
|
|
279
|
+
var _a;
|
|
280
|
+
if (!this.sessionStore) {
|
|
281
|
+
this.logger.debug('Session store not available, skipping save');
|
|
282
|
+
return;
|
|
283
|
+
}
|
|
284
|
+
const session = this.getSession(sessionId);
|
|
285
|
+
if (!session) {
|
|
286
|
+
this.logger.debug('Session not found, skipping save', { sessionId });
|
|
287
|
+
return;
|
|
288
|
+
}
|
|
289
|
+
// Don't save empty sessions
|
|
290
|
+
if (session.model.isEmpty()) {
|
|
291
|
+
this.logger.debug('Session is empty, skipping save', { sessionId });
|
|
292
|
+
return;
|
|
293
|
+
}
|
|
294
|
+
// Store session with title and pinned agent info
|
|
295
|
+
this.sessionStore.storeSessions({ model: session.model, title: session.title, pinnedAgentId: (_a = session.pinnedAgent) === null || _a === void 0 ? void 0 : _a.id }).catch(error => {
|
|
296
|
+
this.logger.error('Failed to store chat sessions', error);
|
|
297
|
+
});
|
|
298
|
+
}
|
|
299
|
+
/**
|
|
300
|
+
* Set up auto-save for a session by listening to model changes.
|
|
301
|
+
*/
|
|
302
|
+
setupAutoSaveForSession(session) {
|
|
303
|
+
const debouncedSave = debounce(() => this.saveSession(session.id), 500, { maxWait: 5000 });
|
|
304
|
+
session.model.onDidChange(_event => {
|
|
305
|
+
debouncedSave();
|
|
306
|
+
});
|
|
307
|
+
}
|
|
308
|
+
async getOrRestoreSession(sessionId) {
|
|
309
|
+
const existing = this.getSession(sessionId);
|
|
310
|
+
if (existing) {
|
|
311
|
+
this.logger.debug('Session already loaded', { sessionId });
|
|
312
|
+
return existing;
|
|
313
|
+
}
|
|
314
|
+
if (!this.sessionStore) {
|
|
315
|
+
this.logger.debug('Session store not available, cannot restore', { sessionId });
|
|
316
|
+
return undefined;
|
|
317
|
+
}
|
|
318
|
+
this.logger.debug('Restoring session from storage', { sessionId });
|
|
319
|
+
const serialized = await this.sessionStore.readSession(sessionId);
|
|
320
|
+
if (!serialized) {
|
|
321
|
+
this.logger.warn('Session not found in storage', { sessionId });
|
|
322
|
+
return undefined;
|
|
323
|
+
}
|
|
324
|
+
this.logger.debug('Session loaded from storage', {
|
|
325
|
+
sessionId,
|
|
326
|
+
requestCount: serialized.model.requests.length,
|
|
327
|
+
responseCount: serialized.model.responses.length,
|
|
328
|
+
version: serialized.version
|
|
329
|
+
});
|
|
330
|
+
const model = new chat_model_1.MutableChatModel(serialized.model);
|
|
331
|
+
await this.restoreSessionData(model, serialized.model);
|
|
332
|
+
// Determine pinned agent
|
|
333
|
+
const pinnedAgent = serialized.pinnedAgentId
|
|
334
|
+
? this.chatAgentService.getAgent(serialized.pinnedAgentId)
|
|
335
|
+
: undefined;
|
|
336
|
+
// Register as session
|
|
337
|
+
const session = {
|
|
338
|
+
id: sessionId,
|
|
339
|
+
title: serialized.title,
|
|
340
|
+
lastInteraction: new Date(serialized.saveDate),
|
|
341
|
+
model,
|
|
342
|
+
isActive: false,
|
|
343
|
+
pinnedAgent
|
|
344
|
+
};
|
|
345
|
+
this._sessions.push(session);
|
|
346
|
+
this.setupAutoSaveForSession(session);
|
|
347
|
+
this.onSessionEventEmitter.fire({ type: 'created', sessionId: session.id });
|
|
348
|
+
this.logger.debug('Session successfully restored and registered', { sessionId, title: session.title });
|
|
349
|
+
return session;
|
|
350
|
+
}
|
|
351
|
+
async getPersistedSessions() {
|
|
352
|
+
if (!this.sessionStore) {
|
|
353
|
+
return {};
|
|
354
|
+
}
|
|
355
|
+
return this.sessionStore.getSessionIndex();
|
|
356
|
+
}
|
|
357
|
+
/**
|
|
358
|
+
* Deserialize response content and restore changesets.
|
|
359
|
+
* Called after basic chat model structure was created.
|
|
360
|
+
*/
|
|
361
|
+
async restoreSessionData(model, data) {
|
|
362
|
+
var _a;
|
|
363
|
+
this.logger.debug('Restoring dynamic session data', { sessionId: data.sessionId, requestCount: data.requests.length });
|
|
364
|
+
// Process each request for response content and changeset restoration
|
|
365
|
+
// IMPORTANT: Use getAllRequests() to include alternatives, not just active requests
|
|
366
|
+
const requests = model.getAllRequests();
|
|
367
|
+
for (let i = 0; i < requests.length; i++) {
|
|
368
|
+
const requestModel = requests[i];
|
|
369
|
+
this.logger.debug('Restore response content', { requestId: requestModel.id, index: i });
|
|
370
|
+
// Restore response content using deserializer registry
|
|
371
|
+
const respData = data.responses.find(r => r.requestId === requestModel.id);
|
|
372
|
+
if (respData && respData.content.length > 0) {
|
|
373
|
+
const restoredContent = await Promise.all(respData.content.map(contentData => this.deserializerRegistry.deserialize(contentData)));
|
|
374
|
+
restoredContent.forEach(content => requestModel.response.response.addContent(content));
|
|
375
|
+
this.logger.debug('Restored response content', {
|
|
376
|
+
requestId: requestModel.id,
|
|
377
|
+
contentCount: restoredContent.length
|
|
378
|
+
});
|
|
379
|
+
}
|
|
380
|
+
// Restore changeset elements
|
|
381
|
+
const serializedChangeSet = (_a = data.requests.find(r => r.id === requestModel.id)) === null || _a === void 0 ? void 0 : _a.changeSet;
|
|
382
|
+
if (serializedChangeSet && serializedChangeSet.elements && serializedChangeSet.elements.length > 0) {
|
|
383
|
+
// Create a changeset if one doesn't exist
|
|
384
|
+
if (!requestModel.changeSet) {
|
|
385
|
+
requestModel.changeSet = new chat_model_1.ChangeSetImpl();
|
|
386
|
+
}
|
|
387
|
+
await this.restoreChangeSetElements(requestModel, serializedChangeSet.elements, data.sessionId);
|
|
388
|
+
// Restore changeset title
|
|
389
|
+
if (serializedChangeSet.title) {
|
|
390
|
+
requestModel.changeSet.setTitle(serializedChangeSet.title);
|
|
391
|
+
}
|
|
392
|
+
this.logger.debug('Restored changeset', {
|
|
393
|
+
requestId: requestModel.id,
|
|
394
|
+
elementCount: serializedChangeSet.elements.length
|
|
395
|
+
});
|
|
396
|
+
}
|
|
397
|
+
}
|
|
398
|
+
this.logger.debug('Restoring dynamic session data complete', { sessionId: data.sessionId });
|
|
399
|
+
}
|
|
400
|
+
async restoreChangeSetElements(requestModel, elements, sessionId) {
|
|
401
|
+
this.logger.debug('Restoring changeset elements', { requestId: requestModel.id, elementCount: elements.length });
|
|
402
|
+
const context = {
|
|
403
|
+
chatSessionId: sessionId,
|
|
404
|
+
requestId: requestModel.id
|
|
405
|
+
};
|
|
406
|
+
const restoredElements = [];
|
|
407
|
+
for (const elem of elements) {
|
|
408
|
+
const restoredElement = await this.changeSetElementDeserializerRegistry.deserialize(elem, context);
|
|
409
|
+
restoredElements.push(restoredElement);
|
|
410
|
+
}
|
|
411
|
+
// Add elements to the request's changeset
|
|
412
|
+
if (requestModel.changeSet) {
|
|
413
|
+
requestModel.changeSet.addElements(...restoredElements);
|
|
414
|
+
this.logger.debug('Changeset elements restored', { requestId: requestModel.id, elementCount: restoredElements.length });
|
|
415
|
+
}
|
|
416
|
+
else {
|
|
417
|
+
this.logger.warn('Request has no changeset, cannot restore elements', { requestId: requestModel.id });
|
|
418
|
+
}
|
|
419
|
+
}
|
|
261
420
|
};
|
|
262
421
|
exports.ChatServiceImpl = ChatServiceImpl;
|
|
263
422
|
tslib_1.__decorate([
|
|
@@ -296,6 +455,19 @@ tslib_1.__decorate([
|
|
|
296
455
|
(0, inversify_1.inject)(core_1.ILogger),
|
|
297
456
|
tslib_1.__metadata("design:type", Object)
|
|
298
457
|
], ChatServiceImpl.prototype, "logger", void 0);
|
|
458
|
+
tslib_1.__decorate([
|
|
459
|
+
(0, inversify_1.inject)(chat_session_store_1.ChatSessionStore),
|
|
460
|
+
(0, inversify_1.optional)(),
|
|
461
|
+
tslib_1.__metadata("design:type", Object)
|
|
462
|
+
], ChatServiceImpl.prototype, "sessionStore", void 0);
|
|
463
|
+
tslib_1.__decorate([
|
|
464
|
+
(0, inversify_1.inject)(chat_content_deserializer_1.ChatContentDeserializerRegistry),
|
|
465
|
+
tslib_1.__metadata("design:type", Object)
|
|
466
|
+
], ChatServiceImpl.prototype, "deserializerRegistry", void 0);
|
|
467
|
+
tslib_1.__decorate([
|
|
468
|
+
(0, inversify_1.inject)(change_set_element_deserializer_1.ChangeSetElementDeserializerRegistry),
|
|
469
|
+
tslib_1.__metadata("design:type", Object)
|
|
470
|
+
], ChatServiceImpl.prototype, "changeSetElementDeserializerRegistry", void 0);
|
|
299
471
|
exports.ChatServiceImpl = ChatServiceImpl = tslib_1.__decorate([
|
|
300
472
|
(0, inversify_1.injectable)()
|
|
301
473
|
], ChatServiceImpl);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-service.js","sourceRoot":"","sources":["../../src/common/chat-service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"chat-service.js","sourceRoot":"","sources":["../../src/common/chat-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { ChatModel } from './chat-model';
|
|
2
|
+
import { SerializedChatData } from './chat-model-serialization';
|
|
3
|
+
import { ChatAgentLocation } from './chat-agents';
|
|
4
|
+
export declare const ChatSessionStore: unique symbol;
|
|
5
|
+
export interface ChatModelWithMetadata {
|
|
6
|
+
model: ChatModel;
|
|
7
|
+
title?: string;
|
|
8
|
+
pinnedAgentId?: string;
|
|
9
|
+
}
|
|
10
|
+
export interface ChatSessionStore {
|
|
11
|
+
/**
|
|
12
|
+
* Stores the handed over sessions.
|
|
13
|
+
*
|
|
14
|
+
* Might overwrite existing sessions when maximum storage capacity is exceeded.
|
|
15
|
+
*/
|
|
16
|
+
storeSessions(...sessions: Array<ChatModel | ChatModelWithMetadata>): Promise<void>;
|
|
17
|
+
/**
|
|
18
|
+
* Read specified session
|
|
19
|
+
*/
|
|
20
|
+
readSession(sessionId: string): Promise<SerializedChatData | undefined>;
|
|
21
|
+
/**
|
|
22
|
+
* Delete specified session
|
|
23
|
+
*/
|
|
24
|
+
deleteSession(sessionId: string): Promise<void>;
|
|
25
|
+
/**
|
|
26
|
+
* Deletes all sessions
|
|
27
|
+
*/
|
|
28
|
+
clearAllSessions(): Promise<void>;
|
|
29
|
+
/**
|
|
30
|
+
* Get index of all stored sessions
|
|
31
|
+
*/
|
|
32
|
+
getSessionIndex(): Promise<ChatSessionIndex>;
|
|
33
|
+
}
|
|
34
|
+
export interface ChatSessionIndex {
|
|
35
|
+
[sessionId: string]: ChatSessionMetadata;
|
|
36
|
+
}
|
|
37
|
+
export interface ChatSessionMetadata {
|
|
38
|
+
sessionId: string;
|
|
39
|
+
title: string;
|
|
40
|
+
saveDate: number;
|
|
41
|
+
location: ChatAgentLocation;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=chat-session-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-session-store.d.ts","sourceRoot":"","sources":["../../src/common/chat-session-store.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAElD,eAAO,MAAM,gBAAgB,eAA6B,CAAC;AAE3D,MAAM,WAAW,qBAAqB;IAClC,KAAK,EAAE,SAAS,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC7B;;;;OAIG;IACH,aAAa,CAAC,GAAG,QAAQ,EAAE,KAAK,CAAC,SAAS,GAAG,qBAAqB,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpF;;OAEG;IACH,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC,CAAC;IACxE;;OAEG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD;;OAEG;IACH,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC;;OAEG;IACH,eAAe,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAAC;CAChD;AAED,MAAM,WAAW,gBAAgB;IAC7B,CAAC,SAAS,EAAE,MAAM,GAAG,mBAAmB,CAAC;CAC5C;AAED,MAAM,WAAW,mBAAmB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,iBAAiB,CAAC;CAC/B"}
|
|
@@ -0,0 +1,20 @@
|
|
|
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.ChatSessionStore = void 0;
|
|
19
|
+
exports.ChatSessionStore = Symbol('ChatSessionStore');
|
|
20
|
+
//# sourceMappingURL=chat-session-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-session-store.js","sourceRoot":"","sources":["../../src/common/chat-session-store.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;AAMnE,QAAA,gBAAgB,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC"}
|
package/lib/common/index.d.ts
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
export * from './chat-agents';
|
|
2
2
|
export * from './chat-agent-service';
|
|
3
3
|
export * from './chat-model';
|
|
4
|
+
export * from './chat-model-serialization';
|
|
5
|
+
export * from './chat-content-deserializer';
|
|
4
6
|
export * from './chat-model-util';
|
|
5
7
|
export * from './chat-request-parser';
|
|
6
8
|
export * from './chat-service';
|
|
9
|
+
export * from './chat-session-store';
|
|
7
10
|
export * from './custom-chat-agent';
|
|
8
11
|
export * from './parsed-chat-request';
|
|
9
12
|
export * from './context-variables';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":"AAeA,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":"AAeA,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC"}
|
package/lib/common/index.js
CHANGED
|
@@ -19,9 +19,12 @@ const tslib_1 = require("tslib");
|
|
|
19
19
|
tslib_1.__exportStar(require("./chat-agents"), exports);
|
|
20
20
|
tslib_1.__exportStar(require("./chat-agent-service"), exports);
|
|
21
21
|
tslib_1.__exportStar(require("./chat-model"), exports);
|
|
22
|
+
tslib_1.__exportStar(require("./chat-model-serialization"), exports);
|
|
23
|
+
tslib_1.__exportStar(require("./chat-content-deserializer"), exports);
|
|
22
24
|
tslib_1.__exportStar(require("./chat-model-util"), exports);
|
|
23
25
|
tslib_1.__exportStar(require("./chat-request-parser"), exports);
|
|
24
26
|
tslib_1.__exportStar(require("./chat-service"), exports);
|
|
27
|
+
tslib_1.__exportStar(require("./chat-session-store"), exports);
|
|
25
28
|
tslib_1.__exportStar(require("./custom-chat-agent"), exports);
|
|
26
29
|
tslib_1.__exportStar(require("./parsed-chat-request"), exports);
|
|
27
30
|
tslib_1.__exportStar(require("./context-variables"), exports);
|
package/lib/common/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":";;;AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;AAChF,wDAA8B;AAC9B,+DAAqC;AACrC,uDAA6B;AAC7B,4DAAkC;AAClC,gEAAsC;AACtC,yDAA+B;AAC/B,8DAAoC;AACpC,gEAAsC;AACtC,8DAAoC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":";;;AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;AAChF,wDAA8B;AAC9B,+DAAqC;AACrC,uDAA6B;AAC7B,qEAA2C;AAC3C,sEAA4C;AAC5C,4DAAkC;AAClC,gEAAsC;AACtC,yDAA+B;AAC/B,+DAAqC;AACrC,8DAAoC;AACpC,gEAAsC;AACtC,8DAAoC"}
|
package/package.json
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@theia/ai-chat",
|
|
3
|
-
"version": "1.66.0-next.
|
|
3
|
+
"version": "1.66.0-next.80+623c098dc",
|
|
4
4
|
"description": "Theia - AI Chat Extension",
|
|
5
5
|
"dependencies": {
|
|
6
|
-
"@theia/ai-core": "1.66.0-next.
|
|
7
|
-
"@theia/core": "1.66.0-next.
|
|
8
|
-
"@theia/editor": "1.66.0-next.
|
|
9
|
-
"@theia/file-search": "1.66.0-next.
|
|
10
|
-
"@theia/filesystem": "1.66.0-next.
|
|
11
|
-
"@theia/monaco": "1.66.0-next.
|
|
6
|
+
"@theia/ai-core": "1.66.0-next.80+623c098dc",
|
|
7
|
+
"@theia/core": "1.66.0-next.80+623c098dc",
|
|
8
|
+
"@theia/editor": "1.66.0-next.80+623c098dc",
|
|
9
|
+
"@theia/file-search": "1.66.0-next.80+623c098dc",
|
|
10
|
+
"@theia/filesystem": "1.66.0-next.80+623c098dc",
|
|
11
|
+
"@theia/monaco": "1.66.0-next.80+623c098dc",
|
|
12
12
|
"@theia/monaco-editor-core": "1.96.302",
|
|
13
|
-
"@theia/workspace": "1.66.0-next.
|
|
13
|
+
"@theia/workspace": "1.66.0-next.80+623c098dc",
|
|
14
14
|
"js-yaml": "^4.1.0",
|
|
15
15
|
"tslib": "^2.6.2"
|
|
16
16
|
},
|
|
@@ -54,5 +54,5 @@
|
|
|
54
54
|
"nyc": {
|
|
55
55
|
"extends": "../../configs/nyc.json"
|
|
56
56
|
},
|
|
57
|
-
"gitHead": "
|
|
57
|
+
"gitHead": "623c098dc2e331499458d2bdcc67792919335d9c"
|
|
58
58
|
}
|
|
@@ -172,9 +172,11 @@ export class AgentDelegationTool implements ToolProvider {
|
|
|
172
172
|
const result = await response.responseCompleted;
|
|
173
173
|
const stringResult = result.response.asString();
|
|
174
174
|
|
|
175
|
-
// Clean up the session after completion
|
|
175
|
+
// Clean up the session after completion (no need to await)
|
|
176
176
|
const chatService = this.getChatService();
|
|
177
|
-
chatService.deleteSession(newSession.id)
|
|
177
|
+
chatService.deleteSession(newSession.id).catch(error => {
|
|
178
|
+
console.error('Failed to delete delegated session', error);
|
|
179
|
+
});
|
|
178
180
|
|
|
179
181
|
// Return the raw text to the top-level Agent, as a tool result
|
|
180
182
|
return stringResult;
|
|
@@ -59,10 +59,37 @@ import { ImageContextVariableContribution } from './image-context-variable-contr
|
|
|
59
59
|
import { AgentDelegationTool } from './agent-delegation-tool';
|
|
60
60
|
import { ToolConfirmationManager } from './chat-tool-preference-bindings';
|
|
61
61
|
import { bindChatToolPreferences } from '../common/chat-tool-preferences';
|
|
62
|
+
import { ChatSessionStore } from '../common/chat-session-store';
|
|
63
|
+
import { ChatSessionStoreImpl } from './chat-session-store-impl';
|
|
64
|
+
import {
|
|
65
|
+
ChatContentDeserializerContribution,
|
|
66
|
+
ChatContentDeserializerRegistry,
|
|
67
|
+
ChatContentDeserializerRegistryImpl,
|
|
68
|
+
DefaultChatContentDeserializerContribution
|
|
69
|
+
} from '../common/chat-content-deserializer';
|
|
70
|
+
import {
|
|
71
|
+
ChangeSetElementDeserializerContribution,
|
|
72
|
+
ChangeSetElementDeserializerRegistry,
|
|
73
|
+
ChangeSetElementDeserializerRegistryImpl
|
|
74
|
+
} from '../common/change-set-element-deserializer';
|
|
75
|
+
import { ChangeSetFileElementDeserializerContribution } from './change-set-file-element-deserializer';
|
|
62
76
|
|
|
63
77
|
export default new ContainerModule(bind => {
|
|
64
78
|
bindContributionProvider(bind, ChatAgent);
|
|
65
79
|
|
|
80
|
+
bind(ChatContentDeserializerRegistryImpl).toSelf().inSingletonScope();
|
|
81
|
+
bind(ChatContentDeserializerRegistry).toService(ChatContentDeserializerRegistryImpl);
|
|
82
|
+
bindContributionProvider(bind, ChatContentDeserializerContribution);
|
|
83
|
+
bind(ChatContentDeserializerContribution).to(DefaultChatContentDeserializerContribution).inSingletonScope();
|
|
84
|
+
|
|
85
|
+
bind(ChangeSetElementDeserializerRegistryImpl).toSelf().inSingletonScope();
|
|
86
|
+
bind(ChangeSetElementDeserializerRegistry).toService(ChangeSetElementDeserializerRegistryImpl);
|
|
87
|
+
bindContributionProvider(bind, ChangeSetElementDeserializerContribution);
|
|
88
|
+
bind(ChangeSetElementDeserializerContribution).to(ChangeSetFileElementDeserializerContribution).inSingletonScope();
|
|
89
|
+
|
|
90
|
+
bind(ChatSessionStoreImpl).toSelf().inSingletonScope();
|
|
91
|
+
bind(ChatSessionStore).toService(ChatSessionStoreImpl);
|
|
92
|
+
|
|
66
93
|
bind(FrontendChatToolRequestService).toSelf().inSingletonScope();
|
|
67
94
|
bind(ChatToolRequestService).toService(FrontendChatToolRequestService);
|
|
68
95
|
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
// *****************************************************************************
|
|
2
|
+
// Copyright (C) 2025 EclipseSource GmbH.
|
|
3
|
+
//
|
|
4
|
+
// This program and the accompanying materials are made available under the
|
|
5
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
//
|
|
8
|
+
// This Source Code may also be made available under the following Secondary
|
|
9
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
// with the GNU Classpath Exception which is available at
|
|
12
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
//
|
|
14
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
|
+
// *****************************************************************************
|
|
16
|
+
|
|
17
|
+
import { inject, injectable } from '@theia/core/shared/inversify';
|
|
18
|
+
import { URI } from '@theia/core';
|
|
19
|
+
import { ChangeSetElement } from '../common/change-set';
|
|
20
|
+
import { ChangeSetElementDeserializerContribution, ChangeSetElementDeserializerRegistry, ChangeSetDeserializationContext } from '../common/change-set-element-deserializer';
|
|
21
|
+
import { SerializableChangeSetElement, SerializableChangeSetFileElementData } from '../common/chat-model-serialization';
|
|
22
|
+
import { ChangeSetElementArgs, ChangeSetFileElementFactory } from './change-set-file-element';
|
|
23
|
+
|
|
24
|
+
@injectable()
|
|
25
|
+
export class ChangeSetFileElementDeserializerContribution implements ChangeSetElementDeserializerContribution {
|
|
26
|
+
|
|
27
|
+
@inject(ChangeSetFileElementFactory)
|
|
28
|
+
protected readonly fileElementFactory: ChangeSetFileElementFactory;
|
|
29
|
+
|
|
30
|
+
registerDeserializers(registry: ChangeSetElementDeserializerRegistry): void {
|
|
31
|
+
registry.register({
|
|
32
|
+
kind: 'file',
|
|
33
|
+
deserialize: async (serialized: SerializableChangeSetElement, context: ChangeSetDeserializationContext): Promise<ChangeSetElement> => {
|
|
34
|
+
const fileData = serialized.data as SerializableChangeSetFileElementData | undefined;
|
|
35
|
+
|
|
36
|
+
// Create ChangeSetElementArgs with all the necessary data
|
|
37
|
+
const args: ChangeSetElementArgs = {
|
|
38
|
+
uri: new URI(serialized.uri),
|
|
39
|
+
chatSessionId: context.chatSessionId,
|
|
40
|
+
requestId: context.requestId,
|
|
41
|
+
name: serialized.name,
|
|
42
|
+
icon: serialized.icon,
|
|
43
|
+
additionalInfo: serialized.additionalInfo,
|
|
44
|
+
state: serialized.state,
|
|
45
|
+
type: serialized.type,
|
|
46
|
+
data: serialized.data,
|
|
47
|
+
targetState: fileData?.targetState,
|
|
48
|
+
originalState: fileData?.originalState,
|
|
49
|
+
replacements: fileData?.replacements
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
// Create the element using the factory
|
|
53
|
+
const element = this.fileElementFactory(args);
|
|
54
|
+
|
|
55
|
+
// Ensure it's initialized before returning
|
|
56
|
+
await element.ensureInitialized();
|
|
57
|
+
|
|
58
|
+
return element;
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
}
|
|
@@ -33,6 +33,7 @@ import { MonacoTextModelService } from '@theia/monaco/lib/browser/monaco-text-mo
|
|
|
33
33
|
import { insertFinalNewline } from '@theia/monaco/lib/browser/monaco-utilities';
|
|
34
34
|
import { MonacoEditorModel } from '@theia/monaco/lib/browser/monaco-editor-model';
|
|
35
35
|
import { ChangeSetElement } from '../common';
|
|
36
|
+
import { SerializableChangeSetElement } from '../common/chat-model-serialization';
|
|
36
37
|
import { createChangeSetFileUri } from './change-set-file-resource';
|
|
37
38
|
import { ChangeSetFileService } from './change-set-file-service';
|
|
38
39
|
import { Deferred } from '@theia/core/lib/common/promise-util';
|
|
@@ -464,6 +465,24 @@ export class ChangeSetFileElement implements ChangeSetElement {
|
|
|
464
465
|
return !!answer;
|
|
465
466
|
}
|
|
466
467
|
|
|
468
|
+
toSerializable(): SerializableChangeSetElement {
|
|
469
|
+
return {
|
|
470
|
+
kind: 'file',
|
|
471
|
+
uri: this.uri.toString(),
|
|
472
|
+
name: this.name,
|
|
473
|
+
icon: this.icon,
|
|
474
|
+
additionalInfo: this.additionalInfo,
|
|
475
|
+
state: this.state,
|
|
476
|
+
type: this.type,
|
|
477
|
+
data: {
|
|
478
|
+
...this.data,
|
|
479
|
+
targetState: this.elementProps.targetState,
|
|
480
|
+
originalState: this._originalContent,
|
|
481
|
+
replacements: this.replacements
|
|
482
|
+
}
|
|
483
|
+
};
|
|
484
|
+
}
|
|
485
|
+
|
|
467
486
|
dispose(): void {
|
|
468
487
|
this.toDispose.dispose();
|
|
469
488
|
}
|