@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,412 @@
1
+ /**
2
+ * @fileoverview Implements the EmbeddingManager (`EmbeddingManager`), which is responsible
3
+ * for generating vector embeddings for textual content. It adheres to the
4
+ * `IEmbeddingManager` interface.
5
+ *
6
+ * This manager handles configurations for various embedding models, interacts with an
7
+ * `AIModelProviderManager` to make calls to actual LLM providers, and supports
8
+ * features like caching of embeddings and dynamic model selection based on configured strategies.
9
+ * It uses the dedicated `generateEmbeddings` method from the `IProvider` interface for
10
+ * making calls to embedding models.
11
+ *
12
+ * @module backend/agentos/rag/EmbeddingManager
13
+ * @see ./IEmbeddingManager.ts for the interface definition.
14
+ * @see ../config/EmbeddingManagerConfiguration.ts for configuration structures.
15
+ * @see ../core/llm/providers/AIModelProviderManager.ts for provider management.
16
+ * @see ../core/llm/providers/IProvider.ts for the provider contract.
17
+ */
18
+ import { LRUCache } from 'lru-cache'; // Popular LRU cache library
19
+ import { GMIError, GMIErrorCode } from '../utils/errors.js'; // Assuming a GMIError utility
20
+ /**
21
+ * Implements the `IEmbeddingManager` interface to provide robust embedding generation services.
22
+ *
23
+ * @class EmbeddingManager
24
+ * @implements {IEmbeddingManager}
25
+ */
26
+ export class EmbeddingManager {
27
+ /**
28
+ * Constructs an EmbeddingManager instance.
29
+ * The manager is not operational until `initialize` is called.
30
+ */
31
+ constructor() {
32
+ this.initialized = false;
33
+ this.availableModels = new Map();
34
+ }
35
+ /**
36
+ * @inheritdoc
37
+ */
38
+ async initialize(config, providerManager) {
39
+ if (this.initialized) {
40
+ console.warn('EmbeddingManager already initialized. Re-initializing.');
41
+ // Consider cleanup if re-initializing, e.g., clearing cache and models
42
+ this.availableModels.clear();
43
+ this.cache?.clear?.();
44
+ }
45
+ this.config = config;
46
+ this.providerManager = providerManager;
47
+ if (!config.embeddingModels || config.embeddingModels.length === 0) {
48
+ throw new GMIError('EmbeddingManagerConfig: No embedding models provided. At least one model must be configured.', GMIErrorCode.CONFIG_ERROR, { modelsCount: 0 });
49
+ }
50
+ config.embeddingModels.forEach(modelConfig => {
51
+ if (!modelConfig.modelId || !modelConfig.providerId || !modelConfig.dimension) {
52
+ console.warn(`EmbeddingManager: Invalid or incomplete model configuration skipped: ${JSON.stringify(modelConfig)}. ModelId, providerId, and dimension are required.`);
53
+ return;
54
+ }
55
+ if (modelConfig.dimension <= 0) {
56
+ console.warn(`EmbeddingManager: Model configuration for '${modelConfig.modelId}' has an invalid dimension (${modelConfig.dimension}). Skipping.`);
57
+ return;
58
+ }
59
+ this.availableModels.set(modelConfig.modelId, modelConfig);
60
+ if (modelConfig.isDefault) {
61
+ if (this.defaultModel) {
62
+ console.warn(`EmbeddingManager: Multiple default embedding models defined. Using the last one encountered: '${modelConfig.modelId}'. Previous default: '${this.defaultModel.modelId}'.`);
63
+ }
64
+ this.defaultModel = modelConfig;
65
+ }
66
+ });
67
+ // If defaultModelId is specified in config, it takes precedence
68
+ if (config.defaultModelId) {
69
+ const modelFromId = this.availableModels.get(config.defaultModelId);
70
+ if (!modelFromId) {
71
+ throw new GMIError(`EmbeddingManagerConfig: Specified defaultModelId '${config.defaultModelId}' does not match any configured embedding model.`, GMIErrorCode.CONFIG_ERROR, { defaultModelId: config.defaultModelId });
72
+ }
73
+ this.defaultModel = modelFromId;
74
+ }
75
+ // If no default model is set by now (neither by isDefault flag nor defaultModelId),
76
+ // and there are available models, pick the first one as a last resort.
77
+ if (!this.defaultModel && this.availableModels.size > 0) {
78
+ this.defaultModel = this.availableModels.values().next().value;
79
+ console.warn(`EmbeddingManager: No default embedding model explicitly set via 'isDefault' or 'defaultModelId'. Using the first available model as default: '${this.defaultModel?.modelId}'.`);
80
+ }
81
+ if (!this.defaultModel) {
82
+ throw new GMIError('EmbeddingManager: No default embedding model could be determined. Ensure at least one model is configured, and optionally specify a default.', GMIErrorCode.CONFIG_ERROR);
83
+ }
84
+ if (this.config.enableCache !== false) { // Cache is enabled by default
85
+ const cacheMaxSize = this.config.cacheMaxSize ?? 1000;
86
+ const cacheTTLSeconds = this.config.cacheTTLSeconds ?? 3600; // 1 hour
87
+ this.cache = new LRUCache({
88
+ max: cacheMaxSize,
89
+ ttl: cacheTTLSeconds * 1000, // Convert TTL to milliseconds
90
+ });
91
+ console.log(`EmbeddingManager: Cache enabled (maxSize: ${cacheMaxSize}, ttl: ${cacheTTLSeconds}s).`);
92
+ }
93
+ else {
94
+ console.log('EmbeddingManager: Cache is disabled by configuration.');
95
+ }
96
+ this.initialized = true;
97
+ console.log(`EmbeddingManager initialized successfully with ${this.availableModels.size} embedding model(s). Default model: '${this.defaultModel?.modelId}'.`);
98
+ }
99
+ /**
100
+ * Ensures that the manager has been initialized.
101
+ * @private
102
+ * @throws {GMIError} If not initialized.
103
+ */
104
+ ensureInitialized() {
105
+ if (!this.initialized) {
106
+ throw new GMIError('EmbeddingManager is not initialized. Call initialize() before using its methods.', GMIErrorCode.NOT_INITIALIZED);
107
+ }
108
+ }
109
+ /**
110
+ * Selects an embedding model based on the request and configured strategy.
111
+ * @private
112
+ * @param {EmbeddingRequest} request - The embedding request.
113
+ * @returns {EmbeddingModelConfig} The selected model configuration.
114
+ * @throws {GMIError} If no suitable model can be selected.
115
+ */
116
+ selectModel(request) {
117
+ this.ensureInitialized(); // Default model must be available here
118
+ // 1. Explicit modelId in request takes highest precedence
119
+ if (request.modelId) {
120
+ const model = this.availableModels.get(request.modelId);
121
+ if (model) {
122
+ // Optional: Validate if request.providerId matches model.providerId if both are given
123
+ if (request.providerId && request.providerId !== model.providerId) {
124
+ console.warn(`EmbeddingManager: Requested providerId '${request.providerId}' for model '${request.modelId}' differs from the model's configured provider '${model.providerId}'. Using the model's configured provider.`);
125
+ }
126
+ return model;
127
+ }
128
+ console.warn(`EmbeddingManager: Requested modelId '${request.modelId}' not found among available models. Falling back to selection strategy or default.`);
129
+ }
130
+ const strategyConfig = this.config.selectionStrategy;
131
+ let selectedModel;
132
+ // 2. Apply selection strategy if defined
133
+ if (strategyConfig) {
134
+ switch (strategyConfig.type) {
135
+ case 'dynamic_quality':
136
+ selectedModel = [...this.availableModels.values()]
137
+ .filter(m => m.qualityScore !== undefined)
138
+ .sort((a, b) => (b.qualityScore) - (a.qualityScore))[0];
139
+ break;
140
+ case 'dynamic_cost':
141
+ selectedModel = [...this.availableModels.values()]
142
+ .filter(m => m.pricePer1MTokensUSD !== undefined)
143
+ .sort((a, b) => (a.pricePer1MTokensUSD) - (b.pricePer1MTokensUSD))[0];
144
+ break;
145
+ case 'dynamic_collection_preference':
146
+ if (request.collectionId) {
147
+ selectedModel = [...this.availableModels.values()].find(m => m.supportedCollections?.includes(request.collectionId));
148
+ }
149
+ break;
150
+ case 'static': // Explicitly fall through to default logic
151
+ default:
152
+ // The 'static' strategy or an unknown strategy type will use the fallback or default.
153
+ break;
154
+ }
155
+ // If strategy yielded a model, use it
156
+ if (selectedModel)
157
+ return selectedModel;
158
+ // If strategy failed, try its fallback model
159
+ if (strategyConfig.fallbackModelId) {
160
+ selectedModel = this.availableModels.get(strategyConfig.fallbackModelId);
161
+ if (selectedModel)
162
+ return selectedModel;
163
+ console.warn(`EmbeddingManager: Selection strategy fallbackModelId '${strategyConfig.fallbackModelId}' not found. Using system default.`);
164
+ }
165
+ }
166
+ // 3. Fallback to the system default model
167
+ if (!this.defaultModel) {
168
+ // This should not happen if initialize() worked correctly.
169
+ throw new GMIError("Critical error: Default embedding model is not set after initialization.", GMIErrorCode.INTERNAL_ERROR);
170
+ }
171
+ return this.defaultModel;
172
+ }
173
+ /**
174
+ * @inheritdoc
175
+ */
176
+ async generateEmbeddings(request) {
177
+ this.ensureInitialized();
178
+ const textsToEmbed = Array.isArray(request.texts)
179
+ ? request.texts.filter(text => typeof text === 'string' && text.trim() !== '') // Filter out empty or invalid texts
180
+ : (typeof request.texts === 'string' && request.texts.trim() !== '' ? [request.texts] : []);
181
+ if (textsToEmbed.length === 0) {
182
+ // If all input texts were empty or invalid, or if an empty array was passed.
183
+ const modelForEmptyResponse = this.selectModel(request); // Still select a model to report its ID
184
+ return {
185
+ embeddings: [],
186
+ modelId: modelForEmptyResponse.modelId,
187
+ providerId: modelForEmptyResponse.providerId,
188
+ usage: { inputTokens: 0, totalTokens: 0, costUSD: 0 },
189
+ };
190
+ }
191
+ const selectedModelConfig = this.selectModel(request);
192
+ const provider = this.providerManager.getProvider(selectedModelConfig.providerId);
193
+ if (!provider) {
194
+ throw new GMIError(`LLM Provider '${selectedModelConfig.providerId}' configured for embedding model '${selectedModelConfig.modelId}' not found or not available.`, GMIErrorCode.PROVIDER_NOT_FOUND, { providerId: selectedModelConfig.providerId, modelId: selectedModelConfig.modelId });
195
+ }
196
+ if (typeof provider.generateEmbeddings !== 'function') {
197
+ throw new GMIError(`LLM Provider '${selectedModelConfig.providerId}' does not support the 'generateEmbeddings' method required by model '${selectedModelConfig.modelId}'.`, GMIErrorCode.METHOD_NOT_SUPPORTED, { providerId: selectedModelConfig.providerId, method: 'generateEmbeddings' });
198
+ }
199
+ const finalEmbeddings = new Array(textsToEmbed.length).fill(null).map(() => []); // Initialize to avoid sparse arrays if errors occur
200
+ const errors = [];
201
+ let cumulativeInputTokens = 0;
202
+ let cumulativeTotalTokens = 0;
203
+ let cumulativeCostUSD = 0;
204
+ const batchSize = selectedModelConfig.providerSpecificArgs?.batchSize ?? this.config.defaultBatchSize ?? 32;
205
+ for (let i = 0; i < textsToEmbed.length; i += batchSize) {
206
+ const batchTexts = textsToEmbed.slice(i, i + batchSize);
207
+ const originalIndicesForThisBatch = batchTexts.map((_, idx) => i + idx);
208
+ const textsToFetchFromProvider = [];
209
+ // Map: index_in_textsToFetchFromProvider -> original_overall_index
210
+ const providerFetchIndexToOriginalIndexMap = [];
211
+ // Check cache for each text in the current batch
212
+ if (this.cache) {
213
+ for (let j = 0; j < batchTexts.length; j++) {
214
+ const text = batchTexts[j];
215
+ const originalIndex = originalIndicesForThisBatch[j];
216
+ const cacheKey = `${selectedModelConfig.modelId}:${text}`; // Simple cache key
217
+ const cachedEntry = this.cache.get(cacheKey);
218
+ if (cachedEntry && cachedEntry.modelId === selectedModelConfig.modelId) {
219
+ finalEmbeddings[originalIndex] = cachedEntry.embedding;
220
+ }
221
+ else {
222
+ textsToFetchFromProvider.push(text);
223
+ providerFetchIndexToOriginalIndexMap.push(originalIndex);
224
+ }
225
+ }
226
+ }
227
+ else {
228
+ textsToFetchFromProvider.push(...batchTexts);
229
+ providerFetchIndexToOriginalIndexMap.push(...originalIndicesForThisBatch);
230
+ }
231
+ if (textsToFetchFromProvider.length > 0) {
232
+ try {
233
+ const providerOptions = {
234
+ userId: request.userId,
235
+ customModelParams: selectedModelConfig.providerSpecificArgs,
236
+ // Map relevant fields from EmbeddingModelConfig to ProviderEmbeddingOptions if needed
237
+ // Example: dimensions for OpenAI text-embedding-3 models
238
+ dimensions: selectedModelConfig.providerSpecificArgs?.dimensions,
239
+ // inputType for older OpenAI models if still supported by provider interface
240
+ inputType: selectedModelConfig.providerSpecificArgs?.inputType,
241
+ };
242
+ const batchResponse = await provider.generateEmbeddings(selectedModelConfig.modelId, textsToFetchFromProvider, providerOptions);
243
+ if (batchResponse.error) {
244
+ // If the whole batch failed at the provider level
245
+ throw new GMIError(batchResponse.error.message, GMIErrorCode.PROVIDER_ERROR, batchResponse.error.details || batchResponse.error);
246
+ }
247
+ if (batchResponse.data && batchResponse.data.length === textsToFetchFromProvider.length) {
248
+ batchResponse.data.forEach((embData, k) => {
249
+ const originalTextIndex = providerFetchIndexToOriginalIndexMap[k];
250
+ if (embData.embedding.length !== selectedModelConfig.dimension) {
251
+ errors.push({
252
+ textIndex: originalTextIndex,
253
+ message: `Provider returned embedding with incorrect dimension ${embData.embedding.length} for model '${selectedModelConfig.modelId}' (expected ${selectedModelConfig.dimension}).`,
254
+ details: { text: textsToEmbed[originalTextIndex].substring(0, 100) + '...' }
255
+ });
256
+ // Do not populate finalEmbeddings[originalTextIndex] if dimension is wrong
257
+ }
258
+ else {
259
+ finalEmbeddings[originalTextIndex] = embData.embedding;
260
+ if (this.cache) {
261
+ const cacheKey = `${selectedModelConfig.modelId}:${textsToFetchFromProvider[k]}`;
262
+ this.cache.set(cacheKey, {
263
+ embedding: embData.embedding,
264
+ modelId: selectedModelConfig.modelId,
265
+ timestamp: Date.now(),
266
+ });
267
+ }
268
+ }
269
+ });
270
+ }
271
+ else {
272
+ // Mismatch in expected vs. received embeddings count from provider
273
+ throw new GMIError('Provider returned mismatched number of embeddings for the batch or no data.', GMIErrorCode.PROVIDER_ERROR, { expected: textsToFetchFromProvider.length, received: batchResponse.data?.length });
274
+ }
275
+ cumulativeInputTokens += batchResponse.usage.prompt_tokens || 0; // Embeddings typically use prompt_tokens
276
+ cumulativeTotalTokens += batchResponse.usage.total_tokens || 0;
277
+ cumulativeCostUSD += batchResponse.usage.costUSD || 0;
278
+ }
279
+ catch (error) {
280
+ const errorMessage = error instanceof GMIError ? error.message : (error.message || 'Unknown error during batch embedding generation.');
281
+ console.error(`EmbeddingManager: Error embedding batch with model '${selectedModelConfig.modelId}' via provider '${provider.providerId}': ${errorMessage}`, error instanceof GMIError ? error.details : error);
282
+ // Mark all texts attempted in this failed provider call as errored
283
+ providerFetchIndexToOriginalIndexMap.forEach(originalTextIndex => {
284
+ // Only add error if not already successfully processed (e.g., from cache)
285
+ // and not already errored from a more specific issue like dimension mismatch
286
+ if (finalEmbeddings[originalTextIndex]?.length === 0 && !errors.some(e => e.textIndex === originalTextIndex)) {
287
+ errors.push({
288
+ textIndex: originalTextIndex,
289
+ message: `Failed to generate embedding for text in batch: ${errorMessage}`,
290
+ details: error instanceof GMIError ? error.details : { rawError: error.toString() },
291
+ });
292
+ }
293
+ });
294
+ }
295
+ }
296
+ } // End batch loop
297
+ // Filter out any positions that are still empty (null/empty array from initialization)
298
+ // This happens if an error occurred for a text and it wasn't filled from cache or provider.
299
+ const successfullyProcessedEmbeddings = [];
300
+ const finalOriginalIndices = []; // To map errors back correctly if we filter embeddings
301
+ for (let i = 0; i < finalEmbeddings.length; ++i) {
302
+ if (finalEmbeddings[i] && finalEmbeddings[i].length > 0) {
303
+ successfullyProcessedEmbeddings.push(finalEmbeddings[i]);
304
+ finalOriginalIndices.push(i);
305
+ }
306
+ }
307
+ // Adjust error indices if we are only returning successfully processed embeddings
308
+ // This is complex if we want to maintain original indexing for errors while compacting results.
309
+ // For now, `errors` contains original indices. `embeddings` array will correspond to `textsToEmbed`
310
+ // with problematic ones being empty arrays IF NOT FILTERED OUT.
311
+ // The current `EmbeddingResponse` implies `embeddings` has one entry per input text.
312
+ // So, if an embedding failed and wasn't from cache, it should be an empty array or handled via `errors`.
313
+ // Let's ensure `finalEmbeddings` has an entry for each input text.
314
+ // The entries that failed (and weren't from cache) will be empty arrays.
315
+ // The `errors` array correctly points to the original text index.
316
+ return {
317
+ embeddings: finalEmbeddings, // Each entry corresponds to textsToEmbed; failed ones are empty arrays.
318
+ modelId: selectedModelConfig.modelId,
319
+ providerId: selectedModelConfig.providerId,
320
+ usage: {
321
+ inputTokens: cumulativeInputTokens,
322
+ totalTokens: cumulativeTotalTokens,
323
+ costUSD: cumulativeCostUSD,
324
+ },
325
+ errors: errors.length > 0 ? errors : undefined,
326
+ };
327
+ }
328
+ /**
329
+ * @inheritdoc
330
+ */
331
+ async getEmbeddingModelInfo(modelId) {
332
+ this.ensureInitialized();
333
+ const idToLookup = modelId || this.defaultModel?.modelId;
334
+ if (!idToLookup) {
335
+ // Should not happen if initialized and defaultModel is set
336
+ console.error("EmbeddingManager: Cannot get model info, no modelId provided and no default model set.");
337
+ return undefined;
338
+ }
339
+ return this.availableModels.get(idToLookup);
340
+ }
341
+ /**
342
+ * @inheritdoc
343
+ */
344
+ async getEmbeddingDimension(modelId) {
345
+ this.ensureInitialized();
346
+ const modelInfo = await this.getEmbeddingModelInfo(modelId); // Uses default if modelId is null
347
+ if (modelInfo?.dimension) {
348
+ return modelInfo.dimension;
349
+ }
350
+ // Fallback to manager's configured default dimension if model-specific is missing
351
+ if (this.config.defaultEmbeddingDimension && this.config.defaultEmbeddingDimension > 0) {
352
+ console.warn(`EmbeddingManager: Dimension for model '${modelId || 'default'}' not found in its config. Using system-wide default dimension: ${this.config.defaultEmbeddingDimension}.`);
353
+ return this.config.defaultEmbeddingDimension;
354
+ }
355
+ // This case implies that the specific model (or default model if modelId was null) is missing its dimension,
356
+ // AND no system-wide default dimension is configured. This is a critical config error.
357
+ throw new GMIError(`Embedding dimension for model '${modelId || this.defaultModel?.modelId || 'unknown'}' is not configured, and no system-wide default dimension is set. Please check EmbeddingManagerConfiguration.`, GMIErrorCode.CONFIG_ERROR, { modelIdAttempted: modelId || this.defaultModel?.modelId });
358
+ }
359
+ /**
360
+ * @inheritdoc
361
+ */
362
+ async checkHealth() {
363
+ if (!this.initialized || !this.defaultModel) {
364
+ return {
365
+ isHealthy: false,
366
+ details: 'EmbeddingManager not initialized or no default model configured.',
367
+ };
368
+ }
369
+ // Basic health check: manager is initialized, has a default model, and some models are configured.
370
+ const isHealthy = this.availableModels.size > 0;
371
+ let defaultProviderHealth = {
372
+ isHealthy: true,
373
+ details: 'Default provider health not checked in this basic test.',
374
+ };
375
+ // Optionally, perform a lightweight check on the default model's provider
376
+ try {
377
+ const defaultProvider = this.providerManager.getProvider(this.defaultModel.providerId);
378
+ if (defaultProvider && typeof defaultProvider.checkHealth === 'function') {
379
+ defaultProviderHealth = await defaultProvider.checkHealth();
380
+ }
381
+ }
382
+ catch (error) {
383
+ defaultProviderHealth = { isHealthy: false, details: `Error checking default provider '${this.defaultModel.providerId}': ${error.message}` };
384
+ }
385
+ return {
386
+ isHealthy: isHealthy && defaultProviderHealth.isHealthy,
387
+ details: {
388
+ managerStatus: isHealthy ? 'Initialized and Operational' : 'Issues Detected',
389
+ configuredModels: this.availableModels.size,
390
+ defaultModelId: this.defaultModel.modelId,
391
+ cacheEnabled: this.cache ? true : false,
392
+ cacheSize: this.cache ? this.cache.size : 0,
393
+ defaultProviderStatus: defaultProviderHealth,
394
+ },
395
+ };
396
+ }
397
+ /**
398
+ * @inheritdoc
399
+ */
400
+ async shutdown() {
401
+ if (!this.initialized) {
402
+ console.log('EmbeddingManager: Shutdown called but not initialized. No action taken.');
403
+ return;
404
+ }
405
+ this.cache?.clear?.();
406
+ // Actual provider shutdown is handled by AIModelProviderManager if it's a shared resource.
407
+ // This manager only clears its own state.
408
+ this.initialized = false;
409
+ console.log('EmbeddingManager shutdown complete. Cache cleared.');
410
+ }
411
+ }
412
+ //# sourceMappingURL=EmbeddingManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmbeddingManager.js","sourceRoot":"","sources":["../../src/rag/EmbeddingManager.ts"],"names":[],"mappings":"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"}