libre-webui 0.8.6 → 0.11.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.
- package/README.md +64 -46
- package/backend/dist/db.d.ts.map +1 -1
- package/backend/dist/db.js +21 -19
- package/backend/dist/db.js.map +1 -1
- package/backend/dist/index.d.ts.map +1 -1
- package/backend/dist/index.js +31 -944
- package/backend/dist/index.js.map +1 -1
- package/backend/dist/middleware/auth.d.ts.map +1 -1
- package/backend/dist/middleware/auth.js +7 -20
- package/backend/dist/middleware/auth.js.map +1 -1
- package/backend/dist/middleware/index.d.ts.map +1 -1
- package/backend/dist/middleware/index.js +4 -2
- package/backend/dist/middleware/index.js.map +1 -1
- package/backend/dist/models/personaModel.d.ts.map +1 -1
- package/backend/dist/models/personaModel.js +11 -9
- package/backend/dist/models/personaModel.js.map +1 -1
- package/backend/dist/routes/auth.d.ts.map +1 -1
- package/backend/dist/routes/auth.js +36 -14
- package/backend/dist/routes/auth.js.map +1 -1
- package/backend/dist/routes/chat.d.ts.map +1 -1
- package/backend/dist/routes/chat.js +61 -242
- package/backend/dist/routes/chat.js.map +1 -1
- package/backend/dist/routes/documents.d.ts.map +1 -1
- package/backend/dist/routes/documents.js +10 -8
- package/backend/dist/routes/documents.js.map +1 -1
- package/backend/dist/routes/embeddings.d.ts +3 -0
- package/backend/dist/routes/embeddings.d.ts.map +1 -0
- package/backend/dist/routes/embeddings.js +52 -0
- package/backend/dist/routes/embeddings.js.map +1 -0
- package/backend/dist/routes/imageGen.d.ts.map +1 -1
- package/backend/dist/routes/imageGen.js +9 -7
- package/backend/dist/routes/imageGen.js.map +1 -1
- package/backend/dist/routes/ollama.d.ts.map +1 -1
- package/backend/dist/routes/ollama.js +22 -239
- package/backend/dist/routes/ollama.js.map +1 -1
- package/backend/dist/routes/personas.d.ts.map +1 -1
- package/backend/dist/routes/personas.js +3 -1
- package/backend/dist/routes/personas.js.map +1 -1
- package/backend/dist/routes/plugins.d.ts.map +1 -1
- package/backend/dist/routes/plugins.js +7 -105
- package/backend/dist/routes/plugins.js.map +1 -1
- package/backend/dist/routes/tts.d.ts.map +1 -1
- package/backend/dist/routes/tts.js +7 -5
- package/backend/dist/routes/tts.js.map +1 -1
- package/backend/dist/routes/users.d.ts.map +1 -1
- package/backend/dist/routes/users.js +7 -5
- package/backend/dist/routes/users.js.map +1 -1
- package/backend/dist/services/assistantCompletionService.d.ts +26 -0
- package/backend/dist/services/assistantCompletionService.d.ts.map +1 -0
- package/backend/dist/services/assistantCompletionService.js +53 -0
- package/backend/dist/services/assistantCompletionService.js.map +1 -0
- package/backend/dist/services/authService.d.ts +2 -0
- package/backend/dist/services/authService.d.ts.map +1 -1
- package/backend/dist/services/authService.js +15 -7
- package/backend/dist/services/authService.js.map +1 -1
- package/backend/dist/services/chatGenerationService.d.ts +32 -0
- package/backend/dist/services/chatGenerationService.d.ts.map +1 -0
- package/backend/dist/services/chatGenerationService.js +118 -0
- package/backend/dist/services/chatGenerationService.js.map +1 -0
- package/backend/dist/services/chatRequestService.d.ts +55 -0
- package/backend/dist/services/chatRequestService.d.ts.map +1 -0
- package/backend/dist/services/chatRequestService.js +103 -0
- package/backend/dist/services/chatRequestService.js.map +1 -0
- package/backend/dist/services/chatService.d.ts +0 -1
- package/backend/dist/services/chatService.d.ts.map +1 -1
- package/backend/dist/services/chatService.js +17 -113
- package/backend/dist/services/chatService.js.map +1 -1
- package/backend/dist/services/documentService.d.ts.map +1 -1
- package/backend/dist/services/documentService.js +23 -21
- package/backend/dist/services/documentService.js.map +1 -1
- package/backend/dist/services/embeddingService.d.ts +9 -0
- package/backend/dist/services/embeddingService.d.ts.map +1 -0
- package/backend/dist/services/embeddingService.js +155 -0
- package/backend/dist/services/embeddingService.js.map +1 -0
- package/backend/dist/services/encryptionService.d.ts.map +1 -1
- package/backend/dist/services/encryptionService.js +26 -24
- package/backend/dist/services/encryptionService.js.map +1 -1
- package/backend/dist/services/galleryService.d.ts.map +1 -1
- package/backend/dist/services/galleryService.js +8 -6
- package/backend/dist/services/galleryService.js.map +1 -1
- package/backend/dist/services/memoryService.d.ts +2 -13
- package/backend/dist/services/memoryService.d.ts.map +1 -1
- package/backend/dist/services/memoryService.js +45 -211
- package/backend/dist/services/memoryService.js.map +1 -1
- package/backend/dist/services/memoryUtils.d.ts +29 -0
- package/backend/dist/services/memoryUtils.d.ts.map +1 -0
- package/backend/dist/services/memoryUtils.js +165 -0
- package/backend/dist/services/memoryUtils.js.map +1 -0
- package/backend/dist/services/mutationEngineService.d.ts.map +1 -1
- package/backend/dist/services/mutationEngineService.js +5 -3
- package/backend/dist/services/mutationEngineService.js.map +1 -1
- package/backend/dist/services/ollamaService.d.ts.map +1 -1
- package/backend/dist/services/ollamaService.js +67 -34
- package/backend/dist/services/ollamaService.js.map +1 -1
- package/backend/dist/services/personaService.d.ts.map +1 -1
- package/backend/dist/services/personaService.js +6 -2
- package/backend/dist/services/personaService.js.map +1 -1
- package/backend/dist/services/pluginCapabilityRegistryService.d.ts +11 -0
- package/backend/dist/services/pluginCapabilityRegistryService.d.ts.map +1 -0
- package/backend/dist/services/pluginCapabilityRegistryService.js +70 -0
- package/backend/dist/services/pluginCapabilityRegistryService.js.map +1 -0
- package/backend/dist/services/pluginCredentialsService.d.ts.map +1 -1
- package/backend/dist/services/pluginCredentialsService.js +13 -11
- package/backend/dist/services/pluginCredentialsService.js.map +1 -1
- package/backend/dist/services/pluginEmbeddingService.d.ts +26 -0
- package/backend/dist/services/pluginEmbeddingService.d.ts.map +1 -0
- package/backend/dist/services/pluginEmbeddingService.js +159 -0
- package/backend/dist/services/pluginEmbeddingService.js.map +1 -0
- package/backend/dist/services/pluginImageGenerationService.d.ts +29 -0
- package/backend/dist/services/pluginImageGenerationService.d.ts.map +1 -0
- package/backend/dist/services/pluginImageGenerationService.js +402 -0
- package/backend/dist/services/pluginImageGenerationService.js.map +1 -0
- package/backend/dist/services/pluginService.d.ts +21 -17
- package/backend/dist/services/pluginService.d.ts.map +1 -1
- package/backend/dist/services/pluginService.js +135 -1356
- package/backend/dist/services/pluginService.js.map +1 -1
- package/backend/dist/services/pluginTTSService.d.ts +28 -0
- package/backend/dist/services/pluginTTSService.d.ts.map +1 -0
- package/backend/dist/services/pluginTTSService.js +286 -0
- package/backend/dist/services/pluginTTSService.js.map +1 -0
- package/backend/dist/services/pluginVariablesService.d.ts.map +1 -1
- package/backend/dist/services/pluginVariablesService.js +7 -5
- package/backend/dist/services/pluginVariablesService.js.map +1 -1
- package/backend/dist/services/preferencesService.d.ts +1 -0
- package/backend/dist/services/preferencesService.d.ts.map +1 -1
- package/backend/dist/services/preferencesService.js +21 -7
- package/backend/dist/services/preferencesService.js.map +1 -1
- package/backend/dist/services/simpleGitHubOAuth.d.ts.map +1 -1
- package/backend/dist/services/simpleGitHubOAuth.js +10 -8
- package/backend/dist/services/simpleGitHubOAuth.js.map +1 -1
- package/backend/dist/services/simpleHuggingFaceOAuth.d.ts.map +1 -1
- package/backend/dist/services/simpleHuggingFaceOAuth.js +11 -9
- package/backend/dist/services/simpleHuggingFaceOAuth.js.map +1 -1
- package/backend/dist/services/systemSettingsService.d.ts.map +1 -1
- package/backend/dist/services/systemSettingsService.js +4 -2
- package/backend/dist/services/systemSettingsService.js.map +1 -1
- package/backend/dist/services/titleGenerationService.d.ts +55 -0
- package/backend/dist/services/titleGenerationService.d.ts.map +1 -0
- package/backend/dist/services/titleGenerationService.js +121 -0
- package/backend/dist/services/titleGenerationService.js.map +1 -0
- package/backend/dist/services/turnstileService.d.ts +13 -0
- package/backend/dist/services/turnstileService.d.ts.map +1 -0
- package/backend/dist/services/turnstileService.js +79 -0
- package/backend/dist/services/turnstileService.js.map +1 -0
- package/backend/dist/storage.d.ts +2 -22
- package/backend/dist/storage.d.ts.map +1 -1
- package/backend/dist/storage.js +22 -170
- package/backend/dist/storage.js.map +1 -1
- package/backend/dist/storageMappers.d.ts +82 -0
- package/backend/dist/storageMappers.d.ts.map +1 -0
- package/backend/dist/storageMappers.js +85 -0
- package/backend/dist/storageMappers.js.map +1 -0
- package/backend/dist/test-encryption.js +20 -18
- package/backend/dist/test-encryption.js.map +1 -1
- package/backend/dist/types/index.d.ts +6 -0
- package/backend/dist/types/index.d.ts.map +1 -1
- package/backend/dist/types/index.js.map +1 -1
- package/backend/dist/utils/assistantBranching.d.ts +8 -0
- package/backend/dist/utils/assistantBranching.d.ts.map +1 -0
- package/backend/dist/utils/assistantBranching.js +30 -0
- package/backend/dist/utils/assistantBranching.js.map +1 -0
- package/backend/dist/utils/chatContext.d.ts +17 -0
- package/backend/dist/utils/chatContext.d.ts.map +1 -0
- package/backend/dist/utils/chatContext.js +82 -0
- package/backend/dist/utils/chatContext.js.map +1 -0
- package/backend/dist/utils/chatDocumentContext.d.ts +7 -0
- package/backend/dist/utils/chatDocumentContext.d.ts.map +1 -0
- package/backend/dist/utils/chatDocumentContext.js +51 -0
- package/backend/dist/utils/chatDocumentContext.js.map +1 -0
- package/backend/dist/utils/logger.d.ts +12 -0
- package/backend/dist/utils/logger.d.ts.map +1 -0
- package/backend/dist/utils/logger.js +82 -0
- package/backend/dist/utils/logger.js.map +1 -0
- package/backend/dist/utils/ollamaLibrary.d.ts +17 -0
- package/backend/dist/utils/ollamaLibrary.d.ts.map +1 -0
- package/backend/dist/utils/ollamaLibrary.js +253 -0
- package/backend/dist/utils/ollamaLibrary.js.map +1 -0
- package/backend/dist/utils/ollamaStreaming.d.ts +19 -0
- package/backend/dist/utils/ollamaStreaming.d.ts.map +1 -0
- package/backend/dist/utils/ollamaStreaming.js +67 -0
- package/backend/dist/utils/ollamaStreaming.js.map +1 -0
- package/backend/dist/utils/packagePaths.d.ts +10 -0
- package/backend/dist/utils/packagePaths.d.ts.map +1 -0
- package/backend/dist/utils/packagePaths.js +81 -0
- package/backend/dist/utils/packagePaths.js.map +1 -0
- package/backend/dist/utils/pluginChatAdapter.d.ts +32 -0
- package/backend/dist/utils/pluginChatAdapter.d.ts.map +1 -0
- package/backend/dist/utils/pluginChatAdapter.js +308 -0
- package/backend/dist/utils/pluginChatAdapter.js.map +1 -0
- package/backend/dist/utils/pluginChatContext.d.ts +23 -0
- package/backend/dist/utils/pluginChatContext.d.ts.map +1 -0
- package/backend/dist/utils/pluginChatContext.js +77 -0
- package/backend/dist/utils/pluginChatContext.js.map +1 -0
- package/backend/dist/utils/pluginResponse.d.ts +6 -0
- package/backend/dist/utils/pluginResponse.d.ts.map +1 -0
- package/backend/dist/utils/pluginResponse.js +70 -0
- package/backend/dist/utils/pluginResponse.js.map +1 -0
- package/backend/dist/utils/pluginStreamAdapter.d.ts +16 -0
- package/backend/dist/utils/pluginStreamAdapter.d.ts.map +1 -0
- package/backend/dist/utils/pluginStreamAdapter.js +141 -0
- package/backend/dist/utils/pluginStreamAdapter.js.map +1 -0
- package/backend/dist/utils/pluginStreaming.d.ts +24 -0
- package/backend/dist/utils/pluginStreaming.d.ts.map +1 -0
- package/backend/dist/utils/pluginStreaming.js +106 -0
- package/backend/dist/utils/pluginStreaming.js.map +1 -0
- package/backend/dist/utils/pluginUpload.d.ts +8 -0
- package/backend/dist/utils/pluginUpload.d.ts.map +1 -0
- package/backend/dist/utils/pluginUpload.js +51 -0
- package/backend/dist/utils/pluginUpload.js.map +1 -0
- package/backend/dist/utils/pluginValidation.d.ts +10 -0
- package/backend/dist/utils/pluginValidation.d.ts.map +1 -0
- package/backend/dist/utils/pluginValidation.js +94 -0
- package/backend/dist/utils/pluginValidation.js.map +1 -0
- package/backend/dist/utils/pluginVariableValidation.d.ts +10 -0
- package/backend/dist/utils/pluginVariableValidation.d.ts.map +1 -0
- package/backend/dist/utils/pluginVariableValidation.js +80 -0
- package/backend/dist/utils/pluginVariableValidation.js.map +1 -0
- package/backend/dist/utils/websocketMessages.d.ts +26 -0
- package/backend/dist/utils/websocketMessages.d.ts.map +1 -0
- package/backend/dist/utils/websocketMessages.js +74 -0
- package/backend/dist/utils/websocketMessages.js.map +1 -0
- package/backend/dist/websocketServer.d.ts +3 -0
- package/backend/dist/websocketServer.d.ts.map +1 -0
- package/backend/dist/websocketServer.js +332 -0
- package/backend/dist/websocketServer.js.map +1 -0
- package/backend/package.json +55 -0
- package/frontend/dist/assets/index-BxHDVIti.css +1 -0
- package/frontend/dist/assets/index-CDA2f43l.js +5 -0
- package/frontend/dist/assets/markdown-math-CYlHEDRF.css +1 -0
- package/frontend/dist/index.html +12 -15
- package/frontend/dist/js/ArtifactContainer-CA523BOS.js +1 -0
- package/frontend/dist/js/ArtifactDemoPage-C0p2-ccP.js +200 -0
- package/frontend/dist/js/ArtifactSlideOutPanel-BBYuYyr_.js +1 -0
- package/frontend/dist/js/Button-BmZQkAPD.js +1 -0
- package/frontend/dist/js/ChatPage-QSOhIynr.js +16 -0
- package/frontend/dist/js/FirstTimeSetup-pi-S4VU-.js +1 -0
- package/frontend/dist/js/GalleryPage-BPXB-D4f.js +1 -0
- package/frontend/dist/js/ModelManagerModals-D3SZV7CU.js +1 -0
- package/frontend/dist/js/ModelsPage-Fmqc1Zxb.js +2 -0
- package/frontend/dist/js/OptimizedSyntaxHighlighter-DlI4omE2.js +1 -0
- package/frontend/dist/js/PersonasPage-BuLOCG1Y.js +13 -0
- package/frontend/dist/js/RichMessageContent-Darvuw8F.js +3 -0
- package/frontend/dist/js/SettingsModal-CQhAeaia.js +1 -0
- package/frontend/dist/js/UserManagementPage-yX9vOase.js +1 -0
- package/frontend/dist/js/api-d05r9G59.js +15 -0
- package/frontend/dist/js/ar-BIL8U_dv.js +2 -0
- package/frontend/dist/js/artifactHtml-CRdkOCnz.js +27 -0
- package/frontend/dist/js/bn-BWQoWPn6.js +2 -0
- package/frontend/dist/js/cs-DOD1vscE.js +2 -0
- package/frontend/dist/js/da-DYPzSzX4.js +2 -0
- package/frontend/dist/js/de-CHd4b2Xf.js +2 -0
- package/frontend/dist/js/demoMode-BhEpMVh5.js +1 -0
- package/frontend/dist/js/es-BmDO6uNe.js +2 -0
- package/frontend/dist/js/fr-DW24sUV7.js +2 -0
- package/frontend/dist/js/hi-BRDq_y1B.js +2 -0
- package/frontend/dist/js/id-I_F2nstV.js +2 -0
- package/frontend/dist/js/is-Boj7-J12.js +2 -0
- package/frontend/dist/js/it-CNeHl9Fh.js +2 -0
- package/frontend/dist/js/ja-DrVG6G8s.js +2 -0
- package/frontend/dist/js/ko-BtKRwlHW.js +2 -0
- package/frontend/dist/js/logger-1THq8-96.js +1 -0
- package/frontend/dist/js/markdown-core-CEpaJrKd.js +16 -0
- package/frontend/dist/js/markdown-math-DAmpvM9y.js +261 -0
- package/frontend/dist/js/ms-Dp9MigoU.js +2 -0
- package/frontend/dist/js/nl-Bk9pGoCF.js +2 -0
- package/frontend/dist/js/pl-seE8_lLS.js +2 -0
- package/frontend/dist/js/pt-BAeBtldI.js +2 -0
- package/frontend/dist/js/{react-vendor-BUzyfgnZ.js → react-vendor-DtQrJICq.js} +4 -4
- package/frontend/dist/js/rolldown-runtime-QTnfLwEv.js +1 -0
- package/frontend/dist/js/ru-CkCpWFNb.js +2 -0
- package/frontend/dist/js/sv-BM7nqxmA.js +2 -0
- package/frontend/dist/js/syntax-highlight-B758xPeo.js +8 -0
- package/frontend/dist/js/th-vDIZbpa4.js +2 -0
- package/frontend/dist/js/tr-G2-XodhW.js +2 -0
- package/frontend/dist/js/ui-vendor-MCs1MDmN.js +177 -0
- package/frontend/dist/js/uk-DfVfZcBQ.js +2 -0
- package/frontend/dist/js/useBaseQuery-CrdrLcmR.js +1 -0
- package/frontend/dist/js/useQuery-DaEnYfWR.js +1 -0
- package/frontend/dist/js/utils-es0n-47H.js +1 -0
- package/frontend/dist/js/utils-vendor-B2ZBL57Y.js +9 -0
- package/frontend/dist/js/vi-Yp9yjb06.js +2 -0
- package/frontend/dist/js/zh-DtRb97we.js +2 -0
- package/package.json +16 -10
- package/plugins/llama-cpp.json +93 -0
- package/plugins/openclaw-agent.json +1 -1
- package/backend/dist/services/openclawSessionService.d.ts +0 -63
- package/backend/dist/services/openclawSessionService.d.ts.map +0 -1
- package/backend/dist/services/openclawSessionService.js +0 -307
- package/backend/dist/services/openclawSessionService.js.map +0 -1
- package/frontend/dist/assets/index-B1qNw5pA.js +0 -52
- package/frontend/dist/assets/index-DnG6512Q.css +0 -1
- package/frontend/dist/assets/ui-CsNe6lFV.css +0 -1
- package/frontend/dist/js/ArtifactContainer-Com7P5vK.js +0 -24
- package/frontend/dist/js/ArtifactDemoPage-Xd-Ragpf.js +0 -98
- package/frontend/dist/js/Button-D62PCbMW.js +0 -1
- package/frontend/dist/js/ChatPage-01JxVHRP.js +0 -15
- package/frontend/dist/js/GalleryPage-8nHGqKEu.js +0 -1
- package/frontend/dist/js/ModelsPage-C0MLVfwA.js +0 -1
- package/frontend/dist/js/OptimizedSyntaxHighlighter-DjnSqskO.js +0 -1
- package/frontend/dist/js/PersonasPage-D9YKnYz6.js +0 -13
- package/frontend/dist/js/UserManagementPage-b6NZdPTD.js +0 -1
- package/frontend/dist/js/api-B0pf9vdR.js +0 -1
- package/frontend/dist/js/api-BrzQvj_g.js +0 -3
- package/frontend/dist/js/appStore-k_e3JAM3.js +0 -2
- package/frontend/dist/js/authStore-BkobbhZS.js +0 -1
- package/frontend/dist/js/authStore-ge66S03D.js +0 -2
- package/frontend/dist/js/axios-CYrHjdt1.js +0 -1
- package/frontend/dist/js/demoMode-qyEGd_UM.js +0 -1
- package/frontend/dist/js/markdown-vendor-4lCPqxk5.js +0 -22
- package/frontend/dist/js/rolldown-runtime-DWy-cpC1.js +0 -1
- package/frontend/dist/js/ui-DuH1cD2f.js +0 -267
- package/frontend/dist/js/ui-vendor-BFOABH-A.js +0 -177
- package/frontend/dist/js/userService-BndgbS1C.js +0 -1
- package/frontend/dist/js/utils-vendor-MBozwMfr.js +0 -6
|
@@ -20,6 +20,8 @@ import preferencesService from './preferencesService.js';
|
|
|
20
20
|
import { personaService } from './personaService.js';
|
|
21
21
|
import { memoryService } from './memoryService.js';
|
|
22
22
|
import { mutationEngineService } from './mutationEngineService.js';
|
|
23
|
+
import { createLogger } from '../utils/logger.js';
|
|
24
|
+
const logger = createLogger('chat-service');
|
|
23
25
|
class ChatService {
|
|
24
26
|
constructor() {
|
|
25
27
|
this.sessions = new Map();
|
|
@@ -29,10 +31,10 @@ class ChatService {
|
|
|
29
31
|
try {
|
|
30
32
|
const sessionsArray = storageService.getAllSessions();
|
|
31
33
|
this.sessions = new Map(sessionsArray.map(session => [session.id, session]));
|
|
32
|
-
|
|
34
|
+
logger.debug(`Loaded ${sessionsArray.length} sessions from storage`);
|
|
33
35
|
}
|
|
34
36
|
catch (error) {
|
|
35
|
-
|
|
37
|
+
logger.error('Failed to load sessions:', error);
|
|
36
38
|
}
|
|
37
39
|
}
|
|
38
40
|
saveSessions() {
|
|
@@ -42,7 +44,6 @@ class ChatService {
|
|
|
42
44
|
async createSession(model, title, userId = 'default', personaId) {
|
|
43
45
|
const sessionId = uuidv4();
|
|
44
46
|
const now = Date.now();
|
|
45
|
-
console.log(`🚀 ChatService.createSession: sessionId=%s, userId=%s, model=%s, personaId=%s`, sessionId, userId, model, personaId);
|
|
46
47
|
const session = {
|
|
47
48
|
id: sessionId,
|
|
48
49
|
title: title || 'New Chat',
|
|
@@ -54,28 +55,19 @@ class ChatService {
|
|
|
54
55
|
};
|
|
55
56
|
// Add system message - prioritize persona system prompt over global preferences
|
|
56
57
|
let systemMessage = '';
|
|
57
|
-
let systemMessageSource = 'none';
|
|
58
|
-
console.log(`[DEBUG] createSession model: "${model}", starts with persona: ${model.startsWith('persona:')}`);
|
|
59
58
|
// If model is a persona, try to get the persona's system prompt
|
|
60
59
|
if (model.startsWith('persona:')) {
|
|
61
60
|
try {
|
|
62
61
|
const personaIdFromModel = model.replace('persona:', '');
|
|
63
|
-
console.log(`[DEBUG] Extracting persona ID: "%s" for user: "%s"`, personaIdFromModel, userId);
|
|
64
62
|
const { personaService } = await import('./personaService.js');
|
|
65
63
|
// Get persona for the current user only (no fallback to maintain privacy)
|
|
66
64
|
const persona = await personaService.getPersonaById(personaIdFromModel, userId);
|
|
67
|
-
console.log(`[DEBUG] Persona lookup for user ${userId}:`, persona ? `Found: ${persona.name}` : 'Not found');
|
|
68
65
|
if (persona && persona.parameters?.system_prompt) {
|
|
69
66
|
systemMessage = persona.parameters.system_prompt.trim();
|
|
70
|
-
systemMessageSource = `persona:${persona.name}`;
|
|
71
|
-
console.log(`[DEBUG] Using persona system prompt from ${persona.name}: "${systemMessage.substring(0, 100)}..."`);
|
|
72
|
-
}
|
|
73
|
-
else {
|
|
74
|
-
console.log(`[DEBUG] No system prompt found in persona or persona not found`);
|
|
75
67
|
}
|
|
76
68
|
}
|
|
77
69
|
catch (error) {
|
|
78
|
-
|
|
70
|
+
logger.error(`Error getting persona system prompt:`, error);
|
|
79
71
|
}
|
|
80
72
|
}
|
|
81
73
|
// If no persona system prompt, fall back to global preferences
|
|
@@ -83,13 +75,10 @@ class ChatService {
|
|
|
83
75
|
const globalSystemMessage = preferencesService.getSystemMessage(userId);
|
|
84
76
|
if (globalSystemMessage && globalSystemMessage.trim()) {
|
|
85
77
|
systemMessage = globalSystemMessage.trim();
|
|
86
|
-
systemMessageSource = 'preferences';
|
|
87
|
-
console.log(`[DEBUG] Using global system message: "${systemMessage.substring(0, 100)}..."`);
|
|
88
78
|
}
|
|
89
79
|
}
|
|
90
80
|
// Add the system message if we have one
|
|
91
81
|
if (systemMessage) {
|
|
92
|
-
console.log(`✅ Adding system message to session: ${sessionId} (source: ${systemMessageSource})`);
|
|
93
82
|
const systemMsg = {
|
|
94
83
|
id: uuidv4(),
|
|
95
84
|
role: 'system',
|
|
@@ -100,21 +89,16 @@ class ChatService {
|
|
|
100
89
|
session.updatedAt = now;
|
|
101
90
|
}
|
|
102
91
|
this.sessions.set(sessionId, session);
|
|
103
|
-
console.log(`📝 Session stored in cache: ${sessionId}`);
|
|
104
92
|
// Save to storage with user ID
|
|
105
93
|
storageService.saveSession(session, userId);
|
|
106
|
-
console.log(`💾 Session saved to storage: ${sessionId} for user ${userId}`);
|
|
107
94
|
return session;
|
|
108
95
|
}
|
|
109
96
|
getSession(sessionId, userId = 'default') {
|
|
110
|
-
console.log(`🔍 ChatService.getSession: sessionId=${sessionId}, userId=${userId}`);
|
|
111
97
|
// First try to get from memory cache
|
|
112
98
|
let session = this.sessions.get(sessionId);
|
|
113
|
-
console.log(`📝 Session in cache: ${session ? 'YES' : 'NO'}`);
|
|
114
99
|
// If not in cache, try to load from storage (with user verification)
|
|
115
100
|
if (!session) {
|
|
116
101
|
session = storageService.getSession(sessionId, userId);
|
|
117
|
-
console.log(`💾 Session in storage: ${session ? 'YES' : 'NO'}`);
|
|
118
102
|
if (session) {
|
|
119
103
|
this.sessions.set(sessionId, session);
|
|
120
104
|
}
|
|
@@ -123,15 +107,12 @@ class ChatService {
|
|
|
123
107
|
// If found in cache, we should still verify it belongs to this user
|
|
124
108
|
// by checking the storage service (which has the user verification logic)
|
|
125
109
|
const verifiedSession = storageService.getSession(sessionId, userId);
|
|
126
|
-
console.log(`✅ Session verification: ${verifiedSession ? 'PASSED' : 'FAILED'}`);
|
|
127
110
|
if (!verifiedSession) {
|
|
128
111
|
// Session doesn't belong to this user, remove from cache and return undefined
|
|
129
|
-
console.log(`❌ Removing session ${sessionId} from cache - verification failed`);
|
|
130
112
|
this.sessions.delete(sessionId);
|
|
131
113
|
return undefined;
|
|
132
114
|
}
|
|
133
115
|
}
|
|
134
|
-
console.log(`🎯 Returning session: ${session ? session.id : 'undefined'}`);
|
|
135
116
|
return session;
|
|
136
117
|
}
|
|
137
118
|
getAllSessions(userId = 'default') {
|
|
@@ -156,10 +137,8 @@ class ChatService {
|
|
|
156
137
|
};
|
|
157
138
|
// If the model is being updated and it's a persona, update the system message and personaId
|
|
158
139
|
if (updates.model && updates.model !== session.model) {
|
|
159
|
-
console.log(`[DEBUG] updateSession: Model changed from "${session.model}" to "${updates.model}"`);
|
|
160
140
|
if (updates.model.startsWith('persona:')) {
|
|
161
141
|
const personaId = updates.model.replace('persona:', '');
|
|
162
|
-
console.log(`[DEBUG] updateSession: Extracting persona ID: %s`, personaId);
|
|
163
142
|
// Update personaId
|
|
164
143
|
updatedSession.personaId = personaId;
|
|
165
144
|
// Update system message with persona's system prompt
|
|
@@ -176,19 +155,15 @@ class ChatService {
|
|
|
176
155
|
return updatedSession;
|
|
177
156
|
}
|
|
178
157
|
addMessage(sessionId, message, userId = 'default') {
|
|
179
|
-
console.log(`[addMessage] Called with sessionId=${sessionId}, role=${message.role}, id=${message.id}, userId=${userId}`);
|
|
180
158
|
// First verify the session belongs to the user
|
|
181
159
|
const session = this.getSession(sessionId, userId);
|
|
182
160
|
if (!session) {
|
|
183
|
-
console.log(`[addMessage] Session not found: ${sessionId}`);
|
|
184
161
|
return undefined;
|
|
185
162
|
}
|
|
186
|
-
console.log(`[addMessage] Session found with ${session.messages.length} messages`);
|
|
187
163
|
const messageId = message.id || uuidv4();
|
|
188
164
|
// Check if message with this ID already exists to prevent duplicates
|
|
189
165
|
const existingMessage = session.messages.find(msg => msg.id === messageId);
|
|
190
166
|
if (existingMessage) {
|
|
191
|
-
console.log(`[addMessage] Message with ID already exists, skipping duplicate: ${messageId}, existing content length: ${existingMessage.content.length}`);
|
|
192
167
|
return existingMessage;
|
|
193
168
|
}
|
|
194
169
|
const newMessage = {
|
|
@@ -216,44 +191,29 @@ class ChatService {
|
|
|
216
191
|
session.messages.push(newMessage);
|
|
217
192
|
session.updatedAt = Date.now();
|
|
218
193
|
// Process advanced persona features if applicable
|
|
219
|
-
console.log(`[DEBUG] addMessage: Checking advanced processing - personaId: ${session.personaId}, messageRole: ${message.role}, content length: ${message.content.length}`);
|
|
220
194
|
if (session.personaId) {
|
|
221
|
-
console.log(`[DEBUG] addMessage: PersonaId exists, processing message role: ${message.role}`);
|
|
222
195
|
if (message.role === 'user') {
|
|
223
|
-
|
|
224
|
-
this.processAdvancedPersonaInteraction(session.personaId, userId, message.content, session).catch((error) => console.error('Advanced persona processing error:', error));
|
|
196
|
+
this.processAdvancedPersonaInteraction(session.personaId, userId, message.content, session).catch((error) => logger.error('Advanced persona processing error:', error));
|
|
225
197
|
}
|
|
226
198
|
else if (message.role === 'assistant') {
|
|
227
|
-
|
|
228
|
-
this.processAdvancedPersonaResponse(session.personaId, userId, message.content).catch((error) => console.error('Advanced persona response processing error:', error));
|
|
199
|
+
this.processAdvancedPersonaResponse(session.personaId, userId, message.content).catch((error) => logger.error('Advanced persona response processing error:', error));
|
|
229
200
|
}
|
|
230
201
|
}
|
|
231
|
-
else {
|
|
232
|
-
console.log(`[DEBUG] addMessage: No personaId found, skipping advanced processing`);
|
|
233
|
-
}
|
|
234
|
-
// Auto-generate title from first user message
|
|
235
|
-
const userMessages = session.messages.filter(msg => msg.role === 'user');
|
|
236
|
-
if (userMessages.length === 1 &&
|
|
237
|
-
message.role === 'user' &&
|
|
238
|
-
session.title === 'New Chat') {
|
|
239
|
-
session.title = this.generateTitle(message.content);
|
|
240
|
-
}
|
|
241
202
|
this.sessions.set(sessionId, session);
|
|
242
203
|
storageService.saveSession(session, userId);
|
|
243
|
-
console.log(`[addMessage] Message saved successfully: ${newMessage.id}, session now has ${session.messages.length} messages`);
|
|
244
204
|
return newMessage;
|
|
245
205
|
}
|
|
246
206
|
updateMessage(sessionId, messageId, updates, userId = 'default') {
|
|
247
207
|
// First verify the session belongs to the user
|
|
248
208
|
const session = this.getSession(sessionId, userId);
|
|
249
209
|
if (!session) {
|
|
250
|
-
|
|
210
|
+
logger.error('Session not found or access denied:', sessionId, userId);
|
|
251
211
|
return undefined;
|
|
252
212
|
}
|
|
253
213
|
// Find the message to update
|
|
254
214
|
const messageIndex = session.messages.findIndex(msg => msg.id === messageId);
|
|
255
215
|
if (messageIndex === -1) {
|
|
256
|
-
|
|
216
|
+
logger.error('Message not found:', messageId);
|
|
257
217
|
return undefined;
|
|
258
218
|
}
|
|
259
219
|
// Update the message
|
|
@@ -267,7 +227,6 @@ class ChatService {
|
|
|
267
227
|
// Save updated session
|
|
268
228
|
this.sessions.set(sessionId, session);
|
|
269
229
|
storageService.saveSession(session, userId);
|
|
270
|
-
console.log(`✅ Updated message ${messageId} in session ${sessionId}`);
|
|
271
230
|
return updatedMessage;
|
|
272
231
|
}
|
|
273
232
|
deleteSession(sessionId, userId = 'default') {
|
|
@@ -293,15 +252,6 @@ class ChatService {
|
|
|
293
252
|
storageService.deleteSession(session.id, userId);
|
|
294
253
|
});
|
|
295
254
|
}
|
|
296
|
-
generateTitle(content) {
|
|
297
|
-
// Generate a concise title from the first message
|
|
298
|
-
const words = content.trim().split(/\s+/).slice(0, 6);
|
|
299
|
-
let title = words.join(' ');
|
|
300
|
-
if (title.length > 50) {
|
|
301
|
-
title = title.substring(0, 47) + '...';
|
|
302
|
-
}
|
|
303
|
-
return title || 'New Chat';
|
|
304
|
-
}
|
|
305
255
|
getMessagesForContext(sessionId, maxMessages = 10) {
|
|
306
256
|
const session = this.sessions.get(sessionId);
|
|
307
257
|
if (!session)
|
|
@@ -314,42 +264,30 @@ class ChatService {
|
|
|
314
264
|
const recentConversation = conversationMessages.slice(-maxMessages);
|
|
315
265
|
// Return system messages first, then conversation messages
|
|
316
266
|
const contextMessages = [...systemMessages, ...recentConversation];
|
|
317
|
-
// Debug: Log the system messages being sent
|
|
318
|
-
if (systemMessages.length > 0) {
|
|
319
|
-
console.log(`🎯 [DEBUG] Context for session ${sessionId}:`);
|
|
320
|
-
systemMessages.forEach((msg, index) => {
|
|
321
|
-
console.log(` System message ${index + 1}: "${msg.content.substring(0, 100)}${msg.content.length > 100 ? '...' : ''}"`);
|
|
322
|
-
});
|
|
323
|
-
}
|
|
324
267
|
return contextMessages;
|
|
325
268
|
}
|
|
326
269
|
async updateSystemMessageForPersona(session, personaId, userId) {
|
|
327
270
|
try {
|
|
328
|
-
console.log(`[DEBUG] updateSystemMessageForPersona: Starting for persona %s, user %s`, personaId, userId);
|
|
329
271
|
// Get persona for the current user only (no fallback to maintain privacy)
|
|
330
272
|
const persona = await personaService.getPersonaById(personaId, userId);
|
|
331
273
|
if (persona && persona.parameters?.system_prompt) {
|
|
332
274
|
const newSystemMessage = persona.parameters.system_prompt.trim();
|
|
333
|
-
console.log(`[DEBUG] updateSystemMessageForPersona: Found persona system prompt: "${newSystemMessage.substring(0, 100)}..."`);
|
|
334
275
|
// Update or replace the system message
|
|
335
276
|
this.replaceSystemMessage(session, newSystemMessage);
|
|
336
|
-
console.log(`[DEBUG] updateSystemMessageForPersona: Successfully updated system message for session ${session.id}`);
|
|
337
277
|
}
|
|
338
278
|
else {
|
|
339
|
-
console.log(`[DEBUG] updateSystemMessageForPersona: No system prompt found for persona %s, using default`, personaId);
|
|
340
279
|
// Fallback to default system message
|
|
341
280
|
this.updateSystemMessageToDefault(session, userId);
|
|
342
281
|
}
|
|
343
282
|
}
|
|
344
283
|
catch (error) {
|
|
345
|
-
|
|
284
|
+
logger.error(`updateSystemMessageForPersona: Error getting persona %s:`, personaId, error);
|
|
346
285
|
// Fallback to default system message
|
|
347
286
|
this.updateSystemMessageToDefault(session, userId);
|
|
348
287
|
}
|
|
349
288
|
}
|
|
350
289
|
updateSystemMessageToDefault(session, userId) {
|
|
351
290
|
const defaultSystemMessage = preferencesService.getSystemMessage(userId);
|
|
352
|
-
console.log(`[DEBUG] updateSystemMessageToDefault: Using default system message: "${defaultSystemMessage.substring(0, 100)}..."`);
|
|
353
291
|
this.replaceSystemMessage(session, defaultSystemMessage);
|
|
354
292
|
}
|
|
355
293
|
replaceSystemMessage(session, newSystemMessage) {
|
|
@@ -362,7 +300,6 @@ class ChatService {
|
|
|
362
300
|
content: newSystemMessage,
|
|
363
301
|
timestamp: Date.now(),
|
|
364
302
|
};
|
|
365
|
-
console.log(`[DEBUG] replaceSystemMessage: Updated existing system message`);
|
|
366
303
|
}
|
|
367
304
|
else {
|
|
368
305
|
// Add new system message at the beginning
|
|
@@ -373,7 +310,6 @@ class ChatService {
|
|
|
373
310
|
timestamp: Date.now(),
|
|
374
311
|
};
|
|
375
312
|
session.messages.unshift(systemMessage);
|
|
376
|
-
console.log(`[DEBUG] replaceSystemMessage: Added new system message`);
|
|
377
313
|
}
|
|
378
314
|
}
|
|
379
315
|
/**
|
|
@@ -381,48 +317,27 @@ class ChatService {
|
|
|
381
317
|
*/
|
|
382
318
|
async processAdvancedPersonaInteraction(personaId, userId, userMessage, session) {
|
|
383
319
|
try {
|
|
384
|
-
console.log(`[ADVANCED-DEBUG] processAdvancedPersonaInteraction called - personaId: ${personaId}, userId: ${userId}`);
|
|
385
320
|
// Check if persona has advanced features enabled for current user only (no fallback to maintain privacy)
|
|
386
321
|
const persona = await personaService.getPersonaById(personaId, userId);
|
|
387
|
-
console.log(`[ADVANCED-DEBUG] Persona lookup for user ${userId}:`, persona ? `Found: ${persona.name}` : 'Not found');
|
|
388
322
|
if (!persona) {
|
|
389
|
-
console.log(`[ADVANCED-DEBUG] No persona found for user, exiting`);
|
|
390
323
|
return;
|
|
391
324
|
}
|
|
392
325
|
// Check if this persona has advanced features (memory or adaptive learning)
|
|
393
326
|
const hasAdvancedFeatures = persona.embedding_model || persona.memory_settings;
|
|
394
|
-
console.log(`[ADVANCED-DEBUG] Advanced features check:`, {
|
|
395
|
-
embedding_model: persona.embedding_model,
|
|
396
|
-
memory_settings: persona.memory_settings,
|
|
397
|
-
hasAdvancedFeatures,
|
|
398
|
-
});
|
|
399
327
|
if (!hasAdvancedFeatures) {
|
|
400
|
-
console.log(`[ADVANCED-DEBUG] No advanced features, exiting`);
|
|
401
328
|
return;
|
|
402
329
|
}
|
|
403
|
-
console.log(`[ADVANCED] Processing interaction for persona ${persona.name} (${personaId})`);
|
|
404
330
|
// Get advanced settings
|
|
405
|
-
const embeddingModel = persona.embedding_model ||
|
|
406
|
-
|
|
407
|
-
console.log(`[ADVANCED] Advanced features enabled`);
|
|
331
|
+
const embeddingModel = persona.embedding_model ||
|
|
332
|
+
preferencesService.getDefaultEmbeddingModel(userId);
|
|
408
333
|
// 1. Store the user message as a memory
|
|
409
|
-
console.log(`[ADVANCED] Storing user message as memory...`);
|
|
410
334
|
await memoryService.storeMemory(userId, personaId, userMessage, embeddingModel, undefined, // context
|
|
411
335
|
0.7 // importance score
|
|
412
336
|
);
|
|
413
|
-
console.log(`[ADVANCED] ✅ User message stored successfully`);
|
|
414
337
|
// 2. Search for relevant memories
|
|
415
|
-
console.log(`[ADVANCED] Searching for relevant memories...`);
|
|
416
338
|
const relevantMemories = await memoryService.searchMemories(userId, personaId, userMessage, embeddingModel, 5, // topK
|
|
417
339
|
0.3 // similarity threshold
|
|
418
340
|
);
|
|
419
|
-
console.log(`[ADVANCED] Found ${relevantMemories.length} relevant memories`);
|
|
420
|
-
if (relevantMemories.length > 0) {
|
|
421
|
-
console.log(`[ADVANCED] Memory details:`, relevantMemories.map(m => ({
|
|
422
|
-
content: m.entry.content.substring(0, 100) + '...',
|
|
423
|
-
similarity: (m.similarity_score * 100).toFixed(1) + '%',
|
|
424
|
-
})));
|
|
425
|
-
}
|
|
426
341
|
// 3. Process potential mutations based on the interaction
|
|
427
342
|
if (relevantMemories.length > 0) {
|
|
428
343
|
await mutationEngineService.processMutation(userMessage, persona, // Cast to Persona for mutation engine
|
|
@@ -434,7 +349,7 @@ class ChatService {
|
|
|
434
349
|
}
|
|
435
350
|
}
|
|
436
351
|
catch (error) {
|
|
437
|
-
|
|
352
|
+
logger.error(`Error processing persona interaction:`, error);
|
|
438
353
|
}
|
|
439
354
|
}
|
|
440
355
|
/**
|
|
@@ -517,10 +432,9 @@ Guidelines:
|
|
|
517
432
|
// Save the updated session
|
|
518
433
|
this.sessions.set(session.id, session);
|
|
519
434
|
storageService.saveSession(session, userId);
|
|
520
|
-
console.log(`[ADVANCED] Updated system message with ${coreMemories.length} core + ${contextualMemories.length} contextual memories`);
|
|
521
435
|
}
|
|
522
436
|
catch (error) {
|
|
523
|
-
|
|
437
|
+
logger.error(`Error updating system message with memories:`, error);
|
|
524
438
|
}
|
|
525
439
|
}
|
|
526
440
|
/**
|
|
@@ -528,35 +442,25 @@ Guidelines:
|
|
|
528
442
|
*/
|
|
529
443
|
async processAdvancedPersonaResponse(personaId, userId, assistantMessage) {
|
|
530
444
|
try {
|
|
531
|
-
console.log(`[ADVANCED-DEBUG] processAdvancedPersonaResponse called - personaId: ${personaId}, userId: ${userId}`);
|
|
532
445
|
// Check if persona has advanced features enabled for current user only (no fallback to maintain privacy)
|
|
533
446
|
const persona = await personaService.getPersonaById(personaId, userId);
|
|
534
|
-
console.log(`[ADVANCED-DEBUG] Persona lookup for user ${userId}:`, persona ? `Found: ${persona.name}` : 'Not found');
|
|
535
447
|
if (!persona) {
|
|
536
|
-
console.log(`[ADVANCED-DEBUG] No persona found for user, exiting`);
|
|
537
448
|
return;
|
|
538
449
|
}
|
|
539
450
|
const hasAdvancedFeatures = persona.embedding_model || persona.memory_settings;
|
|
540
|
-
console.log(`[ADVANCED-DEBUG] Advanced detection check:`, {
|
|
541
|
-
embedding_model: persona.embedding_model,
|
|
542
|
-
memory_settings: persona.memory_settings,
|
|
543
|
-
hasAdvancedFeatures,
|
|
544
|
-
});
|
|
545
451
|
if (!hasAdvancedFeatures) {
|
|
546
|
-
console.log(`[ADVANCED-DEBUG] Not an advanced persona, exiting`);
|
|
547
452
|
return;
|
|
548
453
|
}
|
|
549
|
-
console.log(`[ADVANCED] Storing assistant response as memory for persona ${persona.name}`);
|
|
550
454
|
// Get advanced settings
|
|
551
|
-
const embeddingModel = persona.embedding_model ||
|
|
455
|
+
const embeddingModel = persona.embedding_model ||
|
|
456
|
+
preferencesService.getDefaultEmbeddingModel(userId);
|
|
552
457
|
// Store the assistant response as a memory for future context
|
|
553
458
|
await memoryService.storeMemory(userId, personaId, `Assistant response: ${assistantMessage}`, embeddingModel, undefined, // context
|
|
554
459
|
0.6 // slightly lower importance than user messages
|
|
555
460
|
);
|
|
556
|
-
console.log(`[ADVANCED] ✅ Assistant response stored successfully`);
|
|
557
461
|
}
|
|
558
462
|
catch (error) {
|
|
559
|
-
|
|
463
|
+
logger.error(`Error processing persona response:`, error);
|
|
560
464
|
}
|
|
561
465
|
}
|
|
562
466
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chatService.js","sourceRoot":"","sources":["../../src/services/chatService.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAQH,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,cAAc,MAAM,eAAe,CAAC;AAC3C,OAAO,kBAAkB,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,MAAM,WAAW;IAGf;QAFQ,aAAQ,GAA6B,IAAI,GAAG,EAAE,CAAC;QAGrD,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAEO,YAAY;QAClB,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,cAAc,CAAC,cAAc,EAAE,CAAC;YACtD,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,CACrB,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CACpD,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,UAAU,aAAa,CAAC,MAAM,wBAAwB,CAAC,CAAC;QACtE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAEO,YAAY;QAClB,wGAAwG;QACxG,4DAA4D;IAC9D,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,KAAa,EACb,KAAc,EACd,SAAiB,SAAS,EAC1B,SAAkB;QAElB,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CACT,+EAA+E,EAC/E,SAAS,EACT,MAAM,EACN,KAAK,EACL,SAAS,CACV,CAAC;QAEF,MAAM,OAAO,GAAgB;YAC3B,EAAE,EAAE,SAAS;YACb,KAAK,EAAE,KAAK,IAAI,UAAU;YAC1B,QAAQ,EAAE,EAAE;YACZ,KAAK;YACL,SAAS,EAAE,GAAG;YACd,SAAS,EAAE,GAAG;YACd,SAAS;SACV,CAAC;QAEF,gFAAgF;QAChF,IAAI,aAAa,GAAG,EAAE,CAAC;QACvB,IAAI,mBAAmB,GAAG,MAAM,CAAC;QAEjC,OAAO,CAAC,GAAG,CACT,iCAAiC,KAAK,2BAA2B,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAChG,CAAC;QAEF,gEAAgE;QAChE,IAAI,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YACjC,IAAI,CAAC;gBACH,MAAM,kBAAkB,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;gBACzD,OAAO,CAAC,GAAG,CACT,oDAAoD,EACpD,kBAAkB,EAClB,MAAM,CACP,CAAC;gBACF,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;gBAE/D,0EAA0E;gBAC1E,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,cAAc,CACjD,kBAAkB,EAClB,MAAM,CACP,CAAC;gBACF,OAAO,CAAC,GAAG,CACT,mCAAmC,MAAM,GAAG,EAC5C,OAAO,CAAC,CAAC,CAAC,UAAU,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,WAAW,CACjD,CAAC;gBAEF,IAAI,OAAO,IAAI,OAAO,CAAC,UAAU,EAAE,aAAa,EAAE,CAAC;oBACjD,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;oBACxD,mBAAmB,GAAG,WAAW,OAAO,CAAC,IAAI,EAAE,CAAC;oBAChD,OAAO,CAAC,GAAG,CACT,4CAA4C,OAAO,CAAC,IAAI,MAAM,aAAa,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,CACpG,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,GAAG,CACT,gEAAgE,CACjE,CAAC;gBACJ,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,wCAAwC,EAAE,KAAK,CAAC,CAAC;YACjE,CAAC;QACH,CAAC;QAED,+DAA+D;QAC/D,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,MAAM,mBAAmB,GAAG,kBAAkB,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;YACxE,IAAI,mBAAmB,IAAI,mBAAmB,CAAC,IAAI,EAAE,EAAE,CAAC;gBACtD,aAAa,GAAG,mBAAmB,CAAC,IAAI,EAAE,CAAC;gBAC3C,mBAAmB,GAAG,aAAa,CAAC;gBACpC,OAAO,CAAC,GAAG,CACT,yCAAyC,aAAa,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,CAC/E,CAAC;YACJ,CAAC;QACH,CAAC;QAED,wCAAwC;QACxC,IAAI,aAAa,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CACT,uCAAuC,SAAS,aAAa,mBAAmB,GAAG,CACpF,CAAC;YACF,MAAM,SAAS,GAAgB;gBAC7B,EAAE,EAAE,MAAM,EAAE;gBACZ,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,aAAa;gBACtB,SAAS,EAAE,GAAG;aACf,CAAC;YACF,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACjC,OAAO,CAAC,SAAS,GAAG,GAAG,CAAC;QAC1B,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,+BAA+B,SAAS,EAAE,CAAC,CAAC;QAExD,+BAA+B;QAC/B,cAAc,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,gCAAgC,SAAS,aAAa,MAAM,EAAE,CAAC,CAAC;QAC5E,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,UAAU,CACR,SAAiB,EACjB,SAAiB,SAAS;QAE1B,OAAO,CAAC,GAAG,CACT,wCAAwC,SAAS,YAAY,MAAM,EAAE,CACtE,CAAC;QAEF,qCAAqC;QACrC,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,wBAAwB,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAE9D,qEAAqE;QACrE,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,GAAG,cAAc,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YACvD,OAAO,CAAC,GAAG,CAAC,0BAA0B,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAChE,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,oEAAoE;YACpE,0EAA0E;YAC1E,MAAM,eAAe,GAAG,cAAc,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YACrE,OAAO,CAAC,GAAG,CACT,2BAA2B,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,CACnE,CAAC;YACF,IAAI,CAAC,eAAe,EAAE,CAAC;gBACrB,8EAA8E;gBAC9E,OAAO,CAAC,GAAG,CACT,sBAAsB,SAAS,mCAAmC,CACnE,CAAC;gBACF,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAChC,OAAO,SAAS,CAAC;YACnB,CAAC;QACH,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,yBAAyB,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QAC3E,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,cAAc,CAAC,SAAiB,SAAS;QACvC,4DAA4D;QAC5D,MAAM,aAAa,GAAG,cAAc,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAE5D,kDAAkD;QAClD,4EAA4E;QAC5E,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YAC9B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,SAAiB,EACjB,OAA6B,EAC7B,SAAiB,SAAS;QAE1B,+CAA+C;QAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACnD,IAAI,CAAC,OAAO;YAAE,OAAO,SAAS,CAAC;QAE/B,MAAM,cAAc,GAAG;YACrB,GAAG,OAAO;YACV,GAAG,OAAO;YACV,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC;QAEF,4FAA4F;QAC5F,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,EAAE,CAAC;YACrD,OAAO,CAAC,GAAG,CACT,8CAA8C,OAAO,CAAC,KAAK,SAAS,OAAO,CAAC,KAAK,GAAG,CACrF,CAAC;YAEF,IAAI,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBACzC,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;gBACxD,OAAO,CAAC,GAAG,CACT,kDAAkD,EAClD,SAAS,CACV,CAAC;gBAEF,mBAAmB;gBACnB,cAAc,CAAC,SAAS,GAAG,SAAS,CAAC;gBAErC,qDAAqD;gBACrD,MAAM,IAAI,CAAC,6BAA6B,CACtC,cAAc,EACd,SAAS,EACT,MAAM,CACP,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,sGAAsG;gBACtG,cAAc,CAAC,SAAS,GAAG,SAAS,CAAC;gBACrC,IAAI,CAAC,4BAA4B,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;QAC7C,cAAc,CAAC,WAAW,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;QACnD,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,UAAU,CACR,SAAiB,EACjB,OAAgE,EAChE,SAAiB,SAAS;QAE1B,OAAO,CAAC,GAAG,CACT,sCAAsC,SAAS,UAAU,OAAO,CAAC,IAAI,QAAQ,OAAO,CAAC,EAAE,YAAY,MAAM,EAAE,CAC5G,CAAC;QAEF,+CAA+C;QAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACnD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,CAAC,GAAG,CAAC,mCAAmC,SAAS,EAAE,CAAC,CAAC;YAC5D,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,CAAC,GAAG,CACT,mCAAmC,OAAO,CAAC,QAAQ,CAAC,MAAM,WAAW,CACtE,CAAC;QAEF,MAAM,SAAS,GAAG,OAAO,CAAC,EAAE,IAAI,MAAM,EAAE,CAAC;QAEzC,qEAAqE;QACrE,MAAM,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;QAC3E,IAAI,eAAe,EAAE,CAAC;YACpB,OAAO,CAAC,GAAG,CACT,oEAAoE,SAAS,8BAA8B,eAAe,CAAC,OAAO,CAAC,MAAM,EAAE,CAC5I,CAAC;YACF,OAAO,eAAe,CAAC;QACzB,CAAC;QAED,MAAM,UAAU,GAAgB;YAC9B,GAAG,OAAO;YACV,EAAE,EAAE,SAAS;YACb,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC;QAEF,sEAAsE;QACtE,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;YACxB,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC;YAErC,+DAA+D;YAC/D,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACnC,MAAM,SAAS,GAAG,GAAG,CAAC,EAAE,KAAK,QAAQ,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC;gBACnE,IAAI,SAAS,EAAE,CAAC;oBACd,GAAG,CAAC,QAAQ,GAAG,KAAK,CAAC;oBACrB,6DAA6D;oBAC7D,IAAI,GAAG,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;wBAClC,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC;oBACtB,CAAC;oBACD,uCAAuC;oBACvC,GAAG,CAAC,YAAY,GAAG,CAAC,UAAU,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBACvD,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAClC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE/B,kDAAkD;QAClD,OAAO,CAAC,GAAG,CACT,iEAAiE,OAAO,CAAC,SAAS,kBAAkB,OAAO,CAAC,IAAI,qBAAqB,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,CAC9J,CAAC;QACF,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACtB,OAAO,CAAC,GAAG,CACT,kEAAkE,OAAO,CAAC,IAAI,EAAE,CACjF,CAAC;YACF,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC5B,OAAO,CAAC,GAAG,CACT,iFAAiF,OAAO,CAAC,SAAS,EAAE,CACrG,CAAC;gBACF,IAAI,CAAC,iCAAiC,CACpC,OAAO,CAAC,SAAS,EACjB,MAAM,EACN,OAAO,CAAC,OAAO,EACf,OAAO,CACR,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE,CACzB,OAAO,CAAC,KAAK,CAAC,oCAAoC,EAAE,KAAK,CAAC,CAC3D,CAAC;YACJ,CAAC;iBAAM,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBACxC,OAAO,CAAC,GAAG,CACT,mFAAmF,OAAO,CAAC,SAAS,EAAE,CACvG,CAAC;gBACF,IAAI,CAAC,8BAA8B,CACjC,OAAO,CAAC,SAAS,EACjB,MAAM,EACN,OAAO,CAAC,OAAO,CAChB,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE,CACzB,OAAO,CAAC,KAAK,CAAC,6CAA6C,EAAE,KAAK,CAAC,CACpE,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CACT,sEAAsE,CACvE,CAAC;QACJ,CAAC;QAED,8CAA8C;QAC9C,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;QACzE,IACE,YAAY,CAAC,MAAM,KAAK,CAAC;YACzB,OAAO,CAAC,IAAI,KAAK,MAAM;YACvB,OAAO,CAAC,KAAK,KAAK,UAAU,EAC5B,CAAC;YACD,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACtD,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACtC,cAAc,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CACT,4CAA4C,UAAU,CAAC,EAAE,qBAAqB,OAAO,CAAC,QAAQ,CAAC,MAAM,WAAW,CACjH,CAAC;QACF,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,aAAa,CACX,SAAiB,EACjB,SAAiB,EACjB,OAA6B,EAC7B,SAAiB,SAAS;QAE1B,+CAA+C;QAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACnD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;YACxE,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,6BAA6B;QAC7B,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,SAAS,CAC7C,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,SAAS,CAC5B,CAAC;QACF,IAAI,YAAY,KAAK,CAAC,CAAC,EAAE,CAAC;YACxB,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,SAAS,CAAC,CAAC;YAC/C,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,qBAAqB;QACrB,MAAM,cAAc,GAAG;YACrB,GAAG,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;YACjC,GAAG,OAAO;YACV,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,0BAA0B;SAClD,CAAC;QAEF,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,GAAG,cAAc,CAAC;QAChD,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE/B,uBAAuB;QACvB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACtC,cAAc,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAE5C,OAAO,CAAC,GAAG,CAAC,qBAAqB,SAAS,eAAe,SAAS,EAAE,CAAC,CAAC;QACtE,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,aAAa,CAAC,SAAiB,EAAE,SAAiB,SAAS;QACzD,+CAA+C;QAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACnD,IAAI,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QAE3B,MAAM,OAAO,GAAG,cAAc,CAAC,aAAa,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAChE,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAClC,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,gBAAgB,CAAC,SAAiB,SAAS;QACzC,sCAAsC;QACtC,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAEjD,gCAAgC;QAChC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YAC7B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QAEH,0BAA0B;QAC1B,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YAC7B,cAAc,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,aAAa,CAAC,OAAe;QACnC,kDAAkD;QAClD,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACtD,IAAI,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAE5B,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YACtB,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC;QACzC,CAAC;QAED,OAAO,KAAK,IAAI,UAAU,CAAC;IAC7B,CAAC;IAED,qBAAqB,CAAC,SAAiB,EAAE,WAAW,GAAG,EAAE;QACvD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,CAAC;QAExB,sDAAsD;QACtD,gFAAgF;QAChF,MAAM,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAC5C,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,QAAQ,CAC7B,CAAC;QACF,MAAM,oBAAoB,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAClD,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,QAAQ,KAAK,KAAK,CACvD,CAAC;QAEF,sFAAsF;QACtF,MAAM,kBAAkB,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,CAAC;QAEpE,2DAA2D;QAC3D,MAAM,eAAe,GAAG,CAAC,GAAG,cAAc,EAAE,GAAG,kBAAkB,CAAC,CAAC;QAEnE,4CAA4C;QAC5C,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,kCAAkC,SAAS,GAAG,CAAC,CAAC;YAC5D,cAAc,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;gBACpC,OAAO,CAAC,GAAG,CACT,oBAAoB,KAAK,GAAG,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,CAC5G,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC;QAED,OAAO,eAAe,CAAC;IACzB,CAAC;IAEO,KAAK,CAAC,6BAA6B,CACzC,OAAoB,EACpB,SAAiB,EACjB,MAAc;QAEd,IAAI,CAAC;YACH,OAAO,CAAC,GAAG,CACT,yEAAyE,EACzE,SAAS,EACT,MAAM,CACP,CAAC;YAEF,0EAA0E;YAC1E,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YAEvE,IAAI,OAAO,IAAI,OAAO,CAAC,UAAU,EAAE,aAAa,EAAE,CAAC;gBACjD,MAAM,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;gBACjE,OAAO,CAAC,GAAG,CACT,wEAAwE,gBAAgB,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,CACjH,CAAC;gBAEF,uCAAuC;gBACvC,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;gBACrD,OAAO,CAAC,GAAG,CACT,0FAA0F,OAAO,CAAC,EAAE,EAAE,CACvG,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CACT,6FAA6F,EAC7F,SAAS,CACV,CAAC;gBACF,qCAAqC;gBACrC,IAAI,CAAC,4BAA4B,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACrD,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CACX,kEAAkE,EAClE,SAAS,EACT,KAAK,CACN,CAAC;YACF,qCAAqC;YACrC,IAAI,CAAC,4BAA4B,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAEO,4BAA4B,CAClC,OAAoB,EACpB,MAAc;QAEd,MAAM,oBAAoB,GAAG,kBAAkB,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACzE,OAAO,CAAC,GAAG,CACT,wEAAwE,oBAAoB,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,CACrH,CAAC;QACF,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;IAC3D,CAAC;IAEO,oBAAoB,CAC1B,OAAoB,EACpB,gBAAwB;QAExB,+BAA+B;QAC/B,MAAM,kBAAkB,GAAG,OAAO,CAAC,QAAQ,CAAC,SAAS,CACnD,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,QAAQ,CAC7B,CAAC;QAEF,IAAI,kBAAkB,KAAK,CAAC,CAAC,EAAE,CAAC;YAC9B,iCAAiC;YACjC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,GAAG;gBACrC,GAAG,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC;gBACvC,OAAO,EAAE,gBAAgB;gBACzB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;aACtB,CAAC;YACF,OAAO,CAAC,GAAG,CACT,+DAA+D,CAChE,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,0CAA0C;YAC1C,MAAM,aAAa,GAAgB;gBACjC,EAAE,EAAE,MAAM,EAAE;gBACZ,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,gBAAgB;gBACzB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;aACtB,CAAC;YACF,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YACxC,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,iCAAiC,CAC7C,SAAiB,EACjB,MAAc,EACd,WAAmB,EACnB,OAAoB;QAEpB,IAAI,CAAC;YACH,OAAO,CAAC,GAAG,CACT,0EAA0E,SAAS,aAAa,MAAM,EAAE,CACzG,CAAC;YAEF,yGAAyG;YACzG,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YACvE,OAAO,CAAC,GAAG,CACT,4CAA4C,MAAM,GAAG,EACrD,OAAO,CAAC,CAAC,CAAC,UAAU,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,WAAW,CACjD,CAAC;YAEF,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;gBACnE,OAAO;YACT,CAAC;YAED,4EAA4E;YAC5E,MAAM,mBAAmB,GACvB,OAAO,CAAC,eAAe,IAAI,OAAO,CAAC,eAAe,CAAC;YAErD,OAAO,CAAC,GAAG,CAAC,2CAA2C,EAAE;gBACvD,eAAe,EAAE,OAAO,CAAC,eAAe;gBACxC,eAAe,EAAE,OAAO,CAAC,eAAe;gBACxC,mBAAmB;aACpB,CAAC,CAAC;YAEH,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBACzB,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;gBAC9D,OAAO;YACT,CAAC;YAED,OAAO,CAAC,GAAG,CACT,iDAAiD,OAAO,CAAC,IAAI,KAAK,SAAS,GAAG,CAC/E,CAAC;YAEF,wBAAwB;YACxB,MAAM,cAAc,GAAG,OAAO,CAAC,eAAe,IAAI,kBAAkB,CAAC;YAErE,OAAO,CAAC,GAAG,CAAC,qCAAqC,cAAc,EAAE,CAAC,CAAC;YACnE,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;YAEpD,wCAAwC;YACxC,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;YAC5D,MAAM,aAAa,CAAC,WAAW,CAC7B,MAAM,EACN,SAAS,EACT,WAAW,EACX,cAAc,EACd,SAAS,EAAE,UAAU;YACrB,GAAG,CAAC,mBAAmB;aACxB,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;YAE7D,kCAAkC;YAClC,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;YAC7D,MAAM,gBAAgB,GAAG,MAAM,aAAa,CAAC,cAAc,CACzD,MAAM,EACN,SAAS,EACT,WAAW,EACX,cAAc,EACd,CAAC,EAAE,OAAO;YACV,GAAG,CAAC,uBAAuB;aAC5B,CAAC;YAEF,OAAO,CAAC,GAAG,CACT,oBAAoB,gBAAgB,CAAC,MAAM,oBAAoB,CAChE,CAAC;YACF,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChC,OAAO,CAAC,GAAG,CACT,4BAA4B,EAC5B,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;oBACzB,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK;oBAClD,UAAU,EAAE,CAAC,CAAC,CAAC,gBAAgB,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG;iBACxD,CAAC,CAAC,CACJ,CAAC;YACJ,CAAC;YAED,0DAA0D;YAC1D,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChC,MAAM,qBAAqB,CAAC,eAAe,CACzC,WAAW,EACX,OAAkB,EAAE,sCAAsC;gBAC1D,MAAM,EACN,gBAAgB,CACjB,CAAC;YACJ,CAAC;YAED,+DAA+D;YAC/D,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChC,MAAM,IAAI,CAAC,+BAA+B,CACxC,OAAO,EACP,OAAkB,EAClB,gBAAgB,EAChB,MAAM,CACP,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,kDAAkD,EAAE,KAAK,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,+BAA+B,CAC3C,OAAoB,EACpB,OAAgB,EAChB,QAA8B,EAC9B,MAAc;QAEd,IAAI,CAAC;YACH,MAAM,gBAAgB,GAAG,OAAO,CAAC,UAAU,EAAE,aAAa,IAAI,EAAE,CAAC;YAEjE,gFAAgF;YAChF,MAAM,YAAY,GAAG,MAAM,aAAa,CAAC,eAAe,CACtD,MAAM,EACN,OAAO,CAAC,EAAE,EACV,CAAC,CACF,CAAC;YAEF,sEAAsE;YACtE,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACrD,MAAM,kBAAkB,GAAG,QAAQ;iBAChC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;iBACrC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAEf,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO;YAEzE,gCAAgC;YAChC,IAAI,aAAa,GAAG,EAAE,CAAC;YAEvB,0CAA0C;YAC1C,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5B,aAAa,IAAI,0BAA0B,CAAC;gBAC5C,aAAa,IAAI,YAAY;qBAC1B,GAAG,CAAC,MAAM,CAAC,EAAE;oBACZ,MAAM,IAAI,GACP,MAAmC,CAAC,WAAW,IAAI,SAAS,CAAC;oBAChE,MAAM,SAAS,GACb,IAAI,KAAK,MAAM;wBACb,CAAC,CAAC,MAAM;wBACR,CAAC,CAAC,IAAI,KAAK,YAAY;4BACrB,CAAC,CAAC,YAAY;4BACd,CAAC,CAAC,IAAI,KAAK,aAAa;gCACtB,CAAC,CAAC,aAAa;gCACf,CAAC,CAAC,MAAM,CAAC;oBACjB,OAAO,IAAI,SAAS,KAAK,MAAM,CAAC,OAAO,EAAE,CAAC;gBAC5C,CAAC,CAAC;qBACD,IAAI,CAAC,IAAI,CAAC,CAAC;gBACd,aAAa,IAAI,MAAM,CAAC;YAC1B,CAAC;YAED,0DAA0D;YAC1D,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAClC,aAAa,IAAI,4BAA4B,CAAC;gBAC9C,aAAa,IAAI,kBAAkB;qBAChC,GAAG,CAAC,MAAM,CAAC,EAAE;oBACZ,MAAM,SAAS,GAAG,CAAC,MAAM,CAAC,gBAAgB,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;oBAC7D,OAAO,IAAI,SAAS,YAAY,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;gBACzD,CAAC,CAAC;qBACD,IAAI,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC;YAED,MAAM,oBAAoB,GAAG,GAAG,gBAAgB;;;;;EAKpD,aAAa,CAAC,IAAI,EAAE;;;;;;;qBAOD,CAAC;YAEhB,4BAA4B;YAC5B,MAAM,kBAAkB,GAAG,OAAO,CAAC,QAAQ,CAAC,SAAS,CACnD,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,QAAQ,CAC7B,CAAC;YAEF,IAAI,kBAAkB,KAAK,CAAC,CAAC,EAAE,CAAC;gBAC9B,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,GAAG;oBACrC,GAAG,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC;oBACvC,OAAO,EAAE,oBAAoB;oBAC7B,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;iBACtB,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,yBAAyB;gBACzB,MAAM,aAAa,GAAgB;oBACjC,EAAE,EAAE,MAAM,EAAE;oBACZ,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,oBAAoB;oBAC7B,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;iBACtB,CAAC;gBACF,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YAC1C,CAAC;YAED,2BAA2B;YAC3B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YACvC,cAAc,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAE5C,OAAO,CAAC,GAAG,CACT,0CAA0C,YAAY,CAAC,MAAM,WAAW,kBAAkB,CAAC,MAAM,sBAAsB,CACxH,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CACX,yDAAyD,EACzD,KAAK,CACN,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,8BAA8B,CAC1C,SAAiB,EACjB,MAAc,EACd,gBAAwB;QAExB,IAAI,CAAC;YACH,OAAO,CAAC,GAAG,CACT,uEAAuE,SAAS,aAAa,MAAM,EAAE,CACtG,CAAC;YAEF,yGAAyG;YACzG,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YACvE,OAAO,CAAC,GAAG,CACT,4CAA4C,MAAM,GAAG,EACrD,OAAO,CAAC,CAAC,CAAC,UAAU,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,WAAW,CACjD,CAAC;YAEF,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;gBACnE,OAAO;YACT,CAAC;YAED,MAAM,mBAAmB,GACvB,OAAO,CAAC,eAAe,IAAI,OAAO,CAAC,eAAe,CAAC;YAErD,OAAO,CAAC,GAAG,CAAC,4CAA4C,EAAE;gBACxD,eAAe,EAAE,OAAO,CAAC,eAAe;gBACxC,eAAe,EAAE,OAAO,CAAC,eAAe;gBACxC,mBAAmB;aACpB,CAAC,CAAC;YAEH,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBACzB,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;gBACjE,OAAO;YACT,CAAC;YAED,OAAO,CAAC,GAAG,CACT,+DAA+D,OAAO,CAAC,IAAI,EAAE,CAC9E,CAAC;YAEF,wBAAwB;YACxB,MAAM,cAAc,GAAG,OAAO,CAAC,eAAe,IAAI,kBAAkB,CAAC;YAErE,8DAA8D;YAC9D,MAAM,aAAa,CAAC,WAAW,CAC7B,MAAM,EACN,SAAS,EACT,uBAAuB,gBAAgB,EAAE,EACzC,cAAc,EACd,SAAS,EAAE,UAAU;YACrB,GAAG,CAAC,+CAA+C;aACpD,CAAC;YAEF,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;QACrE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,+CAA+C,EAAE,KAAK,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,mBAAmB,CACjB,SAAiB,EACjB,iBAAyB,EACzB,UAAmE,EACnE,SAAiB,SAAS;QAE1B,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACnD,IAAI,CAAC,OAAO;YAAE,OAAO,SAAS,CAAC;QAE/B,MAAM,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAC3C,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,iBAAiB,CACpC,CAAC;QACF,IAAI,CAAC,eAAe;YAAE,OAAO,SAAS,CAAC;QAEvC,gGAAgG;QAChG,MAAM,QAAQ,GAAG,eAAe,CAAC,QAAQ,IAAI,iBAAiB,CAAC;QAE/D,sDAAsD;QACtD,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CACtC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,QAAQ,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,CACxD,CAAC;QACF,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC;QAEvC,wCAAwC;QACxC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC;QAC3B,CAAC;QAED,MAAM,SAAS,GAAG,UAAU,CAAC,EAAE,IAAI,MAAM,EAAE,CAAC;QAC5C,MAAM,gBAAgB,GAAgB;YACpC,GAAG,UAAU;YACb,EAAE,EAAE,SAAS;YACb,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,QAAQ,EAAE,QAAQ;YAClB,WAAW,EAAE,cAAc;YAC3B,QAAQ,EAAE,IAAI;YACd,YAAY,EAAE,cAAc,GAAG,CAAC;SACjC,CAAC;QAEF,iDAAiD;QACjD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,OAAO,CAAC,YAAY,GAAG,cAAc,GAAG,CAAC,CAAC;QAC5C,CAAC;QAED,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACxC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE/B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACtC,cAAc,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAE5C,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,mBAAmB,CACjB,SAAiB,EACjB,SAAiB,EACjB,iBAAyB,EACzB,SAAiB,SAAS;QAE1B,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACnD,IAAI,CAAC,OAAO;YAAE,OAAO,SAAS,CAAC;QAE/B,yCAAyC;QACzC,MAAM,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;QACzE,IAAI,CAAC,aAAa;YAAE,OAAO,SAAS,CAAC;QAErC,kEAAkE;QAClE,MAAM,QAAQ,GAAG,aAAa,CAAC,QAAQ,IAAI,SAAS,CAAC;QAErD,4DAA4D;QAC5D,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CACtC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,QAAQ,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,CACxD,CAAC;QAEF,gEAAgE;QAChE,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC;QAC3B,CAAC;QACD,aAAa,CAAC,QAAQ,GAAG,IAAI,CAAC;QAE9B,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC/B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACtC,cAAc,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAE5C,OAAO,aAAa,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,kBAAkB,CAChB,SAAiB,EACjB,SAAiB,EACjB,SAAiB,SAAS;QAE1B,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACnD,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,CAAC;QAExB,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;QACnE,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,CAAC;QAExB,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,SAAS,CAAC;QAE/C,4DAA4D;QAC5D,OAAO,OAAO,CAAC,QAAQ;aACpB,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,QAAQ,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC;aAC/D,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,CAAC;IACjE,CAAC;CACF;AAED,eAAe,IAAI,WAAW,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"chatService.js","sourceRoot":"","sources":["../../src/services/chatService.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"documentService.d.ts","sourceRoot":"","sources":["../../src/services/documentService.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"documentService.d.ts","sourceRoot":"","sources":["../../src/services/documentService.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AA0CzC,cAAM,eAAe;IACnB,OAAO,CAAC,SAAS,CAAoC;IACrD,OAAO,CAAC,MAAM,CAA2C;;IAOzD,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,UAAU;IAkBlB,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,UAAU;IAKZ,eAAe,CACnB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,QAAQ,CAAC;IA4EpB,OAAO,CAAC,aAAa;YAiFP,wBAAwB;YAqBxB,2BAA2B;IA0BnC,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC;IA0BxC,qBAAqB,IAAI,OAAO,CAAC;QACrC,SAAS,EAAE,OAAO,CAAC;QACnB,KAAK,EAAE,MAAM,CAAC;QACd,oBAAoB,EAAE,MAAM,CAAC;QAC7B,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IAkBF,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAIrD,YAAY,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,QAAQ,EAAE;IAQ5C,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,aAAa,EAAE;IAItD,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAarC,eAAe,CACnB,KAAK,EAAE,MAAM,EACb,SAAS,CAAC,EAAE,MAAM,EAClB,KAAK,SAAI,GACR,OAAO,CAAC,aAAa,EAAE,CAAC;YAYb,uBAAuB;IA0DrC,OAAO,CAAC,sBAAsB;IAoDxB,kBAAkB,CACtB,KAAK,EAAE,MAAM,EACb,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,EAAE,CAAC;IAWpB,eAAe,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;CAiB1C;;AAED,wBAAqC"}
|
|
@@ -16,8 +16,10 @@
|
|
|
16
16
|
*/
|
|
17
17
|
import { v4 as uuidv4 } from 'uuid';
|
|
18
18
|
import storageService from '../storage.js';
|
|
19
|
-
import
|
|
19
|
+
import embeddingService from './embeddingService.js';
|
|
20
20
|
import preferencesService from './preferencesService.js';
|
|
21
|
+
import { createLogger } from '../utils/logger.js';
|
|
22
|
+
const logger = createLogger('documents');
|
|
21
23
|
// Utility functions for vector operations
|
|
22
24
|
const cosineSimilarity = (a, b) => {
|
|
23
25
|
if (a.length !== b.length)
|
|
@@ -40,10 +42,10 @@ const getPdfjsLib = async () => {
|
|
|
40
42
|
// Use the legacy build for Node.js compatibility
|
|
41
43
|
const pdfjs = await import('pdfjs-dist/legacy/build/pdf.mjs');
|
|
42
44
|
pdfjsLib = pdfjs;
|
|
43
|
-
|
|
45
|
+
logger.debug('Successfully loaded pdfjs-dist legacy build');
|
|
44
46
|
}
|
|
45
47
|
catch (error) {
|
|
46
|
-
|
|
48
|
+
logger.error('Failed to load pdfjs-dist legacy:', error);
|
|
47
49
|
throw new Error('PDF parsing is not available');
|
|
48
50
|
}
|
|
49
51
|
}
|
|
@@ -60,10 +62,10 @@ class DocumentService {
|
|
|
60
62
|
try {
|
|
61
63
|
const documentsArray = storageService.getAllDocuments();
|
|
62
64
|
this.documents = new Map(documentsArray.map(doc => [doc.id, doc]));
|
|
63
|
-
|
|
65
|
+
logger.debug(`Loaded ${documentsArray.length} documents from storage`);
|
|
64
66
|
}
|
|
65
67
|
catch (error) {
|
|
66
|
-
|
|
68
|
+
logger.error('Failed to load documents:', error);
|
|
67
69
|
}
|
|
68
70
|
}
|
|
69
71
|
loadChunks() {
|
|
@@ -76,10 +78,10 @@ class DocumentService {
|
|
|
76
78
|
this.chunks.set(doc.id, chunks);
|
|
77
79
|
}
|
|
78
80
|
}
|
|
79
|
-
|
|
81
|
+
logger.debug(`Loaded chunks for ${this.chunks.size} documents from storage`);
|
|
80
82
|
}
|
|
81
83
|
catch (error) {
|
|
82
|
-
|
|
84
|
+
logger.error('Failed to load document chunks:', error);
|
|
83
85
|
}
|
|
84
86
|
}
|
|
85
87
|
saveDocuments() {
|
|
@@ -116,7 +118,7 @@ class DocumentService {
|
|
|
116
118
|
fileType = 'pdf';
|
|
117
119
|
}
|
|
118
120
|
catch (pdfError) {
|
|
119
|
-
|
|
121
|
+
logger.error('PDF parsing error:', pdfError);
|
|
120
122
|
throw new Error(`Failed to parse PDF: ${pdfError instanceof Error ? pdfError.message : 'Unknown PDF error'}`);
|
|
121
123
|
}
|
|
122
124
|
}
|
|
@@ -145,11 +147,11 @@ class DocumentService {
|
|
|
145
147
|
this.chunks.set(documentId, chunksWithEmbeddings);
|
|
146
148
|
storageService.saveDocument(document);
|
|
147
149
|
storageService.saveDocumentChunks(documentId, chunksWithEmbeddings);
|
|
148
|
-
|
|
150
|
+
logger.debug(`Processed ${fileType.toUpperCase()} document: ${fileName} (${chunksWithEmbeddings.length} chunks)`);
|
|
149
151
|
return document;
|
|
150
152
|
}
|
|
151
153
|
catch (error) {
|
|
152
|
-
|
|
154
|
+
logger.error('Error processing document:', error);
|
|
153
155
|
throw new Error(`Failed to process document: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
154
156
|
}
|
|
155
157
|
}
|
|
@@ -226,14 +228,14 @@ class DocumentService {
|
|
|
226
228
|
if (!preferences.embeddingSettings.enabled) {
|
|
227
229
|
return null;
|
|
228
230
|
}
|
|
229
|
-
const response = await
|
|
231
|
+
const response = await embeddingService.generateEmbeddings({
|
|
230
232
|
model: preferences.embeddingSettings.model,
|
|
231
233
|
input: text,
|
|
232
234
|
});
|
|
233
235
|
return response.embeddings[0] || null;
|
|
234
236
|
}
|
|
235
237
|
catch (error) {
|
|
236
|
-
|
|
238
|
+
logger.error('Failed to generate embedding:', error);
|
|
237
239
|
return null;
|
|
238
240
|
}
|
|
239
241
|
}
|
|
@@ -242,7 +244,7 @@ class DocumentService {
|
|
|
242
244
|
if (!preferences.embeddingSettings.enabled) {
|
|
243
245
|
return chunks;
|
|
244
246
|
}
|
|
245
|
-
|
|
247
|
+
logger.debug(`Generating embeddings for ${chunks.length} chunks...`);
|
|
246
248
|
const chunksWithEmbeddings = [];
|
|
247
249
|
for (const chunk of chunks) {
|
|
248
250
|
const embedding = await this.generateEmbeddingForText(chunk.content);
|
|
@@ -251,17 +253,17 @@ class DocumentService {
|
|
|
251
253
|
embedding: embedding || undefined,
|
|
252
254
|
});
|
|
253
255
|
}
|
|
254
|
-
|
|
256
|
+
logger.debug(`Generated embeddings for ${chunksWithEmbeddings.filter(c => c.embedding).length} chunks`);
|
|
255
257
|
return chunksWithEmbeddings;
|
|
256
258
|
}
|
|
257
259
|
// Method to regenerate embeddings for all existing documents
|
|
258
260
|
async regenerateAllEmbeddings() {
|
|
259
261
|
const preferences = preferencesService.getPreferences();
|
|
260
262
|
if (!preferences.embeddingSettings.enabled) {
|
|
261
|
-
|
|
263
|
+
logger.debug('Embeddings are disabled, skipping regeneration');
|
|
262
264
|
return;
|
|
263
265
|
}
|
|
264
|
-
|
|
266
|
+
logger.debug('Starting to regenerate embeddings for all documents...');
|
|
265
267
|
let processedChunks = 0;
|
|
266
268
|
let totalChunks = 0;
|
|
267
269
|
for (const [documentId, chunks] of this.chunks.entries()) {
|
|
@@ -271,7 +273,7 @@ class DocumentService {
|
|
|
271
273
|
processedChunks += chunksWithEmbeddings.filter(c => c.embedding).length;
|
|
272
274
|
}
|
|
273
275
|
this.saveChunks();
|
|
274
|
-
|
|
276
|
+
logger.debug(`Regenerated embeddings for ${processedChunks}/${totalChunks} chunks`);
|
|
275
277
|
}
|
|
276
278
|
// Method to get embedding model information
|
|
277
279
|
async getEmbeddingModelInfo() {
|
|
@@ -326,7 +328,7 @@ class DocumentService {
|
|
|
326
328
|
// Generate embedding for the query
|
|
327
329
|
const queryEmbedding = await this.generateEmbeddingForText(query);
|
|
328
330
|
if (!queryEmbedding) {
|
|
329
|
-
|
|
331
|
+
logger.warn('Failed to generate query embedding, falling back to keyword search');
|
|
330
332
|
return this.keywordSearchDocuments(query, sessionId, limit);
|
|
331
333
|
}
|
|
332
334
|
const preferences = preferencesService.getPreferences();
|
|
@@ -358,7 +360,7 @@ class DocumentService {
|
|
|
358
360
|
}));
|
|
359
361
|
}
|
|
360
362
|
catch (error) {
|
|
361
|
-
|
|
363
|
+
logger.error('Semantic search failed, falling back to keyword search:', error);
|
|
362
364
|
return this.keywordSearchDocuments(query, sessionId, limit);
|
|
363
365
|
}
|
|
364
366
|
}
|
|
@@ -416,10 +418,10 @@ class DocumentService {
|
|
|
416
418
|
// Save to storage
|
|
417
419
|
storageService.saveDocument(document);
|
|
418
420
|
// If there are any chunks with this document, they'll be handled separately
|
|
419
|
-
|
|
421
|
+
logger.debug(`Restored document: ${document.filename} (${document.id})`);
|
|
420
422
|
}
|
|
421
423
|
catch (error) {
|
|
422
|
-
|
|
424
|
+
logger.error('Error restoring document:', error);
|
|
423
425
|
throw new Error(`Failed to restore document: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
424
426
|
}
|
|
425
427
|
}
|