@theia/ai-chat 1.74.0-next.8 → 1.74.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. package/lib/browser/agent-delegation-tool.js +6 -7
  2. package/lib/browser/agent-delegation-tool.js.map +1 -1
  3. package/lib/browser/agent-delegation-tool.spec.js +13 -0
  4. package/lib/browser/agent-delegation-tool.spec.js.map +1 -1
  5. package/lib/browser/chat-session-store-impl.d.ts.map +1 -1
  6. package/lib/browser/chat-session-store-impl.js +2 -0
  7. package/lib/browser/chat-session-store-impl.js.map +1 -1
  8. package/lib/browser/chat-session-store-impl.spec.js +51 -2
  9. package/lib/browser/chat-session-store-impl.spec.js.map +1 -1
  10. package/lib/browser/chat-tool-preference-bindings.d.ts +18 -8
  11. package/lib/browser/chat-tool-preference-bindings.d.ts.map +1 -1
  12. package/lib/browser/chat-tool-preference-bindings.js +27 -28
  13. package/lib/browser/chat-tool-preference-bindings.js.map +1 -1
  14. package/lib/browser/chat-tool-preference-bindings.spec.js +43 -46
  15. package/lib/browser/chat-tool-preference-bindings.spec.js.map +1 -1
  16. package/lib/common/chat-agents.d.ts +8 -0
  17. package/lib/common/chat-agents.d.ts.map +1 -1
  18. package/lib/common/chat-agents.js +35 -1
  19. package/lib/common/chat-agents.js.map +1 -1
  20. package/lib/common/chat-agents.spec.js +94 -0
  21. package/lib/common/chat-agents.spec.js.map +1 -1
  22. package/lib/common/chat-auto-save.spec.js +13 -0
  23. package/lib/common/chat-auto-save.spec.js.map +1 -1
  24. package/lib/common/chat-content-deserializer.d.ts.map +1 -1
  25. package/lib/common/chat-content-deserializer.js +4 -0
  26. package/lib/common/chat-content-deserializer.js.map +1 -1
  27. package/lib/common/chat-model-serialization.d.ts +12 -1
  28. package/lib/common/chat-model-serialization.d.ts.map +1 -1
  29. package/lib/common/chat-model-serialization.js.map +1 -1
  30. package/lib/common/chat-model-serialization.spec.js +29 -0
  31. package/lib/common/chat-model-serialization.spec.js.map +1 -1
  32. package/lib/common/chat-model.d.ts +104 -2
  33. package/lib/common/chat-model.d.ts.map +1 -1
  34. package/lib/common/chat-model.js +151 -2
  35. package/lib/common/chat-model.js.map +1 -1
  36. package/lib/common/chat-model.spec.d.ts +2 -0
  37. package/lib/common/chat-model.spec.d.ts.map +1 -0
  38. package/lib/common/chat-model.spec.js +42 -0
  39. package/lib/common/chat-model.spec.js.map +1 -0
  40. package/lib/common/chat-request-parser.d.ts +4 -1
  41. package/lib/common/chat-request-parser.d.ts.map +1 -1
  42. package/lib/common/chat-request-parser.js +43 -3
  43. package/lib/common/chat-request-parser.js.map +1 -1
  44. package/lib/common/chat-request-parser.spec.js +59 -0
  45. package/lib/common/chat-request-parser.spec.js.map +1 -1
  46. package/lib/common/chat-service-deletion.spec.js +43 -0
  47. package/lib/common/chat-service-deletion.spec.js.map +1 -1
  48. package/lib/common/chat-service-pinned-agent.spec.js +52 -2
  49. package/lib/common/chat-service-pinned-agent.spec.js.map +1 -1
  50. package/lib/common/chat-service-session-events.spec.d.ts +2 -0
  51. package/lib/common/chat-service-session-events.spec.d.ts.map +1 -0
  52. package/lib/common/chat-service-session-events.spec.js +130 -0
  53. package/lib/common/chat-service-session-events.spec.js.map +1 -0
  54. package/lib/common/chat-service.d.ts +3 -0
  55. package/lib/common/chat-service.d.ts.map +1 -1
  56. package/lib/common/chat-service.js +60 -6
  57. package/lib/common/chat-service.js.map +1 -1
  58. package/lib/common/chat-service.spec.d.ts +2 -0
  59. package/lib/common/chat-service.spec.d.ts.map +1 -0
  60. package/lib/common/chat-service.spec.js +177 -0
  61. package/lib/common/chat-service.spec.js.map +1 -0
  62. package/lib/common/chat-session-status.spec.d.ts +2 -0
  63. package/lib/common/chat-session-status.spec.d.ts.map +1 -0
  64. package/lib/common/chat-session-status.spec.js +213 -0
  65. package/lib/common/chat-session-status.spec.js.map +1 -0
  66. package/lib/common/chat-session-store.d.ts +8 -0
  67. package/lib/common/chat-session-store.d.ts.map +1 -1
  68. package/lib/common/tool-call-response-content.spec.js +36 -0
  69. package/lib/common/tool-call-response-content.spec.js.map +1 -1
  70. package/package.json +11 -11
  71. package/src/browser/agent-delegation-tool.spec.ts +16 -0
  72. package/src/browser/agent-delegation-tool.ts +7 -7
  73. package/src/browser/chat-session-store-impl.spec.ts +62 -2
  74. package/src/browser/chat-session-store-impl.ts +2 -0
  75. package/src/browser/chat-tool-preference-bindings.spec.ts +43 -48
  76. package/src/browser/chat-tool-preference-bindings.ts +42 -30
  77. package/src/common/chat-agents.spec.ts +112 -2
  78. package/src/common/chat-agents.ts +44 -1
  79. package/src/common/chat-auto-save.spec.ts +18 -1
  80. package/src/common/chat-content-deserializer.ts +11 -0
  81. package/src/common/chat-model-serialization.spec.ts +38 -0
  82. package/src/common/chat-model-serialization.ts +12 -1
  83. package/src/common/chat-model.spec.ts +42 -0
  84. package/src/common/chat-model.ts +233 -2
  85. package/src/common/chat-request-parser.spec.ts +69 -1
  86. package/src/common/chat-request-parser.ts +51 -6
  87. package/src/common/chat-service-deletion.spec.ts +52 -0
  88. package/src/common/chat-service-pinned-agent.spec.ts +58 -2
  89. package/src/common/chat-service-session-events.spec.ts +161 -0
  90. package/src/common/chat-service.spec.ts +211 -0
  91. package/src/common/chat-service.ts +64 -8
  92. package/src/common/chat-session-status.spec.ts +280 -0
  93. package/src/common/chat-session-store.ts +8 -0
  94. package/src/common/tool-call-response-content.spec.ts +42 -0
