@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.
- package/CHANGELOG.md +12 -0
- package/dist/auth/AuthProviderFactory.d.ts +71 -0
- package/dist/auth/AuthProviderFactory.js +111 -0
- package/dist/auth/AuthProviderRegistry.d.ts +33 -0
- package/dist/auth/AuthProviderRegistry.js +190 -0
- package/dist/auth/RequestContext.d.ts +23 -0
- package/dist/auth/RequestContext.js +78 -0
- package/dist/auth/anthropicOAuth.js +1 -1
- package/dist/auth/authContext.d.ts +198 -0
- package/dist/auth/authContext.js +314 -0
- package/dist/auth/errors.d.ts +63 -0
- package/dist/auth/errors.js +39 -0
- package/dist/auth/index.d.ts +20 -8
- package/dist/auth/index.js +35 -7
- package/dist/auth/middleware/AuthMiddleware.d.ts +181 -0
- package/dist/auth/middleware/AuthMiddleware.js +519 -0
- package/dist/auth/middleware/rateLimitByUser.d.ts +282 -0
- package/dist/auth/middleware/rateLimitByUser.js +554 -0
- package/dist/auth/providers/BaseAuthProvider.d.ts +259 -0
- package/dist/auth/providers/BaseAuthProvider.js +723 -0
- package/dist/auth/providers/CognitoProvider.d.ts +61 -0
- package/dist/auth/providers/CognitoProvider.js +304 -0
- package/dist/auth/providers/KeycloakProvider.d.ts +61 -0
- package/dist/auth/providers/KeycloakProvider.js +393 -0
- package/dist/auth/providers/auth0.d.ts +59 -0
- package/dist/auth/providers/auth0.js +274 -0
- package/dist/auth/providers/betterAuth.d.ts +51 -0
- package/dist/auth/providers/betterAuth.js +182 -0
- package/dist/auth/providers/clerk.d.ts +65 -0
- package/dist/auth/providers/clerk.js +317 -0
- package/dist/auth/providers/custom.d.ts +64 -0
- package/dist/auth/providers/custom.js +112 -0
- package/dist/auth/providers/firebase.d.ts +63 -0
- package/dist/auth/providers/firebase.js +226 -0
- package/dist/auth/providers/jwt.d.ts +68 -0
- package/dist/auth/providers/jwt.js +212 -0
- package/dist/auth/providers/oauth2.d.ts +73 -0
- package/dist/auth/providers/oauth2.js +303 -0
- package/dist/auth/providers/supabase.d.ts +63 -0
- package/dist/auth/providers/supabase.js +259 -0
- package/dist/auth/providers/workos.d.ts +61 -0
- package/dist/auth/providers/workos.js +284 -0
- package/dist/auth/serverBridge.d.ts +14 -0
- package/dist/auth/serverBridge.js +25 -0
- package/dist/auth/sessionManager.d.ts +142 -0
- package/dist/auth/sessionManager.js +437 -0
- package/dist/cli/commands/authProviders.d.ts +43 -0
- package/dist/cli/commands/authProviders.js +399 -0
- package/dist/cli/commands/proxy.js +18 -5
- package/dist/cli/factories/authCommandFactory.d.ts +23 -5
- package/dist/cli/factories/authCommandFactory.js +108 -5
- package/dist/cli/parser.js +1 -1
- package/dist/client/aiSdkAdapter.js +1 -1
- package/dist/client/index.js +138 -477
- package/dist/core/factory.js +0 -1
- package/dist/core/infrastructure/baseRegistry.d.ts +3 -1
- package/dist/core/infrastructure/baseRegistry.js +5 -1
- package/dist/core/redisConversationMemoryManager.js +1 -1
- package/dist/features/ppt/slideGenerator.js +0 -1
- package/dist/features/ppt/utils.js +0 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +25 -0
- package/dist/lib/auth/AuthProviderFactory.d.ts +71 -0
- package/dist/lib/auth/AuthProviderFactory.js +112 -0
- package/dist/lib/auth/AuthProviderRegistry.d.ts +33 -0
- package/dist/lib/auth/AuthProviderRegistry.js +191 -0
- package/dist/lib/auth/RequestContext.d.ts +23 -0
- package/dist/lib/auth/RequestContext.js +79 -0
- package/dist/lib/auth/authContext.d.ts +198 -0
- package/dist/lib/auth/authContext.js +315 -0
- package/dist/lib/auth/errors.d.ts +63 -0
- package/dist/lib/auth/errors.js +40 -0
- package/dist/lib/auth/index.d.ts +20 -8
- package/dist/lib/auth/index.js +35 -7
- package/dist/lib/auth/middleware/AuthMiddleware.d.ts +181 -0
- package/dist/lib/auth/middleware/AuthMiddleware.js +520 -0
- package/dist/lib/auth/middleware/rateLimitByUser.d.ts +282 -0
- package/dist/lib/auth/middleware/rateLimitByUser.js +555 -0
- package/dist/lib/auth/providers/BaseAuthProvider.d.ts +259 -0
- package/dist/lib/auth/providers/BaseAuthProvider.js +724 -0
- package/dist/lib/auth/providers/CognitoProvider.d.ts +61 -0
- package/dist/lib/auth/providers/CognitoProvider.js +305 -0
- package/dist/lib/auth/providers/KeycloakProvider.d.ts +61 -0
- package/dist/lib/auth/providers/KeycloakProvider.js +394 -0
- package/dist/lib/auth/providers/auth0.d.ts +59 -0
- package/dist/lib/auth/providers/auth0.js +275 -0
- package/dist/lib/auth/providers/betterAuth.d.ts +51 -0
- package/dist/lib/auth/providers/betterAuth.js +183 -0
- package/dist/lib/auth/providers/clerk.d.ts +65 -0
- package/dist/lib/auth/providers/clerk.js +318 -0
- package/dist/lib/auth/providers/custom.d.ts +64 -0
- package/dist/lib/auth/providers/custom.js +113 -0
- package/dist/lib/auth/providers/firebase.d.ts +63 -0
- package/dist/lib/auth/providers/firebase.js +227 -0
- package/dist/lib/auth/providers/jwt.d.ts +68 -0
- package/dist/lib/auth/providers/jwt.js +213 -0
- package/dist/lib/auth/providers/oauth2.d.ts +73 -0
- package/dist/lib/auth/providers/oauth2.js +304 -0
- package/dist/lib/auth/providers/supabase.d.ts +63 -0
- package/dist/lib/auth/providers/supabase.js +260 -0
- package/dist/lib/auth/providers/workos.d.ts +61 -0
- package/dist/lib/auth/providers/workos.js +285 -0
- package/dist/lib/auth/serverBridge.d.ts +14 -0
- package/dist/lib/auth/serverBridge.js +26 -0
- package/dist/lib/auth/sessionManager.d.ts +142 -0
- package/dist/lib/auth/sessionManager.js +438 -0
- package/dist/lib/core/infrastructure/baseRegistry.d.ts +3 -1
- package/dist/lib/core/infrastructure/baseRegistry.js +5 -1
- package/dist/lib/index.d.ts +1 -0
- package/dist/lib/index.js +25 -0
- package/dist/lib/mcp/toolRegistry.js +11 -1
- package/dist/lib/neurolink.d.ts +42 -1
- package/dist/lib/neurolink.js +218 -0
- package/dist/lib/rag/ChunkerRegistry.js +2 -2
- package/dist/lib/rag/metadata/MetadataExtractorRegistry.js +2 -2
- package/dist/lib/rag/reranker/RerankerRegistry.js +2 -2
- package/dist/lib/server/routes/agentRoutes.js +20 -2
- package/dist/lib/server/routes/claudeProxyRoutes.js +45 -9
- package/dist/lib/types/authTypes.d.ts +937 -1
- package/dist/lib/types/authTypes.js +2 -1
- package/dist/lib/types/configTypes.d.ts +46 -0
- package/dist/lib/types/generateTypes.d.ts +6 -0
- package/dist/lib/types/index.d.ts +1 -0
- package/dist/lib/types/streamTypes.d.ts +6 -0
- package/dist/mcp/elicitationProtocol.js +1 -1
- package/dist/mcp/servers/agent/directToolsServer.js +0 -1
- package/dist/mcp/toolRegistry.js +11 -1
- package/dist/neurolink.d.ts +42 -1
- package/dist/neurolink.js +218 -0
- package/dist/providers/azureOpenai.js +1 -1
- package/dist/providers/huggingFace.js +0 -1
- package/dist/providers/openaiCompatible.js +0 -1
- package/dist/rag/ChunkerRegistry.js +2 -2
- package/dist/rag/metadata/MetadataExtractorRegistry.js +2 -2
- package/dist/rag/reranker/RerankerRegistry.js +2 -2
- package/dist/sdk/toolRegistration.js +0 -1
- package/dist/server/openapi/generator.js +1 -1
- package/dist/server/routes/agentRoutes.js +20 -2
- package/dist/server/routes/claudeProxyRoutes.js +45 -9
- package/dist/types/authTypes.d.ts +937 -1
- package/dist/types/authTypes.js +2 -1
- package/dist/types/configTypes.d.ts +46 -0
- package/dist/types/configTypes.js +0 -5
- package/dist/types/generateTypes.d.ts +6 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/modelTypes.js +0 -1
- package/dist/types/streamTypes.d.ts +6 -0
- package/dist/types/tools.js +0 -1
- package/dist/types/typeAliases.js +0 -1
- package/dist/types/utilities.js +1 -1
- package/dist/types/workflowTypes.js +0 -1
- package/dist/utils/providerRetry.js +0 -1
- package/dist/utils/providerUtils.js +0 -1
- package/package.json +3 -2
- package/dist/client/adapters/providerImageAdapter.js +0 -588
- package/dist/client/adapters/tts/googleTTSHandler.js +0 -344
- package/dist/client/adapters/video/directorPipeline.js +0 -516
- package/dist/client/adapters/video/ffmpegAdapter.js +0 -206
- package/dist/client/adapters/video/frameExtractor.js +0 -143
- package/dist/client/adapters/video/vertexVideoHandler.js +0 -763
- package/dist/client/adapters/video/videoAnalyzer.js +0 -238
- package/dist/client/adapters/video/videoMerger.js +0 -171
- package/dist/client/agent/directTools.js +0 -840
- package/dist/client/auth/anthropicOAuth.js +0 -974
- package/dist/client/auth/tokenStore.js +0 -799
- package/dist/client/client/aiSdkAdapter.js +0 -487
- package/dist/client/client/auth.js +0 -473
- package/dist/client/client/errors.js +0 -552
- package/dist/client/client/httpClient.js +0 -837
- package/dist/client/client/index.js +0 -172
- package/dist/client/client/interceptors.js +0 -601
- package/dist/client/client/sseClient.js +0 -545
- package/dist/client/client/streamingClient.js +0 -917
- package/dist/client/client/wsClient.js +0 -369
- package/dist/client/config/configManager.js +0 -303
- package/dist/client/config/conversationMemory.js +0 -86
- package/dist/client/config/taskClassificationConfig.js +0 -148
- package/dist/client/constants/contextWindows.js +0 -295
- package/dist/client/constants/enums.js +0 -853
- package/dist/client/constants/index.js +0 -207
- package/dist/client/constants/performance.js +0 -389
- package/dist/client/constants/retry.js +0 -266
- package/dist/client/constants/timeouts.js +0 -182
- package/dist/client/constants/tokens.js +0 -380
- package/dist/client/constants/videoErrors.js +0 -46
- package/dist/client/context/budgetChecker.js +0 -98
- package/dist/client/context/contextCompactor.js +0 -205
- package/dist/client/context/emergencyTruncation.js +0 -88
- package/dist/client/context/errorDetection.js +0 -171
- package/dist/client/context/errors.js +0 -21
- package/dist/client/context/fileTokenBudget.js +0 -127
- package/dist/client/context/prompts/summarizationPrompt.js +0 -117
- package/dist/client/context/stages/fileReadDeduplicator.js +0 -66
- package/dist/client/context/stages/slidingWindowTruncator.js +0 -190
- package/dist/client/context/stages/structuredSummarizer.js +0 -99
- package/dist/client/context/stages/toolOutputPruner.js +0 -52
- package/dist/client/context/summarizationEngine.js +0 -136
- package/dist/client/context/toolOutputLimits.js +0 -78
- package/dist/client/context/toolPairRepair.js +0 -66
- package/dist/client/core/analytics.js +0 -88
- package/dist/client/core/baseProvider.js +0 -1385
- package/dist/client/core/constants.js +0 -140
- package/dist/client/core/conversationMemoryFactory.js +0 -141
- package/dist/client/core/conversationMemoryInitializer.js +0 -128
- package/dist/client/core/conversationMemoryManager.js +0 -344
- package/dist/client/core/dynamicModels.js +0 -358
- package/dist/client/core/evaluation.js +0 -309
- package/dist/client/core/evaluationProviders.js +0 -248
- package/dist/client/core/factory.js +0 -412
- package/dist/client/core/infrastructure/baseError.js +0 -22
- package/dist/client/core/infrastructure/baseFactory.js +0 -54
- package/dist/client/core/infrastructure/baseRegistry.js +0 -49
- package/dist/client/core/infrastructure/index.js +0 -5
- package/dist/client/core/infrastructure/retry.js +0 -20
- package/dist/client/core/infrastructure/typedEventEmitter.js +0 -23
- package/dist/client/core/modelConfiguration.js +0 -851
- package/dist/client/core/modules/GenerationHandler.js +0 -588
- package/dist/client/core/modules/MessageBuilder.js +0 -273
- package/dist/client/core/modules/StreamHandler.js +0 -185
- package/dist/client/core/modules/TelemetryHandler.js +0 -203
- package/dist/client/core/modules/ToolsManager.js +0 -499
- package/dist/client/core/modules/Utilities.js +0 -331
- package/dist/client/core/redisConversationMemoryManager.js +0 -1435
- package/dist/client/core/streamAnalytics.js +0 -131
- package/dist/client/evaluation/contextBuilder.js +0 -134
- package/dist/client/evaluation/index.js +0 -61
- package/dist/client/evaluation/prompts.js +0 -73
- package/dist/client/evaluation/ragasEvaluator.js +0 -110
- package/dist/client/evaluation/retryManager.js +0 -78
- package/dist/client/evaluation/scoring.js +0 -61
- package/dist/client/factories/providerFactory.js +0 -166
- package/dist/client/factories/providerRegistry.js +0 -166
- package/dist/client/features/ppt/constants.js +0 -896
- package/dist/client/features/ppt/contentPlanner.js +0 -529
- package/dist/client/features/ppt/presentationOrchestrator.js +0 -236
- package/dist/client/features/ppt/slideGenerator.js +0 -532
- package/dist/client/features/ppt/slideRenderers.js +0 -2383
- package/dist/client/features/ppt/slideTypeInference.js +0 -405
- package/dist/client/features/ppt/types.js +0 -13
- package/dist/client/features/ppt/utils.js +0 -443
- package/dist/client/files/fileReferenceRegistry.js +0 -1543
- package/dist/client/files/fileTools.js +0 -450
- package/dist/client/files/streamingReader.js +0 -321
- package/dist/client/files/types.js +0 -23
- package/dist/client/hitl/hitlErrors.js +0 -54
- package/dist/client/hitl/hitlManager.js +0 -460
- package/dist/client/mcp/agentExposure.js +0 -356
- package/dist/client/mcp/auth/index.js +0 -11
- package/dist/client/mcp/auth/oauthClientProvider.js +0 -325
- package/dist/client/mcp/auth/tokenStorage.js +0 -134
- package/dist/client/mcp/batching/index.js +0 -10
- package/dist/client/mcp/batching/requestBatcher.js +0 -441
- package/dist/client/mcp/caching/index.js +0 -10
- package/dist/client/mcp/caching/toolCache.js +0 -433
- package/dist/client/mcp/elicitation/elicitationManager.js +0 -376
- package/dist/client/mcp/elicitation/index.js +0 -11
- package/dist/client/mcp/elicitation/types.js +0 -10
- package/dist/client/mcp/elicitationProtocol.js +0 -375
- package/dist/client/mcp/enhancedToolDiscovery.js +0 -481
- package/dist/client/mcp/externalServerManager.js +0 -1478
- package/dist/client/mcp/factory.js +0 -161
- package/dist/client/mcp/flexibleToolValidator.js +0 -161
- package/dist/client/mcp/httpRateLimiter.js +0 -391
- package/dist/client/mcp/httpRetryHandler.js +0 -178
- package/dist/client/mcp/index.js +0 -74
- package/dist/client/mcp/mcpCircuitBreaker.js +0 -427
- package/dist/client/mcp/mcpClientFactory.js +0 -708
- package/dist/client/mcp/mcpRegistryClient.js +0 -488
- package/dist/client/mcp/mcpServerBase.js +0 -373
- package/dist/client/mcp/multiServerManager.js +0 -579
- package/dist/client/mcp/registry.js +0 -158
- package/dist/client/mcp/routing/index.js +0 -10
- package/dist/client/mcp/routing/toolRouter.js +0 -416
- package/dist/client/mcp/serverCapabilities.js +0 -502
- package/dist/client/mcp/servers/agent/directToolsServer.js +0 -150
- package/dist/client/mcp/toolAnnotations.js +0 -239
- package/dist/client/mcp/toolConverter.js +0 -258
- package/dist/client/mcp/toolDiscoveryService.js +0 -798
- package/dist/client/mcp/toolIntegration.js +0 -334
- package/dist/client/mcp/toolRegistry.js +0 -719
- package/dist/client/memory/hippocampusInitializer.js +0 -19
- package/dist/client/memory/memoryRetrievalTools.js +0 -166
- package/dist/client/middleware/builtin/analytics.js +0 -132
- package/dist/client/middleware/builtin/autoEvaluation.js +0 -203
- package/dist/client/middleware/builtin/guardrails.js +0 -109
- package/dist/client/middleware/builtin/lifecycle.js +0 -168
- package/dist/client/middleware/factory.js +0 -327
- package/dist/client/middleware/registry.js +0 -295
- package/dist/client/middleware/utils/guardrailsUtils.js +0 -396
- package/dist/client/models/anthropicModels.js +0 -527
- package/dist/client/neurolink.js +0 -8015
- package/dist/client/observability/exporterRegistry.js +0 -413
- package/dist/client/observability/exporters/arizeExporter.js +0 -138
- package/dist/client/observability/exporters/baseExporter.js +0 -190
- package/dist/client/observability/exporters/braintrustExporter.js +0 -154
- package/dist/client/observability/exporters/datadogExporter.js +0 -196
- package/dist/client/observability/exporters/laminarExporter.js +0 -302
- package/dist/client/observability/exporters/langfuseExporter.js +0 -209
- package/dist/client/observability/exporters/langsmithExporter.js +0 -143
- package/dist/client/observability/exporters/otelExporter.js +0 -164
- package/dist/client/observability/exporters/posthogExporter.js +0 -287
- package/dist/client/observability/exporters/sentryExporter.js +0 -165
- package/dist/client/observability/index.js +0 -31
- package/dist/client/observability/metricsAggregator.js +0 -556
- package/dist/client/observability/otelBridge.js +0 -131
- package/dist/client/observability/retryPolicy.js +0 -383
- package/dist/client/observability/sampling/samplers.js +0 -216
- package/dist/client/observability/spanProcessor.js +0 -303
- package/dist/client/observability/tokenTracker.js +0 -413
- package/dist/client/observability/types/exporterTypes.js +0 -5
- package/dist/client/observability/types/index.js +0 -4
- package/dist/client/observability/types/spanTypes.js +0 -92
- package/dist/client/observability/utils/safeMetadata.js +0 -25
- package/dist/client/observability/utils/spanSerializer.js +0 -292
- package/dist/client/processors/archive/ArchiveProcessor.js +0 -1308
- package/dist/client/processors/base/BaseFileProcessor.js +0 -614
- package/dist/client/processors/base/types.js +0 -82
- package/dist/client/processors/config/fileTypes.js +0 -520
- package/dist/client/processors/config/index.js +0 -92
- package/dist/client/processors/config/languageMap.js +0 -410
- package/dist/client/processors/config/mimeTypes.js +0 -363
- package/dist/client/processors/config/sizeLimits.js +0 -258
- package/dist/client/processors/document/ExcelProcessor.js +0 -590
- package/dist/client/processors/document/OpenDocumentProcessor.js +0 -212
- package/dist/client/processors/document/PptxProcessor.js +0 -157
- package/dist/client/processors/document/RtfProcessor.js +0 -361
- package/dist/client/processors/document/WordProcessor.js +0 -353
- package/dist/client/processors/errors/FileErrorCode.js +0 -255
- package/dist/client/processors/errors/errorHelpers.js +0 -386
- package/dist/client/processors/errors/errorSerializer.js +0 -507
- package/dist/client/processors/errors/index.js +0 -49
- package/dist/client/processors/markup/SvgProcessor.js +0 -240
- package/dist/client/processors/media/AudioProcessor.js +0 -707
- package/dist/client/processors/media/VideoProcessor.js +0 -1045
- package/dist/client/providers/amazonBedrock.js +0 -1512
- package/dist/client/providers/amazonSagemaker.js +0 -162
- package/dist/client/providers/anthropic.js +0 -831
- package/dist/client/providers/azureOpenai.js +0 -143
- package/dist/client/providers/googleAiStudio.js +0 -1200
- package/dist/client/providers/googleNativeGemini3.js +0 -543
- package/dist/client/providers/googleVertex.js +0 -2936
- package/dist/client/providers/huggingFace.js +0 -315
- package/dist/client/providers/litellm.js +0 -488
- package/dist/client/providers/mistral.js +0 -157
- package/dist/client/providers/ollama.js +0 -1579
- package/dist/client/providers/openAI.js +0 -627
- package/dist/client/providers/openRouter.js +0 -543
- package/dist/client/providers/openaiCompatible.js +0 -290
- package/dist/client/providers/providerTypeUtils.js +0 -46
- package/dist/client/providers/sagemaker/adaptive-semaphore.js +0 -215
- package/dist/client/providers/sagemaker/client.js +0 -472
- package/dist/client/providers/sagemaker/config.js +0 -317
- package/dist/client/providers/sagemaker/detection.js +0 -606
- package/dist/client/providers/sagemaker/error-constants.js +0 -227
- package/dist/client/providers/sagemaker/errors.js +0 -299
- package/dist/client/providers/sagemaker/language-model.js +0 -775
- package/dist/client/providers/sagemaker/parsers.js +0 -634
- package/dist/client/providers/sagemaker/streaming.js +0 -331
- package/dist/client/providers/sagemaker/structured-parser.js +0 -625
- package/dist/client/proxy/accountQuota.js +0 -162
- package/dist/client/proxy/claudeFormat.js +0 -595
- package/dist/client/proxy/modelRouter.js +0 -29
- package/dist/client/proxy/oauthFetch.js +0 -367
- package/dist/client/proxy/proxyFetch.js +0 -586
- package/dist/client/proxy/requestLogger.js +0 -207
- package/dist/client/proxy/tokenRefresh.js +0 -124
- package/dist/client/proxy/usageStats.js +0 -74
- package/dist/client/proxy/utils/noProxyUtils.js +0 -149
- package/dist/client/rag/ChunkerFactory.js +0 -320
- package/dist/client/rag/ChunkerRegistry.js +0 -421
- package/dist/client/rag/chunkers/BaseChunker.js +0 -143
- package/dist/client/rag/chunkers/CharacterChunker.js +0 -28
- package/dist/client/rag/chunkers/HTMLChunker.js +0 -38
- package/dist/client/rag/chunkers/JSONChunker.js +0 -68
- package/dist/client/rag/chunkers/LaTeXChunker.js +0 -63
- package/dist/client/rag/chunkers/MarkdownChunker.js +0 -306
- package/dist/client/rag/chunkers/RecursiveChunker.js +0 -139
- package/dist/client/rag/chunkers/SemanticMarkdownChunker.js +0 -138
- package/dist/client/rag/chunkers/SentenceChunker.js +0 -66
- package/dist/client/rag/chunkers/TokenChunker.js +0 -61
- package/dist/client/rag/chunkers/index.js +0 -15
- package/dist/client/rag/chunking/characterChunker.js +0 -142
- package/dist/client/rag/chunking/chunkerRegistry.js +0 -194
- package/dist/client/rag/chunking/htmlChunker.js +0 -247
- package/dist/client/rag/chunking/index.js +0 -17
- package/dist/client/rag/chunking/jsonChunker.js +0 -281
- package/dist/client/rag/chunking/latexChunker.js +0 -251
- package/dist/client/rag/chunking/markdownChunker.js +0 -373
- package/dist/client/rag/chunking/recursiveChunker.js +0 -148
- package/dist/client/rag/chunking/semanticChunker.js +0 -306
- package/dist/client/rag/chunking/sentenceChunker.js +0 -230
- package/dist/client/rag/chunking/tokenChunker.js +0 -183
- package/dist/client/rag/document/MDocument.js +0 -392
- package/dist/client/rag/document/index.js +0 -5
- package/dist/client/rag/document/loaders.js +0 -500
- package/dist/client/rag/errors/RAGError.js +0 -274
- package/dist/client/rag/errors/index.js +0 -6
- package/dist/client/rag/graphRag/graphRAG.js +0 -401
- package/dist/client/rag/graphRag/index.js +0 -4
- package/dist/client/rag/index.js +0 -141
- package/dist/client/rag/metadata/MetadataExtractorFactory.js +0 -418
- package/dist/client/rag/metadata/MetadataExtractorRegistry.js +0 -362
- package/dist/client/rag/metadata/index.js +0 -9
- package/dist/client/rag/metadata/metadataExtractor.js +0 -280
- package/dist/client/rag/pipeline/RAGPipeline.js +0 -436
- package/dist/client/rag/pipeline/contextAssembly.js +0 -341
- package/dist/client/rag/pipeline/index.js +0 -5
- package/dist/client/rag/ragIntegration.js +0 -321
- package/dist/client/rag/reranker/RerankerFactory.js +0 -430
- package/dist/client/rag/reranker/RerankerRegistry.js +0 -402
- package/dist/client/rag/reranker/index.js +0 -9
- package/dist/client/rag/reranker/reranker.js +0 -277
- package/dist/client/rag/resilience/CircuitBreaker.js +0 -431
- package/dist/client/rag/resilience/RetryHandler.js +0 -304
- package/dist/client/rag/resilience/index.js +0 -7
- package/dist/client/rag/retrieval/hybridSearch.js +0 -335
- package/dist/client/rag/retrieval/index.js +0 -5
- package/dist/client/rag/retrieval/vectorQueryTool.js +0 -307
- package/dist/client/rag/types.js +0 -8
- package/dist/client/sdk/toolRegistration.js +0 -377
- package/dist/client/server/abstract/baseServerAdapter.js +0 -575
- package/dist/client/server/adapters/expressAdapter.js +0 -486
- package/dist/client/server/adapters/fastifyAdapter.js +0 -472
- package/dist/client/server/adapters/honoAdapter.js +0 -632
- package/dist/client/server/adapters/koaAdapter.js +0 -510
- package/dist/client/server/errors.js +0 -486
- package/dist/client/server/factory/serverAdapterFactory.js +0 -160
- package/dist/client/server/index.js +0 -108
- package/dist/client/server/middleware/abortSignal.js +0 -111
- package/dist/client/server/middleware/auth.js +0 -388
- package/dist/client/server/middleware/cache.js +0 -359
- package/dist/client/server/middleware/common.js +0 -281
- package/dist/client/server/middleware/deprecation.js +0 -190
- package/dist/client/server/middleware/mcpBodyAttachment.js +0 -63
- package/dist/client/server/middleware/rateLimit.js +0 -227
- package/dist/client/server/middleware/validation.js +0 -388
- package/dist/client/server/openapi/generator.js +0 -398
- package/dist/client/server/openapi/index.js +0 -36
- package/dist/client/server/openapi/schemas.js +0 -695
- package/dist/client/server/openapi/templates.js +0 -374
- package/dist/client/server/routes/agentRoutes.js +0 -171
- package/dist/client/server/routes/claudeProxyRoutes.js +0 -1600
- package/dist/client/server/routes/healthRoutes.js +0 -187
- package/dist/client/server/routes/index.js +0 -57
- package/dist/client/server/routes/mcpRoutes.js +0 -342
- package/dist/client/server/routes/memoryRoutes.js +0 -350
- package/dist/client/server/routes/openApiRoutes.js +0 -126
- package/dist/client/server/routes/toolRoutes.js +0 -199
- package/dist/client/server/streaming/dataStream.js +0 -486
- package/dist/client/server/streaming/index.js +0 -11
- package/dist/client/server/types.js +0 -67
- package/dist/client/server/utils/redaction.js +0 -334
- package/dist/client/server/utils/validation.js +0 -243
- package/dist/client/server/websocket/WebSocketHandler.js +0 -383
- package/dist/client/server/websocket/index.js +0 -4
- package/dist/client/services/server/ai/observability/instrumentation.js +0 -808
- package/dist/client/telemetry/attributes.js +0 -100
- package/dist/client/telemetry/index.js +0 -26
- package/dist/client/telemetry/telemetryService.js +0 -308
- package/dist/client/telemetry/tracers.js +0 -17
- package/dist/client/telemetry/withSpan.js +0 -34
- package/dist/client/types/actionTypes.js +0 -6
- package/dist/client/types/analytics.js +0 -5
- package/dist/client/types/authTypes.js +0 -8
- package/dist/client/types/circuitBreakerErrors.js +0 -34
- package/dist/client/types/cli.js +0 -21
- package/dist/client/types/clientTypes.js +0 -10
- package/dist/client/types/common.js +0 -51
- package/dist/client/types/configTypes.js +0 -49
- package/dist/client/types/content.js +0 -19
- package/dist/client/types/contextTypes.js +0 -400
- package/dist/client/types/conversation.js +0 -47
- package/dist/client/types/conversationMemoryInterface.js +0 -6
- package/dist/client/types/domainTypes.js +0 -5
- package/dist/client/types/errors.js +0 -167
- package/dist/client/types/evaluation.js +0 -5
- package/dist/client/types/evaluationProviders.js +0 -5
- package/dist/client/types/evaluationTypes.js +0 -1
- package/dist/client/types/externalMcp.js +0 -6
- package/dist/client/types/fileReferenceTypes.js +0 -8
- package/dist/client/types/fileTypes.js +0 -4
- package/dist/client/types/generateTypes.js +0 -1
- package/dist/client/types/guardrails.js +0 -1
- package/dist/client/types/hitlTypes.js +0 -8
- package/dist/client/types/index.js +0 -57
- package/dist/client/types/mcpTypes.js +0 -5
- package/dist/client/types/middlewareTypes.js +0 -1
- package/dist/client/types/modelTypes.js +0 -30
- package/dist/client/types/multimodal.js +0 -135
- package/dist/client/types/observability.js +0 -6
- package/dist/client/types/pptTypes.js +0 -82
- package/dist/client/types/providers.js +0 -111
- package/dist/client/types/proxyTypes.js +0 -16
- package/dist/client/types/ragTypes.js +0 -7
- package/dist/client/types/sdkTypes.js +0 -8
- package/dist/client/types/serviceTypes.js +0 -5
- package/dist/client/types/streamTypes.js +0 -1
- package/dist/client/types/subscriptionTypes.js +0 -9
- package/dist/client/types/taskClassificationTypes.js +0 -5
- package/dist/client/types/tools.js +0 -24
- package/dist/client/types/ttsTypes.js +0 -57
- package/dist/client/types/typeAliases.js +0 -48
- package/dist/client/types/utilities.js +0 -4
- package/dist/client/types/workflowTypes.js +0 -30
- package/dist/client/utils/async/withTimeout.js +0 -98
- package/dist/client/utils/asyncMutex.js +0 -60
- package/dist/client/utils/conversationMemory.js +0 -431
- package/dist/client/utils/csvProcessor.js +0 -846
- package/dist/client/utils/errorHandling.js +0 -936
- package/dist/client/utils/evaluationUtils.js +0 -131
- package/dist/client/utils/factoryProcessing.js +0 -589
- package/dist/client/utils/fileDetector.js +0 -2161
- package/dist/client/utils/imageCache.js +0 -376
- package/dist/client/utils/imageProcessor.js +0 -704
- package/dist/client/utils/logger.js +0 -491
- package/dist/client/utils/mcpDefaults.js +0 -134
- package/dist/client/utils/messageBuilder.js +0 -1653
- package/dist/client/utils/modelAliasResolver.js +0 -54
- package/dist/client/utils/modelDetection.js +0 -80
- package/dist/client/utils/modelRouter.js +0 -292
- package/dist/client/utils/multimodalOptionsBuilder.js +0 -65
- package/dist/client/utils/observabilityHelpers.js +0 -47
- package/dist/client/utils/parameterValidation.js +0 -966
- package/dist/client/utils/pdfProcessor.js +0 -410
- package/dist/client/utils/performance.js +0 -222
- package/dist/client/utils/pricing.js +0 -340
- package/dist/client/utils/promptRedaction.js +0 -62
- package/dist/client/utils/providerConfig.js +0 -1009
- package/dist/client/utils/providerHealth.js +0 -1237
- package/dist/client/utils/providerRetry.js +0 -112
- package/dist/client/utils/providerUtils.js +0 -434
- package/dist/client/utils/rateLimiter.js +0 -200
- package/dist/client/utils/redis.js +0 -368
- package/dist/client/utils/retryHandler.js +0 -269
- package/dist/client/utils/retryability.js +0 -22
- package/dist/client/utils/sanitizers/svg.js +0 -481
- package/dist/client/utils/schemaConversion.js +0 -255
- package/dist/client/utils/taskClassificationUtils.js +0 -149
- package/dist/client/utils/taskClassifier.js +0 -94
- package/dist/client/utils/thinkingConfig.js +0 -104
- package/dist/client/utils/timeout.js +0 -359
- package/dist/client/utils/tokenEstimation.js +0 -142
- package/dist/client/utils/tokenLimits.js +0 -125
- package/dist/client/utils/tokenUtils.js +0 -239
- package/dist/client/utils/toolUtils.js +0 -75
- package/dist/client/utils/transformationUtils.js +0 -554
- package/dist/client/utils/ttsProcessor.js +0 -286
- package/dist/client/utils/typeUtils.js +0 -97
- package/dist/client/utils/videoAnalysisProcessor.js +0 -67
- package/dist/client/workflow/config.js +0 -398
- package/dist/client/workflow/core/ensembleExecutor.js +0 -407
- package/dist/client/workflow/core/judgeScorer.js +0 -544
- package/dist/client/workflow/core/responseConditioner.js +0 -225
- package/dist/client/workflow/core/types/conditionerTypes.js +0 -7
- package/dist/client/workflow/core/types/ensembleTypes.js +0 -7
- package/dist/client/workflow/core/types/index.js +0 -7
- package/dist/client/workflow/core/types/judgeTypes.js +0 -7
- package/dist/client/workflow/core/types/layerTypes.js +0 -7
- package/dist/client/workflow/core/types/registryTypes.js +0 -7
- package/dist/client/workflow/core/workflowRegistry.js +0 -304
- package/dist/client/workflow/core/workflowRunner.js +0 -586
- package/dist/client/workflow/index.js +0 -50
- package/dist/client/workflow/types.js +0 -9
- package/dist/client/workflow/utils/types/index.js +0 -7
- package/dist/client/workflow/utils/workflowMetrics.js +0 -311
- package/dist/client/workflow/utils/workflowValidation.js +0 -420
- package/dist/client/workflow/workflows/adaptiveWorkflow.js +0 -366
- package/dist/client/workflow/workflows/consensusWorkflow.js +0 -192
- package/dist/client/workflow/workflows/fallbackWorkflow.js +0 -225
- package/dist/client/workflow/workflows/multiJudgeWorkflow.js +0 -351
- /package/dist/client/{client/reactHooks.js → reactHooks.js} +0 -0
|
@@ -1,412 +0,0 @@
|
|
|
1
|
-
// ✅ CIRCULAR DEPENDENCY FIX: Remove barrel export import
|
|
2
|
-
// Providers are now managed via ProviderFactory instead of direct imports
|
|
3
|
-
import { SpanKind, SpanStatusCode } from "@opentelemetry/api";
|
|
4
|
-
import { tracers } from "../telemetry/tracers.js";
|
|
5
|
-
import { ProviderFactory } from "../factories/providerFactory.js";
|
|
6
|
-
import { ProviderRegistry } from "../factories/providerRegistry.js";
|
|
7
|
-
import { getBestProvider } from "../utils/providerUtils.js";
|
|
8
|
-
import { logger } from "../utils/logger.js";
|
|
9
|
-
import { dynamicModelProvider } from "./dynamicModels.js";
|
|
10
|
-
import { withTimeout } from "../utils/errorHandling.js";
|
|
11
|
-
const componentIdentifier = "aiProviderFactory";
|
|
12
|
-
const factoryTracer = tracers.factory;
|
|
13
|
-
/**
|
|
14
|
-
* Factory for creating AI provider instances with centralized configuration
|
|
15
|
-
*/
|
|
16
|
-
export class AIProviderFactory {
|
|
17
|
-
/**
|
|
18
|
-
* Normalize provider name using ProviderFactory
|
|
19
|
-
*/
|
|
20
|
-
static normalizeProviderName(providerName) {
|
|
21
|
-
// Use ProviderFactory registration - no more legacy switch statements
|
|
22
|
-
const normalized = ProviderFactory.normalizeProviderName(providerName);
|
|
23
|
-
if (normalized) {
|
|
24
|
-
return normalized;
|
|
25
|
-
}
|
|
26
|
-
// If not found in factory, return as-is (will be handled by factory error handling)
|
|
27
|
-
return providerName.toLowerCase();
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Initialize dynamic model provider with timeout protection
|
|
31
|
-
* Prevents hanging on non-responsive endpoints
|
|
32
|
-
*/
|
|
33
|
-
static async initializeDynamicProviderWithTimeout() {
|
|
34
|
-
const functionTag = "AIProviderFactory.initializeDynamicProviderWithTimeout";
|
|
35
|
-
const INIT_TIMEOUT = 10000; // 10 seconds total timeout for initialization
|
|
36
|
-
try {
|
|
37
|
-
await withTimeout(dynamicModelProvider.initialize(), INIT_TIMEOUT, new Error("Dynamic provider initialization timeout"));
|
|
38
|
-
logger.debug(`[${functionTag}] Dynamic model provider initialized successfully`);
|
|
39
|
-
}
|
|
40
|
-
catch (error) {
|
|
41
|
-
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
42
|
-
logger.warn(`[${functionTag}] Dynamic model provider initialization failed`, {
|
|
43
|
-
error: errorMessage,
|
|
44
|
-
fallback: "Using static model defaults",
|
|
45
|
-
});
|
|
46
|
-
// Don't throw - graceful degradation to static models
|
|
47
|
-
// This ensures the factory continues to work even if dynamic models fail
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* Create a provider instance for the specified provider type
|
|
52
|
-
* @param providerName - Name of the provider ('vertex', 'bedrock', 'openai')
|
|
53
|
-
* @param modelName - Optional model name override
|
|
54
|
-
* @param enableMCP - Optional flag to enable MCP integration (default: true)
|
|
55
|
-
* @param sdk - SDK instance
|
|
56
|
-
* @param region - Optional region override for cloud providers
|
|
57
|
-
* @returns AIProvider instance
|
|
58
|
-
*/
|
|
59
|
-
static async createProvider(providerName, modelName, enableMCP = true, sdk, region) {
|
|
60
|
-
const functionTag = "AIProviderFactory.createProvider";
|
|
61
|
-
// Providers are registered via ProviderFactory.initialize() on first use
|
|
62
|
-
return factoryTracer.startActiveSpan("neurolink.factory.createProvider", {
|
|
63
|
-
kind: SpanKind.INTERNAL,
|
|
64
|
-
attributes: {
|
|
65
|
-
"provider.name": providerName,
|
|
66
|
-
"model.name": modelName || "default",
|
|
67
|
-
"mcp.enabled": enableMCP,
|
|
68
|
-
},
|
|
69
|
-
}, async (span) => {
|
|
70
|
-
logger.debug(`[${functionTag}] Provider creation started`, {
|
|
71
|
-
providerName,
|
|
72
|
-
modelName: modelName || "default",
|
|
73
|
-
enableMCP,
|
|
74
|
-
environmentVariables: {
|
|
75
|
-
BEDROCK_MODEL: process.env.BEDROCK_MODEL || "not set",
|
|
76
|
-
BEDROCK_MODEL_ID: process.env.BEDROCK_MODEL_ID || "not set",
|
|
77
|
-
VERTEX_MODEL: process.env.VERTEX_MODEL || "not set",
|
|
78
|
-
OPENAI_MODEL: process.env.OPENAI_MODEL || "not set",
|
|
79
|
-
},
|
|
80
|
-
});
|
|
81
|
-
try {
|
|
82
|
-
// DYNAMIC MODEL PROVIDER STATUS (2025): Enhanced with timeout handling
|
|
83
|
-
//
|
|
84
|
-
// ✅ FIXED: Hanging issues resolved with comprehensive timeout implementation
|
|
85
|
-
// - Added robust timeout handling (3s localhost, 5s GitHub, 1s local file)
|
|
86
|
-
// - Implemented health checks for localhost endpoints
|
|
87
|
-
// - Added graceful degradation when all sources fail
|
|
88
|
-
// - Enhanced error handling and logging for debugging
|
|
89
|
-
//
|
|
90
|
-
// The dynamic model provider now provides reliable functionality without hanging
|
|
91
|
-
let resolvedModelName = modelName;
|
|
92
|
-
// PRIORITY 1: Check environment variables BEFORE dynamic resolution
|
|
93
|
-
if (!modelName || modelName === "default") {
|
|
94
|
-
logger.debug(`[${functionTag}] Checking environment variables for provider: ${providerName}`);
|
|
95
|
-
// Check for provider-specific environment variables first
|
|
96
|
-
if (providerName.toLowerCase().includes("bedrock")) {
|
|
97
|
-
const envModel = process.env.BEDROCK_MODEL || process.env.BEDROCK_MODEL_ID;
|
|
98
|
-
if (envModel) {
|
|
99
|
-
resolvedModelName = envModel;
|
|
100
|
-
logger.debug(`[${functionTag}] Environment variable found for Bedrock`, {
|
|
101
|
-
envVariable: process.env.BEDROCK_MODEL
|
|
102
|
-
? "BEDROCK_MODEL"
|
|
103
|
-
: "BEDROCK_MODEL_ID",
|
|
104
|
-
resolvedModel: envModel,
|
|
105
|
-
});
|
|
106
|
-
}
|
|
107
|
-
else {
|
|
108
|
-
logger.debug(`[${functionTag}] No Bedrock environment variables found (BEDROCK_MODEL, BEDROCK_MODEL_ID)`);
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
else if (providerName.toLowerCase().includes("vertex")) {
|
|
112
|
-
const envModel = process.env.VERTEX_MODEL;
|
|
113
|
-
if (envModel) {
|
|
114
|
-
resolvedModelName = envModel;
|
|
115
|
-
logger.debug(`[${functionTag}] Environment variable found for Vertex`, {
|
|
116
|
-
envVariable: "VERTEX_MODEL",
|
|
117
|
-
resolvedModel: envModel,
|
|
118
|
-
});
|
|
119
|
-
}
|
|
120
|
-
else {
|
|
121
|
-
logger.debug(`[${functionTag}] No Vertex environment variables found (VERTEX_MODEL)`);
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
else if (providerName.toLowerCase().includes("azure")) {
|
|
125
|
-
const envModel = process.env.AZURE_OPENAI_MODEL ||
|
|
126
|
-
process.env.AZURE_OPENAI_DEPLOYMENT ||
|
|
127
|
-
process.env.AZURE_OPENAI_DEPLOYMENT_ID;
|
|
128
|
-
if (envModel) {
|
|
129
|
-
resolvedModelName = envModel;
|
|
130
|
-
logger.debug(`[${functionTag}] Environment variable found for Azure`, {
|
|
131
|
-
envVariable: process.env.AZURE_OPENAI_MODEL
|
|
132
|
-
? "AZURE_OPENAI_MODEL"
|
|
133
|
-
: process.env.AZURE_OPENAI_DEPLOYMENT
|
|
134
|
-
? "AZURE_OPENAI_DEPLOYMENT"
|
|
135
|
-
: "AZURE_OPENAI_DEPLOYMENT_ID",
|
|
136
|
-
resolvedModel: envModel,
|
|
137
|
-
});
|
|
138
|
-
}
|
|
139
|
-
else {
|
|
140
|
-
logger.debug(`[${functionTag}] No Azure environment variables found (AZURE_OPENAI_MODEL, AZURE_OPENAI_DEPLOYMENT, AZURE_OPENAI_DEPLOYMENT_ID)`);
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
else if (providerName.toLowerCase().includes("openai")) {
|
|
144
|
-
const envModel = process.env.OPENAI_MODEL;
|
|
145
|
-
if (envModel) {
|
|
146
|
-
resolvedModelName = envModel;
|
|
147
|
-
logger.debug(`[${functionTag}] Environment variable found for OpenAI`, {
|
|
148
|
-
envVariable: "OPENAI_MODEL",
|
|
149
|
-
resolvedModel: envModel,
|
|
150
|
-
});
|
|
151
|
-
}
|
|
152
|
-
else {
|
|
153
|
-
logger.debug(`[${functionTag}] No OpenAI environment variables found (OPENAI_MODEL)`);
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
else if (providerName.toLowerCase().includes("anthropic")) {
|
|
157
|
-
const envModel = process.env.ANTHROPIC_MODEL;
|
|
158
|
-
if (envModel) {
|
|
159
|
-
resolvedModelName = envModel;
|
|
160
|
-
logger.debug(`[${functionTag}] Environment variable found for Anthropic`, {
|
|
161
|
-
envVariable: "ANTHROPIC_MODEL",
|
|
162
|
-
resolvedModel: envModel,
|
|
163
|
-
});
|
|
164
|
-
}
|
|
165
|
-
else {
|
|
166
|
-
logger.debug(`[${functionTag}] No Anthropic environment variables found (ANTHROPIC_MODEL)`);
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
else if (providerName.toLowerCase().includes("google") ||
|
|
170
|
-
providerName.toLowerCase().includes("gemini")) {
|
|
171
|
-
const envModel = process.env.GOOGLE_AI_MODEL;
|
|
172
|
-
if (envModel) {
|
|
173
|
-
resolvedModelName = envModel;
|
|
174
|
-
logger.debug(`[${functionTag}] Environment variable found for Google AI`, {
|
|
175
|
-
envVariable: "GOOGLE_AI_MODEL",
|
|
176
|
-
resolvedModel: envModel,
|
|
177
|
-
});
|
|
178
|
-
}
|
|
179
|
-
else {
|
|
180
|
-
logger.debug(`[${functionTag}] No Google AI environment variables found (GOOGLE_AI_MODEL)`);
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
else if (providerName.toLowerCase().includes("mistral")) {
|
|
184
|
-
const envModel = process.env.MISTRAL_MODEL;
|
|
185
|
-
if (envModel) {
|
|
186
|
-
resolvedModelName = envModel;
|
|
187
|
-
logger.debug(`[${functionTag}] Environment variable found for Mistral`, {
|
|
188
|
-
envVariable: "MISTRAL_MODEL",
|
|
189
|
-
resolvedModel: envModel,
|
|
190
|
-
});
|
|
191
|
-
}
|
|
192
|
-
else {
|
|
193
|
-
logger.debug(`[${functionTag}] No Mistral environment variables found (MISTRAL_MODEL)`);
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
else if (providerName.toLowerCase().includes("ollama")) {
|
|
197
|
-
const envModel = process.env.OLLAMA_MODEL;
|
|
198
|
-
if (envModel) {
|
|
199
|
-
resolvedModelName = envModel;
|
|
200
|
-
logger.debug(`[${functionTag}] Environment variable found for Ollama`, {
|
|
201
|
-
envVariable: "OLLAMA_MODEL",
|
|
202
|
-
resolvedModel: envModel,
|
|
203
|
-
});
|
|
204
|
-
}
|
|
205
|
-
else {
|
|
206
|
-
logger.debug(`[${functionTag}] No Ollama environment variables found (OLLAMA_MODEL)`);
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
else {
|
|
210
|
-
logger.debug(`[${functionTag}] Provider ${providerName} - no environment variable check implemented`);
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
else {
|
|
214
|
-
logger.debug(`[${functionTag}] Skipping environment variable check - explicit model provided: ${modelName}`);
|
|
215
|
-
}
|
|
216
|
-
// PRIORITY 2: Enable dynamic model resolution only if no env var found
|
|
217
|
-
if ((!resolvedModelName || resolvedModelName === "default") &&
|
|
218
|
-
(!modelName || modelName === "default")) {
|
|
219
|
-
logger.debug(`[${functionTag}] Attempting dynamic model resolution`, {
|
|
220
|
-
currentResolvedModel: resolvedModelName || "none",
|
|
221
|
-
reason: "No environment variable found and no explicit model provided",
|
|
222
|
-
});
|
|
223
|
-
try {
|
|
224
|
-
const normalizedProvider = this.normalizeProviderName(providerName);
|
|
225
|
-
// Initialize with timeout protection - won't hang anymore
|
|
226
|
-
if (dynamicModelProvider.needsRefresh()) {
|
|
227
|
-
logger.debug(`[${functionTag}] Dynamic model provider needs refresh - initializing`);
|
|
228
|
-
await this.initializeDynamicProviderWithTimeout();
|
|
229
|
-
}
|
|
230
|
-
const dynamicModel = dynamicModelProvider.resolveModel(normalizedProvider, modelName || undefined);
|
|
231
|
-
if (dynamicModel) {
|
|
232
|
-
resolvedModelName = dynamicModel.id;
|
|
233
|
-
logger.debug(`[${functionTag}] Resolved dynamic model`, {
|
|
234
|
-
provider: normalizedProvider,
|
|
235
|
-
requestedModel: modelName || "default",
|
|
236
|
-
resolvedModel: resolvedModelName,
|
|
237
|
-
displayName: dynamicModel.displayName,
|
|
238
|
-
pricing: dynamicModel.pricing.input,
|
|
239
|
-
});
|
|
240
|
-
}
|
|
241
|
-
else {
|
|
242
|
-
logger.debug(`[${functionTag}] Dynamic model resolution returned null`, {
|
|
243
|
-
provider: normalizedProvider,
|
|
244
|
-
requestedModel: modelName || "default",
|
|
245
|
-
});
|
|
246
|
-
}
|
|
247
|
-
}
|
|
248
|
-
catch (resolveError) {
|
|
249
|
-
logger.debug(`[${functionTag}] Dynamic model resolution failed, using static fallback`, {
|
|
250
|
-
error: resolveError instanceof Error
|
|
251
|
-
? resolveError.message
|
|
252
|
-
: String(resolveError),
|
|
253
|
-
});
|
|
254
|
-
// Continue with static model name - no functionality loss
|
|
255
|
-
}
|
|
256
|
-
}
|
|
257
|
-
else {
|
|
258
|
-
logger.debug(`[${functionTag}] Skipping dynamic model resolution`, {
|
|
259
|
-
resolvedModelName: resolvedModelName || "none",
|
|
260
|
-
reason: "Model already resolved from environment variables or explicit parameter",
|
|
261
|
-
});
|
|
262
|
-
}
|
|
263
|
-
// CRITICAL FIX: Initialize providers before using them
|
|
264
|
-
await withTimeout(ProviderRegistry.registerAllProviders(), 30_000, new Error("Provider registration timed out"));
|
|
265
|
-
// PURE FACTORY PATTERN: No switch statements - use ProviderFactory exclusively
|
|
266
|
-
const normalizedName = this.normalizeProviderName(providerName);
|
|
267
|
-
const finalModelName = resolvedModelName === "default" || resolvedModelName === null
|
|
268
|
-
? undefined
|
|
269
|
-
: resolvedModelName;
|
|
270
|
-
logger.debug(`[${functionTag}] Final provider configuration`, {
|
|
271
|
-
originalProviderName: providerName,
|
|
272
|
-
normalizedProviderName: normalizedName,
|
|
273
|
-
originalModelName: modelName || "not provided",
|
|
274
|
-
resolvedModelName: resolvedModelName || "not resolved",
|
|
275
|
-
finalModelName: finalModelName || "using provider default",
|
|
276
|
-
});
|
|
277
|
-
// Create provider with enhanced SDK and region support
|
|
278
|
-
const provider = await withTimeout(ProviderFactory.createProvider(normalizedName, finalModelName, sdk, region), 30_000, new Error(`Provider creation timed out for ${normalizedName}`));
|
|
279
|
-
// Summary logging in format expected by debugging tools
|
|
280
|
-
logger.debug(`[AIProviderFactory] Provider creation completed { providerName: '${normalizedName}', modelName: '${finalModelName}' }`);
|
|
281
|
-
logger.debug(`[AIProviderFactory] Resolved model: ${finalModelName}`);
|
|
282
|
-
logger.debug(componentIdentifier, "Pure factory pattern provider created", {
|
|
283
|
-
providerName: normalizedName,
|
|
284
|
-
modelName: finalModelName,
|
|
285
|
-
factoryUsed: true,
|
|
286
|
-
});
|
|
287
|
-
span.setAttribute("provider.resolved_name", normalizedName);
|
|
288
|
-
if (finalModelName) {
|
|
289
|
-
span.setAttribute("model.resolved_name", finalModelName);
|
|
290
|
-
}
|
|
291
|
-
logger.debug(`[${functionTag}] Provider creation succeeded`, {
|
|
292
|
-
providerName,
|
|
293
|
-
modelName: finalModelName || "default",
|
|
294
|
-
providerType: provider.constructor.name,
|
|
295
|
-
mcpEnabled: enableMCP,
|
|
296
|
-
});
|
|
297
|
-
span.setStatus({ code: SpanStatusCode.OK });
|
|
298
|
-
return provider;
|
|
299
|
-
}
|
|
300
|
-
catch (error) {
|
|
301
|
-
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
302
|
-
span.setStatus({ code: SpanStatusCode.ERROR, message: errorMessage });
|
|
303
|
-
span.recordException(error instanceof Error ? error : new Error(String(error)));
|
|
304
|
-
logger.debug(`[${functionTag}] Provider creation failed`, {
|
|
305
|
-
providerName,
|
|
306
|
-
modelName: modelName || "default",
|
|
307
|
-
error: errorMessage,
|
|
308
|
-
});
|
|
309
|
-
throw error;
|
|
310
|
-
}
|
|
311
|
-
finally {
|
|
312
|
-
span.end();
|
|
313
|
-
}
|
|
314
|
-
});
|
|
315
|
-
}
|
|
316
|
-
/**
|
|
317
|
-
* Create a provider instance with specific provider enum and model
|
|
318
|
-
* @param provider - Provider enum value
|
|
319
|
-
* @param model - Specific model enum value
|
|
320
|
-
* @returns AIProvider instance
|
|
321
|
-
*/
|
|
322
|
-
static async createProviderWithModel(provider, model) {
|
|
323
|
-
const functionTag = "AIProviderFactory.createProviderWithModel";
|
|
324
|
-
logger.debug(`[${functionTag}] Provider model creation started`, {
|
|
325
|
-
provider,
|
|
326
|
-
model,
|
|
327
|
-
});
|
|
328
|
-
try {
|
|
329
|
-
const providerInstance = await this.createProvider(provider, model);
|
|
330
|
-
logger.debug(`[${functionTag}] Provider model creation succeeded`, {
|
|
331
|
-
provider,
|
|
332
|
-
model,
|
|
333
|
-
providerType: providerInstance.constructor.name,
|
|
334
|
-
});
|
|
335
|
-
return providerInstance;
|
|
336
|
-
}
|
|
337
|
-
catch (error) {
|
|
338
|
-
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
339
|
-
logger.debug(`[${functionTag}] Provider model creation failed`, {
|
|
340
|
-
provider,
|
|
341
|
-
model,
|
|
342
|
-
error: errorMessage,
|
|
343
|
-
});
|
|
344
|
-
throw error;
|
|
345
|
-
}
|
|
346
|
-
}
|
|
347
|
-
/**
|
|
348
|
-
* Create the best available provider automatically
|
|
349
|
-
* @param requestedProvider - Optional preferred provider
|
|
350
|
-
* @param modelName - Optional model name override
|
|
351
|
-
* @param enableMCP - Optional flag to enable MCP integration (default: true)
|
|
352
|
-
* @returns AIProvider instance
|
|
353
|
-
*/
|
|
354
|
-
static async createBestProvider(requestedProvider, modelName, enableMCP = true, sdk) {
|
|
355
|
-
const functionTag = "AIProviderFactory.createBestProvider";
|
|
356
|
-
try {
|
|
357
|
-
const bestProvider = await getBestProvider(requestedProvider);
|
|
358
|
-
logger.debug(`[${functionTag}] Best provider selected`, {
|
|
359
|
-
requestedProvider: requestedProvider || "auto",
|
|
360
|
-
selectedProvider: bestProvider,
|
|
361
|
-
modelName: modelName || "default",
|
|
362
|
-
enableMCP,
|
|
363
|
-
});
|
|
364
|
-
return await this.createProvider(bestProvider, modelName, enableMCP, sdk);
|
|
365
|
-
}
|
|
366
|
-
catch (error) {
|
|
367
|
-
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
368
|
-
logger.debug(`[${functionTag}] Best provider selection failed`, {
|
|
369
|
-
requestedProvider: requestedProvider || "auto",
|
|
370
|
-
error: errorMessage,
|
|
371
|
-
});
|
|
372
|
-
throw error;
|
|
373
|
-
}
|
|
374
|
-
}
|
|
375
|
-
/**
|
|
376
|
-
* Create primary and fallback provider instances
|
|
377
|
-
* @param primaryProvider - Primary provider name
|
|
378
|
-
* @param fallbackProvider - Fallback provider name
|
|
379
|
-
* @param modelName - Optional model name override
|
|
380
|
-
* @param enableMCP - Optional flag to enable MCP integration (default: true)
|
|
381
|
-
* @returns Object with primary and fallback providers
|
|
382
|
-
*/
|
|
383
|
-
static async createProviderWithFallback(primaryProvider, fallbackProvider, modelName, enableMCP = true) {
|
|
384
|
-
const functionTag = "AIProviderFactory.createProviderWithFallback";
|
|
385
|
-
logger.debug(`[${functionTag}] Fallback provider setup started`, {
|
|
386
|
-
primaryProvider,
|
|
387
|
-
fallbackProvider,
|
|
388
|
-
modelName: modelName || "default",
|
|
389
|
-
enableMCP,
|
|
390
|
-
});
|
|
391
|
-
try {
|
|
392
|
-
const primary = await this.createProvider(primaryProvider, modelName, enableMCP);
|
|
393
|
-
const fallback = await this.createProvider(fallbackProvider, modelName, enableMCP);
|
|
394
|
-
logger.debug(`[${functionTag}] Fallback provider setup succeeded`, {
|
|
395
|
-
primaryProvider,
|
|
396
|
-
fallbackProvider,
|
|
397
|
-
modelName: modelName || "default",
|
|
398
|
-
enableMCP,
|
|
399
|
-
});
|
|
400
|
-
return { primary, fallback };
|
|
401
|
-
}
|
|
402
|
-
catch (error) {
|
|
403
|
-
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
404
|
-
logger.debug(`[${functionTag}] Fallback provider setup failed`, {
|
|
405
|
-
primaryProvider,
|
|
406
|
-
fallbackProvider,
|
|
407
|
-
error: errorMessage,
|
|
408
|
-
});
|
|
409
|
-
throw error;
|
|
410
|
-
}
|
|
411
|
-
}
|
|
412
|
-
}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
export class NeuroLinkFeatureError extends Error {
|
|
2
|
-
code;
|
|
3
|
-
feature;
|
|
4
|
-
retryable;
|
|
5
|
-
details;
|
|
6
|
-
cause;
|
|
7
|
-
constructor(message, code, feature, options) {
|
|
8
|
-
super(message);
|
|
9
|
-
this.name = `${feature}Error`;
|
|
10
|
-
this.code = code;
|
|
11
|
-
this.feature = feature;
|
|
12
|
-
this.retryable = options?.retryable ?? false;
|
|
13
|
-
this.details = options?.details;
|
|
14
|
-
this.cause = options?.cause;
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
export function createErrorFactory(feature, codes) {
|
|
18
|
-
return {
|
|
19
|
-
codes,
|
|
20
|
-
create: (code, message, options) => new NeuroLinkFeatureError(message, codes[code], feature, options),
|
|
21
|
-
};
|
|
22
|
-
}
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import { logger } from "../../utils/logger.js";
|
|
2
|
-
export class BaseFactory {
|
|
3
|
-
items = new Map();
|
|
4
|
-
aliasMap = new Map();
|
|
5
|
-
initialized = false;
|
|
6
|
-
initPromise = null;
|
|
7
|
-
async ensureInitialized() {
|
|
8
|
-
if (this.initialized) {
|
|
9
|
-
return;
|
|
10
|
-
}
|
|
11
|
-
if (this.initPromise) {
|
|
12
|
-
return this.initPromise;
|
|
13
|
-
}
|
|
14
|
-
this.initPromise = this.registerAll();
|
|
15
|
-
await this.initPromise;
|
|
16
|
-
this.initialized = true;
|
|
17
|
-
}
|
|
18
|
-
register(name, factory, aliases = [], metadata) {
|
|
19
|
-
this.items.set(name, { factory, aliases, metadata });
|
|
20
|
-
for (const alias of aliases) {
|
|
21
|
-
this.aliasMap.set(alias.toLowerCase(), name);
|
|
22
|
-
}
|
|
23
|
-
logger.debug(`Registered ${name} with aliases: ${aliases.join(", ")}`);
|
|
24
|
-
}
|
|
25
|
-
async create(nameOrAlias, config) {
|
|
26
|
-
await this.ensureInitialized();
|
|
27
|
-
const name = this.resolveName(nameOrAlias);
|
|
28
|
-
const registration = this.items.get(name);
|
|
29
|
-
if (!registration) {
|
|
30
|
-
throw new Error(`Unknown item: ${nameOrAlias}`);
|
|
31
|
-
}
|
|
32
|
-
return registration.factory(config);
|
|
33
|
-
}
|
|
34
|
-
resolveName(nameOrAlias) {
|
|
35
|
-
const lower = nameOrAlias.toLowerCase();
|
|
36
|
-
return this.aliasMap.get(lower) || nameOrAlias;
|
|
37
|
-
}
|
|
38
|
-
has(nameOrAlias) {
|
|
39
|
-
const name = this.resolveName(nameOrAlias);
|
|
40
|
-
return this.items.has(name);
|
|
41
|
-
}
|
|
42
|
-
getAvailable() {
|
|
43
|
-
return Array.from(this.items.keys());
|
|
44
|
-
}
|
|
45
|
-
getAliases() {
|
|
46
|
-
return new Map(this.aliasMap);
|
|
47
|
-
}
|
|
48
|
-
clear() {
|
|
49
|
-
this.items.clear();
|
|
50
|
-
this.aliasMap.clear();
|
|
51
|
-
this.initialized = false;
|
|
52
|
-
this.initPromise = null;
|
|
53
|
-
}
|
|
54
|
-
}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { logger } from "../../utils/logger.js";
|
|
2
|
-
export class BaseRegistry {
|
|
3
|
-
items = new Map();
|
|
4
|
-
initialized = false;
|
|
5
|
-
initPromise = null;
|
|
6
|
-
async ensureInitialized() {
|
|
7
|
-
if (this.initialized) {
|
|
8
|
-
return;
|
|
9
|
-
}
|
|
10
|
-
if (this.initPromise) {
|
|
11
|
-
return this.initPromise;
|
|
12
|
-
}
|
|
13
|
-
this.initPromise = this.registerAll();
|
|
14
|
-
await this.initPromise;
|
|
15
|
-
this.initialized = true;
|
|
16
|
-
}
|
|
17
|
-
register(id, factory, metadata) {
|
|
18
|
-
this.items.set(id, { factory, metadata });
|
|
19
|
-
logger.debug(`Registered ${id} in registry`);
|
|
20
|
-
}
|
|
21
|
-
async get(id) {
|
|
22
|
-
await this.ensureInitialized();
|
|
23
|
-
const entry = this.items.get(id);
|
|
24
|
-
if (!entry) {
|
|
25
|
-
return undefined;
|
|
26
|
-
}
|
|
27
|
-
if (!entry.instance) {
|
|
28
|
-
entry.instance = await entry.factory();
|
|
29
|
-
}
|
|
30
|
-
return entry.instance;
|
|
31
|
-
}
|
|
32
|
-
has(id) {
|
|
33
|
-
return this.items.has(id);
|
|
34
|
-
}
|
|
35
|
-
list() {
|
|
36
|
-
return Array.from(this.items.entries()).map(([id, entry]) => ({
|
|
37
|
-
id,
|
|
38
|
-
metadata: entry.metadata,
|
|
39
|
-
}));
|
|
40
|
-
}
|
|
41
|
-
clear() {
|
|
42
|
-
this.items.clear();
|
|
43
|
-
this.initialized = false;
|
|
44
|
-
this.initPromise = null;
|
|
45
|
-
}
|
|
46
|
-
isInitialized() {
|
|
47
|
-
return this.initialized;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
export { createErrorFactory, NeuroLinkFeatureError } from "./baseError.js";
|
|
2
|
-
export { BaseFactory } from "./baseFactory.js";
|
|
3
|
-
export { BaseRegistry } from "./baseRegistry.js";
|
|
4
|
-
export { withRetry } from "./retry.js";
|
|
5
|
-
export { TypedEventEmitter } from "./typedEventEmitter.js";
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
export async function withRetry(operation, options) {
|
|
2
|
-
const { maxRetries, baseDelayMs, maxDelayMs = 30000, shouldRetry } = options;
|
|
3
|
-
let lastError;
|
|
4
|
-
for (let attempt = 0; attempt <= maxRetries; attempt++) {
|
|
5
|
-
try {
|
|
6
|
-
return await operation();
|
|
7
|
-
}
|
|
8
|
-
catch (error) {
|
|
9
|
-
lastError = error;
|
|
10
|
-
if (shouldRetry && !shouldRetry(lastError)) {
|
|
11
|
-
throw lastError;
|
|
12
|
-
}
|
|
13
|
-
if (attempt < maxRetries) {
|
|
14
|
-
const delay = Math.min(baseDelayMs * 2 ** attempt, maxDelayMs);
|
|
15
|
-
await new Promise((resolve) => setTimeout(resolve, delay));
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
throw lastError;
|
|
20
|
-
}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { EventEmitter } from "events";
|
|
2
|
-
export class TypedEventEmitter {
|
|
3
|
-
emitter = new EventEmitter();
|
|
4
|
-
on(event, listener) {
|
|
5
|
-
this.emitter.on(event, listener);
|
|
6
|
-
return this;
|
|
7
|
-
}
|
|
8
|
-
off(event, listener) {
|
|
9
|
-
this.emitter.off(event, listener);
|
|
10
|
-
return this;
|
|
11
|
-
}
|
|
12
|
-
emit(event, ...args) {
|
|
13
|
-
return this.emitter.emit(event, ...args);
|
|
14
|
-
}
|
|
15
|
-
once(event, listener) {
|
|
16
|
-
this.emitter.once(event, listener);
|
|
17
|
-
return this;
|
|
18
|
-
}
|
|
19
|
-
removeAllListeners(event) {
|
|
20
|
-
this.emitter.removeAllListeners(event);
|
|
21
|
-
return this;
|
|
22
|
-
}
|
|
23
|
-
}
|