@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 @@
|
|
|
1
|
+
{"version":3,"file":"OpenRouterProviderError.js","sourceRoot":"","sources":["../../../../../src/core/llm/providers/errors/OpenRouterProviderError.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E;;;;;GAKG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,OAAO,uBAAwB,SAAQ,aAAa;IAOxD;;;;;;;OAOG;IACH,YACE,OAAe,EACf,IAAY,EACZ,UAAmB,EACnB,mBAA4B,EAC5B,OAAiB;QAEjB,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC,6BAA6B;QAC1E,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;QACtC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;QAE/C,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,uBAAuB,CAAC,SAAS,CAAC,CAAC;IACjE,CAAC;CACF"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Defines the base error class for AI Model Provider related errors.
|
|
3
|
+
* This class provides a common structure for errors originating from provider interactions,
|
|
4
|
+
* allowing for consistent error handling and identification across different provider implementations.
|
|
5
|
+
* @module backend/agentos/core/llm/providers/errors/ProviderError
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Represents a generic error that occurred within an AI Model Provider.
|
|
9
|
+
* Specific provider implementations should extend this class to provide
|
|
10
|
+
* more detailed error information.
|
|
11
|
+
*/
|
|
12
|
+
export declare class ProviderError extends Error {
|
|
13
|
+
/**
|
|
14
|
+
* A unique code identifying the type of error.
|
|
15
|
+
* e.g., 'INITIALIZATION_FAILED', 'API_REQUEST_FAILED', 'AUTHENTICATION_ERROR'.
|
|
16
|
+
*/
|
|
17
|
+
readonly code: string;
|
|
18
|
+
/**
|
|
19
|
+
* The identifier of the provider where the error originated.
|
|
20
|
+
* e.g., 'openai', 'ollama', 'openrouter'.
|
|
21
|
+
*/
|
|
22
|
+
readonly providerId?: string;
|
|
23
|
+
/**
|
|
24
|
+
* Optional details or context about the error, which could be provider-specific.
|
|
25
|
+
* This might include things like HTTP status codes, underlying error objects, or request IDs.
|
|
26
|
+
*/
|
|
27
|
+
readonly details?: unknown;
|
|
28
|
+
/**
|
|
29
|
+
* Creates an instance of ProviderError.
|
|
30
|
+
* @param {string} message - A human-readable description of the error.
|
|
31
|
+
* @param {string} code - A unique code identifying the type of error.
|
|
32
|
+
* @param {string} [providerId] - The identifier of the provider where the error originated.
|
|
33
|
+
* @param {unknown} [details] - Optional details or context about the error.
|
|
34
|
+
*/
|
|
35
|
+
constructor(message: string, code: string, providerId?: string, details?: unknown);
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=ProviderError.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProviderError.d.ts","sourceRoot":"","sources":["../../../../../src/core/llm/providers/errors/ProviderError.ts"],"names":[],"mappings":"AACA;;;;;GAKG;AAEH;;;;GAIG;AACH,qBAAa,aAAc,SAAQ,KAAK;IACtC;;;OAGG;IACH,SAAgB,IAAI,EAAE,MAAM,CAAC;IAE7B;;;OAGG;IACH,SAAgB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpC;;;OAGG;IACH,SAAgB,OAAO,CAAC,EAAE,OAAO,CAAC;IAElC;;;;;;OAMG;gBACS,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO;CAclF"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
// File: backend/agentos/core/llm/providers/errors/ProviderError.ts
|
|
2
|
+
/**
|
|
3
|
+
* @fileoverview Defines the base error class for AI Model Provider related errors.
|
|
4
|
+
* This class provides a common structure for errors originating from provider interactions,
|
|
5
|
+
* allowing for consistent error handling and identification across different provider implementations.
|
|
6
|
+
* @module backend/agentos/core/llm/providers/errors/ProviderError
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Represents a generic error that occurred within an AI Model Provider.
|
|
10
|
+
* Specific provider implementations should extend this class to provide
|
|
11
|
+
* more detailed error information.
|
|
12
|
+
*/
|
|
13
|
+
export class ProviderError extends Error {
|
|
14
|
+
/**
|
|
15
|
+
* Creates an instance of ProviderError.
|
|
16
|
+
* @param {string} message - A human-readable description of the error.
|
|
17
|
+
* @param {string} code - A unique code identifying the type of error.
|
|
18
|
+
* @param {string} [providerId] - The identifier of the provider where the error originated.
|
|
19
|
+
* @param {unknown} [details] - Optional details or context about the error.
|
|
20
|
+
*/
|
|
21
|
+
constructor(message, code, providerId, details) {
|
|
22
|
+
super(message);
|
|
23
|
+
this.name = this.constructor.name; // Ensures the name property is the subclass name
|
|
24
|
+
this.code = code;
|
|
25
|
+
this.providerId = providerId;
|
|
26
|
+
this.details = details;
|
|
27
|
+
// This line is to make the stack trace more readable and skip the ProviderError constructor
|
|
28
|
+
if (typeof Error.captureStackTrace === 'function') {
|
|
29
|
+
Error.captureStackTrace(this, this.constructor);
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
this.stack = new Error(message).stack;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=ProviderError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProviderError.js","sourceRoot":"","sources":["../../../../../src/core/llm/providers/errors/ProviderError.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE;;;;;GAKG;AAEH;;;;GAIG;AACH,MAAM,OAAO,aAAc,SAAQ,KAAK;IAmBtC;;;;;;OAMG;IACH,YAAY,OAAe,EAAE,IAAY,EAAE,UAAmB,EAAE,OAAiB;QAC/E,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,iDAAiD;QACpF,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,4FAA4F;QAC5F,IAAI,OAAO,KAAK,CAAC,iBAAiB,KAAK,UAAU,EAAE,CAAC;YAClD,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAClD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC;QACxC,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { IProvider, ChatMessage, ModelCompletionOptions, ModelCompletionResponse, ModelInfo, ProviderEmbeddingOptions, ProviderEmbeddingResponse } from '../IProvider';
|
|
2
|
+
/**
|
|
3
|
+
* Configuration specific to the OllamaProvider.
|
|
4
|
+
*/
|
|
5
|
+
export interface OllamaProviderConfig {
|
|
6
|
+
/**
|
|
7
|
+
* The base URL of the Ollama API.
|
|
8
|
+
* @example "http://localhost:11434" (Ollama's default)
|
|
9
|
+
*/
|
|
10
|
+
baseURL: string;
|
|
11
|
+
/**
|
|
12
|
+
* Default model ID to use if not specified in a request (e.g., "llama3:latest").
|
|
13
|
+
* This model must be available in the connected Ollama instance.
|
|
14
|
+
*/
|
|
15
|
+
defaultModelId?: string;
|
|
16
|
+
/**
|
|
17
|
+
* Timeout for API requests to Ollama in milliseconds.
|
|
18
|
+
* @default 60000 (60 seconds)
|
|
19
|
+
*/
|
|
20
|
+
requestTimeout?: number;
|
|
21
|
+
/**
|
|
22
|
+
* Optional API key if the Ollama instance is secured (not common for local instances).
|
|
23
|
+
* Currently, Ollama itself does not use API keys for authentication.
|
|
24
|
+
*/
|
|
25
|
+
apiKey?: string;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* @class OllamaProvider
|
|
29
|
+
* @implements {IProvider}
|
|
30
|
+
* Provides an interface to locally hosted LLMs through an Ollama instance.
|
|
31
|
+
* It handles API requests for chat completions, streaming, embeddings, and model listing.
|
|
32
|
+
*/
|
|
33
|
+
export declare class OllamaProvider implements IProvider {
|
|
34
|
+
/** @inheritdoc */
|
|
35
|
+
readonly providerId: string;
|
|
36
|
+
/** @inheritdoc */
|
|
37
|
+
isInitialized: boolean;
|
|
38
|
+
/** @inheritdoc */
|
|
39
|
+
defaultModelId?: string;
|
|
40
|
+
private config;
|
|
41
|
+
private client;
|
|
42
|
+
/**
|
|
43
|
+
* Creates an instance of OllamaProvider.
|
|
44
|
+
* The provider must be initialized using `initialize()` before use.
|
|
45
|
+
*/
|
|
46
|
+
constructor();
|
|
47
|
+
/** @inheritdoc */
|
|
48
|
+
initialize(config: OllamaProviderConfig): Promise<void>;
|
|
49
|
+
/**
|
|
50
|
+
* Ensures the provider is initialized.
|
|
51
|
+
* @private
|
|
52
|
+
* @throws {OllamaProviderError} If not initialized.
|
|
53
|
+
*/
|
|
54
|
+
private ensureInitialized;
|
|
55
|
+
/**
|
|
56
|
+
* Transforms standard ChatMessage array to Ollama's expected format.
|
|
57
|
+
* @private
|
|
58
|
+
*/
|
|
59
|
+
private mapToOllamaMessages;
|
|
60
|
+
/** @inheritdoc */
|
|
61
|
+
generateCompletion(modelId: string, messages: ChatMessage[], options: ModelCompletionOptions): Promise<ModelCompletionResponse>;
|
|
62
|
+
/** @inheritdoc */
|
|
63
|
+
generateCompletionStream(modelId: string, messages: ChatMessage[], options: ModelCompletionOptions): AsyncGenerator<ModelCompletionResponse, void, undefined>;
|
|
64
|
+
/** @inheritdoc */
|
|
65
|
+
generateEmbeddings(modelId: string, texts: string[], options?: ProviderEmbeddingOptions): Promise<ProviderEmbeddingResponse>;
|
|
66
|
+
/** @inheritdoc */
|
|
67
|
+
listAvailableModels(filter?: {
|
|
68
|
+
capability?: string;
|
|
69
|
+
}): Promise<ModelInfo[]>;
|
|
70
|
+
/** @inheritdoc */
|
|
71
|
+
getModelInfo(modelId: string): Promise<ModelInfo | undefined>;
|
|
72
|
+
/** @inheritdoc */
|
|
73
|
+
checkHealth(): Promise<{
|
|
74
|
+
isHealthy: boolean;
|
|
75
|
+
_details?: unknown;
|
|
76
|
+
}>;
|
|
77
|
+
/** @inheritdoc */
|
|
78
|
+
shutdown(): Promise<void>;
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=OllamaProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OllamaProvider.d.ts","sourceRoot":"","sources":["../../../../../src/core/llm/providers/implementations/OllamaProvider.ts"],"names":[],"mappings":"AAoBA,OAAO,EACL,SAAS,EACT,WAAW,EAEX,sBAAsB,EACtB,uBAAuB,EACvB,SAAS,EAET,wBAAwB,EACxB,yBAAyB,EAE1B,MAAM,cAAc,CAAC;AAGtB;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AA+FD;;;;;GAKG;AACH,qBAAa,cAAe,YAAW,SAAS;IAC9C,kBAAkB;IAClB,SAAgB,UAAU,EAAE,MAAM,CAAY;IAC9C,kBAAkB;IACX,aAAa,EAAE,OAAO,CAAS;IACtC,kBAAkB;IACX,cAAc,CAAC,EAAE,MAAM,CAAC;IAE/B,OAAO,CAAC,MAAM,CAAwB;IACtC,OAAO,CAAC,MAAM,CAAiB;IAE/B;;;OAGG;;IAGH,kBAAkB;IACL,UAAU,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IA8CpE;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IASzB;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAyB3B,kBAAkB;IACL,kBAAkB,CAC7B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,WAAW,EAAE,EACvB,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,uBAAuB,CAAC;IAyEnC,kBAAkB;IACJ,wBAAwB,CACpC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,WAAW,EAAE,EACvB,OAAO,EAAE,sBAAsB,GAC9B,cAAc,CAAC,uBAAuB,EAAE,IAAI,EAAE,SAAS,CAAC;IAkI3D,kBAAkB;IACL,kBAAkB,CAC7B,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EAAE,EACf,OAAO,CAAC,EAAE,wBAAwB,GACjC,OAAO,CAAC,yBAAyB,CAAC;IAsDrC,kBAAkB;IACL,mBAAmB,CAAC,MAAM,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAsExF,kBAAkB;IACL,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;IAqC1E,kBAAkB;IACL,WAAW,IAAI,OAAO,CAAC;QAAE,SAAS,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAsB/E,kBAAkB;IACL,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAMvC"}
|
|
@@ -0,0 +1,473 @@
|
|
|
1
|
+
// File: backend/agentos/core/llm/providers/implementations/OllamaProvider.ts
|
|
2
|
+
/**
|
|
3
|
+
* @fileoverview Implements the IProvider interface for Ollama, enabling interaction
|
|
4
|
+
* with locally hosted large language models. This provider supports chat completions,
|
|
5
|
+
* streaming, embedding generation (if the Ollama model supports it), and model introspection.
|
|
6
|
+
*
|
|
7
|
+
* Key features:
|
|
8
|
+
* - Connects to a specified Ollama instance.
|
|
9
|
+
* - Standardized chat completion and streaming API.
|
|
10
|
+
* - Embedding generation via Ollama's `/api/embeddings` endpoint.
|
|
11
|
+
* - Listing of available local models.
|
|
12
|
+
* - Health checks for the Ollama service.
|
|
13
|
+
* - Adherence to AgentOS architectural principles, including custom error handling and comprehensive JSDoc.
|
|
14
|
+
*
|
|
15
|
+
* @module backend/agentos/core/llm/providers/implementations/OllamaProvider
|
|
16
|
+
* @implements {IProvider}
|
|
17
|
+
*/
|
|
18
|
+
import axios from 'axios';
|
|
19
|
+
import { OllamaProviderError } from '../errors/OllamaProviderError.js';
|
|
20
|
+
const extractErrorMessage = (data) => {
|
|
21
|
+
if (!data || typeof data !== 'object') {
|
|
22
|
+
return undefined;
|
|
23
|
+
}
|
|
24
|
+
const candidate = data.error;
|
|
25
|
+
return typeof candidate === 'string' ? candidate : undefined;
|
|
26
|
+
};
|
|
27
|
+
const isTextContentPart = (part) => part.type === 'text' && typeof part.text === 'string';
|
|
28
|
+
/**
|
|
29
|
+
* @class OllamaProvider
|
|
30
|
+
* @implements {IProvider}
|
|
31
|
+
* Provides an interface to locally hosted LLMs through an Ollama instance.
|
|
32
|
+
* It handles API requests for chat completions, streaming, embeddings, and model listing.
|
|
33
|
+
*/
|
|
34
|
+
export class OllamaProvider {
|
|
35
|
+
/**
|
|
36
|
+
* Creates an instance of OllamaProvider.
|
|
37
|
+
* The provider must be initialized using `initialize()` before use.
|
|
38
|
+
*/
|
|
39
|
+
constructor() {
|
|
40
|
+
/** @inheritdoc */
|
|
41
|
+
this.providerId = 'ollama';
|
|
42
|
+
/** @inheritdoc */
|
|
43
|
+
this.isInitialized = false;
|
|
44
|
+
}
|
|
45
|
+
/** @inheritdoc */
|
|
46
|
+
async initialize(config) {
|
|
47
|
+
if (!config.baseURL) {
|
|
48
|
+
throw new OllamaProviderError('Ollama baseURL is required for initialization.', 'INIT_FAILED_MISSING_BASEURL');
|
|
49
|
+
}
|
|
50
|
+
this.config = {
|
|
51
|
+
requestTimeout: 60000, // Default 60 seconds
|
|
52
|
+
...config,
|
|
53
|
+
};
|
|
54
|
+
this.defaultModelId = config.defaultModelId;
|
|
55
|
+
this.client = axios.create({
|
|
56
|
+
baseURL: this.config.baseURL.endsWith('/api') ? this.config.baseURL : `${this.config.baseURL}/api`,
|
|
57
|
+
timeout: this.config.requestTimeout,
|
|
58
|
+
headers: {
|
|
59
|
+
'Content-Type': 'application/json',
|
|
60
|
+
// Ollama typically does not require an API key for local instances.
|
|
61
|
+
// If a proxy in front of Ollama needs one, it could be added here via config.apiKey.
|
|
62
|
+
...(this.config.apiKey ? { 'Authorization': `Bearer ${this.config.apiKey}` } : {}),
|
|
63
|
+
},
|
|
64
|
+
});
|
|
65
|
+
try {
|
|
66
|
+
// Verify connection by attempting to list local models or check base endpoint.
|
|
67
|
+
await this.client.get('/'); // Ollama's base endpoint should return "Ollama is running"
|
|
68
|
+
this.isInitialized = true;
|
|
69
|
+
console.log(`OllamaProvider initialized successfully. Base URL: ${this.client.defaults.baseURL}. Default model: ${this.defaultModelId || 'Not set'}`);
|
|
70
|
+
}
|
|
71
|
+
catch (error) {
|
|
72
|
+
this.isInitialized = false;
|
|
73
|
+
const axiosError = error;
|
|
74
|
+
const _details = {
|
|
75
|
+
baseURL: this.client.defaults.baseURL,
|
|
76
|
+
status: axiosError.response?.status,
|
|
77
|
+
data: axiosError.response?.data,
|
|
78
|
+
};
|
|
79
|
+
throw new OllamaProviderError(`OllamaProvider initialization failed: Could not connect to Ollama at ${this.client.defaults.baseURL}. Ensure Ollama is running and accessible. Error: ${axiosError.message}`, 'INITIALIZATION_FAILED', axiosError.response?.status, _details);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Ensures the provider is initialized.
|
|
84
|
+
* @private
|
|
85
|
+
* @throws {OllamaProviderError} If not initialized.
|
|
86
|
+
*/
|
|
87
|
+
ensureInitialized() {
|
|
88
|
+
if (!this.isInitialized) {
|
|
89
|
+
throw new OllamaProviderError('OllamaProvider is not initialized. Call initialize() first.', 'PROVIDER_NOT_INITIALIZED');
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Transforms standard ChatMessage array to Ollama's expected format.
|
|
94
|
+
* @private
|
|
95
|
+
*/
|
|
96
|
+
mapToOllamaMessages(messages) {
|
|
97
|
+
return messages.map(msg => {
|
|
98
|
+
if (typeof msg.content !== 'string') {
|
|
99
|
+
// Ollama primarily supports text content. Vision models might take base64 images.
|
|
100
|
+
// For non-string content, we attempt to serialize or take the text part if multimodal.
|
|
101
|
+
// This part needs careful handling based on specific Ollama model capabilities.
|
|
102
|
+
console.warn(`OllamaProvider: Message content for role ${msg.role} is not a simple string. Attempting to use text part or serialize.`);
|
|
103
|
+
if (Array.isArray(msg.content)) {
|
|
104
|
+
const textPart = msg.content.find(isTextContentPart);
|
|
105
|
+
// TODO: Handle image_url parts for vision-enabled Ollama models by converting to base64.
|
|
106
|
+
return {
|
|
107
|
+
role: msg.role,
|
|
108
|
+
content: textPart?.text ?? JSON.stringify(msg.content), // Fallback to JSON string
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
return { role: msg.role, content: JSON.stringify(msg.content) }; // Fallback
|
|
112
|
+
}
|
|
113
|
+
return {
|
|
114
|
+
role: msg.role,
|
|
115
|
+
content: msg.content,
|
|
116
|
+
// images: msg.images_base64_if_supported_and_present // Handle multimodal if applicable
|
|
117
|
+
};
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
/** @inheritdoc */
|
|
121
|
+
async generateCompletion(modelId, messages, options) {
|
|
122
|
+
this.ensureInitialized();
|
|
123
|
+
const ollamaMessages = this.mapToOllamaMessages(messages);
|
|
124
|
+
const payload = {
|
|
125
|
+
model: modelId,
|
|
126
|
+
messages: ollamaMessages,
|
|
127
|
+
stream: false, // For non-streaming
|
|
128
|
+
options: {
|
|
129
|
+
...(options.temperature !== undefined && { temperature: options.temperature }),
|
|
130
|
+
...(options.topP !== undefined && { top_p: options.topP }),
|
|
131
|
+
...(options.maxTokens !== undefined && { num_predict: options.maxTokens }), // Ollama uses 'num_predict'
|
|
132
|
+
...(options.presencePenalty !== undefined && { presence_penalty: options.presencePenalty }),
|
|
133
|
+
...(options.frequencyPenalty !== undefined && { frequency_penalty: options.frequencyPenalty }),
|
|
134
|
+
...(options.stopSequences !== undefined && { stop: options.stopSequences }),
|
|
135
|
+
},
|
|
136
|
+
format: options.responseFormat?.type === 'json_object' ? 'json' : undefined,
|
|
137
|
+
// Ollama's tool support is not standardized like OpenAI's.
|
|
138
|
+
// Pass custom params if any are known for specific Ollama models.
|
|
139
|
+
...(options.customModelParams || {}),
|
|
140
|
+
};
|
|
141
|
+
try {
|
|
142
|
+
const response = await this.client.post('/chat', payload);
|
|
143
|
+
const data = response.data;
|
|
144
|
+
if (data.error) {
|
|
145
|
+
throw new OllamaProviderError(`Ollama API error for model ${modelId}: ${data.error}`, 'API_ERROR', response.status, data);
|
|
146
|
+
}
|
|
147
|
+
const promptTokens = data.prompt_eval_count || 0;
|
|
148
|
+
const completionTokens = data.eval_count || 0;
|
|
149
|
+
const usage = {
|
|
150
|
+
promptTokens,
|
|
151
|
+
completionTokens,
|
|
152
|
+
totalTokens: promptTokens + completionTokens,
|
|
153
|
+
costUSD: 0, // Local models typically have no direct per-token cost.
|
|
154
|
+
};
|
|
155
|
+
return {
|
|
156
|
+
id: `ollama-${modelId}-${Date.now()}`, // Generate a unique ID
|
|
157
|
+
object: 'chat.completion',
|
|
158
|
+
created: data.created_at ? new Date(data.created_at).getTime() / 1000 : Math.floor(Date.now() / 1000),
|
|
159
|
+
modelId: data.model || modelId,
|
|
160
|
+
choices: data.message ? [{
|
|
161
|
+
index: 0,
|
|
162
|
+
message: {
|
|
163
|
+
role: data.message.role,
|
|
164
|
+
content: data.message.content,
|
|
165
|
+
},
|
|
166
|
+
finishReason: data.done ? 'stop' : 'length', // Best guess for non-streaming
|
|
167
|
+
}] : [],
|
|
168
|
+
usage,
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
catch (error) {
|
|
172
|
+
const axiosError = error;
|
|
173
|
+
const status = axiosError.response?.status;
|
|
174
|
+
const errorData = axiosError.response?.data;
|
|
175
|
+
const message = extractErrorMessage(errorData) || axiosError.message || 'Unknown Ollama API error';
|
|
176
|
+
throw new OllamaProviderError(message, 'API_REQUEST_FAILED', status, { requestPayload: payload, responseData: errorData });
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
/** @inheritdoc */
|
|
180
|
+
async *generateCompletionStream(modelId, messages, options) {
|
|
181
|
+
this.ensureInitialized();
|
|
182
|
+
const ollamaMessages = this.mapToOllamaMessages(messages);
|
|
183
|
+
const payload = {
|
|
184
|
+
model: modelId,
|
|
185
|
+
messages: ollamaMessages,
|
|
186
|
+
stream: true,
|
|
187
|
+
options: {
|
|
188
|
+
...(options.temperature !== undefined && { temperature: options.temperature }),
|
|
189
|
+
...(options.topP !== undefined && { top_p: options.topP }),
|
|
190
|
+
...(options.maxTokens !== undefined && { num_predict: options.maxTokens }),
|
|
191
|
+
...(options.presencePenalty !== undefined && { presence_penalty: options.presencePenalty }),
|
|
192
|
+
...(options.frequencyPenalty !== undefined && { frequency_penalty: options.frequencyPenalty }),
|
|
193
|
+
...(options.stopSequences !== undefined && { stop: options.stopSequences }),
|
|
194
|
+
},
|
|
195
|
+
format: options.responseFormat?.type === 'json_object' ? 'json' : undefined,
|
|
196
|
+
...(options.customModelParams || {}),
|
|
197
|
+
};
|
|
198
|
+
let responseStream;
|
|
199
|
+
try {
|
|
200
|
+
responseStream = await this.client.post('/chat', payload, { responseType: 'stream' });
|
|
201
|
+
}
|
|
202
|
+
catch (error) {
|
|
203
|
+
const axiosError = error;
|
|
204
|
+
const status = axiosError.response?.status;
|
|
205
|
+
const errorData = axiosError.response?.data;
|
|
206
|
+
const message = extractErrorMessage(errorData) || axiosError.message || 'Failed to connect to Ollama stream.';
|
|
207
|
+
throw new OllamaProviderError(message, 'STREAM_CONNECTION_FAILED', status, { requestPayload: payload, responseData: errorData });
|
|
208
|
+
}
|
|
209
|
+
const stream = responseStream.data;
|
|
210
|
+
let accumulatedContent = "";
|
|
211
|
+
let finalUsage;
|
|
212
|
+
let responseId = `ollama-stream-${modelId}-${Date.now()}`; // Initial ID
|
|
213
|
+
const abortSignal = options.abortSignal;
|
|
214
|
+
if (abortSignal?.aborted) {
|
|
215
|
+
yield { id: `ollama-abort-${Date.now()}`, object: 'chat.completion.chunk', created: Math.floor(Date.now() / 1000), modelId, choices: [], error: { message: 'Stream aborted prior to first chunk', type: 'abort' }, isFinal: true };
|
|
216
|
+
return;
|
|
217
|
+
}
|
|
218
|
+
const abortHandler = () => {
|
|
219
|
+
// We rely on loop check to emit final chunk; no direct stream destroy to keep portability.
|
|
220
|
+
};
|
|
221
|
+
abortSignal?.addEventListener('abort', abortHandler, { once: true });
|
|
222
|
+
try {
|
|
223
|
+
for await (const chunk of stream) {
|
|
224
|
+
if (abortSignal?.aborted) {
|
|
225
|
+
yield { id: `ollama-abort-${Date.now()}`, object: 'chat.completion.chunk', created: Math.floor(Date.now() / 1000), modelId, choices: [], error: { message: 'Stream aborted by caller', type: 'abort' }, isFinal: true };
|
|
226
|
+
break;
|
|
227
|
+
}
|
|
228
|
+
const chunkString = chunk.toString();
|
|
229
|
+
// Ollama stream sends multiple JSON objects, newline-separated.
|
|
230
|
+
const jsonObjects = chunkString.split('\n').filter(Boolean);
|
|
231
|
+
for (const jsonObjStr of jsonObjects) {
|
|
232
|
+
try {
|
|
233
|
+
const parsedChunk = JSON.parse(jsonObjStr);
|
|
234
|
+
responseId = `ollama-stream-${parsedChunk.model || modelId}-${new Date(parsedChunk.created_at).getTime()}`;
|
|
235
|
+
if (parsedChunk.error) {
|
|
236
|
+
yield {
|
|
237
|
+
id: responseId, object: 'chat.completion.chunk', created: new Date(parsedChunk.created_at).getTime() / 1000,
|
|
238
|
+
modelId: parsedChunk.model || modelId, choices: [], isFinal: true,
|
|
239
|
+
error: { message: parsedChunk.error, type: 'ollama_api_error' }
|
|
240
|
+
};
|
|
241
|
+
return; // Terminate stream on error
|
|
242
|
+
}
|
|
243
|
+
const deltaContent = parsedChunk.message?.content || "";
|
|
244
|
+
if (deltaContent)
|
|
245
|
+
accumulatedContent += deltaContent;
|
|
246
|
+
const isFinalChunk = parsedChunk.done;
|
|
247
|
+
if (isFinalChunk) {
|
|
248
|
+
const promptTokens = parsedChunk.prompt_eval_count || 0;
|
|
249
|
+
const completionTokens = parsedChunk.eval_count || 0;
|
|
250
|
+
finalUsage = {
|
|
251
|
+
promptTokens,
|
|
252
|
+
completionTokens,
|
|
253
|
+
totalTokens: promptTokens + completionTokens,
|
|
254
|
+
costUSD: 0,
|
|
255
|
+
};
|
|
256
|
+
}
|
|
257
|
+
yield {
|
|
258
|
+
id: responseId,
|
|
259
|
+
object: 'chat.completion.chunk',
|
|
260
|
+
created: new Date(parsedChunk.created_at).getTime() / 1000,
|
|
261
|
+
modelId: parsedChunk.model || modelId,
|
|
262
|
+
choices: parsedChunk.message ? [{
|
|
263
|
+
index: 0,
|
|
264
|
+
message: {
|
|
265
|
+
role: parsedChunk.message.role || 'assistant', // Or infer from previous state
|
|
266
|
+
content: accumulatedContent, // Full accumulated content for this chunk's choice
|
|
267
|
+
},
|
|
268
|
+
finishReason: isFinalChunk ? 'stop' : null,
|
|
269
|
+
}] : [],
|
|
270
|
+
responseTextDelta: deltaContent,
|
|
271
|
+
isFinal: isFinalChunk,
|
|
272
|
+
usage: isFinalChunk ? finalUsage : undefined,
|
|
273
|
+
};
|
|
274
|
+
if (isFinalChunk)
|
|
275
|
+
return; // End stream explicitly
|
|
276
|
+
}
|
|
277
|
+
catch (parseError) {
|
|
278
|
+
console.warn('OllamaProvider: Could not parse stream chunk JSON:', jsonObjStr, parseError);
|
|
279
|
+
// Optionally yield an error chunk or decide to continue
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
catch (streamError) {
|
|
285
|
+
const message = streamError instanceof Error ? streamError.message : 'Ollama stream processing error';
|
|
286
|
+
console.error(`OllamaProvider stream error for model ${modelId}:`, message, streamError);
|
|
287
|
+
// Yield a final error chunk to the consumer
|
|
288
|
+
yield {
|
|
289
|
+
id: responseId, object: 'chat.completion.chunk', created: Math.floor(Date.now() / 1000),
|
|
290
|
+
modelId: modelId, choices: [], isFinal: true,
|
|
291
|
+
error: { message, type: 'STREAM_PROCESSING_ERROR' }
|
|
292
|
+
};
|
|
293
|
+
}
|
|
294
|
+
finally {
|
|
295
|
+
stream?.destroy?.();
|
|
296
|
+
}
|
|
297
|
+
abortSignal?.removeEventListener('abort', abortHandler);
|
|
298
|
+
}
|
|
299
|
+
/** @inheritdoc */
|
|
300
|
+
async generateEmbeddings(modelId, texts, options) {
|
|
301
|
+
this.ensureInitialized();
|
|
302
|
+
if (!texts || texts.length === 0) {
|
|
303
|
+
throw new OllamaProviderError('Input texts array cannot be empty for embeddings.', 'EMBEDDING_NO_INPUT');
|
|
304
|
+
}
|
|
305
|
+
// Ollama's /api/embeddings endpoint currently takes one prompt (text) at a time.
|
|
306
|
+
// We need to batch these requests if multiple texts are provided.
|
|
307
|
+
const embeddingsData = [];
|
|
308
|
+
const totalPromptTokens = 0; // Ollama doesn't provide token counts for embeddings yet.
|
|
309
|
+
for (let i = 0; i < texts.length; i++) {
|
|
310
|
+
const text = texts[i];
|
|
311
|
+
const payload = {
|
|
312
|
+
model: modelId,
|
|
313
|
+
prompt: text,
|
|
314
|
+
options: options?.customModelParams, // Pass through any custom model options
|
|
315
|
+
};
|
|
316
|
+
try {
|
|
317
|
+
const response = await this.client.post('/embeddings', payload);
|
|
318
|
+
const embeddingResponse = response.data;
|
|
319
|
+
embeddingsData.push({
|
|
320
|
+
object: 'embedding',
|
|
321
|
+
embedding: embeddingResponse.embedding,
|
|
322
|
+
index: i,
|
|
323
|
+
});
|
|
324
|
+
// totalPromptTokens += calculate_tokens_for(text); // Hypothetical token calculation
|
|
325
|
+
}
|
|
326
|
+
catch (error) {
|
|
327
|
+
const axiosError = error;
|
|
328
|
+
const status = axiosError.response?.status;
|
|
329
|
+
const errorData = axiosError.response?.data;
|
|
330
|
+
const message = extractErrorMessage(errorData) || axiosError.message || `Failed to generate embedding for text index ${i}`;
|
|
331
|
+
throw new OllamaProviderError(message, 'EMBEDDING_FAILED', status, { requestPayload: payload, textIndex: i, responseData: errorData });
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
return {
|
|
335
|
+
object: 'list',
|
|
336
|
+
data: embeddingsData,
|
|
337
|
+
model: modelId,
|
|
338
|
+
usage: {
|
|
339
|
+
prompt_tokens: totalPromptTokens, // This will be 0 until Ollama provides this info or we add local tokenization
|
|
340
|
+
total_tokens: totalPromptTokens,
|
|
341
|
+
costUSD: 0, // Local embeddings
|
|
342
|
+
},
|
|
343
|
+
};
|
|
344
|
+
}
|
|
345
|
+
/** @inheritdoc */
|
|
346
|
+
async listAvailableModels(filter) {
|
|
347
|
+
this.ensureInitialized();
|
|
348
|
+
try {
|
|
349
|
+
const response = await this.client.get('/tags');
|
|
350
|
+
const apiModels = response.data.models;
|
|
351
|
+
const modelInfos = apiModels.map((model) => {
|
|
352
|
+
const capabilities = ['chat', 'completion']; // Base capabilities for most Ollama models
|
|
353
|
+
if (model._details?.families?.includes('clip') || model.name.includes('llava') || model.name.includes('bakllava')) {
|
|
354
|
+
capabilities.push('vision_input');
|
|
355
|
+
}
|
|
356
|
+
// Embedding capability is harder to infer universally, usually specific models.
|
|
357
|
+
// Assume any model *can* be used with /api/embeddings, but quality varies.
|
|
358
|
+
// For AgentOS, we might want to explicitly tag known good embedding models.
|
|
359
|
+
// capabilities.push('embeddings');
|
|
360
|
+
// Rough estimation of context window based on common model families
|
|
361
|
+
let contextWindow = 4096; // Default
|
|
362
|
+
const family = model._details?.family?.toLowerCase();
|
|
363
|
+
const paramSize = model._details?.parameter_size?.toLowerCase();
|
|
364
|
+
if (family) {
|
|
365
|
+
if (family.includes("llama3") || family.includes("llama-3"))
|
|
366
|
+
contextWindow = 8192;
|
|
367
|
+
else if (family.includes("llama2") || family.includes("llama-2"))
|
|
368
|
+
contextWindow = 4096;
|
|
369
|
+
else if (family.includes("codellama"))
|
|
370
|
+
contextWindow = 16000;
|
|
371
|
+
else if (family.includes("mistral") && (paramSize?.includes("7b") || paramSize?.includes("8x7b")))
|
|
372
|
+
contextWindow = 32768; // Mistral-7B, Mixtral-8x7B
|
|
373
|
+
else if (family.includes("phi3") || family.includes("phi-3")) {
|
|
374
|
+
if (paramSize?.includes("mini") && (paramSize?.includes("128k") || model.name.includes("128k")))
|
|
375
|
+
contextWindow = 131072;
|
|
376
|
+
else if (paramSize?.includes("mini") && (paramSize?.includes("4k") || model.name.includes("4k")))
|
|
377
|
+
contextWindow = 4096;
|
|
378
|
+
else if (paramSize?.includes("small"))
|
|
379
|
+
contextWindow = 8192; // Phi-3 Small
|
|
380
|
+
else if (paramSize?.includes("medium"))
|
|
381
|
+
contextWindow = 131072; // Phi-3 Medium (can be 4k or 128k variant)
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
return {
|
|
385
|
+
modelId: model.name, // e.g., "llama3:latest", "mistral:7b-instruct-q4_0"
|
|
386
|
+
providerId: this.providerId,
|
|
387
|
+
displayName: model.name,
|
|
388
|
+
description: `Ollama model: ${model._details?.family || model.model} (${model._details?.parameter_size || 'size unknown'}), Format: ${model._details?.format || 'unknown'}`,
|
|
389
|
+
capabilities,
|
|
390
|
+
contextWindowSize: contextWindow,
|
|
391
|
+
// Output/Input token limits are often the same as context window for Ollama models.
|
|
392
|
+
// Pricing is not applicable for local Ollama models.
|
|
393
|
+
pricePer1MTokensInput: 0,
|
|
394
|
+
pricePer1MTokensOutput: 0,
|
|
395
|
+
supportsStreaming: true, // Most Ollama chat models support streaming
|
|
396
|
+
lastUpdated: model.modified_at,
|
|
397
|
+
status: 'active',
|
|
398
|
+
};
|
|
399
|
+
});
|
|
400
|
+
if (filter?.capability) {
|
|
401
|
+
return modelInfos.filter(m => m.capabilities.includes(filter.capability));
|
|
402
|
+
}
|
|
403
|
+
return modelInfos;
|
|
404
|
+
}
|
|
405
|
+
catch (error) {
|
|
406
|
+
const axiosError = error;
|
|
407
|
+
const status = axiosError.response?.status;
|
|
408
|
+
throw new OllamaProviderError(`Failed to list available Ollama models: ${axiosError.message}`, 'LIST_MODELS_FAILED', status, axiosError.response?.data);
|
|
409
|
+
}
|
|
410
|
+
}
|
|
411
|
+
/** @inheritdoc */
|
|
412
|
+
async getModelInfo(modelId) {
|
|
413
|
+
this.ensureInitialized();
|
|
414
|
+
// Ollama's /api/show endpoint provides detailed info for a specific model
|
|
415
|
+
try {
|
|
416
|
+
const response = await this.client.post('/show', { name: modelId });
|
|
417
|
+
const detailedInfo = response.data;
|
|
418
|
+
// Note: detailedInfo._details is available but not currently used; future versions may enrich ModelInfo with it.
|
|
419
|
+
// Attempt to map this to ModelInfo, might need more robust parsing
|
|
420
|
+
const models = await this.listAvailableModels(); // Get the base info
|
|
421
|
+
const baseInfo = models.find(m => m.modelId === modelId);
|
|
422
|
+
if (!baseInfo)
|
|
423
|
+
return undefined;
|
|
424
|
+
// Enrich with _details from /show if possible
|
|
425
|
+
// For example, extract more specific parameter_size, quantization etc. from _details if not already in baseInfo.description
|
|
426
|
+
// This is highly dependent on the output of /api/show for the specific model.
|
|
427
|
+
// As a simple step, we'll return the info from listAvailableModels as it's more standardized.
|
|
428
|
+
// A more advanced version would merge data from /show into the ModelInfo.
|
|
429
|
+
return {
|
|
430
|
+
...baseInfo,
|
|
431
|
+
description: `${baseInfo.description}. Parameters: ${detailedInfo.parameters?.split('\n').filter(Boolean).join(', ') || 'N/A'}`
|
|
432
|
+
};
|
|
433
|
+
}
|
|
434
|
+
catch (error) {
|
|
435
|
+
const axiosError = error;
|
|
436
|
+
if (axiosError.response?.status === 404) {
|
|
437
|
+
return undefined; // Model not found
|
|
438
|
+
}
|
|
439
|
+
throw new OllamaProviderError(`Failed to get info for Ollama model '${modelId}': ${axiosError.message}`, 'GET_MODEL_INFO_FAILED', axiosError.response?.status, axiosError.response?.data);
|
|
440
|
+
}
|
|
441
|
+
}
|
|
442
|
+
/** @inheritdoc */
|
|
443
|
+
async checkHealth() {
|
|
444
|
+
this.ensureInitialized(); // Ensures client is created
|
|
445
|
+
try {
|
|
446
|
+
const response = await this.client.get('/'); // Check base Ollama endpoint
|
|
447
|
+
// Ollama returns "Ollama is running" with a 200 OK on its root path.
|
|
448
|
+
if (response.status === 200 && typeof response.data === 'string' && response.data.includes("Ollama is running")) {
|
|
449
|
+
return { isHealthy: true, _details: { message: response.data } };
|
|
450
|
+
}
|
|
451
|
+
return { isHealthy: false, _details: { status: response.status, data: response.data } };
|
|
452
|
+
}
|
|
453
|
+
catch (error) {
|
|
454
|
+
const axiosError = error;
|
|
455
|
+
return {
|
|
456
|
+
isHealthy: false,
|
|
457
|
+
_details: {
|
|
458
|
+
message: `Ollama health check failed: ${axiosError.message}`,
|
|
459
|
+
status: axiosError.response?.status,
|
|
460
|
+
data: axiosError.response?.data,
|
|
461
|
+
},
|
|
462
|
+
};
|
|
463
|
+
}
|
|
464
|
+
}
|
|
465
|
+
/** @inheritdoc */
|
|
466
|
+
async shutdown() {
|
|
467
|
+
// For OllamaProvider using Axios, there are no persistent connections to explicitly close.
|
|
468
|
+
// Marking as uninitialized is sufficient.
|
|
469
|
+
this.isInitialized = false;
|
|
470
|
+
console.log('OllamaProvider shutdown complete.');
|
|
471
|
+
}
|
|
472
|
+
}
|
|
473
|
+
//# sourceMappingURL=OllamaProvider.js.map
|