@juspay/neurolink 9.54.6 → 9.54.7

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 (408) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/dist/action/actionInputs.d.ts +1 -1
  3. package/dist/adapters/video/directorPipeline.js +6 -0
  4. package/dist/adapters/video/vertexVideoHandler.js +6 -0
  5. package/dist/agent/directTools.d.ts +3 -23
  6. package/dist/auth/AuthProviderFactory.d.ts +1 -3
  7. package/dist/auth/anthropicOAuth.d.ts +4 -7
  8. package/dist/auth/anthropicOAuth.js +23 -0
  9. package/dist/auth/errors.d.ts +1 -1
  10. package/dist/auth/index.d.ts +11 -0
  11. package/dist/auth/index.js +14 -0
  12. package/dist/auth/middleware/AuthMiddleware.d.ts +5 -60
  13. package/dist/auth/middleware/AuthMiddleware.js +3 -0
  14. package/dist/auth/middleware/rateLimitByUser.d.ts +4 -93
  15. package/dist/auth/middleware/rateLimitByUser.js +4 -0
  16. package/dist/auth/providers/BaseAuthProvider.d.ts +1 -1
  17. package/dist/auth/providers/CognitoProvider.js +3 -0
  18. package/dist/auth/providers/KeycloakProvider.js +3 -0
  19. package/dist/auth/providers/auth0.d.ts +1 -1
  20. package/dist/auth/sessionManager.d.ts +2 -0
  21. package/dist/auth/sessionManager.js +53 -11
  22. package/dist/auth/tokenStore.d.ts +2 -0
  23. package/dist/auth/tokenStore.js +45 -4
  24. package/dist/autoresearch/tools.d.ts +1 -16
  25. package/dist/browser/neurolink.min.js +353 -353
  26. package/dist/cli/commands/config.d.ts +3 -123
  27. package/dist/cli/commands/config.js +4 -2
  28. package/dist/cli/commands/evaluate.d.ts +1 -19
  29. package/dist/cli/commands/proxy.d.ts +1 -1
  30. package/dist/cli/commands/proxy.js +3 -0
  31. package/dist/cli/commands/rag.js +3 -0
  32. package/dist/cli/commands/setup-anthropic.d.ts +2 -6
  33. package/dist/cli/commands/setup-anthropic.js +1 -1
  34. package/dist/cli/commands/setup-azure.d.ts +2 -6
  35. package/dist/cli/commands/setup-azure.js +1 -1
  36. package/dist/cli/commands/setup-bedrock.d.ts +2 -6
  37. package/dist/cli/commands/setup-bedrock.js +1 -1
  38. package/dist/cli/commands/setup-gcp.d.ts +2 -6
  39. package/dist/cli/commands/setup-google-ai.d.ts +2 -6
  40. package/dist/cli/commands/setup-google-ai.js +1 -1
  41. package/dist/cli/commands/setup-huggingface.d.ts +1 -5
  42. package/dist/cli/commands/setup-mistral.d.ts +1 -5
  43. package/dist/cli/commands/setup-openai.d.ts +2 -6
  44. package/dist/cli/commands/setup-openai.js +1 -1
  45. package/dist/cli/commands/setup.d.ts +1 -8
  46. package/dist/cli/commands/task.js +1 -0
  47. package/dist/cli/commands/voiceServer.d.ts +1 -4
  48. package/dist/cli/loop/session.js +31 -10
  49. package/dist/cli/utils/interactiveSetup.d.ts +2 -15
  50. package/dist/cli/utils/videoFileUtils.d.ts +1 -15
  51. package/dist/client/aiSdkAdapter.d.ts +1 -1
  52. package/dist/client/aiSdkAdapter.js +1 -0
  53. package/dist/client/httpClient.d.ts +1 -0
  54. package/dist/client/httpClient.js +13 -0
  55. package/dist/client/sseClient.d.ts +1 -0
  56. package/dist/client/sseClient.js +29 -0
  57. package/dist/client/streamingClient.d.ts +2 -0
  58. package/dist/client/streamingClient.js +19 -0
  59. package/dist/client/wsClient.d.ts +6 -0
  60. package/dist/client/wsClient.js +90 -10
  61. package/dist/context/budgetChecker.js +3 -1
  62. package/dist/context/contextCompactor.js +163 -143
  63. package/dist/context/fileSummarizationService.d.ts +1 -9
  64. package/dist/context/summarizationEngine.js +29 -16
  65. package/dist/core/baseProvider.js +124 -153
  66. package/dist/core/infrastructure/baseRegistry.d.ts +1 -7
  67. package/dist/core/modules/GenerationHandler.d.ts +3 -2
  68. package/dist/core/modules/GenerationHandler.js +9 -1
  69. package/dist/core/modules/StreamHandler.js +9 -0
  70. package/dist/core/modules/ToolsManager.js +18 -2
  71. package/dist/evaluation/BatchEvaluator.d.ts +1 -97
  72. package/dist/evaluation/EvaluationAggregator.d.ts +1 -118
  73. package/dist/evaluation/EvaluatorFactory.d.ts +1 -13
  74. package/dist/evaluation/EvaluatorRegistry.d.ts +1 -50
  75. package/dist/evaluation/errors/EvaluationError.d.ts +2 -27
  76. package/dist/evaluation/hooks/langfuseAdapter.d.ts +1 -39
  77. package/dist/evaluation/hooks/observabilityHooks.d.ts +3 -55
  78. package/dist/evaluation/hooks/observabilityHooks.js +3 -0
  79. package/dist/evaluation/pipeline/strategies/batchStrategy.d.ts +7 -61
  80. package/dist/evaluation/pipeline/strategies/batchStrategy.js +7 -7
  81. package/dist/evaluation/ragasEvaluator.js +54 -37
  82. package/dist/evaluation/reporting/metricsCollector.d.ts +1 -60
  83. package/dist/evaluation/reporting/reportGenerator.d.ts +1 -17
  84. package/dist/evaluation/scorers/rule/contentSimilarityScorer.d.ts +1 -29
  85. package/dist/evaluation/scorers/rule/formatScorer.d.ts +1 -42
  86. package/dist/evaluation/scorers/rule/keywordCoverageScorer.d.ts +1 -19
  87. package/dist/evaluation/scorers/rule/lengthScorer.d.ts +1 -33
  88. package/dist/factories/providerFactory.d.ts +1 -16
  89. package/dist/factories/providerFactory.js +2 -0
  90. package/dist/image-gen/ImageGenService.d.ts +3 -0
  91. package/dist/image-gen/ImageGenService.js +3 -0
  92. package/dist/lib/action/actionInputs.d.ts +1 -1
  93. package/dist/lib/adapters/video/directorPipeline.js +6 -0
  94. package/dist/lib/adapters/video/vertexVideoHandler.js +6 -0
  95. package/dist/lib/agent/directTools.d.ts +3 -23
  96. package/dist/lib/auth/AuthProviderFactory.d.ts +1 -3
  97. package/dist/lib/auth/anthropicOAuth.d.ts +4 -7
  98. package/dist/lib/auth/anthropicOAuth.js +23 -0
  99. package/dist/lib/auth/errors.d.ts +1 -1
  100. package/dist/lib/auth/index.d.ts +11 -0
  101. package/dist/lib/auth/index.js +14 -0
  102. package/dist/lib/auth/middleware/AuthMiddleware.d.ts +5 -60
  103. package/dist/lib/auth/middleware/AuthMiddleware.js +3 -0
  104. package/dist/lib/auth/middleware/rateLimitByUser.d.ts +4 -93
  105. package/dist/lib/auth/middleware/rateLimitByUser.js +4 -0
  106. package/dist/lib/auth/providers/BaseAuthProvider.d.ts +1 -1
  107. package/dist/lib/auth/providers/CognitoProvider.js +3 -0
  108. package/dist/lib/auth/providers/KeycloakProvider.js +3 -0
  109. package/dist/lib/auth/providers/auth0.d.ts +1 -1
  110. package/dist/lib/auth/sessionManager.d.ts +2 -0
  111. package/dist/lib/auth/sessionManager.js +53 -11
  112. package/dist/lib/auth/tokenStore.d.ts +2 -0
  113. package/dist/lib/auth/tokenStore.js +45 -4
  114. package/dist/lib/autoresearch/tools.d.ts +1 -16
  115. package/dist/lib/client/aiSdkAdapter.d.ts +1 -1
  116. package/dist/lib/client/aiSdkAdapter.js +1 -0
  117. package/dist/lib/client/httpClient.d.ts +1 -0
  118. package/dist/lib/client/httpClient.js +13 -0
  119. package/dist/lib/client/sseClient.d.ts +1 -0
  120. package/dist/lib/client/sseClient.js +29 -0
  121. package/dist/lib/client/streamingClient.d.ts +2 -0
  122. package/dist/lib/client/streamingClient.js +19 -0
  123. package/dist/lib/client/wsClient.d.ts +6 -0
  124. package/dist/lib/client/wsClient.js +90 -10
  125. package/dist/lib/context/budgetChecker.js +3 -1
  126. package/dist/lib/context/contextCompactor.js +163 -143
  127. package/dist/lib/context/fileSummarizationService.d.ts +1 -9
  128. package/dist/lib/context/summarizationEngine.js +29 -16
  129. package/dist/lib/core/baseProvider.js +124 -153
  130. package/dist/lib/core/infrastructure/baseRegistry.d.ts +1 -7
  131. package/dist/lib/core/modules/GenerationHandler.d.ts +3 -2
  132. package/dist/lib/core/modules/GenerationHandler.js +9 -1
  133. package/dist/lib/core/modules/StreamHandler.js +9 -0
  134. package/dist/lib/core/modules/ToolsManager.js +18 -2
  135. package/dist/lib/evaluation/BatchEvaluator.d.ts +1 -97
  136. package/dist/lib/evaluation/EvaluationAggregator.d.ts +1 -118
  137. package/dist/lib/evaluation/EvaluatorFactory.d.ts +1 -13
  138. package/dist/lib/evaluation/EvaluatorRegistry.d.ts +1 -50
  139. package/dist/lib/evaluation/errors/EvaluationError.d.ts +2 -27
  140. package/dist/lib/evaluation/hooks/langfuseAdapter.d.ts +1 -39
  141. package/dist/lib/evaluation/hooks/observabilityHooks.d.ts +3 -55
  142. package/dist/lib/evaluation/hooks/observabilityHooks.js +3 -0
  143. package/dist/lib/evaluation/pipeline/strategies/batchStrategy.d.ts +7 -61
  144. package/dist/lib/evaluation/pipeline/strategies/batchStrategy.js +7 -7
  145. package/dist/lib/evaluation/ragasEvaluator.js +54 -37
  146. package/dist/lib/evaluation/reporting/metricsCollector.d.ts +1 -60
  147. package/dist/lib/evaluation/reporting/reportGenerator.d.ts +1 -17
  148. package/dist/lib/evaluation/scorers/rule/contentSimilarityScorer.d.ts +1 -29
  149. package/dist/lib/evaluation/scorers/rule/formatScorer.d.ts +1 -42
  150. package/dist/lib/evaluation/scorers/rule/keywordCoverageScorer.d.ts +1 -19
  151. package/dist/lib/evaluation/scorers/rule/lengthScorer.d.ts +1 -33
  152. package/dist/lib/factories/providerFactory.d.ts +1 -16
  153. package/dist/lib/factories/providerFactory.js +2 -0
  154. package/dist/lib/image-gen/ImageGenService.d.ts +3 -0
  155. package/dist/lib/image-gen/ImageGenService.js +3 -0
  156. package/dist/lib/mcp/batching/requestBatcher.js +99 -73
  157. package/dist/lib/mcp/httpRateLimiter.js +3 -1
  158. package/dist/lib/mcp/httpRetryHandler.js +3 -1
  159. package/dist/lib/mcp/mcpClientFactory.js +3 -1
  160. package/dist/lib/mcp/multiServerManager.d.ts +1 -14
  161. package/dist/lib/mcp/servers/aiProviders/aiAnalysisTools.js +5 -1
  162. package/dist/lib/mcp/servers/aiProviders/aiWorkflowTools.js +1 -0
  163. package/dist/lib/mcp/toolDiscoveryService.js +70 -57
  164. package/dist/lib/mcp/toolRegistry.js +11 -1
  165. package/dist/lib/memory/memoryRetrievalTools.js +182 -141
  166. package/dist/lib/neurolink.js +236 -40
  167. package/dist/lib/observability/exporterRegistry.d.ts +3 -21
  168. package/dist/lib/observability/exporters/sentryExporter.js +1 -0
  169. package/dist/lib/observability/metricsAggregator.d.ts +1 -31
  170. package/dist/lib/observability/tokenTracker.d.ts +7 -16
  171. package/dist/lib/observability/tokenTracker.js +6 -4
  172. package/dist/lib/observability/utils/spanSerializer.d.ts +5 -1
  173. package/dist/lib/observability/utils/spanSerializer.js +24 -4
  174. package/dist/lib/processors/base/BaseFileProcessor.js +66 -53
  175. package/dist/lib/processors/document/ExcelProcessor.d.ts +1 -1
  176. package/dist/lib/processors/errors/errorHelpers.d.ts +1 -31
  177. package/dist/lib/processors/errors/errorSerializer.d.ts +1 -45
  178. package/dist/lib/processors/registry/ProcessorRegistry.js +17 -6
  179. package/dist/lib/providers/amazonBedrock.js +189 -15
  180. package/dist/lib/providers/amazonSagemaker.js +25 -11
  181. package/dist/lib/providers/anthropic.js +13 -0
  182. package/dist/lib/providers/azureOpenai.js +2 -0
  183. package/dist/lib/providers/googleAiStudio.js +82 -0
  184. package/dist/lib/providers/googleVertex.js +52 -0
  185. package/dist/lib/providers/huggingFace.js +2 -0
  186. package/dist/lib/providers/litellm.js +2 -0
  187. package/dist/lib/providers/mistral.js +2 -0
  188. package/dist/lib/providers/ollama.js +84 -5
  189. package/dist/lib/providers/openAI.d.ts +2 -0
  190. package/dist/lib/providers/openAI.js +17 -6
  191. package/dist/lib/providers/openRouter.js +2 -0
  192. package/dist/lib/providers/openaiCompatible.js +2 -0
  193. package/dist/lib/providers/sagemaker/detection.d.ts +1 -33
  194. package/dist/lib/providers/sagemaker/diagnostics.d.ts +1 -25
  195. package/dist/lib/providers/sagemaker/language-model.d.ts +1 -1
  196. package/dist/lib/proxy/proxyConfig.js +4 -0
  197. package/dist/lib/proxy/proxyEnv.d.ts +1 -17
  198. package/dist/lib/proxy/proxyTracer.d.ts +1 -36
  199. package/dist/lib/proxy/proxyTracer.js +9 -0
  200. package/dist/lib/proxy/quietDetector.d.ts +1 -7
  201. package/dist/lib/proxy/rawStreamCapture.d.ts +1 -10
  202. package/dist/lib/proxy/requestLogger.d.ts +1 -21
  203. package/dist/lib/proxy/sseInterceptor.d.ts +1 -66
  204. package/dist/lib/proxy/sseInterceptor.js +6 -0
  205. package/dist/lib/proxy/updateChecker.d.ts +1 -6
  206. package/dist/lib/proxy/updateState.d.ts +1 -12
  207. package/dist/lib/rag/chunkers/BaseChunker.js +36 -22
  208. package/dist/lib/rag/chunking/jsonChunker.d.ts +1 -1
  209. package/dist/lib/rag/errors/RAGError.d.ts +1 -2
  210. package/dist/lib/rag/ragIntegration.js +45 -32
  211. package/dist/lib/rag/reranker/reranker.js +151 -122
  212. package/dist/lib/rag/retrieval/vectorQueryTool.js +79 -65
  213. package/dist/lib/sdk/toolRegistration.d.ts +10 -44
  214. package/dist/lib/sdk/toolRegistration.js +1 -1
  215. package/dist/lib/server/middleware/abortSignal.d.ts +1 -11
  216. package/dist/lib/server/middleware/auth.d.ts +1 -21
  217. package/dist/lib/server/middleware/auth.js +12 -0
  218. package/dist/lib/server/middleware/common.js +48 -32
  219. package/dist/lib/server/middleware/deprecation.d.ts +1 -20
  220. package/dist/lib/server/middleware/rateLimit.d.ts +1 -75
  221. package/dist/lib/server/middleware/validation.d.ts +3 -81
  222. package/dist/lib/server/middleware/validation.js +3 -0
  223. package/dist/lib/server/openapi/generator.d.ts +1 -47
  224. package/dist/lib/server/routes/agentRoutes.js +112 -57
  225. package/dist/lib/server/routes/claudeProxyRoutes.d.ts +1 -6
  226. package/dist/lib/server/routes/claudeProxyRoutes.js +127 -13
  227. package/dist/lib/server/routes/healthRoutes.js +58 -12
  228. package/dist/lib/server/routes/index.d.ts +1 -26
  229. package/dist/lib/server/routes/mcpRoutes.js +40 -7
  230. package/dist/lib/server/routes/memoryRoutes.js +22 -7
  231. package/dist/lib/server/routes/openApiRoutes.js +30 -6
  232. package/dist/lib/server/routes/toolRoutes.js +140 -68
  233. package/dist/lib/server/streaming/dataStream.d.ts +1 -35
  234. package/dist/lib/server/streaming/dataStream.js +15 -0
  235. package/dist/lib/services/server/ai/observability/instrumentation.js +114 -14
  236. package/dist/lib/session/globalSessionState.d.ts +1 -10
  237. package/dist/lib/tasks/tools/taskTools.d.ts +2 -2
  238. package/dist/lib/telemetry/traceContext.d.ts +9 -0
  239. package/dist/lib/telemetry/traceContext.js +19 -0
  240. package/dist/lib/telemetry/tracers.d.ts +2 -0
  241. package/dist/lib/telemetry/tracers.js +2 -0
  242. package/dist/lib/types/action.d.ts +2 -0
  243. package/dist/lib/types/artifact.d.ts +7 -0
  244. package/dist/lib/types/auth.d.ts +125 -18
  245. package/dist/lib/types/autoresearch.d.ts +12 -0
  246. package/dist/lib/types/cli.d.ts +415 -0
  247. package/dist/lib/types/client.d.ts +34 -0
  248. package/dist/lib/types/common.d.ts +12 -41
  249. package/dist/lib/types/context.d.ts +5 -0
  250. package/dist/lib/types/evaluation.d.ts +332 -1
  251. package/dist/lib/types/file.d.ts +4 -0
  252. package/dist/lib/types/mcp.d.ts +102 -2
  253. package/dist/lib/types/middleware.d.ts +116 -0
  254. package/dist/lib/types/multimodal.d.ts +65 -0
  255. package/dist/lib/types/observability.d.ts +81 -0
  256. package/dist/lib/types/processor.d.ts +47 -0
  257. package/dist/lib/types/providers.d.ts +120 -16
  258. package/dist/lib/types/proxy.d.ts +321 -1
  259. package/dist/lib/types/rag.d.ts +22 -0
  260. package/dist/lib/types/scorer.d.ts +141 -0
  261. package/dist/lib/types/server.d.ts +99 -0
  262. package/dist/lib/types/span.d.ts +2 -1
  263. package/dist/lib/types/span.js +1 -0
  264. package/dist/lib/types/tools.d.ts +44 -0
  265. package/dist/lib/types/tts.d.ts +6 -0
  266. package/dist/lib/types/utilities.d.ts +22 -0
  267. package/dist/lib/types/workflow.d.ts +18 -0
  268. package/dist/lib/utils/async/retry.d.ts +2 -8
  269. package/dist/lib/utils/async/retry.js +9 -9
  270. package/dist/lib/utils/imageCompressor.d.ts +1 -21
  271. package/dist/lib/utils/imageCompressor.js +5 -1
  272. package/dist/lib/utils/messageBuilder.d.ts +1 -1
  273. package/dist/lib/utils/redis.d.ts +1 -4
  274. package/dist/lib/utils/toolEndEmitter.d.ts +25 -0
  275. package/dist/lib/utils/toolEndEmitter.js +65 -0
  276. package/dist/lib/workflow/config.d.ts +7 -32
  277. package/dist/lib/workflow/core/ensembleExecutor.js +28 -0
  278. package/dist/lib/workflow/core/judgeScorer.js +23 -0
  279. package/dist/lib/workflow/core/responseConditioner.js +17 -0
  280. package/dist/lib/workflow/core/workflowRunner.d.ts +1 -19
  281. package/dist/lib/workflow/core/workflowRunner.js +202 -147
  282. package/dist/mcp/batching/requestBatcher.js +99 -73
  283. package/dist/mcp/httpRateLimiter.js +3 -1
  284. package/dist/mcp/httpRetryHandler.js +3 -1
  285. package/dist/mcp/mcpClientFactory.js +3 -1
  286. package/dist/mcp/multiServerManager.d.ts +1 -14
  287. package/dist/mcp/servers/aiProviders/aiAnalysisTools.js +5 -1
  288. package/dist/mcp/servers/aiProviders/aiWorkflowTools.js +1 -0
  289. package/dist/mcp/toolDiscoveryService.js +70 -57
  290. package/dist/mcp/toolRegistry.js +11 -1
  291. package/dist/memory/memoryRetrievalTools.js +182 -141
  292. package/dist/neurolink.js +236 -40
  293. package/dist/observability/exporterRegistry.d.ts +3 -21
  294. package/dist/observability/exporters/sentryExporter.js +1 -0
  295. package/dist/observability/metricsAggregator.d.ts +1 -31
  296. package/dist/observability/tokenTracker.d.ts +7 -16
  297. package/dist/observability/tokenTracker.js +6 -4
  298. package/dist/observability/utils/spanSerializer.d.ts +5 -1
  299. package/dist/observability/utils/spanSerializer.js +24 -4
  300. package/dist/processors/base/BaseFileProcessor.js +66 -53
  301. package/dist/processors/document/ExcelProcessor.d.ts +1 -1
  302. package/dist/processors/errors/errorHelpers.d.ts +1 -31
  303. package/dist/processors/errors/errorSerializer.d.ts +1 -45
  304. package/dist/processors/registry/ProcessorRegistry.js +17 -6
  305. package/dist/providers/amazonBedrock.js +189 -15
  306. package/dist/providers/amazonSagemaker.js +25 -11
  307. package/dist/providers/anthropic.js +13 -0
  308. package/dist/providers/azureOpenai.js +2 -0
  309. package/dist/providers/googleAiStudio.js +82 -0
  310. package/dist/providers/googleVertex.js +52 -0
  311. package/dist/providers/huggingFace.js +2 -0
  312. package/dist/providers/litellm.js +2 -0
  313. package/dist/providers/mistral.js +2 -0
  314. package/dist/providers/ollama.js +84 -5
  315. package/dist/providers/openAI.d.ts +2 -0
  316. package/dist/providers/openAI.js +17 -6
  317. package/dist/providers/openRouter.js +2 -0
  318. package/dist/providers/openaiCompatible.js +2 -0
  319. package/dist/providers/sagemaker/detection.d.ts +1 -33
  320. package/dist/providers/sagemaker/diagnostics.d.ts +1 -25
  321. package/dist/providers/sagemaker/language-model.d.ts +1 -1
  322. package/dist/proxy/proxyConfig.js +4 -0
  323. package/dist/proxy/proxyEnv.d.ts +1 -17
  324. package/dist/proxy/proxyTracer.d.ts +1 -36
  325. package/dist/proxy/proxyTracer.js +9 -0
  326. package/dist/proxy/quietDetector.d.ts +1 -7
  327. package/dist/proxy/rawStreamCapture.d.ts +1 -10
  328. package/dist/proxy/requestLogger.d.ts +1 -21
  329. package/dist/proxy/sseInterceptor.d.ts +1 -66
  330. package/dist/proxy/sseInterceptor.js +6 -0
  331. package/dist/proxy/updateChecker.d.ts +1 -6
  332. package/dist/proxy/updateState.d.ts +1 -12
  333. package/dist/rag/chunkers/BaseChunker.js +36 -22
  334. package/dist/rag/chunking/jsonChunker.d.ts +1 -1
  335. package/dist/rag/errors/RAGError.d.ts +1 -2
  336. package/dist/rag/ragIntegration.js +45 -32
  337. package/dist/rag/reranker/reranker.js +151 -122
  338. package/dist/rag/retrieval/vectorQueryTool.js +79 -65
  339. package/dist/sdk/toolRegistration.d.ts +10 -44
  340. package/dist/sdk/toolRegistration.js +1 -1
  341. package/dist/server/middleware/abortSignal.d.ts +1 -11
  342. package/dist/server/middleware/auth.d.ts +1 -21
  343. package/dist/server/middleware/auth.js +12 -0
  344. package/dist/server/middleware/common.js +48 -32
  345. package/dist/server/middleware/deprecation.d.ts +1 -20
  346. package/dist/server/middleware/rateLimit.d.ts +1 -75
  347. package/dist/server/middleware/validation.d.ts +3 -81
  348. package/dist/server/middleware/validation.js +3 -0
  349. package/dist/server/openapi/generator.d.ts +1 -47
  350. package/dist/server/routes/agentRoutes.js +112 -57
  351. package/dist/server/routes/claudeProxyRoutes.d.ts +1 -6
  352. package/dist/server/routes/claudeProxyRoutes.js +127 -13
  353. package/dist/server/routes/healthRoutes.js +58 -12
  354. package/dist/server/routes/index.d.ts +1 -26
  355. package/dist/server/routes/mcpRoutes.js +40 -7
  356. package/dist/server/routes/memoryRoutes.js +22 -7
  357. package/dist/server/routes/openApiRoutes.js +30 -6
  358. package/dist/server/routes/toolRoutes.js +140 -68
  359. package/dist/server/streaming/dataStream.d.ts +1 -35
  360. package/dist/server/streaming/dataStream.js +15 -0
  361. package/dist/services/server/ai/observability/instrumentation.js +114 -14
  362. package/dist/session/globalSessionState.d.ts +1 -10
  363. package/dist/tasks/tools/taskTools.d.ts +2 -2
  364. package/dist/telemetry/traceContext.d.ts +9 -0
  365. package/dist/telemetry/traceContext.js +18 -0
  366. package/dist/telemetry/tracers.d.ts +2 -0
  367. package/dist/telemetry/tracers.js +2 -0
  368. package/dist/types/action.d.ts +2 -0
  369. package/dist/types/artifact.d.ts +7 -0
  370. package/dist/types/auth.d.ts +125 -18
  371. package/dist/types/autoresearch.d.ts +12 -0
  372. package/dist/types/cli.d.ts +415 -0
  373. package/dist/types/client.d.ts +34 -0
  374. package/dist/types/common.d.ts +12 -41
  375. package/dist/types/context.d.ts +5 -0
  376. package/dist/types/evaluation.d.ts +332 -1
  377. package/dist/types/file.d.ts +4 -0
  378. package/dist/types/mcp.d.ts +102 -2
  379. package/dist/types/middleware.d.ts +116 -0
  380. package/dist/types/multimodal.d.ts +65 -0
  381. package/dist/types/observability.d.ts +81 -0
  382. package/dist/types/processor.d.ts +47 -0
  383. package/dist/types/providers.d.ts +120 -16
  384. package/dist/types/proxy.d.ts +321 -1
  385. package/dist/types/rag.d.ts +22 -0
  386. package/dist/types/scorer.d.ts +141 -0
  387. package/dist/types/server.d.ts +99 -0
  388. package/dist/types/span.d.ts +2 -1
  389. package/dist/types/span.js +1 -0
  390. package/dist/types/tools.d.ts +44 -0
  391. package/dist/types/tts.d.ts +6 -0
  392. package/dist/types/utilities.d.ts +22 -0
  393. package/dist/types/workflow.d.ts +18 -0
  394. package/dist/utils/async/retry.d.ts +2 -8
  395. package/dist/utils/async/retry.js +9 -9
  396. package/dist/utils/imageCompressor.d.ts +1 -21
  397. package/dist/utils/imageCompressor.js +5 -1
  398. package/dist/utils/messageBuilder.d.ts +1 -1
  399. package/dist/utils/redis.d.ts +1 -4
  400. package/dist/utils/toolEndEmitter.d.ts +25 -0
  401. package/dist/utils/toolEndEmitter.js +64 -0
  402. package/dist/workflow/config.d.ts +4 -29
  403. package/dist/workflow/core/ensembleExecutor.js +28 -0
  404. package/dist/workflow/core/judgeScorer.js +23 -0
  405. package/dist/workflow/core/responseConditioner.js +17 -0
  406. package/dist/workflow/core/workflowRunner.d.ts +1 -19
  407. package/dist/workflow/core/workflowRunner.js +202 -147
  408. package/package.json +2 -1
