@juspay/neurolink 9.30.0 → 9.31.1

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 (977) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/README.md +2 -3
  3. package/dist/adapters/providerImageAdapter.js +13 -22
  4. package/dist/adapters/video/videoAnalyzer.d.ts +4 -4
  5. package/dist/adapters/video/videoAnalyzer.js +3 -3
  6. package/dist/agent/directTools.d.ts +20 -289
  7. package/dist/agent/directTools.js +11 -10
  8. package/dist/auth/accountPool.d.ts +68 -0
  9. package/dist/auth/accountPool.js +178 -0
  10. package/dist/auth/anthropicOAuth.d.ts +15 -5
  11. package/dist/auth/anthropicOAuth.js +117 -57
  12. package/dist/auth/index.d.ts +7 -5
  13. package/dist/auth/index.js +6 -2
  14. package/dist/auth/tokenStore.d.ts +71 -27
  15. package/dist/auth/tokenStore.js +342 -64
  16. package/dist/cli/commands/auth.d.ts +39 -2
  17. package/dist/cli/commands/auth.js +585 -36
  18. package/dist/cli/commands/config.d.ts +47 -574
  19. package/dist/cli/commands/config.js +142 -24
  20. package/dist/cli/commands/docs.d.ts +1 -5
  21. package/dist/cli/commands/observability.d.ts +1 -17
  22. package/dist/cli/commands/ollama.js +1 -1
  23. package/dist/cli/commands/proxy.d.ts +20 -0
  24. package/dist/cli/commands/proxy.js +1254 -0
  25. package/dist/cli/commands/setup-anthropic.js +1 -1
  26. package/dist/cli/commands/setup-azure.js +1 -1
  27. package/dist/cli/commands/setup-bedrock.js +2 -2
  28. package/dist/cli/commands/setup-gcp.js +1 -1
  29. package/dist/cli/commands/setup-google-ai.js +1 -1
  30. package/dist/cli/commands/setup-huggingface.js +2 -2
  31. package/dist/cli/commands/setup-mistral.js +1 -1
  32. package/dist/cli/commands/setup-openai.js +1 -1
  33. package/dist/cli/commands/setup.js +3 -3
  34. package/dist/cli/commands/telemetry.d.ts +1 -22
  35. package/dist/cli/factories/authCommandFactory.d.ts +16 -11
  36. package/dist/cli/factories/authCommandFactory.js +96 -1
  37. package/dist/cli/factories/ollamaCommandFactory.js +1 -1
  38. package/dist/cli/factories/sagemakerCommandFactory.js +25 -6
  39. package/dist/cli/index.d.ts +0 -6
  40. package/dist/cli/index.js +5 -2
  41. package/dist/cli/loop/conversationSelector.js +7 -2
  42. package/dist/cli/parser.js +19 -1
  43. package/dist/cli/utils/envManager.js +2 -2
  44. package/dist/cli/utils/ollamaUtils.d.ts +1 -2
  45. package/dist/client/adapters/providerImageAdapter.js +588 -0
  46. package/dist/client/adapters/tts/googleTTSHandler.js +344 -0
  47. package/dist/client/adapters/video/directorPipeline.js +516 -0
  48. package/dist/client/adapters/video/ffmpegAdapter.js +206 -0
  49. package/dist/client/adapters/video/frameExtractor.js +143 -0
  50. package/dist/client/adapters/video/vertexVideoHandler.js +763 -0
  51. package/dist/client/adapters/video/videoAnalyzer.js +238 -0
  52. package/dist/client/adapters/video/videoMerger.js +171 -0
  53. package/dist/client/agent/directTools.js +840 -0
  54. package/dist/client/aiSdkAdapter.d.ts +196 -0
  55. package/dist/client/aiSdkAdapter.js +487 -0
  56. package/dist/client/auth/anthropicOAuth.js +974 -0
  57. package/dist/client/auth/tokenStore.js +799 -0
  58. package/dist/client/auth.d.ts +248 -0
  59. package/dist/client/auth.js +473 -0
  60. package/dist/client/client/aiSdkAdapter.js +487 -0
  61. package/dist/client/client/auth.js +473 -0
  62. package/dist/client/client/errors.js +552 -0
  63. package/dist/client/client/httpClient.js +837 -0
  64. package/dist/client/client/index.js +172 -0
  65. package/dist/client/client/interceptors.js +601 -0
  66. package/dist/client/client/reactHooks.js +1159 -0
  67. package/dist/client/client/sseClient.js +545 -0
  68. package/dist/client/client/streamingClient.js +917 -0
  69. package/dist/client/client/wsClient.js +369 -0
  70. package/dist/client/config/configManager.js +303 -0
  71. package/dist/client/config/conversationMemory.js +86 -0
  72. package/dist/client/config/taskClassificationConfig.js +148 -0
  73. package/dist/client/constants/contextWindows.js +295 -0
  74. package/dist/client/constants/enums.js +853 -0
  75. package/dist/client/constants/index.js +207 -0
  76. package/dist/client/constants/performance.js +389 -0
  77. package/dist/client/constants/retry.js +266 -0
  78. package/dist/client/constants/timeouts.js +182 -0
  79. package/dist/client/constants/tokens.js +380 -0
  80. package/dist/client/constants/videoErrors.js +46 -0
  81. package/dist/client/context/budgetChecker.js +98 -0
  82. package/dist/client/context/contextCompactor.js +205 -0
  83. package/dist/client/context/emergencyTruncation.js +88 -0
  84. package/dist/client/context/errorDetection.js +171 -0
  85. package/dist/client/context/errors.js +21 -0
  86. package/dist/client/context/fileTokenBudget.js +127 -0
  87. package/dist/client/context/prompts/summarizationPrompt.js +117 -0
  88. package/dist/client/context/stages/fileReadDeduplicator.js +66 -0
  89. package/dist/client/context/stages/slidingWindowTruncator.js +190 -0
  90. package/dist/client/context/stages/structuredSummarizer.js +99 -0
  91. package/dist/client/context/stages/toolOutputPruner.js +52 -0
  92. package/dist/client/context/summarizationEngine.js +136 -0
  93. package/dist/client/context/toolOutputLimits.js +78 -0
  94. package/dist/client/context/toolPairRepair.js +66 -0
  95. package/dist/client/core/analytics.js +88 -0
  96. package/dist/client/core/baseProvider.js +1385 -0
  97. package/dist/client/core/constants.js +140 -0
  98. package/dist/client/core/conversationMemoryFactory.js +141 -0
  99. package/dist/client/core/conversationMemoryInitializer.js +128 -0
  100. package/dist/client/core/conversationMemoryManager.js +344 -0
  101. package/dist/client/core/dynamicModels.js +358 -0
  102. package/dist/client/core/evaluation.js +309 -0
  103. package/dist/client/core/evaluationProviders.js +248 -0
  104. package/dist/client/core/factory.js +412 -0
  105. package/dist/client/core/infrastructure/baseError.js +22 -0
  106. package/dist/client/core/infrastructure/baseFactory.js +54 -0
  107. package/dist/client/core/infrastructure/baseRegistry.js +49 -0
  108. package/dist/client/core/infrastructure/index.js +5 -0
  109. package/dist/client/core/infrastructure/retry.js +20 -0
  110. package/dist/client/core/infrastructure/typedEventEmitter.js +23 -0
  111. package/dist/client/core/modelConfiguration.js +851 -0
  112. package/dist/client/core/modules/GenerationHandler.js +588 -0
  113. package/dist/client/core/modules/MessageBuilder.js +273 -0
  114. package/dist/client/core/modules/StreamHandler.js +185 -0
  115. package/dist/client/core/modules/TelemetryHandler.js +203 -0
  116. package/dist/client/core/modules/ToolsManager.js +499 -0
  117. package/dist/client/core/modules/Utilities.js +331 -0
  118. package/dist/client/core/redisConversationMemoryManager.js +1435 -0
  119. package/dist/client/core/streamAnalytics.js +131 -0
  120. package/dist/client/errors.d.ts +299 -0
  121. package/dist/client/errors.js +552 -0
  122. package/dist/client/evaluation/contextBuilder.js +134 -0
  123. package/dist/client/evaluation/index.js +61 -0
  124. package/dist/client/evaluation/prompts.js +73 -0
  125. package/dist/client/evaluation/ragasEvaluator.js +110 -0
  126. package/dist/client/evaluation/retryManager.js +78 -0
  127. package/dist/client/evaluation/scoring.js +61 -0
  128. package/dist/client/factories/providerFactory.js +166 -0
  129. package/dist/client/factories/providerRegistry.js +166 -0
  130. package/dist/client/features/ppt/constants.js +896 -0
  131. package/dist/client/features/ppt/contentPlanner.js +529 -0
  132. package/dist/client/features/ppt/presentationOrchestrator.js +236 -0
  133. package/dist/client/features/ppt/slideGenerator.js +532 -0
  134. package/dist/client/features/ppt/slideRenderers.js +2383 -0
  135. package/dist/client/features/ppt/slideTypeInference.js +405 -0
  136. package/dist/client/features/ppt/types.js +13 -0
  137. package/dist/client/features/ppt/utils.js +443 -0
  138. package/dist/client/files/fileReferenceRegistry.js +1543 -0
  139. package/dist/client/files/fileTools.js +450 -0
  140. package/dist/client/files/streamingReader.js +321 -0
  141. package/dist/client/files/types.js +23 -0
  142. package/dist/client/hitl/hitlErrors.js +54 -0
  143. package/dist/client/hitl/hitlManager.js +460 -0
  144. package/dist/client/httpClient.d.ts +297 -0
  145. package/dist/client/httpClient.js +837 -0
  146. package/dist/client/index.d.ts +111 -0
  147. package/dist/client/index.js +511 -0
  148. package/dist/client/interceptors.d.ts +283 -0
  149. package/dist/client/interceptors.js +601 -0
  150. package/dist/client/mcp/agentExposure.js +356 -0
  151. package/dist/client/mcp/auth/index.js +11 -0
  152. package/dist/client/mcp/auth/oauthClientProvider.js +325 -0
  153. package/dist/client/mcp/auth/tokenStorage.js +134 -0
  154. package/dist/client/mcp/batching/index.js +10 -0
  155. package/dist/client/mcp/batching/requestBatcher.js +441 -0
  156. package/dist/client/mcp/caching/index.js +10 -0
  157. package/dist/client/mcp/caching/toolCache.js +433 -0
  158. package/dist/client/mcp/elicitation/elicitationManager.js +376 -0
  159. package/dist/client/mcp/elicitation/index.js +11 -0
  160. package/dist/client/mcp/elicitation/types.js +10 -0
  161. package/dist/client/mcp/elicitationProtocol.js +375 -0
  162. package/dist/client/mcp/enhancedToolDiscovery.js +481 -0
  163. package/dist/client/mcp/externalServerManager.js +1478 -0
  164. package/dist/client/mcp/factory.js +161 -0
  165. package/dist/client/mcp/flexibleToolValidator.js +161 -0
  166. package/dist/client/mcp/httpRateLimiter.js +391 -0
  167. package/dist/client/mcp/httpRetryHandler.js +178 -0
  168. package/dist/client/mcp/index.js +74 -0
  169. package/dist/client/mcp/mcpCircuitBreaker.js +427 -0
  170. package/dist/client/mcp/mcpClientFactory.js +708 -0
  171. package/dist/client/mcp/mcpRegistryClient.js +488 -0
  172. package/dist/client/mcp/mcpServerBase.js +373 -0
  173. package/dist/client/mcp/multiServerManager.js +579 -0
  174. package/dist/client/mcp/registry.js +158 -0
  175. package/dist/client/mcp/routing/index.js +10 -0
  176. package/dist/client/mcp/routing/toolRouter.js +416 -0
  177. package/dist/client/mcp/serverCapabilities.js +502 -0
  178. package/dist/client/mcp/servers/agent/directToolsServer.js +150 -0
  179. package/dist/client/mcp/toolAnnotations.js +239 -0
  180. package/dist/client/mcp/toolConverter.js +258 -0
  181. package/dist/client/mcp/toolDiscoveryService.js +798 -0
  182. package/dist/client/mcp/toolIntegration.js +334 -0
  183. package/dist/client/mcp/toolRegistry.js +719 -0
  184. package/dist/client/memory/hippocampusInitializer.js +19 -0
  185. package/dist/client/memory/memoryRetrievalTools.js +166 -0
  186. package/dist/client/middleware/builtin/analytics.js +132 -0
  187. package/dist/client/middleware/builtin/autoEvaluation.js +203 -0
  188. package/dist/client/middleware/builtin/guardrails.js +109 -0
  189. package/dist/client/middleware/builtin/lifecycle.js +168 -0
  190. package/dist/client/middleware/factory.js +327 -0
  191. package/dist/client/middleware/registry.js +295 -0
  192. package/dist/client/middleware/utils/guardrailsUtils.js +396 -0
  193. package/dist/client/models/anthropicModels.js +527 -0
  194. package/dist/client/neurolink.js +8015 -0
  195. package/dist/client/observability/exporterRegistry.js +413 -0
  196. package/dist/client/observability/exporters/arizeExporter.js +138 -0
  197. package/dist/client/observability/exporters/baseExporter.js +190 -0
  198. package/dist/client/observability/exporters/braintrustExporter.js +154 -0
  199. package/dist/client/observability/exporters/datadogExporter.js +196 -0
  200. package/dist/client/observability/exporters/laminarExporter.js +302 -0
  201. package/dist/client/observability/exporters/langfuseExporter.js +209 -0
  202. package/dist/client/observability/exporters/langsmithExporter.js +143 -0
  203. package/dist/client/observability/exporters/otelExporter.js +164 -0
  204. package/dist/client/observability/exporters/posthogExporter.js +287 -0
  205. package/dist/client/observability/exporters/sentryExporter.js +165 -0
  206. package/dist/client/observability/index.js +31 -0
  207. package/dist/client/observability/metricsAggregator.js +556 -0
  208. package/dist/client/observability/otelBridge.js +131 -0
  209. package/dist/client/observability/retryPolicy.js +383 -0
  210. package/dist/client/observability/sampling/samplers.js +216 -0
  211. package/dist/client/observability/spanProcessor.js +303 -0
  212. package/dist/client/observability/tokenTracker.js +413 -0
  213. package/dist/client/observability/types/exporterTypes.js +5 -0
  214. package/dist/client/observability/types/index.js +4 -0
  215. package/dist/client/observability/types/spanTypes.js +92 -0
  216. package/dist/client/observability/utils/safeMetadata.js +25 -0
  217. package/dist/client/observability/utils/spanSerializer.js +292 -0
  218. package/dist/client/processors/archive/ArchiveProcessor.js +1308 -0
  219. package/dist/client/processors/base/BaseFileProcessor.js +614 -0
  220. package/dist/client/processors/base/types.js +82 -0
  221. package/dist/client/processors/config/fileTypes.js +520 -0
  222. package/dist/client/processors/config/index.js +92 -0
  223. package/dist/client/processors/config/languageMap.js +410 -0
  224. package/dist/client/processors/config/mimeTypes.js +363 -0
  225. package/dist/client/processors/config/sizeLimits.js +258 -0
  226. package/dist/client/processors/document/ExcelProcessor.js +590 -0
  227. package/dist/client/processors/document/OpenDocumentProcessor.js +212 -0
  228. package/dist/client/processors/document/PptxProcessor.js +157 -0
  229. package/dist/client/processors/document/RtfProcessor.js +361 -0
  230. package/dist/client/processors/document/WordProcessor.js +353 -0
  231. package/dist/client/processors/errors/FileErrorCode.js +255 -0
  232. package/dist/client/processors/errors/errorHelpers.js +386 -0
  233. package/dist/client/processors/errors/errorSerializer.js +507 -0
  234. package/dist/client/processors/errors/index.js +49 -0
  235. package/dist/client/processors/markup/SvgProcessor.js +240 -0
  236. package/dist/client/processors/media/AudioProcessor.js +707 -0
  237. package/dist/client/processors/media/VideoProcessor.js +1045 -0
  238. package/dist/client/providers/amazonBedrock.js +1512 -0
  239. package/dist/client/providers/amazonSagemaker.js +162 -0
  240. package/dist/client/providers/anthropic.js +831 -0
  241. package/dist/client/providers/azureOpenai.js +143 -0
  242. package/dist/client/providers/googleAiStudio.js +1200 -0
  243. package/dist/client/providers/googleNativeGemini3.js +543 -0
  244. package/dist/client/providers/googleVertex.js +2936 -0
  245. package/dist/client/providers/huggingFace.js +315 -0
  246. package/dist/client/providers/litellm.js +488 -0
  247. package/dist/client/providers/mistral.js +157 -0
  248. package/dist/client/providers/ollama.js +1579 -0
  249. package/dist/client/providers/openAI.js +627 -0
  250. package/dist/client/providers/openRouter.js +543 -0
  251. package/dist/client/providers/openaiCompatible.js +290 -0
  252. package/dist/client/providers/providerTypeUtils.js +46 -0
  253. package/dist/client/providers/sagemaker/adaptive-semaphore.js +215 -0
  254. package/dist/client/providers/sagemaker/client.js +472 -0
  255. package/dist/client/providers/sagemaker/config.js +317 -0
  256. package/dist/client/providers/sagemaker/detection.js +606 -0
  257. package/dist/client/providers/sagemaker/error-constants.js +227 -0
  258. package/dist/client/providers/sagemaker/errors.js +299 -0
  259. package/dist/client/providers/sagemaker/language-model.js +775 -0
  260. package/dist/client/providers/sagemaker/parsers.js +634 -0
  261. package/dist/client/providers/sagemaker/streaming.js +331 -0
  262. package/dist/client/providers/sagemaker/structured-parser.js +625 -0
  263. package/dist/client/proxy/accountQuota.js +162 -0
  264. package/dist/client/proxy/claudeFormat.js +595 -0
  265. package/dist/client/proxy/modelRouter.js +29 -0
  266. package/dist/client/proxy/oauthFetch.js +367 -0
  267. package/dist/client/proxy/proxyFetch.js +586 -0
  268. package/dist/client/proxy/requestLogger.js +207 -0
  269. package/dist/client/proxy/tokenRefresh.js +124 -0
  270. package/dist/client/proxy/usageStats.js +74 -0
  271. package/dist/client/proxy/utils/noProxyUtils.js +149 -0
  272. package/dist/client/rag/ChunkerFactory.js +320 -0
  273. package/dist/client/rag/ChunkerRegistry.js +421 -0
  274. package/dist/client/rag/chunkers/BaseChunker.js +143 -0
  275. package/dist/client/rag/chunkers/CharacterChunker.js +28 -0
  276. package/dist/client/rag/chunkers/HTMLChunker.js +38 -0
  277. package/dist/client/rag/chunkers/JSONChunker.js +68 -0
  278. package/dist/client/rag/chunkers/LaTeXChunker.js +63 -0
  279. package/dist/client/rag/chunkers/MarkdownChunker.js +306 -0
  280. package/dist/client/rag/chunkers/RecursiveChunker.js +139 -0
  281. package/dist/client/rag/chunkers/SemanticMarkdownChunker.js +138 -0
  282. package/dist/client/rag/chunkers/SentenceChunker.js +66 -0
  283. package/dist/client/rag/chunkers/TokenChunker.js +61 -0
  284. package/dist/client/rag/chunkers/index.js +15 -0
  285. package/dist/client/rag/chunking/characterChunker.js +142 -0
  286. package/dist/client/rag/chunking/chunkerRegistry.js +194 -0
  287. package/dist/client/rag/chunking/htmlChunker.js +247 -0
  288. package/dist/client/rag/chunking/index.js +17 -0
  289. package/dist/client/rag/chunking/jsonChunker.js +281 -0
  290. package/dist/client/rag/chunking/latexChunker.js +251 -0
  291. package/dist/client/rag/chunking/markdownChunker.js +373 -0
  292. package/dist/client/rag/chunking/recursiveChunker.js +148 -0
  293. package/dist/client/rag/chunking/semanticChunker.js +306 -0
  294. package/dist/client/rag/chunking/sentenceChunker.js +230 -0
  295. package/dist/client/rag/chunking/tokenChunker.js +183 -0
  296. package/dist/client/rag/document/MDocument.js +392 -0
  297. package/dist/client/rag/document/index.js +5 -0
  298. package/dist/client/rag/document/loaders.js +500 -0
  299. package/dist/client/rag/errors/RAGError.js +274 -0
  300. package/dist/client/rag/errors/index.js +6 -0
  301. package/dist/client/rag/graphRag/graphRAG.js +401 -0
  302. package/dist/client/rag/graphRag/index.js +4 -0
  303. package/dist/client/rag/index.js +141 -0
  304. package/dist/client/rag/metadata/MetadataExtractorFactory.js +418 -0
  305. package/dist/client/rag/metadata/MetadataExtractorRegistry.js +362 -0
  306. package/dist/client/rag/metadata/index.js +9 -0
  307. package/dist/client/rag/metadata/metadataExtractor.js +280 -0
  308. package/dist/client/rag/pipeline/RAGPipeline.js +436 -0
  309. package/dist/client/rag/pipeline/contextAssembly.js +341 -0
  310. package/dist/client/rag/pipeline/index.js +5 -0
  311. package/dist/client/rag/ragIntegration.js +321 -0
  312. package/dist/client/rag/reranker/RerankerFactory.js +430 -0
  313. package/dist/client/rag/reranker/RerankerRegistry.js +402 -0
  314. package/dist/client/rag/reranker/index.js +9 -0
  315. package/dist/client/rag/reranker/reranker.js +277 -0
  316. package/dist/client/rag/resilience/CircuitBreaker.js +431 -0
  317. package/dist/client/rag/resilience/RetryHandler.js +304 -0
  318. package/dist/client/rag/resilience/index.js +7 -0
  319. package/dist/client/rag/retrieval/hybridSearch.js +335 -0
  320. package/dist/client/rag/retrieval/index.js +5 -0
  321. package/dist/client/rag/retrieval/vectorQueryTool.js +307 -0
  322. package/dist/client/rag/types.js +8 -0
  323. package/dist/client/reactHooks.d.ts +239 -0
  324. package/dist/client/reactHooks.tsx +1483 -0
  325. package/dist/client/sdk/toolRegistration.js +377 -0
  326. package/dist/client/server/abstract/baseServerAdapter.js +575 -0
  327. package/dist/client/server/adapters/expressAdapter.js +486 -0
  328. package/dist/client/server/adapters/fastifyAdapter.js +472 -0
  329. package/dist/client/server/adapters/honoAdapter.js +632 -0
  330. package/dist/client/server/adapters/koaAdapter.js +510 -0
  331. package/dist/client/server/errors.js +486 -0
  332. package/dist/client/server/factory/serverAdapterFactory.js +160 -0
  333. package/dist/client/server/index.js +108 -0
  334. package/dist/client/server/middleware/abortSignal.js +111 -0
  335. package/dist/client/server/middleware/auth.js +388 -0
  336. package/dist/client/server/middleware/cache.js +359 -0
  337. package/dist/client/server/middleware/common.js +281 -0
  338. package/dist/client/server/middleware/deprecation.js +190 -0
  339. package/dist/client/server/middleware/mcpBodyAttachment.js +63 -0
  340. package/dist/client/server/middleware/rateLimit.js +227 -0
  341. package/dist/client/server/middleware/validation.js +388 -0
  342. package/dist/client/server/openapi/generator.js +398 -0
  343. package/dist/client/server/openapi/index.js +36 -0
  344. package/dist/client/server/openapi/schemas.js +695 -0
  345. package/dist/client/server/openapi/templates.js +374 -0
  346. package/dist/client/server/routes/agentRoutes.js +171 -0
  347. package/dist/client/server/routes/claudeProxyRoutes.js +1600 -0
  348. package/dist/client/server/routes/healthRoutes.js +187 -0
  349. package/dist/client/server/routes/index.js +57 -0
  350. package/dist/client/server/routes/mcpRoutes.js +342 -0
  351. package/dist/client/server/routes/memoryRoutes.js +350 -0
  352. package/dist/client/server/routes/openApiRoutes.js +126 -0
  353. package/dist/client/server/routes/toolRoutes.js +199 -0
  354. package/dist/client/server/streaming/dataStream.js +486 -0
  355. package/dist/client/server/streaming/index.js +11 -0
  356. package/dist/client/server/types.js +67 -0
  357. package/dist/client/server/utils/redaction.js +334 -0
  358. package/dist/client/server/utils/validation.js +243 -0
  359. package/dist/client/server/websocket/WebSocketHandler.js +383 -0
  360. package/dist/client/server/websocket/index.js +4 -0
  361. package/dist/client/services/server/ai/observability/instrumentation.js +808 -0
  362. package/dist/client/sseClient.d.ts +156 -0
  363. package/dist/client/sseClient.js +545 -0
  364. package/dist/client/streamingClient.d.ts +327 -0
  365. package/dist/client/streamingClient.js +917 -0
  366. package/dist/client/telemetry/attributes.js +100 -0
  367. package/dist/client/telemetry/index.js +26 -0
  368. package/dist/client/telemetry/telemetryService.js +308 -0
  369. package/dist/client/telemetry/tracers.js +17 -0
  370. package/dist/client/telemetry/withSpan.js +34 -0
  371. package/dist/client/types/actionTypes.js +6 -0
  372. package/dist/client/types/analytics.js +5 -0
  373. package/dist/client/types/authTypes.js +8 -0
  374. package/dist/client/types/circuitBreakerErrors.js +34 -0
  375. package/dist/client/types/cli.js +21 -0
  376. package/dist/client/types/clientTypes.js +10 -0
  377. package/dist/client/types/common.js +51 -0
  378. package/dist/client/types/configTypes.js +49 -0
  379. package/dist/client/types/content.js +19 -0
  380. package/dist/client/types/contextTypes.js +400 -0
  381. package/dist/client/types/conversation.js +47 -0
  382. package/dist/client/types/conversationMemoryInterface.js +6 -0
  383. package/dist/client/types/domainTypes.js +5 -0
  384. package/dist/client/types/errors.js +167 -0
  385. package/dist/client/types/evaluation.js +5 -0
  386. package/dist/client/types/evaluationProviders.js +5 -0
  387. package/dist/client/types/evaluationTypes.js +1 -0
  388. package/dist/client/types/externalMcp.js +6 -0
  389. package/dist/client/types/fileReferenceTypes.js +8 -0
  390. package/dist/client/types/fileTypes.js +4 -0
  391. package/dist/client/types/generateTypes.js +1 -0
  392. package/dist/client/types/guardrails.js +1 -0
  393. package/dist/client/types/hitlTypes.js +8 -0
  394. package/dist/client/types/index.js +57 -0
  395. package/dist/client/types/mcpTypes.js +5 -0
  396. package/dist/client/types/middlewareTypes.js +1 -0
  397. package/dist/client/types/modelTypes.js +30 -0
  398. package/dist/client/types/multimodal.js +135 -0
  399. package/dist/client/types/observability.js +6 -0
  400. package/dist/client/types/pptTypes.js +82 -0
  401. package/dist/client/types/providers.js +111 -0
  402. package/dist/client/types/proxyTypes.js +16 -0
  403. package/dist/client/types/ragTypes.js +7 -0
  404. package/dist/client/types/sdkTypes.js +8 -0
  405. package/dist/client/types/serviceTypes.js +5 -0
  406. package/dist/client/types/streamTypes.js +1 -0
  407. package/dist/client/types/subscriptionTypes.js +9 -0
  408. package/dist/client/types/taskClassificationTypes.js +5 -0
  409. package/dist/client/types/tools.js +24 -0
  410. package/dist/client/types/ttsTypes.js +57 -0
  411. package/dist/client/types/typeAliases.js +48 -0
  412. package/dist/client/types/utilities.js +4 -0
  413. package/dist/client/types/workflowTypes.js +30 -0
  414. package/dist/client/utils/async/withTimeout.js +98 -0
  415. package/dist/client/utils/asyncMutex.js +60 -0
  416. package/dist/client/utils/conversationMemory.js +431 -0
  417. package/dist/client/utils/csvProcessor.js +846 -0
  418. package/dist/client/utils/errorHandling.js +936 -0
  419. package/dist/client/utils/evaluationUtils.js +131 -0
  420. package/dist/client/utils/factoryProcessing.js +589 -0
  421. package/dist/client/utils/fileDetector.js +2161 -0
  422. package/dist/client/utils/imageCache.js +376 -0
  423. package/dist/client/utils/imageProcessor.js +704 -0
  424. package/dist/client/utils/logger.js +491 -0
  425. package/dist/client/utils/mcpDefaults.js +134 -0
  426. package/dist/client/utils/messageBuilder.js +1653 -0
  427. package/dist/client/utils/modelAliasResolver.js +54 -0
  428. package/dist/client/utils/modelDetection.js +80 -0
  429. package/dist/client/utils/modelRouter.js +292 -0
  430. package/dist/client/utils/multimodalOptionsBuilder.js +65 -0
  431. package/dist/client/utils/observabilityHelpers.js +47 -0
  432. package/dist/client/utils/parameterValidation.js +966 -0
  433. package/dist/client/utils/pdfProcessor.js +410 -0
  434. package/dist/client/utils/performance.js +222 -0
  435. package/dist/client/utils/pricing.js +340 -0
  436. package/dist/client/utils/promptRedaction.js +62 -0
  437. package/dist/client/utils/providerConfig.js +1009 -0
  438. package/dist/client/utils/providerHealth.js +1237 -0
  439. package/dist/client/utils/providerRetry.js +112 -0
  440. package/dist/client/utils/providerUtils.js +434 -0
  441. package/dist/client/utils/rateLimiter.js +200 -0
  442. package/dist/client/utils/redis.js +368 -0
  443. package/dist/client/utils/retryHandler.js +269 -0
  444. package/dist/client/utils/retryability.js +22 -0
  445. package/dist/client/utils/sanitizers/svg.js +481 -0
  446. package/dist/client/utils/schemaConversion.js +255 -0
  447. package/dist/client/utils/taskClassificationUtils.js +149 -0
  448. package/dist/client/utils/taskClassifier.js +94 -0
  449. package/dist/client/utils/thinkingConfig.js +104 -0
  450. package/dist/client/utils/timeout.js +359 -0
  451. package/dist/client/utils/tokenEstimation.js +142 -0
  452. package/dist/client/utils/tokenLimits.js +125 -0
  453. package/dist/client/utils/tokenUtils.js +239 -0
  454. package/dist/client/utils/toolUtils.js +75 -0
  455. package/dist/client/utils/transformationUtils.js +554 -0
  456. package/dist/client/utils/ttsProcessor.js +286 -0
  457. package/dist/client/utils/typeUtils.js +97 -0
  458. package/dist/client/utils/videoAnalysisProcessor.js +67 -0
  459. package/dist/client/workflow/config.js +398 -0
  460. package/dist/client/workflow/core/ensembleExecutor.js +407 -0
  461. package/dist/client/workflow/core/judgeScorer.js +544 -0
  462. package/dist/client/workflow/core/responseConditioner.js +225 -0
  463. package/dist/client/workflow/core/types/conditionerTypes.js +7 -0
  464. package/dist/client/workflow/core/types/ensembleTypes.js +7 -0
  465. package/dist/client/workflow/core/types/index.js +7 -0
  466. package/dist/client/workflow/core/types/judgeTypes.js +7 -0
  467. package/dist/client/workflow/core/types/layerTypes.js +7 -0
  468. package/dist/client/workflow/core/types/registryTypes.js +7 -0
  469. package/dist/client/workflow/core/workflowRegistry.js +304 -0
  470. package/dist/client/workflow/core/workflowRunner.js +586 -0
  471. package/dist/client/workflow/index.js +50 -0
  472. package/dist/client/workflow/types.js +9 -0
  473. package/dist/client/workflow/utils/types/index.js +7 -0
  474. package/dist/client/workflow/utils/workflowMetrics.js +311 -0
  475. package/dist/client/workflow/utils/workflowValidation.js +420 -0
  476. package/dist/client/workflow/workflows/adaptiveWorkflow.js +366 -0
  477. package/dist/client/workflow/workflows/consensusWorkflow.js +192 -0
  478. package/dist/client/workflow/workflows/fallbackWorkflow.js +225 -0
  479. package/dist/client/workflow/workflows/multiJudgeWorkflow.js +351 -0
  480. package/dist/client/wsClient.d.ts +130 -0
  481. package/dist/client/wsClient.js +369 -0
  482. package/dist/config/configManager.js +2 -2
  483. package/dist/constants/contextWindows.js +15 -13
  484. package/dist/constants/enums.d.ts +10 -16
  485. package/dist/constants/enums.js +12 -18
  486. package/dist/constants/index.d.ts +0 -10
  487. package/dist/constants/index.js +1 -1
  488. package/dist/constants/tokens.d.ts +29 -16
  489. package/dist/constants/tokens.js +23 -16
  490. package/dist/core/baseProvider.d.ts +5 -5
  491. package/dist/core/baseProvider.js +6 -6
  492. package/dist/core/constants.js +6 -1
  493. package/dist/core/dynamicModels.js +10 -6
  494. package/dist/core/evaluationProviders.js +1 -1
  495. package/dist/core/infrastructure/baseError.d.ts +1 -1
  496. package/dist/core/infrastructure/baseFactory.d.ts +1 -6
  497. package/dist/core/infrastructure/baseRegistry.d.ts +6 -5
  498. package/dist/core/infrastructure/index.d.ts +6 -4
  499. package/dist/core/infrastructure/index.js +2 -2
  500. package/dist/core/modelConfiguration.js +3 -1
  501. package/dist/core/modules/GenerationHandler.d.ts +3 -3
  502. package/dist/core/modules/GenerationHandler.js +49 -41
  503. package/dist/core/modules/MessageBuilder.d.ts +5 -5
  504. package/dist/core/modules/MessageBuilder.js +4 -6
  505. package/dist/core/modules/StreamHandler.js +26 -12
  506. package/dist/core/modules/TelemetryHandler.d.ts +4 -6
  507. package/dist/core/modules/TelemetryHandler.js +7 -6
  508. package/dist/core/modules/ToolsManager.d.ts +2 -12
  509. package/dist/core/modules/ToolsManager.js +20 -4
  510. package/dist/core/modules/Utilities.js +3 -1
  511. package/dist/core/redisConversationMemoryManager.js +3 -3
  512. package/dist/core/streamAnalytics.js +23 -9
  513. package/dist/evaluation/contextBuilder.d.ts +2 -2
  514. package/dist/evaluation/contextBuilder.js +2 -2
  515. package/dist/evaluation/index.d.ts +2 -2
  516. package/dist/evaluation/retryManager.js +1 -1
  517. package/dist/factories/providerFactory.js +2 -2
  518. package/dist/features/ppt/constants.js +1 -1
  519. package/dist/features/ppt/presentationOrchestrator.js +7 -3
  520. package/dist/features/ppt/slideGenerator.d.ts +2 -1
  521. package/dist/features/ppt/slideGenerator.js +6 -1
  522. package/dist/files/fileTools.d.ts +16 -247
  523. package/dist/files/fileTools.js +16 -15
  524. package/dist/index.d.ts +5 -3
  525. package/dist/index.js +20 -3
  526. package/dist/lib/adapters/providerImageAdapter.js +13 -22
  527. package/dist/lib/adapters/video/videoAnalyzer.d.ts +4 -4
  528. package/dist/lib/adapters/video/videoAnalyzer.js +3 -3
  529. package/dist/lib/agent/directTools.d.ts +20 -289
  530. package/dist/lib/agent/directTools.js +11 -10
  531. package/dist/lib/auth/accountPool.d.ts +68 -0
  532. package/dist/lib/auth/accountPool.js +179 -0
  533. package/dist/lib/auth/anthropicOAuth.d.ts +15 -5
  534. package/dist/lib/auth/anthropicOAuth.js +117 -57
  535. package/dist/lib/auth/index.d.ts +7 -5
  536. package/dist/lib/auth/index.js +6 -2
  537. package/dist/lib/auth/tokenStore.d.ts +71 -27
  538. package/dist/lib/auth/tokenStore.js +342 -64
  539. package/dist/lib/client/aiSdkAdapter.d.ts +196 -0
  540. package/dist/lib/client/aiSdkAdapter.js +488 -0
  541. package/dist/lib/client/auth.d.ts +248 -0
  542. package/dist/lib/client/auth.js +474 -0
  543. package/dist/lib/client/errors.d.ts +299 -0
  544. package/dist/lib/client/errors.js +553 -0
  545. package/dist/lib/client/httpClient.d.ts +297 -0
  546. package/dist/lib/client/httpClient.js +838 -0
  547. package/dist/lib/client/index.d.ts +111 -0
  548. package/dist/lib/client/index.js +173 -0
  549. package/dist/lib/client/interceptors.d.ts +283 -0
  550. package/dist/lib/client/interceptors.js +602 -0
  551. package/dist/lib/client/reactHooks.d.ts +239 -0
  552. package/dist/lib/client/reactHooks.js +1160 -0
  553. package/dist/lib/client/sseClient.d.ts +156 -0
  554. package/dist/lib/client/sseClient.js +546 -0
  555. package/dist/lib/client/streamingClient.d.ts +327 -0
  556. package/dist/lib/client/streamingClient.js +918 -0
  557. package/dist/lib/client/wsClient.d.ts +130 -0
  558. package/dist/lib/client/wsClient.js +370 -0
  559. package/dist/lib/config/configManager.js +2 -2
  560. package/dist/lib/constants/contextWindows.js +15 -13
  561. package/dist/lib/constants/enums.d.ts +10 -16
  562. package/dist/lib/constants/enums.js +12 -18
  563. package/dist/lib/constants/index.d.ts +0 -10
  564. package/dist/lib/constants/index.js +1 -1
  565. package/dist/lib/constants/tokens.d.ts +29 -16
  566. package/dist/lib/constants/tokens.js +23 -16
  567. package/dist/lib/core/baseProvider.d.ts +5 -5
  568. package/dist/lib/core/baseProvider.js +6 -6
  569. package/dist/lib/core/constants.js +6 -1
  570. package/dist/lib/core/dynamicModels.js +10 -6
  571. package/dist/lib/core/evaluationProviders.js +1 -1
  572. package/dist/lib/core/infrastructure/baseError.d.ts +1 -1
  573. package/dist/lib/core/infrastructure/baseFactory.d.ts +1 -6
  574. package/dist/lib/core/infrastructure/baseRegistry.d.ts +6 -5
  575. package/dist/lib/core/infrastructure/index.d.ts +6 -4
  576. package/dist/lib/core/infrastructure/index.js +2 -2
  577. package/dist/lib/core/modelConfiguration.js +3 -1
  578. package/dist/lib/core/modules/GenerationHandler.d.ts +3 -3
  579. package/dist/lib/core/modules/GenerationHandler.js +49 -41
  580. package/dist/lib/core/modules/MessageBuilder.d.ts +5 -5
  581. package/dist/lib/core/modules/MessageBuilder.js +4 -6
  582. package/dist/lib/core/modules/StreamHandler.js +26 -12
  583. package/dist/lib/core/modules/TelemetryHandler.d.ts +4 -6
  584. package/dist/lib/core/modules/TelemetryHandler.js +7 -6
  585. package/dist/lib/core/modules/ToolsManager.d.ts +2 -12
  586. package/dist/lib/core/modules/ToolsManager.js +20 -4
  587. package/dist/lib/core/modules/Utilities.js +3 -1
  588. package/dist/lib/core/redisConversationMemoryManager.js +3 -3
  589. package/dist/lib/core/streamAnalytics.js +23 -9
  590. package/dist/lib/evaluation/contextBuilder.d.ts +2 -2
  591. package/dist/lib/evaluation/contextBuilder.js +2 -2
  592. package/dist/lib/evaluation/index.d.ts +2 -2
  593. package/dist/lib/evaluation/retryManager.js +1 -1
  594. package/dist/lib/factories/providerFactory.js +2 -2
  595. package/dist/lib/features/ppt/constants.js +1 -1
  596. package/dist/lib/features/ppt/presentationOrchestrator.js +7 -3
  597. package/dist/lib/features/ppt/slideGenerator.d.ts +2 -1
  598. package/dist/lib/features/ppt/slideGenerator.js +6 -1
  599. package/dist/lib/files/fileTools.d.ts +16 -247
  600. package/dist/lib/files/fileTools.js +16 -15
  601. package/dist/lib/index.d.ts +5 -3
  602. package/dist/lib/index.js +20 -3
  603. package/dist/lib/mcp/batching/requestBatcher.js +1 -1
  604. package/dist/lib/mcp/externalServerManager.js +5 -2
  605. package/dist/lib/mcp/factory.js +1 -1
  606. package/dist/lib/mcp/index.d.ts +1 -1
  607. package/dist/lib/mcp/index.js +1 -1
  608. package/dist/lib/mcp/mcpCircuitBreaker.d.ts +1 -0
  609. package/dist/lib/mcp/mcpCircuitBreaker.js +30 -4
  610. package/dist/lib/mcp/mcpClientFactory.js +33 -4
  611. package/dist/lib/mcp/toolDiscoveryService.js +52 -5
  612. package/dist/lib/mcp/toolRegistry.js +7 -1
  613. package/dist/lib/memory/memoryRetrievalTools.d.ts +5 -89
  614. package/dist/lib/memory/memoryRetrievalTools.js +1 -1
  615. package/dist/lib/middleware/builtin/analytics.js +3 -0
  616. package/dist/lib/middleware/builtin/autoEvaluation.js +46 -24
  617. package/dist/lib/middleware/builtin/guardrails.js +4 -0
  618. package/dist/lib/middleware/builtin/lifecycle.js +10 -6
  619. package/dist/lib/middleware/factory.d.ts +3 -3
  620. package/dist/lib/middleware/factory.js +3 -2
  621. package/dist/lib/middleware/index.d.ts +1 -1
  622. package/dist/lib/middleware/registry.d.ts +2 -2
  623. package/dist/lib/middleware/registry.js +1 -0
  624. package/dist/lib/middleware/utils/guardrailsUtils.d.ts +5 -6
  625. package/dist/lib/middleware/utils/guardrailsUtils.js +15 -6
  626. package/dist/lib/neurolink.d.ts +9 -20
  627. package/dist/lib/neurolink.js +278 -186
  628. package/dist/lib/observability/retryPolicy.d.ts +2 -13
  629. package/dist/lib/observability/sampling/samplers.d.ts +2 -11
  630. package/dist/lib/observability/spanProcessor.d.ts +2 -14
  631. package/dist/lib/processors/base/BaseFileProcessor.js +1 -1
  632. package/dist/lib/processors/document/OpenDocumentProcessor.js +5 -3
  633. package/dist/lib/processors/media/VideoProcessor.js +157 -101
  634. package/dist/lib/providers/amazonBedrock.js +12 -5
  635. package/dist/lib/providers/amazonSagemaker.d.ts +5 -5
  636. package/dist/lib/providers/amazonSagemaker.js +6 -2
  637. package/dist/lib/providers/anthropic.d.ts +3 -3
  638. package/dist/lib/providers/anthropic.js +23 -192
  639. package/dist/lib/providers/anthropicBaseProvider.d.ts +4 -4
  640. package/dist/lib/providers/anthropicBaseProvider.js +24 -13
  641. package/dist/lib/providers/azureOpenai.d.ts +2 -2
  642. package/dist/lib/providers/azureOpenai.js +6 -6
  643. package/dist/lib/providers/googleAiStudio.d.ts +2 -2
  644. package/dist/lib/providers/googleAiStudio.js +15 -7
  645. package/dist/lib/providers/googleNativeGemini3.d.ts +3 -54
  646. package/dist/lib/providers/googleNativeGemini3.js +14 -10
  647. package/dist/lib/providers/googleVertex.d.ts +6 -6
  648. package/dist/lib/providers/googleVertex.js +32 -26
  649. package/dist/lib/providers/huggingFace.d.ts +4 -4
  650. package/dist/lib/providers/huggingFace.js +15 -5
  651. package/dist/lib/providers/litellm.d.ts +4 -4
  652. package/dist/lib/providers/litellm.js +54 -42
  653. package/dist/lib/providers/mistral.d.ts +2 -2
  654. package/dist/lib/providers/mistral.js +5 -4
  655. package/dist/lib/providers/ollama.d.ts +7 -4
  656. package/dist/lib/providers/ollama.js +30 -8
  657. package/dist/lib/providers/openAI.d.ts +2 -2
  658. package/dist/lib/providers/openAI.js +46 -21
  659. package/dist/lib/providers/openRouter.d.ts +4 -4
  660. package/dist/lib/providers/openRouter.js +63 -35
  661. package/dist/lib/providers/openaiCompatible.d.ts +2 -2
  662. package/dist/lib/providers/openaiCompatible.js +18 -9
  663. package/dist/lib/providers/providerTypeUtils.d.ts +28 -0
  664. package/dist/lib/providers/providerTypeUtils.js +47 -0
  665. package/dist/lib/providers/sagemaker/config.js +5 -5
  666. package/dist/lib/providers/sagemaker/language-model.d.ts +23 -13
  667. package/dist/lib/providers/sagemaker/language-model.js +20 -8
  668. package/dist/lib/proxy/accountQuota.d.ts +33 -0
  669. package/dist/lib/proxy/accountQuota.js +163 -0
  670. package/dist/lib/proxy/claudeFormat.d.ts +143 -0
  671. package/dist/lib/proxy/claudeFormat.js +596 -0
  672. package/dist/lib/proxy/cloaking/index.d.ts +44 -0
  673. package/dist/lib/proxy/cloaking/index.js +87 -0
  674. package/dist/lib/proxy/cloaking/plugins/headerScrubber.d.ts +9 -0
  675. package/dist/lib/proxy/cloaking/plugins/headerScrubber.js +87 -0
  676. package/dist/lib/proxy/cloaking/plugins/sessionIdentity.d.ts +15 -0
  677. package/dist/lib/proxy/cloaking/plugins/sessionIdentity.js +66 -0
  678. package/dist/lib/proxy/cloaking/plugins/systemPromptInjector.d.ts +11 -0
  679. package/dist/lib/proxy/cloaking/plugins/systemPromptInjector.js +84 -0
  680. package/dist/lib/proxy/cloaking/plugins/tlsFingerprint.d.ts +14 -0
  681. package/dist/lib/proxy/cloaking/plugins/tlsFingerprint.js +39 -0
  682. package/dist/lib/proxy/cloaking/plugins/wordObfuscator.d.ts +9 -0
  683. package/dist/lib/proxy/cloaking/plugins/wordObfuscator.js +122 -0
  684. package/dist/lib/proxy/cloaking/types.d.ts +1 -0
  685. package/dist/lib/proxy/cloaking/types.js +2 -0
  686. package/dist/lib/proxy/modelRouter.d.ts +10 -0
  687. package/dist/lib/proxy/modelRouter.js +30 -0
  688. package/dist/lib/proxy/oauthFetch.d.ts +36 -0
  689. package/dist/lib/proxy/oauthFetch.js +368 -0
  690. package/dist/lib/proxy/proxyConfig.d.ts +42 -0
  691. package/dist/lib/proxy/proxyConfig.js +500 -0
  692. package/dist/lib/proxy/proxyFetch.js +2 -1
  693. package/dist/lib/proxy/requestLogger.d.ts +50 -0
  694. package/dist/lib/proxy/requestLogger.js +208 -0
  695. package/dist/lib/proxy/tokenRefresh.d.ts +4 -0
  696. package/dist/lib/proxy/tokenRefresh.js +125 -0
  697. package/dist/lib/proxy/usageStats.d.ts +13 -0
  698. package/dist/lib/proxy/usageStats.js +75 -0
  699. package/dist/lib/rag/document/loaders.js +1 -1
  700. package/dist/lib/rag/pipeline/contextAssembly.d.ts +4 -7
  701. package/dist/lib/rag/ragIntegration.d.ts +2 -14
  702. package/dist/lib/rag/ragIntegration.js +1 -1
  703. package/dist/lib/rag/resilience/CircuitBreaker.d.ts +5 -44
  704. package/dist/lib/rag/resilience/RetryHandler.js +1 -1
  705. package/dist/lib/rag/retrieval/vectorQueryTool.d.ts +1 -9
  706. package/dist/lib/rag/retrieval/vectorQueryTool.js +1 -1
  707. package/dist/lib/sdk/toolRegistration.js +12 -1
  708. package/dist/lib/server/abstract/baseServerAdapter.js +2 -2
  709. package/dist/lib/server/adapters/honoAdapter.d.ts +6 -0
  710. package/dist/lib/server/adapters/honoAdapter.js +76 -10
  711. package/dist/lib/server/middleware/cache.js +3 -0
  712. package/dist/lib/server/routes/claudeProxyRoutes.d.ts +44 -0
  713. package/dist/lib/server/routes/claudeProxyRoutes.js +1601 -0
  714. package/dist/lib/server/routes/healthRoutes.js +18 -1
  715. package/dist/lib/server/routes/index.d.ts +7 -0
  716. package/dist/lib/server/routes/index.js +8 -0
  717. package/dist/lib/server/streaming/dataStream.d.ts +1 -5
  718. package/dist/lib/server/streaming/dataStream.js +3 -0
  719. package/dist/lib/server/utils/validation.d.ts +24 -124
  720. package/dist/lib/server/utils/validation.js +2 -2
  721. package/dist/lib/services/server/ai/observability/instrumentation.js +4 -0
  722. package/dist/lib/telemetry/attributes.d.ts +38 -0
  723. package/dist/lib/telemetry/attributes.js +40 -0
  724. package/dist/lib/telemetry/tracers.d.ts +1 -0
  725. package/dist/lib/telemetry/tracers.js +1 -0
  726. package/dist/lib/types/authTypes.d.ts +56 -0
  727. package/dist/lib/types/authTypes.js +9 -0
  728. package/dist/lib/types/circuitBreakerErrors.d.ts +30 -0
  729. package/dist/lib/types/circuitBreakerErrors.js +35 -0
  730. package/dist/lib/types/cli.d.ts +258 -0
  731. package/dist/lib/types/clientTypes.d.ts +1050 -0
  732. package/dist/lib/types/clientTypes.js +11 -0
  733. package/dist/lib/types/common.d.ts +123 -0
  734. package/dist/lib/types/configTypes.d.ts +49 -0
  735. package/dist/lib/types/configTypes.js +4 -0
  736. package/dist/lib/types/conversation.d.ts +0 -5
  737. package/dist/lib/types/evaluationTypes.d.ts +2 -2
  738. package/dist/lib/types/fileTypes.d.ts +47 -0
  739. package/dist/lib/types/generateTypes.d.ts +7 -3
  740. package/dist/lib/types/guardrails.d.ts +2 -2
  741. package/dist/lib/types/index.d.ts +4 -1
  742. package/dist/lib/types/index.js +5 -0
  743. package/dist/lib/types/middlewareTypes.d.ts +3 -3
  744. package/dist/lib/types/modelTypes.d.ts +7 -97
  745. package/dist/lib/types/modelTypes.js +3 -3
  746. package/dist/lib/types/observability.d.ts +37 -0
  747. package/dist/lib/types/providers.d.ts +107 -0
  748. package/dist/lib/types/proxyTypes.d.ts +536 -0
  749. package/dist/lib/types/proxyTypes.js +17 -0
  750. package/dist/lib/types/ragTypes.d.ts +49 -1
  751. package/dist/lib/types/streamTypes.d.ts +37 -13
  752. package/dist/lib/types/subscriptionTypes.d.ts +77 -0
  753. package/dist/lib/types/subscriptionTypes.js +2 -0
  754. package/dist/lib/types/tools.d.ts +45 -1
  755. package/dist/lib/types/typeAliases.d.ts +8 -0
  756. package/dist/lib/types/typeAliases.js +1 -0
  757. package/dist/lib/utils/async/retry.d.ts +4 -33
  758. package/dist/lib/utils/asyncMutex.d.ts +14 -0
  759. package/dist/lib/utils/asyncMutex.js +61 -0
  760. package/dist/lib/utils/errorHandling.d.ts +2 -1
  761. package/dist/lib/utils/errorHandling.js +14 -6
  762. package/dist/lib/utils/fileDetector.d.ts +13 -1
  763. package/dist/lib/utils/fileDetector.js +114 -32
  764. package/dist/lib/utils/imageProcessor.js +7 -7
  765. package/dist/lib/utils/json/safeParse.d.ts +1 -8
  766. package/dist/lib/utils/mcpDefaults.d.ts +1 -1
  767. package/dist/lib/utils/mcpDefaults.js +11 -2
  768. package/dist/lib/utils/messageBuilder.d.ts +5 -5
  769. package/dist/lib/utils/messageBuilder.js +106 -80
  770. package/dist/lib/utils/modelChoices.d.ts +1 -8
  771. package/dist/lib/utils/pdfProcessor.d.ts +1 -25
  772. package/dist/lib/utils/pdfProcessor.js +5 -4
  773. package/dist/lib/utils/pricing.js +28 -5
  774. package/dist/lib/utils/providerHealth.d.ts +1 -1
  775. package/dist/lib/utils/rateLimiter.d.ts +1 -15
  776. package/dist/lib/utils/redis.d.ts +1 -1
  777. package/dist/lib/utils/redis.js +3 -3
  778. package/dist/lib/utils/sanitizers/filename.d.ts +2 -22
  779. package/dist/lib/utils/sanitizers/index.d.ts +4 -2
  780. package/dist/lib/utils/sanitizers/svg.d.ts +1 -11
  781. package/dist/lib/utils/schemaConversion.js +4 -1
  782. package/dist/lib/utils/thinkingConfig.d.ts +1 -33
  783. package/dist/lib/utils/tokenUtils.d.ts +1 -39
  784. package/dist/lib/utils/videoAnalysisProcessor.d.ts +5 -5
  785. package/dist/lib/utils/videoAnalysisProcessor.js +2 -2
  786. package/dist/lib/workflow/config.d.ts +89 -1257
  787. package/dist/lib/workflow/utils/workflowValidation.js +1 -1
  788. package/dist/mcp/batching/requestBatcher.js +1 -1
  789. package/dist/mcp/externalServerManager.js +5 -2
  790. package/dist/mcp/factory.js +1 -1
  791. package/dist/mcp/index.d.ts +1 -1
  792. package/dist/mcp/index.js +1 -1
  793. package/dist/mcp/mcpCircuitBreaker.d.ts +1 -0
  794. package/dist/mcp/mcpCircuitBreaker.js +30 -4
  795. package/dist/mcp/mcpClientFactory.js +33 -4
  796. package/dist/mcp/toolDiscoveryService.js +52 -5
  797. package/dist/mcp/toolRegistry.js +7 -1
  798. package/dist/memory/memoryRetrievalTools.d.ts +5 -89
  799. package/dist/memory/memoryRetrievalTools.js +1 -1
  800. package/dist/middleware/builtin/analytics.js +3 -0
  801. package/dist/middleware/builtin/autoEvaluation.js +46 -24
  802. package/dist/middleware/builtin/guardrails.js +4 -0
  803. package/dist/middleware/builtin/lifecycle.js +10 -6
  804. package/dist/middleware/factory.d.ts +3 -3
  805. package/dist/middleware/factory.js +3 -2
  806. package/dist/middleware/index.d.ts +1 -1
  807. package/dist/middleware/registry.d.ts +2 -2
  808. package/dist/middleware/registry.js +1 -0
  809. package/dist/middleware/utils/guardrailsUtils.d.ts +5 -6
  810. package/dist/middleware/utils/guardrailsUtils.js +15 -6
  811. package/dist/neurolink.d.ts +9 -20
  812. package/dist/neurolink.js +278 -186
  813. package/dist/observability/retryPolicy.d.ts +2 -13
  814. package/dist/observability/sampling/samplers.d.ts +2 -11
  815. package/dist/observability/spanProcessor.d.ts +2 -14
  816. package/dist/processors/base/BaseFileProcessor.js +1 -1
  817. package/dist/processors/document/OpenDocumentProcessor.js +5 -3
  818. package/dist/processors/media/VideoProcessor.js +157 -101
  819. package/dist/providers/amazonBedrock.js +12 -5
  820. package/dist/providers/amazonSagemaker.d.ts +5 -5
  821. package/dist/providers/amazonSagemaker.js +6 -2
  822. package/dist/providers/anthropic.d.ts +3 -3
  823. package/dist/providers/anthropic.js +23 -192
  824. package/dist/providers/anthropicBaseProvider.d.ts +4 -4
  825. package/dist/providers/anthropicBaseProvider.js +24 -13
  826. package/dist/providers/azureOpenai.d.ts +2 -2
  827. package/dist/providers/azureOpenai.js +6 -6
  828. package/dist/providers/googleAiStudio.d.ts +2 -2
  829. package/dist/providers/googleAiStudio.js +15 -7
  830. package/dist/providers/googleNativeGemini3.d.ts +3 -54
  831. package/dist/providers/googleNativeGemini3.js +14 -10
  832. package/dist/providers/googleVertex.d.ts +6 -6
  833. package/dist/providers/googleVertex.js +32 -26
  834. package/dist/providers/huggingFace.d.ts +4 -4
  835. package/dist/providers/huggingFace.js +15 -5
  836. package/dist/providers/litellm.d.ts +4 -4
  837. package/dist/providers/litellm.js +54 -42
  838. package/dist/providers/mistral.d.ts +2 -2
  839. package/dist/providers/mistral.js +5 -4
  840. package/dist/providers/ollama.d.ts +7 -4
  841. package/dist/providers/ollama.js +30 -8
  842. package/dist/providers/openAI.d.ts +2 -2
  843. package/dist/providers/openAI.js +46 -21
  844. package/dist/providers/openRouter.d.ts +4 -4
  845. package/dist/providers/openRouter.js +63 -35
  846. package/dist/providers/openaiCompatible.d.ts +2 -2
  847. package/dist/providers/openaiCompatible.js +18 -9
  848. package/dist/providers/providerTypeUtils.d.ts +28 -0
  849. package/dist/providers/providerTypeUtils.js +46 -0
  850. package/dist/providers/sagemaker/config.js +5 -5
  851. package/dist/providers/sagemaker/language-model.d.ts +23 -13
  852. package/dist/providers/sagemaker/language-model.js +20 -8
  853. package/dist/proxy/accountQuota.d.ts +33 -0
  854. package/dist/proxy/accountQuota.js +162 -0
  855. package/dist/proxy/claudeFormat.d.ts +143 -0
  856. package/dist/proxy/claudeFormat.js +595 -0
  857. package/dist/proxy/cloaking/index.d.ts +44 -0
  858. package/dist/proxy/cloaking/index.js +86 -0
  859. package/dist/proxy/cloaking/plugins/headerScrubber.d.ts +9 -0
  860. package/dist/proxy/cloaking/plugins/headerScrubber.js +86 -0
  861. package/dist/proxy/cloaking/plugins/sessionIdentity.d.ts +15 -0
  862. package/dist/proxy/cloaking/plugins/sessionIdentity.js +65 -0
  863. package/dist/proxy/cloaking/plugins/systemPromptInjector.d.ts +11 -0
  864. package/dist/proxy/cloaking/plugins/systemPromptInjector.js +83 -0
  865. package/dist/proxy/cloaking/plugins/tlsFingerprint.d.ts +14 -0
  866. package/dist/proxy/cloaking/plugins/tlsFingerprint.js +38 -0
  867. package/dist/proxy/cloaking/plugins/wordObfuscator.d.ts +9 -0
  868. package/dist/proxy/cloaking/plugins/wordObfuscator.js +121 -0
  869. package/dist/proxy/cloaking/types.d.ts +1 -0
  870. package/dist/proxy/cloaking/types.js +1 -0
  871. package/dist/proxy/modelRouter.d.ts +10 -0
  872. package/dist/proxy/modelRouter.js +29 -0
  873. package/dist/proxy/oauthFetch.d.ts +36 -0
  874. package/dist/proxy/oauthFetch.js +367 -0
  875. package/dist/proxy/proxyConfig.d.ts +42 -0
  876. package/dist/proxy/proxyConfig.js +499 -0
  877. package/dist/proxy/proxyFetch.js +2 -1
  878. package/dist/proxy/requestLogger.d.ts +50 -0
  879. package/dist/proxy/requestLogger.js +207 -0
  880. package/dist/proxy/tokenRefresh.d.ts +4 -0
  881. package/dist/proxy/tokenRefresh.js +124 -0
  882. package/dist/proxy/usageStats.d.ts +13 -0
  883. package/dist/proxy/usageStats.js +74 -0
  884. package/dist/rag/document/loaders.js +1 -1
  885. package/dist/rag/pipeline/contextAssembly.d.ts +4 -7
  886. package/dist/rag/ragIntegration.d.ts +2 -14
  887. package/dist/rag/ragIntegration.js +1 -1
  888. package/dist/rag/resilience/CircuitBreaker.d.ts +5 -44
  889. package/dist/rag/resilience/RetryHandler.js +1 -1
  890. package/dist/rag/retrieval/vectorQueryTool.d.ts +1 -9
  891. package/dist/rag/retrieval/vectorQueryTool.js +1 -1
  892. package/dist/sdk/toolRegistration.js +12 -1
  893. package/dist/server/abstract/baseServerAdapter.js +2 -2
  894. package/dist/server/adapters/honoAdapter.d.ts +6 -0
  895. package/dist/server/adapters/honoAdapter.js +76 -10
  896. package/dist/server/middleware/cache.js +3 -0
  897. package/dist/server/routes/claudeProxyRoutes.d.ts +44 -0
  898. package/dist/server/routes/claudeProxyRoutes.js +1600 -0
  899. package/dist/server/routes/healthRoutes.js +18 -1
  900. package/dist/server/routes/index.d.ts +7 -0
  901. package/dist/server/routes/index.js +8 -0
  902. package/dist/server/streaming/dataStream.d.ts +1 -5
  903. package/dist/server/streaming/dataStream.js +3 -0
  904. package/dist/server/utils/validation.d.ts +24 -124
  905. package/dist/server/utils/validation.js +2 -2
  906. package/dist/services/server/ai/observability/instrumentation.js +4 -0
  907. package/dist/telemetry/attributes.d.ts +38 -0
  908. package/dist/telemetry/attributes.js +40 -0
  909. package/dist/telemetry/tracers.d.ts +1 -0
  910. package/dist/telemetry/tracers.js +1 -0
  911. package/dist/types/authTypes.d.ts +56 -0
  912. package/dist/types/authTypes.js +8 -0
  913. package/dist/types/circuitBreakerErrors.d.ts +30 -0
  914. package/dist/types/circuitBreakerErrors.js +34 -0
  915. package/dist/types/cli.d.ts +258 -0
  916. package/dist/types/clientTypes.d.ts +1050 -0
  917. package/dist/types/clientTypes.js +10 -0
  918. package/dist/types/common.d.ts +123 -0
  919. package/dist/types/configTypes.d.ts +49 -0
  920. package/dist/types/configTypes.js +4 -0
  921. package/dist/types/conversation.d.ts +0 -5
  922. package/dist/types/evaluationTypes.d.ts +2 -2
  923. package/dist/types/fileTypes.d.ts +47 -0
  924. package/dist/types/generateTypes.d.ts +7 -3
  925. package/dist/types/guardrails.d.ts +2 -2
  926. package/dist/types/index.d.ts +4 -1
  927. package/dist/types/index.js +5 -0
  928. package/dist/types/middlewareTypes.d.ts +3 -3
  929. package/dist/types/modelTypes.d.ts +7 -97
  930. package/dist/types/modelTypes.js +3 -3
  931. package/dist/types/observability.d.ts +37 -0
  932. package/dist/types/providers.d.ts +107 -0
  933. package/dist/types/proxyTypes.d.ts +536 -0
  934. package/dist/types/proxyTypes.js +16 -0
  935. package/dist/types/ragTypes.d.ts +49 -1
  936. package/dist/types/streamTypes.d.ts +37 -13
  937. package/dist/types/subscriptionTypes.d.ts +77 -0
  938. package/dist/types/subscriptionTypes.js +2 -0
  939. package/dist/types/tools.d.ts +45 -1
  940. package/dist/types/typeAliases.d.ts +8 -0
  941. package/dist/types/typeAliases.js +1 -0
  942. package/dist/utils/async/retry.d.ts +4 -33
  943. package/dist/utils/asyncMutex.d.ts +14 -0
  944. package/dist/utils/asyncMutex.js +60 -0
  945. package/dist/utils/errorHandling.d.ts +2 -1
  946. package/dist/utils/errorHandling.js +14 -6
  947. package/dist/utils/fileDetector.d.ts +13 -1
  948. package/dist/utils/fileDetector.js +114 -32
  949. package/dist/utils/imageProcessor.js +7 -7
  950. package/dist/utils/json/safeParse.d.ts +1 -8
  951. package/dist/utils/mcpDefaults.d.ts +1 -1
  952. package/dist/utils/mcpDefaults.js +11 -2
  953. package/dist/utils/messageBuilder.d.ts +5 -5
  954. package/dist/utils/messageBuilder.js +106 -80
  955. package/dist/utils/modelChoices.d.ts +1 -8
  956. package/dist/utils/pdfProcessor.d.ts +1 -25
  957. package/dist/utils/pdfProcessor.js +5 -4
  958. package/dist/utils/pricing.js +28 -5
  959. package/dist/utils/rateLimiter.d.ts +1 -15
  960. package/dist/utils/redis.d.ts +1 -1
  961. package/dist/utils/redis.js +3 -3
  962. package/dist/utils/sanitizers/filename.d.ts +2 -22
  963. package/dist/utils/sanitizers/index.d.ts +4 -2
  964. package/dist/utils/sanitizers/svg.d.ts +1 -11
  965. package/dist/utils/schemaConversion.js +4 -1
  966. package/dist/utils/thinkingConfig.d.ts +1 -33
  967. package/dist/utils/tokenUtils.d.ts +1 -39
  968. package/dist/utils/videoAnalysisProcessor.d.ts +5 -5
  969. package/dist/utils/videoAnalysisProcessor.js +2 -2
  970. package/dist/workflow/config.d.ts +89 -1257
  971. package/dist/workflow/utils/workflowValidation.js +1 -1
  972. package/docs-site/mcp-server/index.js +2 -3
  973. package/package.json +138 -105
  974. package/dist/lib/memory/mem0Initializer.d.ts +0 -46
  975. package/dist/lib/memory/mem0Initializer.js +0 -85
  976. package/dist/memory/mem0Initializer.d.ts +0 -46
  977. package/dist/memory/mem0Initializer.js +0 -84
