@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,486 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Server Adapter Error Classes
|
|
3
|
-
*
|
|
4
|
-
* Typed error hierarchy for server adapters following NeuroLink error patterns.
|
|
5
|
-
*/
|
|
6
|
-
import { ErrorCategory, ErrorSeverity, ServerAdapterErrorCode, } from "./types.js";
|
|
7
|
-
/**
|
|
8
|
-
* Base error class for server adapter errors
|
|
9
|
-
*/
|
|
10
|
-
export class ServerAdapterError extends Error {
|
|
11
|
-
code;
|
|
12
|
-
category;
|
|
13
|
-
severity;
|
|
14
|
-
retryable;
|
|
15
|
-
retryAfterMs;
|
|
16
|
-
requestId;
|
|
17
|
-
path;
|
|
18
|
-
method;
|
|
19
|
-
details;
|
|
20
|
-
cause;
|
|
21
|
-
constructor(message, code, context = {}) {
|
|
22
|
-
super(message);
|
|
23
|
-
this.name = "ServerAdapterError";
|
|
24
|
-
this.code = code;
|
|
25
|
-
this.category = context.category ?? ErrorCategory.EXECUTION;
|
|
26
|
-
this.severity = context.severity ?? ErrorSeverity.MEDIUM;
|
|
27
|
-
this.retryable = context.retryable ?? false;
|
|
28
|
-
this.retryAfterMs = context.retryAfterMs;
|
|
29
|
-
this.requestId = context.requestId;
|
|
30
|
-
this.path = context.path;
|
|
31
|
-
this.method = context.method;
|
|
32
|
-
this.details = context.details;
|
|
33
|
-
this.cause = context.cause;
|
|
34
|
-
// Maintain proper stack trace
|
|
35
|
-
if (Error.captureStackTrace) {
|
|
36
|
-
Error.captureStackTrace(this, ServerAdapterError);
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Convert to JSON for API responses
|
|
41
|
-
*/
|
|
42
|
-
toJSON() {
|
|
43
|
-
return {
|
|
44
|
-
error: {
|
|
45
|
-
code: this.code,
|
|
46
|
-
message: this.message,
|
|
47
|
-
category: this.category,
|
|
48
|
-
requestId: this.requestId,
|
|
49
|
-
details: this.details,
|
|
50
|
-
retryAfter: this.retryAfterMs
|
|
51
|
-
? Math.ceil(this.retryAfterMs / 1000)
|
|
52
|
-
: undefined,
|
|
53
|
-
},
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* Get HTTP status code for this error
|
|
58
|
-
*/
|
|
59
|
-
getHttpStatus() {
|
|
60
|
-
switch (this.code) {
|
|
61
|
-
case ServerAdapterErrorCode.VALIDATION_ERROR:
|
|
62
|
-
case ServerAdapterErrorCode.SCHEMA_ERROR:
|
|
63
|
-
case ServerAdapterErrorCode.INVALID_CONFIG:
|
|
64
|
-
case ServerAdapterErrorCode.INVALID_ROUTE:
|
|
65
|
-
return 400;
|
|
66
|
-
case ServerAdapterErrorCode.AUTH_REQUIRED:
|
|
67
|
-
case ServerAdapterErrorCode.AUTH_INVALID:
|
|
68
|
-
return 401;
|
|
69
|
-
case ServerAdapterErrorCode.FORBIDDEN:
|
|
70
|
-
return 403;
|
|
71
|
-
case ServerAdapterErrorCode.ROUTE_NOT_FOUND:
|
|
72
|
-
return 404;
|
|
73
|
-
case ServerAdapterErrorCode.RATE_LIMIT_EXCEEDED:
|
|
74
|
-
return 429;
|
|
75
|
-
case ServerAdapterErrorCode.TIMEOUT:
|
|
76
|
-
return 408;
|
|
77
|
-
case ServerAdapterErrorCode.STREAM_ABORTED:
|
|
78
|
-
return 499;
|
|
79
|
-
default:
|
|
80
|
-
return 500;
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
/**
|
|
85
|
-
* Configuration error
|
|
86
|
-
*/
|
|
87
|
-
export class ConfigurationError extends ServerAdapterError {
|
|
88
|
-
constructor(message, details, cause) {
|
|
89
|
-
super(message, ServerAdapterErrorCode.INVALID_CONFIG, {
|
|
90
|
-
category: ErrorCategory.CONFIG,
|
|
91
|
-
severity: ErrorSeverity.HIGH,
|
|
92
|
-
retryable: false,
|
|
93
|
-
details,
|
|
94
|
-
cause,
|
|
95
|
-
});
|
|
96
|
-
this.name = "ConfigurationError";
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
/**
|
|
100
|
-
* Route conflict error
|
|
101
|
-
*/
|
|
102
|
-
export class RouteConflictError extends ServerAdapterError {
|
|
103
|
-
constructor(path, method, existingRoute) {
|
|
104
|
-
super(`Route conflict: ${method} ${path} conflicts with existing route${existingRoute ? `: ${existingRoute}` : ""}`, ServerAdapterErrorCode.ROUTE_CONFLICT, {
|
|
105
|
-
category: ErrorCategory.CONFIG,
|
|
106
|
-
severity: ErrorSeverity.HIGH,
|
|
107
|
-
retryable: false,
|
|
108
|
-
path,
|
|
109
|
-
method,
|
|
110
|
-
details: { existingRoute },
|
|
111
|
-
});
|
|
112
|
-
this.name = "RouteConflictError";
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
/**
|
|
116
|
-
* Route not found error
|
|
117
|
-
*/
|
|
118
|
-
export class RouteNotFoundError extends ServerAdapterError {
|
|
119
|
-
constructor(path, method, requestId) {
|
|
120
|
-
super(`Route not found: ${method} ${path}`, ServerAdapterErrorCode.ROUTE_NOT_FOUND, {
|
|
121
|
-
category: ErrorCategory.VALIDATION,
|
|
122
|
-
severity: ErrorSeverity.LOW,
|
|
123
|
-
retryable: false,
|
|
124
|
-
path,
|
|
125
|
-
method,
|
|
126
|
-
requestId,
|
|
127
|
-
});
|
|
128
|
-
this.name = "RouteNotFoundError";
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
/**
|
|
132
|
-
* Validation error
|
|
133
|
-
*/
|
|
134
|
-
export class ValidationError extends ServerAdapterError {
|
|
135
|
-
errors;
|
|
136
|
-
constructor(errors, requestId) {
|
|
137
|
-
super(`Validation failed: ${errors.map((e) => e.message).join(", ")}`, ServerAdapterErrorCode.VALIDATION_ERROR, {
|
|
138
|
-
category: ErrorCategory.VALIDATION,
|
|
139
|
-
severity: ErrorSeverity.LOW,
|
|
140
|
-
retryable: false,
|
|
141
|
-
requestId,
|
|
142
|
-
details: { errors },
|
|
143
|
-
});
|
|
144
|
-
this.name = "ValidationError";
|
|
145
|
-
this.errors = errors;
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
/**
|
|
149
|
-
* Authentication error
|
|
150
|
-
*/
|
|
151
|
-
export class AuthenticationError extends ServerAdapterError {
|
|
152
|
-
constructor(message = "Authentication required", requestId) {
|
|
153
|
-
super(message, ServerAdapterErrorCode.AUTH_REQUIRED, {
|
|
154
|
-
category: ErrorCategory.AUTHENTICATION,
|
|
155
|
-
severity: ErrorSeverity.MEDIUM,
|
|
156
|
-
retryable: false,
|
|
157
|
-
requestId,
|
|
158
|
-
});
|
|
159
|
-
this.name = "AuthenticationError";
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
/**
|
|
163
|
-
* Invalid authentication error
|
|
164
|
-
*/
|
|
165
|
-
export class InvalidAuthenticationError extends ServerAdapterError {
|
|
166
|
-
constructor(message = "Invalid authentication credentials", requestId) {
|
|
167
|
-
super(message, ServerAdapterErrorCode.AUTH_INVALID, {
|
|
168
|
-
category: ErrorCategory.AUTHENTICATION,
|
|
169
|
-
severity: ErrorSeverity.MEDIUM,
|
|
170
|
-
retryable: false,
|
|
171
|
-
requestId,
|
|
172
|
-
});
|
|
173
|
-
this.name = "InvalidAuthenticationError";
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
/**
|
|
177
|
-
* Authorization error
|
|
178
|
-
*/
|
|
179
|
-
export class AuthorizationError extends ServerAdapterError {
|
|
180
|
-
constructor(message = "Access forbidden", requestId, requiredPermissions) {
|
|
181
|
-
super(message, ServerAdapterErrorCode.FORBIDDEN, {
|
|
182
|
-
category: ErrorCategory.AUTHORIZATION,
|
|
183
|
-
severity: ErrorSeverity.MEDIUM,
|
|
184
|
-
retryable: false,
|
|
185
|
-
requestId,
|
|
186
|
-
details: { requiredPermissions },
|
|
187
|
-
});
|
|
188
|
-
this.name = "AuthorizationError";
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
/**
|
|
192
|
-
* Rate limit error
|
|
193
|
-
*/
|
|
194
|
-
export class RateLimitError extends ServerAdapterError {
|
|
195
|
-
constructor(retryAfterMs, message, requestId) {
|
|
196
|
-
super(message ?? "Too many requests, please try again later", ServerAdapterErrorCode.RATE_LIMIT_EXCEEDED, {
|
|
197
|
-
category: ErrorCategory.RATE_LIMIT,
|
|
198
|
-
severity: ErrorSeverity.MEDIUM,
|
|
199
|
-
retryable: true,
|
|
200
|
-
retryAfterMs,
|
|
201
|
-
requestId,
|
|
202
|
-
});
|
|
203
|
-
this.name = "RateLimitError";
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
/**
|
|
207
|
-
* Timeout error
|
|
208
|
-
*/
|
|
209
|
-
export class TimeoutError extends ServerAdapterError {
|
|
210
|
-
constructor(timeoutMs, operation, requestId) {
|
|
211
|
-
super(`Operation timed out after ${timeoutMs}ms${operation ? `: ${operation}` : ""}`, ServerAdapterErrorCode.TIMEOUT, {
|
|
212
|
-
category: ErrorCategory.EXECUTION,
|
|
213
|
-
severity: ErrorSeverity.MEDIUM,
|
|
214
|
-
retryable: true,
|
|
215
|
-
requestId,
|
|
216
|
-
details: { timeoutMs, operation },
|
|
217
|
-
});
|
|
218
|
-
this.name = "TimeoutError";
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
/**
|
|
222
|
-
* Handler error
|
|
223
|
-
*/
|
|
224
|
-
export class HandlerError extends ServerAdapterError {
|
|
225
|
-
constructor(message, cause, requestId, path, method) {
|
|
226
|
-
super(message, ServerAdapterErrorCode.HANDLER_ERROR, {
|
|
227
|
-
category: ErrorCategory.EXECUTION,
|
|
228
|
-
severity: ErrorSeverity.HIGH,
|
|
229
|
-
retryable: false,
|
|
230
|
-
cause,
|
|
231
|
-
requestId,
|
|
232
|
-
path,
|
|
233
|
-
method,
|
|
234
|
-
});
|
|
235
|
-
this.name = "HandlerError";
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
/**
|
|
239
|
-
* Streaming error
|
|
240
|
-
*/
|
|
241
|
-
export class StreamingError extends ServerAdapterError {
|
|
242
|
-
constructor(message, cause, requestId) {
|
|
243
|
-
super(message, ServerAdapterErrorCode.STREAM_ERROR, {
|
|
244
|
-
category: ErrorCategory.STREAMING,
|
|
245
|
-
severity: ErrorSeverity.MEDIUM,
|
|
246
|
-
retryable: false,
|
|
247
|
-
cause,
|
|
248
|
-
requestId,
|
|
249
|
-
});
|
|
250
|
-
this.name = "StreamingError";
|
|
251
|
-
}
|
|
252
|
-
}
|
|
253
|
-
/**
|
|
254
|
-
* Stream aborted error
|
|
255
|
-
*/
|
|
256
|
-
export class StreamAbortedError extends ServerAdapterError {
|
|
257
|
-
constructor(reason, requestId) {
|
|
258
|
-
super(`Stream aborted${reason ? `: ${reason}` : ""}`, ServerAdapterErrorCode.STREAM_ABORTED, {
|
|
259
|
-
category: ErrorCategory.STREAMING,
|
|
260
|
-
severity: ErrorSeverity.LOW,
|
|
261
|
-
retryable: false,
|
|
262
|
-
requestId,
|
|
263
|
-
details: { reason },
|
|
264
|
-
});
|
|
265
|
-
this.name = "StreamAbortedError";
|
|
266
|
-
}
|
|
267
|
-
}
|
|
268
|
-
/**
|
|
269
|
-
* WebSocket error
|
|
270
|
-
*/
|
|
271
|
-
export class WebSocketError extends ServerAdapterError {
|
|
272
|
-
constructor(message, cause, connectionId) {
|
|
273
|
-
super(message, ServerAdapterErrorCode.WEBSOCKET_ERROR, {
|
|
274
|
-
category: ErrorCategory.WEBSOCKET,
|
|
275
|
-
severity: ErrorSeverity.MEDIUM,
|
|
276
|
-
retryable: true,
|
|
277
|
-
cause,
|
|
278
|
-
details: { connectionId },
|
|
279
|
-
});
|
|
280
|
-
this.name = "WebSocketError";
|
|
281
|
-
}
|
|
282
|
-
}
|
|
283
|
-
/**
|
|
284
|
-
* WebSocket connection failed error
|
|
285
|
-
*/
|
|
286
|
-
export class WebSocketConnectionError extends ServerAdapterError {
|
|
287
|
-
constructor(message = "WebSocket connection failed", cause) {
|
|
288
|
-
super(message, ServerAdapterErrorCode.WEBSOCKET_CONNECTION_FAILED, {
|
|
289
|
-
category: ErrorCategory.WEBSOCKET,
|
|
290
|
-
severity: ErrorSeverity.HIGH,
|
|
291
|
-
retryable: true,
|
|
292
|
-
cause,
|
|
293
|
-
});
|
|
294
|
-
this.name = "WebSocketConnectionError";
|
|
295
|
-
}
|
|
296
|
-
}
|
|
297
|
-
/**
|
|
298
|
-
* Server start error
|
|
299
|
-
*/
|
|
300
|
-
export class ServerStartError extends ServerAdapterError {
|
|
301
|
-
constructor(message, cause, port, host) {
|
|
302
|
-
super(message, ServerAdapterErrorCode.START_FAILED, {
|
|
303
|
-
category: ErrorCategory.CONFIG,
|
|
304
|
-
severity: ErrorSeverity.CRITICAL,
|
|
305
|
-
retryable: true,
|
|
306
|
-
cause,
|
|
307
|
-
details: { port, host },
|
|
308
|
-
});
|
|
309
|
-
this.name = "ServerStartError";
|
|
310
|
-
}
|
|
311
|
-
}
|
|
312
|
-
/**
|
|
313
|
-
* Server stop error
|
|
314
|
-
*/
|
|
315
|
-
export class ServerStopError extends ServerAdapterError {
|
|
316
|
-
constructor(message, cause) {
|
|
317
|
-
super(message, ServerAdapterErrorCode.STOP_FAILED, {
|
|
318
|
-
category: ErrorCategory.EXECUTION,
|
|
319
|
-
severity: ErrorSeverity.HIGH,
|
|
320
|
-
retryable: false,
|
|
321
|
-
cause,
|
|
322
|
-
});
|
|
323
|
-
this.name = "ServerStopError";
|
|
324
|
-
}
|
|
325
|
-
}
|
|
326
|
-
/**
|
|
327
|
-
* Already running error
|
|
328
|
-
*/
|
|
329
|
-
export class AlreadyRunningError extends ServerAdapterError {
|
|
330
|
-
constructor(port, host) {
|
|
331
|
-
super(`Server is already running${port && host ? ` on ${host}:${port}` : ""}`, ServerAdapterErrorCode.ALREADY_RUNNING, {
|
|
332
|
-
category: ErrorCategory.CONFIG,
|
|
333
|
-
severity: ErrorSeverity.LOW,
|
|
334
|
-
retryable: false,
|
|
335
|
-
details: { port, host },
|
|
336
|
-
});
|
|
337
|
-
this.name = "AlreadyRunningError";
|
|
338
|
-
}
|
|
339
|
-
}
|
|
340
|
-
/**
|
|
341
|
-
* Not running error
|
|
342
|
-
*/
|
|
343
|
-
export class NotRunningError extends ServerAdapterError {
|
|
344
|
-
constructor() {
|
|
345
|
-
super("Server is not running", ServerAdapterErrorCode.NOT_RUNNING, {
|
|
346
|
-
category: ErrorCategory.CONFIG,
|
|
347
|
-
severity: ErrorSeverity.LOW,
|
|
348
|
-
retryable: false,
|
|
349
|
-
});
|
|
350
|
-
this.name = "NotRunningError";
|
|
351
|
-
}
|
|
352
|
-
}
|
|
353
|
-
/**
|
|
354
|
-
* Shutdown timeout error
|
|
355
|
-
* Thrown when graceful shutdown exceeds the configured timeout
|
|
356
|
-
*/
|
|
357
|
-
export class ShutdownTimeoutError extends ServerAdapterError {
|
|
358
|
-
timeoutMs;
|
|
359
|
-
remainingConnections;
|
|
360
|
-
constructor(timeoutMs, remainingConnections) {
|
|
361
|
-
super(`Shutdown timed out after ${timeoutMs}ms with ${remainingConnections} active connection(s)`, ServerAdapterErrorCode.STOP_FAILED, {
|
|
362
|
-
category: ErrorCategory.EXECUTION,
|
|
363
|
-
severity: ErrorSeverity.HIGH,
|
|
364
|
-
retryable: false,
|
|
365
|
-
details: { timeoutMs, remainingConnections },
|
|
366
|
-
});
|
|
367
|
-
this.name = "ShutdownTimeoutError";
|
|
368
|
-
this.timeoutMs = timeoutMs;
|
|
369
|
-
this.remainingConnections = remainingConnections;
|
|
370
|
-
}
|
|
371
|
-
}
|
|
372
|
-
/**
|
|
373
|
-
* Drain timeout error
|
|
374
|
-
* Thrown when connection draining exceeds the configured timeout
|
|
375
|
-
*/
|
|
376
|
-
export class DrainTimeoutError extends ServerAdapterError {
|
|
377
|
-
timeoutMs;
|
|
378
|
-
remainingConnections;
|
|
379
|
-
constructor(timeoutMs, remainingConnections) {
|
|
380
|
-
super(`Connection drain timed out after ${timeoutMs}ms with ${remainingConnections} active connection(s)`, ServerAdapterErrorCode.STOP_FAILED, {
|
|
381
|
-
category: ErrorCategory.EXECUTION,
|
|
382
|
-
severity: ErrorSeverity.MEDIUM,
|
|
383
|
-
retryable: false,
|
|
384
|
-
details: { timeoutMs, remainingConnections },
|
|
385
|
-
});
|
|
386
|
-
this.name = "DrainTimeoutError";
|
|
387
|
-
this.timeoutMs = timeoutMs;
|
|
388
|
-
this.remainingConnections = remainingConnections;
|
|
389
|
-
}
|
|
390
|
-
}
|
|
391
|
-
/**
|
|
392
|
-
* Invalid lifecycle state error
|
|
393
|
-
* Thrown when attempting an operation in an invalid lifecycle state
|
|
394
|
-
*/
|
|
395
|
-
export class InvalidLifecycleStateError extends ServerAdapterError {
|
|
396
|
-
currentState;
|
|
397
|
-
expectedStates;
|
|
398
|
-
operation;
|
|
399
|
-
constructor(operation, currentState, expectedStates) {
|
|
400
|
-
super(`Cannot ${operation}: server is in '${currentState}' state, expected one of [${expectedStates.join(", ")}]`, ServerAdapterErrorCode.STOP_FAILED, {
|
|
401
|
-
category: ErrorCategory.CONFIG,
|
|
402
|
-
severity: ErrorSeverity.MEDIUM,
|
|
403
|
-
retryable: false,
|
|
404
|
-
details: { operation, currentState, expectedStates },
|
|
405
|
-
});
|
|
406
|
-
this.name = "InvalidLifecycleStateError";
|
|
407
|
-
this.currentState = currentState;
|
|
408
|
-
this.expectedStates = expectedStates;
|
|
409
|
-
this.operation = operation;
|
|
410
|
-
}
|
|
411
|
-
}
|
|
412
|
-
/**
|
|
413
|
-
* Missing dependency error
|
|
414
|
-
*/
|
|
415
|
-
export class MissingDependencyError extends ServerAdapterError {
|
|
416
|
-
constructor(dependency, framework, installCommand) {
|
|
417
|
-
super(`Missing dependency '${dependency}' for ${framework} adapter. ${installCommand ? `Install with: ${installCommand}` : ""}`, ServerAdapterErrorCode.MISSING_DEPENDENCY, {
|
|
418
|
-
category: ErrorCategory.CONFIG,
|
|
419
|
-
severity: ErrorSeverity.CRITICAL,
|
|
420
|
-
retryable: false,
|
|
421
|
-
details: { dependency, framework, installCommand },
|
|
422
|
-
});
|
|
423
|
-
this.name = "MissingDependencyError";
|
|
424
|
-
}
|
|
425
|
-
}
|
|
426
|
-
/**
|
|
427
|
-
* Error recovery strategies
|
|
428
|
-
*/
|
|
429
|
-
export const ErrorRecoveryStrategies = {
|
|
430
|
-
[ErrorCategory.CONFIG]: {
|
|
431
|
-
strategy: "fail",
|
|
432
|
-
maxRetries: 0,
|
|
433
|
-
baseDelayMs: 0,
|
|
434
|
-
},
|
|
435
|
-
[ErrorCategory.VALIDATION]: {
|
|
436
|
-
strategy: "fail",
|
|
437
|
-
maxRetries: 0,
|
|
438
|
-
baseDelayMs: 0,
|
|
439
|
-
},
|
|
440
|
-
[ErrorCategory.EXECUTION]: {
|
|
441
|
-
strategy: "retry",
|
|
442
|
-
maxRetries: 3,
|
|
443
|
-
baseDelayMs: 1000,
|
|
444
|
-
},
|
|
445
|
-
[ErrorCategory.EXTERNAL]: {
|
|
446
|
-
strategy: "exponentialBackoff",
|
|
447
|
-
maxRetries: 5,
|
|
448
|
-
baseDelayMs: 1000,
|
|
449
|
-
},
|
|
450
|
-
[ErrorCategory.RATE_LIMIT]: {
|
|
451
|
-
strategy: "exponentialBackoff",
|
|
452
|
-
maxRetries: 3,
|
|
453
|
-
baseDelayMs: 5000,
|
|
454
|
-
},
|
|
455
|
-
[ErrorCategory.AUTHENTICATION]: {
|
|
456
|
-
strategy: "fail",
|
|
457
|
-
maxRetries: 0,
|
|
458
|
-
baseDelayMs: 0,
|
|
459
|
-
},
|
|
460
|
-
[ErrorCategory.AUTHORIZATION]: {
|
|
461
|
-
strategy: "fail",
|
|
462
|
-
maxRetries: 0,
|
|
463
|
-
baseDelayMs: 0,
|
|
464
|
-
},
|
|
465
|
-
[ErrorCategory.STREAMING]: {
|
|
466
|
-
strategy: "retry",
|
|
467
|
-
maxRetries: 2,
|
|
468
|
-
baseDelayMs: 500,
|
|
469
|
-
},
|
|
470
|
-
[ErrorCategory.WEBSOCKET]: {
|
|
471
|
-
strategy: "exponentialBackoff",
|
|
472
|
-
maxRetries: 5,
|
|
473
|
-
baseDelayMs: 1000,
|
|
474
|
-
},
|
|
475
|
-
};
|
|
476
|
-
/**
|
|
477
|
-
* Helper to wrap errors as ServerAdapterError
|
|
478
|
-
*/
|
|
479
|
-
export function wrapError(error, requestId, path, method) {
|
|
480
|
-
if (error instanceof ServerAdapterError) {
|
|
481
|
-
return error;
|
|
482
|
-
}
|
|
483
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
484
|
-
const cause = error instanceof Error ? error : undefined;
|
|
485
|
-
return new HandlerError(message, cause, requestId, path, method);
|
|
486
|
-
}
|
|
@@ -1,160 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Server Adapter Factory
|
|
3
|
-
* Creates server adapters based on framework configuration
|
|
4
|
-
* Follows NeuroLink's factory pattern for consistent instantiation
|
|
5
|
-
*/
|
|
6
|
-
import { logger } from "../../utils/logger.js";
|
|
7
|
-
/**
|
|
8
|
-
* Factory for creating server adapters
|
|
9
|
-
* Supports multiple web frameworks with consistent API
|
|
10
|
-
*/
|
|
11
|
-
export class ServerAdapterFactory {
|
|
12
|
-
static adapters = new Map();
|
|
13
|
-
/**
|
|
14
|
-
* Register an adapter class for a framework
|
|
15
|
-
*/
|
|
16
|
-
static registerAdapter(framework, adapterClass) {
|
|
17
|
-
ServerAdapterFactory.adapters.set(framework, adapterClass);
|
|
18
|
-
logger.debug(`[ServerAdapterFactory] Registered adapter for framework: ${framework}`);
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Create a server adapter for the specified framework
|
|
22
|
-
* Uses dynamic imports to avoid bundling unused frameworks
|
|
23
|
-
*/
|
|
24
|
-
static async create(options) {
|
|
25
|
-
const { framework, neurolink, config } = options;
|
|
26
|
-
logger.info(`[ServerAdapterFactory] Creating adapter for framework: ${framework}`);
|
|
27
|
-
// Check if adapter is already registered
|
|
28
|
-
const AdapterClass = ServerAdapterFactory.adapters.get(framework);
|
|
29
|
-
if (AdapterClass) {
|
|
30
|
-
return new AdapterClass(neurolink, config);
|
|
31
|
-
}
|
|
32
|
-
// Dynamically import the adapter based on framework
|
|
33
|
-
switch (framework) {
|
|
34
|
-
case "hono": {
|
|
35
|
-
const { HonoServerAdapter } = await import("../adapters/honoAdapter.js");
|
|
36
|
-
ServerAdapterFactory.adapters.set("hono", HonoServerAdapter);
|
|
37
|
-
return new HonoServerAdapter(neurolink, config);
|
|
38
|
-
}
|
|
39
|
-
case "express": {
|
|
40
|
-
const { ExpressServerAdapter } = await import("../adapters/expressAdapter.js");
|
|
41
|
-
ServerAdapterFactory.adapters.set("express", ExpressServerAdapter);
|
|
42
|
-
return new ExpressServerAdapter(neurolink, config);
|
|
43
|
-
}
|
|
44
|
-
case "fastify": {
|
|
45
|
-
const { FastifyServerAdapter } = await import("../adapters/fastifyAdapter.js");
|
|
46
|
-
ServerAdapterFactory.adapters.set("fastify", FastifyServerAdapter);
|
|
47
|
-
return new FastifyServerAdapter(neurolink, config);
|
|
48
|
-
}
|
|
49
|
-
case "koa": {
|
|
50
|
-
const { KoaServerAdapter } = await import("../adapters/koaAdapter.js");
|
|
51
|
-
ServerAdapterFactory.adapters.set("koa", KoaServerAdapter);
|
|
52
|
-
return new KoaServerAdapter(neurolink, config);
|
|
53
|
-
}
|
|
54
|
-
default:
|
|
55
|
-
throw new Error(`Unknown framework: ${framework}. Supported frameworks: hono (recommended), express, fastify, koa`);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* Create a Hono server adapter (convenience method)
|
|
60
|
-
* Hono is the recommended framework for its multi-runtime support
|
|
61
|
-
*/
|
|
62
|
-
static async createHono(neurolink, config) {
|
|
63
|
-
return ServerAdapterFactory.create({
|
|
64
|
-
framework: "hono",
|
|
65
|
-
neurolink,
|
|
66
|
-
config,
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Create an Express server adapter (convenience method)
|
|
71
|
-
*/
|
|
72
|
-
static async createExpress(neurolink, config) {
|
|
73
|
-
return ServerAdapterFactory.create({
|
|
74
|
-
framework: "express",
|
|
75
|
-
neurolink,
|
|
76
|
-
config,
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* Create a Fastify server adapter (convenience method)
|
|
81
|
-
* Fastify is known for high performance and low overhead
|
|
82
|
-
*/
|
|
83
|
-
static async createFastify(neurolink, config) {
|
|
84
|
-
return ServerAdapterFactory.create({
|
|
85
|
-
framework: "fastify",
|
|
86
|
-
neurolink,
|
|
87
|
-
config,
|
|
88
|
-
});
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* Create a Koa server adapter (convenience method)
|
|
92
|
-
* Koa provides elegant middleware composition
|
|
93
|
-
*/
|
|
94
|
-
static async createKoa(neurolink, config) {
|
|
95
|
-
return ServerAdapterFactory.create({
|
|
96
|
-
framework: "koa",
|
|
97
|
-
neurolink,
|
|
98
|
-
config,
|
|
99
|
-
});
|
|
100
|
-
}
|
|
101
|
-
/**
|
|
102
|
-
* Check if a framework is supported
|
|
103
|
-
*/
|
|
104
|
-
static isSupported(framework) {
|
|
105
|
-
return ["hono", "express", "fastify", "koa"].includes(framework);
|
|
106
|
-
}
|
|
107
|
-
/**
|
|
108
|
-
* Get list of supported frameworks
|
|
109
|
-
*/
|
|
110
|
-
static getSupportedFrameworks() {
|
|
111
|
-
return [
|
|
112
|
-
{
|
|
113
|
-
framework: "hono",
|
|
114
|
-
status: "available",
|
|
115
|
-
description: "Multi-runtime support (Node.js, Bun, Deno, Edge)",
|
|
116
|
-
},
|
|
117
|
-
{
|
|
118
|
-
framework: "express",
|
|
119
|
-
status: "available",
|
|
120
|
-
description: "Popular Node.js framework with extensive middleware ecosystem",
|
|
121
|
-
},
|
|
122
|
-
{
|
|
123
|
-
framework: "fastify",
|
|
124
|
-
status: "available",
|
|
125
|
-
description: "High-performance framework with schema validation",
|
|
126
|
-
},
|
|
127
|
-
{
|
|
128
|
-
framework: "koa",
|
|
129
|
-
status: "available",
|
|
130
|
-
description: "Elegant middleware composition with async/await",
|
|
131
|
-
},
|
|
132
|
-
];
|
|
133
|
-
}
|
|
134
|
-
/**
|
|
135
|
-
* Get recommended framework based on runtime
|
|
136
|
-
*/
|
|
137
|
-
static getRecommendedFramework() {
|
|
138
|
-
// Hono is recommended because it supports multiple runtimes
|
|
139
|
-
// (Node.js, Bun, Deno, Cloudflare Workers, etc.)
|
|
140
|
-
return "hono";
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
/**
|
|
144
|
-
* Quick helper to create a server from NeuroLink instance
|
|
145
|
-
* @example
|
|
146
|
-
* ```typescript
|
|
147
|
-
* const neurolink = new NeuroLink({ ... });
|
|
148
|
-
* const server = await createServer(neurolink);
|
|
149
|
-
* await server.initialize();
|
|
150
|
-
* await server.start();
|
|
151
|
-
* ```
|
|
152
|
-
*/
|
|
153
|
-
export async function createServer(neurolink, options) {
|
|
154
|
-
const framework = options?.framework ?? ServerAdapterFactory.getRecommendedFramework();
|
|
155
|
-
return ServerAdapterFactory.create({
|
|
156
|
-
framework,
|
|
157
|
-
neurolink,
|
|
158
|
-
config: options?.config,
|
|
159
|
-
});
|
|
160
|
-
}
|