scip-query 0.23.0 → 0.26.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 (650) hide show
  1. package/CHANGELOG.md +491 -2
  2. package/README.md +111 -122
  3. package/dist/augment-vue-worker.js +1 -1
  4. package/dist/by-kind-PRVFAGTQ.js +2 -0
  5. package/dist/call-graph-DVPAQV2F.js +2 -0
  6. package/dist/call-graph-evidence-CUtj8V2I.d.ts +19 -0
  7. package/dist/chunk-2FSBGL5P.js +2 -0
  8. package/dist/chunk-2HLAFUCY.js +2 -0
  9. package/dist/chunk-2IWUT6CJ.js +3 -0
  10. package/dist/chunk-2KNN7GTQ.js +2 -0
  11. package/dist/chunk-2LHXRE2B.js +8 -0
  12. package/dist/{chunk-EG2CPZMJ.js → chunk-2YXE77TJ.js} +2 -2
  13. package/dist/chunk-36SGVCGX.js +2 -0
  14. package/dist/chunk-3ABBFPTP.js +2 -0
  15. package/dist/chunk-3IVFU4FD.js +3 -0
  16. package/dist/chunk-3JIQS44J.js +7 -0
  17. package/dist/chunk-3ZRB6DNK.js +7 -0
  18. package/dist/{chunk-6YTSKJJ3.js → chunk-42EOW5VI.js} +1 -1
  19. package/dist/{chunk-6I6L7Z62.js → chunk-4BHGBMNO.js} +2 -2
  20. package/dist/chunk-4BP3UBDG.js +2 -0
  21. package/dist/chunk-4D6RO7G4.js +2 -0
  22. package/dist/chunk-4FEWQ6RH.js +2 -0
  23. package/dist/chunk-4IGEOBG7.js +2 -0
  24. package/dist/chunk-4QZXBUKC.js +2 -0
  25. package/dist/chunk-4WBDEVX2.js +4 -0
  26. package/dist/chunk-4WCUBZU3.js +8 -0
  27. package/dist/chunk-4WTUBQ36.js +40 -0
  28. package/dist/chunk-4XQ4O6IM.js +3 -0
  29. package/dist/chunk-55UQAMZO.js +4 -0
  30. package/dist/chunk-5D2LVK7O.js +125 -0
  31. package/dist/chunk-5IYJ56TT.js +2 -0
  32. package/dist/chunk-5PLMJC7Q.js +2 -0
  33. package/dist/chunk-5TNQJUR2.js +5 -0
  34. package/dist/chunk-62BDNPMI.js +2 -0
  35. package/dist/chunk-64DZ5TXR.js +7 -0
  36. package/dist/chunk-65245JCM.js +2 -0
  37. package/dist/chunk-6FFVZZL4.js +2 -0
  38. package/dist/chunk-6KO5JHAR.js +2 -0
  39. package/dist/chunk-6LRXOOSX.js +2 -0
  40. package/dist/chunk-6LSEIIF7.js +2 -0
  41. package/dist/chunk-6YMNWD3H.js +6 -0
  42. package/dist/chunk-72AD6ZRR.js +5 -0
  43. package/dist/chunk-73AAKPUC.js +4 -0
  44. package/dist/chunk-76CZ77DF.js +2 -0
  45. package/dist/chunk-7VPEEAAG.js +2 -0
  46. package/dist/chunk-7WTPQ4NX.js +14 -0
  47. package/dist/chunk-7Y5T6XDP.js +2 -0
  48. package/dist/chunk-A2IIGFMJ.js +5 -0
  49. package/dist/chunk-AB5KCTEV.js +2 -0
  50. package/dist/chunk-AC566WBP.js +6 -0
  51. package/dist/chunk-AGWFSTXC.js +3 -0
  52. package/dist/chunk-AOSIYPTA.js +2 -0
  53. package/dist/chunk-AUVEWPIF.js +2 -0
  54. package/dist/chunk-B56T42J3.js +25 -0
  55. package/dist/chunk-BIQEF5NE.js +2 -0
  56. package/dist/chunk-BL6XJKTA.js +3 -0
  57. package/dist/chunk-BMKOQJRI.js +2 -0
  58. package/dist/chunk-BOZ4EXBB.js +3 -0
  59. package/dist/chunk-BUTWYEPH.js +2 -0
  60. package/dist/chunk-BZB4QPIP.js +2 -0
  61. package/dist/{chunk-ILTDAWEF.js → chunk-CE357GEE.js} +4 -4
  62. package/dist/chunk-CFN45HFP.js +2 -0
  63. package/dist/chunk-CFYMZFXT.js +368 -0
  64. package/dist/chunk-CN5EH7O3.js +2 -0
  65. package/dist/chunk-D254DNNQ.js +4 -0
  66. package/dist/chunk-D3FDISIC.js +2 -0
  67. package/dist/chunk-D3NX5XIE.js +3 -0
  68. package/dist/chunk-DA7RPPDF.js +3 -0
  69. package/dist/chunk-DDMC3FON.js +3 -0
  70. package/dist/chunk-DIO3FUSG.js +2 -0
  71. package/dist/chunk-DJ2NNSUK.js +3 -0
  72. package/dist/chunk-DKYQIM3C.js +18 -0
  73. package/dist/{chunk-JTQVMR42.js → chunk-DOOEL2IV.js} +2 -2
  74. package/dist/chunk-DVFP6PZI.js +2 -0
  75. package/dist/chunk-E3FDPXZK.js +2 -0
  76. package/dist/chunk-E7YNJLCB.js +2 -0
  77. package/dist/chunk-EFGW5JPH.js +2 -0
  78. package/dist/chunk-EJVTR244.js +13 -0
  79. package/dist/chunk-EOV7RTRZ.js +2 -0
  80. package/dist/chunk-ETOIKRHO.js +2 -0
  81. package/dist/chunk-EYK3ZAO2.js +3 -0
  82. package/dist/chunk-F2V2LPET.js +52 -0
  83. package/dist/chunk-F4LUHJTF.js +2 -0
  84. package/dist/chunk-F4PUT6IT.js +2 -0
  85. package/dist/chunk-F56GCXXS.js +5 -0
  86. package/dist/chunk-FC2EVQRM.js +2 -0
  87. package/dist/chunk-FL7NBMHP.js +3 -0
  88. package/dist/chunk-FMRN2TRL.js +3 -0
  89. package/dist/chunk-FVULPZDF.js +20 -0
  90. package/dist/chunk-GCKCF5FL.js +43 -0
  91. package/dist/chunk-GH2PYF46.js +2 -0
  92. package/dist/chunk-GHJAGXIP.js +2 -0
  93. package/dist/{chunk-WIWY3CRX.js → chunk-GMVSHUKZ.js} +2 -2
  94. package/dist/chunk-GS6KDO4R.js +2 -0
  95. package/dist/chunk-GUUBXNN7.js +2 -0
  96. package/dist/chunk-GVWX5T43.js +80 -0
  97. package/dist/chunk-GZKFETP5.js +2 -0
  98. package/dist/chunk-H4EQHO6J.js +9 -0
  99. package/dist/chunk-H73WY2RM.js +2 -0
  100. package/dist/chunk-H75GSPRV.js +60 -0
  101. package/dist/chunk-HDR3AHSV.js +61 -0
  102. package/dist/chunk-HQBSL74Y.js +2 -0
  103. package/dist/chunk-HRRFKWPZ.js +2 -0
  104. package/dist/chunk-HXENDJC6.js +2 -0
  105. package/dist/chunk-IIBAZNSW.js +21 -0
  106. package/dist/chunk-INLMWEUU.js +12 -0
  107. package/dist/chunk-IWQPAF4F.js +2 -0
  108. package/dist/chunk-IZJ6YUKP.js +35 -0
  109. package/dist/chunk-J2TMAIN5.js +60 -0
  110. package/dist/chunk-J5FJMODQ.js +142 -0
  111. package/dist/chunk-J7HZPIO3.js +2 -0
  112. package/dist/chunk-JEVRKFRL.js +2 -0
  113. package/dist/chunk-JFXSGAEB.js +30 -0
  114. package/dist/chunk-JVRTHGFS.js +3 -0
  115. package/dist/chunk-JYWEX7RR.js +360 -0
  116. package/dist/chunk-K3YL22N6.js +2 -0
  117. package/dist/chunk-K4CN7GXK.js +12 -0
  118. package/dist/chunk-K5TBVXU4.js +30 -0
  119. package/dist/chunk-KDDIE2DP.js +9 -0
  120. package/dist/chunk-KHWRRPV4.js +2 -0
  121. package/dist/chunk-KI6NBKDY.js +14 -0
  122. package/dist/chunk-KU3QRSTH.js +2 -0
  123. package/dist/chunk-KZBJWZJB.js +2 -0
  124. package/dist/chunk-L7GFM3NP.js +3 -0
  125. package/dist/chunk-LMO6PK3V.js +35 -0
  126. package/dist/chunk-LN4YXJJU.js +2 -0
  127. package/dist/chunk-LOVIZBJ4.js +43 -0
  128. package/dist/chunk-LPCRK4A2.js +11 -0
  129. package/dist/chunk-MMHZKBFA.js +2 -0
  130. package/dist/{chunk-M2O5NY6W.js → chunk-MOQQBQRD.js} +2 -2
  131. package/dist/chunk-N2WN6I3L.js +2 -0
  132. package/dist/chunk-N3ORQT7L.js +2 -0
  133. package/dist/chunk-NAZ3RAIW.js +2 -0
  134. package/dist/chunk-NDUNO5JQ.js +2 -0
  135. package/dist/chunk-NEIWRNAZ.js +4 -0
  136. package/dist/chunk-NJJMVD65.js +2 -0
  137. package/dist/chunk-NLOQOBXI.js +20 -0
  138. package/dist/chunk-NOLZOVCU.js +2 -0
  139. package/dist/chunk-NOWINRRN.js +2 -0
  140. package/dist/chunk-NZAXKGRL.js +16 -0
  141. package/dist/chunk-O2C4UILI.js +2 -0
  142. package/dist/chunk-O3RHA6ZT.js +3 -0
  143. package/dist/chunk-O4UZSPPI.js +3 -0
  144. package/dist/chunk-OGFV2BUX.js +2 -0
  145. package/dist/chunk-OZCJXZK6.js +499 -0
  146. package/dist/chunk-P6ODM7BY.js +2 -0
  147. package/dist/{chunk-XBGWL66K.js → chunk-PAVGPRHJ.js} +2 -2
  148. package/dist/chunk-PH52RA7D.js +2 -0
  149. package/dist/chunk-PKN354TH.js +3 -0
  150. package/dist/chunk-PWOASWEG.js +11 -0
  151. package/dist/chunk-QIWXRW72.js +2 -0
  152. package/dist/chunk-QJRMOK5N.js +2 -0
  153. package/dist/{chunk-YXPUP5G2.js → chunk-QOIXNWQR.js} +2 -2
  154. package/dist/chunk-QXEUDXBT.js +3 -0
  155. package/dist/chunk-QYUVVBMR.js +6 -0
  156. package/dist/chunk-QZ7KQZRN.js +2 -0
  157. package/dist/chunk-R6LQBUDH.js +2 -0
  158. package/dist/chunk-RBS42E55.js +20 -0
  159. package/dist/chunk-RSJKPCFX.js +26 -0
  160. package/dist/chunk-S6CZA3MV.js +2 -0
  161. package/dist/chunk-STMVAHJP.js +2 -0
  162. package/dist/chunk-SYVPTTVW.js +2 -0
  163. package/dist/chunk-T3I6NHBH.js +2 -0
  164. package/dist/chunk-T6DK3ZP7.js +2 -0
  165. package/dist/chunk-TKD34PHN.js +4 -0
  166. package/dist/chunk-TNNQFH7W.js +2 -0
  167. package/dist/chunk-TNV7SSUF.js +2 -0
  168. package/dist/chunk-TO7ZR3EH.js +8 -0
  169. package/dist/chunk-TOU3CHK4.js +2 -0
  170. package/dist/chunk-TRBI4UKT.js +2 -0
  171. package/dist/chunk-TZCVNCAN.js +4 -0
  172. package/dist/chunk-U4LZA5LL.js +3 -0
  173. package/dist/chunk-U5RIG3JP.js +3 -0
  174. package/dist/chunk-UP5KXN2I.js +2 -0
  175. package/dist/chunk-UQFR3NDH.js +5 -0
  176. package/dist/chunk-UXYXF7GV.js +2 -0
  177. package/dist/chunk-VB3GOKOS.js +2 -0
  178. package/dist/chunk-VF5JZICY.js +2 -0
  179. package/dist/chunk-VTY3VK6E.js +2 -0
  180. package/dist/chunk-VX2O4RIS.js +2 -0
  181. package/dist/chunk-WKPV2TDZ.js +2 -0
  182. package/dist/chunk-WOFQ5DTB.js +2 -0
  183. package/dist/chunk-WS4C6TCK.js +2 -0
  184. package/dist/chunk-WXU3DGPU.js +2 -0
  185. package/dist/chunk-X6RMKHJQ.js +81 -0
  186. package/dist/{chunk-4ILJCCXV.js → chunk-XHMN6ZX7.js} +2 -2
  187. package/dist/chunk-XHTVFLWW.js +2 -0
  188. package/dist/chunk-XKIDJCIK.js +2 -0
  189. package/dist/chunk-XTYTYZPT.js +2 -0
  190. package/dist/chunk-Y2JHHTTA.js +2 -0
  191. package/dist/chunk-YGVRMGYN.js +4 -0
  192. package/dist/chunk-YNQCGEQE.js +2 -0
  193. package/dist/chunk-YOQVEXVE.js +14 -0
  194. package/dist/chunk-YRT2WLYY.js +2 -0
  195. package/dist/chunk-YTAP5Y2G.js +2 -0
  196. package/dist/chunk-YTYWI7VB.js +2 -0
  197. package/dist/chunk-YULZRALL.js +2 -0
  198. package/dist/chunk-Z33WQG4Q.js +2 -0
  199. package/dist/chunk-ZGTYGDMF.js +16 -0
  200. package/dist/chunk-ZHMRSZFD.js +43 -0
  201. package/dist/chunk-ZHSP366W.js +10 -0
  202. package/dist/chunk-ZIBYCYKK.js +7 -0
  203. package/dist/{chunk-GAS2LJMP.js → chunk-ZLADLUE6.js} +3 -3
  204. package/dist/chunk-ZO4YXUT6.js +4 -0
  205. package/dist/{chunk-HYO3NP5Q.js → chunk-ZR4HBC2H.js} +2 -2
  206. package/dist/cli-main.js +6 -6
  207. package/dist/cli.js +1 -1
  208. package/dist/{code-B17qEMbt.d.ts → code-BNyrCF3_.d.ts} +3 -2
  209. package/dist/code-IL5WH3NZ.js +2 -0
  210. package/dist/code-result-json-ANTBEDFP.js +4 -0
  211. package/dist/command-descriptors-HEEMDHTU.js +222 -0
  212. package/dist/deps-EOWFC6FD.js +2 -0
  213. package/dist/direct-navigation-Y5B6OSIQ.js +3 -0
  214. package/dist/{exploration-topology-BG4v30HZ.d.ts → exploration-topology-CSgEyAz-.d.ts} +3 -1
  215. package/dist/files-K4AI3JUM.js +2 -0
  216. package/dist/frontend-profile-roles-D7eCum8P.d.ts +10 -0
  217. package/dist/{health-CPp2Jf1Z.d.ts → health-BtfmNrfa.d.ts} +58 -74
  218. package/dist/hierarchy-6W5NDIFI.js +2 -0
  219. package/dist/imports-WH365QY4.js +2 -0
  220. package/dist/index.d.ts +13 -1
  221. package/dist/index.js +1 -1
  222. package/dist/members-K3PHMF5S.js +2 -0
  223. package/dist/methods-E7KVMBX4.js +2 -0
  224. package/dist/output-continuation-command-BJSY67SN.js +3 -0
  225. package/dist/output-pagination-UZJ5ACIX.js +24 -0
  226. package/dist/postinstall.js +1 -1
  227. package/dist/project-reindex-EP24WT4X.js +3 -0
  228. package/dist/queries/affected.js +1 -1
  229. package/dist/queries/architecture.d.ts +15 -4
  230. package/dist/queries/architecture.js +1 -1
  231. package/dist/queries/bottlenecks.js +1 -1
  232. package/dist/queries/by-kind.js +1 -1
  233. package/dist/queries/call-graph.d.ts +3 -1
  234. package/dist/queries/call-graph.js +1 -1
  235. package/dist/queries/change-surface.d.ts +1 -0
  236. package/dist/queries/change-surface.js +1 -1
  237. package/dist/queries/cleanup-plan.d.ts +3 -3
  238. package/dist/queries/cleanup-plan.js +1 -1
  239. package/dist/queries/co-change.d.ts +20 -2
  240. package/dist/queries/co-change.js +1 -1
  241. package/dist/queries/code.d.ts +1 -1
  242. package/dist/queries/code.js +1 -1
  243. package/dist/queries/complexity.d.ts +6 -3
  244. package/dist/queries/complexity.js +1 -1
  245. package/dist/queries/context.d.ts +1 -7
  246. package/dist/queries/context.js +1 -1
  247. package/dist/queries/coupling.js +1 -1
  248. package/dist/queries/cycles.js +1 -1
  249. package/dist/queries/dead.d.ts +2 -0
  250. package/dist/queries/dead.js +1 -1
  251. package/dist/queries/decorative-checkers.js +1 -1
  252. package/dist/queries/dependence-slice.d.ts +46 -22
  253. package/dist/queries/dependence-slice.js +1 -1
  254. package/dist/queries/dependency-depth.d.ts +1 -7
  255. package/dist/queries/dependency-depth.js +1 -1
  256. package/dist/queries/deps.js +1 -1
  257. package/dist/queries/diff-impact.d.ts +3 -1
  258. package/dist/queries/diff-impact.js +1 -1
  259. package/dist/queries/doc-drift.js +1 -1
  260. package/dist/queries/drift.d.ts +1 -1
  261. package/dist/queries/drift.js +1 -1
  262. package/dist/queries/duplicate-bodies.d.ts +29 -2
  263. package/dist/queries/duplicate-bodies.js +1 -1
  264. package/dist/queries/entry-map.d.ts +2 -4
  265. package/dist/queries/entry-map.js +1 -1
  266. package/dist/queries/evidence.d.ts +121 -61
  267. package/dist/queries/evidence.js +1 -1
  268. package/dist/queries/fan.js +1 -1
  269. package/dist/queries/files.js +1 -1
  270. package/dist/queries/health.d.ts +1 -1
  271. package/dist/queries/health.js +1 -1
  272. package/dist/queries/hierarchy.d.ts +2 -2
  273. package/dist/queries/hierarchy.js +1 -1
  274. package/dist/queries/hotspots.d.ts +1 -1
  275. package/dist/queries/hotspots.js +1 -1
  276. package/dist/queries/imports.d.ts +1 -0
  277. package/dist/queries/imports.js +1 -1
  278. package/dist/queries/incomplete-migration.d.ts +3 -3
  279. package/dist/queries/incomplete-migration.js +1 -1
  280. package/dist/queries/index.d.ts +17 -65
  281. package/dist/queries/index.js +1 -1
  282. package/dist/queries/locality-candidates.d.ts +4 -4
  283. package/dist/queries/locality-candidates.js +1 -1
  284. package/dist/queries/members.d.ts +2 -2
  285. package/dist/queries/members.js +1 -1
  286. package/dist/queries/methods.js +1 -1
  287. package/dist/queries/not-implemented.d.ts +2 -6
  288. package/dist/queries/not-implemented.js +1 -1
  289. package/dist/queries/outline.js +1 -1
  290. package/dist/queries/passthrough-candidates.d.ts +9 -1
  291. package/dist/queries/passthrough-candidates.js +1 -1
  292. package/dist/queries/react-component-duplicates.d.ts +19 -3
  293. package/dist/queries/react-component-duplicates.js +1 -1
  294. package/dist/queries/react-hook-candidates.d.ts +22 -3
  295. package/dist/queries/react-hook-candidates.js +1 -1
  296. package/dist/queries/react-large-component-pressure.d.ts +17 -3
  297. package/dist/queries/react-large-component-pressure.js +1 -1
  298. package/dist/queries/recent-duplicates.js +1 -1
  299. package/dist/queries/redundant-reexports.d.ts +4 -14
  300. package/dist/queries/redundant-reexports.js +1 -1
  301. package/dist/queries/refs.d.ts +4 -1
  302. package/dist/queries/refs.js +1 -1
  303. package/dist/queries/review.d.ts +188 -0
  304. package/dist/queries/review.js +2 -0
  305. package/dist/queries/similar-files.d.ts +7 -10
  306. package/dist/queries/similar-files.js +1 -1
  307. package/dist/queries/similar-signatures.js +1 -1
  308. package/dist/queries/similar.d.ts +19 -1
  309. package/dist/queries/similar.js +1 -1
  310. package/dist/queries/slice-cohesion.d.ts +205 -0
  311. package/dist/queries/slice-cohesion.js +2 -0
  312. package/dist/queries/source-inspection.d.ts +6 -202
  313. package/dist/queries/source-inspection.js +1 -1
  314. package/dist/queries/source-search.d.ts +2 -3
  315. package/dist/queries/source-search.js +1 -1
  316. package/dist/queries/stats.d.ts +1 -0
  317. package/dist/queries/stats.js +1 -1
  318. package/dist/queries/surface.js +1 -1
  319. package/dist/queries/symbols.js +1 -1
  320. package/dist/queries/system.d.ts +4 -2
  321. package/dist/queries/system.js +1 -1
  322. package/dist/queries/test-quality.d.ts +1 -1
  323. package/dist/queries/test-quality.js +1 -1
  324. package/dist/queries/twin-drift.d.ts +23 -7
  325. package/dist/queries/twin-drift.js +1 -1
  326. package/dist/queries/unused-imports.js +1 -1
  327. package/dist/queries/unused-params.d.ts +3 -15
  328. package/dist/queries/unused-params.js +1 -1
  329. package/dist/queries/vue-component-duplicates.js +1 -1
  330. package/dist/queries/vue-composable-candidates.js +1 -1
  331. package/dist/queries/vue-large-view-pressure.js +1 -1
  332. package/dist/query-service-fastpath.js +5 -5
  333. package/dist/query-service-server.js +4 -4
  334. package/dist/refs-CCBJG7WK.js +2 -0
  335. package/dist/refs-pagination-DRNLVU4S.js +2 -0
  336. package/dist/reindex-worker.js +79 -29
  337. package/dist/reindex.js +45 -45
  338. package/dist/repository-cache-worker.js +2 -0
  339. package/dist/runtime.d.ts +8 -8
  340. package/dist/runtime.js +3 -4
  341. package/dist/rust-semantic-session-server.js +1 -1
  342. package/dist/rust-semantic-session-worker.js +1 -1
  343. package/dist/rust-semantic-worker.js +1 -1
  344. package/dist/service-queries-2WAJI7R6.js +6 -0
  345. package/dist/source-inspection-91U9zdO3.d.ts +341 -0
  346. package/dist/{source-search-types-Dwz8KeuW.d.ts → source-search-types-DWGYNg8M.d.ts} +15 -2
  347. package/dist/stats-G7DIV6VU.js +2 -0
  348. package/dist/surface-IO55UALI.js +2 -0
  349. package/dist/system-ZBMSHJXU.js +2 -0
  350. package/dist/{queries/trace.d.ts → trace-BMjw3prn.d.ts} +1 -18
  351. package/dist/typescript-indexer.js +2 -0
  352. package/dist/typescript-mailbox-worker.js +1 -1
  353. package/dist/watch-server.js +3 -3
  354. package/docs/AGENT_GUIDE.md +19 -128
  355. package/docs/CLI_JSON_OUTPUT.md +21 -17
  356. package/docs/COMMAND_REFERENCE.md +34 -49
  357. package/docs/CURRENT_COMMANDS.md +123 -0
  358. package/docs/DETECTOR_EVIDENCE_CONTRACTS.md +0 -40
  359. package/docs/DETECTOR_GUIDE.md +55 -12
  360. package/docs/PRODUCT_VISION.md +135 -0
  361. package/docs/PROPERTY_TESTING.md +73 -0
  362. package/docs/REVIEW.md +76 -0
  363. package/docs/SKILLS.md +51 -0
  364. package/docs/WINDOWS_SIDECAR_RELEASE.md +12 -3
  365. package/docs/accuracy-audit-checklist.md +70 -13
  366. package/docs/analyzer-inventory.md +2 -2
  367. package/docs/locality-analyzer-design.md +9 -9
  368. package/package.json +18 -80
  369. package/scripts/evidence-product-contract.mjs +7 -3
  370. package/scripts/record-review-coverage.mjs +118 -0
  371. package/scripts/scip-windows-provenance.mjs +29 -19
  372. package/skills/scip-architecture-review/SKILL.md +57 -0
  373. package/skills/scip-architecture-review/agents/openai.yaml +4 -0
  374. package/skills/scip-architecture-review/references/design-checks.md +17 -0
  375. package/skills/scip-explore/SKILL.md +15 -59
  376. package/skills/scip-explore/agents/openai.yaml +3 -3
  377. package/skills/scip-explore/references/external-evidence.md +2 -2
  378. package/skills/scip-explore/references/information-model.md +26 -29
  379. package/skills/scip-explore/scripts/capture-evidence.mjs +68 -34
  380. package/skills/scip-integrity-audit/SKILL.md +53 -181
  381. package/skills/scip-integrity-audit/agents/openai.yaml +3 -3
  382. package/skills/scip-integrity-audit/references/integrity-probes.md +27 -0
  383. package/skills/scip-plan/SKILL.md +39 -65
  384. package/skills/scip-plan/agents/openai.yaml +2 -2
  385. package/skills/scip-query/SKILL.md +28 -81
  386. package/skills/scip-query/agents/openai.yaml +2 -2
  387. package/skills/scip-query/references/command-guide.md +169 -0
  388. package/skills/scip-setup/SKILL.md +4 -2
  389. package/skills/scip-setup/agents/openai.yaml +3 -3
  390. package/dist/by-kind-XI2CSWEY.js +0 -2
  391. package/dist/call-graph-UONR6JR5.js +0 -2
  392. package/dist/call-graph-evidence-lZa2dwQA.d.ts +0 -11
  393. package/dist/chunk-26CT72HM.js +0 -2
  394. package/dist/chunk-2E7CX53V.js +0 -2
  395. package/dist/chunk-2GRUZAQF.js +0 -43
  396. package/dist/chunk-2LDBDR6J.js +0 -29
  397. package/dist/chunk-2OOY75BW.js +0 -2
  398. package/dist/chunk-2R3V3PSD.js +0 -4
  399. package/dist/chunk-2WC2OEDO.js +0 -4
  400. package/dist/chunk-35NLDRZC.js +0 -2
  401. package/dist/chunk-3AF4TUFK.js +0 -3
  402. package/dist/chunk-3D3QG236.js +0 -2
  403. package/dist/chunk-3FHOF22C.js +0 -21
  404. package/dist/chunk-3JKSW6LJ.js +0 -2
  405. package/dist/chunk-3L2ZBPEX.js +0 -133
  406. package/dist/chunk-3PJABJSU.js +0 -2
  407. package/dist/chunk-3SVF22I5.js +0 -2
  408. package/dist/chunk-3WR4E3A3.js +0 -3
  409. package/dist/chunk-4FTZ4P5G.js +0 -2
  410. package/dist/chunk-4UX2F3JX.js +0 -2
  411. package/dist/chunk-4WNW27SX.js +0 -2
  412. package/dist/chunk-5ENOG4VP.js +0 -61
  413. package/dist/chunk-64BFSI5I.js +0 -2
  414. package/dist/chunk-66DVSJQG.js +0 -455
  415. package/dist/chunk-6HFCYNYE.js +0 -9
  416. package/dist/chunk-6PQNKL3G.js +0 -3
  417. package/dist/chunk-6V5CNXL6.js +0 -2
  418. package/dist/chunk-6VVV4WRR.js +0 -4
  419. package/dist/chunk-7BWFZPPZ.js +0 -2
  420. package/dist/chunk-7CYG22FH.js +0 -2
  421. package/dist/chunk-7F45LJKI.js +0 -2
  422. package/dist/chunk-7IWV2EG3.js +0 -3
  423. package/dist/chunk-7KCZELVM.js +0 -2
  424. package/dist/chunk-AFHTBORT.js +0 -2
  425. package/dist/chunk-AVRYW5OZ.js +0 -2
  426. package/dist/chunk-B3X6KU75.js +0 -2
  427. package/dist/chunk-B5D7QPBE.js +0 -4
  428. package/dist/chunk-BBCIS4DX.js +0 -16
  429. package/dist/chunk-BDUVI7TO.js +0 -3
  430. package/dist/chunk-BE7ZZTMC.js +0 -2
  431. package/dist/chunk-BHVUJOCQ.js +0 -3
  432. package/dist/chunk-BJT7LSPK.js +0 -3
  433. package/dist/chunk-BKVWUP7Y.js +0 -2
  434. package/dist/chunk-BQGB4HBD.js +0 -2
  435. package/dist/chunk-BRV7PIFF.js +0 -2
  436. package/dist/chunk-CEEZJXEF.js +0 -2
  437. package/dist/chunk-CIYLO6SI.js +0 -7
  438. package/dist/chunk-CJZXN4NU.js +0 -2
  439. package/dist/chunk-CNO7TOKL.js +0 -2
  440. package/dist/chunk-COF23M5F.js +0 -2
  441. package/dist/chunk-CWFP7GM5.js +0 -2
  442. package/dist/chunk-D2DHWI3D.js +0 -2
  443. package/dist/chunk-D4N5SQ2M.js +0 -4
  444. package/dist/chunk-DBRSYFXR.js +0 -2
  445. package/dist/chunk-DHUIOLDT.js +0 -2
  446. package/dist/chunk-DIRJWYBM.js +0 -6
  447. package/dist/chunk-DIUFNHRJ.js +0 -35
  448. package/dist/chunk-DRENNWRG.js +0 -2
  449. package/dist/chunk-DTZCKZEU.js +0 -4
  450. package/dist/chunk-DULC3QFP.js +0 -5
  451. package/dist/chunk-DYGHBZ2N.js +0 -16
  452. package/dist/chunk-E5R6AQ73.js +0 -40
  453. package/dist/chunk-E73UNJTF.js +0 -38
  454. package/dist/chunk-EKV5HX33.js +0 -2
  455. package/dist/chunk-EQHFIL6T.js +0 -3
  456. package/dist/chunk-ESIQ66Z7.js +0 -2
  457. package/dist/chunk-EVFUMY4R.js +0 -3
  458. package/dist/chunk-F7DY272B.js +0 -2
  459. package/dist/chunk-FBN2FGXG.js +0 -2
  460. package/dist/chunk-FDLOBR6P.js +0 -4
  461. package/dist/chunk-FESCRNVV.js +0 -5
  462. package/dist/chunk-FFRKR4EQ.js +0 -2
  463. package/dist/chunk-FGA2U4OR.js +0 -8
  464. package/dist/chunk-FIQRSHVM.js +0 -2
  465. package/dist/chunk-FPYLNQPT.js +0 -2
  466. package/dist/chunk-FRUSVINH.js +0 -2
  467. package/dist/chunk-GSP44ENC.js +0 -2
  468. package/dist/chunk-GUFSG5TX.js +0 -2
  469. package/dist/chunk-GYIZ4NXB.js +0 -2
  470. package/dist/chunk-GZIUDL6G.js +0 -2
  471. package/dist/chunk-H5EXS3HM.js +0 -2
  472. package/dist/chunk-HCXEQRFF.js +0 -18
  473. package/dist/chunk-HEHOQQKH.js +0 -2
  474. package/dist/chunk-HKGFPJ4T.js +0 -4
  475. package/dist/chunk-HLZTEXRA.js +0 -2
  476. package/dist/chunk-HOENASQM.js +0 -3
  477. package/dist/chunk-HVF5VBG6.js +0 -2
  478. package/dist/chunk-I55I7XXP.js +0 -2
  479. package/dist/chunk-IDFEUFKS.js +0 -2
  480. package/dist/chunk-IHGQTTVW.js +0 -2
  481. package/dist/chunk-IICPE7B2.js +0 -20
  482. package/dist/chunk-IL676XCC.js +0 -18
  483. package/dist/chunk-IW5XQG5G.js +0 -2
  484. package/dist/chunk-IZDPJ2QI.js +0 -2
  485. package/dist/chunk-J66VOFW6.js +0 -5
  486. package/dist/chunk-JFMEXGFE.js +0 -2
  487. package/dist/chunk-JGKUET5J.js +0 -3
  488. package/dist/chunk-JS4PGXMV.js +0 -3
  489. package/dist/chunk-JWTGMPIT.js +0 -80
  490. package/dist/chunk-JYR66JN5.js +0 -5
  491. package/dist/chunk-KFOYCQAJ.js +0 -9
  492. package/dist/chunk-KLFEXGQA.js +0 -2
  493. package/dist/chunk-KMVGRIO2.js +0 -2
  494. package/dist/chunk-KYSDI3GE.js +0 -5
  495. package/dist/chunk-L6PJPETJ.js +0 -29
  496. package/dist/chunk-LDVT66YM.js +0 -2
  497. package/dist/chunk-LEECKFCJ.js +0 -2
  498. package/dist/chunk-LMZ5PRUV.js +0 -2
  499. package/dist/chunk-LQRQN2XA.js +0 -2
  500. package/dist/chunk-LXABEJX3.js +0 -2
  501. package/dist/chunk-MNV5FSBW.js +0 -3
  502. package/dist/chunk-MPQ4OTBM.js +0 -2
  503. package/dist/chunk-MTDBHTSF.js +0 -2
  504. package/dist/chunk-MV3CDXPI.js +0 -38
  505. package/dist/chunk-MWN53KRN.js +0 -60
  506. package/dist/chunk-MXNGIEPU.js +0 -3
  507. package/dist/chunk-N2ZSIIGR.js +0 -117
  508. package/dist/chunk-N5B2NILC.js +0 -5
  509. package/dist/chunk-NJITK2GP.js +0 -2
  510. package/dist/chunk-NOGJXYFO.js +0 -2
  511. package/dist/chunk-NOYBFVJA.js +0 -554
  512. package/dist/chunk-NWQXSFFU.js +0 -3
  513. package/dist/chunk-ODDUPDP7.js +0 -13
  514. package/dist/chunk-OLIWTZI3.js +0 -3
  515. package/dist/chunk-OLNV6I6U.js +0 -2
  516. package/dist/chunk-OR2E3AGZ.js +0 -2
  517. package/dist/chunk-OSR2GEHQ.js +0 -2
  518. package/dist/chunk-OSSESPDX.js +0 -3
  519. package/dist/chunk-OWOOWNJ5.js +0 -7
  520. package/dist/chunk-P42EIXTA.js +0 -2
  521. package/dist/chunk-PJFGPYTU.js +0 -2
  522. package/dist/chunk-PP7KNN7L.js +0 -2
  523. package/dist/chunk-PU7T5QYQ.js +0 -2
  524. package/dist/chunk-PWWAJSKV.js +0 -74
  525. package/dist/chunk-PZL5T7SU.js +0 -73
  526. package/dist/chunk-QBE3YX64.js +0 -23
  527. package/dist/chunk-QGVTFRY2.js +0 -7
  528. package/dist/chunk-QOJONDS7.js +0 -2
  529. package/dist/chunk-QU5XRYB5.js +0 -4
  530. package/dist/chunk-QUU5OBVK.js +0 -11
  531. package/dist/chunk-RBLQNW26.js +0 -20
  532. package/dist/chunk-RTQ7NEKG.js +0 -81
  533. package/dist/chunk-SQXRS7BG.js +0 -4
  534. package/dist/chunk-SSK6LDPC.js +0 -2
  535. package/dist/chunk-SZHGTCPP.js +0 -7
  536. package/dist/chunk-T4N4P2K5.js +0 -16
  537. package/dist/chunk-TA3QKLLU.js +0 -2
  538. package/dist/chunk-TEBQMNVI.js +0 -43
  539. package/dist/chunk-TPFHAQ2G.js +0 -2
  540. package/dist/chunk-TQPCBMWT.js +0 -5
  541. package/dist/chunk-TQZV7KV4.js +0 -2
  542. package/dist/chunk-TRNAEQ6P.js +0 -3
  543. package/dist/chunk-TY7CRN3Z.js +0 -2
  544. package/dist/chunk-UHFYCMZO.js +0 -35
  545. package/dist/chunk-UICY4GTQ.js +0 -7
  546. package/dist/chunk-UVGEWT4Y.js +0 -26
  547. package/dist/chunk-UXW33INU.js +0 -29
  548. package/dist/chunk-VMPRET3I.js +0 -5
  549. package/dist/chunk-VNLGKHS6.js +0 -6
  550. package/dist/chunk-VQILFTEH.js +0 -2
  551. package/dist/chunk-VUPHCS7Y.js +0 -57
  552. package/dist/chunk-VVZSBTSU.js +0 -23
  553. package/dist/chunk-VZRNID6A.js +0 -2
  554. package/dist/chunk-W5OXRYGE.js +0 -7
  555. package/dist/chunk-W6STWDQI.js +0 -57
  556. package/dist/chunk-W7CXK74K.js +0 -2
  557. package/dist/chunk-WB3WYIRE.js +0 -4
  558. package/dist/chunk-WDNVY4E7.js +0 -20
  559. package/dist/chunk-WK46TNUM.js +0 -3
  560. package/dist/chunk-WNTFFKAX.js +0 -12
  561. package/dist/chunk-WOIKCX6A.js +0 -2
  562. package/dist/chunk-WUN6KBHV.js +0 -2
  563. package/dist/chunk-WYCTJDVR.js +0 -2
  564. package/dist/chunk-WYPL7GF7.js +0 -2
  565. package/dist/chunk-XDAUYDFT.js +0 -2
  566. package/dist/chunk-XDQMU3BT.js +0 -2
  567. package/dist/chunk-XFA4SSO3.js +0 -3
  568. package/dist/chunk-XGZEP6GR.js +0 -8
  569. package/dist/chunk-XPDPNWTQ.js +0 -368
  570. package/dist/chunk-XRYABF57.js +0 -8
  571. package/dist/chunk-YBGKCQIS.js +0 -2
  572. package/dist/chunk-YEN6CYC7.js +0 -16
  573. package/dist/chunk-YF5IB2LF.js +0 -2
  574. package/dist/chunk-YI2AWIHC.js +0 -3
  575. package/dist/chunk-YPWBKGFU.js +0 -2
  576. package/dist/chunk-YPWHBBIS.js +0 -2
  577. package/dist/chunk-YSH6U3L4.js +0 -3
  578. package/dist/chunk-YU5DZUZI.js +0 -10
  579. package/dist/chunk-YWO5DDRC.js +0 -16
  580. package/dist/chunk-Z4CDXYNQ.js +0 -2
  581. package/dist/chunk-ZF5KHH7C.js +0 -2
  582. package/dist/chunk-ZOHS7AQV.js +0 -21
  583. package/dist/chunk-ZTI4SBFV.js +0 -3
  584. package/dist/code-MI6F2TTU.js +0 -2
  585. package/dist/code-result-json-FXALY4HE.js +0 -2
  586. package/dist/command-descriptors-P34VABY5.js +0 -343
  587. package/dist/dataflow-4KEMJPC6.js +0 -2
  588. package/dist/dependence-slice-R7FPWD5M.js +0 -2
  589. package/dist/deps-7EMQUYUT.js +0 -2
  590. package/dist/direct-navigation-6YO234F2.js +0 -3
  591. package/dist/entry-map-KOOLR26E.js +0 -2
  592. package/dist/files-OPIPJIGZ.js +0 -2
  593. package/dist/graph-evidence-Bjyky2V4.d.ts +0 -126
  594. package/dist/hierarchy-QPD2CAER.js +0 -2
  595. package/dist/imports-M6HUXRXC.js +0 -2
  596. package/dist/members-I5MEFOCT.js +0 -2
  597. package/dist/methods-5JYGGHXA.js +0 -2
  598. package/dist/next-anchor-candidates-BwMczMvX.d.ts +0 -90
  599. package/dist/output-continuation-command-UPQAAKBP.js +0 -3
  600. package/dist/output-pagination-3OFL2MJV.js +0 -19
  601. package/dist/project-reindex-UKKQ5PLS.js +0 -3
  602. package/dist/queries/anchors.d.ts +0 -123
  603. package/dist/queries/anchors.js +0 -2
  604. package/dist/queries/complexity-hotspots.d.ts +0 -40
  605. package/dist/queries/complexity-hotspots.js +0 -2
  606. package/dist/queries/convergence.d.ts +0 -33
  607. package/dist/queries/convergence.js +0 -2
  608. package/dist/queries/dataflow.d.ts +0 -77
  609. package/dist/queries/dataflow.js +0 -2
  610. package/dist/queries/deep-chains.d.ts +0 -5
  611. package/dist/queries/deep-chains.js +0 -2
  612. package/dist/queries/extract-candidates.d.ts +0 -52
  613. package/dist/queries/extract-candidates.js +0 -2
  614. package/dist/queries/isolated.d.ts +0 -24
  615. package/dist/queries/isolated.js +0 -2
  616. package/dist/queries/plan-context.d.ts +0 -33
  617. package/dist/queries/plan-context.js +0 -2
  618. package/dist/queries/reference-neighborhood.d.ts +0 -4
  619. package/dist/queries/reference-neighborhood.js +0 -2
  620. package/dist/queries/reference-reachability.d.ts +0 -48
  621. package/dist/queries/reference-reachability.js +0 -2
  622. package/dist/queries/self-audit.d.ts +0 -63
  623. package/dist/queries/self-audit.js +0 -2
  624. package/dist/queries/similar-chains.d.ts +0 -48
  625. package/dist/queries/similar-chains.js +0 -2
  626. package/dist/queries/slice.d.ts +0 -4
  627. package/dist/queries/slice.js +0 -2
  628. package/dist/queries/stale-abstractions.d.ts +0 -72
  629. package/dist/queries/stale-abstractions.js +0 -2
  630. package/dist/queries/system-map.d.ts +0 -449
  631. package/dist/queries/system-map.js +0 -2
  632. package/dist/queries/trace.js +0 -2
  633. package/dist/queries/twin-ab.d.ts +0 -66
  634. package/dist/queries/twin-ab.js +0 -2
  635. package/dist/queries/value-flow.d.ts +0 -43
  636. package/dist/queries/value-flow.js +0 -2
  637. package/dist/queries/wrapper-candidates.d.ts +0 -34
  638. package/dist/queries/wrapper-candidates.js +0 -2
  639. package/dist/refs-PSU4JZZW.js +0 -2
  640. package/dist/refs-pagination-JG6CJMRC.js +0 -2
  641. package/dist/slice-HYRATV64.js +0 -2
  642. package/dist/source-snippet-_wrcgmZc.d.ts +0 -15
  643. package/dist/stats-OOJ74B32.js +0 -2
  644. package/dist/surface-VTGDYWF5.js +0 -2
  645. package/dist/symbol-resolution-WD5EU5JE.js +0 -2
  646. package/dist/system-LRQNFOR2.js +0 -2
  647. package/dist/trace-F4B6OLL4.js +0 -2
  648. package/dist/value-flow-VRPZY72V.js +0 -2
  649. package/skills/concrete-plan/SKILL.md +0 -8
  650. package/skills/concrete-plan/agents/openai.yaml +0 -4
