@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,334 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Stream Chunk Redaction Utilities
|
|
3
|
-
* Sanitizes sensitive data from stream chunks before client delivery
|
|
4
|
-
*
|
|
5
|
-
* NOTE: Redaction is DISABLED by default. Enable via config.enabled = true
|
|
6
|
-
*/
|
|
7
|
-
/**
|
|
8
|
-
* Default fields to redact from stream chunks
|
|
9
|
-
*/
|
|
10
|
-
const DEFAULT_REDACTED_FIELDS = [
|
|
11
|
-
"request",
|
|
12
|
-
"args",
|
|
13
|
-
"result",
|
|
14
|
-
"apiKey",
|
|
15
|
-
"token",
|
|
16
|
-
"authorization",
|
|
17
|
-
"credentials",
|
|
18
|
-
"password",
|
|
19
|
-
"secret",
|
|
20
|
-
];
|
|
21
|
-
/**
|
|
22
|
-
* Default redaction placeholder
|
|
23
|
-
*/
|
|
24
|
-
const DEFAULT_PLACEHOLDER = "[REDACTED]";
|
|
25
|
-
/**
|
|
26
|
-
* Maximum recursion depth for redactObject
|
|
27
|
-
*/
|
|
28
|
-
const MAX_REDACTION_DEPTH = 10;
|
|
29
|
-
/**
|
|
30
|
-
* Redact sensitive data from a stream chunk.
|
|
31
|
-
*
|
|
32
|
-
* IMPORTANT: Redaction is DISABLED by default. You must set `config.enabled = true`
|
|
33
|
-
* to enable redaction. This is a security feature that requires explicit opt-in.
|
|
34
|
-
*
|
|
35
|
-
* @param chunk - The stream chunk to redact
|
|
36
|
-
* @param config - Redaction configuration (enabled: false by default)
|
|
37
|
-
* @returns The redacted chunk with sensitive data removed, or original if disabled
|
|
38
|
-
*
|
|
39
|
-
* @example
|
|
40
|
-
* ```typescript
|
|
41
|
-
* // Redaction disabled by default - returns chunk unchanged
|
|
42
|
-
* const unchanged = redactStreamChunk(chunk);
|
|
43
|
-
*
|
|
44
|
-
* // Enable redaction explicitly
|
|
45
|
-
* const redacted = redactStreamChunk(chunk, { enabled: true });
|
|
46
|
-
* // Sensitive fields replaced with "[REDACTED]"
|
|
47
|
-
* ```
|
|
48
|
-
*
|
|
49
|
-
* @example
|
|
50
|
-
* ```typescript
|
|
51
|
-
* // With custom configuration (must enable first)
|
|
52
|
-
* const redacted = redactStreamChunk(chunk, {
|
|
53
|
-
* enabled: true,
|
|
54
|
-
* additionalFields: ["customSecret"],
|
|
55
|
-
* preserveFields: ["result"], // Don't redact result
|
|
56
|
-
* });
|
|
57
|
-
* ```
|
|
58
|
-
*/
|
|
59
|
-
export function redactStreamChunk(chunk, config) {
|
|
60
|
-
// CRITICAL: Redaction is DISABLED by default
|
|
61
|
-
// Must explicitly enable with config.enabled = true
|
|
62
|
-
if (!config?.enabled) {
|
|
63
|
-
return chunk;
|
|
64
|
-
}
|
|
65
|
-
if (!chunk || typeof chunk !== "object") {
|
|
66
|
-
return chunk;
|
|
67
|
-
}
|
|
68
|
-
const placeholder = config?.placeholder ?? DEFAULT_PLACEHOLDER;
|
|
69
|
-
const redactedFields = new Set([
|
|
70
|
-
...DEFAULT_REDACTED_FIELDS,
|
|
71
|
-
...(config?.additionalFields ?? []),
|
|
72
|
-
]);
|
|
73
|
-
// Remove preserved fields from redaction set
|
|
74
|
-
if (config?.preserveFields) {
|
|
75
|
-
for (const field of config.preserveFields) {
|
|
76
|
-
redactedFields.delete(field);
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
return redactChunkByType(chunk, redactedFields, placeholder, config);
|
|
80
|
-
}
|
|
81
|
-
/**
|
|
82
|
-
* Redact chunk based on its type
|
|
83
|
-
*/
|
|
84
|
-
function redactChunkByType(chunk, redactedFields, placeholder, config) {
|
|
85
|
-
const typedChunk = chunk;
|
|
86
|
-
const chunkType = typedChunk.type;
|
|
87
|
-
switch (chunkType) {
|
|
88
|
-
case "step-start":
|
|
89
|
-
return redactStepStart(typedChunk, redactedFields, placeholder);
|
|
90
|
-
case "tool-call":
|
|
91
|
-
return redactToolCall(typedChunk, redactedFields, placeholder, config);
|
|
92
|
-
case "tool-result":
|
|
93
|
-
return redactToolResult(typedChunk, redactedFields, placeholder, config);
|
|
94
|
-
case "error":
|
|
95
|
-
return redactError(typedChunk, redactedFields, placeholder);
|
|
96
|
-
default:
|
|
97
|
-
return redactGenericChunk(typedChunk, redactedFields, placeholder);
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
/**
|
|
101
|
-
* Redact step-start chunks
|
|
102
|
-
*/
|
|
103
|
-
function redactStepStart(chunk, redactedFields, placeholder) {
|
|
104
|
-
if (!hasPayload(chunk)) {
|
|
105
|
-
return chunk;
|
|
106
|
-
}
|
|
107
|
-
const { payload, ...rest } = chunk;
|
|
108
|
-
const payloadObj = payload;
|
|
109
|
-
const redactedPayload = redactObject(payloadObj, redactedFields, placeholder, 0);
|
|
110
|
-
return {
|
|
111
|
-
...rest,
|
|
112
|
-
type: "step-start",
|
|
113
|
-
payload: redactedPayload,
|
|
114
|
-
};
|
|
115
|
-
}
|
|
116
|
-
/**
|
|
117
|
-
* Redact tool-call chunks
|
|
118
|
-
*/
|
|
119
|
-
function redactToolCall(chunk, redactedFields, placeholder, config) {
|
|
120
|
-
// Handle chunks with payload structure
|
|
121
|
-
if (hasPayload(chunk)) {
|
|
122
|
-
const { payload, ...rest } = chunk;
|
|
123
|
-
const payloadObj = payload;
|
|
124
|
-
// Redact tool arguments if configured
|
|
125
|
-
if (payloadObj.toolCall && typeof payloadObj.toolCall === "object") {
|
|
126
|
-
const toolCall = payloadObj.toolCall;
|
|
127
|
-
const redactArgs = config?.redactToolArgs !== false && redactedFields.has("args");
|
|
128
|
-
return {
|
|
129
|
-
...rest,
|
|
130
|
-
type: "tool-call",
|
|
131
|
-
payload: {
|
|
132
|
-
...payloadObj,
|
|
133
|
-
toolCall: {
|
|
134
|
-
...toolCall,
|
|
135
|
-
args: redactArgs ? placeholder : toolCall.args,
|
|
136
|
-
},
|
|
137
|
-
},
|
|
138
|
-
};
|
|
139
|
-
}
|
|
140
|
-
return {
|
|
141
|
-
...rest,
|
|
142
|
-
type: "tool-call",
|
|
143
|
-
payload: redactObject(payloadObj, redactedFields, placeholder, 0),
|
|
144
|
-
};
|
|
145
|
-
}
|
|
146
|
-
// Handle chunks with data structure (DataStreamEvent format)
|
|
147
|
-
if (hasData(chunk)) {
|
|
148
|
-
const { data, ...rest } = chunk;
|
|
149
|
-
const dataObj = data;
|
|
150
|
-
const redactArgs = config?.redactToolArgs !== false && redactedFields.has("args");
|
|
151
|
-
// Check for arguments field in data
|
|
152
|
-
if ("arguments" in dataObj && redactArgs) {
|
|
153
|
-
return {
|
|
154
|
-
...rest,
|
|
155
|
-
type: "tool-call",
|
|
156
|
-
data: {
|
|
157
|
-
...dataObj,
|
|
158
|
-
arguments: placeholder,
|
|
159
|
-
},
|
|
160
|
-
};
|
|
161
|
-
}
|
|
162
|
-
return {
|
|
163
|
-
...rest,
|
|
164
|
-
type: "tool-call",
|
|
165
|
-
data: redactObject(dataObj, redactedFields, placeholder, 0),
|
|
166
|
-
};
|
|
167
|
-
}
|
|
168
|
-
return chunk;
|
|
169
|
-
}
|
|
170
|
-
/**
|
|
171
|
-
* Redact tool-result chunks
|
|
172
|
-
*/
|
|
173
|
-
function redactToolResult(chunk, redactedFields, placeholder, config) {
|
|
174
|
-
const redactResult = config?.redactToolResults !== false && redactedFields.has("result");
|
|
175
|
-
// Handle chunks with payload structure
|
|
176
|
-
if (hasPayload(chunk)) {
|
|
177
|
-
const { payload, ...rest } = chunk;
|
|
178
|
-
const payloadObj = payload;
|
|
179
|
-
return {
|
|
180
|
-
...rest,
|
|
181
|
-
type: "tool-result",
|
|
182
|
-
payload: {
|
|
183
|
-
...payloadObj,
|
|
184
|
-
result: redactResult ? placeholder : payloadObj.result,
|
|
185
|
-
},
|
|
186
|
-
};
|
|
187
|
-
}
|
|
188
|
-
// Handle chunks with data structure (DataStreamEvent format)
|
|
189
|
-
if (hasData(chunk)) {
|
|
190
|
-
const { data, ...rest } = chunk;
|
|
191
|
-
const dataObj = data;
|
|
192
|
-
return {
|
|
193
|
-
...rest,
|
|
194
|
-
type: "tool-result",
|
|
195
|
-
data: {
|
|
196
|
-
...dataObj,
|
|
197
|
-
result: redactResult ? placeholder : dataObj.result,
|
|
198
|
-
},
|
|
199
|
-
};
|
|
200
|
-
}
|
|
201
|
-
return chunk;
|
|
202
|
-
}
|
|
203
|
-
/**
|
|
204
|
-
* Redact error chunks (remove stack traces in production)
|
|
205
|
-
*/
|
|
206
|
-
function redactError(chunk, redactedFields, placeholder) {
|
|
207
|
-
const isProduction = process.env.NODE_ENV === "production";
|
|
208
|
-
// Handle chunks with data structure (DataStreamEvent format)
|
|
209
|
-
if (hasData(chunk)) {
|
|
210
|
-
const { data, ...rest } = chunk;
|
|
211
|
-
const dataObj = data;
|
|
212
|
-
const { stack, ...dataRest } = dataObj;
|
|
213
|
-
return {
|
|
214
|
-
...rest,
|
|
215
|
-
type: "error",
|
|
216
|
-
data: {
|
|
217
|
-
...redactObject(dataRest, redactedFields, placeholder, 0),
|
|
218
|
-
...(isProduction ? {} : { stack }),
|
|
219
|
-
},
|
|
220
|
-
};
|
|
221
|
-
}
|
|
222
|
-
// Handle direct chunk with stack
|
|
223
|
-
const { stack, ...restChunk } = chunk;
|
|
224
|
-
const redactedRest = redactObject(restChunk, redactedFields, placeholder, 0);
|
|
225
|
-
return {
|
|
226
|
-
...redactedRest,
|
|
227
|
-
type: "error",
|
|
228
|
-
...(isProduction ? {} : { stack }),
|
|
229
|
-
};
|
|
230
|
-
}
|
|
231
|
-
/**
|
|
232
|
-
* Redact generic chunks by scanning all fields
|
|
233
|
-
*/
|
|
234
|
-
function redactGenericChunk(chunk, redactedFields, placeholder) {
|
|
235
|
-
return redactObject(chunk, redactedFields, placeholder, 0);
|
|
236
|
-
}
|
|
237
|
-
/**
|
|
238
|
-
* Recursively redact sensitive fields from an object.
|
|
239
|
-
*
|
|
240
|
-
* @param obj - Object to redact
|
|
241
|
-
* @param redactedFields - Set of field names to redact (case-insensitive matching)
|
|
242
|
-
* @param placeholder - Replacement value for redacted fields
|
|
243
|
-
* @param depth - Current recursion depth
|
|
244
|
-
* @returns Object with sensitive fields redacted
|
|
245
|
-
*/
|
|
246
|
-
function redactObject(obj, redactedFields, placeholder, depth) {
|
|
247
|
-
// Prevent infinite recursion
|
|
248
|
-
if (depth > MAX_REDACTION_DEPTH) {
|
|
249
|
-
return obj;
|
|
250
|
-
}
|
|
251
|
-
const result = {};
|
|
252
|
-
for (const [key, value] of Object.entries(obj)) {
|
|
253
|
-
// Case-insensitive field name matching
|
|
254
|
-
const shouldRedact = redactedFields.has(key.toLowerCase());
|
|
255
|
-
if (shouldRedact) {
|
|
256
|
-
result[key] = placeholder;
|
|
257
|
-
}
|
|
258
|
-
else if (value && typeof value === "object" && !Array.isArray(value)) {
|
|
259
|
-
result[key] = redactObject(value, redactedFields, placeholder, depth + 1);
|
|
260
|
-
}
|
|
261
|
-
else if (Array.isArray(value)) {
|
|
262
|
-
result[key] = value.map((item) => {
|
|
263
|
-
if (item && typeof item === "object") {
|
|
264
|
-
return redactObject(item, redactedFields, placeholder, depth + 1);
|
|
265
|
-
}
|
|
266
|
-
return item;
|
|
267
|
-
});
|
|
268
|
-
}
|
|
269
|
-
else {
|
|
270
|
-
result[key] = value;
|
|
271
|
-
}
|
|
272
|
-
}
|
|
273
|
-
return result;
|
|
274
|
-
}
|
|
275
|
-
/**
|
|
276
|
-
* Type guard for chunks with payload
|
|
277
|
-
*/
|
|
278
|
-
function hasPayload(chunk) {
|
|
279
|
-
return ("payload" in chunk &&
|
|
280
|
-
chunk.payload !== null &&
|
|
281
|
-
typeof chunk.payload === "object");
|
|
282
|
-
}
|
|
283
|
-
/**
|
|
284
|
-
* Type guard for chunks with data (DataStreamEvent format)
|
|
285
|
-
*/
|
|
286
|
-
function hasData(chunk) {
|
|
287
|
-
return ("data" in chunk && chunk.data !== null && typeof chunk.data === "object");
|
|
288
|
-
}
|
|
289
|
-
/**
|
|
290
|
-
* Create a redaction transform function for streams.
|
|
291
|
-
*
|
|
292
|
-
* IMPORTANT: Redaction is DISABLED by default. You must set `config.enabled = true`
|
|
293
|
-
* to enable redaction. If not enabled, the returned function passes chunks through unchanged.
|
|
294
|
-
*
|
|
295
|
-
* @param config - Redaction configuration
|
|
296
|
-
* @returns A transform function for stream chunks
|
|
297
|
-
*
|
|
298
|
-
* @example
|
|
299
|
-
* ```typescript
|
|
300
|
-
* // Redaction disabled - chunks pass through unchanged
|
|
301
|
-
* const redactor = createStreamRedactor();
|
|
302
|
-
* const unchanged = redactor(chunk); // Returns original chunk
|
|
303
|
-
*
|
|
304
|
-
* // Enable redaction
|
|
305
|
-
* const redactor = createStreamRedactor({ enabled: true });
|
|
306
|
-
* const redactedStream = stream.pipeThrough(new TransformStream({
|
|
307
|
-
* transform: (chunk, controller) => {
|
|
308
|
-
* controller.enqueue(redactor(chunk));
|
|
309
|
-
* }
|
|
310
|
-
* }));
|
|
311
|
-
* ```
|
|
312
|
-
*
|
|
313
|
-
* @example
|
|
314
|
-
* ```typescript
|
|
315
|
-
* // With custom options
|
|
316
|
-
* const redactor = createStreamRedactor({
|
|
317
|
-
* enabled: true,
|
|
318
|
-
* redactToolArgs: true,
|
|
319
|
-
* redactToolResults: true,
|
|
320
|
-
* additionalFields: ["internalId"],
|
|
321
|
-
* });
|
|
322
|
-
* ```
|
|
323
|
-
*/
|
|
324
|
-
export function createStreamRedactor(config) {
|
|
325
|
-
return (chunk) => {
|
|
326
|
-
// When redaction is disabled (default), return chunk unchanged
|
|
327
|
-
// This allows the redactor to be used with any chunk type as a no-op
|
|
328
|
-
if (!config?.enabled) {
|
|
329
|
-
return chunk;
|
|
330
|
-
}
|
|
331
|
-
// When enabled, apply redaction (works with any object-based chunk)
|
|
332
|
-
return redactStreamChunk(chunk, config);
|
|
333
|
-
};
|
|
334
|
-
}
|
|
@@ -1,243 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Request Validation Utilities
|
|
3
|
-
* Provides Zod schemas and validation helpers for server routes
|
|
4
|
-
*/
|
|
5
|
-
import { z } from "zod";
|
|
6
|
-
// ============================================
|
|
7
|
-
// Validation Schemas
|
|
8
|
-
// ============================================
|
|
9
|
-
/**
|
|
10
|
-
* Agent execute request schema
|
|
11
|
-
*/
|
|
12
|
-
export const AgentExecuteRequestSchema = z.object({
|
|
13
|
-
input: z.union([
|
|
14
|
-
z.string(),
|
|
15
|
-
z.object({
|
|
16
|
-
text: z.string(),
|
|
17
|
-
images: z.array(z.string()).optional(),
|
|
18
|
-
files: z.array(z.string()).optional(),
|
|
19
|
-
}),
|
|
20
|
-
]),
|
|
21
|
-
provider: z.string().optional(),
|
|
22
|
-
model: z.string().optional(),
|
|
23
|
-
systemPrompt: z.string().optional(),
|
|
24
|
-
temperature: z.number().min(0).max(2).optional(),
|
|
25
|
-
maxTokens: z.number().positive().optional(),
|
|
26
|
-
tools: z.array(z.string()).optional(),
|
|
27
|
-
stream: z.boolean().optional(),
|
|
28
|
-
sessionId: z.string().optional(),
|
|
29
|
-
userId: z.string().optional(),
|
|
30
|
-
});
|
|
31
|
-
/**
|
|
32
|
-
* Tool execute request schema
|
|
33
|
-
*/
|
|
34
|
-
export const ToolExecuteRequestSchema = z.object({
|
|
35
|
-
name: z.string().min(1, "Tool name is required"),
|
|
36
|
-
arguments: z.record(z.string(), z.unknown()).default({}),
|
|
37
|
-
sessionId: z.string().optional(),
|
|
38
|
-
userId: z.string().optional(),
|
|
39
|
-
});
|
|
40
|
-
/**
|
|
41
|
-
* Tool arguments schema (for direct tool execution)
|
|
42
|
-
*/
|
|
43
|
-
export const ToolArgumentsSchema = z.record(z.string(), z.unknown());
|
|
44
|
-
/**
|
|
45
|
-
* Memory session ID parameter schema
|
|
46
|
-
*/
|
|
47
|
-
export const SessionIdParamSchema = z.object({
|
|
48
|
-
sessionId: z.string().min(1, "Session ID is required"),
|
|
49
|
-
});
|
|
50
|
-
/**
|
|
51
|
-
* MCP server name parameter schema
|
|
52
|
-
*/
|
|
53
|
-
export const ServerNameParamSchema = z.object({
|
|
54
|
-
name: z.string().min(1, "Server name is required"),
|
|
55
|
-
});
|
|
56
|
-
/**
|
|
57
|
-
* Tool name parameter schema
|
|
58
|
-
*/
|
|
59
|
-
export const ToolNameParamSchema = z.object({
|
|
60
|
-
name: z.string().min(1, "Tool name is required"),
|
|
61
|
-
});
|
|
62
|
-
/**
|
|
63
|
-
* Tool search query schema
|
|
64
|
-
*/
|
|
65
|
-
export const ToolSearchQuerySchema = z.object({
|
|
66
|
-
q: z.string().optional(),
|
|
67
|
-
source: z.string().optional(),
|
|
68
|
-
limit: z
|
|
69
|
-
.string()
|
|
70
|
-
.transform((val) => parseInt(val, 10))
|
|
71
|
-
.pipe(z.number().positive().max(100))
|
|
72
|
-
.optional(),
|
|
73
|
-
});
|
|
74
|
-
/**
|
|
75
|
-
* Generic ID parameter schema (for session endpoints using :id)
|
|
76
|
-
*/
|
|
77
|
-
export const IdParamSchema = z.object({
|
|
78
|
-
id: z.string().min(1, "Session ID is required"),
|
|
79
|
-
});
|
|
80
|
-
/**
|
|
81
|
-
* Sessions list query schema (with optional pagination and filtering)
|
|
82
|
-
*/
|
|
83
|
-
export const SessionsListQuerySchema = z.object({
|
|
84
|
-
userId: z.string().optional(),
|
|
85
|
-
limit: z
|
|
86
|
-
.string()
|
|
87
|
-
.transform((val) => parseInt(val, 10))
|
|
88
|
-
.pipe(z.number().positive().max(100))
|
|
89
|
-
.optional(),
|
|
90
|
-
offset: z
|
|
91
|
-
.string()
|
|
92
|
-
.transform((val) => parseInt(val, 10))
|
|
93
|
-
.pipe(z.number().nonnegative())
|
|
94
|
-
.optional(),
|
|
95
|
-
});
|
|
96
|
-
/**
|
|
97
|
-
* Session messages query schema (for pagination)
|
|
98
|
-
*/
|
|
99
|
-
export const SessionMessagesQuerySchema = z.object({
|
|
100
|
-
limit: z
|
|
101
|
-
.string()
|
|
102
|
-
.transform((val) => parseInt(val, 10))
|
|
103
|
-
.pipe(z.number().positive().max(100))
|
|
104
|
-
.optional(),
|
|
105
|
-
offset: z
|
|
106
|
-
.string()
|
|
107
|
-
.transform((val) => parseInt(val, 10))
|
|
108
|
-
.pipe(z.number().nonnegative())
|
|
109
|
-
.optional(),
|
|
110
|
-
});
|
|
111
|
-
/**
|
|
112
|
-
* Embed request schema (single text)
|
|
113
|
-
*/
|
|
114
|
-
export const EmbedRequestSchema = z.object({
|
|
115
|
-
text: z.string().min(1, "Text is required"),
|
|
116
|
-
provider: z.string().optional(),
|
|
117
|
-
model: z.string().optional(),
|
|
118
|
-
});
|
|
119
|
-
/**
|
|
120
|
-
* Embed many request schema (batch texts)
|
|
121
|
-
*/
|
|
122
|
-
export const EmbedManyRequestSchema = z.object({
|
|
123
|
-
texts: z
|
|
124
|
-
.array(z.string().min(1))
|
|
125
|
-
.min(1, "At least one text is required")
|
|
126
|
-
.max(2048, "Maximum 2048 texts per batch"),
|
|
127
|
-
provider: z.string().optional(),
|
|
128
|
-
model: z.string().optional(),
|
|
129
|
-
});
|
|
130
|
-
/**
|
|
131
|
-
* Type guard to check if a value is an ErrorResponse
|
|
132
|
-
*/
|
|
133
|
-
export function isErrorResponse(value) {
|
|
134
|
-
return (typeof value === "object" &&
|
|
135
|
-
value !== null &&
|
|
136
|
-
"error" in value &&
|
|
137
|
-
typeof value.error === "object" &&
|
|
138
|
-
value.error !== null &&
|
|
139
|
-
"code" in value.error &&
|
|
140
|
-
"message" in value.error);
|
|
141
|
-
}
|
|
142
|
-
/**
|
|
143
|
-
* Get default HTTP status code based on error code
|
|
144
|
-
*/
|
|
145
|
-
function getDefaultHttpStatus(code) {
|
|
146
|
-
const statusMap = {
|
|
147
|
-
VALIDATION_ERROR: 400,
|
|
148
|
-
SCHEMA_ERROR: 400,
|
|
149
|
-
TOOL_NOT_FOUND: 404,
|
|
150
|
-
SERVER_NOT_FOUND: 404,
|
|
151
|
-
SESSION_NOT_FOUND: 404,
|
|
152
|
-
NOT_FOUND: 404,
|
|
153
|
-
AUTH_REQUIRED: 401,
|
|
154
|
-
AUTH_INVALID: 401,
|
|
155
|
-
FORBIDDEN: 403,
|
|
156
|
-
RATE_LIMIT_EXCEEDED: 429,
|
|
157
|
-
MCP_UNAVAILABLE: 503,
|
|
158
|
-
MEMORY_UNAVAILABLE: 503,
|
|
159
|
-
EXECUTION_FAILED: 500,
|
|
160
|
-
INTERNAL_ERROR: 500,
|
|
161
|
-
};
|
|
162
|
-
return statusMap[code] ?? 500;
|
|
163
|
-
}
|
|
164
|
-
// ============================================
|
|
165
|
-
// Validation Helpers
|
|
166
|
-
// ============================================
|
|
167
|
-
/**
|
|
168
|
-
* Create a standardized error response
|
|
169
|
-
*/
|
|
170
|
-
export function createErrorResponse(code, message, details, requestId, httpStatus) {
|
|
171
|
-
return {
|
|
172
|
-
error: {
|
|
173
|
-
code,
|
|
174
|
-
message,
|
|
175
|
-
details,
|
|
176
|
-
},
|
|
177
|
-
metadata: {
|
|
178
|
-
timestamp: new Date().toISOString(),
|
|
179
|
-
requestId,
|
|
180
|
-
},
|
|
181
|
-
httpStatus: httpStatus ?? getDefaultHttpStatus(code),
|
|
182
|
-
};
|
|
183
|
-
}
|
|
184
|
-
/**
|
|
185
|
-
* Validate request body against a Zod schema
|
|
186
|
-
*/
|
|
187
|
-
export function validateRequest(schema, data, requestId) {
|
|
188
|
-
const result = schema.safeParse(data);
|
|
189
|
-
if (!result.success) {
|
|
190
|
-
return {
|
|
191
|
-
success: false,
|
|
192
|
-
error: createErrorResponse("VALIDATION_ERROR", "Invalid request body", result.error.issues.map((issue) => ({
|
|
193
|
-
path: issue.path.join("."),
|
|
194
|
-
message: issue.message,
|
|
195
|
-
code: issue.code,
|
|
196
|
-
})), requestId),
|
|
197
|
-
};
|
|
198
|
-
}
|
|
199
|
-
return {
|
|
200
|
-
success: true,
|
|
201
|
-
data: result.data,
|
|
202
|
-
};
|
|
203
|
-
}
|
|
204
|
-
/**
|
|
205
|
-
* Validate query parameters against a Zod schema
|
|
206
|
-
*/
|
|
207
|
-
export function validateQuery(schema, query, requestId) {
|
|
208
|
-
const result = schema.safeParse(query);
|
|
209
|
-
if (!result.success) {
|
|
210
|
-
return {
|
|
211
|
-
success: false,
|
|
212
|
-
error: createErrorResponse("VALIDATION_ERROR", "Invalid query parameters", result.error.issues.map((issue) => ({
|
|
213
|
-
path: issue.path.join("."),
|
|
214
|
-
message: issue.message,
|
|
215
|
-
code: issue.code,
|
|
216
|
-
})), requestId),
|
|
217
|
-
};
|
|
218
|
-
}
|
|
219
|
-
return {
|
|
220
|
-
success: true,
|
|
221
|
-
data: result.data,
|
|
222
|
-
};
|
|
223
|
-
}
|
|
224
|
-
/**
|
|
225
|
-
* Validate path parameters against a Zod schema
|
|
226
|
-
*/
|
|
227
|
-
export function validateParams(schema, params, requestId) {
|
|
228
|
-
const result = schema.safeParse(params);
|
|
229
|
-
if (!result.success) {
|
|
230
|
-
return {
|
|
231
|
-
success: false,
|
|
232
|
-
error: createErrorResponse("VALIDATION_ERROR", "Invalid path parameters", result.error.issues.map((issue) => ({
|
|
233
|
-
path: issue.path.join("."),
|
|
234
|
-
message: issue.message,
|
|
235
|
-
code: issue.code,
|
|
236
|
-
})), requestId),
|
|
237
|
-
};
|
|
238
|
-
}
|
|
239
|
-
return {
|
|
240
|
-
success: true,
|
|
241
|
-
data: result.data,
|
|
242
|
-
};
|
|
243
|
-
}
|