@@ -19,7 +19,7 @@ export function validateWorkflow(config) {
19
19
  // Schema validation
20
20
  const schemaResult = validateWorkflowConfig(config);
21
21
  if (!schemaResult.success && schemaResult.error) {
22
- schemaResult.error.errors.forEach((err) => {
22
+ schemaResult.error.issues.forEach((err) => {
23
23
  errors.push({
24
24
  field: err.path.join("."),
25
25
  message: err.message,
@@ -230,7 +230,7 @@ export class RequestBatcher extends EventEmitter {
230
230
  args: r.args,
231
231
  serverId: r.serverId,
232
232
  })));
233
- const timeoutMs = 30_000;
233
+ const timeoutMs = Math.max(5000, Number(process.env.MCP_TOOL_TIMEOUT) || 60000);
234
234
  let timeoutHandle;
235
235
  const timeoutPromise = new Promise((_, reject) => {
236
236
  timeoutHandle = setTimeout(() => reject(ErrorFactory.toolTimeout("batchExecution", timeoutMs)), timeoutMs);
@@ -174,9 +174,12 @@ export class ExternalServerManager extends EventEmitter {
174
174
  constructor(config = {}, options = {}) {
175
175
  super();
176
176
  // Set defaults for configuration
177
+ // Default timeout increased to 60s and made configurable via MCP_CLIENT_TIMEOUT
178
+ // to accommodate MCP server startup latency (especially concurrent stdio servers)
179
+ const defaultMcpTimeout = Math.max(5000, Number(process.env.MCP_CLIENT_TIMEOUT) || 60000);
177
180
  this.config = {
178
181
  maxServers: config.maxServers ?? 10,
179
- defaultTimeout: config.defaultTimeout ?? 10000,
182
+ defaultTimeout: config.defaultTimeout ?? defaultMcpTimeout,
180
183
  defaultHealthCheckInterval: config.defaultHealthCheckInterval ?? 30000,
181
184
  enableAutoRestart: config.enableAutoRestart ?? true,
182
185
  maxRestartAttempts: config.maxRestartAttempts ?? 3,
@@ -1401,7 +1404,7 @@ export class ExternalServerManager extends EventEmitter {
1401
1404
  else {
1402
1405
  // Other HITL error (configuration, system error, etc.)
1403
1406
  mcpLogger.error(`[ExternalServerManager] HITL confirmation failed for external tool '${toolName}':`, error);
1404
- throw new Error(`HITL confirmation failed: ${error instanceof Error ? error.message : String(error)}`);
1407
+ throw new Error(`HITL confirmation failed: ${error instanceof Error ? error.message : String(error)}`, { cause: error });
1405
1408
  }
1406
1409
  }
1407
1410
  }
@@ -28,7 +28,7 @@ const ServerConfigSchema = z.object({
28
28
  ])
29
29
  .optional(),
30
30
  visibility: z.enum(["public", "private", "organization"]).optional(),
31
- metadata: z.record(z.unknown()).optional(),
31
+ metadata: z.record(z.string(), z.unknown()).optional(),
32
32
  dependencies: z.array(z.string()).optional(),
33
33
  capabilities: z.array(z.string()).optional(),
34
34
  });
@@ -17,7 +17,7 @@ export { createMCPServer, getServerInfo, validateServerTools, validateTool, } fr
17
17
  export { calculateExpiresAt, createOAuthProviderFromConfig, FileTokenStorage, InMemoryTokenStorage, isTokenExpired, NeuroLinkOAuthProvider, } from "./auth/index.js";
18
18
  export { DEFAULT_RATE_LIMIT_CONFIG, globalRateLimiterManager, HTTPRateLimiter, RateLimiterManager, } from "./httpRateLimiter.js";
19
19
  export { DEFAULT_HTTP_RETRY_CONFIG, isRetryableHTTPError, isRetryableStatusCode, withHTTPRetry, } from "./httpRetryHandler.js";
20
- export { CircuitBreakerManager, globalCircuitBreakerManager, MCPCircuitBreaker, } from "./mcpCircuitBreaker.js";
20
+ export { CircuitBreakerManager, globalCircuitBreakerManager, MCPCircuitBreaker, CircuitBreakerOpenError, } from "./mcpCircuitBreaker.js";
21
21
  export { MCPToolRegistry } from "./toolRegistry.js";
22
22
  export { ExternalServerManager } from "./externalServerManager.js";
23
23
  export { MCPClientFactory } from "./mcpClientFactory.js";
package/dist/mcp/index.js CHANGED
@@ -9,7 +9,7 @@ export { DEFAULT_RATE_LIMIT_CONFIG, globalRateLimiterManager, HTTPRateLimiter, R
9
9
  // HTTP Retry Handler
10
10
  export { DEFAULT_HTTP_RETRY_CONFIG, isRetryableHTTPError, isRetryableStatusCode, withHTTPRetry, } from "./httpRetryHandler.js";
11
11
  // Circuit Breaker
12
- export { CircuitBreakerManager, globalCircuitBreakerManager, MCPCircuitBreaker, } from "./mcpCircuitBreaker.js";
12
+ export { CircuitBreakerManager, globalCircuitBreakerManager, MCPCircuitBreaker, CircuitBreakerOpenError, } from "./mcpCircuitBreaker.js";
13
13
  // Core MCP Components
14
14
  export { MCPToolRegistry } from "./toolRegistry.js";
15
15
  export { ExternalServerManager } from "./externalServerManager.js";
@@ -5,6 +5,7 @@
5
5
  */
6
6
  import { EventEmitter } from "events";
7
7
  import type { CircuitBreakerConfig, CircuitBreakerStats } from "../types/mcpTypes.js";
8
+ export { CircuitBreakerOpenError } from "../types/circuitBreakerErrors.js";
8
9
  /**
9
10
  * MCPCircuitBreaker
10
11
  * Implements circuit breaker pattern for fault tolerance
@@ -6,6 +6,16 @@
6
6
  import { EventEmitter } from "events";
7
7
  import { trace } from "@opentelemetry/api";
8
8
  import { mcpLogger } from "../utils/logger.js";
9
+ import { CircuitBreakerOpenError } from "../types/circuitBreakerErrors.js";
10
+ // Re-export CircuitBreakerOpenError from shared types to preserve public API
11
+ export { CircuitBreakerOpenError } from "../types/circuitBreakerErrors.js";
12
+ /**
13
+ * Default operation timeout for circuit breaker protected operations.
14
+ * Configurable via MCP_OPERATION_TIMEOUT env var (in milliseconds).
15
+ * Increased from 30s to 60s to accommodate MCP server startup latency,
16
+ * especially when multiple servers start concurrently.
17
+ */
18
+ const DEFAULT_OPERATION_TIMEOUT = Math.max(10000, Number(process.env.MCP_OPERATION_TIMEOUT) || 60000);
9
19
  /**
10
20
  * MCPCircuitBreaker
11
21
  * Implements circuit breaker pattern for fault tolerance
@@ -28,7 +38,7 @@ export class MCPCircuitBreaker extends EventEmitter {
28
38
  failureThreshold: config.failureThreshold ?? 5,
29
39
  resetTimeout: config.resetTimeout ?? 60000,
30
40
  halfOpenMaxCalls: config.halfOpenMaxCalls ?? 3,
31
- operationTimeout: config.operationTimeout ?? 30000,
41
+ operationTimeout: config.operationTimeout ?? DEFAULT_OPERATION_TIMEOUT,
32
42
  minimumCallsBeforeCalculation: config.minimumCallsBeforeCalculation ?? 10,
33
43
  statisticsWindowSize: config.statisticsWindowSize ?? 300000, // 5 minutes
34
44
  };
@@ -43,8 +53,15 @@ export class MCPCircuitBreaker extends EventEmitter {
43
53
  try {
44
54
  // Check if circuit is open
45
55
  if (this.state === "open") {
46
- if (Date.now() - this.lastFailureTime < this.config.resetTimeout) {
47
- throw new Error(`Circuit breaker '${this.name}' is open. Next retry at ${new Date(this.lastFailureTime + this.config.resetTimeout)}`);
56
+ const retryAfterMs = this.config.resetTimeout - (Date.now() - this.lastFailureTime);
57
+ if (retryAfterMs > 0) {
58
+ throw new CircuitBreakerOpenError({
59
+ breakerName: this.name,
60
+ retryAfter: new Date(this.lastFailureTime + this.config.resetTimeout),
61
+ retryAfterMs,
62
+ breakerState: "open",
63
+ failureCount: this.getStats().failedCalls,
64
+ });
48
65
  }
49
66
  // Transition to half-open
50
67
  this.changeState("half-open", "Reset timeout reached");
@@ -52,7 +69,16 @@ export class MCPCircuitBreaker extends EventEmitter {
52
69
  // Check half-open call limit
53
70
  if (this.state === "half-open" &&
54
71
  this.halfOpenCalls >= this.config.halfOpenMaxCalls) {
55
- throw new Error(`Circuit breaker '${this.name}' is half-open but call limit reached`);
72
+ // Half-open call limit exceeded revert to open with fresh cooldown
73
+ this.lastFailureTime = Date.now();
74
+ this.changeState("open", "Half-open call limit reached, reverting to open");
75
+ throw new CircuitBreakerOpenError({
76
+ breakerName: this.name,
77
+ retryAfter: new Date(this.lastFailureTime + this.config.resetTimeout),
78
+ retryAfterMs: this.config.resetTimeout,
79
+ breakerState: "open",
80
+ failureCount: this.getStats().failedCalls,
81
+ });
56
82
  }
57
83
  // NLK-GAP-009: Record half-open test event when executing in half-open state
58
84
  if (this.state === "half-open") {
@@ -12,11 +12,20 @@ import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/
12
12
  import { spawn } from "child_process";
13
13
  import { mcpLogger } from "../utils/logger.js";
14
14
  import { globalCircuitBreakerManager } from "./mcpCircuitBreaker.js";
15
+ import { CircuitBreakerOpenError } from "../types/circuitBreakerErrors.js";
15
16
  import { withHTTPRetry, DEFAULT_HTTP_RETRY_CONFIG, } from "./httpRetryHandler.js";
16
17
  import { globalRateLimiterManager } from "./httpRateLimiter.js";
17
18
  import { NeuroLinkOAuthProvider, InMemoryTokenStorage } from "./auth/index.js";
18
19
  import { SpanSerializer, SpanType, SpanStatus, } from "../observability/index.js";
19
20
  import { getMetricsAggregator } from "../observability/index.js";
21
+ /**
22
+ * Default timeout for MCP client creation in milliseconds.
23
+ * Configurable via MCP_CLIENT_TIMEOUT env var.
24
+ * Covers process spawn, transport setup, connection, and handshake.
25
+ * Set to 60s to accommodate stdio servers that may be slow to start,
26
+ * especially when multiple MCP servers are started concurrently.
27
+ */
28
+ const DEFAULT_CLIENT_TIMEOUT = Math.max(5000, Number(process.env.MCP_CLIENT_TIMEOUT) || 60000);
20
29
  /**
21
30
  * MCPClientFactory
22
31
  * Factory class for creating MCP clients with different transports
@@ -36,7 +45,7 @@ export class MCPClientFactory {
36
45
  * Create an MCP client for the given server configuration
37
46
  * Enhanced with retry logic, rate limiting, and circuit breaker protection
38
47
  */
39
- static async createClient(config, timeout = 10000) {
48
+ static async createClient(config, timeout = DEFAULT_CLIENT_TIMEOUT) {
40
49
  const startTime = Date.now();
41
50
  const obsSpan = SpanSerializer.createSpan(SpanType.MCP_TRANSPORT, "mcp.connect", {
42
51
  "mcp.transport": config.transport,
@@ -112,6 +121,26 @@ export class MCPClientFactory {
112
121
  }
113
122
  catch (error) {
114
123
  const errorMessage = error instanceof Error ? error.message : String(error);
124
+ // Circuit breaker open: log at warn (not error) since this is expected
125
+ // protection behavior, and preserve the structured metadata.
126
+ if (error instanceof CircuitBreakerOpenError) {
127
+ mcpLogger.warn(`[MCPClientFactory] Client creation blocked by circuit breaker for ${config.id}`, {
128
+ serverId: config.id,
129
+ breakerState: error.breakerState,
130
+ retryAfter: error.retryAfter,
131
+ retryAfterMs: error.retryAfterMs,
132
+ failureCount: error.failureCount,
133
+ });
134
+ obsSpan.durationMs = Date.now() - startTime;
135
+ const endedObsSpan = SpanSerializer.endSpan(obsSpan, SpanStatus.ERROR);
136
+ endedObsSpan.statusMessage = `Circuit breaker open: ${errorMessage}`;
137
+ getMetricsAggregator().recordSpan(endedObsSpan);
138
+ return {
139
+ success: false,
140
+ error: errorMessage,
141
+ duration: Date.now() - startTime,
142
+ };
143
+ }
115
144
  mcpLogger.error(`[MCPClientFactory] Failed to create client for ${config.id}:`, error);
116
145
  obsSpan.durationMs = Date.now() - startTime;
117
146
  const endedObsSpan = SpanSerializer.endSpan(obsSpan, SpanStatus.ERROR);
@@ -283,7 +312,7 @@ export class MCPClientFactory {
283
312
  return { transport };
284
313
  }
285
314
  catch (error) {
286
- throw new Error(`Invalid SSE URL: ${error instanceof Error ? error.message : String(error)}`);
315
+ throw new Error(`Invalid SSE URL: ${error instanceof Error ? error.message : String(error)}`, { cause: error });
287
316
  }
288
317
  }
289
318
  /**
@@ -302,7 +331,7 @@ export class MCPClientFactory {
302
331
  return { transport };
303
332
  }
304
333
  catch (error) {
305
- throw new Error(`Invalid WebSocket URL: ${error instanceof Error ? error.message : String(error)}`);
334
+ throw new Error(`Invalid WebSocket URL: ${error instanceof Error ? error.message : String(error)}`, { cause: error });
306
335
  }
307
336
  }
308
337
  /**
@@ -355,7 +384,7 @@ export class MCPClientFactory {
355
384
  return { transport };
356
385
  }
357
386
  catch (error) {
358
- throw new Error(`Invalid HTTP URL: ${error instanceof Error ? error.message : String(error)}`);
387
+ throw new Error(`Invalid HTTP URL: ${error instanceof Error ? error.message : String(error)}`, { cause: error });
359
388
  }
360
389
  }
361
390
  /**
@@ -5,13 +5,18 @@
5
5
  */
6
6
  import { EventEmitter } from "events";
7
7
  import { mcpLogger } from "../utils/logger.js";
8
- import { globalCircuitBreakerManager } from "./mcpCircuitBreaker.js";
8
+ import { globalCircuitBreakerManager, CircuitBreakerOpenError, } from "./mcpCircuitBreaker.js";
9
9
  import { isObject, isNullish } from "../utils/typeUtils.js";
10
10
  import { validateToolName, validateToolDescription, } from "../utils/parameterValidation.js";
11
11
  import { withTimeout } from "../utils/errorHandling.js";
12
12
  import { SpanKind, SpanStatusCode } from "@opentelemetry/api";
13
13
  import { tracers } from "../telemetry/tracers.js";
14
14
  const mcpTracer = tracers.mcp;
15
+ /**
16
+ * Default timeout for MCP tool execution operations in milliseconds.
17
+ * Configurable via MCP_TOOL_TIMEOUT env var.
18
+ */
19
+ const DEFAULT_TOOL_TIMEOUT = Math.max(5000, Number(process.env.MCP_TOOL_TIMEOUT) || 60000);
15
20
  /**
16
21
  * ToolDiscoveryService
17
22
  * Handles automatic tool discovery and registration from external MCP servers
@@ -27,7 +32,7 @@ export class ToolDiscoveryService extends EventEmitter {
27
32
  /**
28
33
  * Discover tools from an external MCP server
29
34
  */
30
- async discoverTools(serverId, client, timeout = 10000) {
35
+ async discoverTools(serverId, client, timeout = DEFAULT_TOOL_TIMEOUT) {
31
36
  const startTime = Date.now();
32
37
  try {
33
38
  // Prevent concurrent discovery for same server
@@ -333,10 +338,11 @@ export class ToolDiscoveryService extends EventEmitter {
333
338
  parameters,
334
339
  });
335
340
  // Create circuit breaker for tool execution
341
+ const effectiveTimeout = options.timeout || DEFAULT_TOOL_TIMEOUT;
336
342
  const circuitBreaker = globalCircuitBreakerManager.getBreaker(`tool-execution-${serverId}-${toolName}`, {
337
343
  failureThreshold: 3,
338
344
  resetTimeout: 30000,
339
- operationTimeout: options.timeout || 30000,
345
+ operationTimeout: effectiveTimeout,
340
346
  });
341
347
  // Execute tool with circuit breaker protection
342
348
  const result = await circuitBreaker.execute(async () => {
@@ -345,11 +351,11 @@ export class ToolDiscoveryService extends EventEmitter {
345
351
  attributes: {
346
352
  "mcp.server_id": serverId,
347
353
  "mcp.tool_name": toolName,
348
- "mcp.timeout_ms": options.timeout || 30000,
354
+ "mcp.timeout_ms": effectiveTimeout,
349
355
  },
350
356
  }, async (callSpan) => {
351
357
  try {
352
- const timeout = options.timeout || 30000;
358
+ const timeout = effectiveTimeout;
353
359
  const callResult = await withTimeout(client.callTool({
354
360
  name: toolName,
355
361
  arguments: parameters,
@@ -398,6 +404,47 @@ export class ToolDiscoveryService extends EventEmitter {
398
404
  // Update tool statistics
399
405
  const toolKey = this.createToolKey(serverId, toolName);
400
406
  this.updateToolStats(toolKey, false, duration);
407
+ // Circuit breaker open errors: return a structured isError result with
408
+ // actionable details so AI models understand the tool is temporarily
409
+ // unavailable and should NOT retry until the cooldown expires.
410
+ if (error instanceof CircuitBreakerOpenError) {
411
+ mcpLogger.warn(`[ToolDiscoveryService] Tool blocked by circuit breaker: ${toolName} on ${serverId}`, {
412
+ breakerState: error.breakerState,
413
+ retryAfter: error.retryAfter,
414
+ retryAfterMs: error.retryAfterMs,
415
+ failureCount: error.failureCount,
416
+ });
417
+ return {
418
+ success: false,
419
+ error: error.message,
420
+ data: {
421
+ isError: true,
422
+ content: [
423
+ {
424
+ type: "text",
425
+ text: `TOOL TEMPORARILY UNAVAILABLE: "${toolName}" has been disabled after ` +
426
+ `${error.failureCount} failures. ` +
427
+ `This is a circuit breaker protection — do NOT retry this tool. ` +
428
+ `It will become available again after ${Math.ceil(error.retryAfterMs / 1000)} seconds ` +
429
+ `(at ${error.retryAfter}). ` +
430
+ `Instead, inform the user that the operation failed and suggest trying again later.`,
431
+ },
432
+ ],
433
+ },
434
+ duration,
435
+ metadata: {
436
+ toolName,
437
+ serverId,
438
+ timestamp: Date.now(),
439
+ circuitBreaker: {
440
+ state: error.breakerState,
441
+ retryAfter: error.retryAfter,
442
+ retryAfterMs: error.retryAfterMs,
443
+ failureCount: error.failureCount,
444
+ },
445
+ },
446
+ };
447
+ }
401
448
  mcpLogger.error(`[ToolDiscoveryService] Tool execution failed: ${toolName}`, error);
402
449
  return {
403
450
  success: false,
@@ -157,6 +157,8 @@ export class MCPToolRegistry extends MCPRegistry {
157
157
  // For other tools, use fully-qualified serverId.toolName to avoid collisions
158
158
  const isCustomTool = serverId.startsWith("custom-tool-");
159
159
  const toolId = isCustomTool ? tool.name : `${serverId}.${tool.name}`;
160
+ const toolTimeoutMs = serverInfo.metadata?.toolTimeoutMs;
161
+ const toolMaxRetries = serverInfo.metadata?.toolMaxRetries;
160
162
  const toolInfo = {
161
163
  name: tool.name,
162
164
  description: tool.description,
@@ -168,6 +170,8 @@ export class MCPToolRegistry extends MCPRegistry {
168
170
  serverId: serverInfo.id,
169
171
  }),
170
172
  permissions: [], // MCPServerInfo.tools doesn't have permissions
173
+ ...(toolTimeoutMs !== undefined && { timeoutMs: toolTimeoutMs }),
174
+ ...(toolMaxRetries !== undefined && { maxRetries: toolMaxRetries }),
171
175
  };
172
176
  // Register only with fully-qualified toolId to avoid collisions
173
177
  this.tools.set(toolId, toolInfo);
@@ -183,6 +187,8 @@ export class MCPToolRegistry extends MCPRegistry {
183
187
  existingCategory: serverInfo.metadata?.category,
184
188
  serverId: serverInfo.id,
185
189
  }),
190
+ ...(toolTimeoutMs !== undefined && { timeoutMs: toolTimeoutMs }),
191
+ ...(toolMaxRetries !== undefined && { maxRetries: toolMaxRetries }),
186
192
  });
187
193
  // Tool registered successfully
188
194
  }
@@ -347,7 +353,7 @@ export class MCPToolRegistry extends MCPRegistry {
347
353
  else {
348
354
  // Other HITL error (configuration, system error, etc.)
349
355
  registryLogger.error(`HITL confirmation failed for tool '${toolName}':`, error);
350
- throw new Error(`HITL confirmation failed: ${error instanceof Error ? error.message : String(error)}`);
356
+ throw new Error(`HITL confirmation failed: ${error instanceof Error ? error.message : String(error)}`, { cause: error });
351
357
  }
352
358
  }
353
359
  }
@@ -6,7 +6,6 @@
6
6
  * Follows the createFileTools() factory pattern from files/fileTools.ts.
7
7
  * @module
8
8
  */
9
- import { z } from "zod";
10
9
  import type { RedisConversationMemoryManager } from "../core/redisConversationMemoryManager.js";
11
10
  /**
12
11
  * Factory function that creates memory retrieval tools bound to a memory manager.
@@ -14,31 +13,15 @@ import type { RedisConversationMemoryManager } from "../core/redisConversationMe
14
13
  * @returns Record of tool name to Vercel AI SDK tool definition
15
14
  */
16
15
  export declare function createMemoryRetrievalTools(memoryManager: RedisConversationMemoryManager): {
17
- retrieve_context: import("ai").Tool<z.ZodObject<{
18
- sessionId: z.ZodString;
19
- messageId: z.ZodOptional<z.ZodString>;
20
- role: z.ZodOptional<z.ZodEnum<["user", "assistant", "system", "tool_call", "tool_result"]>>;
21
- lastN: z.ZodOptional<z.ZodNumber>;
22
- offset: z.ZodOptional<z.ZodNumber>;
23
- limit: z.ZodOptional<z.ZodNumber>;
24
- search: z.ZodOptional<z.ZodString>;
25
- }, "strip", z.ZodTypeAny, {
16
+ retrieve_context: import("ai").Tool<{
26
17
  sessionId: string;
27
- search?: string | undefined;
28
- role?: "system" | "user" | "assistant" | "tool_call" | "tool_result" | undefined;
29
- offset?: number | undefined;
30
- limit?: number | undefined;
31
18
  messageId?: string | undefined;
32
- lastN?: number | undefined;
33
- }, {
34
- sessionId: string;
35
- search?: string | undefined;
36
19
  role?: "system" | "user" | "assistant" | "tool_call" | "tool_result" | undefined;
20
+ lastN?: number | undefined;
37
21
  offset?: number | undefined;
38
22
  limit?: number | undefined;
39
- messageId?: string | undefined;
40
- lastN?: number | undefined;
41
- }>, {
23
+ search?: string | undefined;
24
+ }, {
42
25
  error: string;
43
26
  sessionId: string;
44
27
  messageId?: undefined;
@@ -95,72 +78,5 @@ export declare function createMemoryRetrievalTools(memoryManager: RedisConversat
95
78
  messageId?: undefined;
96
79
  messages?: undefined;
97
80
  totalMessages?: undefined;
98
- }> & {
99
- execute: (args: {
100
- sessionId: string;
101
- search?: string | undefined;
102
- role?: "system" | "user" | "assistant" | "tool_call" | "tool_result" | undefined;
103
- offset?: number | undefined;
104
- limit?: number | undefined;
105
- messageId?: string | undefined;
106
- lastN?: number | undefined;
107
- }, options: import("ai").ToolExecutionOptions) => PromiseLike<{
108
- error: string;
109
- sessionId: string;
110
- messageId?: undefined;
111
- messages?: undefined;
112
- totalMessages?: undefined;
113
- } | {
114
- error: string;
115
- messageId: string;
116
- sessionId?: undefined;
117
- messages?: undefined;
118
- totalMessages?: undefined;
119
- } | {
120
- messages: ({
121
- id: string;
122
- error: string;
123
- role?: undefined;
124
- tool?: undefined;
125
- matchCount?: undefined;
126
- matches?: undefined;
127
- totalSize?: undefined;
128
- content?: undefined;
129
- hasMore?: undefined;
130
- } | {
131
- id: string;
132
- role: "system" | "user" | "assistant" | "tool_call" | "tool_result";
133
- tool: string | undefined;
134
- matchCount: number;
135
- matches: {
136
- line: number;
137
- text: string;
138
- }[];
139
- totalSize: number;
140
- error?: undefined;
141
- content?: undefined;
142
- hasMore?: undefined;
143
- } | {
144
- id: string;
145
- role: "system" | "user" | "assistant" | "tool_call" | "tool_result";
146
- tool: string | undefined;
147
- content: string;
148
- totalSize: number;
149
- hasMore: boolean;
150
- error?: undefined;
151
- matchCount?: undefined;
152
- matches?: undefined;
153
- })[];
154
- totalMessages: number;
155
- error?: undefined;
156
- sessionId?: undefined;
157
- messageId?: undefined;
158
- } | {
159
- error: string;
160
- sessionId?: undefined;
161
- messageId?: undefined;
162
- messages?: undefined;
163
- totalMessages?: undefined;
164
- }>;
165
- };
81
+ }>;
166
82
  };
@@ -29,7 +29,7 @@ export function createMemoryRetrievalTools(memoryManager) {
29
29
  "outputs when a result was truncated, review previous assistant responses, " +
30
30
  "or search through conversation history. Supports filtering by role, " +
31
31
  "pagination for large content, and regex search within messages.",
32
- parameters: z.object({
32
+ inputSchema: z.object({
33
33
  sessionId: z.string().describe("Session ID for the conversation"),
34
34
  messageId: z
35
35
  .string()
@@ -13,6 +13,8 @@ export function createAnalyticsMiddleware() {
13
13
  defaultEnabled: true,
14
14
  };
15
15
  const middleware = {
16
+ specificationVersion: "v3",
17
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
16
18
  wrapGenerate: async ({ doGenerate, params }) => {
17
19
  const requestId = `analytics-${Date.now()}`;
18
20
  const startTime = Date.now();
@@ -62,6 +64,7 @@ export function createAnalyticsMiddleware() {
62
64
  throw error;
63
65
  }
64
66
  },
67
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
65
68
  wrapStream: async ({ doStream, params }) => {
66
69
  const requestId = `analytics-stream-${Date.now()}`;
67
70
  const startTime = Date.now();
@@ -21,33 +21,51 @@ export function createAutoEvaluationMiddleware(config = {}) {
21
21
  };
22
22
  logger.debug("Auto-Evaluation Middleware Config:", config);
23
23
  const middleware = {
24
+ specificationVersion: "v3",
24
25
  wrapGenerate: async ({ doGenerate, params }) => {
25
26
  const options = params;
26
27
  const rawResult = await doGenerate();
28
+ const rawReasoning = rawResult.reasoning;
29
+ const textParts = rawResult.content
30
+ .filter((c) => c.type === "text")
31
+ .map((c) => c.text);
32
+ const toolCallParts = rawResult.content.filter((c) => c.type === "tool-call");
33
+ const inputTokens = rawResult.usage.inputTokens.total ?? 0;
34
+ const outputTokens = rawResult.usage.outputTokens.total ?? 0;
27
35
  const result = {
28
- ...rawResult,
29
- content: rawResult.text ?? "",
36
+ content: textParts.join(""),
37
+ finishReason: rawResult.finishReason.unified,
38
+ reasoning: typeof rawReasoning === "string"
39
+ ? rawReasoning
40
+ : Array.isArray(rawReasoning)
41
+ ? rawReasoning
42
+ .map((r) => typeof r === "string"
43
+ ? r
44
+ : (r?.text ?? JSON.stringify(r)))
45
+ .join("\n")
46
+ : undefined,
30
47
  usage: {
31
- input: rawResult.usage.promptTokens,
32
- output: rawResult.usage.completionTokens,
33
- total: rawResult.usage.promptTokens + rawResult.usage.completionTokens,
48
+ input: inputTokens,
49
+ output: outputTokens,
50
+ total: inputTokens + outputTokens,
34
51
  },
35
- toolCalls: rawResult.toolCalls?.map((tc) => {
36
- let parsedArgs = tc.args;
37
- if (typeof tc.args === "string") {
52
+ toolCalls: toolCallParts.length > 0
53
+ ? toolCallParts.map((tc) => {
54
+ let parsedArgs;
38
55
  try {
39
- parsedArgs = JSON.parse(tc.args);
56
+ parsedArgs = JSON.parse(tc.input);
40
57
  }
41
58
  catch (e) {
42
59
  logger.warn(`Failed to parse tool call args for tool ${tc.toolName}:`, e);
43
- parsedArgs = tc.args; // Fallback to original string if parsing fails
60
+ parsedArgs = { raw: tc.input };
44
61
  }
45
- }
46
- return {
47
- ...tc,
48
- args: parsedArgs,
49
- };
50
- }),
62
+ return {
63
+ toolCallId: tc.toolCallId,
64
+ toolName: tc.toolName,
65
+ args: parsedArgs,
66
+ };
67
+ })
68
+ : undefined,
51
69
  };
52
70
  const isBlocking = config.blocking !== false;
53
71
  if (isBlocking) {
@@ -131,19 +149,19 @@ async function consumeAndEvaluateStream(config, options, stream) {
131
149
  }
132
150
  switch (value.type) {
133
151
  case "text-delta":
134
- fullText += value.textDelta;
152
+ fullText += value.delta;
135
153
  break;
136
154
  case "tool-call":
137
155
  {
138
156
  let parsedArgs;
139
157
  try {
140
- parsedArgs = JSON.parse(value.args);
158
+ parsedArgs = JSON.parse(value.input);
141
159
  }
142
160
  catch (e) {
143
161
  logger.warn(`Failed to parse tool call args for tool ${value.toolName}:`, e);
144
162
  // In case of parsing failure, we can't assign a string.
145
163
  // Let's use an object with the raw string to maintain type safety.
146
- parsedArgs = { raw: value.args };
164
+ parsedArgs = { raw: value.input };
147
165
  }
148
166
  toolCalls.push({
149
167
  toolCallId: value.toolCallId,
@@ -153,11 +171,15 @@ async function consumeAndEvaluateStream(config, options, stream) {
153
171
  }
154
172
  break;
155
173
  case "finish":
156
- usage = {
157
- input: value.usage.promptTokens,
158
- output: value.usage.completionTokens,
159
- total: value.usage.promptTokens + value.usage.completionTokens,
160
- };
174
+ {
175
+ const finishInputTokens = value.usage.inputTokens.total ?? 0;
176
+ const finishOutputTokens = value.usage.outputTokens.total ?? 0;
177
+ usage = {
178
+ input: finishInputTokens,
179
+ output: finishOutputTokens,
180
+ total: finishInputTokens + finishOutputTokens,
181
+ };
182
+ }
161
183
  break;
162
184
  }
163
185
  }
@@ -17,6 +17,8 @@ export function createGuardrailsMiddleware(config = {}) {
17
17
  // WeakMap to store blocking state from transformParams to wrap methods
18
18
  const blockingState = new WeakMap();
19
19
  const middleware = {
20
+ specificationVersion: "v3",
21
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
20
22
  transformParams: async ({ params }) => {
21
23
  if (config.precallEvaluation?.enabled) {
22
24
  const { shouldBlock, transformedParams } = await handlePrecallGuardrails(params, config.precallEvaluation);
@@ -26,6 +28,7 @@ export function createGuardrailsMiddleware(config = {}) {
26
28
  }
27
29
  return params;
28
30
  },
31
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
29
32
  wrapGenerate: async ({ doGenerate, params }) => {
30
33
  logger.debug(`[GuardrailsMiddleware] Applying to generate call.`);
31
34
  // Check if this request should be blocked (set by transformParams)
@@ -58,6 +61,7 @@ export function createGuardrailsMiddleware(config = {}) {
58
61
  }
59
62
  return result;
60
63
  },
64
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
61
65
  wrapStream: async ({ doStream, params }) => {
62
66
  logger.debug(`[GuardrailsMiddleware] Applying to stream call.`);
63
67
  // Check if this request should be blocked (set by transformParams)