@theia/ai-chat 1.66.0-next.44 → 1.66.0-next.73

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 (137) hide show
  1. package/lib/browser/agent-delegation-tool.d.ts.map +1 -1
  2. package/lib/browser/agent-delegation-tool.js +4 -2
  3. package/lib/browser/agent-delegation-tool.js.map +1 -1
  4. package/lib/browser/ai-chat-frontend-module.d.ts.map +1 -1
  5. package/lib/browser/ai-chat-frontend-module.js +15 -0
  6. package/lib/browser/ai-chat-frontend-module.js.map +1 -1
  7. package/lib/browser/change-set-file-element-deserializer.d.ts +7 -0
  8. package/lib/browser/change-set-file-element-deserializer.d.ts.map +1 -0
  9. package/lib/browser/change-set-file-element-deserializer.js +61 -0
  10. package/lib/browser/change-set-file-element-deserializer.js.map +1 -0
  11. package/lib/browser/change-set-file-element.d.ts +3 -1
  12. package/lib/browser/change-set-file-element.d.ts.map +1 -1
  13. package/lib/browser/change-set-file-element.js +23 -2
  14. package/lib/browser/change-set-file-element.js.map +1 -1
  15. package/lib/browser/change-set-file-service.d.ts.map +1 -1
  16. package/lib/browser/change-set-file-service.js +2 -2
  17. package/lib/browser/change-set-file-service.js.map +1 -1
  18. package/lib/browser/chat-session-store-impl.d.ts +36 -0
  19. package/lib/browser/chat-session-store-impl.d.ts.map +1 -0
  20. package/lib/browser/chat-session-store-impl.js +287 -0
  21. package/lib/browser/chat-session-store-impl.js.map +1 -0
  22. package/lib/browser/file-chat-variable-contribution.d.ts.map +1 -1
  23. package/lib/browser/file-chat-variable-contribution.js +1 -1
  24. package/lib/browser/file-chat-variable-contribution.js.map +1 -1
  25. package/lib/browser/image-context-variable-contribution.js +1 -1
  26. package/lib/browser/image-context-variable-contribution.js.map +1 -1
  27. package/lib/browser/task-context-service.d.ts.map +1 -1
  28. package/lib/browser/task-context-service.js +8 -2
  29. package/lib/browser/task-context-service.js.map +1 -1
  30. package/lib/browser/task-context-variable.d.ts.map +1 -1
  31. package/lib/browser/task-context-variable.js +7 -3
  32. package/lib/browser/task-context-variable.js.map +1 -1
  33. package/lib/common/change-set-element-deserializer.d.ts +30 -0
  34. package/lib/common/change-set-element-deserializer.d.ts.map +1 -0
  35. package/lib/common/change-set-element-deserializer.js +81 -0
  36. package/lib/common/change-set-element-deserializer.js.map +1 -0
  37. package/lib/common/change-set.d.ts +7 -0
  38. package/lib/common/change-set.d.ts.map +1 -1
  39. package/lib/common/change-set.js +1 -1
  40. package/lib/common/change-set.js.map +1 -1
  41. package/lib/common/chat-agents-variable-contribution.d.ts.map +1 -1
  42. package/lib/common/chat-agents-variable-contribution.js +17 -1
  43. package/lib/common/chat-agents-variable-contribution.js.map +1 -1
  44. package/lib/common/chat-agents.d.ts.map +1 -1
  45. package/lib/common/chat-agents.js +3 -3
  46. package/lib/common/chat-agents.js.map +1 -1
  47. package/lib/common/chat-auto-save.spec.d.ts +2 -0
  48. package/lib/common/chat-auto-save.spec.d.ts.map +1 -0
  49. package/lib/common/chat-auto-save.spec.js +304 -0
  50. package/lib/common/chat-auto-save.spec.js.map +1 -0
  51. package/lib/common/chat-content-deserializer.d.ts +161 -0
  52. package/lib/common/chat-content-deserializer.d.ts.map +1 -0
  53. package/lib/common/chat-content-deserializer.js +166 -0
  54. package/lib/common/chat-content-deserializer.js.map +1 -0
  55. package/lib/common/chat-content-deserializer.spec.d.ts +2 -0
  56. package/lib/common/chat-content-deserializer.spec.d.ts.map +1 -0
  57. package/lib/common/chat-content-deserializer.spec.js +307 -0
  58. package/lib/common/chat-content-deserializer.spec.js.map +1 -0
  59. package/lib/common/chat-model-serialization.d.ts +110 -0
  60. package/lib/common/chat-model-serialization.d.ts.map +1 -0
  61. package/lib/common/chat-model-serialization.js +20 -0
  62. package/lib/common/chat-model-serialization.js.map +1 -0
  63. package/lib/common/chat-model-serialization.spec.d.ts +2 -0
  64. package/lib/common/chat-model-serialization.spec.d.ts.map +1 -0
  65. package/lib/common/chat-model-serialization.spec.js +278 -0
  66. package/lib/common/chat-model-serialization.spec.js.map +1 -0
  67. package/lib/common/chat-model.d.ts +163 -14
  68. package/lib/common/chat-model.d.ts.map +1 -1
  69. package/lib/common/chat-model.js +444 -36
  70. package/lib/common/chat-model.js.map +1 -1
  71. package/lib/common/chat-request-parser.d.ts +8 -1
  72. package/lib/common/chat-request-parser.d.ts.map +1 -1
  73. package/lib/common/chat-request-parser.js +29 -1
  74. package/lib/common/chat-request-parser.js.map +1 -1
  75. package/lib/common/chat-request-parser.spec.js +51 -0
  76. package/lib/common/chat-request-parser.spec.js.map +1 -1
  77. package/lib/common/chat-service-deletion.spec.d.ts +2 -0
  78. package/lib/common/chat-service-deletion.spec.d.ts.map +1 -0
  79. package/lib/common/chat-service-deletion.spec.js +221 -0
  80. package/lib/common/chat-service-deletion.spec.js.map +1 -0
  81. package/lib/common/chat-service.d.ts +30 -2
  82. package/lib/common/chat-service.d.ts.map +1 -1
  83. package/lib/common/chat-service.js +182 -10
  84. package/lib/common/chat-service.js.map +1 -1
  85. package/lib/common/chat-session-naming-service.d.ts.map +1 -1
  86. package/lib/common/chat-session-naming-service.js +11 -3
  87. package/lib/common/chat-session-naming-service.js.map +1 -1
  88. package/lib/common/chat-session-store.d.ts +43 -0
  89. package/lib/common/chat-session-store.d.ts.map +1 -0
  90. package/lib/common/chat-session-store.js +20 -0
  91. package/lib/common/chat-session-store.js.map +1 -0
  92. package/lib/common/chat-session-summary-agent-prompt.js +1 -1
  93. package/lib/common/chat-session-summary-agent-prompt.js.map +1 -1
  94. package/lib/common/chat-session-summary-agent.d.ts.map +1 -1
  95. package/lib/common/chat-session-summary-agent.js +2 -1
  96. package/lib/common/chat-session-summary-agent.js.map +1 -1
  97. package/lib/common/chat-tool-preferences.js +1 -1
  98. package/lib/common/chat-tool-preferences.js.map +1 -1
  99. package/lib/common/image-context-variable.d.ts.map +1 -1
  100. package/lib/common/image-context-variable.js +21 -6
  101. package/lib/common/image-context-variable.js.map +1 -1
  102. package/lib/common/index.d.ts +3 -0
  103. package/lib/common/index.d.ts.map +1 -1
  104. package/lib/common/index.js +3 -0
  105. package/lib/common/index.js.map +1 -1
  106. package/package.json +9 -9
  107. package/src/browser/agent-delegation-tool.ts +4 -2
  108. package/src/browser/ai-chat-frontend-module.ts +27 -0
  109. package/src/browser/change-set-file-element-deserializer.ts +62 -0
  110. package/src/browser/change-set-file-element.ts +29 -4
  111. package/src/browser/change-set-file-service.ts +3 -3
  112. package/src/browser/chat-session-store-impl.ts +326 -0
  113. package/src/browser/file-chat-variable-contribution.ts +2 -2
  114. package/src/browser/image-context-variable-contribution.ts +1 -1
  115. package/src/browser/task-context-service.ts +9 -3
  116. package/src/browser/task-context-variable.ts +8 -3
  117. package/src/common/change-set-element-deserializer.ts +90 -0
  118. package/src/common/change-set.ts +10 -2
  119. package/src/common/chat-agents-variable-contribution.ts +2 -2
  120. package/src/common/chat-agents.ts +4 -4
  121. package/src/common/chat-auto-save.spec.ts +372 -0
  122. package/src/common/chat-content-deserializer.spec.ts +375 -0
  123. package/src/common/chat-content-deserializer.ts +327 -0
  124. package/src/common/chat-model-serialization.spec.ts +343 -0
  125. package/src/common/chat-model-serialization.ts +133 -0
  126. package/src/common/chat-model.ts +644 -41
  127. package/src/common/chat-request-parser.spec.ts +61 -0
  128. package/src/common/chat-request-parser.ts +40 -1
  129. package/src/common/chat-service-deletion.spec.ts +269 -0
  130. package/src/common/chat-service.ts +227 -10
  131. package/src/common/chat-session-naming-service.ts +12 -4
  132. package/src/common/chat-session-store.ts +63 -0
  133. package/src/common/chat-session-summary-agent-prompt.ts +1 -1
  134. package/src/common/chat-session-summary-agent.ts +2 -1
  135. package/src/common/chat-tool-preferences.ts +1 -2
  136. package/src/common/image-context-variable.ts +21 -6
  137. package/src/common/index.ts +3 -0
