@theia/ai-chat 1.67.0 → 1.68.0-next.19

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.
Files changed (30) hide show
  1. package/lib/browser/chat-session-store-impl.d.ts +3 -0
  2. package/lib/browser/chat-session-store-impl.d.ts.map +1 -1
  3. package/lib/browser/chat-session-store-impl.js +46 -7
  4. package/lib/browser/chat-session-store-impl.js.map +1 -1
  5. package/lib/browser/chat-session-store-impl.spec.d.ts +2 -0
  6. package/lib/browser/chat-session-store-impl.spec.d.ts.map +1 -0
  7. package/lib/browser/chat-session-store-impl.spec.js +383 -0
  8. package/lib/browser/chat-session-store-impl.spec.js.map +1 -0
  9. package/lib/common/ai-chat-preferences.d.ts +1 -0
  10. package/lib/common/ai-chat-preferences.d.ts.map +1 -1
  11. package/lib/common/ai-chat-preferences.js +10 -1
  12. package/lib/common/ai-chat-preferences.js.map +1 -1
  13. package/lib/common/chat-agents.d.ts +6 -1
  14. package/lib/common/chat-agents.d.ts.map +1 -1
  15. package/lib/common/chat-agents.js +17 -5
  16. package/lib/common/chat-agents.js.map +1 -1
  17. package/lib/common/chat-model-serialization.d.ts +2 -0
  18. package/lib/common/chat-model-serialization.d.ts.map +1 -1
  19. package/lib/common/chat-model-serialization.js.map +1 -1
  20. package/lib/common/chat-model.d.ts +13 -0
  21. package/lib/common/chat-model.d.ts.map +1 -1
  22. package/lib/common/chat-model.js +17 -0
  23. package/lib/common/chat-model.js.map +1 -1
  24. package/package.json +9 -9
  25. package/src/browser/chat-session-store-impl.spec.ts +491 -0
  26. package/src/browser/chat-session-store-impl.ts +49 -7
  27. package/src/common/ai-chat-preferences.ts +10 -0
  28. package/src/common/chat-agents.ts +31 -3
  29. package/src/common/chat-model-serialization.ts +2 -0
  30. package/src/common/chat-model.ts +28 -0
@@ -1,6 +1,7 @@
1
1
  import { FileService } from '@theia/filesystem/lib/browser/file-service';
2
2
  import { WorkspaceService } from '@theia/workspace/lib/browser';
3
3
  import { EnvVariablesServer } from '@theia/core/lib/common/env-variables';
4
+ import { PreferenceService } from '@theia/core/lib/common';
4
5
  import { StorageService } from '@theia/core/lib/browser';
5
6
  import { URI } from '@theia/core';
6
7
  import { ILogger } from '@theia/core/lib/common/logger';
