@juspay/neurolink 9.31.2 → 9.32.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (571) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/auth/AuthProviderFactory.d.ts +71 -0
  3. package/dist/auth/AuthProviderFactory.js +111 -0
  4. package/dist/auth/AuthProviderRegistry.d.ts +33 -0
  5. package/dist/auth/AuthProviderRegistry.js +190 -0
  6. package/dist/auth/RequestContext.d.ts +23 -0
  7. package/dist/auth/RequestContext.js +78 -0
  8. package/dist/auth/anthropicOAuth.js +1 -1
  9. package/dist/auth/authContext.d.ts +198 -0
  10. package/dist/auth/authContext.js +314 -0
  11. package/dist/auth/errors.d.ts +63 -0
  12. package/dist/auth/errors.js +39 -0
  13. package/dist/auth/index.d.ts +20 -8
  14. package/dist/auth/index.js +35 -7
  15. package/dist/auth/middleware/AuthMiddleware.d.ts +181 -0
  16. package/dist/auth/middleware/AuthMiddleware.js +519 -0
  17. package/dist/auth/middleware/rateLimitByUser.d.ts +282 -0
  18. package/dist/auth/middleware/rateLimitByUser.js +554 -0
  19. package/dist/auth/providers/BaseAuthProvider.d.ts +259 -0
  20. package/dist/auth/providers/BaseAuthProvider.js +723 -0
  21. package/dist/auth/providers/CognitoProvider.d.ts +61 -0
  22. package/dist/auth/providers/CognitoProvider.js +304 -0
  23. package/dist/auth/providers/KeycloakProvider.d.ts +61 -0
  24. package/dist/auth/providers/KeycloakProvider.js +393 -0
  25. package/dist/auth/providers/auth0.d.ts +59 -0
  26. package/dist/auth/providers/auth0.js +274 -0
  27. package/dist/auth/providers/betterAuth.d.ts +51 -0
  28. package/dist/auth/providers/betterAuth.js +182 -0
  29. package/dist/auth/providers/clerk.d.ts +65 -0
  30. package/dist/auth/providers/clerk.js +317 -0
  31. package/dist/auth/providers/custom.d.ts +64 -0
  32. package/dist/auth/providers/custom.js +112 -0
  33. package/dist/auth/providers/firebase.d.ts +63 -0
  34. package/dist/auth/providers/firebase.js +226 -0
  35. package/dist/auth/providers/jwt.d.ts +68 -0
  36. package/dist/auth/providers/jwt.js +212 -0
  37. package/dist/auth/providers/oauth2.d.ts +73 -0
  38. package/dist/auth/providers/oauth2.js +303 -0
  39. package/dist/auth/providers/supabase.d.ts +63 -0
  40. package/dist/auth/providers/supabase.js +259 -0
  41. package/dist/auth/providers/workos.d.ts +61 -0
  42. package/dist/auth/providers/workos.js +284 -0
  43. package/dist/auth/serverBridge.d.ts +14 -0
  44. package/dist/auth/serverBridge.js +25 -0
  45. package/dist/auth/sessionManager.d.ts +142 -0
  46. package/dist/auth/sessionManager.js +437 -0
  47. package/dist/cli/commands/authProviders.d.ts +43 -0
  48. package/dist/cli/commands/authProviders.js +399 -0
  49. package/dist/cli/commands/proxy.js +18 -5
  50. package/dist/cli/factories/authCommandFactory.d.ts +23 -5
  51. package/dist/cli/factories/authCommandFactory.js +108 -5
  52. package/dist/cli/parser.js +1 -1
  53. package/dist/client/aiSdkAdapter.js +1 -1
  54. package/dist/client/index.js +138 -477
  55. package/dist/core/factory.js +0 -1
  56. package/dist/core/infrastructure/baseRegistry.d.ts +3 -1
  57. package/dist/core/infrastructure/baseRegistry.js +5 -1
  58. package/dist/core/redisConversationMemoryManager.js +1 -1
  59. package/dist/features/ppt/slideGenerator.js +0 -1
  60. package/dist/features/ppt/utils.js +0 -1
  61. package/dist/index.d.ts +1 -0
  62. package/dist/index.js +25 -0
  63. package/dist/lib/auth/AuthProviderFactory.d.ts +71 -0
  64. package/dist/lib/auth/AuthProviderFactory.js +112 -0
  65. package/dist/lib/auth/AuthProviderRegistry.d.ts +33 -0
  66. package/dist/lib/auth/AuthProviderRegistry.js +191 -0
  67. package/dist/lib/auth/RequestContext.d.ts +23 -0
  68. package/dist/lib/auth/RequestContext.js +79 -0
  69. package/dist/lib/auth/authContext.d.ts +198 -0
  70. package/dist/lib/auth/authContext.js +315 -0
  71. package/dist/lib/auth/errors.d.ts +63 -0
  72. package/dist/lib/auth/errors.js +40 -0
  73. package/dist/lib/auth/index.d.ts +20 -8
  74. package/dist/lib/auth/index.js +35 -7
  75. package/dist/lib/auth/middleware/AuthMiddleware.d.ts +181 -0
  76. package/dist/lib/auth/middleware/AuthMiddleware.js +520 -0
  77. package/dist/lib/auth/middleware/rateLimitByUser.d.ts +282 -0
  78. package/dist/lib/auth/middleware/rateLimitByUser.js +555 -0
  79. package/dist/lib/auth/providers/BaseAuthProvider.d.ts +259 -0
  80. package/dist/lib/auth/providers/BaseAuthProvider.js +724 -0
  81. package/dist/lib/auth/providers/CognitoProvider.d.ts +61 -0
  82. package/dist/lib/auth/providers/CognitoProvider.js +305 -0
  83. package/dist/lib/auth/providers/KeycloakProvider.d.ts +61 -0
  84. package/dist/lib/auth/providers/KeycloakProvider.js +394 -0
  85. package/dist/lib/auth/providers/auth0.d.ts +59 -0
  86. package/dist/lib/auth/providers/auth0.js +275 -0
  87. package/dist/lib/auth/providers/betterAuth.d.ts +51 -0
  88. package/dist/lib/auth/providers/betterAuth.js +183 -0
  89. package/dist/lib/auth/providers/clerk.d.ts +65 -0
  90. package/dist/lib/auth/providers/clerk.js +318 -0
  91. package/dist/lib/auth/providers/custom.d.ts +64 -0
  92. package/dist/lib/auth/providers/custom.js +113 -0
  93. package/dist/lib/auth/providers/firebase.d.ts +63 -0
  94. package/dist/lib/auth/providers/firebase.js +227 -0
  95. package/dist/lib/auth/providers/jwt.d.ts +68 -0
  96. package/dist/lib/auth/providers/jwt.js +213 -0
  97. package/dist/lib/auth/providers/oauth2.d.ts +73 -0
  98. package/dist/lib/auth/providers/oauth2.js +304 -0
  99. package/dist/lib/auth/providers/supabase.d.ts +63 -0
  100. package/dist/lib/auth/providers/supabase.js +260 -0
  101. package/dist/lib/auth/providers/workos.d.ts +61 -0
  102. package/dist/lib/auth/providers/workos.js +285 -0
  103. package/dist/lib/auth/serverBridge.d.ts +14 -0
  104. package/dist/lib/auth/serverBridge.js +26 -0
  105. package/dist/lib/auth/sessionManager.d.ts +142 -0
  106. package/dist/lib/auth/sessionManager.js +438 -0
  107. package/dist/lib/core/infrastructure/baseRegistry.d.ts +3 -1
  108. package/dist/lib/core/infrastructure/baseRegistry.js +5 -1
  109. package/dist/lib/index.d.ts +1 -0
  110. package/dist/lib/index.js +25 -0
  111. package/dist/lib/mcp/toolRegistry.js +11 -1
  112. package/dist/lib/neurolink.d.ts +42 -1
  113. package/dist/lib/neurolink.js +218 -0
  114. package/dist/lib/rag/ChunkerRegistry.js +2 -2
  115. package/dist/lib/rag/metadata/MetadataExtractorRegistry.js +2 -2
  116. package/dist/lib/rag/reranker/RerankerRegistry.js +2 -2
  117. package/dist/lib/server/routes/agentRoutes.js +20 -2
  118. package/dist/lib/server/routes/claudeProxyRoutes.js +45 -9
  119. package/dist/lib/types/authTypes.d.ts +937 -1
  120. package/dist/lib/types/authTypes.js +2 -1
  121. package/dist/lib/types/configTypes.d.ts +46 -0
  122. package/dist/lib/types/generateTypes.d.ts +6 -0
  123. package/dist/lib/types/index.d.ts +1 -0
  124. package/dist/lib/types/streamTypes.d.ts +6 -0
  125. package/dist/mcp/elicitationProtocol.js +1 -1
  126. package/dist/mcp/servers/agent/directToolsServer.js +0 -1
  127. package/dist/mcp/toolRegistry.js +11 -1
  128. package/dist/neurolink.d.ts +42 -1
  129. package/dist/neurolink.js +218 -0
  130. package/dist/providers/azureOpenai.js +1 -1
  131. package/dist/providers/huggingFace.js +0 -1
  132. package/dist/providers/openaiCompatible.js +0 -1
  133. package/dist/rag/ChunkerRegistry.js +2 -2
  134. package/dist/rag/metadata/MetadataExtractorRegistry.js +2 -2
  135. package/dist/rag/reranker/RerankerRegistry.js +2 -2
  136. package/dist/sdk/toolRegistration.js +0 -1
  137. package/dist/server/openapi/generator.js +1 -1
  138. package/dist/server/routes/agentRoutes.js +20 -2
  139. package/dist/server/routes/claudeProxyRoutes.js +45 -9
  140. package/dist/types/authTypes.d.ts +937 -1
  141. package/dist/types/authTypes.js +2 -1
  142. package/dist/types/configTypes.d.ts +46 -0
  143. package/dist/types/configTypes.js +0 -5
  144. package/dist/types/generateTypes.d.ts +6 -0
  145. package/dist/types/index.d.ts +1 -0
  146. package/dist/types/modelTypes.js +0 -1
  147. package/dist/types/streamTypes.d.ts +6 -0
  148. package/dist/types/tools.js +0 -1
  149. package/dist/types/typeAliases.js +0 -1
  150. package/dist/types/utilities.js +1 -1
  151. package/dist/types/workflowTypes.js +0 -1
  152. package/dist/utils/providerRetry.js +0 -1
  153. package/dist/utils/providerUtils.js +0 -1
  154. package/package.json +3 -2
  155. package/dist/client/adapters/providerImageAdapter.js +0 -588
  156. package/dist/client/adapters/tts/googleTTSHandler.js +0 -344
  157. package/dist/client/adapters/video/directorPipeline.js +0 -516
  158. package/dist/client/adapters/video/ffmpegAdapter.js +0 -206
  159. package/dist/client/adapters/video/frameExtractor.js +0 -143
  160. package/dist/client/adapters/video/vertexVideoHandler.js +0 -763
  161. package/dist/client/adapters/video/videoAnalyzer.js +0 -238
  162. package/dist/client/adapters/video/videoMerger.js +0 -171
  163. package/dist/client/agent/directTools.js +0 -840
  164. package/dist/client/auth/anthropicOAuth.js +0 -974
  165. package/dist/client/auth/tokenStore.js +0 -799
  166. package/dist/client/client/aiSdkAdapter.js +0 -487
  167. package/dist/client/client/auth.js +0 -473
  168. package/dist/client/client/errors.js +0 -552
  169. package/dist/client/client/httpClient.js +0 -837
  170. package/dist/client/client/index.js +0 -172
  171. package/dist/client/client/interceptors.js +0 -601
  172. package/dist/client/client/sseClient.js +0 -545
  173. package/dist/client/client/streamingClient.js +0 -917
  174. package/dist/client/client/wsClient.js +0 -369
  175. package/dist/client/config/configManager.js +0 -303
  176. package/dist/client/config/conversationMemory.js +0 -86
  177. package/dist/client/config/taskClassificationConfig.js +0 -148
  178. package/dist/client/constants/contextWindows.js +0 -295
  179. package/dist/client/constants/enums.js +0 -853
  180. package/dist/client/constants/index.js +0 -207
  181. package/dist/client/constants/performance.js +0 -389
  182. package/dist/client/constants/retry.js +0 -266
  183. package/dist/client/constants/timeouts.js +0 -182
  184. package/dist/client/constants/tokens.js +0 -380
  185. package/dist/client/constants/videoErrors.js +0 -46
  186. package/dist/client/context/budgetChecker.js +0 -98
  187. package/dist/client/context/contextCompactor.js +0 -205
  188. package/dist/client/context/emergencyTruncation.js +0 -88
  189. package/dist/client/context/errorDetection.js +0 -171
  190. package/dist/client/context/errors.js +0 -21
  191. package/dist/client/context/fileTokenBudget.js +0 -127
  192. package/dist/client/context/prompts/summarizationPrompt.js +0 -117
  193. package/dist/client/context/stages/fileReadDeduplicator.js +0 -66
  194. package/dist/client/context/stages/slidingWindowTruncator.js +0 -190
  195. package/dist/client/context/stages/structuredSummarizer.js +0 -99
  196. package/dist/client/context/stages/toolOutputPruner.js +0 -52
  197. package/dist/client/context/summarizationEngine.js +0 -136
  198. package/dist/client/context/toolOutputLimits.js +0 -78
  199. package/dist/client/context/toolPairRepair.js +0 -66
  200. package/dist/client/core/analytics.js +0 -88
  201. package/dist/client/core/baseProvider.js +0 -1385
  202. package/dist/client/core/constants.js +0 -140
  203. package/dist/client/core/conversationMemoryFactory.js +0 -141
  204. package/dist/client/core/conversationMemoryInitializer.js +0 -128
  205. package/dist/client/core/conversationMemoryManager.js +0 -344
  206. package/dist/client/core/dynamicModels.js +0 -358
  207. package/dist/client/core/evaluation.js +0 -309
  208. package/dist/client/core/evaluationProviders.js +0 -248
  209. package/dist/client/core/factory.js +0 -412
  210. package/dist/client/core/infrastructure/baseError.js +0 -22
  211. package/dist/client/core/infrastructure/baseFactory.js +0 -54
  212. package/dist/client/core/infrastructure/baseRegistry.js +0 -49
  213. package/dist/client/core/infrastructure/index.js +0 -5
  214. package/dist/client/core/infrastructure/retry.js +0 -20
  215. package/dist/client/core/infrastructure/typedEventEmitter.js +0 -23
  216. package/dist/client/core/modelConfiguration.js +0 -851
  217. package/dist/client/core/modules/GenerationHandler.js +0 -588
  218. package/dist/client/core/modules/MessageBuilder.js +0 -273
  219. package/dist/client/core/modules/StreamHandler.js +0 -185
  220. package/dist/client/core/modules/TelemetryHandler.js +0 -203
  221. package/dist/client/core/modules/ToolsManager.js +0 -499
  222. package/dist/client/core/modules/Utilities.js +0 -331
  223. package/dist/client/core/redisConversationMemoryManager.js +0 -1435
  224. package/dist/client/core/streamAnalytics.js +0 -131
  225. package/dist/client/evaluation/contextBuilder.js +0 -134
  226. package/dist/client/evaluation/index.js +0 -61
  227. package/dist/client/evaluation/prompts.js +0 -73
  228. package/dist/client/evaluation/ragasEvaluator.js +0 -110
  229. package/dist/client/evaluation/retryManager.js +0 -78
  230. package/dist/client/evaluation/scoring.js +0 -61
  231. package/dist/client/factories/providerFactory.js +0 -166
  232. package/dist/client/factories/providerRegistry.js +0 -166
  233. package/dist/client/features/ppt/constants.js +0 -896
  234. package/dist/client/features/ppt/contentPlanner.js +0 -529
  235. package/dist/client/features/ppt/presentationOrchestrator.js +0 -236
  236. package/dist/client/features/ppt/slideGenerator.js +0 -532
  237. package/dist/client/features/ppt/slideRenderers.js +0 -2383
  238. package/dist/client/features/ppt/slideTypeInference.js +0 -405
  239. package/dist/client/features/ppt/types.js +0 -13
  240. package/dist/client/features/ppt/utils.js +0 -443
  241. package/dist/client/files/fileReferenceRegistry.js +0 -1543
  242. package/dist/client/files/fileTools.js +0 -450
  243. package/dist/client/files/streamingReader.js +0 -321
  244. package/dist/client/files/types.js +0 -23
  245. package/dist/client/hitl/hitlErrors.js +0 -54
  246. package/dist/client/hitl/hitlManager.js +0 -460
  247. package/dist/client/mcp/agentExposure.js +0 -356
  248. package/dist/client/mcp/auth/index.js +0 -11
  249. package/dist/client/mcp/auth/oauthClientProvider.js +0 -325
  250. package/dist/client/mcp/auth/tokenStorage.js +0 -134
  251. package/dist/client/mcp/batching/index.js +0 -10
  252. package/dist/client/mcp/batching/requestBatcher.js +0 -441
  253. package/dist/client/mcp/caching/index.js +0 -10
  254. package/dist/client/mcp/caching/toolCache.js +0 -433
  255. package/dist/client/mcp/elicitation/elicitationManager.js +0 -376
  256. package/dist/client/mcp/elicitation/index.js +0 -11
  257. package/dist/client/mcp/elicitation/types.js +0 -10
  258. package/dist/client/mcp/elicitationProtocol.js +0 -375
  259. package/dist/client/mcp/enhancedToolDiscovery.js +0 -481
  260. package/dist/client/mcp/externalServerManager.js +0 -1478
  261. package/dist/client/mcp/factory.js +0 -161
  262. package/dist/client/mcp/flexibleToolValidator.js +0 -161
  263. package/dist/client/mcp/httpRateLimiter.js +0 -391
  264. package/dist/client/mcp/httpRetryHandler.js +0 -178
  265. package/dist/client/mcp/index.js +0 -74
  266. package/dist/client/mcp/mcpCircuitBreaker.js +0 -427
  267. package/dist/client/mcp/mcpClientFactory.js +0 -708
  268. package/dist/client/mcp/mcpRegistryClient.js +0 -488
  269. package/dist/client/mcp/mcpServerBase.js +0 -373
  270. package/dist/client/mcp/multiServerManager.js +0 -579
  271. package/dist/client/mcp/registry.js +0 -158
  272. package/dist/client/mcp/routing/index.js +0 -10
  273. package/dist/client/mcp/routing/toolRouter.js +0 -416
  274. package/dist/client/mcp/serverCapabilities.js +0 -502
  275. package/dist/client/mcp/servers/agent/directToolsServer.js +0 -150
  276. package/dist/client/mcp/toolAnnotations.js +0 -239
  277. package/dist/client/mcp/toolConverter.js +0 -258
  278. package/dist/client/mcp/toolDiscoveryService.js +0 -798
  279. package/dist/client/mcp/toolIntegration.js +0 -334
  280. package/dist/client/mcp/toolRegistry.js +0 -719
  281. package/dist/client/memory/hippocampusInitializer.js +0 -19
  282. package/dist/client/memory/memoryRetrievalTools.js +0 -166
  283. package/dist/client/middleware/builtin/analytics.js +0 -132
  284. package/dist/client/middleware/builtin/autoEvaluation.js +0 -203
  285. package/dist/client/middleware/builtin/guardrails.js +0 -109
  286. package/dist/client/middleware/builtin/lifecycle.js +0 -168
  287. package/dist/client/middleware/factory.js +0 -327
  288. package/dist/client/middleware/registry.js +0 -295
  289. package/dist/client/middleware/utils/guardrailsUtils.js +0 -396
  290. package/dist/client/models/anthropicModels.js +0 -527
  291. package/dist/client/neurolink.js +0 -8015
  292. package/dist/client/observability/exporterRegistry.js +0 -413
  293. package/dist/client/observability/exporters/arizeExporter.js +0 -138
  294. package/dist/client/observability/exporters/baseExporter.js +0 -190
  295. package/dist/client/observability/exporters/braintrustExporter.js +0 -154
  296. package/dist/client/observability/exporters/datadogExporter.js +0 -196
  297. package/dist/client/observability/exporters/laminarExporter.js +0 -302
  298. package/dist/client/observability/exporters/langfuseExporter.js +0 -209
  299. package/dist/client/observability/exporters/langsmithExporter.js +0 -143
  300. package/dist/client/observability/exporters/otelExporter.js +0 -164
  301. package/dist/client/observability/exporters/posthogExporter.js +0 -287
  302. package/dist/client/observability/exporters/sentryExporter.js +0 -165
  303. package/dist/client/observability/index.js +0 -31
  304. package/dist/client/observability/metricsAggregator.js +0 -556
  305. package/dist/client/observability/otelBridge.js +0 -131
  306. package/dist/client/observability/retryPolicy.js +0 -383
  307. package/dist/client/observability/sampling/samplers.js +0 -216
  308. package/dist/client/observability/spanProcessor.js +0 -303
  309. package/dist/client/observability/tokenTracker.js +0 -413
  310. package/dist/client/observability/types/exporterTypes.js +0 -5
  311. package/dist/client/observability/types/index.js +0 -4
  312. package/dist/client/observability/types/spanTypes.js +0 -92
  313. package/dist/client/observability/utils/safeMetadata.js +0 -25
  314. package/dist/client/observability/utils/spanSerializer.js +0 -292
  315. package/dist/client/processors/archive/ArchiveProcessor.js +0 -1308
  316. package/dist/client/processors/base/BaseFileProcessor.js +0 -614
  317. package/dist/client/processors/base/types.js +0 -82
  318. package/dist/client/processors/config/fileTypes.js +0 -520
  319. package/dist/client/processors/config/index.js +0 -92
  320. package/dist/client/processors/config/languageMap.js +0 -410
  321. package/dist/client/processors/config/mimeTypes.js +0 -363
  322. package/dist/client/processors/config/sizeLimits.js +0 -258
  323. package/dist/client/processors/document/ExcelProcessor.js +0 -590
  324. package/dist/client/processors/document/OpenDocumentProcessor.js +0 -212
  325. package/dist/client/processors/document/PptxProcessor.js +0 -157
  326. package/dist/client/processors/document/RtfProcessor.js +0 -361
  327. package/dist/client/processors/document/WordProcessor.js +0 -353
  328. package/dist/client/processors/errors/FileErrorCode.js +0 -255
  329. package/dist/client/processors/errors/errorHelpers.js +0 -386
  330. package/dist/client/processors/errors/errorSerializer.js +0 -507
  331. package/dist/client/processors/errors/index.js +0 -49
  332. package/dist/client/processors/markup/SvgProcessor.js +0 -240
  333. package/dist/client/processors/media/AudioProcessor.js +0 -707
  334. package/dist/client/processors/media/VideoProcessor.js +0 -1045
  335. package/dist/client/providers/amazonBedrock.js +0 -1512
  336. package/dist/client/providers/amazonSagemaker.js +0 -162
  337. package/dist/client/providers/anthropic.js +0 -831
  338. package/dist/client/providers/azureOpenai.js +0 -143
  339. package/dist/client/providers/googleAiStudio.js +0 -1200
  340. package/dist/client/providers/googleNativeGemini3.js +0 -543
  341. package/dist/client/providers/googleVertex.js +0 -2936
  342. package/dist/client/providers/huggingFace.js +0 -315
  343. package/dist/client/providers/litellm.js +0 -488
  344. package/dist/client/providers/mistral.js +0 -157
  345. package/dist/client/providers/ollama.js +0 -1579
  346. package/dist/client/providers/openAI.js +0 -627
  347. package/dist/client/providers/openRouter.js +0 -543
  348. package/dist/client/providers/openaiCompatible.js +0 -290
  349. package/dist/client/providers/providerTypeUtils.js +0 -46
  350. package/dist/client/providers/sagemaker/adaptive-semaphore.js +0 -215
  351. package/dist/client/providers/sagemaker/client.js +0 -472
  352. package/dist/client/providers/sagemaker/config.js +0 -317
  353. package/dist/client/providers/sagemaker/detection.js +0 -606
  354. package/dist/client/providers/sagemaker/error-constants.js +0 -227
  355. package/dist/client/providers/sagemaker/errors.js +0 -299
  356. package/dist/client/providers/sagemaker/language-model.js +0 -775
  357. package/dist/client/providers/sagemaker/parsers.js +0 -634
  358. package/dist/client/providers/sagemaker/streaming.js +0 -331
  359. package/dist/client/providers/sagemaker/structured-parser.js +0 -625
  360. package/dist/client/proxy/accountQuota.js +0 -162
  361. package/dist/client/proxy/claudeFormat.js +0 -595
  362. package/dist/client/proxy/modelRouter.js +0 -29
  363. package/dist/client/proxy/oauthFetch.js +0 -367
  364. package/dist/client/proxy/proxyFetch.js +0 -586
  365. package/dist/client/proxy/requestLogger.js +0 -207
  366. package/dist/client/proxy/tokenRefresh.js +0 -124
  367. package/dist/client/proxy/usageStats.js +0 -74
  368. package/dist/client/proxy/utils/noProxyUtils.js +0 -149
  369. package/dist/client/rag/ChunkerFactory.js +0 -320
  370. package/dist/client/rag/ChunkerRegistry.js +0 -421
  371. package/dist/client/rag/chunkers/BaseChunker.js +0 -143
  372. package/dist/client/rag/chunkers/CharacterChunker.js +0 -28
  373. package/dist/client/rag/chunkers/HTMLChunker.js +0 -38
  374. package/dist/client/rag/chunkers/JSONChunker.js +0 -68
  375. package/dist/client/rag/chunkers/LaTeXChunker.js +0 -63
  376. package/dist/client/rag/chunkers/MarkdownChunker.js +0 -306
  377. package/dist/client/rag/chunkers/RecursiveChunker.js +0 -139
  378. package/dist/client/rag/chunkers/SemanticMarkdownChunker.js +0 -138
  379. package/dist/client/rag/chunkers/SentenceChunker.js +0 -66
  380. package/dist/client/rag/chunkers/TokenChunker.js +0 -61
  381. package/dist/client/rag/chunkers/index.js +0 -15
  382. package/dist/client/rag/chunking/characterChunker.js +0 -142
  383. package/dist/client/rag/chunking/chunkerRegistry.js +0 -194
  384. package/dist/client/rag/chunking/htmlChunker.js +0 -247
  385. package/dist/client/rag/chunking/index.js +0 -17
  386. package/dist/client/rag/chunking/jsonChunker.js +0 -281
  387. package/dist/client/rag/chunking/latexChunker.js +0 -251
  388. package/dist/client/rag/chunking/markdownChunker.js +0 -373
  389. package/dist/client/rag/chunking/recursiveChunker.js +0 -148
  390. package/dist/client/rag/chunking/semanticChunker.js +0 -306
  391. package/dist/client/rag/chunking/sentenceChunker.js +0 -230
  392. package/dist/client/rag/chunking/tokenChunker.js +0 -183
  393. package/dist/client/rag/document/MDocument.js +0 -392
  394. package/dist/client/rag/document/index.js +0 -5
  395. package/dist/client/rag/document/loaders.js +0 -500
  396. package/dist/client/rag/errors/RAGError.js +0 -274
  397. package/dist/client/rag/errors/index.js +0 -6
  398. package/dist/client/rag/graphRag/graphRAG.js +0 -401
  399. package/dist/client/rag/graphRag/index.js +0 -4
  400. package/dist/client/rag/index.js +0 -141
  401. package/dist/client/rag/metadata/MetadataExtractorFactory.js +0 -418
  402. package/dist/client/rag/metadata/MetadataExtractorRegistry.js +0 -362
  403. package/dist/client/rag/metadata/index.js +0 -9
  404. package/dist/client/rag/metadata/metadataExtractor.js +0 -280
  405. package/dist/client/rag/pipeline/RAGPipeline.js +0 -436
  406. package/dist/client/rag/pipeline/contextAssembly.js +0 -341
  407. package/dist/client/rag/pipeline/index.js +0 -5
  408. package/dist/client/rag/ragIntegration.js +0 -321
  409. package/dist/client/rag/reranker/RerankerFactory.js +0 -430
  410. package/dist/client/rag/reranker/RerankerRegistry.js +0 -402
  411. package/dist/client/rag/reranker/index.js +0 -9
  412. package/dist/client/rag/reranker/reranker.js +0 -277
  413. package/dist/client/rag/resilience/CircuitBreaker.js +0 -431
  414. package/dist/client/rag/resilience/RetryHandler.js +0 -304
  415. package/dist/client/rag/resilience/index.js +0 -7
  416. package/dist/client/rag/retrieval/hybridSearch.js +0 -335
  417. package/dist/client/rag/retrieval/index.js +0 -5
  418. package/dist/client/rag/retrieval/vectorQueryTool.js +0 -307
  419. package/dist/client/rag/types.js +0 -8
  420. package/dist/client/sdk/toolRegistration.js +0 -377
  421. package/dist/client/server/abstract/baseServerAdapter.js +0 -575
  422. package/dist/client/server/adapters/expressAdapter.js +0 -486
  423. package/dist/client/server/adapters/fastifyAdapter.js +0 -472
  424. package/dist/client/server/adapters/honoAdapter.js +0 -632
  425. package/dist/client/server/adapters/koaAdapter.js +0 -510
  426. package/dist/client/server/errors.js +0 -486
  427. package/dist/client/server/factory/serverAdapterFactory.js +0 -160
  428. package/dist/client/server/index.js +0 -108
  429. package/dist/client/server/middleware/abortSignal.js +0 -111
  430. package/dist/client/server/middleware/auth.js +0 -388
  431. package/dist/client/server/middleware/cache.js +0 -359
  432. package/dist/client/server/middleware/common.js +0 -281
  433. package/dist/client/server/middleware/deprecation.js +0 -190
  434. package/dist/client/server/middleware/mcpBodyAttachment.js +0 -63
  435. package/dist/client/server/middleware/rateLimit.js +0 -227
  436. package/dist/client/server/middleware/validation.js +0 -388
  437. package/dist/client/server/openapi/generator.js +0 -398
  438. package/dist/client/server/openapi/index.js +0 -36
  439. package/dist/client/server/openapi/schemas.js +0 -695
  440. package/dist/client/server/openapi/templates.js +0 -374
  441. package/dist/client/server/routes/agentRoutes.js +0 -171
  442. package/dist/client/server/routes/claudeProxyRoutes.js +0 -1600
  443. package/dist/client/server/routes/healthRoutes.js +0 -187
  444. package/dist/client/server/routes/index.js +0 -57
  445. package/dist/client/server/routes/mcpRoutes.js +0 -342
  446. package/dist/client/server/routes/memoryRoutes.js +0 -350
  447. package/dist/client/server/routes/openApiRoutes.js +0 -126
  448. package/dist/client/server/routes/toolRoutes.js +0 -199
  449. package/dist/client/server/streaming/dataStream.js +0 -486
  450. package/dist/client/server/streaming/index.js +0 -11
  451. package/dist/client/server/types.js +0 -67
  452. package/dist/client/server/utils/redaction.js +0 -334
  453. package/dist/client/server/utils/validation.js +0 -243
  454. package/dist/client/server/websocket/WebSocketHandler.js +0 -383
  455. package/dist/client/server/websocket/index.js +0 -4
  456. package/dist/client/services/server/ai/observability/instrumentation.js +0 -808
  457. package/dist/client/telemetry/attributes.js +0 -100
  458. package/dist/client/telemetry/index.js +0 -26
  459. package/dist/client/telemetry/telemetryService.js +0 -308
  460. package/dist/client/telemetry/tracers.js +0 -17
  461. package/dist/client/telemetry/withSpan.js +0 -34
  462. package/dist/client/types/actionTypes.js +0 -6
  463. package/dist/client/types/analytics.js +0 -5
  464. package/dist/client/types/authTypes.js +0 -8
  465. package/dist/client/types/circuitBreakerErrors.js +0 -34
  466. package/dist/client/types/cli.js +0 -21
  467. package/dist/client/types/clientTypes.js +0 -10
  468. package/dist/client/types/common.js +0 -51
  469. package/dist/client/types/configTypes.js +0 -49
  470. package/dist/client/types/content.js +0 -19
  471. package/dist/client/types/contextTypes.js +0 -400
  472. package/dist/client/types/conversation.js +0 -47
  473. package/dist/client/types/conversationMemoryInterface.js +0 -6
  474. package/dist/client/types/domainTypes.js +0 -5
  475. package/dist/client/types/errors.js +0 -167
  476. package/dist/client/types/evaluation.js +0 -5
  477. package/dist/client/types/evaluationProviders.js +0 -5
  478. package/dist/client/types/evaluationTypes.js +0 -1
  479. package/dist/client/types/externalMcp.js +0 -6
  480. package/dist/client/types/fileReferenceTypes.js +0 -8
  481. package/dist/client/types/fileTypes.js +0 -4
  482. package/dist/client/types/generateTypes.js +0 -1
  483. package/dist/client/types/guardrails.js +0 -1
  484. package/dist/client/types/hitlTypes.js +0 -8
  485. package/dist/client/types/index.js +0 -57
  486. package/dist/client/types/mcpTypes.js +0 -5
  487. package/dist/client/types/middlewareTypes.js +0 -1
  488. package/dist/client/types/modelTypes.js +0 -30
  489. package/dist/client/types/multimodal.js +0 -135
  490. package/dist/client/types/observability.js +0 -6
  491. package/dist/client/types/pptTypes.js +0 -82
  492. package/dist/client/types/providers.js +0 -111
  493. package/dist/client/types/proxyTypes.js +0 -16
  494. package/dist/client/types/ragTypes.js +0 -7
  495. package/dist/client/types/sdkTypes.js +0 -8
  496. package/dist/client/types/serviceTypes.js +0 -5
  497. package/dist/client/types/streamTypes.js +0 -1
  498. package/dist/client/types/subscriptionTypes.js +0 -9
  499. package/dist/client/types/taskClassificationTypes.js +0 -5
  500. package/dist/client/types/tools.js +0 -24
  501. package/dist/client/types/ttsTypes.js +0 -57
  502. package/dist/client/types/typeAliases.js +0 -48
  503. package/dist/client/types/utilities.js +0 -4
  504. package/dist/client/types/workflowTypes.js +0 -30
  505. package/dist/client/utils/async/withTimeout.js +0 -98
  506. package/dist/client/utils/asyncMutex.js +0 -60
  507. package/dist/client/utils/conversationMemory.js +0 -431
  508. package/dist/client/utils/csvProcessor.js +0 -846
  509. package/dist/client/utils/errorHandling.js +0 -936
  510. package/dist/client/utils/evaluationUtils.js +0 -131
  511. package/dist/client/utils/factoryProcessing.js +0 -589
  512. package/dist/client/utils/fileDetector.js +0 -2161
  513. package/dist/client/utils/imageCache.js +0 -376
  514. package/dist/client/utils/imageProcessor.js +0 -704
  515. package/dist/client/utils/logger.js +0 -491
  516. package/dist/client/utils/mcpDefaults.js +0 -134
  517. package/dist/client/utils/messageBuilder.js +0 -1653
  518. package/dist/client/utils/modelAliasResolver.js +0 -54
  519. package/dist/client/utils/modelDetection.js +0 -80
  520. package/dist/client/utils/modelRouter.js +0 -292
  521. package/dist/client/utils/multimodalOptionsBuilder.js +0 -65
  522. package/dist/client/utils/observabilityHelpers.js +0 -47
  523. package/dist/client/utils/parameterValidation.js +0 -966
  524. package/dist/client/utils/pdfProcessor.js +0 -410
  525. package/dist/client/utils/performance.js +0 -222
  526. package/dist/client/utils/pricing.js +0 -340
  527. package/dist/client/utils/promptRedaction.js +0 -62
  528. package/dist/client/utils/providerConfig.js +0 -1009
  529. package/dist/client/utils/providerHealth.js +0 -1237
  530. package/dist/client/utils/providerRetry.js +0 -112
  531. package/dist/client/utils/providerUtils.js +0 -434
  532. package/dist/client/utils/rateLimiter.js +0 -200
  533. package/dist/client/utils/redis.js +0 -368
  534. package/dist/client/utils/retryHandler.js +0 -269
  535. package/dist/client/utils/retryability.js +0 -22
  536. package/dist/client/utils/sanitizers/svg.js +0 -481
  537. package/dist/client/utils/schemaConversion.js +0 -255
  538. package/dist/client/utils/taskClassificationUtils.js +0 -149
  539. package/dist/client/utils/taskClassifier.js +0 -94
  540. package/dist/client/utils/thinkingConfig.js +0 -104
  541. package/dist/client/utils/timeout.js +0 -359
  542. package/dist/client/utils/tokenEstimation.js +0 -142
  543. package/dist/client/utils/tokenLimits.js +0 -125
  544. package/dist/client/utils/tokenUtils.js +0 -239
  545. package/dist/client/utils/toolUtils.js +0 -75
  546. package/dist/client/utils/transformationUtils.js +0 -554
  547. package/dist/client/utils/ttsProcessor.js +0 -286
  548. package/dist/client/utils/typeUtils.js +0 -97
  549. package/dist/client/utils/videoAnalysisProcessor.js +0 -67
  550. package/dist/client/workflow/config.js +0 -398
  551. package/dist/client/workflow/core/ensembleExecutor.js +0 -407
  552. package/dist/client/workflow/core/judgeScorer.js +0 -544
  553. package/dist/client/workflow/core/responseConditioner.js +0 -225
  554. package/dist/client/workflow/core/types/conditionerTypes.js +0 -7
  555. package/dist/client/workflow/core/types/ensembleTypes.js +0 -7
  556. package/dist/client/workflow/core/types/index.js +0 -7
  557. package/dist/client/workflow/core/types/judgeTypes.js +0 -7
  558. package/dist/client/workflow/core/types/layerTypes.js +0 -7
  559. package/dist/client/workflow/core/types/registryTypes.js +0 -7
  560. package/dist/client/workflow/core/workflowRegistry.js +0 -304
  561. package/dist/client/workflow/core/workflowRunner.js +0 -586
  562. package/dist/client/workflow/index.js +0 -50
  563. package/dist/client/workflow/types.js +0 -9
  564. package/dist/client/workflow/utils/types/index.js +0 -7
  565. package/dist/client/workflow/utils/workflowMetrics.js +0 -311
  566. package/dist/client/workflow/utils/workflowValidation.js +0 -420
  567. package/dist/client/workflow/workflows/adaptiveWorkflow.js +0 -366
  568. package/dist/client/workflow/workflows/consensusWorkflow.js +0 -192
  569. package/dist/client/workflow/workflows/fallbackWorkflow.js +0 -225
  570. package/dist/client/workflow/workflows/multiJudgeWorkflow.js +0 -351
  571. /package/dist/client/{client/reactHooks.js → reactHooks.js} +0 -0