@@ -7,6 +7,8 @@
7
7
  import { randomUUID } from "crypto";
8
8
  import { z } from "zod";
9
9
  import { ProviderFactory } from "../../factories/providerFactory.js";
10
+ import { withSpan } from "../../telemetry/withSpan.js";
11
+ import { tracers } from "../../telemetry/tracers.js";
10
12
  import { logger } from "../../utils/logger.js";
11
13
  import { rerank } from "../reranker/reranker.js";
12
14
  /**
@@ -46,75 +48,87 @@ export function createVectorQueryTool(config, vectorStore) {
46
48
  * @returns Query results with relevant context
47
49
  */
48
50
  execute: async (params, context) => {
49
- const startTime = Date.now();
50
- try {
51
- // Resolve vector store if it's a function
52
- const store = typeof vectorStore === "function"
53
- ? vectorStore(context || {})
54
- : vectorStore;
55
- // Generate query embedding
56
- const embeddingProvider = await ProviderFactory.createProvider(embeddingModel.provider, embeddingModel.modelName);
57
- // Check if provider has embed method
58
- if (typeof embeddingProvider.embed !==
59
- "function") {
60
- throw new Error(`Provider ${embeddingModel.provider} does not support embeddings`);
61
- }
62
- const queryEmbedding = await embeddingProvider.embed(params.query);
63
- // Query the vector store
64
- let results = await store.query({
65
- indexName,
66
- queryVector: queryEmbedding,
67
- topK: params.topK || topK,
68
- filter: params.filter,
69
- includeVectors,
70
- ...providerOptions,
71
- });
72
- let reranked = false;
73
- // Apply reranking if configured
74
- if (rerankerConfig && results.length > 0) {
75
- const rerankerModel = await ProviderFactory.createProvider(typeof rerankerConfig.model === "object"
76
- ? rerankerConfig.model.provider
77
- : rerankerConfig.model, typeof rerankerConfig.model === "object"
78
- ? rerankerConfig.model.modelName
79
- : rerankerConfig.model);
80
- const rerankedResults = await rerank(results, params.query, rerankerModel, {
81
- weights: rerankerConfig.weights,
82
- topK: rerankerConfig.topK,
83
- queryEmbedding,
51
+ return withSpan({
52
+ name: "neurolink.rag.vectorQuery",
53
+ tracer: tracers.rag,
54
+ attributes: {
55
+ "rag.vector.index": indexName,
56
+ "rag.vector.top_k": params.topK ?? topK,
57
+ "rag.vector.query_length": params.query.length,
58
+ },
59
+ }, async (span) => {
60
+ const startTime = Date.now();
61
+ try {
62
+ // Resolve vector store if it's a function
63
+ const store = typeof vectorStore === "function"
64
+ ? vectorStore(context || {})
65
+ : vectorStore;
66
+ // Generate query embedding
67
+ const embeddingProvider = await ProviderFactory.createProvider(embeddingModel.provider, embeddingModel.modelName);
68
+ // Check if provider has embed method
69
+ if (typeof embeddingProvider
70
+ .embed !== "function") {
71
+ throw new Error(`Provider ${embeddingModel.provider} does not support embeddings`);
72
+ }
73
+ const queryEmbedding = await embeddingProvider.embed(params.query);
74
+ // Query the vector store
75
+ let results = await store.query({
76
+ indexName,
77
+ queryVector: queryEmbedding,
78
+ topK: params.topK || topK,
79
+ filter: params.filter,
80
+ includeVectors,
81
+ ...providerOptions,
84
82
  });
85
- results = rerankedResults.map((r) => r.result);
86
- reranked = true;
87
- }
88
- // Format results
89
- const relevantContext = results
90
- .map((r, i) => `[${i + 1}] ${r.metadata?.text || r.text || ""}`)
91
- .join("\n\n");
92
- const queryTime = Date.now() - startTime;
93
- logger.info("[VectorQueryTool] Query completed", {
94
- query: params.query.slice(0, 50),
95
- resultsCount: results.length,
96
- queryTime,
97
- reranked,
98
- filtered: !!params.filter,
99
- });
100
- return {
101
- relevantContext,
102
- sources: includeSources ? results : [],
103
- totalResults: results.length,
104
- metadata: {
83
+ let reranked = false;
84
+ // Apply reranking if configured
85
+ if (rerankerConfig && results.length > 0) {
86
+ const rerankerModel = await ProviderFactory.createProvider(typeof rerankerConfig.model === "object"
87
+ ? rerankerConfig.model.provider
88
+ : rerankerConfig.model, typeof rerankerConfig.model === "object"
89
+ ? rerankerConfig.model.modelName
90
+ : rerankerConfig.model);
91
+ const rerankedResults = await rerank(results, params.query, rerankerModel, {
92
+ weights: rerankerConfig.weights,
93
+ topK: rerankerConfig.topK,
94
+ queryEmbedding,
95
+ });
96
+ results = rerankedResults.map((r) => r.result);
97
+ reranked = true;
98
+ }
99
+ // Format results
100
+ const relevantContext = results
101
+ .map((r, i) => `[${i + 1}] ${r.metadata?.text || r.text || ""}`)
102
+ .join("\n\n");
103
+ const queryTime = Date.now() - startTime;
104
+ logger.info("[VectorQueryTool] Query completed", {
105
+ query: params.query.slice(0, 50),
106
+ resultsCount: results.length,
105
107
  queryTime,
106
108
  reranked,
107
109
  filtered: !!params.filter,
108
- },
109
- };
110
- }
111
- catch (error) {
112
- logger.error("[VectorQueryTool] Query failed", {
113
- query: params.query.slice(0, 50),
114
- error: error instanceof Error ? error.message : String(error),
115
- });
116
- throw error;
117
- }
110
+ });
111
+ span.setAttribute("rag.vector.result_count", results.length);
112
+ span.setAttribute("rag.vector.reranked", reranked);
113
+ return {
114
+ relevantContext,
115
+ sources: includeSources ? results : [],
116
+ totalResults: results.length,
117
+ metadata: {
118
+ queryTime,
119
+ reranked,
120
+ filtered: !!params.filter,
121
+ },
122
+ };
123
+ }
124
+ catch (error) {
125
+ logger.error("[VectorQueryTool] Query failed", {
126
+ query: params.query.slice(0, 50),
127
+ error: error instanceof Error ? error.message : String(error),
128
+ });
129
+ throw error;
130
+ }
131
+ }); // end withSpan
118
132
  },
119
133
  };
120
134
  }
