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,150 @@
1
+ // Generic fallback extractor for unsupported languages
2
+ // Uses line-based chunking without AST parsing
3
+ const DEFAULT_CONFIG = {
4
+ minLines: 10,
5
+ maxLines: 50,
6
+ overlapLines: 3,
7
+ breakAtEmptyLines: true,
8
+ };
9
+ /**
10
+ * Generic extractor that works without tree-sitter parsing.
11
+ * Falls back to line-based chunking for any file type.
12
+ *
13
+ * This is useful for:
14
+ * - Languages without tree-sitter grammar
15
+ * - Configuration files (YAML, TOML, etc.)
16
+ * - Plain text files
17
+ * - Any file where structural parsing isn't available
18
+ */
19
+ export class GenericExtractor {
20
+ language = 'generic';
21
+ extensions = []; // Handles any extension not matched by others
22
+ config;
23
+ constructor(config = {}) {
24
+ this.config = { ...DEFAULT_CONFIG, ...config };
25
+ }
26
+ getSymbolQuery() {
27
+ // No tree-sitter query for generic extractor
28
+ return '';
29
+ }
30
+ getCommentQuery() {
31
+ // No comment extraction for generic files
32
+ return '';
33
+ }
34
+ /**
35
+ * Extract "symbols" using line-based chunking.
36
+ * Since we don't have AST, we create chunks based on line boundaries.
37
+ *
38
+ * Note: The tree parameter is ignored for generic extraction.
39
+ */
40
+ extractSymbols(tree, fileContent, filePath) {
41
+ // Use line-based chunking instead of AST parsing
42
+ return this.extractLineBasedChunks(fileContent, filePath);
43
+ }
44
+ /**
45
+ * Extract chunks based on line boundaries.
46
+ * Creates overlapping chunks for better context preservation.
47
+ */
48
+ extractLineBasedChunks(fileContent, filePath) {
49
+ const lines = fileContent.split('\n');
50
+ const chunks = [];
51
+ if (lines.length === 0) {
52
+ return chunks;
53
+ }
54
+ // For very small files, create a single chunk
55
+ if (lines.length <= this.config.maxLines) {
56
+ chunks.push(this.createChunk(lines, 0, lines.length - 1, filePath, 1));
57
+ return chunks;
58
+ }
59
+ // Create chunks with overlap
60
+ let startLine = 0;
61
+ let chunkNumber = 1;
62
+ while (startLine < lines.length) {
63
+ let endLine = Math.min(startLine + this.config.maxLines - 1, lines.length - 1);
64
+ // Try to find a natural break point (empty line) if configured
65
+ if (this.config.breakAtEmptyLines && endLine < lines.length - 1) {
66
+ const breakPoint = this.findBreakPoint(lines, startLine, endLine);
67
+ if (breakPoint !== -1) {
68
+ endLine = breakPoint;
69
+ }
70
+ }
71
+ // Ensure minimum chunk size (unless at end of file)
72
+ if (endLine - startLine + 1 < this.config.minLines && endLine < lines.length - 1) {
73
+ endLine = Math.min(startLine + this.config.minLines - 1, lines.length - 1);
74
+ }
75
+ chunks.push(this.createChunk(lines, startLine, endLine, filePath, chunkNumber));
76
+ // Move to next chunk with overlap
77
+ startLine = endLine + 1 - this.config.overlapLines;
78
+ if (startLine <= endLine - this.config.overlapLines) {
79
+ // Prevent infinite loop if overlap is too large
80
+ startLine = endLine + 1;
81
+ }
82
+ chunkNumber++;
83
+ }
84
+ return chunks;
85
+ }
86
+ /**
87
+ * Find a good break point (empty line) within the range.
88
+ * Prefers break points closer to the middle of the chunk.
89
+ */
90
+ findBreakPoint(lines, start, end) {
91
+ const middle = Math.floor((start + end) / 2);
92
+ // Search from middle towards end
93
+ for (let i = middle; i <= end; i++) {
94
+ if (lines[i].trim() === '') {
95
+ return i;
96
+ }
97
+ }
98
+ // Search from middle towards start (but not too close to start)
99
+ const minStart = start + this.config.minLines;
100
+ for (let i = middle - 1; i >= minStart; i--) {
101
+ if (lines[i].trim() === '') {
102
+ return i;
103
+ }
104
+ }
105
+ return -1; // No good break point found
106
+ }
107
+ /**
108
+ * Create a chunk from line range.
109
+ */
110
+ createChunk(lines, startIdx, endIdx, filePath, chunkNumber) {
111
+ const chunkLines = lines.slice(startIdx, endIdx + 1);
112
+ const content = chunkLines.join('\n');
113
+ // Create a descriptive name for the chunk
114
+ const fileName = filePath.split('/').pop() || filePath;
115
+ const name = `${fileName}:chunk${chunkNumber}`;
116
+ // Try to extract a meaningful first line as signature
117
+ const firstNonEmpty = chunkLines.find(l => l.trim() !== '');
118
+ const signature = firstNonEmpty ? firstNonEmpty.trim().slice(0, 80) : null;
119
+ // Create a mock node-like object for compatibility
120
+ const mockNode = {
121
+ text: content,
122
+ startPosition: { row: startIdx, column: 0 },
123
+ endPosition: { row: endIdx, column: chunkLines[chunkLines.length - 1]?.length || 0 },
124
+ type: 'generic_chunk',
125
+ id: startIdx,
126
+ };
127
+ return {
128
+ name,
129
+ type: 'file', // Use 'file' type for generic chunks
130
+ startLine: startIdx + 1, // 1-indexed
131
+ endLine: endIdx + 1, // 1-indexed
132
+ node: mockNode,
133
+ signature,
134
+ docstring: null,
135
+ parentSymbol: null,
136
+ scope: [],
137
+ };
138
+ }
139
+ }
140
+ /**
141
+ * Create a generic extractor for files without parser support.
142
+ * This provides a fallback when tree-sitter grammar is not available.
143
+ */
144
+ export function createGenericExtractor(fileContent, filePath, config) {
145
+ const extractor = new GenericExtractor(config);
146
+ return extractor.extractLineBasedChunks(fileContent, filePath);
147
+ }
148
+ // Export singleton instance with default config
149
+ export const genericExtractor = new GenericExtractor();
150
+ //# sourceMappingURL=generic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generic.js","sourceRoot":"","sources":["../../../../src/indexer/code/languages/generic.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type Parser from 'web-tree-sitter';
2
+ import { type LanguageExtractor, type ExtractedSymbolWithDetails } from './registry.js';
3
+ export declare class GraphqlExtractor implements LanguageExtractor {
4
+ readonly language = "graphql";
5
+ readonly extensions: string[];
6
+ getSymbolQuery(): string;
7
+ getCommentQuery(): string;
8
+ extractSymbols(tree: Parser.Tree, fileContent: string, filePath: string): ExtractedSymbolWithDetails[];
9
+ private buildSignature;
10
+ private extractPrecedingComment;
11
+ }
12
+ export declare const graphqlExtractor: GraphqlExtractor;
13
+ //# sourceMappingURL=graphql.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphql.d.ts","sourceRoot":"","sources":["../../../../src/indexer/code/languages/graphql.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAC;AAE1C,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,0BAA0B,EAEhC,MAAM,eAAe,CAAC;AAiCvB,qBAAa,gBAAiB,YAAW,iBAAiB;IACxD,QAAQ,CAAC,QAAQ,aAAa;IAC9B,QAAQ,CAAC,UAAU,WAAqC;IAExD,cAAc,IAAI,MAAM;IA+BxB,eAAe,IAAI,MAAM;IAIzB,cAAc,CACZ,IAAI,EAAE,MAAM,CAAC,IAAI,EACjB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,GACf,0BAA0B,EAAE;IAiD/B,OAAO,CAAC,cAAc;IAkCtB,OAAO,CAAC,uBAAuB;CA+ChC;AAED,eAAO,MAAM,gBAAgB,kBAAyB,CAAC"}
@@ -0,0 +1,180 @@
1
+ // GraphQL language extractor for code indexing
2
+ import { languageRegistry, } from './registry.js';
3
+ const GRAPHQL_SYMBOL_MAP = {
4
+ operation_definition: 'function',
5
+ fragment_definition: 'function',
6
+ object_type_definition: 'class',
7
+ interface_type_definition: 'interface',
8
+ enum_type_definition: 'type',
9
+ input_object_type_definition: 'type',
10
+ scalar_type_definition: 'type',
11
+ directive_definition: 'type',
12
+ union_type_definition: 'type',
13
+ schema_definition: 'type',
14
+ };
15
+ function extractOperationType(node) {
16
+ const operationType = node.children.find((c) => c.type === 'query' || c.type === 'mutation' || c.type === 'subscription');
17
+ return operationType ? operationType.type : 'query';
18
+ }
19
+ function extractName(node) {
20
+ const nameNode = node.childForFieldName('name') ||
21
+ node.children.find((c) => c.type === 'name');
22
+ if (nameNode) {
23
+ return nameNode.text.trim();
24
+ }
25
+ return '';
26
+ }
27
+ export class GraphqlExtractor {
28
+ language = 'graphql';
29
+ extensions = ['.graphql', '.gql', '.graphqls'];
30
+ getSymbolQuery() {
31
+ return `
32
+ (operation_definition
33
+ name: (name) @name) @operation
34
+
35
+ (fragment_definition
36
+ name: (name) @name) @fragment
37
+
38
+ (object_type_definition
39
+ name: (name) @name) @type
40
+
41
+ (interface_type_definition
42
+ name: (name) @name) @interface
43
+
44
+ (enum_type_definition
45
+ name: (name) @name) @enum
46
+
47
+ (input_object_type_definition
48
+ name: (name) @name) @input
49
+
50
+ (scalar_type_definition
51
+ name: (name) @name) @scalar
52
+
53
+ (directive_definition
54
+ name: (name) @name) @directive
55
+
56
+ (union_type_definition
57
+ name: (name) @name) @union
58
+ `;
59
+ }
60
+ getCommentQuery() {
61
+ return `(comment) @comment`;
62
+ }
63
+ extractSymbols(tree, fileContent, filePath) {
64
+ const symbols = [];
65
+ const lines = fileContent.split('\n');
66
+ const cursor = tree.walk();
67
+ const visitedNodes = new Set();
68
+ const visit = () => {
69
+ const node = cursor.currentNode;
70
+ if (visitedNodes.has(node.id)) {
71
+ return;
72
+ }
73
+ const symbolType = GRAPHQL_SYMBOL_MAP[node.type];
74
+ if (symbolType) {
75
+ visitedNodes.add(node.id);
76
+ const name = extractName(node);
77
+ if (name) {
78
+ const signature = this.buildSignature(node, name);
79
+ symbols.push({
80
+ name,
81
+ type: symbolType,
82
+ startLine: node.startPosition.row + 1,
83
+ endLine: node.endPosition.row + 1,
84
+ node,
85
+ signature,
86
+ docstring: this.extractPrecedingComment(lines, node.startPosition.row),
87
+ parentSymbol: null,
88
+ scope: [],
89
+ });
90
+ }
91
+ }
92
+ if (cursor.gotoFirstChild()) {
93
+ do {
94
+ visit();
95
+ } while (cursor.gotoNextSibling());
96
+ cursor.gotoParent();
97
+ }
98
+ };
99
+ visit();
100
+ return symbols;
101
+ }
102
+ buildSignature(node, name) {
103
+ switch (node.type) {
104
+ case 'operation_definition': {
105
+ const opType = extractOperationType(node);
106
+ return `${opType} ${name}`;
107
+ }
108
+ case 'fragment_definition': {
109
+ const typeCondition = node.children.find((c) => c.type === 'type_condition');
110
+ const onType = typeCondition
111
+ ? typeCondition.children.find((c) => c.type === 'named_type')?.text || ''
112
+ : '';
113
+ return onType ? `fragment ${name} on ${onType}` : `fragment ${name}`;
114
+ }
115
+ case 'object_type_definition':
116
+ return `type ${name}`;
117
+ case 'interface_type_definition':
118
+ return `interface ${name}`;
119
+ case 'enum_type_definition':
120
+ return `enum ${name}`;
121
+ case 'input_object_type_definition':
122
+ return `input ${name}`;
123
+ case 'scalar_type_definition':
124
+ return `scalar ${name}`;
125
+ case 'directive_definition':
126
+ return `directive @${name}`;
127
+ case 'union_type_definition':
128
+ return `union ${name}`;
129
+ case 'schema_definition':
130
+ return 'schema';
131
+ default:
132
+ return name;
133
+ }
134
+ }
135
+ extractPrecedingComment(lines, startRow) {
136
+ if (startRow <= 0)
137
+ return null;
138
+ let lineIndex = startRow - 1;
139
+ while (lineIndex >= 0 && lines[lineIndex].trim() === '') {
140
+ lineIndex--;
141
+ }
142
+ if (lineIndex < 0)
143
+ return null;
144
+ const line = lines[lineIndex].trim();
145
+ if (line.startsWith('#')) {
146
+ const commentLines = [];
147
+ while (lineIndex >= 0 && lines[lineIndex].trim().startsWith('#')) {
148
+ commentLines.unshift(lines[lineIndex].trim().slice(1).trim());
149
+ lineIndex--;
150
+ }
151
+ return commentLines.join('\n') || null;
152
+ }
153
+ if (line.endsWith('"""')) {
154
+ let descStart = lineIndex;
155
+ while (descStart >= 0) {
156
+ if (lines[descStart].trim().startsWith('"""')) {
157
+ break;
158
+ }
159
+ descStart--;
160
+ }
161
+ if (descStart >= 0) {
162
+ const descLines = lines.slice(descStart, lineIndex + 1);
163
+ const desc = descLines
164
+ .map((l) => l.trim())
165
+ .join('\n')
166
+ .replace(/^"""\s*/, '')
167
+ .replace(/\s*"""$/, '')
168
+ .trim();
169
+ return desc || null;
170
+ }
171
+ }
172
+ else if (line.startsWith('"') && line.endsWith('"')) {
173
+ return line.slice(1, -1).trim() || null;
174
+ }
175
+ return null;
176
+ }
177
+ }
178
+ export const graphqlExtractor = new GraphqlExtractor();
179
+ languageRegistry.register(graphqlExtractor);
180
+ //# sourceMappingURL=graphql.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphql.js","sourceRoot":"","sources":["../../../../src/indexer/code/languages/graphql.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import type Parser from 'web-tree-sitter';
2
+ import { type LanguageExtractor, type ExtractedSymbolWithDetails } from './registry.js';
3
+ export declare class HtmlExtractor implements LanguageExtractor {
4
+ readonly language = "html";
5
+ readonly extensions: string[];
6
+ private readonly semanticTags;
7
+ getSymbolQuery(): string;
8
+ getCommentQuery(): string;
9
+ extractSymbols(tree: Parser.Tree, fileContent: string, filePath: string): ExtractedSymbolWithDetails[];
10
+ private extractAttributes;
11
+ private getSymbolType;
12
+ private buildSignature;
13
+ private buildScope;
14
+ }
15
+ export declare const htmlExtractor: HtmlExtractor;
16
+ //# sourceMappingURL=html.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"html.d.ts","sourceRoot":"","sources":["../../../../src/indexer/code/languages/html.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAC;AAE1C,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,0BAA0B,EAEhC,MAAM,eAAe,CAAC;AAEvB,qBAAa,aAAc,YAAW,iBAAiB;IACrD,QAAQ,CAAC,QAAQ,UAAU;IAC3B,QAAQ,CAAC,UAAU,WAAqB;IAExC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAS1B;IAEH,cAAc,IAAI,MAAM;IAQxB,eAAe,IAAI,MAAM;IAIzB,cAAc,CACZ,IAAI,EAAE,MAAM,CAAC,IAAI,EACjB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,GACf,0BAA0B,EAAE;IAyD/B,OAAO,CAAC,iBAAiB;IAmBzB,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,UAAU;CAwBnB;AAED,eAAO,MAAM,aAAa,eAAsB,CAAC"}
@@ -0,0 +1,138 @@
1
+ // HTML language extractor for code indexing
2
+ import { languageRegistry, } from './registry.js';
3
+ export class HtmlExtractor {
4
+ language = 'html';
5
+ extensions = ['.html', '.htm'];
6
+ semanticTags = new Set([
7
+ 'header', 'footer', 'nav', 'main', 'article', 'section', 'aside',
8
+ 'form', 'button', 'input', 'select', 'textarea',
9
+ 'table', 'thead', 'tbody', 'tr', 'th', 'td',
10
+ 'ul', 'ol', 'li', 'dl', 'dt', 'dd',
11
+ 'h1', 'h2', 'h3', 'h4', 'h5', 'h6',
12
+ 'a', 'img', 'video', 'audio', 'canvas', 'svg',
13
+ 'script', 'style', 'link', 'meta',
14
+ 'div', 'span', 'p',
15
+ ]);
16
+ getSymbolQuery() {
17
+ return `
18
+ (element (start_tag (tag_name) @name)) @element
19
+ (script_element (start_tag (tag_name) @name)) @script
20
+ (style_element (start_tag (tag_name) @name)) @style
21
+ `;
22
+ }
23
+ getCommentQuery() {
24
+ return `(comment) @comment`;
25
+ }
26
+ extractSymbols(tree, fileContent, filePath) {
27
+ const symbols = [];
28
+ const cursor = tree.walk();
29
+ const visitedNodes = new Set();
30
+ const visit = (depth = 0) => {
31
+ const node = cursor.currentNode;
32
+ if (visitedNodes.has(node.id))
33
+ return;
34
+ if (node.type === 'element' || node.type === 'script_element' || node.type === 'style_element') {
35
+ const startTag = node.children.find((c) => c.type === 'start_tag');
36
+ if (startTag) {
37
+ const tagNameNode = startTag.children.find((c) => c.type === 'tag_name');
38
+ const tagName = tagNameNode?.text || '';
39
+ const attrs = this.extractAttributes(startTag);
40
+ const id = attrs.id;
41
+ const className = attrs.class;
42
+ if (id || className || this.semanticTags.has(tagName)) {
43
+ visitedNodes.add(node.id);
44
+ let name = tagName;
45
+ if (id)
46
+ name = `${tagName}#${id}`;
47
+ else if (className)
48
+ name = `${tagName}.${className.split(' ')[0]}`;
49
+ const scope = this.buildScope(node);
50
+ symbols.push({
51
+ name,
52
+ type: this.getSymbolType(tagName),
53
+ startLine: node.startPosition.row + 1,
54
+ endLine: node.endPosition.row + 1,
55
+ node,
56
+ signature: this.buildSignature(tagName, attrs),
57
+ docstring: null,
58
+ parentSymbol: scope.length > 0 ? scope[scope.length - 1] : null,
59
+ scope,
60
+ });
61
+ }
62
+ }
63
+ }
64
+ if (depth < 20 && cursor.gotoFirstChild()) {
65
+ do {
66
+ visit(depth + 1);
67
+ } while (cursor.gotoNextSibling());
68
+ cursor.gotoParent();
69
+ }
70
+ };
71
+ visit();
72
+ return symbols;
73
+ }
74
+ extractAttributes(startTag) {
75
+ const attrs = {};
76
+ for (const child of startTag.children) {
77
+ if (child.type === 'attribute') {
78
+ const nameNode = child.children.find((c) => c.type === 'attribute_name');
79
+ const valueNode = child.children.find((c) => c.type === 'quoted_attribute_value' || c.type === 'attribute_value');
80
+ if (nameNode && valueNode) {
81
+ const name = nameNode.text;
82
+ const value = valueNode.text.replace(/^["']|["']$/g, '');
83
+ attrs[name] = value;
84
+ }
85
+ }
86
+ }
87
+ return attrs;
88
+ }
89
+ getSymbolType(tagName) {
90
+ if (tagName === 'script')
91
+ return 'function';
92
+ if (tagName === 'style')
93
+ return 'type';
94
+ if (['form', 'section', 'article', 'main', 'header', 'footer', 'nav', 'aside'].includes(tagName)) {
95
+ return 'class';
96
+ }
97
+ return 'variable';
98
+ }
99
+ buildSignature(tagName, attrs) {
100
+ let sig = `<${tagName}`;
101
+ if (attrs.id)
102
+ sig += ` id="${attrs.id}"`;
103
+ if (attrs.class)
104
+ sig += ` class="${attrs.class}"`;
105
+ if (attrs.name)
106
+ sig += ` name="${attrs.name}"`;
107
+ if (attrs.type)
108
+ sig += ` type="${attrs.type}"`;
109
+ sig += '>';
110
+ return sig;
111
+ }
112
+ buildScope(node) {
113
+ const scope = [];
114
+ let current = node.parent;
115
+ while (current) {
116
+ if (current.type === 'element') {
117
+ const startTag = current.children.find((c) => c.type === 'start_tag');
118
+ if (startTag) {
119
+ const tagNameNode = startTag.children.find((c) => c.type === 'tag_name');
120
+ const attrs = this.extractAttributes(startTag);
121
+ if (tagNameNode) {
122
+ let name = tagNameNode.text;
123
+ if (attrs.id)
124
+ name = `${name}#${attrs.id}`;
125
+ else if (attrs.class)
126
+ name = `${name}.${attrs.class.split(' ')[0]}`;
127
+ scope.unshift(name);
128
+ }
129
+ }
130
+ }
131
+ current = current.parent;
132
+ }
133
+ return scope.slice(0, 5);
134
+ }
135
+ }
136
+ export const htmlExtractor = new HtmlExtractor();
137
+ languageRegistry.register(htmlExtractor);
138
+ //# sourceMappingURL=html.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"html.js","sourceRoot":"","sources":["../../../../src/indexer/code/languages/html.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export { languageRegistry, inferSymbolTypeFromNode, type LanguageExtractor, type ExtractedSymbolWithDetails, } from './registry.js';
2
+ export { cssExtractor, CssExtractor } from './css.js';
3
+ export { graphqlExtractor, GraphqlExtractor } from './graphql.js';
4
+ export { jsonExtractor, JsonExtractor } from './json.js';
5
+ export { yamlExtractor, YamlExtractor } from './yaml.js';
6
+ export { htmlExtractor, HtmlExtractor } from './html.js';
7
+ export { bashExtractor, BashExtractor } from './bash.js';
8
+ export { genericExtractor, GenericExtractor, createGenericExtractor, type GenericChunkingConfig, } from './generic.js';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/indexer/code/languages/index.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EACvB,KAAK,iBAAiB,EACtB,KAAK,0BAA0B,GAChC,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,sBAAsB,EACtB,KAAK,qBAAqB,GAC3B,MAAM,cAAc,CAAC"}
@@ -0,0 +1,12 @@
1
+ // Language registry for code extractors
2
+ // Re-export registry types and singleton (must be first to avoid circular deps)
3
+ export { languageRegistry, inferSymbolTypeFromNode, } from './registry.js';
4
+ // Re-export language extractors
5
+ export { cssExtractor, CssExtractor } from './css.js';
6
+ export { graphqlExtractor, GraphqlExtractor } from './graphql.js';
7
+ export { jsonExtractor, JsonExtractor } from './json.js';
8
+ export { yamlExtractor, YamlExtractor } from './yaml.js';
9
+ export { htmlExtractor, HtmlExtractor } from './html.js';
10
+ export { bashExtractor, BashExtractor } from './bash.js';
11
+ export { genericExtractor, GenericExtractor, createGenericExtractor, } from './generic.js';
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/indexer/code/languages/index.ts"],"names":[],"mappings":"AAAA,wCAAwC;AAExC,gFAAgF;AAChF,OAAO,EACL,gBAAgB,EAChB,uBAAuB,GAGxB,MAAM,eAAe,CAAC;AAEvB,gCAAgC;AAChC,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,sBAAsB,GAEvB,MAAM,cAAc,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type Parser from 'web-tree-sitter';
2
+ import { type LanguageExtractor, type ExtractedSymbolWithDetails } from './registry.js';
3
+ export declare class JsonExtractor implements LanguageExtractor {
4
+ readonly language = "json";
5
+ readonly extensions: string[];
6
+ getSymbolQuery(): string;
7
+ getCommentQuery(): string;
8
+ extractSymbols(tree: Parser.Tree, fileContent: string, filePath: string): ExtractedSymbolWithDetails[];
9
+ private buildScope;
10
+ }
11
+ export declare const jsonExtractor: JsonExtractor;
12
+ //# sourceMappingURL=json.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../../../src/indexer/code/languages/json.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,0BAA0B,EAEhC,MAAM,eAAe,CAAC;AAEvB,qBAAa,aAAc,YAAW,iBAAiB;IACrD,QAAQ,CAAC,QAAQ,UAAU;IAC3B,QAAQ,CAAC,UAAU,WAAuB;IAE1C,cAAc,IAAI,MAAM;IAIxB,eAAe,IAAI,MAAM;IAIzB,cAAc,CACZ,IAAI,EAAE,MAAM,CAAC,IAAI,EACjB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,GACf,0BAA0B,EAAE;IA4C/B,OAAO,CAAC,UAAU;CAgBnB;AAED,eAAO,MAAM,aAAa,eAAsB,CAAC"}
@@ -0,0 +1,66 @@
1
+ // JSON language extractor for code indexing
2
+ import { languageRegistry, } from './registry.js';
3
+ export class JsonExtractor {
4
+ language = 'json';
5
+ extensions = ['.json', '.jsonc'];
6
+ getSymbolQuery() {
7
+ return `(pair key: (string) @name) @pair`;
8
+ }
9
+ getCommentQuery() {
10
+ return `(comment) @comment`;
11
+ }
12
+ extractSymbols(tree, fileContent, filePath) {
13
+ const symbols = [];
14
+ const cursor = tree.walk();
15
+ const visitedNodes = new Set();
16
+ const visit = (depth = 0) => {
17
+ const node = cursor.currentNode;
18
+ if (visitedNodes.has(node.id))
19
+ return;
20
+ if (node.type === 'pair') {
21
+ visitedNodes.add(node.id);
22
+ const keyNode = node.children.find((c) => c.type === 'string');
23
+ if (keyNode) {
24
+ const name = keyNode.text.replace(/^["']|["']$/g, '');
25
+ const scope = this.buildScope(node);
26
+ symbols.push({
27
+ name,
28
+ type: 'variable',
29
+ startLine: node.startPosition.row + 1,
30
+ endLine: node.endPosition.row + 1,
31
+ node,
32
+ signature: scope.length > 0 ? `${scope.join('.')}.${name}` : name,
33
+ docstring: null,
34
+ parentSymbol: scope.length > 0 ? scope[scope.length - 1] : null,
35
+ scope,
36
+ });
37
+ }
38
+ }
39
+ if (depth < 5 && cursor.gotoFirstChild()) {
40
+ do {
41
+ visit(depth + 1);
42
+ } while (cursor.gotoNextSibling());
43
+ cursor.gotoParent();
44
+ }
45
+ };
46
+ visit();
47
+ return symbols;
48
+ }
49
+ buildScope(node) {
50
+ const scope = [];
51
+ let current = node.parent;
52
+ while (current) {
53
+ if (current.type === 'pair') {
54
+ const keyNode = current.children.find((c) => c.type === 'string');
55
+ if (keyNode) {
56
+ scope.unshift(keyNode.text.replace(/^["']|["']$/g, ''));
57
+ }
58
+ }
59
+ current = current.parent;
60
+ }
61
+ return scope;
62
+ }
63
+ }
64
+ export const jsonExtractor = new JsonExtractor();
65
+ languageRegistry.register(jsonExtractor);
66
+ //# sourceMappingURL=json.js.map