@@ -0,0 +1,205 @@
1
+ import * as TypeScript from 'typescript';
2
+ import { I as IndexedDefinition } from '../symbol-types-BIQwfoAx.js';
3
+ import { S as ScipDatabase } from '../db-BwIVAYNB.js';
4
+ import 'better-sqlite3';
5
+ import '../config-types-B9B60MiR.js';
6
+
7
+ interface CandidatePipelineCounters {
8
+ pipeline: string | undefined;
9
+ loadedCandidates: number;
10
+ filteredCandidates: number;
11
+ scannedCandidates: number;
12
+ evaluatedCandidates: number;
13
+ matchedResults: number;
14
+ emittedResults: number;
15
+ scanLimitApplied: boolean;
16
+ resultLimitApplied: boolean;
17
+ }
18
+ interface CandidateScanProgress {
19
+ evaluated: number;
20
+ scanned: number;
21
+ matched: number;
22
+ }
23
+
24
+ /** What a function hands to the outside world: a value, a field of a returned object, an effect, a write, or an exit. */
25
+ type SliceCohesionOutputKind = 'return' | 'return-property' | 'effect-call' | 'mutation' | 'throw';
26
+ /**
27
+ * One control-flow unit of the body. `jump` and `declaration` units are
28
+ * placed but not counted: they carry no analyzable data flow.
29
+ */
30
+ type SliceCohesionUnitKind = 'statement' | 'predicate' | 'return' | 'throw' | 'jump' | 'declaration';
31
+ /** `signal` when the split is backed by a complete local model and a narrow extraction; `support` when a reviewer must confirm it. */
32
+ type SliceCohesionActionTier = 'signal' | 'support';
33
+ /**
34
+ * What kind of body was sliced. A React component or hook is bound by hook
35
+ * rules, and an orchestration root sequences independent operations by
36
+ * design, so each is read differently from a plain calculation.
37
+ */
38
+ type SliceCohesionArchetype = 'calculation' | 'react-component' | 'react-hook' | 'orchestration';
39
+ /**
40
+ * What an extracted cluster would be: a pure calculation, an operation that
41
+ * computes a result while awaiting or affecting the outside, a custom hook,
42
+ * or a sequence of effects.
43
+ */
44
+ type SliceCohesionClusterKind = 'calculation' | 'operation' | 'hook' | 'effects';
45
+ /** The largest qualifying cluster stays in place; the others are the extractions; the rest are below threshold. */
46
+ type SliceCohesionClusterRole = 'remainder' | 'extraction' | 'below-threshold';
47
+ interface SliceCohesionUnit {
48
+ index: number;
49
+ kind: SliceCohesionUnitKind;
50
+ startLine: number;
51
+ endLine: number;
52
+ label: string;
53
+ }
54
+ interface SliceCohesionOutput {
55
+ id: string;
56
+ kind: SliceCohesionOutputKind;
57
+ label: string;
58
+ /** Zero-based line of the first unit producing the output. */
59
+ line: number;
60
+ /** Counted units that produce this output; a function's return value merges every non-guard return statement. */
61
+ units: number[];
62
+ /** True when the output carries no computed value: an exit whose slice is only itself. */
63
+ guard: boolean;
64
+ /** True for a React hook call such as `useEffect`: a lifecycle effect rather than a plain call. */
65
+ hook: boolean;
66
+ /** Size of the computation slice: counted units reached backward through data edges and non-guard control edges. */
67
+ sliceSize: number;
68
+ /** Size of the full slice: counted units reached through data edges and every control edge, guards included. */
69
+ fullSliceSize: number;
70
+ /** The computation slice itself; present when the candidate was requested in detail. */
71
+ slice?: number[];
72
+ /** The full slice itself; present when the candidate was requested in detail. */
73
+ fullSlice?: number[];
74
+ }
75
+ interface SliceCohesionLineRange {
76
+ startLine: number;
77
+ endLine: number;
78
+ }
79
+ interface SliceCohesionCluster {
80
+ outputs: string[];
81
+ /** Counted units exclusive to this cluster after shared setup is removed. */
82
+ units: number[];
83
+ /** Zero-based line ranges covering the cluster's units. */
84
+ lineRanges: SliceCohesionLineRange[];
85
+ /**
86
+ * The parameters an extraction would take: function parameters, `this`,
87
+ * shared-setup bindings, and locals of an enclosing function the cluster
88
+ * reads. Imports, module-level names, globals, and JSX tags stay imports.
89
+ */
90
+ inputs: string[];
91
+ kind: SliceCohesionClusterKind;
92
+ role: SliceCohesionClusterRole;
93
+ /** Whether `inputs` is within the signal bound; the remainder never needs an interface. */
94
+ narrow: boolean;
95
+ /** Hook calls the cluster contains, for hook-candidate wording. */
96
+ hooks: string[];
97
+ /** True when every output in the cluster is a throw: validation, not a computation. */
98
+ guardOnly: boolean;
99
+ }
100
+ interface SliceCohesionMetrics {
101
+ /** Share of counted statements in every value output's computation slice (Ott and Thuss tightness). */
102
+ tightness: number;
103
+ /** Tightness over full slices, guards included. */
104
+ fullTightness: number;
105
+ /** Mean computation-slice size as a share of counted statements (Ott and Thuss coverage). */
106
+ sliceShare: number;
107
+ fullSliceShare: number;
108
+ /** Mean share of each computation slice that lies in the intersection of all of them (overlap). */
109
+ overlap: number;
110
+ /** Statements in every full slice. */
111
+ superglue: number;
112
+ /** Statements in two or more full slices. */
113
+ glue: number;
114
+ }
115
+ interface SliceCohesionCoverage {
116
+ /** `partial` only when a gap can drop dependencies; conservative approximations keep `complete`. */
117
+ status: 'complete' | 'partial';
118
+ /**
119
+ * What `complete` covers: the function-local flow model. Runtime order,
120
+ * callee behavior, and framework scheduling are outside it.
121
+ */
122
+ model: 'function-local-flow';
123
+ basis: 'typescript-local-flow-backward-slices';
124
+ unsupported: string[];
125
+ /** Flow edges used whose strength is candidate rather than exact. */
126
+ candidateEdges: number;
127
+ /** Candidate edges are treated as dependencies, so they can merge clusters but never separate them. */
128
+ candidateEdgeEffect: 'merge-only';
129
+ }
130
+ interface SliceCohesionCandidate {
131
+ symbol: string;
132
+ shortName: string;
133
+ relativePath: string;
134
+ startLine: number;
135
+ endLine: number;
136
+ loc: number;
137
+ archetype: SliceCohesionArchetype;
138
+ /** True under a scripts, tools, bin, or migrations directory: operational code that legitimately sequences steps. */
139
+ operational: boolean;
140
+ /** Every body unit; present when the candidate was requested in detail. */
141
+ units?: SliceCohesionUnit[];
142
+ /** Units that carry data flow: statements, predicates, returns, and throws. */
143
+ statementCount: number;
144
+ outputs: SliceCohesionOutput[];
145
+ metrics: SliceCohesionMetrics;
146
+ /** Independent computations, largest first. */
147
+ clusters: SliceCohesionCluster[];
148
+ /** Value outputs that depend on shared setup only; they belong to whichever function keeps the setup. */
149
+ preambleOnlyOutputs: string[];
150
+ /** Counted units derived only from inputs and read by several outputs. */
151
+ preamble: number[];
152
+ /** Counted units no output depends on. */
153
+ orphans: number[];
154
+ /** Statements in the extraction clusters: what could leave the function while the largest computation stays. */
155
+ separableStatements: number;
156
+ splitCandidate: boolean;
157
+ actionTier: SliceCohesionActionTier;
158
+ tierReason: string;
159
+ evidenceReasons: string[];
160
+ recommendation: string;
161
+ coverage: SliceCohesionCoverage;
162
+ }
163
+ interface SourceFileCache {
164
+ files: Map<string, TypeScript.SourceFile | null>;
165
+ }
166
+ /**
167
+ * Measure functional cohesion from backward slices.
168
+ *
169
+ * For each thing a function hands to the outside world (its return value,
170
+ * each property of a returned object, an effect call, a write to state it
171
+ * does not own, a throw) the analysis takes the backward slice over the
172
+ * local definition-use and control-dependence graph. Outputs whose slices
173
+ * share statements belong to one computation; outputs whose slices are
174
+ * disjoint are separate local computations that happen to live in one
175
+ * body. Statements derived only from the inputs and read by several
176
+ * outputs are shared setup, not glue. The partition is the finding: the
177
+ * largest computation stays in place and every other qualifying cluster is
178
+ * an extraction with its parameters already named.
179
+ */
180
+ declare function sliceCohesion(db: ScipDatabase, opts?: {
181
+ scope?: string;
182
+ symbol?: string;
183
+ minLoc?: number;
184
+ minStatements?: number;
185
+ minClusterUnits?: number;
186
+ limit?: number;
187
+ scanLimit?: number;
188
+ /** Include every unit and slice in each candidate; defaults to true for a targeted symbol. */
189
+ detail?: boolean;
190
+ onProgress?: (progress: CandidateScanProgress) => void;
191
+ /** Receives the scan counters, so a caller can report how much of the repository the result covers. */
192
+ onProfile?: (counters: CandidatePipelineCounters) => void;
193
+ }): SliceCohesionCandidate[];
194
+ /**
195
+ * Slice one callable. Null when the file is not TypeScript-like, the
196
+ * compiler is unavailable, no function-like body sits inside the
197
+ * definition range, or the flow analysis reports no support at all.
198
+ */
199
+ declare function sliceCohesionForDefinition(db: ScipDatabase, definition: IndexedDefinition, opts?: {
200
+ minStatements?: number;
201
+ minClusterUnits?: number;
202
+ detail?: boolean;
203
+ }, cache?: SourceFileCache): SliceCohesionCandidate | null;
204
+
205
+ export { type SliceCohesionActionTier, type SliceCohesionArchetype, type SliceCohesionCandidate, type SliceCohesionCluster, type SliceCohesionClusterKind, type SliceCohesionClusterRole, type SliceCohesionCoverage, type SliceCohesionLineRange, type SliceCohesionMetrics, type SliceCohesionOutput, type SliceCohesionOutputKind, type SliceCohesionUnit, type SliceCohesionUnitKind, sliceCohesion, sliceCohesionForDefinition };
@@ -0,0 +1,2 @@
1
+ import{a,b}from"../chunk-BUTWYEPH.js";import"../chunk-NOWINRRN.js";import"../chunk-N2WN6I3L.js";import"../chunk-BOJ5SVE2.js";import"../chunk-6LSEIIF7.js";import"../chunk-BGBBVSH4.js";import"../chunk-36SGVCGX.js";import"../chunk-AGWFSTXC.js";import"../chunk-P5XHIJHI.js";import"../chunk-73AAKPUC.js";import"../chunk-KZBJWZJB.js";import"../chunk-4WTUBQ36.js";import"../chunk-NZAXKGRL.js";import"../chunk-KK7GPALL.js";import"../chunk-YNQCGEQE.js";import"../chunk-FMRN2TRL.js";import"../chunk-DA7RPPDF.js";import"../chunk-4WCUBZU3.js";import"../chunk-E3FDPXZK.js";import"../chunk-DHEQMPLW.js";import"../chunk-KHWRRPV4.js";import"../chunk-72AD6ZRR.js";import"../chunk-YUKYB54I.js";import"../chunk-GCKCF5FL.js";import"../chunk-DVFP6PZI.js";import"../chunk-5D2LVK7O.js";import"../chunk-7WTPQ4NX.js";import"../chunk-FVULPZDF.js";import"../chunk-D3FDISIC.js";import"../chunk-A2IIGFMJ.js";import"../chunk-PH52RA7D.js";import"../chunk-GVWX5T43.js";import"../chunk-T6DK3ZP7.js";import"../chunk-5TNQJUR2.js";export{a as sliceCohesion,b as sliceCohesionForDefinition};
2
+ //# sourceMappingURL=slice-cohesion.js.map
@@ -1,209 +1,13 @@
1
- import { S as ScipDatabase } from '../db-BwIVAYNB.js';
2
- import { B as BehaviorSignal, d as BehaviorSkeleton, e as BoundaryEvidenceStrength, f as BoundaryResolutionState, S as SystemMapNextAnchorPacket } from '../next-anchor-candidates-BwMczMvX.js';
3
- import { EvidenceOptions, EvidenceResult } from './evidence.js';
4
- import { g as ExplorationCompletionStatus } from '../exploration-topology-BG4v30HZ.js';
5
- import { B as BindingClosure } from '../code-B17qEMbt.js';
6
- export { a as BindingDefinitionEvidence } from '../code-B17qEMbt.js';
7
- import { g as SourceSearchTextCoverage } from '../source-search-types-Dwz8KeuW.js';
8
- import { a as SourceUnitSnippet } from '../source-snippet-_wrcgmZc.js';
1
+ import '../db-BwIVAYNB.js';
2
+ export { B as BehaviorSignal, a as BehaviorSkeleton, S as SourceInspectionChannelCoverage, f as SourceInspectionContinuation, g as SourceInspectionEvidenceBudgets, h as SourceInspectionEvidenceChannel, i as SourceInspectionLocation, j as SourceInspectionOmissionAnchor, k as SourceInspectionOmissionGroup, l as SourceInspectionOptions, m as SourceInspectionPacketCoverage, n as SourceInspectionPathUnit, o as SourceInspectionResult, p as SourceInspectionRuntimeFact, q as SourceInspectionSearch, r as SourceInspectionSearchScope, s as SourceInspectionSlice, t as SourceInspectionSourceUnit, u as SourceInspectionStoppingStatus, v as SourceInspectionStoppingSummary, w as SourceInspectionUnit, x as SourceInspectionUnitRole, y as SourceInspectionView, z as inspectSource } from '../source-inspection-91U9zdO3.js';
3
+ import '../exploration-topology-CSgEyAz-.js';
4
+ export { B as BindingClosure, a as BindingDefinitionEvidence } from '../code-BNyrCF3_.js';
5
+ import '../source-search-types-DWGYNg8M.js';
9
6
  import 'better-sqlite3';
