grepmind-core 0.1.0-alpha

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 (370) hide show
  1. package/LICENSE +190 -0
  2. package/dist/config/types.d.ts +174 -0
  3. package/dist/config/types.d.ts.map +1 -0
  4. package/dist/config/types.js +137 -0
  5. package/dist/config/types.js.map +1 -0
  6. package/dist/git.d.ts +98 -0
  7. package/dist/git.d.ts.map +1 -0
  8. package/dist/git.js +298 -0
  9. package/dist/git.js.map +1 -0
  10. package/dist/git.test.d.ts +7 -0
  11. package/dist/git.test.d.ts.map +1 -0
  12. package/dist/git.test.js +242 -0
  13. package/dist/git.test.js.map +1 -0
  14. package/dist/index.d.ts +44 -0
  15. package/dist/index.d.ts.map +1 -0
  16. package/dist/index.js +67 -0
  17. package/dist/index.js.map +1 -0
  18. package/dist/indexer/branch.d.ts +121 -0
  19. package/dist/indexer/branch.d.ts.map +1 -0
  20. package/dist/indexer/branch.js +451 -0
  21. package/dist/indexer/branch.js.map +1 -0
  22. package/dist/indexer/chunker.d.ts +9 -0
  23. package/dist/indexer/chunker.d.ts.map +1 -0
  24. package/dist/indexer/chunker.js +70 -0
  25. package/dist/indexer/chunker.js.map +1 -0
  26. package/dist/indexer/chunker.test.d.ts +2 -0
  27. package/dist/indexer/chunker.test.d.ts.map +1 -0
  28. package/dist/indexer/chunker.test.js +180 -0
  29. package/dist/indexer/chunker.test.js.map +1 -0
  30. package/dist/indexer/code/branch.d.ts +155 -0
  31. package/dist/indexer/code/branch.d.ts.map +1 -0
  32. package/dist/indexer/code/branch.js +550 -0
  33. package/dist/indexer/code/branch.js.map +1 -0
  34. package/dist/indexer/code/branch.test.d.ts +7 -0
  35. package/dist/indexer/code/branch.test.d.ts.map +1 -0
  36. package/dist/indexer/code/branch.test.js +241 -0
  37. package/dist/indexer/code/branch.test.js.map +1 -0
  38. package/dist/indexer/code/chunker.d.ts +61 -0
  39. package/dist/indexer/code/chunker.d.ts.map +1 -0
  40. package/dist/indexer/code/chunker.js +311 -0
  41. package/dist/indexer/code/chunker.js.map +1 -0
  42. package/dist/indexer/code/chunker.test.d.ts +2 -0
  43. package/dist/indexer/code/chunker.test.d.ts.map +1 -0
  44. package/dist/indexer/code/chunker.test.js +552 -0
  45. package/dist/indexer/code/chunker.test.js.map +1 -0
  46. package/dist/indexer/code/fts.test.d.ts +2 -0
  47. package/dist/indexer/code/fts.test.d.ts.map +1 -0
  48. package/dist/indexer/code/fts.test.js +14 -0
  49. package/dist/indexer/code/fts.test.js.map +1 -0
  50. package/dist/indexer/code/graph/embedded.d.ts +11 -0
  51. package/dist/indexer/code/graph/embedded.d.ts.map +1 -0
  52. package/dist/indexer/code/graph/embedded.js +152 -0
  53. package/dist/indexer/code/graph/embedded.js.map +1 -0
  54. package/dist/indexer/code/graph/embedded.test.d.ts +2 -0
  55. package/dist/indexer/code/graph/embedded.test.d.ts.map +1 -0
  56. package/dist/indexer/code/graph/embedded.test.js +105 -0
  57. package/dist/indexer/code/graph/embedded.test.js.map +1 -0
  58. package/dist/indexer/code/graph/facts.d.ts +11 -0
  59. package/dist/indexer/code/graph/facts.d.ts.map +1 -0
  60. package/dist/indexer/code/graph/facts.js +456 -0
  61. package/dist/indexer/code/graph/facts.js.map +1 -0
  62. package/dist/indexer/code/graph/facts.test.d.ts +2 -0
  63. package/dist/indexer/code/graph/facts.test.d.ts.map +1 -0
  64. package/dist/indexer/code/graph/facts.test.js +181 -0
  65. package/dist/indexer/code/graph/facts.test.js.map +1 -0
  66. package/dist/indexer/code/graph/id.d.ts +14 -0
  67. package/dist/indexer/code/graph/id.d.ts.map +1 -0
  68. package/dist/indexer/code/graph/id.js +40 -0
  69. package/dist/indexer/code/graph/id.js.map +1 -0
  70. package/dist/indexer/code/graph/id.test.d.ts +2 -0
  71. package/dist/indexer/code/graph/id.test.d.ts.map +1 -0
  72. package/dist/indexer/code/graph/id.test.js +86 -0
  73. package/dist/indexer/code/graph/id.test.js.map +1 -0
  74. package/dist/indexer/code/graph/index.d.ts +133 -0
  75. package/dist/indexer/code/graph/index.d.ts.map +1 -0
  76. package/dist/indexer/code/graph/index.js +1876 -0
  77. package/dist/indexer/code/graph/index.js.map +1 -0
  78. package/dist/indexer/code/graph/index.test.d.ts +2 -0
  79. package/dist/indexer/code/graph/index.test.d.ts.map +1 -0
  80. package/dist/indexer/code/graph/index.test.js +210 -0
  81. package/dist/indexer/code/graph/index.test.js.map +1 -0
  82. package/dist/indexer/code/graph/queries.d.ts +22 -0
  83. package/dist/indexer/code/graph/queries.d.ts.map +1 -0
  84. package/dist/indexer/code/graph/queries.js +79 -0
  85. package/dist/indexer/code/graph/queries.js.map +1 -0
  86. package/dist/indexer/code/graph/queries.test.d.ts +2 -0
  87. package/dist/indexer/code/graph/queries.test.d.ts.map +1 -0
  88. package/dist/indexer/code/graph/queries.test.js +108 -0
  89. package/dist/indexer/code/graph/queries.test.js.map +1 -0
  90. package/dist/indexer/code/graph/resolver.d.ts +136 -0
  91. package/dist/indexer/code/graph/resolver.d.ts.map +1 -0
  92. package/dist/indexer/code/graph/resolver.js +839 -0
  93. package/dist/indexer/code/graph/resolver.js.map +1 -0
  94. package/dist/indexer/code/graph/resolver.test.d.ts +2 -0
  95. package/dist/indexer/code/graph/resolver.test.d.ts.map +1 -0
  96. package/dist/indexer/code/graph/resolver.test.js +482 -0
  97. package/dist/indexer/code/graph/resolver.test.js.map +1 -0
  98. package/dist/indexer/code/graph/semantic.d.ts +33 -0
  99. package/dist/indexer/code/graph/semantic.d.ts.map +1 -0
  100. package/dist/indexer/code/graph/semantic.js +279 -0
  101. package/dist/indexer/code/graph/semantic.js.map +1 -0
  102. package/dist/indexer/code/graph/semantic.test.d.ts +2 -0
  103. package/dist/indexer/code/graph/semantic.test.d.ts.map +1 -0
  104. package/dist/indexer/code/graph/semantic.test.js +127 -0
  105. package/dist/indexer/code/graph/semantic.test.js.map +1 -0
  106. package/dist/indexer/code/index.d.ts +404 -0
  107. package/dist/indexer/code/index.d.ts.map +1 -0
  108. package/dist/indexer/code/index.js +2070 -0
  109. package/dist/indexer/code/index.js.map +1 -0
  110. package/dist/indexer/code/languages/bash.d.ts +14 -0
  111. package/dist/indexer/code/languages/bash.d.ts.map +1 -0
  112. package/dist/indexer/code/languages/bash.js +125 -0
  113. package/dist/indexer/code/languages/bash.js.map +1 -0
  114. package/dist/indexer/code/languages/css.d.ts +16 -0
  115. package/dist/indexer/code/languages/css.d.ts.map +1 -0
  116. package/dist/indexer/code/languages/css.js +204 -0
  117. package/dist/indexer/code/languages/css.js.map +1 -0
  118. package/dist/indexer/code/languages/generic.d.ts +61 -0
  119. package/dist/indexer/code/languages/generic.d.ts.map +1 -0
  120. package/dist/indexer/code/languages/generic.js +150 -0
  121. package/dist/indexer/code/languages/generic.js.map +1 -0
  122. package/dist/indexer/code/languages/graphql.d.ts +13 -0
  123. package/dist/indexer/code/languages/graphql.d.ts.map +1 -0
  124. package/dist/indexer/code/languages/graphql.js +180 -0
  125. package/dist/indexer/code/languages/graphql.js.map +1 -0
  126. package/dist/indexer/code/languages/html.d.ts +16 -0
  127. package/dist/indexer/code/languages/html.d.ts.map +1 -0
  128. package/dist/indexer/code/languages/html.js +138 -0
  129. package/dist/indexer/code/languages/html.js.map +1 -0
  130. package/dist/indexer/code/languages/index.d.ts +9 -0
  131. package/dist/indexer/code/languages/index.d.ts.map +1 -0
  132. package/dist/indexer/code/languages/index.js +12 -0
  133. package/dist/indexer/code/languages/index.js.map +1 -0
  134. package/dist/indexer/code/languages/json.d.ts +12 -0
  135. package/dist/indexer/code/languages/json.d.ts.map +1 -0
  136. package/dist/indexer/code/languages/json.js +66 -0
  137. package/dist/indexer/code/languages/json.js.map +1 -0
  138. package/dist/indexer/code/languages/registry.d.ts +78 -0
  139. package/dist/indexer/code/languages/registry.d.ts.map +1 -0
  140. package/dist/indexer/code/languages/registry.js +72 -0
  141. package/dist/indexer/code/languages/registry.js.map +1 -0
  142. package/dist/indexer/code/languages/typescript.d.ts +39 -0
  143. package/dist/indexer/code/languages/typescript.d.ts.map +1 -0
  144. package/dist/indexer/code/languages/typescript.js +300 -0
  145. package/dist/indexer/code/languages/typescript.js.map +1 -0
  146. package/dist/indexer/code/languages/yaml.d.ts +13 -0
  147. package/dist/indexer/code/languages/yaml.d.ts.map +1 -0
  148. package/dist/indexer/code/languages/yaml.js +90 -0
  149. package/dist/indexer/code/languages/yaml.js.map +1 -0
  150. package/dist/indexer/code/parser.d.ts +26 -0
  151. package/dist/indexer/code/parser.d.ts.map +1 -0
  152. package/dist/indexer/code/parser.js +332 -0
  153. package/dist/indexer/code/parser.js.map +1 -0
  154. package/dist/indexer/code/retry.d.ts +58 -0
  155. package/dist/indexer/code/retry.d.ts.map +1 -0
  156. package/dist/indexer/code/retry.js +192 -0
  157. package/dist/indexer/code/retry.js.map +1 -0
  158. package/dist/indexer/code/tree/builder.d.ts +30 -0
  159. package/dist/indexer/code/tree/builder.d.ts.map +1 -0
  160. package/dist/indexer/code/tree/builder.js +132 -0
  161. package/dist/indexer/code/tree/builder.js.map +1 -0
  162. package/dist/indexer/code/tree/builder.test.d.ts +2 -0
  163. package/dist/indexer/code/tree/builder.test.d.ts.map +1 -0
  164. package/dist/indexer/code/tree/builder.test.js +31 -0
  165. package/dist/indexer/code/tree/builder.test.js.map +1 -0
  166. package/dist/indexer/code/tree/cache.d.ts +22 -0
  167. package/dist/indexer/code/tree/cache.d.ts.map +1 -0
  168. package/dist/indexer/code/tree/cache.js +85 -0
  169. package/dist/indexer/code/tree/cache.js.map +1 -0
  170. package/dist/indexer/code/tree/context.d.ts +32 -0
  171. package/dist/indexer/code/tree/context.d.ts.map +1 -0
  172. package/dist/indexer/code/tree/context.js +78 -0
  173. package/dist/indexer/code/tree/context.js.map +1 -0
  174. package/dist/indexer/code/tree/embedding.d.ts +9 -0
  175. package/dist/indexer/code/tree/embedding.d.ts.map +1 -0
  176. package/dist/indexer/code/tree/embedding.js +53 -0
  177. package/dist/indexer/code/tree/embedding.js.map +1 -0
  178. package/dist/indexer/code/tree/embedding.test.d.ts +2 -0
  179. package/dist/indexer/code/tree/embedding.test.d.ts.map +1 -0
  180. package/dist/indexer/code/tree/embedding.test.js +57 -0
  181. package/dist/indexer/code/tree/embedding.test.js.map +1 -0
  182. package/dist/indexer/code/tree/id.d.ts +3 -0
  183. package/dist/indexer/code/tree/id.d.ts.map +1 -0
  184. package/dist/indexer/code/tree/id.js +8 -0
  185. package/dist/indexer/code/tree/id.js.map +1 -0
  186. package/dist/indexer/code/tree/index.d.ts +113 -0
  187. package/dist/indexer/code/tree/index.d.ts.map +1 -0
  188. package/dist/indexer/code/tree/index.js +1146 -0
  189. package/dist/indexer/code/tree/index.js.map +1 -0
  190. package/dist/indexer/code/tree/rename.d.ts +13 -0
  191. package/dist/indexer/code/tree/rename.d.ts.map +1 -0
  192. package/dist/indexer/code/tree/rename.js +46 -0
  193. package/dist/indexer/code/tree/rename.js.map +1 -0
  194. package/dist/indexer/code/tree/repomap.d.ts +29 -0
  195. package/dist/indexer/code/tree/repomap.d.ts.map +1 -0
  196. package/dist/indexer/code/tree/repomap.js +95 -0
  197. package/dist/indexer/code/tree/repomap.js.map +1 -0
  198. package/dist/indexer/code/tree/repomap.test.d.ts +2 -0
  199. package/dist/indexer/code/tree/repomap.test.d.ts.map +1 -0
  200. package/dist/indexer/code/tree/repomap.test.js +93 -0
  201. package/dist/indexer/code/tree/repomap.test.js.map +1 -0
  202. package/dist/indexer/code/tree/stats.d.ts +26 -0
  203. package/dist/indexer/code/tree/stats.d.ts.map +1 -0
  204. package/dist/indexer/code/tree/stats.js +49 -0
  205. package/dist/indexer/code/tree/stats.js.map +1 -0
  206. package/dist/indexer/code/tree/types.d.ts +186 -0
  207. package/dist/indexer/code/tree/types.d.ts.map +1 -0
  208. package/dist/indexer/code/tree/types.js +10 -0
  209. package/dist/indexer/code/tree/types.js.map +1 -0
  210. package/dist/indexer/code/wal.d.ts +144 -0
  211. package/dist/indexer/code/wal.d.ts.map +1 -0
  212. package/dist/indexer/code/wal.js +283 -0
  213. package/dist/indexer/code/wal.js.map +1 -0
  214. package/dist/indexer/embeddings.d.ts +113 -0
  215. package/dist/indexer/embeddings.d.ts.map +1 -0
  216. package/dist/indexer/embeddings.js +477 -0
  217. package/dist/indexer/embeddings.js.map +1 -0
  218. package/dist/indexer/git-sync.d.ts +117 -0
  219. package/dist/indexer/git-sync.d.ts.map +1 -0
  220. package/dist/indexer/git-sync.js +398 -0
  221. package/dist/indexer/git-sync.js.map +1 -0
  222. package/dist/indexer/index.d.ts +175 -0
  223. package/dist/indexer/index.d.ts.map +1 -0
  224. package/dist/indexer/index.js +1096 -0
  225. package/dist/indexer/index.js.map +1 -0
  226. package/dist/indexer/mocks/mock-reranker.d.ts +12 -0
  227. package/dist/indexer/mocks/mock-reranker.d.ts.map +1 -0
  228. package/dist/indexer/mocks/mock-reranker.js +26 -0
  229. package/dist/indexer/mocks/mock-reranker.js.map +1 -0
  230. package/dist/indexer/parser.d.ts +8 -0
  231. package/dist/indexer/parser.d.ts.map +1 -0
  232. package/dist/indexer/parser.js +44 -0
  233. package/dist/indexer/parser.js.map +1 -0
  234. package/dist/indexer/parser.test.d.ts +2 -0
  235. package/dist/indexer/parser.test.d.ts.map +1 -0
  236. package/dist/indexer/parser.test.js +197 -0
  237. package/dist/indexer/parser.test.js.map +1 -0
  238. package/dist/indexer/reranking.d.ts +71 -0
  239. package/dist/indexer/reranking.d.ts.map +1 -0
  240. package/dist/indexer/reranking.integration.test.d.ts +2 -0
  241. package/dist/indexer/reranking.integration.test.d.ts.map +1 -0
  242. package/dist/indexer/reranking.integration.test.js +104 -0
  243. package/dist/indexer/reranking.integration.test.js.map +1 -0
  244. package/dist/indexer/reranking.js +256 -0
  245. package/dist/indexer/reranking.js.map +1 -0
  246. package/dist/indexer/reranking.test.d.ts +2 -0
  247. package/dist/indexer/reranking.test.d.ts.map +1 -0
  248. package/dist/indexer/reranking.test.js +130 -0
  249. package/dist/indexer/reranking.test.js.map +1 -0
  250. package/dist/indexer/wal/file-storage.d.ts +60 -0
  251. package/dist/indexer/wal/file-storage.d.ts.map +1 -0
  252. package/dist/indexer/wal/file-storage.js +277 -0
  253. package/dist/indexer/wal/file-storage.js.map +1 -0
  254. package/dist/indexer/wal/file-storage.test.d.ts +8 -0
  255. package/dist/indexer/wal/file-storage.test.d.ts.map +1 -0
  256. package/dist/indexer/wal/file-storage.test.js +444 -0
  257. package/dist/indexer/wal/file-storage.test.js.map +1 -0
  258. package/dist/indexer/wal/index.d.ts +41 -0
  259. package/dist/indexer/wal/index.d.ts.map +1 -0
  260. package/dist/indexer/wal/index.js +61 -0
  261. package/dist/indexer/wal/index.js.map +1 -0
  262. package/dist/indexer/wal/integration.test.d.ts +11 -0
  263. package/dist/indexer/wal/integration.test.d.ts.map +1 -0
  264. package/dist/indexer/wal/integration.test.js +378 -0
  265. package/dist/indexer/wal/integration.test.js.map +1 -0
  266. package/dist/indexer/wal/lancedb-storage.d.ts +72 -0
  267. package/dist/indexer/wal/lancedb-storage.d.ts.map +1 -0
  268. package/dist/indexer/wal/lancedb-storage.js +462 -0
  269. package/dist/indexer/wal/lancedb-storage.js.map +1 -0
  270. package/dist/indexer/wal/lancedb-storage.test.d.ts +8 -0
  271. package/dist/indexer/wal/lancedb-storage.test.d.ts.map +1 -0
  272. package/dist/indexer/wal/lancedb-storage.test.js +415 -0
  273. package/dist/indexer/wal/lancedb-storage.test.js.map +1 -0
  274. package/dist/indexer/wal/sync-wal.d.ts +144 -0
  275. package/dist/indexer/wal/sync-wal.d.ts.map +1 -0
  276. package/dist/indexer/wal/sync-wal.js +863 -0
  277. package/dist/indexer/wal/sync-wal.js.map +1 -0
  278. package/dist/indexer/wal/sync-wal.test.d.ts +8 -0
  279. package/dist/indexer/wal/sync-wal.test.d.ts.map +1 -0
  280. package/dist/indexer/wal/sync-wal.test.js +752 -0
  281. package/dist/indexer/wal/sync-wal.test.js.map +1 -0
  282. package/dist/indexer/wal/types.d.ts +167 -0
  283. package/dist/indexer/wal/types.d.ts.map +1 -0
  284. package/dist/indexer/wal/types.js +12 -0
  285. package/dist/indexer/wal/types.js.map +1 -0
  286. package/dist/indexer/watcher.d.ts +36 -0
  287. package/dist/indexer/watcher.d.ts.map +1 -0
  288. package/dist/indexer/watcher.js +110 -0
  289. package/dist/indexer/watcher.js.map +1 -0
  290. package/dist/search/explore.d.ts +62 -0
  291. package/dist/search/explore.d.ts.map +1 -0
  292. package/dist/search/explore.js +111 -0
  293. package/dist/search/explore.js.map +1 -0
  294. package/dist/search/fts.d.ts +23 -0
  295. package/dist/search/fts.d.ts.map +1 -0
  296. package/dist/search/fts.js +64 -0
  297. package/dist/search/fts.js.map +1 -0
  298. package/dist/search/fts.test.d.ts +2 -0
  299. package/dist/search/fts.test.d.ts.map +1 -0
  300. package/dist/search/fts.test.js +27 -0
  301. package/dist/search/fts.test.js.map +1 -0
  302. package/dist/search/grep.d.ts +75 -0
  303. package/dist/search/grep.d.ts.map +1 -0
  304. package/dist/search/grep.js +96 -0
  305. package/dist/search/grep.js.map +1 -0
  306. package/dist/search/grep.test.d.ts +2 -0
  307. package/dist/search/grep.test.d.ts.map +1 -0
  308. package/dist/search/grep.test.js +178 -0
  309. package/dist/search/grep.test.js.map +1 -0
  310. package/dist/search/hybrid-grep.d.ts +43 -0
  311. package/dist/search/hybrid-grep.d.ts.map +1 -0
  312. package/dist/search/hybrid-grep.js +130 -0
  313. package/dist/search/hybrid-grep.js.map +1 -0
  314. package/dist/search/hybrid-grep.test.d.ts +2 -0
  315. package/dist/search/hybrid-grep.test.d.ts.map +1 -0
  316. package/dist/search/hybrid-grep.test.js +133 -0
  317. package/dist/search/hybrid-grep.test.js.map +1 -0
  318. package/dist/search/rg-executor.d.ts +63 -0
  319. package/dist/search/rg-executor.d.ts.map +1 -0
  320. package/dist/search/rg-executor.js +146 -0
  321. package/dist/search/rg-executor.js.map +1 -0
  322. package/dist/search/rg-executor.test.d.ts +2 -0
  323. package/dist/search/rg-executor.test.d.ts.map +1 -0
  324. package/dist/search/rg-executor.test.js +104 -0
  325. package/dist/search/rg-executor.test.js.map +1 -0
  326. package/dist/search/rg-parser/extractor.d.ts +14 -0
  327. package/dist/search/rg-parser/extractor.d.ts.map +1 -0
  328. package/dist/search/rg-parser/extractor.js +82 -0
  329. package/dist/search/rg-parser/extractor.js.map +1 -0
  330. package/dist/search/rg-parser/extractor.test.d.ts +2 -0
  331. package/dist/search/rg-parser/extractor.test.d.ts.map +1 -0
  332. package/dist/search/rg-parser/extractor.test.js +35 -0
  333. package/dist/search/rg-parser/extractor.test.js.map +1 -0
  334. package/dist/search/rg-parser/fts-builder.d.ts +7 -0
  335. package/dist/search/rg-parser/fts-builder.d.ts.map +1 -0
  336. package/dist/search/rg-parser/fts-builder.js +18 -0
  337. package/dist/search/rg-parser/fts-builder.js.map +1 -0
  338. package/dist/search/rg-parser/fts-builder.test.d.ts +2 -0
  339. package/dist/search/rg-parser/fts-builder.test.d.ts.map +1 -0
  340. package/dist/search/rg-parser/fts-builder.test.js +26 -0
  341. package/dist/search/rg-parser/fts-builder.test.js.map +1 -0
  342. package/dist/search/rg-parser/index.d.ts +36 -0
  343. package/dist/search/rg-parser/index.d.ts.map +1 -0
  344. package/dist/search/rg-parser/index.js +83 -0
  345. package/dist/search/rg-parser/index.js.map +1 -0
  346. package/dist/search/rg-parser/index.test.d.ts +2 -0
  347. package/dist/search/rg-parser/index.test.d.ts.map +1 -0
  348. package/dist/search/rg-parser/index.test.js +34 -0
  349. package/dist/search/rg-parser/index.test.js.map +1 -0
  350. package/dist/search/rg-parser/strategy.d.ts +14 -0
  351. package/dist/search/rg-parser/strategy.d.ts.map +1 -0
  352. package/dist/search/rg-parser/strategy.js +31 -0
  353. package/dist/search/rg-parser/strategy.js.map +1 -0
  354. package/dist/search/rg-parser/strategy.test.d.ts +2 -0
  355. package/dist/search/rg-parser/strategy.test.d.ts.map +1 -0
  356. package/dist/search/rg-parser/strategy.test.js +29 -0
  357. package/dist/search/rg-parser/strategy.test.js.map +1 -0
  358. package/dist/types.d.ts +345 -0
  359. package/dist/types.d.ts.map +1 -0
  360. package/dist/types.js +7 -0
  361. package/dist/types.js.map +1 -0
  362. package/dist/utils/vault.d.ts +84 -0
  363. package/dist/utils/vault.d.ts.map +1 -0
  364. package/dist/utils/vault.js +138 -0
  365. package/dist/utils/vault.js.map +1 -0
  366. package/dist/utils/vault.test.d.ts +2 -0
  367. package/dist/utils/vault.test.d.ts.map +1 -0
  368. package/dist/utils/vault.test.js +153 -0
  369. package/dist/utils/vault.test.js.map +1 -0
  370. package/package.json +69 -0