@@ -3,7 +3,7 @@
3
3
  * Simple interface for developers to register custom tools
4
4
  */
5
5
  import { z } from "zod";
6
- import type { MCPServerInfo, MCPServerCategory, JsonValue, ToolArgs, SimpleTool as CoreSimpleTool, ZodUnknownSchema, SDKToolContext } from "../types/index.js";
6
+ import type { JsonValue, MCPServerCategory, MCPServerInfo, SDKToolContext, SdkSimpleTool, ZodUnknownSchema } from "../types/index.js";
7
7
  /**
8
8
  * Enhanced validation configuration
9
9
  */
@@ -16,44 +16,10 @@ declare const VALIDATION_CONFIG: {
16
16
  readonly RECOMMENDED_PATTERNS: readonly ["get_data", "fetch_info", "calculate_value", "send_message", "create_item", "update_record", "delete_file", "validate_input"];
17
17
  readonly COMPILED_PATTERN_REGEXES: RegExp[];
18
18
  };
19
- /**
20
- * Context provided to tools during execution
21
- * Type alias for backward compatibility
22
- */
23
- type ToolContext = SDKToolContext;
24
- /**
25
- * Simple tool interface for SDK users
26
- * Extends the core SimpleTool with specific types
27
- */
28
- type SimpleTool<TArgs = ToolArgs, TResult = JsonValue> = Omit<CoreSimpleTool<TArgs, TResult>, "execute"> & {
29
- /**
30
- * Tool description that helps AI understand when to use it
31
- */
32
- description: string;
33
- /**
34
- * Parameters schema using Zod (optional)
35
- */
36
- parameters?: ZodUnknownSchema;
37
- /**
38
- * Tool execution function
39
- */
40
- execute: (params: TArgs, context?: ToolContext) => Promise<TResult>;
41
- /**
42
- * Optional metadata
43
- */
44
- metadata?: {
45
- category?: string;
46
- version?: string;
47
- author?: string;
48
- tags?: string[];
49
- documentation?: string;
50
- [key: string]: JsonValue | undefined;
51
- };
52
- };
53
19
  /**
54
20
  * Creates a MCPServerInfo from a set of tools
55
21
  */