@@ -0,0 +1,221 @@
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 chai_1 = require("chai");
19
+ const inversify_1 = require("@theia/core/shared/inversify");
20
+ const chat_service_1 = require("./chat-service");
21
+ const chat_session_store_1 = require("./chat-session-store");
22
+ const chat_agent_service_1 = require("./chat-agent-service");
23
+ const chat_request_parser_1 = require("./chat-request-parser");
24
+ const ai_core_1 = require("@theia/ai-core");
25
+ const core_1 = require("@theia/core");
26
+ const chat_content_deserializer_1 = require("./chat-content-deserializer");
27
+ const change_set_element_deserializer_1 = require("./change-set-element-deserializer");
28
+ const chat_agents_1 = require("./chat-agents");
29
+ describe('ChatService Session Deletion', () => {
30
+ let chatService;
31
+ let sessionStore;
32
+ let container;
33
+ class MockChatSessionStore {
34
+ constructor() {
35
+ this.deletedSessions = [];
36
+ this.storedSessions = [];
37
+ }
38
+ async storeSessions(...sessions) {
39
+ this.storedSessions = sessions;
40
+ }
41
+ async readSession(sessionId) {
42
+ return undefined;
43
+ }
44
+ async deleteSession(sessionId) {
45
+ this.deletedSessions.push(sessionId);
46
+ }
47
+ async clearAllSessions() {
48
+ this.deletedSessions = [];
49
+ this.storedSessions = [];
50
+ }
51
+ async getSessionIndex() {
52
+ return {};
53
+ }
54
+ async setSessionTitle(sessionId, title) {
55
+ }
56
+ }
57
+ class MockChatAgentService {
58
+ getAgent() {
59
+ return undefined;
60
+ }
61
+ getAgents() {
62
+ return [];
63
+ }
64
+ }
65
+ class MockChatRequestParser {
66
+ parseChatRequest() {
67
+ return { parts: [], text: '' };
68
+ }
69
+ }
70
+ class MockAIVariableService {
71
+ resolveVariables() {
72
+ return Promise.resolve([]);
73
+ }
74
+ }
75
+ class MockLogger {
76
+ error() { }
77
+ warn() { }
78
+ info() { }
79
+ debug() { }
80
+ }
81
+ beforeEach(() => {
82
+ container = new inversify_1.Container();
83
+ sessionStore = new MockChatSessionStore();
84
+ container.bind(chat_session_store_1.ChatSessionStore).toConstantValue(sessionStore);
85
+ container.bind(chat_agent_service_1.ChatAgentService).toConstantValue(new MockChatAgentService());
86
+ container.bind(chat_request_parser_1.ChatRequestParser).toConstantValue(new MockChatRequestParser());
87
+ container.bind(ai_core_1.AIVariableService).toConstantValue(new MockAIVariableService());
88
+ container.bind(core_1.ILogger).toConstantValue(new MockLogger());
89
+ // Bind deserializer registries
90
+ const contentRegistry = new chat_content_deserializer_1.ChatContentDeserializerRegistryImpl();
91
+ new chat_content_deserializer_1.DefaultChatContentDeserializerContribution().registerDeserializers(contentRegistry);
92
+ container.bind(chat_content_deserializer_1.ChatContentDeserializerRegistry).toConstantValue(contentRegistry);
93
+ container.bind(change_set_element_deserializer_1.ChangeSetElementDeserializerRegistry).toConstantValue(new change_set_element_deserializer_1.ChangeSetElementDeserializerRegistryImpl());
94
+ container.bind(chat_service_1.ChatServiceImpl).toSelf().inSingletonScope();
95
+ chatService = container.get(chat_service_1.ChatServiceImpl);
96
+ });
97
+ describe('deleteSession', () => {
98
+ it('should delete session from memory and persistent storage', async () => {
99
+ // Create a session
100
+ const session = chatService.createSession(chat_agents_1.ChatAgentLocation.Panel);
101
+ (0, chai_1.expect)(chatService.getSessions()).to.have.lengthOf(1);
102
+ // Delete the session (now returns a Promise)
103
+ await chatService.deleteSession(session.id);
104
+ // Verify it's removed from memory
105
+ (0, chai_1.expect)(chatService.getSessions()).to.have.lengthOf(0);
106
+ // Verify it's deleted from persistent storage
107
+ (0, chai_1.expect)(sessionStore.deletedSessions).to.include(session.id);
108
+ });
109
+ it('should emit SessionDeletedEvent when session is deleted', done => {
110
+ // Create a session
111
+ const session = chatService.createSession(chat_agents_1.ChatAgentLocation.Panel);
112
+ // Listen for deletion event
113
+ chatService.onSessionEvent(event => {
114
+ if (event.type === 'deleted') {
115
+ (0, chai_1.expect)(event.sessionId).to.equal(session.id);
116
+ done();
117
+ }
118
+ });
119
+ // Delete the session
120
+ chatService.deleteSession(session.id);
121
+ });
122
+ it('should handle deletion when session store is not available', async () => {
123
+ // Create a new service without session store
124
+ const containerWithoutStore = new inversify_1.Container();
125
+ containerWithoutStore.bind(chat_agent_service_1.ChatAgentService).toConstantValue(new MockChatAgentService());
126
+ containerWithoutStore.bind(chat_request_parser_1.ChatRequestParser).toConstantValue(new MockChatRequestParser());
127
+ containerWithoutStore.bind(ai_core_1.AIVariableService).toConstantValue(new MockAIVariableService());
128
+ containerWithoutStore.bind(core_1.ILogger).toConstantValue(new MockLogger());
129
+ // Bind deserializer registries
130
+ const contentRegistry = new chat_content_deserializer_1.ChatContentDeserializerRegistryImpl();
131
+ new chat_content_deserializer_1.DefaultChatContentDeserializerContribution().registerDeserializers(contentRegistry);
132
+ containerWithoutStore.bind(chat_content_deserializer_1.ChatContentDeserializerRegistry).toConstantValue(contentRegistry);
133
+ containerWithoutStore.bind(change_set_element_deserializer_1.ChangeSetElementDeserializerRegistry).toConstantValue(new change_set_element_deserializer_1.ChangeSetElementDeserializerRegistryImpl());
134
+ containerWithoutStore.bind(chat_service_1.ChatServiceImpl).toSelf().inSingletonScope();
135
+ const serviceWithoutStore = containerWithoutStore.get(chat_service_1.ChatServiceImpl);
136
+ // Create and delete a session - should not throw
137
+ const session = serviceWithoutStore.createSession(chat_agents_1.ChatAgentLocation.Panel);
138
+ await serviceWithoutStore.deleteSession(session.id);
139
+ // Verify session is still removed from memory
140
+ (0, chai_1.expect)(serviceWithoutStore.getSessions()).to.have.lengthOf(0);
141
+ });
142
+ it('should attempt storage deletion even for non-existent in-memory sessions', async () => {
143
+ const initialDeletedCount = sessionStore.deletedSessions.length;
144
+ const nonExistentId = 'non-existent-id';
145
+ // Try to delete non-existent session (could be a persisted-only session)
146
+ await chatService.deleteSession(nonExistentId);
147
+ // Verify storage deletion was attempted even though session not in memory
148
+ (0, chai_1.expect)(sessionStore.deletedSessions).to.include(nonExistentId);
149
+ (0, chai_1.expect)(sessionStore.deletedSessions).to.have.lengthOf(initialDeletedCount + 1);
150
+ });
151
+ it('should handle deleting active session', () => {
152
+ var _a;
153
+ // Create two sessions
154
+ const session1 = chatService.createSession(chat_agents_1.ChatAgentLocation.Panel);
155
+ const session2 = chatService.createSession(chat_agents_1.ChatAgentLocation.Panel);
156
+ // Ensure session2 is active (it should be by default as the latest)
157
+ (0, chai_1.expect)((_a = chatService.getActiveSession()) === null || _a === void 0 ? void 0 : _a.id).to.equal(session2.id);
158
+ // Delete session1 (not active)
159
+ chatService.deleteSession(session1.id);
160
+ // Verify session2 is still active
161
+ const activeSession = chatService.getActiveSession();
162
+ (0, chai_1.expect)(activeSession).to.not.be.undefined;
163
+ (0, chai_1.expect)(activeSession === null || activeSession === void 0 ? void 0 : activeSession.id).to.equal(session2.id);
164
+ });
165
+ it('should handle storage deletion errors gracefully', async () => {
166
+ // Create a session store that throws errors
167
+ const errorStore = new MockChatSessionStore();
168
+ errorStore.deleteSession = async () => {
169
+ throw new Error('Storage error');
170
+ };
171
+ const errorContainer = new inversify_1.Container();
172
+ errorContainer.bind(chat_session_store_1.ChatSessionStore).toConstantValue(errorStore);
173
+ errorContainer.bind(chat_agent_service_1.ChatAgentService).toConstantValue(new MockChatAgentService());
174
+ errorContainer.bind(chat_request_parser_1.ChatRequestParser).toConstantValue(new MockChatRequestParser());
175
+ errorContainer.bind(ai_core_1.AIVariableService).toConstantValue(new MockAIVariableService());
176
+ errorContainer.bind(core_1.ILogger).toConstantValue(new MockLogger());
177
+ // Bind deserializer registries
178
+ const contentRegistry = new chat_content_deserializer_1.ChatContentDeserializerRegistryImpl();
179
+ new chat_content_deserializer_1.DefaultChatContentDeserializerContribution().registerDeserializers(contentRegistry);
180
+ errorContainer.bind(chat_content_deserializer_1.ChatContentDeserializerRegistry).toConstantValue(contentRegistry);
181
+ errorContainer.bind(change_set_element_deserializer_1.ChangeSetElementDeserializerRegistry).toConstantValue(new change_set_element_deserializer_1.ChangeSetElementDeserializerRegistryImpl());
182
+ errorContainer.bind(chat_service_1.ChatServiceImpl).toSelf().inSingletonScope();
183
+ const errorService = errorContainer.get(chat_service_1.ChatServiceImpl);
184
+ // Create and delete a session - should not throw even with storage error
185
+ const session = errorService.createSession(chat_agents_1.ChatAgentLocation.Panel);
186
+ await errorService.deleteSession(session.id);
187
+ // Verify session is still removed from memory despite storage error
188
+ (0, chai_1.expect)(errorService.getSessions()).to.have.lengthOf(0);
189
+ });
190
+ it('should delete persisted-only sessions (not loaded in memory)', async () => {
191
+ // This simulates deleting a session from the "Show Chats..." dialog
192
+ // when the session is persisted but not currently loaded into memory
193
+ const persistedSessionId = 'persisted-session-123';
194
+ // Verify session is not in memory
195
+ (0, chai_1.expect)(chatService.getSessions().find(s => s.id === persistedSessionId)).to.be.undefined;
196
+ // Delete the persisted-only session
197
+ await chatService.deleteSession(persistedSessionId);
198
+ // Verify it was still deleted from storage (even though not in memory)
199
+ (0, chai_1.expect)(sessionStore.deletedSessions).to.include(persistedSessionId);
200
+ });
201
+ it('should not fire SessionDeletedEvent for persisted-only sessions', async () => {
202
+ // When deleting a persisted-only session (not in memory),
203
+ // we shouldn't fire the event since no in-memory state changed
204
+ const persistedSessionId = 'persisted-session-456';
205
+ let eventFired = false;
206
+ // Listen for deletion event
207
+ chatService.onSessionEvent(event => {
208
+ if (event.type === 'deleted' && event.sessionId === persistedSessionId) {
209
+ eventFired = true;
210
+ }
211
+ });
212
+ // Delete the persisted-only session
213
+ await chatService.deleteSession(persistedSessionId);
214
+ // Event should not have been fired since session wasn't in memory
215
+ (0, chai_1.expect)(eventFired).to.be.false;
216
+ // But storage deletion should still have happened
217
+ (0, chai_1.expect)(sessionStore.deletedSessions).to.include(persistedSessionId);
218
+ });
219
+ });
220
+ });
221
+ //# sourceMappingURL=chat-service-deletion.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-service-deletion.spec.js","sourceRoot":"","sources":["../../src/common/chat-service-deletion.spec.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,10 @@ import { ChatContext, ChatModel, ChatRequest, ChatRequestModel, ChatResponseMode
7
7
  import { ChatRequestParser } from './chat-request-parser';