10
7
  import '../config-types-B9B60MiR.js';
11
8
  import '../symbol-types-BIQwfoAx.js';
12
9
  import './deps.js';
13
- import './trace.js';
10
+ import '../trace-BMjw3prn.js';
14
11
  import '../repository-text-C0Q8VYdN.js';
15
12
  import './outline.js';
16
13
  import '../file-kind-BKCVMNUf.js';
17
-
18
- type SourceInspectionEvidenceChannel = 'search' | 'exact-source' | 'definition' | 'caller' | 'callee' | 'production-reference' | 'test-reference' | 'dependency' | 'consumer';
19
- type SourceInspectionEvidenceBudgets = Partial<Record<SourceInspectionEvidenceChannel, number>>;
20
- interface SourceInspectionChannelCoverage {
21
- candidateUnits: number;
22
- returnedUnits: number;
23
- omittedUnits: number;
24
- maxUnits: number;
25
- }
26
- type SourceInspectionUnitRole = 'search' | 'location' | 'definition' | 'reference' | 'caller' | 'callee' | 'dependency' | 'consumer';
27
- type SourceInspectionView = 'source' | 'behavior';
28
-
29
- interface SourceInspectionSlice extends SourceUnitSnippet {
30
- reasons: string[];
31
- focusLines: number[];
32
- ownerSymbol: string | null;
33
- ownerShort: string | null;
34
- }
35
- interface SourceInspectionSourceUnit extends SourceInspectionSlice {
36
- kind: 'source';
37
- id: string;
38
- roles: SourceInspectionUnitRole[];
39
- symbols: string[];
40
- omittedCharacters: number;
41
- behavior?: BehaviorSkeleton;
42
- runtimeFacts?: SourceInspectionRuntimeFact[];
43
- /** @deprecated Inspect omits whole ranked units rather than clipping source within a returned unit. */
44
- exactFollowup?: string;
45
- }
46
- /** A compact, source-recoverable projection of one mechanically grounded runtime operation. */
47
- interface SourceInspectionRuntimeFact {
48
- observationId: string;
49
- protocol: string;
50
- action: string;
51
- role: string;
52
- strength: BoundaryEvidenceStrength;
53
- resolution: BoundaryResolutionState;
54
- line: number;
55
- endLine: number;
56
- keyParts: Array<{
57
- name: string;
58
- value: string;
59
- evidence: string;
60
- }>;
61
- derivation: {
62
- kind: string;
63
- rule: string;
64
- sourceSpans: number;
65
- };
66
- }
67
- interface SourceInspectionPathUnit {
68
- kind: 'path';
69
- id: string;
70
- roles: Array<'dependency' | 'consumer'>;
71
- relativePath: string;
72
- relationship: string;
73
- reasons: string[];
74
- symbols: string[];
75
- exactFollowup: string;
76
- }
77
- /** One independently useful source excerpt or unresolved file relationship in the shared packet. */
78
- type SourceInspectionUnit = SourceInspectionSourceUnit | SourceInspectionPathUnit;
79
- /** @deprecated Inspect no longer emits semantic packet continuations. */
80
- interface SourceInspectionContinuation {
81
- cursor: string;
82
- command: string;
83
- indexGeneration: string;
84
- }
85
- interface SourceInspectionSearch {
86
- pattern: string;
87
- matchingLines: number;
88
- returnedMatches: number;
89
- omittedMatches: number;
90
- matchingFiles?: number;
91
- returnedFiles?: number;
92
- omittedFiles?: number;
93
- candidateUnits?: number;
94
- selectedUnits?: number;
95
- omittedUnits?: number;
96
- scopeHints?: SourceInspectionSearchScope[];
97
- omittedScopeHints?: number;
98
- textCoverage?: SourceSearchTextCoverage;
99
- exactFollowup?: string;
100
- }
101
- interface SourceInspectionSearchScope {
102
- scope: string;
103
- matchingLines: number;
104
- returnedMatches: number;
105
- exactFollowup: string;
106
- }
107
- interface SourceInspectionLocation {
108
- target: string;
109
- matched: boolean;
110
- }
111
- interface SourceInspectionPacketCoverage {
112
- mode: 'bounded' | 'complete';
113
- candidateUnits: number;
114
- returnedUnits: number;
115
- omittedUnits: number;
116
- omittedByRole: Partial<Record<SourceInspectionUnitRole, number>>;
117
- exactSelectorsComplete: boolean;
118
- maxUnits: number;
119
- maxCharacters: number;
120
- channels?: Record<SourceInspectionEvidenceChannel, SourceInspectionChannelCoverage>;
121
- expansionCommand?: string;
122
- }
123
- interface SourceInspectionOmissionAnchor {
124
- relativePath: string;
125
- line: number;
126
- ownerShort: string | null;
127
- roles: SourceInspectionUnitRole[];
128
- behaviorSignals: BehaviorSignal[];
129
- }
130
- interface SourceInspectionOmissionGroup {
131
- id: string;
132
- scope: string;
133
- channel?: SourceInspectionEvidenceChannel;
134
- roles: SourceInspectionUnitRole[];
135
- behaviorSignals: BehaviorSignal[];
136
- candidateUnits: number;
137
- sourceCharacters: number;
138
- anchors: SourceInspectionOmissionAnchor[];
139
- drillCommand: string;
140
- }
141
- type SourceInspectionStoppingStatus = 'stop-ready' | 'relevance-check-required' | 'exact-evidence-withheld';
142
- interface SourceInspectionStoppingSummary {
143
- /** Query-scoped completion; it never claims that the user's task is finished. */
144
- queryStatus?: ExplorationCompletionStatus;
145
- /** @deprecated Use queryStatus. Retained for one compatibility window. */
146
- status: SourceInspectionStoppingStatus;
147
- openEvidence: number;
148
- guidance: string;
149
- drillCommands: string[];
150
- }
151
- interface SourceInspectionResult {
152
- searches: SourceInspectionSearch[];
153
- evidence: EvidenceResult[];
154
- locations: SourceInspectionLocation[];
155
- /** @deprecated Prefer units, which includes every evidence role in one deduplicated packet. */
156
- slices: SourceInspectionSlice[];
157
- /** @deprecated Prefer candidateUnits. */
158
- candidateSlices: number;
159
- /** @deprecated Prefer omittedUnits. */
160
- omittedSlices: number;
161
- /** @deprecated Prefer packetCoverage.maxUnits. */
162
- maxSlices: number;
163
- maxTotalLines: number;
164
- units?: SourceInspectionUnit[];
165
- candidateUnits?: number;
166
- omittedUnits?: number;
167
- maxUnits?: number;
168
- maxCharacters?: number;
169
- returnedLines?: number;
170
- returnedCharacters?: number;
171
- returnedViewCharacters?: number;
172
- view?: SourceInspectionView;
173
- omissionGroups?: SourceInspectionOmissionGroup[];
174
- packetCoverage?: SourceInspectionPacketCoverage;
175
- stoppingSummary?: SourceInspectionStoppingSummary;
176
- /** Exact downstream call targets outside the materialized behavior constructs. */
177
- causalFrontier?: SystemMapNextAnchorPacket;
178
- bindingClosure?: BindingClosure;
179
- /** @deprecated Inspect no longer emits semantic packet continuations. */
180
- continuation?: SourceInspectionContinuation | null;
181
- }
182
- interface SourceInspectionOptions {
183
- searches?: readonly string[];
184
- symbols?: readonly string[];
185
- locations?: readonly string[];
186
- scope?: string;
187
- context?: number;
188
- searchLimit?: number;
189
- maxUnits?: number;
190
- full?: boolean;
191
- view?: SourceInspectionView;
192
- /** @deprecated Inspect returns complete syntax units. */
193
- unitLines?: number;
194
- /** @deprecated Inspect no longer applies a packet line budget. */
195
- totalLines?: number;
196
- /** @deprecated Inspect no longer applies a packet unit budget. */
197
- sliceLimit?: number;
198
- /** Displayed-evidence character ceiling; source view may surface one whole oversized unit for CLI refusal. */
199
- maxCharacters?: number;
200
- evidence?: EvidenceOptions;
201
- /** Independent unit ceilings; omitted channel evidence remains recoverable in coverage and omission groups. */
202
- evidenceBudgets?: SourceInspectionEvidenceBudgets;
203
- /** @deprecated Inspect no longer accepts semantic packet cursors. */
204
- cursor?: string;
205
- }
206
- /** Build one ranked, deduplicated semantic packet from several known source questions. */
207
- declare function inspectSource(db: ScipDatabase, opts: SourceInspectionOptions): SourceInspectionResult;
208
-
209
- export { BehaviorSignal, BehaviorSkeleton, BindingClosure, type SourceInspectionChannelCoverage, type SourceInspectionContinuation, type SourceInspectionEvidenceBudgets, type SourceInspectionEvidenceChannel, type SourceInspectionLocation, type SourceInspectionOmissionAnchor, type SourceInspectionOmissionGroup, type SourceInspectionOptions, type SourceInspectionPacketCoverage, type SourceInspectionPathUnit, type SourceInspectionResult, type SourceInspectionRuntimeFact, type SourceInspectionSearch, type SourceInspectionSearchScope, type SourceInspectionSlice, type SourceInspectionSourceUnit, type SourceInspectionStoppingStatus, type SourceInspectionStoppingSummary, type SourceInspectionUnit, type SourceInspectionUnitRole, type SourceInspectionView, inspectSource };
@@ -1,2 +1,2 @@
1
- import{a}from"../chunk-DULC3QFP.js";import"../chunk-VMPRET3I.js";import"../chunk-3WR4E3A3.js";import"../chunk-2R3V3PSD.js";import"../chunk-EG2CPZMJ.js";import"../chunk-MNV5FSBW.js";import"../chunk-ZF5KHH7C.js";import"../chunk-CIYLO6SI.js";import"../chunk-M2O5NY6W.js";import"../chunk-HEHOQQKH.js";import"../chunk-3SVF22I5.js";import"../chunk-WIWY3CRX.js";import"../chunk-BRV7PIFF.js";import"../chunk-TPFHAQ2G.js";import"../chunk-OR2E3AGZ.js";import"../chunk-6VVV4WRR.js";import"../chunk-VUPHCS7Y.js";import"../chunk-WOIKCX6A.js";import"../chunk-BOJ5SVE2.js";import"../chunk-CJZXN4NU.js";import"../chunk-BGBBVSH4.js";import"../chunk-W7CXK74K.js";import"../chunk-NWQXSFFU.js";import"../chunk-P5XHIJHI.js";import"../chunk-E73UNJTF.js";import"../chunk-WB3WYIRE.js";import"../chunk-DYGHBZ2N.js";import"../chunk-KK7GPALL.js";import"../chunk-OSSESPDX.js";import"../chunk-TRNAEQ6P.js";import"../chunk-XRYABF57.js";import"../chunk-NJITK2GP.js";import"../chunk-YUKYB54I.js";import"../chunk-DHEQMPLW.js";import"../chunk-TEBQMNVI.js";import"../chunk-MTDBHTSF.js";import"../chunk-N2ZSIIGR.js";import"../chunk-ODDUPDP7.js";import"../chunk-ZOHS7AQV.js";import"../chunk-FESCRNVV.js";import"../chunk-JWTGMPIT.js";import"../chunk-N5B2NILC.js";export{a as inspectSource};
1
+ import{a}from"../chunk-AC566WBP.js";import"../chunk-F56GCXXS.js";import"../chunk-55UQAMZO.js";import"../chunk-D3NX5XIE.js";import"../chunk-VTY3VK6E.js";import"../chunk-ZR4HBC2H.js";import"../chunk-F4LUHJTF.js";import"../chunk-ZIBYCYKK.js";import"../chunk-DIO3FUSG.js";import"../chunk-MOQQBQRD.js";import"../chunk-YGVRMGYN.js";import"../chunk-GMVSHUKZ.js";import"../chunk-AOSIYPTA.js";import"../chunk-F2V2LPET.js";import"../chunk-NLOQOBXI.js";import"../chunk-PKN354TH.js";import"../chunk-BOJ5SVE2.js";import"../chunk-6LSEIIF7.js";import"../chunk-BGBBVSH4.js";import"../chunk-36SGVCGX.js";import"../chunk-AGWFSTXC.js";import"../chunk-P5XHIJHI.js";import"../chunk-73AAKPUC.js";import"../chunk-KZBJWZJB.js";import"../chunk-4WTUBQ36.js";import"../chunk-NZAXKGRL.js";import"../chunk-KK7GPALL.js";import"../chunk-YNQCGEQE.js";import"../chunk-FMRN2TRL.js";import"../chunk-DA7RPPDF.js";import"../chunk-4WCUBZU3.js";import"../chunk-E3FDPXZK.js";import"../chunk-DHEQMPLW.js";import"../chunk-KHWRRPV4.js";import"../chunk-72AD6ZRR.js";import"../chunk-YUKYB54I.js";import"../chunk-GCKCF5FL.js";import"../chunk-DVFP6PZI.js";import"../chunk-5D2LVK7O.js";import"../chunk-7WTPQ4NX.js";import"../chunk-FVULPZDF.js";import"../chunk-D3FDISIC.js";import"../chunk-A2IIGFMJ.js";import"../chunk-PH52RA7D.js";import"../chunk-GVWX5T43.js";import"../chunk-T6DK3ZP7.js";import"../chunk-5TNQJUR2.js";export{a as inspectSource};
2
2
  //# sourceMappingURL=source-inspection.js.map
