@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,129 @@
1
+ /**
2
+ * @fileoverview Defines the interface for the Model Router in AgentOS.
3
+ * The Model Router is responsible for intelligently selecting the most appropriate
4
+ * AI model and provider for a given task or query, based on a variety of criteria
5
+ * such as task requirements, persona preferences, user context, model capabilities,
6
+ * cost, and performance.
7
+ *
8
+ * Implementations of this interface can range from simple rule-based routers
9
+ * to more sophisticated LLM-driven or learning-based routing systems.
10
+ * @module backend/agentos/core/llm/routing/IModelRouter
11
+ */
12
+ import { IProvider, ModelInfo } from '../providers/IProvider';
13
+ import { IPersonaDefinition } from '../../../cognitive_substrate/personas/IPersonaDefinition';
14
+ import type { ISubscriptionTier } from '../../../services/user_auth/types';
15
+ /**
16
+ * Parameters provided to the model router to aid in its selection process.
17
+ * This context allows the router to make informed decisions.
18
+ */
19
+ export interface ModelRouteParams {
20
+ /** A hint or classification of the current task (e.g., "code_generation", "summarization", "general_chat"). */
21
+ taskHint: string;
22
+ /** The ID of the GMI or agent instance making the request. */
23
+ requestingAgentId?: string;
24
+ /** The ID of the active persona guiding the interaction. */
25
+ personaId?: string;
26
+ /** The full active persona definition. */
27
+ activePersona?: IPersonaDefinition;
28
+ /** The ID of the user initiating the request. */
29
+ userId?: string;
30
+ /** The subscription tier of the user, which might affect model availability or preference. */
31
+ userSubscriptionTier?: ISubscriptionTier;
32
+ /** The user's query or the primary input text for the task. */
33
+ query?: string;
34
+ /** The target language for the model's output (e.g., "en", "es", "ja"). */
35
+ language?: string;
36
+ /**
37
+ * A preference for optimizing model selection (e.g., for speed, cost, or quality).
38
+ * This can guide the router if multiple suitable models are found.
39
+ */
40
+ optimizationPreference?: 'cost' | 'speed' | 'quality' | 'balanced';
41
+ /**
42
+ * Explicitly required capabilities for the model (e.g., "tool_use", "vision_input", "json_mode").
43
+ * The router must ensure the selected model supports all listed capabilities.
44
+ */
45
+ requiredCapabilities?: string[];
46
+ /**
47
+ * A list of preferred model IDs, if any. The router should try to use one of these if suitable.
48
+ */
49
+ preferredModelIds?: string[];
50
+ /**
51
+ * A list of preferred provider IDs, if any.
52
+ */
53
+ preferredProviderIds?: string[];
54
+ /**
55
+ * A list of model IDs that should be excluded from consideration.
56
+ */
57
+ excludedModelIds?: string[];
58
+ /**
59
+ * Maximum acceptable cost per 1000 input tokens (in USD), if cost is a critical factor.
60
+ */
61
+ maxCostPerKInputTokens?: number;
62
+ /**
63
+ * Maximum acceptable cost per 1000 output tokens (in USD).
64
+ */
65
+ maxCostPerKOutputTokens?: number;
66
+ /** User-provided API keys for specific providers, which might enable access to certain models. */
67
+ userApiKeys?: Record<string, string>;
68
+ /** Additional custom parameters or context to aid routing decisions. */
69
+ customContext?: Record<string, any>;
70
+ }
71
+ /**
72
+ * The result of a model routing decision.
73
+ * It specifies the selected provider, model, and provides reasoning for the choice.
74
+ */
75
+ export interface ModelRouteResult {
76
+ /** The selected AI model provider instance. */
77
+ provider: IProvider;
78
+ /** The ID of the selected model on the chosen provider. */
79
+ modelId: string;
80
+ /** Detailed information about the selected model. */
81
+ modelInfo: ModelInfo;
82
+ /** A human-readable explanation of why this model and provider were chosen. */
83
+ reasoning: string;
84
+ /**
85
+ * A confidence score (0.0 to 1.0) indicating the router's certainty in this selection.
86
+ * Higher values mean higher confidence.
87
+ */
88
+ confidence: number;
89
+ /** An optional classification of the estimated cost tier for this model (e.g., "low", "medium", "high"). */
90
+ estimatedCostTier?: 'low' | 'medium' | 'high' | string;
91
+ /** Any additional metadata related to the routing decision (e.g., matched rule ID, performance estimates). */
92
+ metadata?: Record<string, any>;
93
+ }
94
+ /**
95
+ * Interface for the Model Router.
96
+ * Implementations are responsible for selecting an appropriate AI model and provider
97
+ * based on the given parameters and context.
98
+ */
99
+ export interface IModelRouter {
100
+ /** A unique identifier for this specific router implementation. */
101
+ readonly routerId: string;
102
+ /**
103
+ * Initializes the model router with its configuration and necessary dependencies,
104
+ * such as the AIModelProviderManager for accessing information about available models and providers.
105
+ *
106
+ * @async
107
+ * @param {Record<string, any>} config - Router-specific configuration (e.g., rules, model preferences).
108
+ * @param {any} providerManager - An instance of AIModelProviderManager or a similar service
109
+ * that provides access to available models and providers.
110
+ * @param {any} [promptEngine] - Optional: An instance of PromptEngine, if the router uses LLM-based routing decisions.
111
+ * @returns {Promise<void>} A promise that resolves upon successful initialization.
112
+ * @throws {Error} If initialization fails (e.g., invalid configuration).
113
+ */
114
+ initialize(config: Record<string, any>, providerManager: any, // Should be AIModelProviderManager
115
+ promptEngine?: any): Promise<void>;
116
+ /**
117
+ * Selects an AI model and provider based on the provided parameters and the router's internal logic.
118
+ *
119
+ * @async
120
+ * @param {ModelRouteParams} params - The parameters and context for the routing decision.
121
+ * @param {ModelInfo[]} [availableModels] - Optional: A pre-fetched list of available models. If not provided,
122
+ * the router may need to fetch this list from its `providerManager`.
123
+ * @returns {Promise<ModelRouteResult | null>} A promise that resolves with the routing decision,
124
+ * or null if no suitable model/provider could be found that meets the criteria.
125
+ * @throws {Error} If a critical error occurs during the selection process.
126
+ */
127
+ selectModel(params: ModelRouteParams, availableModels?: ModelInfo[]): Promise<ModelRouteResult | null>;
128
+ }
129
+ //# sourceMappingURL=IModelRouter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IModelRouter.d.ts","sourceRoot":"","sources":["../../../../src/core/llm/routing/IModelRouter.ts"],"names":[],"mappings":"AACA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,0DAA0D,CAAC;AAC9F,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAE3E;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,+GAA+G;IAC/G,QAAQ,EAAE,MAAM,CAAC;IACjB,8DAA8D;IAC9D,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,4DAA4D;IAC5D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0CAA0C;IAC1C,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC,iDAAiD;IACjD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8FAA8F;IAC9F,oBAAoB,CAAC,EAAE,iBAAiB,CAAC;IACzC,+DAA+D;IAC/D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,sBAAsB,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,UAAU,CAAC;IACnE;;;OAGG;IACH,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B;;OAEG;IACH,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B;;OAEG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC;;OAEG;IACH,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,kGAAkG;IAClG,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,wEAAwE;IACxE,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACrC;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,+CAA+C;IAC/C,QAAQ,EAAE,SAAS,CAAC;IACpB,2DAA2D;IAC3D,OAAO,EAAE,MAAM,CAAC;IAChB,qDAAqD;IACrD,SAAS,EAAE,SAAS,CAAC;IACrB,+EAA+E;IAC/E,SAAS,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB,4GAA4G;IAC5G,iBAAiB,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;IACvD,8GAA8G;IAC9G,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;AAED;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,mEAAmE;IACnE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B;;;;;;;;;;;OAWG;IACH,UAAU,CACR,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3B,eAAe,EAAE,GAAG,EAAE,mCAAmC;IACzD,YAAY,CAAC,EAAE,GAAG,GACjB,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;;;;;;;;;OAUG;IACH,WAAW,CACT,MAAM,EAAE,gBAAgB,EACxB,eAAe,CAAC,EAAE,SAAS,EAAE,GAC5B,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;CACrC"}
@@ -0,0 +1,14 @@
1
+ // File: backend/agentos/core/llm/routing/IModelRouter.ts
2
+ /**
3
+ * @fileoverview Defines the interface for the Model Router in AgentOS.
4
+ * The Model Router is responsible for intelligently selecting the most appropriate
5
+ * AI model and provider for a given task or query, based on a variety of criteria
6
+ * such as task requirements, persona preferences, user context, model capabilities,
7
+ * cost, and performance.
8
+ *
9
+ * Implementations of this interface can range from simple rule-based routers
10
+ * to more sophisticated LLM-driven or learning-based routing systems.
11
+ * @module backend/agentos/core/llm/routing/IModelRouter
12
+ */
13
+ export {};
14
+ //# sourceMappingURL=IModelRouter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IModelRouter.js","sourceRoot":"","sources":["../../../../src/core/llm/routing/IModelRouter.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD;;;;;;;;;;GAUG"}
@@ -0,0 +1,157 @@
1
+ /**
2
+ * @fileoverview Implements a rule-based model router for AgentOS.
3
+ * This router selects an AI model and provider by evaluating a prioritized list of configurable rules
4
+ * against the provided `ModelRouteParams`. It supports conditions based on task hints,
5
+ * agent IDs, required capabilities, optimization preferences, language, and custom evaluators.
6
+ * If no rules match, it falls back to a configured default model and provider.
7
+ *
8
+ * This implementation aims for clarity, extensibility through custom conditions, and adherence
9
+ * to the `IModelRouter` interface.
10
+ *
11
+ * @module backend/agentos/core/llm/routing/ModelRouter
12
+ * @implements {IModelRouter}
13
+ */
14
+ import { IModelRouter, ModelRouteParams, ModelRouteResult } from './IModelRouter';
15
+ import { ModelInfo } from '../providers/IProvider';
16
+ import { AIModelProviderManager } from '../providers/AIModelProviderManager';
17
+ /**
18
+ * Custom error class for ModelRouter specific operational errors.
19
+ * @class ModelRouterError
20
+ * @extends {Error}
21
+ */
22
+ export declare class ModelRouterError extends Error {
23
+ /**
24
+ * A unique code identifying the type of error.
25
+ * @example 'INITIALIZATION_FAILED', 'RULE_EVALUATION_ERROR', 'NO_MODEL_MATCHED'
26
+ */
27
+ readonly code: string;
28
+ /** Optional details or context about the error. */
29
+ readonly details?: unknown;
30
+ /**
31
+ * Creates an instance of ModelRouterError.
32
+ * @param {string} message - A human-readable description of the error.
33
+ * @param {string} code - A unique code identifying the type of error.
34
+ * @param {unknown} [details] - Optional details or context about the error.
35
+ */
36
+ constructor(message: string, code: string, details?: unknown);
37
+ }
38
+ /**
39
+ * Defines a single routing rule that determines model selection based on conditions.
40
+ * Rules are evaluated in order of priority.
41
+ */
42
+ export interface RoutingRule {
43
+ /** A unique identifier for the rule, useful for logging and debugging. */
44
+ id: string;
45
+ /** An optional description of the rule's purpose and logic. */
46
+ description?: string;
47
+ /**
48
+ * Priority of the rule. Lower numbers are evaluated first.
49
+ * @default 0
50
+ */
51
+ priority?: number;
52
+ /**
53
+ * A set of conditions that must ALL be met for this rule's action to be applied.
54
+ * If a condition field is omitted, it is not checked.
55
+ */
56
+ conditions: {
57
+ /** Keywords or regex patterns to match in `ModelRouteParams.query` or `ModelRouteParams.taskHint`. Case-insensitive. */
58
+ queryOrTaskHintContains?: string[];
59
+ /** Matches `ModelRouteParams.requestingAgentId`. */
60
+ requestingAgentId?: string;
61
+ /** Matches `ModelRouteParams.personaId`. */
62
+ personaId?: string;
63
+ /**
64
+ * All specified capabilities must be present in the candidate model's `ModelInfo.capabilities`.
65
+ * @example ["tool_use", "json_mode"]
66
+ */
67
+ requiredCapabilities?: string[];
68
+ /** Matches `ModelRouteParams.optimizationPreference`. */
69
+ optimizationPreference?: ModelRouteParams['optimizationPreference'];
70
+ /** Matches `ModelRouteParams.language`. */
71
+ language?: string;
72
+ /**
73
+ * Name of a custom condition evaluator function registered with the router.
74
+ * Allows for complex, programmatic condition checking.
75
+ * @example "isUserPremiumTier"
76
+ */
77
+ customCondition?: string;
78
+ /** Parameters to be passed to the `customCondition` evaluator function. */
79
+ customConditionParams?: Record<string, unknown>;
80
+ };
81
+ /** The action to take if all conditions are met, specifying the target model and provider. */
82
+ action: {
83
+ /** ID of the provider to use (must be configured in `AIModelProviderManager`). */
84
+ providerId: string;
85
+ /** ID of the model to use on that provider. */
86
+ modelId: string;
87
+ /** Optional reasoning for this choice, to be included in `ModelRouteResult.reasoning`. */
88
+ reasoning?: string;
89
+ /** Optional classification of the estimated cost tier (e.g., "low", "medium", "high"). */
90
+ estimatedCostTier?: ModelRouteResult['estimatedCostTier'];
91
+ };
92
+ }
93
+ /**
94
+ * Configuration for the `ModelRouter`.
95
+ */
96
+ export interface ModelRouterConfig {
97
+ /**
98
+ * An array of routing rules. These are sorted by priority before evaluation.
99
+ * @see {@link RoutingRule}
100
+ */
101
+ rules: RoutingRule[];
102
+ /**
103
+ * Default provider ID to use if no rules match or if a matched rule's provider is unavailable.
104
+ * This provider must be configured in the `AIModelProviderManager`.
105
+ */
106
+ defaultProviderId: string;
107
+ /**
108
+ * Default model ID to use if no rules match.
109
+ * This model must be available on the `defaultProviderId`.
110
+ */
111
+ defaultModelId: string;
112
+ /** Optional reasoning to use when the default model is selected. */
113
+ defaultReasoning?: string;
114
+ /**
115
+ * A map of custom condition evaluator functions.
116
+ * The key is the `customCondition` string specified in a rule's conditions,
117
+ * and the value is the evaluator function.
118
+ * The function receives `ModelRouteParams` and the rule's `customConditionParams`,
119
+ * and should return `true` if the condition is met, `false` otherwise.
120
+ * @example
121
+ * customConditionEvaluators: {
122
+ * "isUserPremiumTier": async (params, ruleParams) => params.userSubscriptionTier?.isPremium || false
123
+ * }
124
+ */
125
+ customConditionEvaluators?: Record<string, (params: ModelRouteParams, conditionParams: Record<string, unknown>) => Promise<boolean> | boolean>;
126
+ }
127
+ /**
128
+ * @class ModelRouter
129
+ * @implements {IModelRouter}
130
+ * A rule-based implementation of `IModelRouter`. It selects an AI model by evaluating
131
+ * a configured set of rules in order of priority. This router is designed to be
132
+ * flexible and extensible through declarative rules and custom condition evaluators.
133
+ */
134
+ export declare class ModelRouter implements IModelRouter {
135
+ /** @inheritdoc */
136
+ readonly routerId = "rule_based_router_v1.1";
137
+ private config;
138
+ private providerManager;
139
+ private isInitialized;
140
+ /**
141
+ * Constructs a ModelRouter instance.
142
+ * The router must be initialized via `initialize()` before use.
143
+ */
144
+ constructor();
145
+ /**
146
+ * Ensures the router has been properly initialized.
147
+ * @private
148
+ * @throws {ModelRouterError} If not initialized.
149
+ */
150
+ private ensureInitialized;
151
+ /** @inheritdoc */
152
+ initialize(config: ModelRouterConfig, // Using the more specific ModelRouterConfig
153
+ providerManager: AIModelProviderManager, _promptEngine?: any): Promise<void>;
154
+ /** @inheritdoc */
155
+ selectModel(params: ModelRouteParams, availableModels?: ModelInfo[]): Promise<ModelRouteResult | null>;
156
+ }
157
+ //# sourceMappingURL=ModelRouter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModelRouter.d.ts","sourceRoot":"","sources":["../../../../src/core/llm/routing/ModelRouter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,190 @@
1
+ // File: backend/agentos/core/llm/routing/ModelRouter.ts
2
+ /**
3
+ * Custom error class for ModelRouter specific operational errors.
4
+ * @class ModelRouterError
5
+ * @extends {Error}
6
+ */
7
+ export class ModelRouterError extends Error {
8
+ /**
9
+ * Creates an instance of ModelRouterError.
10
+ * @param {string} message - A human-readable description of the error.
11
+ * @param {string} code - A unique code identifying the type of error.
12
+ * @param {unknown} [details] - Optional details or context about the error.
13
+ */
14
+ constructor(message, code, details) {
15
+ super(message);
16
+ this.name = 'ModelRouterError';
17
+ this.code = code;
18
+ this.details = details;
19
+ Object.setPrototypeOf(this, ModelRouterError.prototype);
20
+ }
21
+ }
22
+ /**
23
+ * @class ModelRouter
24
+ * @implements {IModelRouter}
25
+ * A rule-based implementation of `IModelRouter`. It selects an AI model by evaluating
26
+ * a configured set of rules in order of priority. This router is designed to be
27
+ * flexible and extensible through declarative rules and custom condition evaluators.
28
+ */
29
+ export class ModelRouter {
30
+ /**
31
+ * Constructs a ModelRouter instance.
32
+ * The router must be initialized via `initialize()` before use.
33
+ */
34
+ constructor() {
35
+ /** @inheritdoc */
36
+ this.routerId = 'rule_based_router_v1.1'; // Version incremented
37
+ this.isInitialized = false;
38
+ }
39
+ /**
40
+ * Ensures the router has been properly initialized.
41
+ * @private
42
+ * @throws {ModelRouterError} If not initialized.
43
+ */
44
+ ensureInitialized() {
45
+ if (!this.isInitialized) {
46
+ throw new ModelRouterError('ModelRouter is not initialized. Call initialize() first.', 'NOT_INITIALIZED');
47
+ }
48
+ }
49
+ /** @inheritdoc */
50
+ async initialize(config, // Using the more specific ModelRouterConfig
51
+ providerManager,
52
+ // PromptEngine is not used by this rule-based router implementation, but kept for interface compliance if needed elsewhere.
53
+ _promptEngine) {
54
+ if (!config) {
55
+ throw new ModelRouterError("Configuration object is required for ModelRouter initialization.", 'INIT_CONFIG_MISSING');
56
+ }
57
+ if (!config.rules || !Array.isArray(config.rules)) {
58
+ throw new ModelRouterError("Configuration 'rules' array is required.", 'INIT_RULES_MISSING');
59
+ }
60
+ if (!config.defaultProviderId || !config.defaultModelId) {
61
+ throw new ModelRouterError("Configuration requires 'defaultProviderId' and 'defaultModelId'.", 'INIT_DEFAULTS_MISSING');
62
+ }
63
+ if (!providerManager) {
64
+ throw new ModelRouterError('AIModelProviderManager instance is required for ModelRouter initialization.', 'INIT_PROVIDER_MANAGER_MISSING');
65
+ }
66
+ this.config = {
67
+ ...config,
68
+ rules: [...config.rules].sort((a, b) => (a.priority || 0) - (b.priority || 0)), // Sort rules by priority
69
+ customConditionEvaluators: config.customConditionEvaluators || {},
70
+ defaultReasoning: config.defaultReasoning || 'Default model selection as no specific rules matched.',
71
+ };
72
+ this.providerManager = providerManager;
73
+ this.isInitialized = true;
74
+ console.log(`ModelRouter (${this.routerId}) initialized with ${this.config.rules.length} rules.`);
75
+ }
76
+ /** @inheritdoc */
77
+ async selectModel(params, availableModels // Router can use this or fetch its own
78
+ ) {
79
+ this.ensureInitialized();
80
+ const allKnownModels = availableModels || await this.providerManager.listAllAvailableModels();
81
+ if (allKnownModels.length === 0) {
82
+ console.warn("ModelRouter: No models available from AIModelProviderManager. Cannot route.");
83
+ return null;
84
+ }
85
+ const contextQuery = params.query?.toLowerCase() || '';
86
+ const contextTaskHint = params.taskHint?.toLowerCase() || '';
87
+ const combinedSearchText = `${contextQuery} ${contextTaskHint}`.trim();
88
+ for (const rule of this.config.rules) {
89
+ let conditionsMet = true;
90
+ // Check queryOrTaskHintContains
91
+ if (rule.conditions.queryOrTaskHintContains) {
92
+ if (!combinedSearchText || !rule.conditions.queryOrTaskHintContains.some(keyword => combinedSearchText.includes(keyword.toLowerCase()))) {
93
+ conditionsMet = false;
94
+ }
95
+ }
96
+ // Check requestingAgentId
97
+ if (conditionsMet && rule.conditions.requestingAgentId && rule.conditions.requestingAgentId !== params.requestingAgentId) {
98
+ conditionsMet = false;
99
+ }
100
+ // Check personaId
101
+ if (conditionsMet && rule.conditions.personaId && rule.conditions.personaId !== params.personaId) {
102
+ conditionsMet = false;
103
+ }
104
+ // Check optimizationPreference
105
+ if (conditionsMet && rule.conditions.optimizationPreference && rule.conditions.optimizationPreference !== params.optimizationPreference) {
106
+ conditionsMet = false;
107
+ }
108
+ // Check language
109
+ if (conditionsMet && rule.conditions.language && rule.conditions.language.toLowerCase() !== params.language?.toLowerCase()) {
110
+ conditionsMet = false;
111
+ }
112
+ // If basic conditions met, fetch target model info to check capabilities
113
+ let targetModelInfo;
114
+ if (conditionsMet) {
115
+ targetModelInfo = allKnownModels.find(m => m.modelId === rule.action.modelId && m.providerId === rule.action.providerId);
116
+ if (!targetModelInfo) {
117
+ conditionsMet = false; // Target model specified in rule not found/available
118
+ }
119
+ }
120
+ // Check requiredCapabilities against the targetModelInfo
121
+ if (conditionsMet && targetModelInfo && rule.conditions.requiredCapabilities) {
122
+ if (!rule.conditions.requiredCapabilities.every(reqCap => targetModelInfo.capabilities.includes(reqCap))) {
123
+ conditionsMet = false;
124
+ }
125
+ }
126
+ // Check customCondition
127
+ if (conditionsMet && rule.conditions.customCondition) {
128
+ const evaluator = this.config.customConditionEvaluators[rule.conditions.customCondition];
129
+ if (evaluator) {
130
+ try {
131
+ if (!(await evaluator(params, rule.conditions.customConditionParams || {}))) {
132
+ conditionsMet = false;
133
+ }
134
+ }
135
+ catch (evalError) {
136
+ console.error(`ModelRouter: Error evaluating custom condition '${rule.conditions.customCondition}' for rule '${rule.id}':`, evalError);
137
+ conditionsMet = false; // Treat evaluation error as condition not met
138
+ }
139
+ }
140
+ else {
141
+ console.warn(`ModelRouter: Custom condition evaluator '${rule.conditions.customCondition}' not found for rule '${rule.id}'. Rule skipped.`);
142
+ conditionsMet = false; // Skip rule if evaluator is missing
143
+ }
144
+ }
145
+ if (conditionsMet && targetModelInfo) {
146
+ const provider = this.providerManager.getProvider(targetModelInfo.providerId);
147
+ if (provider?.isInitialized) {
148
+ console.log(`ModelRouter (${this.routerId}): Rule '${rule.id}' matched. Selecting model '${targetModelInfo.modelId}' on provider '${targetModelInfo.providerId}'.`);
149
+ return {
150
+ provider: provider,
151
+ modelId: targetModelInfo.modelId,
152
+ modelInfo: targetModelInfo,
153
+ reasoning: rule.action.reasoning || rule.description || `Matched rule '${rule.id}'`,
154
+ estimatedCostTier: rule.action.estimatedCostTier,
155
+ confidence: 0.9, // High confidence for explicit rule match
156
+ metadata: { matchedRuleId: rule.id, source: this.routerId },
157
+ };
158
+ }
159
+ else {
160
+ console.warn(`ModelRouter (${this.routerId}): Rule '${rule.id}' matched, but provider '${targetModelInfo.providerId}' for model '${targetModelInfo.modelId}' is not available or initialized.`);
161
+ }
162
+ }
163
+ }
164
+ // If no rules matched, use defaults
165
+ const defaultProvider = this.providerManager.getProvider(this.config.defaultProviderId);
166
+ if (defaultProvider?.isInitialized) {
167
+ const defaultModelInfo = allKnownModels.find(m => m.modelId === this.config.defaultModelId && m.providerId === this.config.defaultProviderId);
168
+ if (defaultModelInfo) {
169
+ console.log(`ModelRouter (${this.routerId}): No specific rules matched. Using default model '${defaultModelInfo.modelId}' on provider '${defaultModelInfo.providerId}'.`);
170
+ return {
171
+ provider: defaultProvider,
172
+ modelId: defaultModelInfo.modelId,
173
+ modelInfo: defaultModelInfo,
174
+ reasoning: this.config.defaultReasoning,
175
+ confidence: 0.5, // Lower confidence for default
176
+ metadata: { usingDefaults: true, source: this.routerId },
177
+ };
178
+ }
179
+ else {
180
+ console.warn(`ModelRouter (${this.routerId}): Default model '${this.config.defaultModelId}' on provider '${this.config.defaultProviderId}' not found in available models.`);
181
+ }
182
+ }
183
+ else {
184
+ console.warn(`ModelRouter (${this.routerId}): Default provider '${this.config.defaultProviderId}' not found or not initialized.`);
185
+ }
186
+ console.error(`ModelRouter (${this.routerId}): No rules matched AND default model/provider configuration is invalid or unavailable. Cannot select a model.`);
187
+ return null; // No model could be selected
188
+ }
189
+ }
190
+ //# sourceMappingURL=ModelRouter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModelRouter.js","sourceRoot":"","sources":["../../../../src/core/llm/routing/ModelRouter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * @fileoverview Backpressure batching wrapper for provider streaming chunks (`ModelCompletionResponse`).
3
+ * Combines small, high-frequency deltas into larger aggregated chunks to reduce downstream
4
+ * dispatch overhead (websocket emissions, DOM updates, etc.) while preserving core invariants:
5
+ * - Text remains append-only (merged into a single `responseTextDelta` per batch).
6
+ * - Tool/function argument deltas merged per (choiceIndex, toolCallId) into single consolidated delta.
7
+ * - Exactly one terminal chunk with `isFinal: true` (forwarded from original final chunk).
8
+ * - Usage & error surfaced only when FINAL chunk encountered (or if intermediate provider error semantics change).
9
+ *
10
+ * Flush Triggers (any):
11
+ * 1. Latency: maxLatencyMs elapsed since first unflushed chunk arrival.
12
+ * 2. Size: accumulated text delta length >= maxTextDeltaChars.
13
+ * 3. Chunk Count: buffer size >= maxChunksPerBatch.
14
+ * 4. Explicit final provider chunk.
15
+ * 5. Manual tool argument size threshold (maxToolArgumentChars) exceeded.
16
+ *
17
+ * Design Choices:
18
+ * - Aggregated batch `id` composed from first chunk id + suffix `-batch-{sequence}` for traceability.
19
+ * - `choices` taken verbatim from first chunk in batch (providers do not mutate choice metadata mid-stream except deltas).
20
+ * - Non-final batches omit `usage` & `error` to keep semantics consistent. (If provider emits an error chunk mid-stream
21
+ * with `isFinal: true`, it will be flushed immediately as its own batch.)
22
+ * - Tool call reconstruction at batch granularity only (full stream reconstruction still delegated to `StreamingReconstructor`).
23
+ *
24
+ * NOTE: This is an optional optimization layer. Consumers requiring raw per-token latency should bypass batching.
25
+ */
26
+ import { ModelCompletionResponse } from '../providers/IProvider';
27
+ /** Configuration options for StreamingBatcher. */
28
+ export interface StreamingBatcherOptions {
29
+ /** Max wall-clock latency before forcing a flush (milliseconds). */
30
+ maxLatencyMs?: number;
31
+ /** Max accumulated text delta characters before flush. */
32
+ maxTextDeltaChars?: number;
33
+ /** Max accumulated tool argument characters (combined per tool call) before flush. */
34
+ maxToolArgumentChars?: number;
35
+ /** Max number of provider chunks to accumulate before flush. */
36
+ maxChunksPerBatch?: number;
37
+ /** If true, include batchSequence on emitted chunk object for diagnostics. */
38
+ annotateBatches?: boolean;
39
+ }
40
+ /**
41
+ * Batches an async stream of `ModelCompletionResponse` chunks according to `StreamingBatcherOptions`.
42
+ * @param stream Underlying provider async generator.
43
+ * @param options Optional batching thresholds.
44
+ * @returns AsyncGenerator<ModelCompletionResponse>
45
+ */
46
+ export declare function batchStream(stream: AsyncGenerator<ModelCompletionResponse, void, undefined>, options?: StreamingBatcherOptions): AsyncGenerator<ModelCompletionResponse, void, undefined>;
47
+ /** Convenience OO wrapper for imperative control (mirrors functional batchStream). */
48
+ export declare class StreamingBatcher {
49
+ private opts;
50
+ constructor(options?: StreamingBatcherOptions);
51
+ batch(stream: AsyncGenerator<ModelCompletionResponse, void, undefined>): AsyncGenerator<ModelCompletionResponse, void, undefined>;
52
+ }
53
+ export default StreamingBatcher;
54
+ //# sourceMappingURL=StreamingBatcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StreamingBatcher.d.ts","sourceRoot":"","sources":["../../../../src/core/llm/streaming/StreamingBatcher.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,kDAAkD;AAClD,MAAM,WAAW,uBAAuB;IACtC,oEAAoE;IACpE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0DAA0D;IAC1D,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,sFAAsF;IACtF,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,gEAAgE;IAChE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,8EAA8E;IAC9E,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAmGD;;;;;GAKG;AACH,wBAAuB,WAAW,CAChC,MAAM,EAAE,cAAc,CAAC,uBAAuB,EAAE,IAAI,EAAE,SAAS,CAAC,EAChE,OAAO,GAAE,uBAA4B,GACpC,cAAc,CAAC,uBAAuB,EAAE,IAAI,EAAE,SAAS,CAAC,CA0E1D;AAED,sFAAsF;AACtF,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,IAAI,CAAoC;gBACpC,OAAO,GAAE,uBAA4B;IAGjD,KAAK,CAAC,MAAM,EAAE,cAAc,CAAC,uBAAuB,EAAE,IAAI,EAAE,SAAS,CAAC;CAGvE;AAED,eAAe,gBAAgB,CAAC"}