codevault 1.8.4 → 1.8.5

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 (351) hide show
  1. package/README.md +3 -2
  2. package/dist/chunking/token-counter.d.ts.map +1 -1
  3. package/dist/chunking/token-counter.js +16 -10
  4. package/dist/chunking/token-counter.js.map +1 -1
  5. package/dist/cli/commands/index-cmd.d.ts.map +1 -1
  6. package/dist/cli/commands/index-cmd.js +108 -97
  7. package/dist/cli/commands/index-cmd.js.map +1 -1
  8. package/dist/cli/commands/interactive-config.d.ts.map +1 -1
  9. package/dist/cli/commands/interactive-config.js +40 -3
  10. package/dist/cli/commands/interactive-config.js.map +1 -1
  11. package/dist/cli/commands/search-cmd.d.ts.map +1 -1
  12. package/dist/cli/commands/search-cmd.js +11 -7
  13. package/dist/cli/commands/search-cmd.js.map +1 -1
  14. package/dist/cli/commands/search-with-code-cmd.d.ts.map +1 -1
  15. package/dist/cli/commands/search-with-code-cmd.js +3 -1
  16. package/dist/cli/commands/search-with-code-cmd.js.map +1 -1
  17. package/dist/cli/utils.d.ts +56 -0
  18. package/dist/cli/utils.d.ts.map +1 -0
  19. package/dist/cli/utils.js +98 -0
  20. package/dist/cli/utils.js.map +1 -0
  21. package/dist/config/constants.d.ts +4 -0
  22. package/dist/config/constants.d.ts.map +1 -1
  23. package/dist/config/constants.js +2 -0
  24. package/dist/config/constants.js.map +1 -1
  25. package/dist/context/packs.d.ts.map +1 -1
  26. package/dist/context/packs.js +3 -1
  27. package/dist/context/packs.js.map +1 -1
  28. package/dist/core/IndexerEngine.d.ts +2 -0
  29. package/dist/core/IndexerEngine.d.ts.map +1 -1
  30. package/dist/core/IndexerEngine.js +34 -26
  31. package/dist/core/IndexerEngine.js.map +1 -1
  32. package/dist/core/SearchService.d.ts +1 -0
  33. package/dist/core/SearchService.d.ts.map +1 -1
  34. package/dist/core/SearchService.js +18 -12
  35. package/dist/core/SearchService.js.map +1 -1
  36. package/dist/core/batch-indexer.d.ts.map +1 -1
  37. package/dist/core/batch-indexer.js +5 -13
  38. package/dist/core/batch-indexer.js.map +1 -1
  39. package/dist/core/indexing/IndexFinalizationStage.d.ts.map +1 -1
  40. package/dist/core/indexing/IndexFinalizationStage.js +21 -2
  41. package/dist/core/indexing/IndexFinalizationStage.js.map +1 -1
  42. package/dist/core/indexing/IndexState.d.ts +3 -8
  43. package/dist/core/indexing/IndexState.d.ts.map +1 -1
  44. package/dist/core/indexing/IndexState.js.map +1 -1
  45. package/dist/core/indexing/PersistManager.d.ts +1 -1
  46. package/dist/core/indexing/PersistManager.d.ts.map +1 -1
  47. package/dist/core/indexing/PersistManager.js +17 -17
  48. package/dist/core/indexing/PersistManager.js.map +1 -1
  49. package/dist/core/search/HybridFusion.d.ts +0 -1
  50. package/dist/core/search/HybridFusion.d.ts.map +1 -1
  51. package/dist/core/search/HybridFusion.js +2 -14
  52. package/dist/core/search/HybridFusion.js.map +1 -1
  53. package/dist/core/search/ResultMapper.d.ts +0 -1
  54. package/dist/core/search/ResultMapper.d.ts.map +1 -1
  55. package/dist/core/search/ResultMapper.js +2 -13
  56. package/dist/core/search/ResultMapper.js.map +1 -1
  57. package/dist/core/search/SearchContextManager.d.ts +3 -0
  58. package/dist/core/search/SearchContextManager.d.ts.map +1 -1
  59. package/dist/core/search/SearchContextManager.js +15 -2
  60. package/dist/core/search/SearchContextManager.js.map +1 -1
  61. package/dist/core/search.d.ts.map +1 -1
  62. package/dist/core/search.js +9 -4
  63. package/dist/core/search.js.map +1 -1
  64. package/dist/languages/rules.d.ts.map +1 -1
  65. package/dist/languages/rules.js +14 -5
  66. package/dist/languages/rules.js.map +1 -1
  67. package/dist/mcp/schemas.d.ts +2 -2
  68. package/dist/mcp-server.d.ts +1 -0
  69. package/dist/mcp-server.d.ts.map +1 -1
  70. package/dist/mcp-server.js +32 -21
  71. package/dist/mcp-server.js.map +1 -1
  72. package/dist/providers/base.d.ts +3 -2
  73. package/dist/providers/base.d.ts.map +1 -1
  74. package/dist/providers/base.js +3 -1
  75. package/dist/providers/base.js.map +1 -1
  76. package/dist/providers/chat-llm.d.ts +2 -2
  77. package/dist/providers/chat-llm.d.ts.map +1 -1
  78. package/dist/providers/chat-llm.js +4 -1
  79. package/dist/providers/chat-llm.js.map +1 -1
  80. package/dist/providers/openai.d.ts.map +1 -1
  81. package/dist/providers/openai.js +4 -1
  82. package/dist/providers/openai.js.map +1 -1
  83. package/dist/ranking/api-reranker.d.ts.map +1 -1
  84. package/dist/ranking/api-reranker.js +27 -8
  85. package/dist/ranking/api-reranker.js.map +1 -1
  86. package/dist/ranking/symbol-boost.d.ts.map +1 -1
  87. package/dist/ranking/symbol-boost.js +4 -11
  88. package/dist/ranking/symbol-boost.js.map +1 -1
  89. package/dist/search/bm25.d.ts +10 -0
  90. package/dist/search/bm25.d.ts.map +1 -1
  91. package/dist/search/bm25.js +16 -0
  92. package/dist/search/bm25.js.map +1 -1
  93. package/dist/storage/encrypted-chunks.d.ts +3 -0
  94. package/dist/storage/encrypted-chunks.d.ts.map +1 -1
  95. package/dist/storage/encrypted-chunks.js +108 -16
  96. package/dist/storage/encrypted-chunks.js.map +1 -1
  97. package/dist/synthesis/conversational-synthesizer.d.ts +2 -1
  98. package/dist/synthesis/conversational-synthesizer.d.ts.map +1 -1
  99. package/dist/synthesis/conversational-synthesizer.js +6 -1
  100. package/dist/synthesis/conversational-synthesizer.js.map +1 -1
  101. package/dist/synthesis/prompt-builder.d.ts.map +1 -1
  102. package/dist/synthesis/prompt-builder.js +40 -13
  103. package/dist/synthesis/prompt-builder.js.map +1 -1
  104. package/dist/synthesis/synthesizer.d.ts.map +1 -1
  105. package/dist/synthesis/synthesizer.js +14 -2
  106. package/dist/synthesis/synthesizer.js.map +1 -1
  107. package/dist/tests/api-reranker.test.d.ts +2 -0
  108. package/dist/tests/api-reranker.test.d.ts.map +1 -0
  109. package/dist/tests/api-reranker.test.js +575 -0
  110. package/dist/tests/api-reranker.test.js.map +1 -0
  111. package/dist/tests/bm25.test.d.ts +2 -0
  112. package/dist/tests/bm25.test.d.ts.map +1 -0
  113. package/dist/tests/bm25.test.js +340 -0
  114. package/dist/tests/bm25.test.js.map +1 -0
  115. package/dist/tests/chunking/file-grouper.test.d.ts +2 -0
  116. package/dist/tests/chunking/file-grouper.test.d.ts.map +1 -0
  117. package/dist/tests/chunking/file-grouper.test.js +495 -0
  118. package/dist/tests/chunking/file-grouper.test.js.map +1 -0
  119. package/dist/tests/chunking/semantic-chunker.test.d.ts +2 -0
  120. package/dist/tests/chunking/semantic-chunker.test.d.ts.map +1 -0
  121. package/dist/tests/chunking/semantic-chunker.test.js +509 -0
  122. package/dist/tests/chunking/semantic-chunker.test.js.map +1 -0
  123. package/dist/tests/chunking/token-counter.test.d.ts +2 -0
  124. package/dist/tests/chunking/token-counter.test.d.ts.map +1 -0
  125. package/dist/tests/chunking/token-counter.test.js +441 -0
  126. package/dist/tests/chunking/token-counter.test.js.map +1 -0
  127. package/dist/tests/cli/ask-cmd.test.d.ts +2 -0
  128. package/dist/tests/cli/ask-cmd.test.d.ts.map +1 -0
  129. package/dist/tests/cli/ask-cmd.test.js +152 -0
  130. package/dist/tests/cli/ask-cmd.test.js.map +1 -0
  131. package/dist/tests/cli/chat-cmd.test.d.ts +2 -0
  132. package/dist/tests/cli/chat-cmd.test.d.ts.map +1 -0
  133. package/dist/tests/cli/chat-cmd.test.js +118 -0
  134. package/dist/tests/cli/chat-cmd.test.js.map +1 -0
  135. package/dist/tests/cli/config-cmd.test.d.ts +2 -0
  136. package/dist/tests/cli/config-cmd.test.d.ts.map +1 -0
  137. package/dist/tests/cli/config-cmd.test.js +226 -0
  138. package/dist/tests/cli/config-cmd.test.js.map +1 -0
  139. package/dist/tests/cli/context.test.d.ts +2 -0
  140. package/dist/tests/cli/context.test.d.ts.map +1 -0
  141. package/dist/tests/cli/context.test.js +158 -0
  142. package/dist/tests/cli/context.test.js.map +1 -0
  143. package/dist/tests/cli/index-cmd.test.d.ts +2 -0
  144. package/dist/tests/cli/index-cmd.test.d.ts.map +1 -0
  145. package/dist/tests/cli/index-cmd.test.js +89 -0
  146. package/dist/tests/cli/index-cmd.test.js.map +1 -0
  147. package/dist/tests/cli/index.test.d.ts +2 -0
  148. package/dist/tests/cli/index.test.d.ts.map +1 -0
  149. package/dist/tests/cli/index.test.js +167 -0
  150. package/dist/tests/cli/index.test.js.map +1 -0
  151. package/dist/tests/cli/info-cmd.test.d.ts +2 -0
  152. package/dist/tests/cli/info-cmd.test.d.ts.map +1 -0
  153. package/dist/tests/cli/info-cmd.test.js +47 -0
  154. package/dist/tests/cli/info-cmd.test.js.map +1 -0
  155. package/dist/tests/cli/interactive-config.test.d.ts +2 -0
  156. package/dist/tests/cli/interactive-config.test.d.ts.map +1 -0
  157. package/dist/tests/cli/interactive-config.test.js +30 -0
  158. package/dist/tests/cli/interactive-config.test.js.map +1 -0
  159. package/dist/tests/cli/mcp-cmd.test.d.ts +2 -0
  160. package/dist/tests/cli/mcp-cmd.test.d.ts.map +1 -0
  161. package/dist/tests/cli/mcp-cmd.test.js +47 -0
  162. package/dist/tests/cli/mcp-cmd.test.js.map +1 -0
  163. package/dist/tests/cli/search-cmd.test.d.ts +2 -0
  164. package/dist/tests/cli/search-cmd.test.d.ts.map +1 -0
  165. package/dist/tests/cli/search-cmd.test.js +120 -0
  166. package/dist/tests/cli/search-cmd.test.js.map +1 -0
  167. package/dist/tests/cli/search-with-code-cmd.test.d.ts +2 -0
  168. package/dist/tests/cli/search-with-code-cmd.test.d.ts.map +1 -0
  169. package/dist/tests/cli/search-with-code-cmd.test.js +140 -0
  170. package/dist/tests/cli/search-with-code-cmd.test.js.map +1 -0
  171. package/dist/tests/cli/update-cmd.test.d.ts +2 -0
  172. package/dist/tests/cli/update-cmd.test.d.ts.map +1 -0
  173. package/dist/tests/cli/update-cmd.test.js +75 -0
  174. package/dist/tests/cli/update-cmd.test.js.map +1 -0
  175. package/dist/tests/cli/utils.test.d.ts +2 -0
  176. package/dist/tests/cli/utils.test.d.ts.map +1 -0
  177. package/dist/tests/cli/utils.test.js +119 -0
  178. package/dist/tests/cli/utils.test.js.map +1 -0
  179. package/dist/tests/cli/watch-cmd.test.d.ts +2 -0
  180. package/dist/tests/cli/watch-cmd.test.d.ts.map +1 -0
  181. package/dist/tests/cli/watch-cmd.test.js +84 -0
  182. package/dist/tests/cli/watch-cmd.test.js.map +1 -0
  183. package/dist/tests/cli-ui.test.d.ts +2 -0
  184. package/dist/tests/cli-ui.test.d.ts.map +1 -0
  185. package/dist/tests/cli-ui.test.js +608 -0
  186. package/dist/tests/cli-ui.test.js.map +1 -0
  187. package/dist/tests/codemap-io.test.d.ts +2 -0
  188. package/dist/tests/codemap-io.test.d.ts.map +1 -0
  189. package/dist/tests/codemap-io.test.js +992 -0
  190. package/dist/tests/codemap-io.test.js.map +1 -0
  191. package/dist/tests/config/apply-env.test.d.ts +2 -0
  192. package/dist/tests/config/apply-env.test.d.ts.map +1 -0
  193. package/dist/tests/config/apply-env.test.js +717 -0
  194. package/dist/tests/config/apply-env.test.js.map +1 -0
  195. package/dist/tests/config/constants.test.d.ts +2 -0
  196. package/dist/tests/config/constants.test.d.ts.map +1 -0
  197. package/dist/tests/config/constants.test.js +406 -0
  198. package/dist/tests/config/constants.test.js.map +1 -0
  199. package/dist/tests/config/loader.test.d.ts +2 -0
  200. package/dist/tests/config/loader.test.d.ts.map +1 -0
  201. package/dist/tests/config/loader.test.js +716 -0
  202. package/dist/tests/config/loader.test.js.map +1 -0
  203. package/dist/tests/config/resolver.test.d.ts +2 -0
  204. package/dist/tests/config/resolver.test.d.ts.map +1 -0
  205. package/dist/tests/config/resolver.test.js +402 -0
  206. package/dist/tests/config/resolver.test.js.map +1 -0
  207. package/dist/tests/config/types.test.d.ts +2 -0
  208. package/dist/tests/config/types.test.d.ts.map +1 -0
  209. package/dist/tests/config/types.test.js +460 -0
  210. package/dist/tests/config/types.test.js.map +1 -0
  211. package/dist/tests/context-packs.test.d.ts +2 -0
  212. package/dist/tests/context-packs.test.d.ts.map +1 -0
  213. package/dist/tests/context-packs.test.js +826 -0
  214. package/dist/tests/context-packs.test.js.map +1 -0
  215. package/dist/tests/conversational-synthesizer.test.d.ts +2 -0
  216. package/dist/tests/conversational-synthesizer.test.d.ts.map +1 -0
  217. package/dist/tests/conversational-synthesizer.test.js +595 -0
  218. package/dist/tests/conversational-synthesizer.test.js.map +1 -0
  219. package/dist/tests/database.test.d.ts +2 -0
  220. package/dist/tests/database.test.d.ts.map +1 -0
  221. package/dist/tests/database.test.js +965 -0
  222. package/dist/tests/database.test.js.map +1 -0
  223. package/dist/tests/encrypted-chunks.test.d.ts +2 -0
  224. package/dist/tests/encrypted-chunks.test.d.ts.map +1 -0
  225. package/dist/tests/encrypted-chunks.test.js +1470 -0
  226. package/dist/tests/encrypted-chunks.test.js.map +1 -0
  227. package/dist/tests/hybrid.test.d.ts +2 -0
  228. package/dist/tests/hybrid.test.d.ts.map +1 -0
  229. package/dist/tests/hybrid.test.js +456 -0
  230. package/dist/tests/hybrid.test.js.map +1 -0
  231. package/dist/tests/indexer/ChangeQueue.test.d.ts +12 -0
  232. package/dist/tests/indexer/ChangeQueue.test.d.ts.map +1 -0
  233. package/dist/tests/indexer/ChangeQueue.test.js +441 -0
  234. package/dist/tests/indexer/ChangeQueue.test.js.map +1 -0
  235. package/dist/tests/indexer/ProviderManager.test.d.ts +12 -0
  236. package/dist/tests/indexer/ProviderManager.test.d.ts.map +1 -0
  237. package/dist/tests/indexer/ProviderManager.test.js +290 -0
  238. package/dist/tests/indexer/ProviderManager.test.js.map +1 -0
  239. package/dist/tests/indexer/WatchService.test.d.ts +14 -0
  240. package/dist/tests/indexer/WatchService.test.d.ts.map +1 -0
  241. package/dist/tests/indexer/WatchService.test.js +667 -0
  242. package/dist/tests/indexer/WatchService.test.js.map +1 -0
  243. package/dist/tests/indexer/merkle.test.d.ts +11 -0
  244. package/dist/tests/indexer/merkle.test.d.ts.map +1 -0
  245. package/dist/tests/indexer/merkle.test.js +497 -0
  246. package/dist/tests/indexer/merkle.test.js.map +1 -0
  247. package/dist/tests/indexer/update.test.d.ts +10 -0
  248. package/dist/tests/indexer/update.test.d.ts.map +1 -0
  249. package/dist/tests/indexer/update.test.js +317 -0
  250. package/dist/tests/indexer/update.test.js.map +1 -0
  251. package/dist/tests/indexer/watch.test.d.ts +8 -0
  252. package/dist/tests/indexer/watch.test.d.ts.map +1 -0
  253. package/dist/tests/indexer/watch.test.js +95 -0
  254. package/dist/tests/indexer/watch.test.js.map +1 -0
  255. package/dist/tests/integration/index-search.integration.test.js +1 -0
  256. package/dist/tests/integration/index-search.integration.test.js.map +1 -1
  257. package/dist/tests/languages.test.d.ts +2 -0
  258. package/dist/tests/languages.test.d.ts.map +1 -0
  259. package/dist/tests/languages.test.js +575 -0
  260. package/dist/tests/languages.test.js.map +1 -0
  261. package/dist/tests/logger-redaction.test.d.ts +2 -0
  262. package/dist/tests/logger-redaction.test.d.ts.map +1 -0
  263. package/dist/tests/logger-redaction.test.js +48 -0
  264. package/dist/tests/logger-redaction.test.js.map +1 -0
  265. package/dist/tests/logger.test.d.ts +2 -0
  266. package/dist/tests/logger.test.d.ts.map +1 -0
  267. package/dist/tests/logger.test.js +468 -0
  268. package/dist/tests/logger.test.js.map +1 -0
  269. package/dist/tests/markdown-formatter.test.d.ts +2 -0
  270. package/dist/tests/markdown-formatter.test.d.ts.map +1 -0
  271. package/dist/tests/markdown-formatter.test.js +453 -0
  272. package/dist/tests/markdown-formatter.test.js.map +1 -0
  273. package/dist/tests/mcp/tools/use-context-pack.test.d.ts +7 -0
  274. package/dist/tests/mcp/tools/use-context-pack.test.d.ts.map +1 -0
  275. package/dist/tests/mcp/tools/use-context-pack.test.js +505 -0
  276. package/dist/tests/mcp/tools/use-context-pack.test.js.map +1 -0
  277. package/dist/tests/mutex.test.d.ts +2 -0
  278. package/dist/tests/mutex.test.d.ts.map +1 -0
  279. package/dist/tests/mutex.test.js +489 -0
  280. package/dist/tests/mutex.test.js.map +1 -0
  281. package/dist/tests/path-helpers.test.d.ts +2 -0
  282. package/dist/tests/path-helpers.test.d.ts.map +1 -0
  283. package/dist/tests/path-helpers.test.js +332 -0
  284. package/dist/tests/path-helpers.test.js.map +1 -0
  285. package/dist/tests/prompt-builder.test.d.ts +2 -0
  286. package/dist/tests/prompt-builder.test.d.ts.map +1 -0
  287. package/dist/tests/prompt-builder.test.js +417 -0
  288. package/dist/tests/prompt-builder.test.js.map +1 -0
  289. package/dist/tests/providers/base.test.d.ts +2 -0
  290. package/dist/tests/providers/base.test.d.ts.map +1 -0
  291. package/dist/tests/providers/base.test.js +299 -0
  292. package/dist/tests/providers/base.test.js.map +1 -0
  293. package/dist/tests/providers/chat-llm.test.d.ts +2 -0
  294. package/dist/tests/providers/chat-llm.test.d.ts.map +1 -0
  295. package/dist/tests/providers/chat-llm.test.js +435 -0
  296. package/dist/tests/providers/chat-llm.test.js.map +1 -0
  297. package/dist/tests/providers/index.test.d.ts +2 -0
  298. package/dist/tests/providers/index.test.d.ts.map +1 -0
  299. package/dist/tests/providers/index.test.js +204 -0
  300. package/dist/tests/providers/index.test.js.map +1 -0
  301. package/dist/tests/providers/mock.test.d.ts +2 -0
  302. package/dist/tests/providers/mock.test.d.ts.map +1 -0
  303. package/dist/tests/providers/mock.test.js +225 -0
  304. package/dist/tests/providers/mock.test.js.map +1 -0
  305. package/dist/tests/providers/openai.test.d.ts +2 -0
  306. package/dist/tests/providers/openai.test.d.ts.map +1 -0
  307. package/dist/tests/providers/openai.test.js +408 -0
  308. package/dist/tests/providers/openai.test.js.map +1 -0
  309. package/dist/tests/providers/token-counter.test.d.ts +2 -0
  310. package/dist/tests/providers/token-counter.test.d.ts.map +1 -0
  311. package/dist/tests/providers/token-counter.test.js +247 -0
  312. package/dist/tests/providers/token-counter.test.js.map +1 -0
  313. package/dist/tests/rate-limiter.test.js +392 -1
  314. package/dist/tests/rate-limiter.test.js.map +1 -1
  315. package/dist/tests/scope.test.d.ts +2 -0
  316. package/dist/tests/scope.test.d.ts.map +1 -0
  317. package/dist/tests/scope.test.js +529 -0
  318. package/dist/tests/scope.test.js.map +1 -0
  319. package/dist/tests/simple-lru.test.js +377 -0
  320. package/dist/tests/simple-lru.test.js.map +1 -1
  321. package/dist/tests/symbol-boost.test.js +730 -10
  322. package/dist/tests/symbol-boost.test.js.map +1 -1
  323. package/dist/tests/symbols-extract.test.d.ts +2 -0
  324. package/dist/tests/symbols-extract.test.d.ts.map +1 -0
  325. package/dist/tests/symbols-extract.test.js +536 -0
  326. package/dist/tests/symbols-extract.test.js.map +1 -0
  327. package/dist/tests/symbols-graph.test.d.ts +2 -0
  328. package/dist/tests/symbols-graph.test.d.ts.map +1 -0
  329. package/dist/tests/symbols-graph.test.js +656 -0
  330. package/dist/tests/symbols-graph.test.js.map +1 -0
  331. package/dist/tests/synthesizer.test.d.ts +2 -0
  332. package/dist/tests/synthesizer.test.d.ts.map +1 -0
  333. package/dist/tests/synthesizer.test.js +381 -0
  334. package/dist/tests/synthesizer.test.js.map +1 -0
  335. package/dist/types/context-pack.d.ts +3 -3
  336. package/dist/utils/logger.d.ts +5 -1
  337. package/dist/utils/logger.d.ts.map +1 -1
  338. package/dist/utils/logger.js +149 -4
  339. package/dist/utils/logger.js.map +1 -1
  340. package/dist/utils/mutex.d.ts +7 -2
  341. package/dist/utils/mutex.d.ts.map +1 -1
  342. package/dist/utils/mutex.js +31 -7
  343. package/dist/utils/mutex.js.map +1 -1
  344. package/dist/utils/path-helpers.d.ts.map +1 -1
  345. package/dist/utils/path-helpers.js +5 -2
  346. package/dist/utils/path-helpers.js.map +1 -1
  347. package/dist/utils/simple-lru.d.ts +6 -0
  348. package/dist/utils/simple-lru.d.ts.map +1 -1
  349. package/dist/utils/simple-lru.js +26 -0
  350. package/dist/utils/simple-lru.js.map +1 -1
  351. package/package.json +1 -1