@@ -1,11 +1,10 @@
1
1
  import { S as ScipDatabase } from '../db-BwIVAYNB.js';
2
- import { d as SourceSearchOptions, e as SourceSearchResult } from '../source-search-types-Dwz8KeuW.js';
3
- export { S as SourceSearchFileCoverage, a as SourceSearchIdentity, b as SourceSearchIdentityCoverage, c as SourceSearchMatch, f as SourceSearchScopeHint, g as SourceSearchTextCoverage } from '../source-search-types-Dwz8KeuW.js';
2
+ import { d as SourceSearchOptions, e as SourceSearchResult } from '../source-search-types-DWGYNg8M.js';
3
+ export { S as SourceSearchFileCoverage, a as SourceSearchIdentity, b as SourceSearchIdentityCoverage, c as SourceSearchMatch, f as SourceSearchScopeHint, g as SourceSearchTextCoverage } from '../source-search-types-DWGYNg8M.js';
4
4
  export { S as SourceObservationFreshness, a as SourceSemanticFreshnessState } from '../repository-text-C0Q8VYdN.js';
5
5
  import 'better-sqlite3';
6
6
  import '../config-types-B9B60MiR.js';
7
7
  import '../file-kind-BKCVMNUf.js';
8
- import '../source-snippet-_wrcgmZc.js';
9
8
 