@@ -0,0 +1,550 @@
1
+ /**
2
+ * Branch-aware code indexer with overlay support.
3
+ * All dependencies are passed via constructor (no singletons).
4
+ *
5
+ * Architecture:
6
+ * - Base index: Full index for main branch (.lancedb/code_chunks)
7
+ * - Overlay index: Diff index for feature branches (.lancedb/overlays/{branch}/code_overlay_chunks)
8
+ *
9
+ * On feature branches:
10
+ * - Only changed/new chunks are stored in overlay
11
+ * - Deleted chunk IDs are tracked separately
12
+ * - Search merges base + overlay - deleted
13
+ */
14
+ import * as lancedb from '@lancedb/lancedb';
15
+ import { createHash } from 'node:crypto';
16
+ import fs from 'node:fs/promises';
17
+ import { existsSync, readdirSync, rmSync } from 'node:fs';
18
+ import { execSync } from 'node:child_process';
19
+ import path from 'node:path';
20
+ import { buildEmbeddingText } from './chunker.js';
21
+ import { createError, isError } from '../../types.js';
22
+ import { getGitInfo, getChangedFilesFromMain, sanitizeBranchName, } from '../../git.js';
23
+ /**
24
+ * Check if a file is a code file based on extension.
25
+ */
26
+ function isCodeFile(filePath) {
27
+ const codeExtensions = [
28
+ '.ts', '.tsx', '.js', '.jsx', '.mjs', '.cjs',
29
+ '.css', '.graphql', '.gql', '.graphqls',
30
+ '.json', '.yaml', '.yml', '.html', '.htm',
31
+ '.sh', '.bash', '.zsh',
32
+ ];
33
+ const ext = path.extname(filePath).toLowerCase();
34
+ return codeExtensions.includes(ext);
35
+ }
36
+ /**
37
+ * CodeBranchIndexer - branch-aware code indexing with overlay support.
38
+ * All dependencies are passed via constructor (no singletons).
39
+ */
40
+ export class CodeBranchIndexer {
41
+ embeddingProvider;
42
+ embeddingConfig;
43
+ codeConfig;
44
+ codeIndexer;
45
+ db = null;
46
+ overlayTable = null;
47
+ deletedTable = null;
48
+ gitInfo = null;
49
+ initialized = false;
50
+ rootPath;
51
+ overlayBaseDir;
52
+ constructor(rootPath, dbPath, deps, options = {}) {
53
+ this.rootPath = path.resolve(rootPath);
54
+ const stateDir = options.localStateDir ?? dbPath;
55
+ if (/^[a-z][a-z0-9+.-]*:\/\//i.test(stateDir)) {
56
+ const hash = createHash('sha1').update(stateDir).digest('hex').slice(0, 12);
57
+ this.overlayBaseDir = path.resolve(process.cwd(), '.lancedb-state', hash, 'code-overlays');
58
+ }
59
+ else {
60
+ this.overlayBaseDir = stateDir;
61
+ }
62
+ this.embeddingProvider = deps.embeddingProvider;
63
+ this.embeddingConfig = deps.embeddingConfig;
64
+ this.codeConfig = deps.codeConfig;
65
+ this.codeIndexer = deps.codeIndexer;
66
+ }
67
+ /**
68
+ * Get overlay directory for a branch.
69
+ */
70
+ getOverlayPath(branch) {
71
+ return path.join(this.overlayBaseDir, 'overlays', sanitizeBranchName(branch));
72
+ }
73
+ /**
74
+ * Get embedding dimensions.
75
+ */
76
+ getDimensions() {
77
+ return this.embeddingProvider.getDimensions();
78
+ }
79
+ /**
80
+ * Initialize branch indexer.
81
+ * Returns null if on main branch (use base indexer directly).
82
+ */
83
+ async initialize() {
84
+ if (this.initialized)
85
+ return this.gitInfo;
86
+ // Ensure base indexer is initialized
87
+ await this.codeIndexer.initialize();
88
+ this.gitInfo = getGitInfo(this.rootPath);
89
+ // If not in git repo or on main branch, no overlay needed
90
+ if (!this.gitInfo || this.gitInfo.isMainBranch) {
91
+ this.initialized = true;
92
+ return this.gitInfo;
93
+ }
94
+ // Create overlay directory
95
+ const overlayPath = this.getOverlayPath(this.gitInfo.branch);
96
+ await fs.mkdir(overlayPath, { recursive: true });
97
+ // Connect to overlay database
98
+ this.db = await lancedb.connect(overlayPath);
99
+ const tableNames = await this.db.tableNames();
100
+ // Open or create overlay tables
101
+ if (tableNames.includes('code_overlay_chunks')) {
102
+ this.overlayTable = await this.db.openTable('code_overlay_chunks');
103
+ }
104
+ if (tableNames.includes('code_deleted_chunks')) {
105
+ this.deletedTable = await this.db.openTable('code_deleted_chunks');
106
+ }
107
+ this.initialized = true;
108
+ return this.gitInfo;
109
+ }
110
+ /**
111
+ * Ensure overlay chunks table exists.
112
+ */
113
+ async ensureOverlayTable() {
114
+ if (this.overlayTable)
115
+ return this.overlayTable;
116
+ const dimensions = this.getDimensions();
117
+ const sampleData = [{
118
+ id: '__init__',
119
+ vector: new Array(dimensions).fill(0),
120
+ path: '',
121
+ language: '',
122
+ symbol_type: 'function',
123
+ symbol_name: '',
124
+ signature: '',
125
+ parent_symbol: '',
126
+ scope: '[]',
127
+ content: '',
128
+ start_line: 0,
129
+ end_line: 0,
130
+ docstring: '',
131
+ modified: 0,
132
+ content_hash: '',
133
+ }];
134
+ this.overlayTable = await this.db.createTable('code_overlay_chunks', sampleData, { mode: 'overwrite' });
135
+ await this.overlayTable.delete("id = '__init__'");
136
+ return this.overlayTable;
137
+ }
138
+ /**
139
+ * Ensure deleted chunks table exists.
140
+ */
141
+ async ensureDeletedTable() {
142
+ if (this.deletedTable)
143
+ return this.deletedTable;
144
+ const sampleData = [{
145
+ id: '__init__',
146
+ path: '',
147
+ deleted_at: 0,
148
+ }];
149
+ this.deletedTable = await this.db.createTable('code_deleted_chunks', sampleData, { mode: 'overwrite' });
150
+ await this.deletedTable.delete("id = '__init__'");
151
+ return this.deletedTable;
152
+ }
153
+ /**
154
+ * Get all deleted chunk IDs for current branch.
155
+ */
156
+ async getDeletedIds() {
157
+ if (!this.deletedTable)
158
+ return new Set();
159
+ const results = await this.deletedTable.query().select(['id']).toArray();
160
+ return new Set(results.map(r => r.id));
161
+ }
162
+ /**
163
+ * Get all overlay chunk IDs.
164
+ */
165
+ async getOverlayIds() {
166
+ if (!this.overlayTable)
167
+ return new Set();
168
+ const results = await this.overlayTable.query().select(['id']).toArray();
169
+ return new Set(results.map(r => r.id));
170
+ }
171
+ /**
172
+ * Get deleted file paths (files marked as completely deleted).
173
+ */
174
+ async getDeletedPaths() {
175
+ if (!this.deletedTable)
176
+ return new Set();
177
+ const results = await this.deletedTable.query().toArray();
178
+ const paths = new Set();
179
+ for (const r of results) {
180
+ const id = r.id;
181
+ if (id.startsWith('__file__')) {
182
+ paths.add(id.slice(8));
183
+ }
184
+ }
185
+ return paths;
186
+ }
187
+ /**
188
+ * Sanitize path for SQL WHERE clause.
189
+ */
190
+ sanitizePath(value) {
191
+ return value.replace(/'/g, "''");
192
+ }
193
+ /**
194
+ * Index a chunk in the overlay.
195
+ */
196
+ async indexOverlayChunk(chunk) {
197
+ const table = await this.ensureOverlayTable();
198
+ // Check if chunk already exists with same content
199
+ const existing = await table.query()
200
+ .where(`id = '${chunk.id}'`)
201
+ .toArray();
202
+ if (existing.length > 0 && existing[0].content_hash === chunk.contentHash) {
203
+ return chunk.id;
204
+ }
205
+ // Build embedding text and get embedding
206
+ const embeddingText = buildEmbeddingText(chunk);
207
+ const embedding = await this.embeddingProvider.getEmbedding(embeddingText);
208
+ if (isError(embedding))
209
+ return embedding;
210
+ // Delete existing if present
211
+ if (existing.length > 0) {
212
+ await table.delete(`id = '${chunk.id}'`);
213
+ }
214
+ // Also remove from deleted table if it was there
215
+ const deletedTable = await this.ensureDeletedTable();
216
+ await deletedTable.delete(`id = '${chunk.id}'`);
217
+ // Insert new chunk
218
+ const record = {
219
+ id: chunk.id,
220
+ vector: embedding,
221
+ path: chunk.path,
222
+ language: chunk.language,
223
+ symbol_type: chunk.symbolType,
224
+ symbol_name: chunk.symbolName,
225
+ signature: chunk.signature,
226
+ parent_symbol: chunk.parentSymbol,
227
+ scope: JSON.stringify(chunk.scope),
228
+ content: chunk.content,
229
+ start_line: chunk.startLine,
230
+ end_line: chunk.endLine,
231
+ docstring: chunk.docstring,
232
+ modified: chunk.modified,
233
+ content_hash: chunk.contentHash,
234
+ };
235
+ await table.add([record]);
236
+ return chunk.id;
237
+ }
238
+ /**
239
+ * Mark chunks as deleted in overlay.
240
+ */
241
+ async markDeleted(chunkIds, filePath) {
242
+ if (chunkIds.length === 0)
243
+ return;
244
+ const table = await this.ensureDeletedTable();
245
+ const now = Date.now();
246
+ for (const id of chunkIds) {
247
+ // Remove from overlay if exists
248
+ if (this.overlayTable) {
249
+ await this.overlayTable.delete(`id = '${id}'`);
250
+ }
251
+ // Check if not already marked
252
+ const existing = await table.query().where(`id = '${id}'`).toArray();
253
+ if (existing.length === 0) {
254
+ await table.add([{
255
+ id,
256
+ path: filePath,
257
+ deleted_at: now,
258
+ }]);
259
+ }
260
+ }
261
+ }
262
+ /**
263
+ * Index a file in the current branch context.
264
+ * - On main: indexes directly to base
265
+ * - On feature: indexes to overlay
266
+ */
267
+ async indexFile(filePath) {
268
+ const gitInfo = await this.initialize();
269
+ // On main branch, use base indexer
270
+ if (!gitInfo || gitInfo.isMainBranch) {
271
+ return this.codeIndexer.indexFile(filePath);
272
+ }
273
+ // On feature branch, index to overlay
274
+ const absolutePath = path.isAbsolute(filePath)
275
+ ? filePath
276
+ : path.join(this.rootPath, filePath);
277
+ const relativePath = path.relative(this.rootPath, absolutePath);
278
+ const chunkIds = [];
279
+ const errors = [];
280
+ try {
281
+ // Use base indexer to parse and create chunks (without saving to base)
282
+ // We reuse the indexFile method and then move chunks to overlay
283
+ const baseResult = await this.codeIndexer.indexFile(absolutePath);
284
+ // The base indexer already indexed to base - we need to handle this differently
285
+ // For feature branches, we should index only to overlay
286
+ // Since we can't prevent base indexer from writing, we'll just track in overlay
287
+ // and the search will prioritize overlay results
288
+ // Remove old overlay chunks for this file
289
+ if (this.overlayTable) {
290
+ await this.overlayTable.delete(`path = '${this.sanitizePath(relativePath)}'`);
291
+ }
292
+ // For simplicity, we rely on the search merge logic
293
+ // The base indexer indexed the file, overlay will track branch-specific changes
294
+ return baseResult;
295
+ }
296
+ catch (err) {
297
+ errors.push(createError('INDEX_FILE_ERROR', `Failed to index ${relativePath}`, {
298
+ error: err.message,
299
+ }));
300
+ return { chunkIds, errors };
301
+ }
302
+ }
303
+ /**
304
+ * Remove a file from index in current branch context.
305
+ */
306
+ async removeFile(filePath) {
307
+ const gitInfo = await this.initialize();
308
+ const relativePath = path.isAbsolute(filePath)
309
+ ? path.relative(this.rootPath, filePath)
310
+ : filePath;
311
+ // On main branch, use base indexer
312
+ if (!gitInfo || gitInfo.isMainBranch) {
313
+ return this.codeIndexer.removeFile(filePath);
314
+ }
315
+ // On feature branch:
316
+ // 1. Remove from overlay
317
+ if (this.overlayTable) {
318
+ await this.overlayTable.delete(`path = '${this.sanitizePath(relativePath)}'`);
319
+ }
320
+ // 2. Mark file as deleted (for base chunks)
321
+ const deletedTable = await this.ensureDeletedTable();
322
+ await deletedTable.add([{
323
+ id: `__file__${relativePath}`,
324
+ path: relativePath,
325
+ deleted_at: Date.now(),
326
+ }]);
327
+ }
328
+ /**
329
+ * Search with overlay support.
330
+ * Merges results from base + overlay, excluding deleted.
331
+ */
332
+ async search(query, options = {}) {
333
+ const gitInfo = await this.initialize();
334
+ // On main branch, use base indexer directly
335
+ if (!gitInfo || gitInfo.isMainBranch) {
336
+ return this.codeIndexer.search(query, options);
337
+ }
338
+ const limit = options.limit ?? 10;
339
+ const threshold = options.threshold ?? 0.5;
340
+ // Get query embedding (use 'query' type for Voyage AI asymmetric search)
341
+ const queryEmbedding = await this.embeddingProvider.getEmbedding(query, 'query');
342
+ if (isError(queryEmbedding))
343
+ return queryEmbedding;
344
+ // Get deleted IDs and overlay IDs
345
+ const deletedIds = await this.getDeletedIds();
346
+ const overlayIds = await this.getOverlayIds();
347
+ const deletedPaths = await this.getDeletedPaths();
348
+ const results = [];
349
+ // 1. Search overlay first
350
+ if (this.overlayTable) {
351
+ const count = await this.overlayTable.countRows();
352
+ if (count > 0) {
353
+ let searchQuery = this.overlayTable
354
+ .search(queryEmbedding)
355
+ .limit(limit * 2);
356
+ // Apply filters
357
+ const filters = [];
358
+ if (options.language) {
359
+ filters.push(`language = '${options.language}'`);
360
+ }
361
+ if (options.symbolTypes && options.symbolTypes.length > 0) {
362
+ const types = options.symbolTypes.map(t => `'${t}'`).join(', ');
363
+ filters.push(`symbol_type IN (${types})`);
364
+ }
365
+ if (options.path) {
366
+ filters.push(`path LIKE '${this.sanitizePath(options.path)}%'`);
367
+ }
368
+ if (filters.length > 0) {
369
+ searchQuery = searchQuery.where(filters.join(' AND '));
370
+ }
371
+ const overlayResults = await searchQuery.toArray();
372
+ for (const r of overlayResults) {
373
+ const distance = r._distance;
374
+ const score = 1 - (distance / 2);
375
+ if (score < threshold)
376
+ continue;
377
+ results.push({
378
+ id: r.id,
379
+ path: r.path,
380
+ language: r.language,
381
+ symbolType: r.symbol_type,
382
+ symbolName: r.symbol_name,
383
+ signature: r.signature,
384
+ parentSymbol: r.parent_symbol,
385
+ scope: JSON.parse(r.scope || '[]'),
386
+ content: r.content,
387
+ startLine: r.start_line,
388
+ endLine: r.end_line,
389
+ docstring: r.docstring,
390
+ modified: r.modified,
391
+ contentHash: r.content_hash,
392
+ score,
393
+ });
394
+ }
395
+ }
396
+ }
397
+ // 2. Search base index, excluding deleted and overlay IDs
398
+ const baseResults = await this.codeIndexer.search(query, {
399
+ ...options,
400
+ limit: limit * 2,
401
+ });
402
+ if (isError(baseResults))
403
+ return baseResults;
404
+ for (const r of baseResults) {
405
+ // Skip if file is deleted in this branch
406
+ if (deletedPaths.has(r.path))
407
+ continue;
408
+ // Skip if chunk is in overlay (overlay takes precedence) or deleted
409
+ if (overlayIds.has(r.id) || deletedIds.has(r.id))
410
+ continue;
411
+ results.push(r);
412
+ }
413
+ // 3. Sort by score and limit
414
+ results.sort((a, b) => b.score - a.score);
415
+ return results.slice(0, limit);
416
+ }
417
+ /**
418
+ * Sync overlay with current branch changes.
419
+ * Call this when switching to a feature branch.
420
+ */
421
+ async syncOverlay() {
422
+ const gitInfo = await this.initialize();
423
+ if (!gitInfo || gitInfo.isMainBranch) {
424
+ return { indexed: 0, deleted: 0, errors: [] };
425
+ }
426
+ // Get changed files from main with code file patterns
427
+ const codePatterns = ['*.ts', '*.tsx', '*.js', '*.jsx', '*.mjs', '*.cjs', '*.css', '*.graphql', '*.gql'];
428
+ const changes = getChangedFilesFromMain(this.rootPath, codePatterns);
429
+ // Filter to only code files
430
+ const codeModified = changes.modified.filter(f => isCodeFile(f));
431
+ const codeDeleted = changes.deleted.filter(f => isCodeFile(f));
432
+ let indexed = 0;
433
+ let deleted = 0;
434
+ const errors = [];
435
+ // Index modified files to overlay
436
+ for (const file of codeModified) {
437
+ const result = await this.indexFile(file);
438
+ indexed += result.chunkIds.length;
439
+ errors.push(...result.errors);
440
+ }
441
+ // Mark deleted files
442
+ for (const file of codeDeleted) {
443
+ await this.removeFile(file);
444
+ deleted++;
445
+ }
446
+ return { indexed, deleted, errors };
447
+ }
448
+ /**
449
+ * Clean up overlay for current branch.
450
+ */
451
+ async clearOverlay() {
452
+ const gitInfo = await this.initialize();
453
+ if (!gitInfo || gitInfo.isMainBranch)
454
+ return;
455
+ const overlayPath = this.getOverlayPath(gitInfo.branch);
456
+ try {
457
+ await fs.rm(overlayPath, { recursive: true });
458
+ }
459
+ catch {
460
+ // Directory might not exist
461
+ }
462
+ this.overlayTable = null;
463
+ this.deletedTable = null;
464
+ }
465
+ /**
466
+ * Clean up overlay for a specific branch.
467
+ * Called after merge or branch deletion.
468
+ */
469
+ async cleanupOverlay(branch) {
470
+ const overlayPath = this.getOverlayPath(branch);
471
+ if (existsSync(overlayPath)) {
472
+ rmSync(overlayPath, { recursive: true });
473
+ }
474
+ }
475
+ /**
476
+ * Clean up stale overlays (branches that no longer exist).
477
+ * Run periodically or on startup.
478
+ */
479
+ async cleanupStaleOverlays() {
480
+ const overlaysDir = path.join(this.overlayBaseDir, 'overlays');
481
+ if (!existsSync(overlaysDir))
482
+ return 0;
483
+ // Get list of existing branches
484
+ let existingBranches;
485
+ try {
486
+ const branchOutput = execSync('git branch --format="%(refname:short)"', {
487
+ cwd: this.rootPath,
488
+ encoding: 'utf-8',
489
+ stdio: ['pipe', 'pipe', 'pipe'],
490
+ });
491
+ existingBranches = new Set(branchOutput
492
+ .trim()
493
+ .split('\n')
494
+ .filter(b => b.length > 0)
495
+ .map(b => sanitizeBranchName(b)));
496
+ }
497
+ catch {
498
+ // Not in a git repo or git command failed
499
+ return 0;
500
+ }
501
+ let cleaned = 0;
502
+ const overlayDirs = readdirSync(overlaysDir);
503
+ for (const dir of overlayDirs) {
504
+ if (!existingBranches.has(dir)) {
505
+ const overlayPath = path.join(overlaysDir, dir);
506
+ rmSync(overlayPath, { recursive: true });
507
+ cleaned++;
508
+ }
509
+ }
510
+ return cleaned;
511
+ }
512
+ /**
513
+ * Get info about current indexing context.
514
+ */
515
+ async getInfo() {
516
+ const gitInfo = await this.initialize();
517
+ let baseChunks = 0;
518
+ let overlayChunks = 0;
519
+ let deletedChunks = 0;
520
+ // Get base stats
521
+ try {
522
+ const stats = await this.codeIndexer.getStats();
523
+ baseChunks = stats.totalChunks;
524
+ }
525
+ catch {
526
+ // Index might not exist yet
527
+ }
528
+ if (this.overlayTable) {
529
+ overlayChunks = await this.overlayTable.countRows();
530
+ }
531
+ if (this.deletedTable) {
532
+ deletedChunks = await this.deletedTable.countRows();
533
+ }
534
+ return {
535
+ branch: gitInfo?.branch || null,
536
+ isMainBranch: gitInfo?.isMainBranch ?? true,
537
+ mainBranch: gitInfo?.mainBranch || null,
538
+ baseChunks,
539
+ overlayChunks,
540
+ deletedChunks,
541
+ };
542
+ }
543
+ }
544
+ /**
545
+ * Factory function to create CodeBranchIndexer.
546
+ */
547
+ export function createCodeBranchIndexer(rootPath, dbPath, deps, options = {}) {
548
+ return new CodeBranchIndexer(rootPath, dbPath, deps, options);
549
+ }
550
+ //# sourceMappingURL=branch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"branch.js","sourceRoot":"","sources":["../../../src/indexer/code/branch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * CodeBranchIndexer Tests
3
+ *
4
+ * Tests for branch-aware code indexing with overlay support.
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=branch.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"branch.test.d.ts","sourceRoot":"","sources":["../../../src/indexer/code/branch.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}