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,26 @@
1
+ import Parser, { Language, Tree } from 'web-tree-sitter';
2
+ import type { CodeSymbolType } from '../../types.js';
3
+ export interface ExtractedSymbol {
4
+ name: string;
5
+ type: CodeSymbolType;
6
+ startLine: number;
7
+ endLine: number;
8
+ node: Parser.SyntaxNode;
9
+ }
10
+ export declare class TreeSitterParser {
11
+ private parser;
12
+ private loadedLanguages;
13
+ private queries;
14
+ private initialized;
15
+ initialize(): Promise<void>;
16
+ loadLanguage(langKey: string): Promise<Language>;
17
+ getLanguageForFile(filePath: string): string | null;
18
+ getSupportedExtensions(): string[];
19
+ parse(content: string, langKey: string): Promise<Tree>;
20
+ extractSymbols(tree: Tree, langKey: string): ExtractedSymbol[];
21
+ extractComments(tree: Tree, langKey: string): ExtractedSymbol[];
22
+ deleteTree(tree: Tree): void;
23
+ private inferSymbolType;
24
+ }
25
+ export declare function createTreeSitterParser(): TreeSitterParser;
26
+ //# sourceMappingURL=parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../src/indexer/code/parser.ts"],"names":[],"mappings":"AAEA,OAAO,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAIzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAmNrD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,cAAc,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,eAAe,CAAoC;IAC3D,OAAO,CAAC,OAAO,CAA6E;IAC5F,OAAO,CAAC,WAAW,CAAS;IAEtB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ3B,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IA8BtD,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAUnD,sBAAsB,IAAI,MAAM,EAAE;IAQ5B,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAW5D,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,GAAG,eAAe,EAAE;IAwB9D,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,GAAG,eAAe,EAAE;IAsB/D,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAI5B,OAAO,CAAC,eAAe;CA6BxB;AAGD,wBAAgB,sBAAsB,IAAI,gBAAgB,CAEzD"}
@@ -0,0 +1,332 @@
1
+ // Tree-sitter parser for code indexing
2
+ import Parser from 'web-tree-sitter';
3
+ import { join, dirname } from 'path';
4
+ import { existsSync } from 'fs';
5
+ import { createRequire } from 'module';
6
+ // Resolve WASM files from node_modules/tree-sitter-wasms/out/
7
+ const require = createRequire(import.meta.url);
8
+ const WASMS_PATH = dirname(require.resolve('tree-sitter-wasms/package.json'));
9
+ const WASM_DIR = join(WASMS_PATH, 'out');
10
+ const LANGUAGES = {
11
+ typescript: {
12
+ wasmFile: 'tree-sitter-typescript.wasm',
13
+ extensions: ['.ts'],
14
+ queries: {
15
+ symbols: `
16
+ (function_declaration
17
+ name: (identifier) @name) @function
18
+
19
+ (class_declaration
20
+ name: (type_identifier) @name) @class
21
+
22
+ (interface_declaration
23
+ name: (type_identifier) @name) @interface
24
+
25
+ (type_alias_declaration
26
+ name: (type_identifier) @name) @type
27
+
28
+ (method_definition
29
+ name: (property_identifier) @name) @method
30
+
31
+ (lexical_declaration
32
+ (variable_declarator
33
+ name: (identifier) @name
34
+ value: (arrow_function))) @arrow_func
35
+
36
+ (lexical_declaration
37
+ (variable_declarator
38
+ name: (identifier) @name
39
+ value: (function_expression))) @func_expr
40
+ `,
41
+ comments: `(comment) @comment`,
42
+ },
43
+ },
44
+ tsx: {
45
+ wasmFile: 'tree-sitter-tsx.wasm',
46
+ extensions: ['.tsx'],
47
+ queries: {
48
+ symbols: `
49
+ (function_declaration
50
+ name: (identifier) @name) @function
51
+
52
+ (class_declaration
53
+ name: (type_identifier) @name) @class
54
+
55
+ (interface_declaration
56
+ name: (type_identifier) @name) @interface
57
+
58
+ (type_alias_declaration
59
+ name: (type_identifier) @name) @type
60
+
61
+ (method_definition
62
+ name: (property_identifier) @name) @method
63
+
64
+ (lexical_declaration
65
+ (variable_declarator
66
+ name: (identifier) @name
67
+ value: (arrow_function))) @arrow_func
68
+
69
+ (lexical_declaration
70
+ (variable_declarator
71
+ name: (identifier) @name
72
+ value: (function_expression))) @func_expr
73
+ `,
74
+ comments: `(comment) @comment`,
75
+ },
76
+ },
77
+ javascript: {
78
+ wasmFile: 'tree-sitter-javascript.wasm',
79
+ extensions: ['.js', '.mjs', '.cjs'],
80
+ queries: {
81
+ symbols: `
82
+ (function_declaration
83
+ name: (identifier) @name) @function
84
+
85
+ (class_declaration
86
+ name: (identifier) @name) @class
87
+
88
+ (method_definition
89
+ name: (property_identifier) @name) @method
90
+
91
+ (lexical_declaration
92
+ (variable_declarator
93
+ name: (identifier) @name
94
+ value: (arrow_function))) @arrow_func
95
+
96
+ (lexical_declaration
97
+ (variable_declarator
98
+ name: (identifier) @name
99
+ value: (function_expression))) @func_expr
100
+ `,
101
+ comments: `(comment) @comment`,
102
+ },
103
+ },
104
+ jsx: {
105
+ wasmFile: 'tree-sitter-tsx.wasm',
106
+ extensions: ['.jsx'],
107
+ queries: {
108
+ symbols: `
109
+ (function_declaration
110
+ name: (identifier) @name) @function
111
+
112
+ (class_declaration
113
+ name: (identifier) @name) @class
114
+
115
+ (method_definition
116
+ name: (property_identifier) @name) @method
117
+
118
+ (lexical_declaration
119
+ (variable_declarator
120
+ name: (identifier) @name
121
+ value: (arrow_function))) @arrow_func
122
+
123
+ (lexical_declaration
124
+ (variable_declarator
125
+ name: (identifier) @name
126
+ value: (function_expression))) @func_expr
127
+ `,
128
+ comments: `(comment) @comment`,
129
+ },
130
+ },
131
+ css: {
132
+ wasmFile: 'tree-sitter-css.wasm',
133
+ extensions: ['.css'],
134
+ queries: {
135
+ symbols: `
136
+ (rule_set (selectors) @selector) @rule
137
+ (media_statement) @media
138
+ (keyframes_statement name: (keyframes_name) @name) @keyframes
139
+ `,
140
+ comments: `(comment) @comment`,
141
+ },
142
+ },
143
+ graphql: {
144
+ wasmFile: 'tree-sitter-graphql.wasm',
145
+ extensions: ['.graphql', '.gql', '.graphqls'],
146
+ queries: {
147
+ symbols: `
148
+ (operation_definition name: (name) @name) @operation
149
+ (fragment_definition name: (name) @name) @fragment
150
+ (object_type_definition name: (name) @name) @type
151
+ (interface_type_definition name: (name) @name) @interface
152
+ (enum_type_definition name: (name) @name) @enum
153
+ (input_object_type_definition name: (name) @name) @input
154
+ (scalar_type_definition name: (name) @name) @scalar
155
+ (directive_definition name: (name) @name) @directive
156
+ `,
157
+ comments: `(comment) @comment`,
158
+ },
159
+ },
160
+ json: {
161
+ wasmFile: 'tree-sitter-json.wasm',
162
+ extensions: ['.json', '.jsonc'],
163
+ queries: {
164
+ symbols: `
165
+ (pair key: (string) @name) @pair
166
+ `,
167
+ comments: `(comment) @comment`,
168
+ },
169
+ },
170
+ yaml: {
171
+ wasmFile: 'tree-sitter-yaml.wasm',
172
+ extensions: ['.yaml', '.yml'],
173
+ queries: {
174
+ symbols: `
175
+ (block_mapping_pair key: (flow_node) @name) @pair
176
+ `,
177
+ comments: `(comment) @comment`,
178
+ },
179
+ },
180
+ html: {
181
+ wasmFile: 'tree-sitter-html.wasm',
182
+ extensions: ['.html', '.htm'],
183
+ queries: {
184
+ symbols: `
185
+ (element (start_tag (tag_name) @name)) @element
186
+ (script_element (start_tag (tag_name) @name)) @script
187
+ (style_element (start_tag (tag_name) @name)) @style
188
+ `,
189
+ comments: `(comment) @comment`,
190
+ },
191
+ },
192
+ bash: {
193
+ wasmFile: 'tree-sitter-bash.wasm',
194
+ extensions: ['.sh', '.bash', '.zsh'],
195
+ queries: {
196
+ symbols: `
197
+ (function_definition name: (word) @name) @function
198
+ (variable_assignment name: (variable_name) @name) @variable
199
+ `,
200
+ comments: `(comment) @comment`,
201
+ },
202
+ },
203
+ };
204
+ export class TreeSitterParser {
205
+ parser = null;
206
+ loadedLanguages = new Map();
207
+ queries = new Map();
208
+ initialized = false;
209
+ async initialize() {
210
+ if (this.initialized)
211
+ return;
212
+ await Parser.init();
213
+ this.parser = new Parser();
214
+ this.initialized = true;
215
+ }
216
+ async loadLanguage(langKey) {
217
+ if (this.loadedLanguages.has(langKey)) {
218
+ return this.loadedLanguages.get(langKey);
219
+ }
220
+ const config = LANGUAGES[langKey];
221
+ if (!config) {
222
+ throw new Error(`Unknown language: ${langKey}`);
223
+ }
224
+ const wasmPath = join(WASM_DIR, config.wasmFile);
225
+ if (!existsSync(wasmPath)) {
226
+ throw new Error(`WASM file not found: ${wasmPath}. ` +
227
+ `Run: npm install tree-sitter-wasms`);
228
+ }
229
+ const language = await Parser.Language.load(wasmPath);
230
+ this.loadedLanguages.set(langKey, language);
231
+ this.queries.set(langKey, {
232
+ symbols: language.query(config.queries.symbols),
233
+ comments: language.query(config.queries.comments),
234
+ });
235
+ return language;
236
+ }
237
+ getLanguageForFile(filePath) {
238
+ const ext = filePath.slice(filePath.lastIndexOf('.'));
239
+ for (const [langKey, config] of Object.entries(LANGUAGES)) {
240
+ if (config.extensions.includes(ext)) {
241
+ return langKey;
242
+ }
243
+ }
244
+ return null;
245
+ }
246
+ getSupportedExtensions() {
247
+ const extensions = [];
248
+ for (const config of Object.values(LANGUAGES)) {
249
+ extensions.push(...config.extensions);
250
+ }
251
+ return extensions;
252
+ }
253
+ async parse(content, langKey) {
254
+ if (!this.parser) {
255
+ throw new Error('Parser not initialized. Call initialize() first.');
256
+ }
257
+ const language = await this.loadLanguage(langKey);
258
+ this.parser.setLanguage(language);
259
+ return this.parser.parse(content);
260
+ }
261
+ extractSymbols(tree, langKey) {
262
+ const querySet = this.queries.get(langKey);
263
+ if (!querySet) {
264
+ throw new Error(`Queries not loaded for language: ${langKey}`);
265
+ }
266
+ const symbols = [];
267
+ const captures = querySet.symbols.captures(tree.rootNode);
268
+ for (const capture of captures) {
269
+ if (capture.name === 'name') {
270
+ symbols.push({
271
+ name: capture.node.text,
272
+ type: this.inferSymbolType(capture),
273
+ startLine: capture.node.startPosition.row + 1,
274
+ endLine: capture.node.endPosition.row + 1,
275
+ node: capture.node.parent,
276
+ });
277
+ }
278
+ }
279
+ return symbols;
280
+ }
281
+ extractComments(tree, langKey) {
282
+ const querySet = this.queries.get(langKey);
283
+ if (!querySet) {
284
+ throw new Error(`Queries not loaded for language: ${langKey}`);
285
+ }
286
+ const comments = [];
287
+ const captures = querySet.comments.captures(tree.rootNode);
288
+ for (const capture of captures) {
289
+ comments.push({
290
+ name: '',
291
+ type: 'comment',
292
+ startLine: capture.node.startPosition.row + 1,
293
+ endLine: capture.node.endPosition.row + 1,
294
+ node: capture.node,
295
+ });
296
+ }
297
+ return comments;
298
+ }
299
+ deleteTree(tree) {
300
+ tree.delete();
301
+ }
302
+ inferSymbolType(capture) {
303
+ const parent = capture.node.parent;
304
+ if (!parent)
305
+ return 'variable';
306
+ const parentType = parent.type;
307
+ const typeMap = {
308
+ 'function_declaration': 'function',
309
+ 'arrow_function': 'function',
310
+ 'function_expression': 'function',
311
+ 'class_declaration': 'class',
312
+ 'method_definition': 'method',
313
+ 'interface_declaration': 'interface',
314
+ 'type_alias_declaration': 'type',
315
+ 'lexical_declaration': 'variable',
316
+ 'variable_declarator': 'variable',
317
+ };
318
+ if (typeMap[parentType]) {
319
+ return typeMap[parentType];
320
+ }
321
+ const grandparent = parent.parent;
322
+ if (grandparent && typeMap[grandparent.type]) {
323
+ return typeMap[grandparent.type];
324
+ }
325
+ return 'variable';
326
+ }
327
+ }
328
+ // Factory function instead of singleton
329
+ export function createTreeSitterParser() {
330
+ return new TreeSitterParser();
331
+ }
332
+ //# sourceMappingURL=parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../src/indexer/code/parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Retry configuration options
3
+ */
4
+ export interface RetryOptions {
5
+ /** Maximum number of retries (default: 3) */
6
+ maxRetries: number;
7
+ /** Base delay in milliseconds (default: 1000) */
8
+ baseDelayMs: number;
9
+ /** Maximum delay cap in milliseconds (default: 30000) */
10
+ maxDelayMs: number;
11
+ /** Error patterns that trigger retry */
12
+ retryableErrors: string[];
13
+ }
14
+ /**
15
+ * Default retry options
16
+ */
17
+ export declare const DEFAULT_RETRY_OPTIONS: RetryOptions;
18
+ /**
19
+ * Sleep for specified milliseconds
20
+ */
21
+ export declare function sleep(ms: number): Promise<void>;
22
+ /**
23
+ * Check if error is retryable based on patterns
24
+ */
25
+ export declare function isRetryableError(error: unknown, patterns: string[]): boolean;
26
+ /**
27
+ * Calculate delay with exponential backoff and jitter
28
+ */
29
+ export declare function calculateBackoff(attempt: number, baseDelayMs: number, maxDelayMs: number): number;
30
+ /**
31
+ * Extract retry-after from error if available (for rate limits)
32
+ */
33
+ export declare function getRetryAfter(error: unknown): number | null;
34
+ /**
35
+ * Result of a retry operation
36
+ */
37
+ export interface RetryResult<T> {
38
+ success: boolean;
39
+ value?: T;
40
+ error?: Error;
41
+ attempts: number;
42
+ totalDelayMs: number;
43
+ }
44
+ /**
45
+ * Execute function with retry logic and exponential backoff
46
+ *
47
+ * @param fn - Async function to execute
48
+ * @param options - Retry options (uses defaults if not specified)
49
+ * @returns Promise resolving to the function result
50
+ * @throws Last error if all retries exhausted
51
+ */
52
+ export declare function withRetry<T>(fn: () => Promise<T>, options?: Partial<RetryOptions>): Promise<T>;
53
+ /**
54
+ * Execute function with retry and return detailed result
55
+ * (does not throw, returns error in result)
56
+ */
57
+ export declare function withRetryResult<T>(fn: () => Promise<T>, options?: Partial<RetryOptions>): Promise<RetryResult<T>>;
58
+ //# sourceMappingURL=retry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../../../src/indexer/code/retry.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,6CAA6C;IAC7C,UAAU,EAAE,MAAM,CAAC;IACnB,iDAAiD;IACjD,WAAW,EAAE,MAAM,CAAC;IACpB,yDAAyD;IACzD,UAAU,EAAE,MAAM,CAAC;IACnB,wCAAwC;IACxC,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,YAqBnC,CAAC;AAEF;;GAEG;AACH,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/C;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAoB5E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,GACjB,MAAM,CAQR;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAwB3D;AAED;;GAEG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,CAAC,CAAC;IACV,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;GAOG;AACH,wBAAsB,SAAS,CAAC,CAAC,EAC/B,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,OAAO,GAAE,OAAO,CAAC,YAAY,CAAM,GAClC,OAAO,CAAC,CAAC,CAAC,CA2CZ;AAED;;;GAGG;AACH,wBAAsB,eAAe,CAAC,CAAC,EACrC,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,OAAO,GAAE,OAAO,CAAC,YAAY,CAAM,GAClC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CA2DzB"}
@@ -0,0 +1,192 @@
1
+ // Retry logic with exponential backoff for code indexing
2
+ /**
3
+ * Default retry options
4
+ */
5
+ export const DEFAULT_RETRY_OPTIONS = {
6
+ maxRetries: 3,
7
+ baseDelayMs: 1000,
8
+ maxDelayMs: 30000,
9
+ retryableErrors: [
10
+ '429', // Rate limit
11
+ 'rate limit',
12
+ 'Rate limit',
13
+ 'RATE_LIMIT',
14
+ '5', // 5xx errors (500, 502, 503, 504)
15
+ 'ECONNRESET',
16
+ 'ECONNREFUSED',
17
+ 'ETIMEDOUT',
18
+ 'ENOTFOUND',
19
+ 'socket hang up',
20
+ 'network',
21
+ 'timeout',
22
+ 'temporarily unavailable',
23
+ 'service unavailable',
24
+ 'internal server error',
25
+ ],
26
+ };
27
+ /**
28
+ * Sleep for specified milliseconds
29
+ */
30
+ export function sleep(ms) {
31
+ return new Promise(resolve => setTimeout(resolve, ms));
32
+ }
33
+ /**
34
+ * Check if error is retryable based on patterns
35
+ */
36
+ export function isRetryableError(error, patterns) {
37
+ const message = error instanceof Error ? error.message : String(error);
38
+ const lowerMessage = message.toLowerCase();
39
+ for (const pattern of patterns) {
40
+ if (lowerMessage.includes(pattern.toLowerCase())) {
41
+ return true;
42
+ }
43
+ }
44
+ // Check for HTTP status codes in error
45
+ if (error instanceof Error && 'status' in error) {
46
+ const status = error.status;
47
+ // Retry on rate limit (429) and server errors (5xx)
48
+ if (status === 429 || (status >= 500 && status < 600)) {
49
+ return true;
50
+ }
51
+ }
52
+ return false;
53
+ }
54
+ /**
55
+ * Calculate delay with exponential backoff and jitter
56
+ */
57
+ export function calculateBackoff(attempt, baseDelayMs, maxDelayMs) {
58
+ // Exponential backoff: base * 2^attempt
59
+ const exponentialDelay = baseDelayMs * Math.pow(2, attempt);
60
+ // Add jitter (0-25% of delay) to prevent thundering herd
61
+ const jitter = Math.random() * 0.25 * exponentialDelay;
62
+ const delay = exponentialDelay + jitter;
63
+ // Cap at max delay
64
+ return Math.min(delay, maxDelayMs);
65
+ }
66
+ /**
67
+ * Extract retry-after from error if available (for rate limits)
68
+ */
69
+ export function getRetryAfter(error) {
70
+ if (error instanceof Error) {
71
+ // Check for retryAfter property
72
+ if ('retryAfter' in error) {
73
+ const retryAfter = error.retryAfter;
74
+ if (typeof retryAfter === 'number') {
75
+ return retryAfter * 1000; // Convert seconds to ms
76
+ }
77
+ }
78
+ // Check for headers with Retry-After
79
+ if ('headers' in error) {
80
+ const headers = error.headers;
81
+ const retryAfterHeader = headers?.['retry-after'] || headers?.['Retry-After'];
82
+ if (retryAfterHeader) {
83
+ const seconds = parseInt(retryAfterHeader, 10);
84
+ if (!isNaN(seconds)) {
85
+ return seconds * 1000;
86
+ }
87
+ }
88
+ }
89
+ }
90
+ return null;
91
+ }
92
+ /**
93
+ * Execute function with retry logic and exponential backoff
94
+ *
95
+ * @param fn - Async function to execute
96
+ * @param options - Retry options (uses defaults if not specified)
97
+ * @returns Promise resolving to the function result
98
+ * @throws Last error if all retries exhausted
99
+ */
100
+ export async function withRetry(fn, options = {}) {
101
+ const opts = { ...DEFAULT_RETRY_OPTIONS, ...options };
102
+ let lastError = new Error('No attempts made');
103
+ let totalDelayMs = 0;
104
+ for (let attempt = 0; attempt <= opts.maxRetries; attempt++) {
105
+ try {
106
+ return await fn();
107
+ }
108
+ catch (err) {
109
+ lastError = err instanceof Error ? err : new Error(String(err));
110
+ // Check if error is retryable
111
+ if (!isRetryableError(err, opts.retryableErrors)) {
112
+ throw lastError;
113
+ }
114
+ // Check if we have retries left
115
+ if (attempt >= opts.maxRetries) {
116
+ throw lastError;
117
+ }
118
+ // Calculate delay
119
+ let delay = calculateBackoff(attempt, opts.baseDelayMs, opts.maxDelayMs);
120
+ // Use Retry-After if available (rate limits)
121
+ const retryAfter = getRetryAfter(err);
122
+ if (retryAfter !== null) {
123
+ delay = Math.min(retryAfter, opts.maxDelayMs);
124
+ }
125
+ totalDelayMs += delay;
126
+ // Log retry attempt
127
+ console.warn(`[retry] Attempt ${attempt + 1}/${opts.maxRetries + 1} failed: ${lastError.message}. ` +
128
+ `Retrying in ${Math.round(delay / 1000)}s...`);
129
+ await sleep(delay);
130
+ }
131
+ }
132
+ throw lastError;
133
+ }
134
+ /**
135
+ * Execute function with retry and return detailed result
136
+ * (does not throw, returns error in result)
137
+ */
138
+ export async function withRetryResult(fn, options = {}) {
139
+ const opts = { ...DEFAULT_RETRY_OPTIONS, ...options };
140
+ let lastError = new Error('No attempts made');
141
+ let totalDelayMs = 0;
142
+ let attempts = 0;
143
+ for (let attempt = 0; attempt <= opts.maxRetries; attempt++) {
144
+ attempts++;
145
+ try {
146
+ const value = await fn();
147
+ return {
148
+ success: true,
149
+ value,
150
+ attempts,
151
+ totalDelayMs,
152
+ };
153
+ }
154
+ catch (err) {
155
+ lastError = err instanceof Error ? err : new Error(String(err));
156
+ // Check if error is retryable
157
+ if (!isRetryableError(err, opts.retryableErrors)) {
158
+ return {
159
+ success: false,
160
+ error: lastError,
161
+ attempts,
162
+ totalDelayMs,
163
+ };
164
+ }
165
+ // Check if we have retries left
166
+ if (attempt >= opts.maxRetries) {
167
+ return {
168
+ success: false,
169
+ error: lastError,
170
+ attempts,
171
+ totalDelayMs,
172
+ };
173
+ }
174
+ // Calculate delay
175
+ let delay = calculateBackoff(attempt, opts.baseDelayMs, opts.maxDelayMs);
176
+ // Use Retry-After if available
177
+ const retryAfter = getRetryAfter(err);
178
+ if (retryAfter !== null) {
179
+ delay = Math.min(retryAfter, opts.maxDelayMs);
180
+ }
181
+ totalDelayMs += delay;
182
+ await sleep(delay);
183
+ }
184
+ }
185
+ return {
186
+ success: false,
187
+ error: lastError,
188
+ attempts,
189
+ totalDelayMs,
190
+ };
191
+ }
192
+ //# sourceMappingURL=retry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retry.js","sourceRoot":"","sources":["../../../src/indexer/code/retry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import type { TreeDir, TreeFile } from './types.js';
2
+ export interface BuildFileInput {
3
+ path: string;
4
+ language: string;
5
+ content_hash: string;
6
+ modified: number;
7
+ size: number;
8
+ symbol_count: number;
9
+ import_count?: number;
10
+ export_count?: number;
11
+ }
12
+ export interface BuildResult {
13
+ dirs: TreeDir[];
14
+ files: TreeFile[];
15
+ stats: {
16
+ totalDirs: number;
17
+ total_files: number;
18
+ maxDepth: number;
19
+ buildTimeMs: number;
20
+ };
21
+ }
22
+ export declare class TreeBuilder {
23
+ private readonly basePath;
24
+ constructor(basePath: string);
25
+ build(filesInput: BuildFileInput[]): Promise<BuildResult>;
26
+ private createFileNode;
27
+ private ensureAncestorDirs;
28
+ private computeDirStats;
29
+ }
30
+ //# sourceMappingURL=builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../../../src/indexer/code/tree/builder.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEpD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,KAAK,EAAE;QACL,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAED,qBAAa,WAAW;IACV,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,MAAM;IAIvC,KAAK,CAAC,UAAU,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC;IAyC/D,OAAO,CAAC,cAAc;IAyBtB,OAAO,CAAC,kBAAkB;IAoC1B,OAAO,CAAC,eAAe;CAkCxB"}