10
9
  /** Search the source of indexed documents and retain line and symbol ownership. */
11
10
  declare function searchSource(db: ScipDatabase, pattern: string, opts?: SourceSearchOptions): SourceSearchResult;
@@ -1,2 +1,2 @@
1
- import{a}from"../chunk-6I6L7Z62.js";import"../chunk-VMPRET3I.js";import"../chunk-3SVF22I5.js";import"../chunk-OR2E3AGZ.js";import"../chunk-6VVV4WRR.js";import"../chunk-NJITK2GP.js";import"../chunk-YUKYB54I.js";import"../chunk-DHEQMPLW.js";import"../chunk-N2ZSIIGR.js";import"../chunk-ODDUPDP7.js";import"../chunk-ZOHS7AQV.js";import"../chunk-FESCRNVV.js";import"../chunk-JWTGMPIT.js";import"../chunk-N5B2NILC.js";export{a as searchSource};
1
+ import{a}from"../chunk-4BHGBMNO.js";import"../chunk-F56GCXXS.js";import"../chunk-YGVRMGYN.js";import"../chunk-YNQCGEQE.js";import"../chunk-E3FDPXZK.js";import"../chunk-DHEQMPLW.js";import"../chunk-YUKYB54I.js";import"../chunk-5D2LVK7O.js";import"../chunk-7WTPQ4NX.js";import"../chunk-FVULPZDF.js";import"../chunk-D3FDISIC.js";import"../chunk-A2IIGFMJ.js";import"../chunk-PH52RA7D.js";import"../chunk-GVWX5T43.js";import"../chunk-T6DK3ZP7.js";import"../chunk-5TNQJUR2.js";export{a as searchSource};
2
2
  //# sourceMappingURL=source-search.js.map
