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 @@
1
+ {"version":3,"file":"chunker.test.d.ts","sourceRoot":"","sources":["../../../src/indexer/code/chunker.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,552 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { smartTruncate, generateCodeChunkId, generateContentHash, buildEmbeddingText, extractSignature, extractDocstring, isLicenseComment, cleanBlockComment, extractFileContext, symbolsToChunks, createFileChunk, applyStableChunkIds, } from './chunker.js';
3
+ describe('code chunker', () => {
4
+ describe('smartTruncate', () => {
5
+ it('should return content unchanged if under limit', () => {
6
+ const content = 'short content';
7
+ expect(smartTruncate(content, 100)).toBe(content);
8
+ });
9
+ it('should truncate at semicolon if found in later portion', () => {
10
+ const content = 'const a = 1; const b = 2; const c = 3;';
11
+ const result = smartTruncate(content, 25);
12
+ expect(result).toBe('const a = 1; const b = 2;');
13
+ });
14
+ it('should truncate at line break if no semicolon', () => {
15
+ const content = 'line one\nline two\nline three';
16
+ const result = smartTruncate(content, 15);
17
+ expect(result).toBe('line one');
18
+ });
19
+ it('should truncate at word break as fallback', () => {
20
+ const content = 'word1 word2 word3 word4';
21
+ const result = smartTruncate(content, 12);
22
+ expect(result).toBe('word1 word2...');
23
+ });
24
+ it('should handle content without break points', () => {
25
+ const content = 'continuouscontentwithnospaces';
26
+ const result = smartTruncate(content, 10);
27
+ expect(result.length).toBeLessThanOrEqual(13); // 10 + "..."
28
+ });
29
+ });
30
+ describe('generateCodeChunkId', () => {
31
+ it('should generate consistent ID for same input', () => {
32
+ const id1 = generateCodeChunkId('path.ts', ['Class'], 'method', 10);
33
+ const id2 = generateCodeChunkId('path.ts', ['Class'], 'method', 10);
34
+ expect(id1).toBe(id2);
35
+ });
36
+ it('should generate different IDs for different paths', () => {
37
+ const id1 = generateCodeChunkId('a.ts', [], 'func', 1);
38
+ const id2 = generateCodeChunkId('b.ts', [], 'func', 1);
39
+ expect(id1).not.toBe(id2);
40
+ });
41
+ it('should generate different IDs for different scopes', () => {
42
+ const id1 = generateCodeChunkId('f.ts', ['A'], 'method', 1);
43
+ const id2 = generateCodeChunkId('f.ts', ['B'], 'method', 1);
44
+ expect(id1).not.toBe(id2);
45
+ });
46
+ it('should generate different IDs for different lines', () => {
47
+ const id1 = generateCodeChunkId('f.ts', [], 'func', 1);
48
+ const id2 = generateCodeChunkId('f.ts', [], 'func', 2);
49
+ expect(id1).not.toBe(id2);
50
+ });
51
+ it('should generate 64-char hex string', () => {
52
+ const id = generateCodeChunkId('file.ts', ['Scope'], 'name', 42);
53
+ expect(id).toMatch(/^[a-f0-9]{64}$/);
54
+ });
55
+ it('should handle empty scope array', () => {
56
+ const id = generateCodeChunkId('file.ts', [], 'name', 1);
57
+ expect(id).toMatch(/^[a-f0-9]{64}$/);
58
+ });
59
+ });
60
+ describe('generateContentHash', () => {
61
+ it('should generate consistent hash', () => {
62
+ const hash1 = generateContentHash('content');
63
+ const hash2 = generateContentHash('content');
64
+ expect(hash1).toBe(hash2);
65
+ });
66
+ it('should generate different hashes for different content', () => {
67
+ const hash1 = generateContentHash('content1');
68
+ const hash2 = generateContentHash('content2');
69
+ expect(hash1).not.toBe(hash2);
70
+ });
71
+ it('should generate 16-char hex string', () => {
72
+ const hash = generateContentHash('any content');
73
+ expect(hash).toMatch(/^[a-f0-9]{16}$/);
74
+ });
75
+ });
76
+ describe('buildEmbeddingText', () => {
77
+ it('should include symbol type and name', () => {
78
+ const chunk = {
79
+ id: 'test',
80
+ path: 'file.ts',
81
+ language: 'typescript',
82
+ symbolType: 'function',
83
+ symbolName: 'myFunction',
84
+ signature: null,
85
+ parentSymbol: null,
86
+ scope: [],
87
+ content: 'function body',
88
+ startLine: 1,
89
+ endLine: 5,
90
+ docstring: null,
91
+ modified: Date.now(),
92
+ contentHash: 'hash',
93
+ };
94
+ const text = buildEmbeddingText(chunk);
95
+ expect(text).toContain('function: myFunction');
96
+ });
97
+ it('should include signature when present', () => {
98
+ const chunk = {
99
+ id: 'test',
100
+ path: 'file.ts',
101
+ language: 'typescript',
102
+ symbolType: 'function',
103
+ symbolName: 'func',
104
+ signature: 'function func(a: number): string',
105
+ parentSymbol: null,
106
+ scope: [],
107
+ content: 'body',
108
+ startLine: 1,
109
+ endLine: 1,
110
+ docstring: null,
111
+ modified: Date.now(),
112
+ contentHash: 'hash',
113
+ };
114
+ const text = buildEmbeddingText(chunk);
115
+ expect(text).toContain('function func(a: number): string');
116
+ });
117
+ it('should include docstring when present', () => {
118
+ const chunk = {
119
+ id: 'test',
120
+ path: 'file.ts',
121
+ language: 'typescript',
122
+ symbolType: 'function',
123
+ symbolName: 'func',
124
+ signature: null,
125
+ parentSymbol: null,
126
+ scope: [],
127
+ content: 'body',
128
+ startLine: 1,
129
+ endLine: 1,
130
+ docstring: 'This is a documented function',
131
+ modified: Date.now(),
132
+ contentHash: 'hash',
133
+ };
134
+ const text = buildEmbeddingText(chunk);
135
+ expect(text).toContain('This is a documented function');
136
+ });
137
+ it('should include scope when present', () => {
138
+ const chunk = {
139
+ id: 'test',
140
+ path: 'file.ts',
141
+ language: 'typescript',
142
+ symbolType: 'method',
143
+ symbolName: 'method',
144
+ signature: null,
145
+ parentSymbol: null,
146
+ scope: ['MyClass', 'InnerClass'],
147
+ content: 'body',
148
+ startLine: 1,
149
+ endLine: 1,
150
+ docstring: null,
151
+ modified: Date.now(),
152
+ contentHash: 'hash',
153
+ };
154
+ const text = buildEmbeddingText(chunk);
155
+ expect(text).toContain('in MyClass.InnerClass');
156
+ });
157
+ it('should truncate long content', () => {
158
+ const longContent = 'x'.repeat(1000);
159
+ const chunk = {
160
+ id: 'test',
161
+ path: 'file.ts',
162
+ language: 'typescript',
163
+ symbolType: 'function',
164
+ symbolName: 'func',
165
+ signature: null,
166
+ parentSymbol: null,
167
+ scope: [],
168
+ content: longContent,
169
+ startLine: 1,
170
+ endLine: 100,
171
+ docstring: null,
172
+ modified: Date.now(),
173
+ contentHash: 'hash',
174
+ };
175
+ const text = buildEmbeddingText(chunk);
176
+ expect(text.length).toBeLessThan(longContent.length);
177
+ });
178
+ });
179
+ describe('extractSignature', () => {
180
+ it('should extract function signature before brace', () => {
181
+ const content = 'function myFunc(a: number, b: string) {\n return a;\n}';
182
+ expect(extractSignature(content)).toBe('function myFunc(a: number, b: string)');
183
+ });
184
+ it('should extract arrow function signature', () => {
185
+ const content = 'const fn = (x: number) => x * 2';
186
+ expect(extractSignature(content)).toBe('const fn = (x: number) =>');
187
+ });
188
+ it('should extract class signature', () => {
189
+ const content = 'class MyClass extends Base {\n // body\n}';
190
+ expect(extractSignature(content)).toBe('class MyClass extends Base');
191
+ });
192
+ it('should return null for content without signature', () => {
193
+ const content = 'just some text without braces or arrows';
194
+ expect(extractSignature(content)).toBeNull();
195
+ });
196
+ it('should handle interface signature', () => {
197
+ const content = 'interface Props {\n name: string;\n}';
198
+ expect(extractSignature(content)).toBe('interface Props');
199
+ });
200
+ });
201
+ describe('extractDocstring', () => {
202
+ it('should extract JSDoc comment before symbol', () => {
203
+ const content = `/**
204
+ * This is a description.
205
+ * @param x The parameter
206
+ */
207
+ function test(x) {}`;
208
+ const doc = extractDocstring(content, 5);
209
+ expect(doc).toContain('This is a description');
210
+ expect(doc).toContain('@param x The parameter');
211
+ });
212
+ it('should return null when no JSDoc present', () => {
213
+ const content = `function test() {}`;
214
+ expect(extractDocstring(content, 1)).toBeNull();
215
+ });
216
+ it('should return null for regular comments', () => {
217
+ const content = `/* regular comment */
218
+ function test() {}`;
219
+ expect(extractDocstring(content, 2)).toBeNull();
220
+ });
221
+ it('should extract consecutive line comments before symbol', () => {
222
+ const content = `// First line
223
+ // Second line
224
+ function test() {}`;
225
+ const doc = extractDocstring(content, 3);
226
+ expect(doc).toBe('First line\nSecond line');
227
+ });
228
+ it('should handle empty lines between doc and symbol', () => {
229
+ const content = `/**
230
+ * Description
231
+ */
232
+
233
+ function test() {}`;
234
+ const doc = extractDocstring(content, 5);
235
+ expect(doc).toContain('Description');
236
+ });
237
+ it('should clean up JSDoc markers', () => {
238
+ const content = `/**
239
+ * Clean description
240
+ */
241
+ function test() {}`;
242
+ const doc = extractDocstring(content, 4);
243
+ expect(doc).not.toContain('/**');
244
+ expect(doc).not.toContain('*/');
245
+ expect(doc).toBe('Clean description');
246
+ });
247
+ });
248
+ describe('file context extraction', () => {
249
+ it('detects license comments by multiple markers', () => {
250
+ const comment = `/**
251
+ * MIT License
252
+ * Copyright (c) 2024
253
+ * Permission is hereby granted
254
+ */`;
255
+ expect(isLicenseComment(comment)).toBe(true);
256
+ });
257
+ it('does not mark regular comments as license', () => {
258
+ const comment = `/**
259
+ * API routes for user management.
260
+ */`;
261
+ expect(isLicenseComment(comment)).toBe(false);
262
+ });
263
+ it('cleans block comments', () => {
264
+ const comment = `/**
265
+ * Line one
266
+ * Line two
267
+ */`;
268
+ expect(cleanBlockComment(comment)).toBe('Line one\nLine two');
269
+ });
270
+ it('extracts first non-license block comment', () => {
271
+ const content = `/**
272
+ * API routes for user management.
273
+ * CRUD operations for user accounts.
274
+ */
275
+ export const userRoutes = [];`;
276
+ expect(extractFileContext(content)).toBe('API routes for user management.\nCRUD operations for user accounts.');
277
+ });
278
+ it('skips license then extracts following context comment', () => {
279
+ const content = `/**
280
+ * MIT License
281
+ * Copyright (c) 2024 Example Corp
282
+ * Permission is hereby granted
283
+ */
284
+
285
+ /**
286
+ * User auth module.
287
+ * Handles JWT validation.
288
+ */
289
+ export const auth = {};`;
290
+ expect(extractFileContext(content)).toBe('User auth module.\nHandles JWT validation.');
291
+ });
292
+ it('handles shebang, line directives, and string directive before block comment', () => {
293
+ const content = `#!/usr/bin/env node
294
+ // @ts-check
295
+ 'use strict';
296
+ /**
297
+ * CLI entrypoint and argument handling.
298
+ */
299
+ console.log('ok');`;
300
+ expect(extractFileContext(content)).toBe('CLI entrypoint and argument handling.');
301
+ });
302
+ it('returns null when only license comments exist', () => {
303
+ const content = `/**
304
+ * SPDX-License-Identifier: MIT
305
+ * Copyright (c) 2025
306
+ * All rights reserved
307
+ */`;
308
+ expect(extractFileContext(content)).toBeNull();
309
+ });
310
+ it('returns null when first meaningful token is code', () => {
311
+ const content = `const x = 1;
312
+ /**
313
+ * Not a file header.
314
+ */`;
315
+ expect(extractFileContext(content)).toBeNull();
316
+ });
317
+ it('supports /*! comments', () => {
318
+ const content = `/*!
319
+ * Public API for payments.
320
+ */
321
+ export const pay = () => {};`;
322
+ expect(extractFileContext(content)).toBe('Public API for payments.');
323
+ });
324
+ it('truncates long comments to max length', () => {
325
+ const longDescription = 'A'.repeat(1500);
326
+ const content = `/**
327
+ * ${longDescription}
328
+ */
329
+ export const x = 1;`;
330
+ const result = extractFileContext(content);
331
+ expect(result).not.toBeNull();
332
+ expect(result.length).toBeLessThanOrEqual(1003); // 1000 + "..."
333
+ expect(result.endsWith('...')).toBe(true);
334
+ });
335
+ it('skips empty block comments', () => {
336
+ const content = `/**
337
+ *
338
+ */
339
+ /**
340
+ * Real context.
341
+ */
342
+ export const x = 1;`;
343
+ expect(extractFileContext(content)).toBe('Real context.');
344
+ });
345
+ it('strips BOM before processing', () => {
346
+ const content = `\uFEFF/**
347
+ * File with BOM.
348
+ */
349
+ export const x = 1;`;
350
+ expect(extractFileContext(content)).toBe('File with BOM.');
351
+ });
352
+ });
353
+ describe('symbolsToChunks', () => {
354
+ const mockSymbol = {
355
+ name: 'testFunc',
356
+ type: 'function',
357
+ startLine: 1,
358
+ endLine: 5,
359
+ node: {},
360
+ };
361
+ it('should convert symbol to chunk', () => {
362
+ const content = 'line1\nline2\nline3\nline4\nline5';
363
+ const chunks = symbolsToChunks([mockSymbol], 'test.ts', content, 'typescript', 12345);
364
+ expect(chunks).toHaveLength(1);
365
+ expect(chunks[0].symbolName).toBe('testFunc');
366
+ expect(chunks[0].symbolType).toBe('function');
367
+ expect(chunks[0].language).toBe('typescript');
368
+ expect(chunks[0].path).toBe('test.ts');
369
+ });
370
+ it('should skip symbols smaller than minLines', () => {
371
+ const smallSymbol = {
372
+ name: 'small',
373
+ type: 'variable',
374
+ startLine: 1,
375
+ endLine: 1,
376
+ node: {},
377
+ };
378
+ const content = 'single line';
379
+ const chunks = symbolsToChunks([smallSymbol], 'test.ts', content, 'typescript', 12345, {
380
+ minLines: 3,
381
+ });
382
+ expect(chunks).toHaveLength(0);
383
+ });
384
+ it('should limit content to maxLines', () => {
385
+ const largeSymbol = {
386
+ name: 'large',
387
+ type: 'function',
388
+ startLine: 1,
389
+ endLine: 200,
390
+ node: {},
391
+ };
392
+ const lines = Array(200).fill('line content').join('\n');
393
+ const chunks = symbolsToChunks([largeSymbol], 'test.ts', lines, 'typescript', 12345, {
394
+ maxLines: 50,
395
+ minLines: 1,
396
+ });
397
+ const chunkLines = chunks[0].content.split('\n');
398
+ expect(chunkLines.length).toBeLessThanOrEqual(50);
399
+ });
400
+ it('should generate unique IDs for each chunk', () => {
401
+ const symbols = [
402
+ { name: 'func1', type: 'function', startLine: 1, endLine: 5, node: {} },
403
+ { name: 'func2', type: 'function', startLine: 10, endLine: 15, node: {} },
404
+ ];
405
+ const content = Array(20).fill('line').join('\n');
406
+ const chunks = symbolsToChunks(symbols, 'test.ts', content, 'typescript', 12345, {
407
+ minLines: 1,
408
+ });
409
+ expect(chunks[0].id).not.toBe(chunks[1].id);
410
+ });
411
+ it('should extract signature and docstring', () => {
412
+ const content = `/**
413
+ * My function doc
414
+ */
415
+ function myFunc(x: number) {
416
+ return x;
417
+ }`;
418
+ const symbol = {
419
+ name: 'myFunc',
420
+ type: 'function',
421
+ startLine: 4,
422
+ endLine: 6,
423
+ node: {},
424
+ };
425
+ const chunks = symbolsToChunks([symbol], 'test.ts', content, 'typescript', 12345, {
426
+ minLines: 1,
427
+ });
428
+ expect(chunks[0].signature).toBe('function myFunc(x: number)');
429
+ expect(chunks[0].docstring).toContain('My function doc');
430
+ });
431
+ });
432
+ describe('createFileChunk', () => {
433
+ it('should create file-level chunk', () => {
434
+ const content = 'line1\nline2\nline3';
435
+ const chunk = createFileChunk('src/file.ts', content, 'typescript', 12345);
436
+ expect(chunk.symbolType).toBe('file');
437
+ expect(chunk.symbolName).toBe('file.ts');
438
+ expect(chunk.path).toBe('src/file.ts');
439
+ expect(chunk.language).toBe('typescript');
440
+ expect(chunk.startLine).toBe(1);
441
+ });
442
+ it('should limit content to maxLines', () => {
443
+ const lines = Array(1000).fill('line').join('\n');
444
+ const chunk = createFileChunk('file.ts', lines, 'typescript', 12345, 100);
445
+ const chunkLines = chunk.content.split('\n');
446
+ expect(chunkLines.length).toBeLessThanOrEqual(100);
447
+ });
448
+ it('should set correct endLine based on content', () => {
449
+ const content = 'line1\nline2\nline3';
450
+ const chunk = createFileChunk('file.ts', content, 'typescript', 12345);
451
+ expect(chunk.endLine).toBe(3);
452
+ });
453
+ it('should set file docstring from first non-license block comment', () => {
454
+ const content = `/**
455
+ * Authentication service.
456
+ * Handles login and token refresh.
457
+ */
458
+ export const auth = {};`;
459
+ const chunk = createFileChunk('file.ts', content, 'typescript', 12345);
460
+ expect(chunk.docstring).toBe('Authentication service.\nHandles login and token refresh.');
461
+ });
462
+ it('should skip license block and use the next context comment', () => {
463
+ const content = `/**
464
+ * MIT License
465
+ * Copyright (c) 2024
466
+ * Permission is hereby granted
467
+ */
468
+ /**
469
+ * User profile API.
470
+ */
471
+ export const profile = {};`;
472
+ const chunk = createFileChunk('file.ts', content, 'typescript', 12345);
473
+ expect(chunk.docstring).toBe('User profile API.');
474
+ });
475
+ it('should generate content hash for full file', () => {
476
+ const content = 'file content';
477
+ const chunk = createFileChunk('file.ts', content, 'typescript', 12345);
478
+ expect(chunk.contentHash).toMatch(/^[a-f0-9]{16}$/);
479
+ });
480
+ it('should use special symbol name __file__', () => {
481
+ const chunk = createFileChunk('file.ts', 'content', 'typescript', 12345);
482
+ expect(chunk.id).toBe(generateCodeChunkId('file.ts', [], '__file__', 0, 'file', '0'));
483
+ });
484
+ });
485
+ describe('applyStableChunkIds', () => {
486
+ it('assigns deterministic discriminators for same-name symbols in the same scope', () => {
487
+ const chunks = [
488
+ {
489
+ id: 'a',
490
+ path: 'src/a.ts',
491
+ language: 'typescript',
492
+ symbolType: 'function',
493
+ symbolName: 'parse',
494
+ signature: null,
495
+ parentSymbol: null,
496
+ scope: ['A'],
497
+ content: 'function parse() {}',
498
+ startLine: 10,
499
+ endLine: 10,
500
+ docstring: null,
501
+ modified: 1,
502
+ contentHash: 'h1',
503
+ },
504
+ {
505
+ id: 'b',
506
+ path: 'src/a.ts',
507
+ language: 'typescript',
508
+ symbolType: 'function',
509
+ symbolName: 'parse',
510
+ signature: null,
511
+ parentSymbol: null,
512
+ scope: ['A'],
513
+ content: 'function parse(x: string) {}',
514
+ startLine: 20,
515
+ endLine: 20,
516
+ docstring: null,
517
+ modified: 1,
518
+ contentHash: 'h2',
519
+ },
520
+ ];
521
+ applyStableChunkIds(chunks);
522
+ expect(chunks[0].id).toBe(generateCodeChunkId('src/a.ts', ['A'], 'parse', 10, 'function', '0'));
523
+ expect(chunks[1].id).toBe(generateCodeChunkId('src/a.ts', ['A'], 'parse', 20, 'function', '1'));
524
+ });
525
+ it('does not rewrite file chunk ids', () => {
526
+ const chunks = [
527
+ createFileChunk('src/a.ts', 'content', 'typescript', 1),
528
+ {
529
+ id: 'sym',
530
+ path: 'src/a.ts',
531
+ language: 'typescript',
532
+ symbolType: 'function',
533
+ symbolName: 'f',
534
+ signature: null,
535
+ parentSymbol: null,
536
+ scope: [],
537
+ content: 'function f() {}',
538
+ startLine: 2,
539
+ endLine: 2,
540
+ docstring: null,
541
+ modified: 1,
542
+ contentHash: 'h',
543
+ },
544
+ ];
545
+ const fileIdBefore = chunks[0].id;
546
+ applyStableChunkIds(chunks);
547
+ expect(chunks[0].id).toBe(fileIdBefore);
548
+ expect(chunks[1].id).toBe(generateCodeChunkId('src/a.ts', [], 'f', 2, 'function', '0'));
549
+ });
550
+ });
551
+ });
552
+ //# sourceMappingURL=chunker.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunker.test.js","sourceRoot":"","sources":["../../../src/indexer/code/chunker.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=fts.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fts.test.d.ts","sourceRoot":"","sources":["../../../src/indexer/code/fts.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,14 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { normalizeIdentifiers } from './index.js';
3
+ describe('code fts helpers', () => {
4
+ it('splits camelCase identifiers', () => {
5
+ expect(normalizeIdentifiers('fetchUserProfile')).toBe('fetch User Profile');
6
+ });
7
+ it('splits snake_case and kebab-case identifiers', () => {
8
+ expect(normalizeIdentifiers('fetch_user-profile')).toBe('fetch user profile');
9
+ });
10
+ it('normalizes mixed separators and whitespace', () => {
11
+ expect(normalizeIdentifiers(' parseHTTP_response-value ')).toBe('parse HTTP response value');
12
+ });
13
+ });
14
+ //# sourceMappingURL=fts.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fts.test.js","sourceRoot":"","sources":["../../../src/indexer/code/fts.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAElD,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,CAAC,oBAAoB,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAChF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,CAAC,oBAAoB,CAAC,8BAA8B,CAAC,CAAC,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IACjG,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { CodeChunk, CSSFacts, EmbeddedChunk, GraphQLFacts } from '../../../types.js';
2
+ export declare function extractTemplateContent(rawContent: string): string;
3
+ export interface ExtractEmbeddedOptions {
4
+ fileId: string;
5
+ fileContent: string;
6
+ chunks: CodeChunk[];
7
+ }
8
+ export declare function extractEmbedded(options: ExtractEmbeddedOptions): Promise<EmbeddedChunk[]>;
9
+ export declare function parseGraphQLContent(content: string): GraphQLFacts | null;
10
+ export declare function parseCSSContent(content: string): CSSFacts | null;
11
+ //# sourceMappingURL=embedded.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embedded.d.ts","sourceRoot":"","sources":["../../../../src/indexer/code/graph/embedded.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAmB1F,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAGjE;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,SAAS,EAAE,CAAC;CACrB;AAqCD,wBAAsB,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAgB/F;AAgBD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAoCxE;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAsChE"}