@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,434 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview An IUtilityAI implementation that primarily uses Large Language Models (LLMs)
|
|
3
|
+
* via an AIModelProviderManager to perform its tasks. For tasks not suited to LLMs,
|
|
4
|
+
* it may provide basic fallbacks or indicate non-support.
|
|
5
|
+
*
|
|
6
|
+
* @module backend/agentos/core/ai_utilities/LLMUtilityAI
|
|
7
|
+
* @see ./IUtilityAI.ts
|
|
8
|
+
* @see ../llm/providers/AIModelProviderManager.ts
|
|
9
|
+
*/
|
|
10
|
+
import { MessageRole } from '../conversation/ConversationMessage.js';
|
|
11
|
+
import { GMIError, GMIErrorCode } from '../../utils/errors.js';
|
|
12
|
+
import { uuidv4 } from '../../utils/uuid.js';
|
|
13
|
+
import Ajv from 'ajv';
|
|
14
|
+
export class LLMUtilityAI {
|
|
15
|
+
constructor(utilityId) {
|
|
16
|
+
this.isInitialized = false;
|
|
17
|
+
this.utilityId = utilityId || `llm-utility-${uuidv4()}`;
|
|
18
|
+
this.ajv = new Ajv({ allErrors: true, coerceTypes: true });
|
|
19
|
+
}
|
|
20
|
+
async initialize(config) {
|
|
21
|
+
if (this.isInitialized) {
|
|
22
|
+
console.warn(`LLMUtilityAI (ID: ${this.utilityId}) already initialized. Re-initializing.`);
|
|
23
|
+
}
|
|
24
|
+
if (!config.llmProviderManager) {
|
|
25
|
+
throw new GMIError("LLMUtilityAI requires an AIModelProviderManager instance in its configuration.", GMIErrorCode.CONFIG_ERROR, { utilityId: this.utilityId });
|
|
26
|
+
}
|
|
27
|
+
this.config = config;
|
|
28
|
+
this.llmProviderManager = config.llmProviderManager;
|
|
29
|
+
this.isInitialized = true;
|
|
30
|
+
console.log(`LLMUtilityAI (ID: ${this.utilityId}) initialized.`);
|
|
31
|
+
}
|
|
32
|
+
ensureInitialized() {
|
|
33
|
+
if (!this.isInitialized) {
|
|
34
|
+
throw new GMIError(`${this.utilityId} not initialized. Call initialize() first.`, GMIErrorCode.NOT_INITIALIZED);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
getModelAndProvider(taskSpecificModelId, taskSpecificProviderId) {
|
|
38
|
+
const modelId = taskSpecificModelId || this.config.defaultModelId;
|
|
39
|
+
const providerId = taskSpecificProviderId || this.config.defaultProviderId;
|
|
40
|
+
if (!modelId)
|
|
41
|
+
throw new GMIError("LLMUtilityAI: No modelId configured for task or as default.", GMIErrorCode.CONFIG_ERROR);
|
|
42
|
+
// ProviderId can sometimes be inferred by AIModelProviderManager if modelId includes it (e.g., "openai/gpt-4o")
|
|
43
|
+
// but explicit is better if available.
|
|
44
|
+
if (!providerId && !modelId.includes('/')) {
|
|
45
|
+
throw new GMIError(`LLMUtilityAI: No providerId configured for model '${modelId}' and cannot be inferred.`, GMIErrorCode.CONFIG_ERROR);
|
|
46
|
+
}
|
|
47
|
+
// If modelId is like "openai/gpt-4o", providerId can be extracted if not explicitly given.
|
|
48
|
+
// AIModelProviderManager should handle this.
|
|
49
|
+
return { modelId, providerId: providerId || modelId.split('/')[0] };
|
|
50
|
+
}
|
|
51
|
+
async makeLLMCall(prompt, systemPrompt, taskHint, modelId, providerId, completionOptions) {
|
|
52
|
+
this.ensureInitialized();
|
|
53
|
+
const { modelId: effectiveModelId, providerId: effectiveProviderId } = this.getModelAndProvider(modelId, providerId);
|
|
54
|
+
const provider = this.llmProviderManager.getProvider(effectiveProviderId);
|
|
55
|
+
const canGenerate = provider && typeof provider.generate === 'function';
|
|
56
|
+
const canGenerateCompletion = provider && typeof provider.generateCompletion === 'function';
|
|
57
|
+
if (!canGenerate && !canGenerateCompletion) {
|
|
58
|
+
throw new GMIError(`Provider '${effectiveProviderId}' is not initialized or does not support generation.`, GMIErrorCode.PROVIDER_NOT_FOUND);
|
|
59
|
+
}
|
|
60
|
+
const finalOptions = {
|
|
61
|
+
temperature: 0.3,
|
|
62
|
+
maxTokens: 1024,
|
|
63
|
+
...completionOptions,
|
|
64
|
+
};
|
|
65
|
+
if (systemPrompt) {
|
|
66
|
+
// Pass as messages if provider.generate supports it, or prepend to prompt
|
|
67
|
+
// This depends on IProvider.generate signature. Assuming it takes full prompt string for now.
|
|
68
|
+
// A more robust way is to use chat-like messages if IProvider.generate takes ModelChatMessage[]
|
|
69
|
+
}
|
|
70
|
+
// Prefer generateCompletion (chat-style) if available; fall back to raw generate.
|
|
71
|
+
if (canGenerateCompletion) {
|
|
72
|
+
const messages = [];
|
|
73
|
+
if (systemPrompt) {
|
|
74
|
+
messages.push({ role: 'system', content: systemPrompt });
|
|
75
|
+
}
|
|
76
|
+
messages.push({ role: 'user', content: prompt });
|
|
77
|
+
const completionResult = await provider.generateCompletion(effectiveModelId, messages, finalOptions);
|
|
78
|
+
const choice = completionResult?.choices?.[0];
|
|
79
|
+
const content = choice?.message?.content ?? choice?.text;
|
|
80
|
+
if (!content) {
|
|
81
|
+
throw new GMIError(`LLM call for ${taskHint} returned no content or failed.`, GMIErrorCode.PROVIDER_ERROR, { modelId: effectiveModelId });
|
|
82
|
+
}
|
|
83
|
+
return typeof content === 'string' ? content.trim() : String(content);
|
|
84
|
+
}
|
|
85
|
+
const fullPromptForGenerate = systemPrompt ? `${systemPrompt}\n\nUser: ${prompt}\n\nAssistant:` : prompt;
|
|
86
|
+
const generator = provider;
|
|
87
|
+
const result = await generator.generate(effectiveModelId, fullPromptForGenerate, finalOptions);
|
|
88
|
+
if (!result.choices || result.choices.length === 0 || !result.choices[0].text) {
|
|
89
|
+
throw new GMIError(`LLM call for ${taskHint} returned no content or failed.`, GMIErrorCode.PROVIDER_ERROR, { modelId: effectiveModelId });
|
|
90
|
+
}
|
|
91
|
+
return result.choices[0].text.trim();
|
|
92
|
+
}
|
|
93
|
+
async summarize(textToSummarize, options) {
|
|
94
|
+
const method = options?.method || 'abstractive_llm';
|
|
95
|
+
if (method !== 'abstractive_llm' && method !== 'key_points_llm') {
|
|
96
|
+
throw new GMIError(`LLMUtilityAI only supports 'abstractive_llm' or 'key_points_llm' for summarization. Requested: ${method}`, GMIErrorCode.NOT_SUPPORTED);
|
|
97
|
+
}
|
|
98
|
+
let lengthInstruction = "medium length";
|
|
99
|
+
if (options?.desiredLength === 'short')
|
|
100
|
+
lengthInstruction = "a very short, concise summary (1-2 sentences)";
|
|
101
|
+
else if (options?.desiredLength === 'long')
|
|
102
|
+
lengthInstruction = "a detailed, longer summary (multiple paragraphs if needed)";
|
|
103
|
+
else if (typeof options?.desiredLength === 'number') {
|
|
104
|
+
if (options.desiredLength <= 1 && options.desiredLength > 0)
|
|
105
|
+
lengthInstruction = `a summary that is approximately ${Math.round(options.desiredLength * 100)}% of the original length`;
|
|
106
|
+
else if (options.desiredLength > 1)
|
|
107
|
+
lengthInstruction = `a summary of about ${options.desiredLength} sentences`;
|
|
108
|
+
}
|
|
109
|
+
const styleInstruction = method === 'key_points_llm' ? "as a list of key bullet points" : "in a paragraph_format";
|
|
110
|
+
const systemPrompt = `Summarize the following text to a ${lengthInstruction}, formatted ${styleInstruction}. Focus on the main ideas and key information.`;
|
|
111
|
+
return this.makeLLMCall(textToSummarize.substring(0, options?.maxInputLength || 8000), // Limit input for safety
|
|
112
|
+
systemPrompt, 'summarization', options?.modelId || this.config.summarizationModelId, options?.methodOptions?.providerId, // Allow provider override for summarization
|
|
113
|
+
{ maxTokens: (typeof options?.desiredLength === 'number' && options.desiredLength > 100) ? Math.floor(options.desiredLength * 0.75) : 500, ...options?.methodOptions });
|
|
114
|
+
}
|
|
115
|
+
async parseJsonSafe(jsonString, options) {
|
|
116
|
+
this.ensureInitialized();
|
|
117
|
+
try {
|
|
118
|
+
const parsed = JSON.parse(jsonString);
|
|
119
|
+
if (options?.targetSchema) {
|
|
120
|
+
const validate = this.ajv.compile(options.targetSchema);
|
|
121
|
+
if (!validate(parsed)) {
|
|
122
|
+
const validationErrors = Array.isArray(validate.errors) ? validate.errors : [];
|
|
123
|
+
console.warn(`LLMUtilityAI (${this.utilityId}): Parsed JSON failed schema validation.`, validationErrors);
|
|
124
|
+
throw new GMIError("Parsed JSON failed schema validation.", GMIErrorCode.VALIDATION_ERROR, { errors: validationErrors });
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
return parsed;
|
|
128
|
+
}
|
|
129
|
+
catch (initialError) {
|
|
130
|
+
if (options?.attemptFixWithLLM) {
|
|
131
|
+
console.warn(`LLMUtilityAI (${this.utilityId}): Standard JSON parsing failed for input (length ${jsonString.length}). Attempting LLM fix. Error: ${initialError.message}`);
|
|
132
|
+
try {
|
|
133
|
+
const fixPrompt = `The following text is supposed to be a valid JSON object but failed to parse. Please correct it and return ONLY the valid JSON object. If it's unrecoverable or not JSON, return an empty JSON object {}. Text to fix:\n\n${jsonString.substring(0, 2000)}`; // Limit length of potentially broken JSON
|
|
134
|
+
const fixedJsonString = await this.makeLLMCall(fixPrompt, "You are an expert JSON correction assistant. Output only valid JSON.", 'json_fix', options.llmModelIdForFix || this.config.jsonFixerModelId, options.llmProviderIdForFix, { temperature: 0.0, maxTokens: Math.min(4000, Math.max(500, jsonString.length * 2)) } // Give enough tokens for fixed output
|
|
135
|
+
);
|
|
136
|
+
try {
|
|
137
|
+
const reparsed = JSON.parse(fixedJsonString);
|
|
138
|
+
if (options?.targetSchema) {
|
|
139
|
+
const validate = this.ajv.compile(options.targetSchema);
|
|
140
|
+
if (!validate(reparsed)) {
|
|
141
|
+
const validationErrors = Array.isArray(validate.errors) ? validate.errors : [];
|
|
142
|
+
console.warn(`LLMUtilityAI (${this.utilityId}): LLM-fixed JSON failed schema validation.`, validationErrors);
|
|
143
|
+
// Optionally try more repair attempts if options.maxRepairAttempts > 0
|
|
144
|
+
return null;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
return reparsed;
|
|
148
|
+
}
|
|
149
|
+
catch (reparseError) {
|
|
150
|
+
console.error(`LLMUtilityAI (${this.utilityId}): Failed to parse LLM-fixed JSON string: ${reparseError.message}. Fixed string was: "${fixedJsonString.substring(0, 200)}..."`);
|
|
151
|
+
return null;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
catch (fixLlmError) {
|
|
155
|
+
console.error(`LLMUtilityAI (${this.utilityId}): LLM call to fix JSON failed: ${fixLlmError.message}`);
|
|
156
|
+
return null;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
console.log(`LLMUtilityAI (${this.utilityId}): JSON parsing failed and LLM fix not attempted or failed. String (start): "${jsonString.substring(0, 100)}..."`);
|
|
160
|
+
return null;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
async classifyText(textToClassify, options) {
|
|
164
|
+
this.ensureInitialized();
|
|
165
|
+
const systemPrompt = `Classify the following text into one or more of these classes: [${options.candidateClasses.join(', ')}].
|
|
166
|
+
Respond with ONLY a JSON object with "bestClass" (string or array of strings if multiLabel=${!!options.multiLabel}), "confidence" (float 0-1, or array of floats for multiLabel), and optionally "allScores" (array of {classLabel: string, score: float}).`;
|
|
167
|
+
const responseText = await this.makeLLMCall(textToClassify, systemPrompt, 'classification', options.modelId || this.config.classificationModelId, options.methodOptions?.providerId, { temperature: 0.2, responseFormat: { type: "json_object" }, ...options.methodOptions });
|
|
168
|
+
const parsed = await this.parseJsonSafe(responseText, { attemptFixWithLLM: true, llmModelIdForFix: this.config.jsonFixerModelId });
|
|
169
|
+
if (!parsed || !parsed.bestClass || parsed.confidence === undefined) {
|
|
170
|
+
throw new GMIError("Failed to parse valid classification from LLM response.", GMIErrorCode.PARSING_ERROR, { responseText });
|
|
171
|
+
}
|
|
172
|
+
return {
|
|
173
|
+
bestClass: parsed.bestClass,
|
|
174
|
+
confidence: parsed.confidence,
|
|
175
|
+
allScores: parsed.allScores || options.candidateClasses.map(c => ({
|
|
176
|
+
classLabel: c,
|
|
177
|
+
score: (Array.isArray(parsed.bestClass) ? parsed.bestClass.includes(c) : parsed.bestClass === c)
|
|
178
|
+
? (Array.isArray(parsed.confidence) ? parsed.confidence[parsed.bestClass.indexOf(c)] || 0.5 : parsed.confidence)
|
|
179
|
+
: 0.1 // Default low score for non-selected
|
|
180
|
+
}))
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
async extractKeywords(textToAnalyze, options) {
|
|
184
|
+
this.ensureInitialized();
|
|
185
|
+
const maxKeywords = options?.maxKeywords || 5;
|
|
186
|
+
const systemPrompt = `Extract the top ${maxKeywords} most important keywords or keyphrases (each phrase 1-4 words long) from the following text.
|
|
187
|
+
Respond with ONLY a JSON array of strings, e.g., ["keyword1", "keyphrase two"].`;
|
|
188
|
+
const responseText = await this.makeLLMCall(textToAnalyze, systemPrompt, 'keyword_extraction', options?.modelId || this.config.keywordModelId, options?.methodOptions?.providerId, { temperature: 0.3, responseFormat: { type: "json_object" }, ...options?.methodOptions });
|
|
189
|
+
const parsed = await this.parseJsonSafe(responseText, { attemptFixWithLLM: true, llmModelIdForFix: this.config.jsonFixerModelId });
|
|
190
|
+
if (!parsed || !Array.isArray(parsed)) {
|
|
191
|
+
console.warn("LLMUtilityAI: Keyword extraction did not return a valid array, returning empty. Raw: ", responseText);
|
|
192
|
+
return [];
|
|
193
|
+
}
|
|
194
|
+
return parsed.slice(0, maxKeywords);
|
|
195
|
+
}
|
|
196
|
+
async analyzeSentiment(text, options) {
|
|
197
|
+
this.ensureInitialized();
|
|
198
|
+
const systemPrompt = `Analyze the sentiment of the following text.
|
|
199
|
+
Respond with ONLY a JSON object containing "score" (float, -1.0 to 1.0, where -1 is very negative, 1 is very positive), "polarity" ("positive", "negative", or "neutral"), and optionally "intensity" (float 0-1). Provide "positiveTokens" and "negativeTokens" as arrays of strings if identifiable.`;
|
|
200
|
+
const responseText = await this.makeLLMCall(text, systemPrompt, 'sentiment_analysis', options?.modelId || this.config.sentimentModelId, options?.methodOptions?.providerId, { temperature: 0.3, responseFormat: { type: "json_object" }, ...options?.methodOptions });
|
|
201
|
+
const parsed = await this.parseJsonSafe(responseText, { attemptFixWithLLM: true, llmModelIdForFix: this.config.jsonFixerModelId });
|
|
202
|
+
if (!parsed || parsed.score === undefined || !parsed.polarity) {
|
|
203
|
+
throw new GMIError("Failed to parse valid sentiment from LLM response.", GMIErrorCode.PARSING_ERROR, { responseText });
|
|
204
|
+
}
|
|
205
|
+
return {
|
|
206
|
+
score: parsed.score,
|
|
207
|
+
polarity: parsed.polarity,
|
|
208
|
+
comparative: parsed.comparative ?? parsed.score, // Default comparative to score
|
|
209
|
+
intensity: parsed.intensity ?? Math.abs(parsed.score),
|
|
210
|
+
positiveTokens: parsed.positiveTokens || [],
|
|
211
|
+
negativeTokens: parsed.negativeTokens || [],
|
|
212
|
+
neutralTokens: parsed.neutralTokens || [],
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
async detectLanguage(text, options) {
|
|
216
|
+
this.ensureInitialized();
|
|
217
|
+
const maxCandidates = options?.maxCandidates || 1;
|
|
218
|
+
const systemPrompt = `Detect the language of the following text.
|
|
219
|
+
Respond with ONLY a JSON array of objects, each with "language" (BCP-47 code like "en-US", "es", "zh-CN") and "confidence" (float 0-1), sorted by confidence. Limit to ${maxCandidates} result(s). If unsure, return an empty array or a guess with low confidence.`;
|
|
220
|
+
const responseText = await this.makeLLMCall(text.substring(0, 1000), // Send a decent sample for detection
|
|
221
|
+
systemPrompt, 'language_detection', options?.modelId || this.config.languageDetectionModelId, options?.methodOptions?.providerId, { temperature: 0.1, responseFormat: { type: "json_object" }, ...options?.methodOptions });
|
|
222
|
+
const parsed = await this.parseJsonSafe(responseText, { attemptFixWithLLM: true, llmModelIdForFix: this.config.jsonFixerModelId });
|
|
223
|
+
if (!parsed || !Array.isArray(parsed)) {
|
|
224
|
+
console.warn("LLMUtilityAI: Language detection did not return valid array, returning unknown. Raw: ", responseText);
|
|
225
|
+
return [{ language: 'und', confidence: 0.1 }]; // 'und' for undetermined
|
|
226
|
+
}
|
|
227
|
+
return parsed.slice(0, maxCandidates);
|
|
228
|
+
}
|
|
229
|
+
// --- Methods typically better suited for statistical approaches or basic JS ---
|
|
230
|
+
async tokenize(text, options) {
|
|
231
|
+
this.ensureInitialized(); // Basic check
|
|
232
|
+
// LLM for tokenization is overkill and often not what's meant by "tokenize" in NLP context.
|
|
233
|
+
// This provides a very basic JS-based word/sentence tokenization as a fallback.
|
|
234
|
+
// For BPE or other subword tokenization, one would use a dedicated tokenizer model/library.
|
|
235
|
+
if (options?.type === 'subword_bpe' && options.modelId) {
|
|
236
|
+
console.warn(`LLMUtilityAI (${this.utilityId}): Subword BPE tokenization with model '${options.modelId}' requested. This implementation provides basic word/sentence tokenization only. For BPE, use a dedicated tokenizer.`);
|
|
237
|
+
// Fall through to basic word tokenization.
|
|
238
|
+
}
|
|
239
|
+
let processedText = text;
|
|
240
|
+
if (options?.toLowerCase !== false)
|
|
241
|
+
processedText = processedText.toLowerCase(); // Default true
|
|
242
|
+
// Basic punctuation removal for word tokenization, less aggressive for sentence.
|
|
243
|
+
if (options?.type !== 'sentence' && options?.removePunctuation !== false) { // Default true for words
|
|
244
|
+
processedText = processedText.replace(/[.,/#!$%^&*;:{}=\-_`~()?"]/g, " "); // Keep apostrophes for contractions
|
|
245
|
+
}
|
|
246
|
+
else if (options?.type === 'sentence' && options?.removePunctuation === true) { // Only if explicitly true for sentences
|
|
247
|
+
processedText = processedText.replace(/[!?"]/g, "."); // Normalize sentence enders for easier splitting, remove quotes
|
|
248
|
+
}
|
|
249
|
+
if (options?.type === 'sentence') {
|
|
250
|
+
// Basic sentence splitting. More robust splitting needs advanced rules or libraries.
|
|
251
|
+
return processedText.match(/[^.!?]+[.!?]+/g)?.map(s => s.trim()).filter(Boolean) || [processedText.trim()].filter(Boolean);
|
|
252
|
+
}
|
|
253
|
+
// Default to word tokenization
|
|
254
|
+
return processedText.split(/\s+/).map(s => s.trim()).filter(Boolean);
|
|
255
|
+
}
|
|
256
|
+
async stemTokens(tokens, _options) {
|
|
257
|
+
this.ensureInitialized();
|
|
258
|
+
console.warn(`LLMUtilityAI (${this.utilityId}): Stemming is an algorithmic task. This LLM-based utility will return original tokens. Use StatisticalUtilityAI for stemming.`);
|
|
259
|
+
return tokens;
|
|
260
|
+
}
|
|
261
|
+
async calculateSimilarity(text1, text2, options) {
|
|
262
|
+
this.ensureInitialized();
|
|
263
|
+
const method = options?.method || 'llm_semantic'; // Default to LLM for semantic if not specified
|
|
264
|
+
if (method !== 'llm_semantic') {
|
|
265
|
+
throw new GMIError(`LLMUtilityAI currently only supports 'llm_semantic' for similarity. Requested: ${method}. Use StatisticalUtilityAI for other methods.`, GMIErrorCode.NOT_SUPPORTED);
|
|
266
|
+
}
|
|
267
|
+
const systemPrompt = `Rate the semantic similarity of the following two texts on a scale from 0.0 (completely different) to 1.0 (semantically identical).
|
|
268
|
+
Respond with ONLY a JSON object: {"similarityScore": float_value_between_0_and_1}.`;
|
|
269
|
+
const combinedText = `Text 1: ${text1}\n\nText 2: ${text2}`;
|
|
270
|
+
const responseText = await this.makeLLMCall(combinedText, systemPrompt, 'semantic_similarity', options?.llmModelId || this.config.semanticSimilarityModelId, options?.llmProviderId, { temperature: 0.1, responseFormat: { type: "json_object" } });
|
|
271
|
+
const parsed = await this.parseJsonSafe(responseText, { attemptFixWithLLM: true, llmModelIdForFix: this.config.jsonFixerModelId });
|
|
272
|
+
if (parsed && typeof parsed.similarityScore === 'number') {
|
|
273
|
+
return Math.max(0, Math.min(1, parsed.similarityScore)); // Clamp to 0-1
|
|
274
|
+
}
|
|
275
|
+
throw new GMIError("Failed to parse valid similarity score from LLM.", GMIErrorCode.PARSING_ERROR, { responseText });
|
|
276
|
+
}
|
|
277
|
+
async normalizeText(text, options) {
|
|
278
|
+
this.ensureInitialized();
|
|
279
|
+
// LLM-based normalization can be powerful for complex cases but slower.
|
|
280
|
+
let instructions = "Normalize the following text according to these rules: ";
|
|
281
|
+
if (options?.toLowerCase !== false)
|
|
282
|
+
instructions += "Convert to lowercase. ";
|
|
283
|
+
if (options?.expandContractions)
|
|
284
|
+
instructions += "Expand common contractions (e.g., 'don't' to 'do not'). ";
|
|
285
|
+
if (options?.removePunctuation)
|
|
286
|
+
instructions += "Remove punctuation unless it's essential for meaning (like in numbers or acronyms). ";
|
|
287
|
+
if (options?.stripHtml)
|
|
288
|
+
instructions += "Remove HTML tags. ";
|
|
289
|
+
if (options?.replaceNumbersWith !== undefined) {
|
|
290
|
+
instructions += options.replaceNumbersWith === null ? "Remove all numbers. " : `Replace all numbers with the placeholder '${options.replaceNumbersWith}'. `;
|
|
291
|
+
}
|
|
292
|
+
// Stop word removal and stemming are generally too rule-based for reliable LLM execution without very specific prompting.
|
|
293
|
+
const systemPrompt = instructions + "\nReturn only the fully normalized text.";
|
|
294
|
+
return this.makeLLMCall(text, systemPrompt, 'text_normalization', options?.language === 'en' ? (this.config.textNormalizationModelId || this.config.defaultModelId) : options?.language ? undefined : this.config.defaultModelId, // Use general model or allow specific
|
|
295
|
+
undefined, // Provider
|
|
296
|
+
{ temperature: 0.0 });
|
|
297
|
+
}
|
|
298
|
+
async generateNGrams(tokens, options) {
|
|
299
|
+
this.ensureInitialized();
|
|
300
|
+
// This is purely algorithmic, LLM not suitable.
|
|
301
|
+
console.warn(`LLMUtilityAI (${this.utilityId}): N-gram generation is algorithmic. Returning basic JS implementation. Use StatisticalUtilityAI for more robust version.`);
|
|
302
|
+
const nValues = Array.isArray(options.n) ? options.n : [options.n];
|
|
303
|
+
const result = {};
|
|
304
|
+
nValues.forEach(n => {
|
|
305
|
+
if (n <= 0) {
|
|
306
|
+
result[n] = [];
|
|
307
|
+
return;
|
|
308
|
+
}
|
|
309
|
+
const ngrams = [];
|
|
310
|
+
const limit = options.includePartial ? tokens.length : tokens.length - n + 1;
|
|
311
|
+
for (let i = 0; i < limit; i++) {
|
|
312
|
+
const ngram = tokens.slice(i, i + n);
|
|
313
|
+
if (!options.includePartial && ngram.length < n)
|
|
314
|
+
continue;
|
|
315
|
+
if (ngram.length > 0)
|
|
316
|
+
ngrams.push(ngram);
|
|
317
|
+
}
|
|
318
|
+
result[n] = ngrams;
|
|
319
|
+
});
|
|
320
|
+
return result;
|
|
321
|
+
}
|
|
322
|
+
async calculateReadability(text, options) {
|
|
323
|
+
this.ensureInitialized();
|
|
324
|
+
const systemPrompt = `Estimate the readability of the following text using the concept of the ${options.formula} score.
|
|
325
|
+
Respond with ONLY a JSON object with "score" (float, the estimated score), "interpretation" (string, a brief explanation of what the score means), and optionally "gradeLevel" (string, e.g., "Approx. Grade 8").
|
|
326
|
+
Text: "${text.substring(0, 1500)}..."`; // Send a substantial sample
|
|
327
|
+
const responseText = await this.makeLLMCall(text, // Full text for estimation
|
|
328
|
+
systemPrompt, 'readability_estimation', this.config.readabilityEstimationModelId || this.config.defaultModelId, undefined, { temperature: 0.1, responseFormat: { type: "json_object" } });
|
|
329
|
+
const parsed = await this.parseJsonSafe(responseText, { attemptFixWithLLM: true, llmModelIdForFix: this.config.jsonFixerModelId });
|
|
330
|
+
if (parsed && parsed.score !== undefined) {
|
|
331
|
+
return {
|
|
332
|
+
score: Number(parsed.score),
|
|
333
|
+
interpretation: String(parsed.interpretation || "LLM-based estimation."),
|
|
334
|
+
gradeLevel: parsed.gradeLevel ? String(parsed.gradeLevel) : undefined,
|
|
335
|
+
};
|
|
336
|
+
}
|
|
337
|
+
throw new GMIError("Failed to parse valid readability estimation from LLM.", GMIErrorCode.PARSING_ERROR, { responseText });
|
|
338
|
+
}
|
|
339
|
+
formatConversationHistory(messages) {
|
|
340
|
+
return messages
|
|
341
|
+
.map(message => {
|
|
342
|
+
const text = typeof message.content === 'string' ? message.content : JSON.stringify(message.content);
|
|
343
|
+
return `${message.role.toUpperCase()}: ${text}`;
|
|
344
|
+
})
|
|
345
|
+
.join('\n');
|
|
346
|
+
}
|
|
347
|
+
formatRagContext(context) {
|
|
348
|
+
if (typeof context === 'string') {
|
|
349
|
+
return { serialized: context, sources: [] };
|
|
350
|
+
}
|
|
351
|
+
const sources = [];
|
|
352
|
+
const serialized = context
|
|
353
|
+
.map(entry => {
|
|
354
|
+
sources.push(entry.source);
|
|
355
|
+
const relevance = entry.relevance !== undefined ? ` (relevance ${entry.relevance})` : '';
|
|
356
|
+
return `Source: ${entry.source}${relevance}\n${entry.content}`;
|
|
357
|
+
})
|
|
358
|
+
.join('\n---\n');
|
|
359
|
+
return { serialized, sources };
|
|
360
|
+
}
|
|
361
|
+
async summarizeConversationHistory(messages, targetTokenCount, modelInfo, preserveImportantMessages) {
|
|
362
|
+
this.ensureInitialized();
|
|
363
|
+
const serializedHistory = this.formatConversationHistory(messages);
|
|
364
|
+
const guidance = preserveImportantMessages
|
|
365
|
+
? 'Preserve critical tasks, open questions, and decisions verbatim when possible.'
|
|
366
|
+
: 'Focus on outcomes and next steps.';
|
|
367
|
+
const systemPrompt = `You are assisting an AgentOS orchestrator. Summarize the following conversation history for ${modelInfo.promptFormatType || 'the target model'} in approximately ${targetTokenCount} tokens. ${guidance}`;
|
|
368
|
+
const summaryText = (await this.makeLLMCall(serializedHistory, systemPrompt, 'conversation_summary', this.config.summarizationModelId, this.config.defaultProviderId, { maxTokens: Math.max(256, targetTokenCount), temperature: 0.2 })).trim();
|
|
369
|
+
const summaryMessage = {
|
|
370
|
+
id: `summary-${uuidv4()}`,
|
|
371
|
+
role: MessageRole.SUMMARY,
|
|
372
|
+
content: summaryText,
|
|
373
|
+
timestamp: Date.now(),
|
|
374
|
+
metadata: {
|
|
375
|
+
modificationInfo: {
|
|
376
|
+
strategy: 'summarized',
|
|
377
|
+
originalMessageCount: messages.length,
|
|
378
|
+
},
|
|
379
|
+
},
|
|
380
|
+
};
|
|
381
|
+
return {
|
|
382
|
+
summaryMessages: [summaryMessage],
|
|
383
|
+
originalTokenCount: serializedHistory.length,
|
|
384
|
+
finalTokenCount: summaryText.length,
|
|
385
|
+
messagesSummarized: messages.length,
|
|
386
|
+
};
|
|
387
|
+
}
|
|
388
|
+
async summarizeRAGContext(context, targetTokenCount, modelInfo, preserveSourceAttribution) {
|
|
389
|
+
this.ensureInitialized();
|
|
390
|
+
const { serialized, sources } = this.formatRagContext(context);
|
|
391
|
+
const systemPrompt = `You are assisting an AgentOS retrieval pipeline. Summarize the provided knowledge context for ${modelInfo.promptFormatType || 'the downstream model'} in approximately ${targetTokenCount} tokens. Preserve key facts and cite source names inline when appropriate.`;
|
|
392
|
+
const summaryText = (await this.makeLLMCall(serialized, systemPrompt, 'rag_context_summary', this.config.summarizationModelId, this.config.defaultProviderId, { maxTokens: Math.max(256, targetTokenCount), temperature: 0.2 })).trim();
|
|
393
|
+
return {
|
|
394
|
+
summary: summaryText,
|
|
395
|
+
originalTokenCount: serialized.length,
|
|
396
|
+
finalTokenCount: summaryText.length,
|
|
397
|
+
preservedSources: preserveSourceAttribution ? sources : undefined,
|
|
398
|
+
};
|
|
399
|
+
}
|
|
400
|
+
async checkHealth() {
|
|
401
|
+
if (!this.isInitialized) {
|
|
402
|
+
return { isHealthy: false, details: { message: `LLMUtilityAI (ID: ${this.utilityId}) not initialized.` } };
|
|
403
|
+
}
|
|
404
|
+
// Check if AIModelProviderManager is available and can provide a default provider
|
|
405
|
+
const providerHealth = typeof this.llmProviderManager?.checkHealth === 'function'
|
|
406
|
+
? await this.llmProviderManager.checkHealth()
|
|
407
|
+
: undefined;
|
|
408
|
+
const providerManagerHealthy = providerHealth?.isOverallHealthy ??
|
|
409
|
+
this.llmProviderManager?.isInitialized ??
|
|
410
|
+
!!this.llmProviderManager;
|
|
411
|
+
const providerManagerDetails = providerHealth || (providerManagerHealthy ? { status: 'initialized' } : { message: 'AIModelProviderManager not initialized.' });
|
|
412
|
+
return {
|
|
413
|
+
isHealthy: providerManagerHealthy,
|
|
414
|
+
details: { utilityId: this.utilityId, status: 'Initialized', defaultModelId: this.config.defaultModelId },
|
|
415
|
+
dependencies: [{ name: 'AIModelProviderManager', isHealthy: providerManagerHealthy, details: providerManagerDetails }]
|
|
416
|
+
};
|
|
417
|
+
}
|
|
418
|
+
// Training methods are not applicable for this LLM-proxy utility AI
|
|
419
|
+
async trainModel() {
|
|
420
|
+
return { success: false, message: "Training not supported by LLMUtilityAI." };
|
|
421
|
+
}
|
|
422
|
+
async saveTrainedModel() {
|
|
423
|
+
return { success: false, message: "Model saving not supported by LLMUtilityAI." };
|
|
424
|
+
}
|
|
425
|
+
async loadTrainedModel() {
|
|
426
|
+
return { success: false, message: "Model loading not supported by LLMUtilityAI." };
|
|
427
|
+
}
|
|
428
|
+
async shutdown() {
|
|
429
|
+
this.isInitialized = false;
|
|
430
|
+
console.log(`LLMUtilityAI (ID: ${this.utilityId}) shut down.`);
|
|
431
|
+
// Does not own llmProviderManager, so doesn't shut it down.
|
|
432
|
+
}
|
|
433
|
+
}
|
|
434
|
+
//# sourceMappingURL=LLMUtilityAI.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LLMUtilityAI.js","sourceRoot":"","sources":["../../../src/core/ai_utilities/LLMUtilityAI.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAyBH,OAAO,EAAkC,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAClG,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,GAAG,MAAM,KAAK,CAAC;AA4BtB,MAAM,OAAO,YAAY;IAOvB,YAAY,SAAkB;QAHtB,kBAAa,GAAY,KAAK,CAAC;QAIrC,IAAI,CAAC,SAAS,GAAG,SAAS,IAAI,eAAe,MAAM,EAAE,EAAE,CAAC;QACxD,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC,EAAC,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAC,CAAC,CAAC;IAC3D,CAAC;IAEM,KAAK,CAAC,UAAU,CAAC,MAA0B;QAChD,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,OAAO,CAAC,IAAI,CAAC,qBAAqB,IAAI,CAAC,SAAS,yCAAyC,CAAC,CAAC;QAC/F,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;YAC/B,MAAM,IAAI,QAAQ,CAAC,gFAAgF,EAAE,YAAY,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QACjK,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,CAAC;QACpD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,CAAC,SAAS,gBAAgB,CAAC,CAAC;IACnE,CAAC;IAEO,iBAAiB;QACvB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,MAAM,IAAI,QAAQ,CAAC,GAAG,IAAI,CAAC,SAAS,4CAA4C,EAAE,YAAY,CAAC,eAAe,CAAC,CAAC;QAClH,CAAC;IACH,CAAC;IAEO,mBAAmB,CAAC,mBAA4B,EAAE,sBAA+B;QACrF,MAAM,OAAO,GAAG,mBAAmB,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC;QAClE,MAAM,UAAU,GAAG,sBAAsB,IAAI,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC;QAE3E,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,QAAQ,CAAC,6DAA6D,EAAE,YAAY,CAAC,YAAY,CAAC,CAAC;QAC3H,gHAAgH;QAChH,uCAAuC;QACvC,IAAI,CAAC,UAAU,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACxC,MAAM,IAAI,QAAQ,CAAC,qDAAqD,OAAO,2BAA2B,EAAE,YAAY,CAAC,YAAY,CAAC,CAAC;QAC3I,CAAC;QACD,2FAA2F;QAC3F,6CAA6C;QAC7C,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,IAAI,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACxE,CAAC;IAEO,KAAK,CAAC,WAAW,CACvB,MAAc,EACd,YAAgC,EAChC,QAAgB,EAChB,OAAgB,EAChB,UAAmB,EACnB,iBAAmD;QAEnD,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,mBAAmB,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QACrH,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;QAC1E,MAAM,WAAW,GAAG,QAAQ,IAAI,OAAQ,QAAgB,CAAC,QAAQ,KAAK,UAAU,CAAC;QACjF,MAAM,qBAAqB,GAAG,QAAQ,IAAI,OAAQ,QAAgB,CAAC,kBAAkB,KAAK,UAAU,CAAC;QACrG,IAAI,CAAC,WAAW,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC3C,MAAM,IAAI,QAAQ,CAChB,aAAa,mBAAmB,sDAAsD,EACtF,YAAY,CAAC,kBAAkB,CAChC,CAAC;QACJ,CAAC;QAED,MAAM,YAAY,GAAwB;YACxC,WAAW,EAAE,GAAG;YAChB,SAAS,EAAE,IAAI;YACf,GAAG,iBAAiB;SACrB,CAAC;QACF,IAAG,YAAY,EAAC,CAAC;YACb,0EAA0E;YAC1E,8FAA8F;YAC9F,gGAAgG;QACpG,CAAC;QAED,kFAAkF;QAClF,IAAI,qBAAqB,EAAE,CAAC;YAC1B,MAAM,QAAQ,GAAkB,EAAE,CAAC;YACnC,IAAI,YAAY,EAAE,CAAC;gBACjB,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC;YAC3D,CAAC;YACD,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;YAEjD,MAAM,gBAAgB,GAAG,MAAO,QAAgB,CAAC,kBAAkB,CACjE,gBAAgB,EAChB,QAAQ,EACR,YAAY,CACb,CAAC;YACF,MAAM,MAAM,GAAG,gBAAgB,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;YAC9C,MAAM,OAAO,GAAG,MAAM,EAAE,OAAO,EAAE,OAAO,IAAK,MAAc,EAAE,IAAI,CAAC;YAClE,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,QAAQ,CAChB,gBAAgB,QAAQ,iCAAiC,EACzD,YAAY,CAAC,cAAc,EAC3B,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAC9B,CAAC;YACJ,CAAC;YACD,OAAO,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACxE,CAAC;QAED,MAAM,qBAAqB,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,aAAa,MAAM,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC;QACzG,MAAM,SAAS,GAAG,QAAe,CAAC;QAClC,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,qBAAqB,EAAE,YAAY,CAAC,CAAC;QAE/F,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC9E,MAAM,IAAI,QAAQ,CAAC,gBAAgB,QAAQ,iCAAiC,EAAE,YAAY,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC,CAAC;QAC5I,CAAC;QACD,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IACvC,CAAC;IAEM,KAAK,CAAC,SAAS,CAAC,eAAuB,EAAE,OAA8B;QAC5E,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,iBAAiB,CAAC;QACpD,IAAI,MAAM,KAAK,iBAAiB,IAAI,MAAM,KAAK,gBAAgB,EAAE,CAAC;YAChE,MAAM,IAAI,QAAQ,CAAC,kGAAkG,MAAM,EAAE,EAAE,YAAY,CAAC,aAAa,CAAC,CAAC;QAC7J,CAAC;QAED,IAAI,iBAAiB,GAAG,eAAe,CAAC;QACxC,IAAI,OAAO,EAAE,aAAa,KAAK,OAAO;YAAE,iBAAiB,GAAG,+CAA+C,CAAC;aACvG,IAAI,OAAO,EAAE,aAAa,KAAK,MAAM;YAAE,iBAAiB,GAAG,4DAA4D,CAAC;aACxH,IAAI,OAAO,OAAO,EAAE,aAAa,KAAK,QAAQ,EAAE,CAAC;YAClD,IAAI,OAAO,CAAC,aAAa,IAAG,CAAC,IAAI,OAAO,CAAC,aAAa,GAAG,CAAC;gBAAE,iBAAiB,GAAG,mCAAmC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,GAAG,GAAG,CAAC,0BAA0B,CAAC;iBAChL,IAAI,OAAO,CAAC,aAAa,GAAG,CAAC;gBAAE,iBAAiB,GAAG,sBAAsB,OAAO,CAAC,aAAa,YAAY,CAAC;QACpH,CAAC;QAED,MAAM,gBAAgB,GAAG,MAAM,KAAK,gBAAgB,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAAC,CAAC,uBAAuB,CAAC;QAClH,MAAM,YAAY,GAAG,qCAAqC,iBAAiB,eAAe,gBAAgB,gDAAgD,CAAC;QAE3J,OAAO,IAAI,CAAC,WAAW,CACrB,eAAe,CAAC,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,cAAc,IAAI,IAAI,CAAC,EAAE,yBAAyB;QACxF,YAAY,EACZ,eAAe,EACf,OAAO,EAAE,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,oBAAoB,EACpD,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,4CAA4C;QAChF,EAAE,SAAS,EAAE,CAAC,OAAO,OAAO,EAAE,aAAa,KAAK,QAAQ,IAAI,OAAO,CAAC,aAAa,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAG,GAAG,OAAO,EAAE,aAAa,EAAE,CACxK,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,aAAa,CAAU,UAAkB,EAAE,OAA6B;QACnF,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACtC,IAAI,OAAO,EAAE,YAAY,EAAE,CAAC;gBAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAkB,CAAC;gBACzE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;oBACtB,MAAM,gBAAgB,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC/E,OAAO,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,SAAS,0CAA0C,EAAE,gBAAgB,CAAC,CAAC;oBAC1G,MAAM,IAAI,QAAQ,CAAC,uCAAuC,EAAE,YAAY,CAAC,gBAAgB,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC;gBAC3H,CAAC;YACH,CAAC;YACD,OAAO,MAAW,CAAC;QACrB,CAAC;QAAC,OAAO,YAAiB,EAAE,CAAC;YAC3B,IAAI,OAAO,EAAE,iBAAiB,EAAE,CAAC;gBAC/B,OAAO,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,SAAS,qDAAqD,UAAU,CAAC,MAAM,iCAAiC,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC3K,IAAI,CAAC;oBACH,MAAM,SAAS,GAAG,6NAA6N,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,0CAA0C;oBAC1T,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,WAAW,CAC5C,SAAS,EACT,sEAAsE,EACtE,UAAU,EACV,OAAO,CAAC,gBAAgB,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,EACxD,OAAO,CAAC,mBAAmB,EAC3B,EAAE,WAAW,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,sCAAsC;qBAC7H,CAAC;oBACF,IAAI,CAAC;wBACH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;wBAC5C,IAAI,OAAO,EAAE,YAAY,EAAE,CAAC;4BACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAkB,CAAC;4BACzE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gCACxB,MAAM,gBAAgB,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;gCAC/E,OAAO,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,SAAS,6CAA6C,EAAE,gBAAgB,CAAC,CAAC;gCAC7G,uEAAuE;gCACvE,OAAO,IAAI,CAAC;4BACd,CAAC;wBACL,CAAC;wBACD,OAAO,QAAa,CAAC;oBACvB,CAAC;oBAAC,OAAO,YAAiB,EAAE,CAAC;wBAC3B,OAAO,CAAC,KAAK,CAAC,iBAAiB,IAAI,CAAC,SAAS,6CAA6C,YAAY,CAAC,OAAO,wBAAwB,eAAe,CAAC,SAAS,CAAC,CAAC,EAAC,GAAG,CAAC,MAAM,CAAC,CAAC;wBAC9K,OAAO,IAAI,CAAC;oBACd,CAAC;gBACH,CAAC;gBAAC,OAAO,WAAgB,EAAE,CAAC;oBAC1B,OAAO,CAAC,KAAK,CAAC,iBAAiB,IAAI,CAAC,SAAS,mCAAmC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC;oBACvG,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,CAAC,SAAS,gFAAgF,UAAU,CAAC,SAAS,CAAC,CAAC,EAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC9J,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAGM,KAAK,CAAC,YAAY,CAAC,cAAsB,EAAE,OAA8B;QAC9E,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,MAAM,YAAY,GAAG,mEAAmE,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;6FAClC,CAAC,CAAC,OAAO,CAAC,UAAU,2IAA2I,CAAC;QAEzP,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,WAAW,CACzC,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,qBAAqB,EACpD,OAAO,CAAC,aAAa,EAAE,UAAU,EACjC,EAAE,WAAW,EAAE,GAAG,EAAE,cAAc,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,GAAG,OAAO,CAAC,aAAa,EAAE,CACxF,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAgC,YAAY,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAC,CAAC,CAAC;QACjK,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YACpE,MAAM,IAAI,QAAQ,CAAC,yDAAyD,EAAE,YAAY,CAAC,aAAa,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC;QAC9H,CAAC;QACD,OAAO;YACH,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC9D,UAAU,EAAE,CAAC;gBACb,KAAK,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAE,MAAM,CAAC,SAAsB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,KAAK,CAAC,CAAC;oBACvG,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAE,MAAM,CAAC,UAAuB,CAAG,MAAM,CAAC,SAAsB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAE,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,UAAoB,CAAC;oBACxJ,CAAC,CAAC,GAAG,CAAC,qCAAqC;aACrD,CAAC,CAAC;SACN,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,eAAe,CAAC,aAAqB,EAAE,OAAkC;QACpF,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,MAAM,WAAW,GAAG,OAAO,EAAE,WAAW,IAAI,CAAC,CAAC;QAC9C,MAAM,YAAY,GAAG,mBAAmB,WAAW;gFACyB,CAAC;QAE7E,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,WAAW,CACzC,aAAa,EACb,YAAY,EACZ,oBAAoB,EACpB,OAAO,EAAE,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,EAC9C,OAAO,EAAE,aAAa,EAAE,UAAU,EAClC,EAAE,WAAW,EAAE,GAAG,EAAE,cAAc,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,GAAG,OAAO,EAAE,aAAa,EAAE,CACzF,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAW,YAAY,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAC7I,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACtC,OAAO,CAAC,IAAI,CAAC,uFAAuF,EAAE,YAAY,CAAC,CAAC;YACpH,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;IACtC,CAAC;IAEM,KAAK,CAAC,gBAAgB,CAAC,IAAY,EAAE,OAAkC;QAC5E,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,MAAM,YAAY,GAAG;uSAC8Q,CAAC;QAEpS,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,WAAW,CACzC,IAAI,EACJ,YAAY,EACZ,oBAAoB,EACpB,OAAO,EAAE,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAChD,OAAO,EAAE,aAAa,EAAE,UAAU,EAClC,EAAE,WAAW,EAAE,GAAG,EAAE,cAAc,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,GAAG,OAAO,EAAE,aAAa,EAAE,CACzF,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAA2B,YAAY,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAC7J,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YAC5D,MAAM,IAAI,QAAQ,CAAC,oDAAoD,EAAE,YAAY,CAAC,aAAa,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC;QAC3H,CAAC;QACD,OAAO;YACL,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,KAAK,EAAE,+BAA+B;YAChF,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC;YACrD,cAAc,EAAE,MAAM,CAAC,cAAc,IAAI,EAAE;YAC3C,cAAc,EAAE,MAAM,CAAC,cAAc,IAAI,EAAE;YAC3C,aAAa,EAAE,MAAM,CAAC,aAAa,IAAI,EAAE;SAC1C,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,cAAc,CAAC,IAAY,EAAE,OAAkC;QAC1E,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,MAAM,aAAa,GAAG,OAAO,EAAE,aAAa,IAAI,CAAC,CAAC;QAClD,MAAM,YAAY,GAAG;yKACgJ,aAAa,8EAA8E,CAAC;QAEjQ,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,WAAW,CACzC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,qCAAqC;QAC9D,YAAY,EACZ,oBAAoB,EACpB,OAAO,EAAE,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,wBAAwB,EACxD,OAAO,EAAE,aAAa,EAAE,UAAU,EAClC,EAAE,WAAW,EAAE,GAAG,EAAE,cAAc,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,GAAG,OAAO,EAAE,aAAa,EAAE,CACzF,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAA4B,YAAY,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAC9J,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACpC,OAAO,CAAC,IAAI,CAAC,uFAAuF,EAAE,YAAY,CAAC,CAAC;YACpH,OAAO,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,yBAAyB;QAC5E,CAAC;QACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;IACxC,CAAC;IAED,iFAAiF;IAC1E,KAAK,CAAC,QAAQ,CAAC,IAAY,EAAE,OAA6B;QAC/D,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC,cAAc;QACxC,4FAA4F;QAC5F,gFAAgF;QAChF,4FAA4F;QAC5F,IAAG,OAAO,EAAE,IAAI,KAAK,aAAa,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpD,OAAO,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,SAAS,2CAA2C,OAAO,CAAC,OAAO,sHAAsH,CAAC,CAAC;YAC9N,2CAA2C;QAC/C,CAAC;QAED,IAAI,aAAa,GAAG,IAAI,CAAC;QACzB,IAAI,OAAO,EAAE,WAAW,KAAK,KAAK;YAAE,aAAa,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC,CAAC,eAAe;QAEhG,iFAAiF;QACjF,IAAI,OAAO,EAAE,IAAI,KAAK,UAAU,IAAI,OAAO,EAAE,iBAAiB,KAAK,KAAK,EAAE,CAAC,CAAC,yBAAyB;YACjG,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAC,CAAC,oCAAoC;QACnH,CAAC;aAAM,IAAI,OAAO,EAAE,IAAI,KAAK,UAAU,IAAI,OAAO,EAAE,iBAAiB,KAAK,IAAI,EAAE,CAAC,CAAC,wCAAwC;YACtH,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,gEAAgE;QAC1H,CAAC;QAGD,IAAI,OAAO,EAAE,IAAI,KAAK,UAAU,EAAE,CAAC;YACjC,qFAAqF;YACrF,OAAO,aAAa,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC7H,CAAC;QACD,+BAA+B;QAC/B,OAAO,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACvE,CAAC;IAEM,KAAK,CAAC,UAAU,CAAC,MAAgB,EAAE,QAA0B;QAClE,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,OAAO,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,SAAS,gIAAgI,CAAC,CAAC;QAC9K,OAAO,MAAM,CAAC;IAChB,CAAC;IAEM,KAAK,CAAC,mBAAmB,CAAC,KAAa,EAAE,KAAa,EAAE,OAA2B;QACxF,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,cAAc,CAAC,CAAC,+CAA+C;QACjG,IAAI,MAAM,KAAK,cAAc,EAAE,CAAC;YAC5B,MAAM,IAAI,QAAQ,CAAC,kFAAkF,MAAM,+CAA+C,EAAE,YAAY,CAAC,aAAa,CAAC,CAAC;QAC5L,CAAC;QAED,MAAM,YAAY,GAAG;mFAC0D,CAAC;QAChF,MAAM,YAAY,GAAG,WAAW,KAAK,eAAe,KAAK,EAAE,CAAC;QAE5D,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,WAAW,CACvC,YAAY,EACZ,YAAY,EACZ,qBAAqB,EACrB,OAAO,EAAE,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,yBAAyB,EAC5D,OAAO,EAAE,aAAa,EACtB,EAAC,WAAW,EAAE,GAAG,EAAE,cAAc,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,CAC/D,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAA4B,YAAY,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAC,CAAC,CAAC;QAC7J,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,eAAe,KAAK,QAAQ,EAAE,CAAC;YACvD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,eAAe;QAC5E,CAAC;QACD,MAAM,IAAI,QAAQ,CAAC,kDAAkD,EAAE,YAAY,CAAC,aAAa,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC;IACvH,CAAC;IAEM,KAAK,CAAC,aAAa,CAAC,IAAY,EAAE,OAAkC;QACzE,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,wEAAwE;QACxE,IAAI,YAAY,GAAG,yDAAyD,CAAC;QAC7E,IAAI,OAAO,EAAE,WAAW,KAAK,KAAK;YAAE,YAAY,IAAI,wBAAwB,CAAC;QAC7E,IAAI,OAAO,EAAE,kBAAkB;YAAE,YAAY,IAAI,0DAA0D,CAAC;QAC5G,IAAI,OAAO,EAAE,iBAAiB;YAAE,YAAY,IAAI,sFAAsF,CAAC;QACvI,IAAI,OAAO,EAAE,SAAS;YAAE,YAAY,IAAI,oBAAoB,CAAC;QAC7D,IAAI,OAAO,EAAE,kBAAkB,KAAK,SAAS,EAAE,CAAC;YAC5C,YAAY,IAAI,OAAO,CAAC,kBAAkB,KAAK,IAAI,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,6CAA6C,OAAO,CAAC,kBAAkB,KAAK,CAAC;QAChK,CAAC;QACD,0HAA0H;QAE1H,MAAM,YAAY,GAAG,YAAY,GAAG,0CAA0C,CAAC;QAC/E,OAAO,IAAI,CAAC,WAAW,CACnB,IAAI,EACJ,YAAY,EACZ,oBAAoB,EACpB,OAAO,EAAE,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,wBAAwB,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,sCAAsC;QACtM,SAAS,EAAE,WAAW;QACtB,EAAC,WAAW,EAAE,GAAG,EAAC,CACrB,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,cAAc,CAAC,MAAgB,EAAE,OAAqB;QACjE,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,gDAAgD;QAChD,OAAO,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,SAAS,2HAA2H,CAAC,CAAC;QACzK,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACnE,MAAM,MAAM,GAA+B,EAAE,CAAC;QAC9C,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YAClB,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAAC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;gBAAC,OAAO;YAAC,CAAC;YACvC,MAAM,MAAM,GAAe,EAAE,CAAC;YAC9B,MAAM,KAAK,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;YAC7E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBACrC,IAAI,CAAC,OAAO,CAAC,cAAc,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;oBAAE,SAAS;gBAC1D,IAAG,KAAK,CAAC,MAAM,GAAG,CAAC;oBAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC1C,CAAC;YACD,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;QACrB,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC;IAEM,KAAK,CAAC,oBAAoB,CAAC,IAAY,EAAE,OAA2B;QACzE,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,MAAM,YAAY,GAAG,2EAA2E,OAAO,CAAC,OAAO;;SAE1G,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,4BAA4B;QAEhE,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,WAAW,CACvC,IAAI,EAAE,2BAA2B;QACjC,YAAY,EACZ,wBAAwB,EACxB,IAAI,CAAC,MAAM,CAAC,4BAA4B,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,EACtE,SAAS,EACT,EAAE,WAAW,EAAE,GAAG,EAAE,cAAc,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,CAChE,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAA6B,YAAY,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAC/J,IAAI,MAAM,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YACzC,OAAO;gBACL,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;gBAC3B,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,cAAc,IAAI,uBAAuB,CAAC;gBACxE,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS;aACtE,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,QAAQ,CAAC,wDAAwD,EAAE,YAAY,CAAC,aAAa,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC;IAC7H,CAAC;IAEO,yBAAyB,CAAC,QAAgC;QAChE,OAAO,QAAQ;aACZ,GAAG,CAAC,OAAO,CAAC,EAAE;YACb,MAAM,IAAI,GAAG,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACrG,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE,CAAC;QAClD,CAAC,CAAC;aACD,IAAI,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IAEO,gBAAgB,CACtB,OAAwF;QAExF,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QAC9C,CAAC;QACD,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,MAAM,UAAU,GAAG,OAAO;aACvB,GAAG,CAAC,KAAK,CAAC,EAAE;YACX,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC3B,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACzF,OAAO,WAAW,KAAK,CAAC,MAAM,GAAG,SAAS,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;QACjE,CAAC,CAAC;aACD,IAAI,CAAC,SAAS,CAAC,CAAC;QACnB,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;IACjC,CAAC;IAEM,KAAK,CAAC,4BAA4B,CACvC,QAAgC,EAChC,gBAAwB,EACxB,SAAoC,EACpC,yBAAmC;QAEnC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,MAAM,iBAAiB,GAAG,IAAI,CAAC,yBAAyB,CAAC,QAAQ,CAAC,CAAC;QACnE,MAAM,QAAQ,GAAG,yBAAyB;YACxC,CAAC,CAAC,gFAAgF;YAClF,CAAC,CAAC,mCAAmC,CAAC;QACxC,MAAM,YAAY,GAAG,+FAA+F,SAAS,CAAC,gBAAgB,IAAI,kBAAkB,qBAAqB,gBAAgB,YAAY,QAAQ,EAAE,CAAC;QAEhO,MAAM,WAAW,GAAG,CAClB,MAAM,IAAI,CAAC,WAAW,CACpB,iBAAiB,EACjB,YAAY,EACZ,sBAAsB,EACtB,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAChC,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAC7B,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,gBAAgB,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,CACjE,CACF,CAAC,IAAI,EAAE,CAAC;QAET,MAAM,cAAc,GAAY;YAC9B,EAAE,EAAE,WAAW,MAAM,EAAE,EAAE;YACzB,IAAI,EAAE,WAAW,CAAC,OAAO;YACzB,OAAO,EAAE,WAAW;YACpB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,QAAQ,EAAE;gBACR,gBAAgB,EAAE;oBAChB,QAAQ,EAAE,YAAY;oBACtB,oBAAoB,EAAE,QAAQ,CAAC,MAAM;iBACtC;aACF;SACF,CAAC;QAEF,OAAO;YACL,eAAe,EAAE,CAAC,cAAc,CAAC;YACjC,kBAAkB,EAAE,iBAAiB,CAAC,MAAM;YAC5C,eAAe,EAAE,WAAW,CAAC,MAAM;YACnC,kBAAkB,EAAE,QAAQ,CAAC,MAAM;SACpC,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,mBAAmB,CAC9B,OAAwF,EACxF,gBAAwB,EACxB,SAAoC,EACpC,yBAAmC;QAEnC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAC/D,MAAM,YAAY,GAAG,iGAAiG,SAAS,CAAC,gBAAgB,IAAI,sBAAsB,qBAAqB,gBAAgB,4EAA4E,CAAC;QAE5R,MAAM,WAAW,GAAG,CAClB,MAAM,IAAI,CAAC,WAAW,CACpB,UAAU,EACV,YAAY,EACZ,qBAAqB,EACrB,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAChC,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAC7B,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,gBAAgB,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,CACjE,CACF,CAAC,IAAI,EAAE,CAAC;QAET,OAAO;YACL,OAAO,EAAE,WAAW;YACpB,kBAAkB,EAAE,UAAU,CAAC,MAAM;YACrC,eAAe,EAAE,WAAW,CAAC,MAAM;YACnC,gBAAgB,EAAE,yBAAyB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;SAClE,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,WAAW;QACtB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,qBAAqB,IAAI,CAAC,SAAS,oBAAoB,EAAE,EAAE,CAAC;QAC7G,CAAC;QACD,kFAAkF;QAClF,MAAM,cAAc,GAAG,OAAQ,IAAI,CAAC,kBAA0B,EAAE,WAAW,KAAK,UAAU;YACxF,CAAC,CAAC,MAAO,IAAI,CAAC,kBAA0B,CAAC,WAAW,EAAE;YACtD,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,sBAAsB,GAC1B,cAAc,EAAE,gBAAgB;YAC/B,IAAI,CAAC,kBAA0B,EAAE,aAAa;YAC/C,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC;QAC5B,MAAM,sBAAsB,GAAG,cAAc,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,yCAAyC,EAAE,CAAC,CAAC;QAE/J,OAAO;YACL,SAAS,EAAE,sBAAsB;YACjC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE;YACzG,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,wBAAwB,EAAE,SAAS,EAAE,sBAAsB,EAAE,OAAO,EAAE,sBAAsB,EAAE,CAAC;SACvH,CAAC;IACJ,CAAC;IAED,oEAAoE;IAC7D,KAAK,CAAC,UAAU;QACrB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,yCAAyC,EAAE,CAAC;IAChF,CAAC;IACM,KAAK,CAAC,gBAAgB;QAC3B,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,6CAA6C,EAAE,CAAC;IACpF,CAAC;IACM,KAAK,CAAC,gBAAgB;QAC3B,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,8CAA8C,EAAE,CAAC;IACrF,CAAC;IAEO,KAAK,CAAC,QAAQ;QACpB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,CAAC,SAAS,cAAc,CAAC,CAAC;QAC/D,4DAA4D;IAC9D,CAAC;CACF"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Implementation of IUtilityAI using statistical and
|
|
3
|
+
* conventional NLP methods, primarily leveraging the 'natural' library.
|
|
4
|
+
* This utility is suited for tasks where deterministic, fast, and often offline
|
|
5
|
+
* processing is preferred over LLM-based approaches.
|
|
6
|
+
*
|
|
7
|
+
* @module backend/agentos/core/ai_utilities/StatisticalUtilityAI
|
|
8
|
+
* @see ./IUtilityAI.ts
|
|
9
|
+
* @see 'natural' library documentation
|
|
10
|
+
*/
|
|
11
|
+
import { IUtilityAI, UtilityAIConfigBase, ParseJsonOptions, SummarizationOptions, ClassificationOptions, ClassificationResult, KeywordExtractionOptions, TokenizationOptions, StemmingOptions, SimilarityOptions, SentimentAnalysisOptions, SentimentResult, LanguageDetectionOptions, LanguageDetectionResult, TextNormalizationOptions, NGramOptions, ReadabilityOptions, ReadabilityResult } from './IUtilityAI';
|
|
12
|
+
export interface StatisticalUtilityAIConfig extends UtilityAIConfigBase {
|
|
13
|
+
resourcePath?: string;
|
|
14
|
+
defaultStopWordsLanguage?: string;
|
|
15
|
+
customStopWordsPaths?: Record<string, string>;
|
|
16
|
+
summarizerConfig?: {
|
|
17
|
+
lexRank?: {
|
|
18
|
+
similarityThreshold?: number;
|
|
19
|
+
dampingFactor?: number;
|
|
20
|
+
maxIterations?: number;
|
|
21
|
+
epsilon?: number;
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
classifierConfig?: {
|
|
25
|
+
naiveBayes?: {
|
|
26
|
+
modelStoragePath?: string;
|
|
27
|
+
defaultModelId?: string;
|
|
28
|
+
defaultAlpha?: number;
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
sentimentConfig?: {
|
|
32
|
+
lexiconPath?: string;
|
|
33
|
+
defaultLexiconLanguage?: string;
|
|
34
|
+
};
|
|
35
|
+
languageDetectionConfig?: {
|
|
36
|
+
nGramProfilePath?: string;
|
|
37
|
+
};
|
|
38
|
+
readabilitySyllableAlgorithm?: 'regex_approx' | 'dictionary_lookup';
|
|
39
|
+
}
|
|
40
|
+
export declare class StatisticalUtilityAI implements IUtilityAI {
|
|
41
|
+
readonly utilityId: string;
|
|
42
|
+
private config;
|
|
43
|
+
private isInitialized;
|
|
44
|
+
private tokenizers;
|
|
45
|
+
private stemmers;
|
|
46
|
+
private stopWords;
|
|
47
|
+
private classifiers;
|
|
48
|
+
private sentimentAnalyzers;
|
|
49
|
+
constructor(utilityId?: string);
|
|
50
|
+
initialize(config: StatisticalUtilityAIConfig): Promise<void>;
|
|
51
|
+
private ensureInitialized;
|
|
52
|
+
private getStopWords;
|
|
53
|
+
private getStemmer;
|
|
54
|
+
private getSentimentAnalyzer;
|
|
55
|
+
private loadSentimentLexiconFromFile;
|
|
56
|
+
summarize(textToSummarize: string, options?: SummarizationOptions): Promise<string>;
|
|
57
|
+
classifyText(textToClassify: string, options: ClassificationOptions): Promise<ClassificationResult>;
|
|
58
|
+
extractKeywords(textToAnalyze: string, options?: KeywordExtractionOptions): Promise<string[]>;
|
|
59
|
+
tokenize(text: string, options?: TokenizationOptions): Promise<string[]>;
|
|
60
|
+
stemTokens(tokens: string[], options?: StemmingOptions): Promise<string[]>;
|
|
61
|
+
calculateSimilarity(text1: string, text2: string, options?: SimilarityOptions): Promise<number>;
|
|
62
|
+
analyzeSentiment(text: string, options?: SentimentAnalysisOptions): Promise<SentimentResult>;
|
|
63
|
+
detectLanguage(_text: string, _options?: LanguageDetectionOptions): Promise<LanguageDetectionResult[]>;
|
|
64
|
+
normalizeText(text: string, options?: TextNormalizationOptions): Promise<string>;
|
|
65
|
+
generateNGrams(tokens: string[], options: NGramOptions): Promise<Record<number, string[][]>>;
|
|
66
|
+
calculateReadability(text: string, options: ReadabilityOptions): Promise<ReadabilityResult>;
|
|
67
|
+
checkHealth(): Promise<{
|
|
68
|
+
isHealthy: boolean;
|
|
69
|
+
details?: any;
|
|
70
|
+
dependencies?: Array<{
|
|
71
|
+
name: string;
|
|
72
|
+
isHealthy: boolean;
|
|
73
|
+
details?: any;
|
|
74
|
+
}>;
|
|
75
|
+
}>;
|
|
76
|
+
trainModel(trainingData: Array<{
|
|
77
|
+
text: string;
|
|
78
|
+
label: string;
|
|
79
|
+
}>, modelType: string, // e.g., "text_classifier_naive_bayes"
|
|
80
|
+
trainingOptions?: {
|
|
81
|
+
modelId?: string;
|
|
82
|
+
stemmer?: 'porter' | 'lancaster';
|
|
83
|
+
alpha?: number;
|
|
84
|
+
}): Promise<{
|
|
85
|
+
success: boolean;
|
|
86
|
+
message?: string;
|
|
87
|
+
modelId?: string;
|
|
88
|
+
}>;
|
|
89
|
+
saveTrainedModel(modelId: string, modelType?: string, storagePath?: string): Promise<{
|
|
90
|
+
success: boolean;
|
|
91
|
+
pathOrStoreId?: string;
|
|
92
|
+
message?: string;
|
|
93
|
+
}>;
|
|
94
|
+
loadTrainedModel(modelId: string, modelType?: string, storagePath?: string): Promise<{
|
|
95
|
+
success: boolean;
|
|
96
|
+
message?: string;
|
|
97
|
+
}>;
|
|
98
|
+
private computeCosineSimilarity;
|
|
99
|
+
parseJsonSafe<T = any>(jsonString: string, options?: ParseJsonOptions<T>): Promise<T | null>;
|
|
100
|
+
shutdown(): Promise<void>;
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=StatisticalUtilityAI.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StatisticalUtilityAI.d.ts","sourceRoot":"","sources":["../../../src/core/ai_utilities/StatisticalUtilityAI.ts"],"names":[],"mappings":"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"}
|