@@ -8,6 +8,7 @@ interface StatsResult {
8
8
  definitions: number;
9
9
  references: number;
10
10
  indexSizeBytes: number;
11
+ /** Database file modification time; legacy name, not evidence of source freshness. */
11
12
  lastBuilt: Date | null;
12
13
  }
13
14
  declare function stats(db: ScipDatabase): StatsResult;
@@ -1,2 +1,2 @@
1
- import{a}from"../chunk-6YTSKJJ3.js";export{a as stats};
1
+ import{a}from"../chunk-42EOW5VI.js";export{a as stats};
2
2
  //# sourceMappingURL=stats.js.map
@@ -1,2 +1,2 @@
1
- import{a,b}from"../chunk-2LDBDR6J.js";import"../chunk-BRV7PIFF.js";import"../chunk-CJZXN4NU.js";import"../chunk-BGBBVSH4.js";import"../chunk-W7CXK74K.js";import"../chunk-NWQXSFFU.js";import"../chunk-P5XHIJHI.js";import"../chunk-E73UNJTF.js";import"../chunk-WB3WYIRE.js";import"../chunk-DYGHBZ2N.js";import"../chunk-KK7GPALL.js";import"../chunk-OSSESPDX.js";import"../chunk-TRNAEQ6P.js";import"../chunk-XRYABF57.js";import"../chunk-NJITK2GP.js";import"../chunk-YUKYB54I.js";import"../chunk-DHEQMPLW.js";import"../chunk-TEBQMNVI.js";import"../chunk-MTDBHTSF.js";import"../chunk-N2ZSIIGR.js";import"../chunk-ODDUPDP7.js";import"../chunk-ZOHS7AQV.js";import"../chunk-FESCRNVV.js";import"../chunk-JWTGMPIT.js";import"../chunk-N5B2NILC.js";export{b as consumerSurface,a as surface};
1
+ import{a,b}from"../chunk-JFXSGAEB.js";import"../chunk-AOSIYPTA.js";import"../chunk-6LSEIIF7.js";import"../chunk-BGBBVSH4.js";import"../chunk-36SGVCGX.js";import"../chunk-AGWFSTXC.js";import"../chunk-P5XHIJHI.js";import"../chunk-73AAKPUC.js";import"../chunk-KZBJWZJB.js";import"../chunk-4WTUBQ36.js";import"../chunk-NZAXKGRL.js";import"../chunk-KK7GPALL.js";import"../chunk-YNQCGEQE.js";import"../chunk-FMRN2TRL.js";import"../chunk-DA7RPPDF.js";import"../chunk-4WCUBZU3.js";import"../chunk-E3FDPXZK.js";import"../chunk-DHEQMPLW.js";import"../chunk-KHWRRPV4.js";import"../chunk-72AD6ZRR.js";import"../chunk-YUKYB54I.js";import"../chunk-GCKCF5FL.js";import"../chunk-DVFP6PZI.js";import"../chunk-5D2LVK7O.js";import"../chunk-7WTPQ4NX.js";import"../chunk-FVULPZDF.js";import"../chunk-D3FDISIC.js";import"../chunk-A2IIGFMJ.js";import"../chunk-PH52RA7D.js";import"../chunk-GVWX5T43.js";import"../chunk-T6DK3ZP7.js";import"../chunk-5TNQJUR2.js";export{b as consumerSurface,a as surface};
2
2
  //# sourceMappingURL=surface.js.map
