@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.
Files changed (601) hide show
  1. package/LICENSE +98 -0
  2. package/README.md +576 -0
  3. package/dist/api/AgentOS.d.ts +451 -0
  4. package/dist/api/AgentOS.d.ts.map +1 -0
  5. package/dist/api/AgentOS.js +1157 -0
  6. package/dist/api/AgentOS.js.map +1 -0
  7. package/dist/api/AgentOSOrchestrator.d.ts +157 -0
  8. package/dist/api/AgentOSOrchestrator.d.ts.map +1 -0
  9. package/dist/api/AgentOSOrchestrator.js +679 -0
  10. package/dist/api/AgentOSOrchestrator.js.map +1 -0
  11. package/dist/api/interfaces/IAgentOS.d.ts +138 -0
  12. package/dist/api/interfaces/IAgentOS.d.ts.map +1 -0
  13. package/dist/api/interfaces/IAgentOS.js +11 -0
  14. package/dist/api/interfaces/IAgentOS.js.map +1 -0
  15. package/dist/api/interfaces/IUnifiedAgent.d.ts +126 -0
  16. package/dist/api/interfaces/IUnifiedAgent.d.ts.map +1 -0
  17. package/dist/api/interfaces/IUnifiedAgent.js +3 -0
  18. package/dist/api/interfaces/IUnifiedAgent.js.map +1 -0
  19. package/dist/api/types/AgentOSInput.d.ts +114 -0
  20. package/dist/api/types/AgentOSInput.d.ts.map +1 -0
  21. package/dist/api/types/AgentOSInput.js +13 -0
  22. package/dist/api/types/AgentOSInput.js.map +1 -0
  23. package/dist/api/types/AgentOSResponse.d.ts +170 -0
  24. package/dist/api/types/AgentOSResponse.d.ts.map +1 -0
  25. package/dist/api/types/AgentOSResponse.js +25 -0
  26. package/dist/api/types/AgentOSResponse.js.map +1 -0
  27. package/dist/cognitive_substrate/GMI.d.ts +148 -0
  28. package/dist/cognitive_substrate/GMI.d.ts.map +1 -0
  29. package/dist/cognitive_substrate/GMI.js +1003 -0
  30. package/dist/cognitive_substrate/GMI.js.map +1 -0
  31. package/dist/cognitive_substrate/GMIManager.d.ts +98 -0
  32. package/dist/cognitive_substrate/GMIManager.d.ts.map +1 -0
  33. package/dist/cognitive_substrate/GMIManager.js +517 -0
  34. package/dist/cognitive_substrate/GMIManager.js.map +1 -0
  35. package/dist/cognitive_substrate/IGMI.d.ts +469 -0
  36. package/dist/cognitive_substrate/IGMI.d.ts.map +1 -0
  37. package/dist/cognitive_substrate/IGMI.js +111 -0
  38. package/dist/cognitive_substrate/IGMI.js.map +1 -0
  39. package/dist/cognitive_substrate/memory/IWorkingMemory.d.ts +139 -0
  40. package/dist/cognitive_substrate/memory/IWorkingMemory.d.ts.map +1 -0
  41. package/dist/cognitive_substrate/memory/IWorkingMemory.js +14 -0
  42. package/dist/cognitive_substrate/memory/IWorkingMemory.js.map +1 -0
  43. package/dist/cognitive_substrate/memory/InMemoryWorkingMemory.d.ts +143 -0
  44. package/dist/cognitive_substrate/memory/InMemoryWorkingMemory.d.ts.map +1 -0
  45. package/dist/cognitive_substrate/memory/InMemoryWorkingMemory.js +186 -0
  46. package/dist/cognitive_substrate/memory/InMemoryWorkingMemory.js.map +1 -0
  47. package/dist/cognitive_substrate/persona_overlays/PersonaOverlayManager.d.ts +33 -0
  48. package/dist/cognitive_substrate/persona_overlays/PersonaOverlayManager.d.ts.map +1 -0
  49. package/dist/cognitive_substrate/persona_overlays/PersonaOverlayManager.js +138 -0
  50. package/dist/cognitive_substrate/persona_overlays/PersonaOverlayManager.js.map +1 -0
  51. package/dist/cognitive_substrate/persona_overlays/PersonaOverlayTypes.d.ts +32 -0
  52. package/dist/cognitive_substrate/persona_overlays/PersonaOverlayTypes.d.ts.map +1 -0
  53. package/dist/cognitive_substrate/persona_overlays/PersonaOverlayTypes.js +2 -0
  54. package/dist/cognitive_substrate/persona_overlays/PersonaOverlayTypes.js.map +1 -0
  55. package/dist/cognitive_substrate/personas/IPersonaDefinition.d.ts +336 -0
  56. package/dist/cognitive_substrate/personas/IPersonaDefinition.d.ts.map +1 -0
  57. package/dist/cognitive_substrate/personas/IPersonaDefinition.js +8 -0
  58. package/dist/cognitive_substrate/personas/IPersonaDefinition.js.map +1 -0
  59. package/dist/cognitive_substrate/personas/IPersonaLoader.d.ts +78 -0
  60. package/dist/cognitive_substrate/personas/IPersonaLoader.d.ts.map +1 -0
  61. package/dist/cognitive_substrate/personas/IPersonaLoader.js +9 -0
  62. package/dist/cognitive_substrate/personas/IPersonaLoader.js.map +1 -0
  63. package/dist/cognitive_substrate/personas/PersonaLoader.d.ts +60 -0
  64. package/dist/cognitive_substrate/personas/PersonaLoader.d.ts.map +1 -0
  65. package/dist/cognitive_substrate/personas/PersonaLoader.js +138 -0
  66. package/dist/cognitive_substrate/personas/PersonaLoader.js.map +1 -0
  67. package/dist/cognitive_substrate/personas/PersonaValidation.d.ts +139 -0
  68. package/dist/cognitive_substrate/personas/PersonaValidation.d.ts.map +1 -0
  69. package/dist/cognitive_substrate/personas/PersonaValidation.js +277 -0
  70. package/dist/cognitive_substrate/personas/PersonaValidation.js.map +1 -0
  71. package/dist/cognitive_substrate/personas/definitions/atlas_systems_architect.json +29 -0
  72. package/dist/cognitive_substrate/personas/definitions/default_assistant_persona.json +346 -0
  73. package/dist/cognitive_substrate/personas/definitions/default_free_assistant.json +13 -0
  74. package/dist/cognitive_substrate/personas/definitions/index.d.ts +14 -0
  75. package/dist/cognitive_substrate/personas/definitions/index.d.ts.map +1 -0
  76. package/dist/cognitive_substrate/personas/definitions/index.js +35 -0
  77. package/dist/cognitive_substrate/personas/definitions/index.js.map +1 -0
  78. package/dist/cognitive_substrate/personas/definitions/nerf_generalist.json +11 -0
  79. package/dist/cognitive_substrate/personas/definitions/v_researcher.json +11 -0
  80. package/dist/config/AgentOSConfig.d.ts +74 -0
  81. package/dist/config/AgentOSConfig.d.ts.map +1 -0
  82. package/dist/config/AgentOSConfig.js +399 -0
  83. package/dist/config/AgentOSConfig.js.map +1 -0
  84. package/dist/config/EmbeddingManagerConfiguration.d.ts +190 -0
  85. package/dist/config/EmbeddingManagerConfiguration.d.ts.map +1 -0
  86. package/dist/config/EmbeddingManagerConfiguration.js +16 -0
  87. package/dist/config/EmbeddingManagerConfiguration.js.map +1 -0
  88. package/dist/config/MemoryLifecycleManagerConfiguration.d.ts +165 -0
  89. package/dist/config/MemoryLifecycleManagerConfiguration.d.ts.map +1 -0
  90. package/dist/config/MemoryLifecycleManagerConfiguration.js +69 -0
  91. package/dist/config/MemoryLifecycleManagerConfiguration.js.map +1 -0
  92. package/dist/config/RetrievalAugmentorConfiguration.d.ts +98 -0
  93. package/dist/config/RetrievalAugmentorConfiguration.d.ts.map +1 -0
  94. package/dist/config/RetrievalAugmentorConfiguration.js +47 -0
  95. package/dist/config/RetrievalAugmentorConfiguration.js.map +1 -0
  96. package/dist/config/ToolOrchestratorConfig.d.ts +69 -0
  97. package/dist/config/ToolOrchestratorConfig.d.ts.map +1 -0
  98. package/dist/config/ToolOrchestratorConfig.js +11 -0
  99. package/dist/config/ToolOrchestratorConfig.js.map +1 -0
  100. package/dist/config/VectorStoreConfiguration.d.ts +223 -0
  101. package/dist/config/VectorStoreConfiguration.d.ts.map +1 -0
  102. package/dist/config/VectorStoreConfiguration.js +59 -0
  103. package/dist/config/VectorStoreConfiguration.js.map +1 -0
  104. package/dist/config/extension-secrets.json +38 -0
  105. package/dist/config/extensionSecrets.d.ts +13 -0
  106. package/dist/config/extensionSecrets.d.ts.map +1 -0
  107. package/dist/config/extensionSecrets.js +24 -0
  108. package/dist/config/extensionSecrets.js.map +1 -0
  109. package/dist/core/agency/AgencyMemoryManager.d.ts +300 -0
  110. package/dist/core/agency/AgencyMemoryManager.d.ts.map +1 -0
  111. package/dist/core/agency/AgencyMemoryManager.js +657 -0
  112. package/dist/core/agency/AgencyMemoryManager.js.map +1 -0
  113. package/dist/core/agency/AgencyRegistry.d.ts +100 -0
  114. package/dist/core/agency/AgencyRegistry.d.ts.map +1 -0
  115. package/dist/core/agency/AgencyRegistry.js +209 -0
  116. package/dist/core/agency/AgencyRegistry.js.map +1 -0
  117. package/dist/core/agency/AgencyTypes.d.ts +200 -0
  118. package/dist/core/agency/AgencyTypes.d.ts.map +1 -0
  119. package/dist/core/agency/AgencyTypes.js +7 -0
  120. package/dist/core/agency/AgencyTypes.js.map +1 -0
  121. package/dist/core/agency/AgentCommunicationBus.d.ts +150 -0
  122. package/dist/core/agency/AgentCommunicationBus.d.ts.map +1 -0
  123. package/dist/core/agency/AgentCommunicationBus.js +568 -0
  124. package/dist/core/agency/AgentCommunicationBus.js.map +1 -0
  125. package/dist/core/agency/IAgentCommunicationBus.d.ts +469 -0
  126. package/dist/core/agency/IAgentCommunicationBus.d.ts.map +1 -0
  127. package/dist/core/agency/IAgentCommunicationBus.js +40 -0
  128. package/dist/core/agency/IAgentCommunicationBus.js.map +1 -0
  129. package/dist/core/agency/index.d.ts +18 -0
  130. package/dist/core/agency/index.d.ts.map +1 -0
  131. package/dist/core/agency/index.js +18 -0
  132. package/dist/core/agency/index.js.map +1 -0
  133. package/dist/core/agents/AgentCore.d.ts +385 -0
  134. package/dist/core/agents/AgentCore.d.ts.map +1 -0
  135. package/dist/core/agents/AgentCore.js +527 -0
  136. package/dist/core/agents/AgentCore.js.map +1 -0
  137. package/dist/core/agents/AgentFactory.d.ts +123 -0
  138. package/dist/core/agents/AgentFactory.d.ts.map +1 -0
  139. package/dist/core/agents/AgentFactory.js +232 -0
  140. package/dist/core/agents/AgentFactory.js.map +1 -0
  141. package/dist/core/agents/AgentPoolAgent.d.ts +244 -0
  142. package/dist/core/agents/AgentPoolAgent.d.ts.map +1 -0
  143. package/dist/core/agents/AgentPoolAgent.js +697 -0
  144. package/dist/core/agents/AgentPoolAgent.js.map +1 -0
  145. package/dist/core/agents/AgentPoolConfig.d.ts +191 -0
  146. package/dist/core/agents/AgentPoolConfig.d.ts.map +1 -0
  147. package/dist/core/agents/AgentPoolConfig.js +58 -0
  148. package/dist/core/agents/AgentPoolConfig.js.map +1 -0
  149. package/dist/core/agents/IAgent.d.ts +226 -0
  150. package/dist/core/agents/IAgent.d.ts.map +1 -0
  151. package/dist/core/agents/IAgent.js +14 -0
  152. package/dist/core/agents/IAgent.js.map +1 -0
  153. package/dist/core/agents/IAgentFactory.d.ts +137 -0
  154. package/dist/core/agents/IAgentFactory.d.ts.map +1 -0
  155. package/dist/core/agents/IAgentFactory.js +13 -0
  156. package/dist/core/agents/IAgentFactory.js.map +1 -0
  157. package/dist/core/agents/tools/Tool.d.ts +17 -0
  158. package/dist/core/agents/tools/Tool.d.ts.map +1 -0
  159. package/dist/core/agents/tools/Tool.js +8 -0
  160. package/dist/core/agents/tools/Tool.js.map +1 -0
  161. package/dist/core/ai_utilities/HybridUtilityAI.d.ts +1 -0
  162. package/dist/core/ai_utilities/HybridUtilityAI.d.ts.map +1 -0
  163. package/dist/core/ai_utilities/HybridUtilityAI.js +2 -0
  164. package/dist/core/ai_utilities/HybridUtilityAI.js.map +1 -0
  165. package/dist/core/ai_utilities/IUtilityAI.d.ts +212 -0
  166. package/dist/core/ai_utilities/IUtilityAI.d.ts.map +1 -0
  167. package/dist/core/ai_utilities/IUtilityAI.js +11 -0
  168. package/dist/core/ai_utilities/IUtilityAI.js.map +1 -0
  169. package/dist/core/ai_utilities/LLMUtilityAI.d.ts +94 -0
  170. package/dist/core/ai_utilities/LLMUtilityAI.d.ts.map +1 -0
  171. package/dist/core/ai_utilities/LLMUtilityAI.js +434 -0
  172. package/dist/core/ai_utilities/LLMUtilityAI.js.map +1 -0
  173. package/dist/core/ai_utilities/StatisticalUtilityAI.d.ts +102 -0
  174. package/dist/core/ai_utilities/StatisticalUtilityAI.d.ts.map +1 -0
  175. package/dist/core/ai_utilities/StatisticalUtilityAI.js +617 -0
  176. package/dist/core/ai_utilities/StatisticalUtilityAI.js.map +1 -0
  177. package/dist/core/conversation/ConversationContext.d.ts +259 -0
  178. package/dist/core/conversation/ConversationContext.d.ts.map +1 -0
  179. package/dist/core/conversation/ConversationContext.js +450 -0
  180. package/dist/core/conversation/ConversationContext.js.map +1 -0
  181. package/dist/core/conversation/ConversationManager.d.ts +223 -0
  182. package/dist/core/conversation/ConversationManager.d.ts.map +1 -0
  183. package/dist/core/conversation/ConversationManager.js +558 -0
  184. package/dist/core/conversation/ConversationManager.js.map +1 -0
  185. package/dist/core/conversation/ConversationMessage.d.ts +184 -0
  186. package/dist/core/conversation/ConversationMessage.d.ts.map +1 -0
  187. package/dist/core/conversation/ConversationMessage.js +66 -0
  188. package/dist/core/conversation/ConversationMessage.js.map +1 -0
  189. package/dist/core/evaluation/Evaluator.d.ts +28 -0
  190. package/dist/core/evaluation/Evaluator.d.ts.map +1 -0
  191. package/dist/core/evaluation/Evaluator.js +490 -0
  192. package/dist/core/evaluation/Evaluator.js.map +1 -0
  193. package/dist/core/evaluation/IEvaluator.d.ts +309 -0
  194. package/dist/core/evaluation/IEvaluator.d.ts.map +1 -0
  195. package/dist/core/evaluation/IEvaluator.js +12 -0
  196. package/dist/core/evaluation/IEvaluator.js.map +1 -0
  197. package/dist/core/evaluation/LLMJudge.d.ts +105 -0
  198. package/dist/core/evaluation/LLMJudge.d.ts.map +1 -0
  199. package/dist/core/evaluation/LLMJudge.js +229 -0
  200. package/dist/core/evaluation/LLMJudge.js.map +1 -0
  201. package/dist/core/evaluation/index.d.ts +9 -0
  202. package/dist/core/evaluation/index.d.ts.map +1 -0
  203. package/dist/core/evaluation/index.js +9 -0
  204. package/dist/core/evaluation/index.js.map +1 -0
  205. package/dist/core/guardrails/IGuardrailService.d.ts +142 -0
  206. package/dist/core/guardrails/IGuardrailService.d.ts.map +1 -0
  207. package/dist/core/guardrails/IGuardrailService.js +24 -0
  208. package/dist/core/guardrails/IGuardrailService.js.map +1 -0
  209. package/dist/core/guardrails/guardrailDispatcher.d.ts +36 -0
  210. package/dist/core/guardrails/guardrailDispatcher.d.ts.map +1 -0
  211. package/dist/core/guardrails/guardrailDispatcher.js +240 -0
  212. package/dist/core/guardrails/guardrailDispatcher.js.map +1 -0
  213. package/dist/core/hitl/HumanInteractionManager.d.ts +146 -0
  214. package/dist/core/hitl/HumanInteractionManager.d.ts.map +1 -0
  215. package/dist/core/hitl/HumanInteractionManager.js +491 -0
  216. package/dist/core/hitl/HumanInteractionManager.js.map +1 -0
  217. package/dist/core/hitl/IHumanInteractionManager.d.ts +521 -0
  218. package/dist/core/hitl/IHumanInteractionManager.d.ts.map +1 -0
  219. package/dist/core/hitl/IHumanInteractionManager.js +33 -0
  220. package/dist/core/hitl/IHumanInteractionManager.js.map +1 -0
  221. package/dist/core/hitl/index.d.ts +17 -0
  222. package/dist/core/hitl/index.d.ts.map +1 -0
  223. package/dist/core/hitl/index.js +17 -0
  224. package/dist/core/hitl/index.js.map +1 -0
  225. package/dist/core/knowledge/IKnowledgeGraph.d.ts +351 -0
  226. package/dist/core/knowledge/IKnowledgeGraph.d.ts.map +1 -0
  227. package/dist/core/knowledge/IKnowledgeGraph.js +10 -0
  228. package/dist/core/knowledge/IKnowledgeGraph.js.map +1 -0
  229. package/dist/core/knowledge/KnowledgeGraph.d.ts +93 -0
  230. package/dist/core/knowledge/KnowledgeGraph.d.ts.map +1 -0
  231. package/dist/core/knowledge/KnowledgeGraph.js +601 -0
  232. package/dist/core/knowledge/KnowledgeGraph.js.map +1 -0
  233. package/dist/core/knowledge/index.d.ts +8 -0
  234. package/dist/core/knowledge/index.d.ts.map +1 -0
  235. package/dist/core/knowledge/index.js +8 -0
  236. package/dist/core/knowledge/index.js.map +1 -0
  237. package/dist/core/language/LanguageService.d.ts +77 -0
  238. package/dist/core/language/LanguageService.d.ts.map +1 -0
  239. package/dist/core/language/LanguageService.js +305 -0
  240. package/dist/core/language/LanguageService.js.map +1 -0
  241. package/dist/core/language/index.d.ts +6 -0
  242. package/dist/core/language/index.d.ts.map +1 -0
  243. package/dist/core/language/index.js +6 -0
  244. package/dist/core/language/index.js.map +1 -0
  245. package/dist/core/language/interfaces.d.ts +168 -0
  246. package/dist/core/language/interfaces.d.ts.map +1 -0
  247. package/dist/core/language/interfaces.js +37 -0
  248. package/dist/core/language/interfaces.js.map +1 -0
  249. package/dist/core/language/providers/DeepLTranslationProvider.d.ts +16 -0
  250. package/dist/core/language/providers/DeepLTranslationProvider.d.ts.map +1 -0
  251. package/dist/core/language/providers/DeepLTranslationProvider.js +28 -0
  252. package/dist/core/language/providers/DeepLTranslationProvider.js.map +1 -0
  253. package/dist/core/language/providers/OpenAITranslationProvider.d.ts +17 -0
  254. package/dist/core/language/providers/OpenAITranslationProvider.d.ts.map +1 -0
  255. package/dist/core/language/providers/OpenAITranslationProvider.js +34 -0
  256. package/dist/core/language/providers/OpenAITranslationProvider.js.map +1 -0
  257. package/dist/core/language/providers/WhisperDetectionProvider.d.ts +16 -0
  258. package/dist/core/language/providers/WhisperDetectionProvider.d.ts.map +1 -0
  259. package/dist/core/language/providers/WhisperDetectionProvider.js +15 -0
  260. package/dist/core/language/providers/WhisperDetectionProvider.js.map +1 -0
  261. package/dist/core/llm/IPromptEngine.d.ts +627 -0
  262. package/dist/core/llm/IPromptEngine.d.ts.map +1 -0
  263. package/dist/core/llm/IPromptEngine.js +81 -0
  264. package/dist/core/llm/IPromptEngine.js.map +1 -0
  265. package/dist/core/llm/PromptEngine.d.ts +108 -0
  266. package/dist/core/llm/PromptEngine.d.ts.map +1 -0
  267. package/dist/core/llm/PromptEngine.js +872 -0
  268. package/dist/core/llm/PromptEngine.js.map +1 -0
  269. package/dist/core/llm/providers/AIModelProviderManager.d.ts +74 -0
  270. package/dist/core/llm/providers/AIModelProviderManager.d.ts.map +1 -0
  271. package/dist/core/llm/providers/AIModelProviderManager.js +263 -0
  272. package/dist/core/llm/providers/AIModelProviderManager.js.map +1 -0
  273. package/dist/core/llm/providers/IProvider.d.ts +327 -0
  274. package/dist/core/llm/providers/IProvider.d.ts.map +1 -0
  275. package/dist/core/llm/providers/IProvider.js +39 -0
  276. package/dist/core/llm/providers/IProvider.js.map +1 -0
  277. package/dist/core/llm/providers/errors/OllamaProviderError.d.ts +36 -0
  278. package/dist/core/llm/providers/errors/OllamaProviderError.d.ts.map +1 -0
  279. package/dist/core/llm/providers/errors/OllamaProviderError.js +40 -0
  280. package/dist/core/llm/providers/errors/OllamaProviderError.js.map +1 -0
  281. package/dist/core/llm/providers/errors/OpenAIProviderError.d.ts +42 -0
  282. package/dist/core/llm/providers/errors/OpenAIProviderError.d.ts.map +1 -0
  283. package/dist/core/llm/providers/errors/OpenAIProviderError.js +44 -0
  284. package/dist/core/llm/providers/errors/OpenAIProviderError.js.map +1 -0
  285. package/dist/core/llm/providers/errors/OpenRouterProviderError.d.ts +39 -0
  286. package/dist/core/llm/providers/errors/OpenRouterProviderError.d.ts.map +1 -0
  287. package/dist/core/llm/providers/errors/OpenRouterProviderError.js +42 -0
  288. package/dist/core/llm/providers/errors/OpenRouterProviderError.js.map +1 -0
  289. package/dist/core/llm/providers/errors/ProviderError.d.ts +37 -0
  290. package/dist/core/llm/providers/errors/ProviderError.d.ts.map +1 -0
  291. package/dist/core/llm/providers/errors/ProviderError.js +36 -0
  292. package/dist/core/llm/providers/errors/ProviderError.js.map +1 -0
  293. package/dist/core/llm/providers/implementations/OllamaProvider.d.ts +80 -0
  294. package/dist/core/llm/providers/implementations/OllamaProvider.d.ts.map +1 -0
  295. package/dist/core/llm/providers/implementations/OllamaProvider.js +473 -0
  296. package/dist/core/llm/providers/implementations/OllamaProvider.js.map +1 -0
  297. package/dist/core/llm/providers/implementations/OpenAIProvider.d.ts +160 -0
  298. package/dist/core/llm/providers/implementations/OpenAIProvider.d.ts.map +1 -0
  299. package/dist/core/llm/providers/implementations/OpenAIProvider.js +672 -0
  300. package/dist/core/llm/providers/implementations/OpenAIProvider.js.map +1 -0
  301. package/dist/core/llm/providers/implementations/OpenRouterProvider.d.ts +51 -0
  302. package/dist/core/llm/providers/implementations/OpenRouterProvider.d.ts.map +1 -0
  303. package/dist/core/llm/providers/implementations/OpenRouterProvider.js +499 -0
  304. package/dist/core/llm/providers/implementations/OpenRouterProvider.js.map +1 -0
  305. package/dist/core/llm/routing/IModelRouter.d.ts +129 -0
  306. package/dist/core/llm/routing/IModelRouter.d.ts.map +1 -0
  307. package/dist/core/llm/routing/IModelRouter.js +14 -0
  308. package/dist/core/llm/routing/IModelRouter.js.map +1 -0
  309. package/dist/core/llm/routing/ModelRouter.d.ts +157 -0
  310. package/dist/core/llm/routing/ModelRouter.d.ts.map +1 -0
  311. package/dist/core/llm/routing/ModelRouter.js +190 -0
  312. package/dist/core/llm/routing/ModelRouter.js.map +1 -0
  313. package/dist/core/llm/streaming/StreamingBatcher.d.ts +54 -0
  314. package/dist/core/llm/streaming/StreamingBatcher.d.ts.map +1 -0
  315. package/dist/core/llm/streaming/StreamingBatcher.js +173 -0
  316. package/dist/core/llm/streaming/StreamingBatcher.js.map +1 -0
  317. package/dist/core/llm/streaming/StreamingReconstructor.d.ts +69 -0
  318. package/dist/core/llm/streaming/StreamingReconstructor.d.ts.map +1 -0
  319. package/dist/core/llm/streaming/StreamingReconstructor.js +102 -0
  320. package/dist/core/llm/streaming/StreamingReconstructor.js.map +1 -0
  321. package/dist/core/marketplace/IMarketplace.d.ts +500 -0
  322. package/dist/core/marketplace/IMarketplace.d.ts.map +1 -0
  323. package/dist/core/marketplace/IMarketplace.js +10 -0
  324. package/dist/core/marketplace/IMarketplace.js.map +1 -0
  325. package/dist/core/marketplace/Marketplace.d.ts +122 -0
  326. package/dist/core/marketplace/Marketplace.d.ts.map +1 -0
  327. package/dist/core/marketplace/Marketplace.js +591 -0
  328. package/dist/core/marketplace/Marketplace.js.map +1 -0
  329. package/dist/core/marketplace/index.d.ts +8 -0
  330. package/dist/core/marketplace/index.d.ts.map +1 -0
  331. package/dist/core/marketplace/index.js +8 -0
  332. package/dist/core/marketplace/index.js.map +1 -0
  333. package/dist/core/observability/ITracer.d.ts +317 -0
  334. package/dist/core/observability/ITracer.d.ts.map +1 -0
  335. package/dist/core/observability/ITracer.js +55 -0
  336. package/dist/core/observability/ITracer.js.map +1 -0
  337. package/dist/core/observability/Tracer.d.ts +76 -0
  338. package/dist/core/observability/Tracer.d.ts.map +1 -0
  339. package/dist/core/observability/Tracer.js +360 -0
  340. package/dist/core/observability/Tracer.js.map +1 -0
  341. package/dist/core/observability/index.d.ts +9 -0
  342. package/dist/core/observability/index.d.ts.map +1 -0
  343. package/dist/core/observability/index.js +8 -0
  344. package/dist/core/observability/index.js.map +1 -0
  345. package/dist/core/orchestration/AgentOrchestrator.d.ts +243 -0
  346. package/dist/core/orchestration/AgentOrchestrator.d.ts.map +1 -0
  347. package/dist/core/orchestration/AgentOrchestrator.js +648 -0
  348. package/dist/core/orchestration/AgentOrchestrator.js.map +1 -0
  349. package/dist/core/orchestration/IAgentOrchestrator.d.ts +44 -0
  350. package/dist/core/orchestration/IAgentOrchestrator.d.ts.map +1 -0
  351. package/dist/core/orchestration/IAgentOrchestrator.js +4 -0
  352. package/dist/core/orchestration/IAgentOrchestrator.js.map +1 -0
  353. package/dist/core/orchestration/helpers.d.ts +12 -0
  354. package/dist/core/orchestration/helpers.d.ts.map +1 -0
  355. package/dist/core/orchestration/helpers.js +36 -0
  356. package/dist/core/orchestration/helpers.js.map +1 -0
  357. package/dist/core/planning/IPlanningEngine.d.ts +524 -0
  358. package/dist/core/planning/IPlanningEngine.d.ts.map +1 -0
  359. package/dist/core/planning/IPlanningEngine.js +32 -0
  360. package/dist/core/planning/IPlanningEngine.js.map +1 -0
  361. package/dist/core/planning/PlanningEngine.d.ts +161 -0
  362. package/dist/core/planning/PlanningEngine.d.ts.map +1 -0
  363. package/dist/core/planning/PlanningEngine.js +783 -0
  364. package/dist/core/planning/PlanningEngine.js.map +1 -0
  365. package/dist/core/planning/index.d.ts +25 -0
  366. package/dist/core/planning/index.d.ts.map +1 -0
  367. package/dist/core/planning/index.js +25 -0
  368. package/dist/core/planning/index.js.map +1 -0
  369. package/dist/core/sandbox/CodeSandbox.d.ts +86 -0
  370. package/dist/core/sandbox/CodeSandbox.d.ts.map +1 -0
  371. package/dist/core/sandbox/CodeSandbox.js +475 -0
  372. package/dist/core/sandbox/CodeSandbox.js.map +1 -0
  373. package/dist/core/sandbox/ICodeSandbox.d.ts +249 -0
  374. package/dist/core/sandbox/ICodeSandbox.d.ts.map +1 -0
  375. package/dist/core/sandbox/ICodeSandbox.js +24 -0
  376. package/dist/core/sandbox/ICodeSandbox.js.map +1 -0
  377. package/dist/core/sandbox/index.d.ts +9 -0
  378. package/dist/core/sandbox/index.d.ts.map +1 -0
  379. package/dist/core/sandbox/index.js +8 -0
  380. package/dist/core/sandbox/index.js.map +1 -0
  381. package/dist/core/storage/IStorageAdapter.d.ts +483 -0
  382. package/dist/core/storage/IStorageAdapter.d.ts.map +1 -0
  383. package/dist/core/storage/IStorageAdapter.js +19 -0
  384. package/dist/core/storage/IStorageAdapter.js.map +1 -0
  385. package/dist/core/storage/InMemoryStorageAdapter.d.ts +192 -0
  386. package/dist/core/storage/InMemoryStorageAdapter.d.ts.map +1 -0
  387. package/dist/core/storage/InMemoryStorageAdapter.js +343 -0
  388. package/dist/core/storage/InMemoryStorageAdapter.js.map +1 -0
  389. package/dist/core/storage/SqlStorageAdapter.d.ts +262 -0
  390. package/dist/core/storage/SqlStorageAdapter.d.ts.map +1 -0
  391. package/dist/core/storage/SqlStorageAdapter.js +485 -0
  392. package/dist/core/storage/SqlStorageAdapter.js.map +1 -0
  393. package/dist/core/storage/index.d.ts +14 -0
  394. package/dist/core/storage/index.d.ts.map +1 -0
  395. package/dist/core/storage/index.js +14 -0
  396. package/dist/core/storage/index.js.map +1 -0
  397. package/dist/core/streaming/IStreamClient.d.ts +72 -0
  398. package/dist/core/streaming/IStreamClient.d.ts.map +1 -0
  399. package/dist/core/streaming/IStreamClient.js +12 -0
  400. package/dist/core/streaming/IStreamClient.js.map +1 -0
  401. package/dist/core/streaming/StreamingManager.d.ts +242 -0
  402. package/dist/core/streaming/StreamingManager.d.ts.map +1 -0
  403. package/dist/core/streaming/StreamingManager.js +282 -0
  404. package/dist/core/streaming/StreamingManager.js.map +1 -0
  405. package/dist/core/structured/IStructuredOutputManager.d.ts +701 -0
  406. package/dist/core/structured/IStructuredOutputManager.d.ts.map +1 -0
  407. package/dist/core/structured/IStructuredOutputManager.js +74 -0
  408. package/dist/core/structured/IStructuredOutputManager.js.map +1 -0
  409. package/dist/core/structured/StructuredOutputManager.d.ts +140 -0
  410. package/dist/core/structured/StructuredOutputManager.d.ts.map +1 -0
  411. package/dist/core/structured/StructuredOutputManager.js +1015 -0
  412. package/dist/core/structured/StructuredOutputManager.js.map +1 -0
  413. package/dist/core/structured/index.d.ts +34 -0
  414. package/dist/core/structured/index.d.ts.map +1 -0
  415. package/dist/core/structured/index.js +34 -0
  416. package/dist/core/structured/index.js.map +1 -0
  417. package/dist/core/tools/ITool.d.ts +228 -0
  418. package/dist/core/tools/ITool.d.ts.map +1 -0
  419. package/dist/core/tools/ITool.js +11 -0
  420. package/dist/core/tools/ITool.js.map +1 -0
  421. package/dist/core/tools/IToolOrchestrator.d.ts +131 -0
  422. package/dist/core/tools/IToolOrchestrator.d.ts.map +1 -0
  423. package/dist/core/tools/IToolOrchestrator.js +14 -0
  424. package/dist/core/tools/IToolOrchestrator.js.map +1 -0
  425. package/dist/core/tools/ToolExecutor.d.ts +143 -0
  426. package/dist/core/tools/ToolExecutor.d.ts.map +1 -0
  427. package/dist/core/tools/ToolExecutor.js +364 -0
  428. package/dist/core/tools/ToolExecutor.js.map +1 -0
  429. package/dist/core/tools/ToolOrchestrator.d.ts +142 -0
  430. package/dist/core/tools/ToolOrchestrator.d.ts.map +1 -0
  431. package/dist/core/tools/ToolOrchestrator.js +373 -0
  432. package/dist/core/tools/ToolOrchestrator.js.map +1 -0
  433. package/dist/core/tools/permissions/IToolPermissionManager.d.ts +195 -0
  434. package/dist/core/tools/permissions/IToolPermissionManager.d.ts.map +1 -0
  435. package/dist/core/tools/permissions/IToolPermissionManager.js +14 -0
  436. package/dist/core/tools/permissions/IToolPermissionManager.js.map +1 -0
  437. package/dist/core/tools/permissions/ToolPermissionManager.d.ts +203 -0
  438. package/dist/core/tools/permissions/ToolPermissionManager.d.ts.map +1 -0
  439. package/dist/core/tools/permissions/ToolPermissionManager.js +298 -0
  440. package/dist/core/tools/permissions/ToolPermissionManager.js.map +1 -0
  441. package/dist/core/ui/IUIComponent.d.ts +11 -0
  442. package/dist/core/ui/IUIComponent.d.ts.map +1 -0
  443. package/dist/core/ui/IUIComponent.js +2 -0
  444. package/dist/core/ui/IUIComponent.js.map +1 -0
  445. package/dist/core/usage/UsageLedger.d.ts +81 -0
  446. package/dist/core/usage/UsageLedger.d.ts.map +1 -0
  447. package/dist/core/usage/UsageLedger.js +135 -0
  448. package/dist/core/usage/UsageLedger.js.map +1 -0
  449. package/dist/core/workflows/IWorkflowEngine.d.ts +42 -0
  450. package/dist/core/workflows/IWorkflowEngine.d.ts.map +1 -0
  451. package/dist/core/workflows/IWorkflowEngine.js +2 -0
  452. package/dist/core/workflows/IWorkflowEngine.js.map +1 -0
  453. package/dist/core/workflows/WorkflowEngine.d.ts +28 -0
  454. package/dist/core/workflows/WorkflowEngine.d.ts.map +1 -0
  455. package/dist/core/workflows/WorkflowEngine.js +309 -0
  456. package/dist/core/workflows/WorkflowEngine.js.map +1 -0
  457. package/dist/core/workflows/WorkflowTypes.d.ts +180 -0
  458. package/dist/core/workflows/WorkflowTypes.d.ts.map +1 -0
  459. package/dist/core/workflows/WorkflowTypes.js +26 -0
  460. package/dist/core/workflows/WorkflowTypes.js.map +1 -0
  461. package/dist/core/workflows/runtime/WorkflowRuntime.d.ts +70 -0
  462. package/dist/core/workflows/runtime/WorkflowRuntime.d.ts.map +1 -0
  463. package/dist/core/workflows/runtime/WorkflowRuntime.js +566 -0
  464. package/dist/core/workflows/runtime/WorkflowRuntime.js.map +1 -0
  465. package/dist/core/workflows/storage/IWorkflowStore.d.ts +75 -0
  466. package/dist/core/workflows/storage/IWorkflowStore.d.ts.map +1 -0
  467. package/dist/core/workflows/storage/IWorkflowStore.js +2 -0
  468. package/dist/core/workflows/storage/IWorkflowStore.js.map +1 -0
  469. package/dist/core/workflows/storage/InMemoryWorkflowStore.d.ts +14 -0
  470. package/dist/core/workflows/storage/InMemoryWorkflowStore.d.ts.map +1 -0
  471. package/dist/core/workflows/storage/InMemoryWorkflowStore.js +130 -0
  472. package/dist/core/workflows/storage/InMemoryWorkflowStore.js.map +1 -0
  473. package/dist/extensions/ExtensionLoader.d.ts +119 -0
  474. package/dist/extensions/ExtensionLoader.d.ts.map +1 -0
  475. package/dist/extensions/ExtensionLoader.js +297 -0
  476. package/dist/extensions/ExtensionLoader.js.map +1 -0
  477. package/dist/extensions/ExtensionManager.d.ts +49 -0
  478. package/dist/extensions/ExtensionManager.d.ts.map +1 -0
  479. package/dist/extensions/ExtensionManager.js +197 -0
  480. package/dist/extensions/ExtensionManager.js.map +1 -0
  481. package/dist/extensions/ExtensionRegistry.d.ts +39 -0
  482. package/dist/extensions/ExtensionRegistry.d.ts.map +1 -0
  483. package/dist/extensions/ExtensionRegistry.js +103 -0
  484. package/dist/extensions/ExtensionRegistry.js.map +1 -0
  485. package/dist/extensions/MultiRegistryLoader.d.ts +61 -0
  486. package/dist/extensions/MultiRegistryLoader.d.ts.map +1 -0
  487. package/dist/extensions/MultiRegistryLoader.js +169 -0
  488. package/dist/extensions/MultiRegistryLoader.js.map +1 -0
  489. package/dist/extensions/RegistryConfig.d.ts +86 -0
  490. package/dist/extensions/RegistryConfig.d.ts.map +1 -0
  491. package/dist/extensions/RegistryConfig.js +99 -0
  492. package/dist/extensions/RegistryConfig.js.map +1 -0
  493. package/dist/extensions/events.d.ts +19 -0
  494. package/dist/extensions/events.d.ts.map +1 -0
  495. package/dist/extensions/events.js +2 -0
  496. package/dist/extensions/events.js.map +1 -0
  497. package/dist/extensions/index.d.ts +9 -0
  498. package/dist/extensions/index.d.ts.map +1 -0
  499. package/dist/extensions/index.js +9 -0
  500. package/dist/extensions/index.js.map +1 -0
  501. package/dist/extensions/manifest.d.ts +52 -0
  502. package/dist/extensions/manifest.d.ts.map +1 -0
  503. package/dist/extensions/manifest.js +2 -0
  504. package/dist/extensions/manifest.js.map +1 -0
  505. package/dist/extensions/types.d.ts +294 -0
  506. package/dist/extensions/types.d.ts.map +1 -0
  507. package/dist/extensions/types.js +12 -0
  508. package/dist/extensions/types.js.map +1 -0
  509. package/dist/index.d.ts +49 -0
  510. package/dist/index.d.ts.map +1 -0
  511. package/dist/index.js +59 -0
  512. package/dist/index.js.map +1 -0
  513. package/dist/logging/ILogger.d.ts +8 -0
  514. package/dist/logging/ILogger.d.ts.map +1 -0
  515. package/dist/logging/ILogger.js +2 -0
  516. package/dist/logging/ILogger.js.map +1 -0
  517. package/dist/logging/PinoLogger.d.ts +12 -0
  518. package/dist/logging/PinoLogger.d.ts.map +1 -0
  519. package/dist/logging/PinoLogger.js +22 -0
  520. package/dist/logging/PinoLogger.js.map +1 -0
  521. package/dist/logging/loggerFactory.d.ts +6 -0
  522. package/dist/logging/loggerFactory.d.ts.map +1 -0
  523. package/dist/logging/loggerFactory.js +14 -0
  524. package/dist/logging/loggerFactory.js.map +1 -0
  525. package/dist/rag/EmbeddingManager.d.ts +81 -0
  526. package/dist/rag/EmbeddingManager.d.ts.map +1 -0
  527. package/dist/rag/EmbeddingManager.js +412 -0
  528. package/dist/rag/EmbeddingManager.js.map +1 -0
  529. package/dist/rag/IEmbeddingManager.d.ts +277 -0
  530. package/dist/rag/IEmbeddingManager.d.ts.map +1 -0
  531. package/dist/rag/IEmbeddingManager.js +19 -0
  532. package/dist/rag/IEmbeddingManager.js.map +1 -0
  533. package/dist/rag/IRetrievalAugmentor.d.ts +208 -0
  534. package/dist/rag/IRetrievalAugmentor.d.ts.map +1 -0
  535. package/dist/rag/IRetrievalAugmentor.js +21 -0
  536. package/dist/rag/IRetrievalAugmentor.js.map +1 -0
  537. package/dist/rag/IVectorStore.d.ts +351 -0
  538. package/dist/rag/IVectorStore.d.ts.map +1 -0
  539. package/dist/rag/IVectorStore.js +15 -0
  540. package/dist/rag/IVectorStore.js.map +1 -0
  541. package/dist/rag/IVectorStoreManager.d.ts +121 -0
  542. package/dist/rag/IVectorStoreManager.d.ts.map +1 -0
  543. package/dist/rag/IVectorStoreManager.js +13 -0
  544. package/dist/rag/IVectorStoreManager.js.map +1 -0
  545. package/dist/rag/RetrievalAugmentor.d.ts +99 -0
  546. package/dist/rag/RetrievalAugmentor.d.ts.map +1 -0
  547. package/dist/rag/RetrievalAugmentor.js +674 -0
  548. package/dist/rag/RetrievalAugmentor.js.map +1 -0
  549. package/dist/rag/VectorStoreManager.d.ts +90 -0
  550. package/dist/rag/VectorStoreManager.d.ts.map +1 -0
  551. package/dist/rag/VectorStoreManager.js +283 -0
  552. package/dist/rag/VectorStoreManager.js.map +1 -0
  553. package/dist/rag/implementations/index.d.ts +9 -0
  554. package/dist/rag/implementations/index.d.ts.map +1 -0
  555. package/dist/rag/implementations/index.js +9 -0
  556. package/dist/rag/implementations/index.js.map +1 -0
  557. package/dist/rag/implementations/vector_stores/InMemoryVectorStore.d.ts +132 -0
  558. package/dist/rag/implementations/vector_stores/InMemoryVectorStore.d.ts.map +1 -0
  559. package/dist/rag/implementations/vector_stores/InMemoryVectorStore.js +539 -0
  560. package/dist/rag/implementations/vector_stores/InMemoryVectorStore.js.map +1 -0
  561. package/dist/rag/implementations/vector_stores/SqlVectorStore.d.ts +265 -0
  562. package/dist/rag/implementations/vector_stores/SqlVectorStore.d.ts.map +1 -0
  563. package/dist/rag/implementations/vector_stores/SqlVectorStore.js +755 -0
  564. package/dist/rag/implementations/vector_stores/SqlVectorStore.js.map +1 -0
  565. package/dist/rag/implementations/vector_stores/index.d.ts +10 -0
  566. package/dist/rag/implementations/vector_stores/index.d.ts.map +1 -0
  567. package/dist/rag/implementations/vector_stores/index.js +12 -0
  568. package/dist/rag/implementations/vector_stores/index.js.map +1 -0
  569. package/dist/rag/index.d.ts +95 -0
  570. package/dist/rag/index.d.ts.map +1 -0
  571. package/dist/rag/index.js +97 -0
  572. package/dist/rag/index.js.map +1 -0
  573. package/dist/services/user_auth/AuthService.d.ts +13 -0
  574. package/dist/services/user_auth/AuthService.d.ts.map +1 -0
  575. package/dist/services/user_auth/AuthService.js +24 -0
  576. package/dist/services/user_auth/AuthService.js.map +1 -0
  577. package/dist/services/user_auth/SubscriptionService.d.ts +14 -0
  578. package/dist/services/user_auth/SubscriptionService.d.ts.map +1 -0
  579. package/dist/services/user_auth/SubscriptionService.js +34 -0
  580. package/dist/services/user_auth/SubscriptionService.js.map +1 -0
  581. package/dist/services/user_auth/types.d.ts +30 -0
  582. package/dist/services/user_auth/types.d.ts.map +1 -0
  583. package/dist/services/user_auth/types.js +2 -0
  584. package/dist/services/user_auth/types.js.map +1 -0
  585. package/dist/stubs/prismaClient.d.ts +35 -0
  586. package/dist/stubs/prismaClient.d.ts.map +1 -0
  587. package/dist/stubs/prismaClient.js +47 -0
  588. package/dist/stubs/prismaClient.js.map +1 -0
  589. package/dist/types/rateLimitTypes.d.ts +70 -0
  590. package/dist/types/rateLimitTypes.d.ts.map +1 -0
  591. package/dist/types/rateLimitTypes.js +55 -0
  592. package/dist/types/rateLimitTypes.js.map +1 -0
  593. package/dist/utils/errors.d.ts +80 -0
  594. package/dist/utils/errors.d.ts.map +1 -0
  595. package/dist/utils/errors.js +201 -0
  596. package/dist/utils/errors.js.map +1 -0
  597. package/dist/utils/uuid.d.ts +11 -0
  598. package/dist/utils/uuid.d.ts.map +1 -0
  599. package/dist/utils/uuid.js +64 -0
  600. package/dist/utils/uuid.js.map +1 -0
  601. 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