@@ -0,0 +1,575 @@
1
+ import test from 'node:test';
2
+ import assert from 'node:assert/strict';
3
+ import { rerankWithAPI, isAPIRerankingConfigured } from '../ranking/api-reranker.js';
4
+ // Save original env vars
5
+ const originalEnv = {
6
+ CODEVAULT_RERANK_API_URL: process.env.CODEVAULT_RERANK_API_URL,
7
+ CODEVAULT_RERANK_API_KEY: process.env.CODEVAULT_RERANK_API_KEY,
8
+ CODEVAULT_RERANK_MODEL: process.env.CODEVAULT_RERANK_MODEL,
9
+ CODEVAULT_RERANK_TIMEOUT_MS: process.env.CODEVAULT_RERANK_TIMEOUT_MS,
10
+ CODEVAULT_RERANKER_MAX: process.env.CODEVAULT_RERANKER_MAX,
11
+ CODEVAULT_RERANKER_MAX_TOKENS: process.env.CODEVAULT_RERANKER_MAX_TOKENS,
12
+ };
13
+ function restoreEnv() {
14
+ for (const [key, value] of Object.entries(originalEnv)) {
15
+ if (value === undefined) {
16
+ delete process.env[key];
17
+ }
18
+ else {
19
+ process.env[key] = value;
20
+ }
21
+ }
22
+ }
23
+ function clearEnv() {
24
+ delete process.env.CODEVAULT_RERANK_API_URL;
25
+ delete process.env.CODEVAULT_RERANK_API_KEY;
26
+ delete process.env.CODEVAULT_RERANK_MODEL;
27
+ delete process.env.CODEVAULT_RERANK_TIMEOUT_MS;
28
+ delete process.env.CODEVAULT_RERANKER_MAX;
29
+ delete process.env.CODEVAULT_RERANKER_MAX_TOKENS;
30
+ }
31
+ // ============================================================================
32
+ // isAPIRerankingConfigured Tests
33
+ // ============================================================================
34
+ test('isAPIRerankingConfigured returns false when neither URL nor KEY is set', () => {
35
+ clearEnv();
36
+ const result = isAPIRerankingConfigured();
37
+ assert.equal(result, false);
38
+ restoreEnv();
39
+ });
40
+ test('isAPIRerankingConfigured returns false when only URL is set', () => {
41
+ clearEnv();
42
+ process.env.CODEVAULT_RERANK_API_URL = 'https://api.example.com/rerank';
43
+ const result = isAPIRerankingConfigured();
44
+ assert.equal(result, false);
45
+ restoreEnv();
46
+ });
47
+ test('isAPIRerankingConfigured returns false when only KEY is set', () => {
48
+ clearEnv();
49
+ process.env.CODEVAULT_RERANK_API_KEY = 'test-api-key';
50
+ const result = isAPIRerankingConfigured();
51
+ assert.equal(result, false);
52
+ restoreEnv();
53
+ });
54
+ test('isAPIRerankingConfigured returns true when both URL and KEY are set', () => {
55
+ clearEnv();
56
+ process.env.CODEVAULT_RERANK_API_URL = 'https://api.example.com/rerank';
57
+ process.env.CODEVAULT_RERANK_API_KEY = 'test-api-key';
58
+ const result = isAPIRerankingConfigured();
59
+ assert.equal(result, true);
60
+ restoreEnv();
61
+ });
62
+ test('isAPIRerankingConfigured returns false for empty URL string', () => {
63
+ clearEnv();
64
+ process.env.CODEVAULT_RERANK_API_URL = '';
65
+ process.env.CODEVAULT_RERANK_API_KEY = 'test-api-key';
66
+ const result = isAPIRerankingConfigured();
67
+ assert.equal(result, false);
68
+ restoreEnv();
69
+ });
70
+ test('isAPIRerankingConfigured returns false for empty KEY string', () => {
71
+ clearEnv();
72
+ process.env.CODEVAULT_RERANK_API_URL = 'https://api.example.com/rerank';
73
+ process.env.CODEVAULT_RERANK_API_KEY = '';
74
+ const result = isAPIRerankingConfigured();
75
+ assert.equal(result, false);
76
+ restoreEnv();
77
+ });
78
+ // ============================================================================
79
+ // rerankWithAPI - Edge Cases for Empty/Invalid Input
80
+ // ============================================================================
81
+ test('rerankWithAPI returns empty array for empty candidates', async () => {
82
+ const result = await rerankWithAPI('test query', []);
83
+ assert.deepEqual(result, []);
84
+ });
85
+ test('rerankWithAPI returns candidates unchanged for single candidate', async () => {
86
+ const candidates = [{ id: 'chunk1', score: 0.5 }];
87
+ const result = await rerankWithAPI('test query', candidates);
88
+ assert.deepEqual(result, candidates);
89
+ });
90
+ test('rerankWithAPI returns candidates unchanged for non-array input', async () => {
91
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
92
+ const result = await rerankWithAPI('test query', null);
93
+ assert.deepEqual(result, null);
94
+ });
95
+ test('rerankWithAPI returns candidates when max is 0', async () => {
96
+ const candidates = [
97
+ { id: 'chunk1', score: 0.8 },
98
+ { id: 'chunk2', score: 0.6 },
99
+ ];
100
+ const result = await rerankWithAPI('test query', candidates, { max: 0 });
101
+ assert.deepEqual(result, candidates);
102
+ });
103
+ test('rerankWithAPI returns candidates when max is negative', async () => {
104
+ const candidates = [
105
+ { id: 'chunk1', score: 0.8 },
106
+ { id: 'chunk2', score: 0.6 },
107
+ ];
108
+ const result = await rerankWithAPI('test query', candidates, { max: -5 });
109
+ assert.deepEqual(result, candidates);
110
+ });
111
+ test('rerankWithAPI returns candidates when max is 1', async () => {
112
+ const candidates = [
113
+ { id: 'chunk1', score: 0.8 },
114
+ { id: 'chunk2', score: 0.6 },
115
+ ];
116
+ const result = await rerankWithAPI('test query', candidates, { max: 1 });
117
+ assert.deepEqual(result, candidates);
118
+ });
119
+ // ============================================================================
120
+ // rerankWithAPI - Fallback Behavior on API Error
121
+ // ============================================================================
122
+ test('rerankWithAPI gracefully falls back when API URL is not configured', async () => {
123
+ clearEnv();
124
+ const candidates = [
125
+ { id: 'chunk1', score: 0.8 },
126
+ { id: 'chunk2', score: 0.6 },
127
+ ];
128
+ const result = await rerankWithAPI('test query', candidates, {
129
+ getText: (c) => String(c.id),
130
+ });
131
+ // Should return original candidates without throwing
132
+ assert.deepEqual(result, candidates);
133
+ restoreEnv();
134
+ });
135
+ test('rerankWithAPI gracefully falls back when API KEY is not configured', async () => {
136
+ clearEnv();
137
+ process.env.CODEVAULT_RERANK_API_URL = 'https://api.example.com/rerank';
138
+ const candidates = [
139
+ { id: 'chunk1', score: 0.8 },
140
+ { id: 'chunk2', score: 0.6 },
141
+ ];
142
+ const result = await rerankWithAPI('test query', candidates, {
143
+ getText: (c) => String(c.id),
144
+ });
145
+ // Should return original candidates without throwing
146
+ assert.deepEqual(result, candidates);
147
+ restoreEnv();
148
+ });
149
+ test('rerankWithAPI gracefully falls back on network error', async () => {
150
+ clearEnv();
151
+ process.env.CODEVAULT_RERANK_API_URL = 'https://invalid-host-that-does-not-exist.example.com/rerank';
152
+ process.env.CODEVAULT_RERANK_API_KEY = 'test-key';
153
+ process.env.CODEVAULT_RERANK_TIMEOUT_MS = '100';
154
+ const candidates = [
155
+ { id: 'chunk1', score: 0.8 },
156
+ { id: 'chunk2', score: 0.6 },
157
+ ];
158
+ const result = await rerankWithAPI('test query', candidates, {
159
+ getText: (c) => String(c.id),
160
+ });
161
+ // Should return original candidates without throwing
162
+ assert.deepEqual(result, candidates);
163
+ restoreEnv();
164
+ });
165
+ // ============================================================================
166
+ // rerankWithAPI - getText/getTextAsync Handlers
167
+ // ============================================================================
168
+ test('rerankWithAPI uses getText function when provided', async () => {
169
+ clearEnv();
170
+ let getTextCalled = false;
171
+ const candidates = [
172
+ { id: 'chunk1', content: 'hello world', score: 0.8 },
173
+ { id: 'chunk2', content: 'foo bar', score: 0.6 },
174
+ ];
175
+ await rerankWithAPI('test query', candidates, {
176
+ getText: (c) => {
177
+ getTextCalled = true;
178
+ return String(c.content);
179
+ },
180
+ });
181
+ assert.ok(getTextCalled, 'getText should have been called');
182
+ restoreEnv();
183
+ });
184
+ test('rerankWithAPI uses getTextAsync function when provided', async () => {
185
+ clearEnv();
186
+ let getTextAsyncCalled = false;
187
+ const candidates = [
188
+ { id: 'chunk1', content: 'hello world', score: 0.8 },
189
+ { id: 'chunk2', content: 'foo bar', score: 0.6 },
190
+ ];
191
+ await rerankWithAPI('test query', candidates, {
192
+ getTextAsync: async (c) => {
193
+ getTextAsyncCalled = true;
194
+ return String(c.content);
195
+ },
196
+ });
197
+ assert.ok(getTextAsyncCalled, 'getTextAsync should have been called');
198
+ restoreEnv();
199
+ });
200
+ test('rerankWithAPI prefers getTextAsync over getText when both provided', async () => {
201
+ clearEnv();
202
+ let getTextCalled = false;
203
+ let getTextAsyncCalled = false;
204
+ const candidates = [
205
+ { id: 'chunk1', content: 'hello world', score: 0.8 },
206
+ { id: 'chunk2', content: 'foo bar', score: 0.6 },
207
+ ];
208
+ await rerankWithAPI('test query', candidates, {
209
+ getText: () => {
210
+ getTextCalled = true;
211
+ return 'from getText';
212
+ },
213
+ getTextAsync: async () => {
214
+ getTextAsyncCalled = true;
215
+ return 'from getTextAsync';
216
+ },
217
+ });
218
+ assert.ok(getTextAsyncCalled, 'getTextAsync should have been called');
219
+ assert.ok(!getTextCalled, 'getText should not have been called when getTextAsync is present');
220
+ restoreEnv();
221
+ });
222
+ test('rerankWithAPI handles getText returning non-string', async () => {
223
+ clearEnv();
224
+ const candidates = [
225
+ { id: 'chunk1', score: 0.8 },
226
+ { id: 'chunk2', score: 0.6 },
227
+ ];
228
+ // Should not throw
229
+ const result = await rerankWithAPI('test query', candidates, {
230
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
231
+ getText: () => 12345,
232
+ });
233
+ assert.deepEqual(result, candidates);
234
+ restoreEnv();
235
+ });
236
+ test('rerankWithAPI returns empty string when no getText provided', async () => {
237
+ clearEnv();
238
+ const candidates = [
239
+ { id: 'chunk1', score: 0.8 },
240
+ { id: 'chunk2', score: 0.6 },
241
+ ];
242
+ // Should not throw, falls back gracefully
243
+ const result = await rerankWithAPI('test query', candidates);
244
+ assert.deepEqual(result, candidates);
245
+ restoreEnv();
246
+ });
247
+ // ============================================================================
248
+ // rerankWithAPI - maxCandidates Limiting
249
+ // ============================================================================
250
+ test('rerankWithAPI respects max option to limit candidates', async () => {
251
+ clearEnv();
252
+ const candidates = [
253
+ { id: 'chunk1', score: 0.9 },
254
+ { id: 'chunk2', score: 0.8 },
255
+ { id: 'chunk3', score: 0.7 },
256
+ { id: 'chunk4', score: 0.6 },
257
+ { id: 'chunk5', score: 0.5 },
258
+ ];
259
+ // Even if API fails, it should still process max candidates
260
+ const result = await rerankWithAPI('test query', candidates, { max: 3 });
261
+ // Fallback returns all candidates in original order
262
+ assert.equal(result.length, 5);
263
+ restoreEnv();
264
+ });
265
+ test('rerankWithAPI handles max larger than candidates length', async () => {
266
+ clearEnv();
267
+ const candidates = [
268
+ { id: 'chunk1', score: 0.9 },
269
+ { id: 'chunk2', score: 0.8 },
270
+ ];
271
+ const result = await rerankWithAPI('test query', candidates, { max: 100 });
272
+ assert.equal(result.length, 2);
273
+ restoreEnv();
274
+ });
275
+ test('rerankWithAPI handles fractional max value', async () => {
276
+ clearEnv();
277
+ const candidates = [
278
+ { id: 'chunk1', score: 0.9 },
279
+ { id: 'chunk2', score: 0.8 },
280
+ { id: 'chunk3', score: 0.7 },
281
+ ];
282
+ // Should floor to 2
283
+ const result = await rerankWithAPI('test query', candidates, { max: 2.7 });
284
+ assert.equal(result.length, 3); // Falls back, returns all
285
+ restoreEnv();
286
+ });
287
+ test('rerankWithAPI handles NaN max value', async () => {
288
+ clearEnv();
289
+ const candidates = [
290
+ { id: 'chunk1', score: 0.9 },
291
+ { id: 'chunk2', score: 0.8 },
292
+ ];
293
+ const result = await rerankWithAPI('test query', candidates, { max: NaN });
294
+ assert.equal(result.length, 2);
295
+ restoreEnv();
296
+ });
297
+ test('rerankWithAPI handles Infinity max value', async () => {
298
+ clearEnv();
299
+ const candidates = [
300
+ { id: 'chunk1', score: 0.9 },
301
+ { id: 'chunk2', score: 0.8 },
302
+ ];
303
+ const result = await rerankWithAPI('test query', candidates, { max: Infinity });
304
+ assert.equal(result.length, 2);
305
+ restoreEnv();
306
+ });
307
+ // ============================================================================
308
+ // rerankWithAPI - maxTokens Handling
309
+ // ============================================================================
310
+ test('rerankWithAPI handles maxTokens option', async () => {
311
+ clearEnv();
312
+ const candidates = [
313
+ { id: 'chunk1', content: 'a'.repeat(10000), score: 0.8 },
314
+ { id: 'chunk2', content: 'b'.repeat(10000), score: 0.6 },
315
+ ];
316
+ // Should not throw even with truncation
317
+ const result = await rerankWithAPI('test query', candidates, {
318
+ maxTokens: 100,
319
+ getText: (c) => String(c.content),
320
+ });
321
+ assert.equal(result.length, 2);
322
+ restoreEnv();
323
+ });
324
+ test('rerankWithAPI handles zero maxTokens', async () => {
325
+ clearEnv();
326
+ const candidates = [
327
+ { id: 'chunk1', content: 'hello', score: 0.8 },
328
+ { id: 'chunk2', content: 'world', score: 0.6 },
329
+ ];
330
+ // Should use default (at least 1)
331
+ const result = await rerankWithAPI('test query', candidates, {
332
+ maxTokens: 0,
333
+ getText: (c) => String(c.content),
334
+ });
335
+ assert.equal(result.length, 2);
336
+ restoreEnv();
337
+ });
338
+ test('rerankWithAPI handles negative maxTokens', async () => {
339
+ clearEnv();
340
+ const candidates = [
341
+ { id: 'chunk1', content: 'hello', score: 0.8 },
342
+ { id: 'chunk2', content: 'world', score: 0.6 },
343
+ ];
344
+ const result = await rerankWithAPI('test query', candidates, {
345
+ maxTokens: -100,
346
+ getText: (c) => String(c.content),
347
+ });
348
+ assert.equal(result.length, 2);
349
+ restoreEnv();
350
+ });
351
+ // ============================================================================
352
+ // rerankWithAPI - Custom API Configuration
353
+ // ============================================================================
354
+ test('rerankWithAPI uses custom apiUrl from options', async () => {
355
+ clearEnv();
356
+ process.env.CODEVAULT_RERANK_API_KEY = 'test-key';
357
+ const candidates = [
358
+ { id: 'chunk1', score: 0.8 },
359
+ { id: 'chunk2', score: 0.6 },
360
+ ];
361
+ // Should attempt to use custom URL (will fail, fallback)
362
+ const result = await rerankWithAPI('test query', candidates, {
363
+ apiUrl: 'https://custom-api.example.com/rerank',
364
+ getText: (c) => String(c.id),
365
+ });
366
+ assert.deepEqual(result, candidates);
367
+ restoreEnv();
368
+ });
369
+ test('rerankWithAPI uses custom apiKey from options', async () => {
370
+ clearEnv();
371
+ process.env.CODEVAULT_RERANK_API_URL = 'https://api.example.com/rerank';
372
+ const candidates = [
373
+ { id: 'chunk1', score: 0.8 },
374
+ { id: 'chunk2', score: 0.6 },
375
+ ];
376
+ // Should attempt to use custom key (will fail, fallback)
377
+ const result = await rerankWithAPI('test query', candidates, {
378
+ apiKey: 'custom-api-key',
379
+ getText: (c) => String(c.id),
380
+ });
381
+ assert.deepEqual(result, candidates);
382
+ restoreEnv();
383
+ });
384
+ test('rerankWithAPI uses custom model from options', async () => {
385
+ clearEnv();
386
+ process.env.CODEVAULT_RERANK_API_URL = 'https://api.example.com/rerank';
387
+ process.env.CODEVAULT_RERANK_API_KEY = 'test-key';
388
+ const candidates = [
389
+ { id: 'chunk1', score: 0.8 },
390
+ { id: 'chunk2', score: 0.6 },
391
+ ];
392
+ // Should not throw when custom model is provided
393
+ const result = await rerankWithAPI('test query', candidates, {
394
+ model: 'custom-rerank-model',
395
+ getText: (c) => String(c.id),
396
+ });
397
+ assert.deepEqual(result, candidates);
398
+ restoreEnv();
399
+ });
400
+ // ============================================================================
401
+ // rerankWithAPI - Environment Variable Parsing
402
+ // ============================================================================
403
+ test('rerankWithAPI respects CODEVAULT_RERANKER_MAX env var', async () => {
404
+ clearEnv();
405
+ process.env.CODEVAULT_RERANKER_MAX = '2';
406
+ const candidates = [
407
+ { id: 'chunk1', score: 0.9 },
408
+ { id: 'chunk2', score: 0.8 },
409
+ { id: 'chunk3', score: 0.7 },
410
+ ];
411
+ const result = await rerankWithAPI('test query', candidates);
412
+ assert.equal(result.length, 3);
413
+ restoreEnv();
414
+ });
415
+ test('rerankWithAPI handles invalid CODEVAULT_RERANKER_MAX env var', async () => {
416
+ clearEnv();
417
+ process.env.CODEVAULT_RERANKER_MAX = 'invalid';
418
+ const candidates = [
419
+ { id: 'chunk1', score: 0.9 },
420
+ { id: 'chunk2', score: 0.8 },
421
+ ];
422
+ // Should use default value, not throw
423
+ const result = await rerankWithAPI('test query', candidates);
424
+ assert.equal(result.length, 2);
425
+ restoreEnv();
426
+ });
427
+ test('rerankWithAPI respects CODEVAULT_RERANKER_MAX_TOKENS env var', async () => {
428
+ clearEnv();
429
+ process.env.CODEVAULT_RERANKER_MAX_TOKENS = '100';
430
+ const candidates = [
431
+ { id: 'chunk1', content: 'a'.repeat(10000), score: 0.8 },
432
+ { id: 'chunk2', content: 'b'.repeat(10000), score: 0.6 },
433
+ ];
434
+ const result = await rerankWithAPI('test query', candidates, {
435
+ getText: (c) => String(c.content),
436
+ });
437
+ assert.equal(result.length, 2);
438
+ restoreEnv();
439
+ });
440
+ test('rerankWithAPI handles invalid CODEVAULT_RERANKER_MAX_TOKENS env var', async () => {
441
+ clearEnv();
442
+ process.env.CODEVAULT_RERANKER_MAX_TOKENS = 'not-a-number';
443
+ const candidates = [
444
+ { id: 'chunk1', score: 0.8 },
445
+ { id: 'chunk2', score: 0.6 },
446
+ ];
447
+ // Should use default, not throw
448
+ const result = await rerankWithAPI('test query', candidates);
449
+ assert.equal(result.length, 2);
450
+ restoreEnv();
451
+ });
452
+ test('rerankWithAPI handles negative CODEVAULT_RERANK_TIMEOUT_MS env var', async () => {
453
+ clearEnv();
454
+ process.env.CODEVAULT_RERANK_TIMEOUT_MS = '-1000';
455
+ process.env.CODEVAULT_RERANK_API_URL = 'https://api.example.com/rerank';
456
+ process.env.CODEVAULT_RERANK_API_KEY = 'test-key';
457
+ const candidates = [
458
+ { id: 'chunk1', score: 0.8 },
459
+ { id: 'chunk2', score: 0.6 },
460
+ ];
461
+ // Should use default timeout, fallback gracefully
462
+ const result = await rerankWithAPI('test query', candidates, {
463
+ getText: (c) => String(c.id),
464
+ });
465
+ assert.deepEqual(result, candidates);
466
+ restoreEnv();
467
+ });
468
+ test('rerankWithAPI handles zero CODEVAULT_RERANK_TIMEOUT_MS env var', async () => {
469
+ clearEnv();
470
+ process.env.CODEVAULT_RERANK_TIMEOUT_MS = '0';
471
+ process.env.CODEVAULT_RERANK_API_URL = 'https://api.example.com/rerank';
472
+ process.env.CODEVAULT_RERANK_API_KEY = 'test-key';
473
+ const candidates = [
474
+ { id: 'chunk1', score: 0.8 },
475
+ { id: 'chunk2', score: 0.6 },
476
+ ];
477
+ // Should use default timeout
478
+ const result = await rerankWithAPI('test query', candidates, {
479
+ getText: (c) => String(c.id),
480
+ });
481
+ assert.deepEqual(result, candidates);
482
+ restoreEnv();
483
+ });
484
+ // ============================================================================
485
+ // rerankWithAPI - Candidate Mutation Verification
486
+ // ============================================================================
487
+ test('rerankWithAPI does not mutate original candidates on fallback', async () => {
488
+ clearEnv();
489
+ const original = [
490
+ { id: 'chunk1', score: 0.8 },
491
+ { id: 'chunk2', score: 0.6 },
492
+ ];
493
+ const candidates = [...original];
494
+ await rerankWithAPI('test query', candidates);
495
+ assert.deepEqual(candidates[0], original[0]);
496
+ assert.deepEqual(candidates[1], original[1]);
497
+ restoreEnv();
498
+ });
499
+ // ============================================================================
500
+ // rerankWithAPI - Multiple Candidates Ordering
501
+ // ============================================================================
502
+ test('rerankWithAPI preserves order on fallback for multiple candidates', async () => {
503
+ clearEnv();
504
+ const candidates = [
505
+ { id: 'chunk1', score: 0.9 },
506
+ { id: 'chunk2', score: 0.7 },
507
+ { id: 'chunk3', score: 0.5 },
508
+ { id: 'chunk4', score: 0.3 },
509
+ { id: 'chunk5', score: 0.1 },
510
+ ];
511
+ const result = await rerankWithAPI('test query', candidates);
512
+ assert.equal(result[0].id, 'chunk1');
513
+ assert.equal(result[1].id, 'chunk2');
514
+ assert.equal(result[2].id, 'chunk3');
515
+ assert.equal(result[3].id, 'chunk4');
516
+ assert.equal(result[4].id, 'chunk5');
517
+ restoreEnv();
518
+ });
519
+ // ============================================================================
520
+ // rerankWithAPI - Undefined/Null Handling in Candidates
521
+ // ============================================================================
522
+ test('rerankWithAPI handles candidates with undefined properties', async () => {
523
+ clearEnv();
524
+ const candidates = [
525
+ { id: 'chunk1', score: undefined },
526
+ { id: 'chunk2' },
527
+ ];
528
+ const result = await rerankWithAPI('test query', candidates);
529
+ assert.equal(result.length, 2);
530
+ restoreEnv();
531
+ });
532
+ test('rerankWithAPI handles empty getText result', async () => {
533
+ clearEnv();
534
+ const candidates = [
535
+ { id: 'chunk1', score: 0.8 },
536
+ { id: 'chunk2', score: 0.6 },
537
+ ];
538
+ const result = await rerankWithAPI('test query', candidates, {
539
+ getText: () => '',
540
+ });
541
+ assert.equal(result.length, 2);
542
+ restoreEnv();
543
+ });
544
+ // ============================================================================
545
+ // rerankWithAPI - Async getText Error Handling
546
+ // ============================================================================
547
+ test('rerankWithAPI handles getTextAsync throwing error', async () => {
548
+ clearEnv();
549
+ const candidates = [
550
+ { id: 'chunk1', score: 0.8 },
551
+ { id: 'chunk2', score: 0.6 },
552
+ ];
553
+ const result = await rerankWithAPI('test query', candidates, {
554
+ getTextAsync: async () => {
555
+ throw new Error('Async text retrieval failed');
556
+ },
557
+ });
558
+ // Should fallback gracefully
559
+ assert.deepEqual(result, candidates);
560
+ restoreEnv();
561
+ });
562
+ test('rerankWithAPI handles getTextAsync returning rejected promise', async () => {
563
+ clearEnv();
564
+ const candidates = [
565
+ { id: 'chunk1', score: 0.8 },
566
+ { id: 'chunk2', score: 0.6 },
567
+ ];
568
+ const result = await rerankWithAPI('test query', candidates, {
569
+ getTextAsync: () => Promise.reject(new Error('Promise rejected')),
570
+ });
571
+ // Should fallback gracefully
572
+ assert.deepEqual(result, candidates);
573
+ restoreEnv();
574
+ });
575
+ //# sourceMappingURL=api-reranker.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-reranker.test.js","sourceRoot":"","sources":["../../src/tests/api-reranker.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=bm25.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bm25.test.d.ts","sourceRoot":"","sources":["../../src/tests/bm25.test.ts"],"names":[],"mappings":""}