scip-query 0.1.0 → 0.2.1

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 (325) hide show
  1. package/README.md +16 -43
  2. package/dist/chunk-2UELLEBI.js +1 -0
  3. package/dist/chunk-34JPTNRN.js +601 -0
  4. package/dist/{chunk-NDSQYIWT.js → chunk-3566TKJ5.js} +3 -3
  5. package/dist/{chunk-LB7OS35Q.js → chunk-4ACRRQC4.js} +8 -4
  6. package/dist/{chunk-3E2X7RIE.js → chunk-4BQFSNFI.js} +10 -6
  7. package/dist/{chunk-BP2ATLK2.js → chunk-6QSHLFSL.js} +4 -4
  8. package/dist/{chunk-5FGUEU7N.js → chunk-6WVR5K46.js} +18 -10
  9. package/dist/{chunk-XFXDXEUN.js → chunk-74RFWB5T.js} +2 -2
  10. package/dist/{chunk-MBVNHJVN.js → chunk-75RQSBTK.js} +2 -2
  11. package/dist/{chunk-YZAA4LYG.js → chunk-7HK5ZLOE.js} +30 -48
  12. package/dist/{chunk-T6ARFSBZ.js → chunk-7JFZSOJ7.js} +7 -7
  13. package/dist/{chunk-6SXADWLW.js → chunk-AKMBBKWV.js} +2 -2
  14. package/dist/{chunk-ZJRYBOEE.js → chunk-AMNISGYR.js} +5 -5
  15. package/dist/{chunk-CM454WL3.js → chunk-BFLULBEU.js} +3 -3
  16. package/dist/{chunk-Z73NYSBZ.js → chunk-CU62ZDHI.js} +2 -2
  17. package/dist/{chunk-TBP6BICL.js → chunk-DY4AFG2W.js} +13 -11
  18. package/dist/{chunk-2QZ23IBN.js → chunk-F7XU27LU.js} +4 -4
  19. package/dist/{chunk-KCBMVQL5.js → chunk-GPJVPT3U.js} +2 -2
  20. package/dist/{chunk-NUZ4OMU3.js → chunk-GU2H5QRN.js} +2 -2
  21. package/dist/{chunk-TSPZOMHC.js → chunk-H6WCPKCX.js} +6 -3
  22. package/dist/{chunk-KVSW5KYP.js → chunk-HDSRORNV.js} +4 -4
  23. package/dist/{chunk-LUSIFBXO.js → chunk-HMYJJ3HY.js} +9 -6
  24. package/dist/chunk-IJKLB2JW.js +69 -0
  25. package/dist/{chunk-6NBLIDF4.js → chunk-ITZ3DDOG.js} +2 -2
  26. package/dist/{chunk-GTILYBH6.js → chunk-IXPHLF6K.js} +6 -6
  27. package/dist/{chunk-BFSCMC22.js → chunk-KBOQX573.js} +3 -3
  28. package/dist/{chunk-FUHJCHS4.js → chunk-LLMPAG56.js} +95 -32
  29. package/dist/{chunk-FFSWWE5O.js → chunk-LTJC5ZQL.js} +3 -3
  30. package/dist/{chunk-LAWMH22O.js → chunk-M3NPW3FC.js} +2 -2
  31. package/dist/{chunk-VRUJH4BO.js → chunk-M4QGEKKD.js} +6 -28
  32. package/dist/{chunk-7OZPA5OO.js → chunk-MVH45PYK.js} +21 -41
  33. package/dist/chunk-N4C3H7LH.js +37 -0
  34. package/dist/chunk-NG5F43OU.js +200 -0
  35. package/dist/{chunk-6VJ6Q7IE.js → chunk-NVIIM34O.js} +4 -4
  36. package/dist/{chunk-GJFURBEW.js → chunk-ORINICIZ.js} +4 -4
  37. package/dist/{chunk-TDNNOR6D.js → chunk-PMJKOXOT.js} +7 -7
  38. package/dist/{chunk-QOV2R2WT.js → chunk-QIXNAB5K.js} +42 -2
  39. package/dist/{chunk-JKP5GH6T.js → chunk-R2I3M5B4.js} +2 -2
  40. package/dist/{chunk-36OMT7ZJ.js → chunk-R56FJU3E.js} +35 -14
  41. package/dist/{chunk-VZ7AMAFL.js → chunk-RFMT7UAZ.js} +3 -3
  42. package/dist/{chunk-SEFSL2GF.js → chunk-TOIEB3LG.js} +2 -2
  43. package/dist/chunk-VO4QI3LS.js +84 -0
  44. package/dist/{chunk-EMDQWNYR.js → chunk-WVK7AASK.js} +8 -8
  45. package/dist/{chunk-5WTJAXY2.js → chunk-Y3M323OX.js} +2 -2
  46. package/dist/{chunk-DCKMSTJ4.js → chunk-Y4JFVQ7C.js} +2 -2
  47. package/dist/{chunk-UNTPVD36.js → chunk-YAFWL3RA.js} +4 -4
  48. package/dist/{chunk-FGXRVW7G.js → chunk-YZ6L7GFO.js} +2 -2
  49. package/dist/cli.js +1401 -717
  50. package/dist/{db-BxaevAyc.d.ts → db-BHYam4BK.d.ts} +7 -19
  51. package/dist/index.d.ts +15 -15
  52. package/dist/index.js +263 -234
  53. package/dist/postinstall.js +5 -76
  54. package/dist/queries/affected.d.ts +1 -1
  55. package/dist/queries/affected.js +3 -3
  56. package/dist/queries/bottlenecks.d.ts +1 -1
  57. package/dist/queries/bottlenecks.js +2 -2
  58. package/dist/queries/by-kind.d.ts +1 -1
  59. package/dist/queries/by-kind.js +2 -2
  60. package/dist/queries/call-graph.d.ts +1 -1
  61. package/dist/queries/call-graph.js +3 -3
  62. package/dist/queries/change-surface.d.ts +2 -2
  63. package/dist/queries/change-surface.js +2 -3
  64. package/dist/queries/code.d.ts +1 -1
  65. package/dist/queries/code.js +3 -3
  66. package/dist/queries/complexity-hotspots.d.ts +1 -1
  67. package/dist/queries/complexity-hotspots.js +3 -3
  68. package/dist/queries/complexity.d.ts +1 -1
  69. package/dist/queries/complexity.js +3 -3
  70. package/dist/queries/convergence.d.ts +1 -1
  71. package/dist/queries/convergence.js +3 -3
  72. package/dist/queries/coupling.d.ts +1 -1
  73. package/dist/queries/coupling.js +1 -1
  74. package/dist/queries/cycles.d.ts +1 -1
  75. package/dist/queries/cycles.js +3 -2
  76. package/dist/queries/dataflow.d.ts +1 -1
  77. package/dist/queries/dataflow.js +3 -3
  78. package/dist/queries/dead.d.ts +1 -1
  79. package/dist/queries/dead.js +4 -3
  80. package/dist/queries/deep-chains.d.ts +1 -1
  81. package/dist/queries/deep-chains.js +3 -2
  82. package/dist/queries/deps.d.ts +1 -1
  83. package/dist/queries/diff-impact.d.ts +2 -2
  84. package/dist/queries/diff-impact.js +2 -3
  85. package/dist/queries/doc-coverage.d.ts +1 -1
  86. package/dist/queries/doc-coverage.js +2 -2
  87. package/dist/queries/drift.d.ts +1 -1
  88. package/dist/queries/drift.js +3 -2
  89. package/dist/queries/extract-candidates.d.ts +1 -1
  90. package/dist/queries/extract-candidates.js +3 -3
  91. package/dist/queries/fan.d.ts +1 -1
  92. package/dist/queries/fan.js +2 -2
  93. package/dist/queries/files.d.ts +1 -1
  94. package/dist/queries/health.d.ts +1 -1
  95. package/dist/queries/health.js +15 -15
  96. package/dist/queries/hierarchy.d.ts +1 -1
  97. package/dist/queries/hierarchy.js +3 -2
  98. package/dist/queries/hotspots.d.ts +1 -1
  99. package/dist/queries/hotspots.js +2 -2
  100. package/dist/queries/imports.d.ts +1 -1
  101. package/dist/queries/imports.js +3 -2
  102. package/dist/queries/index.d.ts +1 -2
  103. package/dist/queries/index.js +46 -51
  104. package/dist/queries/isolated.d.ts +1 -1
  105. package/dist/queries/isolated.js +4 -3
  106. package/dist/queries/members.d.ts +2 -2
  107. package/dist/queries/members.js +3 -2
  108. package/dist/queries/methods.d.ts +1 -1
  109. package/dist/queries/methods.js +2 -2
  110. package/dist/queries/outline.d.ts +1 -1
  111. package/dist/queries/outline.js +2 -2
  112. package/dist/queries/passthrough-candidates.d.ts +1 -1
  113. package/dist/queries/passthrough-candidates.js +3 -3
  114. package/dist/queries/redundant-reexports.d.ts +1 -1
  115. package/dist/queries/redundant-reexports.js +4 -2
  116. package/dist/queries/refs.d.ts +1 -1
  117. package/dist/queries/refs.js +1 -1
  118. package/dist/queries/similar-chains.d.ts +1 -1
  119. package/dist/queries/similar-chains.js +3 -2
  120. package/dist/queries/similar-files.d.ts +1 -1
  121. package/dist/queries/similar-files.js +3 -2
  122. package/dist/queries/similar-signatures.d.ts +1 -1
  123. package/dist/queries/similar-signatures.js +2 -2
  124. package/dist/queries/similar.d.ts +1 -1
  125. package/dist/queries/similar.js +3 -3
  126. package/dist/queries/slice.d.ts +1 -1
  127. package/dist/queries/slice.js +3 -3
  128. package/dist/queries/stale-abstractions.d.ts +1 -1
  129. package/dist/queries/stale-abstractions.js +3 -3
  130. package/dist/queries/stats.d.ts +1 -1
  131. package/dist/queries/stats.js +1 -1
  132. package/dist/queries/surface.d.ts +1 -1
  133. package/dist/queries/surface.js +2 -2
  134. package/dist/queries/symbols.d.ts +1 -1
  135. package/dist/queries/symbols.js +2 -2
  136. package/dist/queries/system.d.ts +1 -1
  137. package/dist/queries/system.js +2 -2
  138. package/dist/queries/trace.d.ts +1 -1
  139. package/dist/queries/trace.js +3 -1
  140. package/dist/queries/wrapper-candidates.d.ts +1 -1
  141. package/dist/queries/wrapper-candidates.js +3 -3
  142. package/dist/reindex-worker.js +24 -12
  143. package/package.json +6 -1
  144. package/IMPROVEMENTS.md +0 -143
  145. package/PLAN.md +0 -320
  146. package/dist/chunk-2QZ23IBN.js.map +0 -1
  147. package/dist/chunk-36OMT7ZJ.js.map +0 -1
  148. package/dist/chunk-3E2X7RIE.js.map +0 -1
  149. package/dist/chunk-3UOUTZQT.js +0 -45
  150. package/dist/chunk-3UOUTZQT.js.map +0 -1
  151. package/dist/chunk-3ZZJVBIO.js +0 -88
  152. package/dist/chunk-3ZZJVBIO.js.map +0 -1
  153. package/dist/chunk-4TYLS5XX.js.map +0 -1
  154. package/dist/chunk-5FGUEU7N.js.map +0 -1
  155. package/dist/chunk-5WTJAXY2.js.map +0 -1
  156. package/dist/chunk-6NBLIDF4.js.map +0 -1
  157. package/dist/chunk-6SXADWLW.js.map +0 -1
  158. package/dist/chunk-6VJ6Q7IE.js.map +0 -1
  159. package/dist/chunk-7OZPA5OO.js.map +0 -1
  160. package/dist/chunk-BEPIEVLR.js +0 -76
  161. package/dist/chunk-BEPIEVLR.js.map +0 -1
  162. package/dist/chunk-BFSCMC22.js.map +0 -1
  163. package/dist/chunk-BP2ATLK2.js.map +0 -1
  164. package/dist/chunk-CM454WL3.js.map +0 -1
  165. package/dist/chunk-DCKMSTJ4.js.map +0 -1
  166. package/dist/chunk-DEZKCZXD.js +0 -40
  167. package/dist/chunk-DEZKCZXD.js.map +0 -1
  168. package/dist/chunk-DVWGWHFW.js +0 -99
  169. package/dist/chunk-DVWGWHFW.js.map +0 -1
  170. package/dist/chunk-EMDQWNYR.js.map +0 -1
  171. package/dist/chunk-FFSWWE5O.js.map +0 -1
  172. package/dist/chunk-FGXRVW7G.js.map +0 -1
  173. package/dist/chunk-FUHJCHS4.js.map +0 -1
  174. package/dist/chunk-GJFURBEW.js.map +0 -1
  175. package/dist/chunk-GTILYBH6.js.map +0 -1
  176. package/dist/chunk-JJP7KQND.js +0 -1
  177. package/dist/chunk-JJP7KQND.js.map +0 -1
  178. package/dist/chunk-JKP5GH6T.js.map +0 -1
  179. package/dist/chunk-KCBMVQL5.js.map +0 -1
  180. package/dist/chunk-KVSW5KYP.js.map +0 -1
  181. package/dist/chunk-LAWMH22O.js.map +0 -1
  182. package/dist/chunk-LB7OS35Q.js.map +0 -1
  183. package/dist/chunk-LUSIFBXO.js.map +0 -1
  184. package/dist/chunk-MBVNHJVN.js.map +0 -1
  185. package/dist/chunk-MGNMHKX3.js.map +0 -1
  186. package/dist/chunk-N5KEREIA.js.map +0 -1
  187. package/dist/chunk-NDSQYIWT.js.map +0 -1
  188. package/dist/chunk-NUZ4OMU3.js.map +0 -1
  189. package/dist/chunk-QOV2R2WT.js.map +0 -1
  190. package/dist/chunk-SEFSL2GF.js.map +0 -1
  191. package/dist/chunk-T6ARFSBZ.js.map +0 -1
  192. package/dist/chunk-TBP6BICL.js.map +0 -1
  193. package/dist/chunk-TDNNOR6D.js.map +0 -1
  194. package/dist/chunk-TSPZOMHC.js.map +0 -1
  195. package/dist/chunk-UNTPVD36.js.map +0 -1
  196. package/dist/chunk-VRUJH4BO.js.map +0 -1
  197. package/dist/chunk-VZ7AMAFL.js.map +0 -1
  198. package/dist/chunk-XFXDXEUN.js.map +0 -1
  199. package/dist/chunk-YZAA4LYG.js.map +0 -1
  200. package/dist/chunk-Z73NYSBZ.js.map +0 -1
  201. package/dist/chunk-ZJRYBOEE.js.map +0 -1
  202. package/dist/cli.js.map +0 -1
  203. package/dist/index.js.map +0 -1
  204. package/dist/postinstall.js.map +0 -1
  205. package/dist/queries/affected.js.map +0 -1
  206. package/dist/queries/bottlenecks.js.map +0 -1
  207. package/dist/queries/by-kind.js.map +0 -1
  208. package/dist/queries/call-graph.js.map +0 -1
  209. package/dist/queries/change-surface.js.map +0 -1
  210. package/dist/queries/clean-signature.js.map +0 -1
  211. package/dist/queries/code.js.map +0 -1
  212. package/dist/queries/complexity-hotspots.js.map +0 -1
  213. package/dist/queries/complexity.js.map +0 -1
  214. package/dist/queries/convergence.js.map +0 -1
  215. package/dist/queries/coupling.js.map +0 -1
  216. package/dist/queries/cycles.js.map +0 -1
  217. package/dist/queries/dataflow.js.map +0 -1
  218. package/dist/queries/dead.js.map +0 -1
  219. package/dist/queries/deep-chains.js.map +0 -1
  220. package/dist/queries/deps.js.map +0 -1
  221. package/dist/queries/diff-impact.js.map +0 -1
  222. package/dist/queries/doc-coverage.js.map +0 -1
  223. package/dist/queries/drift.js.map +0 -1
  224. package/dist/queries/extract-candidates.js.map +0 -1
  225. package/dist/queries/fan.js.map +0 -1
  226. package/dist/queries/files.js.map +0 -1
  227. package/dist/queries/health.js.map +0 -1
  228. package/dist/queries/hierarchy.js.map +0 -1
  229. package/dist/queries/hotspots.js.map +0 -1
  230. package/dist/queries/imports.js.map +0 -1
  231. package/dist/queries/index.js.map +0 -1
  232. package/dist/queries/isolated.js.map +0 -1
  233. package/dist/queries/members.js.map +0 -1
  234. package/dist/queries/methods.js.map +0 -1
  235. package/dist/queries/outline.js.map +0 -1
  236. package/dist/queries/passthrough-candidates.js.map +0 -1
  237. package/dist/queries/redundant-reexports.js.map +0 -1
  238. package/dist/queries/refs.js.map +0 -1
  239. package/dist/queries/similar-chains.js.map +0 -1
  240. package/dist/queries/similar-files.js.map +0 -1
  241. package/dist/queries/similar-signatures.js.map +0 -1
  242. package/dist/queries/similar.js.map +0 -1
  243. package/dist/queries/slice.js.map +0 -1
  244. package/dist/queries/stale-abstractions.js.map +0 -1
  245. package/dist/queries/stats.js.map +0 -1
  246. package/dist/queries/surface.js.map +0 -1
  247. package/dist/queries/symbols.js.map +0 -1
  248. package/dist/queries/system.js.map +0 -1
  249. package/dist/queries/test-coverage.d.ts +0 -22
  250. package/dist/queries/test-coverage.js +0 -11
  251. package/dist/queries/test-coverage.js.map +0 -1
  252. package/dist/queries/trace.js.map +0 -1
  253. package/dist/queries/wrapper-candidates.js.map +0 -1
  254. package/dist/reindex-worker.js.map +0 -1
  255. package/docs/AGENT_GUIDE.md +0 -359
  256. package/reports/debloat/2026-04-10-scip-query-self-audit.md +0 -161
  257. package/src/cli.ts +0 -1480
  258. package/src/config.ts +0 -117
  259. package/src/db.ts +0 -127
  260. package/src/gitignore-filter.ts +0 -143
  261. package/src/index.ts +0 -11
  262. package/src/postinstall.ts +0 -8
  263. package/src/queries/affected.ts +0 -86
  264. package/src/queries/bottlenecks.ts +0 -67
  265. package/src/queries/by-kind.ts +0 -204
  266. package/src/queries/call-graph.ts +0 -66
  267. package/src/queries/change-surface.ts +0 -110
  268. package/src/queries/clean-signature.ts +0 -22
  269. package/src/queries/code.ts +0 -101
  270. package/src/queries/complexity-hotspots.ts +0 -119
  271. package/src/queries/complexity.ts +0 -152
  272. package/src/queries/convergence.ts +0 -82
  273. package/src/queries/coupling.ts +0 -99
  274. package/src/queries/cycles.ts +0 -78
  275. package/src/queries/dataflow.ts +0 -128
  276. package/src/queries/dead.ts +0 -122
  277. package/src/queries/deep-chains.ts +0 -59
  278. package/src/queries/deps.ts +0 -46
  279. package/src/queries/diff-impact.ts +0 -204
  280. package/src/queries/doc-coverage.ts +0 -86
  281. package/src/queries/drift.ts +0 -224
  282. package/src/queries/extract-candidates.ts +0 -167
  283. package/src/queries/fan.ts +0 -148
  284. package/src/queries/files.ts +0 -16
  285. package/src/queries/health.ts +0 -324
  286. package/src/queries/hierarchy.ts +0 -49
  287. package/src/queries/hotspots.ts +0 -53
  288. package/src/queries/imports.ts +0 -95
  289. package/src/queries/index.ts +0 -45
  290. package/src/queries/isolated.ts +0 -67
  291. package/src/queries/members.ts +0 -54
  292. package/src/queries/methods.ts +0 -27
  293. package/src/queries/outline.ts +0 -52
  294. package/src/queries/passthrough-candidates.ts +0 -94
  295. package/src/queries/redundant-reexports.ts +0 -170
  296. package/src/queries/refs.ts +0 -27
  297. package/src/queries/similar-chains.ts +0 -314
  298. package/src/queries/similar-files.ts +0 -140
  299. package/src/queries/similar-signatures.ts +0 -151
  300. package/src/queries/similar.ts +0 -305
  301. package/src/queries/slice.ts +0 -154
  302. package/src/queries/stale-abstractions.ts +0 -82
  303. package/src/queries/stats.ts +0 -22
  304. package/src/queries/surface.ts +0 -34
  305. package/src/queries/symbols.ts +0 -39
  306. package/src/queries/system.ts +0 -86
  307. package/src/queries/test-coverage.ts +0 -106
  308. package/src/queries/trace.ts +0 -55
  309. package/src/queries/wrapper-candidates.ts +0 -112
  310. package/src/query-support.ts +0 -226
  311. package/src/reindex/detect.ts +0 -58
  312. package/src/reindex/index.ts +0 -153
  313. package/src/reindex/indexers.ts +0 -220
  314. package/src/reindex/install.ts +0 -125
  315. package/src/reindex-worker.ts +0 -35
  316. package/src/setup.ts +0 -202
  317. package/src/symbol-parser.ts +0 -278
  318. package/src/types.ts +0 -654
  319. package/src/watch.ts +0 -274
  320. package/tests/gitignore-filter.test.ts +0 -48
  321. package/tests/queries.test.ts +0 -300
  322. package/tests/symbol-parser.test.ts +0 -157
  323. package/tsconfig.json +0 -20
  324. package/tsup.config.ts +0 -40
  325. package/vitest.config.ts +0 -7
