@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,286 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Text-to-Speech (TTS) Processing Utility
|
|
3
|
-
*
|
|
4
|
-
* Central orchestrator for all TTS operations across providers.
|
|
5
|
-
* Manages provider-specific TTS handlers and audio generation.
|
|
6
|
-
*
|
|
7
|
-
* @module utils/ttsProcessor
|
|
8
|
-
*/
|
|
9
|
-
import { logger } from "./logger.js";
|
|
10
|
-
import { ErrorCategory, ErrorSeverity } from "../constants/enums.js";
|
|
11
|
-
import { NeuroLinkError } from "./errorHandling.js";
|
|
12
|
-
import { SpanSerializer, SpanType, SpanStatus, } from "../observability/index.js";
|
|
13
|
-
import { getMetricsAggregator } from "../observability/index.js";
|
|
14
|
-
/**
|
|
15
|
-
* TTS-specific error codes
|
|
16
|
-
*/
|
|
17
|
-
export const TTS_ERROR_CODES = {
|
|
18
|
-
EMPTY_TEXT: "TTS_EMPTY_TEXT",
|
|
19
|
-
TEXT_TOO_LONG: "TTS_TEXT_TOO_LONG",
|
|
20
|
-
PROVIDER_NOT_SUPPORTED: "TTS_PROVIDER_NOT_SUPPORTED",
|
|
21
|
-
PROVIDER_NOT_CONFIGURED: "TTS_PROVIDER_NOT_CONFIGURED",
|
|
22
|
-
SYNTHESIS_FAILED: "TTS_SYNTHESIS_FAILED",
|
|
23
|
-
INVALID_INPUT: "TTS_INVALID_INPUT",
|
|
24
|
-
};
|
|
25
|
-
/**
|
|
26
|
-
* TTS Error class for text-to-speech specific errors
|
|
27
|
-
*/
|
|
28
|
-
export class TTSError extends NeuroLinkError {
|
|
29
|
-
constructor(options) {
|
|
30
|
-
super({
|
|
31
|
-
code: options.code,
|
|
32
|
-
message: options.message,
|
|
33
|
-
category: options.category ?? ErrorCategory.VALIDATION,
|
|
34
|
-
severity: options.severity ?? ErrorSeverity.MEDIUM,
|
|
35
|
-
retriable: options.retriable ?? false,
|
|
36
|
-
context: options.context,
|
|
37
|
-
originalError: options.originalError,
|
|
38
|
-
});
|
|
39
|
-
this.name = "TTSError";
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* TTS processor class for orchestrating text-to-speech operations
|
|
44
|
-
*
|
|
45
|
-
* Follows the same pattern as CSVProcessor, ImageProcessor, and PDFProcessor.
|
|
46
|
-
* Provides a unified interface for TTS generation across multiple providers.
|
|
47
|
-
*
|
|
48
|
-
* @example
|
|
49
|
-
* ```typescript
|
|
50
|
-
* // Register a handler
|
|
51
|
-
* TTSProcessor.registerHandler('google-ai', googleAIHandler);
|
|
52
|
-
*
|
|
53
|
-
* // Check if provider is supported
|
|
54
|
-
* if (TTSProcessor.supports('google-ai')) {
|
|
55
|
-
* // Provider is registered
|
|
56
|
-
* }
|
|
57
|
-
* ```
|
|
58
|
-
*/
|
|
59
|
-
export class TTSProcessor {
|
|
60
|
-
/**
|
|
61
|
-
* Handler registry mapping provider names to TTS handlers
|
|
62
|
-
* Uses Map for O(1) lookups and better type safety
|
|
63
|
-
*
|
|
64
|
-
* @private
|
|
65
|
-
*/
|
|
66
|
-
static handlers = new Map();
|
|
67
|
-
/**
|
|
68
|
-
* Default maximum text length for TTS synthesis (in bytes)
|
|
69
|
-
*
|
|
70
|
-
* Providers can override this value by specifying the `maxTextLength` property
|
|
71
|
-
* in their respective `TTSHandler` implementation. If not specified, this default
|
|
72
|
-
* value will be used.
|
|
73
|
-
*
|
|
74
|
-
* @private
|
|
75
|
-
*/
|
|
76
|
-
static DEFAULT_MAX_TEXT_LENGTH = 3000;
|
|
77
|
-
/**
|
|
78
|
-
* Register a TTS handler for a specific provider
|
|
79
|
-
*
|
|
80
|
-
* Allows providers to register their TTS implementation at runtime.
|
|
81
|
-
*
|
|
82
|
-
* @param providerName - Provider identifier (e.g., 'google-ai', 'openai')
|
|
83
|
-
* @param handler - TTS handler implementation
|
|
84
|
-
*
|
|
85
|
-
* @example
|
|
86
|
-
* ```typescript
|
|
87
|
-
* const googleHandler: TTSHandler = {
|
|
88
|
-
* synthesize: async (text, options) => { ... },
|
|
89
|
-
* getVoices: async (languageCode) => { ... },
|
|
90
|
-
* isConfigured: () => true
|
|
91
|
-
* };
|
|
92
|
-
*
|
|
93
|
-
* TTSProcessor.registerHandler('google-ai', googleHandler);
|
|
94
|
-
* ```
|
|
95
|
-
*/
|
|
96
|
-
static registerHandler(providerName, handler) {
|
|
97
|
-
if (!providerName) {
|
|
98
|
-
throw new Error("Provider name is required");
|
|
99
|
-
}
|
|
100
|
-
if (!handler) {
|
|
101
|
-
throw new Error("Handler is required");
|
|
102
|
-
}
|
|
103
|
-
const normalizedName = providerName.toLowerCase();
|
|
104
|
-
if (this.handlers.has(normalizedName)) {
|
|
105
|
-
logger.warn(`[TTSProcessor] Overwriting existing handler for provider: ${normalizedName}`);
|
|
106
|
-
}
|
|
107
|
-
this.handlers.set(normalizedName, handler);
|
|
108
|
-
logger.debug(`[TTSProcessor] Registered TTS handler for provider: ${normalizedName}`);
|
|
109
|
-
}
|
|
110
|
-
/**
|
|
111
|
-
* Get a registered TTS handler by provider name
|
|
112
|
-
*
|
|
113
|
-
* @private
|
|
114
|
-
* @param providerName - Provider identifier
|
|
115
|
-
* @returns Handler instance or undefined if not registered
|
|
116
|
-
*/
|
|
117
|
-
static getHandler(providerName) {
|
|
118
|
-
const normalizedName = providerName.toLowerCase();
|
|
119
|
-
return this.handlers.get(normalizedName);
|
|
120
|
-
}
|
|
121
|
-
/**
|
|
122
|
-
* Check if a provider is supported (has a registered TTS handler)
|
|
123
|
-
*
|
|
124
|
-
* @param providerName - Provider identifier
|
|
125
|
-
* @returns True if handler is registered
|
|
126
|
-
*
|
|
127
|
-
* @example
|
|
128
|
-
* ```typescript
|
|
129
|
-
* if (TTSProcessor.supports('google-ai')) {
|
|
130
|
-
* console.log('Google AI TTS is supported');
|
|
131
|
-
* }
|
|
132
|
-
* ```
|
|
133
|
-
*/
|
|
134
|
-
static supports(providerName) {
|
|
135
|
-
if (!providerName) {
|
|
136
|
-
logger.error("[TTSProcessor] Provider name is required for supports check");
|
|
137
|
-
return false;
|
|
138
|
-
}
|
|
139
|
-
const normalizedName = providerName.toLowerCase();
|
|
140
|
-
const isSupported = this.handlers.has(normalizedName);
|
|
141
|
-
if (!isSupported) {
|
|
142
|
-
logger.debug(`[TTSProcessor] Provider ${providerName} is not supported`);
|
|
143
|
-
}
|
|
144
|
-
return isSupported;
|
|
145
|
-
}
|
|
146
|
-
/**
|
|
147
|
-
* Synthesize speech from text using a registered TTS provider
|
|
148
|
-
*
|
|
149
|
-
* Orchestrates the text-to-speech generation process:
|
|
150
|
-
* 1. Validates input text (not empty, within length limits)
|
|
151
|
-
* 2. Looks up the provider handler
|
|
152
|
-
* 3. Verifies provider configuration
|
|
153
|
-
* 4. Delegates synthesis to the provider (timeout handled by provider)
|
|
154
|
-
* 5. Enriches result with metadata
|
|
155
|
-
*
|
|
156
|
-
* **Timeout Handling:**
|
|
157
|
-
* Timeouts are enforced by individual provider implementations (see TTSHandler interface).
|
|
158
|
-
* Providers typically use 30-second timeouts via `withTimeout()` utility or
|
|
159
|
-
* provider-specific timeout mechanisms (e.g., Google Cloud client timeout).
|
|
160
|
-
*
|
|
161
|
-
* @param text - Text to convert to speech
|
|
162
|
-
* @param provider - Provider identifier
|
|
163
|
-
* @param options - TTS configuration options
|
|
164
|
-
* @returns Audio result with buffer and metadata
|
|
165
|
-
* @throws TTSError if validation fails or provider not supported/configured
|
|
166
|
-
*
|
|
167
|
-
* @example
|
|
168
|
-
* ```typescript
|
|
169
|
-
* const result = await TTSProcessor.synthesize("Hello, world!", "google-ai", {
|
|
170
|
-
* voice: "en-US-Neural2-C",
|
|
171
|
-
* format: "mp3",
|
|
172
|
-
* speed: 1.0
|
|
173
|
-
* });
|
|
174
|
-
*
|
|
175
|
-
* console.log(`Generated ${result.size} bytes of ${result.format} audio`);
|
|
176
|
-
* // Save to file or play the audio buffer
|
|
177
|
-
* ```
|
|
178
|
-
*/
|
|
179
|
-
static async synthesize(text, provider, options) {
|
|
180
|
-
// Create span early so preflight failures are captured
|
|
181
|
-
const span = SpanSerializer.createSpan(SpanType.TTS, "tts.synthesize", {
|
|
182
|
-
"tts.operation": "synthesize",
|
|
183
|
-
"tts.provider": provider,
|
|
184
|
-
"tts.voice": options.voice,
|
|
185
|
-
"tts.format": options.format,
|
|
186
|
-
});
|
|
187
|
-
try {
|
|
188
|
-
// Trim the text once at the start
|
|
189
|
-
const trimmedText = text.trim();
|
|
190
|
-
// 1. Text validation: reject empty text
|
|
191
|
-
if (!trimmedText) {
|
|
192
|
-
logger.error("[TTSProcessor] Text is required for synthesis");
|
|
193
|
-
throw new TTSError({
|
|
194
|
-
code: TTS_ERROR_CODES.EMPTY_TEXT,
|
|
195
|
-
message: "Text is required for TTS synthesis",
|
|
196
|
-
severity: ErrorSeverity.LOW,
|
|
197
|
-
retriable: false,
|
|
198
|
-
context: { provider },
|
|
199
|
-
});
|
|
200
|
-
}
|
|
201
|
-
// 2. Handler lookup and error if provider not supported
|
|
202
|
-
const handler = this.getHandler(provider);
|
|
203
|
-
if (!handler) {
|
|
204
|
-
logger.error(`[TTSProcessor] Provider "${provider}" is not registered`);
|
|
205
|
-
throw new TTSError({
|
|
206
|
-
code: TTS_ERROR_CODES.PROVIDER_NOT_SUPPORTED,
|
|
207
|
-
message: `TTS provider "${provider}" is not supported. Use TTSProcessor.registerHandler() to register it.`,
|
|
208
|
-
severity: ErrorSeverity.HIGH,
|
|
209
|
-
retriable: false,
|
|
210
|
-
context: {
|
|
211
|
-
provider,
|
|
212
|
-
availableProviders: Array.from(this.handlers.keys()),
|
|
213
|
-
},
|
|
214
|
-
});
|
|
215
|
-
}
|
|
216
|
-
// 3. Text validation: reject text exceeding provider-specific max length
|
|
217
|
-
const maxTextLength = handler.maxTextLength ?? this.DEFAULT_MAX_TEXT_LENGTH;
|
|
218
|
-
if (trimmedText.length > maxTextLength) {
|
|
219
|
-
logger.error(`[TTSProcessor] Text exceeds maximum length of ${maxTextLength} characters for provider "${provider}"`);
|
|
220
|
-
throw new TTSError({
|
|
221
|
-
code: TTS_ERROR_CODES.TEXT_TOO_LONG,
|
|
222
|
-
message: `Text length (${trimmedText.length}) exceeds maximum allowed length (${maxTextLength} characters) for provider "${provider}"`,
|
|
223
|
-
severity: ErrorSeverity.MEDIUM,
|
|
224
|
-
retriable: false,
|
|
225
|
-
context: {
|
|
226
|
-
provider,
|
|
227
|
-
textLength: trimmedText.length,
|
|
228
|
-
maxLength: maxTextLength,
|
|
229
|
-
},
|
|
230
|
-
});
|
|
231
|
-
}
|
|
232
|
-
// 4. Configuration check
|
|
233
|
-
if (!handler.isConfigured()) {
|
|
234
|
-
logger.warn(`[TTSProcessor] Provider "${provider}" is not properly configured`);
|
|
235
|
-
throw new TTSError({
|
|
236
|
-
code: TTS_ERROR_CODES.PROVIDER_NOT_CONFIGURED,
|
|
237
|
-
message: `TTS provider "${provider}" is not configured. Please set the required API keys.`,
|
|
238
|
-
category: ErrorCategory.CONFIGURATION,
|
|
239
|
-
severity: ErrorSeverity.HIGH,
|
|
240
|
-
retriable: false,
|
|
241
|
-
context: { provider },
|
|
242
|
-
});
|
|
243
|
-
}
|
|
244
|
-
logger.debug(`[TTSProcessor] Starting synthesis with provider: ${provider}`);
|
|
245
|
-
// 5. Call handler.synthesize() - providers handle their own timeouts
|
|
246
|
-
const result = await handler.synthesize(trimmedText, options);
|
|
247
|
-
// 6. Post-processing: add metadata
|
|
248
|
-
const enrichedResult = {
|
|
249
|
-
...result,
|
|
250
|
-
voice: result.voice ?? options.voice,
|
|
251
|
-
};
|
|
252
|
-
logger.info(`[TTSProcessor] Successfully synthesized ${result.size} bytes of audio`);
|
|
253
|
-
// 7. Record successful span
|
|
254
|
-
const endedSpan = SpanSerializer.endSpan(span, SpanStatus.OK);
|
|
255
|
-
getMetricsAggregator().recordSpan(endedSpan);
|
|
256
|
-
// 8. Returns TTSResult with buffer, format, metadata
|
|
257
|
-
return enrichedResult;
|
|
258
|
-
}
|
|
259
|
-
catch (err) {
|
|
260
|
-
// Record error span
|
|
261
|
-
const endedSpan = SpanSerializer.endSpan(span, SpanStatus.ERROR, err instanceof Error ? err.message : String(err));
|
|
262
|
-
getMetricsAggregator().recordSpan(endedSpan);
|
|
263
|
-
// 9. Comprehensive error handling
|
|
264
|
-
// Re-throw TTSError as-is
|
|
265
|
-
if (err instanceof TTSError) {
|
|
266
|
-
throw err;
|
|
267
|
-
}
|
|
268
|
-
// Wrap other errors in TTSError
|
|
269
|
-
const errorMessage = err instanceof Error ? err.message : String(err || "Unknown error");
|
|
270
|
-
logger.error(`[TTSProcessor] Synthesis failed for provider "${provider}": ${errorMessage}`);
|
|
271
|
-
throw new TTSError({
|
|
272
|
-
code: TTS_ERROR_CODES.SYNTHESIS_FAILED,
|
|
273
|
-
message: `TTS synthesis failed for provider "${provider}": ${errorMessage}`,
|
|
274
|
-
category: ErrorCategory.EXECUTION,
|
|
275
|
-
severity: ErrorSeverity.HIGH,
|
|
276
|
-
retriable: true,
|
|
277
|
-
context: {
|
|
278
|
-
provider,
|
|
279
|
-
textLength: text.trim().length,
|
|
280
|
-
options,
|
|
281
|
-
},
|
|
282
|
-
originalError: err instanceof Error ? err : undefined,
|
|
283
|
-
});
|
|
284
|
-
}
|
|
285
|
-
}
|
|
286
|
-
}
|
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Type Utilities - Centralized type checking functions
|
|
3
|
-
*
|
|
4
|
-
* Consolidates common type checking patterns to reduce code duplication
|
|
5
|
-
* and provide consistent type guards across the codebase.
|
|
6
|
-
*/
|
|
7
|
-
/**
|
|
8
|
-
* Type guard to check if a value is a non-null object
|
|
9
|
-
* Excludes arrays and null values
|
|
10
|
-
*
|
|
11
|
-
* @param value - Value to check
|
|
12
|
-
* @returns true if value is a non-null object (excluding arrays)
|
|
13
|
-
*/
|
|
14
|
-
export function isObject(value) {
|
|
15
|
-
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Type guard to check if a value is a non-null object (including arrays)
|
|
19
|
-
*
|
|
20
|
-
* @param value - Value to check
|
|
21
|
-
* @returns true if value is a non-null object (including arrays)
|
|
22
|
-
*/
|
|
23
|
-
export function isNonNullObject(value) {
|
|
24
|
-
return typeof value === "object" && value !== null;
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Type guard to check if a value is a plain object with string keys
|
|
28
|
-
*
|
|
29
|
-
* @param value - Value to check
|
|
30
|
-
* @returns true if value is a plain object with string keys
|
|
31
|
-
*/
|
|
32
|
-
export function isPlainObject(value) {
|
|
33
|
-
return isObject(value) && Object.getPrototypeOf(value) === Object.prototype;
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Type guard to check if a value is an array
|
|
37
|
-
*
|
|
38
|
-
* @param value - Value to check
|
|
39
|
-
* @returns true if value is an array
|
|
40
|
-
*/
|
|
41
|
-
export function isArray(value) {
|
|
42
|
-
return Array.isArray(value);
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* Type guard to check if a value is a string
|
|
46
|
-
*
|
|
47
|
-
* @param value - Value to check
|
|
48
|
-
* @returns true if value is a string
|
|
49
|
-
*/
|
|
50
|
-
export function isString(value) {
|
|
51
|
-
return typeof value === "string";
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* Type guard to check if a value is a number
|
|
55
|
-
*
|
|
56
|
-
* @param value - Value to check
|
|
57
|
-
* @returns true if value is a number and not NaN
|
|
58
|
-
*/
|
|
59
|
-
export function isNumber(value) {
|
|
60
|
-
return typeof value === "number" && !isNaN(value);
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Type guard to check if a value is a boolean
|
|
64
|
-
*
|
|
65
|
-
* @param value - Value to check
|
|
66
|
-
* @returns true if value is a boolean
|
|
67
|
-
*/
|
|
68
|
-
export function isBoolean(value) {
|
|
69
|
-
return typeof value === "boolean";
|
|
70
|
-
}
|
|
71
|
-
/**
|
|
72
|
-
* Type guard to check if a value is a function
|
|
73
|
-
*
|
|
74
|
-
* @param value - Value to check
|
|
75
|
-
* @returns true if value is a function
|
|
76
|
-
*/
|
|
77
|
-
export function isFunction(value) {
|
|
78
|
-
return typeof value === "function";
|
|
79
|
-
}
|
|
80
|
-
/**
|
|
81
|
-
* Type guard to check if a value is null or undefined
|
|
82
|
-
*
|
|
83
|
-
* @param value - Value to check
|
|
84
|
-
* @returns true if value is null or undefined
|
|
85
|
-
*/
|
|
86
|
-
export function isNullish(value) {
|
|
87
|
-
return value === null || value === undefined;
|
|
88
|
-
}
|
|
89
|
-
/**
|
|
90
|
-
* Type guard to check if a value is defined (not undefined)
|
|
91
|
-
*
|
|
92
|
-
* @param value - Value to check
|
|
93
|
-
* @returns true if value is not undefined
|
|
94
|
-
*/
|
|
95
|
-
export function isDefined(value) {
|
|
96
|
-
return value !== undefined;
|
|
97
|
-
}
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Video Analysis Processor
|
|
3
|
-
*
|
|
4
|
-
* Formats video analysis results into human-readable text
|
|
5
|
-
*
|
|
6
|
-
* @module utils/videoAnalysisProcessor
|
|
7
|
-
*/
|
|
8
|
-
import { AIProviderName } from "../constants/enums.js";
|
|
9
|
-
import { logger } from "./logger.js";
|
|
10
|
-
/**
|
|
11
|
-
* Check if messages contain video frames (images)
|
|
12
|
-
* Only checks user messages to match buildContentParts behavior
|
|
13
|
-
*
|
|
14
|
-
* @param messages - Array of ModelMessage objects
|
|
15
|
-
* @returns true if video frames are present in user messages
|
|
16
|
-
*/
|
|
17
|
-
export function hasVideoFrames(messages) {
|
|
18
|
-
return messages.some((msg) => {
|
|
19
|
-
// Only check user messages to match buildContentParts behavior
|
|
20
|
-
if (msg.role !== "user") {
|
|
21
|
-
return false;
|
|
22
|
-
}
|
|
23
|
-
if (Array.isArray(msg.content)) {
|
|
24
|
-
// Count image parts — only route to video analysis pipeline when there are
|
|
25
|
-
// multiple frames (3+), indicating actual video frame extraction.
|
|
26
|
-
// Single images or pairs should use the model's native vision capability.
|
|
27
|
-
const imageCount = msg.content.filter((part) => typeof part === "object" &&
|
|
28
|
-
part !== null &&
|
|
29
|
-
"type" in part &&
|
|
30
|
-
part.type === "image").length;
|
|
31
|
-
return imageCount >= 3;
|
|
32
|
-
}
|
|
33
|
-
return false;
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Execute video analysis on messages containing video frames
|
|
38
|
-
*
|
|
39
|
-
* @param messages - Array of ModelMessage objects with video frames
|
|
40
|
-
* @param options - Video analysis options
|
|
41
|
-
* @returns Video analysis text result
|
|
42
|
-
* @throws Error if analysis fails
|
|
43
|
-
*/
|
|
44
|
-
export async function executeVideoAnalysis(messages, options) {
|
|
45
|
-
logger.debug("[VideoAnalysisProcessor] Video frames detected, triggering analysis");
|
|
46
|
-
const { analyzeVideo } = await import("../adapters/video/videoAnalyzer.js");
|
|
47
|
-
const provider = options.provider === AIProviderName.GOOGLE_AI ||
|
|
48
|
-
(options.provider === AIProviderName.AUTO && process.env.GOOGLE_AI_API_KEY)
|
|
49
|
-
? AIProviderName.GOOGLE_AI
|
|
50
|
-
: options.provider === AIProviderName.VERTEX ||
|
|
51
|
-
options.providerName === AIProviderName.VERTEX
|
|
52
|
-
? AIProviderName.VERTEX
|
|
53
|
-
: AIProviderName.AUTO;
|
|
54
|
-
const videoAnalysisText = await analyzeVideo(messages, {
|
|
55
|
-
provider: provider,
|
|
56
|
-
project: options.region
|
|
57
|
-
? undefined
|
|
58
|
-
: process.env.GOOGLE_VERTEX_PROJECT || process.env.GOOGLE_CLOUD_PROJECT,
|
|
59
|
-
location: options.region || process.env.GOOGLE_VERTEX_LOCATION,
|
|
60
|
-
model: options.model || "gemini-2.5-flash",
|
|
61
|
-
});
|
|
62
|
-
logger.debug("[VideoAnalysisProcessor] Video analysis completed", {
|
|
63
|
-
hasResult: !!videoAnalysisText,
|
|
64
|
-
resultLength: videoAnalysisText?.length,
|
|
65
|
-
});
|
|
66
|
-
return videoAnalysisText;
|
|
67
|
-
}
|