@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,143 @@
1
+ /**
2
+ * @fileoverview Implements the ToolExecutor class, responsible for the direct
3
+ * execution of tools conforming to the ITool interface. It handles critical
4
+ * aspects like input argument validation against JSON schemas and invoking
5
+ * the tool's core logic.
6
+ *
7
+ * @module backend/agentos/core/tools/ToolExecutor
8
+ * @see ./ITool.ts for ITool, ToolExecutionResult, ToolExecutionContext.
9
+ * @see ../cognitive_substrate/IGMI.ts for ToolCallRequest, UserContext.
10
+ * @see @framers/agentos/utils/errors.ts for GMIError, GMIErrorCode, createGMIErrorFromError.
11
+ */
12
+ import { ITool, ToolExecutionResult } from './ITool';
13
+ import { ToolCallRequest, UserContext } from '../../cognitive_substrate/IGMI';
14
+ import type { IAuthService, ISubscriptionService } from '../../services/user_auth/types';
15
+ import { ExtensionRegistry } from '../../extensions';
16
+ /**
17
+ * @interface ToolExecutionRequestDetails
18
+ * @description Encapsulates all necessary information for the `ToolExecutor` to execute a tool.
19
+ * This includes the specific tool call request (typically originating from an LLM),
20
+ * and crucial contextual information about the invoking GMI, Persona, and User.
21
+ *
22
+ * @property {ToolCallRequest} toolCallRequest - The raw tool call request containing the target tool's
23
+ * function name and its arguments (usually as a JSON string or pre-parsed object).
24
+ * @property {string} gmiId - The ID of the GMI (Generalized Mind Instance) initiating the tool call.
25
+ * @property {string} personaId - The ID of the active Persona within the GMI.
26
+ * @property {string[]} personaCapabilities - Capabilities of the active Persona, used for preliminary checks.
27
+ * @property {UserContext} userContext - Contextual information about the end-user.
28
+ * @property {string} [correlationId] - Optional ID for tracing this specific execution across logs and systems.
29
+ */
30
+ export interface ToolExecutionRequestDetails {
31
+ toolCallRequest: ToolCallRequest;
32
+ gmiId: string;
33
+ personaId: string;
34
+ personaCapabilities: string[];
35
+ userContext: UserContext;
36
+ correlationId?: string;
37
+ }
38
+ /**
39
+ * @class ToolExecutor
40
+ * @description Manages a registry of `ITool` instances and robustly handles their execution.
41
+ * Key responsibilities include validating input arguments against each tool's defined JSON schema
42
+ * using Ajv, and then invoking the tool's `execute` method with the appropriate `ToolExecutionContext`.
43
+ * It ensures that tools are called correctly and their outputs (or errors) are processed consistently.
44
+ */
45
+ export declare class ToolExecutor {
46
+ private readonly toolRegistry;
47
+ private readonly directRegistrations;
48
+ private readonly authService?;
49
+ private readonly subscriptionService?;
50
+ /**
51
+ * Instance of Ajv for JSON schema validation.
52
+ * Note: The TS2709 error "Cannot use namespace 'Ajv' as a type" might indicate
53
+ * an issue with TypeScript configuration (e.g., esModuleInterop) or Ajv's type
54
+ * definitions version mismatch if it persists. The `import Ajv from 'ajv';`
55
+ * and `ajv: Ajv` usage with `new Ajv()` is standard for Ajv v8+.
56
+ * @private
57
+ * @type {InstanceType<typeof Ajv>}
58
+ */
59
+ private readonly ajv;
60
+ /**
61
+ * Creates an instance of ToolExecutor.
62
+ * Initializes an empty tool registry and configures an Ajv instance for JSON schema validation.
63
+ * Default tools can be registered via `registerDefaultTools` or explicitly.
64
+ *
65
+ * @constructor
66
+ * @param {IAuthService} [authService] - Optional. An instance of an authentication service.
67
+ * Used for potential future integration with more complex user-specific permission checks directly within the executor,
68
+ * though primary permission logic resides in `ToolPermissionManager`.
69
+ * @param {ISubscriptionService} [subscriptionService] - Optional. An instance of a subscription service.
70
+ * Similarly used for potential future feature-based tool access control at the executor level.
71
+ */
72
+ constructor(authService?: IAuthService, subscriptionService?: ISubscriptionService, toolRegistry?: ExtensionRegistry<ITool>);
73
+ /**
74
+ * Registers a tool with the executor, making it available for subsequent execution.
75
+ * Tools are indexed by their functional `name` property, which must be unique within the registry.
76
+ *
77
+ * @public
78
+ * @param {ITool} tool - The tool instance to register. It must conform to the `ITool` interface.
79
+ * @returns {void}
80
+ * @throws {GMIError} If the tool is invalid (e.g., missing `id` or `name` - `GMIErrorCode.INVALID_ARGUMENT`),
81
+ * or if a tool with the same functional `name` is already registered (`GMIErrorCode.ALREADY_EXISTS`).
82
+ */
83
+ registerTool(tool: ITool): Promise<void>;
84
+ /**
85
+ * Retrieves a registered tool instance by its functional name.
86
+ *
87
+ * @public
88
+ * @param {string} toolName - The `name` of the tool (as specified in `ITool.name` and used in `ToolCallRequest.name`).
89
+ * @returns {ITool | undefined} The `ITool` instance if found in the registry; otherwise, `undefined`.
90
+ */
91
+ getTool(toolName: string): ITool | undefined;
92
+ /**
93
+ * Unregisters a tool from the executor using its functional name.
94
+ * If the tool has a `shutdown` method, it is called prior to removal from the registry.
95
+ *
96
+ * @public
97
+ * @async
98
+ * @param {string} toolName - The `name` of the tool to unregister.
99
+ * @returns {Promise<boolean>} A promise resolving to `true` if the tool was found and successfully unregistered (including its shutdown, if applicable), `false` otherwise.
100
+ */
101
+ unregisterTool(toolName: string): Promise<boolean>;
102
+ /**
103
+ * Returns an array of definitions for all currently registered tools.
104
+ * This list typically includes essential information like the tool's name, description,
105
+ * input/output schemas, category, and required capabilities, making it suitable for
106
+ * LLM consumption for function calling or for UI display.
107
+ *
108
+ * @public
109
+ * @returns {Array<Pick<ITool, 'name' | 'description' | 'inputSchema' | 'outputSchema' | 'displayName' | 'category' | 'requiredCapabilities'>>}
110
+ * An array of partial tool information objects.
111
+ */
112
+ listAvailableTools(): Array<Pick<ITool, 'name' | 'description' | 'inputSchema' | 'outputSchema' | 'displayName' | 'category' | 'requiredCapabilities'>>;
113
+ /**
114
+ * Executes a specified tool based on the details provided in a `ToolExecutionRequestDetails` object.
115
+ * This is the core method of the executor, orchestrating validation, context preparation,
116
+ * actual tool invocation, and result packaging.
117
+ *
118
+ * @public
119
+ * @async
120
+ * @param {ToolExecutionRequestDetails} requestDetails - An object containing all necessary details for the tool execution,
121
+ * including the `ToolCallRequest` from the LLM and contextual GMI/user information.
122
+ * @returns {Promise<ToolExecutionResult>} A promise that resolves with the `ToolExecutionResult` object.
123
+ * This result indicates the success or failure of the execution and provides the tool's output or error details.
124
+ */
125
+ executeTool(requestDetails: ToolExecutionRequestDetails): Promise<ToolExecutionResult>;
126
+ /** @private
127
+ * Registers example tools. In a production system, tools would be loaded dynamically or via configuration.
128
+ */
129
+ private createDescriptorFromTool;
130
+ private registerDefaultTools;
131
+ /**
132
+ * Gracefully shuts down all registered tools that implement the optional `shutdown` method.
133
+ * This is typically called when the ToolExecutor itself is being shut down as part of a larger
134
+ * application termination sequence.
135
+ *
136
+ * @public
137
+ * @async
138
+ * @returns {Promise<void[]>} A promise that resolves when all tool shutdown attempts are complete.
139
+ * Individual tool shutdown errors are logged but do not prevent other tools from attempting shutdown.
140
+ */
141
+ shutdownAllTools(): Promise<void[]>;
142
+ }
143
+ //# sourceMappingURL=ToolExecutor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolExecutor.d.ts","sourceRoot":"","sources":["../../../src/core/tools/ToolExecutor.ts"],"names":[],"mappings":"AACA;;;;;;;;;;GAUG;AAMH,OAAO,EAAE,KAAK,EAAoB,mBAAmB,EAAwB,MAAM,SAAS,CAAC;AAC7F,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,KAAK,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAEzF,OAAO,EAAE,iBAAiB,EAAuC,MAAM,kBAAkB,CAAC;AAW1F;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,2BAA2B;IAC1C,eAAe,EAAE,eAAe,CAAC;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,WAAW,EAAE,WAAW,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;GAMG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA2B;IACxD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAc;IAClD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAe;IAC5C,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAuB;IAC5D;;;;;;;;OAQG;IACH,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA2B;IAE/C;;;;;;;;;;;MAWE;gBAEA,WAAW,CAAC,EAAE,YAAY,EAC1B,mBAAmB,CAAC,EAAE,oBAAoB,EAC1C,YAAY,CAAC,EAAE,iBAAiB,CAAC,KAAK,CAAC;IAgBzC;;;;;;;;;MASE;IACW,YAAY,CAAC,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;IA4BrD;;;;;;MAME;IACK,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS;IAInD;;;;;;;;MAQE;IACW,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAoB/D;;;;;;;;;MASE;IACK,kBAAkB,IAAI,KAAK,CAChC,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,GAAG,aAAa,GAAG,cAAc,GAAG,aAAa,GAAG,UAAU,GAAG,sBAAsB,CAAC,CAC3H;IAYD;;;;;;;;;;;MAWE;IACW,WAAW,CAAC,cAAc,EAAE,2BAA2B,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAiInG;;MAEE;IACF,OAAO,CAAC,wBAAwB;IAwBhC,OAAO,CAAC,oBAAoB;IAqD5B;;;;;;;;;MASE;IACW,gBAAgB,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;CAOjD"}
@@ -0,0 +1,364 @@
1
+ // File: backend/agentos/core/tools/ToolExecutor.ts
2
+ /**
3
+ * @fileoverview Implements the ToolExecutor class, responsible for the direct
4
+ * execution of tools conforming to the ITool interface. It handles critical
5
+ * aspects like input argument validation against JSON schemas and invoking
6
+ * the tool's core logic.
7
+ *
8
+ * @module backend/agentos/core/tools/ToolExecutor
9
+ * @see ./ITool.ts for ITool, ToolExecutionResult, ToolExecutionContext.
10
+ * @see ../cognitive_substrate/IGMI.ts for ToolCallRequest, UserContext.
11
+ * @see @framers/agentos/utils/errors.ts for GMIError, GMIErrorCode, createGMIErrorFromError.
12
+ */
13
+ import Ajv from 'ajv';
14
+ import addFormats from 'ajv-formats';
15
+ import { uuidv4 } from '../../utils/uuid.js';
16
+ import { GMIError, GMIErrorCode, createGMIErrorFromError } from '../../utils/errors.js';
17
+ import { ExtensionRegistry, EXTENSION_KIND_TOOL } from '../../extensions/index.js';
18
+ /**
19
+ * @class ToolExecutor
20
+ * @description Manages a registry of `ITool` instances and robustly handles their execution.
21
+ * Key responsibilities include validating input arguments against each tool's defined JSON schema
22
+ * using Ajv, and then invoking the tool's `execute` method with the appropriate `ToolExecutionContext`.
23
+ * It ensures that tools are called correctly and their outputs (or errors) are processed consistently.
24
+ */
25
+ export class ToolExecutor {
26
+ /**
27
+ * Creates an instance of ToolExecutor.
28
+ * Initializes an empty tool registry and configures an Ajv instance for JSON schema validation.
29
+ * Default tools can be registered via `registerDefaultTools` or explicitly.
30
+ *
31
+ * @constructor
32
+ * @param {IAuthService} [authService] - Optional. An instance of an authentication service.
33
+ * Used for potential future integration with more complex user-specific permission checks directly within the executor,
34
+ * though primary permission logic resides in `ToolPermissionManager`.
35
+ * @param {ISubscriptionService} [subscriptionService] - Optional. An instance of a subscription service.
36
+ * Similarly used for potential future feature-based tool access control at the executor level.
37
+ */
38
+ constructor(authService, subscriptionService, toolRegistry) {
39
+ this.toolRegistry = toolRegistry ?? new ExtensionRegistry(EXTENSION_KIND_TOOL);
40
+ this.directRegistrations = new Set();
41
+ this.authService = authService;
42
+ this.subscriptionService = subscriptionService;
43
+ this.ajv = new Ajv({ allErrors: true, coerceTypes: true, useDefaults: true });
44
+ addFormats(this.ajv); // Adds support for standard formats like "date-time", "email", "uri", etc.
45
+ this.registerDefaultTools();
46
+ console.log(`ToolExecutor initialized. Registered tools: ${this.toolRegistry.listActive().length}.`);
47
+ }
48
+ /**
49
+ * Registers a tool with the executor, making it available for subsequent execution.
50
+ * Tools are indexed by their functional `name` property, which must be unique within the registry.
51
+ *
52
+ * @public
53
+ * @param {ITool} tool - The tool instance to register. It must conform to the `ITool` interface.
54
+ * @returns {void}
55
+ * @throws {GMIError} If the tool is invalid (e.g., missing `id` or `name` - `GMIErrorCode.INVALID_ARGUMENT`),
56
+ * or if a tool with the same functional `name` is already registered (`GMIErrorCode.ALREADY_EXISTS`).
57
+ */
58
+ async registerTool(tool) {
59
+ if (!tool ||
60
+ typeof tool.name !== 'string' ||
61
+ !tool.name.trim() ||
62
+ typeof tool.id !== 'string' ||
63
+ !tool.id.trim()) {
64
+ throw new GMIError("Invalid tool object provided for registration: 'id' and 'name' are required and must be non-empty strings.", GMIErrorCode.INVALID_ARGUMENT, { toolDetails: { id: tool?.id, name: tool?.name } });
65
+ }
66
+ if (this.directRegistrations.has(tool.name)) {
67
+ await this.toolRegistry.unregister(tool.name);
68
+ this.directRegistrations.delete(tool.name);
69
+ }
70
+ const descriptor = this.createDescriptorFromTool(tool);
71
+ await this.toolRegistry.register(descriptor);
72
+ this.directRegistrations.add(tool.name);
73
+ console.log(`ToolExecutor: Tool '${tool.name}' (ID: '${tool.id}', Version: ${tool.version || 'N/A'}) successfully registered.`);
74
+ }
75
+ /**
76
+ * Retrieves a registered tool instance by its functional name.
77
+ *
78
+ * @public
79
+ * @param {string} toolName - The `name` of the tool (as specified in `ITool.name` and used in `ToolCallRequest.name`).
80
+ * @returns {ITool | undefined} The `ITool` instance if found in the registry; otherwise, `undefined`.
81
+ */
82
+ getTool(toolName) {
83
+ return this.toolRegistry.getActive(toolName)?.payload;
84
+ }
85
+ /**
86
+ * Unregisters a tool from the executor using its functional name.
87
+ * If the tool has a `shutdown` method, it is called prior to removal from the registry.
88
+ *
89
+ * @public
90
+ * @async
91
+ * @param {string} toolName - The `name` of the tool to unregister.
92
+ * @returns {Promise<boolean>} A promise resolving to `true` if the tool was found and successfully unregistered (including its shutdown, if applicable), `false` otherwise.
93
+ */
94
+ async unregisterTool(toolName) {
95
+ if (!this.directRegistrations.has(toolName)) {
96
+ console.warn(`ToolExecutor: Attempted to unregister tool '${toolName}', but no direct registration was found.`);
97
+ return false;
98
+ }
99
+ const removed = await this.toolRegistry.unregister(toolName);
100
+ if (removed) {
101
+ this.directRegistrations.delete(toolName);
102
+ console.log(`ToolExecutor: Tool '${toolName}' successfully unregistered.`);
103
+ }
104
+ else {
105
+ console.warn(`ToolExecutor: Failed to unregister tool '${toolName}'. Descriptor stack may be managed externally.`);
106
+ }
107
+ return removed;
108
+ }
109
+ /**
110
+ * Returns an array of definitions for all currently registered tools.
111
+ * This list typically includes essential information like the tool's name, description,
112
+ * input/output schemas, category, and required capabilities, making it suitable for
113
+ * LLM consumption for function calling or for UI display.
114
+ *
115
+ * @public
116
+ * @returns {Array<Pick<ITool, 'name' | 'description' | 'inputSchema' | 'outputSchema' | 'displayName' | 'category' | 'requiredCapabilities'>>}
117
+ * An array of partial tool information objects.
118
+ */
119
+ listAvailableTools() {
120
+ return this.toolRegistry.listActive().map(({ payload }) => ({
121
+ name: payload.name,
122
+ displayName: payload.displayName,
123
+ description: payload.description,
124
+ inputSchema: payload.inputSchema,
125
+ outputSchema: payload.outputSchema,
126
+ category: payload.category,
127
+ requiredCapabilities: payload.requiredCapabilities,
128
+ }));
129
+ }
130
+ /**
131
+ * Executes a specified tool based on the details provided in a `ToolExecutionRequestDetails` object.
132
+ * This is the core method of the executor, orchestrating validation, context preparation,
133
+ * actual tool invocation, and result packaging.
134
+ *
135
+ * @public
136
+ * @async
137
+ * @param {ToolExecutionRequestDetails} requestDetails - An object containing all necessary details for the tool execution,
138
+ * including the `ToolCallRequest` from the LLM and contextual GMI/user information.
139
+ * @returns {Promise<ToolExecutionResult>} A promise that resolves with the `ToolExecutionResult` object.
140
+ * This result indicates the success or failure of the execution and provides the tool's output or error details.
141
+ */
142
+ async executeTool(requestDetails) {
143
+ const { toolCallRequest, gmiId, personaId, personaCapabilities, userContext, correlationId } = requestDetails;
144
+ if (!toolCallRequest || !toolCallRequest.name || typeof toolCallRequest.name !== 'string') {
145
+ const errorMsg = "Invalid ToolCallRequest provided to ToolExecutor: 'name' is missing or invalid.";
146
+ console.error(`ToolExecutor: ${errorMsg}`, requestDetails);
147
+ return { success: false, error: errorMsg, details: { receivedRequest: toolCallRequest, code: GMIErrorCode.VALIDATION_ERROR } };
148
+ }
149
+ const toolName = toolCallRequest.name;
150
+ const toolDescriptor = this.toolRegistry.getActive(toolName);
151
+ const tool = toolDescriptor?.payload;
152
+ const logContext = `ToolExecutor (GMI: ${gmiId}, Persona: ${personaId}, Tool: ${toolName}, LLMCallID: ${toolCallRequest.id || 'N/A'})`;
153
+ if (!tool) {
154
+ const errorMsg = `Tool '${toolName}' not found in ToolExecutor registry. Cannot execute.`;
155
+ console.error(`${logContext}: ${errorMsg}`);
156
+ return { success: false, error: errorMsg, details: { toolName, reason: "NotRegisteredInExecutor" } };
157
+ }
158
+ if (tool.requiredCapabilities && tool.requiredCapabilities.length > 0) {
159
+ const hasAllCapabilities = tool.requiredCapabilities.every(cap => personaCapabilities.includes(cap));
160
+ if (!hasAllCapabilities) {
161
+ const missingCaps = tool.requiredCapabilities.filter(rc => !personaCapabilities.includes(rc));
162
+ const errorMsg = `Persona (ID: ${personaId}) lacks capabilities for tool '${tool.name}'. Required: [${tool.requiredCapabilities.join(', ')}], Missing: [${missingCaps.join(', ')}].`;
163
+ console.warn(`${logContext}: Capability check failed - ${errorMsg}`);
164
+ return { success: false, error: errorMsg, details: { toolName: tool.name, requiredCapabilities: tool.requiredCapabilities, possessedCapabilities: personaCapabilities, missingCapabilities: missingCaps } };
165
+ }
166
+ }
167
+ let parsedArgs;
168
+ try {
169
+ // Assuming toolCallRequest.arguments is already a Record<string, any> as per IGMI.ts ToolCallRequest definition
170
+ // If it can be a string, further parsing logic is needed.
171
+ if (typeof toolCallRequest.arguments === 'string') {
172
+ parsedArgs = JSON.parse(toolCallRequest.arguments);
173
+ }
174
+ else if (typeof toolCallRequest.arguments === 'object' && toolCallRequest.arguments !== null) {
175
+ parsedArgs = toolCallRequest.arguments;
176
+ }
177
+ else if (toolCallRequest.arguments === undefined || toolCallRequest.arguments === null) {
178
+ parsedArgs = {};
179
+ }
180
+ else {
181
+ throw new Error(`Tool arguments are not a JSON string or object: ${typeof toolCallRequest.arguments}`);
182
+ }
183
+ }
184
+ catch (parseError) {
185
+ const errorMsg = `Failed to parse arguments for tool '${tool.name}'. Arguments must be a valid JSON string or object.`;
186
+ console.warn(`${logContext}: Argument parsing failed. Raw Args: "${JSON.stringify(toolCallRequest.arguments)}". Error: ${parseError.message}`);
187
+ return { success: false, error: errorMsg, details: { toolName: tool.name, argumentParsingError: parseError.message, rawArguments: toolCallRequest.arguments } };
188
+ }
189
+ if (tool.inputSchema) {
190
+ const validate = this.ajv.compile(tool.inputSchema);
191
+ if (!validate(parsedArgs)) {
192
+ const errorMsg = `Invalid arguments for tool '${tool.name}'. Validation failed against input schema.`;
193
+ const validationErrors = Array.isArray(validate.errors)
194
+ ? validate.errors.map(err => ({
195
+ path: err.instancePath || err.schemaPath,
196
+ message: err.message,
197
+ params: err.params,
198
+ }))
199
+ : [{ message: 'Unknown schema validation error.' }];
200
+ console.warn(`${logContext}: Argument schema validation failed. Errors:`, JSON.stringify(validationErrors, null, 2), 'Parsed Args:', parsedArgs);
201
+ return { success: false, error: errorMsg, details: { toolName: tool.name, validationErrors, providedParsedArgs: parsedArgs } };
202
+ }
203
+ }
204
+ const executionContext = {
205
+ gmiId,
206
+ personaId,
207
+ userContext,
208
+ correlationId: correlationId || `tool-exec-${uuidv4()}`,
209
+ };
210
+ try {
211
+ console.log(`${logContext}: Executing tool '${tool.name}' (ID: '${tool.id}') with validated arguments:`, parsedArgs);
212
+ const startTime = Date.now();
213
+ const result = await tool.execute(parsedArgs, executionContext);
214
+ const durationMs = Date.now() - startTime;
215
+ const outputPreview = result.output ? JSON.stringify(result.output).substring(0, 150) + (JSON.stringify(result.output).length > 150 ? '...' : '') : 'N/A';
216
+ if (result.success) {
217
+ console.log(`${logContext}: Tool execution successful. Duration: ${durationMs}ms. Output preview: ${outputPreview}`);
218
+ }
219
+ else {
220
+ console.warn(`${logContext}: Tool execution reported failure. Duration: ${durationMs}ms. Error: ${result.error}`, result.details);
221
+ }
222
+ if (tool.outputSchema && result.success && result.output !== undefined) {
223
+ const validateOutput = this.ajv.compile(tool.outputSchema);
224
+ if (!validateOutput(result.output)) {
225
+ const outputErrorMsg = `Tool '${tool.name}' produced output that failed its defined output schema validation.`;
226
+ const outputValidationErrors = Array.isArray(validateOutput.errors)
227
+ ? validateOutput.errors.map(err => ({
228
+ path: err.instancePath,
229
+ message: err.message,
230
+ params: err.params,
231
+ }))
232
+ : [];
233
+ console.warn(`${logContext}: Output schema validation failed for '${tool.name}'. Errors:`, JSON.stringify(outputValidationErrors, null, 2));
234
+ return {
235
+ ...result,
236
+ success: false, // Mark as overall failure if output schema validation fails
237
+ error: result.error ? `${result.error} And output schema validation failed.` : outputErrorMsg,
238
+ details: {
239
+ ...(result.details || {}),
240
+ outputValidationWarning: outputErrorMsg,
241
+ outputValidationErrors,
242
+ },
243
+ };
244
+ }
245
+ }
246
+ return result;
247
+ }
248
+ catch (err) {
249
+ const execErrorMsg = `Critical unhandled error during the execution of tool '${tool.name}'.`;
250
+ console.error(`${logContext}: ${execErrorMsg}`, err);
251
+ const gmiErr = createGMIErrorFromError(err, GMIErrorCode.TOOL_EXECUTION_FAILED, { toolName: tool.name, arguments: parsedArgs }, execErrorMsg);
252
+ return {
253
+ success: false,
254
+ error: gmiErr.message,
255
+ details: {
256
+ toolName: tool.name,
257
+ errorCode: gmiErr.code,
258
+ errorDetailsFromGMIError: gmiErr.details,
259
+ rawErrorString: err.toString(),
260
+ stack: err.stack
261
+ }
262
+ };
263
+ }
264
+ }
265
+ /** @private
266
+ * Registers example tools. In a production system, tools would be loaded dynamically or via configuration.
267
+ */
268
+ createDescriptorFromTool(tool) {
269
+ return {
270
+ id: tool.name,
271
+ kind: EXTENSION_KIND_TOOL,
272
+ payload: tool,
273
+ metadata: {
274
+ toolId: tool.id,
275
+ origin: 'direct-registration',
276
+ },
277
+ onDeactivate: async () => {
278
+ if (typeof tool.shutdown === 'function') {
279
+ try {
280
+ await tool.shutdown();
281
+ }
282
+ catch (error) {
283
+ console.error(`ToolExecutor: Error during shutdown of tool '${tool.name}' (ID: '${tool.id}')`, error);
284
+ }
285
+ }
286
+ },
287
+ };
288
+ }
289
+ registerDefaultTools() {
290
+ const currentTimeTool = {
291
+ id: "system-current-time-tool-v1.1",
292
+ name: "getCurrentDateTime",
293
+ displayName: "Current Date & Time Service",
294
+ description: "Gets the current date and time, optionally for a specific IANA timezone (e.g., 'America/New_York', 'Europe/London'). Defaults to the server's local timezone if no timezone is provided or if the provided one is invalid.",
295
+ inputSchema: {
296
+ type: "object",
297
+ properties: { timezone: { type: "string", description: "Optional: IANA timezone string (e.g., 'America/Los_Angeles', 'Europe/London'). Examples: 'UTC', 'America/New_York', 'Asia/Tokyo'.", format: "time-zone" } },
298
+ additionalProperties: false,
299
+ },
300
+ outputSchema: {
301
+ type: "object",
302
+ properties: {
303
+ currentTime: { type: "string", description: "The current date and time formatted as a locale string (e.g., '5/24/2025, 11:43:58 AM')." },
304
+ timezoneUsed: { type: "string", description: "The IANA timezone that was used for the calculation." },
305
+ isoTimestamp: { type: "string", format: "date-time", description: "The current date and time in ISO 8601 format (UTC)." }
306
+ },
307
+ required: ["currentTime", "timezoneUsed", "isoTimestamp"]
308
+ },
309
+ category: "System Utilities", version: "1.1.0", hasSideEffects: false,
310
+ execute: async (args, context) => {
311
+ try {
312
+ let effectiveTimezone = args.timezone;
313
+ const serverDefaultTimezone = Intl.DateTimeFormat().resolvedOptions().timeZone || "UTC";
314
+ if (effectiveTimezone) {
315
+ try {
316
+ new Date().toLocaleString("en-US", { timeZone: effectiveTimezone });
317
+ }
318
+ catch (tzError) {
319
+ console.warn(`ToolExecutor[getCurrentDateTime]: Invalid timezone '${args.timezone}' provided by GMI ${context.gmiId}. Falling back to ${serverDefaultTimezone}. Error: ${tzError.message}`);
320
+ effectiveTimezone = serverDefaultTimezone;
321
+ }
322
+ }
323
+ else {
324
+ effectiveTimezone = serverDefaultTimezone;
325
+ }
326
+ const currentDate = new Date();
327
+ return {
328
+ success: true,
329
+ output: {
330
+ currentTime: currentDate.toLocaleString("en-US", { timeZone: effectiveTimezone, hour12: true, year: 'numeric', month: 'numeric', day: 'numeric', hour: 'numeric', minute: 'numeric', second: 'numeric' }),
331
+ timezoneUsed: effectiveTimezone,
332
+ isoTimestamp: currentDate.toISOString(),
333
+ },
334
+ contentType: "application/json"
335
+ };
336
+ }
337
+ catch (e) {
338
+ return { success: false, error: `Error getting current time: ${e.message}`, details: { stack: e.stack } };
339
+ }
340
+ }
341
+ };
342
+ this.registerTool(currentTimeTool).catch((e) => {
343
+ console.error('Error registering default current time tool:', e);
344
+ });
345
+ }
346
+ /**
347
+ * Gracefully shuts down all registered tools that implement the optional `shutdown` method.
348
+ * This is typically called when the ToolExecutor itself is being shut down as part of a larger
349
+ * application termination sequence.
350
+ *
351
+ * @public
352
+ * @async
353
+ * @returns {Promise<void[]>} A promise that resolves when all tool shutdown attempts are complete.
354
+ * Individual tool shutdown errors are logged but do not prevent other tools from attempting shutdown.
355
+ */
356
+ async shutdownAllTools() {
357
+ const activeCount = this.toolRegistry.listActive().length;
358
+ console.log(`ToolExecutor: Initiating shutdown for ${activeCount} registered tool(s)...`);
359
+ await this.toolRegistry.clear();
360
+ this.directRegistrations.clear();
361
+ return [];
362
+ }
363
+ }
364
+ //# sourceMappingURL=ToolExecutor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolExecutor.js","sourceRoot":"","sources":["../../../src/core/tools/ToolExecutor.ts"],"names":[],"mappings":"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"}