@juspay/neurolink 9.54.6 → 9.54.8

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 +8 -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 +358 -358
  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 +96 -26
  184. package/dist/lib/providers/googleVertex.js +66 -27
  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 +96 -26
  310. package/dist/providers/googleVertex.js +66 -27
  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 -8
@@ -11,8 +11,11 @@
11
11
  *
12
12
  * @module workflow/core/workflowRunner
13
13
  */
14
+ import { SpanStatusCode } from "@opentelemetry/api";
14
15
  import { logger } from "../../utils/logger.js";
15
16
  import { SpanSerializer, SpanType, SpanStatus, getMetricsAggregator, } from "../../observability/index.js";
17
+ import { withSpan } from "../../telemetry/withSpan.js";
18
+ import { tracers } from "../../telemetry/tracers.js";
16
19
  import { getModelGroups, PLACEHOLDER_MODEL, PLACEHOLDER_PROVIDER, usesModelGroups, } from "../config.js";
17
20
  import { validateWorkflow } from "../utils/workflowValidation.js";
18
21
  import { executeEnsemble, executeModelGroups } from "./ensembleExecutor.js";
@@ -45,156 +48,172 @@ import { conditionResponse } from "./responseConditioner.js";
45
48
  * ```
46
49
  */
47
50
  export async function runWorkflow(config, options) {
48
- const startTime = Date.now();
49
- const span = SpanSerializer.createSpan(SpanType.WORKFLOW, "workflow.run", {
50
- "workflow.operation": "run",
51
- "workflow.name": config.name,
52
- "workflow.type": config.type,
53
- "workflow.id": config.id,
54
- });
55
- // Validate configuration
56
- const validation = validateWorkflow(config);
57
- if (!validation.valid) {
58
- span.durationMs = Date.now() - startTime;
59
- const endedSpan = SpanSerializer.endSpan(span, SpanStatus.ERROR, `Invalid workflow configuration: ${validation.errors.map((err) => err.message).join(", ")}`);
60
- getMetricsAggregator().recordSpan(endedSpan);
61
- throw new Error(`Invalid workflow configuration: ${validation.errors.map((err) => err.message).join(", ")}`);
62
- }
63
- if (options.verbose) {
64
- logger.debug(`[WorkflowRunner] Starting workflow: ${config.name}`);
65
- logger.debug(`[WorkflowRunner] Type: ${config.type}`);
66
- logger.debug(`[WorkflowRunner] Uses layer-based execution: ${usesModelGroups(config)}`);
67
- }
68
- try {
69
- // Step 1: Execute models (layer-based or flat)
70
- const ensembleResult = await executeModels(config, options);
71
- if (options.verbose) {
72
- logger.debug(`[WorkflowRunner] Received ${ensembleResult.responses.length} model responses`);
73
- logger.debug(`[WorkflowRunner] Successful: ${ensembleResult.successCount}`);
74
- }
75
- // Step 2: Score responses with judge(s)
76
- const scoreResult = await scoreResponses(config, ensembleResult.responses, options);
77
- if (options.verbose) {
78
- logger.debug(`[WorkflowRunner] Scoring complete`);
79
- logger.debug(`[WorkflowRunner] Scores:`, scoreResult.scores);
51
+ return withSpan({
52
+ name: "neurolink.workflow.run",
53
+ tracer: tracers.sdk,
54
+ attributes: {
55
+ "workflow.name": config.name,
56
+ "workflow.type": config.type,
57
+ "workflow.id": config.id ?? "unknown",
58
+ },
59
+ }, async (otelSpan) => {
60
+ const startTime = Date.now();
61
+ const span = SpanSerializer.createSpan(SpanType.WORKFLOW, "workflow.run", {
62
+ "workflow.operation": "run",
63
+ "workflow.name": config.name,
64
+ "workflow.type": config.type,
65
+ "workflow.id": config.id,
66
+ });
67
+ // Validate configuration
68
+ const validation = validateWorkflow(config);
69
+ if (!validation.valid) {
70
+ span.durationMs = Date.now() - startTime;
71
+ const endedSpan = SpanSerializer.endSpan(span, SpanStatus.ERROR, `Invalid workflow configuration: ${validation.errors.map((err) => err.message).join(", ")}`);
72
+ getMetricsAggregator().recordSpan(endedSpan);
73
+ throw new Error(`Invalid workflow configuration: ${validation.errors.map((err) => err.message).join(", ")}`);
80
74
  }
81
- // Step 3: Select best response
82
- const bestResponse = selectBestResponse(ensembleResult.responses, scoreResult.scores);
83
75
  if (options.verbose) {
84
- logger.debug(`[WorkflowRunner] Best response: ${bestResponse.model}`);
85
- const bestScore = extractScore(scoreResult.scores, bestResponse, ensembleResult.responses);
86
- logger.debug(`[WorkflowRunner] Best score: ${bestScore}`);
87
- }
88
- // CRITICAL: Store original content BEFORE any processing
89
- const originalContent = bestResponse.content;
90
- // Step 4: Get processed content
91
- // Priority: Judge-synthesized > Separate conditioning > Original
92
- let processedContent;
93
- let conditioningTime = 0;
94
- const judgeScores = isJudgeScores(scoreResult.scores)
95
- ? scoreResult.scores
96
- : convertToJudgeScores(scoreResult.scores);
97
- if (judgeScores.synthesizedResponse) {
98
- // Judge already synthesized improved response
99
- processedContent = judgeScores.synthesizedResponse;
100
- logger.debug(`[WorkflowRunner] Using judge-synthesized response`);
76
+ logger.debug(`[WorkflowRunner] Starting workflow: ${config.name}`);
77
+ logger.debug(`[WorkflowRunner] Type: ${config.type}`);
78
+ logger.debug(`[WorkflowRunner] Uses layer-based execution: ${usesModelGroups(config)}`);
101
79
  }
102
- else if (config.conditioning) {
103
- // Fall back to separate conditioning if configured
104
- const conditionedContent = await conditionFinalResponse(bestResponse, scoreResult.scores, config, options, ensembleResult.responses);
105
- processedContent = conditionedContent.content;
106
- conditioningTime = conditionedContent.conditioningTime;
107
- logger.debug(`[WorkflowRunner] Using separate conditioning`);
108
- }
109
- else {
110
- // No processing, use original
111
- processedContent = originalContent;
112
- logger.debug(`[WorkflowRunner] No conditioning applied`);
113
- }
114
- // Step 5: Calculate execution metrics
115
- const executionTime = Date.now() - startTime;
116
- const ensembleTime = ensembleResult.totalTime;
117
- const judgeTime = scoreResult.judgeTime;
118
- // Step 6: Assemble complete result
119
- const result = {
120
- // Primary output (processed version)
121
- content: processedContent,
122
- // IMPORTANT: Store original unmodified response separately
123
- originalContent: originalContent,
124
- // Evaluation metrics (0-100 scale)
125
- score: extractScore(scoreResult.scores, bestResponse, ensembleResult.responses),
126
- reasoning: extractReasoning(scoreResult.scores),
127
- // Ensemble data
128
- ensembleResponses: ensembleResult.responses,
129
- // Judge data
130
- judgeScores: judgeScores,
131
- selectedResponse: bestResponse,
132
- // Quality metrics
133
- confidence: extractConfidence(scoreResult.scores),
134
- consensus: extractConsensus(scoreResult.scores),
135
- // Performance metrics
136
- totalTime: executionTime,
137
- ensembleTime,
138
- judgeTime,
139
- conditioningTime: conditioningTime,
140
- // Workflow metadata
141
- workflow: config.id,
142
- workflowName: config.name,
143
- workflowVersion: config.version,
144
- // Resource usage
145
- usage: {
146
- totalInputTokens: calculateInputTokens(ensembleResult.responses),
147
- totalOutputTokens: calculateOutputTokens(ensembleResult.responses),
148
- totalTokens: calculateTotalTokens(ensembleResult.responses),
149
- byModel: [], // TODO: Populate per-model breakdown
150
- },
151
- // Additional metadata
152
- metadata: options.metadata,
153
- timestamp: new Date().toISOString(),
154
- };
155
- if (options.verbose) {
156
- logger.debug(`[WorkflowRunner] Workflow complete in ${executionTime}ms`);
157
- logger.debug(`[WorkflowRunner] Total tokens: ${result.usage?.totalTokens || 0}`);
80
+ try {
81
+ // Step 1: Execute models (layer-based or flat)
82
+ const ensembleResult = await executeModels(config, options);
83
+ if (options.verbose) {
84
+ logger.debug(`[WorkflowRunner] Received ${ensembleResult.responses.length} model responses`);
85
+ logger.debug(`[WorkflowRunner] Successful: ${ensembleResult.successCount}`);
86
+ }
87
+ // Step 2: Score responses with judge(s)
88
+ const scoreResult = await scoreResponses(config, ensembleResult.responses, options);
89
+ if (options.verbose) {
90
+ logger.debug(`[WorkflowRunner] Scoring complete`);
91
+ logger.debug(`[WorkflowRunner] Scores:`, scoreResult.scores);
92
+ }
93
+ // Step 3: Select best response
94
+ const bestResponse = selectBestResponse(ensembleResult.responses, scoreResult.scores);
95
+ if (options.verbose) {
96
+ logger.debug(`[WorkflowRunner] Best response: ${bestResponse.model}`);
97
+ const bestScore = extractScore(scoreResult.scores, bestResponse, ensembleResult.responses);
98
+ logger.debug(`[WorkflowRunner] Best score: ${bestScore}`);
99
+ }
100
+ // CRITICAL: Store original content BEFORE any processing
101
+ const originalContent = bestResponse.content;
102
+ // Step 4: Get processed content
103
+ // Priority: Judge-synthesized > Separate conditioning > Original
104
+ let processedContent;
105
+ let conditioningTime = 0;
106
+ const judgeScores = isJudgeScores(scoreResult.scores)
107
+ ? scoreResult.scores
108
+ : convertToJudgeScores(scoreResult.scores);
109
+ if (judgeScores.synthesizedResponse) {
110
+ // Judge already synthesized improved response
111
+ processedContent = judgeScores.synthesizedResponse;
112
+ logger.debug(`[WorkflowRunner] Using judge-synthesized response`);
113
+ }
114
+ else if (config.conditioning) {
115
+ // Fall back to separate conditioning if configured
116
+ const conditionedContent = await conditionFinalResponse(bestResponse, scoreResult.scores, config, options, ensembleResult.responses);
117
+ processedContent = conditionedContent.content;
118
+ conditioningTime = conditionedContent.conditioningTime;
119
+ logger.debug(`[WorkflowRunner] Using separate conditioning`);
120
+ }
121
+ else {
122
+ // No processing, use original
123
+ processedContent = originalContent;
124
+ logger.debug(`[WorkflowRunner] No conditioning applied`);
125
+ }
126
+ // Step 5: Calculate execution metrics
127
+ const executionTime = Date.now() - startTime;
128
+ const ensembleTime = ensembleResult.totalTime;
129
+ const judgeTime = scoreResult.judgeTime;
130
+ // Step 6: Assemble complete result
131
+ const result = {
132
+ // Primary output (processed version)
133
+ content: processedContent,
134
+ // IMPORTANT: Store original unmodified response separately
135
+ originalContent: originalContent,
136
+ // Evaluation metrics (0-100 scale)
137
+ score: extractScore(scoreResult.scores, bestResponse, ensembleResult.responses),
138
+ reasoning: extractReasoning(scoreResult.scores),
139
+ // Ensemble data
140
+ ensembleResponses: ensembleResult.responses,
141
+ // Judge data
142
+ judgeScores: judgeScores,
143
+ selectedResponse: bestResponse,
144
+ // Quality metrics
145
+ confidence: extractConfidence(scoreResult.scores),
146
+ consensus: extractConsensus(scoreResult.scores),
147
+ // Performance metrics
148
+ totalTime: executionTime,
149
+ ensembleTime,
150
+ judgeTime,
151
+ conditioningTime: conditioningTime,
152
+ // Workflow metadata
153
+ workflow: config.id,
154
+ workflowName: config.name,
155
+ workflowVersion: config.version,
156
+ // Resource usage
157
+ usage: {
158
+ totalInputTokens: calculateInputTokens(ensembleResult.responses),
159
+ totalOutputTokens: calculateOutputTokens(ensembleResult.responses),
160
+ totalTokens: calculateTotalTokens(ensembleResult.responses),
161
+ byModel: [], // TODO: Populate per-model breakdown
162
+ },
163
+ // Additional metadata
164
+ metadata: options.metadata,
165
+ timestamp: new Date().toISOString(),
166
+ };
167
+ if (options.verbose) {
168
+ logger.debug(`[WorkflowRunner] Workflow complete in ${executionTime}ms`);
169
+ logger.debug(`[WorkflowRunner] Total tokens: ${result.usage?.totalTokens || 0}`);
170
+ }
171
+ span.durationMs = executionTime;
172
+ const endedSpan = SpanSerializer.endSpan(span, SpanStatus.OK);
173
+ getMetricsAggregator().recordSpan(endedSpan);
174
+ return result;
158
175
  }
159
- span.durationMs = executionTime;
160
- const endedSpan = SpanSerializer.endSpan(span, SpanStatus.OK);
161
- getMetricsAggregator().recordSpan(endedSpan);
162
- return result;
163
- }
164
- catch (error) {
165
- const executionTime = Date.now() - startTime;
166
- const errorMessage = error instanceof Error ? error.message : String(error);
167
- if (options.verbose) {
168
- logger.error(`[WorkflowRunner] Workflow failed:`, errorMessage);
176
+ catch (error) {
177
+ const executionTime = Date.now() - startTime;
178
+ const errorMessage = error instanceof Error ? error.message : String(error);
179
+ if (options.verbose) {
180
+ logger.error(`[WorkflowRunner] Workflow failed:`, errorMessage);
181
+ }
182
+ span.durationMs = executionTime;
183
+ const endedSpan = SpanSerializer.endSpan(span, SpanStatus.ERROR, errorMessage);
184
+ getMetricsAggregator().recordSpan(endedSpan);
185
+ // Mark outer OTel span as ERROR since we return instead of rethrowing
186
+ otelSpan.recordException(error instanceof Error ? error : new Error(errorMessage));
187
+ otelSpan.setStatus({
188
+ code: SpanStatusCode.ERROR,
189
+ message: errorMessage,
190
+ });
191
+ // Return error result with dummy data
192
+ const dummyResponse = {
193
+ provider: PLACEHOLDER_PROVIDER,
194
+ model: PLACEHOLDER_MODEL,
195
+ content: "",
196
+ responseTime: 0,
197
+ status: "failure",
198
+ error: errorMessage,
199
+ timestamp: new Date().toISOString(),
200
+ };
201
+ return {
202
+ content: "",
203
+ score: 0,
204
+ reasoning: `Workflow execution failed: ${errorMessage}`,
205
+ ensembleResponses: [dummyResponse],
206
+ confidence: 0,
207
+ totalTime: executionTime,
208
+ ensembleTime: 0,
209
+ workflow: config.id,
210
+ workflowName: config.name,
211
+ workflowVersion: config.version,
212
+ metadata: options.metadata,
213
+ timestamp: new Date().toISOString(),
214
+ };
169
215
  }
170
- span.durationMs = executionTime;
171
- const endedSpan = SpanSerializer.endSpan(span, SpanStatus.ERROR, errorMessage);
172
- getMetricsAggregator().recordSpan(endedSpan);
173
- // Return error result with dummy data
174
- const dummyResponse = {
175
- provider: PLACEHOLDER_PROVIDER,
176
- model: PLACEHOLDER_MODEL,
177
- content: "",
178
- responseTime: 0,
179
- status: "failure",
180
- error: errorMessage,
181
- timestamp: new Date().toISOString(),
182
- };
183
- return {
184
- content: "",
185
- score: 0,
186
- reasoning: `Workflow execution failed: ${errorMessage}`,
187
- ensembleResponses: [dummyResponse],
188
- confidence: 0,
189
- totalTime: executionTime,
190
- ensembleTime: 0,
191
- workflow: config.id,
192
- workflowName: config.name,
193
- workflowVersion: config.version,
194
- metadata: options.metadata,
195
- timestamp: new Date().toISOString(),
196
- };
197
- }
216
+ }); // end withSpan
198
217
  }
199
218
  /**
200
219
  * Execute models using layer-based or flat execution
@@ -459,6 +478,18 @@ function calculateTotalTokens(responses) {
459
478
  * ```