8
8
  import { ChatSessionNamingService } from './chat-session-naming-service';
9
9
  import { ParsedChatRequest, ParsedChatRequestAgentPart } from './parsed-chat-request';
10
+ import { ChatSessionIndex, ChatSessionStore } from './chat-session-store';
11
+ import { ChatContentDeserializerRegistry } from './chat-content-deserializer';
12
+ import { ChangeSetElementDeserializerRegistry } from './change-set-element-deserializer';
13
+ import { SerializableChangeSetElement, SerializedChatModel } from './chat-model-serialization';
10
14
  export interface ChatRequestInvocation {
11
15
  /**
12
16
  * Promise which completes once the request preprocessing is complete.
@@ -71,7 +75,7 @@ export interface ChatService {
71
75
  getSession(id: string): ChatSession | undefined;
72
76
  getSessions(): ChatSession[];
73
77
  createSession(location?: ChatAgentLocation, options?: SessionOptions, pinnedAgent?: ChatAgent): ChatSession;
74
- deleteSession(sessionId: string): void;
78
+ deleteSession(sessionId: string): Promise<void>;
75
79
  getActiveSession(): ChatSession | undefined;
76
80
  setActiveSession(sessionId: string, options?: SessionOptions): void;
77
81
  sendRequest(sessionId: string, request: ChatRequest): Promise<ChatRequestInvocation | undefined>;
@@ -79,6 +83,14 @@ export interface ChatService {
79
83
  deleteChangeSetElement(sessionId: string, uri: URI): void;
80
84
  cancelRequest(sessionId: string, requestId: string): Promise<void>;
81
85
  getAgent(parsedRequest: ParsedChatRequest, session: ChatSession): ChatAgent | undefined;
86
+ /**
87
+ * Get an existing session or restore from storage
88
+ */
89
+ getOrRestoreSession(sessionId: string): Promise<ChatSession | undefined>;
90
+ /**
91
+ * Get all persisted session metadata
92
+ */
93
+ getPersistedSessions(): Promise<ChatSessionIndex>;
82
94
  }
