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
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  findFirstSymbolMatch,
3
3
  getCalleeRowsForSymbol
4
- } from "./chunk-FUHJCHS4.js";
4
+ } from "./chunk-LLMPAG56.js";
5
5
  import {
6
6
  shortenSymbol
7
- } from "./chunk-QOV2R2WT.js";
7
+ } from "./chunk-QIXNAB5K.js";
8
8
 
9
9
  // src/queries/complexity.ts
10
10
  import { readFileSync } from "fs";
@@ -32,7 +32,7 @@ function complexity(db, symbolPattern) {
32
32
  `SELECT COUNT(DISTINCT c.document_id) AS c
33
33
  FROM mentions m
34
34
  JOIN chunks c ON m.chunk_id = c.id
35
- WHERE m.symbol_id = ? AND m.role = 0`,
35
+ WHERE m.symbol_id = ? AND m.role != 1`,
36
36
  match.symbolId
37
37
  );
38
38
  const fanOut = new Set(
@@ -107,4 +107,4 @@ function stripCommentsAndStrings(source) {
107
107
  export {
108
108
  complexity
109
109
  };
110
- //# sourceMappingURL=chunk-BP2ATLK2.js.map
110
+ //# sourceMappingURL=chunk-6QSHLFSL.js.map
@@ -1,10 +1,14 @@
1
+ import {
2
+ getInactiveBarrelPaths,
3
+ isEntrySurface
4
+ } from "./chunk-VO4QI3LS.js";
1
5
  import {
2
6
  TEST_SUPPORT_PATH_PATTERNS,
3
7
  testFileExclusionSql
4
- } from "./chunk-FUHJCHS4.js";
8
+ } from "./chunk-LLMPAG56.js";
5
9
  import {
6
10
  shortenSymbol
7
- } from "./chunk-QOV2R2WT.js";
11
+ } from "./chunk-QIXNAB5K.js";
8
12
 
9
13
  // src/queries/dead.ts
10
14
  function dead(db, opts = {}) {
@@ -18,6 +22,7 @@ function dead(db, opts = {}) {
18
22
  const params = [minLoc];
19
23
  let testFileExclusions = "";
20
24
  let memberExclusion = "";
25
+ let barrelExclusions = "";
21
26
  if (scope) {
22
27
  params.push(`%${scope}%`);
23
28
  }
@@ -29,10 +34,13 @@ function dead(db, opts = {}) {
29
34
  if (!includeMembers) {
30
35
  memberExclusion = `AND gs.symbol NOT LIKE '%#%'`;
31
36
  }
32
- const barrelExclusions = skipBarrels ? `AND ref_d.relative_path NOT LIKE '%/index.ts'
33
- AND ref_d.relative_path NOT LIKE '%/index.js'
34
- AND ref_d.relative_path NOT LIKE '%/mod.rs'
35
- AND ref_d.relative_path NOT LIKE '%/__init__.py'` : "";
37
+ if (skipBarrels) {
38
+ const inactiveBarrelPaths = getInactiveBarrelPaths(db);
39
+ if (inactiveBarrelPaths.length > 0) {
40
+ barrelExclusions = `AND ref_d.relative_path NOT IN (${inactiveBarrelPaths.map(() => "?").join(", ")})`;
41
+ params.push(...inactiveBarrelPaths);
42
+ }
43
+ }
36
44
  const sql = `
37
45
  SELECT
38
46
  d.relative_path,
@@ -42,7 +50,7 @@ function dead(db, opts = {}) {
42
50
  gs.symbol,
43
51
  (SELECT COUNT(*) FROM mentions m2
44
52
  JOIN chunks c2 ON m2.chunk_id = c2.id
45
- WHERE m2.symbol_id = gs.id AND m2.role = 0 AND c2.document_id = d.id
53
+ WHERE m2.symbol_id = gs.id AND m2.role != 1 AND c2.document_id = d.id
46
54
  ) AS same_file_refs
47
55
  FROM global_symbols gs
48
56
  JOIN defn_enclosing_ranges der ON gs.id = der.symbol_id
@@ -60,7 +68,7 @@ function dead(db, opts = {}) {
60
68
  JOIN chunks ref_c ON ref_m.chunk_id = ref_c.id
61
69
  JOIN documents ref_d ON ref_c.document_id = ref_d.id
62
70
  WHERE ref_m.symbol_id = gs.id
63
- AND ref_m.role = 0
71
+ AND ref_m.role != 1
64
72
  AND ref_d.id != d.id
65
73
  ${barrelExclusions}
66
74
  )
@@ -70,7 +78,7 @@ function dead(db, opts = {}) {
70
78
  let deadCodeCount = 0;
71
79
  let fileInternalCount = 0;
72
80
  let totalLoc = 0;
73
- const symbols = rows.filter((r) => !db.isIgnored(r.relative_path)).map((r) => {
81
+ const symbols = rows.filter((r) => !db.isIgnored(r.relative_path)).filter((r) => !isEntrySurface(db, r.relative_path)).map((r) => {
74
82
  const kind = r.same_file_refs === 0 ? "dead-code" : "file-internal";
75
83
  if (kind === "dead-code") deadCodeCount++;
76
84
  else fileInternalCount++;
@@ -98,4 +106,4 @@ function dead(db, opts = {}) {
98
106
  export {
99
107
  dead
100
108
  };
101
- //# sourceMappingURL=chunk-5FGUEU7N.js.map
109
+ //# sourceMappingURL=chunk-6WVR5K46.js.map
@@ -6,7 +6,7 @@ function stats(db) {
6
6
  "SELECT COUNT(*) as c FROM mentions WHERE role = 1"
7
7
  ).c;
8
8
  const references = db.get(
9
- "SELECT COUNT(*) as c FROM mentions WHERE role = 0"
9
+ "SELECT COUNT(*) as c FROM mentions WHERE role != 1"
10
10
  ).c;
11
11
  return {
12
12
  documents,
@@ -21,4 +21,4 @@ function stats(db) {
21
21
  export {
22
22
  stats
23
23
  };
24
- //# sourceMappingURL=chunk-XFXDXEUN.js.map
24
+ //# sourceMappingURL=chunk-74RFWB5T.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  buildFileDepGraph
3
- } from "./chunk-FUHJCHS4.js";
3
+ } from "./chunk-LLMPAG56.js";
4
4
 
5
5
  // src/queries/deep-chains.ts
6
6
  function deepChains(db, opts = {}) {
@@ -41,4 +41,4 @@ function deepChains(db, opts = {}) {
41
41
  export {
42
42
  deepChains
43
43
  };
44
- //# sourceMappingURL=chunk-MBVNHJVN.js.map
44
+ //# sourceMappingURL=chunk-75RQSBTK.js.map
@@ -1,10 +1,6 @@
1
- import {
2
- TEST_FILE_PATTERNS,
3
- testFileMatchSql
4
- } from "./chunk-FUHJCHS4.js";
5
1
  import {
6
2
  shortenSymbol
7
- } from "./chunk-QOV2R2WT.js";
3
+ } from "./chunk-QIXNAB5K.js";
8
4
 
9
5
  // src/queries/diff-impact.ts
10
6
  import { execFileSync } from "child_process";
@@ -12,23 +8,17 @@ function diffImpact(db, opts = {}) {
12
8
  const { base = "HEAD" } = opts;
13
9
  let changedFileLines;
14
10
  try {
15
- const stdout = execFileSync("git", ["diff", "--name-only", base], {
16
- encoding: "utf-8",
17
- cwd: db.config.projectRoot,
18
- timeout: 1e4
19
- });
20
- changedFileLines = stdout.split("\n").map((l) => l.trim()).filter((l) => l.length > 0);
11
+ changedFileLines = getChangedFiles(db.config.projectRoot, base);
21
12
  } catch {
22
13
  return {
23
14
  changedFiles: [],
24
15
  changedSymbols: [],
25
16
  affectedConsumers: [],
26
- uncoveredSymbols: [],
27
17
  summary: {
28
18
  totalChangedFiles: 0,
29
19
  totalChangedSymbols: 0,
30
20
  totalAffectedFiles: 0,
31
- testCoveragePercent: 0
21
+ note: "Unable to compute git diff."
32
22
  }
33
23
  };
34
24
  }
@@ -37,12 +27,11 @@ function diffImpact(db, opts = {}) {
37
27
  changedFiles: [],
38
28
  changedSymbols: [],
39
29
  affectedConsumers: [],
40
- uncoveredSymbols: [],
41
30
  summary: {
42
31
  totalChangedFiles: 0,
43
32
  totalChangedSymbols: 0,
44
33
  totalAffectedFiles: 0,
45
- testCoveragePercent: 0
34
+ note: "No changed files found."
46
35
  }
47
36
  };
48
37
  }
@@ -65,12 +54,11 @@ function diffImpact(db, opts = {}) {
65
54
  changedFiles: changedFileLines,
66
55
  changedSymbols: [],
67
56
  affectedConsumers: [],
68
- uncoveredSymbols: [],
69
57
  summary: {
70
58
  totalChangedFiles: changedFileLines.length,
71
59
  totalChangedSymbols: 0,
72
60
  totalAffectedFiles: 0,
73
- testCoveragePercent: 0
61
+ note: "Changed files are not present in the current SCIP index."
74
62
  }
75
63
  };
76
64
  }
@@ -85,18 +73,15 @@ function diffImpact(db, opts = {}) {
85
73
  ORDER BY d.relative_path`,
86
74
  ...changedDocIds
87
75
  );
88
- const testPatternSql = testFileMatchSql("ref_d", TEST_FILE_PATTERNS);
89
76
  const changedSymbols = [];
90
77
  const consumerMap = /* @__PURE__ */ new Map();
91
- const uncoveredSymbols = [];
92
- let coveredCount = 0;
93
78
  for (const sym of syms) {
94
79
  const fanInRow = db.get(
95
80
  `SELECT COUNT(DISTINCT c.document_id) AS fan_in
96
81
  FROM mentions m
97
82
  JOIN chunks c ON m.chunk_id = c.id
98
83
  WHERE m.symbol_id = ?
99
- AND m.role = 0`,
84
+ AND m.role != 1`,
100
85
  sym.symbol_id
101
86
  );
102
87
  const fanIn = fanInRow?.fan_in ?? 0;
@@ -113,7 +98,7 @@ function diffImpact(db, opts = {}) {
113
98
  JOIN chunks c ON m.chunk_id = c.id
114
99
  JOIN documents ref_d ON c.document_id = ref_d.id
115
100
  WHERE m.symbol_id = ?
116
- AND m.role = 0
101
+ AND m.role != 1
117
102
  AND ref_d.relative_path NOT IN (${changedFiles.map(() => "?").join(",")})
118
103
  ${db.pathExclusionsFor("ref_d")}`,
119
104
  sym.symbol_id,
@@ -126,44 +111,41 @@ function diffImpact(db, opts = {}) {
126
111
  }
127
112
  consumerMap.get(consumer.relative_path).add(shortName);
128
113
  }
129
- const hasTest = db.get(
130
- `SELECT COUNT(*) AS c
131
- FROM mentions m
132
- JOIN chunks c ON m.chunk_id = c.id
133
- JOIN documents ref_d ON c.document_id = ref_d.id
134
- WHERE m.symbol_id = ?
135
- AND m.role = 0
136
- AND (${testPatternSql})`,
137
- sym.symbol_id
138
- );
139
- if (hasTest && hasTest.c > 0) {
140
- coveredCount++;
141
- } else {
142
- uncoveredSymbols.push({
143
- symbol: sym.symbol,
144
- shortName,
145
- file: sym.relative_path
146
- });
147
- }
148
114
  }
149
115
  const affectedConsumers = [...consumerMap.entries()].map(([file, symbols]) => ({ file, consumedSymbols: symbols.size })).sort((a, b) => b.consumedSymbols - a.consumedSymbols);
150
- const totalSymbols = changedSymbols.length;
151
- const testCoveragePercent = totalSymbols > 0 ? Math.round(coveredCount / totalSymbols * 100) : 0;
152
116
  return {
153
117
  changedFiles,
154
118
  changedSymbols,
155
119
  affectedConsumers,
156
- uncoveredSymbols,
157
120
  summary: {
158
121
  totalChangedFiles: changedFiles.length,
159
- totalChangedSymbols: totalSymbols,
160
- totalAffectedFiles: affectedConsumers.length,
161
- testCoveragePercent
122
+ totalChangedSymbols: changedSymbols.length,
123
+ totalAffectedFiles: affectedConsumers.length
162
124
  }
163
125
  };
164
126
  }
127
+ function getChangedFiles(projectRoot, base) {
128
+ const diff = execFileSync("git", ["diff", "--name-only", base], {
129
+ encoding: "utf-8",
130
+ cwd: projectRoot,
131
+ timeout: 1e4
132
+ });
133
+ const staged = execFileSync("git", ["diff", "--name-only", "--cached", base], {
134
+ encoding: "utf-8",
135
+ cwd: projectRoot,
136
+ timeout: 1e4
137
+ });
138
+ const untracked = execFileSync("git", ["ls-files", "--others", "--exclude-standard"], {
139
+ encoding: "utf-8",
140
+ cwd: projectRoot,
141
+ timeout: 1e4
142
+ });
143
+ return [...new Set(
144
+ [diff, staged, untracked].flatMap((chunk) => chunk.split("\n")).map((line) => line.trim()).filter((line) => line.length > 0)
145
+ )];
146
+ }
165
147
 
166
148
  export {
167
149
  diffImpact
168
150
  };
169
- //# sourceMappingURL=chunk-YZAA4LYG.js.map
151
+ //# sourceMappingURL=chunk-7HK5ZLOE.js.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  findFirstSymbolMatch
3
- } from "./chunk-FUHJCHS4.js";
3
+ } from "./chunk-LLMPAG56.js";
4
4
  import {
5
5
  shortenSymbol
6
- } from "./chunk-QOV2R2WT.js";
6
+ } from "./chunk-QIXNAB5K.js";
7
7
 
8
8
  // src/queries/dataflow.ts
9
9
  function dataflow(db, symbolPattern) {
@@ -32,7 +32,7 @@ function dataflow(db, symbolPattern) {
32
32
  FROM mentions m
33
33
  JOIN chunks c ON m.chunk_id = c.id
34
34
  JOIN documents d ON c.document_id = d.id
35
- WHERE m.symbol_id = ? AND m.role = 0
35
+ WHERE m.symbol_id = ? AND m.role != 1
36
36
  ${db.pathExclusionsFor("d")}
37
37
  ORDER BY d.relative_path, c.start_line`,
38
38
  match.symbolId
@@ -46,7 +46,7 @@ function dataflow(db, symbolPattern) {
46
46
  JOIN documents other_d ON other_der.document_id = other_d.id
47
47
  WHERE other_c.document_id = ?
48
48
  AND other_c.start_line >= ? AND other_c.end_line <= ?
49
- AND other_m.role = 0
49
+ AND other_m.role != 1
50
50
  AND other_gs.id != ?
51
51
  ${db.symbolNoiseFor("other_gs")}
52
52
  ${db.pathExclusionsFor("other_d")}
@@ -69,11 +69,11 @@ function dataflow(db, symbolPattern) {
69
69
  AND enc_der.end_line >= ref_c.end_line
70
70
  JOIN global_symbols enc_gs ON enc_der.symbol_id = enc_gs.id
71
71
  -- Find other symbols defined by that enclosing function's file
72
- JOIN mentions consumer_m ON consumer_m.symbol_id = enc_gs.id AND consumer_m.role = 0
72
+ JOIN mentions consumer_m ON consumer_m.symbol_id = enc_gs.id AND consumer_m.role != 1
73
73
  JOIN chunks consumer_c ON consumer_m.chunk_id = consumer_c.id
74
74
  JOIN documents consumer_d ON consumer_c.document_id = consumer_d.id
75
75
  JOIN global_symbols consumer_gs ON consumer_m.symbol_id = consumer_gs.id
76
- WHERE ref_m.symbol_id = ? AND ref_m.role = 0
76
+ WHERE ref_m.symbol_id = ? AND ref_m.role != 1
77
77
  AND consumer_d.id != ref_d.id
78
78
  ${db.symbolNoiseFor("consumer_gs")}
79
79
  ${db.pathExclusionsFor("consumer_d")}
@@ -100,4 +100,4 @@ function dataflow(db, symbolPattern) {
100
100
  export {
101
101
  dataflow
102
102
  };
103
- //# sourceMappingURL=chunk-T6ARFSBZ.js.map
103
+ //# sourceMappingURL=chunk-7JFZSOJ7.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  shortenSymbol
3
- } from "./chunk-QOV2R2WT.js";
3
+ } from "./chunk-QIXNAB5K.js";
4
4
 
5
5
  // src/queries/outline.ts
6
6
  function outline(db, filePattern) {
@@ -40,4 +40,4 @@ function outline(db, filePattern) {
40
40
  export {
41
41
  outline
42
42
  };
43
- //# sourceMappingURL=chunk-6SXADWLW.js.map
43
+ //# sourceMappingURL=chunk-AKMBBKWV.js.map
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  findFirstSymbolMatch,
3
3
  getCalleeRowsForSymbol
4
- } from "./chunk-FUHJCHS4.js";
4
+ } from "./chunk-LLMPAG56.js";
5
5
  import {
6
6
  shortenSymbol
7
- } from "./chunk-QOV2R2WT.js";
7
+ } from "./chunk-QIXNAB5K.js";
8
8
 
9
9
  // src/queries/slice.ts
10
10
  function slice(db, symbolPattern, opts = {}) {
@@ -81,7 +81,7 @@ function forwardSlice(db, match) {
81
81
  JOIN global_symbols enc_gs ON enc_der.symbol_id = enc_gs.id
82
82
  JOIN documents enc_d ON enc_der.document_id = enc_d.id
83
83
  -- Find other symbols referenced within that enclosing function
84
- JOIN mentions out_m ON out_m.role = 0
84
+ JOIN mentions out_m ON out_m.role != 1
85
85
  JOIN chunks out_c ON out_m.chunk_id = out_c.id
86
86
  AND out_c.document_id = enc_der.document_id
87
87
  AND out_c.start_line >= enc_der.start_line
@@ -89,7 +89,7 @@ function forwardSlice(db, match) {
89
89
  JOIN global_symbols out_gs ON out_m.symbol_id = out_gs.id
90
90
  JOIN defn_enclosing_ranges out_der ON out_gs.id = out_der.symbol_id
91
91
  JOIN documents out_d ON out_der.document_id = out_d.id
92
- WHERE ref_m.symbol_id = ? AND ref_m.role = 0
92
+ WHERE ref_m.symbol_id = ? AND ref_m.role != 1
93
93
  AND out_gs.id != ? AND out_gs.id != enc_gs.id
94
94
  AND out_d.id != ref_d.id
95
95
  ${db.symbolNoiseFor("out_gs")}
@@ -122,4 +122,4 @@ function forwardSlice(db, match) {
122
122
  export {
123
123
  slice
124
124
  };
125
- //# sourceMappingURL=chunk-ZJRYBOEE.js.map
125
+ //# sourceMappingURL=chunk-AMNISGYR.js.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  getCalleeRowsForSymbol
3
- } from "./chunk-FUHJCHS4.js";
3
+ } from "./chunk-LLMPAG56.js";
4
4
  import {
5
5
  shortenSymbol
6
- } from "./chunk-QOV2R2WT.js";
6
+ } from "./chunk-QIXNAB5K.js";
7
7
 
8
8
  // src/queries/extract-candidates.ts
9
9
  function extractCandidates(db, opts = {}) {
@@ -111,4 +111,4 @@ function extractCandidates(db, opts = {}) {
111
111
  export {
112
112
  extractCandidates
113
113
  };
114
- //# sourceMappingURL=chunk-CM454WL3.js.map
114
+ //# sourceMappingURL=chunk-BFLULBEU.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  buildFileDepGraph
3
- } from "./chunk-FUHJCHS4.js";
3
+ } from "./chunk-LLMPAG56.js";
4
4
 
5
5
  // src/queries/similar-files.ts
6
6
  function similarFiles(db, opts = {}) {
@@ -89,4 +89,4 @@ function compareProfiles(a, b, minSimilarity) {
89
89
  export {
90
90
  similarFiles
91
91
  };
92
- //# sourceMappingURL=chunk-Z73NYSBZ.js.map
92
+ //# sourceMappingURL=chunk-CU62ZDHI.js.map
@@ -1,21 +1,26 @@
1
1
  import {
2
2
  cleanSignature
3
3
  } from "./chunk-4TYLS5XX.js";
4
+ import {
5
+ findFirstSymbolMatch
6
+ } from "./chunk-LLMPAG56.js";
4
7
 
5
8
  // src/queries/trace.ts
6
9
  function trace(db, symbolPattern) {
10
+ const match = findFirstSymbolMatch(db, symbolPattern);
11
+ if (!match) {
12
+ return { definitions: [], referencedBy: [] };
13
+ }
7
14
  const defRows = db.all(
8
15
  `SELECT d.relative_path, der.start_line, der.end_line,
9
16
  REPLACE(SUBSTR(gs.documentation, INSTR(gs.documentation, '|') + 1), char(10), ' ') AS sig
10
17
  FROM global_symbols gs
11
18
  JOIN defn_enclosing_ranges der ON gs.id = der.symbol_id
12
19
  JOIN documents d ON der.document_id = d.id
13
- WHERE gs.symbol LIKE ?
14
- AND ${db.localSymbolPredicate}
15
- ${db.symbolNoise}
20
+ WHERE gs.id = ?
16
21
  ORDER BY d.relative_path, der.start_line
17
22
  LIMIT 10`,
18
- `%${symbolPattern}%`
23
+ match.symbolId
19
24
  );
20
25
  const definitions = defRows.filter((r) => !db.isIgnored(r.relative_path)).map((r) => ({
21
26
  relativePath: r.relative_path,
@@ -28,13 +33,10 @@ function trace(db, symbolPattern) {
28
33
  FROM mentions m
29
34
  JOIN chunks c ON m.chunk_id = c.id
30
35
  JOIN documents d ON c.document_id = d.id
31
- JOIN global_symbols gs ON m.symbol_id = gs.id
32
- WHERE gs.symbol LIKE ?
33
- AND ${db.localSymbolPredicate}
34
- ${db.symbolNoise}
35
- AND m.role = 0
36
+ WHERE m.symbol_id = ?
37
+ AND m.role != 1
36
38
  ORDER BY d.relative_path`,
37
- `%${symbolPattern}%`
39
+ match.symbolId
38
40
  );
39
41
  const referencedBy = refRows.map((r) => r.relative_path).filter((p) => !db.isIgnored(p));
40
42
  return { definitions, referencedBy };
@@ -43,4 +45,4 @@ function trace(db, symbolPattern) {
43
45
  export {
44
46
  trace
45
47
  };
46
- //# sourceMappingURL=chunk-TBP6BICL.js.map
48
+ //# sourceMappingURL=chunk-DY4AFG2W.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  shortenSymbol
3
- } from "./chunk-QOV2R2WT.js";
3
+ } from "./chunk-QIXNAB5K.js";
4
4
 
5
5
  // src/queries/bottlenecks.ts
6
6
  function bottlenecks(db, opts = {}) {
@@ -14,7 +14,7 @@ function bottlenecks(db, opts = {}) {
14
14
  (SELECT COUNT(DISTINCT ref_c.document_id)
15
15
  FROM mentions ref_m
16
16
  JOIN chunks ref_c ON ref_m.chunk_id = ref_c.id
17
- WHERE ref_m.symbol_id = gs.id AND ref_m.role = 0
17
+ WHERE ref_m.symbol_id = gs.id AND ref_m.role != 1
18
18
  ) AS fan_in,
19
19
  (SELECT COUNT(DISTINCT ref_gs.id)
20
20
  FROM mentions ref_m
@@ -22,7 +22,7 @@ function bottlenecks(db, opts = {}) {
22
22
  JOIN global_symbols ref_gs ON ref_m.symbol_id = ref_gs.id
23
23
  JOIN defn_enclosing_ranges ref_der ON ref_gs.id = ref_der.symbol_id
24
24
  WHERE ref_c.document_id = def_d.id
25
- AND ref_m.role = 0
25
+ AND ref_m.role != 1
26
26
  AND ref_der.document_id != def_d.id
27
27
  ) AS fan_out
28
28
  FROM global_symbols gs
@@ -52,4 +52,4 @@ function bottlenecks(db, opts = {}) {
52
52
  export {
53
53
  bottlenecks
54
54
  };
55
- //# sourceMappingURL=chunk-2QZ23IBN.js.map
55
+ //# sourceMappingURL=chunk-F7XU27LU.js.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-4TYLS5XX.js";
4
4
  import {
5
5
  shortenSymbol
6
- } from "./chunk-QOV2R2WT.js";
6
+ } from "./chunk-QIXNAB5K.js";
7
7
 
8
8
  // src/queries/symbols.ts
9
9
  function symbols(db, filePattern) {
@@ -35,4 +35,4 @@ function symbols(db, filePattern) {
35
35
  export {
36
36
  symbols
37
37
  };
38
- //# sourceMappingURL=chunk-KCBMVQL5.js.map
38
+ //# sourceMappingURL=chunk-GPJVPT3U.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  leafName
3
- } from "./chunk-QOV2R2WT.js";
3
+ } from "./chunk-QIXNAB5K.js";
4
4
 
5
5
  // src/queries/methods.ts
6
6
  function methods(db, className) {
@@ -25,4 +25,4 @@ function methods(db, className) {
25
25
  export {
26
26
  methods
27
27
  };
28
- //# sourceMappingURL=chunk-NUZ4OMU3.js.map
28
+ //# sourceMappingURL=chunk-GU2H5QRN.js.map
@@ -1,16 +1,18 @@
1
1
  import {
2
2
  findFirstSymbolMatch,
3
3
  getCalleeRowsForSymbol
4
- } from "./chunk-FUHJCHS4.js";
4
+ } from "./chunk-LLMPAG56.js";
5
5
  import {
6
+ isFunctionLikeSymbol,
6
7
  shortenSymbol
7
- } from "./chunk-QOV2R2WT.js";
8
+ } from "./chunk-QIXNAB5K.js";
8
9
 
9
10
  // src/queries/similar.ts
10
11
  function similar(db, symbolPattern, opts = {}) {
11
12
  const { minSimilarity = 0.4, limit = 20 } = opts;
12
13
  const target = findCallees(db, symbolPattern);
13
14
  if (!target || target.callees.size === 0) return [];
15
+ if (!isFunctionLikeSymbol(target.symbol)) return [];
14
16
  const candidates = getAllCalleeFingerprints(db, {
15
17
  minCallees: 3,
16
18
  excludeSymbol: target.symbol
@@ -160,6 +162,7 @@ function getAllCalleeFingerprints(db, opts) {
160
162
  const fingerprints = [];
161
163
  for (const sym of symbols) {
162
164
  if (db.isIgnored(sym.relative_path)) continue;
165
+ if (!isFunctionLikeSymbol(sym.symbol)) continue;
163
166
  const calleeRows = getCalleeRowsForSymbol(db, {
164
167
  documentId: sym.document_id,
165
168
  startLine: sym.start_line,
@@ -192,4 +195,4 @@ export {
192
195
  similar,
193
196
  similarAll
194
197
  };
195
- //# sourceMappingURL=chunk-TSPZOMHC.js.map
198
+ //# sourceMappingURL=chunk-H6WCPKCX.js.map
@@ -14,7 +14,7 @@ function coupling(db, file1, file2) {
14
14
  SELECT 1 FROM mentions m
15
15
  JOIN chunks c ON m.chunk_id = c.id
16
16
  JOIN documents d ON c.document_id = d.id
17
- WHERE m.symbol_id = gs.id AND m.role = 0 AND d.relative_path LIKE ?
17
+ WHERE m.symbol_id = gs.id AND m.role != 1 AND d.relative_path LIKE ?
18
18
  )
19
19
  ) OR (
20
20
  -- Defined in file2, referenced in file1
@@ -27,7 +27,7 @@ function coupling(db, file1, file2) {
27
27
  SELECT 1 FROM mentions m
28
28
  JOIN chunks c ON m.chunk_id = c.id
29
29
  JOIN documents d ON c.document_id = d.id
30
- WHERE m.symbol_id = gs.id AND m.role = 0 AND d.relative_path LIKE ?
30
+ WHERE m.symbol_id = gs.id AND m.role != 1 AND d.relative_path LIKE ?
31
31
  )
32
32
  )`,
33
33
  `%${file1}%`,
@@ -55,7 +55,7 @@ function topCoupling(db, opts = {}) {
55
55
  JOIN global_symbols gs ON m.symbol_id = gs.id
56
56
  JOIN defn_enclosing_ranges der ON gs.id = der.symbol_id
57
57
  JOIN documents def_d ON der.document_id = def_d.id
58
- WHERE m.role = 0
58
+ WHERE m.role != 1
59
59
  AND def_d.id != ref_d.id
60
60
  ${db.pathExclusionsFor("def_d", "ref_d")}
61
61
  ${scopeFilter}
@@ -75,4 +75,4 @@ export {
75
75
  coupling,
76
76
  topCoupling
77
77
  };
78
- //# sourceMappingURL=chunk-KVSW5KYP.js.map
78
+ //# sourceMappingURL=chunk-HDSRORNV.js.map
@@ -1,9 +1,12 @@
1
+ import {
2
+ isEntrySurface
3
+ } from "./chunk-VO4QI3LS.js";
1
4
  import {
2
5
  testFileExclusionSql
3
- } from "./chunk-FUHJCHS4.js";
6
+ } from "./chunk-LLMPAG56.js";
4
7
  import {
5
8
  shortenSymbol
6
- } from "./chunk-QOV2R2WT.js";
9
+ } from "./chunk-QIXNAB5K.js";
7
10
 
8
11
  // src/queries/isolated.ts
9
12
  function isolated(db, opts = {}) {
@@ -30,18 +33,18 @@ function isolated(db, opts = {}) {
30
33
  AND NOT EXISTS (
31
34
  SELECT 1 FROM mentions m
32
35
  JOIN chunks c ON m.chunk_id = c.id
33
- WHERE m.symbol_id = gs.id AND m.role = 0 AND c.document_id != d.id
36
+ WHERE m.symbol_id = gs.id AND m.role != 1 AND c.document_id != d.id
34
37
  )
35
38
  -- No same-file references either
36
39
  AND NOT EXISTS (
37
40
  SELECT 1 FROM mentions m
38
41
  JOIN chunks c ON m.chunk_id = c.id
39
- WHERE m.symbol_id = gs.id AND m.role = 0 AND c.document_id = d.id
42
+ WHERE m.symbol_id = gs.id AND m.role != 1 AND c.document_id = d.id
40
43
  )
41
44
  ORDER BY loc DESC, d.relative_path`,
42
45
  minLoc
43
46
  );
44
- return rows.filter((r) => !db.isIgnored(r.relative_path)).map((r) => ({
47
+ return rows.filter((r) => !db.isIgnored(r.relative_path)).filter((r) => !isEntrySurface(db, r.relative_path)).map((r) => ({
45
48
  symbol: r.symbol,
46
49
  shortName: shortenSymbol(r.symbol),
47
50
  relativePath: r.relative_path,
@@ -54,4 +57,4 @@ function isolated(db, opts = {}) {
54
57
  export {
55
58
  isolated
56
59
  };
57
- //# sourceMappingURL=chunk-LUSIFBXO.js.map
60
+ //# sourceMappingURL=chunk-HMYJJ3HY.js.map