package/dist/index.js CHANGED
@@ -1,156 +1,153 @@
1
- import "./chunk-JJP7KQND.js";
1
+ import "./chunk-2UELLEBI.js";
2
2
  import {
3
3
  surface
4
- } from "./chunk-FFSWWE5O.js";
4
+ } from "./chunk-LTJC5ZQL.js";
5
5
  import {
6
6
  symbols
7
- } from "./chunk-KCBMVQL5.js";
7
+ } from "./chunk-GPJVPT3U.js";
8
8
  import {
9
9
  system
10
- } from "./chunk-DCKMSTJ4.js";
10
+ } from "./chunk-Y4JFVQ7C.js";
11
11
  import {
12
12
  trace
13
- } from "./chunk-TBP6BICL.js";
13
+ } from "./chunk-DY4AFG2W.js";
14
14
  import {
15
15
  redundantReexports
16
- } from "./chunk-3E2X7RIE.js";
16
+ } from "./chunk-4BQFSNFI.js";
17
17
  import {
18
18
  refs
19
- } from "./chunk-6NBLIDF4.js";
19
+ } from "./chunk-ITZ3DDOG.js";
20
20
  import {
21
21
  similarChains
22
- } from "./chunk-JKP5GH6T.js";
22
+ } from "./chunk-R2I3M5B4.js";
23
23
  import {
24
24
  similarFiles
25
- } from "./chunk-Z73NYSBZ.js";
25
+ } from "./chunk-CU62ZDHI.js";
26
26
  import {
27
27
  similarSignatures
28
- } from "./chunk-SEFSL2GF.js";
28
+ } from "./chunk-TOIEB3LG.js";
29
29
  import {
30
30
  slice
31
- } from "./chunk-ZJRYBOEE.js";
31
+ } from "./chunk-AMNISGYR.js";
32
32
  import {
33
33
  hierarchy
34
- } from "./chunk-DEZKCZXD.js";
34
+ } from "./chunk-IJKLB2JW.js";
35
35
  import {
36
36
  hotspots
37
- } from "./chunk-BFSCMC22.js";
37
+ } from "./chunk-KBOQX573.js";
38
38
  import {
39
39
  importedBy,
40
40
  imports,
41
41
  unusedImports
42
- } from "./chunk-BEPIEVLR.js";
42
+ } from "./chunk-34JPTNRN.js";
43
43
  import {
44
44
  members
45
- } from "./chunk-3UOUTZQT.js";
45
+ } from "./chunk-N4C3H7LH.js";
46
46
  import {
47
47
  methods
48
- } from "./chunk-NUZ4OMU3.js";
48
+ } from "./chunk-GU2H5QRN.js";
49
49
  import {
50
50
  outline
51
- } from "./chunk-6SXADWLW.js";
51
+ } from "./chunk-AKMBBKWV.js";
52
52
  import {
53
53
  deps,
54
54
  rdeps
55
55
  } from "./chunk-N5KEREIA.js";