@@ -1,2 +1,2 @@
1
- import{a}from"../chunk-FBN2FGXG.js";import"../chunk-BRV7PIFF.js";import"../chunk-OSSESPDX.js";import"../chunk-N2ZSIIGR.js";import"../chunk-ODDUPDP7.js";import"../chunk-ZOHS7AQV.js";import"../chunk-FESCRNVV.js";import"../chunk-JWTGMPIT.js";import"../chunk-N5B2NILC.js";export{a as symbols};
1
+ import{a}from"../chunk-N3ORQT7L.js";import"../chunk-AOSIYPTA.js";import"../chunk-FMRN2TRL.js";import"../chunk-5D2LVK7O.js";import"../chunk-7WTPQ4NX.js";import"../chunk-FVULPZDF.js";import"../chunk-D3FDISIC.js";import"../chunk-A2IIGFMJ.js";import"../chunk-PH52RA7D.js";import"../chunk-GVWX5T43.js";import"../chunk-T6DK3ZP7.js";import"../chunk-5TNQJUR2.js";export{a as symbols};
2
2
  //# sourceMappingURL=symbols.js.map
@@ -5,13 +5,15 @@ import '../config-types-B9B60MiR.js';
5
5
 
6
6
  interface SystemResult {
7
7
  files: string[];
8
- symbols: SymbolResult[];
8
+ symbols: Array<SymbolResult & {
9
+ relativePath: string;
10
+ }>;
9
11
  dependsOn: string[];
10
12
  dependedOnBy: string[];
11
13
  }
12
14
  /** Full system map for a module path: files, symbols, deps in/out.
13
15
  *
14
- * Exported-symbol ranges come from getDefinitionsForFile so they are
16
+ * Symbol ranges come from getDefinitionsForFile so they are
15
17
  * source-corrected and match `scip symbols` output.
16
18
  */
17
19
  declare function system(db: ScipDatabase, modulePattern: string): SystemResult;
@@ -1,2 +1,2 @@
1
- import{a,b}from"../chunk-FDLOBR6P.js";import"../chunk-BRV7PIFF.js";import"../chunk-OSSESPDX.js";import"../chunk-TEBQMNVI.js";import"../chunk-N2ZSIIGR.js";import"../chunk-ODDUPDP7.js";import"../chunk-ZOHS7AQV.js";import"../chunk-FESCRNVV.js";import"../chunk-JWTGMPIT.js";import"../chunk-N5B2NILC.js";export{b as moduleMap,a as system};
1
+ import{a,b}from"../chunk-CFN45HFP.js";import"../chunk-AOSIYPTA.js";import"../chunk-FMRN2TRL.js";import"../chunk-GCKCF5FL.js";import"../chunk-5D2LVK7O.js";import"../chunk-7WTPQ4NX.js";import"../chunk-FVULPZDF.js";import"../chunk-D3FDISIC.js";import"../chunk-A2IIGFMJ.js";import"../chunk-PH52RA7D.js";import"../chunk-GVWX5T43.js";import"../chunk-T6DK3ZP7.js";import"../chunk-5TNQJUR2.js";export{b as moduleMap,a as system};
2
2
  //# sourceMappingURL=system.js.map
@@ -8,7 +8,7 @@ import '../config-types-B9B60MiR.js';
8
8
  * source-facts layer (raw source text + `classifyFile`'s test-file
9
9
  * classification), never the graph. Three independently reportable