@@ -0,0 +1,130 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2026 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_agent_service_1 = require("./chat-agent-service");
22
+ const chat_request_parser_1 = require("./chat-request-parser");
23
+ const ai_core_1 = require("@theia/ai-core");
24
+ const core_1 = require("@theia/core");
25
+ const chat_content_deserializer_1 = require("./chat-content-deserializer");
26
+ const change_set_element_deserializer_1 = require("./change-set-element-deserializer");
27
+ const chat_agents_1 = require("./chat-agents");
28
+ const parsed_chat_request_1 = require("./parsed-chat-request");
29
+ describe('ChatService session events', () => {
30
+ let chatService;
31
+ let container;
32
+ const mockDefaultAgent = {
33
+ id: 'default-agent',
34
+ name: 'Default Agent',
35
+ description: 'Test default agent',
36
+ locations: [chat_agents_1.ChatAgentLocation.Panel],
37
+ invoke: async () => { },
38
+ languageModelRequirements: [],
39
+ tags: [],
40
+ variables: [],
41
+ agentSpecificVariables: [],
42
+ functions: [],
43
+ prompts: []
44
+ };
45
+ class MockChatAgentService {
46
+ constructor() {
47
+ this.onDidChangeAgents = { dispose: () => { } };
48
+ this.onDefaultAgentChanged = { dispose: () => { } };
49
+ }
50
+ getAgent(id) {
51
+ return id === 'default-agent' ? mockDefaultAgent : undefined;
52
+ }
53
+ resolveAgent() {
54
+ return mockDefaultAgent;
55
+ }
56
+ }
57
+ class MockChatRequestParser {
58
+ async parseChatRequest(request) {
59
+ return {
60
+ request,
61
+ parts: [new parsed_chat_request_1.ParsedChatRequestTextPart({ start: 0, endExclusive: request.text.length }, request.text)],
62
+ toolRequests: new Map(),
63
+ variables: []
64
+ };
65
+ }
66
+ }
67
+ class MockAIVariableService {
68
+ async resolveVariable() {
69
+ return undefined;
70
+ }
71
+ }
72
+ class MockLogger {
73
+ error() { }
74
+ warn() { }
75
+ info() { }
76
+ debug() { }
77
+ }
78
+ beforeEach(() => {
79
+ container = new inversify_1.Container();
80
+ container.bind(chat_agent_service_1.ChatAgentService).toConstantValue(new MockChatAgentService());
81
+ container.bind(chat_request_parser_1.ChatRequestParser).toConstantValue(new MockChatRequestParser());
82
+ container.bind(ai_core_1.AIVariableService).toConstantValue(new MockAIVariableService());
83
+ container.bind(ai_core_1.ToolInvocationRegistry).toConstantValue({});
84
+ container.bind(core_1.ILogger).toConstantValue(new MockLogger());
85
+ container.bind(chat_service_1.DefaultChatAgentId).toConstantValue({ id: 'default-agent' });
86
+ container.bind(chat_service_1.PinChatAgent).toConstantValue(true);
87
+ const contentRegistry = new chat_content_deserializer_1.ChatContentDeserializerRegistryImpl();
88
+ new chat_content_deserializer_1.DefaultChatContentDeserializerContribution().registerDeserializers(contentRegistry);
89
+ container.bind(chat_content_deserializer_1.ChatContentDeserializerRegistry).toConstantValue(contentRegistry);
90
+ container.bind(change_set_element_deserializer_1.ChangeSetElementDeserializerRegistry).toConstantValue(new change_set_element_deserializer_1.ChangeSetElementDeserializerRegistryImpl());
91
+ container.bind(chat_service_1.ChatServiceImpl).toSelf().inSingletonScope();
92
+ chatService = container.get(chat_service_1.ChatServiceImpl);
93
+ });
94
+ it('should fire a renamed event when sendRequest sets the session title', async () => {
95
+ const session = chatService.createSession(chat_agents_1.ChatAgentLocation.Panel);
96
+ (0, chai_1.expect)(session.title).to.be.undefined;
97
+ const events = [];
98
+ chatService.onSessionEvent(e => events.push(e));
99
+ await chatService.sendRequest(session.id, { text: 'Hello world' });
100
+ (0, chai_1.expect)(session.title).to.equal('Hello world');
101
+ const renamedEvents = events.filter(e => e.type === 'renamed');
102
+ (0, chai_1.expect)(renamedEvents).to.have.length(1);
103
+ (0, chai_1.expect)(renamedEvents[0].sessionId).to.equal(session.id);
104
+ });
105
+ it('should not fire a renamed event on subsequent requests when title is already set', async () => {
106
+ const session = chatService.createSession(chat_agents_1.ChatAgentLocation.Panel);
107
+ // First request sets the title
108
+ await chatService.sendRequest(session.id, { text: 'First message' });
109
+ (0, chai_1.expect)(session.title).to.equal('First message');
110
+ const events = [];
111
+ chatService.onSessionEvent(e => events.push(e));
112
+ // Second request should not trigger a renamed event
113
+ await chatService.sendRequest(session.id, { text: 'Second message' });
114
+ const renamedEvents = events.filter(e => e.type === 'renamed');
115
+ (0, chai_1.expect)(renamedEvents).to.have.length(0);
116
+ // Title should remain the first message
117
+ (0, chai_1.expect)(session.title).to.equal('First message');
118
+ });
119
+ it('should fire a renamed event via renameSession', async () => {
120
+ const session = chatService.createSession(chat_agents_1.ChatAgentLocation.Panel);
121
+ const events = [];
122
+ chatService.onSessionEvent(e => events.push(e));
123
+ await chatService.renameSession(session.id, 'New Title');
124
+ (0, chai_1.expect)(session.title).to.equal('New Title');
125
+ const renamedEvents = events.filter(e => e.type === 'renamed');
126
+ (0, chai_1.expect)(renamedEvents).to.have.length(1);
127
+ (0, chai_1.expect)(renamedEvents[0].sessionId).to.equal(session.id);
128
+ });
129
+ });
130
+ //# sourceMappingURL=chat-service-session-events.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-service-session-events.spec.js","sourceRoot":"","sources":["../../src/common/chat-service-session-events.spec.ts"],"names":[],"mappings":"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"}
@@ -34,6 +34,8 @@ export interface ChatSession {
34
34
  pinnedAgent?: ChatAgent;
35
35
  /** ID of the root session in the delegation chain. For delegated sessions, this points to the topmost session where task contexts are stored. */
36
36
  rootSessionId?: string;
37
+ /** ID of the immediate parent session that delegated this one. Undefined for top-level sessions. */
38
+ parentSessionId?: string;
37
39
  }