460
479
  */
461
480
  export async function* runWorkflowWithStreaming(config, options) {
481
+ // Wrap the generator in an active OTel span so Pipeline A captures the
482
+ // streaming workflow end-to-end and Pipeline B (below) inherits its traceId.
483
+ const generator = tracers.workflow.startActiveSpan("neurolink.workflow.run.streaming", {
484
+ attributes: {
485
+ "workflow.name": config.name,
486
+ "workflow.type": config.type,
487
+ "workflow.id": config.id ?? "unknown",
488
+ },
489
+ }, (otelSpan) => runWorkflowStreamingInner(config, options, otelSpan));
490
+ yield* generator;
491
+ }
492
+ async function* runWorkflowStreamingInner(config, options, otelSpan) {
462
493
  const startTime = Date.now();
463
494
  const span = SpanSerializer.createSpan(SpanType.WORKFLOW, "workflow.run.streaming", {
464
495
  "workflow.operation": "run.streaming",
@@ -469,14 +500,21 @@ export async function* runWorkflowWithStreaming(config, options) {
469
500
  // Validate configuration
470
501
  const validation = validateWorkflow(config);
471
502
  if (!validation.valid) {
503
+ const errMsg = `Invalid workflow configuration: ${validation.errors.map((err) => err.message).join(", ")}`;
472
504
  span.durationMs = Date.now() - startTime;
473
- const endedSpan = SpanSerializer.endSpan(span, SpanStatus.ERROR, `Invalid workflow configuration: ${validation.errors.map((err) => err.message).join(", ")}`);
505
+ const endedSpan = SpanSerializer.endSpan(span, SpanStatus.ERROR, errMsg);
474
506
  getMetricsAggregator().recordSpan(endedSpan);
475
- throw new Error(`Invalid workflow configuration: ${validation.errors.map((err) => err.message).join(", ")}`);
507
+ const err = new Error(errMsg);
508
+ otelSpan.recordException(err);
509
+ otelSpan.setStatus({ code: SpanStatusCode.ERROR, message: errMsg });
510
+ otelSpan.end();
511
+ throw err;
476
512
  }
477
513
  if (options.verbose) {
478
514
  logger.debug(`[WorkflowRunner] Starting streaming workflow: ${config.name}`);
479
515
  }
516
+ // eslint-disable-next-line no-useless-assignment -- read in finally block
517
+ let spanEnded = false;
480
518
  try {
481
519
  // Step 1: Execute models
482
520
  const ensembleResult = await executeModels(config, options);
@@ -571,16 +609,33 @@ export async function* runWorkflowWithStreaming(config, options) {
571
609
  span.durationMs = executionTime;
572
610
  const endedSpan = SpanSerializer.endSpan(span, SpanStatus.OK);
573
611
  getMetricsAggregator().recordSpan(endedSpan);
612
+ spanEnded = true;
613
+ otelSpan.setStatus({ code: SpanStatusCode.OK });
614
+ otelSpan.end();
574
615
  }
575
616
  catch (error) {
617
+ spanEnded = true;
576
618
  const executionTime = Date.now() - startTime;
577
619
  const errorMessage = error instanceof Error ? error.message : String(error);
578
620
  span.durationMs = executionTime;
579
621
  const endedSpan = SpanSerializer.endSpan(span, SpanStatus.ERROR, errorMessage);
580
622
  getMetricsAggregator().recordSpan(endedSpan);
623
+ if (error instanceof Error) {
624
+ otelSpan.recordException(error);
625
+ }
626
+ otelSpan.setStatus({ code: SpanStatusCode.ERROR, message: errorMessage });
627
+ otelSpan.end();
581
628
  logger.error(`[WorkflowRunner] Streaming workflow failed`, {
582
629
  error: errorMessage,
583
630
  });
584
631
  throw error;
585
632
  }
633
+ finally {
634
+ // Guard against span leak when the consumer breaks out of the async
635
+ // generator early (neither try-success nor catch fires in that case).
636
+ if (!spanEnded) {
637
+ otelSpan.setStatus({ code: SpanStatusCode.OK });
638
+ otelSpan.end();
639
+ }
640
+ }
586
641
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@juspay/neurolink",
3
- "version": "9.54.6",
3
+ "version": "9.54.8",
4
4
  "packageManager": "pnpm@10.15.1",
5
5
  "description": "Universal AI Development Platform with working MCP integration, multi-provider support, and professional CLI. Built-in tools operational, 58+ external MCP servers discoverable. Connect to filesystem, GitHub, database operations, and more. Build, test, and deploy AI applications with 13 providers: OpenAI, Anthropic, Google AI, AWS Bedrock, Azure, Hugging Face, Ollama, and Mistral AI.",
6
6
  "author": {
@@ -210,7 +210,6 @@
210
210
  "@google-cloud/text-to-speech": "^6.4.0",
211
211
  "@google-cloud/vertexai": "^1.10.0",
212
212
  "@google/genai": "^1.43.0",
213
- "@google/generative-ai": "^0.24.1",
214
213
  "@huggingface/inference": "^4.13.14",
215
214
  "@juspay/hippocampus": "^0.1.4",
216
215
  "@langfuse/otel": "^5.0.1",
@@ -243,9 +242,7 @@
243
242
  "jose": "^6.1.3",
244
243
  "json-schema-to-zod": "^2.7.0",
245
244
  "mammoth": "^1.11.0",
246
- "mathjs": "^15.2.0",
247
245
  "mediabunny": "^1.40.1",
248
- "minisearch": "^7.2.0",
249
246
  "music-metadata": "^11.11.2",
250
247
  "nanoid": "^5.1.5",
251
248
  "ollama-ai-provider": "^1.2.0",
@@ -260,7 +257,6 @@
260
257
  "undici": ">=7.22.0",
261
258
  "uuid": "^13.0.0",
262
259
  "ws": "^8.19.0",
263
- "xml2js": "^0.6.2",
264
260
  "yargs": "^18.0.0",
265
261
  "zod": "^4.3.6",
266
262
  "zod-to-json-schema": "^3.25.1"
@@ -285,7 +281,6 @@
285
281
  "@hono/node-server": "^1.19.9",
286
282
  "@koa/cors": "^5.0.0",
287
283
  "@koa/router": "^15.3.1",
288
- "canvas": "^3.2.1",
289
284
  "cors": "^2.8.5",
290
285
  "express": "^5.1.0",
291
286
  "express-rate-limit": "^8.2.1",
@@ -329,7 +324,6 @@
329
324
  "@types/react": "^19.2.10",
330
325
  "@types/tar-stream": "^3.1.4",
331
326
  "@types/ws": "^8.18.1",
332
- "@types/xml2js": "^0.4.14",
333
327
  "@types/yargs": "^17.0.35",
334
328
  "@typescript-eslint/eslint-plugin": "^8.57.2",
335
329
  "@typescript-eslint/parser": "^8.57.2",
@@ -351,6 +345,7 @@
351
345
  "shell-quote": "^1.8.3",
352
346
  "svelte": "^5.53.6",
353
347
  "svelte-check": "^4.4.4",
348
+ "ts-morph": "^24.0.0",
354
349
  "tslib": "^2.8.1",
355
350
  "tsx": "^4.21.0",
356
351
  "typedoc": "^0.28.17",
@@ -404,7 +399,6 @@
404
399
  "protobufjs",
405
400
  "puppeteer",
406
401
  "sqlite3",
407
- "canvas",
408
402
  "ffmpeg-static",
409
403
  "sharp"
410
404
  ],