@@ -0,0 +1,198 @@
1
+ import type { AuthUser, AuthSession, AuthenticatedContext, AuthProviderType, AuthRequestContext } from "../types/authTypes.js";
2
+ /**
3
+ * Run a function with authentication context
4
+ *
5
+ * Sets up async local storage so getAuthContext() can be called
6
+ * from anywhere within the callback's execution.
7
+ *
8
+ * @param context - The authenticated context
9
+ * @param callback - Function to run with context available
10
+ * @returns Result of the callback
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * await runWithAuthContext(authContext, async () => {
15
+ * // Inside here, getAuthContext() returns the context
16
+ * const user = getCurrentUser();
17
+ * await processRequest();
18
+ * });
19
+ * ```
20
+ */
21
+ export declare function runWithAuthContext<T>(context: AuthenticatedContext, callback: () => T | Promise<T>): T | Promise<T>;
22
+ /**
23
+ * Get the current authentication context
24
+ *
25
+ * Returns the authenticated context for the current request,
26
+ * or undefined if no context is set.
27
+ *
28
+ * @returns Current auth context or undefined
29
+ *
30
+ * @example
31
+ * ```typescript
32
+ * const context = getAuthContext();
33
+ * if (context) {
34
+ * console.log("Current user:", context.user.email);
35
+ * }
36
+ * ```
37
+ */
38
+ export declare function getAuthContext(): AuthenticatedContext | undefined;
39
+ /**
40
+ * Get the current authenticated user
41
+ *
42
+ * Convenience function to get just the user from context.
43
+ *
44
+ * @returns Current user or undefined
45
+ *
46
+ * @example
47
+ * ```typescript
48
+ * const user = getCurrentUser();
49
+ * if (user) {
50
+ * console.log("Hello,", user.name);
51
+ * }
52
+ * ```
53
+ */
54
+ export declare function getCurrentUser(): AuthUser | undefined;
55
+ /**
56
+ * Get the current session
57
+ *
58
+ * Convenience function to get just the session from context.
59
+ *
60
+ * @returns Current session or undefined
61
+ */
62
+ export declare function getCurrentSession(): AuthSession | undefined;
63
+ /**
64
+ * Check if the current request is authenticated
65
+ *
66
+ * @returns True if authenticated, false otherwise
67
+ */
68
+ export declare function isAuthenticated(): boolean;
69
+ /**
70
+ * Require authentication
71
+ *
72
+ * Throws if no auth context is available.
73
+ *
74
+ * @returns The authenticated context
75
+ * @throws Error if not authenticated
76
+ *
77
+ * @example
78
+ * ```typescript
79
+ * const context = requireAuth();
80
+ * // Safe to use context.user here
81
+ * ```
82
+ */
83
+ export declare function requireAuth(): AuthenticatedContext;
84
+ /**
85
+ * Require a specific user
86
+ *
87
+ * Throws if no auth context or user doesn't match.
88
+ *
89
+ * @param userId - Expected user ID
90
+ * @returns The authenticated context
91
+ * @throws Error if not authenticated or wrong user
92
+ */
93
+ export declare function requireUser(userId: string): AuthenticatedContext;
94
+ /**
95
+ * Check if current user has a permission
96
+ *
97
+ * @param permission - Permission to check
98
+ * @returns True if user has permission
99
+ */
100
+ export declare function hasPermission(permission: string): boolean;
101
+ /**
102
+ * Check if current user has a role
103
+ *
104
+ * @param role - Role to check
105
+ * @returns True if user has role
106
+ */
107
+ export declare function hasRole(role: string): boolean;
108
+ /**
109
+ * Check if current user has any of the roles
110
+ *
111
+ * @param roles - Roles to check (any of)
112
+ * @returns True if user has at least one role
113
+ */
114
+ export declare function hasAnyRole(roles: string[]): boolean;
115
+ /**
116
+ * Check if current user has all permissions
117
+ *
118
+ * @param permissions - Permissions to check (all of)
119
+ * @returns True if user has all permissions
120
+ */
121
+ export declare function hasAllPermissions(permissions: string[]): boolean;
122
+ /**
123
+ * Require a permission
124
+ *
125
+ * Throws if user doesn't have the permission.
126
+ *
127
+ * @param permission - Required permission
128
+ * @throws Error if user lacks permission
129
+ *
130
+ * @example
131
+ * ```typescript
132
+ * requirePermission("admin:write");
133
+ * // Safe to proceed with admin write operation
134
+ * ```
135
+ */
136
+ export declare function requirePermission(permission: string): void;
137
+ /**
138
+ * Require a role
139
+ *
140
+ * Throws if user doesn't have the role.
141
+ *
142
+ * @param role - Required role
143
+ * @throws Error if user lacks role
144
+ */
145
+ export declare function requireRole(role: string): void;
146
+ /**
147
+ * Create an authenticated context
148
+ *
149
+ * Helper to build an AuthenticatedContext object.
150
+ *
151
+ * @param user - The authenticated user
152
+ * @param session - The user's session
153
+ * @param request - The original request context
154
+ * @param provider - The auth provider type
155
+ * @returns Complete authenticated context
156
+ */
157
+ export declare function createAuthenticatedContext(user: AuthUser, session: AuthSession, request: AuthRequestContext, provider: AuthProviderType): AuthenticatedContext;
158
+ /**
159
+ * Context holder for non-async-local-storage environments
160
+ *
161
+ * Use this when async local storage is not available.
162
+ */
163
+ export declare class AuthContextHolder {
164
+ private context;
165
+ /**
166
+ * Set the auth context
167
+ */
168
+ set(context: AuthenticatedContext): void;
169
+ /**
170
+ * Get the auth context
171
+ */
172
+ get(): AuthenticatedContext | undefined;
173
+ /**
174
+ * Clear the auth context
175
+ */
176
+ clear(): void;
177
+ /**
178
+ * Get the current user
179
+ */
180
+ getUser(): AuthUser | undefined;
181
+ /**
182
+ * Get the current session
183
+ */
184
+ getSession(): AuthSession | undefined;
185
+ /**
186
+ * Check if authenticated
187
+ */
188
+ isAuthenticated(): boolean;
189
+ /**
190
+ * Check if user has permission
191
+ */
192
+ hasPermission(permission: string): boolean;
193
+ /**
194
+ * Check if user has role
195
+ */
196
+ hasRole(role: string): boolean;
197
+ }
198
+ export declare const globalAuthContext: AuthContextHolder;
@@ -0,0 +1,314 @@
1
+ // src/lib/auth/authContext.ts
2
+ import { AsyncLocalStorage } from "async_hooks";
3
+ import { AuthError } from "./errors.js";
4
+ /**
5
+ * Async local storage for auth context
6
+ *
7
+ * Enables access to authentication context throughout the request lifecycle
8
+ * without explicitly passing it through every function call.
9
+ */
10
+ const authContextStorage = new AsyncLocalStorage();
11
+ /**
12
+ * Run a function with authentication context
13
+ *
14
+ * Sets up async local storage so getAuthContext() can be called
15
+ * from anywhere within the callback's execution.
16
+ *
17
+ * @param context - The authenticated context
18
+ * @param callback - Function to run with context available
19
+ * @returns Result of the callback
20
+ *
21
+ * @example
22
+ * ```typescript
23
+ * await runWithAuthContext(authContext, async () => {
24
+ * // Inside here, getAuthContext() returns the context
25
+ * const user = getCurrentUser();
26
+ * await processRequest();
27
+ * });
28
+ * ```
29
+ */
30
+ export function runWithAuthContext(context, callback) {
31
+ return authContextStorage.run(context, callback);
32
+ }
33
+ /**
34
+ * Get the current authentication context
35
+ *
36
+ * Returns the authenticated context for the current request,
37
+ * or undefined if no context is set.
38
+ *
39
+ * @returns Current auth context or undefined
40
+ *
41
+ * @example
42
+ * ```typescript
43
+ * const context = getAuthContext();
44
+ * if (context) {
45
+ * console.log("Current user:", context.user.email);
46
+ * }
47
+ * ```
48
+ */
49
+ export function getAuthContext() {
50
+ return authContextStorage.getStore() ?? globalAuthContext.get();
51
+ }
52
+ /**
53
+ * Get the current authenticated user
54
+ *
55
+ * Convenience function to get just the user from context.
56
+ *
57
+ * @returns Current user or undefined
58
+ *
59
+ * @example
60
+ * ```typescript
61
+ * const user = getCurrentUser();
62
+ * if (user) {
63
+ * console.log("Hello,", user.name);
64
+ * }
65
+ * ```
66
+ */
67
+ export function getCurrentUser() {
68
+ return (authContextStorage.getStore() ?? globalAuthContext.get())?.user;
69
+ }
70
+ /**
71
+ * Get the current session
72
+ *
73
+ * Convenience function to get just the session from context.
74
+ *
75
+ * @returns Current session or undefined
76
+ */
77
+ export function getCurrentSession() {
78
+ return (authContextStorage.getStore() ?? globalAuthContext.get())?.session;
79
+ }
80
+ /**
81
+ * Check if the current request is authenticated
82
+ *
83
+ * @returns True if authenticated, false otherwise
84
+ */
85
+ export function isAuthenticated() {
86
+ return (authContextStorage.getStore() !== undefined ||
87
+ globalAuthContext.isAuthenticated());
88
+ }
89
+ /**
90
+ * Require authentication
91
+ *
92
+ * Throws if no auth context is available.
93
+ *
94
+ * @returns The authenticated context
95
+ * @throws Error if not authenticated
96
+ *
97
+ * @example
98
+ * ```typescript
99
+ * const context = requireAuth();
100
+ * // Safe to use context.user here
101
+ * ```
102
+ */
103
+ export function requireAuth() {
104
+ const context = getAuthContext();
105
+ if (!context) {
106
+ throw AuthError.create("MISSING_TOKEN", "Authentication required");
107
+ }
108
+ return context;
109
+ }
110
+ /**
111
+ * Require a specific user
112
+ *
113
+ * Throws if no auth context or user doesn't match.
114
+ *
115
+ * @param userId - Expected user ID
116
+ * @returns The authenticated context
117
+ * @throws Error if not authenticated or wrong user
118
+ */
119
+ export function requireUser(userId) {
120
+ const context = requireAuth();
121
+ if (context.user.id !== userId) {
122
+ throw AuthError.create("ACCESS_DENIED", "User mismatch");
123
+ }
124
+ return context;
125
+ }
126
+ /**
127
+ * Check if current user has a permission
128
+ *
129
+ * @param permission - Permission to check
130
+ * @returns True if user has permission
131
+ */
132
+ export function hasPermission(permission) {
133
+ const user = getCurrentUser();
134
+ if (!user) {
135
+ return false;
136
+ }
137
+ // Check direct permission
138
+ if (user.permissions.includes(permission)) {
139
+ return true;
140
+ }
141
+ // Check wildcard
142
+ if (user.permissions.includes("*")) {
143
+ return true;
144
+ }
145
+ // Check permission hierarchy
146
+ const parts = permission.split(":");
147
+ for (let i = parts.length - 1; i > 0; i--) {
148
+ const wildcardPerm = [...parts.slice(0, i), "*"].join(":");
149
+ if (user.permissions.includes(wildcardPerm)) {
150
+ return true;
151
+ }
152
+ }
153
+ return false;
154
+ }
155
+ /**
156
+ * Check if current user has a role
157
+ *
158
+ * @param role - Role to check
159
+ * @returns True if user has role
160
+ */
161
+ export function hasRole(role) {
162
+ const user = getCurrentUser();
163
+ return user?.roles.includes(role) ?? false;
164
+ }
165
+ /**
166
+ * Check if current user has any of the roles
167
+ *
168
+ * @param roles - Roles to check (any of)
169
+ * @returns True if user has at least one role
170
+ */
171
+ export function hasAnyRole(roles) {
172
+ const user = getCurrentUser();
173
+ if (!user) {
174
+ return false;
175
+ }
176
+ return roles.some((role) => user.roles.includes(role));
177
+ }
178
+ /**
179
+ * Check if current user has all permissions
180
+ *
181
+ * @param permissions - Permissions to check (all of)
182
+ * @returns True if user has all permissions
183
+ */
184
+ export function hasAllPermissions(permissions) {
185
+ return permissions.every((perm) => hasPermission(perm));
186
+ }
187
+ /**
188
+ * Require a permission
189
+ *
190
+ * Throws if user doesn't have the permission.
191
+ *
192
+ * @param permission - Required permission
193
+ * @throws Error if user lacks permission
194
+ *
195
+ * @example
196
+ * ```typescript
197
+ * requirePermission("admin:write");
198
+ * // Safe to proceed with admin write operation
199
+ * ```
200
+ */
201
+ export function requirePermission(permission) {
202
+ if (!hasPermission(permission)) {
203
+ throw AuthError.create("INSUFFICIENT_PERMISSIONS", `Permission denied: ${permission}`);
204
+ }
205
+ }
206
+ /**
207
+ * Require a role
208
+ *
209
+ * Throws if user doesn't have the role.
210
+ *
211
+ * @param role - Required role
212
+ * @throws Error if user lacks role
213
+ */
214
+ export function requireRole(role) {
215
+ if (!hasRole(role)) {
216
+ throw AuthError.create("INSUFFICIENT_ROLES", `Role required: ${role}`);
217
+ }
218
+ }
219
+ /**
220
+ * Create an authenticated context
221
+ *
222
+ * Helper to build an AuthenticatedContext object.
223
+ *
224
+ * @param user - The authenticated user
225
+ * @param session - The user's session
226
+ * @param request - The original request context
227
+ * @param provider - The auth provider type
228
+ * @returns Complete authenticated context
229
+ */
230
+ export function createAuthenticatedContext(user, session, request, provider) {
231
+ return {
232
+ ...request,
233
+ user,
234
+ session,
235
+ request,
236
+ authenticatedAt: new Date(),
237
+ provider,
238
+ };
239
+ }
240
+ /**
241
+ * Context holder for non-async-local-storage environments
242
+ *
243
+ * Use this when async local storage is not available.
244
+ */
245
+ export class AuthContextHolder {
246
+ context;
247
+ /**
248
+ * Set the auth context
249
+ */
250
+ set(context) {
251
+ this.context = context;
252
+ }
253
+ /**
254
+ * Get the auth context
255
+ */
256
+ get() {
257
+ return this.context;
258
+ }
259
+ /**
260
+ * Clear the auth context
261
+ */
262
+ clear() {
263
+ this.context = undefined;
264
+ }
265
+ /**
266
+ * Get the current user
267
+ */
268
+ getUser() {
269
+ return this.context?.user;
270
+ }
271
+ /**
272
+ * Get the current session
273
+ */
274
+ getSession() {
275
+ return this.context?.session;
276
+ }
277
+ /**
278
+ * Check if authenticated
279
+ */
280
+ isAuthenticated() {
281
+ return this.context !== undefined;
282
+ }
283
+ /**
284
+ * Check if user has permission
285
+ */
286
+ hasPermission(permission) {
287
+ const user = this.context?.user;
288
+ if (!user) {
289
+ return false;
290
+ }
291
+ if (user.permissions.includes(permission) ||
292
+ user.permissions.includes("*")) {
293
+ return true;
294
+ }
295
+ // Check hierarchy
296
+ const parts = permission.split(":");
297
+ for (let i = parts.length - 1; i > 0; i--) {
298
+ const wildcardPerm = [...parts.slice(0, i), "*"].join(":");
299
+ if (user.permissions.includes(wildcardPerm)) {
300
+ return true;
301
+ }
302
+ }
303
+ return false;
304
+ }
305
+ /**
306
+ * Check if user has role
307
+ */
308
+ hasRole(role) {
309
+ return this.context?.user.roles.includes(role) ?? false;
310
+ }
311
+ }
312
+ // Internal: global context holder for non-async environments.
313
+ // Exported for use by neurolink.ts; not part of the public API contract.
314
+ export const globalAuthContext = new AuthContextHolder();
@@ -0,0 +1,63 @@
1
+ export declare const AuthErrorCodes: {
2
+ readonly INVALID_TOKEN: "AUTH-001";
3
+ readonly EXPIRED_TOKEN: "AUTH-002";
4
+ readonly MISSING_TOKEN: "AUTH-003";
5
+ readonly TOKEN_DECODE_FAILED: "AUTH-004";
6
+ readonly INVALID_SIGNATURE: "AUTH-005";
7
+ readonly SESSION_NOT_FOUND: "AUTH-010";
8
+ readonly SESSION_EXPIRED: "AUTH-011";
9
+ readonly SESSION_REVOKED: "AUTH-012";
10
+ readonly INSUFFICIENT_PERMISSIONS: "AUTH-020";
11
+ readonly INSUFFICIENT_ROLES: "AUTH-021";
12
+ readonly ACCESS_DENIED: "AUTH-022";
13
+ readonly USER_NOT_FOUND: "AUTH-030";
14
+ readonly USER_DISABLED: "AUTH-031";
15
+ readonly EMAIL_NOT_VERIFIED: "AUTH-032";
16
+ readonly MFA_REQUIRED: "AUTH-033";
17
+ readonly PROVIDER_ERROR: "AUTH-040";
18
+ readonly PROVIDER_NOT_FOUND: "AUTH-041";
19
+ readonly PROVIDER_INIT_FAILED: "AUTH-042";
20
+ readonly CONFIGURATION_ERROR: "AUTH-043";
21
+ readonly CREATION_FAILED: "AUTH-050";
22
+ readonly REGISTRATION_FAILED: "AUTH-051";
23
+ readonly DUPLICATE_REGISTRATION: "AUTH-052";
24
+ readonly MIDDLEWARE_ERROR: "AUTH-060";
25
+ readonly RATE_LIMITED: "AUTH-061";
26
+ readonly JWKS_FETCH_FAILED: "AUTH-070";
27
+ readonly JWKS_KEY_NOT_FOUND: "AUTH-071";
28
+ };
29
+ export declare const AuthError: {
30
+ codes: {
31
+ readonly INVALID_TOKEN: "AUTH-001";
32
+ readonly EXPIRED_TOKEN: "AUTH-002";
33
+ readonly MISSING_TOKEN: "AUTH-003";
34
+ readonly TOKEN_DECODE_FAILED: "AUTH-004";
35
+ readonly INVALID_SIGNATURE: "AUTH-005";
36
+ readonly SESSION_NOT_FOUND: "AUTH-010";
37
+ readonly SESSION_EXPIRED: "AUTH-011";
38
+ readonly SESSION_REVOKED: "AUTH-012";
39
+ readonly INSUFFICIENT_PERMISSIONS: "AUTH-020";
40
+ readonly INSUFFICIENT_ROLES: "AUTH-021";
41
+ readonly ACCESS_DENIED: "AUTH-022";
42
+ readonly USER_NOT_FOUND: "AUTH-030";
43
+ readonly USER_DISABLED: "AUTH-031";
44
+ readonly EMAIL_NOT_VERIFIED: "AUTH-032";
45
+ readonly MFA_REQUIRED: "AUTH-033";
46
+ readonly PROVIDER_ERROR: "AUTH-040";
47
+ readonly PROVIDER_NOT_FOUND: "AUTH-041";
48
+ readonly PROVIDER_INIT_FAILED: "AUTH-042";
49
+ readonly CONFIGURATION_ERROR: "AUTH-043";
50
+ readonly CREATION_FAILED: "AUTH-050";
51
+ readonly REGISTRATION_FAILED: "AUTH-051";
52
+ readonly DUPLICATE_REGISTRATION: "AUTH-052";
53
+ readonly MIDDLEWARE_ERROR: "AUTH-060";
54
+ readonly RATE_LIMITED: "AUTH-061";
55
+ readonly JWKS_FETCH_FAILED: "AUTH-070";
56
+ readonly JWKS_KEY_NOT_FOUND: "AUTH-071";
57
+ };
58
+ create: (code: "SESSION_NOT_FOUND" | "INVALID_TOKEN" | "EXPIRED_TOKEN" | "MISSING_TOKEN" | "TOKEN_DECODE_FAILED" | "INVALID_SIGNATURE" | "SESSION_EXPIRED" | "SESSION_REVOKED" | "INSUFFICIENT_PERMISSIONS" | "INSUFFICIENT_ROLES" | "ACCESS_DENIED" | "USER_NOT_FOUND" | "USER_DISABLED" | "EMAIL_NOT_VERIFIED" | "MFA_REQUIRED" | "PROVIDER_ERROR" | "PROVIDER_NOT_FOUND" | "PROVIDER_INIT_FAILED" | "CONFIGURATION_ERROR" | "CREATION_FAILED" | "REGISTRATION_FAILED" | "DUPLICATE_REGISTRATION" | "MIDDLEWARE_ERROR" | "RATE_LIMITED" | "JWKS_FETCH_FAILED" | "JWKS_KEY_NOT_FOUND", message: string, options?: {
59
+ retryable?: boolean;
60
+ details?: Record<string, unknown>;
61
+ cause?: Error;
62
+ } | undefined) => import("../core/infrastructure/baseError.js").NeuroLinkFeatureError;
63
+ };
@@ -0,0 +1,39 @@
1
+ // src/lib/auth/errors.ts — Unified auth error codes (Phase 1 of auth error redesign)
2
+ import { createErrorFactory } from "../core/infrastructure/baseError.js";
3
+ export const AuthErrorCodes = {
4
+ // Token errors
5
+ INVALID_TOKEN: "AUTH-001",
6
+ EXPIRED_TOKEN: "AUTH-002",
7
+ MISSING_TOKEN: "AUTH-003",
8
+ TOKEN_DECODE_FAILED: "AUTH-004",
9
+ INVALID_SIGNATURE: "AUTH-005",
10
+ // Session errors
11
+ SESSION_NOT_FOUND: "AUTH-010",
12
+ SESSION_EXPIRED: "AUTH-011",
13
+ SESSION_REVOKED: "AUTH-012",
14
+ // Authorization errors
15
+ INSUFFICIENT_PERMISSIONS: "AUTH-020",
16
+ INSUFFICIENT_ROLES: "AUTH-021",
17
+ ACCESS_DENIED: "AUTH-022",
18
+ // User errors
19
+ USER_NOT_FOUND: "AUTH-030",
20
+ USER_DISABLED: "AUTH-031",
21
+ EMAIL_NOT_VERIFIED: "AUTH-032",
22
+ MFA_REQUIRED: "AUTH-033",
23
+ // Provider errors
24
+ PROVIDER_ERROR: "AUTH-040",
25
+ PROVIDER_NOT_FOUND: "AUTH-041",
26
+ PROVIDER_INIT_FAILED: "AUTH-042",
27
+ CONFIGURATION_ERROR: "AUTH-043",
28
+ // Factory/Registry errors
29
+ CREATION_FAILED: "AUTH-050",
30
+ REGISTRATION_FAILED: "AUTH-051",
31
+ DUPLICATE_REGISTRATION: "AUTH-052",
32
+ // Middleware errors
33
+ MIDDLEWARE_ERROR: "AUTH-060",
34
+ RATE_LIMITED: "AUTH-061",
35
+ // JWKS errors
36
+ JWKS_FETCH_FAILED: "AUTH-070",
37
+ JWKS_KEY_NOT_FOUND: "AUTH-071",
38
+ };
39
+ export const AuthError = createErrorFactory("Auth", AuthErrorCodes);
@@ -1,22 +1,34 @@
1
1
  /**
2
2
  * NeuroLink Authentication Module
3
3
  *
4
- * Provides OAuth 2.0 authentication support for Claude Pro/Max subscriptions
5
- * and secure token storage.
6
- *
7
- * Key components:
8
- * - AnthropicOAuth: OAuth 2.0 flow implementation with PKCE support
9
- * - TokenStore: Secure local storage for OAuth tokens
10
- * - Callback Server: Local HTTP server for OAuth redirects
4
+ * Exports the full multi-provider authentication system including:
5
+ * - Anthropic OAuth 2.0 flow (PKCE, token storage, callback server)
6
+ * - Multi-provider auth (Auth0, Clerk, Firebase, Supabase, Cognito,
7
+ * Keycloak, Better Auth, WorkOS, JWT, OAuth2, Custom)
8
+ * - AuthProviderFactory / AuthProviderRegistry for lazy-loaded provider creation
9
+ * - Auth middleware (token extraction, RBAC, rate limiting)
10
+ * - Session management (memory, Redis)
11
+ * - Auth context (AsyncLocalStorage-based request scoping)
11
12
  */