38
40
  export interface ActiveSessionChangedEvent {
39
41
  type: 'activeChange';
@@ -111,6 +113,7 @@ export declare class ChatServiceImpl implements ChatService {
111
113
  getSession(id: string): ChatSessionInternal | undefined;
112
114
  createSession(location?: ChatAgentLocation, options?: SessionOptions, pinnedAgent?: ChatAgent): ChatSession;
113
115
  deleteSession(sessionId: string): Promise<void>;
116
+ protected deleteSessionAndChildren(sessionId: string, visited: Set<string>): Promise<void>;
114
117
  renameSession(sessionId: string, title: string): Promise<void>;
115
118
  getActiveSession(): ChatSession | undefined;
116
119
  setActiveSession(sessionId: string | undefined, options?: SessionOptions): void;
@@ -1 +1 @@
1
- {"version":3,"file":"chat-service.d.ts","sourceRoot":"","sources":["../../src/common/chat-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat-service.d.ts","sourceRoot":"","sources":["../../src/common/chat-service.ts"],"names":[],"mappings":"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"}
@@ -84,6 +84,41 @@ let ChatServiceImpl = class ChatServiceImpl {
84
84
  return session;
85
85
  }
86
86
  async deleteSession(sessionId) {
87
+ await this.deleteSessionAndChildren(sessionId, new Set());
88
+ }
89
+ async deleteSessionAndChildren(sessionId, visited) {
90
+ if (visited.has(sessionId)) {
91
+ return;
92
+ }
93
+ visited.add(sessionId);
94
+ // Delete children first. A child is any session whose immediate parent (parentSessionId) or root
95
+ // (rootSessionId) points to this session. Matching parentSessionId is what lets us cascade through
96
+ // intermediate levels: deleting B in A -> B -> C reaches C via its parentSessionId even though C's
97
+ // rootSessionId still points at A. Children may live only in memory, only in persisted storage
98
+ // (e.g. after a reload, not yet restored), or both, so collect ids from both sources. The visited
99
+ // set guards against cycles and re-deleting a child reachable from more than one ancestor.
100
+ const childIds = new Set();
101
+ for (const s of this._sessions) {
102
+ if (s.parentSessionId === sessionId || s.rootSessionId === sessionId) {
103
+ childIds.add(s.id);
104
+ }
105
+ }
106
+ if (this.sessionStore) {
107
+ try {
108
+ const index = await this.sessionStore.getSessionIndex();
109
+ for (const metadata of Object.values(index)) {
110
+ if (metadata.parentSessionId === sessionId || metadata.rootSessionId === sessionId) {
111
+ childIds.add(metadata.sessionId);
112
+ }
113
+ }
114
+ }
115
+ catch (error) {
116
+ this.logger.error('Failed to read session index for cascade delete', { sessionId, error });
117
+ }
118
+ }
119
+ for (const childId of childIds) {
120
+ await this.deleteSessionAndChildren(childId, visited);
121
+ }
87
122
  const sessionIndex = this._sessions.findIndex(candidate => candidate.id === sessionId);
88
123
  // If session is in memory, remove it
89
124
  if (sessionIndex !== -1) {
@@ -194,6 +229,7 @@ let ChatServiceImpl = class ChatServiceImpl {
194
229
  }
195
230
  const requestText = request.request.displayText ?? request.request.text;
196
231
  session.title = requestText;
232
+ this.onSessionEventEmitter.fire({ type: 'renamed', sessionId: session.id });
197
233
  if (this.chatSessionNamingService) {
198
234
  const otherSessionNames = this._sessions.map(s => s.title).filter((title) => title !== undefined);
199
235
  const namingService = this.chatSessionNamingService;
@@ -205,6 +241,7 @@ let ChatServiceImpl = class ChatServiceImpl {
205
241
  session.title = name;
206
242
  // Trigger persistence when title changes
207
243
  this.saveSession(session.id);
244
+ this.onSessionEventEmitter.fire({ type: 'renamed', sessionId: session.id });
208
245
  }
209
246
  didGenerateName = true;
210
247
  }).catch(error => this.logger.error('Failed to generate chat session name', error));
@@ -246,8 +283,12 @@ let ChatServiceImpl = class ChatServiceImpl {
246
283
  }
247
284
  else if (session.pinnedAgent) {
248
285
  // If we have a valid pinned agent, use it (pinned agent may become stale
249
- // if it was disabled; so we always need to recheck)
250
- const pinnedAgent = this.chatAgentService.getAgent(session.pinnedAgent.id);
286
+ // if it was disabled; so we always need to recheck). A pin is an explicit choice —
287
+ // e.g. AgentDelegationTool pins the delegated agent on the session it creates, and
288
+ // worker agents are often hidden (showInChat: false) — so hidden agents are honored
289
+ // here, while plain @-mentions above stay hidden-excluding. Without this, a request
290
+ // in a session pinned to a hidden agent silently falls back to the default agent.
291
+ const pinnedAgent = this.chatAgentService.getAgent(session.pinnedAgent.id, true);
251
292
  if (pinnedAgent) {
252
293
  return pinnedAgent;
253
294
  }
@@ -285,7 +326,15 @@ let ChatServiceImpl = class ChatServiceImpl {
285
326
  // Store session with title, pinned agent info, last interaction timestamp, and error state
286
327
  const lastRequest = session.model.getRequests().at(-1);
287
328
  const hasError = lastRequest?.response.isComplete === true && lastRequest?.response.isError === true;
288
- return this.sessionStore.storeSessions({ model: session.model, title: session.title, pinnedAgentId: session.pinnedAgent?.id, lastInteraction: session.lastInteraction?.getTime(), hasError }).catch(error => {
329
+ return this.sessionStore.storeSessions({
330
+ model: session.model,
331
+ title: session.title,
332
+ pinnedAgentId: session.pinnedAgent?.id,
333
+ lastInteraction: session.lastInteraction?.getTime(),
334
+ hasError,
335
+ rootSessionId: session.rootSessionId,
336
+ parentSessionId: session.parentSessionId
337
+ }).catch(error => {
289
338
  this.logger.error('Failed to store chat sessions', error);
290
339
  });
291
340
  }
@@ -322,9 +371,10 @@ let ChatServiceImpl = class ChatServiceImpl {
322
371
  });
323
372
  const model = new chat_model_1.MutableChatModel(serialized.model);
324
373
  await this.restoreSessionData(model, serialized.model);
325
- // Determine pinned agent
374
+ // Determine pinned agent (hidden agents included — a restored pin, like a live one,
375
+ // is an explicit choice; see getPinnedAgent)
326
376
  const pinnedAgent = serialized.pinnedAgentId
327
- ? this.chatAgentService.getAgent(serialized.pinnedAgentId)
377
+ ? this.chatAgentService.getAgent(serialized.pinnedAgentId, true)
328
378
  : undefined;
329
379
  // Register as session
330
380
  const session = {
@@ -333,8 +383,12 @@ let ChatServiceImpl = class ChatServiceImpl {
333
383
  lastInteraction: new Date(serialized.saveDate),
334
384
  model,
335
385
  isActive: false,
336
- pinnedAgent
386
+ pinnedAgent,
387
+ rootSessionId: serialized.rootSessionId,
388
+ parentSessionId: serialized.parentSessionId
337
389
  };
390
+ session.model.rootSessionId = serialized.rootSessionId;
391
+ session.model.parentSessionId = serialized.parentSessionId;
338
392
  this._sessions.push(session);
339
393
  this.setupAutoSaveForSession(session);
340
394
  this.onSessionEventEmitter.fire({ type: 'created', sessionId: session.id });
@@ -1 +1 @@
1
- {"version":3,"file":"chat-service.js","sourceRoot":"","sources":["../../src/common/chat-service.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;;;gGAGgG;AAChG,8JAA8J;;;AAgE9J,kEAGC;AAOD,sDAGC;AAOD,sDAGC;;AArFD,4CAAgJ;AAChJ,sCAAyE;AACzE,sEAA+D;AAC/D,4DAA4E;AAC5E,6DAAiG;AAwBxF,mGAxBkB,uCAAkB,OAwBlB;AAAE,oGAxBkB,wCAAmB,OAwBlB;AAvBhD,+CAAiF;AACjF,6CAWsB;AACtB,+DAA0D;AAC1D,+EAAyE;AACzE,+DAAsF;AACtF,6DAA0E;AAC1E,2EAA8E;AAC9E,uFAA0H;AAE1H,+DAAgE;AAqChE,SAAgB,2BAA2B,CAAC,GAAY;IACpD,2CAA2C;IAC3C,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,cAAc,CAAC;AACnG,CAAC;AAOD,SAAgB,qBAAqB,CAAC,GAAY;IAC9C,2CAA2C;IAC3C,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC;AAC9F,CAAC;AAOD,SAAgB,qBAAqB,CAAC,GAAY;IAC9C,2CAA2C;IAC3C,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC;AAC9F,CAAC;AAWY,QAAA,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AAGtC,QAAA,WAAW,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;AACpC,QAAA,kBAAkB,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;AA4CxD,IAAM,eAAe,GAArB,MAAM,eAAe;IAArB;QACgB,0BAAqB,GAAG,IAAI,cAAO,EAA+F,CAAC;QACtJ,mBAAc,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC;QAgCxC,cAAS,GAA0B,EAAE,CAAC;IA+cpD,CAAC;IA7cG,WAAW;QACP,OAAO,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;IAC/B,CAAC;IAED,UAAU,CAAC,EAAU;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,aAAa,CAAC,QAAQ,GAAG,+BAAiB,CAAC,KAAK,EAAE,OAAwB,EAAE,WAAuB;QAC/F,MAAM,KAAK,GAAG,IAAI,6BAAgB,CAAC,QAAQ,CAAC,CAAC;QAC7C,MAAM,OAAO,GAAwB;YACjC,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,eAAe,EAAE,IAAI,IAAI,EAAE;YAC3B,KAAK;YACL,QAAQ,EAAE,IAAI;YACd,WAAW;SACd,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7B,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QAC3C,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5E,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,SAAiB;QACjC,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;QAEvF,qCAAqC;QACrC,IAAI,YAAY,KAAK,CAAC,CAAC,EAAE,CAAC;YACtB,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;YAC7C,yEAAyE;YACzE,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACnB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACzE,CAAC;YACD,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YACxB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;QAC3C,CAAC;QAED,2EAA2E;QAC3E,6EAA6E;QAC7E,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,IAAI,CAAC;gBACD,MAAM,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;YACrD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uCAAuC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;YACrF,CAAC;QACL,CAAC;QAED,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,SAAiB,EAAE,KAAa;QAChD,IAAI,OAAO,GAA4B,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAClE,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,OAAO,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;QACxD,CAAC;QACD,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8BAA8B,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;YAChE,OAAO;QACX,CAAC;QACD,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;QACtB,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAClC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,gBAAgB;QACZ,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC9E,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAAC,MAAM,IAAI,KAAK,CAAC,iFAAiF,CAAC,CAAC;QAAC,CAAC;QACtI,OAAO,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,gBAAgB,CAAC,SAA6B,EAAE,OAAwB;QACpE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YAC7B,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,EAAE,KAAK,SAAS,CAAC;QAChD,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAChG,CAAC;IAED,KAAK,CAAC,WAAW,CACb,SAAiB,EACjB,OAAoB;QAEpB,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAC3C,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;QAEvC,MAAM,iBAAiB,GAAuB;YAC1C,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;YAChD,2BAA2B,EAAE,OAAO,CAAC,2BAA2B;SACnE,CAAC;QACF,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,iBAAiB,CAAC,CAAC;QACpI,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;QACtH,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QACpD,OAAO,CAAC,WAAW,GAAG,KAAK,CAAC;QAE5B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACtB,MAAM,KAAK,GAAG,6CAA6C;gBACvD,mIAAmI;gBACnI,0DAA0D,CAAC;YAC/D,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACzB,MAAM,iBAAiB,GAAG,IAAI,mCAAsB,CAAC,IAAA,mBAAY,GAAE,EAAE,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;YACvF,OAAO;gBACH,gBAAgB,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;gBACvC,eAAe,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;gBACtC,iBAAiB,EAAE,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC;aACxD,CAAC;QACN,CAAC;QAED,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,aAAa,EAAE,KAAK,EAAE,EAAE,EAAE,eAAe,CAAC,CAAC;QACzF,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QAClD,iBAAiB,CAAC,OAAO,GAAG,YAAY,CAAC;QAEzC,MAAM,0BAA0B,GAAG,IAAI,uBAAQ,EAAqB,CAAC;QACrE,MAAM,UAAU,GAA0B;YACtC,gBAAgB,EAAE,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC;YAC/C,eAAe,EAAE,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC;YACvD,iBAAiB,EAAE,0BAA0B,CAAC,OAAO;SACxD,CAAC;QAEF,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,EAAE;YACnC,IAAI,YAAY,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;gBACnC,0BAA0B,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YAC9D,CAAC;YACD,IAAI,YAAY,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;gBAChC,0BAA0B,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YAC9D,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QAE9E,OAAO,UAAU,CAAC;IACtB,CAAC;IAES,wBAAwB,CAAC,OAA4B;QAC3D,KAAK,MAAM,WAAW,IAAI,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACpD,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;gBACnC,WAAW,CAAC,MAAM,EAAE,CAAC;YACzB,CAAC;QACL,CAAC;IACL,CAAC;IAES,qBAAqB,CAAC,OAA4B,EAAE,OAAgC;QAC1F,OAAO,CAAC,eAAe,GAAG,IAAI,IAAI,EAAE,CAAC;QACrC,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAChB,OAAO;QACX,CAAC;QACD,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;QACxE,OAAO,CAAC,KAAK,GAAG,WAAW,CAAC;QAC5B,IAAI,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAChC,MAAM,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;YACnH,MAAM,aAAa,GAAG,IAAI,CAAC,wBAAwB,CAAC;YACpD,IAAI,eAAe,GAAG,KAAK,CAAC;YAC5B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,EAAE;gBAC9B,IAAI,OAAO,CAAC,QAAQ,CAAC,UAAU,IAAI,CAAC,eAAe,EAAE,CAAC;oBAClD,aAAa,CAAC,uBAAuB,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;wBAC1E,IAAI,IAAI,IAAI,OAAO,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;4BACxC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;4BACrB,yCAAyC;4BACzC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;wBACjC,CAAC;wBACD,eAAe,GAAG,IAAI,CAAC;oBAC3B,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sCAAsC,EAAE,KAAK,CAAC,CAAC,CAAC;gBACxF,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAES,KAAK,CAAC,kBAAkB,CAC9B,kBAA0D,EAC1D,OAA2B;QAE3B,0FAA0F;QAC1F,MAAM,iBAAiB,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC,KAAK,EAAC,eAAe,EAAC,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;aACvJ,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,mCAAyB,CAAC,EAAE,CAAC,CAAC,CAAC;QACnE,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,SAAiB,EAAE,SAAiB;QACpD,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;IACtF,CAAC;IAED,QAAQ,CAAC,aAAgC,EAAE,OAAoB;QAC3D,MAAM,KAAK,GAAG,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC,CAAC;QACxD,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE,CAAC;YAChC,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,OAAO,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IAC9D,CAAC;IAED;;;OAGG;IACO,qBAAqB;QAC3B,OAAO,IAAI,CAAC,YAAY,KAAK,KAAK,CAAC;IACvC,CAAC;IAED;;OAEG;IACO,cAAc,CAAC,aAAgC,EAAE,OAAoB,EAAE,KAA4B;QACzG,MAAM,kBAAkB,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;QACjE,MAAM,cAAc,GAAG,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACnH,IAAI,cAAc,EAAE,CAAC;YACjB,OAAO,cAAc,CAAC;QAC1B,CAAC;aAAM,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YAC7B,yEAAyE;YACzE,oDAAoD;YACpD,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAC3E,IAAI,WAAW,EAAE,CAAC;gBACd,OAAO,WAAW,CAAC;YACvB,CAAC;QACL,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAES,qBAAqB,CAAC,aAAgC;QAC5D,OAAO,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;IAC7D,CAAC;IAES,iBAAiB,CAAC,aAAgC;QACxD,OAAO,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,YAAY,gDAA0B,CAA2C,CAAC;IAC5H,CAAC;IAED,eAAe,CAAC,SAAiB;QAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC;QAChD,KAAK,EAAE,SAAS,CAAC,WAAW,EAAE,CAAC;IACnC,CAAC;IAED,sBAAsB,CAAC,SAAiB,EAAE,GAAQ;QAC9C,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IACpE,CAAC;IAES,WAAW,CAAC,SAAiB;QACnC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACrB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;YAChE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC7B,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAC3C,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kCAAkC,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;YACrE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC7B,CAAC;QAED,4BAA4B;QAC5B,IAAI,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;YAC1B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iCAAiC,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;YACpE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC7B,CAAC;QAED,2FAA2F;QAC3F,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACvD,MAAM,QAAQ,GAAG,WAAW,EAAE,QAAQ,CAAC,UAAU,KAAK,IAAI,IAAI,WAAW,EAAE,QAAQ,CAAC,OAAO,KAAK,IAAI,CAAC;QACrG,OAAO,IAAI,CAAC,YAAY,CAAC,aAAa,CAClC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,aAAa,EAAE,OAAO,CAAC,WAAW,EAAE,EAAE,EAAE,eAAe,EAAE,OAAO,CAAC,eAAe,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,CACxJ,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;YACZ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;OAEG;IACO,uBAAuB,CAAC,OAA4B;QAC1D,MAAM,aAAa,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3F,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE;YAC/B,aAAa,EAAE,CAAC;QACpB,CAAC,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,SAAiB;QACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAC5C,IAAI,QAAQ,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;YAC3D,OAAO,QAAQ,CAAC;QACpB,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACrB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6CAA6C,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;YAChF,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gCAAgC,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;QAEnE,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAClE,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8BAA8B,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;YAChE,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,EAAE;YAC7C,SAAS;YACT,YAAY,EAAE,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM;YAC9C,aAAa,EAAE,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM;YAChD,OAAO,EAAE,UAAU,CAAC,OAAO;SAC9B,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,IAAI,6BAAgB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACrD,MAAM,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;QAEvD,yBAAyB;QACzB,MAAM,WAAW,GAAG,UAAU,CAAC,aAAa;YACxC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC;YAC1D,CAAC,CAAC,SAAS,CAAC;QAEhB,sBAAsB;QACtB,MAAM,OAAO,GAAwB;YACjC,EAAE,EAAE,SAAS;YACb,KAAK,EAAE,UAAU,CAAC,KAAK;YACvB,eAAe,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;YAC9C,KAAK;YACL,QAAQ,EAAE,KAAK;YACf,WAAW;SACd,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7B,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QAE5E,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,8CAA8C,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QAEvG,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,oBAAoB;QACtB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACrB,OAAO,EAAE,CAAC;QACd,CAAC;QACD,OAAO,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,oBAAoB;QACtB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACrB,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,OAAO,IAAI,CAAC,YAAY,CAAC,oBAAoB,EAAE,CAAC;IACpD,CAAC;IAED;;;OAGG;IACO,KAAK,CAAC,kBAAkB,CAAC,KAAuB,EAAE,IAAyB;QACjF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gCAAgC,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QAEvH,sEAAsE;QACtE,oFAAoF;QACpF,MAAM,QAAQ,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC;QACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,MAAM,YAAY,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAEjC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,EAAE,EAAE,SAAS,EAAE,YAAY,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YACvF,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,YAAY,CAAC,EAAE,CAAC,CAAC;YAClE,IAAI,OAAO,EAAE,aAAa,EAAE,CAAC;gBACzB,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;gBACrE,YAAY,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;gBAC/C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,EAAE,EAAE,SAAS,EAAE,YAAY,CAAC,EAAE,EAAE,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;YAC/H,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,EAAE,EAAE,SAAS,EAAE,YAAY,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YAExF,uDAAuD;YACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,YAAY,CAAC,EAAE,CAAC,CAAC;YAC3E,IAAI,QAAQ,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1C,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CACzE,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,WAAW,CAAC,CACrD,CAAC,CAAC;gBACH,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;gBACvF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,EAAE;oBAC3C,SAAS,EAAE,YAAY,CAAC,EAAE;oBAC1B,YAAY,EAAE,eAAe,CAAC,MAAM;iBACvC,CAAC,CAAC;YACP,CAAC;YAED,6BAA6B;YAC7B,MAAM,mBAAmB,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,YAAY,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC;YACzF,IAAI,mBAAmB,IAAI,mBAAmB,CAAC,QAAQ,IAAI,mBAAmB,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACjG,0CAA0C;gBAC1C,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC;oBAC1B,YAAY,CAAC,SAAS,GAAG,IAAI,0BAAa,EAAE,CAAC;gBACjD,CAAC;gBACD,MAAM,IAAI,CAAC,wBAAwB,CAAC,YAAY,EAAE,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;gBAEhG,0BAA0B;gBAC1B,IAAI,mBAAmB,CAAC,KAAK,EAAE,CAAC;oBAC5B,YAAY,CAAC,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;gBAC/D,CAAC;gBAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,EAAE;oBACpC,SAAS,EAAE,YAAY,CAAC,EAAE;oBAC1B,YAAY,EAAE,mBAAmB,CAAC,QAAQ,CAAC,MAAM;iBACpD,CAAC,CAAC;YACP,CAAC;QACL,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yCAAyC,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IAChG,CAAC;IAED;;;OAGG;IACO,mBAAmB,CAAC,IAA+B;QACzD,MAAM,YAAY,GAAG,IAAI,GAAG,EAAuB,CAAC;QACpD,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACvC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC,yBAAyB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;QAC/E,CAAC;QACD,OAAO,YAAY,CAAC;IACxB,CAAC;IAED;;OAEG;IACO,yBAAyB,CAAC,MAAc;QAC9C,MAAM,UAAU,GAAG,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACnE,IAAI,UAAU,EAAE,CAAC;YACb,OAAO,UAAU,CAAC;QACtB,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2CAA2C,MAAM,6CAA6C,CAAC,CAAC;QACjH,OAAO;YACH,EAAE,EAAE,MAAM;YACV,IAAI,EAAE,MAAM;YACZ,UAAU,EAAE,EAAE,IAAI,EAAE,QAAiB,EAAE,UAAU,EAAE,EAAE,EAAE;YACvD,OAAO,EAAE,KAAK,IAAI,EAAE;gBAChB,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;YAC3F,CAAC;SACJ,CAAC;IACN,CAAC;IAES,KAAK,CAAC,wBAAwB,CACpC,YAAqC,EACrC,QAAwC,EACxC,SAAiB;QAEjB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA8B,EAAE,EAAE,SAAS,EAAE,YAAY,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QAEjH,MAAM,OAAO,GAAoC;YAC7C,aAAa,EAAE,SAAS;YACxB,SAAS,EAAE,YAAY,CAAC,EAAE;SAC7B,CAAC;QAEF,MAAM,gBAAgB,GAAuB,EAAE,CAAC;QAEhD,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;YAC1B,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,oCAAoC,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACnG,gBAAgB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC3C,CAAC;QAED,0CAA0C;QAC1C,IAAI,YAAY,CAAC,SAAS,EAAE,CAAC;YACzB,YAAY,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,gBAAgB,CAAC,CAAC;YACxD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,EAAE,EAAE,SAAS,EAAE,YAAY,CAAC,EAAE,EAAE,YAAY,EAAE,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5H,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mDAAmD,EAAE,EAAE,SAAS,EAAE,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC;QAC1G,CAAC;IACL,CAAC;CACJ,CAAA;AAjfY,0CAAe;AAKd;IADT,IAAA,kBAAM,EAAC,qCAAgB,CAAC;;yDACoB;AAGnC;IADT,IAAA,kBAAM,EAAC,sDAAwB,CAAC;IAAE,IAAA,oBAAQ,GAAE;;iEAC4B;AAG/D;IADT,IAAA,kBAAM,EAAC,oBAAY,CAAC;IAAE,IAAA,oBAAQ,GAAE;;qDACW;AAGlC;IADT,IAAA,kBAAM,EAAC,uCAAiB,CAAC;;0DACqB;AAGrC;IADT,IAAA,kBAAM,EAAC,2BAAiB,CAAC;;wDACmB;AAGnC;IADT,IAAA,kBAAM,EAAC,cAAO,CAAC;;+CACU;AAGhB;IADT,IAAA,kBAAM,EAAC,qCAAgB,CAAC;IAAE,IAAA,oBAAQ,GAAE;;qDACgB;AAG3C;IADT,IAAA,kBAAM,EAAC,2DAA+B,CAAC;;6DACwB;AAGtD;IADT,IAAA,kBAAM,EAAC,sEAAoC,CAAC;;6EACwC;AAG3E;IADT,IAAA,kBAAM,EAAC,gCAAsB,CAAC;;+DAC0B;0BAhChD,eAAe;IAD3B,IAAA,sBAAU,GAAE;GACA,eAAe,CAif3B"}
1
+ {"version":3,"file":"chat-service.js","sourceRoot":"","sources":["../../src/common/chat-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=chat-service.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-service.spec.d.ts","sourceRoot":"","sources":["../../src/common/chat-service.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,177 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2026 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
+ const 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_service_1 = require("./chat-service");
26
+ const chat_agent_service_1 = require("./chat-agent-service");
27
+ const chat_session_store_1 = require("./chat-session-store");
28
+ const chat_content_deserializer_1 = require("./chat-content-deserializer");
29
+ const change_set_element_deserializer_1 = require("./change-set-element-deserializer");
30
+ const ai_core_1 = require("@theia/ai-core");
31
+ const core_1 = require("@theia/core");
32
+ const chat_request_parser_1 = require("./chat-request-parser");
33
+ disableJSDOM();
34
+ describe('ChatServiceImpl', () => {
35
+ let sandbox;
36
+ let chatService;
37
+ let mockSessionStore;
38
+ let mockAgentService;
39
+ let mockDeserRegistry;
40
+ let mockChangeSetDeserRegistry;
41
+ let mockToolInvocationRegistry;
42
+ let mockVariableService;
43
+ let mockRequestParser;
44
+ let mockLogger;
45
+ beforeEach(() => {
46
+ sandbox = sinon.createSandbox();
47
+ mockSessionStore = {
48
+ storeSessions: sandbox.stub().resolves(),
49
+ readSession: sandbox.stub().resolves(undefined),
50
+ deleteSession: sandbox.stub().resolves(),
51
+ clearAllSessions: sandbox.stub().resolves(),
52
+ getSessionIndex: sandbox.stub().resolves({}),
53
+ hasPersistedSessions: sandbox.stub().resolves(false)
54
+ };
55
+ mockAgentService = {
56
+ getAgent: sandbox.stub().returns(undefined),
57
+ getAgents: sandbox.stub().returns([]),
58
+ resolveAgent: sandbox.stub().returns(undefined)
59
+ };
60
+ mockDeserRegistry = {
61
+ deserialize: sandbox.stub().resolves([])
62
+ };
63
+ mockChangeSetDeserRegistry = {
64
+ deserialize: sandbox.stub().resolves([])
65
+ };
66
+ mockToolInvocationRegistry = {
67
+ getFunction: sandbox.stub().returns(undefined)
68
+ };
69
+ mockVariableService = {
70
+ resolveVariable: sandbox.stub().resolves(undefined)
71
+ };
72
+ mockRequestParser = {
73
+ parseChatRequest: sandbox.stub().resolves({ parts: [], toolRequests: [], variables: [] })
74
+ };
75
+ mockLogger = {
76
+ debug: sandbox.stub(),
77
+ info: sandbox.stub(),
78
+ warn: sandbox.stub(),
79
+ error: sandbox.stub()
80
+ };
81
+ const container = new inversify_1.Container();
82
+ container.bind(chat_service_1.ChatServiceImpl).toSelf().inSingletonScope();
83
+ container.bind(chat_agent_service_1.ChatAgentService).toConstantValue(mockAgentService);
84
+ container.bind(chat_session_store_1.ChatSessionStore).toConstantValue(mockSessionStore);
85
+ container.bind(chat_content_deserializer_1.ChatContentDeserializerRegistry).toConstantValue(mockDeserRegistry);
86
+ container.bind(change_set_element_deserializer_1.ChangeSetElementDeserializerRegistry).toConstantValue(mockChangeSetDeserRegistry);
87
+ container.bind(ai_core_1.ToolInvocationRegistry).toConstantValue(mockToolInvocationRegistry);
88
+ container.bind(chat_request_parser_1.ChatRequestParser).toConstantValue(mockRequestParser);
89
+ container.bind(ai_core_1.AIVariableService).toConstantValue(mockVariableService);
90
+ container.bind(core_1.ILogger).toConstantValue(mockLogger);
91
+ chatService = container.get(chat_service_1.ChatServiceImpl);
92
+ });
93
+ afterEach(() => {
94
+ sandbox.restore();
95
+ });
96
+ describe('deleteSession', () => {
97
+ it('should delete child sessions when deleting a parent session', async () => {
98
+ // Create a parent session
99
+ const parentSession = chatService.createSession();
100
+ // Create a child session by directly setting rootSessionId
101
+ const childSession = chatService.createSession();
102
+ childSession.rootSessionId = parentSession.id;
103
+ // Delete the parent session
104
+ await chatService.deleteSession(parentSession.id);
105
+ // Verify parent session was deleted
106
+ (0, chai_1.expect)(chatService.getSession(parentSession.id)).to.be.undefined;
107
+ // Verify child session was also deleted (cascade delete)
108
+ (0, chai_1.expect)(chatService.getSession(childSession.id)).to.be.undefined;
109
+ // Verify deleteSession was called for both sessions
110
+ (0, chai_1.expect)(mockSessionStore.deleteSession.callCount).to.equal(2);
111
+ (0, chai_1.expect)(mockSessionStore.deleteSession.calledWith(parentSession.id)).to.be.true;
112
+ (0, chai_1.expect)(mockSessionStore.deleteSession.calledWith(childSession.id)).to.be.true;
113
+ });
114
+ it('should handle multiple child sessions', async () => {
115
+ // Create a parent session
116
+ const parentSession = chatService.createSession();
117
+ // Create multiple child sessions
118
+ const child1 = chatService.createSession();
119
+ child1.rootSessionId = parentSession.id;
120
+ const child2 = chatService.createSession();
121
+ child2.rootSessionId = parentSession.id;
122
+ const child3 = chatService.createSession();
123
+ child3.rootSessionId = parentSession.id;
124
+ // Delete the parent session
125
+ await chatService.deleteSession(parentSession.id);
126
+ // Verify all sessions were deleted
127
+ (0, chai_1.expect)(chatService.getSession(parentSession.id)).to.be.undefined;
128
+ (0, chai_1.expect)(chatService.getSession(child1.id)).to.be.undefined;
129
+ (0, chai_1.expect)(chatService.getSession(child2.id)).to.be.undefined;
130
+ (0, chai_1.expect)(chatService.getSession(child3.id)).to.be.undefined;
131
+ // Verify deleteSession was called for all sessions
132
+ (0, chai_1.expect)(mockSessionStore.deleteSession.callCount).to.equal(4);
133
+ });
134
+ it('should not delete sessions without rootSessionId', async () => {
135
+ // Create a standalone session
136
+ const standaloneSession = chatService.createSession();
137
+ // Delete it
138
+ await chatService.deleteSession(standaloneSession.id);
139
+ // Verify only that session was deleted
140
+ (0, chai_1.expect)(chatService.getSession(standaloneSession.id)).to.be.undefined;
141
+ (0, chai_1.expect)(mockSessionStore.deleteSession.callCount).to.equal(1);
142
+ });
143
+ it('should delete persisted-only child sessions that are not loaded in memory', async () => {
144
+ // Parent is in memory; the child exists only in the persisted index (e.g. after a reload).
145
+ const parentSession = chatService.createSession();
146
+ const persistedChildId = 'persisted-child-id';
147
+ mockSessionStore.getSessionIndex.resolves({
148
+ [persistedChildId]: {
149
+ sessionId: persistedChildId,
150
+ title: 'Persisted child',
151
+ saveDate: 0,
152
+ location: parentSession.model.location,
153
+ rootSessionId: parentSession.id
154
+ }
155
+ });
156
+ await chatService.deleteSession(parentSession.id);
157
+ // Both the in-memory parent and the persisted-only child are removed from storage.
158
+ (0, chai_1.expect)(mockSessionStore.deleteSession.calledWith(parentSession.id)).to.be.true;
159
+ (0, chai_1.expect)(mockSessionStore.deleteSession.calledWith(persistedChildId)).to.be.true;
160
+ });
161
+ it('should not delete sessions with different rootSessionId', async () => {
162
+ // Create two independent sessions
163
+ const session1 = chatService.createSession();
164
+ const session2 = chatService.createSession();
165
+ // Set session2 as a child of a non-existent session
166
+ session2.rootSessionId = 'non-existent-session-id';
167
+ // Delete session1
168
+ await chatService.deleteSession(session1.id);
169
+ // Verify only session1 was deleted
170
+ (0, chai_1.expect)(chatService.getSession(session1.id)).to.be.undefined;
171
+ (0, chai_1.expect)(chatService.getSession(session2.id)).to.not.be.undefined;
172
+ (0, chai_1.expect)(mockSessionStore.deleteSession.callCount).to.equal(1);
173
+ (0, chai_1.expect)(mockSessionStore.deleteSession.calledWith(session1.id)).to.be.true;
174
+ });
175
+ });
176
+ });
177
+ //# sourceMappingURL=chat-service.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-service.spec.js","sourceRoot":"","sources":["../../src/common/chat-service.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=chat-session-status.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-session-status.spec.d.ts","sourceRoot":"","sources":["../../src/common/chat-session-status.spec.ts"],"names":[],"mappings":""}