56
56
  import {
57
57
  diffImpact
58
- } from "./chunk-YZAA4LYG.js";
58
+ } from "./chunk-7HK5ZLOE.js";
59
59
  import {
60
60
  docCoverage
61
- } from "./chunk-FGXRVW7G.js";
61
+ } from "./chunk-YZ6L7GFO.js";
62
62
  import {
63
63
  fanIn,
64
64
  fanOut,
65
65
  topFanIn,
66
66
  topFanOut
67
- } from "./chunk-GTILYBH6.js";
67
+ } from "./chunk-IXPHLF6K.js";
68
68
  import {
69
69
  files
70
70
  } from "./chunk-MGNMHKX3.js";
71
71
  import {
72
72
  health
73
- } from "./chunk-7OZPA5OO.js";
73
+ } from "./chunk-MVH45PYK.js";
74
74
  import {
75
75
  staleAbstractions
76
- } from "./chunk-GJFURBEW.js";
76
+ } from "./chunk-ORINICIZ.js";
77
77
  import {
78
78
  stats
79
- } from "./chunk-XFXDXEUN.js";
80
- import {
81
- testCoverage,
82
- testCoverageSummary
83
- } from "./chunk-3ZZJVBIO.js";
79
+ } from "./chunk-74RFWB5T.js";
84
80
  import {
85
81
  wrapperCandidates
86
- } from "./chunk-TDNNOR6D.js";
82
+ } from "./chunk-PMJKOXOT.js";
87
83
  import {
88
84
  passthroughCandidates
89
- } from "./chunk-NDSQYIWT.js";
85
+ } from "./chunk-3566TKJ5.js";
90
86
  import {
91
87
  similar,
92
88
  similarAll
93
- } from "./chunk-TSPZOMHC.js";
89
+ } from "./chunk-H6WCPKCX.js";
94
90
  import {
95
91
  isolated
96
- } from "./chunk-LUSIFBXO.js";
92
+ } from "./chunk-HMYJJ3HY.js";
97
93
  import {
98
94
  drift
99
- } from "./chunk-36OMT7ZJ.js";
95
+ } from "./chunk-R56FJU3E.js";
100
96
  import {
101
97
  extractCandidates
102
- } from "./chunk-CM454WL3.js";
98
+ } from "./chunk-BFLULBEU.js";
103
99
  import {
104
100
  complexityHotspots
105
- } from "./chunk-EMDQWNYR.js";
101
+ } from "./chunk-WVK7AASK.js";
106
102
  import {
107
103
  complexity
108
- } from "./chunk-BP2ATLK2.js";
104
+ } from "./chunk-6QSHLFSL.js";
109
105
  import {
110
106
  convergence
111
- } from "./chunk-LB7OS35Q.js";
107
+ } from "./chunk-4ACRRQC4.js";
112
108
  import {
113
109
  coupling,
114
110
  topCoupling
115
- } from "./chunk-KVSW5KYP.js";
111
+ } from "./chunk-HDSRORNV.js";
116
112
  import {
117
113
  cycles
118
- } from "./chunk-5WTJAXY2.js";
114
+ } from "./chunk-Y3M323OX.js";
119
115
  import {
120
116
  dataflow
121
- } from "./chunk-T6ARFSBZ.js";
117
+ } from "./chunk-7JFZSOJ7.js";
122
118
  import {
123
119
  dead
124
- } from "./chunk-5FGUEU7N.js";
120
+ } from "./chunk-6WVR5K46.js";
121
+ import "./chunk-VO4QI3LS.js";
125
122
  import {
126
123
  deepChains
127
- } from "./chunk-MBVNHJVN.js";
124
+ } from "./chunk-75RQSBTK.js";
128
125
  import {
129
126
  affected
130
- } from "./chunk-6VJ6Q7IE.js";
127
+ } from "./chunk-NVIIM34O.js";
131
128
  import {
132
129
  bottlenecks
133
- } from "./chunk-2QZ23IBN.js";
130
+ } from "./chunk-F7XU27LU.js";
134
131
  import {
135
132
  byKind,
136
133
  kindCounts
137
- } from "./chunk-LAWMH22O.js";
134
+ } from "./chunk-M3NPW3FC.js";
138
135
  import {
139
136
  callGraph
140
- } from "./chunk-UNTPVD36.js";
137
+ } from "./chunk-YAFWL3RA.js";
141
138
  import {
142
139
  changeSurface
143
- } from "./chunk-VRUJH4BO.js";
140
+ } from "./chunk-M4QGEKKD.js";
144
141
  import "./chunk-4TYLS5XX.js";