12
13
  export { ANTHROPIC_OAUTH_BASE_URL, DEFAULT_SCOPES, DEFAULT_REDIRECT_URI, DEFAULT_CALLBACK_PORT, } from "./anthropicOAuth.js";
13
14
  export { AnthropicOAuth } from "./anthropicOAuth.js";
14
15
  export { OAuthError, OAuthConfigurationError, OAuthTokenExchangeError, OAuthTokenRefreshError, OAuthTokenValidationError, OAuthTokenRevocationError, OAuthCallbackServerError, } from "../types/errors.js";
15
16
  export { createAnthropicOAuth, createAnthropicOAuthConfig, hasAnthropicOAuthCredentials, startCallbackServer, stopCallbackServer, performOAuthFlow, } from "./anthropicOAuth.js";
16
- export type { OAuthTokenResponse, OAuthFlowTokens, OAuthFlowTokens as OAuthTokens, TokenValidationResult, AnthropicOAuthConfig, PKCEParams, CallbackResult, } from "../types/index.js";
17
+ export type { OAuthTokenResponse, OAuthFlowTokens, OAuthFlowTokens as OAuthTokens, TokenValidationResult as OAuthTokenValidationResult, AnthropicOAuthConfig, PKCEParams, CallbackResult, } from "../types/index.js";
17
18
  export { TokenStore, tokenStore, defaultTokenStore } from "./tokenStore.js";
