@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
package/dist/client/rag/index.js
DELETED
|
@@ -1,141 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* RAG Document Processing Module
|
|
3
|
-
*
|
|
4
|
-
* Provides comprehensive RAG (Retrieval-Augmented Generation) capabilities:
|
|
5
|
-
* - Document loading (text, markdown, HTML, JSON, CSV, PDF, web)
|
|
6
|
-
* - MDocument class for fluent document processing
|
|
7
|
-
* - 10 chunking strategies (character, recursive, sentence, token, markdown, html, json, latex, semantic, semantic-markdown)
|
|
8
|
-
* - LLM-powered metadata extraction (title, summary, keywords, Q&A)
|
|
9
|
-
* - Vector query tools with metadata filtering and reranking
|
|
10
|
-
* - Hybrid search (BM25 + vector fusion)
|
|
11
|
-
* - Graph RAG for knowledge graph-based retrieval
|
|
12
|
-
* - RAG pipeline orchestration
|
|
13
|
-
* - Context assembly and formatting
|
|
14
|
-
* - ChunkerFactory and ChunkerRegistry patterns for extensibility
|
|
15
|
-
* - Error handling and resilience (CircuitBreaker, RetryHandler)
|
|
16
|
-
*
|
|
17
|
-
* @example
|
|
18
|
-
* ```typescript
|
|
19
|
-
* import {
|
|
20
|
-
* MDocument,
|
|
21
|
-
* loadDocument,
|
|
22
|
-
* RAGPipeline,
|
|
23
|
-
* ChunkerRegistry,
|
|
24
|
-
* ChunkerFactory,
|
|
25
|
-
* CircuitBreaker
|
|
26
|
-
* } from '@juspay/neurolink';
|
|
27
|
-
*
|
|
28
|
-
* // Load and process a document
|
|
29
|
-
* const doc = await loadDocument('/path/to/document.md');
|
|
30
|
-
* await doc.chunk({ strategy: 'markdown', config: { maxSize: 1000 } });
|
|
31
|
-
* await doc.embed('openai', 'text-embedding-3-small');
|
|
32
|
-
*
|
|
33
|
-
* // Or use the full RAG pipeline
|
|
34
|
-
* const pipeline = new RAGPipeline({
|
|
35
|
-
* embeddingModel: { provider: 'openai', modelName: 'text-embedding-3-small' },
|
|
36
|
-
* generationModel: { provider: 'openai', modelName: 'gpt-4o-mini' }
|
|
37
|
-
* });
|
|
38
|
-
* await pipeline.ingest(['/path/to/docs/*.md']);
|
|
39
|
-
* const response = await pipeline.query('What are the key features?');
|
|
40
|
-
*
|
|
41
|
-
* // Use factory pattern for chunker creation
|
|
42
|
-
* const chunker = await ChunkerFactory.createChunker('semantic', { maxSize: 500 });
|
|
43
|
-
* const chunks = await chunker.chunk(text);
|
|
44
|
-
* ```
|
|
45
|
-
*/
|
|
46
|
-
export { ChunkerFactory, chunkerFactory, createChunker, getAvailableStrategies as getFactoryStrategies, getDefaultConfig as getFactoryDefaultConfig, } from "./ChunkerFactory.js";
|
|
47
|
-
// ChunkerFactory and ChunkerRegistry patterns (from main worktree)
|
|
48
|
-
export { ChunkerRegistry as ChunkerRegistryV2, chunkerRegistry, getAvailableChunkers, getChunker, getChunkerMetadata, } from "./ChunkerRegistry.js";
|
|
49
|
-
// Base chunker and chunker implementations (from main worktree)
|
|
50
|
-
export * from "./chunkers/index.js";
|
|
51
|
-
// Chunking
|
|
52
|
-
export { CharacterChunker, ChunkerRegistry, chunkText, HTMLChunker, JSONChunker, LaTeXChunker, MarkdownChunker, RecursiveChunker, SemanticChunker, SentenceChunker, TokenChunker, } from "./chunking/index.js";
|
|
53
|
-
// Document Processing
|
|
54
|
-
export { CSVLoader, HTMLLoader, JSONLoader, loadDocument, loadDocuments, MarkdownLoader, MDocument, PDFLoader, TextLoader, WebLoader, } from "./document/index.js";
|
|
55
|
-
// Error handling
|
|
56
|
-
export * from "./errors/index.js";
|
|
57
|
-
// Graph RAG
|
|
58
|
-
export { GraphRAG } from "./graphRag/index.js";
|
|
59
|
-
// Metadata Extraction
|
|
60
|
-
export { createMetadataExtractor, extractMetadata, getAvailableExtractors, getAvailableExtractorTypes, getExtractor, getExtractorDefaultConfig, getExtractorMetadata, getRegisteredExtractorMetadata, LLMMetadataExtractor,
|
|
61
|
-
// Factory pattern
|
|
62
|
-
MetadataExtractorFactory,
|
|
63
|
-
// Registry pattern
|
|
64
|
-
MetadataExtractorRegistry, metadataExtractorFactory, metadataExtractorRegistry, } from "./metadata/index.js";
|
|
65
|
-
// Pipeline
|
|
66
|
-
export { assembleContext, createContextWindow, createRAGPipeline, extractKeySentences, formatContextWithCitations, orderByDocumentStructure, RAGPipeline, summarizeContext, } from "./pipeline/index.js";
|
|
67
|
-
// RAG Integration (for generate/stream)
|
|
68
|
-
export { prepareRAGTool } from "./ragIntegration.js";
|
|
69
|
-
// Reranker
|
|
70
|
-
export { batchRerank, CohereRelevanceScorer, CrossEncoderReranker, createReranker, getAvailableRerankers, getAvailableRerankerTypes, getRegisteredRerankerMetadata, getReranker, getRerankerDefaultConfig, getRerankerMetadata,
|
|
71
|
-
// Factory pattern
|
|
72
|
-
RerankerFactory,
|
|
73
|
-
// Registry pattern
|
|
74
|
-
RerankerRegistry, rerank, rerankerFactory, rerankerRegistry, simpleRerank, } from "./reranker/index.js";
|
|
75
|
-
// Resilience patterns
|
|
76
|
-
export * from "./resilience/index.js";
|
|
77
|
-
// Retrieval
|
|
78
|
-
export { createHybridSearch, createVectorQueryTool, InMemoryBM25Index, InMemoryVectorStore, linearCombination, reciprocalRankFusion, } from "./retrieval/index.js";
|
|
79
|
-
// Types
|
|
80
|
-
export * from "./types.js";
|
|
81
|
-
// Convenience functions
|
|
82
|
-
import { ChunkerRegistry } from "./chunking/index.js";
|
|
83
|
-
import { LLMMetadataExtractor } from "./metadata/index.js";
|
|
84
|
-
/**
|
|
85
|
-
* Process a document through the full RAG pipeline
|
|
86
|
-
*
|
|
87
|
-
* @param text - Document text to process
|
|
88
|
-
* @param options - Processing options
|
|
89
|
-
* @returns Processed chunks with optional metadata
|
|
90
|
-
*/
|
|
91
|
-
export async function processDocument(text, options) {
|
|
92
|
-
const { strategy = "recursive", maxSize = 1000, overlap = 200, extract, provider, model, metadata = {}, } = options || {};
|
|
93
|
-
// Chunk the document
|
|
94
|
-
const chunker = ChunkerRegistry.get(strategy);
|
|
95
|
-
const chunks = await chunker.chunk(text, { maxSize, overlap, metadata });
|
|
96
|
-
// Extract metadata if requested
|
|
97
|
-
if (extract) {
|
|
98
|
-
const extractor = new LLMMetadataExtractor({ provider, modelName: model });
|
|
99
|
-
const results = await extractor.extract(chunks, extract);
|
|
100
|
-
// Merge metadata into chunks
|
|
101
|
-
for (let i = 0; i < chunks.length && i < results.length; i++) {
|
|
102
|
-
const result = results[i];
|
|
103
|
-
if (result.title) {
|
|
104
|
-
chunks[i].metadata.title = result.title;
|
|
105
|
-
}
|
|
106
|
-
if (result.summary) {
|
|
107
|
-
chunks[i].metadata.summary = result.summary;
|
|
108
|
-
}
|
|
109
|
-
if (result.keywords) {
|
|
110
|
-
chunks[i].metadata.keywords = result.keywords;
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
return chunks;
|
|
115
|
-
}
|
|
116
|
-
/**
|
|
117
|
-
* Get recommended chunking strategy based on content type
|
|
118
|
-
*
|
|
119
|
-
* @param contentType - MIME type or file extension
|
|
120
|
-
* @returns Recommended chunking strategy
|
|
121
|
-
*/
|
|
122
|
-
export function getRecommendedStrategy(contentType) {
|
|
123
|
-
return ChunkerRegistry.getRecommendedStrategy(contentType);
|
|
124
|
-
}
|
|
125
|
-
/**
|
|
126
|
-
* Get available chunking strategies
|
|
127
|
-
*
|
|
128
|
-
* @returns Array of available strategy names
|
|
129
|
-
*/
|
|
130
|
-
export function getAvailableStrategies() {
|
|
131
|
-
return ChunkerRegistry.getAvailableStrategies();
|
|
132
|
-
}
|
|
133
|
-
/**
|
|
134
|
-
* Get default configuration for a chunking strategy
|
|
135
|
-
*
|
|
136
|
-
* @param strategy - Chunking strategy name
|
|
137
|
-
* @returns Default configuration object
|
|
138
|
-
*/
|
|
139
|
-
export function getDefaultChunkerConfig(strategy) {
|
|
140
|
-
return ChunkerRegistry.getDefaultConfig(strategy);
|
|
141
|
-
}
|
|
@@ -1,418 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Metadata Extractor Factory
|
|
3
|
-
*
|
|
4
|
-
* Factory for creating metadata extractor instances with configuration.
|
|
5
|
-
* Follows the BaseFactory pattern for consistent lifecycle management.
|
|
6
|
-
*/
|
|
7
|
-
import { BaseFactory } from "../../core/infrastructure/index.js";
|
|
8
|
-
import { logger } from "../../utils/logger.js";
|
|
9
|
-
import { MetadataExtractionError, RAGErrorCodes } from "../errors/RAGError.js";
|
|
10
|
-
/**
|
|
11
|
-
* Default metadata extractor metadata entries
|
|
12
|
-
*/
|
|
13
|
-
const DEFAULT_EXTRACTOR_METADATA = {
|
|
14
|
-
llm: {
|
|
15
|
-
description: "Full LLM-powered metadata extraction supporting all extraction types",
|
|
16
|
-
defaultConfig: {
|
|
17
|
-
provider: "openai",
|
|
18
|
-
modelName: "gpt-4o-mini",
|
|
19
|
-
temperature: 0.3,
|
|
20
|
-
},
|
|
21
|
-
supportedOptions: [
|
|
22
|
-
"provider",
|
|
23
|
-
"modelName",
|
|
24
|
-
"promptTemplate",
|
|
25
|
-
"maxTokens",
|
|
26
|
-
"temperature",
|
|
27
|
-
],
|
|
28
|
-
useCases: [
|
|
29
|
-
"Comprehensive metadata extraction",
|
|
30
|
-
"Multi-type extraction in single pass",
|
|
31
|
-
"Custom schema extraction",
|
|
32
|
-
],
|
|
33
|
-
aliases: ["full", "comprehensive", "all"],
|
|
34
|
-
requiresModel: true,
|
|
35
|
-
extractionTypes: ["title", "summary", "keywords", "questions", "custom"],
|
|
36
|
-
},
|
|
37
|
-
title: {
|
|
38
|
-
description: "Extracts concise, descriptive titles from document content",
|
|
39
|
-
defaultConfig: {
|
|
40
|
-
provider: "openai",
|
|
41
|
-
modelName: "gpt-4o-mini",
|
|
42
|
-
maxTokens: 100,
|
|
43
|
-
},
|
|
44
|
-
supportedOptions: ["provider", "modelName", "promptTemplate", "maxTokens"],
|
|
45
|
-
useCases: [
|
|
46
|
-
"Document indexing",
|
|
47
|
-
"Content organization",
|
|
48
|
-
"Navigation systems",
|
|
49
|
-
],
|
|
50
|
-
aliases: ["header", "heading"],
|
|
51
|
-
requiresModel: true,
|
|
52
|
-
extractionTypes: ["title"],
|
|
53
|
-
},
|
|
54
|
-
summary: {
|
|
55
|
-
description: "Generates concise summaries of document chunks",
|
|
56
|
-
defaultConfig: {
|
|
57
|
-
provider: "openai",
|
|
58
|
-
modelName: "gpt-4o-mini",
|
|
59
|
-
maxTokens: 200,
|
|
60
|
-
},
|
|
61
|
-
supportedOptions: [
|
|
62
|
-
"provider",
|
|
63
|
-
"modelName",
|
|
64
|
-
"promptTemplate",
|
|
65
|
-
"maxTokens",
|
|
66
|
-
"maxWords",
|
|
67
|
-
],
|
|
68
|
-
useCases: [
|
|
69
|
-
"Document previews",
|
|
70
|
-
"Search result snippets",
|
|
71
|
-
"Content condensation",
|
|
72
|
-
],
|
|
73
|
-
aliases: ["summarize", "abstract"],
|
|
74
|
-
requiresModel: true,
|
|
75
|
-
extractionTypes: ["summary"],
|
|
76
|
-
},
|
|
77
|
-
keywords: {
|
|
78
|
-
description: "Extracts key terms and phrases from content",
|
|
79
|
-
defaultConfig: {
|
|
80
|
-
provider: "openai",
|
|
81
|
-
modelName: "gpt-4o-mini",
|
|
82
|
-
maxTokens: 100,
|
|
83
|
-
},
|
|
84
|
-
supportedOptions: [
|
|
85
|
-
"provider",
|
|
86
|
-
"modelName",
|
|
87
|
-
"promptTemplate",
|
|
88
|
-
"maxKeywords",
|
|
89
|
-
],
|
|
90
|
-
useCases: ["Tag generation", "Topic modeling", "Search optimization"],
|
|
91
|
-
aliases: ["tags", "terms", "keyphrase"],
|
|
92
|
-
requiresModel: true,
|
|
93
|
-
extractionTypes: ["keywords"],
|
|
94
|
-
},
|
|
95
|
-
questions: {
|
|
96
|
-
description: "Generates Q&A pairs from content for training or FAQs",
|
|
97
|
-
defaultConfig: {
|
|
98
|
-
provider: "openai",
|
|
99
|
-
modelName: "gpt-4o-mini",
|
|
100
|
-
maxTokens: 500,
|
|
101
|
-
},
|
|
102
|
-
supportedOptions: [
|
|
103
|
-
"provider",
|
|
104
|
-
"modelName",
|
|
105
|
-
"promptTemplate",
|
|
106
|
-
"numQuestions",
|
|
107
|
-
"includeAnswers",
|
|
108
|
-
],
|
|
109
|
-
useCases: [
|
|
110
|
-
"FAQ generation",
|
|
111
|
-
"Training data creation",
|
|
112
|
-
"Knowledge base building",
|
|
113
|
-
],
|
|
114
|
-
aliases: ["qa", "faq", "questions-answers"],
|
|
115
|
-
requiresModel: true,
|
|
116
|
-
extractionTypes: ["questions"],
|
|
117
|
-
},
|
|
118
|
-
custom: {
|
|
119
|
-
description: "Extracts structured data according to custom schema",
|
|
120
|
-
defaultConfig: {
|
|
121
|
-
provider: "openai",
|
|
122
|
-
modelName: "gpt-4o-mini",
|
|
123
|
-
maxTokens: 500,
|
|
124
|
-
},
|
|
125
|
-
supportedOptions: [
|
|
126
|
-
"provider",
|
|
127
|
-
"modelName",
|
|
128
|
-
"promptTemplate",
|
|
129
|
-
"schema",
|
|
130
|
-
"description",
|
|
131
|
-
],
|
|
132
|
-
useCases: [
|
|
133
|
-
"Structured data extraction",
|
|
134
|
-
"Entity extraction",
|
|
135
|
-
"Custom field extraction",
|
|
136
|
-
],
|
|
137
|
-
aliases: ["schema", "structured", "entity"],
|
|
138
|
-
requiresModel: true,
|
|
139
|
-
extractionTypes: ["custom"],
|
|
140
|
-
},
|
|
141
|
-
composite: {
|
|
142
|
-
description: "Combines multiple extraction types in a single pass",
|
|
143
|
-
defaultConfig: {
|
|
144
|
-
provider: "openai",
|
|
145
|
-
modelName: "gpt-4o-mini",
|
|
146
|
-
},
|
|
147
|
-
supportedOptions: ["provider", "modelName", "extractors"],
|
|
148
|
-
useCases: [
|
|
149
|
-
"Multi-field extraction",
|
|
150
|
-
"Complete document processing",
|
|
151
|
-
"Pipeline integration",
|
|
152
|
-
],
|
|
153
|
-
aliases: ["multi", "combined", "batch"],
|
|
154
|
-
requiresModel: true,
|
|
155
|
-
extractionTypes: ["title", "summary", "keywords", "questions", "custom"],
|
|
156
|
-
},
|
|
157
|
-
};
|
|
158
|
-
/**
|
|
159
|
-
* Metadata Extractor Factory
|
|
160
|
-
*
|
|
161
|
-
* Creates metadata extractor instances based on type with configuration support.
|
|
162
|
-
* Uses lazy loading via dynamic imports to avoid circular dependencies.
|
|
163
|
-
*/
|
|
164
|
-
export class MetadataExtractorFactory extends BaseFactory {
|
|
165
|
-
static instance = null;
|
|
166
|
-
metadataMap = new Map();
|
|
167
|
-
constructor() {
|
|
168
|
-
super();
|
|
169
|
-
}
|
|
170
|
-
/**
|
|
171
|
-
* Get singleton instance
|
|
172
|
-
*/
|
|
173
|
-
static getInstance() {
|
|
174
|
-
if (!MetadataExtractorFactory.instance) {
|
|
175
|
-
MetadataExtractorFactory.instance = new MetadataExtractorFactory();
|
|
176
|
-
}
|
|
177
|
-
return MetadataExtractorFactory.instance;
|
|
178
|
-
}
|
|
179
|
-
/**
|
|
180
|
-
* Reset singleton (for testing)
|
|
181
|
-
*/
|
|
182
|
-
static resetInstance() {
|
|
183
|
-
if (MetadataExtractorFactory.instance) {
|
|
184
|
-
MetadataExtractorFactory.instance.clear();
|
|
185
|
-
MetadataExtractorFactory.instance = null;
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
/**
|
|
189
|
-
* Register all default extractors
|
|
190
|
-
*/
|
|
191
|
-
async registerAll() {
|
|
192
|
-
// Register full LLM extractor
|
|
193
|
-
this.registerExtractor("llm", async (config) => {
|
|
194
|
-
const { LLMMetadataExtractor } = await import("./metadataExtractor.js");
|
|
195
|
-
return this.wrapExtractor(new LLMMetadataExtractor({
|
|
196
|
-
provider: config?.provider,
|
|
197
|
-
modelName: config?.modelName,
|
|
198
|
-
}), "llm");
|
|
199
|
-
}, DEFAULT_EXTRACTOR_METADATA.llm);
|
|
200
|
-
// Register title extractor
|
|
201
|
-
this.registerExtractor("title", async (config) => {
|
|
202
|
-
const { LLMMetadataExtractor } = await import("./metadataExtractor.js");
|
|
203
|
-
return this.createSpecializedExtractor(new LLMMetadataExtractor({
|
|
204
|
-
provider: config?.provider,
|
|
205
|
-
modelName: config?.modelName,
|
|
206
|
-
}), "title", { title: true });
|
|
207
|
-
}, DEFAULT_EXTRACTOR_METADATA.title);
|
|
208
|
-
// Register summary extractor
|
|
209
|
-
this.registerExtractor("summary", async (config) => {
|
|
210
|
-
const { LLMMetadataExtractor } = await import("./metadataExtractor.js");
|
|
211
|
-
return this.createSpecializedExtractor(new LLMMetadataExtractor({
|
|
212
|
-
provider: config?.provider,
|
|
213
|
-
modelName: config?.modelName,
|
|
214
|
-
}), "summary", { summary: true });
|
|
215
|
-
}, DEFAULT_EXTRACTOR_METADATA.summary);
|
|
216
|
-
// Register keywords extractor
|
|
217
|
-
this.registerExtractor("keywords", async (config) => {
|
|
218
|
-
const { LLMMetadataExtractor } = await import("./metadataExtractor.js");
|
|
219
|
-
return this.createSpecializedExtractor(new LLMMetadataExtractor({
|
|
220
|
-
provider: config?.provider,
|
|
221
|
-
modelName: config?.modelName,
|
|
222
|
-
}), "keywords", { keywords: true });
|
|
223
|
-
}, DEFAULT_EXTRACTOR_METADATA.keywords);
|
|
224
|
-
// Register questions extractor
|
|
225
|
-
this.registerExtractor("questions", async (config) => {
|
|
226
|
-
const { LLMMetadataExtractor } = await import("./metadataExtractor.js");
|
|
227
|
-
return this.createSpecializedExtractor(new LLMMetadataExtractor({
|
|
228
|
-
provider: config?.provider,
|
|
229
|
-
modelName: config?.modelName,
|
|
230
|
-
}), "questions", { questions: true });
|
|
231
|
-
}, DEFAULT_EXTRACTOR_METADATA.questions);
|
|
232
|
-
// Register custom extractor
|
|
233
|
-
this.registerExtractor("custom", async (config) => {
|
|
234
|
-
const { LLMMetadataExtractor } = await import("./metadataExtractor.js");
|
|
235
|
-
return this.wrapExtractor(new LLMMetadataExtractor({
|
|
236
|
-
provider: config?.provider,
|
|
237
|
-
modelName: config?.modelName,
|
|
238
|
-
}), "custom");
|
|
239
|
-
}, DEFAULT_EXTRACTOR_METADATA.custom);
|
|
240
|
-
// Register composite extractor
|
|
241
|
-
this.registerExtractor("composite", async (config) => {
|
|
242
|
-
const { LLMMetadataExtractor } = await import("./metadataExtractor.js");
|
|
243
|
-
return this.wrapExtractor(new LLMMetadataExtractor({
|
|
244
|
-
provider: config?.provider,
|
|
245
|
-
modelName: config?.modelName,
|
|
246
|
-
}), "composite");
|
|
247
|
-
}, DEFAULT_EXTRACTOR_METADATA.composite);
|
|
248
|
-
logger.debug(`[MetadataExtractorFactory] Registered ${this.items.size} extractor types`);
|
|
249
|
-
}
|
|
250
|
-
/**
|
|
251
|
-
* Wrap LLMMetadataExtractor to conform to MetadataExtractor interface
|
|
252
|
-
*/
|
|
253
|
-
wrapExtractor(extractor, type) {
|
|
254
|
-
return {
|
|
255
|
-
type,
|
|
256
|
-
async extract(chunks, params) {
|
|
257
|
-
return extractor.extract(chunks, params ?? {});
|
|
258
|
-
},
|
|
259
|
-
};
|
|
260
|
-
}
|
|
261
|
-
/**
|
|
262
|
-
* Create specialized extractor that only extracts specific types
|
|
263
|
-
*/
|
|
264
|
-
createSpecializedExtractor(extractor, type, defaultParams) {
|
|
265
|
-
return {
|
|
266
|
-
type,
|
|
267
|
-
async extract(chunks, params) {
|
|
268
|
-
// Merge default params with any provided params
|
|
269
|
-
const mergedParams = { ...defaultParams, ...params };
|
|
270
|
-
return extractor.extract(chunks, mergedParams);
|
|
271
|
-
},
|
|
272
|
-
};
|
|
273
|
-
}
|
|
274
|
-
/**
|
|
275
|
-
* Register an extractor with metadata and aliases
|
|
276
|
-
*/
|
|
277
|
-
registerExtractor(type, factory, metadata) {
|
|
278
|
-
// Store metadata
|
|
279
|
-
this.metadataMap.set(type, metadata);
|
|
280
|
-
// Register with aliases
|
|
281
|
-
this.register(type, factory, metadata.aliases, { metadata });
|
|
282
|
-
logger.debug(`[MetadataExtractorFactory] Registered extractor '${type}' with aliases: ${metadata.aliases.join(", ")}`);
|
|
283
|
-
}
|
|
284
|
-
/**
|
|
285
|
-
* Create an extractor by type or alias
|
|
286
|
-
*/
|
|
287
|
-
async createExtractor(typeOrAlias, config) {
|
|
288
|
-
await this.ensureInitialized();
|
|
289
|
-
const resolvedName = this.resolveName(typeOrAlias);
|
|
290
|
-
if (!this.has(resolvedName)) {
|
|
291
|
-
const available = this.getAvailable();
|
|
292
|
-
throw new MetadataExtractionError(`Unknown metadata extractor type: '${typeOrAlias}'. Available types: ${available.join(", ")}`, {
|
|
293
|
-
code: RAGErrorCodes.METADATA_EXTRACTOR_NOT_FOUND,
|
|
294
|
-
extractorType: typeOrAlias,
|
|
295
|
-
details: {
|
|
296
|
-
requestedType: typeOrAlias,
|
|
297
|
-
availableTypes: available,
|
|
298
|
-
},
|
|
299
|
-
});
|
|
300
|
-
}
|
|
301
|
-
try {
|
|
302
|
-
const extractor = await this.create(resolvedName, config);
|
|
303
|
-
logger.debug(`[MetadataExtractorFactory] Created extractor '${resolvedName}' with config:`, config);
|
|
304
|
-
return extractor;
|
|
305
|
-
}
|
|
306
|
-
catch (error) {
|
|
307
|
-
// Re-throw if already a MetadataExtractionError
|
|
308
|
-
if (error instanceof MetadataExtractionError) {
|
|
309
|
-
throw error;
|
|
310
|
-
}
|
|
311
|
-
throw new MetadataExtractionError(`Failed to create extractor '${resolvedName}': ${error instanceof Error ? error.message : String(error)}`, {
|
|
312
|
-
extractorType: resolvedName,
|
|
313
|
-
cause: error instanceof Error ? error : undefined,
|
|
314
|
-
details: { type: resolvedName, config },
|
|
315
|
-
});
|
|
316
|
-
}
|
|
317
|
-
}
|
|
318
|
-
/**
|
|
319
|
-
* Get metadata for an extractor
|
|
320
|
-
*/
|
|
321
|
-
getExtractorMetadata(typeOrAlias) {
|
|
322
|
-
const resolvedName = this.resolveName(typeOrAlias);
|
|
323
|
-
return this.metadataMap.get(resolvedName);
|
|
324
|
-
}
|
|
325
|
-
/**
|
|
326
|
-
* Get default configuration for an extractor
|
|
327
|
-
*/
|
|
328
|
-
getDefaultConfig(typeOrAlias) {
|
|
329
|
-
const metadata = this.getExtractorMetadata(typeOrAlias);
|
|
330
|
-
return metadata?.defaultConfig;
|
|
331
|
-
}
|
|
332
|
-
/**
|
|
333
|
-
* Get available extractor types (not including aliases)
|
|
334
|
-
*/
|
|
335
|
-
getAvailableTypes() {
|
|
336
|
-
return this.getAvailable();
|
|
337
|
-
}
|
|
338
|
-
/**
|
|
339
|
-
* Get all aliases mapped to their types
|
|
340
|
-
*/
|
|
341
|
-
getTypeAliases() {
|
|
342
|
-
return this.getAliases();
|
|
343
|
-
}
|
|
344
|
-
/**
|
|
345
|
-
* Check if a type exists
|
|
346
|
-
*/
|
|
347
|
-
hasType(typeOrAlias) {
|
|
348
|
-
const resolved = this.resolveName(typeOrAlias);
|
|
349
|
-
return this.has(resolved);
|
|
350
|
-
}
|
|
351
|
-
/**
|
|
352
|
-
* Get extractors suitable for a use case
|
|
353
|
-
*/
|
|
354
|
-
getExtractorsForUseCase(useCase) {
|
|
355
|
-
const matches = [];
|
|
356
|
-
const useCaseLower = useCase.toLowerCase();
|
|
357
|
-
for (const [type, metadata] of this.metadataMap) {
|
|
358
|
-
const hasMatch = metadata.useCases.some((uc) => uc.toLowerCase().includes(useCaseLower));
|
|
359
|
-
if (hasMatch) {
|
|
360
|
-
matches.push(type);
|
|
361
|
-
}
|
|
362
|
-
}
|
|
363
|
-
return matches;
|
|
364
|
-
}
|
|
365
|
-
/**
|
|
366
|
-
* Get extractors that can produce a specific extraction type
|
|
367
|
-
*/
|
|
368
|
-
getExtractorsForExtractionType(extractionType) {
|
|
369
|
-
const matches = [];
|
|
370
|
-
for (const [type, metadata] of this.metadataMap) {
|
|
371
|
-
if (metadata.extractionTypes.includes(extractionType)) {
|
|
372
|
-
matches.push(type);
|
|
373
|
-
}
|
|
374
|
-
}
|
|
375
|
-
return matches;
|
|
376
|
-
}
|
|
377
|
-
/**
|
|
378
|
-
* Get all extractor metadata
|
|
379
|
-
*/
|
|
380
|
-
getAllMetadata() {
|
|
381
|
-
return new Map(this.metadataMap);
|
|
382
|
-
}
|
|
383
|
-
/**
|
|
384
|
-
* Clear factory and metadata
|
|
385
|
-
*/
|
|
386
|
-
clear() {
|
|
387
|
-
super.clear();
|
|
388
|
-
this.metadataMap.clear();
|
|
389
|
-
}
|
|
390
|
-
}
|
|
391
|
-
/**
|
|
392
|
-
* Global metadata extractor factory singleton
|
|
393
|
-
*/
|
|
394
|
-
export const metadataExtractorFactory = MetadataExtractorFactory.getInstance();
|
|
395
|
-
/**
|
|
396
|
-
* Convenience function to create a metadata extractor
|
|
397
|
-
*/
|
|
398
|
-
export async function createMetadataExtractor(typeOrAlias, config) {
|
|
399
|
-
return metadataExtractorFactory.createExtractor(typeOrAlias, config);
|
|
400
|
-
}
|
|
401
|
-
/**
|
|
402
|
-
* Convenience function to get available extractor types
|
|
403
|
-
*/
|
|
404
|
-
export function getAvailableExtractorTypes() {
|
|
405
|
-
return metadataExtractorFactory.getAvailableTypes();
|
|
406
|
-
}
|
|
407
|
-
/**
|
|
408
|
-
* Convenience function to get extractor metadata
|
|
409
|
-
*/
|
|
410
|
-
export function getExtractorMetadata(typeOrAlias) {
|
|
411
|
-
return metadataExtractorFactory.getExtractorMetadata(typeOrAlias);
|
|
412
|
-
}
|
|
413
|
-
/**
|
|
414
|
-
* Convenience function to get default config
|
|
415
|
-
*/
|
|
416
|
-
export function getExtractorDefaultConfig(typeOrAlias) {
|
|
417
|
-
return metadataExtractorFactory.getDefaultConfig(typeOrAlias);
|
|
418
|
-
}
|