@juspay/neurolink 9.31.2 → 9.32.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 (571) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/auth/AuthProviderFactory.d.ts +71 -0
  3. package/dist/auth/AuthProviderFactory.js +111 -0
  4. package/dist/auth/AuthProviderRegistry.d.ts +33 -0
  5. package/dist/auth/AuthProviderRegistry.js +190 -0
  6. package/dist/auth/RequestContext.d.ts +23 -0
  7. package/dist/auth/RequestContext.js +78 -0
  8. package/dist/auth/anthropicOAuth.js +1 -1
  9. package/dist/auth/authContext.d.ts +198 -0
  10. package/dist/auth/authContext.js +314 -0
  11. package/dist/auth/errors.d.ts +63 -0
  12. package/dist/auth/errors.js +39 -0
  13. package/dist/auth/index.d.ts +20 -8
  14. package/dist/auth/index.js +35 -7
  15. package/dist/auth/middleware/AuthMiddleware.d.ts +181 -0
  16. package/dist/auth/middleware/AuthMiddleware.js +519 -0
  17. package/dist/auth/middleware/rateLimitByUser.d.ts +282 -0
  18. package/dist/auth/middleware/rateLimitByUser.js +554 -0
  19. package/dist/auth/providers/BaseAuthProvider.d.ts +259 -0
  20. package/dist/auth/providers/BaseAuthProvider.js +723 -0
  21. package/dist/auth/providers/CognitoProvider.d.ts +61 -0
  22. package/dist/auth/providers/CognitoProvider.js +304 -0
  23. package/dist/auth/providers/KeycloakProvider.d.ts +61 -0
  24. package/dist/auth/providers/KeycloakProvider.js +393 -0
  25. package/dist/auth/providers/auth0.d.ts +59 -0
  26. package/dist/auth/providers/auth0.js +274 -0
  27. package/dist/auth/providers/betterAuth.d.ts +51 -0
  28. package/dist/auth/providers/betterAuth.js +182 -0
  29. package/dist/auth/providers/clerk.d.ts +65 -0
  30. package/dist/auth/providers/clerk.js +317 -0
  31. package/dist/auth/providers/custom.d.ts +64 -0
  32. package/dist/auth/providers/custom.js +112 -0
  33. package/dist/auth/providers/firebase.d.ts +63 -0
  34. package/dist/auth/providers/firebase.js +226 -0
  35. package/dist/auth/providers/jwt.d.ts +68 -0
  36. package/dist/auth/providers/jwt.js +212 -0
  37. package/dist/auth/providers/oauth2.d.ts +73 -0
  38. package/dist/auth/providers/oauth2.js +303 -0
  39. package/dist/auth/providers/supabase.d.ts +63 -0
  40. package/dist/auth/providers/supabase.js +259 -0
  41. package/dist/auth/providers/workos.d.ts +61 -0
  42. package/dist/auth/providers/workos.js +284 -0
  43. package/dist/auth/serverBridge.d.ts +14 -0
  44. package/dist/auth/serverBridge.js +25 -0
  45. package/dist/auth/sessionManager.d.ts +142 -0
  46. package/dist/auth/sessionManager.js +437 -0
  47. package/dist/cli/commands/authProviders.d.ts +43 -0
  48. package/dist/cli/commands/authProviders.js +399 -0
  49. package/dist/cli/commands/proxy.js +18 -5
  50. package/dist/cli/factories/authCommandFactory.d.ts +23 -5
  51. package/dist/cli/factories/authCommandFactory.js +108 -5
  52. package/dist/cli/parser.js +1 -1
  53. package/dist/client/aiSdkAdapter.js +1 -1
  54. package/dist/client/index.js +138 -477
  55. package/dist/core/factory.js +0 -1
  56. package/dist/core/infrastructure/baseRegistry.d.ts +3 -1
  57. package/dist/core/infrastructure/baseRegistry.js +5 -1
  58. package/dist/core/redisConversationMemoryManager.js +1 -1
  59. package/dist/features/ppt/slideGenerator.js +0 -1
  60. package/dist/features/ppt/utils.js +0 -1
  61. package/dist/index.d.ts +1 -0
  62. package/dist/index.js +25 -0
  63. package/dist/lib/auth/AuthProviderFactory.d.ts +71 -0
  64. package/dist/lib/auth/AuthProviderFactory.js +112 -0
  65. package/dist/lib/auth/AuthProviderRegistry.d.ts +33 -0
  66. package/dist/lib/auth/AuthProviderRegistry.js +191 -0
  67. package/dist/lib/auth/RequestContext.d.ts +23 -0
  68. package/dist/lib/auth/RequestContext.js +79 -0
  69. package/dist/lib/auth/authContext.d.ts +198 -0
  70. package/dist/lib/auth/authContext.js +315 -0
  71. package/dist/lib/auth/errors.d.ts +63 -0
  72. package/dist/lib/auth/errors.js +40 -0
  73. package/dist/lib/auth/index.d.ts +20 -8
  74. package/dist/lib/auth/index.js +35 -7
  75. package/dist/lib/auth/middleware/AuthMiddleware.d.ts +181 -0
  76. package/dist/lib/auth/middleware/AuthMiddleware.js +520 -0
  77. package/dist/lib/auth/middleware/rateLimitByUser.d.ts +282 -0
  78. package/dist/lib/auth/middleware/rateLimitByUser.js +555 -0
  79. package/dist/lib/auth/providers/BaseAuthProvider.d.ts +259 -0
  80. package/dist/lib/auth/providers/BaseAuthProvider.js +724 -0
  81. package/dist/lib/auth/providers/CognitoProvider.d.ts +61 -0
  82. package/dist/lib/auth/providers/CognitoProvider.js +305 -0
  83. package/dist/lib/auth/providers/KeycloakProvider.d.ts +61 -0
  84. package/dist/lib/auth/providers/KeycloakProvider.js +394 -0
  85. package/dist/lib/auth/providers/auth0.d.ts +59 -0
  86. package/dist/lib/auth/providers/auth0.js +275 -0
  87. package/dist/lib/auth/providers/betterAuth.d.ts +51 -0
  88. package/dist/lib/auth/providers/betterAuth.js +183 -0
  89. package/dist/lib/auth/providers/clerk.d.ts +65 -0
  90. package/dist/lib/auth/providers/clerk.js +318 -0
  91. package/dist/lib/auth/providers/custom.d.ts +64 -0
  92. package/dist/lib/auth/providers/custom.js +113 -0
  93. package/dist/lib/auth/providers/firebase.d.ts +63 -0
  94. package/dist/lib/auth/providers/firebase.js +227 -0
  95. package/dist/lib/auth/providers/jwt.d.ts +68 -0
  96. package/dist/lib/auth/providers/jwt.js +213 -0
  97. package/dist/lib/auth/providers/oauth2.d.ts +73 -0
  98. package/dist/lib/auth/providers/oauth2.js +304 -0
  99. package/dist/lib/auth/providers/supabase.d.ts +63 -0
  100. package/dist/lib/auth/providers/supabase.js +260 -0
  101. package/dist/lib/auth/providers/workos.d.ts +61 -0
  102. package/dist/lib/auth/providers/workos.js +285 -0
  103. package/dist/lib/auth/serverBridge.d.ts +14 -0
  104. package/dist/lib/auth/serverBridge.js +26 -0
  105. package/dist/lib/auth/sessionManager.d.ts +142 -0
  106. package/dist/lib/auth/sessionManager.js +438 -0
  107. package/dist/lib/core/infrastructure/baseRegistry.d.ts +3 -1
  108. package/dist/lib/core/infrastructure/baseRegistry.js +5 -1
  109. package/dist/lib/index.d.ts +1 -0
  110. package/dist/lib/index.js +25 -0
  111. package/dist/lib/mcp/toolRegistry.js +11 -1
  112. package/dist/lib/neurolink.d.ts +42 -1
  113. package/dist/lib/neurolink.js +218 -0
  114. package/dist/lib/rag/ChunkerRegistry.js +2 -2
  115. package/dist/lib/rag/metadata/MetadataExtractorRegistry.js +2 -2
  116. package/dist/lib/rag/reranker/RerankerRegistry.js +2 -2
  117. package/dist/lib/server/routes/agentRoutes.js +20 -2
  118. package/dist/lib/server/routes/claudeProxyRoutes.js +45 -9
  119. package/dist/lib/types/authTypes.d.ts +937 -1
  120. package/dist/lib/types/authTypes.js +2 -1
  121. package/dist/lib/types/configTypes.d.ts +46 -0
  122. package/dist/lib/types/generateTypes.d.ts +6 -0
  123. package/dist/lib/types/index.d.ts +1 -0
  124. package/dist/lib/types/streamTypes.d.ts +6 -0
  125. package/dist/mcp/elicitationProtocol.js +1 -1
  126. package/dist/mcp/servers/agent/directToolsServer.js +0 -1
  127. package/dist/mcp/toolRegistry.js +11 -1
  128. package/dist/neurolink.d.ts +42 -1
  129. package/dist/neurolink.js +218 -0
  130. package/dist/providers/azureOpenai.js +1 -1
  131. package/dist/providers/huggingFace.js +0 -1
  132. package/dist/providers/openaiCompatible.js +0 -1
  133. package/dist/rag/ChunkerRegistry.js +2 -2
  134. package/dist/rag/metadata/MetadataExtractorRegistry.js +2 -2
  135. package/dist/rag/reranker/RerankerRegistry.js +2 -2
  136. package/dist/sdk/toolRegistration.js +0 -1
  137. package/dist/server/openapi/generator.js +1 -1
  138. package/dist/server/routes/agentRoutes.js +20 -2
  139. package/dist/server/routes/claudeProxyRoutes.js +45 -9
  140. package/dist/types/authTypes.d.ts +937 -1
  141. package/dist/types/authTypes.js +2 -1
  142. package/dist/types/configTypes.d.ts +46 -0
  143. package/dist/types/configTypes.js +0 -5
  144. package/dist/types/generateTypes.d.ts +6 -0
  145. package/dist/types/index.d.ts +1 -0
  146. package/dist/types/modelTypes.js +0 -1
  147. package/dist/types/streamTypes.d.ts +6 -0
  148. package/dist/types/tools.js +0 -1
  149. package/dist/types/typeAliases.js +0 -1
  150. package/dist/types/utilities.js +1 -1
  151. package/dist/types/workflowTypes.js +0 -1
  152. package/dist/utils/providerRetry.js +0 -1
  153. package/dist/utils/providerUtils.js +0 -1
  154. package/package.json +3 -2
  155. package/dist/client/adapters/providerImageAdapter.js +0 -588
  156. package/dist/client/adapters/tts/googleTTSHandler.js +0 -344
  157. package/dist/client/adapters/video/directorPipeline.js +0 -516
  158. package/dist/client/adapters/video/ffmpegAdapter.js +0 -206
  159. package/dist/client/adapters/video/frameExtractor.js +0 -143
  160. package/dist/client/adapters/video/vertexVideoHandler.js +0 -763
  161. package/dist/client/adapters/video/videoAnalyzer.js +0 -238
  162. package/dist/client/adapters/video/videoMerger.js +0 -171
  163. package/dist/client/agent/directTools.js +0 -840
  164. package/dist/client/auth/anthropicOAuth.js +0 -974
  165. package/dist/client/auth/tokenStore.js +0 -799
  166. package/dist/client/client/aiSdkAdapter.js +0 -487
  167. package/dist/client/client/auth.js +0 -473
  168. package/dist/client/client/errors.js +0 -552
  169. package/dist/client/client/httpClient.js +0 -837
  170. package/dist/client/client/index.js +0 -172
  171. package/dist/client/client/interceptors.js +0 -601
  172. package/dist/client/client/sseClient.js +0 -545
  173. package/dist/client/client/streamingClient.js +0 -917
  174. package/dist/client/client/wsClient.js +0 -369
  175. package/dist/client/config/configManager.js +0 -303
  176. package/dist/client/config/conversationMemory.js +0 -86
  177. package/dist/client/config/taskClassificationConfig.js +0 -148
  178. package/dist/client/constants/contextWindows.js +0 -295
  179. package/dist/client/constants/enums.js +0 -853
  180. package/dist/client/constants/index.js +0 -207
  181. package/dist/client/constants/performance.js +0 -389
  182. package/dist/client/constants/retry.js +0 -266
  183. package/dist/client/constants/timeouts.js +0 -182
  184. package/dist/client/constants/tokens.js +0 -380
  185. package/dist/client/constants/videoErrors.js +0 -46
  186. package/dist/client/context/budgetChecker.js +0 -98
  187. package/dist/client/context/contextCompactor.js +0 -205
  188. package/dist/client/context/emergencyTruncation.js +0 -88
  189. package/dist/client/context/errorDetection.js +0 -171
  190. package/dist/client/context/errors.js +0 -21
  191. package/dist/client/context/fileTokenBudget.js +0 -127
  192. package/dist/client/context/prompts/summarizationPrompt.js +0 -117
  193. package/dist/client/context/stages/fileReadDeduplicator.js +0 -66
  194. package/dist/client/context/stages/slidingWindowTruncator.js +0 -190
  195. package/dist/client/context/stages/structuredSummarizer.js +0 -99
  196. package/dist/client/context/stages/toolOutputPruner.js +0 -52
  197. package/dist/client/context/summarizationEngine.js +0 -136
  198. package/dist/client/context/toolOutputLimits.js +0 -78
  199. package/dist/client/context/toolPairRepair.js +0 -66
  200. package/dist/client/core/analytics.js +0 -88
  201. package/dist/client/core/baseProvider.js +0 -1385
  202. package/dist/client/core/constants.js +0 -140
  203. package/dist/client/core/conversationMemoryFactory.js +0 -141
  204. package/dist/client/core/conversationMemoryInitializer.js +0 -128
  205. package/dist/client/core/conversationMemoryManager.js +0 -344
  206. package/dist/client/core/dynamicModels.js +0 -358
  207. package/dist/client/core/evaluation.js +0 -309
  208. package/dist/client/core/evaluationProviders.js +0 -248
  209. package/dist/client/core/factory.js +0 -412
  210. package/dist/client/core/infrastructure/baseError.js +0 -22
  211. package/dist/client/core/infrastructure/baseFactory.js +0 -54
  212. package/dist/client/core/infrastructure/baseRegistry.js +0 -49
  213. package/dist/client/core/infrastructure/index.js +0 -5
  214. package/dist/client/core/infrastructure/retry.js +0 -20
  215. package/dist/client/core/infrastructure/typedEventEmitter.js +0 -23
  216. package/dist/client/core/modelConfiguration.js +0 -851
  217. package/dist/client/core/modules/GenerationHandler.js +0 -588
  218. package/dist/client/core/modules/MessageBuilder.js +0 -273
  219. package/dist/client/core/modules/StreamHandler.js +0 -185
  220. package/dist/client/core/modules/TelemetryHandler.js +0 -203
  221. package/dist/client/core/modules/ToolsManager.js +0 -499
  222. package/dist/client/core/modules/Utilities.js +0 -331
  223. package/dist/client/core/redisConversationMemoryManager.js +0 -1435
  224. package/dist/client/core/streamAnalytics.js +0 -131
  225. package/dist/client/evaluation/contextBuilder.js +0 -134
  226. package/dist/client/evaluation/index.js +0 -61
  227. package/dist/client/evaluation/prompts.js +0 -73
  228. package/dist/client/evaluation/ragasEvaluator.js +0 -110
  229. package/dist/client/evaluation/retryManager.js +0 -78
  230. package/dist/client/evaluation/scoring.js +0 -61
  231. package/dist/client/factories/providerFactory.js +0 -166
  232. package/dist/client/factories/providerRegistry.js +0 -166
  233. package/dist/client/features/ppt/constants.js +0 -896
  234. package/dist/client/features/ppt/contentPlanner.js +0 -529
  235. package/dist/client/features/ppt/presentationOrchestrator.js +0 -236
  236. package/dist/client/features/ppt/slideGenerator.js +0 -532
  237. package/dist/client/features/ppt/slideRenderers.js +0 -2383
  238. package/dist/client/features/ppt/slideTypeInference.js +0 -405
  239. package/dist/client/features/ppt/types.js +0 -13
  240. package/dist/client/features/ppt/utils.js +0 -443
  241. package/dist/client/files/fileReferenceRegistry.js +0 -1543
  242. package/dist/client/files/fileTools.js +0 -450
  243. package/dist/client/files/streamingReader.js +0 -321
  244. package/dist/client/files/types.js +0 -23
  245. package/dist/client/hitl/hitlErrors.js +0 -54
  246. package/dist/client/hitl/hitlManager.js +0 -460
  247. package/dist/client/mcp/agentExposure.js +0 -356
  248. package/dist/client/mcp/auth/index.js +0 -11
  249. package/dist/client/mcp/auth/oauthClientProvider.js +0 -325
  250. package/dist/client/mcp/auth/tokenStorage.js +0 -134
  251. package/dist/client/mcp/batching/index.js +0 -10
  252. package/dist/client/mcp/batching/requestBatcher.js +0 -441
  253. package/dist/client/mcp/caching/index.js +0 -10
  254. package/dist/client/mcp/caching/toolCache.js +0 -433
  255. package/dist/client/mcp/elicitation/elicitationManager.js +0 -376
  256. package/dist/client/mcp/elicitation/index.js +0 -11
  257. package/dist/client/mcp/elicitation/types.js +0 -10
  258. package/dist/client/mcp/elicitationProtocol.js +0 -375
  259. package/dist/client/mcp/enhancedToolDiscovery.js +0 -481
  260. package/dist/client/mcp/externalServerManager.js +0 -1478
  261. package/dist/client/mcp/factory.js +0 -161
  262. package/dist/client/mcp/flexibleToolValidator.js +0 -161
  263. package/dist/client/mcp/httpRateLimiter.js +0 -391
  264. package/dist/client/mcp/httpRetryHandler.js +0 -178
  265. package/dist/client/mcp/index.js +0 -74
  266. package/dist/client/mcp/mcpCircuitBreaker.js +0 -427
  267. package/dist/client/mcp/mcpClientFactory.js +0 -708
  268. package/dist/client/mcp/mcpRegistryClient.js +0 -488
  269. package/dist/client/mcp/mcpServerBase.js +0 -373
  270. package/dist/client/mcp/multiServerManager.js +0 -579
  271. package/dist/client/mcp/registry.js +0 -158
  272. package/dist/client/mcp/routing/index.js +0 -10
  273. package/dist/client/mcp/routing/toolRouter.js +0 -416
  274. package/dist/client/mcp/serverCapabilities.js +0 -502
  275. package/dist/client/mcp/servers/agent/directToolsServer.js +0 -150
  276. package/dist/client/mcp/toolAnnotations.js +0 -239
  277. package/dist/client/mcp/toolConverter.js +0 -258
  278. package/dist/client/mcp/toolDiscoveryService.js +0 -798
  279. package/dist/client/mcp/toolIntegration.js +0 -334
  280. package/dist/client/mcp/toolRegistry.js +0 -719
  281. package/dist/client/memory/hippocampusInitializer.js +0 -19
  282. package/dist/client/memory/memoryRetrievalTools.js +0 -166
  283. package/dist/client/middleware/builtin/analytics.js +0 -132
  284. package/dist/client/middleware/builtin/autoEvaluation.js +0 -203
  285. package/dist/client/middleware/builtin/guardrails.js +0 -109
  286. package/dist/client/middleware/builtin/lifecycle.js +0 -168
  287. package/dist/client/middleware/factory.js +0 -327
  288. package/dist/client/middleware/registry.js +0 -295
  289. package/dist/client/middleware/utils/guardrailsUtils.js +0 -396
  290. package/dist/client/models/anthropicModels.js +0 -527
  291. package/dist/client/neurolink.js +0 -8015
  292. package/dist/client/observability/exporterRegistry.js +0 -413
  293. package/dist/client/observability/exporters/arizeExporter.js +0 -138
  294. package/dist/client/observability/exporters/baseExporter.js +0 -190
  295. package/dist/client/observability/exporters/braintrustExporter.js +0 -154
  296. package/dist/client/observability/exporters/datadogExporter.js +0 -196
  297. package/dist/client/observability/exporters/laminarExporter.js +0 -302
  298. package/dist/client/observability/exporters/langfuseExporter.js +0 -209
  299. package/dist/client/observability/exporters/langsmithExporter.js +0 -143
  300. package/dist/client/observability/exporters/otelExporter.js +0 -164
  301. package/dist/client/observability/exporters/posthogExporter.js +0 -287
  302. package/dist/client/observability/exporters/sentryExporter.js +0 -165
  303. package/dist/client/observability/index.js +0 -31
  304. package/dist/client/observability/metricsAggregator.js +0 -556
  305. package/dist/client/observability/otelBridge.js +0 -131
  306. package/dist/client/observability/retryPolicy.js +0 -383
  307. package/dist/client/observability/sampling/samplers.js +0 -216
  308. package/dist/client/observability/spanProcessor.js +0 -303
  309. package/dist/client/observability/tokenTracker.js +0 -413
  310. package/dist/client/observability/types/exporterTypes.js +0 -5
  311. package/dist/client/observability/types/index.js +0 -4
  312. package/dist/client/observability/types/spanTypes.js +0 -92
  313. package/dist/client/observability/utils/safeMetadata.js +0 -25
  314. package/dist/client/observability/utils/spanSerializer.js +0 -292
  315. package/dist/client/processors/archive/ArchiveProcessor.js +0 -1308
  316. package/dist/client/processors/base/BaseFileProcessor.js +0 -614
  317. package/dist/client/processors/base/types.js +0 -82
  318. package/dist/client/processors/config/fileTypes.js +0 -520
  319. package/dist/client/processors/config/index.js +0 -92
  320. package/dist/client/processors/config/languageMap.js +0 -410
  321. package/dist/client/processors/config/mimeTypes.js +0 -363
  322. package/dist/client/processors/config/sizeLimits.js +0 -258
  323. package/dist/client/processors/document/ExcelProcessor.js +0 -590
  324. package/dist/client/processors/document/OpenDocumentProcessor.js +0 -212
  325. package/dist/client/processors/document/PptxProcessor.js +0 -157
  326. package/dist/client/processors/document/RtfProcessor.js +0 -361
  327. package/dist/client/processors/document/WordProcessor.js +0 -353
  328. package/dist/client/processors/errors/FileErrorCode.js +0 -255
  329. package/dist/client/processors/errors/errorHelpers.js +0 -386
  330. package/dist/client/processors/errors/errorSerializer.js +0 -507
  331. package/dist/client/processors/errors/index.js +0 -49
  332. package/dist/client/processors/markup/SvgProcessor.js +0 -240
  333. package/dist/client/processors/media/AudioProcessor.js +0 -707
  334. package/dist/client/processors/media/VideoProcessor.js +0 -1045
  335. package/dist/client/providers/amazonBedrock.js +0 -1512
  336. package/dist/client/providers/amazonSagemaker.js +0 -162
  337. package/dist/client/providers/anthropic.js +0 -831
  338. package/dist/client/providers/azureOpenai.js +0 -143
  339. package/dist/client/providers/googleAiStudio.js +0 -1200
  340. package/dist/client/providers/googleNativeGemini3.js +0 -543
  341. package/dist/client/providers/googleVertex.js +0 -2936
  342. package/dist/client/providers/huggingFace.js +0 -315
  343. package/dist/client/providers/litellm.js +0 -488
  344. package/dist/client/providers/mistral.js +0 -157
  345. package/dist/client/providers/ollama.js +0 -1579
  346. package/dist/client/providers/openAI.js +0 -627
  347. package/dist/client/providers/openRouter.js +0 -543
  348. package/dist/client/providers/openaiCompatible.js +0 -290
  349. package/dist/client/providers/providerTypeUtils.js +0 -46
  350. package/dist/client/providers/sagemaker/adaptive-semaphore.js +0 -215
  351. package/dist/client/providers/sagemaker/client.js +0 -472
  352. package/dist/client/providers/sagemaker/config.js +0 -317
  353. package/dist/client/providers/sagemaker/detection.js +0 -606
  354. package/dist/client/providers/sagemaker/error-constants.js +0 -227
  355. package/dist/client/providers/sagemaker/errors.js +0 -299
  356. package/dist/client/providers/sagemaker/language-model.js +0 -775
  357. package/dist/client/providers/sagemaker/parsers.js +0 -634
  358. package/dist/client/providers/sagemaker/streaming.js +0 -331
  359. package/dist/client/providers/sagemaker/structured-parser.js +0 -625
  360. package/dist/client/proxy/accountQuota.js +0 -162
  361. package/dist/client/proxy/claudeFormat.js +0 -595
  362. package/dist/client/proxy/modelRouter.js +0 -29
  363. package/dist/client/proxy/oauthFetch.js +0 -367
  364. package/dist/client/proxy/proxyFetch.js +0 -586
  365. package/dist/client/proxy/requestLogger.js +0 -207
  366. package/dist/client/proxy/tokenRefresh.js +0 -124
  367. package/dist/client/proxy/usageStats.js +0 -74
  368. package/dist/client/proxy/utils/noProxyUtils.js +0 -149
  369. package/dist/client/rag/ChunkerFactory.js +0 -320
  370. package/dist/client/rag/ChunkerRegistry.js +0 -421
  371. package/dist/client/rag/chunkers/BaseChunker.js +0 -143
  372. package/dist/client/rag/chunkers/CharacterChunker.js +0 -28
  373. package/dist/client/rag/chunkers/HTMLChunker.js +0 -38
  374. package/dist/client/rag/chunkers/JSONChunker.js +0 -68
  375. package/dist/client/rag/chunkers/LaTeXChunker.js +0 -63
  376. package/dist/client/rag/chunkers/MarkdownChunker.js +0 -306
  377. package/dist/client/rag/chunkers/RecursiveChunker.js +0 -139
  378. package/dist/client/rag/chunkers/SemanticMarkdownChunker.js +0 -138
  379. package/dist/client/rag/chunkers/SentenceChunker.js +0 -66
  380. package/dist/client/rag/chunkers/TokenChunker.js +0 -61
  381. package/dist/client/rag/chunkers/index.js +0 -15
  382. package/dist/client/rag/chunking/characterChunker.js +0 -142
  383. package/dist/client/rag/chunking/chunkerRegistry.js +0 -194
  384. package/dist/client/rag/chunking/htmlChunker.js +0 -247
  385. package/dist/client/rag/chunking/index.js +0 -17
  386. package/dist/client/rag/chunking/jsonChunker.js +0 -281
  387. package/dist/client/rag/chunking/latexChunker.js +0 -251
  388. package/dist/client/rag/chunking/markdownChunker.js +0 -373
  389. package/dist/client/rag/chunking/recursiveChunker.js +0 -148
  390. package/dist/client/rag/chunking/semanticChunker.js +0 -306
  391. package/dist/client/rag/chunking/sentenceChunker.js +0 -230
  392. package/dist/client/rag/chunking/tokenChunker.js +0 -183
  393. package/dist/client/rag/document/MDocument.js +0 -392
  394. package/dist/client/rag/document/index.js +0 -5
  395. package/dist/client/rag/document/loaders.js +0 -500
  396. package/dist/client/rag/errors/RAGError.js +0 -274
  397. package/dist/client/rag/errors/index.js +0 -6
  398. package/dist/client/rag/graphRag/graphRAG.js +0 -401
  399. package/dist/client/rag/graphRag/index.js +0 -4
  400. package/dist/client/rag/index.js +0 -141
  401. package/dist/client/rag/metadata/MetadataExtractorFactory.js +0 -418
  402. package/dist/client/rag/metadata/MetadataExtractorRegistry.js +0 -362
  403. package/dist/client/rag/metadata/index.js +0 -9
  404. package/dist/client/rag/metadata/metadataExtractor.js +0 -280
  405. package/dist/client/rag/pipeline/RAGPipeline.js +0 -436
  406. package/dist/client/rag/pipeline/contextAssembly.js +0 -341
  407. package/dist/client/rag/pipeline/index.js +0 -5
  408. package/dist/client/rag/ragIntegration.js +0 -321
  409. package/dist/client/rag/reranker/RerankerFactory.js +0 -430
  410. package/dist/client/rag/reranker/RerankerRegistry.js +0 -402
  411. package/dist/client/rag/reranker/index.js +0 -9
  412. package/dist/client/rag/reranker/reranker.js +0 -277
  413. package/dist/client/rag/resilience/CircuitBreaker.js +0 -431
  414. package/dist/client/rag/resilience/RetryHandler.js +0 -304
  415. package/dist/client/rag/resilience/index.js +0 -7
  416. package/dist/client/rag/retrieval/hybridSearch.js +0 -335
  417. package/dist/client/rag/retrieval/index.js +0 -5
  418. package/dist/client/rag/retrieval/vectorQueryTool.js +0 -307
  419. package/dist/client/rag/types.js +0 -8
  420. package/dist/client/sdk/toolRegistration.js +0 -377
  421. package/dist/client/server/abstract/baseServerAdapter.js +0 -575
  422. package/dist/client/server/adapters/expressAdapter.js +0 -486
  423. package/dist/client/server/adapters/fastifyAdapter.js +0 -472
  424. package/dist/client/server/adapters/honoAdapter.js +0 -632
  425. package/dist/client/server/adapters/koaAdapter.js +0 -510
  426. package/dist/client/server/errors.js +0 -486
  427. package/dist/client/server/factory/serverAdapterFactory.js +0 -160
  428. package/dist/client/server/index.js +0 -108
  429. package/dist/client/server/middleware/abortSignal.js +0 -111
  430. package/dist/client/server/middleware/auth.js +0 -388
  431. package/dist/client/server/middleware/cache.js +0 -359
  432. package/dist/client/server/middleware/common.js +0 -281
  433. package/dist/client/server/middleware/deprecation.js +0 -190
  434. package/dist/client/server/middleware/mcpBodyAttachment.js +0 -63
  435. package/dist/client/server/middleware/rateLimit.js +0 -227
  436. package/dist/client/server/middleware/validation.js +0 -388
  437. package/dist/client/server/openapi/generator.js +0 -398
  438. package/dist/client/server/openapi/index.js +0 -36
  439. package/dist/client/server/openapi/schemas.js +0 -695
  440. package/dist/client/server/openapi/templates.js +0 -374
  441. package/dist/client/server/routes/agentRoutes.js +0 -171
  442. package/dist/client/server/routes/claudeProxyRoutes.js +0 -1600
  443. package/dist/client/server/routes/healthRoutes.js +0 -187
  444. package/dist/client/server/routes/index.js +0 -57
  445. package/dist/client/server/routes/mcpRoutes.js +0 -342
  446. package/dist/client/server/routes/memoryRoutes.js +0 -350
  447. package/dist/client/server/routes/openApiRoutes.js +0 -126
  448. package/dist/client/server/routes/toolRoutes.js +0 -199
  449. package/dist/client/server/streaming/dataStream.js +0 -486
  450. package/dist/client/server/streaming/index.js +0 -11
  451. package/dist/client/server/types.js +0 -67
  452. package/dist/client/server/utils/redaction.js +0 -334
  453. package/dist/client/server/utils/validation.js +0 -243
  454. package/dist/client/server/websocket/WebSocketHandler.js +0 -383
  455. package/dist/client/server/websocket/index.js +0 -4
  456. package/dist/client/services/server/ai/observability/instrumentation.js +0 -808
  457. package/dist/client/telemetry/attributes.js +0 -100
  458. package/dist/client/telemetry/index.js +0 -26
  459. package/dist/client/telemetry/telemetryService.js +0 -308
  460. package/dist/client/telemetry/tracers.js +0 -17
  461. package/dist/client/telemetry/withSpan.js +0 -34
  462. package/dist/client/types/actionTypes.js +0 -6
  463. package/dist/client/types/analytics.js +0 -5
  464. package/dist/client/types/authTypes.js +0 -8
  465. package/dist/client/types/circuitBreakerErrors.js +0 -34
  466. package/dist/client/types/cli.js +0 -21
  467. package/dist/client/types/clientTypes.js +0 -10
  468. package/dist/client/types/common.js +0 -51
  469. package/dist/client/types/configTypes.js +0 -49
  470. package/dist/client/types/content.js +0 -19
  471. package/dist/client/types/contextTypes.js +0 -400
  472. package/dist/client/types/conversation.js +0 -47
  473. package/dist/client/types/conversationMemoryInterface.js +0 -6
  474. package/dist/client/types/domainTypes.js +0 -5
  475. package/dist/client/types/errors.js +0 -167
  476. package/dist/client/types/evaluation.js +0 -5
  477. package/dist/client/types/evaluationProviders.js +0 -5
  478. package/dist/client/types/evaluationTypes.js +0 -1
  479. package/dist/client/types/externalMcp.js +0 -6
  480. package/dist/client/types/fileReferenceTypes.js +0 -8
  481. package/dist/client/types/fileTypes.js +0 -4
  482. package/dist/client/types/generateTypes.js +0 -1
  483. package/dist/client/types/guardrails.js +0 -1
  484. package/dist/client/types/hitlTypes.js +0 -8
  485. package/dist/client/types/index.js +0 -57
  486. package/dist/client/types/mcpTypes.js +0 -5
  487. package/dist/client/types/middlewareTypes.js +0 -1
  488. package/dist/client/types/modelTypes.js +0 -30
  489. package/dist/client/types/multimodal.js +0 -135
  490. package/dist/client/types/observability.js +0 -6
  491. package/dist/client/types/pptTypes.js +0 -82
  492. package/dist/client/types/providers.js +0 -111
  493. package/dist/client/types/proxyTypes.js +0 -16
  494. package/dist/client/types/ragTypes.js +0 -7
  495. package/dist/client/types/sdkTypes.js +0 -8
  496. package/dist/client/types/serviceTypes.js +0 -5
  497. package/dist/client/types/streamTypes.js +0 -1
  498. package/dist/client/types/subscriptionTypes.js +0 -9
  499. package/dist/client/types/taskClassificationTypes.js +0 -5
  500. package/dist/client/types/tools.js +0 -24
  501. package/dist/client/types/ttsTypes.js +0 -57
  502. package/dist/client/types/typeAliases.js +0 -48
  503. package/dist/client/types/utilities.js +0 -4
  504. package/dist/client/types/workflowTypes.js +0 -30
  505. package/dist/client/utils/async/withTimeout.js +0 -98
  506. package/dist/client/utils/asyncMutex.js +0 -60
  507. package/dist/client/utils/conversationMemory.js +0 -431
  508. package/dist/client/utils/csvProcessor.js +0 -846
  509. package/dist/client/utils/errorHandling.js +0 -936
  510. package/dist/client/utils/evaluationUtils.js +0 -131
  511. package/dist/client/utils/factoryProcessing.js +0 -589
  512. package/dist/client/utils/fileDetector.js +0 -2161
  513. package/dist/client/utils/imageCache.js +0 -376
  514. package/dist/client/utils/imageProcessor.js +0 -704
  515. package/dist/client/utils/logger.js +0 -491
  516. package/dist/client/utils/mcpDefaults.js +0 -134
  517. package/dist/client/utils/messageBuilder.js +0 -1653
  518. package/dist/client/utils/modelAliasResolver.js +0 -54
  519. package/dist/client/utils/modelDetection.js +0 -80
  520. package/dist/client/utils/modelRouter.js +0 -292
  521. package/dist/client/utils/multimodalOptionsBuilder.js +0 -65
  522. package/dist/client/utils/observabilityHelpers.js +0 -47
  523. package/dist/client/utils/parameterValidation.js +0 -966
  524. package/dist/client/utils/pdfProcessor.js +0 -410
  525. package/dist/client/utils/performance.js +0 -222
  526. package/dist/client/utils/pricing.js +0 -340
  527. package/dist/client/utils/promptRedaction.js +0 -62
  528. package/dist/client/utils/providerConfig.js +0 -1009
  529. package/dist/client/utils/providerHealth.js +0 -1237
  530. package/dist/client/utils/providerRetry.js +0 -112
  531. package/dist/client/utils/providerUtils.js +0 -434
  532. package/dist/client/utils/rateLimiter.js +0 -200
  533. package/dist/client/utils/redis.js +0 -368
  534. package/dist/client/utils/retryHandler.js +0 -269
  535. package/dist/client/utils/retryability.js +0 -22
  536. package/dist/client/utils/sanitizers/svg.js +0 -481
  537. package/dist/client/utils/schemaConversion.js +0 -255
  538. package/dist/client/utils/taskClassificationUtils.js +0 -149
  539. package/dist/client/utils/taskClassifier.js +0 -94
  540. package/dist/client/utils/thinkingConfig.js +0 -104
  541. package/dist/client/utils/timeout.js +0 -359
  542. package/dist/client/utils/tokenEstimation.js +0 -142
  543. package/dist/client/utils/tokenLimits.js +0 -125
  544. package/dist/client/utils/tokenUtils.js +0 -239
  545. package/dist/client/utils/toolUtils.js +0 -75
  546. package/dist/client/utils/transformationUtils.js +0 -554
  547. package/dist/client/utils/ttsProcessor.js +0 -286
  548. package/dist/client/utils/typeUtils.js +0 -97
  549. package/dist/client/utils/videoAnalysisProcessor.js +0 -67
  550. package/dist/client/workflow/config.js +0 -398
  551. package/dist/client/workflow/core/ensembleExecutor.js +0 -407
  552. package/dist/client/workflow/core/judgeScorer.js +0 -544
  553. package/dist/client/workflow/core/responseConditioner.js +0 -225
  554. package/dist/client/workflow/core/types/conditionerTypes.js +0 -7
  555. package/dist/client/workflow/core/types/ensembleTypes.js +0 -7
  556. package/dist/client/workflow/core/types/index.js +0 -7
  557. package/dist/client/workflow/core/types/judgeTypes.js +0 -7
  558. package/dist/client/workflow/core/types/layerTypes.js +0 -7
  559. package/dist/client/workflow/core/types/registryTypes.js +0 -7
  560. package/dist/client/workflow/core/workflowRegistry.js +0 -304
  561. package/dist/client/workflow/core/workflowRunner.js +0 -586
  562. package/dist/client/workflow/index.js +0 -50
  563. package/dist/client/workflow/types.js +0 -9
  564. package/dist/client/workflow/utils/types/index.js +0 -7
  565. package/dist/client/workflow/utils/workflowMetrics.js +0 -311
  566. package/dist/client/workflow/utils/workflowValidation.js +0 -420
  567. package/dist/client/workflow/workflows/adaptiveWorkflow.js +0 -366
  568. package/dist/client/workflow/workflows/consensusWorkflow.js +0 -192
  569. package/dist/client/workflow/workflows/fallbackWorkflow.js +0 -225
  570. package/dist/client/workflow/workflows/multiJudgeWorkflow.js +0 -351
  571. /package/dist/client/{client/reactHooks.js → reactHooks.js} +0 -0