145
142
  import {
146
143
  code
147
- } from "./chunk-VZ7AMAFL.js";
148
- import "./chunk-FUHJCHS4.js";
144
+ } from "./chunk-RFMT7UAZ.js";
145
+ import "./chunk-LLMPAG56.js";
149
146
  import {
150
147
  leafName,
151
148
  parseSymbol,
152
149
  shortenSymbol
153
- } from "./chunk-QOV2R2WT.js";
150
+ } from "./chunk-QIXNAB5K.js";
154
151
 
155
152
  // src/db.ts
156
153
  import Database from "better-sqlite3";
@@ -349,10 +346,200 @@ Thumbs.db
349
346
  `;
350
347
 
351
348
  // src/reindex/index.ts
352
- import { execFileSync as execFileSync2 } from "child_process";
349
+ import { execFileSync as execFileSync3 } from "child_process";
353
350
  import { existsSync as existsSync3 } from "fs";
354
351
  import { join as join3 } from "path";
355
352
 
353
+ // src/scip-cli.ts
354
+ import { execFileSync as execFileSync2 } from "child_process";
355
+ import { platform as platform2, arch } from "os";
356
+
357
+ // src/reindex/install.ts
358
+ import { execFileSync } from "child_process";
359
+ import { platform } from "os";
360
+ var IS_WINDOWS = platform() === "win32";
361
+ function isBinaryAvailable(name) {
362
+ const cmd = IS_WINDOWS ? "where" : "which";
363
+ try {
364
+ execFileSync(cmd, [name], { stdio: "pipe" });
365
+ return true;
366
+ } catch {
367
+ return false;
368
+ }
369
+ }
370
+ function getBinaryCandidates(config) {
371
+ return [config.indexerBinary, ...config.binaryAliases ?? []];
372
+ }
373
+ function describeIndexerBinary(config) {
374
+ const candidates = getBinaryCandidates(config);
375
+ return candidates.length === 1 ? candidates[0] : candidates.join(" or ");
376
+ }
377
+ function resolveIndexerBinary(config) {
378
+ for (const candidate of getBinaryCandidates(config)) {
379
+ if (isBinaryAvailable(candidate)) {
380
+ return candidate;
381
+ }
382
+ }
383
+ return null;
384
+ }
385
+ function isIndexerInstalled(config) {
386
+ return resolveIndexerBinary(config) !== null;
387
+ }
388
+ function tryInstallIndexer(config, onStatus) {
389
+ const methods2 = config.installMethods;
390
+ const binaryLabel = describeIndexerBinary(config);
391
+ if (!methods2?.length) {
392
+ onStatus(`No auto-install method available for ${binaryLabel}.`);
393
+ if (config.installUrl) {
394
+ onStatus(`Install manually from: ${config.installUrl}`);
395
+ }
396
+ return false;
397
+ }
398
+ for (const method of methods2) {
399
+ if (!isBinaryAvailable(method.prerequisite)) {
400
+ continue;
401
+ }
402
+ onStatus(`Installing ${binaryLabel} via ${method.label}...`);
403
+ try {
404
+ execFileSync(method.binary, method.args, {
405
+ stdio: "inherit",
406
+ timeout: 3e5,
407
+ env: process.env
408
+ });
409
+ const resolvedBinary = resolveIndexerBinary(config);
410
+ if (resolvedBinary) {
411
+ const resolutionNote = resolvedBinary === config.indexerBinary ? "" : ` (using ${resolvedBinary})`;
412
+ onStatus(`Successfully installed ${binaryLabel} via ${method.label}${resolutionNote}`);
413
+ return true;
414
+ }
415
+ onStatus(`${method.label} command completed but ${binaryLabel} was not found on PATH`);
416
+ } catch (err) {
417
+ const msg = err instanceof Error ? err.message : String(err);
418
+ onStatus(`${method.label} install failed: ${msg}`);
419
+ }
420
+ }
421
+ onStatus(`Could not auto-install ${binaryLabel}.`);
422
+ if (config.installUrl) {
423
+ onStatus(`Install manually from: ${config.installUrl}`);
424
+ }
425
+ return false;
426
+ }
427
+
428
+ // src/scip-cli.ts
429
+ var IS_WINDOWS2 = platform2() === "win32";
430
+ var SCIP_VERSION = "v0.7.0";
431
+ function isScipInstalled() {
432
+ try {
433
+ const cmd = IS_WINDOWS2 ? "where" : "which";
434
+ execFileSync2(cmd, ["scip"], { stdio: "pipe" });
435
+ return true;
436
+ } catch {
437
+ return false;
438
+ }
439
+ }
440
+ function getScipVersion() {
441
+ try {
442
+ const output = execFileSync2("scip", ["--version"], { stdio: "pipe" }).toString().trim();
443
+ return output;
444
+ } catch {
445
+ return null;
446
+ }
447
+ }
448
+ function getScipDownloadUrl() {
449
+ const os = platform2();
450
+ const cpu = arch();
451
+ let osName;
452
+ let archName;
453
+ let ext;
454
+ switch (os) {
455
+ case "darwin":
456
+ osName = "darwin";
457
+ ext = "tar.gz";
458
+ break;
459
+ case "linux":
460
+ osName = "linux";
461
+ ext = "tar.gz";
462
+ break;
463
+ case "win32":
464
+ osName = "windows";
465
+ ext = "zip";
466
+ break;
467
+ default:
468
+ return null;
469
+ }
470
+ switch (cpu) {
471
+ case "arm64":
472
+ archName = "arm64";
473
+ break;
474
+ case "x64":
475
+ archName = "amd64";
476
+ break;
477
+ default:
478
+ return null;
479
+ }
480
+ const filename = `scip-${osName}-${archName}.${ext}`;
481
+ const url = `https://github.com/sourcegraph/scip/releases/download/${SCIP_VERSION}/${filename}`;
482
+ return { url, filename };
483
+ }
484
+ function printScipInstallInstructions() {
485
+ const download = getScipDownloadUrl();
486
+ console.log("\nThe `scip` CLI is required but not found on PATH.\n");
487
+ if (platform2() === "darwin") {
488
+ console.log("Install via Homebrew:");
489
+ console.log(" brew install sourcegraph/scip/scip\n");
490
+ console.log("Or download manually:");
491
+ } else {
492
+ console.log("Download from:");
493
+ }
494
+ if (download) {
495
+ console.log(` ${download.url}
496
+ `);
497
+ } else {
498
+ console.log(` https://github.com/sourcegraph/scip/releases/tag/${SCIP_VERSION}
499
+ `);
500
+ }
501
+ console.log("After installing, ensure `scip` is on your PATH and run `scip-query reindex`.");
502
+ }
503
+ function tryInstallScipCli(onStatus) {
504
+ if (platform2() === "darwin" && isBinaryAvailable("brew")) {
505
+ onStatus("Installing scip CLI via Homebrew...");
506
+ try {
507
+ execFileSync2("brew", ["install", "sourcegraph/scip/scip"], {
508
+ stdio: "inherit",
509
+ timeout: 3e5,
510
+ env: process.env
511
+ });
512
+ if (isBinaryAvailable("scip")) {
513
+ onStatus("Successfully installed scip CLI via Homebrew");
514
+ return true;
515
+ }
516
+ } catch (err) {
517
+ const msg = err instanceof Error ? err.message : String(err);
518
+ onStatus(`Homebrew install failed: ${msg}`);
519
+ }
520
+ }
521
+ if (isBinaryAvailable("go")) {
522
+ onStatus("Installing scip CLI via go install...");
523
+ try {
524
+ execFileSync2("go", ["install", "github.com/sourcegraph/scip/cmd/scip@latest"], {
525
+ stdio: "inherit",
526
+ timeout: 3e5,
527
+ env: process.env
528
+ });
529
+ if (isBinaryAvailable("scip")) {
530
+ onStatus("Successfully installed scip CLI via go install");
531
+ return true;
532
+ }
533
+ } catch (err) {
534
+ const msg = err instanceof Error ? err.message : String(err);
535
+ onStatus(`go install failed: ${msg}`);
536
+ }
537
+ }
538
+ onStatus("Could not auto-install scip CLI.");
539
+ onStatus("Install manually from: https://github.com/sourcegraph/scip/releases");
540
+ return false;
541
+ }
542
+
356
543
  // src/reindex/detect.ts
