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
@@ -1 +1 @@
1
- {"version":3,"file":"symbol-boost.test.js","sourceRoot":"","sources":["../../src/tests/symbol-boost.test.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAU9D,IAAI,CAAC,mDAAmD,EAAE,GAAG,EAAE;IAC7D,MAAM,OAAO,GAAY;QACvB,MAAM,EAAE;YACN,IAAI,EAAE,gBAAgB;YACtB,MAAM,EAAE,gBAAgB;YACxB,GAAG,EAAE,OAAO;YACZ,IAAI,EAAE,YAAY;YAClB,gBAAgB,EAAE,EAAE;SACrB;KACF,CAAC;IAEF,MAAM,OAAO,GAAiB;QAC5B,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,gBAAgB,EAAE,WAAW,EAAE,CAAC,EAAE;KACvE,CAAC;IAEF,gBAAgB,CAAC,OAAgB,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAE,CAAC,CAAC;IAE1E,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE,6BAA6B,CAAC,CAAC;IAChE,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,IAAI,IAAI,EAAE,0BAA0B,CAAC,CAAC;AACxE,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"symbol-boost.test.js","sourceRoot":"","sources":["../../src/tests/symbol-boost.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=symbols-extract.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"symbols-extract.test.d.ts","sourceRoot":"","sources":["../../src/tests/symbols-extract.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,536 @@
1
+ import test from 'node:test';
2
+ import assert from 'node:assert/strict';
3
+ import { buildSignature, extractCallNameFromSnippet, splitSymbolWords, extractSymbolMetadata, queryMatchesSignature } from '../symbols/extract.js';
4
+ function createMockNode(options) {
5
+ const { type = 'function_definition', startIndex = 0, endIndex = 100, children = [] } = options;
6
+ return {
7
+ type,
8
+ startIndex,
9
+ endIndex,
10
+ childCount: children.length,
11
+ child: (idx) => children[idx] ?? null
12
+ };
13
+ }
14
+ // ============================================================================
15
+ // Tests for splitSymbolWords
16
+ // ============================================================================
17
+ test('splitSymbolWords handles camelCase correctly', () => {
18
+ const result = splitSymbolWords('processPaymentRequest');
19
+ assert.deepEqual(result, ['process', 'payment', 'request']);
20
+ });
21
+ test('splitSymbolWords handles PascalCase correctly', () => {
22
+ const result = splitSymbolWords('PaymentProcessor');
23
+ assert.deepEqual(result, ['payment', 'processor']);
24
+ });
25
+ test('splitSymbolWords handles snake_case correctly', () => {
26
+ const result = splitSymbolWords('process_payment_request');
27
+ assert.deepEqual(result, ['process', 'payment', 'request']);
28
+ });
29
+ test('splitSymbolWords handles mixed case with underscores', () => {
30
+ const result = splitSymbolWords('get_UserName');
31
+ assert.deepEqual(result, ['get', 'user', 'name']);
32
+ });
33
+ test('splitSymbolWords returns empty array for empty string', () => {
34
+ const result = splitSymbolWords('');
35
+ assert.deepEqual(result, []);
36
+ });
37
+ test('splitSymbolWords returns empty array for null-like input', () => {
38
+ const result = splitSymbolWords(null);
39
+ assert.deepEqual(result, []);
40
+ });
41
+ test('splitSymbolWords strips special characters', () => {
42
+ const result = splitSymbolWords('$myFunction@test');
43
+ assert.deepEqual(result, ['my', 'function', 'test']);
44
+ });
45
+ test('splitSymbolWords handles single word', () => {
46
+ const result = splitSymbolWords('process');
47
+ assert.deepEqual(result, ['process']);
48
+ });
49
+ test('splitSymbolWords handles all uppercase', () => {
50
+ const result = splitSymbolWords('CONSTANT_VALUE');
51
+ assert.deepEqual(result, ['constant', 'value']);
52
+ });
53
+ test('splitSymbolWords handles numbers in symbols', () => {
54
+ // Numbers don't cause word splits - the regex only splits on lowercase-to-uppercase transitions
55
+ const result = splitSymbolWords('process2Request');
56
+ // process2Request splits at the lowercase 's' to uppercase 'R' transition
57
+ assert.deepEqual(result, ['process2request']);
58
+ });
59
+ // ============================================================================
60
+ // Tests for extractCallNameFromSnippet
61
+ // ============================================================================
62
+ test('extractCallNameFromSnippet extracts simple function call', () => {
63
+ const result = extractCallNameFromSnippet('processData()');
64
+ assert.equal(result, 'processData');
65
+ });
66
+ test('extractCallNameFromSnippet extracts function call with arguments', () => {
67
+ const result = extractCallNameFromSnippet('calculate(1, 2, 3)');
68
+ assert.equal(result, 'calculate');
69
+ });
70
+ test('extractCallNameFromSnippet extracts method call', () => {
71
+ const result = extractCallNameFromSnippet('object.doSomething()');
72
+ assert.equal(result, 'doSomething');
73
+ });
74
+ test('extractCallNameFromSnippet extracts chained method call', () => {
75
+ const result = extractCallNameFromSnippet('obj.chain.method()');
76
+ assert.equal(result, 'method');
77
+ });
78
+ test('extractCallNameFromSnippet extracts PHP-style method call', () => {
79
+ const result = extractCallNameFromSnippet('$object->processData()');
80
+ assert.equal(result, 'processData');
81
+ });
82
+ test('extractCallNameFromSnippet extracts static method call', () => {
83
+ const result = extractCallNameFromSnippet('ClassName::staticMethod()');
84
+ assert.equal(result, 'staticMethod');
85
+ });
86
+ test('extractCallNameFromSnippet returns null for no parentheses', () => {
87
+ const result = extractCallNameFromSnippet('justAVariable');
88
+ assert.equal(result, null);
89
+ });
90
+ test('extractCallNameFromSnippet returns null for blacklisted keywords', () => {
91
+ const blacklisted = ['if', 'for', 'while', 'switch', 'catch', 'return', 'function', 'class', 'new', 'await'];
92
+ for (const keyword of blacklisted) {
93
+ const result = extractCallNameFromSnippet(`${keyword}(condition)`);
94
+ assert.equal(result, null, `Should return null for keyword: ${keyword}`);
95
+ }
96
+ });
97
+ test('extractCallNameFromSnippet returns null for empty string', () => {
98
+ const result = extractCallNameFromSnippet('');
99
+ assert.equal(result, null);
100
+ });
101
+ test('extractCallNameFromSnippet handles whitespace before parenthesis', () => {
102
+ const result = extractCallNameFromSnippet('funcName ()');
103
+ assert.equal(result, 'funcName');
104
+ });
105
+ test('extractCallNameFromSnippet handles constructor-like calls', () => {
106
+ const result = extractCallNameFromSnippet('MyClass()');
107
+ assert.equal(result, 'MyClass');
108
+ });
109
+ // ============================================================================
110
+ // Tests for buildSignature
111
+ // ============================================================================
112
+ test('buildSignature creates class signature for class nodes', () => {
113
+ const node = createMockNode({ type: 'class_definition' });
114
+ const result = buildSignature('MyClass', 'class MyClass { }', node);
115
+ assert.equal(result.signature, 'class MyClass');
116
+ assert.deepEqual(result.parameters, []);
117
+ assert.equal(result.returnType, null);
118
+ });
119
+ test('buildSignature creates function signature with no parameters', () => {
120
+ const node = createMockNode({ type: 'function_definition' });
121
+ const result = buildSignature('doSomething', 'function doSomething() { }', node);
122
+ assert.equal(result.signature, 'doSomething()');
123
+ assert.deepEqual(result.parameters, []);
124
+ assert.equal(result.returnType, null);
125
+ });
126
+ test('buildSignature creates function signature with parameters', () => {
127
+ const node = createMockNode({ type: 'function_definition' });
128
+ const snippet = 'function calculate(a, b, c) { }';
129
+ const result = buildSignature('calculate', snippet, node);
130
+ assert.equal(result.signature, 'calculate(a, b, c)');
131
+ assert.deepEqual(result.parameters, ['a', 'b', 'c']);
132
+ assert.equal(result.returnType, null);
133
+ });
134
+ test('buildSignature extracts TypeScript return type with colon syntax', () => {
135
+ const node = createMockNode({ type: 'function_definition' });
136
+ const snippet = 'function getData(id: string): Promise<Data> { }';
137
+ const result = buildSignature('getData', snippet, node);
138
+ assert.ok(result.signature.includes('Promise<Data>'));
139
+ assert.equal(result.returnType, 'Promise<Data>');
140
+ });
141
+ test('buildSignature extracts arrow function return type', () => {
142
+ const node = createMockNode({ type: 'arrow_function' });
143
+ const snippet = 'const fn = (x) -> number { }';
144
+ const result = buildSignature('fn', snippet, node);
145
+ assert.equal(result.returnType, 'number');
146
+ });
147
+ test('buildSignature handles empty symbol', () => {
148
+ const node = createMockNode({ type: 'function_definition' });
149
+ const result = buildSignature('', 'function() { }', node);
150
+ assert.equal(result.signature, '');
151
+ assert.deepEqual(result.parameters, []);
152
+ assert.equal(result.returnType, null);
153
+ });
154
+ test('buildSignature handles whitespace-only symbol', () => {
155
+ const node = createMockNode({ type: 'function_definition' });
156
+ const result = buildSignature(' ', 'function() { }', node);
157
+ assert.equal(result.signature, '');
158
+ });
159
+ test('buildSignature normalizes parameters with defaults', () => {
160
+ const node = createMockNode({ type: 'function_definition' });
161
+ const snippet = 'function init(name = "default", count = 0) { }';
162
+ const result = buildSignature('init', snippet, node);
163
+ assert.deepEqual(result.parameters, ['name', 'count']);
164
+ });
165
+ test('buildSignature handles pointer/reference prefixes in parameters', () => {
166
+ const node = createMockNode({ type: 'function_definition' });
167
+ const snippet = 'function process(*ptr, &ref) { }';
168
+ const result = buildSignature('process', snippet, node);
169
+ assert.deepEqual(result.parameters, ['ptr', 'ref']);
170
+ });
171
+ test('buildSignature handles nested parentheses in parameters', () => {
172
+ const node = createMockNode({ type: 'function_definition' });
173
+ const snippet = 'function complex(fn: (a: number) => void, b: string) { }';
174
+ const result = buildSignature('complex', snippet, node);
175
+ // Should still extract something reasonable
176
+ assert.ok(result.parameters.length > 0);
177
+ });
178
+ test('buildSignature handles unbalanced parentheses gracefully', () => {
179
+ const node = createMockNode({ type: 'function_definition' });
180
+ const snippet = 'function broken(a, b { }';
181
+ const result = buildSignature('broken', snippet, node);
182
+ // Should not throw, should return empty or partial result
183
+ assert.ok(result.signature !== undefined);
184
+ });
185
+ test('buildSignature handles class_declaration node type', () => {
186
+ const node = createMockNode({ type: 'class_declaration' });
187
+ const result = buildSignature('UserService', 'class UserService {}', node);
188
+ assert.equal(result.signature, 'class UserService');
189
+ });
190
+ test('buildSignature limits parameters to MAX_PARAMETERS', () => {
191
+ const node = createMockNode({ type: 'function_definition' });
192
+ // Create a function with many parameters
193
+ const params = Array.from({ length: 20 }, (_, i) => `p${i}`).join(', ');
194
+ const snippet = `function manyParams(${params}) { }`;
195
+ const result = buildSignature('manyParams', snippet, node);
196
+ // MAX_PARAMETERS is 12
197
+ assert.ok(result.parameters.length <= 12, 'Should limit parameters to MAX_PARAMETERS');
198
+ });
199
+ // ============================================================================
200
+ // Tests for extractSymbolMetadata
201
+ // ============================================================================
202
+ test('extractSymbolMetadata extracts complete metadata from function node', () => {
203
+ const source = 'function calculateTotal(items, tax): number { return items.reduce(); }';
204
+ const node = createMockNode({
205
+ type: 'function_definition',
206
+ startIndex: 0,
207
+ endIndex: source.length
208
+ });
209
+ const result = extractSymbolMetadata({
210
+ node: node,
211
+ source,
212
+ symbol: 'calculateTotal'
213
+ });
214
+ assert.equal(typeof result.signature, 'string');
215
+ assert.ok(result.signature.includes('calculateTotal'));
216
+ assert.ok(Array.isArray(result.parameters));
217
+ assert.ok(Array.isArray(result.calls));
218
+ assert.ok(Array.isArray(result.keywords));
219
+ assert.ok(result.keywords.includes('calculate'));
220
+ assert.ok(result.keywords.includes('total'));
221
+ });
222
+ test('extractSymbolMetadata handles empty symbol', () => {
223
+ const source = 'function() { }';
224
+ const node = createMockNode({
225
+ type: 'function_definition',
226
+ startIndex: 0,
227
+ endIndex: source.length
228
+ });
229
+ const result = extractSymbolMetadata({
230
+ node: node,
231
+ source,
232
+ symbol: ''
233
+ });
234
+ assert.equal(result.signature, '');
235
+ assert.deepEqual(result.keywords, []);
236
+ });
237
+ test('extractSymbolMetadata extracts calls from nested call nodes', () => {
238
+ const source = 'function process() { helper(); utils.format(); }';
239
+ // Create a mock node tree with call nodes
240
+ const helperCall = createMockNode({
241
+ type: 'call_expression',
242
+ startIndex: 21,
243
+ endIndex: 29
244
+ });
245
+ const formatCall = createMockNode({
246
+ type: 'call_expression',
247
+ startIndex: 31,
248
+ endIndex: 45
249
+ });
250
+ const body = createMockNode({
251
+ type: 'block',
252
+ startIndex: 18,
253
+ endIndex: 47,
254
+ children: [helperCall, formatCall]
255
+ });
256
+ const node = createMockNode({
257
+ type: 'function_definition',
258
+ startIndex: 0,
259
+ endIndex: source.length,
260
+ children: [body]
261
+ });
262
+ const result = extractSymbolMetadata({
263
+ node: node,
264
+ source,
265
+ symbol: 'process'
266
+ });
267
+ // Since calls are extracted from call_expression nodes
268
+ assert.ok(Array.isArray(result.calls));
269
+ });
270
+ test('extractSymbolMetadata handles class nodes correctly', () => {
271
+ const source = 'class UserService { constructor(db) { } }';
272
+ const node = createMockNode({
273
+ type: 'class_definition',
274
+ startIndex: 0,
275
+ endIndex: source.length
276
+ });
277
+ const result = extractSymbolMetadata({
278
+ node: node,
279
+ source,
280
+ symbol: 'UserService'
281
+ });
282
+ assert.equal(result.signature, 'class UserService');
283
+ assert.ok(result.keywords.includes('user'));
284
+ assert.ok(result.keywords.includes('service'));
285
+ });
286
+ test('extractSymbolMetadata handles invocation node types', () => {
287
+ const source = 'invokeMethod()';
288
+ const node = createMockNode({
289
+ type: 'method_invocation',
290
+ startIndex: 0,
291
+ endIndex: source.length
292
+ });
293
+ const result = extractSymbolMetadata({
294
+ node: node,
295
+ source,
296
+ symbol: 'test'
297
+ });
298
+ assert.ok(result.calls.includes('invokeMethod'));
299
+ });
300
+ // ============================================================================
301
+ // Tests for queryMatchesSignature
302
+ // ============================================================================
303
+ test('queryMatchesSignature returns false for null metadata', () => {
304
+ const result = queryMatchesSignature('test query', null);
305
+ assert.equal(result, false);
306
+ });
307
+ test('queryMatchesSignature returns false for undefined metadata', () => {
308
+ const result = queryMatchesSignature('test query', undefined);
309
+ assert.equal(result, false);
310
+ });
311
+ test('queryMatchesSignature returns false for non-object metadata', () => {
312
+ const result = queryMatchesSignature('test query', 'not an object');
313
+ assert.equal(result, false);
314
+ });
315
+ test('queryMatchesSignature matches on symbol name', () => {
316
+ const metadata = {
317
+ symbol: 'processPayment',
318
+ signature: 'processPayment(amount)',
319
+ file: 'test.ts',
320
+ sha: 'abc123'
321
+ };
322
+ const result = queryMatchesSignature('how does processPayment work', metadata);
323
+ assert.equal(result, true);
324
+ });
325
+ test('queryMatchesSignature matches on signature', () => {
326
+ const metadata = {
327
+ symbol: 'calc',
328
+ signature: 'calculateTotal(items, tax)',
329
+ file: 'test.ts',
330
+ sha: 'abc123'
331
+ };
332
+ const result = queryMatchesSignature('calculateTotal', metadata);
333
+ assert.equal(result, true);
334
+ });
335
+ test('queryMatchesSignature matches on symbol_parameters', () => {
336
+ const metadata = {
337
+ symbol: 'process',
338
+ signature: 'process(userId)',
339
+ symbol_parameters: ['userId', 'amount', 'currency'],
340
+ file: 'test.ts',
341
+ sha: 'abc123'
342
+ };
343
+ const result = queryMatchesSignature('what is the userId parameter', metadata);
344
+ assert.equal(result, true);
345
+ });
346
+ test('queryMatchesSignature ignores short parameters (length <= 2)', () => {
347
+ const metadata = {
348
+ symbol: 'fn',
349
+ signature: 'fn(a, b)',
350
+ symbol_parameters: ['a', 'b', 'id'],
351
+ file: 'test.ts',
352
+ sha: 'abc123'
353
+ };
354
+ // 'id' is exactly 2 chars, should be ignored (length > 2 required)
355
+ const result = queryMatchesSignature('what is a b id', metadata);
356
+ assert.equal(result, false);
357
+ });
358
+ test('queryMatchesSignature matches on keywords with word boundary', () => {
359
+ const metadata = {
360
+ symbol: 'processUserData',
361
+ keywords: ['process', 'user', 'data'],
362
+ file: 'test.ts',
363
+ sha: 'abc123'
364
+ };
365
+ const result = queryMatchesSignature('how to process data', metadata);
366
+ assert.equal(result, true);
367
+ });
368
+ test('queryMatchesSignature ignores short keywords (< MIN_TOKEN_LENGTH)', () => {
369
+ const metadata = {
370
+ symbol: 'xyz', // symbol NOT in query
371
+ keywords: ['fn', 'a'], // short keywords that should be ignored
372
+ file: 'test.ts',
373
+ sha: 'abc123'
374
+ };
375
+ // MIN_TOKEN_LENGTH is 3, so 'fn' and 'a' should be ignored
376
+ // The query doesn't contain 'xyz', so symbol check fails
377
+ // Keywords 'fn' (len 2) and 'a' (len 1) are both < 3, so they're skipped
378
+ const result = queryMatchesSignature('what is fn a', metadata);
379
+ assert.equal(result, false);
380
+ });
381
+ test('queryMatchesSignature is case insensitive', () => {
382
+ const metadata = {
383
+ symbol: 'ProcessPayment',
384
+ signature: 'ProcessPayment(amount)',
385
+ file: 'test.ts',
386
+ sha: 'abc123'
387
+ };
388
+ const result = queryMatchesSignature('PROCESSPAYMENT implementation', metadata);
389
+ assert.equal(result, true);
390
+ });
391
+ test('queryMatchesSignature handles empty symbol and signature', () => {
392
+ const metadata = {
393
+ symbol: '',
394
+ signature: '',
395
+ file: 'test.ts',
396
+ sha: 'abc123'
397
+ };
398
+ const result = queryMatchesSignature('test query', metadata);
399
+ assert.equal(result, false);
400
+ });
401
+ test('queryMatchesSignature handles non-string symbol gracefully', () => {
402
+ const metadata = {
403
+ symbol: 123,
404
+ file: 'test.ts',
405
+ sha: 'abc123'
406
+ };
407
+ const result = queryMatchesSignature('test query', metadata);
408
+ assert.equal(result, false);
409
+ });
410
+ test('queryMatchesSignature handles non-array symbol_parameters', () => {
411
+ const metadata = {
412
+ symbol: 'test',
413
+ symbol_parameters: 'not an array',
414
+ file: 'test.ts',
415
+ sha: 'abc123'
416
+ };
417
+ // Should not throw
418
+ const result = queryMatchesSignature('test query', metadata);
419
+ assert.equal(typeof result, 'boolean');
420
+ });
421
+ test('queryMatchesSignature handles non-array keywords', () => {
422
+ const metadata = {
423
+ symbol: 'test',
424
+ keywords: 'not an array',
425
+ file: 'test.ts',
426
+ sha: 'abc123'
427
+ };
428
+ // Should not throw
429
+ const result = queryMatchesSignature('test query', metadata);
430
+ assert.equal(typeof result, 'boolean');
431
+ });
432
+ test('queryMatchesSignature handles empty arrays', () => {
433
+ const metadata = {
434
+ symbol: 'test',
435
+ symbol_parameters: [],
436
+ keywords: [],
437
+ file: 'test.ts',
438
+ sha: 'abc123'
439
+ };
440
+ const result = queryMatchesSignature('unrelated query', metadata);
441
+ assert.equal(result, false);
442
+ });
443
+ test('queryMatchesSignature handles keywords with special regex characters', () => {
444
+ const metadata = {
445
+ symbol: 'test',
446
+ keywords: ['process$data', 'user.name'],
447
+ file: 'test.ts',
448
+ sha: 'abc123'
449
+ };
450
+ // Should not throw due to unescaped regex chars
451
+ const result = queryMatchesSignature('test query', metadata);
452
+ assert.equal(typeof result, 'boolean');
453
+ });
454
+ test('queryMatchesSignature handles null values in parameters array', () => {
455
+ const metadata = {
456
+ symbol: 'test',
457
+ symbol_parameters: ['valid', null, 'another'],
458
+ file: 'test.ts',
459
+ sha: 'abc123'
460
+ };
461
+ // Should not throw
462
+ const result = queryMatchesSignature('valid parameter', metadata);
463
+ assert.equal(result, true);
464
+ });
465
+ test('queryMatchesSignature handles null values in keywords array', () => {
466
+ const metadata = {
467
+ symbol: 'test',
468
+ keywords: ['valid', null, undefined],
469
+ file: 'test.ts',
470
+ sha: 'abc123'
471
+ };
472
+ // Should not throw
473
+ const result = queryMatchesSignature('looking for valid keyword', metadata);
474
+ assert.equal(result, true);
475
+ });
476
+ // ============================================================================
477
+ // Edge cases and boundary conditions
478
+ // ============================================================================
479
+ test('buildSignature handles very long snippets', () => {
480
+ const node = createMockNode({
481
+ type: 'function_definition',
482
+ startIndex: 0,
483
+ endIndex: 10000
484
+ });
485
+ const longSource = 'function test(a, b) { ' + 'x'.repeat(10000) + ' }';
486
+ const result = buildSignature('test', longSource, node);
487
+ // Should not throw and should produce valid output
488
+ assert.ok(result.signature.length > 0);
489
+ });
490
+ test('extractCallNameFromSnippet handles deeply chained calls', () => {
491
+ const result = extractCallNameFromSnippet('a.b.c.d.e.finalMethod()');
492
+ assert.equal(result, 'finalMethod');
493
+ });
494
+ test('splitSymbolWords handles consecutive uppercase', () => {
495
+ const result = splitSymbolWords('XMLHTTPRequest');
496
+ // Splits on case transitions
497
+ assert.ok(result.length > 0);
498
+ });
499
+ test('extractSymbolMetadata handles source shorter than node indices', () => {
500
+ const source = 'fn()';
501
+ const node = createMockNode({
502
+ type: 'function_definition',
503
+ startIndex: 0,
504
+ endIndex: 100 // Beyond source length
505
+ });
506
+ // Should not throw
507
+ const result = extractSymbolMetadata({
508
+ node: node,
509
+ source,
510
+ symbol: 'fn'
511
+ });
512
+ assert.ok(result.signature !== undefined);
513
+ });
514
+ test('queryMatchesSignature handles query with only special characters', () => {
515
+ const metadata = {
516
+ symbol: 'test',
517
+ signature: 'test()',
518
+ file: 'test.ts',
519
+ sha: 'abc123'
520
+ };
521
+ const result = queryMatchesSignature('$#@!%^&*()', metadata);
522
+ assert.equal(result, false);
523
+ });
524
+ test('queryMatchesSignature handles very long query', () => {
525
+ const metadata = {
526
+ symbol: 'test',
527
+ signature: 'test()',
528
+ keywords: ['something'],
529
+ file: 'test.ts',
530
+ sha: 'abc123'
531
+ };
532
+ const longQuery = 'find something ' + 'word '.repeat(1000);
533
+ const result = queryMatchesSignature(longQuery, metadata);
534
+ assert.equal(result, true);
535
+ });
536
+ //# sourceMappingURL=symbols-extract.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"symbols-extract.test.js","sourceRoot":"","sources":["../../src/tests/symbols-extract.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=symbols-graph.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"symbols-graph.test.d.ts","sourceRoot":"","sources":["../../src/tests/symbols-graph.test.ts"],"names":[],"mappings":""}