@@ -1,391 +0,0 @@
1
- /**
2
- * HTTP Rate Limiter for MCP HTTP Transport
3
- * Implements token bucket algorithm for rate limiting
4
- * Provides fault tolerance and prevents server overload
5
- */
6
- import { mcpLogger } from "../utils/logger.js";
7
- import { SpanSerializer, SpanType, SpanStatus, } from "../observability/index.js";
8
- import { getMetricsAggregator } from "../observability/index.js";
9
- /**
10
- * Default rate limit configuration
11
- * Provides sensible defaults for most MCP HTTP transport use cases
12
- */
13
- export const DEFAULT_RATE_LIMIT_CONFIG = {
14
- requestsPerWindow: 60,
15
- windowMs: 60000,
16
- useTokenBucket: true,
17
- refillRate: 1,
18
- maxBurst: 10,
19
- };
20
- /**
21
- * HTTPRateLimiter
22
- * Implements token bucket algorithm for rate limiting HTTP requests
23
- *
24
- * The token bucket algorithm works as follows:
25
- * - Tokens are added to the bucket at a fixed rate (refillRate per second)
26
- * - Each request consumes one token
27
- * - If no tokens are available, the request must wait
28
- * - Maximum tokens are capped at maxBurst to allow controlled bursting
29
- */
30
- export class HTTPRateLimiter {
31
- tokens;
32
- lastRefill;
33
- config;
34
- waitQueue = [];
35
- processingQueue = false;
36
- constructor(config = {}) {
37
- this.config = { ...DEFAULT_RATE_LIMIT_CONFIG, ...config };
38
- this.tokens = this.config.maxBurst;
39
- this.lastRefill = Date.now();
40
- mcpLogger.debug(`[HTTPRateLimiter] Initialized with config:`, {
41
- requestsPerWindow: this.config.requestsPerWindow,
42
- windowMs: this.config.windowMs,
43
- useTokenBucket: this.config.useTokenBucket,
44
- refillRate: this.config.refillRate,
45
- maxBurst: this.config.maxBurst,
46
- });
47
- }
48
- /**
49
- * Refill tokens based on elapsed time since last refill
50
- * Tokens are added at the configured refillRate (tokens per second)
51
- */
52
- refillTokens() {
53
- const now = Date.now();
54
- const elapsedMs = now - this.lastRefill;
55
- const elapsedSeconds = elapsedMs / 1000;
56
- // Calculate tokens to add based on elapsed time and refill rate
57
- const tokensToAdd = elapsedSeconds * this.config.refillRate;
58
- if (tokensToAdd >= 1) {
59
- // Only refill if at least one token should be added
60
- const previousTokens = this.tokens;
61
- this.tokens = Math.min(this.config.maxBurst, this.tokens + tokensToAdd);
62
- this.lastRefill = now;
63
- if (this.tokens > previousTokens) {
64
- mcpLogger.debug(`[HTTPRateLimiter] Refilled tokens: ${previousTokens.toFixed(2)} -> ${this.tokens.toFixed(2)} (+${tokensToAdd.toFixed(2)})`);
65
- }
66
- }
67
- }
68
- /**
69
- * Acquire a token, waiting if necessary
70
- * This is the primary method for rate-limited operations
71
- *
72
- * @returns Promise that resolves when a token is acquired
73
- * @throws Error if the wait queue is too long
74
- */
75
- async acquire() {
76
- const span = SpanSerializer.createSpan(SpanType.MCP_TRANSPORT, "mcp.rateLimit", {
77
- "mcp.transport": "http",
78
- "mcp.operation": "rateLimit",
79
- "mcp.rateLimit.tokensAvailable": this.tokens,
80
- "mcp.rateLimit.maxBurst": this.config.maxBurst,
81
- });
82
- const startTime = Date.now();
83
- try {
84
- // First, try to acquire without waiting
85
- if (this.tryAcquire()) {
86
- span.durationMs = Date.now() - startTime;
87
- span.attributes["mcp.rateLimit.waited"] = false;
88
- const endedSpan = SpanSerializer.endSpan(span, SpanStatus.OK);
89
- getMetricsAggregator().recordSpan(endedSpan);
90
- return;
91
- }
92
- // Add to wait queue
93
- await new Promise((resolve, reject) => {
94
- this.waitQueue.push({ resolve, reject });
95
- mcpLogger.debug(`[HTTPRateLimiter] Request queued, queue length: ${this.waitQueue.length}`);
96
- // Start processing the queue if not already processing
97
- if (!this.processingQueue) {
98
- this.processQueue();
99
- }
100
- });
101
- span.durationMs = Date.now() - startTime;
102
- span.attributes["mcp.rateLimit.waited"] = true;
103
- const endedSpan = SpanSerializer.endSpan(span, SpanStatus.OK);
104
- getMetricsAggregator().recordSpan(endedSpan);
105
- }
106
- catch (error) {
107
- span.durationMs = Date.now() - startTime;
108
- const endedSpan = SpanSerializer.endSpan(span, SpanStatus.ERROR);
109
- endedSpan.statusMessage =
110
- error instanceof Error ? error.message : String(error);
111
- getMetricsAggregator().recordSpan(endedSpan);
112
- throw error;
113
- }
114
- }
115
- /**
116
- * Process the wait queue, granting tokens as they become available
117
- */
118
- async processQueue() {
119
- if (this.processingQueue) {
120
- return;
121
- }
122
- this.processingQueue = true;
123
- while (this.waitQueue.length > 0) {
124
- // Refill tokens
125
- this.refillTokens();
126
- // If we have tokens, grant to next waiter
127
- if (this.tokens >= 1) {
128
- const waiter = this.waitQueue.shift();
129
- if (waiter) {
130
- this.tokens -= 1;
131
- mcpLogger.debug(`[HTTPRateLimiter] Token granted from queue, remaining: ${this.tokens.toFixed(2)}, queue: ${this.waitQueue.length}`);
132
- waiter.resolve();
133
- }
134
- }
135
- else {
136
- // Calculate wait time until next token is available
137
- const tokensNeeded = 1 - this.tokens;
138
- const waitTimeMs = (tokensNeeded / this.config.refillRate) * 1000;
139
- const actualWait = Math.max(10, Math.ceil(waitTimeMs));
140
- mcpLogger.debug(`[HTTPRateLimiter] Waiting ${actualWait}ms for token refill`);
141
- // Wait for the calculated time
142
- await this.sleep(actualWait);
143
- }
144
- }
145
- this.processingQueue = false;
146
- }
147
- /**
148
- * Sleep helper function
149
- */
150
- sleep(ms) {
151
- return new Promise((resolve) => setTimeout(resolve, ms));
152
- }
153
- /**
154
- * Try to acquire a token without waiting
155
- *
156
- * @returns true if a token was acquired, false otherwise
157
- */
158
- tryAcquire() {
159
- // Refill tokens based on elapsed time
160
- this.refillTokens();
161
- // Check if we have tokens available
162
- if (this.tokens >= 1) {
163
- this.tokens -= 1;
164
- mcpLogger.debug(`[HTTPRateLimiter] Token acquired, remaining: ${this.tokens.toFixed(2)}`);
165
- return true;
166
- }
167
- mcpLogger.debug(`[HTTPRateLimiter] No tokens available, current: ${this.tokens.toFixed(2)}`);
168
- return false;
169
- }
170
- /**
171
- * Handle rate limit response headers from server
172
- * Parses Retry-After header and returns wait time in milliseconds
173
- *
174
- * @param headers - Response headers from the server
175
- * @returns Wait time in milliseconds, or 0 if no rate limit headers found
176
- */
177
- handleRateLimitResponse(headers) {
178
- // Check for Retry-After header (standard HTTP 429 response)
179
- const retryAfter = headers.get("Retry-After");
180
- if (retryAfter) {
181
- // Retry-After can be either a number of seconds or an HTTP-date
182
- const seconds = parseInt(retryAfter, 10);
183
- if (!isNaN(seconds)) {
184
- // It's a number of seconds
185
- const waitTimeMs = seconds * 1000;
186
- mcpLogger.info(`[HTTPRateLimiter] Server requested retry after ${seconds} seconds`);
187
- return waitTimeMs;
188
- }
189
- else {
190
- // Try to parse as HTTP-date
191
- const retryDate = new Date(retryAfter);
192
- if (!isNaN(retryDate.getTime())) {
193
- const waitTimeMs = Math.max(0, retryDate.getTime() - Date.now());
194
- mcpLogger.info(`[HTTPRateLimiter] Server requested retry at ${retryDate.toISOString()} (${waitTimeMs}ms)`);
195
- return waitTimeMs;
196
- }
197
- }
198
- }
199
- // Check for X-RateLimit-Reset header (common non-standard header)
200
- const rateLimitReset = headers.get("X-RateLimit-Reset");
201
- if (rateLimitReset) {
202
- const resetTimestamp = parseInt(rateLimitReset, 10);
203
- if (!isNaN(resetTimestamp)) {
204
- // Could be Unix timestamp (seconds) or milliseconds
205
- const resetTime = resetTimestamp > 1e12 ? resetTimestamp : resetTimestamp * 1000;
206
- const waitTimeMs = Math.max(0, resetTime - Date.now());
207
- mcpLogger.info(`[HTTPRateLimiter] Rate limit resets at ${new Date(resetTime).toISOString()} (${waitTimeMs}ms)`);
208
- return waitTimeMs;
209
- }
210
- }
211
- // Check for X-RateLimit-Remaining header
212
- const remaining = headers.get("X-RateLimit-Remaining");
213
- if (remaining === "0") {
214
- // No remaining requests, use default backoff
215
- const defaultBackoffMs = 1000;
216
- mcpLogger.info(`[HTTPRateLimiter] Rate limit exhausted, using default backoff: ${defaultBackoffMs}ms`);
217
- return defaultBackoffMs;
218
- }
219
- return 0;
220
- }
221
- /**
222
- * Get the number of remaining tokens
223
- *
224
- * @returns Current number of available tokens
225
- */
226
- getRemainingTokens() {
227
- this.refillTokens();
228
- return this.tokens;
229
- }
230
- /**
231
- * Reset the rate limiter to initial state
232
- * Useful for testing or when server indicates rate limits have been reset
233
- */
234
- reset() {
235
- this.tokens = this.config.maxBurst;
236
- this.lastRefill = Date.now();
237
- // Reject all pending waiters
238
- while (this.waitQueue.length > 0) {
239
- const waiter = this.waitQueue.shift();
240
- if (waiter) {
241
- waiter.reject(new Error("Rate limiter was reset"));
242
- }
243
- }
244
- mcpLogger.info(`[HTTPRateLimiter] Reset to initial state, tokens: ${this.tokens}`);
245
- }
246
- /**
247
- * Get current rate limiter statistics
248
- */
249
- getStats() {
250
- this.refillTokens();
251
- return {
252
- tokens: this.tokens,
253
- maxBurst: this.config.maxBurst,
254
- refillRate: this.config.refillRate,
255
- queueLength: this.waitQueue.length,
256
- lastRefill: new Date(this.lastRefill),
257
- };
258
- }
259
- /**
260
- * Update configuration dynamically
261
- * Useful when server provides rate limit information
262
- */
263
- updateConfig(config) {
264
- Object.assign(this.config, config);
265
- mcpLogger.info(`[HTTPRateLimiter] Configuration updated:`, config);
266
- }
267
- /**
268
- * Get current configuration
269
- */
270
- getConfig() {
271
- return { ...this.config };
272
- }
273
- }
274
- /**
275
- * RateLimiterManager
276
- * Manages multiple rate limiters for different servers
277
- * Each server can have its own rate limiting configuration
278
- */
279
- export class RateLimiterManager {
280
- limiters = new Map();
281
- /**
282
- * Get or create a rate limiter for a server
283
- *
284
- * @param serverId - Unique identifier for the server
285
- * @param config - Optional configuration for the rate limiter
286
- * @returns HTTPRateLimiter instance for the server
287
- */
288
- getLimiter(serverId, config) {
289
- let limiter = this.limiters.get(serverId);
290
- if (!limiter) {
291
- limiter = new HTTPRateLimiter(config);
292
- this.limiters.set(serverId, limiter);
293
- mcpLogger.debug(`[RateLimiterManager] Created rate limiter for server: ${serverId}`);
294
- }
295
- else if (config) {
296
- // Update existing limiter's configuration if provided
297
- limiter.updateConfig(config);
298
- }
299
- return limiter;
300
- }
301
- /**
302
- * Check if a rate limiter exists for a server
303
- *
304
- * @param serverId - Unique identifier for the server
305
- * @returns true if a rate limiter exists for the server
306
- */
307
- hasLimiter(serverId) {
308
- return this.limiters.has(serverId);
309
- }
310
- /**
311
- * Remove a rate limiter for a server
312
- *
313
- * @param serverId - Unique identifier for the server
314
- */
315
- removeLimiter(serverId) {
316
- const limiter = this.limiters.get(serverId);
317
- if (limiter) {
318
- limiter.reset(); // Clean up any pending operations
319
- this.limiters.delete(serverId);
320
- mcpLogger.debug(`[RateLimiterManager] Removed rate limiter for server: ${serverId}`);
321
- }
322
- }
323
- /**
324
- * Get all server IDs with active rate limiters
325
- *
326
- * @returns Array of server IDs
327
- */
328
- getServerIds() {
329
- return Array.from(this.limiters.keys());
330
- }
331
- /**
332
- * Get statistics for all rate limiters
333
- *
334
- * @returns Record of server IDs to their rate limiter statistics
335
- */
336
- getAllStats() {
337
- const stats = {};
338
- for (const [serverId, limiter] of this.limiters) {
339
- stats[serverId] = limiter.getStats();
340
- }
341
- return stats;
342
- }
343
- /**
344
- * Reset all rate limiters
345
- */
346
- resetAll() {
347
- for (const limiter of this.limiters.values()) {
348
- limiter.reset();
349
- }
350
- mcpLogger.info("[RateLimiterManager] Reset all rate limiters");
351
- }
352
- /**
353
- * Destroy all rate limiters and clean up resources
354
- * This should be called during application shutdown
355
- */
356
- destroyAll() {
357
- for (const limiter of this.limiters.values()) {
358
- limiter.reset();
359
- }
360
- this.limiters.clear();
361
- mcpLogger.info("[RateLimiterManager] Destroyed all rate limiters");
362
- }
363
- /**
364
- * Get health summary for all rate limiters
365
- */
366
- getHealthSummary() {
367
- const serversWithQueuedRequests = [];
368
- let totalQueuedRequests = 0;
369
- let totalTokens = 0;
370
- for (const [serverId, limiter] of this.limiters) {
371
- const stats = limiter.getStats();
372
- if (stats.queueLength > 0) {
373
- serversWithQueuedRequests.push(serverId);
374
- totalQueuedRequests += stats.queueLength;
375
- }
376
- totalTokens += stats.tokens;
377
- }
378
- const averageTokensAvailable = this.limiters.size > 0 ? totalTokens / this.limiters.size : 0;
379
- return {
380
- totalLimiters: this.limiters.size,
381
- serversWithQueuedRequests,
382
- totalQueuedRequests,
383
- averageTokensAvailable,
384
- };
385
- }
386
- }
387
- /**
388
- * Global rate limiter manager instance
389
- * Use this for application-wide rate limiting management
390
- */
391
- export const globalRateLimiterManager = new RateLimiterManager();
@@ -1,178 +0,0 @@
1
- /**
2
- * HTTP Retry Handler for MCP Transport
3
- *
4
- * Provides retry logic with exponential backoff and jitter
5
- * specifically designed for HTTP-based MCP transport connections.
6
- */
7
- import { isAbortError } from "../utils/errorHandling.js";
8
- import { calculateBackoffDelay } from "../utils/retryHandler.js";
9
- import { logger } from "../utils/logger.js";
10
- import { SpanSerializer, SpanType, SpanStatus, } from "../observability/index.js";
11
- import { getMetricsAggregator } from "../observability/index.js";
12
- /**
13
- * Default HTTP retry configuration
14
- */
15
- export const DEFAULT_HTTP_RETRY_CONFIG = {
16
- maxAttempts: 3,
17
- initialDelay: 1000,
18
- maxDelay: 30000,
19
- backoffMultiplier: 2,
20
- retryableStatusCodes: [408, 429, 500, 502, 503, 504],
21
- };
22
- /**
23
- * Sleep utility for retry delays
24
- */
25
- function sleep(ms) {
26
- return new Promise((resolve) => setTimeout(resolve, ms));
27
- }
28
- /**
29
- * Check if an HTTP status code is retryable based on configuration
30
- *
31
- * @param status - HTTP status code to check
32
- * @param config - HTTP retry configuration
33
- * @returns True if the status code should trigger a retry
34
- */
35
- export function isRetryableStatusCode(status, config = DEFAULT_HTTP_RETRY_CONFIG) {
36
- return config.retryableStatusCodes.includes(status);
37
- }
38
- /**
39
- * Check if an error is retryable for HTTP operations
40
- *
41
- * Considers:
42
- * - Network errors (ECONNRESET, ENOTFOUND, ECONNREFUSED, ETIMEDOUT)
43
- * - Timeout errors
44
- * - HTTP status codes in the retryable list
45
- * - Fetch/network-related errors
46
- *
47
- * @param error - Error to check
48
- * @param config - HTTP retry configuration (optional)
49
- * @returns True if the error is retryable
50
- */
51
- export function isRetryableHTTPError(error, config = DEFAULT_HTTP_RETRY_CONFIG) {
52
- if (!error || typeof error !== "object") {
53
- return false;
54
- }
55
- const errorObj = error;
56
- // User-initiated aborts are NOT retryable — the caller explicitly cancelled
57
- if (isAbortError(error)) {
58
- return false;
59
- }
60
- // Check for timeout errors
61
- if (errorObj.name === "TimeoutError" ||
62
- errorObj.code === "TIMEOUT" ||
63
- errorObj.code === "ETIMEDOUT") {
64
- return true;
65
- }
66
- // Check for network-related errors
67
- if (errorObj.code === "ECONNRESET" ||
68
- errorObj.code === "ENOTFOUND" ||
69
- errorObj.code === "ECONNREFUSED" ||
70
- errorObj.code === "ECONNABORTED" ||
71
- errorObj.code === "EPIPE" ||
72
- errorObj.code === "ENETUNREACH" ||
73
- errorObj.code === "EHOSTUNREACH") {
74
- return true;
75
- }
76
- // Check for fetch errors (network failures)
77
- if (errorObj.name === "TypeError" && typeof errorObj.message === "string") {
78
- const message = errorObj.message.toLowerCase();
79
- if (message.includes("fetch") ||
80
- message.includes("network") ||
81
- message.includes("connection")) {
82
- return true;
83
- }
84
- }
85
- // Check for HTTP status codes
86
- if (typeof errorObj.status === "number") {
87
- return isRetryableStatusCode(errorObj.status, config);
88
- }
89
- // Check for response object with status
90
- if (errorObj.response &&
91
- typeof errorObj.response === "object" &&
92
- typeof errorObj.response.status === "number") {
93
- return isRetryableStatusCode(errorObj.response.status, config);
94
- }
95
- // Check for statusCode (alternative property name)
96
- if (typeof errorObj.statusCode === "number") {
97
- return isRetryableStatusCode(errorObj.statusCode, config);
98
- }
99
- return false;
100
- }
101
- /**
102
- * Execute an HTTP operation with retry logic
103
- *
104
- * Implements exponential backoff with jitter to avoid thundering herd problems.
105
- * Uses the calculateBackoffDelay function from the core retry handler for
106
- * consistent delay calculation across the codebase.
107
- *
108
- * @param operation - Async operation to execute with retries
109
- * @param config - Partial HTTP retry configuration (merged with defaults)
110
- * @returns Result of the operation
111
- * @throws Last error if all retry attempts fail
112
- *
113
- * @example
114
- * ```typescript
115
- * const result = await withHTTPRetry(
116
- * async () => {
117
- * const response = await fetch(url);
118
- * if (!response.ok) {
119
- * const error = new Error(`HTTP ${response.status}`) as Error & { status: number };
120
- * error.status = response.status;
121
- * throw error;
122
- * }
123
- * return response.json();
124
- * },
125
- * { maxAttempts: 5, initialDelay: 500 }
126
- * );
127
- * ```
128
- */
129
- export async function withHTTPRetry(operation, config = {}) {
130
- const mergedConfig = {
131
- ...DEFAULT_HTTP_RETRY_CONFIG,
132
- ...config,
133
- };
134
- const span = SpanSerializer.createSpan(SpanType.MCP_TRANSPORT, "mcp.retry", {
135
- "mcp.transport": "http",
136
- "mcp.operation": "retry",
137
- "mcp.maxAttempts": mergedConfig.maxAttempts,
138
- });
139
- const startTime = Date.now();
140
- let lastError;
141
- let actualAttempts = 0;
142
- for (let attempt = 1; attempt <= mergedConfig.maxAttempts; attempt++) {
143
- actualAttempts = attempt;
144
- try {
145
- const result = await operation();
146
- span.durationMs = Date.now() - startTime;
147
- span.attributes["mcp.retryAttempt"] = attempt;
148
- const endedSpan = SpanSerializer.endSpan(span, SpanStatus.OK);
149
- getMetricsAggregator().recordSpan(endedSpan);
150
- return result;
151
- }
152
- catch (error) {
153
- lastError = error;
154
- // Don't retry if it's the last attempt
155
- if (attempt === mergedConfig.maxAttempts) {
156
- logger.debug(`HTTP retry: All ${mergedConfig.maxAttempts} attempts exhausted`);
157
- break;
158
- }
159
- // Check if we should retry this error
160
- if (!isRetryableHTTPError(error, mergedConfig)) {
161
- logger.debug(`HTTP retry: Non-retryable error encountered`, error instanceof Error ? error.message : String(error));
162
- break;
163
- }
164
- // Calculate delay using the shared backoff calculation
165
- const delay = calculateBackoffDelay(attempt, mergedConfig.initialDelay, mergedConfig.backoffMultiplier, mergedConfig.maxDelay, true);
166
- const errorMessage = error instanceof Error ? error.message : String(error);
167
- logger.warn(`HTTP retry: Attempt ${attempt}/${mergedConfig.maxAttempts} failed: ${errorMessage}. Retrying in ${Math.round(delay)}ms...`);
168
- await sleep(delay);
169
- }
170
- }
171
- span.durationMs = Date.now() - startTime;
172
- span.attributes["mcp.retryAttempt"] = actualAttempts;
173
- const endedSpan = SpanSerializer.endSpan(span, SpanStatus.ERROR);
174
- endedSpan.statusMessage =
175
- lastError instanceof Error ? lastError.message : String(lastError);
176
- getMetricsAggregator().recordSpan(endedSpan);
177
- throw lastError;
178
- }
@@ -1,74 +0,0 @@
1
- import { ErrorFactory } from "../utils/errorHandling.js";
2
- export { mcpLogger } from "../utils/logger.js";
3
- // MCP Server Factory
4
- export { createMCPServer, getServerInfo, validateServerTools, validateTool, } from "./factory.js";
5
- // OAuth Authentication
6
- export { calculateExpiresAt, createOAuthProviderFromConfig, FileTokenStorage, InMemoryTokenStorage, isTokenExpired, NeuroLinkOAuthProvider, } from "./auth/index.js";
7
- // HTTP Rate Limiter
8
- export { DEFAULT_RATE_LIMIT_CONFIG, globalRateLimiterManager, HTTPRateLimiter, RateLimiterManager, } from "./httpRateLimiter.js";
9
- // HTTP Retry Handler
10
- export { DEFAULT_HTTP_RETRY_CONFIG, isRetryableHTTPError, isRetryableStatusCode, withHTTPRetry, } from "./httpRetryHandler.js";
11
- // Circuit Breaker
12
- export { CircuitBreakerManager, globalCircuitBreakerManager, MCPCircuitBreaker, CircuitBreakerOpenError, } from "./mcpCircuitBreaker.js";
13
- // Core MCP Components
14
- export { MCPToolRegistry } from "./toolRegistry.js";
15
- export { ExternalServerManager } from "./externalServerManager.js";
16
- export { MCPClientFactory } from "./mcpClientFactory.js";
17
- // Agent and Workflow Exposure
18
- export { AgentExposureManager, exposeAgentAsTool, exposeAgentsAsTools, exposeWorkflowAsTool, exposeWorkflowsAsTools, globalAgentExposureManager, } from "./agentExposure.js";
19
- // Elicitation Protocol - Manager
20
- export { ElicitationManager, globalElicitationManager, } from "./elicitation/index.js";
21
- // Elicitation Protocol - Protocol Layer
22
- export { createConfirmationRequest, createElicitationCancel, createElicitationRequest, createElicitationResponse, createFormRequest, createSelectRequest, createTextInputRequest, ElicitationProtocolAdapter, elicitationResponseToProtocol, globalElicitationProtocol, isElicitationProtocolMessage, protocolMessageToElicitation, } from "./elicitationProtocol.js";
23
- // Enhanced Tool Discovery
24
- export { EnhancedToolDiscovery } from "./enhancedToolDiscovery.js";
25
- // MCP Registry Client
26
- export { getAllWellKnownServers, getWellKnownServer, globalMCPRegistryClient, MCPRegistryClient, } from "./mcpRegistryClient.js";
27
- // MCP Server Base Class
28
- export { MCPServerBase } from "./mcpServerBase.js";
29
- // Multi-Server Manager
30
- export { globalMultiServerManager, MultiServerManager, } from "./multiServerManager.js";
31
- // Server Capabilities (Resources and Prompts)
32
- export { createJsonResource, createPrompt, createTextResource, ServerCapabilitiesManager, } from "./serverCapabilities.js";
33
- // Tool Annotations System
34
- export { createAnnotatedTool, filterToolsByAnnotations, getAnnotationSummary, getToolSafetyLevel, inferAnnotations, isSafeToRetry, mergeAnnotations, requiresConfirmation, validateAnnotations, } from "./toolAnnotations.js";
35
- // Tool Converter Utilities
36
- export { batchConvertToMCP, batchConvertToNeuroLink, createToolFromFunction, mcpProtocolToolToServerTool, mcpToolToNeuroLink, neuroLinkToolToMCP, sanitizeToolName, serverToolToMCPProtocol, TOOL_COMPATIBILITY, validateToolName, } from "./toolConverter.js";
37
- // Tool Integration with Elicitation
38
- export { confirmationMiddleware, createElicitationContext, createRetryMiddleware, createTimeoutMiddleware, createToolMiddlewareChain, globalToolIntegrationManager, loggingMiddleware, ToolIntegrationManager, validationMiddleware, wrapToolsWithElicitation, wrapToolWithElicitation, } from "./toolIntegration.js";
39
- // Request Batcher - Efficient batch processing
40
- export { createRequestBatcher, createToolCallBatcher, DEFAULT_BATCH_CONFIG, RequestBatcher, ToolCallBatcher, } from "./batching/index.js";
41
- // Tool Cache - Result and response caching
42
- export { createToolCache, createToolResultCache, DEFAULT_CACHE_CONFIG, ToolCache, ToolResultCache, } from "./caching/index.js";
43
- // Tool Router - Intelligent routing for multi-server environments
44
- export { createToolRouter, DEFAULT_ROUTER_CONFIG, ToolRouter, } from "./routing/index.js";
45
- /**
46
- * Initialize the MCP ecosystem - simplified
47
- */
48
- export async function initializeMCPEcosystem() {
49
- // Simplified initialization - no complex ecosystem needed
50
- return Promise.resolve();
51
- }
52
- /**
53
- * List available MCPs - simplified
54
- */
55
- export async function listMCPs() {
56
- return [];
57
- }
58
- /**
59
- * Execute an MCP operation - simplified
60
- */
61
- export async function executeMCP(_name, _config, _args, _context) {
62
- throw ErrorFactory.invalidConfiguration("executeMCP", "Direct legacy MCP execution is deprecated. Use the new module APIs (createMCPServer, MultiServerManager, ToolRouter, etc.) instead.");
63
- }
64
- /**
65
- * Get MCP ecosystem statistics - simplified
66
- */
67
- export async function getMCPStats() {
68
- return {
69
- initialized: false,
70
- pluginsDiscovered: 0,
71
- pluginsBySource: {},
72
- availablePlugins: [],
73
- };
74
- }