@juspay/neurolink 9.5.3 → 9.7.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 (423) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/README.md +29 -25
  3. package/dist/adapters/video/vertexVideoHandler.js +3 -3
  4. package/dist/agent/directTools.d.ts +5 -5
  5. package/dist/cli/commands/config.d.ts +9 -9
  6. package/dist/cli/commands/serve.d.ts +37 -0
  7. package/dist/cli/commands/serve.js +302 -229
  8. package/dist/cli/commands/setup-anthropic.d.ts +2 -2
  9. package/dist/cli/commands/setup-azure.d.ts +2 -2
  10. package/dist/cli/commands/setup-bedrock.d.ts +2 -2
  11. package/dist/cli/commands/setup-gcp.d.ts +2 -2
  12. package/dist/cli/commands/setup-google-ai.d.ts +2 -2
  13. package/dist/cli/commands/setup-huggingface.d.ts +2 -2
  14. package/dist/cli/commands/setup-mistral.d.ts +2 -2
  15. package/dist/cli/commands/setup-openai.d.ts +2 -2
  16. package/dist/cli/commands/setup.d.ts +2 -2
  17. package/dist/cli/factories/commandFactory.js +16 -2
  18. package/dist/cli/loop/optionsSchema.d.ts +2 -2
  19. package/dist/cli/loop/optionsSchema.js +4 -0
  20. package/dist/cli/loop/session.d.ts +4 -0
  21. package/dist/cli/loop/session.js +49 -4
  22. package/dist/cli/utils/interactiveSetup.d.ts +4 -4
  23. package/dist/config/conversationMemory.d.ts +2 -0
  24. package/dist/config/conversationMemory.js +5 -5
  25. package/dist/constants/contextWindows.d.ts +46 -0
  26. package/dist/constants/contextWindows.js +156 -0
  27. package/dist/context/budgetChecker.d.ts +18 -0
  28. package/dist/context/budgetChecker.js +71 -0
  29. package/dist/context/contextCompactor.d.ts +22 -0
  30. package/dist/context/contextCompactor.js +106 -0
  31. package/dist/context/effectiveHistory.d.ts +52 -0
  32. package/dist/context/effectiveHistory.js +105 -0
  33. package/dist/context/errorDetection.d.ts +14 -0
  34. package/dist/context/errorDetection.js +124 -0
  35. package/dist/context/fileSummarizationService.d.ts +54 -0
  36. package/dist/context/fileSummarizationService.js +255 -0
  37. package/dist/context/fileSummarizer.d.ts +56 -0
  38. package/dist/context/fileSummarizer.js +145 -0
  39. package/dist/context/fileTokenBudget.d.ts +53 -0
  40. package/dist/context/fileTokenBudget.js +127 -0
  41. package/dist/context/prompts/summarizationPrompt.d.ts +17 -0
  42. package/dist/context/prompts/summarizationPrompt.js +110 -0
  43. package/dist/context/stages/fileReadDeduplicator.d.ts +10 -0
  44. package/dist/context/stages/fileReadDeduplicator.js +66 -0
  45. package/dist/context/stages/slidingWindowTruncator.d.ts +11 -0
  46. package/dist/context/stages/slidingWindowTruncator.js +42 -0
  47. package/dist/context/stages/structuredSummarizer.d.ts +10 -0
  48. package/dist/context/stages/structuredSummarizer.js +49 -0
  49. package/dist/context/stages/toolOutputPruner.d.ts +10 -0
  50. package/dist/context/stages/toolOutputPruner.js +52 -0
  51. package/dist/context/summarizationEngine.d.ts +45 -0
  52. package/dist/context/summarizationEngine.js +110 -0
  53. package/dist/context/toolOutputLimits.d.ts +17 -0
  54. package/dist/context/toolOutputLimits.js +84 -0
  55. package/dist/context/toolPairRepair.d.ts +16 -0
  56. package/dist/context/toolPairRepair.js +66 -0
  57. package/dist/core/analytics.js +11 -4
  58. package/dist/core/baseProvider.d.ts +6 -0
  59. package/dist/core/baseProvider.js +83 -14
  60. package/dist/core/conversationMemoryManager.d.ts +14 -11
  61. package/dist/core/conversationMemoryManager.js +36 -68
  62. package/dist/core/dynamicModels.js +3 -2
  63. package/dist/core/modules/GenerationHandler.js +2 -0
  64. package/dist/core/modules/MessageBuilder.d.ts +1 -1
  65. package/dist/core/modules/MessageBuilder.js +2 -0
  66. package/dist/core/modules/TelemetryHandler.d.ts +2 -3
  67. package/dist/core/modules/TelemetryHandler.js +3 -3
  68. package/dist/core/modules/ToolsManager.d.ts +2 -2
  69. package/dist/core/redisConversationMemoryManager.d.ts +19 -14
  70. package/dist/core/redisConversationMemoryManager.js +94 -86
  71. package/dist/factories/providerFactory.d.ts +2 -2
  72. package/dist/files/fileReferenceRegistry.d.ts +276 -0
  73. package/dist/files/fileReferenceRegistry.js +1543 -0
  74. package/dist/files/fileTools.d.ts +423 -0
  75. package/dist/files/fileTools.js +449 -0
  76. package/dist/files/index.d.ts +14 -0
  77. package/dist/files/index.js +13 -0
  78. package/dist/files/streamingReader.d.ts +93 -0
  79. package/dist/files/streamingReader.js +321 -0
  80. package/dist/files/types.d.ts +23 -0
  81. package/dist/files/types.js +23 -0
  82. package/dist/image-gen/imageGenTools.d.ts +2 -2
  83. package/dist/image-gen/types.d.ts +12 -12
  84. package/dist/index.d.ts +4 -0
  85. package/dist/index.js +5 -0
  86. package/dist/lib/adapters/video/vertexVideoHandler.js +3 -3
  87. package/dist/lib/agent/directTools.d.ts +7 -7
  88. package/dist/lib/config/conversationMemory.d.ts +2 -0
  89. package/dist/lib/config/conversationMemory.js +5 -5
  90. package/dist/lib/constants/contextWindows.d.ts +46 -0
  91. package/dist/lib/constants/contextWindows.js +157 -0
  92. package/dist/lib/context/budgetChecker.d.ts +18 -0
  93. package/dist/lib/context/budgetChecker.js +72 -0
  94. package/dist/lib/context/contextCompactor.d.ts +22 -0
  95. package/dist/lib/context/contextCompactor.js +107 -0
  96. package/dist/lib/context/effectiveHistory.d.ts +52 -0
  97. package/dist/lib/context/effectiveHistory.js +106 -0
  98. package/dist/lib/context/errorDetection.d.ts +14 -0
  99. package/dist/lib/context/errorDetection.js +125 -0
  100. package/dist/lib/context/fileSummarizationService.d.ts +54 -0
  101. package/dist/lib/context/fileSummarizationService.js +256 -0
  102. package/dist/lib/context/fileSummarizer.d.ts +56 -0
  103. package/dist/lib/context/fileSummarizer.js +146 -0
  104. package/dist/lib/context/fileTokenBudget.d.ts +53 -0
  105. package/dist/lib/context/fileTokenBudget.js +128 -0
  106. package/dist/lib/context/prompts/summarizationPrompt.d.ts +17 -0
  107. package/dist/lib/context/prompts/summarizationPrompt.js +111 -0
  108. package/dist/lib/context/stages/fileReadDeduplicator.d.ts +10 -0
  109. package/dist/lib/context/stages/fileReadDeduplicator.js +67 -0
  110. package/dist/lib/context/stages/slidingWindowTruncator.d.ts +11 -0
  111. package/dist/lib/context/stages/slidingWindowTruncator.js +43 -0
  112. package/dist/lib/context/stages/structuredSummarizer.d.ts +10 -0
  113. package/dist/lib/context/stages/structuredSummarizer.js +50 -0
  114. package/dist/lib/context/stages/toolOutputPruner.d.ts +10 -0
  115. package/dist/lib/context/stages/toolOutputPruner.js +53 -0
  116. package/dist/lib/context/summarizationEngine.d.ts +45 -0
  117. package/dist/lib/context/summarizationEngine.js +111 -0
  118. package/dist/lib/context/toolOutputLimits.d.ts +17 -0
  119. package/dist/lib/context/toolOutputLimits.js +85 -0
  120. package/dist/lib/context/toolPairRepair.d.ts +16 -0
  121. package/dist/lib/context/toolPairRepair.js +67 -0
  122. package/dist/lib/core/analytics.js +11 -4
  123. package/dist/lib/core/baseProvider.d.ts +6 -0
  124. package/dist/lib/core/baseProvider.js +83 -14
  125. package/dist/lib/core/conversationMemoryManager.d.ts +14 -11
  126. package/dist/lib/core/conversationMemoryManager.js +36 -68
  127. package/dist/lib/core/dynamicModels.js +3 -2
  128. package/dist/lib/core/modules/GenerationHandler.js +2 -0
  129. package/dist/lib/core/modules/MessageBuilder.d.ts +1 -1
  130. package/dist/lib/core/modules/MessageBuilder.js +2 -0
  131. package/dist/lib/core/modules/TelemetryHandler.d.ts +2 -3
  132. package/dist/lib/core/modules/TelemetryHandler.js +3 -3
  133. package/dist/lib/core/modules/ToolsManager.d.ts +2 -2
  134. package/dist/lib/core/redisConversationMemoryManager.d.ts +19 -14
  135. package/dist/lib/core/redisConversationMemoryManager.js +94 -86
  136. package/dist/lib/factories/providerFactory.d.ts +2 -2
  137. package/dist/lib/files/fileReferenceRegistry.d.ts +276 -0
  138. package/dist/lib/files/fileReferenceRegistry.js +1544 -0
  139. package/dist/lib/files/fileTools.d.ts +423 -0
  140. package/dist/lib/files/fileTools.js +450 -0
  141. package/dist/lib/files/index.d.ts +14 -0
  142. package/dist/lib/files/index.js +14 -0
  143. package/dist/lib/files/streamingReader.d.ts +93 -0
  144. package/dist/lib/files/streamingReader.js +322 -0
  145. package/dist/lib/files/types.d.ts +23 -0
  146. package/dist/lib/files/types.js +24 -0
  147. package/dist/lib/image-gen/imageGenTools.d.ts +2 -2
  148. package/dist/lib/image-gen/types.d.ts +12 -12
  149. package/dist/lib/index.d.ts +4 -0
  150. package/dist/lib/index.js +5 -0
  151. package/dist/lib/mcp/httpRetryHandler.js +6 -2
  152. package/dist/lib/memory/mem0Initializer.d.ts +2 -2
  153. package/dist/lib/neurolink.d.ts +66 -2
  154. package/dist/lib/neurolink.js +777 -315
  155. package/dist/lib/processors/archive/ArchiveProcessor.d.ts +327 -0
  156. package/dist/lib/processors/archive/ArchiveProcessor.js +1309 -0
  157. package/dist/lib/processors/archive/index.d.ts +33 -0
  158. package/dist/lib/processors/archive/index.js +43 -0
  159. package/dist/lib/processors/base/BaseFileProcessor.js +2 -1
  160. package/dist/lib/processors/base/types.d.ts +70 -64
  161. package/dist/lib/processors/base/types.js +6 -0
  162. package/dist/lib/processors/cli/fileProcessorCli.d.ts +8 -8
  163. package/dist/lib/processors/cli/fileProcessorCli.js +5 -5
  164. package/dist/lib/processors/config/mimeTypes.js +25 -0
  165. package/dist/lib/processors/config/sizeLimits.d.ts +52 -40
  166. package/dist/lib/processors/config/sizeLimits.js +56 -44
  167. package/dist/lib/processors/document/ExcelProcessor.d.ts +14 -0
  168. package/dist/lib/processors/document/ExcelProcessor.js +72 -1
  169. package/dist/lib/processors/document/PptxProcessor.d.ts +63 -0
  170. package/dist/lib/processors/document/PptxProcessor.js +158 -0
  171. package/dist/lib/processors/document/index.d.ts +1 -0
  172. package/dist/lib/processors/document/index.js +6 -0
  173. package/dist/lib/processors/errors/FileErrorCode.d.ts +2 -2
  174. package/dist/lib/processors/errors/errorHelpers.d.ts +2 -2
  175. package/dist/lib/processors/errors/errorHelpers.js +12 -4
  176. package/dist/lib/processors/errors/errorSerializer.d.ts +4 -4
  177. package/dist/lib/processors/index.d.ts +8 -2
  178. package/dist/lib/processors/index.js +5 -2
  179. package/dist/lib/processors/integration/FileProcessorIntegration.d.ts +8 -8
  180. package/dist/lib/processors/integration/FileProcessorIntegration.js +7 -7
  181. package/dist/lib/processors/media/AudioProcessor.d.ts +328 -0
  182. package/dist/lib/processors/media/AudioProcessor.js +708 -0
  183. package/dist/lib/processors/media/VideoProcessor.d.ts +350 -0
  184. package/dist/lib/processors/media/VideoProcessor.js +992 -0
  185. package/dist/lib/processors/media/index.d.ts +27 -0
  186. package/dist/lib/processors/media/index.js +37 -0
  187. package/dist/lib/processors/registry/ProcessorRegistry.d.ts +19 -5
  188. package/dist/lib/processors/registry/ProcessorRegistry.js +103 -8
  189. package/dist/lib/processors/registry/index.d.ts +1 -1
  190. package/dist/lib/processors/registry/index.js +1 -1
  191. package/dist/lib/processors/registry/types.d.ts +2 -2
  192. package/dist/lib/providers/amazonBedrock.js +2 -1
  193. package/dist/lib/providers/anthropic.js +2 -2
  194. package/dist/lib/providers/anthropicBaseProvider.js +10 -4
  195. package/dist/lib/providers/azureOpenai.js +14 -25
  196. package/dist/lib/providers/googleAiStudio.js +136 -457
  197. package/dist/lib/providers/googleNativeGemini3.d.ts +119 -0
  198. package/dist/lib/providers/googleNativeGemini3.js +264 -0
  199. package/dist/lib/providers/googleVertex.d.ts +15 -1
  200. package/dist/lib/providers/googleVertex.js +341 -775
  201. package/dist/lib/providers/huggingFace.js +20 -5
  202. package/dist/lib/providers/litellm.js +6 -4
  203. package/dist/lib/providers/mistral.js +3 -2
  204. package/dist/lib/providers/openAI.js +2 -2
  205. package/dist/lib/providers/openRouter.js +8 -7
  206. package/dist/lib/providers/openaiCompatible.js +10 -4
  207. package/dist/lib/providers/sagemaker/detection.d.ts +6 -6
  208. package/dist/lib/providers/sagemaker/diagnostics.d.ts +4 -4
  209. package/dist/lib/providers/sagemaker/parsers.d.ts +4 -4
  210. package/dist/lib/rag/chunkers/RecursiveChunker.js +2 -2
  211. package/dist/lib/rag/document/loaders.d.ts +6 -71
  212. package/dist/lib/rag/document/loaders.js +5 -5
  213. package/dist/lib/rag/graphRag/graphRAG.js +26 -9
  214. package/dist/lib/rag/metadata/MetadataExtractorFactory.d.ts +5 -55
  215. package/dist/lib/rag/metadata/metadataExtractor.js +6 -3
  216. package/dist/lib/rag/pipeline/RAGPipeline.d.ts +8 -126
  217. package/dist/lib/rag/pipeline/RAGPipeline.js +11 -11
  218. package/dist/lib/rag/pipeline/contextAssembly.d.ts +3 -42
  219. package/dist/lib/rag/pipeline/contextAssembly.js +6 -3
  220. package/dist/lib/rag/reranker/RerankerFactory.d.ts +5 -60
  221. package/dist/lib/rag/resilience/CircuitBreaker.d.ts +3 -33
  222. package/dist/lib/rag/resilience/RetryHandler.d.ts +2 -21
  223. package/dist/lib/rag/resilience/RetryHandler.js +6 -2
  224. package/dist/lib/rag/retrieval/hybridSearch.d.ts +3 -41
  225. package/dist/lib/rag/retrieval/vectorQueryTool.d.ts +2 -13
  226. package/dist/lib/rag/retrieval/vectorQueryTool.js +4 -3
  227. package/dist/lib/rag/types.d.ts +3 -3
  228. package/dist/lib/sdk/toolRegistration.d.ts +2 -2
  229. package/dist/lib/server/middleware/cache.d.ts +2 -2
  230. package/dist/lib/server/middleware/rateLimit.d.ts +2 -2
  231. package/dist/lib/server/routes/mcpRoutes.js +277 -249
  232. package/dist/lib/server/routes/memoryRoutes.js +287 -281
  233. package/dist/lib/server/utils/validation.d.ts +10 -10
  234. package/dist/lib/services/server/ai/observability/instrumentation.d.ts +24 -2
  235. package/dist/lib/services/server/ai/observability/instrumentation.js +12 -1
  236. package/dist/lib/session/globalSessionState.d.ts +2 -2
  237. package/dist/lib/telemetry/telemetryService.d.ts +2 -2
  238. package/dist/lib/types/common.d.ts +39 -0
  239. package/dist/lib/types/contextTypes.d.ts +255 -0
  240. package/dist/lib/types/contextTypes.js +0 -2
  241. package/dist/lib/types/conversation.d.ts +62 -0
  242. package/dist/lib/types/conversationMemoryInterface.d.ts +27 -0
  243. package/dist/lib/types/conversationMemoryInterface.js +7 -0
  244. package/dist/lib/types/fileReferenceTypes.d.ts +222 -0
  245. package/dist/lib/types/fileReferenceTypes.js +9 -0
  246. package/dist/lib/types/fileTypes.d.ts +26 -3
  247. package/dist/lib/types/generateTypes.d.ts +50 -1
  248. package/dist/lib/types/index.d.ts +4 -5
  249. package/dist/lib/types/index.js +8 -10
  250. package/dist/lib/types/modelTypes.d.ts +2 -2
  251. package/dist/lib/types/processorTypes.d.ts +597 -0
  252. package/dist/lib/types/processorTypes.js +91 -0
  253. package/dist/lib/types/ragTypes.d.ts +489 -0
  254. package/dist/lib/types/ragTypes.js +8 -0
  255. package/dist/lib/types/sdkTypes.d.ts +17 -18
  256. package/dist/lib/types/streamTypes.d.ts +24 -1
  257. package/dist/lib/utils/async/retry.d.ts +2 -2
  258. package/dist/lib/utils/async/withTimeout.js +3 -1
  259. package/dist/lib/utils/conversationMemory.d.ts +12 -6
  260. package/dist/lib/utils/conversationMemory.js +91 -36
  261. package/dist/lib/utils/errorHandling.d.ts +5 -0
  262. package/dist/lib/utils/errorHandling.js +19 -0
  263. package/dist/lib/utils/fileDetector.d.ts +62 -0
  264. package/dist/lib/utils/fileDetector.js +1014 -14
  265. package/dist/lib/utils/json/safeParse.d.ts +2 -2
  266. package/dist/lib/utils/messageBuilder.js +806 -153
  267. package/dist/lib/utils/modelChoices.d.ts +2 -2
  268. package/dist/lib/utils/multimodalOptionsBuilder.d.ts +2 -1
  269. package/dist/lib/utils/multimodalOptionsBuilder.js +1 -0
  270. package/dist/lib/utils/pricing.d.ts +12 -0
  271. package/dist/lib/utils/pricing.js +134 -0
  272. package/dist/lib/utils/rateLimiter.d.ts +2 -2
  273. package/dist/lib/utils/redis.d.ts +17 -0
  274. package/dist/lib/utils/redis.js +105 -0
  275. package/dist/lib/utils/sanitizers/filename.d.ts +4 -4
  276. package/dist/lib/utils/sanitizers/svg.d.ts +2 -2
  277. package/dist/lib/utils/thinkingConfig.d.ts +6 -6
  278. package/dist/lib/utils/timeout.d.ts +10 -0
  279. package/dist/lib/utils/timeout.js +15 -0
  280. package/dist/lib/utils/tokenEstimation.d.ts +68 -0
  281. package/dist/lib/utils/tokenEstimation.js +113 -0
  282. package/dist/lib/utils/tokenUtils.d.ts +4 -4
  283. package/dist/lib/utils/ttsProcessor.d.ts +2 -2
  284. package/dist/lib/workflow/config.d.ts +150 -150
  285. package/dist/mcp/httpRetryHandler.js +6 -2
  286. package/dist/memory/mem0Initializer.d.ts +2 -2
  287. package/dist/neurolink.d.ts +66 -2
  288. package/dist/neurolink.js +777 -315
  289. package/dist/processors/archive/ArchiveProcessor.d.ts +327 -0
  290. package/dist/processors/archive/ArchiveProcessor.js +1308 -0
  291. package/dist/processors/archive/index.d.ts +33 -0
  292. package/dist/processors/archive/index.js +42 -0
  293. package/dist/processors/base/BaseFileProcessor.js +2 -1
  294. package/dist/processors/base/types.d.ts +70 -64
  295. package/dist/processors/base/types.js +6 -0
  296. package/dist/processors/cli/fileProcessorCli.d.ts +8 -8
  297. package/dist/processors/cli/fileProcessorCli.js +5 -5
  298. package/dist/processors/config/mimeTypes.js +25 -0
  299. package/dist/processors/config/sizeLimits.d.ts +52 -40
  300. package/dist/processors/config/sizeLimits.js +56 -44
  301. package/dist/processors/document/ExcelProcessor.d.ts +14 -0
  302. package/dist/processors/document/ExcelProcessor.js +72 -1
  303. package/dist/processors/document/PptxProcessor.d.ts +63 -0
  304. package/dist/processors/document/PptxProcessor.js +157 -0
  305. package/dist/processors/document/index.d.ts +1 -0
  306. package/dist/processors/document/index.js +6 -0
  307. package/dist/processors/errors/FileErrorCode.d.ts +2 -2
  308. package/dist/processors/errors/errorHelpers.d.ts +2 -2
  309. package/dist/processors/errors/errorHelpers.js +12 -4
  310. package/dist/processors/errors/errorSerializer.d.ts +4 -4
  311. package/dist/processors/index.d.ts +8 -2
  312. package/dist/processors/index.js +5 -2
  313. package/dist/processors/integration/FileProcessorIntegration.d.ts +8 -8
  314. package/dist/processors/integration/FileProcessorIntegration.js +7 -7
  315. package/dist/processors/media/AudioProcessor.d.ts +328 -0
  316. package/dist/processors/media/AudioProcessor.js +707 -0
  317. package/dist/processors/media/VideoProcessor.d.ts +350 -0
  318. package/dist/processors/media/VideoProcessor.js +991 -0
  319. package/dist/processors/media/ffprobe-static.d.ts +4 -0
  320. package/dist/processors/media/index.d.ts +27 -0
  321. package/dist/processors/media/index.js +36 -0
  322. package/dist/processors/registry/ProcessorRegistry.d.ts +19 -5
  323. package/dist/processors/registry/ProcessorRegistry.js +103 -8
  324. package/dist/processors/registry/index.d.ts +1 -1
  325. package/dist/processors/registry/index.js +1 -1
  326. package/dist/processors/registry/types.d.ts +2 -2
  327. package/dist/providers/amazonBedrock.js +2 -1
  328. package/dist/providers/anthropic.js +2 -2
  329. package/dist/providers/anthropicBaseProvider.js +10 -4
  330. package/dist/providers/azureOpenai.js +14 -25
  331. package/dist/providers/googleAiStudio.js +136 -457
  332. package/dist/providers/googleNativeGemini3.d.ts +119 -0
  333. package/dist/providers/googleNativeGemini3.js +263 -0
  334. package/dist/providers/googleVertex.d.ts +15 -1
  335. package/dist/providers/googleVertex.js +341 -775
  336. package/dist/providers/huggingFace.js +20 -5
  337. package/dist/providers/litellm.js +6 -4
  338. package/dist/providers/mistral.js +3 -2
  339. package/dist/providers/openAI.js +2 -2
  340. package/dist/providers/openRouter.js +8 -7
  341. package/dist/providers/openaiCompatible.js +10 -4
  342. package/dist/providers/sagemaker/detection.d.ts +6 -6
  343. package/dist/providers/sagemaker/diagnostics.d.ts +4 -4
  344. package/dist/providers/sagemaker/parsers.d.ts +4 -4
  345. package/dist/rag/chunkers/RecursiveChunker.js +2 -2
  346. package/dist/rag/document/loaders.d.ts +6 -71
  347. package/dist/rag/document/loaders.js +5 -5
  348. package/dist/rag/graphRag/graphRAG.js +26 -9
  349. package/dist/rag/metadata/MetadataExtractorFactory.d.ts +5 -55
  350. package/dist/rag/metadata/metadataExtractor.js +6 -3
  351. package/dist/rag/pipeline/RAGPipeline.d.ts +8 -126
  352. package/dist/rag/pipeline/RAGPipeline.js +11 -11
  353. package/dist/rag/pipeline/contextAssembly.d.ts +3 -42
  354. package/dist/rag/pipeline/contextAssembly.js +6 -3
  355. package/dist/rag/reranker/RerankerFactory.d.ts +5 -60
  356. package/dist/rag/resilience/CircuitBreaker.d.ts +3 -33
  357. package/dist/rag/resilience/RetryHandler.d.ts +2 -21
  358. package/dist/rag/resilience/RetryHandler.js +6 -2
  359. package/dist/rag/retrieval/hybridSearch.d.ts +3 -41
  360. package/dist/rag/retrieval/vectorQueryTool.d.ts +2 -13
  361. package/dist/rag/retrieval/vectorQueryTool.js +4 -3
  362. package/dist/rag/types.d.ts +3 -3
  363. package/dist/sdk/toolRegistration.d.ts +2 -2
  364. package/dist/server/middleware/cache.d.ts +2 -2
  365. package/dist/server/middleware/rateLimit.d.ts +2 -2
  366. package/dist/server/routes/mcpRoutes.js +277 -249
  367. package/dist/server/routes/memoryRoutes.js +287 -281
  368. package/dist/server/utils/validation.d.ts +4 -4
  369. package/dist/services/server/ai/observability/instrumentation.d.ts +24 -2
  370. package/dist/services/server/ai/observability/instrumentation.js +12 -1
  371. package/dist/session/globalSessionState.d.ts +2 -2
  372. package/dist/telemetry/telemetryService.d.ts +2 -2
  373. package/dist/types/common.d.ts +39 -0
  374. package/dist/types/contextTypes.d.ts +255 -0
  375. package/dist/types/contextTypes.js +0 -2
  376. package/dist/types/conversation.d.ts +62 -0
  377. package/dist/types/conversationMemoryInterface.d.ts +27 -0
  378. package/dist/types/conversationMemoryInterface.js +6 -0
  379. package/dist/types/fileReferenceTypes.d.ts +222 -0
  380. package/dist/types/fileReferenceTypes.js +8 -0
  381. package/dist/types/fileTypes.d.ts +26 -3
  382. package/dist/types/generateTypes.d.ts +50 -1
  383. package/dist/types/index.d.ts +4 -5
  384. package/dist/types/index.js +8 -10
  385. package/dist/types/processorTypes.d.ts +597 -0
  386. package/dist/types/processorTypes.js +90 -0
  387. package/dist/types/ragTypes.d.ts +489 -0
  388. package/dist/types/ragTypes.js +7 -0
  389. package/dist/types/sdkTypes.d.ts +17 -18
  390. package/dist/types/streamTypes.d.ts +24 -1
  391. package/dist/utils/async/retry.d.ts +2 -2
  392. package/dist/utils/async/withTimeout.js +3 -1
  393. package/dist/utils/conversationMemory.d.ts +12 -6
  394. package/dist/utils/conversationMemory.js +91 -36
  395. package/dist/utils/errorHandling.d.ts +5 -0
  396. package/dist/utils/errorHandling.js +19 -0
  397. package/dist/utils/fileDetector.d.ts +62 -0
  398. package/dist/utils/fileDetector.js +1014 -14
  399. package/dist/utils/json/safeParse.d.ts +2 -2
  400. package/dist/utils/messageBuilder.js +806 -153
  401. package/dist/utils/modelChoices.d.ts +2 -2
  402. package/dist/utils/multimodalOptionsBuilder.d.ts +2 -1
  403. package/dist/utils/multimodalOptionsBuilder.js +1 -0
  404. package/dist/utils/pricing.d.ts +12 -0
  405. package/dist/utils/pricing.js +133 -0
  406. package/dist/utils/rateLimiter.d.ts +2 -2
  407. package/dist/utils/redis.d.ts +17 -0
  408. package/dist/utils/redis.js +105 -0
  409. package/dist/utils/sanitizers/filename.d.ts +4 -4
  410. package/dist/utils/sanitizers/svg.d.ts +2 -2
  411. package/dist/utils/thinkingConfig.d.ts +6 -6
  412. package/dist/utils/timeout.d.ts +10 -0
  413. package/dist/utils/timeout.js +15 -0
  414. package/dist/utils/tokenEstimation.d.ts +68 -0
  415. package/dist/utils/tokenEstimation.js +112 -0
  416. package/dist/utils/tokenUtils.d.ts +4 -4
  417. package/dist/utils/ttsProcessor.d.ts +2 -2
  418. package/dist/workflow/config.d.ts +104 -104
  419. package/package.json +18 -6
  420. package/dist/lib/utils/conversationMemoryUtils.d.ts +0 -25
  421. package/dist/lib/utils/conversationMemoryUtils.js +0 -138
  422. package/dist/utils/conversationMemoryUtils.d.ts +0 -25
  423. package/dist/utils/conversationMemoryUtils.js +0 -137
