@theia/ai-chat 1.67.0-next.56 → 1.67.0-next.86
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/browser/agent-delegation-tool.d.ts +25 -0
- package/lib/browser/agent-delegation-tool.d.ts.map +1 -0
- package/lib/browser/agent-delegation-tool.js +196 -0
- package/lib/browser/agent-delegation-tool.js.map +1 -0
- package/lib/browser/ai-chat-frontend-contribution.d.ts +11 -0
- package/lib/browser/ai-chat-frontend-contribution.d.ts.map +1 -0
- package/lib/browser/ai-chat-frontend-contribution.js +56 -0
- package/lib/browser/ai-chat-frontend-contribution.js.map +1 -0
- package/lib/browser/ai-chat-frontend-module.d.ts +4 -0
- package/lib/browser/ai-chat-frontend-module.d.ts.map +1 -0
- package/lib/browser/ai-chat-frontend-module.js +143 -0
- package/lib/browser/ai-chat-frontend-module.js.map +1 -0
- package/lib/browser/change-set-decorator-service.d.ts +24 -0
- package/lib/browser/change-set-decorator-service.d.ts.map +1 -0
- package/lib/browser/change-set-decorator-service.js +66 -0
- package/lib/browser/change-set-decorator-service.js.map +1 -0
- package/lib/browser/change-set-file-element-deserializer.d.ts +7 -0
- package/lib/browser/change-set-file-element-deserializer.d.ts.map +1 -0
- package/lib/browser/change-set-file-element-deserializer.js +61 -0
- package/lib/browser/change-set-file-element-deserializer.js.map +1 -0
- package/lib/browser/change-set-file-element.d.ts +122 -0
- package/lib/browser/change-set-file-element.d.ts.map +1 -0
- package/lib/browser/change-set-file-element.js +435 -0
- package/lib/browser/change-set-file-element.js.map +1 -0
- package/lib/browser/change-set-file-resource.d.ts +4 -0
- package/lib/browser/change-set-file-resource.d.ts.map +1 -0
- package/lib/browser/change-set-file-resource.js +24 -0
- package/lib/browser/change-set-file-resource.js.map +1 -0
- package/lib/browser/change-set-file-service.d.ts +32 -0
- package/lib/browser/change-set-file-service.d.ts.map +1 -0
- package/lib/browser/change-set-file-service.js +161 -0
- package/lib/browser/change-set-file-service.js.map +1 -0
- package/lib/browser/change-set-variable.d.ts +11 -0
- package/lib/browser/change-set-variable.d.ts.map +1 -0
- package/lib/browser/change-set-variable.js +64 -0
- package/lib/browser/change-set-variable.js.map +1 -0
- package/lib/browser/chat-session-store-impl.d.ts +36 -0
- package/lib/browser/chat-session-store-impl.d.ts.map +1 -0
- package/lib/browser/chat-session-store-impl.js +287 -0
- package/lib/browser/chat-session-store-impl.js.map +1 -0
- package/lib/browser/chat-tool-preference-bindings.d.ts +34 -0
- package/lib/browser/chat-tool-preference-bindings.d.ts.map +1 -0
- package/lib/browser/chat-tool-preference-bindings.js +122 -0
- package/lib/browser/chat-tool-preference-bindings.js.map +1 -0
- package/lib/browser/chat-tool-request-service.d.ts +21 -0
- package/lib/browser/chat-tool-request-service.d.ts.map +1 -0
- package/lib/browser/chat-tool-request-service.js +90 -0
- package/lib/browser/chat-tool-request-service.js.map +1 -0
- package/lib/browser/context-file-validation-service.d.ts +15 -0
- package/lib/browser/context-file-validation-service.d.ts.map +1 -0
- package/lib/browser/context-file-validation-service.js +26 -0
- package/lib/browser/context-file-validation-service.js.map +1 -0
- package/lib/browser/context-file-variable-label-provider.d.ts +14 -0
- package/lib/browser/context-file-variable-label-provider.d.ts.map +1 -0
- package/lib/browser/context-file-variable-label-provider.js +63 -0
- package/lib/browser/context-file-variable-label-provider.js.map +1 -0
- package/lib/browser/context-variable-label-provider.d.ts +9 -0
- package/lib/browser/context-variable-label-provider.d.ts.map +1 -0
- package/lib/browser/context-variable-label-provider.js +55 -0
- package/lib/browser/context-variable-label-provider.js.map +1 -0
- package/lib/browser/custom-agent-factory.d.ts +4 -0
- package/lib/browser/custom-agent-factory.d.ts.map +1 -0
- package/lib/browser/custom-agent-factory.js +20 -0
- package/lib/browser/custom-agent-factory.js.map +1 -0
- package/lib/browser/custom-agent-frontend-application-contribution.d.ts +13 -0
- package/lib/browser/custom-agent-frontend-application-contribution.d.ts.map +1 -0
- package/lib/browser/custom-agent-frontend-application-contribution.js +83 -0
- package/lib/browser/custom-agent-frontend-application-contribution.js.map +1 -0
- package/lib/browser/delegation-response-content.d.ts +20 -0
- package/lib/browser/delegation-response-content.d.ts.map +1 -0
- package/lib/browser/delegation-response-content.js +47 -0
- package/lib/browser/delegation-response-content.js.map +1 -0
- package/lib/browser/file-chat-variable-contribution.d.ts +32 -0
- package/lib/browser/file-chat-variable-contribution.d.ts.map +1 -0
- package/lib/browser/file-chat-variable-contribution.js +241 -0
- package/lib/browser/file-chat-variable-contribution.js.map +1 -0
- package/lib/browser/frontend-chat-service.d.ts +15 -0
- package/lib/browser/frontend-chat-service.d.ts.map +1 -0
- package/lib/browser/frontend-chat-service.js +72 -0
- package/lib/browser/frontend-chat-service.js.map +1 -0
- package/lib/browser/image-context-variable-contribution.d.ts +27 -0
- package/lib/browser/image-context-variable-contribution.d.ts.map +1 -0
- package/lib/browser/image-context-variable-contribution.js +149 -0
- package/lib/browser/image-context-variable-contribution.js.map +1 -0
- package/lib/browser/task-context-service.d.ts +46 -0
- package/lib/browser/task-context-service.d.ts.map +1 -0
- package/lib/browser/task-context-service.js +256 -0
- package/lib/browser/task-context-service.js.map +1 -0
- package/lib/browser/task-context-storage-service.d.ts +19 -0
- package/lib/browser/task-context-storage-service.d.ts.map +1 -0
- package/lib/browser/task-context-storage-service.js +80 -0
- package/lib/browser/task-context-storage-service.js.map +1 -0
- package/lib/browser/task-context-variable-contribution.d.ts +20 -0
- package/lib/browser/task-context-variable-contribution.d.ts.map +1 -0
- package/lib/browser/task-context-variable-contribution.js +101 -0
- package/lib/browser/task-context-variable-contribution.js.map +1 -0
- package/lib/browser/task-context-variable-label-provider.d.ts +21 -0
- package/lib/browser/task-context-variable-label-provider.d.ts.map +1 -0
- package/lib/browser/task-context-variable-label-provider.js +83 -0
- package/lib/browser/task-context-variable-label-provider.js.map +1 -0
- package/lib/browser/task-context-variable.d.ts +3 -0
- package/lib/browser/task-context-variable.d.ts.map +1 -0
- package/lib/browser/task-context-variable.js +33 -0
- package/lib/browser/task-context-variable.js.map +1 -0
- package/lib/common/ai-chat-preferences.d.ts +5 -0
- package/lib/common/ai-chat-preferences.d.ts.map +1 -0
- package/lib/common/ai-chat-preferences.js +40 -0
- package/lib/common/ai-chat-preferences.js.map +1 -0
- package/lib/common/change-set-element-deserializer.d.ts +30 -0
- package/lib/common/change-set-element-deserializer.d.ts.map +1 -0
- package/lib/common/change-set-element-deserializer.js +81 -0
- package/lib/common/change-set-element-deserializer.js.map +1 -0
- package/lib/common/change-set.d.ts +85 -0
- package/lib/common/change-set.d.ts.map +1 -0
- package/lib/common/change-set.js +133 -0
- package/lib/common/change-set.js.map +1 -0
- package/lib/common/chat-agent-service.d.ts +46 -0
- package/lib/common/chat-agent-service.d.ts.map +1 -0
- package/lib/common/chat-agent-service.js +79 -0
- package/lib/common/chat-agent-service.js.map +1 -0
- package/lib/common/chat-agents-variable-contribution.d.ts +17 -0
- package/lib/common/chat-agents-variable-contribution.d.ts.map +1 -0
- package/lib/common/chat-agents-variable-contribution.js +67 -0
- package/lib/common/chat-agents-variable-contribution.js.map +1 -0
- package/lib/common/chat-agents.d.ts +138 -0
- package/lib/common/chat-agents.d.ts.map +1 -0
- package/lib/common/chat-agents.js +428 -0
- package/lib/common/chat-agents.js.map +1 -0
- package/lib/common/chat-auto-save.spec.d.ts +2 -0
- package/lib/common/chat-auto-save.spec.d.ts.map +1 -0
- package/lib/common/chat-auto-save.spec.js +304 -0
- package/lib/common/chat-auto-save.spec.js.map +1 -0
- package/lib/common/chat-content-deserializer.d.ts +161 -0
- package/lib/common/chat-content-deserializer.d.ts.map +1 -0
- package/lib/common/chat-content-deserializer.js +166 -0
- package/lib/common/chat-content-deserializer.js.map +1 -0
- package/lib/common/chat-content-deserializer.spec.d.ts +2 -0
- package/lib/common/chat-content-deserializer.spec.d.ts.map +1 -0
- package/lib/common/chat-content-deserializer.spec.js +307 -0
- package/lib/common/chat-content-deserializer.spec.js.map +1 -0
- package/lib/common/chat-model-serialization.d.ts +110 -0
- package/lib/common/chat-model-serialization.d.ts.map +1 -0
- package/lib/common/chat-model-serialization.js +20 -0
- package/lib/common/chat-model-serialization.js.map +1 -0
- package/lib/common/chat-model-serialization.spec.d.ts +2 -0
- package/lib/common/chat-model-serialization.spec.d.ts.map +1 -0
- package/lib/common/chat-model-serialization.spec.js +278 -0
- package/lib/common/chat-model-serialization.spec.js.map +1 -0
- package/lib/common/chat-model-util.d.ts +7 -0
- package/lib/common/chat-model-util.d.ts.map +1 -0
- package/lib/common/chat-model-util.js +50 -0
- package/lib/common/chat-model-util.js.map +1 -0
- package/lib/common/chat-model.d.ts +923 -0
- package/lib/common/chat-model.d.ts.map +1 -0
- package/lib/common/chat-model.js +1791 -0
- package/lib/common/chat-model.js.map +1 -0
- package/lib/common/chat-request-parser.d.ts +38 -0
- package/lib/common/chat-request-parser.d.ts.map +1 -0
- package/lib/common/chat-request-parser.js +230 -0
- package/lib/common/chat-request-parser.js.map +1 -0
- package/lib/common/chat-request-parser.spec.d.ts +2 -0
- package/lib/common/chat-request-parser.spec.d.ts.map +1 -0
- package/lib/common/chat-request-parser.spec.js +235 -0
- package/lib/common/chat-request-parser.spec.js.map +1 -0
- package/lib/common/chat-service-deletion.spec.d.ts +2 -0
- package/lib/common/chat-service-deletion.spec.d.ts.map +1 -0
- package/lib/common/chat-service-deletion.spec.js +221 -0
- package/lib/common/chat-service-deletion.spec.js.map +1 -0
- package/lib/common/chat-service.d.ts +153 -0
- package/lib/common/chat-service.d.ts.map +1 -0
- package/lib/common/chat-service.js +474 -0
- package/lib/common/chat-service.js.map +1 -0
- package/lib/common/chat-session-naming-prompt-template.d.ts +3 -0
- package/lib/common/chat-session-naming-prompt-template.d.ts.map +1 -0
- package/lib/common/chat-session-naming-prompt-template.js +31 -0
- package/lib/common/chat-session-naming-prompt-template.js.map +1 -0
- package/lib/common/chat-session-naming-service.d.ts +26 -0
- package/lib/common/chat-session-naming-service.d.ts.map +1 -0
- package/lib/common/chat-session-naming-service.js +119 -0
- package/lib/common/chat-session-naming-service.js.map +1 -0
- package/lib/common/chat-session-store.d.ts +43 -0
- package/lib/common/chat-session-store.d.ts.map +1 -0
- package/lib/common/chat-session-store.js +20 -0
- package/lib/common/chat-session-store.js.map +1 -0
- package/lib/common/chat-session-summary-agent-prompt.d.ts +8 -0
- package/lib/common/chat-session-summary-agent-prompt.d.ts.map +1 -0
- package/lib/common/chat-session-summary-agent-prompt.js +33 -0
- package/lib/common/chat-session-summary-agent-prompt.js.map +1 -0
- package/lib/common/chat-session-summary-agent.d.ts +16 -0
- package/lib/common/chat-session-summary-agent.d.ts.map +1 -0
- package/lib/common/chat-session-summary-agent.js +48 -0
- package/lib/common/chat-session-summary-agent.js.map +1 -0
- package/lib/common/chat-string-utils.d.ts +3 -0
- package/lib/common/chat-string-utils.d.ts.map +1 -0
- package/lib/common/chat-string-utils.js +27 -0
- package/lib/common/chat-string-utils.js.map +1 -0
- package/lib/common/chat-tool-preferences.d.ts +23 -0
- package/lib/common/chat-tool-preferences.d.ts.map +1 -0
- package/lib/common/chat-tool-preferences.js +68 -0
- package/lib/common/chat-tool-preferences.js.map +1 -0
- package/lib/common/chat-tool-request-service.d.ts +18 -0
- package/lib/common/chat-tool-request-service.d.ts.map +1 -0
- package/lib/common/chat-tool-request-service.js +52 -0
- package/lib/common/chat-tool-request-service.js.map +1 -0
- package/lib/common/context-details-variable.d.ts +9 -0
- package/lib/common/context-details-variable.d.ts.map +1 -0
- package/lib/common/context-details-variable.js +57 -0
- package/lib/common/context-details-variable.js.map +1 -0
- package/lib/common/context-summary-variable.d.ts +9 -0
- package/lib/common/context-summary-variable.d.ts.map +1 -0
- package/lib/common/context-summary-variable.js +57 -0
- package/lib/common/context-summary-variable.js.map +1 -0
- package/lib/common/context-variables.d.ts +4 -0
- package/lib/common/context-variables.d.ts.map +1 -0
- package/lib/common/context-variables.js +22 -0
- package/lib/common/context-variables.js.map +1 -0
- package/lib/common/custom-chat-agent.d.ts +10 -0
- package/lib/common/custom-chat-agent.d.ts.map +1 -0
- package/lib/common/custom-chat-agent.js +40 -0
- package/lib/common/custom-chat-agent.js.map +1 -0
- package/lib/common/image-context-variable.d.ts +29 -0
- package/lib/common/image-context-variable.d.ts.map +1 -0
- package/lib/common/image-context-variable.js +114 -0
- package/lib/common/image-context-variable.js.map +1 -0
- package/lib/common/index.d.ts +13 -0
- package/lib/common/index.d.ts.map +1 -0
- package/lib/common/index.js +31 -0
- package/lib/common/index.js.map +1 -0
- package/lib/common/parse-contents-with-incomplete-parts.spec.d.ts +2 -0
- package/lib/common/parse-contents-with-incomplete-parts.spec.d.ts.map +1 -0
- package/lib/common/parse-contents-with-incomplete-parts.spec.js +103 -0
- package/lib/common/parse-contents-with-incomplete-parts.spec.js.map +1 -0
- package/lib/common/parse-contents.d.ts +12 -0
- package/lib/common/parse-contents.d.ts.map +1 -0
- package/lib/common/parse-contents.js +107 -0
- package/lib/common/parse-contents.js.map +1 -0
- package/lib/common/parse-contents.spec.d.ts +10 -0
- package/lib/common/parse-contents.spec.d.ts.map +1 -0
- package/lib/common/parse-contents.spec.js +146 -0
- package/lib/common/parse-contents.spec.js.map +1 -0
- package/lib/common/parsed-chat-request.d.ts +66 -0
- package/lib/common/parsed-chat-request.d.ts.map +1 -0
- package/lib/common/parsed-chat-request.js +83 -0
- package/lib/common/parsed-chat-request.js.map +1 -0
- package/lib/common/response-content-matcher.d.ts +69 -0
- package/lib/common/response-content-matcher.d.ts.map +1 -0
- package/lib/common/response-content-matcher.js +97 -0
- package/lib/common/response-content-matcher.js.map +1 -0
- package/lib/node/ai-chat-backend-module.d.ts +4 -0
- package/lib/node/ai-chat-backend-module.d.ts.map +1 -0
- package/lib/node/ai-chat-backend-module.js +26 -0
- package/lib/node/ai-chat-backend-module.js.map +1 -0
- package/package.json +9 -9
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-agents.js","sourceRoot":"","sources":["../../src/common/chat-agents.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-auto-save.spec.d.ts","sourceRoot":"","sources":["../../src/common/chat-auto-save.spec.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,304 @@
|
|
|
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_agents_1 = require("./chat-agents");
|
|
27
|
+
const chat_content_deserializer_1 = require("./chat-content-deserializer");
|
|
28
|
+
const change_set_element_deserializer_1 = require("./change-set-element-deserializer");
|
|
29
|
+
describe('Chat Auto-Save Mechanism', () => {
|
|
30
|
+
let chatService;
|
|
31
|
+
let sessionStore;
|
|
32
|
+
let container;
|
|
33
|
+
class MockChatSessionStore {
|
|
34
|
+
constructor() {
|
|
35
|
+
this.saveCount = 0;
|
|
36
|
+
this.savedSessions = [];
|
|
37
|
+
this.lastSaveTimes = new Map();
|
|
38
|
+
}
|
|
39
|
+
async storeSessions(...sessions) {
|
|
40
|
+
this.saveCount++;
|
|
41
|
+
this.savedSessions = sessions;
|
|
42
|
+
// Track save times per session
|
|
43
|
+
sessions.forEach(session => {
|
|
44
|
+
const id = 'model' in session ? session.model.id : session.id;
|
|
45
|
+
this.lastSaveTimes.set(id, Date.now());
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
async readSession(sessionId) {
|
|
49
|
+
return undefined;
|
|
50
|
+
}
|
|
51
|
+
async deleteSession(sessionId) {
|
|
52
|
+
// No-op for mock
|
|
53
|
+
}
|
|
54
|
+
async clearAllSessions() {
|
|
55
|
+
this.savedSessions = [];
|
|
56
|
+
this.saveCount = 0;
|
|
57
|
+
this.lastSaveTimes.clear();
|
|
58
|
+
}
|
|
59
|
+
async getSessionIndex() {
|
|
60
|
+
return {};
|
|
61
|
+
}
|
|
62
|
+
async setSessionTitle(sessionId, title) {
|
|
63
|
+
// No-op for mock
|
|
64
|
+
}
|
|
65
|
+
reset() {
|
|
66
|
+
this.saveCount = 0;
|
|
67
|
+
this.savedSessions = [];
|
|
68
|
+
this.lastSaveTimes.clear();
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
class MockChatAgentService {
|
|
72
|
+
constructor() {
|
|
73
|
+
this.testAgent = {
|
|
74
|
+
id: 'test-agent',
|
|
75
|
+
name: 'Test Agent',
|
|
76
|
+
invoke: () => Promise.resolve()
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
getAgent() {
|
|
80
|
+
return this.testAgent;
|
|
81
|
+
}
|
|
82
|
+
getAgents() {
|
|
83
|
+
return [this.testAgent];
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
class MockChatRequestParser {
|
|
87
|
+
parseChatRequest() {
|
|
88
|
+
return Promise.resolve({
|
|
89
|
+
request: { text: 'test' },
|
|
90
|
+
parts: [{
|
|
91
|
+
kind: 'text',
|
|
92
|
+
text: 'test',
|
|
93
|
+
promptText: 'test',
|
|
94
|
+
range: { start: 0, endExclusive: 4 }
|
|
95
|
+
}],
|
|
96
|
+
toolRequests: new Map(),
|
|
97
|
+
variables: []
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
class MockAIVariableService {
|
|
102
|
+
resolveVariables() {
|
|
103
|
+
return Promise.resolve([]);
|
|
104
|
+
}
|
|
105
|
+
resolveVariable() {
|
|
106
|
+
return Promise.resolve(undefined);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
class MockLogger {
|
|
110
|
+
error() { }
|
|
111
|
+
warn() { }
|
|
112
|
+
info() { }
|
|
113
|
+
debug() { }
|
|
114
|
+
}
|
|
115
|
+
beforeEach(() => {
|
|
116
|
+
container = new inversify_1.Container();
|
|
117
|
+
sessionStore = new MockChatSessionStore();
|
|
118
|
+
container.bind(chat_session_store_1.ChatSessionStore).toConstantValue(sessionStore);
|
|
119
|
+
container.bind(chat_agent_service_1.ChatAgentService).toConstantValue(new MockChatAgentService());
|
|
120
|
+
container.bind(chat_request_parser_1.ChatRequestParser).toConstantValue(new MockChatRequestParser());
|
|
121
|
+
container.bind(ai_core_1.AIVariableService).toConstantValue(new MockAIVariableService());
|
|
122
|
+
container.bind(core_1.ILogger).toConstantValue(new MockLogger());
|
|
123
|
+
// Bind deserializer registries
|
|
124
|
+
const contentRegistry = new chat_content_deserializer_1.ChatContentDeserializerRegistryImpl();
|
|
125
|
+
new chat_content_deserializer_1.DefaultChatContentDeserializerContribution().registerDeserializers(contentRegistry);
|
|
126
|
+
container.bind(chat_content_deserializer_1.ChatContentDeserializerRegistry).toConstantValue(contentRegistry);
|
|
127
|
+
container.bind(change_set_element_deserializer_1.ChangeSetElementDeserializerRegistry).toConstantValue(new change_set_element_deserializer_1.ChangeSetElementDeserializerRegistryImpl());
|
|
128
|
+
container.bind(chat_service_1.ChatServiceImpl).toSelf().inSingletonScope();
|
|
129
|
+
chatService = container.get(chat_service_1.ChatServiceImpl);
|
|
130
|
+
});
|
|
131
|
+
describe('Auto-save on response completion', () => {
|
|
132
|
+
it('should auto-save when response is complete', async () => {
|
|
133
|
+
const session = chatService.createSession(chat_agents_1.ChatAgentLocation.Panel);
|
|
134
|
+
const initialSaveCount = sessionStore.saveCount;
|
|
135
|
+
// Send a request
|
|
136
|
+
const invocation = await chatService.sendRequest(session.id, { text: 'Test request' });
|
|
137
|
+
const responseModel = await invocation.responseCreated;
|
|
138
|
+
// Complete the response
|
|
139
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
140
|
+
responseModel.complete();
|
|
141
|
+
// Wait for auto-save to complete (debounce is 500ms + execution time)
|
|
142
|
+
await new Promise(resolve => setTimeout(resolve, 700));
|
|
143
|
+
// Verify session was auto-saved
|
|
144
|
+
(0, chai_1.expect)(sessionStore.saveCount).to.be.greaterThan(initialSaveCount);
|
|
145
|
+
});
|
|
146
|
+
it('should auto-save when response has error', async () => {
|
|
147
|
+
const session = chatService.createSession(chat_agents_1.ChatAgentLocation.Panel);
|
|
148
|
+
const initialSaveCount = sessionStore.saveCount;
|
|
149
|
+
// Send a request that will error
|
|
150
|
+
const invocation = await chatService.sendRequest(session.id, { text: 'Test request' });
|
|
151
|
+
const responseModel = await invocation.responseCreated;
|
|
152
|
+
// Simulate error
|
|
153
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
154
|
+
responseModel.error(new Error('Test error'));
|
|
155
|
+
// Wait for auto-save to complete (debounce is 500ms + execution time)
|
|
156
|
+
await new Promise(resolve => setTimeout(resolve, 700));
|
|
157
|
+
// Verify session was auto-saved even on error
|
|
158
|
+
(0, chai_1.expect)(sessionStore.saveCount).to.be.greaterThan(initialSaveCount);
|
|
159
|
+
});
|
|
160
|
+
});
|
|
161
|
+
describe('Auto-save on changeset updates', () => {
|
|
162
|
+
it('should auto-save when changeset elements are updated', async () => {
|
|
163
|
+
const session = chatService.createSession(chat_agents_1.ChatAgentLocation.Panel);
|
|
164
|
+
// Add a request so the session is not empty
|
|
165
|
+
await chatService.sendRequest(session.id, { text: 'Test request' });
|
|
166
|
+
sessionStore.reset();
|
|
167
|
+
// Trigger changeset update event via model's internal emitter
|
|
168
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
169
|
+
session.model._onDidChangeEmitter.fire({ kind: 'updateChangeSet', elements: [] });
|
|
170
|
+
// Wait for auto-save to complete (debounce is 500ms + execution time)
|
|
171
|
+
await new Promise(resolve => setTimeout(resolve, 700));
|
|
172
|
+
// Verify session was auto-saved
|
|
173
|
+
(0, chai_1.expect)(sessionStore.saveCount).to.be.greaterThan(0);
|
|
174
|
+
});
|
|
175
|
+
it('should not auto-save on non-changeset events', async () => {
|
|
176
|
+
const session = chatService.createSession(chat_agents_1.ChatAgentLocation.Panel);
|
|
177
|
+
sessionStore.reset();
|
|
178
|
+
// Trigger other kind of event (like 'addRequest')
|
|
179
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
180
|
+
session.model._onDidChangeEmitter.fire({ kind: 'addRequest' });
|
|
181
|
+
// Wait to ensure no save happens
|
|
182
|
+
await new Promise(resolve => setTimeout(resolve, 10));
|
|
183
|
+
// Verify no auto-save occurred
|
|
184
|
+
(0, chai_1.expect)(sessionStore.saveCount).to.equal(0);
|
|
185
|
+
});
|
|
186
|
+
});
|
|
187
|
+
describe('Auto-save for all sessions', () => {
|
|
188
|
+
it('should save all non-empty sessions', async () => {
|
|
189
|
+
const session1 = chatService.createSession(chat_agents_1.ChatAgentLocation.Panel);
|
|
190
|
+
const session2 = chatService.createSession(chat_agents_1.ChatAgentLocation.Panel);
|
|
191
|
+
sessionStore.reset();
|
|
192
|
+
// Send requests to both sessions
|
|
193
|
+
const invocation1 = await chatService.sendRequest(session1.id, { text: 'Request 1' });
|
|
194
|
+
const invocation2 = await chatService.sendRequest(session2.id, { text: 'Request 2' });
|
|
195
|
+
// Complete both responses
|
|
196
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
197
|
+
(await invocation1.responseCreated).complete();
|
|
198
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
199
|
+
(await invocation2.responseCreated).complete();
|
|
200
|
+
// Wait for auto-save to complete (debounce is 500ms + execution time)
|
|
201
|
+
await new Promise(resolve => setTimeout(resolve, 700));
|
|
202
|
+
// Verify both sessions were saved (check lastSaveTimes since sessions are saved individually)
|
|
203
|
+
(0, chai_1.expect)(sessionStore.saveCount).to.be.greaterThan(0);
|
|
204
|
+
(0, chai_1.expect)(sessionStore.lastSaveTimes.has(session1.id)).to.be.true;
|
|
205
|
+
(0, chai_1.expect)(sessionStore.lastSaveTimes.has(session2.id)).to.be.true;
|
|
206
|
+
});
|
|
207
|
+
it('should not save empty sessions', async () => {
|
|
208
|
+
// Create session without any requests
|
|
209
|
+
const session = chatService.createSession(chat_agents_1.ChatAgentLocation.Panel);
|
|
210
|
+
sessionStore.reset();
|
|
211
|
+
// Manually trigger save
|
|
212
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
213
|
+
await chatService.saveSession(session.id);
|
|
214
|
+
// Verify empty session was not saved
|
|
215
|
+
const savedSessionIds = sessionStore.savedSessions.map(s => 'model' in s ? s.model.id : s.id);
|
|
216
|
+
(0, chai_1.expect)(savedSessionIds).to.not.include(session.id);
|
|
217
|
+
});
|
|
218
|
+
});
|
|
219
|
+
describe('Auto-save without session store', () => {
|
|
220
|
+
it('should handle auto-save gracefully when session store unavailable', async () => {
|
|
221
|
+
// Create service without session store
|
|
222
|
+
const containerWithoutStore = new inversify_1.Container();
|
|
223
|
+
containerWithoutStore.bind(chat_agent_service_1.ChatAgentService).toConstantValue(new MockChatAgentService());
|
|
224
|
+
containerWithoutStore.bind(chat_request_parser_1.ChatRequestParser).toConstantValue(new MockChatRequestParser());
|
|
225
|
+
containerWithoutStore.bind(ai_core_1.AIVariableService).toConstantValue(new MockAIVariableService());
|
|
226
|
+
containerWithoutStore.bind(core_1.ILogger).toConstantValue(new MockLogger());
|
|
227
|
+
// Bind deserializer registries
|
|
228
|
+
const contentRegistry = new chat_content_deserializer_1.ChatContentDeserializerRegistryImpl();
|
|
229
|
+
new chat_content_deserializer_1.DefaultChatContentDeserializerContribution().registerDeserializers(contentRegistry);
|
|
230
|
+
containerWithoutStore.bind(chat_content_deserializer_1.ChatContentDeserializerRegistry).toConstantValue(contentRegistry);
|
|
231
|
+
containerWithoutStore.bind(change_set_element_deserializer_1.ChangeSetElementDeserializerRegistry).toConstantValue(new change_set_element_deserializer_1.ChangeSetElementDeserializerRegistryImpl());
|
|
232
|
+
containerWithoutStore.bind(chat_service_1.ChatServiceImpl).toSelf().inSingletonScope();
|
|
233
|
+
const serviceWithoutStore = containerWithoutStore.get(chat_service_1.ChatServiceImpl);
|
|
234
|
+
// Create session and send request
|
|
235
|
+
const session = serviceWithoutStore.createSession(chat_agents_1.ChatAgentLocation.Panel);
|
|
236
|
+
const invocation = await serviceWithoutStore.sendRequest(session.id, { text: 'Test' });
|
|
237
|
+
// Complete response - should not throw even without session store
|
|
238
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
239
|
+
(await invocation.responseCreated).complete();
|
|
240
|
+
// Wait to ensure no errors
|
|
241
|
+
await new Promise(resolve => setTimeout(resolve, 10));
|
|
242
|
+
// No assertion needed - we're just verifying no exception is thrown
|
|
243
|
+
});
|
|
244
|
+
});
|
|
245
|
+
describe('Auto-save setup for restored sessions', () => {
|
|
246
|
+
it('should set up auto-save for restored sessions', async () => {
|
|
247
|
+
// Create and save a session
|
|
248
|
+
const session1 = chatService.createSession(chat_agents_1.ChatAgentLocation.Panel);
|
|
249
|
+
await chatService.sendRequest(session1.id, { text: 'Test' });
|
|
250
|
+
const serialized = session1.model.toSerializable();
|
|
251
|
+
// Create new service instance
|
|
252
|
+
const newContainer = new inversify_1.Container();
|
|
253
|
+
const newSessionStore = new MockChatSessionStore();
|
|
254
|
+
newContainer.bind(chat_session_store_1.ChatSessionStore).toConstantValue(newSessionStore);
|
|
255
|
+
newContainer.bind(chat_agent_service_1.ChatAgentService).toConstantValue(new MockChatAgentService());
|
|
256
|
+
newContainer.bind(chat_request_parser_1.ChatRequestParser).toConstantValue(new MockChatRequestParser());
|
|
257
|
+
newContainer.bind(ai_core_1.AIVariableService).toConstantValue(new MockAIVariableService());
|
|
258
|
+
newContainer.bind(core_1.ILogger).toConstantValue(new MockLogger());
|
|
259
|
+
// Bind deserializer registries
|
|
260
|
+
const newContentRegistry = new chat_content_deserializer_1.ChatContentDeserializerRegistryImpl();
|
|
261
|
+
new chat_content_deserializer_1.DefaultChatContentDeserializerContribution().registerDeserializers(newContentRegistry);
|
|
262
|
+
newContainer.bind(chat_content_deserializer_1.ChatContentDeserializerRegistry).toConstantValue(newContentRegistry);
|
|
263
|
+
newContainer.bind(change_set_element_deserializer_1.ChangeSetElementDeserializerRegistry).toConstantValue(new change_set_element_deserializer_1.ChangeSetElementDeserializerRegistryImpl());
|
|
264
|
+
newContainer.bind(chat_service_1.ChatServiceImpl).toSelf().inSingletonScope();
|
|
265
|
+
const newChatService = newContainer.get(chat_service_1.ChatServiceImpl);
|
|
266
|
+
// Mock readSession to return the serialized data
|
|
267
|
+
newSessionStore.readSession = async (id) => ({
|
|
268
|
+
version: 1,
|
|
269
|
+
model: serialized,
|
|
270
|
+
pinnedAgentId: undefined,
|
|
271
|
+
saveDate: Date.now()
|
|
272
|
+
});
|
|
273
|
+
// Restore the session
|
|
274
|
+
const restoredSession = await newChatService.getOrRestoreSession(serialized.sessionId);
|
|
275
|
+
(0, chai_1.expect)(restoredSession).to.not.be.undefined;
|
|
276
|
+
newSessionStore.reset();
|
|
277
|
+
// Trigger changeset update on restored session
|
|
278
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
279
|
+
restoredSession.model._onDidChangeEmitter.fire({ kind: 'updateChangeSet', elements: [] });
|
|
280
|
+
// Wait for auto-save (debounce is 500ms + execution time)
|
|
281
|
+
await new Promise(resolve => setTimeout(resolve, 700));
|
|
282
|
+
// Verify auto-save was set up and triggered
|
|
283
|
+
(0, chai_1.expect)(newSessionStore.saveCount).to.be.greaterThan(0);
|
|
284
|
+
});
|
|
285
|
+
});
|
|
286
|
+
describe('Multiple auto-save triggers', () => {
|
|
287
|
+
it('should handle multiple rapid auto-save triggers', async () => {
|
|
288
|
+
const session = chatService.createSession(chat_agents_1.ChatAgentLocation.Panel);
|
|
289
|
+
// Add a request so the session is not empty
|
|
290
|
+
await chatService.sendRequest(session.id, { text: 'Test request' });
|
|
291
|
+
sessionStore.reset();
|
|
292
|
+
// Trigger multiple changeset updates rapidly
|
|
293
|
+
for (let i = 0; i < 5; i++) {
|
|
294
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
295
|
+
session.model._onDidChangeEmitter.fire({ kind: 'updateChangeSet', elements: [] });
|
|
296
|
+
}
|
|
297
|
+
// Wait for all saves to complete (debounce is 500ms + execution time)
|
|
298
|
+
await new Promise(resolve => setTimeout(resolve, 700));
|
|
299
|
+
// Verify saves were triggered (implementation batches them)
|
|
300
|
+
(0, chai_1.expect)(sessionStore.saveCount).to.be.greaterThan(0);
|
|
301
|
+
});
|
|
302
|
+
});
|
|
303
|
+
});
|
|
304
|
+
//# sourceMappingURL=chat-auto-save.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-auto-save.spec.js","sourceRoot":"","sources":["../../src/common/chat-auto-save.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import { ChatResponseContent } from './chat-model';
|
|
2
|
+
import { SerializableChatResponseContentData } from './chat-model-serialization';
|
|
3
|
+
import { ContributionProvider, ILogger, MaybePromise } from '@theia/core';
|
|
4
|
+
export declare const ChatContentDeserializer: unique symbol;
|
|
5
|
+
/**
|
|
6
|
+
* A deserializer for a specific kind of chat response content.
|
|
7
|
+
*
|
|
8
|
+
* Deserializers are responsible for reconstructing `ChatResponseContent` instances
|
|
9
|
+
* from their serialized data representations. Each deserializer handles a single
|
|
10
|
+
* content type identified by its `kind` property.
|
|
11
|
+
*
|
|
12
|
+
* @template T The type of the data object that this deserializer can process.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```typescript
|
|
16
|
+
* const textDeserializer: ChatContentDeserializer<TextContentData> = {
|
|
17
|
+
* kind: 'text',
|
|
18
|
+
* deserialize: (data) => new TextChatResponseContentImpl(data.content)
|
|
19
|
+
* };
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
export interface ChatContentDeserializer<T = unknown> {
|
|
23
|
+
/**
|
|
24
|
+
* The unique identifier for the content type this deserializer handles.
|
|
25
|
+
* This must match the `kind` property of the serialized content data.
|
|
26
|
+
*/
|
|
27
|
+
readonly kind: string;
|
|
28
|
+
/**
|
|
29
|
+
* Deserializes the given data into a `ChatResponseContent` instance.
|
|
30
|
+
*
|
|
31
|
+
* @param data The serialized data to deserialize. The structure depends on the content kind.
|
|
32
|
+
* @returns The deserialized content, or a Promise that resolves to the deserialized content.
|
|
33
|
+
*/
|
|
34
|
+
deserialize(data: T): MaybePromise<ChatResponseContent>;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Contribution point for registering chat content deserializers.
|
|
38
|
+
*
|
|
39
|
+
* Implement this interface to contribute custom deserializers for application-specific
|
|
40
|
+
* or extension-specific chat response content types. Multiple contributions can be
|
|
41
|
+
* registered, and all will be collected via the contribution provider pattern.
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* ```typescript
|
|
45
|
+
* @injectable()
|
|
46
|
+
* export class MyDeserializerContribution implements ChatContentDeserializerContribution {
|
|
47
|
+
* registerDeserializers(registry: ChatContentDeserializerRegistry): void {
|
|
48
|
+
* registry.register({
|
|
49
|
+
* kind: 'customContent',
|
|
50
|
+
* deserialize: (data: CustomContentData) =>
|
|
51
|
+
* new CustomContentImpl(data.title, data.items)
|
|
52
|
+
* });
|
|
53
|
+
* }
|
|
54
|
+
* }
|
|
55
|
+
*
|
|
56
|
+
* // In your module:
|
|
57
|
+
* bind(ChatContentDeserializerContribution).to(MyDeserializerContribution).inSingletonScope();
|
|
58
|
+
* ```
|
|
59
|
+
*
|
|
60
|
+
* @see {@link ChatContentDeserializerRegistry} for the registry that collects deserializers
|
|
61
|
+
* @see {@link DefaultChatContentDeserializerContribution} for built-in content type deserializers
|
|
62
|
+
*/
|
|
63
|
+
export interface ChatContentDeserializerContribution {
|
|
64
|
+
/**
|
|
65
|
+
* Registers one or more deserializers with the provided registry.
|
|
66
|
+
*
|
|
67
|
+
* This method is called during the registry's initialization phase (at `@postConstruct()` time).
|
|
68
|
+
*
|
|
69
|
+
* @param registry The registry to register deserializers with
|
|
70
|
+
*/
|
|
71
|
+
registerDeserializers(registry: ChatContentDeserializerRegistry): void;
|
|
72
|
+
}
|
|
73
|
+
export declare const ChatContentDeserializerContribution: unique symbol;
|
|
74
|
+
/**
|
|
75
|
+
* Registry for chat content deserializers.
|
|
76
|
+
*
|
|
77
|
+
* This registry maintains a collection of deserializers for different content types
|
|
78
|
+
* and provides methods to register new deserializers and deserialize content data.
|
|
79
|
+
*
|
|
80
|
+
* @example
|
|
81
|
+
* ```typescript
|
|
82
|
+
* // Usage in a service:
|
|
83
|
+
* @inject(ChatContentDeserializerRegistry)
|
|
84
|
+
* protected deserializerRegistry: ChatContentDeserializerRegistry;
|
|
85
|
+
*
|
|
86
|
+
* async restoreContent(): Promise<void> {
|
|
87
|
+
* const restoredContent = this.deserializerRegistry.deserialize(serializedData);
|
|
88
|
+
* }
|
|
89
|
+
* ```
|
|
90
|
+
*
|
|
91
|
+
* @see {@link ChatContentDeserializerContribution} for how to contribute deserializers
|
|
92
|
+
* @see {@link ChatContentDeserializerRegistryImpl} for the default implementation
|
|
93
|
+
*/
|
|
94
|
+
export interface ChatContentDeserializerRegistry {
|
|
95
|
+
/**
|
|
96
|
+
* Registers a deserializer for a specific content kind.
|
|
97
|
+
*
|
|
98
|
+
* If a deserializer for the same kind is already registered, it will be replaced.
|
|
99
|
+
*
|
|
100
|
+
* @param deserializer The deserializer to register
|
|
101
|
+
*/
|
|
102
|
+
register(deserializer: ChatContentDeserializer<unknown>): void;
|
|
103
|
+
/**
|
|
104
|
+
* Deserializes the given serialized content data into a `ChatResponseContent` instance.
|
|
105
|
+
*
|
|
106
|
+
* The registry looks up the appropriate deserializer based on the `kind` property
|
|
107
|
+
* of the serialized data and delegates to that deserializer's `deserialize` method.
|
|
108
|
+
*
|
|
109
|
+
* If no deserializer is found for the content kind, an `UnknownChatResponseContentImpl`
|
|
110
|
+
* instance is returned with the original data and fallback message preserved.
|
|
111
|
+
* A warning is also logged with the missing kind and available kinds.
|
|
112
|
+
*
|
|
113
|
+
* @param serialized The serialized content data to deserialize
|
|
114
|
+
* @returns The deserialized content, or a Promise that resolves to the deserialized content
|
|
115
|
+
*/
|
|
116
|
+
deserialize(serialized: SerializableChatResponseContentData): MaybePromise<ChatResponseContent>;
|
|
117
|
+
}
|
|
118
|
+
export declare const ChatContentDeserializerRegistry: unique symbol;
|
|
119
|
+
/**
|
|
120
|
+
* Default implementation of the chat content deserializer registry.
|
|
121
|
+
*
|
|
122
|
+
* This registry collects deserializers from all bound `ChatContentDeserializerContribution`
|
|
123
|
+
* instances during its post-construction initialization phase. Deserializers are stored
|
|
124
|
+
* in a map keyed by their content kind.
|
|
125
|
+
*
|
|
126
|
+
* The registry handles unknown content types gracefully by returning an
|
|
127
|
+
* `UnknownChatResponseContentImpl` instance when no deserializer is found,
|
|
128
|
+
* ensuring that chat sessions can still be loaded even if some content types
|
|
129
|
+
* are no longer supported or available.
|
|
130
|
+
*
|
|
131
|
+
* @see {@link ChatContentDeserializerRegistry} for the interface definition
|
|
132
|
+
*/
|
|
133
|
+
export declare class ChatContentDeserializerRegistryImpl implements ChatContentDeserializerRegistry {
|
|
134
|
+
/**
|
|
135
|
+
* Map of registered deserializers, keyed by content kind.
|
|
136
|
+
*/
|
|
137
|
+
protected deserializers: Map<string, ChatContentDeserializer<unknown>>;
|
|
138
|
+
protected readonly deserializerContributions: ContributionProvider<ChatContentDeserializerContribution>;
|
|
139
|
+
protected readonly logger: ILogger;
|
|
140
|
+
/**
|
|
141
|
+
* Initializes the registry by collecting deserializers from all contributions.
|
|
142
|
+
* This method is automatically called after construction due to the `@postConstruct` decorator.
|
|
143
|
+
*/
|
|
144
|
+
protected initDeserializers(): void;
|
|
145
|
+
register(deserializer: ChatContentDeserializer): void;
|
|
146
|
+
deserialize(serialized: SerializableChatResponseContentData): MaybePromise<ChatResponseContent>;
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Default implementation of the chat content deserializer contribution.
|
|
150
|
+
*
|
|
151
|
+
* This contribution registers deserializers for all built-in content types supported
|
|
152
|
+
* by Theia AI.
|
|
153
|
+
*
|
|
154
|
+
* Note that some content types have limitations when deserialized from persistence.
|
|
155
|
+
*
|
|
156
|
+
* @see {@link ChatContentDeserializerContribution} for the contribution interface
|
|
157
|
+
*/
|
|
158
|
+
export declare class DefaultChatContentDeserializerContribution implements ChatContentDeserializerContribution {
|
|
159
|
+
registerDeserializers(registry: ChatContentDeserializerRegistry): void;
|
|
160
|
+
}
|
|
161
|
+
//# sourceMappingURL=chat-content-deserializer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-content-deserializer.d.ts","sourceRoot":"","sources":["../../src/common/chat-content-deserializer.ts"],"names":[],"mappings":"AAiBA,OAAO,EACH,mBAAmB,EAwBtB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,mCAAmC,EAAE,MAAM,4BAA4B,CAAC;AACjF,OAAO,EAAE,oBAAoB,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE1E,eAAO,MAAM,uBAAuB,eAAoC,CAAC;AAEzE;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,uBAAuB,CAAC,CAAC,GAAG,OAAO;IAChD;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;;;;OAKG;IACH,WAAW,CAAC,IAAI,EAAE,CAAC,GAAG,YAAY,CAAC,mBAAmB,CAAC,CAAC;CAC3D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,WAAW,mCAAmC;IAChD;;;;;;OAMG;IACH,qBAAqB,CAAC,QAAQ,EAAE,+BAA+B,GAAG,IAAI,CAAC;CAC1E;AACD,eAAO,MAAM,mCAAmC,eAAgD,CAAC;AAEjG;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,+BAA+B;IAC5C;;;;;;OAMG;IACH,QAAQ,CAAC,YAAY,EAAE,uBAAuB,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;IAE/D;;;;;;;;;;;;OAYG;IACH,WAAW,CAAC,UAAU,EAAE,mCAAmC,GAAG,YAAY,CAAC,mBAAmB,CAAC,CAAC;CACnG;AACD,eAAO,MAAM,+BAA+B,eAA4C,CAAC;AAEzF;;;;;;;;;;;;;GAaG;AACH,qBACa,mCAAoC,YAAW,+BAA+B;IACvF;;OAEG;IACH,SAAS,CAAC,aAAa,gDAA8C;IAGrE,SAAS,CAAC,QAAQ,CAAC,yBAAyB,EAAE,oBAAoB,CAAC,mCAAmC,CAAC,CAAC;IAGxG,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAEnC;;;OAGG;IAEH,SAAS,CAAC,iBAAiB,IAAI,IAAI;IAMnC,QAAQ,CAAC,YAAY,EAAE,uBAAuB,GAAG,IAAI;IAIrD,WAAW,CAAC,UAAU,EAAE,mCAAmC,GAAG,YAAY,CAAC,mBAAmB,CAAC;CAYlG;AAED;;;;;;;;;GASG;AACH,qBACa,0CAA2C,YAAW,mCAAmC;IAClG,qBAAqB,CAAC,QAAQ,EAAE,+BAA+B,GAAG,IAAI;CA2FzE"}
|