@framers/agentos 0.1.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/LICENSE +98 -0
- package/README.md +576 -0
- package/dist/api/AgentOS.d.ts +451 -0
- package/dist/api/AgentOS.d.ts.map +1 -0
- package/dist/api/AgentOS.js +1157 -0
- package/dist/api/AgentOS.js.map +1 -0
- package/dist/api/AgentOSOrchestrator.d.ts +157 -0
- package/dist/api/AgentOSOrchestrator.d.ts.map +1 -0
- package/dist/api/AgentOSOrchestrator.js +679 -0
- package/dist/api/AgentOSOrchestrator.js.map +1 -0
- package/dist/api/interfaces/IAgentOS.d.ts +138 -0
- package/dist/api/interfaces/IAgentOS.d.ts.map +1 -0
- package/dist/api/interfaces/IAgentOS.js +11 -0
- package/dist/api/interfaces/IAgentOS.js.map +1 -0
- package/dist/api/interfaces/IUnifiedAgent.d.ts +126 -0
- package/dist/api/interfaces/IUnifiedAgent.d.ts.map +1 -0
- package/dist/api/interfaces/IUnifiedAgent.js +3 -0
- package/dist/api/interfaces/IUnifiedAgent.js.map +1 -0
- package/dist/api/types/AgentOSInput.d.ts +114 -0
- package/dist/api/types/AgentOSInput.d.ts.map +1 -0
- package/dist/api/types/AgentOSInput.js +13 -0
- package/dist/api/types/AgentOSInput.js.map +1 -0
- package/dist/api/types/AgentOSResponse.d.ts +170 -0
- package/dist/api/types/AgentOSResponse.d.ts.map +1 -0
- package/dist/api/types/AgentOSResponse.js +25 -0
- package/dist/api/types/AgentOSResponse.js.map +1 -0
- package/dist/cognitive_substrate/GMI.d.ts +148 -0
- package/dist/cognitive_substrate/GMI.d.ts.map +1 -0
- package/dist/cognitive_substrate/GMI.js +1003 -0
- package/dist/cognitive_substrate/GMI.js.map +1 -0
- package/dist/cognitive_substrate/GMIManager.d.ts +98 -0
- package/dist/cognitive_substrate/GMIManager.d.ts.map +1 -0
- package/dist/cognitive_substrate/GMIManager.js +517 -0
- package/dist/cognitive_substrate/GMIManager.js.map +1 -0
- package/dist/cognitive_substrate/IGMI.d.ts +469 -0
- package/dist/cognitive_substrate/IGMI.d.ts.map +1 -0
- package/dist/cognitive_substrate/IGMI.js +111 -0
- package/dist/cognitive_substrate/IGMI.js.map +1 -0
- package/dist/cognitive_substrate/memory/IWorkingMemory.d.ts +139 -0
- package/dist/cognitive_substrate/memory/IWorkingMemory.d.ts.map +1 -0
- package/dist/cognitive_substrate/memory/IWorkingMemory.js +14 -0
- package/dist/cognitive_substrate/memory/IWorkingMemory.js.map +1 -0
- package/dist/cognitive_substrate/memory/InMemoryWorkingMemory.d.ts +143 -0
- package/dist/cognitive_substrate/memory/InMemoryWorkingMemory.d.ts.map +1 -0
- package/dist/cognitive_substrate/memory/InMemoryWorkingMemory.js +186 -0
- package/dist/cognitive_substrate/memory/InMemoryWorkingMemory.js.map +1 -0
- package/dist/cognitive_substrate/persona_overlays/PersonaOverlayManager.d.ts +33 -0
- package/dist/cognitive_substrate/persona_overlays/PersonaOverlayManager.d.ts.map +1 -0
- package/dist/cognitive_substrate/persona_overlays/PersonaOverlayManager.js +138 -0
- package/dist/cognitive_substrate/persona_overlays/PersonaOverlayManager.js.map +1 -0
- package/dist/cognitive_substrate/persona_overlays/PersonaOverlayTypes.d.ts +32 -0
- package/dist/cognitive_substrate/persona_overlays/PersonaOverlayTypes.d.ts.map +1 -0
- package/dist/cognitive_substrate/persona_overlays/PersonaOverlayTypes.js +2 -0
- package/dist/cognitive_substrate/persona_overlays/PersonaOverlayTypes.js.map +1 -0
- package/dist/cognitive_substrate/personas/IPersonaDefinition.d.ts +336 -0
- package/dist/cognitive_substrate/personas/IPersonaDefinition.d.ts.map +1 -0
- package/dist/cognitive_substrate/personas/IPersonaDefinition.js +8 -0
- package/dist/cognitive_substrate/personas/IPersonaDefinition.js.map +1 -0
- package/dist/cognitive_substrate/personas/IPersonaLoader.d.ts +78 -0
- package/dist/cognitive_substrate/personas/IPersonaLoader.d.ts.map +1 -0
- package/dist/cognitive_substrate/personas/IPersonaLoader.js +9 -0
- package/dist/cognitive_substrate/personas/IPersonaLoader.js.map +1 -0
- package/dist/cognitive_substrate/personas/PersonaLoader.d.ts +60 -0
- package/dist/cognitive_substrate/personas/PersonaLoader.d.ts.map +1 -0
- package/dist/cognitive_substrate/personas/PersonaLoader.js +138 -0
- package/dist/cognitive_substrate/personas/PersonaLoader.js.map +1 -0
- package/dist/cognitive_substrate/personas/PersonaValidation.d.ts +139 -0
- package/dist/cognitive_substrate/personas/PersonaValidation.d.ts.map +1 -0
- package/dist/cognitive_substrate/personas/PersonaValidation.js +277 -0
- package/dist/cognitive_substrate/personas/PersonaValidation.js.map +1 -0
- package/dist/cognitive_substrate/personas/definitions/atlas_systems_architect.json +29 -0
- package/dist/cognitive_substrate/personas/definitions/default_assistant_persona.json +346 -0
- package/dist/cognitive_substrate/personas/definitions/default_free_assistant.json +13 -0
- package/dist/cognitive_substrate/personas/definitions/index.d.ts +14 -0
- package/dist/cognitive_substrate/personas/definitions/index.d.ts.map +1 -0
- package/dist/cognitive_substrate/personas/definitions/index.js +35 -0
- package/dist/cognitive_substrate/personas/definitions/index.js.map +1 -0
- package/dist/cognitive_substrate/personas/definitions/nerf_generalist.json +11 -0
- package/dist/cognitive_substrate/personas/definitions/v_researcher.json +11 -0
- package/dist/config/AgentOSConfig.d.ts +74 -0
- package/dist/config/AgentOSConfig.d.ts.map +1 -0
- package/dist/config/AgentOSConfig.js +399 -0
- package/dist/config/AgentOSConfig.js.map +1 -0
- package/dist/config/EmbeddingManagerConfiguration.d.ts +190 -0
- package/dist/config/EmbeddingManagerConfiguration.d.ts.map +1 -0
- package/dist/config/EmbeddingManagerConfiguration.js +16 -0
- package/dist/config/EmbeddingManagerConfiguration.js.map +1 -0
- package/dist/config/MemoryLifecycleManagerConfiguration.d.ts +165 -0
- package/dist/config/MemoryLifecycleManagerConfiguration.d.ts.map +1 -0
- package/dist/config/MemoryLifecycleManagerConfiguration.js +69 -0
- package/dist/config/MemoryLifecycleManagerConfiguration.js.map +1 -0
- package/dist/config/RetrievalAugmentorConfiguration.d.ts +98 -0
- package/dist/config/RetrievalAugmentorConfiguration.d.ts.map +1 -0
- package/dist/config/RetrievalAugmentorConfiguration.js +47 -0
- package/dist/config/RetrievalAugmentorConfiguration.js.map +1 -0
- package/dist/config/ToolOrchestratorConfig.d.ts +69 -0
- package/dist/config/ToolOrchestratorConfig.d.ts.map +1 -0
- package/dist/config/ToolOrchestratorConfig.js +11 -0
- package/dist/config/ToolOrchestratorConfig.js.map +1 -0
- package/dist/config/VectorStoreConfiguration.d.ts +223 -0
- package/dist/config/VectorStoreConfiguration.d.ts.map +1 -0
- package/dist/config/VectorStoreConfiguration.js +59 -0
- package/dist/config/VectorStoreConfiguration.js.map +1 -0
- package/dist/config/extension-secrets.json +38 -0
- package/dist/config/extensionSecrets.d.ts +13 -0
- package/dist/config/extensionSecrets.d.ts.map +1 -0
- package/dist/config/extensionSecrets.js +24 -0
- package/dist/config/extensionSecrets.js.map +1 -0
- package/dist/core/agency/AgencyMemoryManager.d.ts +300 -0
- package/dist/core/agency/AgencyMemoryManager.d.ts.map +1 -0
- package/dist/core/agency/AgencyMemoryManager.js +657 -0
- package/dist/core/agency/AgencyMemoryManager.js.map +1 -0
- package/dist/core/agency/AgencyRegistry.d.ts +100 -0
- package/dist/core/agency/AgencyRegistry.d.ts.map +1 -0
- package/dist/core/agency/AgencyRegistry.js +209 -0
- package/dist/core/agency/AgencyRegistry.js.map +1 -0
- package/dist/core/agency/AgencyTypes.d.ts +200 -0
- package/dist/core/agency/AgencyTypes.d.ts.map +1 -0
- package/dist/core/agency/AgencyTypes.js +7 -0
- package/dist/core/agency/AgencyTypes.js.map +1 -0
- package/dist/core/agency/AgentCommunicationBus.d.ts +150 -0
- package/dist/core/agency/AgentCommunicationBus.d.ts.map +1 -0
- package/dist/core/agency/AgentCommunicationBus.js +568 -0
- package/dist/core/agency/AgentCommunicationBus.js.map +1 -0
- package/dist/core/agency/IAgentCommunicationBus.d.ts +469 -0
- package/dist/core/agency/IAgentCommunicationBus.d.ts.map +1 -0
- package/dist/core/agency/IAgentCommunicationBus.js +40 -0
- package/dist/core/agency/IAgentCommunicationBus.js.map +1 -0
- package/dist/core/agency/index.d.ts +18 -0
- package/dist/core/agency/index.d.ts.map +1 -0
- package/dist/core/agency/index.js +18 -0
- package/dist/core/agency/index.js.map +1 -0
- package/dist/core/agents/AgentCore.d.ts +385 -0
- package/dist/core/agents/AgentCore.d.ts.map +1 -0
- package/dist/core/agents/AgentCore.js +527 -0
- package/dist/core/agents/AgentCore.js.map +1 -0
- package/dist/core/agents/AgentFactory.d.ts +123 -0
- package/dist/core/agents/AgentFactory.d.ts.map +1 -0
- package/dist/core/agents/AgentFactory.js +232 -0
- package/dist/core/agents/AgentFactory.js.map +1 -0
- package/dist/core/agents/AgentPoolAgent.d.ts +244 -0
- package/dist/core/agents/AgentPoolAgent.d.ts.map +1 -0
- package/dist/core/agents/AgentPoolAgent.js +697 -0
- package/dist/core/agents/AgentPoolAgent.js.map +1 -0
- package/dist/core/agents/AgentPoolConfig.d.ts +191 -0
- package/dist/core/agents/AgentPoolConfig.d.ts.map +1 -0
- package/dist/core/agents/AgentPoolConfig.js +58 -0
- package/dist/core/agents/AgentPoolConfig.js.map +1 -0
- package/dist/core/agents/IAgent.d.ts +226 -0
- package/dist/core/agents/IAgent.d.ts.map +1 -0
- package/dist/core/agents/IAgent.js +14 -0
- package/dist/core/agents/IAgent.js.map +1 -0
- package/dist/core/agents/IAgentFactory.d.ts +137 -0
- package/dist/core/agents/IAgentFactory.d.ts.map +1 -0
- package/dist/core/agents/IAgentFactory.js +13 -0
- package/dist/core/agents/IAgentFactory.js.map +1 -0
- package/dist/core/agents/tools/Tool.d.ts +17 -0
- package/dist/core/agents/tools/Tool.d.ts.map +1 -0
- package/dist/core/agents/tools/Tool.js +8 -0
- package/dist/core/agents/tools/Tool.js.map +1 -0
- package/dist/core/ai_utilities/HybridUtilityAI.d.ts +1 -0
- package/dist/core/ai_utilities/HybridUtilityAI.d.ts.map +1 -0
- package/dist/core/ai_utilities/HybridUtilityAI.js +2 -0
- package/dist/core/ai_utilities/HybridUtilityAI.js.map +1 -0
- package/dist/core/ai_utilities/IUtilityAI.d.ts +212 -0
- package/dist/core/ai_utilities/IUtilityAI.d.ts.map +1 -0
- package/dist/core/ai_utilities/IUtilityAI.js +11 -0
- package/dist/core/ai_utilities/IUtilityAI.js.map +1 -0
- package/dist/core/ai_utilities/LLMUtilityAI.d.ts +94 -0
- package/dist/core/ai_utilities/LLMUtilityAI.d.ts.map +1 -0
- package/dist/core/ai_utilities/LLMUtilityAI.js +434 -0
- package/dist/core/ai_utilities/LLMUtilityAI.js.map +1 -0
- package/dist/core/ai_utilities/StatisticalUtilityAI.d.ts +102 -0
- package/dist/core/ai_utilities/StatisticalUtilityAI.d.ts.map +1 -0
- package/dist/core/ai_utilities/StatisticalUtilityAI.js +617 -0
- package/dist/core/ai_utilities/StatisticalUtilityAI.js.map +1 -0
- package/dist/core/conversation/ConversationContext.d.ts +259 -0
- package/dist/core/conversation/ConversationContext.d.ts.map +1 -0
- package/dist/core/conversation/ConversationContext.js +450 -0
- package/dist/core/conversation/ConversationContext.js.map +1 -0
- package/dist/core/conversation/ConversationManager.d.ts +223 -0
- package/dist/core/conversation/ConversationManager.d.ts.map +1 -0
- package/dist/core/conversation/ConversationManager.js +558 -0
- package/dist/core/conversation/ConversationManager.js.map +1 -0
- package/dist/core/conversation/ConversationMessage.d.ts +184 -0
- package/dist/core/conversation/ConversationMessage.d.ts.map +1 -0
- package/dist/core/conversation/ConversationMessage.js +66 -0
- package/dist/core/conversation/ConversationMessage.js.map +1 -0
- package/dist/core/evaluation/Evaluator.d.ts +28 -0
- package/dist/core/evaluation/Evaluator.d.ts.map +1 -0
- package/dist/core/evaluation/Evaluator.js +490 -0
- package/dist/core/evaluation/Evaluator.js.map +1 -0
- package/dist/core/evaluation/IEvaluator.d.ts +309 -0
- package/dist/core/evaluation/IEvaluator.d.ts.map +1 -0
- package/dist/core/evaluation/IEvaluator.js +12 -0
- package/dist/core/evaluation/IEvaluator.js.map +1 -0
- package/dist/core/evaluation/LLMJudge.d.ts +105 -0
- package/dist/core/evaluation/LLMJudge.d.ts.map +1 -0
- package/dist/core/evaluation/LLMJudge.js +229 -0
- package/dist/core/evaluation/LLMJudge.js.map +1 -0
- package/dist/core/evaluation/index.d.ts +9 -0
- package/dist/core/evaluation/index.d.ts.map +1 -0
- package/dist/core/evaluation/index.js +9 -0
- package/dist/core/evaluation/index.js.map +1 -0
- package/dist/core/guardrails/IGuardrailService.d.ts +142 -0
- package/dist/core/guardrails/IGuardrailService.d.ts.map +1 -0
- package/dist/core/guardrails/IGuardrailService.js +24 -0
- package/dist/core/guardrails/IGuardrailService.js.map +1 -0
- package/dist/core/guardrails/guardrailDispatcher.d.ts +36 -0
- package/dist/core/guardrails/guardrailDispatcher.d.ts.map +1 -0
- package/dist/core/guardrails/guardrailDispatcher.js +240 -0
- package/dist/core/guardrails/guardrailDispatcher.js.map +1 -0
- package/dist/core/hitl/HumanInteractionManager.d.ts +146 -0
- package/dist/core/hitl/HumanInteractionManager.d.ts.map +1 -0
- package/dist/core/hitl/HumanInteractionManager.js +491 -0
- package/dist/core/hitl/HumanInteractionManager.js.map +1 -0
- package/dist/core/hitl/IHumanInteractionManager.d.ts +521 -0
- package/dist/core/hitl/IHumanInteractionManager.d.ts.map +1 -0
- package/dist/core/hitl/IHumanInteractionManager.js +33 -0
- package/dist/core/hitl/IHumanInteractionManager.js.map +1 -0
- package/dist/core/hitl/index.d.ts +17 -0
- package/dist/core/hitl/index.d.ts.map +1 -0
- package/dist/core/hitl/index.js +17 -0
- package/dist/core/hitl/index.js.map +1 -0
- package/dist/core/knowledge/IKnowledgeGraph.d.ts +351 -0
- package/dist/core/knowledge/IKnowledgeGraph.d.ts.map +1 -0
- package/dist/core/knowledge/IKnowledgeGraph.js +10 -0
- package/dist/core/knowledge/IKnowledgeGraph.js.map +1 -0
- package/dist/core/knowledge/KnowledgeGraph.d.ts +93 -0
- package/dist/core/knowledge/KnowledgeGraph.d.ts.map +1 -0
- package/dist/core/knowledge/KnowledgeGraph.js +601 -0
- package/dist/core/knowledge/KnowledgeGraph.js.map +1 -0
- package/dist/core/knowledge/index.d.ts +8 -0
- package/dist/core/knowledge/index.d.ts.map +1 -0
- package/dist/core/knowledge/index.js +8 -0
- package/dist/core/knowledge/index.js.map +1 -0
- package/dist/core/language/LanguageService.d.ts +77 -0
- package/dist/core/language/LanguageService.d.ts.map +1 -0
- package/dist/core/language/LanguageService.js +305 -0
- package/dist/core/language/LanguageService.js.map +1 -0
- package/dist/core/language/index.d.ts +6 -0
- package/dist/core/language/index.d.ts.map +1 -0
- package/dist/core/language/index.js +6 -0
- package/dist/core/language/index.js.map +1 -0
- package/dist/core/language/interfaces.d.ts +168 -0
- package/dist/core/language/interfaces.d.ts.map +1 -0
- package/dist/core/language/interfaces.js +37 -0
- package/dist/core/language/interfaces.js.map +1 -0
- package/dist/core/language/providers/DeepLTranslationProvider.d.ts +16 -0
- package/dist/core/language/providers/DeepLTranslationProvider.d.ts.map +1 -0
- package/dist/core/language/providers/DeepLTranslationProvider.js +28 -0
- package/dist/core/language/providers/DeepLTranslationProvider.js.map +1 -0
- package/dist/core/language/providers/OpenAITranslationProvider.d.ts +17 -0
- package/dist/core/language/providers/OpenAITranslationProvider.d.ts.map +1 -0
- package/dist/core/language/providers/OpenAITranslationProvider.js +34 -0
- package/dist/core/language/providers/OpenAITranslationProvider.js.map +1 -0
- package/dist/core/language/providers/WhisperDetectionProvider.d.ts +16 -0
- package/dist/core/language/providers/WhisperDetectionProvider.d.ts.map +1 -0
- package/dist/core/language/providers/WhisperDetectionProvider.js +15 -0
- package/dist/core/language/providers/WhisperDetectionProvider.js.map +1 -0
- package/dist/core/llm/IPromptEngine.d.ts +627 -0
- package/dist/core/llm/IPromptEngine.d.ts.map +1 -0
- package/dist/core/llm/IPromptEngine.js +81 -0
- package/dist/core/llm/IPromptEngine.js.map +1 -0
- package/dist/core/llm/PromptEngine.d.ts +108 -0
- package/dist/core/llm/PromptEngine.d.ts.map +1 -0
- package/dist/core/llm/PromptEngine.js +872 -0
- package/dist/core/llm/PromptEngine.js.map +1 -0
- package/dist/core/llm/providers/AIModelProviderManager.d.ts +74 -0
- package/dist/core/llm/providers/AIModelProviderManager.d.ts.map +1 -0
- package/dist/core/llm/providers/AIModelProviderManager.js +263 -0
- package/dist/core/llm/providers/AIModelProviderManager.js.map +1 -0
- package/dist/core/llm/providers/IProvider.d.ts +327 -0
- package/dist/core/llm/providers/IProvider.d.ts.map +1 -0
- package/dist/core/llm/providers/IProvider.js +39 -0
- package/dist/core/llm/providers/IProvider.js.map +1 -0
- package/dist/core/llm/providers/errors/OllamaProviderError.d.ts +36 -0
- package/dist/core/llm/providers/errors/OllamaProviderError.d.ts.map +1 -0
- package/dist/core/llm/providers/errors/OllamaProviderError.js +40 -0
- package/dist/core/llm/providers/errors/OllamaProviderError.js.map +1 -0
- package/dist/core/llm/providers/errors/OpenAIProviderError.d.ts +42 -0
- package/dist/core/llm/providers/errors/OpenAIProviderError.d.ts.map +1 -0
- package/dist/core/llm/providers/errors/OpenAIProviderError.js +44 -0
- package/dist/core/llm/providers/errors/OpenAIProviderError.js.map +1 -0
- package/dist/core/llm/providers/errors/OpenRouterProviderError.d.ts +39 -0
- package/dist/core/llm/providers/errors/OpenRouterProviderError.d.ts.map +1 -0
- package/dist/core/llm/providers/errors/OpenRouterProviderError.js +42 -0
- package/dist/core/llm/providers/errors/OpenRouterProviderError.js.map +1 -0
- package/dist/core/llm/providers/errors/ProviderError.d.ts +37 -0
- package/dist/core/llm/providers/errors/ProviderError.d.ts.map +1 -0
- package/dist/core/llm/providers/errors/ProviderError.js +36 -0
- package/dist/core/llm/providers/errors/ProviderError.js.map +1 -0
- package/dist/core/llm/providers/implementations/OllamaProvider.d.ts +80 -0
- package/dist/core/llm/providers/implementations/OllamaProvider.d.ts.map +1 -0
- package/dist/core/llm/providers/implementations/OllamaProvider.js +473 -0
- package/dist/core/llm/providers/implementations/OllamaProvider.js.map +1 -0
- package/dist/core/llm/providers/implementations/OpenAIProvider.d.ts +160 -0
- package/dist/core/llm/providers/implementations/OpenAIProvider.d.ts.map +1 -0
- package/dist/core/llm/providers/implementations/OpenAIProvider.js +672 -0
- package/dist/core/llm/providers/implementations/OpenAIProvider.js.map +1 -0
- package/dist/core/llm/providers/implementations/OpenRouterProvider.d.ts +51 -0
- package/dist/core/llm/providers/implementations/OpenRouterProvider.d.ts.map +1 -0
- package/dist/core/llm/providers/implementations/OpenRouterProvider.js +499 -0
- package/dist/core/llm/providers/implementations/OpenRouterProvider.js.map +1 -0
- package/dist/core/llm/routing/IModelRouter.d.ts +129 -0
- package/dist/core/llm/routing/IModelRouter.d.ts.map +1 -0
- package/dist/core/llm/routing/IModelRouter.js +14 -0
- package/dist/core/llm/routing/IModelRouter.js.map +1 -0
- package/dist/core/llm/routing/ModelRouter.d.ts +157 -0
- package/dist/core/llm/routing/ModelRouter.d.ts.map +1 -0
- package/dist/core/llm/routing/ModelRouter.js +190 -0
- package/dist/core/llm/routing/ModelRouter.js.map +1 -0
- package/dist/core/llm/streaming/StreamingBatcher.d.ts +54 -0
- package/dist/core/llm/streaming/StreamingBatcher.d.ts.map +1 -0
- package/dist/core/llm/streaming/StreamingBatcher.js +173 -0
- package/dist/core/llm/streaming/StreamingBatcher.js.map +1 -0
- package/dist/core/llm/streaming/StreamingReconstructor.d.ts +69 -0
- package/dist/core/llm/streaming/StreamingReconstructor.d.ts.map +1 -0
- package/dist/core/llm/streaming/StreamingReconstructor.js +102 -0
- package/dist/core/llm/streaming/StreamingReconstructor.js.map +1 -0
- package/dist/core/marketplace/IMarketplace.d.ts +500 -0
- package/dist/core/marketplace/IMarketplace.d.ts.map +1 -0
- package/dist/core/marketplace/IMarketplace.js +10 -0
- package/dist/core/marketplace/IMarketplace.js.map +1 -0
- package/dist/core/marketplace/Marketplace.d.ts +122 -0
- package/dist/core/marketplace/Marketplace.d.ts.map +1 -0
- package/dist/core/marketplace/Marketplace.js +591 -0
- package/dist/core/marketplace/Marketplace.js.map +1 -0
- package/dist/core/marketplace/index.d.ts +8 -0
- package/dist/core/marketplace/index.d.ts.map +1 -0
- package/dist/core/marketplace/index.js +8 -0
- package/dist/core/marketplace/index.js.map +1 -0
- package/dist/core/observability/ITracer.d.ts +317 -0
- package/dist/core/observability/ITracer.d.ts.map +1 -0
- package/dist/core/observability/ITracer.js +55 -0
- package/dist/core/observability/ITracer.js.map +1 -0
- package/dist/core/observability/Tracer.d.ts +76 -0
- package/dist/core/observability/Tracer.d.ts.map +1 -0
- package/dist/core/observability/Tracer.js +360 -0
- package/dist/core/observability/Tracer.js.map +1 -0
- package/dist/core/observability/index.d.ts +9 -0
- package/dist/core/observability/index.d.ts.map +1 -0
- package/dist/core/observability/index.js +8 -0
- package/dist/core/observability/index.js.map +1 -0
- package/dist/core/orchestration/AgentOrchestrator.d.ts +243 -0
- package/dist/core/orchestration/AgentOrchestrator.d.ts.map +1 -0
- package/dist/core/orchestration/AgentOrchestrator.js +648 -0
- package/dist/core/orchestration/AgentOrchestrator.js.map +1 -0
- package/dist/core/orchestration/IAgentOrchestrator.d.ts +44 -0
- package/dist/core/orchestration/IAgentOrchestrator.d.ts.map +1 -0
- package/dist/core/orchestration/IAgentOrchestrator.js +4 -0
- package/dist/core/orchestration/IAgentOrchestrator.js.map +1 -0
- package/dist/core/orchestration/helpers.d.ts +12 -0
- package/dist/core/orchestration/helpers.d.ts.map +1 -0
- package/dist/core/orchestration/helpers.js +36 -0
- package/dist/core/orchestration/helpers.js.map +1 -0
- package/dist/core/planning/IPlanningEngine.d.ts +524 -0
- package/dist/core/planning/IPlanningEngine.d.ts.map +1 -0
- package/dist/core/planning/IPlanningEngine.js +32 -0
- package/dist/core/planning/IPlanningEngine.js.map +1 -0
- package/dist/core/planning/PlanningEngine.d.ts +161 -0
- package/dist/core/planning/PlanningEngine.d.ts.map +1 -0
- package/dist/core/planning/PlanningEngine.js +783 -0
- package/dist/core/planning/PlanningEngine.js.map +1 -0
- package/dist/core/planning/index.d.ts +25 -0
- package/dist/core/planning/index.d.ts.map +1 -0
- package/dist/core/planning/index.js +25 -0
- package/dist/core/planning/index.js.map +1 -0
- package/dist/core/sandbox/CodeSandbox.d.ts +86 -0
- package/dist/core/sandbox/CodeSandbox.d.ts.map +1 -0
- package/dist/core/sandbox/CodeSandbox.js +475 -0
- package/dist/core/sandbox/CodeSandbox.js.map +1 -0
- package/dist/core/sandbox/ICodeSandbox.d.ts +249 -0
- package/dist/core/sandbox/ICodeSandbox.d.ts.map +1 -0
- package/dist/core/sandbox/ICodeSandbox.js +24 -0
- package/dist/core/sandbox/ICodeSandbox.js.map +1 -0
- package/dist/core/sandbox/index.d.ts +9 -0
- package/dist/core/sandbox/index.d.ts.map +1 -0
- package/dist/core/sandbox/index.js +8 -0
- package/dist/core/sandbox/index.js.map +1 -0
- package/dist/core/storage/IStorageAdapter.d.ts +483 -0
- package/dist/core/storage/IStorageAdapter.d.ts.map +1 -0
- package/dist/core/storage/IStorageAdapter.js +19 -0
- package/dist/core/storage/IStorageAdapter.js.map +1 -0
- package/dist/core/storage/InMemoryStorageAdapter.d.ts +192 -0
- package/dist/core/storage/InMemoryStorageAdapter.d.ts.map +1 -0
- package/dist/core/storage/InMemoryStorageAdapter.js +343 -0
- package/dist/core/storage/InMemoryStorageAdapter.js.map +1 -0
- package/dist/core/storage/SqlStorageAdapter.d.ts +262 -0
- package/dist/core/storage/SqlStorageAdapter.d.ts.map +1 -0
- package/dist/core/storage/SqlStorageAdapter.js +485 -0
- package/dist/core/storage/SqlStorageAdapter.js.map +1 -0
- package/dist/core/storage/index.d.ts +14 -0
- package/dist/core/storage/index.d.ts.map +1 -0
- package/dist/core/storage/index.js +14 -0
- package/dist/core/storage/index.js.map +1 -0
- package/dist/core/streaming/IStreamClient.d.ts +72 -0
- package/dist/core/streaming/IStreamClient.d.ts.map +1 -0
- package/dist/core/streaming/IStreamClient.js +12 -0
- package/dist/core/streaming/IStreamClient.js.map +1 -0
- package/dist/core/streaming/StreamingManager.d.ts +242 -0
- package/dist/core/streaming/StreamingManager.d.ts.map +1 -0
- package/dist/core/streaming/StreamingManager.js +282 -0
- package/dist/core/streaming/StreamingManager.js.map +1 -0
- package/dist/core/structured/IStructuredOutputManager.d.ts +701 -0
- package/dist/core/structured/IStructuredOutputManager.d.ts.map +1 -0
- package/dist/core/structured/IStructuredOutputManager.js +74 -0
- package/dist/core/structured/IStructuredOutputManager.js.map +1 -0
- package/dist/core/structured/StructuredOutputManager.d.ts +140 -0
- package/dist/core/structured/StructuredOutputManager.d.ts.map +1 -0
- package/dist/core/structured/StructuredOutputManager.js +1015 -0
- package/dist/core/structured/StructuredOutputManager.js.map +1 -0
- package/dist/core/structured/index.d.ts +34 -0
- package/dist/core/structured/index.d.ts.map +1 -0
- package/dist/core/structured/index.js +34 -0
- package/dist/core/structured/index.js.map +1 -0
- package/dist/core/tools/ITool.d.ts +228 -0
- package/dist/core/tools/ITool.d.ts.map +1 -0
- package/dist/core/tools/ITool.js +11 -0
- package/dist/core/tools/ITool.js.map +1 -0
- package/dist/core/tools/IToolOrchestrator.d.ts +131 -0
- package/dist/core/tools/IToolOrchestrator.d.ts.map +1 -0
- package/dist/core/tools/IToolOrchestrator.js +14 -0
- package/dist/core/tools/IToolOrchestrator.js.map +1 -0
- package/dist/core/tools/ToolExecutor.d.ts +143 -0
- package/dist/core/tools/ToolExecutor.d.ts.map +1 -0
- package/dist/core/tools/ToolExecutor.js +364 -0
- package/dist/core/tools/ToolExecutor.js.map +1 -0
- package/dist/core/tools/ToolOrchestrator.d.ts +142 -0
- package/dist/core/tools/ToolOrchestrator.d.ts.map +1 -0
- package/dist/core/tools/ToolOrchestrator.js +373 -0
- package/dist/core/tools/ToolOrchestrator.js.map +1 -0
- package/dist/core/tools/permissions/IToolPermissionManager.d.ts +195 -0
- package/dist/core/tools/permissions/IToolPermissionManager.d.ts.map +1 -0
- package/dist/core/tools/permissions/IToolPermissionManager.js +14 -0
- package/dist/core/tools/permissions/IToolPermissionManager.js.map +1 -0
- package/dist/core/tools/permissions/ToolPermissionManager.d.ts +203 -0
- package/dist/core/tools/permissions/ToolPermissionManager.d.ts.map +1 -0
- package/dist/core/tools/permissions/ToolPermissionManager.js +298 -0
- package/dist/core/tools/permissions/ToolPermissionManager.js.map +1 -0
- package/dist/core/ui/IUIComponent.d.ts +11 -0
- package/dist/core/ui/IUIComponent.d.ts.map +1 -0
- package/dist/core/ui/IUIComponent.js +2 -0
- package/dist/core/ui/IUIComponent.js.map +1 -0
- package/dist/core/usage/UsageLedger.d.ts +81 -0
- package/dist/core/usage/UsageLedger.d.ts.map +1 -0
- package/dist/core/usage/UsageLedger.js +135 -0
- package/dist/core/usage/UsageLedger.js.map +1 -0
- package/dist/core/workflows/IWorkflowEngine.d.ts +42 -0
- package/dist/core/workflows/IWorkflowEngine.d.ts.map +1 -0
- package/dist/core/workflows/IWorkflowEngine.js +2 -0
- package/dist/core/workflows/IWorkflowEngine.js.map +1 -0
- package/dist/core/workflows/WorkflowEngine.d.ts +28 -0
- package/dist/core/workflows/WorkflowEngine.d.ts.map +1 -0
- package/dist/core/workflows/WorkflowEngine.js +309 -0
- package/dist/core/workflows/WorkflowEngine.js.map +1 -0
- package/dist/core/workflows/WorkflowTypes.d.ts +180 -0
- package/dist/core/workflows/WorkflowTypes.d.ts.map +1 -0
- package/dist/core/workflows/WorkflowTypes.js +26 -0
- package/dist/core/workflows/WorkflowTypes.js.map +1 -0
- package/dist/core/workflows/runtime/WorkflowRuntime.d.ts +70 -0
- package/dist/core/workflows/runtime/WorkflowRuntime.d.ts.map +1 -0
- package/dist/core/workflows/runtime/WorkflowRuntime.js +566 -0
- package/dist/core/workflows/runtime/WorkflowRuntime.js.map +1 -0
- package/dist/core/workflows/storage/IWorkflowStore.d.ts +75 -0
- package/dist/core/workflows/storage/IWorkflowStore.d.ts.map +1 -0
- package/dist/core/workflows/storage/IWorkflowStore.js +2 -0
- package/dist/core/workflows/storage/IWorkflowStore.js.map +1 -0
- package/dist/core/workflows/storage/InMemoryWorkflowStore.d.ts +14 -0
- package/dist/core/workflows/storage/InMemoryWorkflowStore.d.ts.map +1 -0
- package/dist/core/workflows/storage/InMemoryWorkflowStore.js +130 -0
- package/dist/core/workflows/storage/InMemoryWorkflowStore.js.map +1 -0
- package/dist/extensions/ExtensionLoader.d.ts +119 -0
- package/dist/extensions/ExtensionLoader.d.ts.map +1 -0
- package/dist/extensions/ExtensionLoader.js +297 -0
- package/dist/extensions/ExtensionLoader.js.map +1 -0
- package/dist/extensions/ExtensionManager.d.ts +49 -0
- package/dist/extensions/ExtensionManager.d.ts.map +1 -0
- package/dist/extensions/ExtensionManager.js +197 -0
- package/dist/extensions/ExtensionManager.js.map +1 -0
- package/dist/extensions/ExtensionRegistry.d.ts +39 -0
- package/dist/extensions/ExtensionRegistry.d.ts.map +1 -0
- package/dist/extensions/ExtensionRegistry.js +103 -0
- package/dist/extensions/ExtensionRegistry.js.map +1 -0
- package/dist/extensions/MultiRegistryLoader.d.ts +61 -0
- package/dist/extensions/MultiRegistryLoader.d.ts.map +1 -0
- package/dist/extensions/MultiRegistryLoader.js +169 -0
- package/dist/extensions/MultiRegistryLoader.js.map +1 -0
- package/dist/extensions/RegistryConfig.d.ts +86 -0
- package/dist/extensions/RegistryConfig.d.ts.map +1 -0
- package/dist/extensions/RegistryConfig.js +99 -0
- package/dist/extensions/RegistryConfig.js.map +1 -0
- package/dist/extensions/events.d.ts +19 -0
- package/dist/extensions/events.d.ts.map +1 -0
- package/dist/extensions/events.js +2 -0
- package/dist/extensions/events.js.map +1 -0
- package/dist/extensions/index.d.ts +9 -0
- package/dist/extensions/index.d.ts.map +1 -0
- package/dist/extensions/index.js +9 -0
- package/dist/extensions/index.js.map +1 -0
- package/dist/extensions/manifest.d.ts +52 -0
- package/dist/extensions/manifest.d.ts.map +1 -0
- package/dist/extensions/manifest.js +2 -0
- package/dist/extensions/manifest.js.map +1 -0
- package/dist/extensions/types.d.ts +294 -0
- package/dist/extensions/types.d.ts.map +1 -0
- package/dist/extensions/types.js +12 -0
- package/dist/extensions/types.js.map +1 -0
- package/dist/index.d.ts +49 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +59 -0
- package/dist/index.js.map +1 -0
- package/dist/logging/ILogger.d.ts +8 -0
- package/dist/logging/ILogger.d.ts.map +1 -0
- package/dist/logging/ILogger.js +2 -0
- package/dist/logging/ILogger.js.map +1 -0
- package/dist/logging/PinoLogger.d.ts +12 -0
- package/dist/logging/PinoLogger.d.ts.map +1 -0
- package/dist/logging/PinoLogger.js +22 -0
- package/dist/logging/PinoLogger.js.map +1 -0
- package/dist/logging/loggerFactory.d.ts +6 -0
- package/dist/logging/loggerFactory.d.ts.map +1 -0
- package/dist/logging/loggerFactory.js +14 -0
- package/dist/logging/loggerFactory.js.map +1 -0
- package/dist/rag/EmbeddingManager.d.ts +81 -0
- package/dist/rag/EmbeddingManager.d.ts.map +1 -0
- package/dist/rag/EmbeddingManager.js +412 -0
- package/dist/rag/EmbeddingManager.js.map +1 -0
- package/dist/rag/IEmbeddingManager.d.ts +277 -0
- package/dist/rag/IEmbeddingManager.d.ts.map +1 -0
- package/dist/rag/IEmbeddingManager.js +19 -0
- package/dist/rag/IEmbeddingManager.js.map +1 -0
- package/dist/rag/IRetrievalAugmentor.d.ts +208 -0
- package/dist/rag/IRetrievalAugmentor.d.ts.map +1 -0
- package/dist/rag/IRetrievalAugmentor.js +21 -0
- package/dist/rag/IRetrievalAugmentor.js.map +1 -0
- package/dist/rag/IVectorStore.d.ts +351 -0
- package/dist/rag/IVectorStore.d.ts.map +1 -0
- package/dist/rag/IVectorStore.js +15 -0
- package/dist/rag/IVectorStore.js.map +1 -0
- package/dist/rag/IVectorStoreManager.d.ts +121 -0
- package/dist/rag/IVectorStoreManager.d.ts.map +1 -0
- package/dist/rag/IVectorStoreManager.js +13 -0
- package/dist/rag/IVectorStoreManager.js.map +1 -0
- package/dist/rag/RetrievalAugmentor.d.ts +99 -0
- package/dist/rag/RetrievalAugmentor.d.ts.map +1 -0
- package/dist/rag/RetrievalAugmentor.js +674 -0
- package/dist/rag/RetrievalAugmentor.js.map +1 -0
- package/dist/rag/VectorStoreManager.d.ts +90 -0
- package/dist/rag/VectorStoreManager.d.ts.map +1 -0
- package/dist/rag/VectorStoreManager.js +283 -0
- package/dist/rag/VectorStoreManager.js.map +1 -0
- package/dist/rag/implementations/index.d.ts +9 -0
- package/dist/rag/implementations/index.d.ts.map +1 -0
- package/dist/rag/implementations/index.js +9 -0
- package/dist/rag/implementations/index.js.map +1 -0
- package/dist/rag/implementations/vector_stores/InMemoryVectorStore.d.ts +132 -0
- package/dist/rag/implementations/vector_stores/InMemoryVectorStore.d.ts.map +1 -0
- package/dist/rag/implementations/vector_stores/InMemoryVectorStore.js +539 -0
- package/dist/rag/implementations/vector_stores/InMemoryVectorStore.js.map +1 -0
- package/dist/rag/implementations/vector_stores/SqlVectorStore.d.ts +265 -0
- package/dist/rag/implementations/vector_stores/SqlVectorStore.d.ts.map +1 -0
- package/dist/rag/implementations/vector_stores/SqlVectorStore.js +755 -0
- package/dist/rag/implementations/vector_stores/SqlVectorStore.js.map +1 -0
- package/dist/rag/implementations/vector_stores/index.d.ts +10 -0
- package/dist/rag/implementations/vector_stores/index.d.ts.map +1 -0
- package/dist/rag/implementations/vector_stores/index.js +12 -0
- package/dist/rag/implementations/vector_stores/index.js.map +1 -0
- package/dist/rag/index.d.ts +95 -0
- package/dist/rag/index.d.ts.map +1 -0
- package/dist/rag/index.js +97 -0
- package/dist/rag/index.js.map +1 -0
- package/dist/services/user_auth/AuthService.d.ts +13 -0
- package/dist/services/user_auth/AuthService.d.ts.map +1 -0
- package/dist/services/user_auth/AuthService.js +24 -0
- package/dist/services/user_auth/AuthService.js.map +1 -0
- package/dist/services/user_auth/SubscriptionService.d.ts +14 -0
- package/dist/services/user_auth/SubscriptionService.d.ts.map +1 -0
- package/dist/services/user_auth/SubscriptionService.js +34 -0
- package/dist/services/user_auth/SubscriptionService.js.map +1 -0
- package/dist/services/user_auth/types.d.ts +30 -0
- package/dist/services/user_auth/types.d.ts.map +1 -0
- package/dist/services/user_auth/types.js +2 -0
- package/dist/services/user_auth/types.js.map +1 -0
- package/dist/stubs/prismaClient.d.ts +35 -0
- package/dist/stubs/prismaClient.d.ts.map +1 -0
- package/dist/stubs/prismaClient.js +47 -0
- package/dist/stubs/prismaClient.js.map +1 -0
- package/dist/types/rateLimitTypes.d.ts +70 -0
- package/dist/types/rateLimitTypes.d.ts.map +1 -0
- package/dist/types/rateLimitTypes.js +55 -0
- package/dist/types/rateLimitTypes.js.map +1 -0
- package/dist/utils/errors.d.ts +80 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +201 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/uuid.d.ts +11 -0
- package/dist/utils/uuid.d.ts.map +1 -0
- package/dist/utils/uuid.js +64 -0
- package/dist/utils/uuid.js.map +1 -0
- package/package.json +84 -0
|
@@ -0,0 +1,412 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Implements the EmbeddingManager (`EmbeddingManager`), which is responsible
|
|
3
|
+
* for generating vector embeddings for textual content. It adheres to the
|
|
4
|
+
* `IEmbeddingManager` interface.
|
|
5
|
+
*
|
|
6
|
+
* This manager handles configurations for various embedding models, interacts with an
|
|
7
|
+
* `AIModelProviderManager` to make calls to actual LLM providers, and supports
|
|
8
|
+
* features like caching of embeddings and dynamic model selection based on configured strategies.
|
|
9
|
+
* It uses the dedicated `generateEmbeddings` method from the `IProvider` interface for
|
|
10
|
+
* making calls to embedding models.
|
|
11
|
+
*
|
|
12
|
+
* @module backend/agentos/rag/EmbeddingManager
|
|
13
|
+
* @see ./IEmbeddingManager.ts for the interface definition.
|
|
14
|
+
* @see ../config/EmbeddingManagerConfiguration.ts for configuration structures.
|
|
15
|
+
* @see ../core/llm/providers/AIModelProviderManager.ts for provider management.
|
|
16
|
+
* @see ../core/llm/providers/IProvider.ts for the provider contract.
|
|
17
|
+
*/
|
|
18
|
+
import { LRUCache } from 'lru-cache'; // Popular LRU cache library
|
|
19
|
+
import { GMIError, GMIErrorCode } from '../utils/errors.js'; // Assuming a GMIError utility
|
|
20
|
+
/**
|
|
21
|
+
* Implements the `IEmbeddingManager` interface to provide robust embedding generation services.
|
|
22
|
+
*
|
|
23
|
+
* @class EmbeddingManager
|
|
24
|
+
* @implements {IEmbeddingManager}
|
|
25
|
+
*/
|
|
26
|
+
export class EmbeddingManager {
|
|
27
|
+
/**
|
|
28
|
+
* Constructs an EmbeddingManager instance.
|
|
29
|
+
* The manager is not operational until `initialize` is called.
|
|
30
|
+
*/
|
|
31
|
+
constructor() {
|
|
32
|
+
this.initialized = false;
|
|
33
|
+
this.availableModels = new Map();
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* @inheritdoc
|
|
37
|
+
*/
|
|
38
|
+
async initialize(config, providerManager) {
|
|
39
|
+
if (this.initialized) {
|
|
40
|
+
console.warn('EmbeddingManager already initialized. Re-initializing.');
|
|
41
|
+
// Consider cleanup if re-initializing, e.g., clearing cache and models
|
|
42
|
+
this.availableModels.clear();
|
|
43
|
+
this.cache?.clear?.();
|
|
44
|
+
}
|
|
45
|
+
this.config = config;
|
|
46
|
+
this.providerManager = providerManager;
|
|
47
|
+
if (!config.embeddingModels || config.embeddingModels.length === 0) {
|
|
48
|
+
throw new GMIError('EmbeddingManagerConfig: No embedding models provided. At least one model must be configured.', GMIErrorCode.CONFIG_ERROR, { modelsCount: 0 });
|
|
49
|
+
}
|
|
50
|
+
config.embeddingModels.forEach(modelConfig => {
|
|
51
|
+
if (!modelConfig.modelId || !modelConfig.providerId || !modelConfig.dimension) {
|
|
52
|
+
console.warn(`EmbeddingManager: Invalid or incomplete model configuration skipped: ${JSON.stringify(modelConfig)}. ModelId, providerId, and dimension are required.`);
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
if (modelConfig.dimension <= 0) {
|
|
56
|
+
console.warn(`EmbeddingManager: Model configuration for '${modelConfig.modelId}' has an invalid dimension (${modelConfig.dimension}). Skipping.`);
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
this.availableModels.set(modelConfig.modelId, modelConfig);
|
|
60
|
+
if (modelConfig.isDefault) {
|
|
61
|
+
if (this.defaultModel) {
|
|
62
|
+
console.warn(`EmbeddingManager: Multiple default embedding models defined. Using the last one encountered: '${modelConfig.modelId}'. Previous default: '${this.defaultModel.modelId}'.`);
|
|
63
|
+
}
|
|
64
|
+
this.defaultModel = modelConfig;
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
// If defaultModelId is specified in config, it takes precedence
|
|
68
|
+
if (config.defaultModelId) {
|
|
69
|
+
const modelFromId = this.availableModels.get(config.defaultModelId);
|
|
70
|
+
if (!modelFromId) {
|
|
71
|
+
throw new GMIError(`EmbeddingManagerConfig: Specified defaultModelId '${config.defaultModelId}' does not match any configured embedding model.`, GMIErrorCode.CONFIG_ERROR, { defaultModelId: config.defaultModelId });
|
|
72
|
+
}
|
|
73
|
+
this.defaultModel = modelFromId;
|
|
74
|
+
}
|
|
75
|
+
// If no default model is set by now (neither by isDefault flag nor defaultModelId),
|
|
76
|
+
// and there are available models, pick the first one as a last resort.
|
|
77
|
+
if (!this.defaultModel && this.availableModels.size > 0) {
|
|
78
|
+
this.defaultModel = this.availableModels.values().next().value;
|
|
79
|
+
console.warn(`EmbeddingManager: No default embedding model explicitly set via 'isDefault' or 'defaultModelId'. Using the first available model as default: '${this.defaultModel?.modelId}'.`);
|
|
80
|
+
}
|
|
81
|
+
if (!this.defaultModel) {
|
|
82
|
+
throw new GMIError('EmbeddingManager: No default embedding model could be determined. Ensure at least one model is configured, and optionally specify a default.', GMIErrorCode.CONFIG_ERROR);
|
|
83
|
+
}
|
|
84
|
+
if (this.config.enableCache !== false) { // Cache is enabled by default
|
|
85
|
+
const cacheMaxSize = this.config.cacheMaxSize ?? 1000;
|
|
86
|
+
const cacheTTLSeconds = this.config.cacheTTLSeconds ?? 3600; // 1 hour
|
|
87
|
+
this.cache = new LRUCache({
|
|
88
|
+
max: cacheMaxSize,
|
|
89
|
+
ttl: cacheTTLSeconds * 1000, // Convert TTL to milliseconds
|
|
90
|
+
});
|
|
91
|
+
console.log(`EmbeddingManager: Cache enabled (maxSize: ${cacheMaxSize}, ttl: ${cacheTTLSeconds}s).`);
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
console.log('EmbeddingManager: Cache is disabled by configuration.');
|
|
95
|
+
}
|
|
96
|
+
this.initialized = true;
|
|
97
|
+
console.log(`EmbeddingManager initialized successfully with ${this.availableModels.size} embedding model(s). Default model: '${this.defaultModel?.modelId}'.`);
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Ensures that the manager has been initialized.
|
|
101
|
+
* @private
|
|
102
|
+
* @throws {GMIError} If not initialized.
|
|
103
|
+
*/
|
|
104
|
+
ensureInitialized() {
|
|
105
|
+
if (!this.initialized) {
|
|
106
|
+
throw new GMIError('EmbeddingManager is not initialized. Call initialize() before using its methods.', GMIErrorCode.NOT_INITIALIZED);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Selects an embedding model based on the request and configured strategy.
|
|
111
|
+
* @private
|
|
112
|
+
* @param {EmbeddingRequest} request - The embedding request.
|
|
113
|
+
* @returns {EmbeddingModelConfig} The selected model configuration.
|
|
114
|
+
* @throws {GMIError} If no suitable model can be selected.
|
|
115
|
+
*/
|
|
116
|
+
selectModel(request) {
|
|
117
|
+
this.ensureInitialized(); // Default model must be available here
|
|
118
|
+
// 1. Explicit modelId in request takes highest precedence
|
|
119
|
+
if (request.modelId) {
|
|
120
|
+
const model = this.availableModels.get(request.modelId);
|
|
121
|
+
if (model) {
|
|
122
|
+
// Optional: Validate if request.providerId matches model.providerId if both are given
|
|
123
|
+
if (request.providerId && request.providerId !== model.providerId) {
|
|
124
|
+
console.warn(`EmbeddingManager: Requested providerId '${request.providerId}' for model '${request.modelId}' differs from the model's configured provider '${model.providerId}'. Using the model's configured provider.`);
|
|
125
|
+
}
|
|
126
|
+
return model;
|
|
127
|
+
}
|
|
128
|
+
console.warn(`EmbeddingManager: Requested modelId '${request.modelId}' not found among available models. Falling back to selection strategy or default.`);
|
|
129
|
+
}
|
|
130
|
+
const strategyConfig = this.config.selectionStrategy;
|
|
131
|
+
let selectedModel;
|
|
132
|
+
// 2. Apply selection strategy if defined
|
|
133
|
+
if (strategyConfig) {
|
|
134
|
+
switch (strategyConfig.type) {
|
|
135
|
+
case 'dynamic_quality':
|
|
136
|
+
selectedModel = [...this.availableModels.values()]
|
|
137
|
+
.filter(m => m.qualityScore !== undefined)
|
|
138
|
+
.sort((a, b) => (b.qualityScore) - (a.qualityScore))[0];
|
|
139
|
+
break;
|
|
140
|
+
case 'dynamic_cost':
|
|
141
|
+
selectedModel = [...this.availableModels.values()]
|
|
142
|
+
.filter(m => m.pricePer1MTokensUSD !== undefined)
|
|
143
|
+
.sort((a, b) => (a.pricePer1MTokensUSD) - (b.pricePer1MTokensUSD))[0];
|
|
144
|
+
break;
|
|
145
|
+
case 'dynamic_collection_preference':
|
|
146
|
+
if (request.collectionId) {
|
|
147
|
+
selectedModel = [...this.availableModels.values()].find(m => m.supportedCollections?.includes(request.collectionId));
|
|
148
|
+
}
|
|
149
|
+
break;
|
|
150
|
+
case 'static': // Explicitly fall through to default logic
|
|
151
|
+
default:
|
|
152
|
+
// The 'static' strategy or an unknown strategy type will use the fallback or default.
|
|
153
|
+
break;
|
|
154
|
+
}
|
|
155
|
+
// If strategy yielded a model, use it
|
|
156
|
+
if (selectedModel)
|
|
157
|
+
return selectedModel;
|
|
158
|
+
// If strategy failed, try its fallback model
|
|
159
|
+
if (strategyConfig.fallbackModelId) {
|
|
160
|
+
selectedModel = this.availableModels.get(strategyConfig.fallbackModelId);
|
|
161
|
+
if (selectedModel)
|
|
162
|
+
return selectedModel;
|
|
163
|
+
console.warn(`EmbeddingManager: Selection strategy fallbackModelId '${strategyConfig.fallbackModelId}' not found. Using system default.`);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
// 3. Fallback to the system default model
|
|
167
|
+
if (!this.defaultModel) {
|
|
168
|
+
// This should not happen if initialize() worked correctly.
|
|
169
|
+
throw new GMIError("Critical error: Default embedding model is not set after initialization.", GMIErrorCode.INTERNAL_ERROR);
|
|
170
|
+
}
|
|
171
|
+
return this.defaultModel;
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* @inheritdoc
|
|
175
|
+
*/
|
|
176
|
+
async generateEmbeddings(request) {
|
|
177
|
+
this.ensureInitialized();
|
|
178
|
+
const textsToEmbed = Array.isArray(request.texts)
|
|
179
|
+
? request.texts.filter(text => typeof text === 'string' && text.trim() !== '') // Filter out empty or invalid texts
|
|
180
|
+
: (typeof request.texts === 'string' && request.texts.trim() !== '' ? [request.texts] : []);
|
|
181
|
+
if (textsToEmbed.length === 0) {
|
|
182
|
+
// If all input texts were empty or invalid, or if an empty array was passed.
|
|
183
|
+
const modelForEmptyResponse = this.selectModel(request); // Still select a model to report its ID
|
|
184
|
+
return {
|
|
185
|
+
embeddings: [],
|
|
186
|
+
modelId: modelForEmptyResponse.modelId,
|
|
187
|
+
providerId: modelForEmptyResponse.providerId,
|
|
188
|
+
usage: { inputTokens: 0, totalTokens: 0, costUSD: 0 },
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
const selectedModelConfig = this.selectModel(request);
|
|
192
|
+
const provider = this.providerManager.getProvider(selectedModelConfig.providerId);
|
|
193
|
+
if (!provider) {
|
|
194
|
+
throw new GMIError(`LLM Provider '${selectedModelConfig.providerId}' configured for embedding model '${selectedModelConfig.modelId}' not found or not available.`, GMIErrorCode.PROVIDER_NOT_FOUND, { providerId: selectedModelConfig.providerId, modelId: selectedModelConfig.modelId });
|
|
195
|
+
}
|
|
196
|
+
if (typeof provider.generateEmbeddings !== 'function') {
|
|
197
|
+
throw new GMIError(`LLM Provider '${selectedModelConfig.providerId}' does not support the 'generateEmbeddings' method required by model '${selectedModelConfig.modelId}'.`, GMIErrorCode.METHOD_NOT_SUPPORTED, { providerId: selectedModelConfig.providerId, method: 'generateEmbeddings' });
|
|
198
|
+
}
|
|
199
|
+
const finalEmbeddings = new Array(textsToEmbed.length).fill(null).map(() => []); // Initialize to avoid sparse arrays if errors occur
|
|
200
|
+
const errors = [];
|
|
201
|
+
let cumulativeInputTokens = 0;
|
|
202
|
+
let cumulativeTotalTokens = 0;
|
|
203
|
+
let cumulativeCostUSD = 0;
|
|
204
|
+
const batchSize = selectedModelConfig.providerSpecificArgs?.batchSize ?? this.config.defaultBatchSize ?? 32;
|
|
205
|
+
for (let i = 0; i < textsToEmbed.length; i += batchSize) {
|
|
206
|
+
const batchTexts = textsToEmbed.slice(i, i + batchSize);
|
|
207
|
+
const originalIndicesForThisBatch = batchTexts.map((_, idx) => i + idx);
|
|
208
|
+
const textsToFetchFromProvider = [];
|
|
209
|
+
// Map: index_in_textsToFetchFromProvider -> original_overall_index
|
|
210
|
+
const providerFetchIndexToOriginalIndexMap = [];
|
|
211
|
+
// Check cache for each text in the current batch
|
|
212
|
+
if (this.cache) {
|
|
213
|
+
for (let j = 0; j < batchTexts.length; j++) {
|
|
214
|
+
const text = batchTexts[j];
|
|
215
|
+
const originalIndex = originalIndicesForThisBatch[j];
|
|
216
|
+
const cacheKey = `${selectedModelConfig.modelId}:${text}`; // Simple cache key
|
|
217
|
+
const cachedEntry = this.cache.get(cacheKey);
|
|
218
|
+
if (cachedEntry && cachedEntry.modelId === selectedModelConfig.modelId) {
|
|
219
|
+
finalEmbeddings[originalIndex] = cachedEntry.embedding;
|
|
220
|
+
}
|
|
221
|
+
else {
|
|
222
|
+
textsToFetchFromProvider.push(text);
|
|
223
|
+
providerFetchIndexToOriginalIndexMap.push(originalIndex);
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
else {
|
|
228
|
+
textsToFetchFromProvider.push(...batchTexts);
|
|
229
|
+
providerFetchIndexToOriginalIndexMap.push(...originalIndicesForThisBatch);
|
|
230
|
+
}
|
|
231
|
+
if (textsToFetchFromProvider.length > 0) {
|
|
232
|
+
try {
|
|
233
|
+
const providerOptions = {
|
|
234
|
+
userId: request.userId,
|
|
235
|
+
customModelParams: selectedModelConfig.providerSpecificArgs,
|
|
236
|
+
// Map relevant fields from EmbeddingModelConfig to ProviderEmbeddingOptions if needed
|
|
237
|
+
// Example: dimensions for OpenAI text-embedding-3 models
|
|
238
|
+
dimensions: selectedModelConfig.providerSpecificArgs?.dimensions,
|
|
239
|
+
// inputType for older OpenAI models if still supported by provider interface
|
|
240
|
+
inputType: selectedModelConfig.providerSpecificArgs?.inputType,
|
|
241
|
+
};
|
|
242
|
+
const batchResponse = await provider.generateEmbeddings(selectedModelConfig.modelId, textsToFetchFromProvider, providerOptions);
|
|
243
|
+
if (batchResponse.error) {
|
|
244
|
+
// If the whole batch failed at the provider level
|
|
245
|
+
throw new GMIError(batchResponse.error.message, GMIErrorCode.PROVIDER_ERROR, batchResponse.error.details || batchResponse.error);
|
|
246
|
+
}
|
|
247
|
+
if (batchResponse.data && batchResponse.data.length === textsToFetchFromProvider.length) {
|
|
248
|
+
batchResponse.data.forEach((embData, k) => {
|
|
249
|
+
const originalTextIndex = providerFetchIndexToOriginalIndexMap[k];
|
|
250
|
+
if (embData.embedding.length !== selectedModelConfig.dimension) {
|
|
251
|
+
errors.push({
|
|
252
|
+
textIndex: originalTextIndex,
|
|
253
|
+
message: `Provider returned embedding with incorrect dimension ${embData.embedding.length} for model '${selectedModelConfig.modelId}' (expected ${selectedModelConfig.dimension}).`,
|
|
254
|
+
details: { text: textsToEmbed[originalTextIndex].substring(0, 100) + '...' }
|
|
255
|
+
});
|
|
256
|
+
// Do not populate finalEmbeddings[originalTextIndex] if dimension is wrong
|
|
257
|
+
}
|
|
258
|
+
else {
|
|
259
|
+
finalEmbeddings[originalTextIndex] = embData.embedding;
|
|
260
|
+
if (this.cache) {
|
|
261
|
+
const cacheKey = `${selectedModelConfig.modelId}:${textsToFetchFromProvider[k]}`;
|
|
262
|
+
this.cache.set(cacheKey, {
|
|
263
|
+
embedding: embData.embedding,
|
|
264
|
+
modelId: selectedModelConfig.modelId,
|
|
265
|
+
timestamp: Date.now(),
|
|
266
|
+
});
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
});
|
|
270
|
+
}
|
|
271
|
+
else {
|
|
272
|
+
// Mismatch in expected vs. received embeddings count from provider
|
|
273
|
+
throw new GMIError('Provider returned mismatched number of embeddings for the batch or no data.', GMIErrorCode.PROVIDER_ERROR, { expected: textsToFetchFromProvider.length, received: batchResponse.data?.length });
|
|
274
|
+
}
|
|
275
|
+
cumulativeInputTokens += batchResponse.usage.prompt_tokens || 0; // Embeddings typically use prompt_tokens
|
|
276
|
+
cumulativeTotalTokens += batchResponse.usage.total_tokens || 0;
|
|
277
|
+
cumulativeCostUSD += batchResponse.usage.costUSD || 0;
|
|
278
|
+
}
|
|
279
|
+
catch (error) {
|
|
280
|
+
const errorMessage = error instanceof GMIError ? error.message : (error.message || 'Unknown error during batch embedding generation.');
|
|
281
|
+
console.error(`EmbeddingManager: Error embedding batch with model '${selectedModelConfig.modelId}' via provider '${provider.providerId}': ${errorMessage}`, error instanceof GMIError ? error.details : error);
|
|
282
|
+
// Mark all texts attempted in this failed provider call as errored
|
|
283
|
+
providerFetchIndexToOriginalIndexMap.forEach(originalTextIndex => {
|
|
284
|
+
// Only add error if not already successfully processed (e.g., from cache)
|
|
285
|
+
// and not already errored from a more specific issue like dimension mismatch
|
|
286
|
+
if (finalEmbeddings[originalTextIndex]?.length === 0 && !errors.some(e => e.textIndex === originalTextIndex)) {
|
|
287
|
+
errors.push({
|
|
288
|
+
textIndex: originalTextIndex,
|
|
289
|
+
message: `Failed to generate embedding for text in batch: ${errorMessage}`,
|
|
290
|
+
details: error instanceof GMIError ? error.details : { rawError: error.toString() },
|
|
291
|
+
});
|
|
292
|
+
}
|
|
293
|
+
});
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
} // End batch loop
|
|
297
|
+
// Filter out any positions that are still empty (null/empty array from initialization)
|
|
298
|
+
// This happens if an error occurred for a text and it wasn't filled from cache or provider.
|
|
299
|
+
const successfullyProcessedEmbeddings = [];
|
|
300
|
+
const finalOriginalIndices = []; // To map errors back correctly if we filter embeddings
|
|
301
|
+
for (let i = 0; i < finalEmbeddings.length; ++i) {
|
|
302
|
+
if (finalEmbeddings[i] && finalEmbeddings[i].length > 0) {
|
|
303
|
+
successfullyProcessedEmbeddings.push(finalEmbeddings[i]);
|
|
304
|
+
finalOriginalIndices.push(i);
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
// Adjust error indices if we are only returning successfully processed embeddings
|
|
308
|
+
// This is complex if we want to maintain original indexing for errors while compacting results.
|
|
309
|
+
// For now, `errors` contains original indices. `embeddings` array will correspond to `textsToEmbed`
|
|
310
|
+
// with problematic ones being empty arrays IF NOT FILTERED OUT.
|
|
311
|
+
// The current `EmbeddingResponse` implies `embeddings` has one entry per input text.
|
|
312
|
+
// So, if an embedding failed and wasn't from cache, it should be an empty array or handled via `errors`.
|
|
313
|
+
// Let's ensure `finalEmbeddings` has an entry for each input text.
|
|
314
|
+
// The entries that failed (and weren't from cache) will be empty arrays.
|
|
315
|
+
// The `errors` array correctly points to the original text index.
|
|
316
|
+
return {
|
|
317
|
+
embeddings: finalEmbeddings, // Each entry corresponds to textsToEmbed; failed ones are empty arrays.
|
|
318
|
+
modelId: selectedModelConfig.modelId,
|
|
319
|
+
providerId: selectedModelConfig.providerId,
|
|
320
|
+
usage: {
|
|
321
|
+
inputTokens: cumulativeInputTokens,
|
|
322
|
+
totalTokens: cumulativeTotalTokens,
|
|
323
|
+
costUSD: cumulativeCostUSD,
|
|
324
|
+
},
|
|
325
|
+
errors: errors.length > 0 ? errors : undefined,
|
|
326
|
+
};
|
|
327
|
+
}
|
|
328
|
+
/**
|
|
329
|
+
* @inheritdoc
|
|
330
|
+
*/
|
|
331
|
+
async getEmbeddingModelInfo(modelId) {
|
|
332
|
+
this.ensureInitialized();
|
|
333
|
+
const idToLookup = modelId || this.defaultModel?.modelId;
|
|
334
|
+
if (!idToLookup) {
|
|
335
|
+
// Should not happen if initialized and defaultModel is set
|
|
336
|
+
console.error("EmbeddingManager: Cannot get model info, no modelId provided and no default model set.");
|
|
337
|
+
return undefined;
|
|
338
|
+
}
|
|
339
|
+
return this.availableModels.get(idToLookup);
|
|
340
|
+
}
|
|
341
|
+
/**
|
|
342
|
+
* @inheritdoc
|
|
343
|
+
*/
|
|
344
|
+
async getEmbeddingDimension(modelId) {
|
|
345
|
+
this.ensureInitialized();
|
|
346
|
+
const modelInfo = await this.getEmbeddingModelInfo(modelId); // Uses default if modelId is null
|
|
347
|
+
if (modelInfo?.dimension) {
|
|
348
|
+
return modelInfo.dimension;
|
|
349
|
+
}
|
|
350
|
+
// Fallback to manager's configured default dimension if model-specific is missing
|
|
351
|
+
if (this.config.defaultEmbeddingDimension && this.config.defaultEmbeddingDimension > 0) {
|
|
352
|
+
console.warn(`EmbeddingManager: Dimension for model '${modelId || 'default'}' not found in its config. Using system-wide default dimension: ${this.config.defaultEmbeddingDimension}.`);
|
|
353
|
+
return this.config.defaultEmbeddingDimension;
|
|
354
|
+
}
|
|
355
|
+
// This case implies that the specific model (or default model if modelId was null) is missing its dimension,
|
|
356
|
+
// AND no system-wide default dimension is configured. This is a critical config error.
|
|
357
|
+
throw new GMIError(`Embedding dimension for model '${modelId || this.defaultModel?.modelId || 'unknown'}' is not configured, and no system-wide default dimension is set. Please check EmbeddingManagerConfiguration.`, GMIErrorCode.CONFIG_ERROR, { modelIdAttempted: modelId || this.defaultModel?.modelId });
|
|
358
|
+
}
|
|
359
|
+
/**
|
|
360
|
+
* @inheritdoc
|
|
361
|
+
*/
|
|
362
|
+
async checkHealth() {
|
|
363
|
+
if (!this.initialized || !this.defaultModel) {
|
|
364
|
+
return {
|
|
365
|
+
isHealthy: false,
|
|
366
|
+
details: 'EmbeddingManager not initialized or no default model configured.',
|
|
367
|
+
};
|
|
368
|
+
}
|
|
369
|
+
// Basic health check: manager is initialized, has a default model, and some models are configured.
|
|
370
|
+
const isHealthy = this.availableModels.size > 0;
|
|
371
|
+
let defaultProviderHealth = {
|
|
372
|
+
isHealthy: true,
|
|
373
|
+
details: 'Default provider health not checked in this basic test.',
|
|
374
|
+
};
|
|
375
|
+
// Optionally, perform a lightweight check on the default model's provider
|
|
376
|
+
try {
|
|
377
|
+
const defaultProvider = this.providerManager.getProvider(this.defaultModel.providerId);
|
|
378
|
+
if (defaultProvider && typeof defaultProvider.checkHealth === 'function') {
|
|
379
|
+
defaultProviderHealth = await defaultProvider.checkHealth();
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
catch (error) {
|
|
383
|
+
defaultProviderHealth = { isHealthy: false, details: `Error checking default provider '${this.defaultModel.providerId}': ${error.message}` };
|
|
384
|
+
}
|
|
385
|
+
return {
|
|
386
|
+
isHealthy: isHealthy && defaultProviderHealth.isHealthy,
|
|
387
|
+
details: {
|
|
388
|
+
managerStatus: isHealthy ? 'Initialized and Operational' : 'Issues Detected',
|
|
389
|
+
configuredModels: this.availableModels.size,
|
|
390
|
+
defaultModelId: this.defaultModel.modelId,
|
|
391
|
+
cacheEnabled: this.cache ? true : false,
|
|
392
|
+
cacheSize: this.cache ? this.cache.size : 0,
|
|
393
|
+
defaultProviderStatus: defaultProviderHealth,
|
|
394
|
+
},
|
|
395
|
+
};
|
|
396
|
+
}
|
|
397
|
+
/**
|
|
398
|
+
* @inheritdoc
|
|
399
|
+
*/
|
|
400
|
+
async shutdown() {
|
|
401
|
+
if (!this.initialized) {
|
|
402
|
+
console.log('EmbeddingManager: Shutdown called but not initialized. No action taken.');
|
|
403
|
+
return;
|
|
404
|
+
}
|
|
405
|
+
this.cache?.clear?.();
|
|
406
|
+
// Actual provider shutdown is handled by AIModelProviderManager if it's a shared resource.
|
|
407
|
+
// This manager only clears its own state.
|
|
408
|
+
this.initialized = false;
|
|
409
|
+
console.log('EmbeddingManager shutdown complete. Cache cleared.');
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
//# sourceMappingURL=EmbeddingManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmbeddingManager.js","sourceRoot":"","sources":["../../src/rag/EmbeddingManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC,CAAC,4BAA4B;AAelE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC,CAAC,8BAA8B;AAYtG;;;;;GAKG;AACH,MAAM,OAAO,gBAAgB;IAQ3B;;;OAGG;IACH;QATQ,gBAAW,GAAY,KAAK,CAAC;QAUnC,IAAI,CAAC,eAAe,GAAG,IAAI,GAAG,EAAE,CAAC;IACnC,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,UAAU,CACrB,MAA8B,EAC9B,eAAuC;QAEvC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,OAAO,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;YACvE,uEAAuE;YACvE,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;YAC5B,IAAI,CAAC,KAAa,EAAE,KAAK,EAAE,EAAE,CAAC;QACjC,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QAEvC,IAAI,CAAC,MAAM,CAAC,eAAe,IAAI,MAAM,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnE,MAAM,IAAI,QAAQ,CAChB,8FAA8F,EAC9F,YAAY,CAAC,YAAY,EACzB,EAAE,WAAW,EAAE,CAAC,EAAE,CACnB,CAAC;QACJ,CAAC;QAED,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;YAC3C,IAAI,CAAC,WAAW,CAAC,OAAO,IAAI,CAAC,WAAW,CAAC,UAAU,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;gBAC9E,OAAO,CAAC,IAAI,CACV,wEAAwE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,oDAAoD,CACxJ,CAAC;gBACF,OAAO;YACT,CAAC;YACD,IAAI,WAAW,CAAC,SAAS,IAAI,CAAC,EAAE,CAAC;gBAC9B,OAAO,CAAC,IAAI,CACX,8CAA8C,WAAW,CAAC,OAAO,+BAA+B,WAAW,CAAC,SAAS,cAAc,CACpI,CAAC;gBACF,OAAO;YACT,CAAC;YACD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YAC3D,IAAI,WAAW,CAAC,SAAS,EAAE,CAAC;gBAC1B,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;oBACtB,OAAO,CAAC,IAAI,CAAC,iGAAiG,WAAW,CAAC,OAAO,yBAAyB,IAAI,CAAC,YAAY,CAAC,OAAO,IAAI,CAAC,CAAC;gBAC3L,CAAC;gBACD,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;YAClC,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,gEAAgE;QAChE,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;YAC1B,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;YACpE,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,MAAM,IAAI,QAAQ,CAChB,qDAAqD,MAAM,CAAC,cAAc,kDAAkD,EAC5H,YAAY,CAAC,YAAY,EACzB,EAAE,cAAc,EAAE,MAAM,CAAC,cAAc,EAAE,CAC1C,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;QAClC,CAAC;QAED,oFAAoF;QACpF,uEAAuE;QACvE,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YACxD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;YAC/D,OAAO,CAAC,IAAI,CACV,iJAAiJ,IAAI,CAAC,YAAY,EAAE,OAAO,IAAI,CAChL,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,MAAM,IAAI,QAAQ,CAChB,8IAA8I,EAC9I,YAAY,CAAC,YAAY,CAC1B,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,KAAK,KAAK,EAAE,CAAC,CAAC,8BAA8B;YACrE,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,IAAI,CAAC;YACtD,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,IAAI,IAAI,CAAC,CAAC,SAAS;YACtE,IAAI,CAAC,KAAK,GAAG,IAAI,QAAQ,CAA0B;gBACjD,GAAG,EAAE,YAAY;gBACjB,GAAG,EAAE,eAAe,GAAG,IAAI,EAAE,8BAA8B;aAC5D,CAAC,CAAC;YACH,OAAO,CAAC,GAAG,CACT,6CAA6C,YAAY,UAAU,eAAe,KAAK,CACxF,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;QACvE,CAAC;QAED,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,OAAO,CAAC,GAAG,CACT,kDAAkD,IAAI,CAAC,eAAe,CAAC,IAAI,wCAAwC,IAAI,CAAC,YAAY,EAAE,OAAO,IAAI,CAClJ,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACK,iBAAiB;QACvB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,MAAM,IAAI,QAAQ,CAChB,kFAAkF,EAClF,YAAY,CAAC,eAAe,CAC7B,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACK,WAAW,CAAC,OAAyB;QAC3C,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC,uCAAuC;QAEjE,0DAA0D;QAC1D,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACxD,IAAI,KAAK,EAAE,CAAC;gBACV,sFAAsF;gBACtF,IAAI,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,KAAK,KAAK,CAAC,UAAU,EAAE,CAAC;oBAClE,OAAO,CAAC,IAAI,CACV,2CAA2C,OAAO,CAAC,UAAU,gBAAgB,OAAO,CAAC,OAAO,mDAAmD,KAAK,CAAC,UAAU,2CAA2C,CAC3M,CAAC;gBACJ,CAAC;gBACD,OAAO,KAAK,CAAC;YACf,CAAC;YACD,OAAO,CAAC,IAAI,CACV,wCAAwC,OAAO,CAAC,OAAO,oFAAoF,CAC5I,CAAC;QACJ,CAAC;QAED,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC;QACrD,IAAI,aAA+C,CAAC;QAEpD,yCAAyC;QACzC,IAAI,cAAc,EAAE,CAAC;YACnB,QAAQ,cAAc,CAAC,IAAI,EAAE,CAAC;gBAC5B,KAAK,iBAAiB;oBACpB,aAAa,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC;yBAC/C,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,SAAS,CAAC;yBACzC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,YAAa,CAAC,GAAG,CAAC,CAAC,CAAC,YAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC5D,MAAM;gBACR,KAAK,cAAc;oBACjB,aAAa,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC;yBAC/C,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,KAAK,SAAS,CAAC;yBAChD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,mBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,mBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC1E,MAAM;gBACR,KAAK,+BAA+B;oBAClC,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;wBACzB,aAAa,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAC1D,CAAC,CAAC,oBAAoB,EAAE,QAAQ,CAAC,OAAO,CAAC,YAAa,CAAC,CACxD,CAAC;oBACJ,CAAC;oBACD,MAAM;gBACR,KAAK,QAAQ,CAAC,CAAC,2CAA2C;gBAC1D;oBACE,sFAAsF;oBACtF,MAAM;YACV,CAAC;YAED,sCAAsC;YACtC,IAAI,aAAa;gBAAE,OAAO,aAAa,CAAC;YAExC,6CAA6C;YAC7C,IAAI,cAAc,CAAC,eAAe,EAAE,CAAC;gBACnC,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;gBACzE,IAAI,aAAa;oBAAE,OAAO,aAAa,CAAC;gBACxC,OAAO,CAAC,IAAI,CACV,yDAAyD,cAAc,CAAC,eAAe,oCAAoC,CAC5H,CAAC;YACJ,CAAC;QACH,CAAC;QAED,0CAA0C;QAC1C,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,2DAA2D;YAC5D,MAAM,IAAI,QAAQ,CAAC,0EAA0E,EAAE,YAAY,CAAC,cAAc,CAAC,CAAC;QAChI,CAAC;QACD,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,kBAAkB,CAC7B,OAAyB;QAEzB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;YAC/C,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,oCAAoC;YACnH,CAAC,CAAC,CAAC,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAG9F,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,6EAA6E;YAC7E,MAAM,qBAAqB,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,wCAAwC;YACjG,OAAO;gBACL,UAAU,EAAE,EAAE;gBACd,OAAO,EAAE,qBAAqB,CAAC,OAAO;gBACtC,UAAU,EAAE,qBAAqB,CAAC,UAAU;gBAC5C,KAAK,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE;aACtD,CAAC;QACJ,CAAC;QAED,MAAM,mBAAmB,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;QAElF,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,QAAQ,CAChB,iBAAiB,mBAAmB,CAAC,UAAU,qCAAqC,mBAAmB,CAAC,OAAO,+BAA+B,EAC9I,YAAY,CAAC,kBAAkB,EAC/B,EAAE,UAAU,EAAE,mBAAmB,CAAC,UAAU,EAAE,OAAO,EAAE,mBAAmB,CAAC,OAAO,EAAE,CACrF,CAAC;QACJ,CAAC;QACD,IAAI,OAAO,QAAQ,CAAC,kBAAkB,KAAK,UAAU,EAAE,CAAC;YACtD,MAAM,IAAI,QAAQ,CAChB,iBAAiB,mBAAmB,CAAC,UAAU,yEAAyE,mBAAmB,CAAC,OAAO,IAAI,EACvJ,YAAY,CAAC,oBAAoB,EACjC,EAAE,UAAU,EAAE,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAC7E,CAAC;QACJ,CAAC;QAED,MAAM,eAAe,GAAe,IAAI,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,oDAAoD;QACjJ,MAAM,MAAM,GAAiE,EAAE,CAAC;QAChF,IAAI,qBAAqB,GAAG,CAAC,CAAC;QAC9B,IAAI,qBAAqB,GAAG,CAAC,CAAC;QAC9B,IAAI,iBAAiB,GAAG,CAAC,CAAC;QAE1B,MAAM,SAAS,GAAG,mBAAmB,CAAC,oBAAoB,EAAE,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,IAAI,EAAE,CAAC;QAE5G,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC;YACxD,MAAM,UAAU,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC;YACxD,MAAM,2BAA2B,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;YAExE,MAAM,wBAAwB,GAAa,EAAE,CAAC;YAC9C,mEAAmE;YACnE,MAAM,oCAAoC,GAAa,EAAE,CAAC;YAE1D,iDAAiD;YACjD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC3C,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;oBAC3B,MAAM,aAAa,GAAG,2BAA2B,CAAC,CAAC,CAAC,CAAC;oBACrD,MAAM,QAAQ,GAAG,GAAG,mBAAmB,CAAC,OAAO,IAAI,IAAI,EAAE,CAAC,CAAC,mBAAmB;oBAC9E,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;oBAE7C,IAAI,WAAW,IAAI,WAAW,CAAC,OAAO,KAAK,mBAAmB,CAAC,OAAO,EAAE,CAAC;wBACvE,eAAe,CAAC,aAAa,CAAC,GAAG,WAAW,CAAC,SAAS,CAAC;oBACzD,CAAC;yBAAM,CAAC;wBACN,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBACpC,oCAAoC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;oBAC3D,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,wBAAwB,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;gBAC7C,oCAAoC,CAAC,IAAI,CAAC,GAAG,2BAA2B,CAAC,CAAC;YAC5E,CAAC;YAED,IAAI,wBAAwB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxC,IAAI,CAAC;oBACH,MAAM,eAAe,GAA6B;wBAChD,MAAM,EAAE,OAAO,CAAC,MAAM;wBACtB,iBAAiB,EAAE,mBAAmB,CAAC,oBAAoB;wBAC3D,sFAAsF;wBACtF,yDAAyD;wBACzD,UAAU,EAAE,mBAAmB,CAAC,oBAAoB,EAAE,UAAgC;wBACtF,6EAA6E;wBAC7E,SAAS,EAAE,mBAAmB,CAAC,oBAAoB,EAAE,SAAgB;qBACtE,CAAC;oBAEF,MAAM,aAAa,GAA8B,MAAM,QAAQ,CAAC,kBAAkB,CAChF,mBAAmB,CAAC,OAAO,EAC3B,wBAAwB,EACxB,eAAe,CAChB,CAAC;oBAEF,IAAI,aAAa,CAAC,KAAK,EAAE,CAAC;wBACxB,kDAAkD;wBAClD,MAAM,IAAI,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,YAAY,CAAC,cAAc,EAAE,aAAa,CAAC,KAAK,CAAC,OAAO,IAAI,aAAa,CAAC,KAAK,CAAC,CAAC;oBACnI,CAAC;oBAED,IAAI,aAAa,CAAC,IAAI,IAAI,aAAa,CAAC,IAAI,CAAC,MAAM,KAAK,wBAAwB,CAAC,MAAM,EAAE,CAAC;wBACxF,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE;4BACxC,MAAM,iBAAiB,GAAG,oCAAoC,CAAC,CAAC,CAAC,CAAC;4BAClE,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,KAAK,mBAAmB,CAAC,SAAS,EAAE,CAAC;gCAC9D,MAAM,CAAC,IAAI,CAAC;oCACT,SAAS,EAAE,iBAAiB;oCAC5B,OAAO,EAAE,wDAAwD,OAAO,CAAC,SAAS,CAAC,MAAM,eAAe,mBAAmB,CAAC,OAAO,eAAe,mBAAmB,CAAC,SAAS,IAAI;oCACnL,OAAO,EAAE,EAAE,IAAI,EAAE,YAAY,CAAC,iBAAiB,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,EAAE;iCAC9E,CAAC,CAAC;gCACH,2EAA2E;4BAC9E,CAAC;iCAAM,CAAC;gCACN,eAAe,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;gCACvD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oCACf,MAAM,QAAQ,GAAG,GAAG,mBAAmB,CAAC,OAAO,IAAI,wBAAwB,CAAC,CAAC,CAAC,EAAE,CAAC;oCACjF,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE;wCACvB,SAAS,EAAE,OAAO,CAAC,SAAS;wCAC5B,OAAO,EAAE,mBAAmB,CAAC,OAAO;wCACpC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;qCACtB,CAAC,CAAC;gCACL,CAAC;4BACH,CAAC;wBACH,CAAC,CAAC,CAAC;oBACL,CAAC;yBAAM,CAAC;wBACN,mEAAmE;wBAClE,MAAM,IAAI,QAAQ,CACjB,6EAA6E,EAC7E,YAAY,CAAC,cAAc,EAC3B,EAAE,QAAQ,EAAE,wBAAwB,CAAC,MAAM,EAAE,QAAQ,EAAE,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,CACpF,CAAC;oBACJ,CAAC;oBAED,qBAAqB,IAAI,aAAa,CAAC,KAAK,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC,yCAAyC;oBAC1G,qBAAqB,IAAI,aAAa,CAAC,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC;oBAC/D,iBAAiB,IAAI,aAAa,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;gBAExD,CAAC;gBAAC,OAAO,KAAU,EAAE,CAAC;oBACpB,MAAM,YAAY,GAAG,KAAK,YAAY,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,kDAAkD,CAAC,CAAC;oBACvI,OAAO,CAAC,KAAK,CACX,uDAAuD,mBAAmB,CAAC,OAAO,mBAAmB,QAAQ,CAAC,UAAU,MAAM,YAAY,EAAE,EAC5I,KAAK,YAAY,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAClD,CAAC;oBACF,mEAAmE;oBACnE,oCAAoC,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE;wBAC/D,0EAA0E;wBAC1E,6EAA6E;wBAC7E,IAAI,eAAe,CAAC,iBAAiB,CAAC,EAAE,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,iBAAiB,CAAC,EAAE,CAAC;4BAC1G,MAAM,CAAC,IAAI,CAAC;gCACT,SAAS,EAAE,iBAAiB;gCAC5B,OAAO,EAAE,mDAAmD,YAAY,EAAE;gCAC1E,OAAO,EAAE,KAAK,YAAY,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE;6BACtF,CAAC,CAAC;wBACP,CAAC;oBACH,CAAC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC,CAAC,iBAAiB;QAEnB,uFAAuF;QACvF,4FAA4F;QAC5F,MAAM,+BAA+B,GAAe,EAAE,CAAC;QACvD,MAAM,oBAAoB,GAAa,EAAE,CAAC,CAAC,uDAAuD;QAElG,KAAI,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;YACzC,IAAG,eAAe,CAAC,CAAC,CAAC,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrD,+BAA+B,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;gBACzD,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACjC,CAAC;QACL,CAAC;QAED,kFAAkF;QAClF,gGAAgG;QAChG,oGAAoG;QACpG,gEAAgE;QAChE,qFAAqF;QACrF,yGAAyG;QACzG,mEAAmE;QACnE,yEAAyE;QACzE,kEAAkE;QAElE,OAAO;YACL,UAAU,EAAE,eAAe,EAAE,wEAAwE;YACrG,OAAO,EAAE,mBAAmB,CAAC,OAAO;YACpC,UAAU,EAAE,mBAAmB,CAAC,UAAU;YAC1C,KAAK,EAAE;gBACL,WAAW,EAAE,qBAAqB;gBAClC,WAAW,EAAE,qBAAqB;gBAClC,OAAO,EAAE,iBAAiB;aAC3B;YACD,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;SAC/C,CAAC;IACJ,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,qBAAqB,CAChC,OAAgB;QAEhB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,MAAM,UAAU,GAAG,OAAO,IAAI,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC;QACzD,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,2DAA2D;YAC3D,OAAO,CAAC,KAAK,CAAC,wFAAwF,CAAC,CAAC;YACxG,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC9C,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,qBAAqB,CAAC,OAAgB;QACjD,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,kCAAkC;QAE/F,IAAI,SAAS,EAAE,SAAS,EAAE,CAAC;YACzB,OAAO,SAAS,CAAC,SAAS,CAAC;QAC7B,CAAC;QAED,kFAAkF;QAClF,IAAI,IAAI,CAAC,MAAM,CAAC,yBAAyB,IAAI,IAAI,CAAC,MAAM,CAAC,yBAAyB,GAAG,CAAC,EAAE,CAAC;YACvF,OAAO,CAAC,IAAI,CAAC,0CAA0C,OAAO,IAAI,SAAS,mEAAmE,IAAI,CAAC,MAAM,CAAC,yBAAyB,GAAG,CAAC,CAAC;YACxL,OAAO,IAAI,CAAC,MAAM,CAAC,yBAAyB,CAAC;QAC/C,CAAC;QAED,6GAA6G;QAC7G,uFAAuF;QACvF,MAAM,IAAI,QAAQ,CAChB,kCAAkC,OAAO,IAAI,IAAI,CAAC,YAAY,EAAE,OAAO,IAAI,SAAS,+GAA+G,EACnM,YAAY,CAAC,YAAY,EACzB,EAAE,gBAAgB,EAAE,OAAO,IAAI,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,CAC5D,CAAC;IACJ,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,WAAW;QACtB,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YAC5C,OAAO;gBACL,SAAS,EAAE,KAAK;gBAChB,OAAO,EAAE,kEAAkE;aAC5E,CAAC;QACJ,CAAC;QACD,mGAAmG;QACnG,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,GAAG,CAAC,CAAC;QAChD,IAAI,qBAAqB,GAA8C;YACrE,SAAS,EAAE,IAAI;YACf,OAAO,EAAE,yDAAyD;SACnE,CAAC;QAEF,0EAA0E;QAC1E,IAAI,CAAC;YACD,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;YACvF,IAAI,eAAe,IAAI,OAAO,eAAe,CAAC,WAAW,KAAK,UAAU,EAAE,CAAC;gBACvE,qBAAqB,GAAG,MAAM,eAAe,CAAC,WAAW,EAAE,CAAC;YAChE,CAAC;QACL,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YAClB,qBAAqB,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,oCAAoC,IAAI,CAAC,YAAY,CAAC,UAAU,MAAM,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;QACjJ,CAAC;QAED,OAAO;YACL,SAAS,EAAE,SAAS,IAAI,qBAAqB,CAAC,SAAS;YACvD,OAAO,EAAE;gBACP,aAAa,EAAE,SAAS,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,iBAAiB;gBAC5E,gBAAgB,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI;gBAC3C,cAAc,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO;gBACzC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;gBACvC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC3C,qBAAqB,EAAE,qBAAqB;aAC7C;SACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,QAAQ;QACnB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,yEAAyE,CAAC,CAAC;YACvF,OAAO;QACT,CAAC;QACA,IAAI,CAAC,KAAa,EAAE,KAAK,EAAE,EAAE,CAAC;QAC/B,2FAA2F;QAC3F,0CAA0C;QAC1C,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;IACpE,CAAC;CACF"}
|