@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.
Files changed (555) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/README.md +106 -37
  3. package/dist/agent/directTools.d.ts +11 -11
  4. package/dist/cli/commands/config.d.ts +6 -6
  5. package/dist/cli/commands/rag.d.ts +19 -0
  6. package/dist/cli/commands/rag.js +756 -0
  7. package/dist/cli/factories/commandFactory.js +146 -83
  8. package/dist/cli/parser.js +4 -1
  9. package/dist/core/baseProvider.d.ts +43 -30
  10. package/dist/core/baseProvider.js +98 -138
  11. package/dist/core/conversationMemoryFactory.d.ts +2 -2
  12. package/dist/core/conversationMemoryFactory.js +2 -2
  13. package/dist/core/conversationMemoryInitializer.d.ts +1 -2
  14. package/dist/core/conversationMemoryInitializer.js +2 -2
  15. package/dist/core/infrastructure/baseError.d.ts +21 -0
  16. package/dist/core/infrastructure/baseError.js +22 -0
  17. package/dist/core/infrastructure/baseFactory.d.ts +21 -0
  18. package/dist/core/infrastructure/baseFactory.js +54 -0
  19. package/dist/core/infrastructure/baseRegistry.d.ts +21 -0
  20. package/dist/core/infrastructure/baseRegistry.js +49 -0
  21. package/dist/core/infrastructure/index.d.ts +5 -0
  22. package/dist/core/infrastructure/index.js +5 -0
  23. package/dist/core/infrastructure/retry.d.ts +7 -0
  24. package/dist/core/infrastructure/retry.js +20 -0
  25. package/dist/core/infrastructure/typedEventEmitter.d.ts +8 -0
  26. package/dist/core/infrastructure/typedEventEmitter.js +23 -0
  27. package/dist/core/redisConversationMemoryManager.d.ts +1 -6
  28. package/dist/core/redisConversationMemoryManager.js +7 -19
  29. package/dist/factories/providerFactory.d.ts +5 -3
  30. package/dist/factories/providerFactory.js +31 -24
  31. package/dist/image-gen/ImageGenService.d.ts +143 -0
  32. package/dist/image-gen/ImageGenService.js +345 -0
  33. package/dist/image-gen/imageGenTools.d.ts +126 -0
  34. package/dist/image-gen/imageGenTools.js +304 -0
  35. package/dist/image-gen/index.d.ts +46 -0
  36. package/dist/image-gen/index.js +48 -0
  37. package/dist/image-gen/types.d.ts +237 -0
  38. package/dist/image-gen/types.js +24 -0
  39. package/dist/index.d.ts +46 -12
  40. package/dist/index.js +88 -36
  41. package/dist/lib/agent/directTools.d.ts +8 -8
  42. package/dist/lib/core/baseProvider.d.ts +43 -30
  43. package/dist/lib/core/baseProvider.js +98 -138
  44. package/dist/lib/core/conversationMemoryFactory.d.ts +2 -2
  45. package/dist/lib/core/conversationMemoryFactory.js +2 -2
  46. package/dist/lib/core/conversationMemoryInitializer.d.ts +1 -2
  47. package/dist/lib/core/conversationMemoryInitializer.js +2 -2
  48. package/dist/lib/core/infrastructure/baseError.d.ts +21 -0
  49. package/dist/lib/core/infrastructure/baseError.js +23 -0
  50. package/dist/lib/core/infrastructure/baseFactory.d.ts +21 -0
  51. package/dist/lib/core/infrastructure/baseFactory.js +55 -0
  52. package/dist/lib/core/infrastructure/baseRegistry.d.ts +21 -0
  53. package/dist/lib/core/infrastructure/baseRegistry.js +50 -0
  54. package/dist/lib/core/infrastructure/index.d.ts +5 -0
  55. package/dist/lib/core/infrastructure/index.js +6 -0
  56. package/dist/lib/core/infrastructure/retry.d.ts +7 -0
  57. package/dist/lib/core/infrastructure/retry.js +21 -0
  58. package/dist/lib/core/infrastructure/typedEventEmitter.d.ts +8 -0
  59. package/dist/lib/core/infrastructure/typedEventEmitter.js +24 -0
  60. package/dist/lib/core/redisConversationMemoryManager.d.ts +1 -6
  61. package/dist/lib/core/redisConversationMemoryManager.js +7 -19
  62. package/dist/lib/factories/providerFactory.d.ts +5 -3
  63. package/dist/lib/factories/providerFactory.js +31 -24
  64. package/dist/lib/image-gen/ImageGenService.d.ts +143 -0
  65. package/dist/lib/image-gen/ImageGenService.js +346 -0
  66. package/dist/lib/image-gen/imageGenTools.d.ts +126 -0
  67. package/dist/lib/image-gen/imageGenTools.js +305 -0
  68. package/dist/lib/image-gen/index.d.ts +46 -0
  69. package/dist/lib/image-gen/index.js +49 -0
  70. package/dist/lib/image-gen/types.d.ts +237 -0
  71. package/dist/lib/image-gen/types.js +25 -0
  72. package/dist/lib/index.d.ts +46 -12
  73. package/dist/lib/index.js +88 -36
  74. package/dist/lib/mcp/index.d.ts +6 -5
  75. package/dist/lib/mcp/index.js +7 -5
  76. package/dist/lib/neurolink.d.ts +11 -13
  77. package/dist/lib/neurolink.js +95 -29
  78. package/dist/lib/processors/base/BaseFileProcessor.d.ts +273 -0
  79. package/dist/lib/processors/base/BaseFileProcessor.js +614 -0
  80. package/dist/lib/processors/base/index.d.ts +14 -0
  81. package/dist/lib/processors/base/index.js +20 -0
  82. package/dist/lib/processors/base/types.d.ts +593 -0
  83. package/dist/lib/processors/base/types.js +77 -0
  84. package/dist/lib/processors/cli/fileProcessorCli.d.ts +163 -0
  85. package/dist/lib/processors/cli/fileProcessorCli.js +389 -0
  86. package/dist/lib/processors/cli/index.d.ts +37 -0
  87. package/dist/lib/processors/cli/index.js +50 -0
  88. package/dist/lib/processors/code/ConfigProcessor.d.ts +171 -0
  89. package/dist/lib/processors/code/ConfigProcessor.js +401 -0
  90. package/dist/lib/processors/code/SourceCodeProcessor.d.ts +174 -0
  91. package/dist/lib/processors/code/SourceCodeProcessor.js +305 -0
  92. package/dist/lib/processors/code/index.d.ts +44 -0
  93. package/dist/lib/processors/code/index.js +61 -0
  94. package/dist/lib/processors/config/fileTypes.d.ts +283 -0
  95. package/dist/lib/processors/config/fileTypes.js +521 -0
  96. package/dist/lib/processors/config/index.d.ts +32 -0
  97. package/dist/lib/processors/config/index.js +93 -0
  98. package/dist/lib/processors/config/languageMap.d.ts +66 -0
  99. package/dist/lib/processors/config/languageMap.js +411 -0
  100. package/dist/lib/processors/config/mimeTypes.d.ts +376 -0
  101. package/dist/lib/processors/config/mimeTypes.js +339 -0
  102. package/dist/lib/processors/config/sizeLimits.d.ts +194 -0
  103. package/dist/lib/processors/config/sizeLimits.js +247 -0
  104. package/dist/lib/processors/data/JsonProcessor.d.ts +122 -0
  105. package/dist/lib/processors/data/JsonProcessor.js +204 -0
  106. package/dist/lib/processors/data/XmlProcessor.d.ts +160 -0
  107. package/dist/lib/processors/data/XmlProcessor.js +284 -0
  108. package/dist/lib/processors/data/YamlProcessor.d.ts +163 -0
  109. package/dist/lib/processors/data/YamlProcessor.js +295 -0
  110. package/dist/lib/processors/data/index.d.ts +49 -0
  111. package/dist/lib/processors/data/index.js +77 -0
  112. package/dist/lib/processors/document/ExcelProcessor.d.ts +238 -0
  113. package/dist/lib/processors/document/ExcelProcessor.js +520 -0
  114. package/dist/lib/processors/document/OpenDocumentProcessor.d.ts +69 -0
  115. package/dist/lib/processors/document/OpenDocumentProcessor.js +211 -0
  116. package/dist/lib/processors/document/RtfProcessor.d.ts +152 -0
  117. package/dist/lib/processors/document/RtfProcessor.js +362 -0
  118. package/dist/lib/processors/document/WordProcessor.d.ts +168 -0
  119. package/dist/lib/processors/document/WordProcessor.js +354 -0
  120. package/dist/lib/processors/document/index.d.ts +54 -0
  121. package/dist/lib/processors/document/index.js +91 -0
  122. package/dist/lib/processors/errors/FileErrorCode.d.ts +98 -0
  123. package/dist/lib/processors/errors/FileErrorCode.js +256 -0
  124. package/dist/lib/processors/errors/errorHelpers.d.ts +151 -0
  125. package/dist/lib/processors/errors/errorHelpers.js +379 -0
  126. package/dist/lib/processors/errors/errorSerializer.d.ts +139 -0
  127. package/dist/lib/processors/errors/errorSerializer.js +508 -0
  128. package/dist/lib/processors/errors/index.d.ts +46 -0
  129. package/dist/lib/processors/errors/index.js +50 -0
  130. package/dist/lib/processors/index.d.ts +76 -0
  131. package/dist/lib/processors/index.js +113 -0
  132. package/dist/lib/processors/integration/FileProcessorIntegration.d.ts +244 -0
  133. package/dist/lib/processors/integration/FileProcessorIntegration.js +273 -0
  134. package/dist/lib/processors/integration/index.d.ts +42 -0
  135. package/dist/lib/processors/integration/index.js +45 -0
  136. package/dist/lib/processors/markup/HtmlProcessor.d.ts +169 -0
  137. package/dist/lib/processors/markup/HtmlProcessor.js +250 -0
  138. package/dist/lib/processors/markup/MarkdownProcessor.d.ts +165 -0
  139. package/dist/lib/processors/markup/MarkdownProcessor.js +245 -0
  140. package/dist/lib/processors/markup/SvgProcessor.d.ts +156 -0
  141. package/dist/lib/processors/markup/SvgProcessor.js +241 -0
  142. package/dist/lib/processors/markup/TextProcessor.d.ts +135 -0
  143. package/dist/lib/processors/markup/TextProcessor.js +189 -0
  144. package/dist/lib/processors/markup/index.d.ts +66 -0
  145. package/dist/lib/processors/markup/index.js +103 -0
  146. package/dist/lib/processors/registry/ProcessorRegistry.d.ts +334 -0
  147. package/dist/lib/processors/registry/ProcessorRegistry.js +609 -0
  148. package/dist/lib/processors/registry/index.d.ts +12 -0
  149. package/dist/lib/processors/registry/index.js +17 -0
  150. package/dist/lib/processors/registry/types.d.ts +53 -0
  151. package/dist/lib/processors/registry/types.js +11 -0
  152. package/dist/lib/providers/amazonBedrock.d.ts +15 -2
  153. package/dist/lib/providers/amazonBedrock.js +65 -8
  154. package/dist/lib/providers/anthropic.d.ts +3 -3
  155. package/dist/lib/providers/anthropic.js +10 -7
  156. package/dist/lib/providers/googleAiStudio.d.ts +5 -5
  157. package/dist/lib/providers/googleAiStudio.js +10 -7
  158. package/dist/lib/providers/googleVertex.d.ts +16 -4
  159. package/dist/lib/providers/googleVertex.js +72 -16
  160. package/dist/lib/providers/litellm.d.ts +3 -3
  161. package/dist/lib/providers/litellm.js +10 -10
  162. package/dist/lib/providers/mistral.d.ts +3 -3
  163. package/dist/lib/providers/mistral.js +7 -6
  164. package/dist/lib/providers/ollama.d.ts +3 -4
  165. package/dist/lib/providers/ollama.js +7 -8
  166. package/dist/lib/providers/openAI.d.ts +14 -2
  167. package/dist/lib/providers/openAI.js +60 -6
  168. package/dist/lib/providers/openRouter.d.ts +2 -2
  169. package/dist/lib/providers/openRouter.js +10 -6
  170. package/dist/lib/providers/sagemaker/language-model.d.ts +2 -2
  171. package/dist/lib/rag/ChunkerFactory.d.ts +91 -0
  172. package/dist/lib/rag/ChunkerFactory.js +321 -0
  173. package/dist/lib/rag/ChunkerRegistry.d.ts +91 -0
  174. package/dist/lib/rag/ChunkerRegistry.js +422 -0
  175. package/dist/lib/rag/chunkers/BaseChunker.d.ts +53 -0
  176. package/dist/lib/rag/chunkers/BaseChunker.js +144 -0
  177. package/dist/lib/rag/chunkers/CharacterChunker.d.ts +18 -0
  178. package/dist/lib/rag/chunkers/CharacterChunker.js +29 -0
  179. package/dist/lib/rag/chunkers/HTMLChunker.d.ts +19 -0
  180. package/dist/lib/rag/chunkers/HTMLChunker.js +39 -0
  181. package/dist/lib/rag/chunkers/JSONChunker.d.ts +19 -0
  182. package/dist/lib/rag/chunkers/JSONChunker.js +69 -0
  183. package/dist/lib/rag/chunkers/LaTeXChunker.d.ts +15 -0
  184. package/dist/lib/rag/chunkers/LaTeXChunker.js +64 -0
  185. package/dist/lib/rag/chunkers/MarkdownChunker.d.ts +15 -0
  186. package/dist/lib/rag/chunkers/MarkdownChunker.js +103 -0
  187. package/dist/lib/rag/chunkers/RecursiveChunker.d.ts +27 -0
  188. package/dist/lib/rag/chunkers/RecursiveChunker.js +140 -0
  189. package/dist/lib/rag/chunkers/SemanticMarkdownChunker.d.ts +22 -0
  190. package/dist/lib/rag/chunkers/SemanticMarkdownChunker.js +139 -0
  191. package/dist/lib/rag/chunkers/SentenceChunker.d.ts +19 -0
  192. package/dist/lib/rag/chunkers/SentenceChunker.js +67 -0
  193. package/dist/lib/rag/chunkers/TokenChunker.d.ts +19 -0
  194. package/dist/lib/rag/chunkers/TokenChunker.js +62 -0
  195. package/dist/lib/rag/chunkers/index.d.ts +15 -0
  196. package/dist/lib/rag/chunkers/index.js +16 -0
  197. package/dist/lib/rag/chunking/characterChunker.d.ts +16 -0
  198. package/dist/lib/rag/chunking/characterChunker.js +143 -0
  199. package/dist/lib/rag/chunking/chunkerRegistry.d.ts +67 -0
  200. package/dist/lib/rag/chunking/chunkerRegistry.js +195 -0
  201. package/dist/lib/rag/chunking/htmlChunker.d.ts +34 -0
  202. package/dist/lib/rag/chunking/htmlChunker.js +248 -0
  203. package/dist/lib/rag/chunking/index.d.ts +15 -0
  204. package/dist/lib/rag/chunking/index.js +18 -0
  205. package/dist/lib/rag/chunking/jsonChunker.d.ts +20 -0
  206. package/dist/lib/rag/chunking/jsonChunker.js +282 -0
  207. package/dist/lib/rag/chunking/latexChunker.d.ts +26 -0
  208. package/dist/lib/rag/chunking/latexChunker.js +252 -0
  209. package/dist/lib/rag/chunking/markdownChunker.d.ts +19 -0
  210. package/dist/lib/rag/chunking/markdownChunker.js +202 -0
  211. package/dist/lib/rag/chunking/recursiveChunker.d.ts +19 -0
  212. package/dist/lib/rag/chunking/recursiveChunker.js +149 -0
  213. package/dist/lib/rag/chunking/semanticChunker.d.ts +41 -0
  214. package/dist/lib/rag/chunking/semanticChunker.js +307 -0
  215. package/dist/lib/rag/chunking/sentenceChunker.d.ts +25 -0
  216. package/dist/lib/rag/chunking/sentenceChunker.js +231 -0
  217. package/dist/lib/rag/chunking/tokenChunker.d.ts +36 -0
  218. package/dist/lib/rag/chunking/tokenChunker.js +184 -0
  219. package/dist/lib/rag/document/MDocument.d.ts +198 -0
  220. package/dist/lib/rag/document/MDocument.js +393 -0
  221. package/dist/lib/rag/document/index.d.ts +5 -0
  222. package/dist/lib/rag/document/index.js +6 -0
  223. package/dist/lib/rag/document/loaders.d.ts +201 -0
  224. package/dist/lib/rag/document/loaders.js +501 -0
  225. package/dist/lib/rag/errors/RAGError.d.ts +244 -0
  226. package/dist/lib/rag/errors/RAGError.js +275 -0
  227. package/dist/lib/rag/errors/index.d.ts +6 -0
  228. package/dist/lib/rag/errors/index.js +7 -0
  229. package/dist/lib/rag/graphRag/graphRAG.d.ts +115 -0
  230. package/dist/lib/rag/graphRag/graphRAG.js +385 -0
  231. package/dist/lib/rag/graphRag/index.d.ts +4 -0
  232. package/dist/lib/rag/graphRag/index.js +5 -0
  233. package/dist/lib/rag/index.d.ts +103 -0
  234. package/dist/lib/rag/index.js +142 -0
  235. package/dist/lib/rag/metadata/MetadataExtractorFactory.d.ts +157 -0
  236. package/dist/lib/rag/metadata/MetadataExtractorFactory.js +419 -0
  237. package/dist/lib/rag/metadata/MetadataExtractorRegistry.d.ts +99 -0
  238. package/dist/lib/rag/metadata/MetadataExtractorRegistry.js +363 -0
  239. package/dist/lib/rag/metadata/index.d.ts +6 -0
  240. package/dist/lib/rag/metadata/index.js +10 -0
  241. package/dist/lib/rag/metadata/metadataExtractor.d.ts +69 -0
  242. package/dist/lib/rag/metadata/metadataExtractor.js +278 -0
  243. package/dist/lib/rag/pipeline/RAGPipeline.d.ts +235 -0
  244. package/dist/lib/rag/pipeline/RAGPipeline.js +402 -0
  245. package/dist/lib/rag/pipeline/contextAssembly.d.ts +126 -0
  246. package/dist/lib/rag/pipeline/contextAssembly.js +338 -0
  247. package/dist/lib/rag/pipeline/index.d.ts +5 -0
  248. package/dist/lib/rag/pipeline/index.js +6 -0
  249. package/dist/lib/rag/ragIntegration.d.ts +38 -0
  250. package/dist/lib/rag/ragIntegration.js +212 -0
  251. package/dist/lib/rag/reranker/RerankerFactory.d.ts +184 -0
  252. package/dist/lib/rag/reranker/RerankerFactory.js +431 -0
  253. package/dist/lib/rag/reranker/RerankerRegistry.d.ts +119 -0
  254. package/dist/lib/rag/reranker/RerankerRegistry.js +403 -0
  255. package/dist/lib/rag/reranker/index.d.ts +6 -0
  256. package/dist/lib/rag/reranker/index.js +10 -0
  257. package/dist/lib/rag/reranker/reranker.d.ts +71 -0
  258. package/dist/lib/rag/reranker/reranker.js +278 -0
  259. package/dist/lib/rag/resilience/CircuitBreaker.d.ts +215 -0
  260. package/dist/lib/rag/resilience/CircuitBreaker.js +432 -0
  261. package/dist/lib/rag/resilience/RetryHandler.d.ts +115 -0
  262. package/dist/lib/rag/resilience/RetryHandler.js +301 -0
  263. package/dist/lib/rag/resilience/index.d.ts +7 -0
  264. package/dist/lib/rag/resilience/index.js +8 -0
  265. package/dist/lib/rag/retrieval/hybridSearch.d.ts +94 -0
  266. package/dist/lib/rag/retrieval/hybridSearch.js +314 -0
  267. package/dist/lib/rag/retrieval/index.d.ts +5 -0
  268. package/dist/lib/rag/retrieval/index.js +6 -0
  269. package/dist/lib/rag/retrieval/vectorQueryTool.d.ts +93 -0
  270. package/dist/lib/rag/retrieval/vectorQueryTool.js +290 -0
  271. package/dist/lib/rag/types.d.ts +768 -0
  272. package/dist/lib/rag/types.js +9 -0
  273. package/dist/lib/server/index.d.ts +15 -11
  274. package/dist/lib/server/index.js +55 -51
  275. package/dist/lib/server/utils/validation.d.ts +2 -2
  276. package/dist/lib/types/common.d.ts +0 -1
  277. package/dist/lib/types/fileTypes.d.ts +1 -1
  278. package/dist/lib/types/generateTypes.d.ts +42 -8
  279. package/dist/lib/types/generateTypes.js +1 -1
  280. package/dist/lib/types/index.d.ts +25 -24
  281. package/dist/lib/types/index.js +21 -20
  282. package/dist/lib/types/modelTypes.d.ts +16 -16
  283. package/dist/lib/types/pptTypes.d.ts +14 -2
  284. package/dist/lib/types/pptTypes.js +16 -0
  285. package/dist/lib/types/streamTypes.d.ts +28 -8
  286. package/dist/lib/types/streamTypes.js +1 -1
  287. package/dist/lib/utils/async/delay.d.ts +40 -0
  288. package/dist/lib/utils/async/delay.js +43 -0
  289. package/dist/lib/utils/async/index.d.ts +23 -0
  290. package/dist/lib/utils/async/index.js +24 -0
  291. package/dist/lib/utils/async/retry.d.ts +141 -0
  292. package/dist/lib/utils/async/retry.js +172 -0
  293. package/dist/lib/utils/async/withTimeout.d.ts +73 -0
  294. package/dist/lib/utils/async/withTimeout.js +97 -0
  295. package/dist/lib/utils/fileDetector.d.ts +7 -1
  296. package/dist/lib/utils/fileDetector.js +91 -18
  297. package/dist/lib/utils/json/extract.d.ts +103 -0
  298. package/dist/lib/utils/json/extract.js +249 -0
  299. package/dist/lib/utils/json/index.d.ts +36 -0
  300. package/dist/lib/utils/json/index.js +37 -0
  301. package/dist/lib/utils/json/safeParse.d.ts +137 -0
  302. package/dist/lib/utils/json/safeParse.js +191 -0
  303. package/dist/lib/utils/messageBuilder.d.ts +2 -2
  304. package/dist/lib/utils/messageBuilder.js +15 -7
  305. package/dist/lib/utils/modelRouter.d.ts +4 -4
  306. package/dist/lib/utils/modelRouter.js +4 -4
  307. package/dist/lib/utils/sanitizers/filename.d.ts +137 -0
  308. package/dist/lib/utils/sanitizers/filename.js +366 -0
  309. package/dist/lib/utils/sanitizers/html.d.ts +170 -0
  310. package/dist/lib/utils/sanitizers/html.js +326 -0
  311. package/dist/lib/utils/sanitizers/index.d.ts +26 -0
  312. package/dist/lib/utils/sanitizers/index.js +30 -0
  313. package/dist/lib/utils/sanitizers/svg.d.ts +81 -0
  314. package/dist/lib/utils/sanitizers/svg.js +483 -0
  315. package/dist/mcp/index.d.ts +6 -5
  316. package/dist/mcp/index.js +7 -5
  317. package/dist/neurolink.d.ts +11 -13
  318. package/dist/neurolink.js +95 -29
  319. package/dist/processors/base/BaseFileProcessor.d.ts +273 -0
  320. package/dist/processors/base/BaseFileProcessor.js +613 -0
  321. package/dist/processors/base/index.d.ts +14 -0
  322. package/dist/processors/base/index.js +19 -0
  323. package/dist/processors/base/types.d.ts +593 -0
  324. package/dist/processors/base/types.js +76 -0
  325. package/dist/processors/cli/fileProcessorCli.d.ts +163 -0
  326. package/dist/processors/cli/fileProcessorCli.js +388 -0
  327. package/dist/processors/cli/index.d.ts +37 -0
  328. package/dist/processors/cli/index.js +49 -0
  329. package/dist/processors/code/ConfigProcessor.d.ts +171 -0
  330. package/dist/processors/code/ConfigProcessor.js +400 -0
  331. package/dist/processors/code/SourceCodeProcessor.d.ts +174 -0
  332. package/dist/processors/code/SourceCodeProcessor.js +304 -0
  333. package/dist/processors/code/index.d.ts +44 -0
  334. package/dist/processors/code/index.js +60 -0
  335. package/dist/processors/config/fileTypes.d.ts +283 -0
  336. package/dist/processors/config/fileTypes.js +520 -0
  337. package/dist/processors/config/index.d.ts +32 -0
  338. package/dist/processors/config/index.js +92 -0
  339. package/dist/processors/config/languageMap.d.ts +66 -0
  340. package/dist/processors/config/languageMap.js +410 -0
  341. package/dist/processors/config/mimeTypes.d.ts +376 -0
  342. package/dist/processors/config/mimeTypes.js +338 -0
  343. package/dist/processors/config/sizeLimits.d.ts +194 -0
  344. package/dist/processors/config/sizeLimits.js +246 -0
  345. package/dist/processors/data/JsonProcessor.d.ts +122 -0
  346. package/dist/processors/data/JsonProcessor.js +203 -0
  347. package/dist/processors/data/XmlProcessor.d.ts +160 -0
  348. package/dist/processors/data/XmlProcessor.js +283 -0
  349. package/dist/processors/data/YamlProcessor.d.ts +163 -0
  350. package/dist/processors/data/YamlProcessor.js +294 -0
  351. package/dist/processors/data/index.d.ts +49 -0
  352. package/dist/processors/data/index.js +76 -0
  353. package/dist/processors/document/ExcelProcessor.d.ts +238 -0
  354. package/dist/processors/document/ExcelProcessor.js +519 -0
  355. package/dist/processors/document/OpenDocumentProcessor.d.ts +69 -0
  356. package/dist/processors/document/OpenDocumentProcessor.js +210 -0
  357. package/dist/processors/document/RtfProcessor.d.ts +152 -0
  358. package/dist/processors/document/RtfProcessor.js +361 -0
  359. package/dist/processors/document/WordProcessor.d.ts +168 -0
  360. package/dist/processors/document/WordProcessor.js +353 -0
  361. package/dist/processors/document/index.d.ts +54 -0
  362. package/dist/processors/document/index.js +90 -0
  363. package/dist/processors/errors/FileErrorCode.d.ts +98 -0
  364. package/dist/processors/errors/FileErrorCode.js +255 -0
  365. package/dist/processors/errors/errorHelpers.d.ts +151 -0
  366. package/dist/processors/errors/errorHelpers.js +378 -0
  367. package/dist/processors/errors/errorSerializer.d.ts +139 -0
  368. package/dist/processors/errors/errorSerializer.js +507 -0
  369. package/dist/processors/errors/index.d.ts +46 -0
  370. package/dist/processors/errors/index.js +49 -0
  371. package/dist/processors/index.d.ts +76 -0
  372. package/dist/processors/index.js +112 -0
  373. package/dist/processors/integration/FileProcessorIntegration.d.ts +244 -0
  374. package/dist/processors/integration/FileProcessorIntegration.js +272 -0
  375. package/dist/processors/integration/index.d.ts +42 -0
  376. package/dist/processors/integration/index.js +44 -0
  377. package/dist/processors/markup/HtmlProcessor.d.ts +169 -0
  378. package/dist/processors/markup/HtmlProcessor.js +249 -0
  379. package/dist/processors/markup/MarkdownProcessor.d.ts +165 -0
  380. package/dist/processors/markup/MarkdownProcessor.js +244 -0
  381. package/dist/processors/markup/SvgProcessor.d.ts +156 -0
  382. package/dist/processors/markup/SvgProcessor.js +240 -0
  383. package/dist/processors/markup/TextProcessor.d.ts +135 -0
  384. package/dist/processors/markup/TextProcessor.js +188 -0
  385. package/dist/processors/markup/index.d.ts +66 -0
  386. package/dist/processors/markup/index.js +102 -0
  387. package/dist/processors/registry/ProcessorRegistry.d.ts +334 -0
  388. package/dist/processors/registry/ProcessorRegistry.js +608 -0
  389. package/dist/processors/registry/index.d.ts +12 -0
  390. package/dist/processors/registry/index.js +16 -0
  391. package/dist/processors/registry/types.d.ts +53 -0
  392. package/dist/processors/registry/types.js +10 -0
  393. package/dist/providers/amazonBedrock.d.ts +15 -2
  394. package/dist/providers/amazonBedrock.js +65 -8
  395. package/dist/providers/anthropic.d.ts +3 -3
  396. package/dist/providers/anthropic.js +10 -7
  397. package/dist/providers/googleAiStudio.d.ts +5 -5
  398. package/dist/providers/googleAiStudio.js +10 -7
  399. package/dist/providers/googleVertex.d.ts +16 -4
  400. package/dist/providers/googleVertex.js +72 -16
  401. package/dist/providers/litellm.d.ts +3 -3
  402. package/dist/providers/litellm.js +10 -10
  403. package/dist/providers/mistral.d.ts +3 -3
  404. package/dist/providers/mistral.js +7 -6
  405. package/dist/providers/ollama.d.ts +3 -4
  406. package/dist/providers/ollama.js +7 -8
  407. package/dist/providers/openAI.d.ts +14 -2
  408. package/dist/providers/openAI.js +60 -6
  409. package/dist/providers/openRouter.d.ts +2 -2
  410. package/dist/providers/openRouter.js +10 -6
  411. package/dist/rag/ChunkerFactory.d.ts +91 -0
  412. package/dist/rag/ChunkerFactory.js +320 -0
  413. package/dist/rag/ChunkerRegistry.d.ts +91 -0
  414. package/dist/rag/ChunkerRegistry.js +421 -0
  415. package/dist/rag/chunkers/BaseChunker.d.ts +53 -0
  416. package/dist/rag/chunkers/BaseChunker.js +143 -0
  417. package/dist/rag/chunkers/CharacterChunker.d.ts +18 -0
  418. package/dist/rag/chunkers/CharacterChunker.js +28 -0
  419. package/dist/rag/chunkers/HTMLChunker.d.ts +19 -0
  420. package/dist/rag/chunkers/HTMLChunker.js +38 -0
  421. package/dist/rag/chunkers/JSONChunker.d.ts +19 -0
  422. package/dist/rag/chunkers/JSONChunker.js +68 -0
  423. package/dist/rag/chunkers/LaTeXChunker.d.ts +15 -0
  424. package/dist/rag/chunkers/LaTeXChunker.js +63 -0
  425. package/dist/rag/chunkers/MarkdownChunker.d.ts +15 -0
  426. package/dist/rag/chunkers/MarkdownChunker.js +102 -0
  427. package/dist/rag/chunkers/RecursiveChunker.d.ts +27 -0
  428. package/dist/rag/chunkers/RecursiveChunker.js +139 -0
  429. package/dist/rag/chunkers/SemanticMarkdownChunker.d.ts +22 -0
  430. package/dist/rag/chunkers/SemanticMarkdownChunker.js +138 -0
  431. package/dist/rag/chunkers/SentenceChunker.d.ts +19 -0
  432. package/dist/rag/chunkers/SentenceChunker.js +66 -0
  433. package/dist/rag/chunkers/TokenChunker.d.ts +19 -0
  434. package/dist/rag/chunkers/TokenChunker.js +61 -0
  435. package/dist/rag/chunkers/index.d.ts +15 -0
  436. package/dist/rag/chunkers/index.js +15 -0
  437. package/dist/rag/chunking/characterChunker.d.ts +16 -0
  438. package/dist/rag/chunking/characterChunker.js +142 -0
  439. package/dist/rag/chunking/chunkerRegistry.d.ts +67 -0
  440. package/dist/rag/chunking/chunkerRegistry.js +194 -0
  441. package/dist/rag/chunking/htmlChunker.d.ts +34 -0
  442. package/dist/rag/chunking/htmlChunker.js +247 -0
  443. package/dist/rag/chunking/index.d.ts +15 -0
  444. package/dist/rag/chunking/index.js +17 -0
  445. package/dist/rag/chunking/jsonChunker.d.ts +20 -0
  446. package/dist/rag/chunking/jsonChunker.js +281 -0
  447. package/dist/rag/chunking/latexChunker.d.ts +26 -0
  448. package/dist/rag/chunking/latexChunker.js +251 -0
  449. package/dist/rag/chunking/markdownChunker.d.ts +19 -0
  450. package/dist/rag/chunking/markdownChunker.js +201 -0
  451. package/dist/rag/chunking/recursiveChunker.d.ts +19 -0
  452. package/dist/rag/chunking/recursiveChunker.js +148 -0
  453. package/dist/rag/chunking/semanticChunker.d.ts +41 -0
  454. package/dist/rag/chunking/semanticChunker.js +306 -0
  455. package/dist/rag/chunking/sentenceChunker.d.ts +25 -0
  456. package/dist/rag/chunking/sentenceChunker.js +230 -0
  457. package/dist/rag/chunking/tokenChunker.d.ts +36 -0
  458. package/dist/rag/chunking/tokenChunker.js +183 -0
  459. package/dist/rag/document/MDocument.d.ts +198 -0
  460. package/dist/rag/document/MDocument.js +392 -0
  461. package/dist/rag/document/index.d.ts +5 -0
  462. package/dist/rag/document/index.js +5 -0
  463. package/dist/rag/document/loaders.d.ts +201 -0
  464. package/dist/rag/document/loaders.js +500 -0
  465. package/dist/rag/errors/RAGError.d.ts +244 -0
  466. package/dist/rag/errors/RAGError.js +274 -0
  467. package/dist/rag/errors/index.d.ts +6 -0
  468. package/dist/rag/errors/index.js +6 -0
  469. package/dist/rag/graphRag/graphRAG.d.ts +115 -0
  470. package/dist/rag/graphRag/graphRAG.js +384 -0
  471. package/dist/rag/graphRag/index.d.ts +4 -0
  472. package/dist/rag/graphRag/index.js +4 -0
  473. package/dist/rag/index.d.ts +103 -0
  474. package/dist/rag/index.js +141 -0
  475. package/dist/rag/metadata/MetadataExtractorFactory.d.ts +157 -0
  476. package/dist/rag/metadata/MetadataExtractorFactory.js +418 -0
  477. package/dist/rag/metadata/MetadataExtractorRegistry.d.ts +99 -0
  478. package/dist/rag/metadata/MetadataExtractorRegistry.js +362 -0
  479. package/dist/rag/metadata/index.d.ts +6 -0
  480. package/dist/rag/metadata/index.js +9 -0
  481. package/dist/rag/metadata/metadataExtractor.d.ts +69 -0
  482. package/dist/rag/metadata/metadataExtractor.js +277 -0
  483. package/dist/rag/pipeline/RAGPipeline.d.ts +235 -0
  484. package/dist/rag/pipeline/RAGPipeline.js +401 -0
  485. package/dist/rag/pipeline/contextAssembly.d.ts +126 -0
  486. package/dist/rag/pipeline/contextAssembly.js +337 -0
  487. package/dist/rag/pipeline/index.d.ts +5 -0
  488. package/dist/rag/pipeline/index.js +5 -0
  489. package/dist/rag/ragIntegration.d.ts +38 -0
  490. package/dist/rag/ragIntegration.js +211 -0
  491. package/dist/rag/reranker/RerankerFactory.d.ts +184 -0
  492. package/dist/rag/reranker/RerankerFactory.js +430 -0
  493. package/dist/rag/reranker/RerankerRegistry.d.ts +119 -0
  494. package/dist/rag/reranker/RerankerRegistry.js +402 -0
  495. package/dist/rag/reranker/index.d.ts +6 -0
  496. package/dist/rag/reranker/index.js +9 -0
  497. package/dist/rag/reranker/reranker.d.ts +71 -0
  498. package/dist/rag/reranker/reranker.js +277 -0
  499. package/dist/rag/resilience/CircuitBreaker.d.ts +215 -0
  500. package/dist/rag/resilience/CircuitBreaker.js +431 -0
  501. package/dist/rag/resilience/RetryHandler.d.ts +115 -0
  502. package/dist/rag/resilience/RetryHandler.js +300 -0
  503. package/dist/rag/resilience/index.d.ts +7 -0
  504. package/dist/rag/resilience/index.js +7 -0
  505. package/dist/rag/retrieval/hybridSearch.d.ts +94 -0
  506. package/dist/rag/retrieval/hybridSearch.js +313 -0
  507. package/dist/rag/retrieval/index.d.ts +5 -0
  508. package/dist/rag/retrieval/index.js +5 -0
  509. package/dist/rag/retrieval/vectorQueryTool.d.ts +93 -0
  510. package/dist/rag/retrieval/vectorQueryTool.js +289 -0
  511. package/dist/rag/types.d.ts +768 -0
  512. package/dist/rag/types.js +8 -0
  513. package/dist/server/index.d.ts +15 -11
  514. package/dist/server/index.js +55 -51
  515. package/dist/server/utils/validation.d.ts +8 -8
  516. package/dist/types/common.d.ts +0 -1
  517. package/dist/types/fileTypes.d.ts +1 -1
  518. package/dist/types/generateTypes.d.ts +42 -8
  519. package/dist/types/generateTypes.js +1 -1
  520. package/dist/types/index.d.ts +25 -24
  521. package/dist/types/index.js +21 -20
  522. package/dist/types/modelTypes.d.ts +10 -10
  523. package/dist/types/pptTypes.d.ts +14 -2
  524. package/dist/types/pptTypes.js +16 -0
  525. package/dist/types/streamTypes.d.ts +28 -8
  526. package/dist/types/streamTypes.js +1 -1
  527. package/dist/utils/async/delay.d.ts +40 -0
  528. package/dist/utils/async/delay.js +42 -0
  529. package/dist/utils/async/index.d.ts +23 -0
  530. package/dist/utils/async/index.js +23 -0
  531. package/dist/utils/async/retry.d.ts +141 -0
  532. package/dist/utils/async/retry.js +171 -0
  533. package/dist/utils/async/withTimeout.d.ts +73 -0
  534. package/dist/utils/async/withTimeout.js +96 -0
  535. package/dist/utils/fileDetector.d.ts +7 -1
  536. package/dist/utils/fileDetector.js +91 -18
  537. package/dist/utils/json/extract.d.ts +103 -0
  538. package/dist/utils/json/extract.js +248 -0
  539. package/dist/utils/json/index.d.ts +36 -0
  540. package/dist/utils/json/index.js +36 -0
  541. package/dist/utils/json/safeParse.d.ts +137 -0
  542. package/dist/utils/json/safeParse.js +190 -0
  543. package/dist/utils/messageBuilder.d.ts +2 -2
  544. package/dist/utils/messageBuilder.js +15 -7
  545. package/dist/utils/modelRouter.d.ts +4 -4
  546. package/dist/utils/modelRouter.js +4 -4
  547. package/dist/utils/sanitizers/filename.d.ts +137 -0
  548. package/dist/utils/sanitizers/filename.js +365 -0
  549. package/dist/utils/sanitizers/html.d.ts +170 -0
  550. package/dist/utils/sanitizers/html.js +325 -0
  551. package/dist/utils/sanitizers/index.d.ts +26 -0
  552. package/dist/utils/sanitizers/index.js +29 -0
  553. package/dist/utils/sanitizers/svg.d.ts +81 -0
  554. package/dist/utils/sanitizers/svg.js +482 -0
  555. 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
+ }