glancey 2.0.0

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 (336) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +435 -0
  3. package/dist/__tests__/ast-chunker.test.d.ts +2 -0
  4. package/dist/__tests__/ast-chunker.test.d.ts.map +1 -0
  5. package/dist/__tests__/ast-chunker.test.js +307 -0
  6. package/dist/__tests__/ast-chunker.test.js.map +1 -0
  7. package/dist/__tests__/config.test.d.ts +2 -0
  8. package/dist/__tests__/config.test.d.ts.map +1 -0
  9. package/dist/__tests__/config.test.js +242 -0
  10. package/dist/__tests__/config.test.js.map +1 -0
  11. package/dist/__tests__/dashboard/beads.test.d.ts +2 -0
  12. package/dist/__tests__/dashboard/beads.test.d.ts.map +1 -0
  13. package/dist/__tests__/dashboard/beads.test.js +151 -0
  14. package/dist/__tests__/dashboard/beads.test.js.map +1 -0
  15. package/dist/__tests__/dashboard/index.test.d.ts +2 -0
  16. package/dist/__tests__/dashboard/index.test.d.ts.map +1 -0
  17. package/dist/__tests__/dashboard/index.test.js +116 -0
  18. package/dist/__tests__/dashboard/index.test.js.map +1 -0
  19. package/dist/__tests__/dashboard/routes.test.d.ts +2 -0
  20. package/dist/__tests__/dashboard/routes.test.d.ts.map +1 -0
  21. package/dist/__tests__/dashboard/routes.test.js +125 -0
  22. package/dist/__tests__/dashboard/routes.test.js.map +1 -0
  23. package/dist/__tests__/dashboard/server.test.d.ts +2 -0
  24. package/dist/__tests__/dashboard/server.test.d.ts.map +1 -0
  25. package/dist/__tests__/dashboard/server.test.js +75 -0
  26. package/dist/__tests__/dashboard/server.test.js.map +1 -0
  27. package/dist/__tests__/dashboard/state.test.d.ts +2 -0
  28. package/dist/__tests__/dashboard/state.test.d.ts.map +1 -0
  29. package/dist/__tests__/dashboard/state.test.js +124 -0
  30. package/dist/__tests__/dashboard/state.test.js.map +1 -0
  31. package/dist/__tests__/dashboard/token-tracking.test.d.ts +2 -0
  32. package/dist/__tests__/dashboard/token-tracking.test.d.ts.map +1 -0
  33. package/dist/__tests__/dashboard/token-tracking.test.js +315 -0
  34. package/dist/__tests__/dashboard/token-tracking.test.js.map +1 -0
  35. package/dist/__tests__/embeddings/factory.test.d.ts +2 -0
  36. package/dist/__tests__/embeddings/factory.test.d.ts.map +1 -0
  37. package/dist/__tests__/embeddings/factory.test.js +157 -0
  38. package/dist/__tests__/embeddings/factory.test.js.map +1 -0
  39. package/dist/__tests__/embeddings/gemini.test.d.ts +2 -0
  40. package/dist/__tests__/embeddings/gemini.test.d.ts.map +1 -0
  41. package/dist/__tests__/embeddings/gemini.test.js +178 -0
  42. package/dist/__tests__/embeddings/gemini.test.js.map +1 -0
  43. package/dist/__tests__/embeddings/ollama.test.d.ts +2 -0
  44. package/dist/__tests__/embeddings/ollama.test.d.ts.map +1 -0
  45. package/dist/__tests__/embeddings/ollama.test.js +273 -0
  46. package/dist/__tests__/embeddings/ollama.test.js.map +1 -0
  47. package/dist/__tests__/embeddings/rate-limiter.test.d.ts +2 -0
  48. package/dist/__tests__/embeddings/rate-limiter.test.d.ts.map +1 -0
  49. package/dist/__tests__/embeddings/rate-limiter.test.js +163 -0
  50. package/dist/__tests__/embeddings/rate-limiter.test.js.map +1 -0
  51. package/dist/__tests__/embeddings/retry.test.d.ts +2 -0
  52. package/dist/__tests__/embeddings/retry.test.d.ts.map +1 -0
  53. package/dist/__tests__/embeddings/retry.test.js +334 -0
  54. package/dist/__tests__/embeddings/retry.test.js.map +1 -0
  55. package/dist/__tests__/embeddings/types.test.d.ts +2 -0
  56. package/dist/__tests__/embeddings/types.test.d.ts.map +1 -0
  57. package/dist/__tests__/embeddings/types.test.js +31 -0
  58. package/dist/__tests__/embeddings/types.test.js.map +1 -0
  59. package/dist/__tests__/mocks/embedding-backend.mock.d.ts +10 -0
  60. package/dist/__tests__/mocks/embedding-backend.mock.d.ts.map +1 -0
  61. package/dist/__tests__/mocks/embedding-backend.mock.js +39 -0
  62. package/dist/__tests__/mocks/embedding-backend.mock.js.map +1 -0
  63. package/dist/__tests__/mocks/fetch.mock.d.ts +49 -0
  64. package/dist/__tests__/mocks/fetch.mock.d.ts.map +1 -0
  65. package/dist/__tests__/mocks/fetch.mock.js +102 -0
  66. package/dist/__tests__/mocks/fetch.mock.js.map +1 -0
  67. package/dist/__tests__/mocks/lancedb.mock.d.ts +38 -0
  68. package/dist/__tests__/mocks/lancedb.mock.d.ts.map +1 -0
  69. package/dist/__tests__/mocks/lancedb.mock.js +63 -0
  70. package/dist/__tests__/mocks/lancedb.mock.js.map +1 -0
  71. package/dist/__tests__/search/clustering.test.d.ts +2 -0
  72. package/dist/__tests__/search/clustering.test.d.ts.map +1 -0
  73. package/dist/__tests__/search/clustering.test.js +230 -0
  74. package/dist/__tests__/search/clustering.test.js.map +1 -0
  75. package/dist/__tests__/search/hybrid-search.test.d.ts +2 -0
  76. package/dist/__tests__/search/hybrid-search.test.d.ts.map +1 -0
  77. package/dist/__tests__/search/hybrid-search.test.js +279 -0
  78. package/dist/__tests__/search/hybrid-search.test.js.map +1 -0
  79. package/dist/__tests__/search/indexer.test.d.ts +2 -0
  80. package/dist/__tests__/search/indexer.test.d.ts.map +1 -0
  81. package/dist/__tests__/search/indexer.test.js +1305 -0
  82. package/dist/__tests__/search/indexer.test.js.map +1 -0
  83. package/dist/__tests__/search/tree-sitter-chunker.test.d.ts +2 -0
  84. package/dist/__tests__/search/tree-sitter-chunker.test.d.ts.map +1 -0
  85. package/dist/__tests__/search/tree-sitter-chunker.test.js +228 -0
  86. package/dist/__tests__/search/tree-sitter-chunker.test.js.map +1 -0
  87. package/dist/__tests__/setup.d.ts +2 -0
  88. package/dist/__tests__/setup.d.ts.map +1 -0
  89. package/dist/__tests__/setup.js +11 -0
  90. package/dist/__tests__/setup.js.map +1 -0
  91. package/dist/__tests__/tools/clustering-handlers.test.d.ts +2 -0
  92. package/dist/__tests__/tools/clustering-handlers.test.d.ts.map +1 -0
  93. package/dist/__tests__/tools/clustering-handlers.test.js +286 -0
  94. package/dist/__tests__/tools/clustering-handlers.test.js.map +1 -0
  95. package/dist/__tests__/tools/commit-handlers.test.d.ts +2 -0
  96. package/dist/__tests__/tools/commit-handlers.test.d.ts.map +1 -0
  97. package/dist/__tests__/tools/commit-handlers.test.js +153 -0
  98. package/dist/__tests__/tools/commit-handlers.test.js.map +1 -0
  99. package/dist/__tests__/tools/index-handlers.test.d.ts +2 -0
  100. package/dist/__tests__/tools/index-handlers.test.d.ts.map +1 -0
  101. package/dist/__tests__/tools/index-handlers.test.js +184 -0
  102. package/dist/__tests__/tools/index-handlers.test.js.map +1 -0
  103. package/dist/__tests__/tools/instructions-handlers.test.d.ts +2 -0
  104. package/dist/__tests__/tools/instructions-handlers.test.d.ts.map +1 -0
  105. package/dist/__tests__/tools/instructions-handlers.test.js +53 -0
  106. package/dist/__tests__/tools/instructions-handlers.test.js.map +1 -0
  107. package/dist/__tests__/tools/memory-handlers.test.d.ts +2 -0
  108. package/dist/__tests__/tools/memory-handlers.test.d.ts.map +1 -0
  109. package/dist/__tests__/tools/memory-handlers.test.js +175 -0
  110. package/dist/__tests__/tools/memory-handlers.test.js.map +1 -0
  111. package/dist/__tests__/tools/search-handlers.test.d.ts +2 -0
  112. package/dist/__tests__/tools/search-handlers.test.d.ts.map +1 -0
  113. package/dist/__tests__/tools/search-handlers.test.js +229 -0
  114. package/dist/__tests__/tools/search-handlers.test.js.map +1 -0
  115. package/dist/__tests__/tools/symbol-handlers.test.d.ts +2 -0
  116. package/dist/__tests__/tools/symbol-handlers.test.d.ts.map +1 -0
  117. package/dist/__tests__/tools/symbol-handlers.test.js +348 -0
  118. package/dist/__tests__/tools/symbol-handlers.test.js.map +1 -0
  119. package/dist/__tests__/tools/worktree-handlers.test.d.ts +2 -0
  120. package/dist/__tests__/tools/worktree-handlers.test.d.ts.map +1 -0
  121. package/dist/__tests__/tools/worktree-handlers.test.js +297 -0
  122. package/dist/__tests__/tools/worktree-handlers.test.js.map +1 -0
  123. package/dist/__tests__/utils/cache.test.d.ts +2 -0
  124. package/dist/__tests__/utils/cache.test.d.ts.map +1 -0
  125. package/dist/__tests__/utils/cache.test.js +147 -0
  126. package/dist/__tests__/utils/cache.test.js.map +1 -0
  127. package/dist/__tests__/utils/concurrency.test.d.ts +2 -0
  128. package/dist/__tests__/utils/concurrency.test.d.ts.map +1 -0
  129. package/dist/__tests__/utils/concurrency.test.js +83 -0
  130. package/dist/__tests__/utils/concurrency.test.js.map +1 -0
  131. package/dist/__tests__/utils/errors.test.d.ts +2 -0
  132. package/dist/__tests__/utils/errors.test.d.ts.map +1 -0
  133. package/dist/__tests__/utils/errors.test.js +136 -0
  134. package/dist/__tests__/utils/errors.test.js.map +1 -0
  135. package/dist/__tests__/utils/logger.test.d.ts +2 -0
  136. package/dist/__tests__/utils/logger.test.d.ts.map +1 -0
  137. package/dist/__tests__/utils/logger.test.js +131 -0
  138. package/dist/__tests__/utils/logger.test.js.map +1 -0
  139. package/dist/__tests__/utils/type-guards.test.d.ts +2 -0
  140. package/dist/__tests__/utils/type-guards.test.d.ts.map +1 -0
  141. package/dist/__tests__/utils/type-guards.test.js +80 -0
  142. package/dist/__tests__/utils/type-guards.test.js.map +1 -0
  143. package/dist/__tests__/worktree/worktree-manager.test.d.ts +2 -0
  144. package/dist/__tests__/worktree/worktree-manager.test.d.ts.map +1 -0
  145. package/dist/__tests__/worktree/worktree-manager.test.js +403 -0
  146. package/dist/__tests__/worktree/worktree-manager.test.js.map +1 -0
  147. package/dist/config.d.ts +191 -0
  148. package/dist/config.d.ts.map +1 -0
  149. package/dist/config.js +788 -0
  150. package/dist/config.js.map +1 -0
  151. package/dist/dashboard/beads.d.ts +35 -0
  152. package/dist/dashboard/beads.d.ts.map +1 -0
  153. package/dist/dashboard/beads.js +102 -0
  154. package/dist/dashboard/beads.js.map +1 -0
  155. package/dist/dashboard/events.d.ts +64 -0
  156. package/dist/dashboard/events.d.ts.map +1 -0
  157. package/dist/dashboard/events.js +211 -0
  158. package/dist/dashboard/events.js.map +1 -0
  159. package/dist/dashboard/index.d.ts +69 -0
  160. package/dist/dashboard/index.d.ts.map +1 -0
  161. package/dist/dashboard/index.js +93 -0
  162. package/dist/dashboard/index.js.map +1 -0
  163. package/dist/dashboard/routes.d.ts +6 -0
  164. package/dist/dashboard/routes.d.ts.map +1 -0
  165. package/dist/dashboard/routes.js +505 -0
  166. package/dist/dashboard/routes.js.map +1 -0
  167. package/dist/dashboard/server.d.ts +27 -0
  168. package/dist/dashboard/server.d.ts.map +1 -0
  169. package/dist/dashboard/server.js +72 -0
  170. package/dist/dashboard/server.js.map +1 -0
  171. package/dist/dashboard/state.d.ts +172 -0
  172. package/dist/dashboard/state.d.ts.map +1 -0
  173. package/dist/dashboard/state.js +362 -0
  174. package/dist/dashboard/state.js.map +1 -0
  175. package/dist/dashboard/token-tracking.d.ts +143 -0
  176. package/dist/dashboard/token-tracking.d.ts.map +1 -0
  177. package/dist/dashboard/token-tracking.js +363 -0
  178. package/dist/dashboard/token-tracking.js.map +1 -0
  179. package/dist/dashboard/ui.d.ts +6 -0
  180. package/dist/dashboard/ui.d.ts.map +1 -0
  181. package/dist/dashboard/ui.js +2710 -0
  182. package/dist/dashboard/ui.js.map +1 -0
  183. package/dist/embeddings/gemini.d.ts +28 -0
  184. package/dist/embeddings/gemini.d.ts.map +1 -0
  185. package/dist/embeddings/gemini.js +165 -0
  186. package/dist/embeddings/gemini.js.map +1 -0
  187. package/dist/embeddings/index.d.ts +34 -0
  188. package/dist/embeddings/index.d.ts.map +1 -0
  189. package/dist/embeddings/index.js +120 -0
  190. package/dist/embeddings/index.js.map +1 -0
  191. package/dist/embeddings/ollama.d.ts +22 -0
  192. package/dist/embeddings/ollama.d.ts.map +1 -0
  193. package/dist/embeddings/ollama.js +179 -0
  194. package/dist/embeddings/ollama.js.map +1 -0
  195. package/dist/embeddings/rate-limiter.d.ts +75 -0
  196. package/dist/embeddings/rate-limiter.d.ts.map +1 -0
  197. package/dist/embeddings/rate-limiter.js +145 -0
  198. package/dist/embeddings/rate-limiter.js.map +1 -0
  199. package/dist/embeddings/retry.d.ts +20 -0
  200. package/dist/embeddings/retry.d.ts.map +1 -0
  201. package/dist/embeddings/retry.js +227 -0
  202. package/dist/embeddings/retry.js.map +1 -0
  203. package/dist/embeddings/types.d.ts +103 -0
  204. package/dist/embeddings/types.d.ts.map +1 -0
  205. package/dist/embeddings/types.js +23 -0
  206. package/dist/embeddings/types.js.map +1 -0
  207. package/dist/index.d.ts +12 -0
  208. package/dist/index.d.ts.map +1 -0
  209. package/dist/index.js +2028 -0
  210. package/dist/index.js.map +1 -0
  211. package/dist/memory/index.d.ts +63 -0
  212. package/dist/memory/index.d.ts.map +1 -0
  213. package/dist/memory/index.js +168 -0
  214. package/dist/memory/index.js.map +1 -0
  215. package/dist/search/ast-chunker.d.ts +29 -0
  216. package/dist/search/ast-chunker.d.ts.map +1 -0
  217. package/dist/search/ast-chunker.js +236 -0
  218. package/dist/search/ast-chunker.js.map +1 -0
  219. package/dist/search/chunk-utils.d.ts +24 -0
  220. package/dist/search/chunk-utils.d.ts.map +1 -0
  221. package/dist/search/chunk-utils.js +41 -0
  222. package/dist/search/chunk-utils.js.map +1 -0
  223. package/dist/search/clustering.d.ts +77 -0
  224. package/dist/search/clustering.d.ts.map +1 -0
  225. package/dist/search/clustering.js +455 -0
  226. package/dist/search/clustering.js.map +1 -0
  227. package/dist/search/indexer.d.ts +377 -0
  228. package/dist/search/indexer.d.ts.map +1 -0
  229. package/dist/search/indexer.js +1557 -0
  230. package/dist/search/indexer.js.map +1 -0
  231. package/dist/search/tree-sitter-chunker.d.ts +64 -0
  232. package/dist/search/tree-sitter-chunker.d.ts.map +1 -0
  233. package/dist/search/tree-sitter-chunker.js +412 -0
  234. package/dist/search/tree-sitter-chunker.js.map +1 -0
  235. package/dist/symbols/index.d.ts +14 -0
  236. package/dist/symbols/index.d.ts.map +1 -0
  237. package/dist/symbols/index.js +19 -0
  238. package/dist/symbols/index.js.map +1 -0
  239. package/dist/symbols/name-path.d.ts +113 -0
  240. package/dist/symbols/name-path.d.ts.map +1 -0
  241. package/dist/symbols/name-path.js +194 -0
  242. package/dist/symbols/name-path.js.map +1 -0
  243. package/dist/symbols/pattern-search.d.ts +14 -0
  244. package/dist/symbols/pattern-search.d.ts.map +1 -0
  245. package/dist/symbols/pattern-search.js +224 -0
  246. package/dist/symbols/pattern-search.js.map +1 -0
  247. package/dist/symbols/reference-finder.d.ts +38 -0
  248. package/dist/symbols/reference-finder.d.ts.map +1 -0
  249. package/dist/symbols/reference-finder.js +376 -0
  250. package/dist/symbols/reference-finder.js.map +1 -0
  251. package/dist/symbols/symbol-editor.d.ts +81 -0
  252. package/dist/symbols/symbol-editor.d.ts.map +1 -0
  253. package/dist/symbols/symbol-editor.js +257 -0
  254. package/dist/symbols/symbol-editor.js.map +1 -0
  255. package/dist/symbols/symbol-extractor.d.ts +49 -0
  256. package/dist/symbols/symbol-extractor.d.ts.map +1 -0
  257. package/dist/symbols/symbol-extractor.js +593 -0
  258. package/dist/symbols/symbol-extractor.js.map +1 -0
  259. package/dist/symbols/symbol-renamer.d.ts +81 -0
  260. package/dist/symbols/symbol-renamer.d.ts.map +1 -0
  261. package/dist/symbols/symbol-renamer.js +204 -0
  262. package/dist/symbols/symbol-renamer.js.map +1 -0
  263. package/dist/symbols/types.d.ts +234 -0
  264. package/dist/symbols/types.d.ts.map +1 -0
  265. package/dist/symbols/types.js +106 -0
  266. package/dist/symbols/types.js.map +1 -0
  267. package/dist/tools/clustering-handlers.d.ts +70 -0
  268. package/dist/tools/clustering-handlers.d.ts.map +1 -0
  269. package/dist/tools/clustering-handlers.js +150 -0
  270. package/dist/tools/clustering-handlers.js.map +1 -0
  271. package/dist/tools/commit-handlers.d.ts +77 -0
  272. package/dist/tools/commit-handlers.d.ts.map +1 -0
  273. package/dist/tools/commit-handlers.js +251 -0
  274. package/dist/tools/commit-handlers.js.map +1 -0
  275. package/dist/tools/index-handlers.d.ts +31 -0
  276. package/dist/tools/index-handlers.d.ts.map +1 -0
  277. package/dist/tools/index-handlers.js +53 -0
  278. package/dist/tools/index-handlers.js.map +1 -0
  279. package/dist/tools/instructions-handlers.d.ts +25 -0
  280. package/dist/tools/instructions-handlers.d.ts.map +1 -0
  281. package/dist/tools/instructions-handlers.js +36 -0
  282. package/dist/tools/instructions-handlers.js.map +1 -0
  283. package/dist/tools/memory-handlers.d.ts +95 -0
  284. package/dist/tools/memory-handlers.d.ts.map +1 -0
  285. package/dist/tools/memory-handlers.js +126 -0
  286. package/dist/tools/memory-handlers.js.map +1 -0
  287. package/dist/tools/search-handlers.d.ts +51 -0
  288. package/dist/tools/search-handlers.d.ts.map +1 -0
  289. package/dist/tools/search-handlers.js +128 -0
  290. package/dist/tools/search-handlers.js.map +1 -0
  291. package/dist/tools/symbol-handlers.d.ts +171 -0
  292. package/dist/tools/symbol-handlers.d.ts.map +1 -0
  293. package/dist/tools/symbol-handlers.js +456 -0
  294. package/dist/tools/symbol-handlers.js.map +1 -0
  295. package/dist/tools/types.d.ts +32 -0
  296. package/dist/tools/types.d.ts.map +1 -0
  297. package/dist/tools/types.js +17 -0
  298. package/dist/tools/types.js.map +1 -0
  299. package/dist/tools/worktree-handlers.d.ts +96 -0
  300. package/dist/tools/worktree-handlers.d.ts.map +1 -0
  301. package/dist/tools/worktree-handlers.js +186 -0
  302. package/dist/tools/worktree-handlers.js.map +1 -0
  303. package/dist/utils/cache.d.ts +77 -0
  304. package/dist/utils/cache.d.ts.map +1 -0
  305. package/dist/utils/cache.js +134 -0
  306. package/dist/utils/cache.js.map +1 -0
  307. package/dist/utils/concurrency.d.ts +32 -0
  308. package/dist/utils/concurrency.d.ts.map +1 -0
  309. package/dist/utils/concurrency.js +57 -0
  310. package/dist/utils/concurrency.js.map +1 -0
  311. package/dist/utils/errors.d.ts +36 -0
  312. package/dist/utils/errors.d.ts.map +1 -0
  313. package/dist/utils/errors.js +91 -0
  314. package/dist/utils/errors.js.map +1 -0
  315. package/dist/utils/logger.d.ts +37 -0
  316. package/dist/utils/logger.d.ts.map +1 -0
  317. package/dist/utils/logger.js +114 -0
  318. package/dist/utils/logger.js.map +1 -0
  319. package/dist/utils/type-guards.d.ts +17 -0
  320. package/dist/utils/type-guards.d.ts.map +1 -0
  321. package/dist/utils/type-guards.js +25 -0
  322. package/dist/utils/type-guards.js.map +1 -0
  323. package/dist/worktree/index.d.ts +6 -0
  324. package/dist/worktree/index.d.ts.map +1 -0
  325. package/dist/worktree/index.js +6 -0
  326. package/dist/worktree/index.js.map +1 -0
  327. package/dist/worktree/types.d.ts +101 -0
  328. package/dist/worktree/types.d.ts.map +1 -0
  329. package/dist/worktree/types.js +6 -0
  330. package/dist/worktree/types.js.map +1 -0
  331. package/dist/worktree/worktree-manager.d.ts +80 -0
  332. package/dist/worktree/worktree-manager.d.ts.map +1 -0
  333. package/dist/worktree/worktree-manager.js +407 -0
  334. package/dist/worktree/worktree-manager.js.map +1 -0
  335. package/package.json +87 -0
  336. package/scripts/postinstall.js +48 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"indexer.js","sourceRoot":"","sources":["../../src/search/indexer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ import { type BaseChunk } from './chunk-utils.js';
2
+ /**
3
+ * Chunk from tree-sitter AST parsing
4
+ */
5
+ export type TreeSitterChunk = BaseChunk;
6
+ /**
7
+ * Tree-sitter based AST chunker for multiple languages
8
+ * Provides language-agnostic code parsing beyond TypeScript/JavaScript
9
+ */
10
+ export declare class TreeSitterChunker {
11
+ private static parser;
12
+ private static loadedLanguages;
13
+ private static initPromise;
14
+ private static wasmBasePath;
15
+ /**
16
+ * Initialize the tree-sitter parser (call once before using)
17
+ */
18
+ static initialize(): Promise<void>;
19
+ /**
20
+ * Find the path to the tree-sitter WASM files
21
+ */
22
+ private static findWasmBasePath;
23
+ /**
24
+ * Get the language configuration for a file extension
25
+ */
26
+ private static getLanguageConfig;
27
+ /**
28
+ * Get the language name for a file extension
29
+ */
30
+ static getLanguageName(filepath: string): string | null;
31
+ /**
32
+ * Check if a file can be parsed with tree-sitter
33
+ */
34
+ static canParse(filepath: string): boolean;
35
+ /**
36
+ * Get the list of supported file extensions
37
+ */
38
+ static getSupportedExtensions(): string[];
39
+ /**
40
+ * Load a language if not already loaded
41
+ */
42
+ private static loadLanguage;
43
+ /**
44
+ * Parse a file and return AST-aware chunks
45
+ */
46
+ chunkFile(filepath: string): Promise<TreeSitterChunk[]>;
47
+ /**
48
+ * Process a node and its children to extract chunks
49
+ */
50
+ private processNode;
51
+ /**
52
+ * Process a class node that's too large to fit in one chunk
53
+ */
54
+ private processClassNode;
55
+ /**
56
+ * Get the name of a node (function name, class name, etc.)
57
+ */
58
+ private getNodeName;
59
+ /**
60
+ * Split a large chunk into smaller pieces
61
+ */
62
+ private splitLargeChunk;
63
+ }
64
+ //# sourceMappingURL=tree-sitter-chunker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tree-sitter-chunker.d.ts","sourceRoot":"","sources":["../../src/search/tree-sitter-chunker.ts"],"names":[],"mappings":"AAIA,OAAO,EAAmB,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAoBnE;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,SAAS,CAAC;AAqFxC;;;GAGG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAAC,MAAM,CAA2B;IAChD,OAAO,CAAC,MAAM,CAAC,eAAe,CAAoC;IAClE,OAAO,CAAC,MAAM,CAAC,WAAW,CAA8B;IACxD,OAAO,CAAC,MAAM,CAAC,YAAY,CAAuB;IAElD;;OAEG;WACU,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA4BxC;;OAEG;mBACkB,gBAAgB;IA8BrC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAYhC;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAYvD;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAI1C;;OAEG;IACH,MAAM,CAAC,sBAAsB,IAAI,MAAM,EAAE;IAQzC;;OAEG;mBACkB,YAAY;IAoBjC;;OAEG;IACG,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IA0D7D;;OAEG;IACH,OAAO,CAAC,WAAW;IAmHnB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA4CxB;;OAEG;IACH,OAAO,CAAC,WAAW;IA4BnB;;OAEG;IACH,OAAO,CAAC,eAAe;CAGxB"}
@@ -0,0 +1,412 @@
1
+ import * as fs from 'fs/promises';
2
+ import * as path from 'path';
3
+ import { fileURLToPath } from 'url';
4
+ import { splitLargeChunk } from './chunk-utils.js';
5
+ let parserModule = null;
6
+ const loadParserModule = async () => {
7
+ if (!parserModule) {
8
+ const mod = await import('web-tree-sitter');
9
+ parserModule = {
10
+ Parser: mod.Parser,
11
+ Language: mod.Language,
12
+ };
13
+ }
14
+ return parserModule;
15
+ };
16
+ // Maximum lines per chunk before splitting
17
+ const MAX_CHUNK_LINES = 100;
18
+ // Minimum lines for a chunk (avoid tiny fragments)
19
+ const MIN_CHUNK_LINES = 3;
20
+ /**
21
+ * Language configurations for supported languages
22
+ * Note: Only includes languages available in @vscode/tree-sitter-wasm
23
+ */
24
+ const LANGUAGE_CONFIGS = {
25
+ python: {
26
+ wasmFile: 'tree-sitter-python.wasm',
27
+ extensions: ['.py', '.pyi'],
28
+ functionTypes: ['function_definition'],
29
+ classTypes: ['class_definition'],
30
+ methodTypes: ['function_definition'], // Methods are function_definition inside class
31
+ importTypes: ['import_statement', 'import_from_statement'],
32
+ variableTypes: ['assignment', 'expression_statement'],
33
+ interfaceTypes: [],
34
+ typeTypes: [],
35
+ },
36
+ go: {
37
+ wasmFile: 'tree-sitter-go.wasm',
38
+ extensions: ['.go'],
39
+ functionTypes: ['function_declaration'],
40
+ classTypes: [], // Go doesn't have classes
41
+ methodTypes: ['method_declaration'],
42
+ importTypes: ['import_declaration'],
43
+ variableTypes: ['var_declaration', 'const_declaration', 'short_var_declaration'],
44
+ interfaceTypes: ['type_declaration'], // interface types
45
+ typeTypes: ['type_declaration'],
46
+ },
47
+ rust: {
48
+ wasmFile: 'tree-sitter-rust.wasm',
49
+ extensions: ['.rs'],
50
+ functionTypes: ['function_item'],
51
+ classTypes: [], // Rust doesn't have classes
52
+ methodTypes: ['function_item'], // Methods are function_item inside impl
53
+ importTypes: ['use_declaration'],
54
+ variableTypes: ['let_declaration', 'const_item', 'static_item'],
55
+ interfaceTypes: ['trait_item'],
56
+ typeTypes: ['type_item', 'struct_item', 'enum_item', 'impl_item'],
57
+ },
58
+ java: {
59
+ wasmFile: 'tree-sitter-java.wasm',
60
+ extensions: ['.java'],
61
+ functionTypes: [],
62
+ classTypes: ['class_declaration', 'interface_declaration', 'enum_declaration'],
63
+ methodTypes: ['method_declaration', 'constructor_declaration'],
64
+ importTypes: ['import_declaration'],
65
+ variableTypes: ['field_declaration', 'local_variable_declaration'],
66
+ interfaceTypes: ['interface_declaration'],
67
+ typeTypes: [],
68
+ },
69
+ ruby: {
70
+ wasmFile: 'tree-sitter-ruby.wasm',
71
+ extensions: ['.rb'],
72
+ functionTypes: ['method'],
73
+ classTypes: ['class', 'module'],
74
+ methodTypes: ['method', 'singleton_method'],
75
+ importTypes: ['call'], // require/require_relative calls
76
+ variableTypes: ['assignment'],
77
+ interfaceTypes: [],
78
+ typeTypes: [],
79
+ },
80
+ };
81
+ /**
82
+ * Tree-sitter based AST chunker for multiple languages
83
+ * Provides language-agnostic code parsing beyond TypeScript/JavaScript
84
+ */
85
+ export class TreeSitterChunker {
86
+ static parser = null;
87
+ static loadedLanguages = new Map();
88
+ static initPromise = null;
89
+ static wasmBasePath = null;
90
+ /**
91
+ * Initialize the tree-sitter parser (call once before using)
92
+ */
93
+ static async initialize() {
94
+ if (this.initPromise) {
95
+ return this.initPromise;
96
+ }
97
+ this.initPromise = (async () => {
98
+ // Find the WASM files path
99
+ this.wasmBasePath = await this.findWasmBasePath();
100
+ // Initialize the parser via dynamic import
101
+ const module = await loadParserModule();
102
+ // Initialize with locateFile to find the wasm file bundled with web-tree-sitter
103
+ const webTreeSitterWasm = path.join(process.cwd(), 'node_modules', 'web-tree-sitter', 'web-tree-sitter.wasm');
104
+ await module.Parser.init({
105
+ locateFile: () => webTreeSitterWasm,
106
+ });
107
+ this.parser = new module.Parser();
108
+ })();
109
+ return this.initPromise;
110
+ }
111
+ /**
112
+ * Find the path to the tree-sitter WASM files
113
+ */
114
+ static async findWasmBasePath() {
115
+ // Try common locations
116
+ const possiblePaths = [
117
+ path.join(process.cwd(), 'node_modules', '@vscode', 'tree-sitter-wasm', 'wasm'),
118
+ path.join(fileURLToPath(import.meta.url), '..', '..', '..', 'node_modules', '@vscode', 'tree-sitter-wasm', 'wasm'),
119
+ ];
120
+ for (const p of possiblePaths) {
121
+ try {
122
+ await fs.access(p);
123
+ return p;
124
+ }
125
+ catch {
126
+ // Try next path
127
+ }
128
+ }
129
+ throw new Error('Could not find @vscode/tree-sitter-wasm package. Please install it with: npm install @vscode/tree-sitter-wasm');
130
+ }
131
+ /**
132
+ * Get the language configuration for a file extension
133
+ */
134
+ static getLanguageConfig(filepath) {
135
+ const ext = path.extname(filepath).toLowerCase();
136
+ for (const [, config] of Object.entries(LANGUAGE_CONFIGS)) {
137
+ if (config.extensions.includes(ext)) {
138
+ return config;
139
+ }
140
+ }
141
+ return null;
142
+ }
143
+ /**
144
+ * Get the language name for a file extension
145
+ */
146
+ static getLanguageName(filepath) {
147
+ const ext = path.extname(filepath).toLowerCase();
148
+ for (const [name, config] of Object.entries(LANGUAGE_CONFIGS)) {
149
+ if (config.extensions.includes(ext)) {
150
+ return name;
151
+ }
152
+ }
153
+ return null;
154
+ }
155
+ /**
156
+ * Check if a file can be parsed with tree-sitter
157
+ */
158
+ static canParse(filepath) {
159
+ return this.getLanguageConfig(filepath) !== null;
160
+ }
161
+ /**
162
+ * Get the list of supported file extensions
163
+ */
164
+ static getSupportedExtensions() {
165
+ const extensions = [];
166
+ for (const config of Object.values(LANGUAGE_CONFIGS)) {
167
+ extensions.push(...config.extensions);
168
+ }
169
+ return extensions;
170
+ }
171
+ /**
172
+ * Load a language if not already loaded
173
+ */
174
+ static async loadLanguage(config) {
175
+ const cached = this.loadedLanguages.get(config.wasmFile);
176
+ if (cached) {
177
+ return cached;
178
+ }
179
+ if (!this.wasmBasePath) {
180
+ throw new Error('TreeSitterChunker not initialized. Call initialize() first.');
181
+ }
182
+ const module = await loadParserModule();
183
+ const wasmPath = path.join(this.wasmBasePath, config.wasmFile);
184
+ // Load the WASM file as bytes for better compatibility
185
+ const wasmBytes = await fs.readFile(wasmPath);
186
+ const language = await module.Language.load(wasmBytes);
187
+ this.loadedLanguages.set(config.wasmFile, language);
188
+ return language;
189
+ }
190
+ /**
191
+ * Parse a file and return AST-aware chunks
192
+ */
193
+ async chunkFile(filepath) {
194
+ await TreeSitterChunker.initialize();
195
+ const config = TreeSitterChunker.getLanguageConfig(filepath);
196
+ if (!config) {
197
+ throw new Error(`Unsupported file type: ${filepath}`);
198
+ }
199
+ const language = await TreeSitterChunker.loadLanguage(config);
200
+ const parser = TreeSitterChunker.parser;
201
+ parser.setLanguage(language);
202
+ const content = await fs.readFile(filepath, 'utf-8');
203
+ const tree = parser.parse(content);
204
+ if (!tree) {
205
+ throw new Error(`Failed to parse file: ${filepath}`);
206
+ }
207
+ const lines = content.split('\n');
208
+ const chunks = [];
209
+ const imports = [];
210
+ // Process top-level nodes
211
+ this.processNode(tree.rootNode, config, lines, chunks, imports);
212
+ // Add imports as the first chunk if present
213
+ if (imports.length > 0) {
214
+ const firstImport = imports[0];
215
+ const lastImport = imports[imports.length - 1];
216
+ chunks.unshift({
217
+ content: lines
218
+ .slice(firstImport.startPosition.row, lastImport.endPosition.row + 1)
219
+ .join('\n'),
220
+ startLine: firstImport.startPosition.row + 1,
221
+ endLine: lastImport.endPosition.row + 1,
222
+ type: 'import',
223
+ name: 'imports',
224
+ });
225
+ }
226
+ // Sort chunks by start line
227
+ chunks.sort((a, b) => a.startLine - b.startLine);
228
+ // Split large chunks
229
+ const finalChunks = [];
230
+ for (const chunk of chunks) {
231
+ if (chunk.endLine - chunk.startLine + 1 > MAX_CHUNK_LINES) {
232
+ const splitChunks = this.splitLargeChunk(chunk, lines);
233
+ finalChunks.push(...splitChunks);
234
+ }
235
+ else {
236
+ finalChunks.push(chunk);
237
+ }
238
+ }
239
+ return finalChunks;
240
+ }
241
+ /**
242
+ * Process a node and its children to extract chunks
243
+ */
244
+ processNode(node, config, lines, chunks, imports, parentClassName) {
245
+ // Check if this is an import
246
+ if (config.importTypes.includes(node.type)) {
247
+ imports.push(node);
248
+ return;
249
+ }
250
+ // Check if this is a class/struct
251
+ if (config.classTypes.includes(node.type)) {
252
+ const className = this.getNodeName(node) || 'AnonymousClass';
253
+ const classLines = node.endPosition.row - node.startPosition.row + 1;
254
+ if (classLines <= MAX_CHUNK_LINES) {
255
+ // Keep class together
256
+ chunks.push({
257
+ content: lines.slice(node.startPosition.row, node.endPosition.row + 1).join('\n'),
258
+ startLine: node.startPosition.row + 1,
259
+ endLine: node.endPosition.row + 1,
260
+ type: 'class',
261
+ name: className,
262
+ });
263
+ }
264
+ else {
265
+ // Split class into header + methods
266
+ this.processClassNode(node, config, lines, chunks, className);
267
+ }
268
+ return;
269
+ }
270
+ // Check if this is a function (top-level)
271
+ if (config.functionTypes.includes(node.type) && !parentClassName) {
272
+ const name = this.getNodeName(node);
273
+ chunks.push({
274
+ content: lines.slice(node.startPosition.row, node.endPosition.row + 1).join('\n'),
275
+ startLine: node.startPosition.row + 1,
276
+ endLine: node.endPosition.row + 1,
277
+ type: 'function',
278
+ name,
279
+ });
280
+ return;
281
+ }
282
+ // Check if this is a method (inside class)
283
+ if (config.methodTypes.includes(node.type) && parentClassName) {
284
+ const methodName = this.getNodeName(node);
285
+ chunks.push({
286
+ content: lines.slice(node.startPosition.row, node.endPosition.row + 1).join('\n'),
287
+ startLine: node.startPosition.row + 1,
288
+ endLine: node.endPosition.row + 1,
289
+ type: 'method',
290
+ name: methodName ? `${parentClassName}.${methodName}` : parentClassName,
291
+ });
292
+ return;
293
+ }
294
+ // Check for interfaces/traits
295
+ if (config.interfaceTypes.includes(node.type)) {
296
+ const name = this.getNodeName(node);
297
+ chunks.push({
298
+ content: lines.slice(node.startPosition.row, node.endPosition.row + 1).join('\n'),
299
+ startLine: node.startPosition.row + 1,
300
+ endLine: node.endPosition.row + 1,
301
+ type: 'interface',
302
+ name,
303
+ });
304
+ return;
305
+ }
306
+ // Check for type definitions
307
+ if (config.typeTypes.includes(node.type)) {
308
+ const name = this.getNodeName(node);
309
+ const typeLines = node.endPosition.row - node.startPosition.row + 1;
310
+ if (typeLines <= MAX_CHUNK_LINES) {
311
+ chunks.push({
312
+ content: lines.slice(node.startPosition.row, node.endPosition.row + 1).join('\n'),
313
+ startLine: node.startPosition.row + 1,
314
+ endLine: node.endPosition.row + 1,
315
+ type: 'type',
316
+ name,
317
+ });
318
+ }
319
+ else {
320
+ // For large type definitions (like impl blocks in Rust), process children
321
+ for (const child of node.children) {
322
+ this.processNode(child, config, lines, chunks, imports, name);
323
+ }
324
+ }
325
+ return;
326
+ }
327
+ // Check for top-level variables
328
+ if (config.variableTypes.includes(node.type) && node.parent?.type === 'source_file') {
329
+ const name = this.getNodeName(node);
330
+ chunks.push({
331
+ content: lines.slice(node.startPosition.row, node.endPosition.row + 1).join('\n'),
332
+ startLine: node.startPosition.row + 1,
333
+ endLine: node.endPosition.row + 1,
334
+ type: 'variable',
335
+ name,
336
+ });
337
+ return;
338
+ }
339
+ // Recurse into children
340
+ for (const child of node.children) {
341
+ this.processNode(child, config, lines, chunks, imports, parentClassName);
342
+ }
343
+ }
344
+ /**
345
+ * Process a class node that's too large to fit in one chunk
346
+ */
347
+ processClassNode(node, config, lines, chunks, className) {
348
+ // Find the first child that's a method or field
349
+ let headerEndRow = node.startPosition.row;
350
+ const methods = [];
351
+ for (const child of node.children) {
352
+ if (config.methodTypes.includes(child.type)) {
353
+ methods.push(child);
354
+ if (methods.length === 1) {
355
+ headerEndRow = child.startPosition.row - 1;
356
+ }
357
+ }
358
+ }
359
+ // Add class header
360
+ if (headerEndRow > node.startPosition.row) {
361
+ chunks.push({
362
+ content: lines.slice(node.startPosition.row, headerEndRow + 1).join('\n'),
363
+ startLine: node.startPosition.row + 1,
364
+ endLine: headerEndRow + 1,
365
+ type: 'class',
366
+ name: `${className} (header)`,
367
+ });
368
+ }
369
+ // Add individual methods
370
+ for (const method of methods) {
371
+ const methodName = this.getNodeName(method);
372
+ chunks.push({
373
+ content: lines.slice(method.startPosition.row, method.endPosition.row + 1).join('\n'),
374
+ startLine: method.startPosition.row + 1,
375
+ endLine: method.endPosition.row + 1,
376
+ type: 'method',
377
+ name: methodName ? `${className}.${methodName}` : className,
378
+ });
379
+ }
380
+ }
381
+ /**
382
+ * Get the name of a node (function name, class name, etc.)
383
+ */
384
+ getNodeName(node) {
385
+ // Look for a name or identifier child
386
+ for (const child of node.children) {
387
+ if (child.type === 'identifier' ||
388
+ child.type === 'name' ||
389
+ child.type === 'type_identifier') {
390
+ return child.text;
391
+ }
392
+ // For Python decorators, the name might be nested
393
+ if (child.type === 'decorated_definition') {
394
+ return this.getNodeName(child);
395
+ }
396
+ }
397
+ // For some languages, try the first named child
398
+ const firstNamedChild = node.firstNamedChild;
399
+ if (firstNamedChild &&
400
+ (firstNamedChild.type === 'identifier' || firstNamedChild.type === 'name')) {
401
+ return firstNamedChild.text;
402
+ }
403
+ return undefined;
404
+ }
405
+ /**
406
+ * Split a large chunk into smaller pieces
407
+ */
408
+ splitLargeChunk(chunk, _allLines) {
409
+ return splitLargeChunk(chunk, MAX_CHUNK_LINES, MIN_CHUNK_LINES);
410
+ }
411
+ }
412
+ //# sourceMappingURL=tree-sitter-chunker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tree-sitter-chunker.js","sourceRoot":"","sources":["../../src/search/tree-sitter-chunker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Symbolic code analysis module.
3
+ * Provides Serena-like symbol navigation and analysis tools.
4
+ */
5
+ export * from './types.js';
6
+ export * from './name-path.js';
7
+ export { SymbolExtractor } from './symbol-extractor.js';
8
+ export { searchForPattern, formatPatternSearchResults } from './pattern-search.js';
9
+ export { ReferenceFinder, formatReferencesResult } from './reference-finder.js';
10
+ export { SymbolEditor } from './symbol-editor.js';
11
+ export type { EditResult, ReplaceSymbolOptions, InsertSymbolOptions } from './symbol-editor.js';
12
+ export { SymbolRenamer, formatRenameResult } from './symbol-renamer.js';
13
+ export type { RenameResult, RenameSymbolOptions, RenameFileResult } from './symbol-renamer.js';
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/symbols/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,cAAc,YAAY,CAAC;AAG3B,cAAc,gBAAgB,CAAC;AAG/B,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD,OAAO,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AAGnF,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAGhF,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,YAAY,EAAE,UAAU,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAGhG,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACxE,YAAY,EAAE,YAAY,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC"}