@juspay/neurolink 9.54.5 → 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 (432) hide show
  1. package/CHANGELOG.md +4 -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 -1
  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 +2 -2
  54. package/dist/client/httpClient.js +13 -0
  55. package/dist/client/sseClient.d.ts +2 -2
  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 +7 -2
  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/core/toolEvents.d.ts +0 -1
  72. package/dist/evaluation/BatchEvaluator.d.ts +1 -97
  73. package/dist/evaluation/EvaluationAggregator.d.ts +1 -118
  74. package/dist/evaluation/EvaluatorFactory.d.ts +1 -13
  75. package/dist/evaluation/EvaluatorRegistry.d.ts +1 -50
  76. package/dist/evaluation/errors/EvaluationError.d.ts +2 -27
  77. package/dist/evaluation/hooks/langfuseAdapter.d.ts +1 -39
  78. package/dist/evaluation/hooks/observabilityHooks.d.ts +3 -55
  79. package/dist/evaluation/hooks/observabilityHooks.js +3 -0
  80. package/dist/evaluation/pipeline/strategies/batchStrategy.d.ts +7 -61
  81. package/dist/evaluation/pipeline/strategies/batchStrategy.js +7 -7
  82. package/dist/evaluation/ragasEvaluator.js +54 -37
  83. package/dist/evaluation/reporting/metricsCollector.d.ts +1 -60
  84. package/dist/evaluation/reporting/reportGenerator.d.ts +1 -17
  85. package/dist/evaluation/scorers/rule/contentSimilarityScorer.d.ts +1 -29
  86. package/dist/evaluation/scorers/rule/formatScorer.d.ts +1 -42
  87. package/dist/evaluation/scorers/rule/keywordCoverageScorer.d.ts +1 -19
  88. package/dist/evaluation/scorers/rule/lengthScorer.d.ts +1 -33
  89. package/dist/factories/providerFactory.d.ts +1 -16
  90. package/dist/factories/providerFactory.js +2 -0
  91. package/dist/image-gen/ImageGenService.d.ts +3 -0
  92. package/dist/image-gen/ImageGenService.js +3 -0
  93. package/dist/lib/action/actionInputs.d.ts +1 -1
  94. package/dist/lib/adapters/video/directorPipeline.js +6 -0
  95. package/dist/lib/adapters/video/vertexVideoHandler.js +6 -0
  96. package/dist/lib/agent/directTools.d.ts +3 -23
  97. package/dist/lib/auth/AuthProviderFactory.d.ts +1 -3
  98. package/dist/lib/auth/anthropicOAuth.d.ts +4 -7
  99. package/dist/lib/auth/anthropicOAuth.js +23 -0
  100. package/dist/lib/auth/errors.d.ts +1 -1
  101. package/dist/lib/auth/index.d.ts +11 -0
  102. package/dist/lib/auth/index.js +14 -0
  103. package/dist/lib/auth/middleware/AuthMiddleware.d.ts +5 -60
  104. package/dist/lib/auth/middleware/AuthMiddleware.js +3 -0
  105. package/dist/lib/auth/middleware/rateLimitByUser.d.ts +4 -93
  106. package/dist/lib/auth/middleware/rateLimitByUser.js +4 -0
  107. package/dist/lib/auth/providers/BaseAuthProvider.d.ts +1 -1
  108. package/dist/lib/auth/providers/CognitoProvider.js +3 -0
  109. package/dist/lib/auth/providers/KeycloakProvider.js +3 -0
  110. package/dist/lib/auth/providers/auth0.d.ts +1 -1
  111. package/dist/lib/auth/sessionManager.d.ts +2 -0
  112. package/dist/lib/auth/sessionManager.js +53 -11
  113. package/dist/lib/auth/tokenStore.d.ts +2 -1
  114. package/dist/lib/auth/tokenStore.js +45 -4
  115. package/dist/lib/autoresearch/tools.d.ts +1 -16
  116. package/dist/lib/client/aiSdkAdapter.d.ts +1 -1
  117. package/dist/lib/client/aiSdkAdapter.js +1 -0
  118. package/dist/lib/client/httpClient.d.ts +2 -2
  119. package/dist/lib/client/httpClient.js +13 -0
  120. package/dist/lib/client/sseClient.d.ts +2 -2
  121. package/dist/lib/client/sseClient.js +29 -0
  122. package/dist/lib/client/streamingClient.d.ts +2 -0
  123. package/dist/lib/client/streamingClient.js +19 -0
  124. package/dist/lib/client/wsClient.d.ts +7 -2
  125. package/dist/lib/client/wsClient.js +90 -10
  126. package/dist/lib/context/budgetChecker.js +3 -1
  127. package/dist/lib/context/contextCompactor.js +163 -143
  128. package/dist/lib/context/fileSummarizationService.d.ts +1 -9
  129. package/dist/lib/context/summarizationEngine.js +29 -16
  130. package/dist/lib/core/baseProvider.js +124 -153
  131. package/dist/lib/core/infrastructure/baseRegistry.d.ts +1 -7
  132. package/dist/lib/core/modules/GenerationHandler.d.ts +3 -2
  133. package/dist/lib/core/modules/GenerationHandler.js +9 -1
  134. package/dist/lib/core/modules/StreamHandler.js +9 -0
  135. package/dist/lib/core/modules/ToolsManager.js +18 -2
  136. package/dist/lib/core/toolEvents.d.ts +0 -1
  137. package/dist/lib/evaluation/BatchEvaluator.d.ts +1 -97
  138. package/dist/lib/evaluation/EvaluationAggregator.d.ts +1 -118
  139. package/dist/lib/evaluation/EvaluatorFactory.d.ts +1 -13
  140. package/dist/lib/evaluation/EvaluatorRegistry.d.ts +1 -50
  141. package/dist/lib/evaluation/errors/EvaluationError.d.ts +2 -27
  142. package/dist/lib/evaluation/hooks/langfuseAdapter.d.ts +1 -39
  143. package/dist/lib/evaluation/hooks/observabilityHooks.d.ts +3 -55
  144. package/dist/lib/evaluation/hooks/observabilityHooks.js +3 -0
  145. package/dist/lib/evaluation/pipeline/strategies/batchStrategy.d.ts +7 -61
  146. package/dist/lib/evaluation/pipeline/strategies/batchStrategy.js +7 -7
  147. package/dist/lib/evaluation/ragasEvaluator.js +54 -37
  148. package/dist/lib/evaluation/reporting/metricsCollector.d.ts +1 -60
  149. package/dist/lib/evaluation/reporting/reportGenerator.d.ts +1 -17
  150. package/dist/lib/evaluation/scorers/rule/contentSimilarityScorer.d.ts +1 -29
  151. package/dist/lib/evaluation/scorers/rule/formatScorer.d.ts +1 -42
  152. package/dist/lib/evaluation/scorers/rule/keywordCoverageScorer.d.ts +1 -19
  153. package/dist/lib/evaluation/scorers/rule/lengthScorer.d.ts +1 -33
  154. package/dist/lib/factories/providerFactory.d.ts +1 -16
  155. package/dist/lib/factories/providerFactory.js +2 -0
  156. package/dist/lib/image-gen/ImageGenService.d.ts +3 -0
  157. package/dist/lib/image-gen/ImageGenService.js +3 -0
  158. package/dist/lib/mcp/batching/requestBatcher.js +99 -73
  159. package/dist/lib/mcp/httpRateLimiter.js +3 -1
  160. package/dist/lib/mcp/httpRetryHandler.js +3 -1
  161. package/dist/lib/mcp/mcpClientFactory.js +3 -1
  162. package/dist/lib/mcp/multiServerManager.d.ts +1 -14
  163. package/dist/lib/mcp/servers/aiProviders/aiAnalysisTools.js +5 -1
  164. package/dist/lib/mcp/servers/aiProviders/aiWorkflowTools.js +1 -0
  165. package/dist/lib/mcp/toolDiscoveryService.js +70 -57
  166. package/dist/lib/mcp/toolRegistry.js +11 -1
  167. package/dist/lib/memory/hippocampusInitializer.d.ts +1 -2
  168. package/dist/lib/memory/hippocampusInitializer.js +1 -1
  169. package/dist/lib/memory/memoryRetrievalTools.js +182 -141
  170. package/dist/lib/models/anthropicModels.d.ts +0 -1
  171. package/dist/lib/models/anthropicModels.js +1 -0
  172. package/dist/lib/neurolink.js +237 -41
  173. package/dist/lib/observability/exporterRegistry.d.ts +3 -22
  174. package/dist/lib/observability/exporters/sentryExporter.js +1 -0
  175. package/dist/lib/observability/metricsAggregator.d.ts +1 -31
  176. package/dist/lib/observability/retryPolicy.d.ts +0 -1
  177. package/dist/lib/observability/sampling/samplers.d.ts +0 -1
  178. package/dist/lib/observability/spanProcessor.d.ts +0 -1
  179. package/dist/lib/observability/tokenTracker.d.ts +7 -16
  180. package/dist/lib/observability/tokenTracker.js +6 -4
  181. package/dist/lib/observability/utils/spanSerializer.d.ts +5 -1
  182. package/dist/lib/observability/utils/spanSerializer.js +24 -4
  183. package/dist/lib/processors/base/BaseFileProcessor.js +66 -53
  184. package/dist/lib/processors/document/ExcelProcessor.d.ts +1 -1
  185. package/dist/lib/processors/errors/errorHelpers.d.ts +1 -31
  186. package/dist/lib/processors/errors/errorSerializer.d.ts +1 -45
  187. package/dist/lib/processors/registry/ProcessorRegistry.js +17 -6
  188. package/dist/lib/providers/amazonBedrock.js +189 -15
  189. package/dist/lib/providers/amazonSagemaker.js +25 -11
  190. package/dist/lib/providers/anthropic.js +13 -0
  191. package/dist/lib/providers/azureOpenai.js +2 -0
  192. package/dist/lib/providers/googleAiStudio.js +82 -0
  193. package/dist/lib/providers/googleNativeGemini3.d.ts +1 -2
  194. package/dist/lib/providers/googleVertex.js +52 -0
  195. package/dist/lib/providers/huggingFace.js +2 -0
  196. package/dist/lib/providers/litellm.js +2 -0
  197. package/dist/lib/providers/mistral.js +2 -0
  198. package/dist/lib/providers/ollama.js +84 -5
  199. package/dist/lib/providers/openAI.d.ts +2 -0
  200. package/dist/lib/providers/openAI.js +17 -6
  201. package/dist/lib/providers/openRouter.js +2 -0
  202. package/dist/lib/providers/openaiCompatible.js +2 -0
  203. package/dist/lib/providers/sagemaker/detection.d.ts +1 -33
  204. package/dist/lib/providers/sagemaker/diagnostics.d.ts +1 -25
  205. package/dist/lib/providers/sagemaker/language-model.d.ts +1 -1
  206. package/dist/lib/proxy/proxyConfig.js +4 -0
  207. package/dist/lib/proxy/proxyEnv.d.ts +1 -17
  208. package/dist/lib/proxy/proxyHealth.d.ts +0 -1
  209. package/dist/lib/proxy/proxyTracer.d.ts +1 -36
  210. package/dist/lib/proxy/proxyTracer.js +9 -0
  211. package/dist/lib/proxy/quietDetector.d.ts +1 -7
  212. package/dist/lib/proxy/rawStreamCapture.d.ts +1 -10
  213. package/dist/lib/proxy/requestLogger.d.ts +1 -21
  214. package/dist/lib/proxy/routingPolicy.d.ts +1 -2
  215. package/dist/lib/proxy/sseInterceptor.d.ts +1 -66
  216. package/dist/lib/proxy/sseInterceptor.js +6 -0
  217. package/dist/lib/proxy/updateChecker.d.ts +1 -6
  218. package/dist/lib/proxy/updateState.d.ts +1 -12
  219. package/dist/lib/rag/chunkers/BaseChunker.js +36 -22
  220. package/dist/lib/rag/chunking/jsonChunker.d.ts +1 -1
  221. package/dist/lib/rag/errors/RAGError.d.ts +1 -2
  222. package/dist/lib/rag/ragIntegration.js +45 -32
  223. package/dist/lib/rag/reranker/reranker.js +151 -122
  224. package/dist/lib/rag/retrieval/vectorQueryTool.js +79 -65
  225. package/dist/lib/sdk/toolRegistration.d.ts +10 -44
  226. package/dist/lib/sdk/toolRegistration.js +1 -1
  227. package/dist/lib/server/middleware/abortSignal.d.ts +1 -11
  228. package/dist/lib/server/middleware/auth.d.ts +1 -21
  229. package/dist/lib/server/middleware/auth.js +12 -0
  230. package/dist/lib/server/middleware/common.js +48 -32
  231. package/dist/lib/server/middleware/deprecation.d.ts +1 -20
  232. package/dist/lib/server/middleware/rateLimit.d.ts +1 -75
  233. package/dist/lib/server/middleware/validation.d.ts +3 -81
  234. package/dist/lib/server/middleware/validation.js +3 -0
  235. package/dist/lib/server/openapi/generator.d.ts +1 -47
  236. package/dist/lib/server/routes/agentRoutes.js +112 -57
  237. package/dist/lib/server/routes/claudeProxyRoutes.d.ts +1 -6
  238. package/dist/lib/server/routes/claudeProxyRoutes.js +127 -13
  239. package/dist/lib/server/routes/healthRoutes.js +58 -12
  240. package/dist/lib/server/routes/index.d.ts +1 -26
  241. package/dist/lib/server/routes/mcpRoutes.js +40 -7
  242. package/dist/lib/server/routes/memoryRoutes.js +22 -7
  243. package/dist/lib/server/routes/openApiRoutes.js +30 -6
  244. package/dist/lib/server/routes/toolRoutes.js +140 -68
  245. package/dist/lib/server/streaming/dataStream.d.ts +1 -35
  246. package/dist/lib/server/streaming/dataStream.js +15 -0
  247. package/dist/lib/services/server/ai/observability/instrumentation.js +114 -14
  248. package/dist/lib/session/globalSessionState.d.ts +1 -10
  249. package/dist/lib/tasks/tools/taskTools.d.ts +2 -2
  250. package/dist/lib/telemetry/traceContext.d.ts +9 -0
  251. package/dist/lib/telemetry/traceContext.js +19 -0
  252. package/dist/lib/telemetry/tracers.d.ts +2 -0
  253. package/dist/lib/telemetry/tracers.js +2 -0
  254. package/dist/lib/types/action.d.ts +2 -0
  255. package/dist/lib/types/artifact.d.ts +7 -0
  256. package/dist/lib/types/auth.d.ts +125 -18
  257. package/dist/lib/types/autoresearch.d.ts +12 -0
  258. package/dist/lib/types/cli.d.ts +415 -0
  259. package/dist/lib/types/client.d.ts +34 -0
  260. package/dist/lib/types/common.d.ts +12 -41
  261. package/dist/lib/types/context.d.ts +5 -0
  262. package/dist/lib/types/evaluation.d.ts +332 -1
  263. package/dist/lib/types/file.d.ts +4 -0
  264. package/dist/lib/types/mcp.d.ts +102 -2
  265. package/dist/lib/types/middleware.d.ts +116 -0
  266. package/dist/lib/types/multimodal.d.ts +65 -0
  267. package/dist/lib/types/observability.d.ts +81 -0
  268. package/dist/lib/types/processor.d.ts +47 -0
  269. package/dist/lib/types/providers.d.ts +120 -16
  270. package/dist/lib/types/proxy.d.ts +321 -1
  271. package/dist/lib/types/rag.d.ts +22 -0
  272. package/dist/lib/types/scorer.d.ts +141 -0
  273. package/dist/lib/types/server.d.ts +99 -0
  274. package/dist/lib/types/span.d.ts +2 -1
  275. package/dist/lib/types/span.js +1 -0
  276. package/dist/lib/types/tools.d.ts +44 -0
  277. package/dist/lib/types/tts.d.ts +6 -0
  278. package/dist/lib/types/utilities.d.ts +22 -0
  279. package/dist/lib/types/workflow.d.ts +18 -0
  280. package/dist/lib/utils/async/retry.d.ts +2 -8
  281. package/dist/lib/utils/async/retry.js +9 -9
  282. package/dist/lib/utils/imageCompressor.d.ts +1 -21
  283. package/dist/lib/utils/imageCompressor.js +5 -1
  284. package/dist/lib/utils/messageBuilder.d.ts +1 -1
  285. package/dist/lib/utils/redis.d.ts +1 -4
  286. package/dist/lib/utils/sanitizers/filename.d.ts +0 -1
  287. package/dist/lib/utils/toolEndEmitter.d.ts +25 -0
  288. package/dist/lib/utils/toolEndEmitter.js +65 -0
  289. package/dist/lib/workflow/config.d.ts +7 -32
  290. package/dist/lib/workflow/core/ensembleExecutor.js +28 -0
  291. package/dist/lib/workflow/core/judgeScorer.js +23 -0
  292. package/dist/lib/workflow/core/responseConditioner.js +17 -0
  293. package/dist/lib/workflow/core/workflowRunner.d.ts +1 -19
  294. package/dist/lib/workflow/core/workflowRunner.js +202 -147
  295. package/dist/mcp/batching/requestBatcher.js +99 -73
  296. package/dist/mcp/httpRateLimiter.js +3 -1
  297. package/dist/mcp/httpRetryHandler.js +3 -1
  298. package/dist/mcp/mcpClientFactory.js +3 -1
  299. package/dist/mcp/multiServerManager.d.ts +1 -14
  300. package/dist/mcp/servers/aiProviders/aiAnalysisTools.js +5 -1
  301. package/dist/mcp/servers/aiProviders/aiWorkflowTools.js +1 -0
  302. package/dist/mcp/toolDiscoveryService.js +70 -57
  303. package/dist/mcp/toolRegistry.js +11 -1
  304. package/dist/memory/hippocampusInitializer.d.ts +1 -2
  305. package/dist/memory/hippocampusInitializer.js +1 -1
  306. package/dist/memory/memoryRetrievalTools.js +182 -141
  307. package/dist/models/anthropicModels.d.ts +0 -1
  308. package/dist/models/anthropicModels.js +1 -0
  309. package/dist/neurolink.js +237 -41
  310. package/dist/observability/exporterRegistry.d.ts +3 -22
  311. package/dist/observability/exporters/sentryExporter.js +1 -0
  312. package/dist/observability/metricsAggregator.d.ts +1 -31
  313. package/dist/observability/retryPolicy.d.ts +0 -1
  314. package/dist/observability/sampling/samplers.d.ts +0 -1
  315. package/dist/observability/spanProcessor.d.ts +0 -1
  316. package/dist/observability/tokenTracker.d.ts +7 -16
  317. package/dist/observability/tokenTracker.js +6 -4
  318. package/dist/observability/utils/spanSerializer.d.ts +5 -1
  319. package/dist/observability/utils/spanSerializer.js +24 -4
  320. package/dist/processors/base/BaseFileProcessor.js +66 -53
  321. package/dist/processors/document/ExcelProcessor.d.ts +1 -1
  322. package/dist/processors/errors/errorHelpers.d.ts +1 -31
  323. package/dist/processors/errors/errorSerializer.d.ts +1 -45
  324. package/dist/processors/registry/ProcessorRegistry.js +17 -6
  325. package/dist/providers/amazonBedrock.js +189 -15
  326. package/dist/providers/amazonSagemaker.js +25 -11
  327. package/dist/providers/anthropic.js +13 -0
  328. package/dist/providers/azureOpenai.js +2 -0
  329. package/dist/providers/googleAiStudio.js +82 -0
  330. package/dist/providers/googleNativeGemini3.d.ts +1 -2
  331. package/dist/providers/googleVertex.js +52 -0
  332. package/dist/providers/huggingFace.js +2 -0
  333. package/dist/providers/litellm.js +2 -0
  334. package/dist/providers/mistral.js +2 -0
  335. package/dist/providers/ollama.js +84 -5
  336. package/dist/providers/openAI.d.ts +2 -0
  337. package/dist/providers/openAI.js +17 -6
  338. package/dist/providers/openRouter.js +2 -0
  339. package/dist/providers/openaiCompatible.js +2 -0
  340. package/dist/providers/sagemaker/detection.d.ts +1 -33
  341. package/dist/providers/sagemaker/diagnostics.d.ts +1 -25
  342. package/dist/providers/sagemaker/language-model.d.ts +1 -1
  343. package/dist/proxy/proxyConfig.js +4 -0
  344. package/dist/proxy/proxyEnv.d.ts +1 -17
  345. package/dist/proxy/proxyHealth.d.ts +0 -1
  346. package/dist/proxy/proxyTracer.d.ts +1 -36
  347. package/dist/proxy/proxyTracer.js +9 -0
  348. package/dist/proxy/quietDetector.d.ts +1 -7
  349. package/dist/proxy/rawStreamCapture.d.ts +1 -10
  350. package/dist/proxy/requestLogger.d.ts +1 -21
  351. package/dist/proxy/routingPolicy.d.ts +1 -2
  352. package/dist/proxy/sseInterceptor.d.ts +1 -66
  353. package/dist/proxy/sseInterceptor.js +6 -0
  354. package/dist/proxy/updateChecker.d.ts +1 -6
  355. package/dist/proxy/updateState.d.ts +1 -12
  356. package/dist/rag/chunkers/BaseChunker.js +36 -22
  357. package/dist/rag/chunking/jsonChunker.d.ts +1 -1
  358. package/dist/rag/errors/RAGError.d.ts +1 -2
  359. package/dist/rag/ragIntegration.js +45 -32
  360. package/dist/rag/reranker/reranker.js +151 -122
  361. package/dist/rag/retrieval/vectorQueryTool.js +79 -65
  362. package/dist/sdk/toolRegistration.d.ts +10 -44
  363. package/dist/sdk/toolRegistration.js +1 -1
  364. package/dist/server/middleware/abortSignal.d.ts +1 -11
  365. package/dist/server/middleware/auth.d.ts +1 -21
  366. package/dist/server/middleware/auth.js +12 -0
  367. package/dist/server/middleware/common.js +48 -32
  368. package/dist/server/middleware/deprecation.d.ts +1 -20
  369. package/dist/server/middleware/rateLimit.d.ts +1 -75
  370. package/dist/server/middleware/validation.d.ts +3 -81
  371. package/dist/server/middleware/validation.js +3 -0
  372. package/dist/server/openapi/generator.d.ts +1 -47
  373. package/dist/server/routes/agentRoutes.js +112 -57
  374. package/dist/server/routes/claudeProxyRoutes.d.ts +1 -6
  375. package/dist/server/routes/claudeProxyRoutes.js +127 -13
  376. package/dist/server/routes/healthRoutes.js +58 -12
  377. package/dist/server/routes/index.d.ts +1 -26
  378. package/dist/server/routes/mcpRoutes.js +40 -7
  379. package/dist/server/routes/memoryRoutes.js +22 -7
  380. package/dist/server/routes/openApiRoutes.js +30 -6
  381. package/dist/server/routes/toolRoutes.js +140 -68
  382. package/dist/server/streaming/dataStream.d.ts +1 -35
  383. package/dist/server/streaming/dataStream.js +15 -0
  384. package/dist/services/server/ai/observability/instrumentation.js +114 -14
  385. package/dist/session/globalSessionState.d.ts +1 -10
  386. package/dist/tasks/tools/taskTools.d.ts +2 -2
  387. package/dist/telemetry/traceContext.d.ts +9 -0
  388. package/dist/telemetry/traceContext.js +18 -0
  389. package/dist/telemetry/tracers.d.ts +2 -0
  390. package/dist/telemetry/tracers.js +2 -0
  391. package/dist/types/action.d.ts +2 -0
  392. package/dist/types/artifact.d.ts +7 -0
  393. package/dist/types/auth.d.ts +125 -18
  394. package/dist/types/autoresearch.d.ts +12 -0
  395. package/dist/types/cli.d.ts +415 -0
  396. package/dist/types/client.d.ts +34 -0
  397. package/dist/types/common.d.ts +12 -41
  398. package/dist/types/context.d.ts +5 -0
  399. package/dist/types/evaluation.d.ts +332 -1
  400. package/dist/types/file.d.ts +4 -0
  401. package/dist/types/mcp.d.ts +102 -2
  402. package/dist/types/middleware.d.ts +116 -0
  403. package/dist/types/multimodal.d.ts +65 -0
  404. package/dist/types/observability.d.ts +81 -0
  405. package/dist/types/processor.d.ts +47 -0
  406. package/dist/types/providers.d.ts +120 -16
  407. package/dist/types/proxy.d.ts +321 -1
  408. package/dist/types/rag.d.ts +22 -0
  409. package/dist/types/scorer.d.ts +141 -0
  410. package/dist/types/server.d.ts +99 -0
  411. package/dist/types/span.d.ts +2 -1
  412. package/dist/types/span.js +1 -0
  413. package/dist/types/tools.d.ts +44 -0
  414. package/dist/types/tts.d.ts +6 -0
  415. package/dist/types/utilities.d.ts +22 -0
  416. package/dist/types/workflow.d.ts +18 -0
  417. package/dist/utils/async/retry.d.ts +2 -8
  418. package/dist/utils/async/retry.js +9 -9
  419. package/dist/utils/imageCompressor.d.ts +1 -21
  420. package/dist/utils/imageCompressor.js +5 -1
  421. package/dist/utils/messageBuilder.d.ts +1 -1
  422. package/dist/utils/redis.d.ts +1 -4
  423. package/dist/utils/sanitizers/filename.d.ts +0 -1
  424. package/dist/utils/toolEndEmitter.d.ts +25 -0
  425. package/dist/utils/toolEndEmitter.js +64 -0
  426. package/dist/workflow/config.d.ts +4 -29
  427. package/dist/workflow/core/ensembleExecutor.js +28 -0
  428. package/dist/workflow/core/judgeScorer.js +23 -0
  429. package/dist/workflow/core/responseConditioner.js +17 -0
  430. package/dist/workflow/core/workflowRunner.d.ts +1 -19
  431. package/dist/workflow/core/workflowRunner.js +202 -147
  432. package/package.json +2 -1
