@juspay/neurolink 9.1.1 → 9.3.0
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 +27 -0
- package/README.md +106 -37
- package/dist/agent/directTools.d.ts +11 -11
- package/dist/cli/commands/config.d.ts +6 -6
- package/dist/cli/commands/rag.d.ts +19 -0
- package/dist/cli/commands/rag.js +756 -0
- package/dist/cli/factories/commandFactory.js +146 -83
- package/dist/cli/parser.js +4 -1
- package/dist/core/baseProvider.d.ts +43 -30
- package/dist/core/baseProvider.js +98 -138
- package/dist/core/conversationMemoryFactory.d.ts +2 -2
- package/dist/core/conversationMemoryFactory.js +2 -2
- package/dist/core/conversationMemoryInitializer.d.ts +1 -2
- package/dist/core/conversationMemoryInitializer.js +2 -2
- package/dist/core/infrastructure/baseError.d.ts +21 -0
- package/dist/core/infrastructure/baseError.js +22 -0
- package/dist/core/infrastructure/baseFactory.d.ts +21 -0
- package/dist/core/infrastructure/baseFactory.js +54 -0
- package/dist/core/infrastructure/baseRegistry.d.ts +21 -0
- package/dist/core/infrastructure/baseRegistry.js +49 -0
- package/dist/core/infrastructure/index.d.ts +5 -0
- package/dist/core/infrastructure/index.js +5 -0
- package/dist/core/infrastructure/retry.d.ts +7 -0
- package/dist/core/infrastructure/retry.js +20 -0
- package/dist/core/infrastructure/typedEventEmitter.d.ts +8 -0
- package/dist/core/infrastructure/typedEventEmitter.js +23 -0
- package/dist/core/redisConversationMemoryManager.d.ts +1 -6
- package/dist/core/redisConversationMemoryManager.js +7 -19
- package/dist/factories/providerFactory.d.ts +5 -3
- package/dist/factories/providerFactory.js +31 -24
- package/dist/image-gen/ImageGenService.d.ts +143 -0
- package/dist/image-gen/ImageGenService.js +345 -0
- package/dist/image-gen/imageGenTools.d.ts +126 -0
- package/dist/image-gen/imageGenTools.js +304 -0
- package/dist/image-gen/index.d.ts +46 -0
- package/dist/image-gen/index.js +48 -0
- package/dist/image-gen/types.d.ts +237 -0
- package/dist/image-gen/types.js +24 -0
- package/dist/index.d.ts +46 -12
- package/dist/index.js +88 -36
- package/dist/lib/agent/directTools.d.ts +8 -8
- package/dist/lib/core/baseProvider.d.ts +43 -30
- package/dist/lib/core/baseProvider.js +98 -138
- package/dist/lib/core/conversationMemoryFactory.d.ts +2 -2
- package/dist/lib/core/conversationMemoryFactory.js +2 -2
- package/dist/lib/core/conversationMemoryInitializer.d.ts +1 -2
- package/dist/lib/core/conversationMemoryInitializer.js +2 -2
- package/dist/lib/core/infrastructure/baseError.d.ts +21 -0
- package/dist/lib/core/infrastructure/baseError.js +23 -0
- package/dist/lib/core/infrastructure/baseFactory.d.ts +21 -0
- package/dist/lib/core/infrastructure/baseFactory.js +55 -0
- package/dist/lib/core/infrastructure/baseRegistry.d.ts +21 -0
- package/dist/lib/core/infrastructure/baseRegistry.js +50 -0
- package/dist/lib/core/infrastructure/index.d.ts +5 -0
- package/dist/lib/core/infrastructure/index.js +6 -0
- package/dist/lib/core/infrastructure/retry.d.ts +7 -0
- package/dist/lib/core/infrastructure/retry.js +21 -0
- package/dist/lib/core/infrastructure/typedEventEmitter.d.ts +8 -0
- package/dist/lib/core/infrastructure/typedEventEmitter.js +24 -0
- package/dist/lib/core/redisConversationMemoryManager.d.ts +1 -6
- package/dist/lib/core/redisConversationMemoryManager.js +7 -19
- package/dist/lib/factories/providerFactory.d.ts +5 -3
- package/dist/lib/factories/providerFactory.js +31 -24
- package/dist/lib/image-gen/ImageGenService.d.ts +143 -0
- package/dist/lib/image-gen/ImageGenService.js +346 -0
- package/dist/lib/image-gen/imageGenTools.d.ts +126 -0
- package/dist/lib/image-gen/imageGenTools.js +305 -0
- package/dist/lib/image-gen/index.d.ts +46 -0
- package/dist/lib/image-gen/index.js +49 -0
- package/dist/lib/image-gen/types.d.ts +237 -0
- package/dist/lib/image-gen/types.js +25 -0
- package/dist/lib/index.d.ts +46 -12
- package/dist/lib/index.js +88 -36
- package/dist/lib/mcp/index.d.ts +6 -5
- package/dist/lib/mcp/index.js +7 -5
- package/dist/lib/neurolink.d.ts +11 -13
- package/dist/lib/neurolink.js +95 -29
- package/dist/lib/processors/base/BaseFileProcessor.d.ts +273 -0
- package/dist/lib/processors/base/BaseFileProcessor.js +614 -0
- package/dist/lib/processors/base/index.d.ts +14 -0
- package/dist/lib/processors/base/index.js +20 -0
- package/dist/lib/processors/base/types.d.ts +593 -0
- package/dist/lib/processors/base/types.js +77 -0
- package/dist/lib/processors/cli/fileProcessorCli.d.ts +163 -0
- package/dist/lib/processors/cli/fileProcessorCli.js +389 -0
- package/dist/lib/processors/cli/index.d.ts +37 -0
- package/dist/lib/processors/cli/index.js +50 -0
- package/dist/lib/processors/code/ConfigProcessor.d.ts +171 -0
- package/dist/lib/processors/code/ConfigProcessor.js +401 -0
- package/dist/lib/processors/code/SourceCodeProcessor.d.ts +174 -0
- package/dist/lib/processors/code/SourceCodeProcessor.js +305 -0
- package/dist/lib/processors/code/index.d.ts +44 -0
- package/dist/lib/processors/code/index.js +61 -0
- package/dist/lib/processors/config/fileTypes.d.ts +283 -0
- package/dist/lib/processors/config/fileTypes.js +521 -0
- package/dist/lib/processors/config/index.d.ts +32 -0
- package/dist/lib/processors/config/index.js +93 -0
- package/dist/lib/processors/config/languageMap.d.ts +66 -0
- package/dist/lib/processors/config/languageMap.js +411 -0
- package/dist/lib/processors/config/mimeTypes.d.ts +376 -0
- package/dist/lib/processors/config/mimeTypes.js +339 -0
- package/dist/lib/processors/config/sizeLimits.d.ts +194 -0
- package/dist/lib/processors/config/sizeLimits.js +247 -0
- package/dist/lib/processors/data/JsonProcessor.d.ts +122 -0
- package/dist/lib/processors/data/JsonProcessor.js +204 -0
- package/dist/lib/processors/data/XmlProcessor.d.ts +160 -0
- package/dist/lib/processors/data/XmlProcessor.js +284 -0
- package/dist/lib/processors/data/YamlProcessor.d.ts +163 -0
- package/dist/lib/processors/data/YamlProcessor.js +295 -0
- package/dist/lib/processors/data/index.d.ts +49 -0
- package/dist/lib/processors/data/index.js +77 -0
- package/dist/lib/processors/document/ExcelProcessor.d.ts +238 -0
- package/dist/lib/processors/document/ExcelProcessor.js +520 -0
- package/dist/lib/processors/document/OpenDocumentProcessor.d.ts +69 -0
- package/dist/lib/processors/document/OpenDocumentProcessor.js +211 -0
- package/dist/lib/processors/document/RtfProcessor.d.ts +152 -0
- package/dist/lib/processors/document/RtfProcessor.js +362 -0
- package/dist/lib/processors/document/WordProcessor.d.ts +168 -0
- package/dist/lib/processors/document/WordProcessor.js +354 -0
- package/dist/lib/processors/document/index.d.ts +54 -0
- package/dist/lib/processors/document/index.js +91 -0
- package/dist/lib/processors/errors/FileErrorCode.d.ts +98 -0
- package/dist/lib/processors/errors/FileErrorCode.js +256 -0
- package/dist/lib/processors/errors/errorHelpers.d.ts +151 -0
- package/dist/lib/processors/errors/errorHelpers.js +379 -0
- package/dist/lib/processors/errors/errorSerializer.d.ts +139 -0
- package/dist/lib/processors/errors/errorSerializer.js +508 -0
- package/dist/lib/processors/errors/index.d.ts +46 -0
- package/dist/lib/processors/errors/index.js +50 -0
- package/dist/lib/processors/index.d.ts +76 -0
- package/dist/lib/processors/index.js +113 -0
- package/dist/lib/processors/integration/FileProcessorIntegration.d.ts +244 -0
- package/dist/lib/processors/integration/FileProcessorIntegration.js +273 -0
- package/dist/lib/processors/integration/index.d.ts +42 -0
- package/dist/lib/processors/integration/index.js +45 -0
- package/dist/lib/processors/markup/HtmlProcessor.d.ts +169 -0
- package/dist/lib/processors/markup/HtmlProcessor.js +250 -0
- package/dist/lib/processors/markup/MarkdownProcessor.d.ts +165 -0
- package/dist/lib/processors/markup/MarkdownProcessor.js +245 -0
- package/dist/lib/processors/markup/SvgProcessor.d.ts +156 -0
- package/dist/lib/processors/markup/SvgProcessor.js +241 -0
- package/dist/lib/processors/markup/TextProcessor.d.ts +135 -0
- package/dist/lib/processors/markup/TextProcessor.js +189 -0
- package/dist/lib/processors/markup/index.d.ts +66 -0
- package/dist/lib/processors/markup/index.js +103 -0
- package/dist/lib/processors/registry/ProcessorRegistry.d.ts +334 -0
- package/dist/lib/processors/registry/ProcessorRegistry.js +609 -0
- package/dist/lib/processors/registry/index.d.ts +12 -0
- package/dist/lib/processors/registry/index.js +17 -0
- package/dist/lib/processors/registry/types.d.ts +53 -0
- package/dist/lib/processors/registry/types.js +11 -0
- package/dist/lib/providers/amazonBedrock.d.ts +15 -2
- package/dist/lib/providers/amazonBedrock.js +65 -8
- package/dist/lib/providers/anthropic.d.ts +3 -3
- package/dist/lib/providers/anthropic.js +10 -7
- package/dist/lib/providers/googleAiStudio.d.ts +5 -5
- package/dist/lib/providers/googleAiStudio.js +10 -7
- package/dist/lib/providers/googleVertex.d.ts +16 -4
- package/dist/lib/providers/googleVertex.js +72 -16
- package/dist/lib/providers/litellm.d.ts +3 -3
- package/dist/lib/providers/litellm.js +10 -10
- package/dist/lib/providers/mistral.d.ts +3 -3
- package/dist/lib/providers/mistral.js +7 -6
- package/dist/lib/providers/ollama.d.ts +3 -4
- package/dist/lib/providers/ollama.js +7 -8
- package/dist/lib/providers/openAI.d.ts +14 -2
- package/dist/lib/providers/openAI.js +60 -6
- package/dist/lib/providers/openRouter.d.ts +2 -2
- package/dist/lib/providers/openRouter.js +10 -6
- package/dist/lib/providers/sagemaker/language-model.d.ts +2 -2
- package/dist/lib/rag/ChunkerFactory.d.ts +91 -0
- package/dist/lib/rag/ChunkerFactory.js +321 -0
- package/dist/lib/rag/ChunkerRegistry.d.ts +91 -0
- package/dist/lib/rag/ChunkerRegistry.js +422 -0
- package/dist/lib/rag/chunkers/BaseChunker.d.ts +53 -0
- package/dist/lib/rag/chunkers/BaseChunker.js +144 -0
- package/dist/lib/rag/chunkers/CharacterChunker.d.ts +18 -0
- package/dist/lib/rag/chunkers/CharacterChunker.js +29 -0
- package/dist/lib/rag/chunkers/HTMLChunker.d.ts +19 -0
- package/dist/lib/rag/chunkers/HTMLChunker.js +39 -0
- package/dist/lib/rag/chunkers/JSONChunker.d.ts +19 -0
- package/dist/lib/rag/chunkers/JSONChunker.js +69 -0
- package/dist/lib/rag/chunkers/LaTeXChunker.d.ts +15 -0
- package/dist/lib/rag/chunkers/LaTeXChunker.js +64 -0
- package/dist/lib/rag/chunkers/MarkdownChunker.d.ts +15 -0
- package/dist/lib/rag/chunkers/MarkdownChunker.js +103 -0
- package/dist/lib/rag/chunkers/RecursiveChunker.d.ts +27 -0
- package/dist/lib/rag/chunkers/RecursiveChunker.js +140 -0
- package/dist/lib/rag/chunkers/SemanticMarkdownChunker.d.ts +22 -0
- package/dist/lib/rag/chunkers/SemanticMarkdownChunker.js +139 -0
- package/dist/lib/rag/chunkers/SentenceChunker.d.ts +19 -0
- package/dist/lib/rag/chunkers/SentenceChunker.js +67 -0
- package/dist/lib/rag/chunkers/TokenChunker.d.ts +19 -0
- package/dist/lib/rag/chunkers/TokenChunker.js +62 -0
- package/dist/lib/rag/chunkers/index.d.ts +15 -0
- package/dist/lib/rag/chunkers/index.js +16 -0
- package/dist/lib/rag/chunking/characterChunker.d.ts +16 -0
- package/dist/lib/rag/chunking/characterChunker.js +143 -0
- package/dist/lib/rag/chunking/chunkerRegistry.d.ts +67 -0
- package/dist/lib/rag/chunking/chunkerRegistry.js +195 -0
- package/dist/lib/rag/chunking/htmlChunker.d.ts +34 -0
- package/dist/lib/rag/chunking/htmlChunker.js +248 -0
- package/dist/lib/rag/chunking/index.d.ts +15 -0
- package/dist/lib/rag/chunking/index.js +18 -0
- package/dist/lib/rag/chunking/jsonChunker.d.ts +20 -0
- package/dist/lib/rag/chunking/jsonChunker.js +282 -0
- package/dist/lib/rag/chunking/latexChunker.d.ts +26 -0
- package/dist/lib/rag/chunking/latexChunker.js +252 -0
- package/dist/lib/rag/chunking/markdownChunker.d.ts +19 -0
- package/dist/lib/rag/chunking/markdownChunker.js +202 -0
- package/dist/lib/rag/chunking/recursiveChunker.d.ts +19 -0
- package/dist/lib/rag/chunking/recursiveChunker.js +149 -0
- package/dist/lib/rag/chunking/semanticChunker.d.ts +41 -0
- package/dist/lib/rag/chunking/semanticChunker.js +307 -0
- package/dist/lib/rag/chunking/sentenceChunker.d.ts +25 -0
- package/dist/lib/rag/chunking/sentenceChunker.js +231 -0
- package/dist/lib/rag/chunking/tokenChunker.d.ts +36 -0
- package/dist/lib/rag/chunking/tokenChunker.js +184 -0
- package/dist/lib/rag/document/MDocument.d.ts +198 -0
- package/dist/lib/rag/document/MDocument.js +393 -0
- package/dist/lib/rag/document/index.d.ts +5 -0
- package/dist/lib/rag/document/index.js +6 -0
- package/dist/lib/rag/document/loaders.d.ts +201 -0
- package/dist/lib/rag/document/loaders.js +501 -0
- package/dist/lib/rag/errors/RAGError.d.ts +244 -0
- package/dist/lib/rag/errors/RAGError.js +275 -0
- package/dist/lib/rag/errors/index.d.ts +6 -0
- package/dist/lib/rag/errors/index.js +7 -0
- package/dist/lib/rag/graphRag/graphRAG.d.ts +115 -0
- package/dist/lib/rag/graphRag/graphRAG.js +385 -0
- package/dist/lib/rag/graphRag/index.d.ts +4 -0
- package/dist/lib/rag/graphRag/index.js +5 -0
- package/dist/lib/rag/index.d.ts +103 -0
- package/dist/lib/rag/index.js +142 -0
- package/dist/lib/rag/metadata/MetadataExtractorFactory.d.ts +157 -0
- package/dist/lib/rag/metadata/MetadataExtractorFactory.js +419 -0
- package/dist/lib/rag/metadata/MetadataExtractorRegistry.d.ts +99 -0
- package/dist/lib/rag/metadata/MetadataExtractorRegistry.js +363 -0
- package/dist/lib/rag/metadata/index.d.ts +6 -0
- package/dist/lib/rag/metadata/index.js +10 -0
- package/dist/lib/rag/metadata/metadataExtractor.d.ts +69 -0
- package/dist/lib/rag/metadata/metadataExtractor.js +278 -0
- package/dist/lib/rag/pipeline/RAGPipeline.d.ts +235 -0
- package/dist/lib/rag/pipeline/RAGPipeline.js +402 -0
- package/dist/lib/rag/pipeline/contextAssembly.d.ts +126 -0
- package/dist/lib/rag/pipeline/contextAssembly.js +338 -0
- package/dist/lib/rag/pipeline/index.d.ts +5 -0
- package/dist/lib/rag/pipeline/index.js +6 -0
- package/dist/lib/rag/ragIntegration.d.ts +38 -0
- package/dist/lib/rag/ragIntegration.js +212 -0
- package/dist/lib/rag/reranker/RerankerFactory.d.ts +184 -0
- package/dist/lib/rag/reranker/RerankerFactory.js +431 -0
- package/dist/lib/rag/reranker/RerankerRegistry.d.ts +119 -0
- package/dist/lib/rag/reranker/RerankerRegistry.js +403 -0
- package/dist/lib/rag/reranker/index.d.ts +6 -0
- package/dist/lib/rag/reranker/index.js +10 -0
- package/dist/lib/rag/reranker/reranker.d.ts +71 -0
- package/dist/lib/rag/reranker/reranker.js +278 -0
- package/dist/lib/rag/resilience/CircuitBreaker.d.ts +215 -0
- package/dist/lib/rag/resilience/CircuitBreaker.js +432 -0
- package/dist/lib/rag/resilience/RetryHandler.d.ts +115 -0
- package/dist/lib/rag/resilience/RetryHandler.js +301 -0
- package/dist/lib/rag/resilience/index.d.ts +7 -0
- package/dist/lib/rag/resilience/index.js +8 -0
- package/dist/lib/rag/retrieval/hybridSearch.d.ts +94 -0
- package/dist/lib/rag/retrieval/hybridSearch.js +314 -0
- package/dist/lib/rag/retrieval/index.d.ts +5 -0
- package/dist/lib/rag/retrieval/index.js +6 -0
- package/dist/lib/rag/retrieval/vectorQueryTool.d.ts +93 -0
- package/dist/lib/rag/retrieval/vectorQueryTool.js +290 -0
- package/dist/lib/rag/types.d.ts +768 -0
- package/dist/lib/rag/types.js +9 -0
- package/dist/lib/server/index.d.ts +15 -11
- package/dist/lib/server/index.js +55 -51
- package/dist/lib/server/utils/validation.d.ts +2 -2
- package/dist/lib/types/common.d.ts +0 -1
- package/dist/lib/types/fileTypes.d.ts +1 -1
- package/dist/lib/types/generateTypes.d.ts +42 -8
- package/dist/lib/types/generateTypes.js +1 -1
- package/dist/lib/types/index.d.ts +25 -24
- package/dist/lib/types/index.js +21 -20
- package/dist/lib/types/modelTypes.d.ts +16 -16
- package/dist/lib/types/pptTypes.d.ts +14 -2
- package/dist/lib/types/pptTypes.js +16 -0
- package/dist/lib/types/streamTypes.d.ts +28 -8
- package/dist/lib/types/streamTypes.js +1 -1
- package/dist/lib/utils/async/delay.d.ts +40 -0
- package/dist/lib/utils/async/delay.js +43 -0
- package/dist/lib/utils/async/index.d.ts +23 -0
- package/dist/lib/utils/async/index.js +24 -0
- package/dist/lib/utils/async/retry.d.ts +141 -0
- package/dist/lib/utils/async/retry.js +172 -0
- package/dist/lib/utils/async/withTimeout.d.ts +73 -0
- package/dist/lib/utils/async/withTimeout.js +97 -0
- package/dist/lib/utils/fileDetector.d.ts +7 -1
- package/dist/lib/utils/fileDetector.js +91 -18
- package/dist/lib/utils/json/extract.d.ts +103 -0
- package/dist/lib/utils/json/extract.js +249 -0
- package/dist/lib/utils/json/index.d.ts +36 -0
- package/dist/lib/utils/json/index.js +37 -0
- package/dist/lib/utils/json/safeParse.d.ts +137 -0
- package/dist/lib/utils/json/safeParse.js +191 -0
- package/dist/lib/utils/messageBuilder.d.ts +2 -2
- package/dist/lib/utils/messageBuilder.js +15 -7
- package/dist/lib/utils/modelRouter.d.ts +4 -4
- package/dist/lib/utils/modelRouter.js +4 -4
- package/dist/lib/utils/sanitizers/filename.d.ts +137 -0
- package/dist/lib/utils/sanitizers/filename.js +366 -0
- package/dist/lib/utils/sanitizers/html.d.ts +170 -0
- package/dist/lib/utils/sanitizers/html.js +326 -0
- package/dist/lib/utils/sanitizers/index.d.ts +26 -0
- package/dist/lib/utils/sanitizers/index.js +30 -0
- package/dist/lib/utils/sanitizers/svg.d.ts +81 -0
- package/dist/lib/utils/sanitizers/svg.js +483 -0
- package/dist/mcp/index.d.ts +6 -5
- package/dist/mcp/index.js +7 -5
- package/dist/neurolink.d.ts +11 -13
- package/dist/neurolink.js +95 -29
- package/dist/processors/base/BaseFileProcessor.d.ts +273 -0
- package/dist/processors/base/BaseFileProcessor.js +613 -0
- package/dist/processors/base/index.d.ts +14 -0
- package/dist/processors/base/index.js +19 -0
- package/dist/processors/base/types.d.ts +593 -0
- package/dist/processors/base/types.js +76 -0
- package/dist/processors/cli/fileProcessorCli.d.ts +163 -0
- package/dist/processors/cli/fileProcessorCli.js +388 -0
- package/dist/processors/cli/index.d.ts +37 -0
- package/dist/processors/cli/index.js +49 -0
- package/dist/processors/code/ConfigProcessor.d.ts +171 -0
- package/dist/processors/code/ConfigProcessor.js +400 -0
- package/dist/processors/code/SourceCodeProcessor.d.ts +174 -0
- package/dist/processors/code/SourceCodeProcessor.js +304 -0
- package/dist/processors/code/index.d.ts +44 -0
- package/dist/processors/code/index.js +60 -0
- package/dist/processors/config/fileTypes.d.ts +283 -0
- package/dist/processors/config/fileTypes.js +520 -0
- package/dist/processors/config/index.d.ts +32 -0
- package/dist/processors/config/index.js +92 -0
- package/dist/processors/config/languageMap.d.ts +66 -0
- package/dist/processors/config/languageMap.js +410 -0
- package/dist/processors/config/mimeTypes.d.ts +376 -0
- package/dist/processors/config/mimeTypes.js +338 -0
- package/dist/processors/config/sizeLimits.d.ts +194 -0
- package/dist/processors/config/sizeLimits.js +246 -0
- package/dist/processors/data/JsonProcessor.d.ts +122 -0
- package/dist/processors/data/JsonProcessor.js +203 -0
- package/dist/processors/data/XmlProcessor.d.ts +160 -0
- package/dist/processors/data/XmlProcessor.js +283 -0
- package/dist/processors/data/YamlProcessor.d.ts +163 -0
- package/dist/processors/data/YamlProcessor.js +294 -0
- package/dist/processors/data/index.d.ts +49 -0
- package/dist/processors/data/index.js +76 -0
- package/dist/processors/document/ExcelProcessor.d.ts +238 -0
- package/dist/processors/document/ExcelProcessor.js +519 -0
- package/dist/processors/document/OpenDocumentProcessor.d.ts +69 -0
- package/dist/processors/document/OpenDocumentProcessor.js +210 -0
- package/dist/processors/document/RtfProcessor.d.ts +152 -0
- package/dist/processors/document/RtfProcessor.js +361 -0
- package/dist/processors/document/WordProcessor.d.ts +168 -0
- package/dist/processors/document/WordProcessor.js +353 -0
- package/dist/processors/document/index.d.ts +54 -0
- package/dist/processors/document/index.js +90 -0
- package/dist/processors/errors/FileErrorCode.d.ts +98 -0
- package/dist/processors/errors/FileErrorCode.js +255 -0
- package/dist/processors/errors/errorHelpers.d.ts +151 -0
- package/dist/processors/errors/errorHelpers.js +378 -0
- package/dist/processors/errors/errorSerializer.d.ts +139 -0
- package/dist/processors/errors/errorSerializer.js +507 -0
- package/dist/processors/errors/index.d.ts +46 -0
- package/dist/processors/errors/index.js +49 -0
- package/dist/processors/index.d.ts +76 -0
- package/dist/processors/index.js +112 -0
- package/dist/processors/integration/FileProcessorIntegration.d.ts +244 -0
- package/dist/processors/integration/FileProcessorIntegration.js +272 -0
- package/dist/processors/integration/index.d.ts +42 -0
- package/dist/processors/integration/index.js +44 -0
- package/dist/processors/markup/HtmlProcessor.d.ts +169 -0
- package/dist/processors/markup/HtmlProcessor.js +249 -0
- package/dist/processors/markup/MarkdownProcessor.d.ts +165 -0
- package/dist/processors/markup/MarkdownProcessor.js +244 -0
- package/dist/processors/markup/SvgProcessor.d.ts +156 -0
- package/dist/processors/markup/SvgProcessor.js +240 -0
- package/dist/processors/markup/TextProcessor.d.ts +135 -0
- package/dist/processors/markup/TextProcessor.js +188 -0
- package/dist/processors/markup/index.d.ts +66 -0
- package/dist/processors/markup/index.js +102 -0
- package/dist/processors/registry/ProcessorRegistry.d.ts +334 -0
- package/dist/processors/registry/ProcessorRegistry.js +608 -0
- package/dist/processors/registry/index.d.ts +12 -0
- package/dist/processors/registry/index.js +16 -0
- package/dist/processors/registry/types.d.ts +53 -0
- package/dist/processors/registry/types.js +10 -0
- package/dist/providers/amazonBedrock.d.ts +15 -2
- package/dist/providers/amazonBedrock.js +65 -8
- package/dist/providers/anthropic.d.ts +3 -3
- package/dist/providers/anthropic.js +10 -7
- package/dist/providers/googleAiStudio.d.ts +5 -5
- package/dist/providers/googleAiStudio.js +10 -7
- package/dist/providers/googleVertex.d.ts +16 -4
- package/dist/providers/googleVertex.js +72 -16
- package/dist/providers/litellm.d.ts +3 -3
- package/dist/providers/litellm.js +10 -10
- package/dist/providers/mistral.d.ts +3 -3
- package/dist/providers/mistral.js +7 -6
- package/dist/providers/ollama.d.ts +3 -4
- package/dist/providers/ollama.js +7 -8
- package/dist/providers/openAI.d.ts +14 -2
- package/dist/providers/openAI.js +60 -6
- package/dist/providers/openRouter.d.ts +2 -2
- package/dist/providers/openRouter.js +10 -6
- package/dist/rag/ChunkerFactory.d.ts +91 -0
- package/dist/rag/ChunkerFactory.js +320 -0
- package/dist/rag/ChunkerRegistry.d.ts +91 -0
- package/dist/rag/ChunkerRegistry.js +421 -0
- package/dist/rag/chunkers/BaseChunker.d.ts +53 -0
- package/dist/rag/chunkers/BaseChunker.js +143 -0
- package/dist/rag/chunkers/CharacterChunker.d.ts +18 -0
- package/dist/rag/chunkers/CharacterChunker.js +28 -0
- package/dist/rag/chunkers/HTMLChunker.d.ts +19 -0
- package/dist/rag/chunkers/HTMLChunker.js +38 -0
- package/dist/rag/chunkers/JSONChunker.d.ts +19 -0
- package/dist/rag/chunkers/JSONChunker.js +68 -0
- package/dist/rag/chunkers/LaTeXChunker.d.ts +15 -0
- package/dist/rag/chunkers/LaTeXChunker.js +63 -0
- package/dist/rag/chunkers/MarkdownChunker.d.ts +15 -0
- package/dist/rag/chunkers/MarkdownChunker.js +102 -0
- package/dist/rag/chunkers/RecursiveChunker.d.ts +27 -0
- package/dist/rag/chunkers/RecursiveChunker.js +139 -0
- package/dist/rag/chunkers/SemanticMarkdownChunker.d.ts +22 -0
- package/dist/rag/chunkers/SemanticMarkdownChunker.js +138 -0
- package/dist/rag/chunkers/SentenceChunker.d.ts +19 -0
- package/dist/rag/chunkers/SentenceChunker.js +66 -0
- package/dist/rag/chunkers/TokenChunker.d.ts +19 -0
- package/dist/rag/chunkers/TokenChunker.js +61 -0
- package/dist/rag/chunkers/index.d.ts +15 -0
- package/dist/rag/chunkers/index.js +15 -0
- package/dist/rag/chunking/characterChunker.d.ts +16 -0
- package/dist/rag/chunking/characterChunker.js +142 -0
- package/dist/rag/chunking/chunkerRegistry.d.ts +67 -0
- package/dist/rag/chunking/chunkerRegistry.js +194 -0
- package/dist/rag/chunking/htmlChunker.d.ts +34 -0
- package/dist/rag/chunking/htmlChunker.js +247 -0
- package/dist/rag/chunking/index.d.ts +15 -0
- package/dist/rag/chunking/index.js +17 -0
- package/dist/rag/chunking/jsonChunker.d.ts +20 -0
- package/dist/rag/chunking/jsonChunker.js +281 -0
- package/dist/rag/chunking/latexChunker.d.ts +26 -0
- package/dist/rag/chunking/latexChunker.js +251 -0
- package/dist/rag/chunking/markdownChunker.d.ts +19 -0
- package/dist/rag/chunking/markdownChunker.js +201 -0
- package/dist/rag/chunking/recursiveChunker.d.ts +19 -0
- package/dist/rag/chunking/recursiveChunker.js +148 -0
- package/dist/rag/chunking/semanticChunker.d.ts +41 -0
- package/dist/rag/chunking/semanticChunker.js +306 -0
- package/dist/rag/chunking/sentenceChunker.d.ts +25 -0
- package/dist/rag/chunking/sentenceChunker.js +230 -0
- package/dist/rag/chunking/tokenChunker.d.ts +36 -0
- package/dist/rag/chunking/tokenChunker.js +183 -0
- package/dist/rag/document/MDocument.d.ts +198 -0
- package/dist/rag/document/MDocument.js +392 -0
- package/dist/rag/document/index.d.ts +5 -0
- package/dist/rag/document/index.js +5 -0
- package/dist/rag/document/loaders.d.ts +201 -0
- package/dist/rag/document/loaders.js +500 -0
- package/dist/rag/errors/RAGError.d.ts +244 -0
- package/dist/rag/errors/RAGError.js +274 -0
- package/dist/rag/errors/index.d.ts +6 -0
- package/dist/rag/errors/index.js +6 -0
- package/dist/rag/graphRag/graphRAG.d.ts +115 -0
- package/dist/rag/graphRag/graphRAG.js +384 -0
- package/dist/rag/graphRag/index.d.ts +4 -0
- package/dist/rag/graphRag/index.js +4 -0
- package/dist/rag/index.d.ts +103 -0
- package/dist/rag/index.js +141 -0
- package/dist/rag/metadata/MetadataExtractorFactory.d.ts +157 -0
- package/dist/rag/metadata/MetadataExtractorFactory.js +418 -0
- package/dist/rag/metadata/MetadataExtractorRegistry.d.ts +99 -0
- package/dist/rag/metadata/MetadataExtractorRegistry.js +362 -0
- package/dist/rag/metadata/index.d.ts +6 -0
- package/dist/rag/metadata/index.js +9 -0
- package/dist/rag/metadata/metadataExtractor.d.ts +69 -0
- package/dist/rag/metadata/metadataExtractor.js +277 -0
- package/dist/rag/pipeline/RAGPipeline.d.ts +235 -0
- package/dist/rag/pipeline/RAGPipeline.js +401 -0
- package/dist/rag/pipeline/contextAssembly.d.ts +126 -0
- package/dist/rag/pipeline/contextAssembly.js +337 -0
- package/dist/rag/pipeline/index.d.ts +5 -0
- package/dist/rag/pipeline/index.js +5 -0
- package/dist/rag/ragIntegration.d.ts +38 -0
- package/dist/rag/ragIntegration.js +211 -0
- package/dist/rag/reranker/RerankerFactory.d.ts +184 -0
- package/dist/rag/reranker/RerankerFactory.js +430 -0
- package/dist/rag/reranker/RerankerRegistry.d.ts +119 -0
- package/dist/rag/reranker/RerankerRegistry.js +402 -0
- package/dist/rag/reranker/index.d.ts +6 -0
- package/dist/rag/reranker/index.js +9 -0
- package/dist/rag/reranker/reranker.d.ts +71 -0
- package/dist/rag/reranker/reranker.js +277 -0
- package/dist/rag/resilience/CircuitBreaker.d.ts +215 -0
- package/dist/rag/resilience/CircuitBreaker.js +431 -0
- package/dist/rag/resilience/RetryHandler.d.ts +115 -0
- package/dist/rag/resilience/RetryHandler.js +300 -0
- package/dist/rag/resilience/index.d.ts +7 -0
- package/dist/rag/resilience/index.js +7 -0
- package/dist/rag/retrieval/hybridSearch.d.ts +94 -0
- package/dist/rag/retrieval/hybridSearch.js +313 -0
- package/dist/rag/retrieval/index.d.ts +5 -0
- package/dist/rag/retrieval/index.js +5 -0
- package/dist/rag/retrieval/vectorQueryTool.d.ts +93 -0
- package/dist/rag/retrieval/vectorQueryTool.js +289 -0
- package/dist/rag/types.d.ts +768 -0
- package/dist/rag/types.js +8 -0
- package/dist/server/index.d.ts +15 -11
- package/dist/server/index.js +55 -51
- package/dist/server/utils/validation.d.ts +8 -8
- package/dist/types/common.d.ts +0 -1
- package/dist/types/fileTypes.d.ts +1 -1
- package/dist/types/generateTypes.d.ts +42 -8
- package/dist/types/generateTypes.js +1 -1
- package/dist/types/index.d.ts +25 -24
- package/dist/types/index.js +21 -20
- package/dist/types/modelTypes.d.ts +10 -10
- package/dist/types/pptTypes.d.ts +14 -2
- package/dist/types/pptTypes.js +16 -0
- package/dist/types/streamTypes.d.ts +28 -8
- package/dist/types/streamTypes.js +1 -1
- package/dist/utils/async/delay.d.ts +40 -0
- package/dist/utils/async/delay.js +42 -0
- package/dist/utils/async/index.d.ts +23 -0
- package/dist/utils/async/index.js +23 -0
- package/dist/utils/async/retry.d.ts +141 -0
- package/dist/utils/async/retry.js +171 -0
- package/dist/utils/async/withTimeout.d.ts +73 -0
- package/dist/utils/async/withTimeout.js +96 -0
- package/dist/utils/fileDetector.d.ts +7 -1
- package/dist/utils/fileDetector.js +91 -18
- package/dist/utils/json/extract.d.ts +103 -0
- package/dist/utils/json/extract.js +248 -0
- package/dist/utils/json/index.d.ts +36 -0
- package/dist/utils/json/index.js +36 -0
- package/dist/utils/json/safeParse.d.ts +137 -0
- package/dist/utils/json/safeParse.js +190 -0
- package/dist/utils/messageBuilder.d.ts +2 -2
- package/dist/utils/messageBuilder.js +15 -7
- package/dist/utils/modelRouter.d.ts +4 -4
- package/dist/utils/modelRouter.js +4 -4
- package/dist/utils/sanitizers/filename.d.ts +137 -0
- package/dist/utils/sanitizers/filename.js +365 -0
- package/dist/utils/sanitizers/html.d.ts +170 -0
- package/dist/utils/sanitizers/html.js +325 -0
- package/dist/utils/sanitizers/index.d.ts +26 -0
- package/dist/utils/sanitizers/index.js +29 -0
- package/dist/utils/sanitizers/svg.d.ts +81 -0
- package/dist/utils/sanitizers/svg.js +482 -0
- package/package.json +2 -2
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reranker Registry
|
|
3
|
+
*
|
|
4
|
+
* Centralized registry for all reranker implementations with metadata
|
|
5
|
+
* and discovery capabilities. Follows the BaseRegistry pattern.
|
|
6
|
+
*/
|
|
7
|
+
import { BaseRegistry } from "../../core/infrastructure/index.js";
|
|
8
|
+
import type { Reranker, RerankerConfig, RerankerMetadata, RerankerType } from "./RerankerFactory.js";
|
|
9
|
+
/**
|
|
10
|
+
* Reranker Registry
|
|
11
|
+
*
|
|
12
|
+
* Manages registration and discovery of all reranker implementations.
|
|
13
|
+
* Extends BaseRegistry for consistent lifecycle management.
|
|
14
|
+
*/
|
|
15
|
+
export declare class RerankerRegistry extends BaseRegistry<Reranker, RerankerMetadata> {
|
|
16
|
+
private static instance;
|
|
17
|
+
private aliasMap;
|
|
18
|
+
private constructor();
|
|
19
|
+
/**
|
|
20
|
+
* Get singleton instance
|
|
21
|
+
*/
|
|
22
|
+
static getInstance(): RerankerRegistry;
|
|
23
|
+
/**
|
|
24
|
+
* Reset singleton (for testing)
|
|
25
|
+
*/
|
|
26
|
+
static resetInstance(): void;
|
|
27
|
+
/**
|
|
28
|
+
* Register all built-in rerankers
|
|
29
|
+
*/
|
|
30
|
+
protected registerAll(): Promise<void>;
|
|
31
|
+
/**
|
|
32
|
+
* Create LLM reranker instance wrapper
|
|
33
|
+
*/
|
|
34
|
+
private createLLMRerankerInstance;
|
|
35
|
+
/**
|
|
36
|
+
* Create cross-encoder instance wrapper
|
|
37
|
+
*/
|
|
38
|
+
private createCrossEncoderInstance;
|
|
39
|
+
/**
|
|
40
|
+
* Create Cohere instance wrapper
|
|
41
|
+
*/
|
|
42
|
+
private createCohereInstance;
|
|
43
|
+
/**
|
|
44
|
+
* Create simple reranker instance wrapper
|
|
45
|
+
*/
|
|
46
|
+
private createSimpleRerankerInstance;
|
|
47
|
+
/**
|
|
48
|
+
* Create batch reranker instance wrapper
|
|
49
|
+
*/
|
|
50
|
+
private createBatchRerankerInstance;
|
|
51
|
+
/**
|
|
52
|
+
* Register a reranker with aliases
|
|
53
|
+
*/
|
|
54
|
+
registerReranker(type: RerankerType, factory: () => Promise<Reranker>, metadata: RerankerMetadata): void;
|
|
55
|
+
/**
|
|
56
|
+
* Resolve type from alias
|
|
57
|
+
*/
|
|
58
|
+
resolveType(nameOrAlias: string): RerankerType;
|
|
59
|
+
/**
|
|
60
|
+
* Get a reranker by type or alias
|
|
61
|
+
*/
|
|
62
|
+
getReranker(typeOrAlias: string): Promise<Reranker>;
|
|
63
|
+
/**
|
|
64
|
+
* Get list of available reranker types
|
|
65
|
+
*/
|
|
66
|
+
getAvailableRerankers(): Promise<RerankerType[]>;
|
|
67
|
+
/**
|
|
68
|
+
* Get metadata for a specific reranker
|
|
69
|
+
*/
|
|
70
|
+
getRerankerMetadata(typeOrAlias: string): RerankerMetadata | undefined;
|
|
71
|
+
/**
|
|
72
|
+
* Get all aliases for a type
|
|
73
|
+
*/
|
|
74
|
+
getAliasesForType(type: RerankerType): string[];
|
|
75
|
+
/**
|
|
76
|
+
* Get all registered aliases
|
|
77
|
+
*/
|
|
78
|
+
getAllAliases(): Map<string, RerankerType>;
|
|
79
|
+
/**
|
|
80
|
+
* Check if a type or alias exists
|
|
81
|
+
*/
|
|
82
|
+
hasReranker(typeOrAlias: string): boolean;
|
|
83
|
+
/**
|
|
84
|
+
* Get rerankers by use case
|
|
85
|
+
*/
|
|
86
|
+
getRerankersByUseCase(useCase: string): RerankerType[];
|
|
87
|
+
/**
|
|
88
|
+
* Get default configuration for a reranker
|
|
89
|
+
*/
|
|
90
|
+
getDefaultConfig(typeOrAlias: string): Partial<RerankerConfig> | undefined;
|
|
91
|
+
/**
|
|
92
|
+
* Get rerankers that don't require external APIs
|
|
93
|
+
*/
|
|
94
|
+
getLocalRerankers(): RerankerType[];
|
|
95
|
+
/**
|
|
96
|
+
* Get rerankers that don't require AI models
|
|
97
|
+
*/
|
|
98
|
+
getModelFreeRerankers(): RerankerType[];
|
|
99
|
+
/**
|
|
100
|
+
* Clear the registry (also clears aliases)
|
|
101
|
+
*/
|
|
102
|
+
clear(): void;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Global reranker registry singleton
|
|
106
|
+
*/
|
|
107
|
+
export declare const rerankerRegistry: RerankerRegistry;
|
|
108
|
+
/**
|
|
109
|
+
* Convenience function to get available rerankers
|
|
110
|
+
*/
|
|
111
|
+
export declare function getAvailableRerankers(): Promise<RerankerType[]>;
|
|
112
|
+
/**
|
|
113
|
+
* Convenience function to get reranker by type
|
|
114
|
+
*/
|
|
115
|
+
export declare function getReranker(typeOrAlias: string): Promise<Reranker>;
|
|
116
|
+
/**
|
|
117
|
+
* Convenience function to get reranker metadata
|
|
118
|
+
*/
|
|
119
|
+
export declare function getRegisteredRerankerMetadata(typeOrAlias: string): RerankerMetadata | undefined;
|
|
@@ -0,0 +1,403 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reranker Registry
|
|
3
|
+
*
|
|
4
|
+
* Centralized registry for all reranker implementations with metadata
|
|
5
|
+
* and discovery capabilities. Follows the BaseRegistry pattern.
|
|
6
|
+
*/
|
|
7
|
+
import { BaseRegistry } from "../../core/infrastructure/index.js";
|
|
8
|
+
import { logger } from "../../utils/logger.js";
|
|
9
|
+
import { RAGErrorCodes, RerankerError } from "../errors/RAGError.js";
|
|
10
|
+
/**
|
|
11
|
+
* Default reranker metadata entries
|
|
12
|
+
*/
|
|
13
|
+
const DEFAULT_RERANKER_METADATA = {
|
|
14
|
+
llm: {
|
|
15
|
+
description: "LLM-powered semantic reranking with multi-factor scoring",
|
|
16
|
+
defaultConfig: {
|
|
17
|
+
topK: 3,
|
|
18
|
+
weights: { semantic: 0.4, vector: 0.4, position: 0.2 },
|
|
19
|
+
},
|
|
20
|
+
supportedOptions: ["model", "provider", "topK", "weights"],
|
|
21
|
+
useCases: [
|
|
22
|
+
"High-quality semantic reranking",
|
|
23
|
+
"Complex query understanding",
|
|
24
|
+
"Context-aware scoring",
|
|
25
|
+
],
|
|
26
|
+
aliases: ["semantic", "ai", "model-based"],
|
|
27
|
+
requiresModel: true,
|
|
28
|
+
requiresExternalAPI: false,
|
|
29
|
+
},
|
|
30
|
+
"cross-encoder": {
|
|
31
|
+
description: "Cross-encoder model for query-document relevance scoring",
|
|
32
|
+
defaultConfig: {
|
|
33
|
+
topK: 3,
|
|
34
|
+
model: "ms-marco-MiniLM-L-6-v2",
|
|
35
|
+
},
|
|
36
|
+
supportedOptions: ["model", "topK"],
|
|
37
|
+
useCases: [
|
|
38
|
+
"High-precision reranking",
|
|
39
|
+
"Search result refinement",
|
|
40
|
+
"Academic/research applications",
|
|
41
|
+
],
|
|
42
|
+
aliases: ["cross", "encoder", "bi-encoder"],
|
|
43
|
+
requiresModel: true,
|
|
44
|
+
requiresExternalAPI: false,
|
|
45
|
+
},
|
|
46
|
+
cohere: {
|
|
47
|
+
description: "Cohere Rerank API for production-grade relevance scoring",
|
|
48
|
+
defaultConfig: {
|
|
49
|
+
topK: 3,
|
|
50
|
+
model: "rerank-v3.5",
|
|
51
|
+
},
|
|
52
|
+
supportedOptions: ["model", "topK", "apiKey"],
|
|
53
|
+
useCases: [
|
|
54
|
+
"Production search systems",
|
|
55
|
+
"Enterprise applications",
|
|
56
|
+
"High-volume reranking",
|
|
57
|
+
],
|
|
58
|
+
aliases: ["cohere-rerank", "cohere-api"],
|
|
59
|
+
requiresModel: false,
|
|
60
|
+
requiresExternalAPI: true,
|
|
61
|
+
},
|
|
62
|
+
simple: {
|
|
63
|
+
description: "Position and vector score-based reranking (no LLM required)",
|
|
64
|
+
defaultConfig: {
|
|
65
|
+
topK: 3,
|
|
66
|
+
weights: { vector: 0.8, position: 0.2 },
|
|
67
|
+
},
|
|
68
|
+
supportedOptions: ["topK", "weights"],
|
|
69
|
+
useCases: [
|
|
70
|
+
"Fast reranking",
|
|
71
|
+
"Low-latency requirements",
|
|
72
|
+
"When LLM is unavailable",
|
|
73
|
+
],
|
|
74
|
+
aliases: ["fast", "basic", "position-based"],
|
|
75
|
+
requiresModel: false,
|
|
76
|
+
requiresExternalAPI: false,
|
|
77
|
+
},
|
|
78
|
+
batch: {
|
|
79
|
+
description: "Batch LLM reranking for efficient multi-document scoring",
|
|
80
|
+
defaultConfig: {
|
|
81
|
+
topK: 3,
|
|
82
|
+
weights: { semantic: 0.4, vector: 0.4, position: 0.2 },
|
|
83
|
+
},
|
|
84
|
+
supportedOptions: ["model", "provider", "topK", "weights"],
|
|
85
|
+
useCases: [
|
|
86
|
+
"Large result sets",
|
|
87
|
+
"Cost-efficient LLM usage",
|
|
88
|
+
"Batch processing pipelines",
|
|
89
|
+
],
|
|
90
|
+
aliases: ["batch-llm", "efficient", "bulk"],
|
|
91
|
+
requiresModel: true,
|
|
92
|
+
requiresExternalAPI: false,
|
|
93
|
+
},
|
|
94
|
+
};
|
|
95
|
+
/**
|
|
96
|
+
* Reranker Registry
|
|
97
|
+
*
|
|
98
|
+
* Manages registration and discovery of all reranker implementations.
|
|
99
|
+
* Extends BaseRegistry for consistent lifecycle management.
|
|
100
|
+
*/
|
|
101
|
+
export class RerankerRegistry extends BaseRegistry {
|
|
102
|
+
static instance = null;
|
|
103
|
+
aliasMap = new Map();
|
|
104
|
+
constructor() {
|
|
105
|
+
super();
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Get singleton instance
|
|
109
|
+
*/
|
|
110
|
+
static getInstance() {
|
|
111
|
+
if (!RerankerRegistry.instance) {
|
|
112
|
+
RerankerRegistry.instance = new RerankerRegistry();
|
|
113
|
+
}
|
|
114
|
+
return RerankerRegistry.instance;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Reset singleton (for testing)
|
|
118
|
+
*/
|
|
119
|
+
static resetInstance() {
|
|
120
|
+
if (RerankerRegistry.instance) {
|
|
121
|
+
RerankerRegistry.instance.clear();
|
|
122
|
+
RerankerRegistry.instance = null;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Register all built-in rerankers
|
|
127
|
+
*/
|
|
128
|
+
async registerAll() {
|
|
129
|
+
// Import reranker functions
|
|
130
|
+
const rerankerModule = await import("./reranker.js");
|
|
131
|
+
// Register LLM reranker
|
|
132
|
+
this.registerReranker("llm", async () => this.createLLMRerankerInstance(rerankerModule.rerank), DEFAULT_RERANKER_METADATA.llm);
|
|
133
|
+
// Register cross-encoder reranker
|
|
134
|
+
this.registerReranker("cross-encoder", async () => this.createCrossEncoderInstance(rerankerModule.CrossEncoderReranker), DEFAULT_RERANKER_METADATA["cross-encoder"]);
|
|
135
|
+
// Register Cohere reranker
|
|
136
|
+
this.registerReranker("cohere", async () => this.createCohereInstance(rerankerModule.CohereRelevanceScorer), DEFAULT_RERANKER_METADATA.cohere);
|
|
137
|
+
// Register simple reranker
|
|
138
|
+
this.registerReranker("simple", async () => this.createSimpleRerankerInstance(rerankerModule.simpleRerank), DEFAULT_RERANKER_METADATA.simple);
|
|
139
|
+
// Register batch reranker
|
|
140
|
+
this.registerReranker("batch", async () => this.createBatchRerankerInstance(rerankerModule.batchRerank), DEFAULT_RERANKER_METADATA.batch);
|
|
141
|
+
logger.debug(`[RerankerRegistry] Registered ${this.items.size} reranker types`);
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Create LLM reranker instance wrapper
|
|
145
|
+
*/
|
|
146
|
+
createLLMRerankerInstance(_rerankFn) {
|
|
147
|
+
return {
|
|
148
|
+
type: "llm",
|
|
149
|
+
async rerank() {
|
|
150
|
+
throw new RerankerError("LLM reranker requires model provider. Use RerankerFactory.createReranker() instead.", {
|
|
151
|
+
rerankerType: "llm",
|
|
152
|
+
});
|
|
153
|
+
},
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Create cross-encoder instance wrapper
|
|
158
|
+
*/
|
|
159
|
+
createCrossEncoderInstance(CrossEncoderClass) {
|
|
160
|
+
const encoder = new CrossEncoderClass();
|
|
161
|
+
return {
|
|
162
|
+
type: "cross-encoder",
|
|
163
|
+
async rerank(results, query, options) {
|
|
164
|
+
const documents = results.map((r) => r.text || r.metadata?.text || "");
|
|
165
|
+
const scores = await encoder.rerank(query, documents);
|
|
166
|
+
const topK = options?.topK ?? 3;
|
|
167
|
+
return scores
|
|
168
|
+
.map((s) => ({
|
|
169
|
+
result: results[s.index],
|
|
170
|
+
score: s.score,
|
|
171
|
+
details: {
|
|
172
|
+
semantic: s.score,
|
|
173
|
+
vector: results[s.index].score ?? 0,
|
|
174
|
+
position: 1 - s.index / results.length,
|
|
175
|
+
},
|
|
176
|
+
}))
|
|
177
|
+
.sort((a, b) => b.score - a.score)
|
|
178
|
+
.slice(0, topK);
|
|
179
|
+
},
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Create Cohere instance wrapper
|
|
184
|
+
*/
|
|
185
|
+
createCohereInstance(CohereClass) {
|
|
186
|
+
const scorer = new CohereClass();
|
|
187
|
+
return {
|
|
188
|
+
type: "cohere",
|
|
189
|
+
async rerank(results, query, options) {
|
|
190
|
+
const documents = results.map((r) => r.text || r.metadata?.text || "");
|
|
191
|
+
const scores = await scorer.score(query, documents);
|
|
192
|
+
const topK = options?.topK ?? 3;
|
|
193
|
+
return scores
|
|
194
|
+
.map((s) => ({
|
|
195
|
+
result: results[s.index],
|
|
196
|
+
score: s.score,
|
|
197
|
+
details: {
|
|
198
|
+
semantic: s.score,
|
|
199
|
+
vector: results[s.index].score ?? 0,
|
|
200
|
+
position: 1 - s.index / results.length,
|
|
201
|
+
},
|
|
202
|
+
}))
|
|
203
|
+
.sort((a, b) => b.score - a.score)
|
|
204
|
+
.slice(0, topK);
|
|
205
|
+
},
|
|
206
|
+
};
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Create simple reranker instance wrapper
|
|
210
|
+
*/
|
|
211
|
+
createSimpleRerankerInstance(simpleRerankFn) {
|
|
212
|
+
return {
|
|
213
|
+
type: "simple",
|
|
214
|
+
async rerank(results, _query, options) {
|
|
215
|
+
return simpleRerankFn(results, {
|
|
216
|
+
topK: options?.topK,
|
|
217
|
+
vectorWeight: options?.weights?.vector,
|
|
218
|
+
positionWeight: options?.weights?.position,
|
|
219
|
+
});
|
|
220
|
+
},
|
|
221
|
+
};
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Create batch reranker instance wrapper
|
|
225
|
+
*/
|
|
226
|
+
createBatchRerankerInstance(_batchRerankFn) {
|
|
227
|
+
return {
|
|
228
|
+
type: "batch",
|
|
229
|
+
async rerank() {
|
|
230
|
+
throw new RerankerError("Batch reranker requires model provider. Use RerankerFactory.createReranker() instead.", {
|
|
231
|
+
rerankerType: "batch",
|
|
232
|
+
});
|
|
233
|
+
},
|
|
234
|
+
};
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Register a reranker with aliases
|
|
238
|
+
*/
|
|
239
|
+
registerReranker(type, factory, metadata) {
|
|
240
|
+
this.register(type, factory, metadata);
|
|
241
|
+
// Register aliases
|
|
242
|
+
for (const alias of metadata.aliases) {
|
|
243
|
+
this.aliasMap.set(alias.toLowerCase(), type);
|
|
244
|
+
logger.debug(`[RerankerRegistry] Registered alias '${alias}' -> '${type}'`);
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Resolve type from alias
|
|
249
|
+
*/
|
|
250
|
+
resolveType(nameOrAlias) {
|
|
251
|
+
const lower = nameOrAlias.toLowerCase();
|
|
252
|
+
// Check if it's a direct type
|
|
253
|
+
if (this.items.has(lower)) {
|
|
254
|
+
return lower;
|
|
255
|
+
}
|
|
256
|
+
// Check aliases
|
|
257
|
+
const resolved = this.aliasMap.get(lower);
|
|
258
|
+
if (resolved) {
|
|
259
|
+
return resolved;
|
|
260
|
+
}
|
|
261
|
+
throw new RerankerError(`Unknown reranker type: '${nameOrAlias}'. Available types: ${this.list()
|
|
262
|
+
.map((item) => item.id)
|
|
263
|
+
.join(", ")}`, {
|
|
264
|
+
code: RAGErrorCodes.RERANKER_NOT_FOUND,
|
|
265
|
+
rerankerType: nameOrAlias,
|
|
266
|
+
details: {
|
|
267
|
+
requestedType: nameOrAlias,
|
|
268
|
+
availableTypes: this.list().map((item) => item.id),
|
|
269
|
+
},
|
|
270
|
+
});
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* Get a reranker by type or alias
|
|
274
|
+
*/
|
|
275
|
+
async getReranker(typeOrAlias) {
|
|
276
|
+
await this.ensureInitialized();
|
|
277
|
+
const type = this.resolveType(typeOrAlias);
|
|
278
|
+
const reranker = await this.get(type);
|
|
279
|
+
if (!reranker) {
|
|
280
|
+
throw new RerankerError(`Reranker not found: ${type}`, {
|
|
281
|
+
code: RAGErrorCodes.RERANKER_NOT_FOUND,
|
|
282
|
+
rerankerType: type,
|
|
283
|
+
details: { type },
|
|
284
|
+
});
|
|
285
|
+
}
|
|
286
|
+
return reranker;
|
|
287
|
+
}
|
|
288
|
+
/**
|
|
289
|
+
* Get list of available reranker types
|
|
290
|
+
*/
|
|
291
|
+
async getAvailableRerankers() {
|
|
292
|
+
await this.ensureInitialized();
|
|
293
|
+
return this.list().map((item) => item.id);
|
|
294
|
+
}
|
|
295
|
+
/**
|
|
296
|
+
* Get metadata for a specific reranker
|
|
297
|
+
*/
|
|
298
|
+
getRerankerMetadata(typeOrAlias) {
|
|
299
|
+
const type = this.resolveType(typeOrAlias);
|
|
300
|
+
const entry = this.list().find((item) => item.id === type);
|
|
301
|
+
return entry?.metadata;
|
|
302
|
+
}
|
|
303
|
+
/**
|
|
304
|
+
* Get all aliases for a type
|
|
305
|
+
*/
|
|
306
|
+
getAliasesForType(type) {
|
|
307
|
+
const metadata = DEFAULT_RERANKER_METADATA[type];
|
|
308
|
+
return metadata?.aliases ?? [];
|
|
309
|
+
}
|
|
310
|
+
/**
|
|
311
|
+
* Get all registered aliases
|
|
312
|
+
*/
|
|
313
|
+
getAllAliases() {
|
|
314
|
+
return new Map(this.aliasMap);
|
|
315
|
+
}
|
|
316
|
+
/**
|
|
317
|
+
* Check if a type or alias exists
|
|
318
|
+
*/
|
|
319
|
+
hasReranker(typeOrAlias) {
|
|
320
|
+
try {
|
|
321
|
+
this.resolveType(typeOrAlias);
|
|
322
|
+
return true;
|
|
323
|
+
}
|
|
324
|
+
catch {
|
|
325
|
+
return false;
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
/**
|
|
329
|
+
* Get rerankers by use case
|
|
330
|
+
*/
|
|
331
|
+
getRerankersByUseCase(useCase) {
|
|
332
|
+
const matches = [];
|
|
333
|
+
const useCaseLower = useCase.toLowerCase();
|
|
334
|
+
for (const [type, metadata] of Object.entries(DEFAULT_RERANKER_METADATA)) {
|
|
335
|
+
const hasMatchingUseCase = metadata.useCases.some((uc) => uc.toLowerCase().includes(useCaseLower));
|
|
336
|
+
if (hasMatchingUseCase) {
|
|
337
|
+
matches.push(type);
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
return matches;
|
|
341
|
+
}
|
|
342
|
+
/**
|
|
343
|
+
* Get default configuration for a reranker
|
|
344
|
+
*/
|
|
345
|
+
getDefaultConfig(typeOrAlias) {
|
|
346
|
+
const metadata = this.getRerankerMetadata(typeOrAlias);
|
|
347
|
+
return metadata?.defaultConfig;
|
|
348
|
+
}
|
|
349
|
+
/**
|
|
350
|
+
* Get rerankers that don't require external APIs
|
|
351
|
+
*/
|
|
352
|
+
getLocalRerankers() {
|
|
353
|
+
const matches = [];
|
|
354
|
+
for (const [type, metadata] of Object.entries(DEFAULT_RERANKER_METADATA)) {
|
|
355
|
+
if (!metadata.requiresExternalAPI) {
|
|
356
|
+
matches.push(type);
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
return matches;
|
|
360
|
+
}
|
|
361
|
+
/**
|
|
362
|
+
* Get rerankers that don't require AI models
|
|
363
|
+
*/
|
|
364
|
+
getModelFreeRerankers() {
|
|
365
|
+
const matches = [];
|
|
366
|
+
for (const [type, metadata] of Object.entries(DEFAULT_RERANKER_METADATA)) {
|
|
367
|
+
if (!metadata.requiresModel) {
|
|
368
|
+
matches.push(type);
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
return matches;
|
|
372
|
+
}
|
|
373
|
+
/**
|
|
374
|
+
* Clear the registry (also clears aliases)
|
|
375
|
+
*/
|
|
376
|
+
clear() {
|
|
377
|
+
super.clear();
|
|
378
|
+
this.aliasMap.clear();
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
/**
|
|
382
|
+
* Global reranker registry singleton
|
|
383
|
+
*/
|
|
384
|
+
export const rerankerRegistry = RerankerRegistry.getInstance();
|
|
385
|
+
/**
|
|
386
|
+
* Convenience function to get available rerankers
|
|
387
|
+
*/
|
|
388
|
+
export async function getAvailableRerankers() {
|
|
389
|
+
return rerankerRegistry.getAvailableRerankers();
|
|
390
|
+
}
|
|
391
|
+
/**
|
|
392
|
+
* Convenience function to get reranker by type
|
|
393
|
+
*/
|
|
394
|
+
export async function getReranker(typeOrAlias) {
|
|
395
|
+
return rerankerRegistry.getReranker(typeOrAlias);
|
|
396
|
+
}
|
|
397
|
+
/**
|
|
398
|
+
* Convenience function to get reranker metadata
|
|
399
|
+
*/
|
|
400
|
+
export function getRegisteredRerankerMetadata(typeOrAlias) {
|
|
401
|
+
return rerankerRegistry.getRerankerMetadata(typeOrAlias);
|
|
402
|
+
}
|
|
403
|
+
//# sourceMappingURL=RerankerRegistry.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reranker Module Exports
|
|
3
|
+
*/
|
|
4
|
+
export { createReranker, getAvailableRerankerTypes, getRerankerDefaultConfig, getRerankerMetadata, type Reranker, type RerankerConfig, RerankerFactory, type RerankerMetadata, type RerankerType, rerankerFactory, } from "./RerankerFactory.js";
|
|
5
|
+
export { getAvailableRerankers, getRegisteredRerankerMetadata, getReranker, RerankerRegistry, rerankerRegistry, } from "./RerankerRegistry.js";
|
|
6
|
+
export { batchRerank, CohereRelevanceScorer, CrossEncoderReranker, rerank, simpleRerank, } from "./reranker.js";
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reranker Module Exports
|
|
3
|
+
*/
|
|
4
|
+
// Factory pattern exports
|
|
5
|
+
export { createReranker, getAvailableRerankerTypes, getRerankerDefaultConfig, getRerankerMetadata, RerankerFactory, rerankerFactory, } from "./RerankerFactory.js";
|
|
6
|
+
// Registry pattern exports
|
|
7
|
+
export { getAvailableRerankers, getRegisteredRerankerMetadata, getReranker, RerankerRegistry, rerankerRegistry, } from "./RerankerRegistry.js";
|
|
8
|
+
// Core reranker functions
|
|
9
|
+
export { batchRerank, CohereRelevanceScorer, CrossEncoderReranker, rerank, simpleRerank, } from "./reranker.js";
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reranker Implementation
|
|
3
|
+
*
|
|
4
|
+
* Multi-factor scoring system for reranking retrieval results.
|
|
5
|
+
* Combines semantic relevance (LLM-based), vector similarity, and position.
|
|
6
|
+
*/
|
|
7
|
+
import type { VectorQueryResult, RerankerOptions, RerankResult } from "../types.js";
|
|
8
|
+
import type { AIProvider } from "../../types/providers.js";
|
|
9
|
+
/**
|
|
10
|
+
* Rerank vector search results using multi-factor scoring
|
|
11
|
+
*
|
|
12
|
+
* Combines three scoring factors:
|
|
13
|
+
* 1. Semantic score: LLM-based relevance assessment
|
|
14
|
+
* 2. Vector score: Original similarity score from vector search
|
|
15
|
+
* 3. Position score: Inverse of original ranking position
|
|
16
|
+
*
|
|
17
|
+
* @param results - Vector search results to rerank
|
|
18
|
+
* @param query - Original search query
|
|
19
|
+
* @param model - Language model for semantic scoring
|
|
20
|
+
* @param options - Reranking options
|
|
21
|
+
* @returns Reranked results with detailed scores
|
|
22
|
+
*/
|
|
23
|
+
export declare function rerank(results: VectorQueryResult[], query: string, model: AIProvider, options?: RerankerOptions): Promise<RerankResult[]>;
|
|
24
|
+
/**
|
|
25
|
+
* Batch rerank with optimized LLM calls
|
|
26
|
+
* Scores multiple documents in a single prompt for efficiency
|
|
27
|
+
*
|
|
28
|
+
* @param results - Results to rerank
|
|
29
|
+
* @param query - Search query
|
|
30
|
+
* @param model - Language model
|
|
31
|
+
* @param options - Reranking options
|
|
32
|
+
* @returns Reranked results
|
|
33
|
+
*/
|
|
34
|
+
export declare function batchRerank(results: VectorQueryResult[], query: string, model: AIProvider, options?: RerankerOptions): Promise<RerankResult[]>;
|
|
35
|
+
/**
|
|
36
|
+
* Simple position-based reranker (no LLM required)
|
|
37
|
+
* Uses only vector score and position
|
|
38
|
+
*
|
|
39
|
+
* @param results - Results to rerank
|
|
40
|
+
* @param options - Reranking options
|
|
41
|
+
* @returns Reranked results
|
|
42
|
+
*/
|
|
43
|
+
export declare function simpleRerank(results: VectorQueryResult[], options?: {
|
|
44
|
+
topK?: number;
|
|
45
|
+
vectorWeight?: number;
|
|
46
|
+
positionWeight?: number;
|
|
47
|
+
}): RerankResult[];
|
|
48
|
+
/**
|
|
49
|
+
* Cohere-style relevance scorer interface
|
|
50
|
+
* Placeholder for integration with Cohere's rerank API
|
|
51
|
+
*/
|
|
52
|
+
export declare class CohereRelevanceScorer {
|
|
53
|
+
private modelName;
|
|
54
|
+
constructor(modelName?: string);
|
|
55
|
+
score(_query: string, _documents: string[]): Promise<Array<{
|
|
56
|
+
index: number;
|
|
57
|
+
score: number;
|
|
58
|
+
}>>;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Cross-encoder style reranker interface
|
|
62
|
+
* Placeholder for integration with cross-encoder models
|
|
63
|
+
*/
|
|
64
|
+
export declare class CrossEncoderReranker {
|
|
65
|
+
private modelName;
|
|
66
|
+
constructor(modelName?: string);
|
|
67
|
+
rerank(_query: string, _documents: string[]): Promise<Array<{
|
|
68
|
+
index: number;
|
|
69
|
+
score: number;
|
|
70
|
+
}>>;
|
|
71
|
+
}
|