@@ -11,6 +11,276 @@ const MCPToolExecuteParamsSchema = z.object({
11
11
  name: z.string().min(1, "Server name is required"),
12
12
  toolName: z.string().min(1, "Tool name is required"),
13
13
  });
14
+ /**
15
+ * Handler: List all MCP servers
16
+ */
17
+ async function handleListServers(ctx) {
18
+ const manager = ctx.externalServerManager;
19
+ if (!manager) {
20
+ return {
21
+ servers: [],
22
+ total: 0,
23
+ message: "External server manager not available",
24
+ metadata: {
25
+ timestamp: new Date().toISOString(),
26
+ requestId: ctx.requestId,
27
+ },
28
+ };
29
+ }
30
+ const serverInfos = manager.listServers();
31
+ const statuses = manager.getServerStatuses();
32
+ // Create a map of statuses by serverId for quick lookup
33
+ const statusMap = new Map(statuses.map((s) => [s.serverId, s]));
34
+ const servers = serverInfos.map((info) => {
35
+ const status = statusMap.get(info.name);
36
+ return {
37
+ serverId: info.name,
38
+ name: info.name,
39
+ status: status?.status || "disconnected",
40
+ toolCount: status?.toolCount || 0,
41
+ lastHealthCheck: status?.checkedAt?.toISOString(),
42
+ error: status?.issues?.[0],
43
+ };
44
+ });
45
+ return {
46
+ servers,
47
+ total: servers.length,
48
+ metadata: {
49
+ timestamp: new Date().toISOString(),
50
+ requestId: ctx.requestId,
51
+ },
52
+ };
53
+ }
54
+ /**
55
+ * Handler: Get MCP server status
56
+ */
57
+ async function handleGetServer(ctx) {
58
+ // Validate params
59
+ const paramValidation = validateParams(ServerNameParamSchema, ctx.params, ctx.requestId);
60
+ if (!paramValidation.success) {
61
+ return paramValidation.error;
62
+ }
63
+ const { name } = paramValidation.data;
64
+ const manager = ctx.externalServerManager;
65
+ if (!manager) {
66
+ return createErrorResponse("MCP_UNAVAILABLE", "External server manager not available", undefined, ctx.requestId);
67
+ }
68
+ const serverInfos = manager.listServers();
69
+ const serverInfo = serverInfos.find((s) => s.name === name);
70
+ if (!serverInfo) {
71
+ return createErrorResponse("SERVER_NOT_FOUND", `MCP server '${name}' not found`, undefined, ctx.requestId);
72
+ }
73
+ const statuses = manager.getServerStatuses();
74
+ const status = statuses.find((s) => s.serverId === name);
75
+ // Get tools for this server
76
+ const tools = await ctx.toolRegistry.listTools();
77
+ const serverTools = tools.filter((t) => t.source === name);
78
+ return {
79
+ serverId: name,
80
+ name,
81
+ status: status?.status || "disconnected",
82
+ toolCount: status?.toolCount || 0,
83
+ tools: serverTools.map((t) => ({
84
+ name: t.name,
85
+ description: t.description,
86
+ })),
87
+ lastHealthCheck: status?.checkedAt?.toISOString(),
88
+ error: status?.issues?.[0],
89
+ metadata: {
90
+ timestamp: new Date().toISOString(),
91
+ requestId: ctx.requestId,
92
+ },
93
+ };
94
+ }
95
+ /**
96
+ * Handler: Reconnect to an MCP server
97
+ */
98
+ async function handleReconnectServer(ctx) {
99
+ // Validate params
100
+ const paramValidation = validateParams(ServerNameParamSchema, ctx.params, ctx.requestId);
101
+ if (!paramValidation.success) {
102
+ return paramValidation.error;
103
+ }
104
+ const { name } = paramValidation.data;
105
+ const manager = ctx.externalServerManager;
106
+ if (!manager) {
107
+ return createErrorResponse("MCP_UNAVAILABLE", "External server manager not available", undefined, ctx.requestId);
108
+ }
109
+ try {
110
+ // To reconnect, we need to get the existing config and re-add
111
+ const serverInfos = manager.listServers();
112
+ const serverInfo = serverInfos.find((s) => s.name === name);
113
+ if (!serverInfo) {
114
+ return createErrorResponse("SERVER_NOT_FOUND", `Server '${name}' not found`, undefined, ctx.requestId);
115
+ }
116
+ // Note: Full reconnect would require storing config
117
+ // For now, return the current status
118
+ const statuses = manager.getServerStatuses();
119
+ const status = statuses.find((s) => s.serverId === name);
120
+ return {
121
+ success: true,
122
+ server: {
123
+ serverId: name,
124
+ name,
125
+ status: status?.status || "disconnected",
126
+ toolCount: status?.toolCount || 0,
127
+ },
128
+ message: "Server status retrieved (full reconnect requires server restart)",
129
+ metadata: {
130
+ timestamp: new Date().toISOString(),
131
+ requestId: ctx.requestId,
132
+ },
133
+ };
134
+ }
135
+ catch (error) {
136
+ return createErrorResponse("RECONNECT_FAILED", error instanceof Error ? error.message : String(error), undefined, ctx.requestId);
137
+ }
138
+ }
139
+ /**
140
+ * Handler: Remove an MCP server
141
+ */
142
+ async function handleRemoveServer(ctx) {
143
+ // Validate params
144
+ const paramValidation = validateParams(ServerNameParamSchema, ctx.params, ctx.requestId);
145
+ if (!paramValidation.success) {
146
+ return paramValidation.error;
147
+ }
148
+ const { name } = paramValidation.data;
149
+ const manager = ctx.externalServerManager;
150
+ if (!manager) {
151
+ return createErrorResponse("MCP_UNAVAILABLE", "External server manager not available", undefined, ctx.requestId);
152
+ }
153
+ try {
154
+ const result = await manager.removeServer(name);
155
+ if (!result.success) {
156
+ return createErrorResponse("REMOVE_FAILED", result.error || "Failed to remove server", undefined, ctx.requestId);
157
+ }
158
+ return {
159
+ success: true,
160
+ message: `Server '${name}' removed`,
161
+ metadata: {
162
+ timestamp: new Date().toISOString(),
163
+ requestId: ctx.requestId,
164
+ },
165
+ };
166
+ }
167
+ catch (error) {
168
+ return createErrorResponse("REMOVE_FAILED", error instanceof Error ? error.message : String(error), undefined, ctx.requestId);
169
+ }
170
+ }
171
+ /**
172
+ * Handler: List tools from a specific MCP server
173
+ */
174
+ async function handleListServerTools(ctx) {
175
+ // Validate params
176
+ const paramValidation = validateParams(ServerNameParamSchema, ctx.params, ctx.requestId);
177
+ if (!paramValidation.success) {
178
+ return paramValidation.error;
179
+ }
180
+ const { name } = paramValidation.data;
181
+ // Get tools from this specific server
182
+ const tools = await ctx.toolRegistry.listTools();
183
+ const serverTools = tools.filter((t) => t.source === name);
184
+ if (serverTools.length === 0) {
185
+ // Check if server exists
186
+ const manager = ctx.externalServerManager;
187
+ if (manager) {
188
+ const serverInfos = manager.listServers();
189
+ const serverInfo = serverInfos.find((s) => s.name === name);
190
+ if (!serverInfo) {
191
+ return createErrorResponse("SERVER_NOT_FOUND", `MCP server '${name}' not found`, undefined, ctx.requestId);
192
+ }
193
+ }
194
+ }
195
+ return {
196
+ serverId: name,
197
+ tools: serverTools.map((tool) => ({
198
+ name: tool.name,
199
+ description: tool.description,
200
+ inputSchema: tool.inputSchema,
201
+ })),
202
+ total: serverTools.length,
203
+ metadata: {
204
+ timestamp: new Date().toISOString(),
205
+ requestId: ctx.requestId,
206
+ },
207
+ };
208
+ }
209
+ /**
210
+ * Handler: Execute a tool from a specific MCP server
211
+ */
212
+ async function handleExecuteTool(ctx) {
213
+ // Validate params
214
+ const paramValidation = validateParams(MCPToolExecuteParamsSchema, ctx.params, ctx.requestId);
215
+ if (!paramValidation.success) {
216
+ return paramValidation.error;
217
+ }
218
+ const { name, toolName } = paramValidation.data;
219
+ // Validate body (tool arguments)
220
+ const bodyValidation = validateRequest(ToolArgumentsSchema, ctx.body || {}, ctx.requestId);
221
+ if (!bodyValidation.success) {
222
+ return bodyValidation.error;
223
+ }
224
+ const args = bodyValidation.data;
225
+ const startTime = Date.now();
226
+ try {
227
+ // Verify tool exists for this server
228
+ const tools = await ctx.toolRegistry.listTools();
229
+ const tool = tools.find((t) => t.name === toolName && t.source === name);
230
+ if (!tool) {
231
+ return createErrorResponse("TOOL_NOT_FOUND", `Tool '${toolName}' not found on server '${name}'`, undefined, ctx.requestId);
232
+ }
233
+ // Execute the tool
234
+ const result = await ctx.toolRegistry.executeTool(toolName, args);
235
+ return {
236
+ success: true,
237
+ data: result,
238
+ duration: Date.now() - startTime,
239
+ metadata: {
240
+ server: name,
241
+ toolName,
242
+ timestamp: new Date().toISOString(),
243
+ requestId: ctx.requestId,
244
+ },
245
+ };
246
+ }
247
+ catch (error) {
248
+ return createErrorResponse("EXECUTION_FAILED", error instanceof Error ? error.message : String(error), { duration: Date.now() - startTime }, ctx.requestId);
249
+ }
250
+ }
251
+ /**
252
+ * Handler: Health check for all MCP servers
253
+ */
254
+ async function handleMCPHealth(ctx) {
255
+ const manager = ctx.externalServerManager;
256
+ if (!manager) {
257
+ return {
258
+ healthy: false,
259
+ message: "External server manager not available",
260
+ servers: [],
261
+ };
262
+ }
263
+ const statuses = manager.getServerStatuses();
264
+ const serverStatuses = statuses.map((s) => ({
265
+ name: s.serverId,
266
+ healthy: s.isHealthy,
267
+ error: s.issues?.[0],
268
+ }));
269
+ const allHealthy = serverStatuses.every((s) => s.healthy);
270
+ const someHealthy = serverStatuses.some((s) => s.healthy);
271
+ return {
272
+ healthy: serverStatuses.length === 0 || allHealthy,
273
+ status: serverStatuses.length === 0
274
+ ? "no_servers"
275
+ : allHealthy
276
+ ? "all_healthy"
277
+ : someHealthy
278
+ ? "degraded"
279
+ : "unhealthy",
280
+ servers: serverStatuses,
281
+ timestamp: new Date().toISOString(),
282
+ };
283
+ }
14
284
  /**
15
285
  * Create MCP server management routes
16
286
  */
