@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,301 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RAG Retry Handler
|
|
3
|
+
*
|
|
4
|
+
* Provides retry logic with exponential backoff and jitter
|
|
5
|
+
* specifically designed for RAG operations including embeddings,
|
|
6
|
+
* vector queries, and LLM-based extraction.
|
|
7
|
+
*/
|
|
8
|
+
import { withRetry, } from "../../core/infrastructure/index.js";
|
|
9
|
+
import { logger } from "../../utils/logger.js";
|
|
10
|
+
import { EmbeddingError, isRetryableRAGError, MetadataExtractionError, RAGError, RAGErrorCodes, VectorQueryError, } from "../errors/RAGError.js";
|
|
11
|
+
/**
|
|
12
|
+
* Default retry configuration
|
|
13
|
+
*/
|
|
14
|
+
export const DEFAULT_RAG_RETRY_CONFIG = {
|
|
15
|
+
maxRetries: 3,
|
|
16
|
+
initialDelay: 1000,
|
|
17
|
+
maxDelay: 30000,
|
|
18
|
+
backoffMultiplier: 2,
|
|
19
|
+
jitter: true,
|
|
20
|
+
retryableErrorCodes: [
|
|
21
|
+
RAGErrorCodes.EMBEDDING_RATE_LIMIT,
|
|
22
|
+
RAGErrorCodes.VECTOR_QUERY_TIMEOUT,
|
|
23
|
+
RAGErrorCodes.VECTOR_STORE_CONNECTION_ERROR,
|
|
24
|
+
RAGErrorCodes.METADATA_EXTRACTION_TIMEOUT,
|
|
25
|
+
RAGErrorCodes.RERANKER_API_ERROR,
|
|
26
|
+
RAGErrorCodes.OPERATION_TIMEOUT,
|
|
27
|
+
],
|
|
28
|
+
retryableStatusCodes: [408, 429, 500, 502, 503, 504],
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* Calculate delay with exponential backoff
|
|
32
|
+
*/
|
|
33
|
+
function calculateDelay(attempt, config) {
|
|
34
|
+
const exponentialDelay = config.initialDelay * config.backoffMultiplier ** attempt;
|
|
35
|
+
const delay = Math.min(exponentialDelay, config.maxDelay);
|
|
36
|
+
if (config.jitter) {
|
|
37
|
+
// Add random jitter between 0 and 50% of the delay
|
|
38
|
+
const jitterFactor = 0.5 * Math.random();
|
|
39
|
+
return delay * (1 + jitterFactor);
|
|
40
|
+
}
|
|
41
|
+
return delay;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Sleep utility
|
|
45
|
+
*/
|
|
46
|
+
function sleep(ms) {
|
|
47
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Check if an error is retryable based on configuration
|
|
51
|
+
*/
|
|
52
|
+
export function isRetryable(error, config = DEFAULT_RAG_RETRY_CONFIG) {
|
|
53
|
+
// Use custom shouldRetry if provided
|
|
54
|
+
if (config.shouldRetry) {
|
|
55
|
+
return config.shouldRetry(error);
|
|
56
|
+
}
|
|
57
|
+
// Check if it's a RAG error with retryable flag
|
|
58
|
+
if (isRetryableRAGError(error)) {
|
|
59
|
+
return true;
|
|
60
|
+
}
|
|
61
|
+
// Check error code
|
|
62
|
+
if (error instanceof RAGError && config.retryableErrorCodes) {
|
|
63
|
+
if (config.retryableErrorCodes.includes(error.code)) {
|
|
64
|
+
return true;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
// Check for common network/timeout errors
|
|
68
|
+
if (error && typeof error === "object") {
|
|
69
|
+
const errorObj = error;
|
|
70
|
+
// Timeout errors
|
|
71
|
+
if (errorObj.name === "TimeoutError" ||
|
|
72
|
+
errorObj.code === "TIMEOUT" ||
|
|
73
|
+
errorObj.code === "ETIMEDOUT" ||
|
|
74
|
+
errorObj.name === "AbortError") {
|
|
75
|
+
return true;
|
|
76
|
+
}
|
|
77
|
+
// Network errors
|
|
78
|
+
if (errorObj.code === "ECONNRESET" ||
|
|
79
|
+
errorObj.code === "ENOTFOUND" ||
|
|
80
|
+
errorObj.code === "ECONNREFUSED" ||
|
|
81
|
+
errorObj.code === "ECONNABORTED" ||
|
|
82
|
+
errorObj.code === "EPIPE" ||
|
|
83
|
+
errorObj.code === "ENETUNREACH" ||
|
|
84
|
+
errorObj.code === "EHOSTUNREACH") {
|
|
85
|
+
return true;
|
|
86
|
+
}
|
|
87
|
+
// HTTP status codes
|
|
88
|
+
if (typeof errorObj.status === "number" &&
|
|
89
|
+
config.retryableStatusCodes?.includes(errorObj.status)) {
|
|
90
|
+
return true;
|
|
91
|
+
}
|
|
92
|
+
if (typeof errorObj.statusCode === "number" &&
|
|
93
|
+
config.retryableStatusCodes?.includes(errorObj.statusCode)) {
|
|
94
|
+
return true;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
return false;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Execute a RAG operation with retry logic
|
|
101
|
+
*
|
|
102
|
+
* Implements exponential backoff with jitter to prevent thundering herd.
|
|
103
|
+
* Only retries on errors that are considered retryable.
|
|
104
|
+
*
|
|
105
|
+
* @param operation - Async operation to execute with retries
|
|
106
|
+
* @param config - Partial retry configuration (merged with defaults)
|
|
107
|
+
* @returns Result of the operation
|
|
108
|
+
* @throws Last error if all retry attempts fail
|
|
109
|
+
*/
|
|
110
|
+
export async function withRAGRetry(operation, config = {}) {
|
|
111
|
+
const mergedConfig = {
|
|
112
|
+
...DEFAULT_RAG_RETRY_CONFIG,
|
|
113
|
+
...config,
|
|
114
|
+
};
|
|
115
|
+
let lastError;
|
|
116
|
+
let attempt = 0;
|
|
117
|
+
while (attempt <= mergedConfig.maxRetries) {
|
|
118
|
+
try {
|
|
119
|
+
return await operation();
|
|
120
|
+
}
|
|
121
|
+
catch (error) {
|
|
122
|
+
lastError = error;
|
|
123
|
+
// Don't retry if this is the last attempt
|
|
124
|
+
if (attempt === mergedConfig.maxRetries) {
|
|
125
|
+
logger.debug(`[RAGRetryHandler] All ${mergedConfig.maxRetries} attempts exhausted`);
|
|
126
|
+
break;
|
|
127
|
+
}
|
|
128
|
+
// Check if we should retry this error
|
|
129
|
+
if (!isRetryable(error, mergedConfig)) {
|
|
130
|
+
logger.debug(`[RAGRetryHandler] Non-retryable error encountered: ${error instanceof Error ? error.message : String(error)}`);
|
|
131
|
+
break;
|
|
132
|
+
}
|
|
133
|
+
// Calculate delay with backoff and jitter
|
|
134
|
+
const delay = calculateDelay(attempt, mergedConfig);
|
|
135
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
136
|
+
logger.warn(`[RAGRetryHandler] Attempt ${attempt + 1}/${mergedConfig.maxRetries + 1} failed: ${errorMessage}. Retrying in ${Math.round(delay)}ms...`);
|
|
137
|
+
await sleep(delay);
|
|
138
|
+
attempt++;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
// Wrap the last error if it's not already a RAG error
|
|
142
|
+
if (lastError instanceof RAGError) {
|
|
143
|
+
throw lastError;
|
|
144
|
+
}
|
|
145
|
+
throw new RAGError(`RAG operation failed after ${attempt + 1} attempts: ${lastError instanceof Error ? lastError.message : String(lastError)}`, RAGErrorCodes.RETRY_EXHAUSTED, {
|
|
146
|
+
retryable: false,
|
|
147
|
+
cause: lastError instanceof Error ? lastError : undefined,
|
|
148
|
+
details: {
|
|
149
|
+
totalAttempts: attempt + 1,
|
|
150
|
+
maxRetries: mergedConfig.maxRetries,
|
|
151
|
+
},
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* RAG Retry Handler class for more complex retry scenarios
|
|
156
|
+
*/
|
|
157
|
+
export class RAGRetryHandler {
|
|
158
|
+
config;
|
|
159
|
+
constructor(config = {}) {
|
|
160
|
+
this.config = { ...DEFAULT_RAG_RETRY_CONFIG, ...config };
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Execute an operation with retry logic
|
|
164
|
+
*/
|
|
165
|
+
async executeWithRetry(operation, maxRetries) {
|
|
166
|
+
const config = maxRetries !== undefined ? { ...this.config, maxRetries } : this.config;
|
|
167
|
+
return withRAGRetry(operation, config);
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Execute multiple operations with retry, collecting results
|
|
171
|
+
* Returns successful results and failed operations with their errors
|
|
172
|
+
*/
|
|
173
|
+
async executeBatch(items, operation, options) {
|
|
174
|
+
const { concurrency = 5, continueOnError = true } = options ?? {};
|
|
175
|
+
const successful = [];
|
|
176
|
+
const failed = [];
|
|
177
|
+
// Process in batches for concurrency control
|
|
178
|
+
for (let i = 0; i < items.length; i += concurrency) {
|
|
179
|
+
const batch = items.slice(i, i + concurrency);
|
|
180
|
+
const batchPromises = batch.map(async (item, batchIndex) => {
|
|
181
|
+
const index = i + batchIndex;
|
|
182
|
+
try {
|
|
183
|
+
const result = await this.executeWithRetry(() => operation(item, index));
|
|
184
|
+
successful.push({ item, result, index });
|
|
185
|
+
}
|
|
186
|
+
catch (error) {
|
|
187
|
+
const errorObj = error instanceof Error ? error : new Error(String(error));
|
|
188
|
+
failed.push({ item, error: errorObj, index });
|
|
189
|
+
if (!continueOnError) {
|
|
190
|
+
throw error;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
});
|
|
194
|
+
await Promise.all(batchPromises);
|
|
195
|
+
}
|
|
196
|
+
const total = successful.length + failed.length;
|
|
197
|
+
const successRate = total > 0 ? successful.length / total : 0;
|
|
198
|
+
return { successful, failed, successRate };
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Get current configuration
|
|
202
|
+
*/
|
|
203
|
+
getConfig() {
|
|
204
|
+
return { ...this.config };
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Update configuration
|
|
208
|
+
*/
|
|
209
|
+
updateConfig(config) {
|
|
210
|
+
this.config = { ...this.config, ...config };
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Specialized retry handler for embedding operations
|
|
215
|
+
*/
|
|
216
|
+
export class EmbeddingRetryHandler extends RAGRetryHandler {
|
|
217
|
+
constructor(config) {
|
|
218
|
+
super({
|
|
219
|
+
maxRetries: 5, // More retries for rate-limited embedding APIs
|
|
220
|
+
initialDelay: 2000, // Longer initial delay
|
|
221
|
+
retryableErrorCodes: [
|
|
222
|
+
RAGErrorCodes.EMBEDDING_ERROR,
|
|
223
|
+
RAGErrorCodes.EMBEDDING_RATE_LIMIT,
|
|
224
|
+
RAGErrorCodes.EMBEDDING_PROVIDER_ERROR,
|
|
225
|
+
],
|
|
226
|
+
shouldRetry: (error) => {
|
|
227
|
+
// Always retry rate limit errors
|
|
228
|
+
if (error instanceof EmbeddingError) {
|
|
229
|
+
return error.retryable;
|
|
230
|
+
}
|
|
231
|
+
return isRetryable(error);
|
|
232
|
+
},
|
|
233
|
+
...config,
|
|
234
|
+
});
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* Specialized retry handler for vector store operations
|
|
239
|
+
*/
|
|
240
|
+
export class VectorStoreRetryHandler extends RAGRetryHandler {
|
|
241
|
+
constructor(config) {
|
|
242
|
+
super({
|
|
243
|
+
maxRetries: 3,
|
|
244
|
+
initialDelay: 1000,
|
|
245
|
+
retryableErrorCodes: [
|
|
246
|
+
RAGErrorCodes.VECTOR_QUERY_ERROR,
|
|
247
|
+
RAGErrorCodes.VECTOR_QUERY_TIMEOUT,
|
|
248
|
+
RAGErrorCodes.VECTOR_STORE_UNAVAILABLE,
|
|
249
|
+
RAGErrorCodes.VECTOR_STORE_CONNECTION_ERROR,
|
|
250
|
+
],
|
|
251
|
+
shouldRetry: (error) => {
|
|
252
|
+
if (error instanceof VectorQueryError) {
|
|
253
|
+
return error.retryable;
|
|
254
|
+
}
|
|
255
|
+
return isRetryable(error);
|
|
256
|
+
},
|
|
257
|
+
...config,
|
|
258
|
+
});
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
/**
|
|
262
|
+
* Specialized retry handler for metadata extraction
|
|
263
|
+
*/
|
|
264
|
+
export class MetadataExtractionRetryHandler extends RAGRetryHandler {
|
|
265
|
+
constructor(config) {
|
|
266
|
+
super({
|
|
267
|
+
maxRetries: 3,
|
|
268
|
+
initialDelay: 1500,
|
|
269
|
+
retryableErrorCodes: [
|
|
270
|
+
RAGErrorCodes.METADATA_EXTRACTION_ERROR,
|
|
271
|
+
RAGErrorCodes.METADATA_EXTRACTION_TIMEOUT,
|
|
272
|
+
],
|
|
273
|
+
shouldRetry: (error) => {
|
|
274
|
+
if (error instanceof MetadataExtractionError) {
|
|
275
|
+
return error.retryable;
|
|
276
|
+
}
|
|
277
|
+
return isRetryable(error);
|
|
278
|
+
},
|
|
279
|
+
...config,
|
|
280
|
+
});
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
/**
|
|
284
|
+
* Create a retry handler with the core infrastructure withRetry
|
|
285
|
+
*/
|
|
286
|
+
export function createRetryHandler(config = {}) {
|
|
287
|
+
const mergedConfig = { ...DEFAULT_RAG_RETRY_CONFIG, ...config };
|
|
288
|
+
return (operation) => withRetry(operation, {
|
|
289
|
+
maxRetries: mergedConfig.maxRetries,
|
|
290
|
+
baseDelayMs: mergedConfig.initialDelay,
|
|
291
|
+
maxDelayMs: mergedConfig.maxDelay,
|
|
292
|
+
shouldRetry: (error) => isRetryable(error, mergedConfig),
|
|
293
|
+
});
|
|
294
|
+
}
|
|
295
|
+
/**
|
|
296
|
+
* Global retry handlers for common RAG operations
|
|
297
|
+
*/
|
|
298
|
+
export const embeddingRetryHandler = new EmbeddingRetryHandler();
|
|
299
|
+
export const vectorStoreRetryHandler = new VectorStoreRetryHandler();
|
|
300
|
+
export const metadataExtractionRetryHandler = new MetadataExtractionRetryHandler();
|
|
301
|
+
//# sourceMappingURL=RetryHandler.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resilience Index
|
|
3
|
+
*
|
|
4
|
+
* Exports resilience patterns for RAG operations.
|
|
5
|
+
*/
|
|
6
|
+
export { RAGCircuitBreaker, RAGCircuitBreakerManager, ragCircuitBreakerManager, getCircuitBreaker, executeWithCircuitBreaker, type CircuitState, type RAGCircuitBreakerConfig, type RAGCircuitBreakerStats, type RAGCircuitBreakerEvents, } from "./CircuitBreaker.js";
|
|
7
|
+
export { RAGRetryHandler, EmbeddingRetryHandler, VectorStoreRetryHandler, MetadataExtractionRetryHandler, withRAGRetry, isRetryable, createRetryHandler, embeddingRetryHandler, vectorStoreRetryHandler, metadataExtractionRetryHandler, DEFAULT_RAG_RETRY_CONFIG, type RAGRetryConfig, } from "./RetryHandler.js";
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resilience Index
|
|
3
|
+
*
|
|
4
|
+
* Exports resilience patterns for RAG operations.
|
|
5
|
+
*/
|
|
6
|
+
export { RAGCircuitBreaker, RAGCircuitBreakerManager, ragCircuitBreakerManager, getCircuitBreaker, executeWithCircuitBreaker, } from "./CircuitBreaker.js";
|
|
7
|
+
export { RAGRetryHandler, EmbeddingRetryHandler, VectorStoreRetryHandler, MetadataExtractionRetryHandler, withRAGRetry, isRetryable, createRetryHandler, embeddingRetryHandler, vectorStoreRetryHandler, metadataExtractionRetryHandler, DEFAULT_RAG_RETRY_CONFIG, } from "./RetryHandler.js";
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hybrid Search Implementation
|
|
3
|
+
*
|
|
4
|
+
* Combines vector (dense) search with BM25 (sparse) search for improved retrieval.
|
|
5
|
+
* Supports multiple fusion methods: Reciprocal Rank Fusion (RRF) and Linear Combination.
|
|
6
|
+
*/
|
|
7
|
+
import type { BM25Result, HybridSearchConfig, HybridSearchResult } from "../types.js";
|
|
8
|
+
import type { VectorStore } from "./vectorQueryTool.js";
|
|
9
|
+
/**
|
|
10
|
+
* BM25 Index interface
|
|
11
|
+
* Implementations should provide sparse retrieval capabilities
|
|
12
|
+
*/
|
|
13
|
+
export interface BM25Index {
|
|
14
|
+
/**
|
|
15
|
+
* Search documents using BM25 algorithm
|
|
16
|
+
* @param query - Search query string
|
|
17
|
+
* @param topK - Number of results to return
|
|
18
|
+
* @returns Array of BM25 results
|
|
19
|
+
*/
|
|
20
|
+
search(query: string, topK?: number): Promise<BM25Result[]>;
|
|
21
|
+
/**
|
|
22
|
+
* Add documents to the index
|
|
23
|
+
* @param documents - Documents to index
|
|
24
|
+
*/
|
|
25
|
+
addDocuments(documents: Array<{
|
|
26
|
+
id: string;
|
|
27
|
+
text: string;
|
|
28
|
+
metadata?: Record<string, unknown>;
|
|
29
|
+
}>): Promise<void>;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* In-memory BM25 implementation for testing and development
|
|
33
|
+
*/
|
|
34
|
+
export declare class InMemoryBM25Index implements BM25Index {
|
|
35
|
+
private documents;
|
|
36
|
+
private avgDocLength;
|
|
37
|
+
private k1;
|
|
38
|
+
private b;
|
|
39
|
+
search(query: string, topK?: number): Promise<BM25Result[]>;
|
|
40
|
+
addDocuments(documents: Array<{
|
|
41
|
+
id: string;
|
|
42
|
+
text: string;
|
|
43
|
+
metadata?: Record<string, unknown>;
|
|
44
|
+
}>): Promise<void>;
|
|
45
|
+
private tokenize;
|
|
46
|
+
private countTermFrequency;
|
|
47
|
+
private countDocumentsWithTerm;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Reciprocal Rank Fusion
|
|
51
|
+
* Combines rankings from multiple retrieval methods
|
|
52
|
+
*
|
|
53
|
+
* @param rankings - Array of ranking lists, each with id and rank
|
|
54
|
+
* @param k - RRF constant (default: 60)
|
|
55
|
+
* @returns Map of document IDs to fused scores
|
|
56
|
+
*/
|
|
57
|
+
export declare function reciprocalRankFusion(rankings: Array<Array<{
|
|
58
|
+
id: string;
|
|
59
|
+
rank: number;
|
|
60
|
+
}>>, k?: number): Map<string, number>;
|
|
61
|
+
/**
|
|
62
|
+
* Linear Combination of normalized scores
|
|
63
|
+
*
|
|
64
|
+
* @param vectorScores - Vector search scores
|
|
65
|
+
* @param bm25Scores - BM25 search scores
|
|
66
|
+
* @param alpha - Weight for vector scores (0-1), bm25 gets 1-alpha
|
|
67
|
+
* @returns Map of document IDs to combined scores
|
|
68
|
+
*/
|
|
69
|
+
export declare function linearCombination(vectorScores: Map<string, number>, bm25Scores: Map<string, number>, alpha?: number): Map<string, number>;
|
|
70
|
+
/**
|
|
71
|
+
* Hybrid search configuration for creating a search function
|
|
72
|
+
*/
|
|
73
|
+
export interface HybridSearchOptions {
|
|
74
|
+
/** Vector store instance */
|
|
75
|
+
vectorStore: VectorStore;
|
|
76
|
+
/** BM25 index instance */
|
|
77
|
+
bm25Index: BM25Index;
|
|
78
|
+
/** Index name for vector store */
|
|
79
|
+
indexName: string;
|
|
80
|
+
/** Embedding model configuration (optional - uses defaults from ProviderFactory if not specified) */
|
|
81
|
+
embeddingModel?: {
|
|
82
|
+
provider?: string;
|
|
83
|
+
modelName?: string;
|
|
84
|
+
};
|
|
85
|
+
/** Default search configuration */
|
|
86
|
+
defaultConfig?: HybridSearchConfig;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Create a hybrid search function
|
|
90
|
+
*
|
|
91
|
+
* @param options - Search options
|
|
92
|
+
* @returns Hybrid search function
|
|
93
|
+
*/
|
|
94
|
+
export declare function createHybridSearch(options: HybridSearchOptions): (query: string, config?: HybridSearchConfig) => Promise<HybridSearchResult[]>;
|