@@ -13,6 +14,7 @@ export declare class ChatSessionStoreImpl implements ChatSessionStore {
13
14
  protected readonly envServer: EnvVariablesServer;
14
15
  protected readonly storageService: StorageService;
15
16
  protected readonly logger: ILogger;
17
+ protected readonly preferenceService: PreferenceService;
16
18
  protected storageRoot?: URI;
17
19
  protected indexCache?: ChatSessionIndex;
18
20
  protected storePromise: Promise<void>;
@@ -27,6 +29,7 @@ export declare class ChatSessionStoreImpl implements ChatSessionStore {
27
29
  protected updateIndex(sessions: ((ChatModelWithMetadata & {
28
30
  saveDate: number;
29
31
  })[])): Promise<void>;
32
+ protected getPersistedSessionLimit(): number;
30
33
  protected trimSessions(): Promise<void>;
31
34
  protected loadIndex(): Promise<ChatSessionIndex>;
32
35
  protected isValidMetadata(metadata: unknown): metadata is ChatSessionMetadata;
@@ -1 +1 @@
1
- {"version":3,"file":"chat-session-store-impl.d.ts","sourceRoot":"","sources":["../../src/browser/chat-session-store-impl.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,WAAW,EAAE,MAAM,4CAA4C,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAElC,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAC9H,OAAO,EAAE,kBAAkB,EAAqB,MAAM,oCAAoC,CAAC;AAK3F,qBACa,oBAAqB,YAAW,gBAAgB;IAEzD,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAG5C,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAGtD,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CAAC;IAGjD,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IAGlD,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAEnC,SAAS,CAAC,WAAW,CAAC,EAAE,GAAG,CAAC;IAC5B,SAAS,CAAC,UAAU,CAAC,EAAE,gBAAgB,CAAC;IACxC,SAAS,CAAC,YAAY,EAAE,OAAO,CAAC,IAAI,CAAC,CAAqB;IAEpD,aAAa,CAAC,GAAG,QAAQ,EAAE,KAAK,CAAC,SAAS,GAAG,qBAAqB,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAgDzF,OAAO,CAAC,uBAAuB;IAIzB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC;IAsBvE,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAsB/C,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAiBjC,eAAe,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAM5C,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;cAWtD,cAAc,IAAI,OAAO,CAAC,GAAG,CAAC;cAiB9B,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC,qBAAqB,GAAG;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;cAkBxF,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;cAqB7B,SAAS,IAAI,OAAO,CAAC,gBAAgB,CAAC;IA8CtD,SAAS,CAAC,eAAe,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,mBAAmB;cAiB7D,SAAS,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAWjE,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,GAAG,kBAAkB;CAa3D"}
1
+ {"version":3,"file":"chat-session-store-impl.d.ts","sourceRoot":"","sources":["../../src/browser/chat-session-store-impl.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,WAAW,EAAE,MAAM,4CAA4C,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAElC,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAE9H,OAAO,EAAE,kBAAkB,EAAqB,MAAM,oCAAoC,CAAC;AAI3F,qBACa,oBAAqB,YAAW,gBAAgB;IAEzD,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAG5C,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAGtD,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CAAC;IAGjD,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IAGlD,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAGnC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAExD,SAAS,CAAC,WAAW,CAAC,EAAE,GAAG,CAAC;IAC5B,SAAS,CAAC,UAAU,CAAC,EAAE,gBAAgB,CAAC;IACxC,SAAS,CAAC,YAAY,EAAE,OAAO,CAAC,IAAI,CAAC,CAAqB;IAEpD,aAAa,CAAC,GAAG,QAAQ,EAAE,KAAK,CAAC,SAAS,GAAG,qBAAqB,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAgDzF,OAAO,CAAC,uBAAuB;IAIzB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC;IAsBvE,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAsB/C,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAiBjC,eAAe,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAM5C,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;cAWtD,cAAc,IAAI,OAAO,CAAC,GAAG,CAAC;cAiB9B,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC,qBAAqB,GAAG;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBxG,SAAS,CAAC,wBAAwB,IAAI,MAAM;cAI5B,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;cAuD7B,SAAS,IAAI,OAAO,CAAC,gBAAgB,CAAC;IA8CtD,SAAS,CAAC,eAAe,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,mBAAmB;cAiB7D,SAAS,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAWjE,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,GAAG,kBAAkB;CAa3D"}
@@ -21,12 +21,13 @@ const inversify_1 = require("@theia/core/shared/inversify");
21
21
  const file_service_1 = require("@theia/filesystem/lib/browser/file-service");
22
22
  const browser_1 = require("@theia/workspace/lib/browser");
23
23
  const env_variables_1 = require("@theia/core/lib/common/env-variables");
24
+ const common_1 = require("@theia/core/lib/common");
24
25
  const browser_2 = require("@theia/core/lib/browser");
25
26
  const core_1 = require("@theia/core");
26
27
  const buffer_1 = require("@theia/core/lib/common/buffer");
27
28
  const logger_1 = require("@theia/core/lib/common/logger");
29
+ const ai_chat_preferences_1 = require("../common/ai-chat-preferences");
28
30
  const chat_model_serialization_1 = require("../common/chat-model-serialization");
29
- const MAX_SESSIONS = 25;
30
31
  const INDEX_FILE = 'index.json';
31
32
  let ChatSessionStoreImpl = class ChatSessionStoreImpl {
32
33
  constructor() {
@@ -175,21 +176,55 @@ let ChatSessionStoreImpl = class ChatSessionStoreImpl {
175
176
  }
176
177
  await this.saveIndex(index);
177
178
  }
179
+ getPersistedSessionLimit() {
180
+ return this.preferenceService.get(ai_chat_preferences_1.PERSISTED_SESSION_LIMIT_PREF, 25);
181
+ }
178
182
  async trimSessions() {
183
+ const maxSessions = this.getPersistedSessionLimit();
184
+ // -1 means unlimited, skip trimming
185
+ if (maxSessions === -1) {
186
+ return;
187
+ }
179
188
  const index = await this.loadIndex();
180
189
  const sessions = Object.values(index);
181
- if (sessions.length <= MAX_SESSIONS) {
190
+ // 0 means no persistence - delete all sessions
191
+ if (maxSessions === 0) {
192
+ this.logger.debug('Session persistence disabled, deleting all sessions', { sessionCount: sessions.length });
193
+ for (const session of sessions) {
194
+ const root = await this.getStorageRoot();
195
+ const sessionFile = root.resolve(`${session.sessionId}.json`);
196
+ try {
197
+ await this.fileService.delete(sessionFile);
198
+ }
199
+ catch (e) {
200
+ this.logger.debug('Failed to delete session file', { sessionId: session.sessionId, error: e });
201
+ }
202
+ delete index[session.sessionId];
203
+ }
204
+ await this.saveIndex(index);
205
+ return;
206
+ }
207
+ if (sessions.length <= maxSessions) {
182
208
  return;
183
209
  }
184
- this.logger.debug('Trimming sessions', { currentCount: sessions.length, maxSessions: MAX_SESSIONS });
185
- // Sort by save date
210
+ this.logger.debug('Trimming sessions', { currentCount: sessions.length, maxSessions });
211
+ // Sort by save date (oldest first)
186
212
  sessions.sort((a, b) => a.saveDate - b.saveDate);
187
- // Delete oldest sessions
188
- const sessionsToDelete = sessions.slice(0, sessions.length - MAX_SESSIONS);
213
+ // Delete oldest sessions beyond the limit
214
+ const sessionsToDelete = sessions.slice(0, sessions.length - maxSessions);
189
215
  this.logger.debug('Deleting oldest sessions', { deleteCount: sessionsToDelete.length, sessionIds: sessionsToDelete.map(s => s.sessionId) });
190
216
  for (const session of sessionsToDelete) {
191
- await this.deleteSession(session.sessionId);
217
+ const root = await this.getStorageRoot();
218
+ const sessionFile = root.resolve(`${session.sessionId}.json`);
219
+ try {
220
+ await this.fileService.delete(sessionFile);
221
+ }
222
+ catch (e) {
223
+ this.logger.debug('Failed to delete session file', { sessionId: session.sessionId, error: e });
224
+ }
225
+ delete index[session.sessionId];
192
226
  }
227
+ await this.saveIndex(index);
193
228
  }
194
229
  async loadIndex() {
195
230
  if (this.indexCache) {
@@ -281,6 +316,10 @@ tslib_1.__decorate([
281
316
  (0, inversify_1.named)('ChatSessionStore'),
282
317
  tslib_1.__metadata("design:type", Object)
283
318
  ], ChatSessionStoreImpl.prototype, "logger", void 0);
319
+ tslib_1.__decorate([
320
+ (0, inversify_1.inject)(common_1.PreferenceService),
321
+ tslib_1.__metadata("design:type", Object)
322
+ ], ChatSessionStoreImpl.prototype, "preferenceService", void 0);
284
323
  exports.ChatSessionStoreImpl = ChatSessionStoreImpl = tslib_1.__decorate([
285
324
  (0, inversify_1.injectable)()
286
325
  ], ChatSessionStoreImpl);
@@ -1 +1 @@
1
- {"version":3,"file":"chat-session-store-impl.js","sourceRoot":"","sources":["../../src/browser/chat-session-store-impl.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat-session-store-impl.js","sourceRoot":"","sources":["../../src/browser/chat-session-store-impl.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;;;;AAEhF,4DAAyE;AACzE,6EAAyE;AACzE,0DAAgE;AAChE,wEAA0E;AAC1E,mDAA2D;AAC3D,qDAAyD;AACzD,sCAAkC;AAClC,0DAA6D;AAC7D,0DAAwD;AAGxD,uEAA6E;AAC7E,iFAA2F;AAE3F,MAAM,UAAU,GAAG,YAAY,CAAC;AAGzB,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAA1B;QAqBO,iBAAY,GAAkB,OAAO,CAAC,OAAO,EAAE,CAAC;IAyT9D,CAAC;IAvTG,KAAK,CAAC,aAAa,CAAC,GAAG,QAAkD;QACrE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;YAClD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YACzC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,EAAE,EAAE,aAAa,EAAE,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAElH,0DAA0D;YAC1D,MAAM,gBAAgB,GAAG,QAAQ;iBAC5B,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;iBAC/G,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACrC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,EAAE,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC;YAE5F,kCAAkC;YAClC,KAAK,MAAM,OAAO,IAAI,gBAAgB,EAAE,CAAC;gBACrC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;gBAC7D,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;gBACjD,4CAA4C;gBAC5C,MAAM,IAAI,GAAuB;oBAC7B,OAAO,EAAE,4CAAiB;oBAC1B,KAAK,EAAE,OAAO,CAAC,KAAK;oBACpB,aAAa,EAAE,OAAO,CAAC,aAAa;oBACpC,QAAQ,EAAE,OAAO,CAAC,QAAQ;oBAC1B,KAAK,EAAE,SAAS;iBACnB,CAAC;gBACF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,EAAE;oBACzC,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE;oBAC3B,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,QAAQ,EAAE,WAAW,CAAC,QAAQ,EAAE;oBAChC,YAAY,EAAE,SAAS,CAAC,QAAQ,CAAC,MAAM;oBACvC,aAAa,EAAE,SAAS,CAAC,SAAS,CAAC,MAAM;oBACzC,aAAa,EAAE,IAAI,CAAC,aAAa;oBACjC,OAAO,EAAE,IAAI,CAAC,OAAO;iBACxB,CAAC,CAAC;gBACH,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAC5B,WAAW,EACX,qBAAY,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAC9D,CAAC;YACN,CAAC;YAED,6BAA6B;YAC7B,MAAM,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;YAEzC,uBAAuB;YACvB,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;YAC1B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IAEO,uBAAuB,CAAC,OAA0C;QACtE,OAAO,OAAO,IAAI,OAAO,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,SAAiB;QAC/B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QACzC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,SAAS,OAAO,CAAC,CAAC;QACtD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAEhG,IAAI,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YAC7D,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;YACxD,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;YAC1C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,EAAE;gBAC3C,SAAS;gBACT,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM;gBACxC,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM;gBAC1C,OAAO,EAAE,IAAI,CAAC,OAAO;aACxB,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QAChB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YACrE,OAAO,SAAS,CAAC;QACrB,CAAC;IACL,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,SAAiB;QACjC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;YAClD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YACzC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,SAAS,OAAO,CAAC,CAAC;YACtD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAEvF,IAAI,CAAC;gBACD,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;gBAC3C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;YAC7D,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,+CAA+C,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YAChG,CAAC;YAED,eAAe;YACf,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;YACrC,OAAO,KAAK,CAAC,SAAS,CAAC,CAAC;YACxB,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAC5B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,gBAAgB;QAClB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;YAClD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAEzC,IAAI,CAAC;gBACD,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBACzD,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YAC9C,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,gBAAgB;YACpB,CAAC;YAED,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;YACrB,MAAM,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,eAAe;QACjB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACrC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,EAAE,EAAE,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QAC1F,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,SAAiB,EAAE,KAAa;QAClD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;YAClD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;YACrC,IAAI,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;gBACnB,KAAK,CAAC,SAAS,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC;gBAC/B,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAChC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IAES,KAAK,CAAC,cAAc;QAC1B,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC,WAAW,CAAC;QAC5B,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,CAAC;QACzD,IAAI,CAAC,WAAW,GAAG,IAAI,UAAG,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAE9D,IAAI,CAAC;YACD,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC1D,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,2BAA2B;QAC/B,CAAC;QAED,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IAES,KAAK,CAAC,WAAW,CAAC,QAA4D;QACpF,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QAErC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;YAC5C,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,EAAE,GAAG,OAAO,CAAC;YACvC,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACrC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG;gBACd,GAAG,YAAY;gBACf,SAAS,EAAE,KAAK,CAAC,EAAE;gBACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,GAAG,QAAQ;aACd,CAAC;QACN,CAAC;QAED,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAES,wBAAwB;QAC9B,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAS,kDAA4B,EAAE,EAAE,CAAC,CAAC;IAChF,CAAC;IAES,KAAK,CAAC,YAAY;QACxB,MAAM,WAAW,GAAG,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAEpD,oCAAoC;QACpC,IAAI,WAAW,KAAK,CAAC,CAAC,EAAE,CAAC;YACrB,OAAO;QACX,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACrC,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAEtC,+CAA+C;QAC/C,IAAI,WAAW,KAAK,CAAC,EAAE,CAAC;YACpB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qDAAqD,EAAE,EAAE,YAAY,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;YAC5G,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC7B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBACzC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,SAAS,OAAO,CAAC,CAAC;gBAC9D,IAAI,CAAC;oBACD,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;gBAC/C,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACT,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,+BAA+B,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;gBACnG,CAAC;gBACD,OAAO,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACpC,CAAC;YACD,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAC5B,OAAO;QACX,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,IAAI,WAAW,EAAE,CAAC;YACjC,OAAO;QACX,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE,EAAE,YAAY,EAAE,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;QAEvF,mCAAmC;QACnC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;QAEjD,0CAA0C;QAC1C,MAAM,gBAAgB,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,GAAG,WAAW,CAAC,CAAC;QAC1E,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,EAAE,EAAE,WAAW,EAAE,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAE5I,KAAK,MAAM,OAAO,IAAI,gBAAgB,EAAE,CAAC;YACrC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YACzC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,SAAS,OAAO,CAAC,CAAC;YAC9D,IAAI,CAAC;gBACD,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAC/C,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,+BAA+B,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YACnG,CAAC;YACD,OAAO,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACpC,CAAC;QAED,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAES,KAAK,CAAC,SAAS;QACrB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC,UAAU,CAAC;QAC3B,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAE3C,IAAI,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YAC3D,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;YAEtD,sCAAsC;YACtC,MAAM,cAAc,GAAqB,EAAE,CAAC;YAC5C,IAAI,iBAAiB,GAAG,KAAK,CAAC;YAE9B,KAAK,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC3D,sDAAsD;gBACtD,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACjC,cAAc,CAAC,SAAS,CAAC,GAAG,QAA+B,CAAC;gBAChE,CAAC;qBAAM,CAAC;oBACJ,iBAAiB,GAAG,IAAI,CAAC;oBACzB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8CAA8C,EAAE;wBAC7D,SAAS;wBACT,QAAQ;qBACX,CAAC,CAAC;gBACP,CAAC;YACL,CAAC;YAED,uDAAuD;YACvD,IAAI,iBAAiB,EAAE,CAAC;gBACpB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;gBAC/D,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAC5B,SAAS,EACT,qBAAY,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CACxE,CAAC;YACN,CAAC;YAED,IAAI,CAAC,UAAU,GAAG,cAAc,CAAC;YACjC,OAAO,IAAI,CAAC,UAAU,CAAC;QAC3B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC,UAAU,CAAC;QAC3B,CAAC;IACL,CAAC;IAES,eAAe,CAAC,QAAiB;QACvC,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC5C,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,MAAM,CAAC,GAAG,QAAmC,CAAC;QAE9C,qDAAqD;QACrD,OAAO,OAAO,CAAC,CAAC,SAAS,KAAK,QAAQ;YAClC,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ;YAC3B,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ;YAC9B,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ;YAC9B,uCAAuC;YACvC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;YAClB,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;IAES,KAAK,CAAC,SAAS,CAAC,KAAuB;QAC7C,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAE3C,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAC5B,SAAS,EACT,qBAAY,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAC/D,CAAC;IACN,CAAC;IAES,WAAW,CAAC,IAAa;QAC/B,MAAM,MAAM,GAAG,IAA0B,CAAC;QAE1C,iDAAiD;QACjD,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,GAAG,4CAAiB,EAAE,CAAC;YACvD,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,wBAAwB,MAAM,CAAC,OAAO,4BAA4B,4CAAiB,IAAI;gBACvF,8BAA8B,CACjC,CAAC;QACN,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ,CAAA;AA9UY,oDAAoB;AAEV;IADlB,IAAA,kBAAM,EAAC,0BAAW,CAAC;sCACY,0BAAW;yDAAC;AAGzB;IADlB,IAAA,kBAAM,EAAC,0BAAgB,CAAC;sCACY,0BAAgB;8DAAC;AAGnC;IADlB,IAAA,kBAAM,EAAC,kCAAkB,CAAC;;uDACsB;AAG9B;IADlB,IAAA,kBAAM,EAAC,wBAAc,CAAC;;4DAC2B;AAG/B;IADlB,IAAA,kBAAM,EAAC,gBAAO,CAAC;IAAE,IAAA,iBAAK,EAAC,kBAAkB,CAAC;;oDACR;AAGhB;IADlB,IAAA,kBAAM,EAAC,0BAAiB,CAAC;;+DAC8B;+BAjB/C,oBAAoB;IADhC,IAAA,sBAAU,GAAE;GACA,oBAAoB,CA8UhC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=chat-session-store-impl.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-session-store-impl.spec.d.ts","sourceRoot":"","sources":["../../src/browser/chat-session-store-impl.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,383 @@
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
+ const jsdom_1 = require("@theia/core/lib/browser/test/jsdom");
19
+ let disableJSDOM = (0, jsdom_1.enableJSDOM)();
20
+ const frontend_application_config_provider_1 = require("@theia/core/lib/browser/frontend-application-config-provider");
21
+ frontend_application_config_provider_1.FrontendApplicationConfigProvider.set({});
22
+ const chai_1 = require("chai");
23
+ const sinon = require("sinon");
24
+ const inversify_1 = require("@theia/core/shared/inversify");
25
+ const chat_session_store_impl_1 = require("./chat-session-store-impl");
26
+ const file_service_1 = require("@theia/filesystem/lib/browser/file-service");
27
+ const browser_1 = require("@theia/workspace/lib/browser");
28
+ const env_variables_1 = require("@theia/core/lib/common/env-variables");
29
+ const common_1 = require("@theia/core/lib/common");
30
+ const browser_2 = require("@theia/core/lib/browser");
31
+ const logger_1 = require("@theia/core/lib/common/logger");
32
+ const buffer_1 = require("@theia/core/lib/common/buffer");
33
+ const ai_chat_preferences_1 = require("../common/ai-chat-preferences");
34
+ const chat_agents_1 = require("../common/chat-agents");
35
+ disableJSDOM();
36
+ describe('ChatSessionStoreImpl', () => {
37
+ let sandbox;
38
+ let container;
39
+ let chatSessionStore;
40
+ let mockFileService;
41
+ let mockPreferenceService;
42
+ let mockEnvServer;
43
+ let deletedFiles;
44
+ const STORAGE_ROOT = 'file:///config/chatSessions';
45
+ function createMockSessionMetadata(id, saveDate) {
46
+ return {
47
+ sessionId: id,
48
+ title: `Session ${id}`,
49
+ saveDate,
50
+ location: chat_agents_1.ChatAgentLocation.Panel
51
+ };
52
+ }
53
+ function createMockIndex(sessions) {
54
+ const index = {};
55
+ for (const session of sessions) {
56
+ index[session.sessionId] = session;
57
+ }
58
+ return index;
59
+ }
60
+ before(() => {
61
+ disableJSDOM = (0, jsdom_1.enableJSDOM)();
62
+ });
63
+ after(() => {
64
+ disableJSDOM();
65
+ });
66
+ beforeEach(() => {
67
+ sandbox = sinon.createSandbox();
68
+ deletedFiles = [];
69
+ container = new inversify_1.Container();
70
+ mockFileService = {
71
+ readFile: sandbox.stub(),
72
+ writeFile: sandbox.stub().resolves(),
73
+ delete: sandbox.stub().callsFake(async (uri) => {
74
+ deletedFiles.push(uri.toString());
75
+ }),
76
+ createFolder: sandbox.stub().resolves()
77
+ };
78
+ mockPreferenceService = {
79
+ get: sandbox.stub()
80
+ };
81
+ mockEnvServer = {
82
+ getConfigDirUri: sandbox.stub().resolves('file:///config')
83
+ };
84
+ const mockWorkspaceService = {};
85
+ const mockStorageService = {};
86
+ const mockLogger = {
87
+ debug: sandbox.stub(),
88
+ info: sandbox.stub(),
89
+ warn: sandbox.stub(),
90
+ error: sandbox.stub()
91
+ };
92
+ container.bind(file_service_1.FileService).toConstantValue(mockFileService);
93
+ container.bind(common_1.PreferenceService).toConstantValue(mockPreferenceService);
94
+ container.bind(env_variables_1.EnvVariablesServer).toConstantValue(mockEnvServer);
95
+ container.bind(browser_1.WorkspaceService).toConstantValue(mockWorkspaceService);
96
+ container.bind(browser_2.StorageService).toConstantValue(mockStorageService);
97
+ container.bind('ChatSessionStore').toConstantValue(mockLogger);
98
+ container.bind(logger_1.ILogger).toConstantValue(mockLogger).whenTargetNamed('ChatSessionStore');
99
+ container.bind(chat_session_store_impl_1.ChatSessionStoreImpl).toSelf().inSingletonScope();
100
+ chatSessionStore = container.get(chat_session_store_impl_1.ChatSessionStoreImpl);
101
+ });
102
+ afterEach(() => {
103
+ sandbox.restore();
104
+ });
105
+ describe('trimSessions', () => {
106
+ describe('when persistedSessionLimit is -1 (unlimited)', () => {
107
+ beforeEach(() => {
108
+ mockPreferenceService.get.withArgs(ai_chat_preferences_1.PERSISTED_SESSION_LIMIT_PREF, 25).returns(-1);
109
+ });
110
+ it('should not delete any sessions regardless of count', async () => {
111
+ const sessions = [
112
+ createMockSessionMetadata('session-1', 1000),
113
+ createMockSessionMetadata('session-2', 2000),
114
+ createMockSessionMetadata('session-3', 3000),
115
+ createMockSessionMetadata('session-4', 4000),
116
+ createMockSessionMetadata('session-5', 5000)
117
+ ];
118
+ const index = createMockIndex(sessions);
119
+ mockFileService.readFile.resolves({
120
+ value: buffer_1.BinaryBuffer.fromString(JSON.stringify(index))
121
+ });
122
+ // Access protected method via any
123
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
124
+ await chatSessionStore.trimSessions();
125
+ (0, chai_1.expect)(deletedFiles).to.be.empty;
126
+ (0, chai_1.expect)(mockFileService.delete.called).to.be.false;
127
+ });
128
+ it('should not delete sessions even with 100 sessions', async () => {
129
+ const sessions = Array.from({ length: 100 }, (_, i) => createMockSessionMetadata(`session-${i}`, (i + 1) * 1000));
130
+ const index = createMockIndex(sessions);
131
+ mockFileService.readFile.resolves({
132
+ value: buffer_1.BinaryBuffer.fromString(JSON.stringify(index))
133
+ });
134
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
135
+ await chatSessionStore.trimSessions();
136
+ (0, chai_1.expect)(deletedFiles).to.be.empty;
137
+ });
138
+ });
139
+ describe('when persistedSessionLimit is 0 (no persistence)', () => {
140
+ beforeEach(() => {
141
+ mockPreferenceService.get.withArgs(ai_chat_preferences_1.PERSISTED_SESSION_LIMIT_PREF, 25).returns(0);
142
+ });
143
+ it('should delete all sessions and clear index', async () => {
144
+ const sessions = [
145
+ createMockSessionMetadata('session-1', 1000),
146
+ createMockSessionMetadata('session-2', 2000),
147
+ createMockSessionMetadata('session-3', 3000)
148
+ ];
149
+ const index = createMockIndex(sessions);
150
+ mockFileService.readFile.resolves({
151
+ value: buffer_1.BinaryBuffer.fromString(JSON.stringify(index))
152
+ });
153
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
154
+ await chatSessionStore.trimSessions();
155
+ (0, chai_1.expect)(deletedFiles).to.have.lengthOf(3);
156
+ (0, chai_1.expect)(deletedFiles).to.include(`${STORAGE_ROOT}/session-1.json`);
157
+ (0, chai_1.expect)(deletedFiles).to.include(`${STORAGE_ROOT}/session-2.json`);
158
+ (0, chai_1.expect)(deletedFiles).to.include(`${STORAGE_ROOT}/session-3.json`);
159
+ const savedIndexCall = mockFileService.writeFile.lastCall;
160
+ (0, chai_1.expect)(savedIndexCall).to.not.be.null;
161
+ const savedIndex = JSON.parse(savedIndexCall.args[1].toString());
162
+ (0, chai_1.expect)(Object.keys(savedIndex)).to.have.lengthOf(0);
163
+ });
164
+ it('should handle empty index gracefully', async () => {
165
+ const index = {};
166
+ mockFileService.readFile.resolves({
167
+ value: buffer_1.BinaryBuffer.fromString(JSON.stringify(index))
168
+ });
169
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
170
+ await chatSessionStore.trimSessions();
171
+ (0, chai_1.expect)(deletedFiles).to.be.empty;
172
+ });
173
+ });
174
+ describe('when persistedSessionLimit is positive', () => {
175
+ it('should not trim when session count is within limit', async () => {
176
+ mockPreferenceService.get.withArgs(ai_chat_preferences_1.PERSISTED_SESSION_LIMIT_PREF, 25).returns(5);
177
+ const sessions = [
178
+ createMockSessionMetadata('session-1', 1000),
179
+ createMockSessionMetadata('session-2', 2000),
180
+ createMockSessionMetadata('session-3', 3000)
181
+ ];
182
+ const index = createMockIndex(sessions);
183
+ mockFileService.readFile.resolves({
184
+ value: buffer_1.BinaryBuffer.fromString(JSON.stringify(index))
185
+ });
186
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
187
+ await chatSessionStore.trimSessions();
188
+ (0, chai_1.expect)(deletedFiles).to.be.empty;
189
+ });
190
+ it('should trim oldest sessions when count exceeds limit', async () => {
191
+ mockPreferenceService.get.withArgs(ai_chat_preferences_1.PERSISTED_SESSION_LIMIT_PREF, 25).returns(3);
192
+ const sessions = [
193
+ createMockSessionMetadata('session-1', 1000),
194
+ createMockSessionMetadata('session-2', 2000),
195
+ createMockSessionMetadata('session-3', 3000),
196
+ createMockSessionMetadata('session-4', 4000),
197
+ createMockSessionMetadata('session-5', 5000)
198
+ ];
199
+ const index = createMockIndex(sessions);
200
+ mockFileService.readFile.resolves({
201
+ value: buffer_1.BinaryBuffer.fromString(JSON.stringify(index))
202
+ });
203
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
204
+ await chatSessionStore.trimSessions();
205
+ (0, chai_1.expect)(deletedFiles).to.have.lengthOf(2);
206
+ (0, chai_1.expect)(deletedFiles).to.include(`${STORAGE_ROOT}/session-1.json`);
207
+ (0, chai_1.expect)(deletedFiles).to.include(`${STORAGE_ROOT}/session-2.json`);
208
+ (0, chai_1.expect)(deletedFiles).to.not.include(`${STORAGE_ROOT}/session-3.json`);
209
+ (0, chai_1.expect)(deletedFiles).to.not.include(`${STORAGE_ROOT}/session-4.json`);
210
+ (0, chai_1.expect)(deletedFiles).to.not.include(`${STORAGE_ROOT}/session-5.json`);
211
+ });
212
+ it('should delete sessions in order of saveDate (oldest first)', async () => {
213
+ mockPreferenceService.get.withArgs(ai_chat_preferences_1.PERSISTED_SESSION_LIMIT_PREF, 25).returns(2);
214
+ const sessions = [
215
+ createMockSessionMetadata('session-newest', 5000),
216
+ createMockSessionMetadata('session-middle', 3000),
217
+ createMockSessionMetadata('session-oldest', 1000),
218
+ createMockSessionMetadata('session-second-oldest', 2000)
219
+ ];
220
+ const index = createMockIndex(sessions);
221
+ mockFileService.readFile.resolves({
222
+ value: buffer_1.BinaryBuffer.fromString(JSON.stringify(index))
223
+ });
224
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
225
+ await chatSessionStore.trimSessions();
226
+ (0, chai_1.expect)(deletedFiles).to.have.lengthOf(2);
227
+ (0, chai_1.expect)(deletedFiles).to.include(`${STORAGE_ROOT}/session-oldest.json`);
228
+ (0, chai_1.expect)(deletedFiles).to.include(`${STORAGE_ROOT}/session-second-oldest.json`);
229
+ (0, chai_1.expect)(deletedFiles).to.not.include(`${STORAGE_ROOT}/session-newest.json`);
230
+ (0, chai_1.expect)(deletedFiles).to.not.include(`${STORAGE_ROOT}/session-middle.json`);
231
+ });
232
+ it('should update index after trimming', async () => {
233
+ mockPreferenceService.get.withArgs(ai_chat_preferences_1.PERSISTED_SESSION_LIMIT_PREF, 25).returns(2);
234
+ const sessions = [
235
+ createMockSessionMetadata('session-1', 1000),
236
+ createMockSessionMetadata('session-2', 2000),
237
+ createMockSessionMetadata('session-3', 3000),
238
+ createMockSessionMetadata('session-4', 4000)
239
+ ];
240
+ const index = createMockIndex(sessions);
241
+ mockFileService.readFile.resolves({
242
+ value: buffer_1.BinaryBuffer.fromString(JSON.stringify(index))
243
+ });
244
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
245
+ await chatSessionStore.trimSessions();
246
+ const savedIndexCall = mockFileService.writeFile.lastCall;
247
+ (0, chai_1.expect)(savedIndexCall).to.not.be.null;
248
+ const savedIndex = JSON.parse(savedIndexCall.args[1].toString());
249
+ (0, chai_1.expect)(Object.keys(savedIndex)).to.have.lengthOf(2);
250
+ (0, chai_1.expect)(savedIndex['session-3']).to.not.be.undefined;
251
+ (0, chai_1.expect)(savedIndex['session-4']).to.not.be.undefined;
252
+ (0, chai_1.expect)(savedIndex['session-1']).to.be.undefined;
253
+ (0, chai_1.expect)(savedIndex['session-2']).to.be.undefined;
254
+ });
255
+ it('should trim to exactly the limit (42 session bug scenario)', async () => {
256
+ mockPreferenceService.get.withArgs(ai_chat_preferences_1.PERSISTED_SESSION_LIMIT_PREF, 25).returns(25);
257
+ const sessions = Array.from({ length: 42 }, (_, i) => createMockSessionMetadata(`session-${i}`, (i + 1) * 1000));
258
+ const index = createMockIndex(sessions);
259
+ mockFileService.readFile.resolves({
260
+ value: buffer_1.BinaryBuffer.fromString(JSON.stringify(index))
261
+ });
262
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
263
+ await chatSessionStore.trimSessions();
264
+ (0, chai_1.expect)(deletedFiles).to.have.lengthOf(17);
265
+ for (let i = 0; i < 17; i++) {
266
+ (0, chai_1.expect)(deletedFiles).to.include(`${STORAGE_ROOT}/session-${i}.json`);
267
+ }
268
+ for (let i = 17; i < 42; i++) {
269
+ (0, chai_1.expect)(deletedFiles).to.not.include(`${STORAGE_ROOT}/session-${i}.json`);
270
+ }
271
+ });
272
+ });
273
+ describe('edge cases', () => {
274
+ it('should handle empty session index', async () => {
275
+ mockPreferenceService.get.withArgs(ai_chat_preferences_1.PERSISTED_SESSION_LIMIT_PREF, 25).returns(5);
276
+ const index = {};
277
+ mockFileService.readFile.resolves({
278
+ value: buffer_1.BinaryBuffer.fromString(JSON.stringify(index))
279
+ });
280
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
281
+ await chatSessionStore.trimSessions();
282
+ (0, chai_1.expect)(deletedFiles).to.be.empty;
283
+ });
284
+ it('should handle sessions exactly at limit', async () => {
285
+ mockPreferenceService.get.withArgs(ai_chat_preferences_1.PERSISTED_SESSION_LIMIT_PREF, 25).returns(3);
286
+ const sessions = [
287
+ createMockSessionMetadata('session-1', 1000),
288
+ createMockSessionMetadata('session-2', 2000),
289
+ createMockSessionMetadata('session-3', 3000)
290
+ ];
291
+ const index = createMockIndex(sessions);
292
+ mockFileService.readFile.resolves({
293
+ value: buffer_1.BinaryBuffer.fromString(JSON.stringify(index))
294
+ });
295
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
296
+ await chatSessionStore.trimSessions();
297
+ (0, chai_1.expect)(deletedFiles).to.be.empty;
298
+ });
299
+ it('should handle limit of 1', async () => {
300
+ mockPreferenceService.get.withArgs(ai_chat_preferences_1.PERSISTED_SESSION_LIMIT_PREF, 25).returns(1);
301
+ const sessions = [
302
+ createMockSessionMetadata('session-1', 1000),
303
+ createMockSessionMetadata('session-2', 2000),
304
+ createMockSessionMetadata('session-3', 3000)
305
+ ];
306
+ const index = createMockIndex(sessions);
307
+ mockFileService.readFile.resolves({
308
+ value: buffer_1.BinaryBuffer.fromString(JSON.stringify(index))
309
+ });
310
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
311
+ await chatSessionStore.trimSessions();
312
+ (0, chai_1.expect)(deletedFiles).to.have.lengthOf(2);
313
+ (0, chai_1.expect)(deletedFiles).to.include(`${STORAGE_ROOT}/session-1.json`);
314
+ (0, chai_1.expect)(deletedFiles).to.include(`${STORAGE_ROOT}/session-2.json`);
315
+ (0, chai_1.expect)(deletedFiles).to.not.include(`${STORAGE_ROOT}/session-3.json`);
316
+ });
317
+ it('should handle file deletion errors gracefully', async () => {
318
+ mockPreferenceService.get.withArgs(ai_chat_preferences_1.PERSISTED_SESSION_LIMIT_PREF, 25).returns(2);
319
+ const sessions = [
320
+ createMockSessionMetadata('session-1', 1000),
321
+ createMockSessionMetadata('session-2', 2000),
322
+ createMockSessionMetadata('session-3', 3000)
323
+ ];
324
+ const index = createMockIndex(sessions);
325
+ mockFileService.readFile.resolves({
326
+ value: buffer_1.BinaryBuffer.fromString(JSON.stringify(index))
327
+ });
328
+ mockFileService.delete.rejects(new Error('File not found'));
329
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
330
+ await chatSessionStore.trimSessions();
331
+ const savedIndexCall = mockFileService.writeFile.lastCall;
332
+ const savedIndex = JSON.parse(savedIndexCall.args[1].toString());
333
+ (0, chai_1.expect)(Object.keys(savedIndex)).to.have.lengthOf(2);
334
+ });
335
+ it('should handle sessions with equal save dates', async () => {
336
+ mockPreferenceService.get.withArgs(ai_chat_preferences_1.PERSISTED_SESSION_LIMIT_PREF, 25).returns(2);
337
+ const sessions = [
338
+ createMockSessionMetadata('session-a', 1000),
339
+ createMockSessionMetadata('session-b', 1000),
340
+ createMockSessionMetadata('session-c', 2000),
341
+ createMockSessionMetadata('session-d', 2000)
342
+ ];
343
+ const index = createMockIndex(sessions);
344
+ mockFileService.readFile.resolves({
345
+ value: buffer_1.BinaryBuffer.fromString(JSON.stringify(index))
346
+ });
347
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
348
+ await chatSessionStore.trimSessions();
349
+ (0, chai_1.expect)(deletedFiles).to.have.lengthOf(2);
350
+ const savedIndexCall = mockFileService.writeFile.lastCall;
351
+ const savedIndex = JSON.parse(savedIndexCall.args[1].toString());
352
+ (0, chai_1.expect)(Object.keys(savedIndex)).to.have.lengthOf(2);
353
+ });
354
+ });
355
+ });
356
+ describe('getPersistedSessionLimit', () => {
357
+ it('should return -1 for unlimited sessions', () => {
358
+ mockPreferenceService.get.withArgs(ai_chat_preferences_1.PERSISTED_SESSION_LIMIT_PREF, 25).returns(-1);
359
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
360
+ const result = chatSessionStore.getPersistedSessionLimit();
361
+ (0, chai_1.expect)(result).to.equal(-1);
362
+ });
363
+ it('should return 0 for no persistence', () => {
364
+ mockPreferenceService.get.withArgs(ai_chat_preferences_1.PERSISTED_SESSION_LIMIT_PREF, 25).returns(0);
365
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
366
+ const result = chatSessionStore.getPersistedSessionLimit();
367
+ (0, chai_1.expect)(result).to.equal(0);
368
+ });
369
+ it('should return default value of 25', () => {
370
+ mockPreferenceService.get.withArgs(ai_chat_preferences_1.PERSISTED_SESSION_LIMIT_PREF, 25).returns(25);
371
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
372
+ const result = chatSessionStore.getPersistedSessionLimit();
373
+ (0, chai_1.expect)(result).to.equal(25);
374
+ });
375
+ it('should return custom positive value', () => {
376
+ mockPreferenceService.get.withArgs(ai_chat_preferences_1.PERSISTED_SESSION_LIMIT_PREF, 25).returns(100);
377
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
378
+ const result = chatSessionStore.getPersistedSessionLimit();
379
+ (0, chai_1.expect)(result).to.equal(100);
380
+ });
381
+ });
382
+ });
383
+ //# sourceMappingURL=chat-session-store-impl.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-session-store-impl.spec.js","sourceRoot":"","sources":["../../src/browser/chat-session-store-impl.spec.ts"],"names":[],"mappings":"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"}
@@ -2,5 +2,6 @@ import { PreferenceSchema } from '@theia/core';
2
2
  export declare const DEFAULT_CHAT_AGENT_PREF = "ai-features.chat.defaultChatAgent";
3
3
  export declare const PIN_CHAT_AGENT_PREF = "ai-features.chat.pinChatAgent";
4
4
  export declare const BYPASS_MODEL_REQUIREMENT_PREF = "ai-features.chat.bypassModelRequirement";
5
+ export declare const PERSISTED_SESSION_LIMIT_PREF = "ai-features.chat.persistedSessionLimit";
5
6
  export declare const aiChatPreferences: PreferenceSchema;
6
7
  //# sourceMappingURL=ai-chat-preferences.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ai-chat-preferences.d.ts","sourceRoot":"","sources":["../../src/common/ai-chat-preferences.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAO,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,eAAO,MAAM,uBAAuB,sCAAsC,CAAC;AAC3E,eAAO,MAAM,mBAAmB,kCAAkC,CAAC;AACnE,eAAO,MAAM,6BAA6B,4CAA4C,CAAC;AAEvF,eAAO,MAAM,iBAAiB,EAAE,gBAyB/B,CAAC"}
1
+ {"version":3,"file":"ai-chat-preferences.d.ts","sourceRoot":"","sources":["../../src/common/ai-chat-preferences.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAO,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,eAAO,MAAM,uBAAuB,sCAAsC,CAAC;AAC3E,eAAO,MAAM,mBAAmB,kCAAkC,CAAC;AACnE,eAAO,MAAM,6BAA6B,4CAA4C,CAAC;AACvF,eAAO,MAAM,4BAA4B,2CAA2C,CAAC;AAErF,eAAO,MAAM,iBAAiB,EAAE,gBAkC/B,CAAC"}