56
- export declare function createMCPServerFromTools(serverId: string, tools: Record<string, SimpleTool>, metadata?: {
22
+ export declare function createMCPServerFromTools(serverId: string, tools: Record<string, SdkSimpleTool>, metadata?: {
57
23
  title?: string;
58
24
  description?: string;
59
25
  category?: MCPServerCategory;
@@ -64,29 +30,29 @@ export declare function createMCPServerFromTools(serverId: string, tools: Record
64
30
  /**
65
31
  * Helper to create a tool with type safety
66
32
  */
67
- export declare function createTool(config: SimpleTool): SimpleTool;
33
+ export declare function createTool(config: SdkSimpleTool): SdkSimpleTool;
68
34
  /**
69
35
  * Helper to create a validated tool with suggested improvements
70
36
  */
71
- export declare function createValidatedTool(name: string, config: SimpleTool, options?: {
37
+ export declare function createValidatedTool(name: string, config: SdkSimpleTool, options?: {
72
38
  strict?: boolean;
73
39
  suggestions?: boolean;
74
- }): SimpleTool;
40
+ }): SdkSimpleTool;
75
41
  /**
76
42
  * Helper to create a tool with typed parameters
77
43
  */
78
- export declare function createTypedTool<TParams extends ZodUnknownSchema>(config: Omit<SimpleTool, "execute"> & {
44
+ export declare function createTypedTool<TParams extends ZodUnknownSchema>(config: Omit<SdkSimpleTool, "execute"> & {
79
45
  parameters: TParams;
80
- execute: (params: z.infer<TParams>, context?: ToolContext) => Promise<JsonValue> | JsonValue;
81
- }): SimpleTool;
46
+ execute: (params: z.infer<TParams>, context?: SDKToolContext) => Promise<JsonValue> | JsonValue;
47
+ }): SdkSimpleTool;
82
48
  /**
83
49
  * Validate tool configuration with detailed error messages
84
50
  */
85
- export declare function validateTool(name: string, tool: SimpleTool): void;
51
+ export declare function validateTool(name: string, tool: SdkSimpleTool): void;
86
52
  /**
87
53
  * Utility to validate multiple tools at once
88
54
  */
89
- export declare function validateTools(tools: Record<string, SimpleTool>): {
55
+ export declare function validateTools(tools: Record<string, SdkSimpleTool>): {
90
56
  valid: string[];
91
57
  invalid: Array<{
92
58
  name: string;
@@ -169,7 +169,7 @@ function provideToolSuggestions(name, tool) {
169
169
  * Helper to create a tool with typed parameters
170
170
  */
171
171
  export function createTypedTool(config) {
172
- // Wrap the typed execute to match SimpleTool's signature.
172
+ // Wrap the typed execute to match SdkSimpleTool's signature.
173
173
  // The Zod schema validates params at runtime, so the cast within the wrapper is safe.
174
174
  const wrappedExecute = async (params, context) => {
175
175
  const result = await config.execute(params, context);
@@ -2,16 +2,7 @@
2
2
  * Abort Signal Middleware
3
3
  * Provides client disconnection handling for long-running requests
4
4
  */
5
- import type { MiddlewareDefinition, ServerContext } from "../../types/index.js";
6
- /**
7
- * Abort signal middleware options
8
- */
9
- type AbortSignalMiddlewareOptions = {
10
- /** Callback when abort is triggered */
11
- onAbort?: (ctx: ServerContext) => void;
12
- /** Request timeout in milliseconds */
13
- timeout?: number;
14
- };
5
+ import type { AbortSignalMiddlewareOptions, MiddlewareDefinition } from "../../types/index.js";
15
6
  /**
16
7
  * Create abort signal middleware for handling client disconnections.
17
8
  *
@@ -59,4 +50,3 @@ export declare function createExpressAbortMiddleware(options?: AbortSignalMiddle
59
50
  writableFinished?: boolean;
60
51
  locals: Record<string, unknown>;
61
52
  }, next: () => void) => void;
62
- export {};
@@ -2,8 +2,7 @@
2
2
  * Authentication Middleware
3
3
  * Provides flexible authentication support for server adapters
4
4
  */
5
- import type { MiddlewareDefinition, AuthenticatedUser, ServerServerAuthConfig } from "../../types/index.js";
6
- import type { AuthResult } from "../../types/index.js";
5
+ import type { ApiKeyAuthOptions, AuthResult, AuthenticatedUser, BearerAuthOptions, MiddlewareDefinition, ServerServerAuthConfig, TokenValidator } from "../../types/index.js";
7
6
  /**
8
7
  * Check if request is from development playground.
9
8
  * Detects playground requests via special headers for development mode.
@@ -111,18 +110,6 @@ export declare class ApiKeyStore {
111
110
  /**
112
111
  * Options for bearer auth middleware
113
112
  */
114
- type BearerAuthOptions = {
115
- /** Whether authentication is required (default: true) */
116
- required?: boolean;
117
- /** Header name (default: "authorization") */
118
- headerName?: string;
119
- /** Paths to skip authentication */
120
- skipPaths?: string[];
121
- };
122
- /**
123
- * Token validation function type
124
- */
125
- type TokenValidator = (token: string) => Promise<AuthenticatedUser | null> | AuthenticatedUser | null;
126
113
  /**
127
114
  * Create bearer token authentication middleware
128
115
  *
@@ -141,12 +128,6 @@ export declare function createBearerAuthMiddleware(validate: TokenValidator, opt
141
128
  /**
142
129
  * Options for API key auth middleware
143
130
  */
144
- type ApiKeyAuthOptions = {
145
- /** Header name (default: "x-api-key") */
146
- headerName?: string;
147
- /** Paths to skip authentication */
148
- skipPaths?: string[];
149
- };
150
131
  /**
151
132
  * Create API key authentication middleware
152
133
  *
@@ -183,4 +164,3 @@ export declare function createRoleAuthMiddleware(requiredRoles: string[], option
183
164
  export declare function createPermissionAuthMiddleware(requiredPermissions: string[], options?: {
184
165
  requireAll?: boolean;
185
166
  }): MiddlewareDefinition;
186
- export {};
@@ -246,6 +246,12 @@ export class ApiKeyStore {
246
246
  return this.keys.size;
247
247
  }
248
248
  }
249
+ // ============================================
250
+ // Bearer Token Authentication
251
+ // ============================================
252
+ /**
253
+ * Options for bearer auth middleware
254
+ */
249
255
  /**
250
256
  * Create bearer token authentication middleware
251
257
  *
@@ -292,6 +298,12 @@ export function createBearerAuthMiddleware(validate, options = {}) {
292
298
  },
293
299
  };
294
300
  }
301
+ // ============================================
302
+ // API Key Authentication
303
+ // ============================================
304
+ /**
305
+ * Options for API key auth middleware
306
+ */
295
307
  /**
296
308
  * Create API key authentication middleware
297
309
  *
@@ -3,6 +3,8 @@
3
3
  * Utility middleware for common server operations
4
4
  */
5
5
  import { getMetricsAggregator, SpanSerializer, SpanStatus, SpanType, } from "../../observability/index.js";
6
+ import { SpanStatusCode } from "@opentelemetry/api";
7
+ import { tracers } from "../../telemetry/tracers.js";
6
8
  import { logger } from "../../utils/logger.js";
7
9
  /**
8
10
  * Create request timing middleware
@@ -18,38 +20,52 @@ export function createTimingMiddleware() {
18
20
  name: "timing",
19
21
  order: 0, // Run first
20
22
  handler: async (ctx, next) => {
21
- const startTime = Date.now();
22
- const startHrTime = process.hrtime.bigint();
23
- // Store start time in metadata
24
- ctx.metadata.requestStartTime = startTime;
25
- const span = SpanSerializer.createSpan(SpanType.SERVER_REQUEST, "server.middleware.timing", {
26
- "server.operation": "middleware",
27
- "server.middleware": "timing",
28
- });
29
- try {
30
- const result = await next();
31
- // Calculate duration
32
- const endHrTime = process.hrtime.bigint();
33
- const durationNs = Number(endHrTime - startHrTime);
34
- const durationMs = durationNs / 1_000_000;
35
- // Add timing headers to responseHeaders (adapters read from here)
36
- ctx.responseHeaders = ctx.responseHeaders || {};
37
- ctx.responseHeaders["X-Response-Time"] = `${durationMs.toFixed(2)}ms`;
38
- ctx.responseHeaders["Server-Timing"] =
39
- `total;dur=${durationMs.toFixed(2)}`;
40
- span.durationMs = Date.now() - startTime;
41
- const endedSpan = SpanSerializer.endSpan(span, SpanStatus.OK);
42
- getMetricsAggregator().recordSpan(endedSpan);
43
- return result;
44
- }
45
- catch (error) {
46
- span.durationMs = Date.now() - startTime;
47
- const endedSpan = SpanSerializer.endSpan(span, SpanStatus.ERROR);
48
- endedSpan.statusMessage =
49
- error instanceof Error ? error.message : String(error);
50
- getMetricsAggregator().recordSpan(endedSpan);
51
- throw error;
52
- }
23
+ return tracers.middleware.startActiveSpan("neurolink.middleware.timing", async (otelSpan) => {
24
+ try {
25
+ const startTime = Date.now();
26
+ const startHrTime = process.hrtime.bigint();
27
+ // Store start time in metadata
28
+ ctx.metadata.requestStartTime = startTime;
29
+ const span = SpanSerializer.createSpan(SpanType.SERVER_REQUEST, "server.middleware.timing", {
30
+ "server.operation": "middleware",
31
+ "server.middleware": "timing",
32
+ });
33
+ try {
34
+ const result = await next();
35
+ // Calculate duration
36
+ const endHrTime = process.hrtime.bigint();
37
+ const durationNs = Number(endHrTime - startHrTime);
38
+ const durationMs = durationNs / 1_000_000;
39
+ // Add timing headers to responseHeaders (adapters read from here)
40
+ ctx.responseHeaders = ctx.responseHeaders || {};
41
+ ctx.responseHeaders["X-Response-Time"] =
42
+ `${durationMs.toFixed(2)}ms`;
43
+ ctx.responseHeaders["Server-Timing"] =
44
+ `total;dur=${durationMs.toFixed(2)}`;
45
+ span.durationMs = Date.now() - startTime;
46
+ const endedSpan = SpanSerializer.endSpan(span, SpanStatus.OK);
47
+ getMetricsAggregator().recordSpan(endedSpan);
48
+ return result;
49
+ }
50
+ catch (error) {
51
+ // Propagate error to OTel span so traces show ERROR status
52
+ otelSpan.recordException(error instanceof Error ? error : new Error(String(error)));
53
+ otelSpan.setStatus({
54
+ code: SpanStatusCode.ERROR,
55
+ message: error instanceof Error ? error.message : String(error),
56
+ });
57
+ span.durationMs = Date.now() - startTime;
58
+ const endedSpan = SpanSerializer.endSpan(span, SpanStatus.ERROR);
59
+ endedSpan.statusMessage =
60
+ error instanceof Error ? error.message : String(error);
61
+ getMetricsAggregator().recordSpan(endedSpan);
62
+ throw error;
63
+ }
64
+ }
65
+ finally {
66
+ otelSpan.end();
67
+ }
68
+ }); // end startActiveSpan
53
69
  },
54
70
  };
55
71
  }
@@ -4,25 +4,7 @@
4
4
  *
5
5
  * @see https://datatracker.ietf.org/doc/html/rfc8594 - The 'Deprecation' HTTP Header Field
6
6
  */
7
- import type { MiddlewareDefinition, RouteDefinition } from "../../types/index.js";
8
- /**
9
- * Deprecation middleware configuration
10
- */
11
- type DeprecationConfig = {
12
- /**
13
- * Array of route definitions to check for deprecation
14
- * Routes with `deprecated.enabled: true` will have deprecation headers added
15
- */
16
- routes: RouteDefinition[];
17
- /**
18
- * Custom header name for deprecation notice (default: "X-Deprecation-Notice")
19
- */
20
- noticeHeader?: string;
21
- /**
22
- * Whether to include Link header for alternative routes (default: true)
23
- */
24
- includeLink?: boolean;
25
- };
7
+ import type { DeprecationConfig, MiddlewareDefinition } from "../../types/index.js";
26
8
  /**
27
9
  * Create deprecation middleware
28
10
  *
@@ -56,4 +38,3 @@ type DeprecationConfig = {
56
38
  * ```
57
39
  */
58
40
  export declare function createDeprecationMiddleware(config: DeprecationConfig): MiddlewareDefinition;
59
- export {};
@@ -2,64 +2,7 @@
2
2
  * Rate Limiting Middleware
3
3
  * Provides configurable rate limiting for server adapters
4
4
  */
5
- import type { MiddlewareDefinition, ServerContext } from "../../types/index.js";
6
- /**
7
- * Rate limit middleware configuration
8
- */
9
- type RateLimitMiddlewareConfig = {
10
- /** Maximum requests per window */
11
- maxRequests: number;
12
- /** Time window in milliseconds */
13
- windowMs: number;
14
- /** Custom error message */
15
- message?: string;
16
- /** Skip rate limiting for certain paths */
17
- skipPaths?: string[];
18
- /**
19
- * Custom key generator for identifying clients
20
- * Default: IP address
21
- */
22
- keyGenerator?: (ctx: ServerContext) => string;
23
- /**
24
- * Custom response handler for rate limit exceeded
25
- */
26
- onRateLimitExceeded?: (ctx: ServerContext, retryAfter: number) => unknown;
27
- /**
28
- * Custom rate limit store
29
- * Default: in-memory store
30
- */
31
- store?: RateLimitStore;
32
- };
33
- /**
34
- * Rate limit entry
35
- */
36
- type RateLimitEntry = {
37
- count: number;
38
- resetAt: number;
39
- };
40
- /**
41
- * Rate limit store interface
42
- * Implement this for custom storage (Redis, etc.)
43
- */
44
- type RateLimitStore = {
45
- /**
46
- * Get the current entry for a key
47
- */
48
- get(key: string): Promise<RateLimitEntry | undefined>;
49
- /**
50
- * Set an entry for a key
51
- */
52
- set(key: string, entry: RateLimitEntry): Promise<void>;
53
- /**
54
- * Increment the counter for a key
55
- * Returns the current count and reset time
56
- */
57
- increment(key: string, windowMs: number): Promise<RateLimitEntry>;
58
- /**
59
- * Reset the counter for a key
60
- */
61
- reset(key: string): Promise<void>;
62
- };
5
+ import type { FixedWindowRateLimitConfig, MiddlewareDefinition, RateLimitEntry, RateLimitMiddlewareConfig, RateLimitStore } from "../../types/index.js";
63
6
  /**
64
7
  * In-memory rate limit store
65
8
  */
@@ -113,23 +56,6 @@ export declare function createSlidingWindowRateLimitMiddleware(config: RateLimit
113
56
  * Alias for InMemoryRateLimitStore for compatibility
114
57
  */
115
58
  export { InMemoryRateLimitStore as MemoryRateLimitStore };
116
- /**
117
- * Fixed window rate limit configuration (for standalone signature)
118
- */
119
- type FixedWindowRateLimitConfig = {
120
- /** Maximum requests per window */
121
- maxRequests: number;
122
- /** Time window in milliseconds */
123
- windowMs: number;
124
- /** Custom error message */
125
- message?: string;
126
- /** Skip rate limiting for certain paths */
127
- skipPaths?: string[];
128
- /** Custom key generator */
129
- keyGenerator?: (ctx: ServerContext) => string;
130
- /** Custom rate limit exceeded handler */
131
- onRateLimitExceeded?: (ctx: ServerContext, retryAfter: number) => unknown;
132
- };
133
59
  /**
134
60
  * Create fixed window rate limit middleware
135
61
  *