@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,483 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file IStorageAdapter.ts
|
|
3
|
+
* @description Core storage abstraction interface for AgentOS persistence layer.
|
|
4
|
+
*
|
|
5
|
+
* This module defines the contract that storage implementations must fulfill to provide
|
|
6
|
+
* persistence capabilities for conversations, messages, user data, and agent state.
|
|
7
|
+
*
|
|
8
|
+
* The storage layer is designed to be:
|
|
9
|
+
* - **Platform-agnostic**: Works in Node.js, browsers, Electron, mobile (Capacitor)
|
|
10
|
+
* - **Swappable**: Can switch between SQLite, PostgreSQL, in-memory, etc.
|
|
11
|
+
* - **Type-safe**: Full TypeScript support with strict typing
|
|
12
|
+
* - **Async-first**: All operations return Promises for non-blocking I/O
|
|
13
|
+
*
|
|
14
|
+
* @version 1.0.0
|
|
15
|
+
* @author AgentOS Team
|
|
16
|
+
* @license MIT
|
|
17
|
+
*/
|
|
18
|
+
/**
|
|
19
|
+
* Represents a stored conversation with metadata.
|
|
20
|
+
*
|
|
21
|
+
* @interface IConversation
|
|
22
|
+
* @property {string} id - Unique identifier for the conversation (UUID recommended)
|
|
23
|
+
* @property {string} userId - User who owns this conversation
|
|
24
|
+
* @property {string} [agentId] - Optional agent ID if conversation is tied to specific agent
|
|
25
|
+
* @property {number} createdAt - Unix timestamp (milliseconds) when conversation was created
|
|
26
|
+
* @property {number} lastActivity - Unix timestamp (milliseconds) of last message in conversation
|
|
27
|
+
* @property {string} [title] - Optional human-readable title for the conversation
|
|
28
|
+
* @property {Record<string, any>} [metadata] - Arbitrary metadata object for extensibility
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* ```typescript
|
|
32
|
+
* const conversation: IConversation = {
|
|
33
|
+
* id: 'conv-123',
|
|
34
|
+
* userId: 'user-456',
|
|
35
|
+
* agentId: 'agent-coding',
|
|
36
|
+
* createdAt: Date.now(),
|
|
37
|
+
* lastActivity: Date.now(),
|
|
38
|
+
* title: 'Build a React component',
|
|
39
|
+
* metadata: { tags: ['coding', 'react'], starred: true }
|
|
40
|
+
* };
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
43
|
+
export interface IConversation {
|
|
44
|
+
id: string;
|
|
45
|
+
userId: string;
|
|
46
|
+
agentId?: string;
|
|
47
|
+
createdAt: number;
|
|
48
|
+
lastActivity: number;
|
|
49
|
+
title?: string;
|
|
50
|
+
metadata?: Record<string, any>;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Represents a single message within a conversation.
|
|
54
|
+
*
|
|
55
|
+
* Follows OpenAI's chat completion message format for compatibility with LLM providers.
|
|
56
|
+
*
|
|
57
|
+
* @interface IConversationMessage
|
|
58
|
+
* @property {string} id - Unique identifier for the message
|
|
59
|
+
* @property {string} conversationId - ID of the conversation this message belongs to
|
|
60
|
+
* @property {'user' | 'assistant' | 'system' | 'tool'} role - Message role in conversation
|
|
61
|
+
* @property {string} content - The text content of the message
|
|
62
|
+
* @property {number} timestamp - Unix timestamp (milliseconds) when message was created
|
|
63
|
+
* @property {string} [model] - LLM model used to generate this message (for assistant messages)
|
|
64
|
+
* @property {ITokenUsage} [usage] - Token usage statistics for this message
|
|
65
|
+
* @property {any[]} [toolCalls] - Tool/function calls made in this message
|
|
66
|
+
* @property {string} [toolCallId] - ID linking this message to a tool call response
|
|
67
|
+
* @property {string} [name] - Name field for tool/function messages
|
|
68
|
+
* @property {Record<string, any>} [metadata] - Additional metadata for extensibility
|
|
69
|
+
*
|
|
70
|
+
* @example
|
|
71
|
+
* ```typescript
|
|
72
|
+
* const userMessage: IConversationMessage = {
|
|
73
|
+
* id: 'msg-001',
|
|
74
|
+
* conversationId: 'conv-123',
|
|
75
|
+
* role: 'user',
|
|
76
|
+
* content: 'What is TypeScript?',
|
|
77
|
+
* timestamp: Date.now()
|
|
78
|
+
* };
|
|
79
|
+
*
|
|
80
|
+
* const assistantMessage: IConversationMessage = {
|
|
81
|
+
* id: 'msg-002',
|
|
82
|
+
* conversationId: 'conv-123',
|
|
83
|
+
* role: 'assistant',
|
|
84
|
+
* content: 'TypeScript is a typed superset of JavaScript...',
|
|
85
|
+
* timestamp: Date.now(),
|
|
86
|
+
* model: 'gpt-4o',
|
|
87
|
+
* usage: { promptTokens: 10, completionTokens: 50, totalTokens: 60 }
|
|
88
|
+
* };
|
|
89
|
+
* ```
|
|
90
|
+
*/
|
|
91
|
+
export interface IConversationMessage {
|
|
92
|
+
id: string;
|
|
93
|
+
conversationId: string;
|
|
94
|
+
role: 'user' | 'assistant' | 'system' | 'tool';
|
|
95
|
+
content: string;
|
|
96
|
+
timestamp: number;
|
|
97
|
+
model?: string;
|
|
98
|
+
usage?: ITokenUsage;
|
|
99
|
+
toolCalls?: any[];
|
|
100
|
+
toolCallId?: string;
|
|
101
|
+
name?: string;
|
|
102
|
+
metadata?: Record<string, any>;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Token usage statistics for LLM API calls.
|
|
106
|
+
*
|
|
107
|
+
* @interface ITokenUsage
|
|
108
|
+
* @property {number} promptTokens - Number of tokens in the prompt (input)
|
|
109
|
+
* @property {number} completionTokens - Number of tokens in the completion (output)
|
|
110
|
+
* @property {number} totalTokens - Total tokens used (prompt + completion)
|
|
111
|
+
*
|
|
112
|
+
* @example
|
|
113
|
+
* ```typescript
|
|
114
|
+
* const usage: ITokenUsage = {
|
|
115
|
+
* promptTokens: 150,
|
|
116
|
+
* completionTokens: 75,
|
|
117
|
+
* totalTokens: 225
|
|
118
|
+
* };
|
|
119
|
+
* ```
|
|
120
|
+
*/
|
|
121
|
+
export interface ITokenUsage {
|
|
122
|
+
promptTokens: number;
|
|
123
|
+
completionTokens: number;
|
|
124
|
+
totalTokens: number;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Options for querying conversation messages with filtering and pagination.
|
|
128
|
+
*
|
|
129
|
+
* @interface IMessageQueryOptions
|
|
130
|
+
* @property {number} [limit] - Maximum number of messages to return
|
|
131
|
+
* @property {number} [offset] - Number of messages to skip (for pagination)
|
|
132
|
+
* @property {number} [since] - Only return messages created after this timestamp
|
|
133
|
+
* @property {number} [until] - Only return messages created before this timestamp
|
|
134
|
+
* @property {('user' | 'assistant' | 'system' | 'tool')[]} [roles] - Filter by message roles
|
|
135
|
+
* @property {'asc' | 'desc'} [order] - Sort order by timestamp (default: 'asc')
|
|
136
|
+
*
|
|
137
|
+
* @example
|
|
138
|
+
* ```typescript
|
|
139
|
+
* // Get last 50 assistant messages
|
|
140
|
+
* const options: IMessageQueryOptions = {
|
|
141
|
+
* limit: 50,
|
|
142
|
+
* roles: ['assistant'],
|
|
143
|
+
* order: 'desc'
|
|
144
|
+
* };
|
|
145
|
+
*
|
|
146
|
+
* // Get messages from last hour
|
|
147
|
+
* const recentOptions: IMessageQueryOptions = {
|
|
148
|
+
* since: Date.now() - (60 * 60 * 1000)
|
|
149
|
+
* };
|
|
150
|
+
* ```
|
|
151
|
+
*/
|
|
152
|
+
export interface IMessageQueryOptions {
|
|
153
|
+
limit?: number;
|
|
154
|
+
offset?: number;
|
|
155
|
+
since?: number;
|
|
156
|
+
until?: number;
|
|
157
|
+
roles?: ('user' | 'assistant' | 'system' | 'tool')[];
|
|
158
|
+
order?: 'asc' | 'desc';
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Core storage adapter interface for AgentOS persistence.
|
|
162
|
+
*
|
|
163
|
+
* Implementations of this interface provide the actual storage mechanism
|
|
164
|
+
* (SQL database, NoSQL, in-memory, etc.) while AgentOS remains storage-agnostic.
|
|
165
|
+
*
|
|
166
|
+
* **Design Principles:**
|
|
167
|
+
* - All methods are async for non-blocking I/O
|
|
168
|
+
* - Returns null when entities don't exist (not throwing errors)
|
|
169
|
+
* - Uses strong typing for compile-time safety
|
|
170
|
+
* - Supports transaction-like batch operations
|
|
171
|
+
* - Designed for multi-user scenarios (userId scoping)
|
|
172
|
+
*
|
|
173
|
+
* **Lifecycle:**
|
|
174
|
+
* 1. Instantiate adapter with configuration
|
|
175
|
+
* 2. Call `initialize()` to set up database/schema
|
|
176
|
+
* 3. Use CRUD operations during runtime
|
|
177
|
+
* 4. Call `close()` when shutting down (optional cleanup)
|
|
178
|
+
*
|
|
179
|
+
* @interface IStorageAdapter
|
|
180
|
+
*
|
|
181
|
+
* @example
|
|
182
|
+
* ```typescript
|
|
183
|
+
* // Example implementation instantiation
|
|
184
|
+
* const storage: IStorageAdapter = new SqlStorageAdapter({
|
|
185
|
+
* type: 'better-sqlite3',
|
|
186
|
+
* database: './agentos.db'
|
|
187
|
+
* });
|
|
188
|
+
*
|
|
189
|
+
* await storage.initialize();
|
|
190
|
+
*
|
|
191
|
+
* // Create conversation
|
|
192
|
+
* const conversation = await storage.createConversation({
|
|
193
|
+
* id: 'conv-123',
|
|
194
|
+
* userId: 'user-456',
|
|
195
|
+
* createdAt: Date.now(),
|
|
196
|
+
* lastActivity: Date.now()
|
|
197
|
+
* });
|
|
198
|
+
*
|
|
199
|
+
* // Store message
|
|
200
|
+
* await storage.storeMessage({
|
|
201
|
+
* id: 'msg-001',
|
|
202
|
+
* conversationId: 'conv-123',
|
|
203
|
+
* role: 'user',
|
|
204
|
+
* content: 'Hello!',
|
|
205
|
+
* timestamp: Date.now()
|
|
206
|
+
* });
|
|
207
|
+
*
|
|
208
|
+
* // Query messages
|
|
209
|
+
* const messages = await storage.getMessages('conv-123', { limit: 10 });
|
|
210
|
+
* ```
|
|
211
|
+
*/
|
|
212
|
+
export interface IStorageAdapter {
|
|
213
|
+
/**
|
|
214
|
+
* Initializes the storage adapter.
|
|
215
|
+
*
|
|
216
|
+
* This should:
|
|
217
|
+
* - Establish database connections
|
|
218
|
+
* - Create necessary tables/schemas if they don't exist
|
|
219
|
+
* - Run migrations if needed
|
|
220
|
+
* - Validate configuration
|
|
221
|
+
*
|
|
222
|
+
* **Must be called before any other methods.**
|
|
223
|
+
*
|
|
224
|
+
* @returns {Promise<void>} Resolves when initialization is complete
|
|
225
|
+
* @throws {Error} If initialization fails (connection errors, invalid config, etc.)
|
|
226
|
+
*
|
|
227
|
+
* @example
|
|
228
|
+
* ```typescript
|
|
229
|
+
* const storage = new SqlStorageAdapter(config);
|
|
230
|
+
* await storage.initialize(); // Sets up database schema
|
|
231
|
+
* ```
|
|
232
|
+
*/
|
|
233
|
+
initialize(): Promise<void>;
|
|
234
|
+
/**
|
|
235
|
+
* Closes the storage adapter and releases resources.
|
|
236
|
+
*
|
|
237
|
+
* This should:
|
|
238
|
+
* - Close database connections
|
|
239
|
+
* - Flush any pending writes
|
|
240
|
+
* - Clean up temporary resources
|
|
241
|
+
*
|
|
242
|
+
* **Call during application shutdown for graceful cleanup.**
|
|
243
|
+
*
|
|
244
|
+
* @returns {Promise<void>} Resolves when cleanup is complete
|
|
245
|
+
*
|
|
246
|
+
* @example
|
|
247
|
+
* ```typescript
|
|
248
|
+
* process.on('SIGTERM', async () => {
|
|
249
|
+
* await storage.close();
|
|
250
|
+
* process.exit(0);
|
|
251
|
+
* });
|
|
252
|
+
* ```
|
|
253
|
+
*/
|
|
254
|
+
close(): Promise<void>;
|
|
255
|
+
/**
|
|
256
|
+
* Creates a new conversation record.
|
|
257
|
+
*
|
|
258
|
+
* @param {IConversation} conversation - The conversation object to create
|
|
259
|
+
* @returns {Promise<IConversation>} The created conversation (may include defaults)
|
|
260
|
+
* @throws {Error} If conversation with same ID already exists or validation fails
|
|
261
|
+
*
|
|
262
|
+
* @example
|
|
263
|
+
* ```typescript
|
|
264
|
+
* const conversation = await storage.createConversation({
|
|
265
|
+
* id: uuidv4(),
|
|
266
|
+
* userId: 'user-123',
|
|
267
|
+
* agentId: 'agent-coding',
|
|
268
|
+
* createdAt: Date.now(),
|
|
269
|
+
* lastActivity: Date.now(),
|
|
270
|
+
* title: 'New coding project'
|
|
271
|
+
* });
|
|
272
|
+
* ```
|
|
273
|
+
*/
|
|
274
|
+
createConversation(conversation: IConversation): Promise<IConversation>;
|
|
275
|
+
/**
|
|
276
|
+
* Retrieves a conversation by its ID.
|
|
277
|
+
*
|
|
278
|
+
* @param {string} conversationId - The unique conversation identifier
|
|
279
|
+
* @returns {Promise<IConversation | null>} The conversation or null if not found
|
|
280
|
+
*
|
|
281
|
+
* @example
|
|
282
|
+
* ```typescript
|
|
283
|
+
* const conv = await storage.getConversation('conv-123');
|
|
284
|
+
* if (conv) {
|
|
285
|
+
* console.log('Found:', conv.title);
|
|
286
|
+
* }
|
|
287
|
+
* ```
|
|
288
|
+
*/
|
|
289
|
+
getConversation(conversationId: string): Promise<IConversation | null>;
|
|
290
|
+
/**
|
|
291
|
+
* Updates an existing conversation's metadata.
|
|
292
|
+
*
|
|
293
|
+
* Only provided fields will be updated. Omitted fields remain unchanged.
|
|
294
|
+
*
|
|
295
|
+
* @param {string} conversationId - The conversation to update
|
|
296
|
+
* @param {Partial<IConversation>} updates - Fields to update
|
|
297
|
+
* @returns {Promise<IConversation>} The updated conversation
|
|
298
|
+
* @throws {Error} If conversation doesn't exist
|
|
299
|
+
*
|
|
300
|
+
* @example
|
|
301
|
+
* ```typescript
|
|
302
|
+
* // Update title and last activity
|
|
303
|
+
* const updated = await storage.updateConversation('conv-123', {
|
|
304
|
+
* title: 'Renamed conversation',
|
|
305
|
+
* lastActivity: Date.now()
|
|
306
|
+
* });
|
|
307
|
+
* ```
|
|
308
|
+
*/
|
|
309
|
+
updateConversation(conversationId: string, updates: Partial<IConversation>): Promise<IConversation>;
|
|
310
|
+
/**
|
|
311
|
+
* Deletes a conversation and all its messages.
|
|
312
|
+
*
|
|
313
|
+
* **Warning:** This is a destructive operation that cannot be undone.
|
|
314
|
+
* Consider implementing soft deletes in production.
|
|
315
|
+
*
|
|
316
|
+
* @param {string} conversationId - The conversation to delete
|
|
317
|
+
* @returns {Promise<boolean>} True if deleted, false if not found
|
|
318
|
+
*
|
|
319
|
+
* @example
|
|
320
|
+
* ```typescript
|
|
321
|
+
* const deleted = await storage.deleteConversation('conv-123');
|
|
322
|
+
* if (deleted) {
|
|
323
|
+
* console.log('Conversation deleted successfully');
|
|
324
|
+
* }
|
|
325
|
+
* ```
|
|
326
|
+
*/
|
|
327
|
+
deleteConversation(conversationId: string): Promise<boolean>;
|
|
328
|
+
/**
|
|
329
|
+
* Lists all conversations for a specific user.
|
|
330
|
+
*
|
|
331
|
+
* Results are typically ordered by lastActivity (most recent first).
|
|
332
|
+
*
|
|
333
|
+
* @param {string} userId - The user whose conversations to retrieve
|
|
334
|
+
* @param {Object} [options] - Optional filtering/pagination
|
|
335
|
+
* @param {number} [options.limit] - Maximum conversations to return
|
|
336
|
+
* @param {number} [options.offset] - Number of conversations to skip
|
|
337
|
+
* @param {string} [options.agentId] - Filter by specific agent
|
|
338
|
+
* @returns {Promise<IConversation[]>} Array of conversations
|
|
339
|
+
*
|
|
340
|
+
* @example
|
|
341
|
+
* ```typescript
|
|
342
|
+
* // Get user's 20 most recent conversations
|
|
343
|
+
* const conversations = await storage.listConversations('user-123', {
|
|
344
|
+
* limit: 20
|
|
345
|
+
* });
|
|
346
|
+
*
|
|
347
|
+
* // Get conversations for specific agent
|
|
348
|
+
* const codingConvs = await storage.listConversations('user-123', {
|
|
349
|
+
* agentId: 'agent-coding'
|
|
350
|
+
* });
|
|
351
|
+
* ```
|
|
352
|
+
*/
|
|
353
|
+
listConversations(userId: string, options?: {
|
|
354
|
+
limit?: number;
|
|
355
|
+
offset?: number;
|
|
356
|
+
agentId?: string;
|
|
357
|
+
}): Promise<IConversation[]>;
|
|
358
|
+
/**
|
|
359
|
+
* Stores a new message in a conversation.
|
|
360
|
+
*
|
|
361
|
+
* **Note:** This also updates the parent conversation's `lastActivity` timestamp.
|
|
362
|
+
*
|
|
363
|
+
* @param {IConversationMessage} message - The message to store
|
|
364
|
+
* @returns {Promise<IConversationMessage>} The stored message
|
|
365
|
+
* @throws {Error} If conversation doesn't exist or validation fails
|
|
366
|
+
*
|
|
367
|
+
* @example
|
|
368
|
+
* ```typescript
|
|
369
|
+
* await storage.storeMessage({
|
|
370
|
+
* id: uuidv4(),
|
|
371
|
+
* conversationId: 'conv-123',
|
|
372
|
+
* role: 'user',
|
|
373
|
+
* content: 'Explain async/await',
|
|
374
|
+
* timestamp: Date.now()
|
|
375
|
+
* });
|
|
376
|
+
* ```
|
|
377
|
+
*/
|
|
378
|
+
storeMessage(message: IConversationMessage): Promise<IConversationMessage>;
|
|
379
|
+
/**
|
|
380
|
+
* Retrieves a single message by its ID.
|
|
381
|
+
*
|
|
382
|
+
* @param {string} messageId - The unique message identifier
|
|
383
|
+
* @returns {Promise<IConversationMessage | null>} The message or null if not found
|
|
384
|
+
*
|
|
385
|
+
* @example
|
|
386
|
+
* ```typescript
|
|
387
|
+
* const msg = await storage.getMessage('msg-456');
|
|
388
|
+
* if (msg) {
|
|
389
|
+
* console.log(`[${msg.role}]: ${msg.content}`);
|
|
390
|
+
* }
|
|
391
|
+
* ```
|
|
392
|
+
*/
|
|
393
|
+
getMessage(messageId: string): Promise<IConversationMessage | null>;
|
|
394
|
+
/**
|
|
395
|
+
* Retrieves all messages for a conversation with optional filtering.
|
|
396
|
+
*
|
|
397
|
+
* This is the primary method for loading conversation history.
|
|
398
|
+
*
|
|
399
|
+
* @param {string} conversationId - The conversation to query
|
|
400
|
+
* @param {IMessageQueryOptions} [options] - Query options for filtering/pagination
|
|
401
|
+
* @returns {Promise<IConversationMessage[]>} Array of messages matching criteria
|
|
402
|
+
*
|
|
403
|
+
* @example
|
|
404
|
+
* ```typescript
|
|
405
|
+
* // Get all messages (oldest first)
|
|
406
|
+
* const allMessages = await storage.getMessages('conv-123');
|
|
407
|
+
*
|
|
408
|
+
* // Get last 50 messages (newest first)
|
|
409
|
+
* const recent = await storage.getMessages('conv-123', {
|
|
410
|
+
* limit: 50,
|
|
411
|
+
* order: 'desc'
|
|
412
|
+
* });
|
|
413
|
+
*
|
|
414
|
+
* // Get only assistant responses from last hour
|
|
415
|
+
* const assistantRecent = await storage.getMessages('conv-123', {
|
|
416
|
+
* roles: ['assistant'],
|
|
417
|
+
* since: Date.now() - 3600000
|
|
418
|
+
* });
|
|
419
|
+
* ```
|
|
420
|
+
*/
|
|
421
|
+
getMessages(conversationId: string, options?: IMessageQueryOptions): Promise<IConversationMessage[]>;
|
|
422
|
+
/**
|
|
423
|
+
* Deletes a specific message.
|
|
424
|
+
*
|
|
425
|
+
* **Note:** This does NOT update the conversation's lastActivity timestamp.
|
|
426
|
+
*
|
|
427
|
+
* @param {string} messageId - The message to delete
|
|
428
|
+
* @returns {Promise<boolean>} True if deleted, false if not found
|
|
429
|
+
*
|
|
430
|
+
* @example
|
|
431
|
+
* ```typescript
|
|
432
|
+
* const deleted = await storage.deleteMessage('msg-456');
|
|
433
|
+
* ```
|
|
434
|
+
*/
|
|
435
|
+
deleteMessage(messageId: string): Promise<boolean>;
|
|
436
|
+
/**
|
|
437
|
+
* Deletes all messages in a conversation.
|
|
438
|
+
*
|
|
439
|
+
* **Warning:** Destructive operation. Consider soft deletes in production.
|
|
440
|
+
*
|
|
441
|
+
* @param {string} conversationId - The conversation whose messages to delete
|
|
442
|
+
* @returns {Promise<number>} Number of messages deleted
|
|
443
|
+
*
|
|
444
|
+
* @example
|
|
445
|
+
* ```typescript
|
|
446
|
+
* const deletedCount = await storage.deleteMessagesForConversation('conv-123');
|
|
447
|
+
* console.log(`Deleted ${deletedCount} messages`);
|
|
448
|
+
* ```
|
|
449
|
+
*/
|
|
450
|
+
deleteMessagesForConversation(conversationId: string): Promise<number>;
|
|
451
|
+
/**
|
|
452
|
+
* Counts total messages in a conversation.
|
|
453
|
+
*
|
|
454
|
+
* Useful for pagination and UI indicators.
|
|
455
|
+
*
|
|
456
|
+
* @param {string} conversationId - The conversation to count
|
|
457
|
+
* @returns {Promise<number>} Total message count
|
|
458
|
+
*
|
|
459
|
+
* @example
|
|
460
|
+
* ```typescript
|
|
461
|
+
* const count = await storage.getMessageCount('conv-123');
|
|
462
|
+
* console.log(`This conversation has ${count} messages`);
|
|
463
|
+
* ```
|
|
464
|
+
*/
|
|
465
|
+
getMessageCount(conversationId: string): Promise<number>;
|
|
466
|
+
/**
|
|
467
|
+
* Calculates total token usage for a conversation.
|
|
468
|
+
*
|
|
469
|
+
* Sums up all message usage statistics.
|
|
470
|
+
*
|
|
471
|
+
* @param {string} conversationId - The conversation to analyze
|
|
472
|
+
* @returns {Promise<ITokenUsage>} Aggregated token usage
|
|
473
|
+
*
|
|
474
|
+
* @example
|
|
475
|
+
* ```typescript
|
|
476
|
+
* const usage = await storage.getConversationTokenUsage('conv-123');
|
|
477
|
+
* console.log(`Total tokens: ${usage.totalTokens}`);
|
|
478
|
+
* console.log(`Cost estimate: $${usage.totalTokens * 0.00001}`);
|
|
479
|
+
* ```
|
|
480
|
+
*/
|
|
481
|
+
getConversationTokenUsage(conversationId: string): Promise<ITokenUsage>;
|
|
482
|
+
}
|
|
483
|
+
//# sourceMappingURL=IStorageAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IStorageAdapter.d.ts","sourceRoot":"","sources":["../../../src/core/storage/IStorageAdapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,CAAC,MAAM,GAAG,WAAW,GAAG,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC;IACrD,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;CACxB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;;;;;;;;;;;;;;;;OAmBG;IACH,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5B;;;;;;;;;;;;;;;;;;;OAmBG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAIvB;;;;;;;;;;;;;;;;;;OAkBG;IACH,kBAAkB,CAAC,YAAY,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAExE;;;;;;;;;;;;;OAaG;IACH,eAAe,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;IAEvE;;;;;;;;;;;;;;;;;;OAkBG;IACH,kBAAkB,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAEpG;;;;;;;;;;;;;;;;OAgBG;IACH,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE7D;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,iBAAiB,CACf,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAC9D,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IAI5B;;;;;;;;;;;;;;;;;;;OAmBG;IACH,YAAY,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAE3E;;;;;;;;;;;;;OAaG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAAC;IAEpE;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,WAAW,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAAC;IAErG;;;;;;;;;;;;OAYG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEnD;;;;;;;;;;;;;OAaG;IACH,6BAA6B,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAIvE;;;;;;;;;;;;;OAaG;IACH,eAAe,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAEzD;;;;;;;;;;;;;;OAcG;IACH,yBAAyB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;CACzE"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file IStorageAdapter.ts
|
|
3
|
+
* @description Core storage abstraction interface for AgentOS persistence layer.
|
|
4
|
+
*
|
|
5
|
+
* This module defines the contract that storage implementations must fulfill to provide
|
|
6
|
+
* persistence capabilities for conversations, messages, user data, and agent state.
|
|
7
|
+
*
|
|
8
|
+
* The storage layer is designed to be:
|
|
9
|
+
* - **Platform-agnostic**: Works in Node.js, browsers, Electron, mobile (Capacitor)
|
|
10
|
+
* - **Swappable**: Can switch between SQLite, PostgreSQL, in-memory, etc.
|
|
11
|
+
* - **Type-safe**: Full TypeScript support with strict typing
|
|
12
|
+
* - **Async-first**: All operations return Promises for non-blocking I/O
|
|
13
|
+
*
|
|
14
|
+
* @version 1.0.0
|
|
15
|
+
* @author AgentOS Team
|
|
16
|
+
* @license MIT
|
|
17
|
+
*/
|
|
18
|
+
export {};
|
|
19
|
+
//# sourceMappingURL=IStorageAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IStorageAdapter.js","sourceRoot":"","sources":["../../../src/core/storage/IStorageAdapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG"}
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file InMemoryStorageAdapter.ts
|
|
3
|
+
* @description In-memory storage adapter for AgentOS (testing and non-persistent scenarios).
|
|
4
|
+
*
|
|
5
|
+
* This implementation stores all data in memory using JavaScript Maps and Arrays.
|
|
6
|
+
* Perfect for:
|
|
7
|
+
* - Unit testing without database setup
|
|
8
|
+
* - Ephemeral sessions that don't need persistence
|
|
9
|
+
* - Development and prototyping
|
|
10
|
+
* - CI/CD pipelines
|
|
11
|
+
*
|
|
12
|
+
* **Warning:** All data is lost when the process terminates or adapter is closed.
|
|
13
|
+
*
|
|
14
|
+
* @version 1.0.0
|
|
15
|
+
* @author AgentOS Team
|
|
16
|
+
* @license MIT
|
|
17
|
+
*/
|
|
18
|
+
import type { IStorageAdapter, IConversation, IConversationMessage, IMessageQueryOptions, ITokenUsage } from './IStorageAdapter.js';
|
|
19
|
+
/**
|
|
20
|
+
* In-memory storage adapter for AgentOS.
|
|
21
|
+
*
|
|
22
|
+
* Provides a complete implementation of IStorageAdapter without any persistence.
|
|
23
|
+
* All data is stored in JavaScript Map and Array structures.
|
|
24
|
+
*
|
|
25
|
+
* **Use Cases:**
|
|
26
|
+
* - Unit and integration testing
|
|
27
|
+
* - Development environments
|
|
28
|
+
* - Stateless sessions
|
|
29
|
+
* - CI/CD pipelines
|
|
30
|
+
* - Prototyping and demos
|
|
31
|
+
*
|
|
32
|
+
* **Characteristics:**
|
|
33
|
+
* - Zero setup (no database required)
|
|
34
|
+
* - Extremely fast (no I/O)
|
|
35
|
+
* - Non-persistent (data lost on process exit)
|
|
36
|
+
* - Thread-safe in single-threaded environments
|
|
37
|
+
*
|
|
38
|
+
* @class InMemoryStorageAdapter
|
|
39
|
+
* @implements {IStorageAdapter}
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* ```typescript
|
|
43
|
+
* // Perfect for testing
|
|
44
|
+
* const storage = new InMemoryStorageAdapter();
|
|
45
|
+
* await storage.initialize();
|
|
46
|
+
*
|
|
47
|
+
* const conversation = await storage.createConversation({
|
|
48
|
+
* id: 'test-conv',
|
|
49
|
+
* userId: 'test-user',
|
|
50
|
+
* createdAt: Date.now(),
|
|
51
|
+
* lastActivity: Date.now()
|
|
52
|
+
* });
|
|
53
|
+
*
|
|
54
|
+
* // No cleanup needed for tests
|
|
55
|
+
* await storage.close();
|
|
56
|
+
* ```
|
|
57
|
+
*/
|
|
58
|
+
export declare class InMemoryStorageAdapter implements IStorageAdapter {
|
|
59
|
+
private conversations;
|
|
60
|
+
private messages;
|
|
61
|
+
private messagesByConversation;
|
|
62
|
+
private initialized;
|
|
63
|
+
/**
|
|
64
|
+
* Creates a new in-memory storage adapter.
|
|
65
|
+
*
|
|
66
|
+
* No configuration needed since everything is in memory.
|
|
67
|
+
*
|
|
68
|
+
* @example
|
|
69
|
+
* ```typescript
|
|
70
|
+
* const storage = new InMemoryStorageAdapter();
|
|
71
|
+
* ```
|
|
72
|
+
*/
|
|
73
|
+
constructor();
|
|
74
|
+
/**
|
|
75
|
+
* Initializes the storage adapter.
|
|
76
|
+
*
|
|
77
|
+
* For in-memory adapter, this just sets the initialized flag.
|
|
78
|
+
*
|
|
79
|
+
* @returns {Promise<void>}
|
|
80
|
+
*/
|
|
81
|
+
initialize(): Promise<void>;
|
|
82
|
+
/**
|
|
83
|
+
* Closes the storage adapter and clears all data.
|
|
84
|
+
*
|
|
85
|
+
* **Warning:** This deletes all conversations and messages from memory.
|
|
86
|
+
*
|
|
87
|
+
* @returns {Promise<void>}
|
|
88
|
+
*/
|
|
89
|
+
close(): Promise<void>;
|
|
90
|
+
/**
|
|
91
|
+
* Creates a new conversation.
|
|
92
|
+
*
|
|
93
|
+
* @param {IConversation} conversation - Conversation to create
|
|
94
|
+
* @returns {Promise<IConversation>} The created conversation
|
|
95
|
+
* @throws {Error} If conversation with same ID already exists
|
|
96
|
+
*/
|
|
97
|
+
createConversation(conversation: IConversation): Promise<IConversation>;
|
|
98
|
+
/**
|
|
99
|
+
* Retrieves a conversation by ID.
|
|
100
|
+
*
|
|
101
|
+
* @param {string} conversationId - Conversation ID
|
|
102
|
+
* @returns {Promise<IConversation | null>} The conversation or null
|
|
103
|
+
*/
|
|
104
|
+
getConversation(conversationId: string): Promise<IConversation | null>;
|
|
105
|
+
/**
|
|
106
|
+
* Updates a conversation.
|
|
107
|
+
*
|
|
108
|
+
* @param {string} conversationId - Conversation to update
|
|
109
|
+
* @param {Partial<IConversation>} updates - Fields to update
|
|
110
|
+
* @returns {Promise<IConversation>} Updated conversation
|
|
111
|
+
* @throws {Error} If conversation doesn't exist
|
|
112
|
+
*/
|
|
113
|
+
updateConversation(conversationId: string, updates: Partial<IConversation>): Promise<IConversation>;
|
|
114
|
+
/**
|
|
115
|
+
* Deletes a conversation and all its messages.
|
|
116
|
+
*
|
|
117
|
+
* @param {string} conversationId - Conversation to delete
|
|
118
|
+
* @returns {Promise<boolean>} True if deleted, false if not found
|
|
119
|
+
*/
|
|
120
|
+
deleteConversation(conversationId: string): Promise<boolean>;
|
|
121
|
+
/**
|
|
122
|
+
* Lists conversations for a user.
|
|
123
|
+
*
|
|
124
|
+
* @param {string} userId - User whose conversations to list
|
|
125
|
+
* @param {Object} [options] - Query options
|
|
126
|
+
* @returns {Promise<IConversation[]>} Array of conversations
|
|
127
|
+
*/
|
|
128
|
+
listConversations(userId: string, options?: {
|
|
129
|
+
limit?: number;
|
|
130
|
+
offset?: number;
|
|
131
|
+
agentId?: string;
|
|
132
|
+
}): Promise<IConversation[]>;
|
|
133
|
+
/**
|
|
134
|
+
* Stores a message.
|
|
135
|
+
*
|
|
136
|
+
* @param {IConversationMessage} message - Message to store
|
|
137
|
+
* @returns {Promise<IConversationMessage>} The stored message
|
|
138
|
+
* @throws {Error} If conversation doesn't exist
|
|
139
|
+
*/
|
|
140
|
+
storeMessage(message: IConversationMessage): Promise<IConversationMessage>;
|
|
141
|
+
/**
|
|
142
|
+
* Retrieves a message by ID.
|
|
143
|
+
*
|
|
144
|
+
* @param {string} messageId - Message ID
|
|
145
|
+
* @returns {Promise<IConversationMessage | null>} The message or null
|
|
146
|
+
*/
|
|
147
|
+
getMessage(messageId: string): Promise<IConversationMessage | null>;
|
|
148
|
+
/**
|
|
149
|
+
* Retrieves messages for a conversation with filtering.
|
|
150
|
+
*
|
|
151
|
+
* @param {string} conversationId - Conversation ID
|
|
152
|
+
* @param {IMessageQueryOptions} [options] - Query options
|
|
153
|
+
* @returns {Promise<IConversationMessage[]>} Array of messages
|
|
154
|
+
*/
|
|
155
|
+
getMessages(conversationId: string, options?: IMessageQueryOptions): Promise<IConversationMessage[]>;
|
|
156
|
+
/**
|
|
157
|
+
* Deletes a message.
|
|
158
|
+
*
|
|
159
|
+
* @param {string} messageId - Message to delete
|
|
160
|
+
* @returns {Promise<boolean>} True if deleted
|
|
161
|
+
*/
|
|
162
|
+
deleteMessage(messageId: string): Promise<boolean>;
|
|
163
|
+
/**
|
|
164
|
+
* Deletes all messages in a conversation.
|
|
165
|
+
*
|
|
166
|
+
* @param {string} conversationId - Conversation whose messages to delete
|
|
167
|
+
* @returns {Promise<number>} Number of messages deleted
|
|
168
|
+
*/
|
|
169
|
+
deleteMessagesForConversation(conversationId: string): Promise<number>;
|
|
170
|
+
/**
|
|
171
|
+
* Counts messages in a conversation.
|
|
172
|
+
*
|
|
173
|
+
* @param {string} conversationId - Conversation to count
|
|
174
|
+
* @returns {Promise<number>} Message count
|
|
175
|
+
*/
|
|
176
|
+
getMessageCount(conversationId: string): Promise<number>;
|
|
177
|
+
/**
|
|
178
|
+
* Calculates total token usage for a conversation.
|
|
179
|
+
*
|
|
180
|
+
* @param {string} conversationId - Conversation to analyze
|
|
181
|
+
* @returns {Promise<ITokenUsage>} Aggregated token usage
|
|
182
|
+
*/
|
|
183
|
+
getConversationTokenUsage(conversationId: string): Promise<ITokenUsage>;
|
|
184
|
+
/**
|
|
185
|
+
* Ensures the adapter has been initialized.
|
|
186
|
+
*
|
|
187
|
+
* @private
|
|
188
|
+
* @throws {Error} If not initialized
|
|
189
|
+
*/
|
|
190
|
+
private ensureInitialized;
|
|
191
|
+
}
|
|
192
|
+
//# sourceMappingURL=InMemoryStorageAdapter.d.ts.map
|