10
10
  * sub-checks:
11
- * - assertion-free: `it`/`test` bodies with no reachable assertion call.
11
+ * - assertion-free: `it`/`test` bodies without recognized assertion syntax (not a reachability proof).
12
12
  * - skipped: `it.skip`/`describe.skip`/`xit`/`.todo` inventory with
13
13
  * git-blame age on the skip line.
14
14
  * - mock-echo: a test asserting the same literal it stubbed into a mock.
@@ -1,2 +1,2 @@
1
- import{a}from"../chunk-BHVUJOCQ.js";import"../chunk-6HFCYNYE.js";import"../chunk-BOJ5SVE2.js";import"../chunk-BGBBVSH4.js";import"../chunk-P5XHIJHI.js";import"../chunk-XRYABF57.js";import"../chunk-NJITK2GP.js";import"../chunk-YUKYB54I.js";import"../chunk-DHEQMPLW.js";import"../chunk-TEBQMNVI.js";import"../chunk-N2ZSIIGR.js";import"../chunk-ODDUPDP7.js";import"../chunk-ZOHS7AQV.js";import"../chunk-FESCRNVV.js";import"../chunk-JWTGMPIT.js";import"../chunk-N5B2NILC.js";export{a as testQuality};
1
+ import{a}from"../chunk-3IVFU4FD.js";import"../chunk-KDDIE2DP.js";import"../chunk-BOJ5SVE2.js";import"../chunk-BGBBVSH4.js";import"../chunk-P5XHIJHI.js";import"../chunk-4WCUBZU3.js";import"../chunk-E3FDPXZK.js";import"../chunk-DHEQMPLW.js";import"../chunk-YUKYB54I.js";import"../chunk-GCKCF5FL.js";import"../chunk-5D2LVK7O.js";import"../chunk-7WTPQ4NX.js";import"../chunk-FVULPZDF.js";import"../chunk-D3FDISIC.js";import"../chunk-A2IIGFMJ.js";import"../chunk-PH52RA7D.js";import"../chunk-GVWX5T43.js";import"../chunk-T6DK3ZP7.js";import"../chunk-5TNQJUR2.js";export{a as testQuality};
2
2
  //# sourceMappingURL=test-quality.js.map
@@ -12,7 +12,7 @@ import '../config-types-B9B60MiR.js';
12
12
  * - similar requires callee-set overlap (any names).
13
13
  * - similar-signatures requires the same type shape (any names).
14
14
  *
15
- * This one is the missing "same concept, drifted implementation" case:
15
+ * This is a candidate search by names and source tokens; shared conceptual ownership requires review:
16
16
  * React/Vue helper families with drifted thresholds, escapeRegex vs
17
17
  * escapeRegExp, etc.
18
18
  */
@@ -54,6 +54,12 @@ interface TwinDriftRecord {
54
54
  * `isDelegatePair`/`buildDelegationChecker` for that.
55
55
  */
56
56
  isThinForwarder: boolean;
57
+ /**
58
+ * For a thin forwarder, the leaf name of the one call its body makes; a
59
+ * forwarder whose target has a different name than its own is a stub over
60
+ * another concept (an HTTP client, an adapter), not a twin of it.
61
+ */
62
+ forwardTargetLeaf?: string | null;
57
63
  }
58
64
  declare function twinDrift(db: ScipDatabase, opts?: {
59
65
  scope?: string;
@@ -85,11 +91,12 @@ declare function groupTwins(records: readonly TwinDriftRecord[], opts?: {
85
91
  minSimilarity?: number;
86
92
  /**
87
93
  * Injected so this stays a pure/DB-free function for `groupTwins`'s unit
88
- * tests: `isDelegatePair(from, to, clusterMembers)` answers "is `from` a
89
- * thin forwarder whose call target resolves to `to` (directly, or by
90
- * chaining through same-leaf-name delegates found in `clusterMembers`)?"
91
- * `allTwinGroups` wires the real, source/import-backed implementation
92
- * via `buildDelegationChecker`.
94
+ * tests: `isDelegatePair(from, to, clusterMembers)` answers "does `from`
95
+ * call `to` (directly, or by chaining through same-leaf-name thin
96
+ * forwarders found in `clusterMembers`)?" A member that calls its
97
+ * same-name counterpart is a layer over it, not a parallel
98
+ * implementation. `allTwinGroups` wires the real, source/import-backed
99
+ * implementation via `buildDelegationChecker`.
93
100
  */
94
101
  isDelegatePair?: (from: TwinDriftRecord, to: TwinDriftRecord, clusterMembers: readonly TwinDriftRecord[]) => boolean;
95
102
  }): TwinGroup[];
@@ -107,6 +114,15 @@ declare function groupTwins(records: readonly TwinDriftRecord[], opts?: {
107
114
  * statement-count/control-flow/call-shape check.
108
115
  */
109
116
  declare function isThinForwarderBody(rawSnippet: string): boolean;
117
+ /**
118
+ * Stricter than `isThinForwarderBody`: exactly one statement, that statement
119
+ * is one call (optionally returned or awaited), and its arguments are plain
120
+ * values — identifiers, member paths, literals, `??`/`||` defaults, spreads.
121
+ * A preparatory statement, a callback, a nested call, or an array/object
122
+ * literal the body builds makes the callable a helper rather than the
123
+ * "inline this into its only consumer" shape the wrapper claim describes.
124
+ */
125
+ declare function isSingleForwardingCallBody(rawSnippet: string): boolean;
110
126
  /**
111
127
  * Split a statement block on top-level `;` (ignoring `;` nested inside
112
128
  * `()`/`[]`/`{}`). Exported so other detectors that need a body's top-level
@@ -116,4 +132,4 @@ declare function isThinForwarderBody(rawSnippet: string): boolean;
116
132
  */
117
133
  declare function splitTopLevelStatements(body: string): string[];
118
134
 
119
- export { type TwinDriftRecord, type TwinGroup, type TwinMember, type TwinRelationship, allTwinGroups, groupTwins, isThinForwarderBody, splitTopLevelStatements, twinDrift };
135
+ export { type TwinDriftRecord, type TwinGroup, type TwinMember, type TwinRelationship, allTwinGroups, groupTwins, isSingleForwardingCallBody, isThinForwarderBody, splitTopLevelStatements, twinDrift };
@@ -1,2 +1,2 @@
1
- import{a,b,c,d,e}from"../chunk-4UX2F3JX.js";import"../chunk-JGKUET5J.js";import"../chunk-6HFCYNYE.js";import"../chunk-BOJ5SVE2.js";import"../chunk-BGBBVSH4.js";import"../chunk-P5XHIJHI.js";import"../chunk-XRYABF57.js";import"../chunk-NJITK2GP.js";import"../chunk-YUKYB54I.js";import"../chunk-DHEQMPLW.js";import"../chunk-TEBQMNVI.js";import"../chunk-MTDBHTSF.js";import"../chunk-N2ZSIIGR.js";import"../chunk-ODDUPDP7.js";import"../chunk-ZOHS7AQV.js";import"../chunk-FESCRNVV.js";import"../chunk-JWTGMPIT.js";import"../chunk-N5B2NILC.js";export{b as allTwinGroups,c as groupTwins,d as isThinForwarderBody,e as splitTopLevelStatements,a as twinDrift};
1
+ import{a,b,c,d,e,f}from"../chunk-NEIWRNAZ.js";import"../chunk-D254DNNQ.js";import"../chunk-4BP3UBDG.js";import"../chunk-KDDIE2DP.js";import"../chunk-BOJ5SVE2.js";import"../chunk-BGBBVSH4.js";import"../chunk-P5XHIJHI.js";import"../chunk-YNQCGEQE.js";import"../chunk-4WCUBZU3.js";import"../chunk-E3FDPXZK.js";import"../chunk-DHEQMPLW.js";import"../chunk-72AD6ZRR.js";import"../chunk-YUKYB54I.js";import"../chunk-GCKCF5FL.js";import"../chunk-DVFP6PZI.js";import"../chunk-5D2LVK7O.js";import"../chunk-7WTPQ4NX.js";import"../chunk-FVULPZDF.js";import"../chunk-D3FDISIC.js";import"../chunk-A2IIGFMJ.js";import"../chunk-PH52RA7D.js";import"../chunk-GVWX5T43.js";import"../chunk-T6DK3ZP7.js";import"../chunk-5TNQJUR2.js";export{b as allTwinGroups,c as groupTwins,e as isSingleForwardingCallBody,d as isThinForwarderBody,f as splitTopLevelStatements,a as twinDrift};
2
2
  //# sourceMappingURL=twin-drift.js.map
@@ -1,2 +1,2 @@
1
- import{a,b,c}from"../chunk-UHFYCMZO.js";import"../chunk-BRV7PIFF.js";import"../chunk-NWQXSFFU.js";import"../chunk-P5XHIJHI.js";import"../chunk-WB3WYIRE.js";import"../chunk-KK7GPALL.js";import"../chunk-OSSESPDX.js";import"../chunk-TRNAEQ6P.js";import"../chunk-TEBQMNVI.js";import"../chunk-N2ZSIIGR.js";import"../chunk-ODDUPDP7.js";import"../chunk-ZOHS7AQV.js";import"../chunk-FESCRNVV.js";import"../chunk-JWTGMPIT.js";import"../chunk-N5B2NILC.js";export{b as importedBy,a as imports,c as unusedImports};
1
+ import{a,b,c}from"../chunk-LMO6PK3V.js";import"../chunk-AOSIYPTA.js";import"../chunk-AGWFSTXC.js";import"../chunk-P5XHIJHI.js";import"../chunk-73AAKPUC.js";import"../chunk-KZBJWZJB.js";import"../chunk-KK7GPALL.js";import"../chunk-FMRN2TRL.js";import"../chunk-DA7RPPDF.js";import"../chunk-GCKCF5FL.js";import"../chunk-5D2LVK7O.js";import"../chunk-7WTPQ4NX.js";import"../chunk-FVULPZDF.js";import"../chunk-D3FDISIC.js";import"../chunk-A2IIGFMJ.js";import"../chunk-PH52RA7D.js";import"../chunk-GVWX5T43.js";import"../chunk-T6DK3ZP7.js";import"../chunk-5TNQJUR2.js";export{b as importedBy,a as imports,c as unusedImports};
2
2
  //# sourceMappingURL=unused-imports.js.map
@@ -12,21 +12,9 @@ interface UnusedParamsFinding {
12
12
  /** Trailing parameters never referenced in the body, in declaration order. */
13
13
  unusedTrailing: string[];
14
14
  }
15
- /**
16
- * Speculative generality: trailing parameters nobody uses — a signature AI
17
- * move (options and hooks added "for later" that never came).
18
- *
19
- * Deliberately conservative, TS/JS only:
20
- * - TRAILING runs only — removing a trailing parameter is type-safe under
21
- * TypeScript's function variance; removing a mid-list one breaks the
22
- * positional contract. (Rust is excluded: call sites break, and rustc
23
- * already warns there.)
24
- * - `_`-prefixed names are declared-intentional and skipped.
25
- * - Functions with pattern/rest parameters are skipped entirely.
26
- * - One-line bodies are skipped (line-granular usage can't tell a use from
27
- * the declaration itself).
28
- * - Externally-live (package surface / entryRoots) symbols are skipped —
29
- * their signatures are API.
15
+ /** Trailing simple parameters with no same-binding read. Defaults, rest parameters,
16
+ * parameter properties, dynamic eval/arguments, and rooted contracts are excluded.
17
+ * Findings are review candidates: changing a signature can affect callers and arity.
30
18
  */
31
19
  declare function unusedParams(db: ScipDatabase, opts?: {
32
20
  scope?: string;