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