357
544
  import { existsSync as existsSync2 } from "fs";
358
545
  import { join as join2 } from "path";
@@ -483,9 +670,10 @@ var INDEXER_CONFIGS = {
483
670
  python: {
484
671
  language: "python",
485
672
  indexerBinary: "scip-python",
673
+ binaryAliases: ["scip-python-plus"],
486
674
  checkCommand: "scip-python --version",
487
- indexArgs: ({ outputPath }) => ({
488
- binary: "scip-python",
675
+ indexArgs: ({ outputPath, indexerBinary }) => ({
676
+ binary: indexerBinary,
489
677
  args: ["index", "--output", outputPath, "--project-name", "project"]
490
678
  }),
491
679
  markerFiles: ["pyproject.toml", "setup.py"],
@@ -591,98 +779,6 @@ function getIndexerConfig(language) {
591
779
  return INDEXER_CONFIGS[language];
592
780
  }
593
781
 
594
- // src/reindex/install.ts
595
- import { execFileSync } from "child_process";
596
- import { platform } from "os";
597
- var IS_WINDOWS = platform() === "win32";
598
- function isBinaryAvailable(name) {
599
- const cmd = IS_WINDOWS ? "where" : "which";
600
- try {
601
- execFileSync(cmd, [name], { stdio: "pipe" });
602
- return true;
603
- } catch {
604
- return false;
605
- }
606
- }
607
- function isIndexerInstalled(config) {
608
- return isBinaryAvailable(config.indexerBinary);
609
- }
610
- function tryInstallIndexer(config, onStatus) {
611
- const methods2 = config.installMethods;
612
- if (!methods2?.length) {
613
- onStatus(`No auto-install method available for ${config.indexerBinary}.`);
614
- if (config.installUrl) {
615
- onStatus(`Install manually from: ${config.installUrl}`);
616
- }
617
- return false;
618
- }
619
- for (const method of methods2) {
620
- if (!isBinaryAvailable(method.prerequisite)) {
621
- continue;
622
- }
623
- onStatus(`Installing ${config.indexerBinary} via ${method.label}...`);
624
- try {
625
- execFileSync(method.binary, method.args, {
626
- stdio: "inherit",
627
- timeout: 3e5,
628
- env: process.env
629
- });
630
- if (isIndexerInstalled(config)) {
631
- onStatus(`Successfully installed ${config.indexerBinary} via ${method.label}`);
632
- return true;
633
- }
634
- onStatus(`${method.label} command completed but ${config.indexerBinary} not found on PATH`);
635
- } catch (err) {
636
- const msg = err instanceof Error ? err.message : String(err);
637
- onStatus(`${method.label} install failed: ${msg}`);
638
- }
639
- }
640
- onStatus(`Could not auto-install ${config.indexerBinary}.`);
641
- if (config.installUrl) {
642
- onStatus(`Install manually from: ${config.installUrl}`);
643
- }
644
- return false;
645
- }
646
- function tryInstallScipCli(onStatus) {
647
- if (platform() === "darwin" && isBinaryAvailable("brew")) {
648
- onStatus("Installing scip CLI via Homebrew...");
649
- try {
650
- execFileSync("brew", ["install", "sourcegraph/scip/scip"], {
651
- stdio: "inherit",
652
- timeout: 3e5,
653
- env: process.env
654
- });
655
- if (isBinaryAvailable("scip")) {
656
- onStatus("Successfully installed scip CLI via Homebrew");
657
- return true;
658
- }
659
- } catch (err) {
660
- const msg = err instanceof Error ? err.message : String(err);
661
- onStatus(`Homebrew install failed: ${msg}`);
662
- }
663
- }
664
- if (isBinaryAvailable("go")) {
665
- onStatus("Installing scip CLI via go install...");
666
- try {
667
- execFileSync("go", ["install", "github.com/sourcegraph/scip/cmd/scip@latest"], {
668
- stdio: "inherit",
669
- timeout: 3e5,
670
- env: process.env
671
- });
672
- if (isBinaryAvailable("scip")) {
673
- onStatus("Successfully installed scip CLI via go install");
674
- return true;
675
- }
676
- } catch (err) {
677
- const msg = err instanceof Error ? err.message : String(err);
678
- onStatus(`go install failed: ${msg}`);
679
- }
680
- }
681
- onStatus("Could not auto-install scip CLI.");
682
- onStatus("Install manually from: https://github.com/sourcegraph/scip/releases");
683
- return false;
684
- }
685
-
686
782
  // src/reindex/index.ts
687
783
  async function reindex(opts) {
688
784
  const {
@@ -720,29 +816,38 @@ async function reindex(opts) {
720
816
  };
721
817
  for (const lang of languages) {
722
818
  const config = getIndexerConfig(lang);
819
+ const binaryLabel = describeIndexerBinary(config);
723
820
  if (!isIndexerInstalled(config)) {
724
821
  if (skipAutoInstall) {
725
822
  throw new Error(
726
- `${config.indexerBinary} is required to index ${lang} but not found on PATH.
727
- ` + (config.installUrl ? `Install from: ${config.installUrl}` : `Make sure ${config.indexerBinary} is installed and available on PATH.`)
823
+ `${binaryLabel} is required to index ${lang} but not found on PATH.
824
+ ` + (config.installUrl ? `Install from: ${config.installUrl}` : `Make sure ${binaryLabel} is installed and available on PATH.`)
728
825
  );
729
826
  }
730
- onStatus(`${config.indexerBinary} not found. Attempting auto-install...`);
827
+ onStatus(`${binaryLabel} not found. Attempting auto-install...`);
731
828
  if (!tryInstallIndexer(config, onStatus)) {
732
829
  throw new Error(
733
- `${config.indexerBinary} is required to index ${lang} but could not be installed.
734
- ` + (config.installUrl ? `Install manually from: ${config.installUrl}` : `Make sure ${config.indexerBinary} is installed and available on PATH.`)
830
+ `${binaryLabel} is required to index ${lang} but could not be installed.
831
+ ` + (config.installUrl ? `Install manually from: ${config.installUrl}` : `Make sure ${binaryLabel} is installed and available on PATH.`)
735
832
  );
736
833
  }
737
834
  }
738
- onStatus(`Indexing ${lang} with ${config.indexerBinary}...`);
835
+ const resolvedBinary = resolveIndexerBinary(config);
836
+ if (!resolvedBinary) {
837
+ throw new Error(
838
+ `${binaryLabel} is required to index ${lang} but was not found on PATH after installation checks.
839
+ ` + (config.installUrl ? `Install manually from: ${config.installUrl}` : `Make sure ${binaryLabel} is installed and available on PATH.`)
840
+ );
841
+ }
842
+ onStatus(`Indexing ${lang} with ${resolvedBinary}...`);
739
843
  const { binary, args } = config.indexArgs({
740
844
  projectRoot,
741
845
  outputPath: outputScip,
742
- pnpmWorkspaces: opts.pnpmWorkspaces
846
+ pnpmWorkspaces: opts.pnpmWorkspaces,
847
+ indexerBinary: resolvedBinary
743
848
  });
744
849
  try {
745
- execFileSync2(binary, args, {
850
+ execFileSync3(binary, args, {
746
851
  cwd: projectRoot,
747
852
  env,
748
853
  stdio: "pipe",
@@ -751,8 +856,8 @@ async function reindex(opts) {
751
856
  } catch (err) {
752
857
  const msg = err instanceof Error ? err.message : String(err);
753
858
  throw new Error(
754
- `Failed to index ${lang} with ${config.indexerBinary}: ${msg}
755
- Make sure ${config.indexerBinary} is installed and available on PATH.`
859
+ `Failed to index ${lang} with ${resolvedBinary}: ${msg}
860
+ Make sure ${binaryLabel} is installed and available on PATH.`
756
861
  );
757
862
  }
758
863
  }
@@ -761,7 +866,7 @@ Make sure ${config.indexerBinary} is installed and available on PATH.`
761
866
  throw new Error(`SCIP index not found at ${outputScip} after indexing`);
762
867
  }
763
868
  try {
764
- execFileSync2("scip", ["expt-convert", "--output", outputDb, outputScip], {
869
+ execFileSync3("scip", ["expt-convert", "--output", outputDb, outputScip], {
765
870
  env,
766
871
  stdio: "pipe",
767
872
  maxBuffer: 50 * 1024 * 1024
@@ -1061,12 +1166,10 @@ import {
1061
1166
  unlinkSync
1062
1167
  } from "fs";
1063
1168
  import { join as join6, dirname as dirname2, resolve as resolve2 } from "path";
1064
- import { homedir as homedir2, platform as platform2, arch } from "os";
1065
- import { execFileSync as execFileSync3 } from "child_process";
1169
+ import { homedir as homedir2, platform as platform3 } from "os";
1066
1170
  import { fileURLToPath } from "url";
1067
- var IS_WINDOWS2 = platform2() === "win32";
1171
+ var IS_WINDOWS3 = platform3() === "win32";
1068
1172
  var SKILLS = ["concrete-plan", "scip-explore", "scip-debloat", "scip-verify"];
1069
- var SCIP_VERSION = "v0.7.0";
1070
1173
  function installSkills(opts = {}) {
1071
1174
  const log = opts.quiet ? () => {
1072
1175
  } : console.log;
@@ -1110,85 +1213,13 @@ function installSkills(opts = {}) {
1110
1213
  }
1111
1214
  unlinkSync(target);
1112
1215
  }
1113
- symlinkSync(source, target, IS_WINDOWS2 ? "junction" : "dir");
1216
+ symlinkSync(source, target, IS_WINDOWS3 ? "junction" : "dir");
1114
1217
  result.installed.push(`${toolName}/${skill}`);
1115
1218
  log(` done: ${skill} \u2192 ${toolName}`);
1116
1219
  }
1117
1220
  }
1118
1221
  return result;
1119
1222
  }
1120
- function isScipInstalled() {
1121
- try {
1122
- const cmd = IS_WINDOWS2 ? "where" : "which";
1123
- execFileSync3(cmd, ["scip"], { stdio: "pipe" });
1124
- return true;
1125
- } catch {
1126
- return false;
1127
- }
1128
- }
1129
- function getScipVersion() {
1130
- try {
1131
- const output = execFileSync3("scip", ["--version"], { stdio: "pipe" }).toString().trim();
1132
- return output;
1133
- } catch {
1134
- return null;
1135
- }
1136
- }
1137
- function getScipDownloadUrl() {
1138
- const os = platform2();
1139
- const cpu = arch();
1140
- let osName;
1141
- let archName;
1142
- let ext;
1143
- switch (os) {
1144
- case "darwin":
1145
- osName = "darwin";
1146
- ext = "tar.gz";
1147
- break;
1148
- case "linux":
1149
- osName = "linux";
1150
- ext = "tar.gz";
1151
- break;
1152
- case "win32":
1153
- osName = "windows";
1154
- ext = "zip";
1155
- break;
1156
- default:
1157
- return null;
1158
- }
1159
- switch (cpu) {
1160
- case "arm64":
1161
- archName = "arm64";
1162
- break;
1163
- case "x64":
1164
- archName = "amd64";
1165
- break;
1166
- default:
1167
- return null;
1168
- }
1169
- const filename = `scip-${osName}-${archName}.${ext}`;
1170
- const url = `https://github.com/sourcegraph/scip/releases/download/${SCIP_VERSION}/${filename}`;
1171
- return { url, filename };
1172
- }
1173
- function printScipInstallInstructions() {
1174
- const download = getScipDownloadUrl();
1175
- console.log("\nThe `scip` CLI is required but not found on PATH.\n");
1176
- if (platform2() === "darwin") {
1177
- console.log("Install via Homebrew:");
1178
- console.log(" brew install sourcegraph/scip/scip\n");
1179
- console.log("Or download manually:");
1180
- } else {
1181
- console.log("Download from:");
1182
- }
1183
- if (download) {
1184
- console.log(` ${download.url}
1185
- `);
1186
- } else {
1187
- console.log(` https://github.com/sourcegraph/scip/releases/tag/${SCIP_VERSION}
1188
- `);
1189
- }
1190
- console.log("After installing, ensure `scip` is on your PATH and run `scip-query reindex`.");
1191
- }
1192
1223
  export {
1193
1224
  INDEXER_CONFIGS,
1194
1225
  ScipDatabase,
@@ -1257,8 +1288,6 @@ export {
1257
1288
  surface,
1258
1289
  symbols,
1259
1290
  system,
1260
- testCoverage,
1261
- testCoverageSummary,
1262
1291
  topCoupling,
1263
1292
  topFanIn,
1264
1293
  topFanOut,