@@ -7,6 +7,7 @@ import { streamAnalyticsCollector } from "../core/streamAnalytics.js";
7
7
  import { createProxyFetch } from "../proxy/proxyFetch.js";
8
8
  import { AuthenticationError, InvalidModelError, NetworkError, ProviderError, RateLimitError, } from "../types/index.js";
9
9
  import { isAbortError } from "../utils/errorHandling.js";
10
+ import { emitToolEndFromStepFinish } from "../utils/toolEndEmitter.js";
10
11
  import { logger } from "../utils/logger.js";
11
12
  import { calculateCost } from "../utils/pricing.js";
12
13
  import { getProviderModel } from "../utils/providerConfig.js";
@@ -190,6 +191,7 @@ export class LiteLLMProvider extends BaseProvider {
190
191
  chunkCount++;
191
192
  },
192
193
  onStepFinish: ({ toolCalls, toolResults }) => {
194
+ emitToolEndFromStepFinish(this.neurolink?.getEventEmitter(), toolResults);
193
195
  logger.info("Tool execution completed", { toolResults, toolCalls });
194
196
  for (const toolCall of toolCalls) {
195
197
  collectedToolCalls.push({
@@ -4,6 +4,7 @@ import { BaseProvider } from "../core/baseProvider.js";
4
4
  import { DEFAULT_MAX_STEPS } from "../core/constants.js";
5
5
  import { streamAnalyticsCollector } from "../core/streamAnalytics.js";
6
6
  import { createProxyFetch } from "../proxy/proxyFetch.js";
7
+ import { emitToolEndFromStepFinish } from "../utils/toolEndEmitter.js";
7
8
  import { logger } from "../utils/logger.js";
8
9
  import { createMistralConfig, getProviderModel, validateApiKey, } from "../utils/providerConfig.js";
9
10
  import { composeAbortSignals, createTimeoutController, TimeoutError, } from "../utils/timeout.js";
@@ -69,6 +70,7 @@ export class MistralProvider extends BaseProvider {
69
70
  experimental_telemetry: this.telemetryHandler.getTelemetryConfig(options),
70
71
  experimental_repairToolCall: this.getToolCallRepairFn(options),
71
72
  onStepFinish: ({ toolCalls, toolResults }) => {
73
+ emitToolEndFromStepFinish(this.neurolink?.getEventEmitter(), toolResults);
72
74
  this.handleToolExecutionStorage(toolCalls, toolResults, options, new Date()).catch((error) => {
73
75
  logger.warn("[MistralProvider] Failed to store tool executions", {
74
76
  provider: this.providerName,
@@ -9,6 +9,7 @@ import { buildMultimodalOptions } from "../utils/multimodalOptionsBuilder.js";
9
9
  import { estimateTokens } from "../utils/tokenEstimation.js";
10
10
  import { InvalidModelError, NetworkError, ProviderError, } from "../types/index.js";
11
11
  import { tracers, ATTR, withClientSpan } from "../telemetry/index.js";
12
+ import { emitToolEndFromStepFinish } from "../utils/toolEndEmitter.js";
12
13
  import { TimeoutError } from "../utils/timeout.js";
13
14
  // Model version constants (configurable via environment)
14
15
  const DEFAULT_OLLAMA_MODEL = process.env.OLLAMA_MODEL || "llama3.1:8b";
@@ -743,13 +744,22 @@ export class OllamaProvider extends BaseProvider {
743
744
  content: options.input.text,
744
745
  });
745
746
  }
747
+ // Capture instance references before the stream for use in the finally block.
748
+ const ollamaNeurolink = this.neurolink;
749
+ const ollamaProviderName = this.providerName;
750
+ const ollamaModelName = this.modelName || FALLBACK_OLLAMA_MODEL;
746
751
  // Conversation loop for multi-step tool execution
752
+ let totalInputTokens = 0;
753
+ let totalOutputTokens = 0;
754
+ let lastFinishReason;
755
+ let ollamaStreamErrored = false;
747
756
  const stream = new ReadableStream({
748
757
  start: async (controller) => {
749
758
  try {
750
759
  while (iteration < maxIterations) {
751
760
  logger.debug(`[OllamaProvider] Conversation iteration ${iteration + 1}/${maxIterations}`);
752
- // Make API request
761
+ // Make API request — request usage in stream_options so
762
+ // Pipeline B gets real token counts for Langfuse cost dashboards.
753
763
  const response = await proxyFetch(`${this.baseUrl}/v1/chat/completions`, {
754
764
  method: "POST",
755
765
  headers: { "Content-Type": "application/json" },
@@ -759,6 +769,7 @@ export class OllamaProvider extends BaseProvider {
759
769
  tools: ollamaTools,
760
770
  tool_choice: "auto",
761
771
  stream: true,
772
+ stream_options: { include_usage: true },
762
773
  temperature: options.temperature,
763
774
  max_tokens: options.maxTokens,
764
775
  }),
@@ -768,7 +779,15 @@ export class OllamaProvider extends BaseProvider {
768
779
  throw this.handleProviderError(await createOllamaHttpError(response));
769
780
  }
770
781
  // Process response stream
771
- const { content, toolCalls, finishReason } = await this.processOllamaResponse(response, controller);
782
+ const { content, toolCalls, finishReason, usage } = await this.processOllamaResponse(response, controller);
783
+ // Accumulate usage across iterations for Pipeline B
784
+ if (usage) {
785
+ totalInputTokens += usage.input;
786
+ totalOutputTokens += usage.output;
787
+ }
788
+ if (finishReason) {
789
+ lastFinishReason = finishReason;
790
+ }
772
791
  // Add assistant message to history
773
792
  const assistantMessage = {
774
793
  role: "assistant",
@@ -822,20 +841,53 @@ export class OllamaProvider extends BaseProvider {
822
841
  }
823
842
  }
824
843
  if (iteration >= maxIterations) {
844
+ ollamaStreamErrored = true;
825
845
  controller.error(new Error(`Ollama conversation exceeded maximum iterations (${maxIterations})`));
826
846
  }
827
847
  }
828
848
  catch (error) {
849
+ ollamaStreamErrored = true;
829
850
  controller.error(error);
830
851
  }
831
852
  finally {
832
- // Resolve analytics with final values now that the loop has completed.
833
- resolveAnalytics(createAnalytics(this.providerName, this.modelName || FALLBACK_OLLAMA_MODEL, { usage: { input: 0, output: 0, total: 0 } }, Date.now() - startTime, {
853
+ // Resolve analytics with accumulated token counts so Pipeline A
854
+ // and Pipeline B both get real usage data from Ollama.
855
+ const aggregatedUsage = {
856
+ input: totalInputTokens,
857
+ output: totalOutputTokens,
858
+ total: totalInputTokens + totalOutputTokens,
859
+ };
860
+ resolveAnalytics(createAnalytics(this.providerName, this.modelName || FALLBACK_OLLAMA_MODEL, { usage: aggregatedUsage }, Date.now() - startTime, {
834
861
  requestId: `ollama-stream-${Date.now()}`,
835
862
  streamingMode: true,
836
863
  iterations: iteration,
837
- note: "Token usage not available from Ollama streaming responses",
838
864
  }));
865
+ // Emit generation:end so Pipeline B (Langfuse) creates a GENERATION
866
+ // observation. Ollama bypasses the Vercel AI SDK so
867
+ // experimental_telemetry is never injected; we emit manually.
868
+ const ollamaEmitter = ollamaNeurolink?.getEventEmitter();
869
+ if (ollamaEmitter) {
870
+ // Collect accumulated text from conversation history
871
+ const accumulatedContent = conversationHistory
872
+ .filter((m) => m.role === "assistant")
873
+ .map((m) => m.content)
874
+ .join("");
875
+ ollamaEmitter.emit("generation:end", {
876
+ provider: ollamaProviderName,
877
+ responseTime: Date.now() - startTime,
878
+ timestamp: Date.now(),
879
+ result: {
880
+ content: accumulatedContent,
881
+ usage: aggregatedUsage,
882
+ model: ollamaModelName,
883
+ provider: ollamaProviderName,
884
+ finishReason: ollamaStreamErrored
885
+ ? "error"
886
+ : (lastFinishReason ?? "stop"),
887
+ },
888
+ success: !ollamaStreamErrored,
889
+ });
890
+ }
839
891
  }
840
892
  },
841
893
  });
@@ -1075,6 +1127,7 @@ export class OllamaProvider extends BaseProvider {
1075
1127
  let aggregatedContent = "";
1076
1128
  let aggregatedToolCalls = [];
1077
1129
  let finalFinishReason;
1130
+ let finalUsage;
1078
1131
  try {
1079
1132
  while (true) {
1080
1133
  const { done, value } = await reader.read();
@@ -1092,6 +1145,19 @@ export class OllamaProvider extends BaseProvider {
1092
1145
  }
1093
1146
  try {
1094
1147
  const parsed = JSON.parse(dataLine);
1148
+ // OpenAI-compatible usage chunk (Ollama may include usage
1149
+ // in the final chunk when stream_options.include_usage is set,
1150
+ // or as a standalone chunk with empty choices).
1151
+ const parsedUsage = parsed.usage;
1152
+ if (parsedUsage) {
1153
+ const input = parsedUsage.prompt_tokens ?? 0;
1154
+ const output = parsedUsage.completion_tokens ?? 0;
1155
+ finalUsage = {
1156
+ input,
1157
+ output,
1158
+ total: parsedUsage.total_tokens ?? input + output,
1159
+ };
1160
+ }
1095
1161
  const processed = this.processOllamaStreamData(parsed);
1096
1162
  if (!processed) {
1097
1163
  continue;
@@ -1129,6 +1195,7 @@ export class OllamaProvider extends BaseProvider {
1129
1195
  content: aggregatedContent || undefined,
1130
1196
  toolCalls: aggregatedToolCalls.length > 0 ? aggregatedToolCalls : undefined,
1131
1197
  finishReason: finalFinishReason,
1198
+ usage: finalUsage,
1132
1199
  };
1133
1200
  }
1134
1201
  /**
@@ -1413,6 +1480,18 @@ export class OllamaProvider extends BaseProvider {
1413
1480
  });
1414
1481
  }
1415
1482
  }
1483
+ // Emit tool:end for each completed tool result so Pipeline B
1484
+ // captures telemetry for Ollama-driven tool calls (gap S2).
1485
+ emitToolEndFromStepFinish(this.neurolink?.getEventEmitter(), toolResultsForStorage.map((tr) => {
1486
+ const hasError = tr.result && typeof tr.result === "object" && "error" in tr.result;
1487
+ return {
1488
+ toolName: tr.toolName,
1489
+ result: tr.result,
1490
+ error: hasError
1491
+ ? String(tr.result.error)
1492
+ : undefined,
1493
+ };
1494
+ }));
1416
1495
  // Store tool executions (similar to Bedrock)
1417
1496
  this.handleToolExecutionStorage(toolCallsForStorage, toolResultsForStorage, options, new Date()).catch((error) => {
1418
1497
  logger.warn("[OllamaProvider] Failed to store tool executions", {
@@ -42,6 +42,8 @@ export declare class OpenAIProvider extends BaseProvider {
42
42
  * Validate tool structure for OpenAI compatibility
43
43
  * More lenient validation to avoid filtering out valid tools
44
44
  */
45
+ /** Shared helper: mark a stream span as ERROR, record the exception, and end it. */
46
+ private endStreamSpanWithError;
45
47
  private isValidToolStructure;
46
48
  /**
47
49
  * Validate tool parameters for OpenAI compatibility
@@ -13,6 +13,7 @@ import { createOpenAIConfig, getProviderModel, validateApiKey, } from "../utils/
13
13
  import { isZodSchema } from "../utils/schemaConversion.js";
14
14
  import { composeAbortSignals, createTimeoutController, TimeoutError, } from "../utils/timeout.js";
15
15
  import { resolveToolChoice } from "../utils/toolChoice.js";
16
+ import { emitToolEndFromStepFinish } from "../utils/toolEndEmitter.js";
16
17
  import { getModelId } from "./providerTypeUtils.js";
17
18
  /**
18
19
  * Retrieve a tool's schema, handling both AI SDK v6 (`inputSchema`) and
@@ -154,6 +155,17 @@ export class OpenAIProvider extends BaseProvider {
154
155
  * Validate tool structure for OpenAI compatibility
155
156
  * More lenient validation to avoid filtering out valid tools
156
157
  */
158
+ /** Shared helper: mark a stream span as ERROR, record the exception, and end it. */
159
+ endStreamSpanWithError(span, error) {
160
+ span.setStatus({
161
+ code: SpanStatusCode.ERROR,
162
+ message: error instanceof Error ? error.message : String(error),
163
+ });
164
+ if (error instanceof Error) {
165
+ span.recordException(error);
166
+ }
167
+ span.end();
168
+ }
157
169
  isValidToolStructure(tool) {
158
170
  if (!tool || typeof tool !== "object") {
159
171
  return false;
@@ -337,6 +349,9 @@ export class OpenAIProvider extends BaseProvider {
337
349
  toolResults,
338
350
  toolCalls,
339
351
  });
352
+ // Emit tool:end for each completed tool result so Pipeline B
353
+ // captures telemetry for AI-SDK-driven tool calls (gap S2).
354
+ emitToolEndFromStepFinish(this.neurolink?.getEventEmitter(), toolResults);
340
355
  // Handle tool execution storage
341
356
  this.handleToolExecutionStorage(toolCalls, toolResults, options, new Date()).catch((error) => {
342
357
  logger.warn("[OpenAIProvider] Failed to store tool executions", {
@@ -348,7 +363,7 @@ export class OpenAIProvider extends BaseProvider {
348
363
  });
349
364
  }
350
365
  catch (streamError) {
351
- streamSpan.end();
366
+ this.endStreamSpanWithError(streamSpan, streamError);
352
367
  throw streamError;
353
368
  }
354
369
  // Collect token usage and finish reason asynchronously when the stream completes,
@@ -381,11 +396,7 @@ export class OpenAIProvider extends BaseProvider {
381
396
  streamSpan.end();
382
397
  })
383
398
  .catch((err) => {
384
- streamSpan.setStatus({
385
- code: SpanStatusCode.ERROR,
386
- message: err instanceof Error ? err.message : String(err),
387
- });
388
- streamSpan.end();
399
+ this.endStreamSpanWithError(streamSpan, err);
389
400
  });
390
401
  timeoutController?.cleanup();
391
402
  // Debug the actual result structure
@@ -6,6 +6,7 @@ import { DEFAULT_MAX_STEPS } from "../core/constants.js";
6
6
  import { streamAnalyticsCollector } from "../core/streamAnalytics.js";
7
7
  import { createProxyFetch } from "../proxy/proxyFetch.js";
8
8
  import { isAbortError } from "../utils/errorHandling.js";
9
+ import { emitToolEndFromStepFinish } from "../utils/toolEndEmitter.js";
9
10
  import { logger } from "../utils/logger.js";
10
11
  import { getProviderModel } from "../utils/providerConfig.js";
11
12
  import { composeAbortSignals, createTimeoutController, TimeoutError, } from "../utils/timeout.js";
@@ -273,6 +274,7 @@ export class OpenRouterProvider extends BaseProvider {
273
274
  chunkCount++;
274
275
  },
275
276
  onStepFinish: ({ toolCalls, toolResults }) => {
277
+ emitToolEndFromStepFinish(this.neurolink?.getEventEmitter(), toolResults);
276
278
  logger.info("Tool execution completed", {
277
279
  toolCallCount: toolCalls?.length || 0,
278
280
  toolResultCount: toolResults?.length || 0,
@@ -4,6 +4,7 @@ import { BaseProvider } from "../core/baseProvider.js";
4
4
  import { DEFAULT_MAX_STEPS } from "../core/constants.js";
5
5
  import { streamAnalyticsCollector } from "../core/streamAnalytics.js";
6
6
  import { createProxyFetch } from "../proxy/proxyFetch.js";
7
+ import { emitToolEndFromStepFinish } from "../utils/toolEndEmitter.js";
7
8
  import { logger } from "../utils/logger.js";
8
9
  import { composeAbortSignals, createTimeoutController, TimeoutError, } from "../utils/timeout.js";
9
10
  import { resolveToolChoice } from "../utils/toolChoice.js";
@@ -197,6 +198,7 @@ export class OpenAICompatibleProvider extends BaseProvider {
197
198
  experimental_telemetry: this.telemetryHandler.getTelemetryConfig(options),
198
199
  experimental_repairToolCall: this.getToolCallRepairFn(options),
199
200
  onStepFinish: (event) => {
201
+ emitToolEndFromStepFinish(this.neurolink?.getEventEmitter(), event.toolResults);
200
202
  this.handleToolExecutionStorage([...event.toolCalls], [...event.toolResults], options, new Date()).catch((error) => {
201
203
  logger.warn("[OpenAiCompatibleProvider] Failed to store tool executions", {
202
204
  provider: this.providerName,
@@ -4,38 +4,7 @@
4
4
  * This module provides intelligent detection of SageMaker endpoint capabilities
5
5
  * including model type identification and streaming protocol support.
6
6
  */
7
- import type { SageMakerConfig, SageMakerModelConfig, StreamingCapability } from "../../types/index.js";
8
- /**
9
- * Model type detection result
10
- */
11
- type ModelDetectionResult = {
12
- /** Primary model type */
13
- type: StreamingCapability["modelType"];
14
- /** Detection confidence (0-1) */
15
- confidence: number;
16
- /** Evidence used for detection */
17
- evidence: string[];
18
- /** Suggested configuration */
19
- suggestedConfig?: Partial<SageMakerModelConfig>;
20
- };
21
- /**
22
- * Endpoint health and metadata information
23
- */
24
- type EndpointHealth = {
25
- /** Health status */
26
- status: "healthy" | "unhealthy" | "unknown";
27
- /** Response time in milliseconds */
28
- responseTime: number;
29
- /** Endpoint metadata if available */
30
- metadata?: Record<string, unknown>;
31
- /** Model information if discoverable */
32
- modelInfo?: {
33
- name?: string;
34
- version?: string;
35
- framework?: string;
36
- architecture?: string;
37
- };
38
- };
7
+ import type { EndpointHealth, ModelDetectionResult, SageMakerConfig, StreamingCapability } from "../../types/index.js";
39
8
  /**
40
9
  * SageMaker Model Detection and Capability Discovery Service
41
10
  */
@@ -150,4 +119,3 @@ export declare class SageMakerDetector {
150
119
  * Create a detector instance with configuration
151
120
  */
152
121
  export declare function createSageMakerDetector(config: SageMakerConfig): SageMakerDetector;
153
- export {};
@@ -3,30 +3,7 @@
3
3
  *
4
4
  * Provides basic diagnostic functions for SageMaker configuration and connectivity.
5
5
  */
6
- /**
7
- * Simple diagnostic result interface
8
- */
9
- type DiagnosticResult = {
10
- name: string;
11
- category: "configuration" | "connectivity" | "streaming";
12
- status: "pass" | "fail" | "warning";
13
- message: string;
14
- details?: string;
15
- recommendation?: string;
16
- };
17
- /**
18
- * Diagnostic report interface
19
- */
20
- type DiagnosticReport = {
21
- overallStatus: "healthy" | "issues" | "critical";
22
- results: DiagnosticResult[];
23
- summary: {
24
- total: number;
25
- passed: number;
26
- failed: number;
27
- warnings: number;
28
- };
29
- };
6
+ import type { DiagnosticReport } from "../../types/index.js";
30
7
  /**
31
8
  * Run quick diagnostics for SageMaker configuration
32
9
  */
@@ -35,4 +12,3 @@ export declare function runQuickDiagnostics(endpoint?: string): Promise<Diagnost
35
12
  * Format diagnostic report for console output
36
13
  */
37
14
  export declare function formatDiagnosticReport(report: DiagnosticReport): string;
38
- export {};
@@ -4,7 +4,7 @@
4
4
  * This module implements the LanguageModel interface for Amazon SageMaker
5
5
  * integration with the Vercel AI SDK.
6
6
  */
7
- import type { SageMakerAsLanguageModel, SageMakerConfig, SageMakerModelConfig, ConnectivityResult } from "../../types/index.js";
7
+ import type { ConnectivityResult, SageMakerAsLanguageModel, SageMakerConfig, SageMakerModelConfig } from "../../types/index.js";
8
8
  /**
9
9
  * SageMaker Language Model implementing LanguageModel interface
10
10
  *
@@ -136,6 +136,10 @@ function failOnUnresolvedAccountCredentials(obj) {
136
136
  "Set the required environment variables or provide defaults with ${VAR:-default}.");
137
137
  }
138
138
  }
139
+ // ---------------------------------------------------------------------------
140
+ // YAML parsing (dynamic import with fallback)
141
+ // ---------------------------------------------------------------------------
142
+ /** Shape of the dynamically-imported `js-yaml` module. */
139
143
  /**
140
144
  * Parse YAML content into a JS object.
141
145
  * Uses `js-yaml` if available (dynamic import), otherwise falls back to
@@ -1,19 +1,3 @@
1
- type ProxyEnvSource = "cli" | "environment" | "default" | "none";
2
- type ProxyEnvResolution = {
3
- path?: string;
4
- source: ProxyEnvSource;
5
- required: boolean;
6
- };
7
- type ProxyEnvLoadResult = {
8
- loaded: boolean;
9
- path?: string;
10
- source: ProxyEnvSource;
11
- };
12
- type ProxyEnvOptions = {
13
- explicitEnvFile?: string;
14
- env?: NodeJS.ProcessEnv;
15
- homeDir?: string;
16
- };
1
+ import type { ProxyEnvLoadResult, ProxyEnvOptions, ProxyEnvResolution } from "../types/index.js";
17
2
  export declare function resolveProxyEnvFile(options?: ProxyEnvOptions): ProxyEnvResolution;
18
3
  export declare function loadProxyEnvFile(options?: ProxyEnvOptions): Promise<ProxyEnvLoadResult>;
19
- export {};
@@ -1,5 +1,4 @@
1
1
  import type { ProxyHealthResponse, ProxyReadinessState } from "../types/index.js";
2
- export type { ProxyHealthResponse, ProxyReadinessState };
3
2
  export declare function createProxyReadinessState(startTimeMs?: number): ProxyReadinessState;
4
3
  export declare function markProxyReady(state: ProxyReadinessState, readyAtMs?: number): void;
5
4
  export declare function buildProxyHealthResponse(state: ProxyReadinessState, options: {
@@ -14,42 +14,7 @@
14
14
  * - TelemetryService for metrics recording
15
15
  */
16
16
  import { type Span } from "@opentelemetry/api";
17
- type ProxyRequestContext = {
18
- requestId: string;
19
- method: string;
20
- path: string;
21
- model: string;
22
- stream: boolean;
23
- toolCount: number;
24
- sessionId?: string;
25
- userAgent?: string;
26
- clientApp?: string;
27
- };
28
- type AccountSelectionContext = {
29
- strategy: string;
30
- accountsTotal: number;
31
- accountsHealthy: number;
32
- selectedAccount: string;
33
- accountType: string;
34
- rateLimitBefore5h?: number;
35
- rateLimitBefore7d?: number;
36
- };
37
- type UpstreamAttemptContext = {
38
- attempt: number;
39
- account: string;
40
- polyfillHeaders: boolean;
41
- polyfillBody: boolean;
42
- upstreamUrl: string;
43
- };
44
- type UsageContext = {
45
- inputTokens: number;
46
- outputTokens: number;
47
- cacheCreationTokens: number;
48
- cacheReadTokens: number;
49
- reasoningTokens?: number;
50
- rateLimitAfter5h?: number;
51
- rateLimitAfter7d?: number;
52
- };
17
+ import type { AccountSelectionContext, ProxyRequestContext, UpstreamAttemptContext, UsageContext } from "../types/index.js";
53
18
  declare class ProxyTracer {
54
19
  private readonly rootSpan;
55
20
  private readonly proxyTracer;
@@ -20,6 +20,15 @@ import { calculateCost } from "../utils/pricing.js";
20
20
  import { TelemetryService } from "../telemetry/telemetryService.js";
21
21
  import { logger } from "../utils/logger.js";
22
22
  const LOG_PREFIX = "[ProxyTracer]";
23
+ // ---------------------------------------------------------------------------
24
+ // OTEL Metric Instruments — lazy singleton
25
+ //
26
+ // The MeterProvider is registered in initializeOpenTelemetry() which runs
27
+ // *after* module import time. @opentelemetry/api v1.x getMeter() returns a
28
+ // NoopMeter if called before a real MeterProvider is set. We therefore
29
+ // defer instrument creation until the first ProxyTracer.end() call, at which
30
+ // point the MeterProvider is guaranteed to be registered.
31
+ // ---------------------------------------------------------------------------
23
32
  let _metrics = null;
24
33
  function getProxyMetrics() {
25
34
  if (_metrics) {
@@ -4,12 +4,7 @@
4
4
  * threshold by efficiently reading only the tail of today's debug log file.
5
5
  * Used by the auto-update system to find safe windows for restarts.
6
6
  */
7
- /** Result of a traffic-quiet check. */
8
- type QuietStatus = {
9
- isQuiet: boolean;
10
- lastActivityAt: Date | null;
11
- silenceDurationMs: number;
12
- };
7
+ import type { QuietStatus } from "../types/index.js";
13
8
  /**
14
9
  * Check whether proxy traffic has been quiet (no requests) for at least
15
10
  * `quietThresholdMs` milliseconds.
@@ -20,4 +15,3 @@ type QuietStatus = {
20
15
  * @returns QuietStatus with the idle analysis.
21
16
  */
22
17
  export declare function checkTrafficQuiet(quietThresholdMs?: number): QuietStatus;
23
- export {};
@@ -1,11 +1,2 @@
1
- type RawStreamCapture = {
2
- totalBytes: number;
3
- text: string;
4
- truncated: boolean;
5
- };
6
- type RawStreamCaptureResult = {
7
- stream: TransformStream<Uint8Array, Uint8Array>;
8
- capture: Promise<RawStreamCapture>;
9
- };
1
+ import type { RawStreamCaptureResult } from "../types/index.js";
10
2
  export declare function createRawStreamCapture(): RawStreamCaptureResult;
11
- export {};
@@ -5,7 +5,7 @@
5
5
  * when a LoggerProvider is configured via OpenTelemetry instrumentation.
6
6
  * Useful for debugging and auditing proxy traffic.
7
7
  */
8
- import type { RequestAttemptLogEntry, RequestLogEntry } from "../types/index.js";
8
+ import type { ProxyBodyCaptureEntry, RequestAttemptLogEntry, RequestLogEntry } from "../types/index.js";
9
9
  export declare function initRequestLogger(enabled?: boolean, customLogsDir?: string): void;
10
10
  export declare function logRequest(entry: RequestLogEntry): Promise<void>;
11
11
  /**
@@ -15,25 +15,6 @@ export declare function logRequest(entry: RequestLogEntry): Promise<void>;
15
15
  */
16
16
  export declare function logRequestAttempt(entry: RequestAttemptLogEntry): Promise<void>;
17
17
  export declare function getLogDir(): string | null;
18
- type ProxyBodyCaptureEntry = {
19
- timestamp: string;
20
- requestId: string;
21
- phase: string;
22
- model: string;
23
- stream: boolean;
24
- headers?: Record<string, string>;
25
- body?: unknown;
26
- bodySize?: number;
27
- contentType?: string;
28
- responseStatus?: number;
29
- durationMs?: number;
30
- account?: string;
31
- accountType?: string;
32
- attempt?: number;
33
- traceId?: string;
34
- spanId?: string;
35
- metadata?: Record<string, unknown>;
36
- };
37
18
  export declare function logBodyCapture(entry: ProxyBodyCaptureEntry): Promise<void>;
38
19
  /**
39
20
  * Log the FULL raw request and response for debugging.
@@ -74,4 +55,3 @@ export declare function logStreamError(entry: {
74
55
  * Non-fatal — proxy keeps working even if cleanup fails.
75
56
  */
76
57
  export declare function cleanupLogs(maxAgeDays?: number, maxSizeMb?: number): void;
77
- export {};
@@ -1,5 +1,4 @@
1
- import type { ClaudeProxyModelTier, FallbackEntry, ParsedClaudeRequest, ProxyTranslationAttempt, ProxyTranslationPlan } from "../types/index.js";
2
- export type { ClaudeProxyModelTier, ProxyTranslationAttempt, ProxyTranslationPlan, };
1
+ import type { ClaudeProxyModelTier, FallbackEntry, ParsedClaudeRequest, ProxyTranslationPlan } from "../types/index.js";
3
2
  export declare function inferClaudeProxyModelTier(modelName: string): ClaudeProxyModelTier;
4
3
  /**
5
4
  * Build a translation plan for a Claude-compatible proxy request.
@@ -15,71 +15,7 @@
15
15
  * upstreamResponse.body.pipeThrough(stream).pipeTo(clientWritable);
16
16
  * const data = await telemetry; // resolves on stream end
17
17
  */
18
- type SSEContentBlock = {
19
- index: number;
20
- type: "text" | "thinking" | "tool_use" | "tool_result";
21
- /** Accumulated text for text blocks. Capped at MAX_BLOCK_CONTENT_BYTES. */
22
- text?: string;
23
- /** Accumulated thinking content. Capped at MAX_BLOCK_CONTENT_BYTES. */
24
- thinking?: string;
25
- /** Tool name for tool_use blocks. */
26
- toolName?: string;
27
- /** Tool call id for tool_use blocks. */
28
- toolId?: string;
29
- /** Accumulated partial JSON input for tool_use blocks. Capped at MAX_BLOCK_CONTENT_BYTES. */
30
- toolInput?: string;
31
- };
32
- type SSETelemetry = {
33
- /** Message id from message_start. */
34
- messageId: string;
35
- /** Model string from message_start. */
36
- model: string;
37
- /** Token usage aggregated from message_start + message_delta. */
38
- usage: {
39
- inputTokens: number;
40
- outputTokens: number;
41
- cacheCreationInputTokens: number;
42
- cacheReadInputTokens: number;
43
- totalTokens: number;
44
- };
45
- /** All content blocks accumulated during the stream. */
46
- contentBlocks: SSEContentBlock[];
47
- /** Stop reason from message_delta, e.g. "end_turn". */
48
- stopReason: string | null;
49
- /** Stop sequence from message_delta, if any. */
50
- stopSequence: string | null;
51
- /** Total number of SSE events observed. */
52
- eventCount: number;
53
- /** Wall-clock duration from first byte to stream end (ms). */
54
- streamDurationMs: number;
55
- /** Total bytes received from upstream (raw SSE stream size). */
56
- totalBytesReceived: number;
57
- /**
58
- * Raw SSE event log. For content_block_delta events only the type is
59
- * stored (not the full data payload) to avoid excessive memory use.
60
- * All other events store the full data string.
61
- */
62
- events: Array<{
63
- type: string;
64
- timestamp: number;
65
- data: string;
66
- }>;
67
- /** Full raw SSE transcript, when captureRawText is enabled. */
68
- rawText?: string;
69
- };
70
- type SSEInterceptorResult = {
71
- /** Pipe the upstream response through this stream. */
72
- stream: TransformStream<Uint8Array, Uint8Array>;
73
- /**
74
- * Resolves with the accumulated telemetry when the stream finishes.
75
- * If the stream errors, the promise resolves with whatever telemetry
76
- * was gathered up to that point (never rejects).
77
- */
78
- telemetry: Promise<SSETelemetry>;
79
- };
80
- type SSEInterceptorOptions = {
81
- captureRawText?: boolean;
82
- };
18
+ import type { SSEInterceptorOptions, SSEInterceptorResult } from "../types/index.js";
83
19
  /**
84
20
  * Create an SSE interceptor that extracts telemetry from an Anthropic
85
21
  * streaming response while passing all bytes through unmodified.
@@ -95,4 +31,3 @@ type SSEInterceptorOptions = {
95
31
  * ```
96
32
  */
97
33
  export declare function createSSEInterceptor(options?: SSEInterceptorOptions): SSEInterceptorResult;
98
- export {};