@@ -21,291 +291,49 @@ export function createMCPRoutes(basePath = "/api") {
21
291
  {
22
292
  method: "GET",
23
293
  path: `${basePath}/mcp/servers`,
24
- handler: async (ctx) => {
25
- const manager = ctx.externalServerManager;
26
- if (!manager) {
27
- return {
28
- servers: [],
29
- total: 0,
30
- message: "External server manager not available",
31
- metadata: {
32
- timestamp: new Date().toISOString(),
33
- requestId: ctx.requestId,
34
- },
35
- };
36
- }
37
- const serverInfos = manager.listServers();
38
- const statuses = manager.getServerStatuses();
39
- // Create a map of statuses by serverId for quick lookup
40
- const statusMap = new Map(statuses.map((s) => [s.serverId, s]));
41
- const servers = serverInfos.map((info) => {
42
- const status = statusMap.get(info.name);
43
- return {
44
- serverId: info.name,
45
- name: info.name,
46
- status: status?.status || "disconnected",
47
- toolCount: status?.toolCount || 0,
48
- lastHealthCheck: status?.checkedAt?.toISOString(),
49
- error: status?.issues?.[0],
50
- };
51
- });
52
- return {
53
- servers,
54
- total: servers.length,
55
- metadata: {
56
- timestamp: new Date().toISOString(),
57
- requestId: ctx.requestId,
58
- },
59
- };
60
- },
294
+ handler: handleListServers,
61
295
  description: "List all MCP servers",
62
296
  tags: ["mcp"],
63
297
  },
64
298
  {
65
299
  method: "GET",
66
300
  path: `${basePath}/mcp/servers/:name`,
67
- handler: async (ctx) => {
68
- // Validate params
69
- const paramValidation = validateParams(ServerNameParamSchema, ctx.params, ctx.requestId);
70
- if (!paramValidation.success) {
71
- return paramValidation.error;
72
- }
73
- const { name } = paramValidation.data;
74
- const manager = ctx.externalServerManager;
75
- if (!manager) {
76
- return createErrorResponse("MCP_UNAVAILABLE", "External server manager not available", undefined, ctx.requestId);
77
- }
78
- const serverInfos = manager.listServers();
79
- const serverInfo = serverInfos.find((s) => s.name === name);
80
- if (!serverInfo) {
81
- return createErrorResponse("SERVER_NOT_FOUND", `MCP server '${name}' not found`, undefined, ctx.requestId);
82
- }
83
- const statuses = manager.getServerStatuses();
84
- const status = statuses.find((s) => s.serverId === name);
85
- // Get tools for this server
86
- const tools = await ctx.toolRegistry.listTools();
87
- const serverTools = tools.filter((t) => t.source === name);
88
- return {
89
- serverId: name,
90
- name,
91
- status: status?.status || "disconnected",
92
- toolCount: status?.toolCount || 0,
93
- tools: serverTools.map((t) => ({
94
- name: t.name,
95
- description: t.description,
96
- })),
97
- lastHealthCheck: status?.checkedAt?.toISOString(),
98
- error: status?.issues?.[0],
99
- metadata: {
100
- timestamp: new Date().toISOString(),
101
- requestId: ctx.requestId,
102
- },
103
- };
104
- },
301
+ handler: handleGetServer,
105
302
  description: "Get MCP server status",
106
303
  tags: ["mcp"],
107
304
  },
108
305
  {
109
306
  method: "POST",
110
307
  path: `${basePath}/mcp/servers/:name/reconnect`,
111
- handler: async (ctx) => {
112
- // Validate params
113
- const paramValidation = validateParams(ServerNameParamSchema, ctx.params, ctx.requestId);
114
- if (!paramValidation.success) {
115
- return paramValidation.error;
116
- }
117
- const { name } = paramValidation.data;
118
- const manager = ctx.externalServerManager;
119
- if (!manager) {
120
- return createErrorResponse("MCP_UNAVAILABLE", "External server manager not available", undefined, ctx.requestId);
121
- }
122
- try {
123
- // To reconnect, we need to get the existing config and re-add
124
- const serverInfos = manager.listServers();
125
- const serverInfo = serverInfos.find((s) => s.name === name);
126
- if (!serverInfo) {
127
- return createErrorResponse("SERVER_NOT_FOUND", `Server '${name}' not found`, undefined, ctx.requestId);
128
- }
129
- // Note: Full reconnect would require storing config
130
- // For now, return the current status
131
- const statuses = manager.getServerStatuses();
132
- const status = statuses.find((s) => s.serverId === name);
133
- return {
134
- success: true,
135
- server: {
136
- serverId: name,
137
- name,
138
- status: status?.status || "disconnected",
139
- toolCount: status?.toolCount || 0,
140
- },
141
- message: "Server status retrieved (full reconnect requires server restart)",
142
- metadata: {
143
- timestamp: new Date().toISOString(),
144
- requestId: ctx.requestId,
145
- },
146
- };
147
- }
148
- catch (error) {
149
- return createErrorResponse("RECONNECT_FAILED", error instanceof Error ? error.message : String(error), undefined, ctx.requestId);
150
- }
151
- },
308
+ handler: handleReconnectServer,
152
309
  description: "Reconnect to an MCP server",
153
310
  tags: ["mcp"],
154
311
  },
155
312
  {
156
313
  method: "DELETE",
157
314
  path: `${basePath}/mcp/servers/:name`,
158
- handler: async (ctx) => {
159
- // Validate params
160
- const paramValidation = validateParams(ServerNameParamSchema, ctx.params, ctx.requestId);
161
- if (!paramValidation.success) {
162
- return paramValidation.error;
163
- }
164
- const { name } = paramValidation.data;
165
- const manager = ctx.externalServerManager;
166
- if (!manager) {
167
- return createErrorResponse("MCP_UNAVAILABLE", "External server manager not available", undefined, ctx.requestId);
168
- }
169
- try {
170
- const result = await manager.removeServer(name);
171
- if (!result.success) {
172
- return createErrorResponse("REMOVE_FAILED", result.error || "Failed to remove server", undefined, ctx.requestId);
173
- }
174
- return {
175
- success: true,
176
- message: `Server '${name}' removed`,
177
- metadata: {
178
- timestamp: new Date().toISOString(),
179
- requestId: ctx.requestId,
180
- },
181
- };
182
- }
183
- catch (error) {
184
- return createErrorResponse("REMOVE_FAILED", error instanceof Error ? error.message : String(error), undefined, ctx.requestId);
185
- }
186
- },
315
+ handler: handleRemoveServer,
187
316
  description: "Remove an MCP server",
188
317
  tags: ["mcp"],
189
318
  },
190
319
  {
191
320
  method: "GET",
192
321
  path: `${basePath}/mcp/servers/:name/tools`,
193
- handler: async (ctx) => {
194
- // Validate params
195
- const paramValidation = validateParams(ServerNameParamSchema, ctx.params, ctx.requestId);
196
- if (!paramValidation.success) {
197
- return paramValidation.error;
198
- }
199
- const { name } = paramValidation.data;
200
- // Get tools from this specific server
201
- const tools = await ctx.toolRegistry.listTools();
202
- const serverTools = tools.filter((t) => t.source === name);
203
- if (serverTools.length === 0) {
204
- // Check if server exists
205
- const manager = ctx.externalServerManager;
206
- if (manager) {
207
- const serverInfos = manager.listServers();
208
- const serverInfo = serverInfos.find((s) => s.name === name);
209
- if (!serverInfo) {
210
- return createErrorResponse("SERVER_NOT_FOUND", `MCP server '${name}' not found`, undefined, ctx.requestId);
211
- }
212
- }
213
- }
214
- return {
215
- serverId: name,
216
- tools: serverTools.map((tool) => ({
217
- name: tool.name,
218
- description: tool.description,
219
- inputSchema: tool.inputSchema,
220
- })),
221
- total: serverTools.length,
222
- metadata: {
223
- timestamp: new Date().toISOString(),
224
- requestId: ctx.requestId,
225
- },
226
- };
227
- },
322
+ handler: handleListServerTools,
228
323
  description: "List tools from a specific MCP server",
229
324
  tags: ["mcp", "tools"],
230
325
  },
231
326
  {
232
327
  method: "POST",
233
328
  path: `${basePath}/mcp/servers/:name/tools/:toolName/execute`,
234
- handler: async (ctx) => {
235
- // Validate params
236
- const paramValidation = validateParams(MCPToolExecuteParamsSchema, ctx.params, ctx.requestId);
237
- if (!paramValidation.success) {
238
- return paramValidation.error;
239
- }
240
- const { name, toolName } = paramValidation.data;
241
- // Validate body (tool arguments)
242
- const bodyValidation = validateRequest(ToolArgumentsSchema, ctx.body || {}, ctx.requestId);
243
- if (!bodyValidation.success) {
244
- return bodyValidation.error;
245
- }
246
- const args = bodyValidation.data;
247
- const startTime = Date.now();
248
- try {
249
- // Verify tool exists for this server
250
- const tools = await ctx.toolRegistry.listTools();
251
- const tool = tools.find((t) => t.name === toolName && t.source === name);
252
- if (!tool) {
253
- return createErrorResponse("TOOL_NOT_FOUND", `Tool '${toolName}' not found on server '${name}'`, undefined, ctx.requestId);
254
- }
255
- // Execute the tool
256
- const result = await ctx.toolRegistry.executeTool(toolName, args);
257
- return {
258
- success: true,
259
- data: result,
260
- duration: Date.now() - startTime,
261
- metadata: {
262
- server: name,
263
- toolName,
264
- timestamp: new Date().toISOString(),
265
- requestId: ctx.requestId,
266
- },
267
- };
268
- }
269
- catch (error) {
270
- return createErrorResponse("EXECUTION_FAILED", error instanceof Error ? error.message : String(error), { duration: Date.now() - startTime }, ctx.requestId);
271
- }
272
- },
329
+ handler: handleExecuteTool,
273
330
  description: "Execute a tool from a specific MCP server",
274
331
  tags: ["mcp", "tools"],
275
332
  },
276
333
  {
277
334
  method: "GET",
278
335
  path: `${basePath}/mcp/health`,
279
- handler: async (ctx) => {
280
- const manager = ctx.externalServerManager;
281
- if (!manager) {
282
- return {
283
- healthy: false,
284
- message: "External server manager not available",
285
- servers: [],
286
- };
287
- }
288
- const statuses = manager.getServerStatuses();
289
- const serverStatuses = statuses.map((s) => ({
290
- name: s.serverId,
291
- healthy: s.isHealthy,
292
- error: s.issues?.[0],
293
- }));
294
- const allHealthy = serverStatuses.every((s) => s.healthy);
295
- const someHealthy = serverStatuses.some((s) => s.healthy);
296
- return {
297
- healthy: serverStatuses.length === 0 || allHealthy,
298
- status: serverStatuses.length === 0
299
- ? "no_servers"
300
- : allHealthy
301
- ? "all_healthy"
302
- : someHealthy
303
- ? "degraded"
304
- : "unhealthy",
305
- servers: serverStatuses,
306
- timestamp: new Date().toISOString(),
307
- };
308
- },
336
+ handler: handleMCPHealth,
309
337
  description: "Health check for all MCP servers",
310
338
  tags: ["mcp", "health"],
311
339
  },