83
95
  interface ChatSessionInternal extends ChatSession {
84
96
  model: MutableChatModel;
@@ -94,11 +106,14 @@ export declare class ChatServiceImpl implements ChatService {
94
106
  protected chatRequestParser: ChatRequestParser;
95
107
  protected variableService: AIVariableService;
96
108
  protected logger: ILogger;
109
+ protected sessionStore: ChatSessionStore | undefined;
110
+ protected deserializerRegistry: ChatContentDeserializerRegistry;
111
+ protected changeSetElementDeserializerRegistry: ChangeSetElementDeserializerRegistry;
97
112
  protected _sessions: ChatSessionInternal[];
98
113
  getSessions(): ChatSessionInternal[];
99
114
  getSession(id: string): ChatSessionInternal | undefined;
100
115
  createSession(location?: ChatAgentLocation, options?: SessionOptions, pinnedAgent?: ChatAgent): ChatSession;
101
- deleteSession(sessionId: string): void;
116
+ deleteSession(sessionId: string): Promise<void>;
102
117
  getActiveSession(): ChatSession | undefined;
103
118
  setActiveSession(sessionId: string | undefined, options?: SessionOptions): void;
104
119
  sendRequest(sessionId: string, request: ChatRequest): Promise<ChatRequestInvocation | undefined>;
@@ -120,6 +135,19 @@ export declare class ChatServiceImpl implements ChatService {
120
135
  protected getMentionedAgent(parsedRequest: ParsedChatRequest): ParsedChatRequestAgentPart | undefined;
121
136
  deleteChangeSet(sessionId: string): void;
122
137
  deleteChangeSetElement(sessionId: string, uri: URI): void;
138
+ protected saveSession(sessionId: string): void;
139
+ /**
140
+ * Set up auto-save for a session by listening to model changes.
141
+ */
142
+ protected setupAutoSaveForSession(session: ChatSessionInternal): void;
143
+ getOrRestoreSession(sessionId: string): Promise<ChatSession | undefined>;
144
+ getPersistedSessions(): Promise<ChatSessionIndex>;
145
+ /**
146
+ * Deserialize response content and restore changesets.
147
+ * Called after basic chat model structure was created.
148
+ */
149
+ protected restoreSessionData(model: MutableChatModel, data: SerializedChatModel): Promise<void>;
150
+ protected restoreChangeSetElements(requestModel: MutableChatRequestModel, elements: SerializableChangeSetElement[], sessionId: string): Promise<void>;
123
151
  }
124
152
  export {};
125
153
  //# sourceMappingURL=chat-service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"chat-service.d.ts","sourceRoot":"","sources":["../../src/common/chat-service.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,2BAA2B,EAAE,iBAAiB,EAA6B,MAAM,gBAAgB,CAAC;AAC3G,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAgB,MAAM,aAAa,CAAC;AAGlE,OAAO,EAAE,KAAK,EAAE,MAAM,mDAAmD,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACjF,OAAO,EACH,WAAW,EACX,SAAS,EACT,WAAW,EACX,gBAAgB,EAChB,iBAAiB,EAEjB,gBAAgB,EAChB,uBAAuB,EAC1B,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAEtF,MAAM,WAAW,qBAAqB;IAClC;;OAEG;IACH,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC5C;;OAEG;IACH,eAAe,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC5C;;OAEG;IACH,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;CACjD;AAED,MAAM,WAAW,WAAW;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,IAAI,CAAC;IACvB,KAAK,EAAE,SAAS,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,SAAS,CAAC;CAC3B;AAED,MAAM,WAAW,yBAAyB;IACtC,IAAI,EAAE,cAAc,CAAC;IACrB,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,yBAAyB,CAG1F;AAED,MAAM,WAAW,mBAAmB;IAChC,IAAI,EAAE,SAAS,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,mBAAmB,CAG9E;AAED,MAAM,WAAW,mBAAmB;IAChC,IAAI,EAAE,SAAS,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,mBAAmB,CAG9E;AAED,MAAM,WAAW,cAAc;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,eAA+B,CAAC;AAC/D,MAAM,WAAW,kBAAkB;IAC/B,EAAE,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,eAAgC,CAAC;AACjE,MAAM,WAAW,mBAAmB;IAChC,EAAE,EAAE,MAAM,CAAC;CACd;AAED,eAAO,MAAM,YAAY,eAAyB,CAAC;AACnD,MAAM,MAAM,YAAY,GAAG,OAAO,CAAC;AAEnC,eAAO,MAAM,WAAW,eAAwB,CAAC;AACjD,eAAO,MAAM,kBAAkB,eAA+B,CAAC;AAC/D,MAAM,WAAW,WAAW;IACxB,cAAc,EAAE,KAAK,CAAC,yBAAyB,GAAG,mBAAmB,GAAG,mBAAmB,CAAC,CAAA;IAE5F,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAAC;IAChD,WAAW,IAAI,WAAW,EAAE,CAAC;IAC7B,aAAa,CAAC,QAAQ,CAAC,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,cAAc,EAAE,WAAW,CAAC,EAAE,SAAS,GAAG,WAAW,CAAC;IAC5G,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,gBAAgB,IAAI,WAAW,GAAG,SAAS,CAAC;IAC5C,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;IAEpE,WAAW,CACP,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,WAAW,GACrB,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC,CAAC;IAE9C,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,IAAI,CAAC;IAE1D,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnE,QAAQ,CAAC,aAAa,EAAE,iBAAiB,EAAE,OAAO,EAAE,WAAW,GAAG,SAAS,GAAG,SAAS,CAAC;CAC3F;AAED,UAAU,mBAAoB,SAAQ,WAAW;IAC7C,KAAK,EAAE,gBAAgB,CAAC;CAC3B;AAED,qBACa,eAAgB,YAAW,WAAW;IAC/C,SAAS,CAAC,QAAQ,CAAC,qBAAqB,iFAAwF;IAChI,cAAc,qGAAoC;IAGlD,SAAS,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAG7C,SAAS,CAAC,kBAAkB,EAAE,kBAAkB,GAAG,SAAS,CAAC;IAG7D,SAAS,CAAC,mBAAmB,EAAE,mBAAmB,GAAG,SAAS,CAAC;IAG/D,SAAS,CAAC,wBAAwB,EAAE,wBAAwB,GAAG,SAAS,CAAC;IAGzE,SAAS,CAAC,YAAY,EAAE,OAAO,GAAG,SAAS,CAAC;IAG5C,SAAS,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAG/C,SAAS,CAAC,eAAe,EAAE,iBAAiB,CAAC;IAG7C,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC;IAE1B,SAAS,CAAC,SAAS,EAAE,mBAAmB,EAAE,CAAM;IAEhD,WAAW,IAAI,mBAAmB,EAAE;IAIpC,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS;IAIvD,aAAa,CAAC,QAAQ,oBAA0B,EAAE,OAAO,CAAC,EAAE,cAAc,EAAE,WAAW,CAAC,EAAE,SAAS,GAAG,WAAW;IAcjH,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAatC,gBAAgB,IAAI,WAAW,GAAG,SAAS;IAM3C,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,IAAI;IAOzE,WAAW,CACb,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,WAAW,GACrB,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC;IAkD7C,SAAS,CAAC,wBAAwB,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI;IAQtE,SAAS,CAAC,qBAAqB,CAAC,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,uBAAuB,GAAG,IAAI;cAwBrF,kBAAkB,CAC9B,kBAAkB,EAAE,SAAS,2BAA2B,EAAE,EAC1D,OAAO,EAAE,kBAAkB,GAC5B,OAAO,CAAC,WAAW,CAAC;IAOjB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxE,QAAQ,CAAC,aAAa,EAAE,iBAAiB,EAAE,OAAO,EAAE,WAAW,GAAG,SAAS,GAAG,SAAS;IASvF;;;OAGG;IACH,SAAS,CAAC,qBAAqB,IAAI,OAAO;IAI1C;;OAEG;IACH,SAAS,CAAC,cAAc,CAAC,aAAa,EAAE,iBAAiB,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS;IAgBrI,SAAS,CAAC,qBAAqB,CAAC,aAAa,EAAE,iBAAiB,GAAG,SAAS,GAAG,SAAS;IAmBxF,SAAS,CAAC,iBAAiB,CAAC,aAAa,EAAE,iBAAiB,GAAG,0BAA0B,GAAG,SAAS;IAIrG,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAKxC,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,IAAI;CAG5D"}
1
+ {"version":3,"file":"chat-service.d.ts","sourceRoot":"","sources":["../../src/common/chat-service.ts"],"names":[],"mappings":"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"}
@@ -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
- if (sessionIndex === -1) {
90
- return;
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
- const session = this._sessions[sessionIndex];
93
- // If the removed session is the active one, set the newest one as active
94
- if (session.isActive) {
95
- this.setActiveSession((_a = this._sessions[this._sessions.length - 1]) === null || _a === void 0 ? void 0 : _a.id);
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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"chat-session-naming-service.d.ts","sourceRoot":"","sources":["../../src/common/chat-session-naming-service.ts"],"names":[],"mappings":"AAgBA,OAAO,EACH,KAAK,EACL,YAAY,EAEZ,qBAAqB,EACrB,wBAAwB,EACxB,oBAAoB,EACpB,aAAa,EAEhB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAK7C,qBACa,wBAAwB;IACX,SAAS,CAAC,YAAY,EAAE,YAAY,CAAC;IACrD,uBAAuB,CAAC,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;CAO7G;AAED,qBACa,sBAAuB,YAAW,KAAK;IAChD,MAAM,CAAC,EAAE,SAAyB;IAClC,EAAE,SAA6B;IAC/B,IAAI,SAA6B;IACjC,WAAW,SAA6C;IACxD,SAAS,UAAM;IACf,OAAO,8CAAgC;IACvC,yBAAyB,EAAE,wBAAwB,EAAE,CAGlD;IACH,sBAAsB;;;;QAGpB;IACF,SAAS,UAAM;IAGf,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,qBAAqB,CAAC;IAGrD,SAAS,CAAC,QAAQ,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;IAG9D,SAAS,CAAC,aAAa,EAAE,aAAa,CAAC;IAEjC,uBAAuB,CAAC,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;CAsCjG"}
1
+ {"version":3,"file":"chat-session-naming-service.d.ts","sourceRoot":"","sources":["../../src/common/chat-session-naming-service.ts"],"names":[],"mappings":"AAgBA,OAAO,EACH,KAAK,EACL,YAAY,EAEZ,qBAAqB,EACrB,wBAAwB,EACxB,oBAAoB,EACpB,aAAa,EAEhB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAK7C,qBACa,wBAAwB;IACX,SAAS,CAAC,YAAY,EAAE,YAAY,CAAC;IACrD,uBAAuB,CAAC,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;CAO7G;AAED,qBACa,sBAAuB,YAAW,KAAK;IAChD,MAAM,CAAC,EAAE,SAAyB;IAClC,EAAE,SAA6B;IAC/B,IAAI,SAA6B;IACjC,WAAW,SAA+G;IAC1H,SAAS,UAAM;IACf,OAAO,8CAAgC;IACvC,yBAAyB,EAAE,wBAAwB,EAAE,CAGlD;IACH,sBAAsB;;;;QAWpB;IACF,SAAS,UAAM;IAGf,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,qBAAqB,CAAC;IAGrD,SAAS,CAAC,QAAQ,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;IAG9D,SAAS,CAAC,aAAa,EAAE,aAAa,CAAC;IAEjC,uBAAuB,CAAC,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;CAsCjG"}