18
19
  export { TokenStoreError } from "../types/errors.js";
19
20
  export type { StoredOAuthTokens, TokenRefresher } from "../types/authTypes.js";
20
21
  export type { NeuroLinkAuthOptions, AuthStatus } from "../types/index.js";
21
22
  export { AccountPool } from "./accountPool.js";
22
23
  export type { ProxyAccount, AccountPoolConfig } from "../types/index.js";
24
+ export { AuthProviderFactory, createAuthProvider, } from "./AuthProviderFactory.js";
25
+ export { AuthProviderRegistry } from "./AuthProviderRegistry.js";
26
+ export { AuthError, AuthErrorCodes } from "./errors.js";
27
+ export { AuthProviderError, BaseAuthProvider, InMemorySessionStorage, } from "./providers/BaseAuthProvider.js";
28
+ export { AuthMiddlewareError, AuthMiddlewareErrorCodes, createAuthMiddleware, createExpressAuthMiddleware, createProtectedMiddleware, createRBACMiddleware, createRequestContext, type ExpressMiddleware, extractToken, type MiddlewareHandler, type MiddlewareResult, type NextFunction, } from "./middleware/AuthMiddleware.js";
29
+ export { createAuthenticatedRateLimitMiddleware, createRateLimitByUserMiddleware, createRateLimitStorage, MemoryRateLimitStorage, type RateLimitConfig, type RateLimitMiddlewareResult, type RateLimitResult, type RateLimitStorage, RedisRateLimitStorage, UserRateLimiter, } from "./middleware/rateLimitByUser.js";
30
+ export { createSessionStorage, MemorySessionStorage, RedisSessionStorage, SessionManager, type SessionManagerStorage as SessionStorageInterface, } from "./sessionManager.js";
31
+ export { AuthContextHolder, createAuthenticatedContext, getAuthContext, getCurrentSession, getCurrentUser, globalAuthContext, hasAllPermissions, hasAnyRole, hasPermission, hasRole, isAuthenticated, requireAuth, requirePermission, requireRole, requireUser, runWithAuthContext, } from "./authContext.js";
32
+ export { RequestContext, NEUROLINK_RESOURCE_ID_KEY, NEUROLINK_THREAD_ID_KEY, } from "./RequestContext.js";
33
+ export type { Auth0Config, AuthCacheConfig, AuthErrorInfo as AuthErrorType, AuthErrorCode, AuthEventData, AuthEventHandler, AuthEventType, AuthenticatedContext, AuthMiddlewareConfig, AuthorizationResult, AuthProviderConfig, AuthProviderFactoryFn, AuthProviderHealthCheck, AuthProviderRegistration, AuthProviderType, AuthRequestContext, AuthSession, AuthUser, BaseAuthProviderConfig, BetterAuthConfig, ClerkConfig, CognitoConfig, CustomAuthConfig, FirebaseConfig, JWK, JWKS, JWTConfig, KeycloakConfig, MastraAuthProvider, OAuth2Config, RBACConfig, RBACMiddlewareConfig, SessionConfig, SessionStorage, SessionValidationResult, SupabaseConfig, TokenClaims, TokenExtractionConfig, TokenValidationConfig, TokenValidationResult as AuthTokenValidationResult, WorkOSConfig, } from "../types/authTypes.js";
34
+ export { createAuthValidatorFromProvider } from "./serverBridge.js";