@juspay/neurolink 9.32.0 → 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 +6 -0
- package/dist/auth/anthropicOAuth.js +1 -1
- package/dist/cli/commands/proxy.js +18 -5
- package/dist/client/aiSdkAdapter.js +1 -1
- package/dist/client/index.js +137 -501
- package/dist/core/factory.js +0 -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/lib/server/routes/claudeProxyRoutes.js +45 -9
- package/dist/mcp/elicitationProtocol.js +1 -1
- package/dist/mcp/servers/agent/directToolsServer.js +0 -1
- package/dist/providers/azureOpenai.js +1 -1
- package/dist/providers/huggingFace.js +0 -1
- package/dist/providers/openaiCompatible.js +0 -1
- package/dist/sdk/toolRegistration.js +0 -1
- package/dist/server/openapi/generator.js +1 -1
- package/dist/server/routes/claudeProxyRoutes.js +45 -9
- package/dist/types/configTypes.js +0 -5
- package/dist/types/modelTypes.js +0 -1
- 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 +2 -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/AuthProviderFactory.js +0 -111
- package/dist/client/auth/AuthProviderRegistry.js +0 -190
- package/dist/client/auth/RequestContext.js +0 -78
- package/dist/client/auth/accountPool.js +0 -178
- package/dist/client/auth/anthropicOAuth.js +0 -974
- package/dist/client/auth/authContext.js +0 -314
- package/dist/client/auth/errors.js +0 -39
- package/dist/client/auth/index.js +0 -61
- package/dist/client/auth/middleware/AuthMiddleware.js +0 -519
- package/dist/client/auth/middleware/rateLimitByUser.js +0 -554
- package/dist/client/auth/providers/BaseAuthProvider.js +0 -723
- package/dist/client/auth/providers/CognitoProvider.js +0 -304
- package/dist/client/auth/providers/KeycloakProvider.js +0 -393
- package/dist/client/auth/providers/auth0.js +0 -274
- package/dist/client/auth/providers/betterAuth.js +0 -182
- package/dist/client/auth/providers/clerk.js +0 -317
- package/dist/client/auth/providers/custom.js +0 -112
- package/dist/client/auth/providers/firebase.js +0 -226
- package/dist/client/auth/providers/jwt.js +0 -212
- package/dist/client/auth/providers/oauth2.js +0 -303
- package/dist/client/auth/providers/supabase.js +0 -259
- package/dist/client/auth/providers/workos.js +0 -284
- package/dist/client/auth/serverBridge.js +0 -25
- package/dist/client/auth/sessionManager.js +0 -437
- 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 -53
- 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 -729
- 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 -8233
- 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 -189
- 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 -9
- 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,54 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* NL-004: Model alias/deprecation resolver.
|
|
3
|
-
*
|
|
4
|
-
* Resolves model names against an alias configuration map and applies the
|
|
5
|
-
* configured action (warn, redirect, or block).
|
|
6
|
-
*/
|
|
7
|
-
import { ErrorCategory, ErrorSeverity } from "../constants/enums.js";
|
|
8
|
-
import { NeuroLinkError } from "./errorHandling.js";
|
|
9
|
-
import { logger } from "./logger.js";
|
|
10
|
-
/**
|
|
11
|
-
* Resolve model aliases/deprecations.
|
|
12
|
-
* Checks the model name against the alias map and applies the configured action.
|
|
13
|
-
*
|
|
14
|
-
* @param model - The requested model name (may be undefined).
|
|
15
|
-
* @param config - The alias configuration containing model mappings.
|
|
16
|
-
* @returns The resolved model name (original or redirected).
|
|
17
|
-
* @throws {NeuroLinkError} When the alias action is "block".
|
|
18
|
-
*/
|
|
19
|
-
export function resolveModel(model, config) {
|
|
20
|
-
if (!model || !config?.aliases) {
|
|
21
|
-
return model;
|
|
22
|
-
}
|
|
23
|
-
const alias = config.aliases[model];
|
|
24
|
-
if (!alias) {
|
|
25
|
-
return model;
|
|
26
|
-
}
|
|
27
|
-
switch (alias.action) {
|
|
28
|
-
case "block":
|
|
29
|
-
throw new NeuroLinkError({
|
|
30
|
-
code: "MODEL_DEPRECATED",
|
|
31
|
-
message: `Model '${model}' is blocked. ${alias.reason || `Use '${alias.target}' instead.`}`,
|
|
32
|
-
category: ErrorCategory.VALIDATION,
|
|
33
|
-
severity: ErrorSeverity.HIGH,
|
|
34
|
-
retriable: false,
|
|
35
|
-
context: {
|
|
36
|
-
requestedModel: model,
|
|
37
|
-
suggestedModel: alias.target,
|
|
38
|
-
reason: alias.reason,
|
|
39
|
-
},
|
|
40
|
-
});
|
|
41
|
-
case "warn":
|
|
42
|
-
logger.warn(`[ModelAlias] Model '${model}' is deprecated. ${alias.reason || `Redirecting to '${alias.target}'.`}`, {
|
|
43
|
-
requestedModel: model,
|
|
44
|
-
targetModel: alias.target,
|
|
45
|
-
reason: alias.reason,
|
|
46
|
-
});
|
|
47
|
-
return alias.target;
|
|
48
|
-
case "redirect":
|
|
49
|
-
logger.debug(`[ModelAlias] Redirecting model '${model}' to '${alias.target}'`);
|
|
50
|
-
return alias.target;
|
|
51
|
-
default:
|
|
52
|
-
return model;
|
|
53
|
-
}
|
|
54
|
-
}
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Model detection utilities for capability checking
|
|
3
|
-
*/
|
|
4
|
-
/**
|
|
5
|
-
* Check if model name is valid for detection functions
|
|
6
|
-
*/
|
|
7
|
-
function isValidModelName(modelName) {
|
|
8
|
-
return typeof modelName === "string" && modelName.length > 0;
|
|
9
|
-
}
|
|
10
|
-
export function isGemini3Model(modelName) {
|
|
11
|
-
if (!isValidModelName(modelName)) {
|
|
12
|
-
return false;
|
|
13
|
-
}
|
|
14
|
-
return /^gemini-3(\.\d+)?(-.*)?$/i.test(modelName);
|
|
15
|
-
}
|
|
16
|
-
export function isGemini25Model(modelName) {
|
|
17
|
-
if (!isValidModelName(modelName)) {
|
|
18
|
-
return false;
|
|
19
|
-
}
|
|
20
|
-
return /^gemini-2\.5(-.*)?$/i.test(modelName);
|
|
21
|
-
}
|
|
22
|
-
export function supportsThinkingConfig(modelName) {
|
|
23
|
-
if (!isValidModelName(modelName)) {
|
|
24
|
-
return false;
|
|
25
|
-
}
|
|
26
|
-
const thinkingModels = [
|
|
27
|
-
/^gemini-3/i,
|
|
28
|
-
/^gemini-2\.5-pro/i,
|
|
29
|
-
/^gemini-2\.5-flash/i,
|
|
30
|
-
];
|
|
31
|
-
return thinkingModels.some((pattern) => pattern.test(modelName));
|
|
32
|
-
}
|
|
33
|
-
export function supportsPromptCaching(modelName) {
|
|
34
|
-
if (!isValidModelName(modelName)) {
|
|
35
|
-
return false;
|
|
36
|
-
}
|
|
37
|
-
const cachingModels = [
|
|
38
|
-
/^gemini-3/i,
|
|
39
|
-
/^gemini-2\.5/i,
|
|
40
|
-
/^gpt-4/i,
|
|
41
|
-
/^claude-3/i,
|
|
42
|
-
];
|
|
43
|
-
return cachingModels.some((pattern) => pattern.test(modelName));
|
|
44
|
-
}
|
|
45
|
-
export function getMaxThinkingBudgetTokens(modelName) {
|
|
46
|
-
if (!isValidModelName(modelName)) {
|
|
47
|
-
return 10000;
|
|
48
|
-
}
|
|
49
|
-
if (/^gemini-3(\.\d+)?-pro/i.test(modelName)) {
|
|
50
|
-
return 100000;
|
|
51
|
-
}
|
|
52
|
-
if (/^gemini-3(\.\d+)?-flash/i.test(modelName)) {
|
|
53
|
-
return 50000;
|
|
54
|
-
}
|
|
55
|
-
if (/^gemini-2\.5/i.test(modelName)) {
|
|
56
|
-
return 32000;
|
|
57
|
-
}
|
|
58
|
-
return 10000;
|
|
59
|
-
}
|
|
60
|
-
export function getModelFamily(modelName) {
|
|
61
|
-
if (!isValidModelName(modelName)) {
|
|
62
|
-
return "unknown";
|
|
63
|
-
}
|
|
64
|
-
if (/^gemini-3/i.test(modelName)) {
|
|
65
|
-
return "gemini-3";
|
|
66
|
-
}
|
|
67
|
-
if (/^gemini-2\.5/i.test(modelName)) {
|
|
68
|
-
return "gemini-2.5";
|
|
69
|
-
}
|
|
70
|
-
if (/^gemini-2/i.test(modelName)) {
|
|
71
|
-
return "gemini-2";
|
|
72
|
-
}
|
|
73
|
-
if (/^gpt-4/i.test(modelName)) {
|
|
74
|
-
return "gpt-4";
|
|
75
|
-
}
|
|
76
|
-
if (/^claude-3/i.test(modelName)) {
|
|
77
|
-
return "claude-3";
|
|
78
|
-
}
|
|
79
|
-
return "unknown";
|
|
80
|
-
}
|
|
@@ -1,292 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Model Router for NeuroLink Orchestration
|
|
3
|
-
* Routes tasks to optimal models based on classification and requirements
|
|
4
|
-
*/
|
|
5
|
-
import { logger } from "./logger.js";
|
|
6
|
-
import { BinaryTaskClassifier } from "./taskClassifier.js";
|
|
7
|
-
import { redactForRouting } from "./promptRedaction.js";
|
|
8
|
-
/**
|
|
9
|
-
* Routing configuration constants
|
|
10
|
-
*/
|
|
11
|
-
const ROUTING_CONFIG = {
|
|
12
|
-
minRouteConfidence: 0.3,
|
|
13
|
-
maxRouteConfidence: 0.95,
|
|
14
|
-
confidenceBoost: 0.1,
|
|
15
|
-
};
|
|
16
|
-
/**
|
|
17
|
-
* Model configurations for different task types and providers
|
|
18
|
-
*/
|
|
19
|
-
const MODEL_CONFIGS = {
|
|
20
|
-
fast: {
|
|
21
|
-
primary: {
|
|
22
|
-
provider: "vertex",
|
|
23
|
-
model: "gemini-2.5-flash",
|
|
24
|
-
capabilities: ["speed", "general", "code", "basic-reasoning"],
|
|
25
|
-
avgResponseTime: 800,
|
|
26
|
-
costPerToken: 0.0001,
|
|
27
|
-
reasoning: "Optimized for speed and efficiency via Vertex AI",
|
|
28
|
-
},
|
|
29
|
-
fallback: {
|
|
30
|
-
provider: "vertex",
|
|
31
|
-
model: "claude-haiku-4-5@20251001",
|
|
32
|
-
capabilities: ["speed", "general", "basic-reasoning"],
|
|
33
|
-
avgResponseTime: 1200,
|
|
34
|
-
costPerToken: 0.0002,
|
|
35
|
-
reasoning: "Vertex AI Claude Haiku fallback",
|
|
36
|
-
},
|
|
37
|
-
},
|
|
38
|
-
reasoning: {
|
|
39
|
-
primary: {
|
|
40
|
-
provider: "vertex",
|
|
41
|
-
model: "claude-sonnet-4-5@20250929",
|
|
42
|
-
capabilities: [
|
|
43
|
-
"reasoning",
|
|
44
|
-
"analysis",
|
|
45
|
-
"complex-logic",
|
|
46
|
-
"code",
|
|
47
|
-
"creativity",
|
|
48
|
-
],
|
|
49
|
-
avgResponseTime: 3000,
|
|
50
|
-
costPerToken: 0.003,
|
|
51
|
-
reasoning: "Advanced reasoning and analysis via Claude Sonnet 4-5 on Vertex AI",
|
|
52
|
-
},
|
|
53
|
-
fallback: {
|
|
54
|
-
provider: "vertex",
|
|
55
|
-
model: "claude-opus-4-5@20251101",
|
|
56
|
-
capabilities: [
|
|
57
|
-
"reasoning",
|
|
58
|
-
"analysis",
|
|
59
|
-
"complex-logic",
|
|
60
|
-
"code",
|
|
61
|
-
"creativity",
|
|
62
|
-
"agentic",
|
|
63
|
-
],
|
|
64
|
-
avgResponseTime: 4000,
|
|
65
|
-
costPerToken: 0.005,
|
|
66
|
-
reasoning: "Claude Opus 4-5 fallback on Vertex AI for most complex tasks",
|
|
67
|
-
},
|
|
68
|
-
},
|
|
69
|
-
};
|
|
70
|
-
/**
|
|
71
|
-
* Model Router
|
|
72
|
-
* Intelligently routes tasks to optimal models based on classification
|
|
73
|
-
*/
|
|
74
|
-
export class ModelRouter {
|
|
75
|
-
/**
|
|
76
|
-
* Route a prompt to the optimal model configuration
|
|
77
|
-
*/
|
|
78
|
-
static route(prompt, options = {}) {
|
|
79
|
-
const startTime = Date.now();
|
|
80
|
-
// 1. Classify the task if not overridden
|
|
81
|
-
let classification;
|
|
82
|
-
if (options.forceTaskType) {
|
|
83
|
-
classification = {
|
|
84
|
-
type: options.forceTaskType,
|
|
85
|
-
confidence: ROUTING_CONFIG.maxRouteConfidence, // Use maxRouteConfidence instead of 1.0
|
|
86
|
-
reasoning: "forced task type",
|
|
87
|
-
};
|
|
88
|
-
}
|
|
89
|
-
else {
|
|
90
|
-
classification = BinaryTaskClassifier.classify(prompt);
|
|
91
|
-
}
|
|
92
|
-
// 2. Apply special requirements
|
|
93
|
-
let taskType = classification.type;
|
|
94
|
-
const reasons = [classification.reasoning];
|
|
95
|
-
if (options.requireFast) {
|
|
96
|
-
taskType = "fast";
|
|
97
|
-
reasons.push("speed required");
|
|
98
|
-
}
|
|
99
|
-
if (options.requireCapability) {
|
|
100
|
-
// Check if the capability suggests a specific task type
|
|
101
|
-
const capability = options.requireCapability.toLowerCase();
|
|
102
|
-
if (["analysis", "reasoning", "complex", "research"].some((c) => capability.includes(c))) {
|
|
103
|
-
taskType = "reasoning";
|
|
104
|
-
reasons.push(`capability: ${capability}`);
|
|
105
|
-
}
|
|
106
|
-
else if (["speed", "quick", "fast", "simple"].some((c) => capability.includes(c))) {
|
|
107
|
-
taskType = "fast";
|
|
108
|
-
reasons.push(`capability: ${capability}`);
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
// 3. Select model configuration
|
|
112
|
-
const config = MODEL_CONFIGS[taskType];
|
|
113
|
-
const selectedConfig = config.primary;
|
|
114
|
-
// 4. Calculate confidence based on multiple factors
|
|
115
|
-
let confidence = classification.confidence;
|
|
116
|
-
// Adjust confidence based on prompt characteristics
|
|
117
|
-
if (taskType === "fast" && prompt.length < 30) {
|
|
118
|
-
confidence = Math.min(ROUTING_CONFIG.maxRouteConfidence, confidence + ROUTING_CONFIG.confidenceBoost);
|
|
119
|
-
reasons.push("very short prompt");
|
|
120
|
-
}
|
|
121
|
-
if (taskType === "reasoning" && prompt.length > 150) {
|
|
122
|
-
confidence = Math.min(ROUTING_CONFIG.maxRouteConfidence, confidence + ROUTING_CONFIG.confidenceBoost);
|
|
123
|
-
reasons.push("detailed prompt");
|
|
124
|
-
}
|
|
125
|
-
// Ensure final confidence is within configured bounds
|
|
126
|
-
confidence = Math.max(ROUTING_CONFIG.minRouteConfidence, Math.min(ROUTING_CONFIG.maxRouteConfidence, confidence));
|
|
127
|
-
// 5. Create route result
|
|
128
|
-
const route = {
|
|
129
|
-
provider: selectedConfig.provider,
|
|
130
|
-
model: selectedConfig.model,
|
|
131
|
-
reasoning: reasons.join(", "),
|
|
132
|
-
confidence,
|
|
133
|
-
};
|
|
134
|
-
const routingTime = Date.now() - startTime;
|
|
135
|
-
logger.debug("Model routing decision", {
|
|
136
|
-
prompt: redactForRouting(prompt),
|
|
137
|
-
taskType,
|
|
138
|
-
route: {
|
|
139
|
-
provider: route.provider,
|
|
140
|
-
model: route.model,
|
|
141
|
-
confidence: route.confidence.toFixed(2),
|
|
142
|
-
},
|
|
143
|
-
reasoning: route.reasoning,
|
|
144
|
-
routingTime: `${routingTime}ms`,
|
|
145
|
-
options: Object.keys(options).length > 0 ? options : undefined,
|
|
146
|
-
});
|
|
147
|
-
return route;
|
|
148
|
-
}
|
|
149
|
-
/**
|
|
150
|
-
* Get fallback route if primary route fails
|
|
151
|
-
*/
|
|
152
|
-
static getFallbackRoute(prompt, primaryRoute, options = {}) {
|
|
153
|
-
// Determine fallback strategy
|
|
154
|
-
let fallbackType;
|
|
155
|
-
if (options.fallbackStrategy) {
|
|
156
|
-
if (options.fallbackStrategy === "auto") {
|
|
157
|
-
// Use opposite of primary for fallback
|
|
158
|
-
const primaryType = this.getTaskTypeFromRoute(primaryRoute);
|
|
159
|
-
fallbackType = primaryType === "fast" ? "reasoning" : "fast";
|
|
160
|
-
}
|
|
161
|
-
else {
|
|
162
|
-
fallbackType = options.fallbackStrategy;
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
else {
|
|
166
|
-
// Default: use fallback model of same type
|
|
167
|
-
fallbackType = this.getTaskTypeFromRoute(primaryRoute);
|
|
168
|
-
}
|
|
169
|
-
const config = MODEL_CONFIGS[fallbackType];
|
|
170
|
-
const fallbackConfig = config.fallback;
|
|
171
|
-
const route = {
|
|
172
|
-
provider: fallbackConfig.provider,
|
|
173
|
-
model: fallbackConfig.model,
|
|
174
|
-
reasoning: `fallback from ${primaryRoute.provider}/${primaryRoute.model}`,
|
|
175
|
-
confidence: Math.max(ROUTING_CONFIG.minRouteConfidence, Math.min(ROUTING_CONFIG.maxRouteConfidence, primaryRoute.confidence - 0.2)),
|
|
176
|
-
};
|
|
177
|
-
logger.debug("Fallback route selected", {
|
|
178
|
-
originalRoute: `${primaryRoute.provider}/${primaryRoute.model}`,
|
|
179
|
-
fallbackRoute: `${route.provider}/${route.model}`,
|
|
180
|
-
fallbackType,
|
|
181
|
-
strategy: options.fallbackStrategy || "default",
|
|
182
|
-
});
|
|
183
|
-
return route;
|
|
184
|
-
}
|
|
185
|
-
/**
|
|
186
|
-
* Determine task type from a model route
|
|
187
|
-
*/
|
|
188
|
-
static getTaskTypeFromRoute(route) {
|
|
189
|
-
// Check which config matches this route
|
|
190
|
-
for (const [taskType, config] of Object.entries(MODEL_CONFIGS)) {
|
|
191
|
-
if (config.primary.provider === route.provider &&
|
|
192
|
-
config.primary.model === route.model) {
|
|
193
|
-
return taskType;
|
|
194
|
-
}
|
|
195
|
-
if (config.fallback.provider === route.provider &&
|
|
196
|
-
config.fallback.model === route.model) {
|
|
197
|
-
return taskType;
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
// Default fallback based on model name patterns
|
|
201
|
-
if (route.model.includes("flash") || route.model.includes("mini")) {
|
|
202
|
-
return "fast";
|
|
203
|
-
}
|
|
204
|
-
return "reasoning";
|
|
205
|
-
}
|
|
206
|
-
/**
|
|
207
|
-
* Get all available model configurations
|
|
208
|
-
*/
|
|
209
|
-
static getAvailableModels() {
|
|
210
|
-
return MODEL_CONFIGS;
|
|
211
|
-
}
|
|
212
|
-
/**
|
|
213
|
-
* Validate model availability for a given route
|
|
214
|
-
*/
|
|
215
|
-
static async validateRoute(route) {
|
|
216
|
-
try {
|
|
217
|
-
// This would typically check provider availability
|
|
218
|
-
// For now, just validate the configuration exists
|
|
219
|
-
const configs = Object.values(MODEL_CONFIGS).flatMap((config) => [
|
|
220
|
-
config.primary,
|
|
221
|
-
config.fallback,
|
|
222
|
-
]);
|
|
223
|
-
return configs.some((config) => config.provider === route.provider && config.model === route.model);
|
|
224
|
-
}
|
|
225
|
-
catch (error) {
|
|
226
|
-
logger.error("Route validation failed", {
|
|
227
|
-
route,
|
|
228
|
-
error: error instanceof Error ? error.message : String(error),
|
|
229
|
-
});
|
|
230
|
-
return false;
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
/**
|
|
234
|
-
* Get routing statistics for multiple prompts
|
|
235
|
-
*/
|
|
236
|
-
static getRoutingStats(prompts) {
|
|
237
|
-
const routes = prompts.map((prompt) => this.route(prompt));
|
|
238
|
-
// Handle empty prompts array to avoid divide-by-zero
|
|
239
|
-
if (routes.length === 0) {
|
|
240
|
-
const stats = {
|
|
241
|
-
total: 0,
|
|
242
|
-
fastRoutes: 0,
|
|
243
|
-
reasoningRoutes: 0,
|
|
244
|
-
averageConfidence: 0,
|
|
245
|
-
providerDistribution: {},
|
|
246
|
-
};
|
|
247
|
-
logger.debug("Routing statistics", stats);
|
|
248
|
-
return stats;
|
|
249
|
-
}
|
|
250
|
-
const stats = {
|
|
251
|
-
total: routes.length,
|
|
252
|
-
fastRoutes: routes.filter((r) => {
|
|
253
|
-
const taskType = this.getTaskTypeFromRoute(r);
|
|
254
|
-
return taskType === "fast";
|
|
255
|
-
}).length,
|
|
256
|
-
reasoningRoutes: routes.filter((r) => {
|
|
257
|
-
const taskType = this.getTaskTypeFromRoute(r);
|
|
258
|
-
return taskType === "reasoning";
|
|
259
|
-
}).length,
|
|
260
|
-
averageConfidence: routes.reduce((sum, r) => sum + r.confidence, 0) / routes.length,
|
|
261
|
-
providerDistribution: routes.reduce((dist, r) => {
|
|
262
|
-
dist[r.provider] = (dist[r.provider] || 0) + 1;
|
|
263
|
-
return dist;
|
|
264
|
-
}, {}),
|
|
265
|
-
};
|
|
266
|
-
logger.debug("Routing statistics", stats);
|
|
267
|
-
return stats;
|
|
268
|
-
}
|
|
269
|
-
/**
|
|
270
|
-
* Estimate cost and performance for a route
|
|
271
|
-
*/
|
|
272
|
-
static getRouteEstimates(route, estimatedTokens = 500) {
|
|
273
|
-
// Find the config for this route
|
|
274
|
-
const allConfigs = Object.values(MODEL_CONFIGS).flatMap((config) => [
|
|
275
|
-
config.primary,
|
|
276
|
-
config.fallback,
|
|
277
|
-
]);
|
|
278
|
-
const config = allConfigs.find((c) => c.provider === route.provider && c.model === route.model);
|
|
279
|
-
if (!config) {
|
|
280
|
-
return {
|
|
281
|
-
estimatedCost: 0,
|
|
282
|
-
estimatedResponseTime: 2000,
|
|
283
|
-
capabilities: [],
|
|
284
|
-
};
|
|
285
|
-
}
|
|
286
|
-
return {
|
|
287
|
-
estimatedCost: config.costPerToken * estimatedTokens,
|
|
288
|
-
estimatedResponseTime: config.avgResponseTime,
|
|
289
|
-
capabilities: [...config.capabilities],
|
|
290
|
-
};
|
|
291
|
-
}
|
|
292
|
-
}
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Builds a normalized multimodal options payload for streaming providers.
|
|
3
|
-
*
|
|
4
|
-
* This utility extracts and normalizes multimodal input fields from StreamOptions
|
|
5
|
-
* into a consistent format that can be consumed by buildMultimodalMessagesArray.
|
|
6
|
-
*
|
|
7
|
-
* @param {StreamOptions} options - Stream options containing:
|
|
8
|
-
* - input.text: Main text prompt
|
|
9
|
-
* - input.images: Image files (Buffer | string paths/URLs)
|
|
10
|
-
* - input.content: Advanced multimodal content array
|
|
11
|
-
* - input.files: Auto-detected file types
|
|
12
|
-
* - input.csvFiles: CSV files for tabular data
|
|
13
|
-
* - input.pdfFiles: PDF documents (Buffer | string paths)
|
|
14
|
-
* - csvOptions: CSV parsing options
|
|
15
|
-
* - systemPrompt: System-level instructions
|
|
16
|
-
* - conversationMessages: Chat history
|
|
17
|
-
* - temperature: Model temperature (0-1)
|
|
18
|
-
* - maxTokens: Maximum output tokens
|
|
19
|
-
* - enableAnalytics: Enable analytics tracking
|
|
20
|
-
* - enableEvaluation: Enable response evaluation
|
|
21
|
-
* - context: Additional context data
|
|
22
|
-
* @param {string} providerName - Provider identifier (e.g., "vertex", "openai", "anthropic")
|
|
23
|
-
* @param {string} modelName - Model identifier (e.g., "gemini-2.5-flash", "gpt-4o")
|
|
24
|
-
* @returns {object} Normalized options object with:
|
|
25
|
-
* - input: { text, images, content, files, csvFiles, pdfFiles }
|
|
26
|
-
* - csvOptions: CSV processing options
|
|
27
|
-
* - systemPrompt: System prompt string
|
|
28
|
-
* - conversationHistory: Message history array
|
|
29
|
-
* - provider: Provider name
|
|
30
|
-
* - model: Model name
|
|
31
|
-
* - temperature: Temperature value
|
|
32
|
-
* - maxTokens: Token limit
|
|
33
|
-
* - enableAnalytics: Analytics flag
|
|
34
|
-
* - enableEvaluation: Evaluation flag
|
|
35
|
-
* - context: Context data
|
|
36
|
-
*
|
|
37
|
-
* @example
|
|
38
|
-
* ```typescript
|
|
39
|
-
* const opts = buildMultimodalOptions(streamOptions, "vertex", "gemini-2.5-flash");
|
|
40
|
-
* const messages = await buildMultimodalMessagesArray(opts, "vertex", "gemini-2.5-flash");
|
|
41
|
-
* ```
|
|
42
|
-
*/
|
|
43
|
-
export function buildMultimodalOptions(options, providerName, modelName) {
|
|
44
|
-
return {
|
|
45
|
-
input: {
|
|
46
|
-
text: options.input?.text || "",
|
|
47
|
-
images: options.input?.images,
|
|
48
|
-
content: options.input?.content,
|
|
49
|
-
files: options.input?.files,
|
|
50
|
-
csvFiles: options.input?.csvFiles,
|
|
51
|
-
pdfFiles: options.input?.pdfFiles,
|
|
52
|
-
},
|
|
53
|
-
csvOptions: options.csvOptions,
|
|
54
|
-
systemPrompt: options.systemPrompt,
|
|
55
|
-
conversationHistory: options.conversationMessages,
|
|
56
|
-
provider: providerName,
|
|
57
|
-
model: modelName,
|
|
58
|
-
temperature: options.temperature,
|
|
59
|
-
maxTokens: options.maxTokens,
|
|
60
|
-
enableAnalytics: options.enableAnalytics,
|
|
61
|
-
enableEvaluation: options.enableEvaluation,
|
|
62
|
-
context: options.context,
|
|
63
|
-
fileRegistry: options.fileRegistry,
|
|
64
|
-
};
|
|
65
|
-
}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Utility for building observability configs from environment variables
|
|
3
|
-
*/
|
|
4
|
-
/**
|
|
5
|
-
* Build observability config from environment variables
|
|
6
|
-
*
|
|
7
|
-
* Reads Langfuse configuration from environment:
|
|
8
|
-
* - LANGFUSE_ENABLED: Enable/disable Langfuse (must be "true")
|
|
9
|
-
* - LANGFUSE_PUBLIC_KEY: Your Langfuse public key (required)
|
|
10
|
-
* - LANGFUSE_SECRET_KEY: Your Langfuse secret key (required)
|
|
11
|
-
* - LANGFUSE_BASE_URL: Langfuse server URL (default: https://cloud.langfuse.com)
|
|
12
|
-
* - LANGFUSE_ENVIRONMENT: Environment name (default: dev)
|
|
13
|
-
* - PUBLIC_APP_VERSION: Release/version identifier (default: v1.0.0)
|
|
14
|
-
*
|
|
15
|
-
* @returns ObservabilityConfig if all required env vars are set, undefined otherwise
|
|
16
|
-
*
|
|
17
|
-
* @example
|
|
18
|
-
* ```typescript
|
|
19
|
-
* import { NeuroLink, buildObservabilityConfigFromEnv } from '@juspay/neurolink';
|
|
20
|
-
*
|
|
21
|
-
* const neurolink = new NeuroLink({
|
|
22
|
-
* observability: buildObservabilityConfigFromEnv()
|
|
23
|
-
* });
|
|
24
|
-
* ```
|
|
25
|
-
*/
|
|
26
|
-
export function buildObservabilityConfigFromEnv() {
|
|
27
|
-
const langfuseEnabled = process.env.LANGFUSE_ENABLED?.trim().toLowerCase() === "true";
|
|
28
|
-
const publicKey = process.env.LANGFUSE_PUBLIC_KEY?.trim();
|
|
29
|
-
const secretKey = process.env.LANGFUSE_SECRET_KEY?.trim();
|
|
30
|
-
if (!langfuseEnabled || !publicKey || !secretKey) {
|
|
31
|
-
return undefined;
|
|
32
|
-
}
|
|
33
|
-
return {
|
|
34
|
-
langfuse: {
|
|
35
|
-
enabled: langfuseEnabled,
|
|
36
|
-
publicKey,
|
|
37
|
-
secretKey,
|
|
38
|
-
baseUrl: process.env.LANGFUSE_BASE_URL?.trim() || "https://cloud.langfuse.com",
|
|
39
|
-
environment: process.env.LANGFUSE_ENVIRONMENT?.trim() ||
|
|
40
|
-
process.env.PUBLIC_APP_ENVIRONMENT?.trim() ||
|
|
41
|
-
"dev",
|
|
42
|
-
release: process.env.PUBLIC_APP_VERSION?.trim() ||
|
|
43
|
-
process.env.npm_package_version?.trim() ||
|
|
44
|
-
"v1.0.0",
|
|
45
|
-
},
|
|
46
|
-
};
|
|
47
|
-
}
|