scip-query 0.10.12 → 0.11.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 (353) hide show
  1. package/CHANGELOG.md +45 -0
  2. package/{vendor/scip/LICENSE.scip → LICENSE} +1 -0
  3. package/README.md +141 -49
  4. package/dist/augment-vue-worker.js +1 -1
  5. package/dist/chunk-2VSDXOG5.js +2 -0
  6. package/dist/chunk-343O6EVV.js +2 -0
  7. package/dist/{chunk-RUV5IY25.js → chunk-3KDUITBE.js} +2 -2
  8. package/dist/chunk-3T2FNHIU.js +2 -0
  9. package/dist/{chunk-EOLGSSDR.js → chunk-3V6JQQM5.js} +2 -2
  10. package/dist/chunk-5AAAEZ2Z.js +2 -0
  11. package/dist/chunk-6Q6OFLFQ.js +8 -0
  12. package/dist/chunk-6XA4LDHY.js +2 -0
  13. package/dist/chunk-75X52JTA.js +2 -0
  14. package/dist/{chunk-LEHVP4DY.js → chunk-7HB3CZFD.js} +2 -2
  15. package/dist/chunk-7JZRFDCU.js +2 -0
  16. package/dist/{chunk-SQNHOOJ5.js → chunk-7XL7J7PT.js} +2 -2
  17. package/dist/{chunk-GKB4JJDU.js → chunk-ALHNAPS2.js} +2 -2
  18. package/dist/{chunk-TBCHRDAC.js → chunk-BDRBPG7Y.js} +2 -2
  19. package/dist/chunk-BN5SXXQS.js +40 -0
  20. package/dist/chunk-C4ICAIJ4.js +3 -0
  21. package/dist/{chunk-2GLNBCHB.js → chunk-CMHYBXJB.js} +2 -2
  22. package/dist/{chunk-S2MRVIJ5.js → chunk-DRPAQAFM.js} +6 -6
  23. package/dist/chunk-FERAXG6Y.js +72 -0
  24. package/dist/chunk-FLJJLSGB.js +2 -0
  25. package/dist/chunk-FXG3PHVW.js +9 -0
  26. package/dist/{chunk-JS6B76AQ.js → chunk-GCN2P4EJ.js} +2 -2
  27. package/dist/chunk-GHXRVCIY.js +21 -0
  28. package/dist/chunk-GNG622H3.js +3 -0
  29. package/dist/chunk-H4LUPLEJ.js +2 -0
  30. package/dist/{chunk-XUCZ3RQ5.js → chunk-H56MGERE.js} +4 -4
  31. package/dist/chunk-H7NSJ7L2.js +5 -0
  32. package/dist/chunk-HINMXZ6J.js +2 -0
  33. package/dist/chunk-HXXMPYEF.js +2 -0
  34. package/dist/{chunk-A4UTLKHU.js → chunk-HZKMEXA3.js} +2 -2
  35. package/dist/{chunk-T3AEVJBG.js → chunk-IFSX6YVU.js} +2 -2
  36. package/dist/chunk-ISLWJ4PY.js +10 -0
  37. package/dist/chunk-J5WVNZ6O.js +2 -0
  38. package/dist/chunk-K2HYR5A7.js +3 -0
  39. package/dist/{chunk-UVPY3RUZ.js → chunk-K6UI6EBZ.js} +2 -2
  40. package/dist/{chunk-MNCQPMCH.js → chunk-KJCDEDQW.js} +2 -2
  41. package/dist/{chunk-KZ4MG5NY.js → chunk-KKMOB3OJ.js} +2 -2
  42. package/dist/{chunk-ELC77ZDE.js → chunk-KMVGRIO2.js} +2 -2
  43. package/dist/chunk-LWOOTRHC.js +2 -0
  44. package/dist/{chunk-DQ6433ZG.js → chunk-LZNLRE4X.js} +17 -8
  45. package/dist/{chunk-7C6JBBE4.js → chunk-M2YXL62V.js} +2 -2
  46. package/dist/chunk-MNEJYEHW.js +3 -0
  47. package/dist/chunk-MTDBHTSF.js +2 -0
  48. package/dist/{chunk-VB2EZZPA.js → chunk-N2Z3CU7X.js} +2 -2
  49. package/dist/{chunk-2UVCH7CQ.js → chunk-N7PNFLGY.js} +2 -2
  50. package/dist/chunk-NAH5EAZS.js +6 -0
  51. package/dist/{chunk-XHMVZFA6.js → chunk-NBXK32I6.js} +2 -2
  52. package/dist/chunk-NJJ7AS4F.js +2 -0
  53. package/dist/{chunk-ANUEY5WV.js → chunk-NLMRJ7SI.js} +2 -2
  54. package/dist/chunk-ODVITBYU.js +26 -0
  55. package/dist/chunk-ORBRX2QJ.js +2 -0
  56. package/dist/{chunk-NTSR6SRP.js → chunk-P36UR5II.js} +2 -2
  57. package/dist/chunk-PYZZBIEU.js +3 -0
  58. package/dist/chunk-PZS6J5YG.js +16 -0
  59. package/dist/{chunk-3XSNW5XB.js → chunk-QARYU7R3.js} +2 -2
  60. package/dist/chunk-QJ3FK4TB.js +38 -0
  61. package/dist/{chunk-4ISHQ7UW.js → chunk-QXGTGE2C.js} +4 -4
  62. package/dist/chunk-QZ4JVECJ.js +2 -0
  63. package/dist/{chunk-63CI3IXR.js → chunk-R3JY4EZ4.js} +10 -10
  64. package/dist/{chunk-FX6ULETZ.js → chunk-R5336VHZ.js} +2 -2
  65. package/dist/chunk-RJMXSHKM.js +2 -0
  66. package/dist/chunk-STBXCPKY.js +5 -0
  67. package/dist/chunk-T2FQ4GHD.js +9 -0
  68. package/dist/chunk-TFWDJDGO.js +2 -0
  69. package/dist/chunk-TG7QSYCJ.js +2 -0
  70. package/dist/{chunk-ZUUNREKS.js → chunk-TTS75UF2.js} +5 -5
  71. package/dist/{chunk-DDQONX6B.js → chunk-U7I373V4.js} +2 -2
  72. package/dist/chunk-UIKLA3F5.js +2 -0
  73. package/dist/{chunk-6BN3EHQE.js → chunk-UMPNL7T6.js} +2 -2
  74. package/dist/chunk-URSSPS5H.js +2 -0
  75. package/dist/chunk-VGMUFW3J.js +2 -0
  76. package/dist/chunk-VXTNADIW.js +18 -0
  77. package/dist/{chunk-PWAK75BU.js → chunk-VYF5HA76.js} +2 -2
  78. package/dist/chunk-WFGOH2UI.js +43 -0
  79. package/dist/chunk-WGA5BBTA.js +4 -0
  80. package/dist/chunk-WIBFXSYB.js +6 -0
  81. package/dist/chunk-WPSS37EW.js +2 -0
  82. package/dist/chunk-WQHWIVA7.js +3 -0
  83. package/dist/chunk-WS3Z6W3M.js +65 -0
  84. package/dist/chunk-WXVGNFAO.js +2 -0
  85. package/dist/{chunk-RXINFVBN.js → chunk-WZLPXFZU.js} +2 -2
  86. package/dist/chunk-X4O6K47U.js +2 -0
  87. package/dist/chunk-X6OGDTQH.js +2 -0
  88. package/dist/chunk-XEMQUN3Z.js +20 -0
  89. package/dist/{chunk-OFXN2BCT.js → chunk-XHWLNQVZ.js} +2 -2
  90. package/dist/chunk-XMR747CP.js +2 -0
  91. package/dist/{chunk-JJ5SAWBT.js → chunk-Y6L4LXPG.js} +2 -2
  92. package/dist/chunk-YCPASUCX.js +2 -0
  93. package/dist/chunk-YZXV3CU3.js +60 -0
  94. package/dist/{chunk-XRUGSM76.js → chunk-ZEKBR4OK.js} +2 -2
  95. package/dist/chunk-ZMGBWSFZ.js +2 -0
  96. package/dist/cli.js +446 -280
  97. package/dist/{config-types-dvHOz0zU.d.ts → config-types-BrHl3Bge.d.ts} +57 -0
  98. package/dist/{db-rMZO5JFK.d.ts → db-_Bdx0E1W.d.ts} +1 -1
  99. package/dist/diff-gate-types-CG2YQ_ei.d.ts +4 -0
  100. package/dist/{frontend-behavior-evidence-BxKpKWUu.d.ts → frontend-behavior-evidence-EfM4_9bc.d.ts} +1 -1
  101. package/dist/{health-CtTIGh6H.d.ts → health-BEZ1Rt0S.d.ts} +54 -2
  102. package/dist/index.d.ts +4 -68
  103. package/dist/index.js +1 -1
  104. package/dist/postinstall.js +1 -4
  105. package/dist/queries/affected.d.ts +2 -2
  106. package/dist/queries/affected.js +1 -1
  107. package/dist/queries/bottlenecks.d.ts +2 -2
  108. package/dist/queries/bottlenecks.js +1 -1
  109. package/dist/queries/by-kind.d.ts +2 -2
  110. package/dist/queries/by-kind.js +1 -1
  111. package/dist/queries/call-graph.d.ts +2 -2
  112. package/dist/queries/call-graph.js +1 -1
  113. package/dist/queries/change-surface.d.ts +2 -2
  114. package/dist/queries/change-surface.js +1 -1
  115. package/dist/queries/cleanup-plan.d.ts +2 -2
  116. package/dist/queries/cleanup-plan.js +1 -1
  117. package/dist/queries/co-change.d.ts +12 -2
  118. package/dist/queries/co-change.js +1 -1
  119. package/dist/queries/code.d.ts +2 -2
  120. package/dist/queries/code.js +1 -1
  121. package/dist/queries/complexity-hotspots.d.ts +7 -3
  122. package/dist/queries/complexity-hotspots.js +1 -1
  123. package/dist/queries/complexity.d.ts +42 -4
  124. package/dist/queries/complexity.js +1 -1
  125. package/dist/queries/convergence.d.ts +2 -2
  126. package/dist/queries/convergence.js +1 -1
  127. package/dist/queries/coupling.d.ts +2 -2
  128. package/dist/queries/coupling.js +1 -1
  129. package/dist/queries/cycles.d.ts +12 -3
  130. package/dist/queries/cycles.js +1 -1
  131. package/dist/queries/dataflow.d.ts +2 -2
  132. package/dist/queries/dataflow.js +1 -1
  133. package/dist/queries/dead.d.ts +3 -3
  134. package/dist/queries/dead.js +1 -1
  135. package/dist/queries/deep-chains.d.ts +2 -2
  136. package/dist/queries/deep-chains.js +1 -1
  137. package/dist/queries/deps.d.ts +2 -2
  138. package/dist/queries/deps.js +1 -1
  139. package/dist/queries/diff-gate.d.ts +65 -8
  140. package/dist/queries/diff-gate.js +1 -1
  141. package/dist/queries/diff-impact.d.ts +21 -3
  142. package/dist/queries/diff-impact.js +1 -1
  143. package/dist/queries/doc-drift.d.ts +29 -2
  144. package/dist/queries/doc-drift.js +1 -1
  145. package/dist/queries/drift.d.ts +15 -3
  146. package/dist/queries/drift.js +1 -1
  147. package/dist/queries/duplicate-bodies.d.ts +55 -0
  148. package/dist/queries/duplicate-bodies.js +2 -0
  149. package/dist/queries/extract-candidates.d.ts +2 -2
  150. package/dist/queries/extract-candidates.js +1 -1
  151. package/dist/queries/fan.d.ts +2 -2
  152. package/dist/queries/fan.js +1 -1
  153. package/dist/queries/files.d.ts +4 -3
  154. package/dist/queries/files.js +1 -1
  155. package/dist/queries/health.d.ts +3 -3
  156. package/dist/queries/health.js +1 -1
  157. package/dist/queries/hierarchy.d.ts +2 -2
  158. package/dist/queries/hierarchy.js +1 -1
  159. package/dist/queries/hotspots.d.ts +2 -2
  160. package/dist/queries/hotspots.js +1 -1
  161. package/dist/queries/imports.d.ts +2 -2
  162. package/dist/queries/imports.js +1 -1
  163. package/dist/queries/incomplete-migration.d.ts +3 -2
  164. package/dist/queries/incomplete-migration.js +1 -1
  165. package/dist/queries/index.d.ts +12 -7
  166. package/dist/queries/index.js +1 -1
  167. package/dist/queries/isolated.d.ts +2 -2
  168. package/dist/queries/isolated.js +1 -1
  169. package/dist/queries/locality-candidates.d.ts +2 -2
  170. package/dist/queries/locality-candidates.js +1 -1
  171. package/dist/queries/members.d.ts +2 -2
  172. package/dist/queries/members.js +1 -1
  173. package/dist/queries/methods.d.ts +2 -2
  174. package/dist/queries/methods.js +1 -1
  175. package/dist/queries/outline.d.ts +2 -2
  176. package/dist/queries/outline.js +1 -1
  177. package/dist/queries/passthrough-candidates.d.ts +11 -3
  178. package/dist/queries/passthrough-candidates.js +1 -1
  179. package/dist/queries/plan-context.d.ts +3 -2
  180. package/dist/queries/plan-context.js +1 -1
  181. package/dist/queries/react-component-duplicates.d.ts +7 -2
  182. package/dist/queries/react-component-duplicates.js +1 -1
  183. package/dist/queries/react-hook-candidates.d.ts +3 -3
  184. package/dist/queries/react-hook-candidates.js +1 -1
  185. package/dist/queries/react-large-component-pressure.d.ts +2 -2
  186. package/dist/queries/react-large-component-pressure.js +1 -1
  187. package/dist/queries/recent-duplicates.d.ts +2 -2
  188. package/dist/queries/recent-duplicates.js +1 -1
  189. package/dist/queries/redundant-reexports.d.ts +2 -2
  190. package/dist/queries/redundant-reexports.js +1 -1
  191. package/dist/queries/refs.d.ts +2 -2
  192. package/dist/queries/refs.js +1 -1
  193. package/dist/queries/self-audit.d.ts +4 -2
  194. package/dist/queries/self-audit.js +1 -1
  195. package/dist/queries/similar-chains.d.ts +2 -2
  196. package/dist/queries/similar-chains.js +1 -1
  197. package/dist/queries/similar-files.d.ts +2 -2
  198. package/dist/queries/similar-files.js +1 -1
  199. package/dist/queries/similar-signatures.d.ts +17 -10
  200. package/dist/queries/similar-signatures.js +1 -1
  201. package/dist/queries/similar.d.ts +42 -3
  202. package/dist/queries/similar.js +1 -1
  203. package/dist/queries/slice.d.ts +2 -2
  204. package/dist/queries/slice.js +1 -1
  205. package/dist/queries/stale-abstractions.d.ts +2 -2
  206. package/dist/queries/stale-abstractions.js +1 -1
  207. package/dist/queries/stats.d.ts +2 -2
  208. package/dist/queries/surface.d.ts +2 -2
  209. package/dist/queries/surface.js +1 -1
  210. package/dist/queries/symbols.d.ts +2 -2
  211. package/dist/queries/symbols.js +1 -1
  212. package/dist/queries/system.d.ts +2 -2
  213. package/dist/queries/system.js +1 -1
  214. package/dist/queries/trace.d.ts +2 -2
  215. package/dist/queries/trace.js +1 -1
  216. package/dist/queries/twin-ab.d.ts +55 -0
  217. package/dist/queries/twin-ab.js +2 -0
  218. package/dist/queries/twin-drift.d.ts +97 -0
  219. package/dist/queries/twin-drift.js +2 -0
  220. package/dist/queries/unused-imports.d.ts +2 -2
  221. package/dist/queries/unused-imports.js +1 -1
  222. package/dist/queries/unused-params.d.ts +2 -2
  223. package/dist/queries/unused-params.js +1 -1
  224. package/dist/queries/vue-component-duplicates.d.ts +7 -2
  225. package/dist/queries/vue-component-duplicates.js +1 -1
  226. package/dist/queries/vue-composable-candidates.d.ts +3 -3
  227. package/dist/queries/vue-composable-candidates.js +1 -1
  228. package/dist/queries/vue-large-view-pressure.d.ts +6 -2
  229. package/dist/queries/vue-large-view-pressure.js +1 -1
  230. package/dist/queries/wrapper-candidates.d.ts +2 -2
  231. package/dist/queries/wrapper-candidates.js +1 -1
  232. package/dist/reindex-worker.js +9 -9
  233. package/dist/reindex.d.ts +3 -3
  234. package/dist/reindex.js +19 -19
  235. package/dist/runtime.d.ts +11 -6
  236. package/dist/runtime.js +2 -2
  237. package/dist/{scip-cli-trnNvymv.d.ts → scip-cli-C7cg4ZHR.d.ts} +1 -1
  238. package/dist/symbol-types-DaoeXKUt.d.ts +66 -0
  239. package/docs/AGENT_GUIDE.md +20 -18
  240. package/docs/AI_FAILURE_MODES.md +36 -13
  241. package/docs/API.md +1 -1
  242. package/docs/COMMAND_REFERENCE.md +56 -13
  243. package/docs/DETECTOR_GUIDE.md +20 -3
  244. package/docs/REGEX_POLICY.md +34 -0
  245. package/docs/analyzer-inventory.md +40 -3
  246. package/docs/analyzer-validation-ledger.md +34 -6
  247. package/package.json +21 -7
  248. package/scripts/build-scip-windows.mjs +10 -7
  249. package/skills/_shared/SKILL.md +243 -0
  250. package/skills/_shared/agents/openai.yaml +4 -0
  251. package/skills/scip-api-impact/SKILL.md +55 -71
  252. package/skills/scip-claim-audit/SKILL.md +105 -0
  253. package/skills/scip-claim-audit/agents/openai.yaml +4 -0
  254. package/skills/scip-cleanup-audit/SKILL.md +122 -0
  255. package/skills/scip-cleanup-audit/agents/openai.yaml +4 -0
  256. package/skills/scip-cleanup-improve/SKILL.md +84 -0
  257. package/skills/scip-cleanup-improve/agents/openai.yaml +4 -0
  258. package/skills/scip-concrete-plan/SKILL.md +181 -0
  259. package/skills/scip-concrete-plan/agents/openai.yaml +4 -0
  260. package/skills/scip-conductor/SKILL.md +133 -0
  261. package/skills/scip-conductor/agents/openai.yaml +4 -0
  262. package/skills/scip-debug/SKILL.md +60 -58
  263. package/skills/scip-diagram/SKILL.md +64 -94
  264. package/skills/scip-directory-architecture/SKILL.md +65 -107
  265. package/skills/scip-doc-reconcile/SKILL.md +56 -67
  266. package/skills/scip-explore/SKILL.md +78 -210
  267. package/skills/scip-hyper-optimization/SKILL.md +124 -198
  268. package/skills/scip-integrity-audit/SKILL.md +103 -0
  269. package/skills/scip-integrity-audit/agents/openai.yaml +4 -0
  270. package/skills/scip-language-playbook/SKILL.md +56 -326
  271. package/skills/scip-maintainability/SKILL.md +80 -219
  272. package/skills/scip-probe-reachability/SKILL.md +92 -0
  273. package/skills/scip-probe-reachability/agents/openai.yaml +4 -0
  274. package/skills/scip-query/SKILL.md +108 -124
  275. package/skills/scip-react-maintainability/SKILL.md +64 -82
  276. package/skills/scip-setup/SKILL.md +121 -0
  277. package/skills/scip-setup/agents/openai.yaml +4 -0
  278. package/skills/scip-tla-model-system/SKILL.md +138 -0
  279. package/skills/scip-tla-model-system/agents/openai.yaml +4 -0
  280. package/skills/scip-triage-issue/SKILL.md +53 -41
  281. package/skills/scip-twin-drift/SKILL.md +107 -0
  282. package/skills/scip-twin-drift/agents/openai.yaml +4 -0
  283. package/skills/scip-verify/SKILL.md +70 -88
  284. package/skills/scip-vue-maintainability/SKILL.md +67 -94
  285. package/dist/chunk-2DOW7QCA.js +0 -71
  286. package/dist/chunk-2FMFF4RI.js +0 -2
  287. package/dist/chunk-5GXTUANY.js +0 -2
  288. package/dist/chunk-5JHEN5VN.js +0 -25
  289. package/dist/chunk-62ULXMQ7.js +0 -18
  290. package/dist/chunk-7EK7OSWS.js +0 -2
  291. package/dist/chunk-7IWIMNHI.js +0 -2
  292. package/dist/chunk-7XTO4YXB.js +0 -8
  293. package/dist/chunk-AOWFUGDL.js +0 -2
  294. package/dist/chunk-AREANYIA.js +0 -3
  295. package/dist/chunk-AZBELWZQ.js +0 -7
  296. package/dist/chunk-B32FX5KB.js +0 -2
  297. package/dist/chunk-B6MJ5VQV.js +0 -2
  298. package/dist/chunk-CXWCLVYL.js +0 -2
  299. package/dist/chunk-CYHIKTJN.js +0 -3
  300. package/dist/chunk-DFSEARAU.js +0 -2
  301. package/dist/chunk-DVFP6PZI.js +0 -2
  302. package/dist/chunk-E3ADDB43.js +0 -2
  303. package/dist/chunk-F6IXELII.js +0 -20
  304. package/dist/chunk-FMGVZBS2.js +0 -2
  305. package/dist/chunk-GG5LHT27.js +0 -2
  306. package/dist/chunk-H7JF2CKK.js +0 -2
  307. package/dist/chunk-HHOMJCP5.js +0 -4
  308. package/dist/chunk-HRDSU5FN.js +0 -9
  309. package/dist/chunk-HWVYTJOV.js +0 -2
  310. package/dist/chunk-JNMLBL36.js +0 -2
  311. package/dist/chunk-L446VQYQ.js +0 -2
  312. package/dist/chunk-LDJUB7XW.js +0 -2
  313. package/dist/chunk-MYTUWXHK.js +0 -4
  314. package/dist/chunk-N25HPUOK.js +0 -2
  315. package/dist/chunk-NABVR6B7.js +0 -2
  316. package/dist/chunk-NBNEVLRC.js +0 -3
  317. package/dist/chunk-ONPCQ2PM.js +0 -6
  318. package/dist/chunk-Q5P7NOVM.js +0 -2
  319. package/dist/chunk-RGKRYO22.js +0 -4
  320. package/dist/chunk-RM2WQ75T.js +0 -2
  321. package/dist/chunk-ROGZXWN2.js +0 -2
  322. package/dist/chunk-RSSXKJ6J.js +0 -38
  323. package/dist/chunk-RVGEZYMQ.js +0 -2
  324. package/dist/chunk-SA3DPTHT.js +0 -7
  325. package/dist/chunk-SGTKURU6.js +0 -52
  326. package/dist/chunk-T4N2ZRVY.js +0 -21
  327. package/dist/chunk-THB6AM3V.js +0 -11
  328. package/dist/chunk-ULHLDOD6.js +0 -4
  329. package/dist/chunk-UQ73QF5D.js +0 -43
  330. package/dist/chunk-UUBMFL3F.js +0 -59
  331. package/dist/chunk-V5FGK3DZ.js +0 -2
  332. package/dist/chunk-WTY5FERW.js +0 -2
  333. package/dist/chunk-WUOB4DHH.js +0 -6
  334. package/dist/chunk-YFQIKYOP.js +0 -2
  335. package/dist/chunk-Z2LDWIJV.js +0 -5
  336. package/dist/chunk-ZNWWVYQL.js +0 -3
  337. package/skills/concrete-plan/SKILL.md +0 -372
  338. package/skills/concrete-plan/agents/openai.yaml +0 -4
  339. package/skills/scip-adoption/SKILL.md +0 -122
  340. package/skills/scip-adoption/agents/openai.yaml +0 -4
  341. package/skills/scip-ai-cleanup/SKILL.md +0 -153
  342. package/skills/scip-ai-cleanup/agents/openai.yaml +0 -4
  343. package/skills/scip-debloat/SKILL.md +0 -439
  344. package/skills/scip-debloat/agents/openai.yaml +0 -4
  345. package/skills/scip-health-audit/SKILL.md +0 -162
  346. package/skills/scip-health-audit/agents/openai.yaml +0 -4
  347. package/skills/scip-health-improve/SKILL.md +0 -155
  348. package/skills/scip-health-improve/agents/openai.yaml +0 -4
  349. package/skills/scip-query-setup/SKILL.md +0 -170
  350. package/skills/scip-query-setup/agents/openai.yaml +0 -3
  351. package/vendor/scip/README.md +0 -6
  352. package/vendor/scip/win32-arm64/scip.exe +0 -0
  353. package/vendor/scip/win32-x64/scip.exe +0 -0
@@ -67,6 +67,10 @@ interface ScipQueryConfig {
67
67
  declaredCouplings?: DeclaredCouplingConfig[];
68
68
  /** Optional analyzer configuration. */
69
69
  locality?: LocalityConfig;
70
+ /** Enumeration-rot contracts: a declared key set that must track a ground-truth source. */
71
+ coverageContracts?: CoverageContractConfig[];
72
+ /** Documentation policy (snapshot-doc exemptions, ...). */
73
+ docs?: DocsConfig;
70
74
  }
71
75
  interface ProjectConfig {
72
76
  /** Override which languages to index (default: auto-detect) */
@@ -75,6 +79,8 @@ interface ProjectConfig {
75
79
  indexerConcurrency?: number;
76
80
  /** Watch mode settings */
77
81
  watch?: WatchConfig;
82
+ /** Agent hook behavior. */
83
+ hooks?: HookRuntimeConfig;
78
84
  /** Per-language indexer overrides */
79
85
  indexer?: Partial<Record<SupportedLanguage, IndexerOverrides>>;
80
86
  /** Override the database storage path (default: ~/.cache/scip-query/<hash>/) */
@@ -89,11 +95,58 @@ interface ProjectConfig {
89
95
  declaredCouplings?: DeclaredCouplingConfig[];
90
96
  /** Optional locality analyzer configuration. */
91
97
  locality?: LocalityConfig;
98
+ /** Enumeration-rot contracts: a declared key set that must track a ground-truth source. */
99
+ coverageContracts?: CoverageContractConfig[];
100
+ /** Documentation policy (snapshot-doc exemptions, ...). */
101
+ docs?: DocsConfig;
102
+ }
103
+ type CoverageContractKeySpec = {
104
+ type: 'object-literal-keys';
105
+ identifier: string;
106
+ } | {
107
+ type: 'string-array';
108
+ identifier: string;
109
+ } | {
110
+ type: 'markdown-list';
111
+ marker: string;
112
+ };
113
+ type CoverageContractSourceSpec = {
114
+ type: 'top-level-dirs';
115
+ path: string;
116
+ } | {
117
+ type: 'file-glob';
118
+ pattern: string;
119
+ } | {
120
+ type: 'registered-commands';
121
+ } | {
122
+ type: 'builtin-skills';
123
+ };
124
+ interface CoverageContractConfig {
125
+ /** Human-readable name for the contract, used in finding messages. */
126
+ name: string;
127
+ /** File the declared key set is extracted from. */
128
+ file: string;
129
+ /** How to extract the declared key set from `file`. */
130
+ keys: CoverageContractKeySpec;
131
+ /** The ground-truth source the declared key set must track. */
132
+ mustEqual: CoverageContractSourceSpec;
133
+ /** When false (the default), declared keys with no ground-truth match are also flagged. */
134
+ allowExtra?: boolean;
92
135
  }
93
136
  interface LocalityConfig {
94
137
  /** Folder names that should be treated as architectural ownership boundaries. */
95
138
  architecturalBoundarySegments?: string[];
96
139
  }
140
+ interface DocsConfig {
141
+ /**
142
+ * Glob patterns (see src/analysis/glob-match.ts for supported syntax) for
143
+ * dated snapshot docs that intentionally cite code "as of" a moment in
144
+ * time — excluded from diff-gate's doc-reference check and doc-drift's
145
+ * default findings. A `<!-- scip-query: snapshot -->` marker inside a doc
146
+ * has the same effect regardless of its path.
147
+ */
148
+ snapshotPaths?: string[];
149
+ }
97
150
  interface DeclaredCouplingConfig {
98
151
  /** Human-readable name for the maintenance unit. */
99
152
  name: string;
@@ -145,6 +198,10 @@ interface WatchConfig {
145
198
  /** Extra glob patterns to ignore beyond .gitignore */
146
199
  ignore?: string[];
147
200
  }
201
+ interface HookRuntimeConfig {
202
+ /** Prompt router mode for project-local hooks (default: single). */
203
+ router?: 'off' | 'single';
204
+ }
148
205
  interface IndexerOverrides {
149
206
  /** Enable pnpm workspace support (TypeScript) */
150
207
  pnpmWorkspaces?: boolean;
@@ -1,5 +1,5 @@
1
1
  import Database from 'better-sqlite3';
2
- import { S as ScipQueryConfig } from './config-types-dvHOz0zU.js';
2
+ import { S as ScipQueryConfig } from './config-types-BrHl3Bge.js';
3
3
 
4
4
  /**
5
5
  * Builds a gitignore-based path filter from .gitignore files found
@@ -0,0 +1,4 @@
1
+ type DiffGateActionTier = 'direct' | 'signal' | 'support';
2
+ type DocCitationKind = 'behavioral-claim' | 'configuration-example' | 'guide-reference' | 'intentional-record';
3
+
4
+ export type { DiffGateActionTier as D, DocCitationKind as a };
@@ -1,4 +1,4 @@
1
1
  type FrontendBehaviorEvidenceClass = 'domain-behavior' | 'generic-workflow-scaffolding' | 'mixed' | 'shared-abstraction';
2
2
  type FrontendBehaviorActionTier = 'signal' | 'support';
3
3
 
4
- export type { FrontendBehaviorActionTier as F, FrontendBehaviorEvidenceClass as a };
4
+ export type { FrontendBehaviorEvidenceClass as F, FrontendBehaviorActionTier as a };
@@ -1,4 +1,4 @@
1
- import { S as ScipDatabase } from './db-rMZO5JFK.js';
1
+ import { S as ScipDatabase } from './db-_Bdx0E1W.js';
2
2
  import { stats } from './queries/stats.js';
3
3
 
4
4
  /**
@@ -70,12 +70,39 @@ interface GitEvidenceSummary {
70
70
  changes: number;
71
71
  fixChanges: number;
72
72
  }>;
73
+ commitsScanned: number;
73
74
  }
74
75
  interface SuppressionSummary {
75
76
  total: number;
76
77
  byCategory: Record<string, number>;
77
78
  }
78
79
 
80
+ /**
81
+ * Pure finding-outcome ledger math. Closes the round-1 finding "the
82
+ * validation axis computes per-detector lift and feeds nothing": this
83
+ * module tracks, per finding identity, whether a detector's output is
84
+ * actually being acted on — and reports that, without changing which
85
+ * findings get emitted (downranking stays a human/config decision).
86
+ *
87
+ * Storage lives in src/storage/evidence-cache.ts (finding_outcome_ledger
88
+ * table); this module is the pure transition + stats core the storage
89
+ * layer's rows flow through. Clock is injected everywhere so tests never
90
+ * depend on wall time.
91
+ */
92
+
93
+ interface DetectorPrecisionStats {
94
+ check: string;
95
+ /** Distinct finding identities ever recorded for this check. */
96
+ seen: number;
97
+ resolved: number;
98
+ suppressed: number;
99
+ stillOpen: number;
100
+ resolutionRate: number;
101
+ suppressionRate: number;
102
+ /** Age (days) of the oldest still-open finding; null when none are open. */
103
+ oldestOpenAgeDays: number | null;
104
+ }
105
+
79
106
  type FindingEvidence = 'graph-fact' | 'heuristic' | 'change-graph';
80
107
  interface HealthAction {
81
108
  category: string;
@@ -155,6 +182,10 @@ interface HealthValidation {
155
182
  fixDensity: number;
156
183
  lift: number | null;
157
184
  }>;
185
+ validationBasis: {
186
+ method: 'subject-regex';
187
+ commitsScanned: number;
188
+ };
158
189
  }
159
190
  interface HealthReport {
160
191
  /** Headline = min(riskScore, hygieneScore); kept for compatibility. */
@@ -176,6 +207,10 @@ interface HealthReport {
176
207
  isolatedLoc: number;
177
208
  cycles: number;
178
209
  similarPairs: number;
210
+ duplicateBodyGroups: number;
211
+ duplicateBodyLoc: number;
212
+ twinDriftGroups: number;
213
+ twinDriftLoc: number;
179
214
  reactComponentDuplicatePairs: number;
180
215
  reactHookCandidatePairs: number;
181
216
  reactHookCandidateScoreCount: number;
@@ -193,6 +228,7 @@ interface HealthReport {
193
228
  complexityHotspotCount: number;
194
229
  hiddenCouplingPairs: number | null;
195
230
  hiddenCouplingScoreCount: number | null;
231
+ coverageContractViolations: number;
196
232
  };
197
233
  axes: HealthAxes;
198
234
  validation: HealthValidation | null;
@@ -208,9 +244,16 @@ interface HealthReport {
208
244
  file?: string;
209
245
  }>;
210
246
  warnings?: string[];
247
+ /**
248
+ * Per-check finding-outcome stats from the finding_outcome_ledger
249
+ * (populated by `diff-gate --hook` runs) — resolution/suppression rate
250
+ * and open-finding age. Reports, never affects the score above. Empty
251
+ * until the ledger has data.
252
+ */
253
+ detectorPrecision: DetectorPrecisionStats[];
211
254
  }
212
255
 
213
- declare const HEALTH_PHASES: readonly ["overview", "dead", "isolated", "cycles", "similar", "react-component-duplicates", "react-hook-candidates", "react-large-component-pressure", "vue-component-duplicates", "vue-composable-candidates", "vue-large-view-pressure", "extract-candidates", "wrapper-candidates", "passthrough-candidates", "stale-abstractions", "drift", "complexity-hotspots", "git-evidence", "suppressions"];
256
+ declare const HEALTH_PHASES: readonly ["overview", "dead", "isolated", "cycles", "similar", "duplicate-bodies", "twin-drift", "react-component-duplicates", "react-hook-candidates", "react-large-component-pressure", "vue-component-duplicates", "vue-composable-candidates", "vue-large-view-pressure", "extract-candidates", "wrapper-candidates", "passthrough-candidates", "stale-abstractions", "drift", "complexity-hotspots", "git-evidence", "suppressions", "coverage-contracts"];
214
257
  type HealthPhaseName = (typeof HEALTH_PHASES)[number];
215
258
  type HealthPhaseResult = {
216
259
  phase: 'overview';
@@ -228,6 +271,12 @@ type HealthPhaseResult = {
228
271
  } | {
229
272
  phase: 'similar';
230
273
  similarCount: number;
274
+ } | {
275
+ phase: 'duplicate-bodies';
276
+ duplicateBodies: CountLocSummary;
277
+ } | {
278
+ phase: 'twin-drift';
279
+ twinDrift: CountLocSummary;
231
280
  } | {
232
281
  phase: 'react-component-duplicates';
233
282
  reactComponentDuplicates: CountLocSummary;
@@ -270,6 +319,9 @@ type HealthPhaseResult = {
270
319
  } | {
271
320
  phase: 'suppressions';
272
321
  suppressions: SuppressionSummary;
322
+ } | {
323
+ phase: 'coverage-contracts';
324
+ coverageContracts: CountLocSummary;
273
325
  };
274
326
  /**
275
327
  * Single composite health report that runs all de-bloat analyses
package/dist/index.d.ts CHANGED
@@ -1,73 +1,9 @@
1
- import { S as ScipDatabase } from './db-rMZO5JFK.js';
2
- export { c as createGitignoreFilter } from './db-rMZO5JFK.js';
3
- export { S as ScipQueryConfig } from './config-types-dvHOz0zU.js';
1
+ import { S as ScipDatabase } from './db-_Bdx0E1W.js';
2
+ export { c as createGitignoreFilter } from './db-_Bdx0E1W.js';
3
+ import { S as SymbolMatch, I as IndexedDefinition, a as ScipSymbol, b as ScipLocalSymbol } from './symbol-types-DaoeXKUt.js';
4
+ export { S as ScipQueryConfig } from './config-types-BrHl3Bge.js';
4
5
  import 'better-sqlite3';
5
6
 
6
- /**
7
- * A symbol's location in the SCIP index. The minimum data needed to
8
- * identify a definition: which document it lives in, which lines it
9
- * spans, and the global symbol id. Used as a lightweight handle when
10
- * the caller doesn't need the symbol's textual name or path.
11
- */
12
- interface SymbolLocation {
13
- documentId: number;
14
- startLine: number;
15
- endLine: number;
16
- symbolId: number;
17
- }
18
- /**
19
- * A SymbolLocation plus the human-readable bits: the SCIP symbol string
20
- * and the document's relative path. Returned by lookup helpers like
21
- * `findFirstSymbolMatch` so callers don't have to round-trip through the
22
- * documents table to get a path or symbol name.
23
- */
24
- interface SymbolMatch extends SymbolLocation {
25
- symbol: string;
26
- relativePath: string;
27
- }
28
- /**
29
- * A full definition record: SymbolMatch plus per-symbol metadata
30
- * (leaf name, parent type, kind, documentation, enclosing symbol).
31
- * Used by the catalog APIs (`getDefinitionsForFile`, `getAllDefinitions`,
32
- * `getScopedDefinitions`) so consumers don't have to re-derive any of
33
- * these per-record.
34
- */
35
- interface IndexedDefinition extends SymbolMatch {
36
- leaf: string;
37
- parentTypeName: string | null;
38
- isFunctionLike: boolean;
39
- isTypeLike: boolean;
40
- kind: number | null;
41
- documentation: string | null;
42
- enclosingSymbol: string | null;
43
- }
44
- /** Parsed components of a SCIP symbol string */
45
- interface ScipSymbol {
46
- /** The indexer scheme (e.g. "scip-typescript", "scip-java", "rust-analyzer") */
47
- scheme: string;
48
- /** Package manager (e.g. "npm", "maven", "cargo") */
49
- manager: string;
50
- /** Package name (e.g. "@vega/api", "com.example/mylib") */
51
- packageName: string;
52
- /** Package version */
53
- version: string;
54
- /** Descriptor chain — the path to the symbol within the file */
55
- descriptors: ScipDescriptor[];
56
- /** The raw, unparsed symbol string */
57
- raw: string;
58
- }
59
- interface ScipDescriptor {
60
- name: string;
61
- suffix: DescriptorSuffix;
62
- }
63
- type DescriptorSuffix = 'namespace' | 'type' | 'term' | 'method' | 'type-param' | 'parameter' | 'meta' | 'macro';
64
- /** A local symbol (file-scoped, no cross-file identity) */
65
- interface ScipLocalSymbol {
66
- kind: 'local';
67
- id: string;
68
- raw: string;
69
- }
70
-
71
7
  /**
72
8
  * File classifier — one place to decide what role a source file plays.
73
9
  *
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import{a as l}from"./chunk-UUBMFL3F.js";import{a as n}from"./chunk-RM2WQ75T.js";import"./chunk-WUOB4DHH.js";import"./chunk-BGBBVSH4.js";import"./chunk-L446VQYQ.js";import"./chunk-RSSXKJ6J.js";import"./chunk-UQ73QF5D.js";import"./chunk-CYHIKTJN.js";import"./chunk-NBNEVLRC.js";import"./chunk-F6IXELII.js";import"./chunk-ULHLDOD6.js";import"./chunk-DVFP6PZI.js";import"./chunk-63CI3IXR.js";import{b as o,d as s,e as i}from"./chunk-NABVR6B7.js";import"./chunk-THB6AM3V.js";import"./chunk-SA3DPTHT.js";import"./chunk-SGTKURU6.js";import"./chunk-AREANYIA.js";import"./chunk-64MNV6AB.js";import"./chunk-7S5E7KWT.js";import c from"better-sqlite3";var d=["node_modules",".git","dist","build","out","coverage","target",".next",".nuxt",".cache",".turbo",".nbb",".cpcache",".shadow-cljs",".scipquery-cache","__pycache__",".venv","venv"],r=class{db;config;pathFilter;statementCache=new Map;constructor(t,e){this.config=t,this.pathFilter=e??null,this.db=new c(t.dbPath,{readonly:!0}),this.db.pragma("busy_timeout = 5000"),this.db.pragma("query_only = ON"),this.db.pragma("temp_store = MEMORY"),this.db.pragma("cache_size = -64000"),this.db.pragma("mmap_size = 268435456")}isIgnored(t){return this.pathFilter?.isIgnored(t)??!1}get localSymbolPredicate(){return`(
1
+ import{a as l}from"./chunk-YZXV3CU3.js";import{a as n}from"./chunk-X4O6K47U.js";import"./chunk-NAH5EAZS.js";import"./chunk-BGBBVSH4.js";import"./chunk-QJ3FK4TB.js";import"./chunk-WFGOH2UI.js";import"./chunk-C4ICAIJ4.js";import"./chunk-WQHWIVA7.js";import"./chunk-XEMQUN3Z.js";import"./chunk-MTDBHTSF.js";import"./chunk-R3JY4EZ4.js";import{b as o,d as s,e as i}from"./chunk-HXXMPYEF.js";import"./chunk-T2FQ4GHD.js";import"./chunk-ISLWJ4PY.js";import"./chunk-WS3Z6W3M.js";import"./chunk-GNG622H3.js";import"./chunk-64MNV6AB.js";import"./chunk-7S5E7KWT.js";import c from"better-sqlite3";var d=["node_modules",".git","dist","build","out","coverage","target",".next",".nuxt",".cache",".turbo",".nbb",".cpcache",".shadow-cljs",".scipquery-cache","__pycache__",".venv","venv"],r=class{db;config;pathFilter;statementCache=new Map;constructor(t,e){this.config=t,this.pathFilter=e??null,this.db=new c(t.dbPath,{readonly:!0}),this.db.pragma("busy_timeout = 5000"),this.db.pragma("query_only = ON"),this.db.pragma("temp_store = MEMORY"),this.db.pragma("cache_size = -64000"),this.db.pragma("mmap_size = 268435456")}isIgnored(t){return this.pathFilter?.isIgnored(t)??!1}get localSymbolPredicate(){return`(
2
2
  EXISTS (
3
3
  SELECT 1
4
4
  FROM defn_enclosing_ranges local_der
@@ -1,6 +1,3 @@
1
1
  #!/usr/bin/env node
2
- import{c as g,d as k,e as m,f}from"./chunk-ONPCQ2PM.js";import{existsSync as p,mkdirSync as L,symlinkSync as v,readlinkSync as b,unlinkSync as q}from"fs";import{join as e,dirname as y,resolve as d}from"path";import{homedir as u,platform as A}from"os";import{fileURLToPath as C}from"url";var H=A()==="win32",U=["scip-query","scip-query-setup","scip-adoption","scip-health-audit","scip-health-improve","scip-hyper-optimization","scip-api-impact","concrete-plan","scip-ai-cleanup","scip-debug","scip-explore","scip-triage-issue","scip-diagram","scip-debloat","scip-doc-reconcile","scip-directory-architecture","scip-maintainability","scip-react-maintainability","scip-vue-maintainability","scip-verify","scip-language-playbook"];function N(i={}){let l=i.quiet?()=>{}:console.log,o=C(import.meta.url),h=d(y(o),"..","skills"),I=[e(u(),".claude","skills"),e(u(),".codex","skills"),e(u(),".agents","skills")],n={installed:[],skipped:[],alreadyLinked:[]};for(let r of I){let $=y(r);if(!p($))continue;L(r,{recursive:!0});let t=R(r);for(let s of U){let a=e(h,s),c=e(r,s);if(!p(a)){n.skipped.push(`${t}/${s}`);continue}if(p(c)){try{let x=b(c);if(d(x)===d(a)){n.alreadyLinked.push(`${t}/${s}`),l(` ok: ${s} \u2192 ${t} (already linked)`);continue}}catch{n.skipped.push(`${t}/${s}`),l(` skip: ${s} \u2192 ${t} (exists, not a symlink)`);continue}q(c)}v(a,c,H?"junction":"dir"),n.installed.push(`${t}/${s}`),l(` done: ${s} \u2192 ${t}`)}}return n}function R(i){return i.includes(".codex")?"Codex":i.includes(".agents")?"Agents":"Claude"}function S(){console.log("scip-query: installing skills...");let i=N({quiet:!1});if(i.installed.length+i.alreadyLinked.length>0&&console.log(`
3
- ${i.installed.length} skill(s) installed, ${i.alreadyLinked.length} already linked.`),!g())console.log(`
4
- scip CLI not found on PATH. Attempting auto-install...`),f(console.log)||m();else{let o=k();console.log(`
5
- scip CLI: ${o??"installed"}`)}console.log("")}S();
2
+ import"./chunk-TFWDJDGO.js";import{existsSync as e,mkdirSync as n,symlinkSync as o,readlinkSync as r,unlinkSync as l,readdirSync as c}from"fs";import{join as p,dirname as u,resolve as d,relative as k,isAbsolute as g}from"path";import{homedir as f,platform as s}from"os";import{fileURLToPath as h}from"url";var S=s()==="win32";function i(){console.log("scip-query installed -- run 'scip-query setup' in a repo to enable skills, hooks, and the index.")}i();
6
3
  //# sourceMappingURL=postinstall.js.map
@@ -1,6 +1,6 @@
1
- import { S as ScipDatabase } from '../db-rMZO5JFK.js';
1
+ import { S as ScipDatabase } from '../db-_Bdx0E1W.js';
2
2
  import 'better-sqlite3';
3
- import '../config-types-dvHOz0zU.js';
3
+ import '../config-types-BrHl3Bge.js';
4
4
 
5
5
  interface AffectedResult {
6
6
  symbol: string;
@@ -1,2 +1,2 @@
1
- import{a}from"../chunk-XRUGSM76.js";import"../chunk-L446VQYQ.js";import"../chunk-RSSXKJ6J.js";import"../chunk-UQ73QF5D.js";import"../chunk-CYHIKTJN.js";import"../chunk-NBNEVLRC.js";import"../chunk-F6IXELII.js";import"../chunk-ULHLDOD6.js";import"../chunk-DVFP6PZI.js";import"../chunk-63CI3IXR.js";import"../chunk-NABVR6B7.js";import"../chunk-THB6AM3V.js";import"../chunk-SA3DPTHT.js";import"../chunk-SGTKURU6.js";import"../chunk-AREANYIA.js";import"../chunk-64MNV6AB.js";import"../chunk-7S5E7KWT.js";export{a as affected};
1
+ import{a}from"../chunk-ZEKBR4OK.js";import"../chunk-QJ3FK4TB.js";import"../chunk-WFGOH2UI.js";import"../chunk-C4ICAIJ4.js";import"../chunk-WQHWIVA7.js";import"../chunk-XEMQUN3Z.js";import"../chunk-MTDBHTSF.js";import"../chunk-R3JY4EZ4.js";import"../chunk-HXXMPYEF.js";import"../chunk-T2FQ4GHD.js";import"../chunk-ISLWJ4PY.js";import"../chunk-WS3Z6W3M.js";import"../chunk-GNG622H3.js";import"../chunk-64MNV6AB.js";import"../chunk-7S5E7KWT.js";export{a as affected};
2
2
  //# sourceMappingURL=affected.js.map
@@ -1,6 +1,6 @@
1
- import { S as ScipDatabase } from '../db-rMZO5JFK.js';
1
+ import { S as ScipDatabase } from '../db-_Bdx0E1W.js';
2
2
  import 'better-sqlite3';
3
- import '../config-types-dvHOz0zU.js';
3
+ import '../config-types-BrHl3Bge.js';
4
4
 
5
5
  interface BottleneckResult {
6
6
  symbol: string;
@@ -1,2 +1,2 @@
1
- import{a}from"../chunk-DFSEARAU.js";import"../chunk-B75HZHUP.js";import"../chunk-RM2WQ75T.js";import"../chunk-WUOB4DHH.js";import"../chunk-BGBBVSH4.js";import"../chunk-L446VQYQ.js";import"../chunk-RSSXKJ6J.js";import"../chunk-UQ73QF5D.js";import"../chunk-CYHIKTJN.js";import"../chunk-NBNEVLRC.js";import"../chunk-F6IXELII.js";import"../chunk-ULHLDOD6.js";import"../chunk-DVFP6PZI.js";import"../chunk-63CI3IXR.js";import"../chunk-NABVR6B7.js";import"../chunk-THB6AM3V.js";import"../chunk-SA3DPTHT.js";import"../chunk-SGTKURU6.js";import"../chunk-AREANYIA.js";import"../chunk-64MNV6AB.js";import"../chunk-7S5E7KWT.js";export{a as bottlenecks};
1
+ import{a}from"../chunk-X6OGDTQH.js";import"../chunk-B75HZHUP.js";import"../chunk-X4O6K47U.js";import"../chunk-NAH5EAZS.js";import"../chunk-BGBBVSH4.js";import"../chunk-QJ3FK4TB.js";import"../chunk-WFGOH2UI.js";import"../chunk-C4ICAIJ4.js";import"../chunk-WQHWIVA7.js";import"../chunk-XEMQUN3Z.js";import"../chunk-MTDBHTSF.js";import"../chunk-R3JY4EZ4.js";import"../chunk-HXXMPYEF.js";import"../chunk-T2FQ4GHD.js";import"../chunk-ISLWJ4PY.js";import"../chunk-WS3Z6W3M.js";import"../chunk-GNG622H3.js";import"../chunk-64MNV6AB.js";import"../chunk-7S5E7KWT.js";export{a as bottlenecks};
2
2
  //# sourceMappingURL=bottlenecks.js.map
@@ -1,6 +1,6 @@
1
- import { S as ScipDatabase } from '../db-rMZO5JFK.js';
1
+ import { S as ScipDatabase } from '../db-_Bdx0E1W.js';
2
2
  import 'better-sqlite3';
3
- import '../config-types-dvHOz0zU.js';
3
+ import '../config-types-BrHl3Bge.js';
4
4
 
5
5
  interface ByKindResult {
6
6
  symbol: string;
@@ -1,2 +1,2 @@
1
- import{a,b}from"../chunk-7C6JBBE4.js";import"../chunk-DVFP6PZI.js";import"../chunk-63CI3IXR.js";import"../chunk-NABVR6B7.js";import"../chunk-THB6AM3V.js";import"../chunk-SA3DPTHT.js";import"../chunk-SGTKURU6.js";import"../chunk-AREANYIA.js";import"../chunk-64MNV6AB.js";import"../chunk-7S5E7KWT.js";export{a as byKind,b as kindCounts};
1
+ import{a,b}from"../chunk-M2YXL62V.js";import"../chunk-MTDBHTSF.js";import"../chunk-R3JY4EZ4.js";import"../chunk-HXXMPYEF.js";import"../chunk-T2FQ4GHD.js";import"../chunk-ISLWJ4PY.js";import"../chunk-WS3Z6W3M.js";import"../chunk-GNG622H3.js";import"../chunk-64MNV6AB.js";import"../chunk-7S5E7KWT.js";export{a as byKind,b as kindCounts};
2
2
  //# sourceMappingURL=by-kind.js.map
@@ -1,6 +1,6 @@
1
- import { S as ScipDatabase } from '../db-rMZO5JFK.js';
1
+ import { S as ScipDatabase } from '../db-_Bdx0E1W.js';
2
2
  import 'better-sqlite3';
3
- import '../config-types-dvHOz0zU.js';
3
+ import '../config-types-BrHl3Bge.js';
4
4
 
5
5
  interface CallGraphResult {
6
6
  symbol: string;
@@ -1,2 +1,2 @@
1
- import{a}from"../chunk-WTY5FERW.js";import"../chunk-B75HZHUP.js";import"../chunk-BGBBVSH4.js";import"../chunk-L446VQYQ.js";import"../chunk-RSSXKJ6J.js";import"../chunk-UQ73QF5D.js";import"../chunk-CYHIKTJN.js";import"../chunk-NBNEVLRC.js";import"../chunk-F6IXELII.js";import"../chunk-ULHLDOD6.js";import"../chunk-DVFP6PZI.js";import"../chunk-63CI3IXR.js";import"../chunk-NABVR6B7.js";import"../chunk-THB6AM3V.js";import"../chunk-SA3DPTHT.js";import"../chunk-SGTKURU6.js";import"../chunk-AREANYIA.js";import"../chunk-64MNV6AB.js";import"../chunk-7S5E7KWT.js";export{a as callGraph};
1
+ import{a}from"../chunk-3T2FNHIU.js";import"../chunk-B75HZHUP.js";import"../chunk-BGBBVSH4.js";import"../chunk-QJ3FK4TB.js";import"../chunk-WFGOH2UI.js";import"../chunk-C4ICAIJ4.js";import"../chunk-WQHWIVA7.js";import"../chunk-XEMQUN3Z.js";import"../chunk-MTDBHTSF.js";import"../chunk-R3JY4EZ4.js";import"../chunk-HXXMPYEF.js";import"../chunk-T2FQ4GHD.js";import"../chunk-ISLWJ4PY.js";import"../chunk-WS3Z6W3M.js";import"../chunk-GNG622H3.js";import"../chunk-64MNV6AB.js";import"../chunk-7S5E7KWT.js";export{a as callGraph};
2
2
  //# sourceMappingURL=call-graph.js.map
@@ -1,6 +1,6 @@
1
- import { S as ScipDatabase } from '../db-rMZO5JFK.js';
1
+ import { S as ScipDatabase } from '../db-_Bdx0E1W.js';
2
2
  import 'better-sqlite3';
3
- import '../config-types-dvHOz0zU.js';
3
+ import '../config-types-BrHl3Bge.js';
4
4
 
5
5
  interface ChangeSurfaceEntry {
6
6
  symbol: string;
@@ -1,2 +1,2 @@
1
- import{a}from"../chunk-KZ4MG5NY.js";import"../chunk-OFXN2BCT.js";import"../chunk-RM2WQ75T.js";import"../chunk-WUOB4DHH.js";import"../chunk-BGBBVSH4.js";import"../chunk-L446VQYQ.js";import"../chunk-RSSXKJ6J.js";import"../chunk-UQ73QF5D.js";import"../chunk-CYHIKTJN.js";import"../chunk-NBNEVLRC.js";import"../chunk-F6IXELII.js";import"../chunk-ULHLDOD6.js";import"../chunk-DVFP6PZI.js";import"../chunk-63CI3IXR.js";import"../chunk-NABVR6B7.js";import"../chunk-THB6AM3V.js";import"../chunk-SA3DPTHT.js";import"../chunk-SGTKURU6.js";import"../chunk-AREANYIA.js";import"../chunk-64MNV6AB.js";import"../chunk-7S5E7KWT.js";export{a as changeSurface};
1
+ import{a}from"../chunk-KKMOB3OJ.js";import"../chunk-XHWLNQVZ.js";import"../chunk-X4O6K47U.js";import"../chunk-NAH5EAZS.js";import"../chunk-BGBBVSH4.js";import"../chunk-QJ3FK4TB.js";import"../chunk-WFGOH2UI.js";import"../chunk-C4ICAIJ4.js";import"../chunk-WQHWIVA7.js";import"../chunk-XEMQUN3Z.js";import"../chunk-MTDBHTSF.js";import"../chunk-R3JY4EZ4.js";import"../chunk-HXXMPYEF.js";import"../chunk-T2FQ4GHD.js";import"../chunk-ISLWJ4PY.js";import"../chunk-WS3Z6W3M.js";import"../chunk-GNG622H3.js";import"../chunk-64MNV6AB.js";import"../chunk-7S5E7KWT.js";export{a as changeSurface};
2
2
  //# sourceMappingURL=change-surface.js.map
@@ -1,6 +1,6 @@
1
- import { S as ScipDatabase } from '../db-rMZO5JFK.js';
1
+ import { S as ScipDatabase } from '../db-_Bdx0E1W.js';
2
2
  import 'better-sqlite3';
3
- import '../config-types-dvHOz0zU.js';
3
+ import '../config-types-BrHl3Bge.js';
4
4
 
5
5
  interface CleanupPlanEntry {
6
6
  symbol: string;
@@ -1,2 +1,2 @@
1
- import{a,b}from"../chunk-TBCHRDAC.js";import"../chunk-ROGZXWN2.js";import"../chunk-B75HZHUP.js";import"../chunk-RM2WQ75T.js";import"../chunk-WUOB4DHH.js";import"../chunk-BGBBVSH4.js";import"../chunk-L446VQYQ.js";import"../chunk-RSSXKJ6J.js";import"../chunk-UQ73QF5D.js";import"../chunk-CYHIKTJN.js";import"../chunk-NBNEVLRC.js";import"../chunk-F6IXELII.js";import"../chunk-ULHLDOD6.js";import"../chunk-DVFP6PZI.js";import"../chunk-63CI3IXR.js";import"../chunk-NABVR6B7.js";import"../chunk-THB6AM3V.js";import"../chunk-SA3DPTHT.js";import"../chunk-SGTKURU6.js";import"../chunk-AREANYIA.js";import"../chunk-64MNV6AB.js";import"../chunk-7S5E7KWT.js";export{b as RemovedRangeIndex,a as cleanupPlan};
1
+ import{a,b}from"../chunk-BDRBPG7Y.js";import"../chunk-343O6EVV.js";import"../chunk-B75HZHUP.js";import"../chunk-X4O6K47U.js";import"../chunk-NAH5EAZS.js";import"../chunk-BGBBVSH4.js";import"../chunk-QJ3FK4TB.js";import"../chunk-WFGOH2UI.js";import"../chunk-C4ICAIJ4.js";import"../chunk-WQHWIVA7.js";import"../chunk-XEMQUN3Z.js";import"../chunk-MTDBHTSF.js";import"../chunk-R3JY4EZ4.js";import"../chunk-HXXMPYEF.js";import"../chunk-T2FQ4GHD.js";import"../chunk-ISLWJ4PY.js";import"../chunk-WS3Z6W3M.js";import"../chunk-GNG622H3.js";import"../chunk-64MNV6AB.js";import"../chunk-7S5E7KWT.js";export{b as RemovedRangeIndex,a as cleanupPlan};
2
2
  //# sourceMappingURL=cleanup-plan.js.map
@@ -1,7 +1,7 @@
1
- import { S as ScipDatabase } from '../db-rMZO5JFK.js';
1
+ import { S as ScipDatabase } from '../db-_Bdx0E1W.js';
2
2
  import { C as CoChangeCommitScope, a as CoChangeRecency, b as CoChangeSubjectContext } from '../git-history-Dao3_Pu9.js';
3
3
  import 'better-sqlite3';
4
- import '../config-types-dvHOz0zU.js';
4
+ import '../config-types-BrHl3Bge.js';
5
5
 
6
6
  type CoChangePartnerClass = 'doc-code' | 'config-code' | 'schema-script' | 'model-view' | 'test-code' | 'same-feature' | 'unknown';
7
7
  interface CoChangePartnerClassification {
@@ -69,6 +69,16 @@ declare function coChange(db: ScipDatabase, file?: string, opts?: {
69
69
  limit?: number;
70
70
  includeLinked?: boolean;
71
71
  maxFilesPerCommit?: number;
72
+ /**
73
+ * Caps how many of the (already together-count-sorted) candidate pairs
74
+ * get classified — the per-pair loop below does filesystem/graph lookups
75
+ * so its cost scales with candidate count on a large repo history. Set
76
+ * by the CLI's analysis-budget disclosure on large indexes; honoring it
77
+ * for real (rather than only disclosing it) keeps the disclosed budget
78
+ * truthful. Highest-`together` pairs are kept first since `coChangePairs`
79
+ * returns them pre-sorted by priority.
80
+ */
81
+ scanLimit?: number;
72
82
  }): CoChangeResult;
73
83
  declare function classifyCoChangePartner(fileA: string, fileB: string): CoChangePartnerClassification;
74
84
  declare function declaredCouplingSuggestionForPair(pair: CoChangePairEvidence, classification: CoChangePartnerClassification, structurallyLinked: boolean): DeclaredCouplingSuggestion | undefined;
@@ -1,2 +1,2 @@
1
- import{a,b,c,d,e}from"../chunk-GG5LHT27.js";import"../chunk-HRDSU5FN.js";import"../chunk-WUOB4DHH.js";import"../chunk-F6IXELII.js";import"../chunk-ULHLDOD6.js";import"../chunk-NABVR6B7.js";import"../chunk-THB6AM3V.js";import"../chunk-SA3DPTHT.js";import"../chunk-SGTKURU6.js";import"../chunk-AREANYIA.js";import"../chunk-64MNV6AB.js";import"../chunk-7S5E7KWT.js";export{c as classifyCoChangePartner,b as coChange,e as coChangeStructuralLinkChecker,d as declaredCouplingSuggestionForPair,a as isCoChangeNoiseFile};
1
+ import{a,b,c,d,e}from"../chunk-NJJ7AS4F.js";import"../chunk-FXG3PHVW.js";import"../chunk-NAH5EAZS.js";import"../chunk-XEMQUN3Z.js";import"../chunk-HXXMPYEF.js";import"../chunk-T2FQ4GHD.js";import"../chunk-ISLWJ4PY.js";import"../chunk-WS3Z6W3M.js";import"../chunk-GNG622H3.js";import"../chunk-64MNV6AB.js";import"../chunk-7S5E7KWT.js";export{c as classifyCoChangePartner,b as coChange,e as coChangeStructuralLinkChecker,d as declaredCouplingSuggestionForPair,a as isCoChangeNoiseFile};
2
2
  //# sourceMappingURL=co-change.js.map
@@ -1,6 +1,6 @@
1
- import { S as ScipDatabase } from '../db-rMZO5JFK.js';
1
+ import { S as ScipDatabase } from '../db-_Bdx0E1W.js';
2
2
  import 'better-sqlite3';
3
- import '../config-types-dvHOz0zU.js';
3
+ import '../config-types-BrHl3Bge.js';
4
4
 
5
5
  interface CodeResult {
6
6
  symbol: string;
@@ -1,2 +1,2 @@
1
- import{a}from"../chunk-S2MRVIJ5.js";import"../chunk-OFXN2BCT.js";import"../chunk-NBNEVLRC.js";import"../chunk-63CI3IXR.js";import"../chunk-NABVR6B7.js";import"../chunk-THB6AM3V.js";import"../chunk-SA3DPTHT.js";import"../chunk-SGTKURU6.js";import"../chunk-AREANYIA.js";import"../chunk-64MNV6AB.js";import"../chunk-7S5E7KWT.js";export{a as code};
1
+ import{a}from"../chunk-DRPAQAFM.js";import"../chunk-XHWLNQVZ.js";import"../chunk-WQHWIVA7.js";import"../chunk-R3JY4EZ4.js";import"../chunk-HXXMPYEF.js";import"../chunk-T2FQ4GHD.js";import"../chunk-ISLWJ4PY.js";import"../chunk-WS3Z6W3M.js";import"../chunk-GNG622H3.js";import"../chunk-64MNV6AB.js";import"../chunk-7S5E7KWT.js";export{a as code};
2
2
  //# sourceMappingURL=code.js.map
@@ -1,6 +1,8 @@
1
- import { S as ScipDatabase } from '../db-rMZO5JFK.js';
1
+ import { S as ScipDatabase } from '../db-_Bdx0E1W.js';
2
+ import { BranchEstimateBasis } from './complexity.js';
2
3
  import 'better-sqlite3';
3
- import '../config-types-dvHOz0zU.js';
4
+ import '../config-types-BrHl3Bge.js';
5
+ import '../symbol-types-DaoeXKUt.js';
4
6
 
5
7
  interface ComplexityHotspot {
6
8
  symbol: string;
@@ -12,13 +14,15 @@ interface ComplexityHotspot {
12
14
  fanIn: number;
13
15
  fanOut: number;
14
16
  calleeCount: number;
17
+ branches: number;
18
+ estimateBasis: BranchEstimateBasis;
15
19
  score: number;
16
20
  }
17
21
  /**
18
22
  * Find complexity hotspots: symbols with a composite score based on
19
23
  * LOC, fan-in, fan-out, and callee count.
20
24
  *
21
- * Score = (loc / 50) * (fanIn / 5) * max(fanOut / 5, 1)
25
+ * Score = (loc / 50) * (fanIn / 5) * max(fanOut / 5, 1) * max(cyclomatic / 5, 1)
22
26
  *
23
27
  * Bulk fan-in/out via caller evidence + buildCalleeMap so we pay
24
28
  * one SQL pass per kind regardless of how many definitions we score —
@@ -1,2 +1,2 @@
1
- import{a}from"../chunk-HHOMJCP5.js";import"../chunk-UVPY3RUZ.js";import"../chunk-B75HZHUP.js";import"../chunk-RM2WQ75T.js";import"../chunk-WUOB4DHH.js";import"../chunk-BGBBVSH4.js";import"../chunk-L446VQYQ.js";import"../chunk-RSSXKJ6J.js";import"../chunk-UQ73QF5D.js";import"../chunk-CYHIKTJN.js";import"../chunk-NBNEVLRC.js";import"../chunk-F6IXELII.js";import"../chunk-ULHLDOD6.js";import"../chunk-DVFP6PZI.js";import"../chunk-63CI3IXR.js";import"../chunk-NABVR6B7.js";import"../chunk-THB6AM3V.js";import"../chunk-SA3DPTHT.js";import"../chunk-SGTKURU6.js";import"../chunk-AREANYIA.js";import"../chunk-64MNV6AB.js";import"../chunk-7S5E7KWT.js";export{a as complexityHotspots};
1
+ import{a}from"../chunk-WGA5BBTA.js";import"../chunk-K6UI6EBZ.js";import"../chunk-PZS6J5YG.js";import"../chunk-B75HZHUP.js";import"../chunk-X4O6K47U.js";import"../chunk-NAH5EAZS.js";import"../chunk-BGBBVSH4.js";import"../chunk-QJ3FK4TB.js";import"../chunk-WFGOH2UI.js";import"../chunk-C4ICAIJ4.js";import"../chunk-WQHWIVA7.js";import"../chunk-XEMQUN3Z.js";import"../chunk-MTDBHTSF.js";import"../chunk-R3JY4EZ4.js";import"../chunk-HXXMPYEF.js";import"../chunk-T2FQ4GHD.js";import"../chunk-ISLWJ4PY.js";import"../chunk-WS3Z6W3M.js";import"../chunk-GNG622H3.js";import"../chunk-64MNV6AB.js";import"../chunk-7S5E7KWT.js";export{a as complexityHotspots};
2
2
  //# sourceMappingURL=complexity-hotspots.js.map
@@ -1,6 +1,31 @@
1
- import { S as ScipDatabase } from '../db-rMZO5JFK.js';
1
+ import { S as ScipDatabase } from '../db-_Bdx0E1W.js';
2
+ import { S as SymbolMatch } from '../symbol-types-DaoeXKUt.js';
2
3
  import 'better-sqlite3';
3
- import '../config-types-dvHOz0zU.js';
4
+ import '../config-types-BrHl3Bge.js';
5
+
6
+ interface SyntaxNode {
7
+ type: string;
8
+ text: string;
9
+ startPosition: {
10
+ row: number;
11
+ column: number;
12
+ };
13
+ endPosition: {
14
+ row: number;
15
+ column: number;
16
+ };
17
+ startIndex: number;
18
+ endIndex: number;
19
+ childCount: number;
20
+ namedChildCount: number;
21
+ children: SyntaxNode[];
22
+ namedChildren: SyntaxNode[];
23
+ parent: SyntaxNode | null;
24
+ child(index: number): SyntaxNode | null;
25
+ namedChild(index: number): SyntaxNode | null;
26
+ childForFieldName(name: string): SyntaxNode | null;
27
+ descendantsOfType(type: string | string[]): SyntaxNode[];
28
+ }
4
29
 
5
30
  interface ComplexityResult {
6
31
  symbol: string;
@@ -9,8 +34,9 @@ interface ComplexityResult {
9
34
  startLine: number;
10
35
  endLine: number;
11
36
  loc: number;
12
- /** Branch count from source-level regex (if, else, for, while, switch, catch, ternary, &&, ||) */
37
+ /** Branch count from AST when available, otherwise source-level regex fallback. */
13
38
  branches: number;
39
+ estimateBasis: BranchEstimateBasis;
14
40
  /** Cyclomatic complexity estimate: branches + 1 */
15
41
  cyclomaticEstimate: number;
16
42
  /** Number of distinct callees within the definition */
@@ -18,6 +44,11 @@ interface ComplexityResult {
18
44
  fanIn: number;
19
45
  fanOut: number;
20
46
  }
47
+ type BranchEstimateBasis = 'ast' | 'regex-fallback';
48
+ interface BranchEstimate {
49
+ branches: number;
50
+ estimateBasis: BranchEstimateBasis;
51
+ }
21
52
  /**
22
53
  * Per-symbol complexity analysis combining source-level branch counting
23
54
  * with index-level metrics (fan-in, fan-out, callee count).
@@ -28,5 +59,12 @@ interface ComplexityResult {
28
59
  declare function complexity(db: ScipDatabase, symbolPattern: string, opts?: {
29
60
  semantic?: boolean;
30
61
  }): ComplexityResult | null;
62
+ declare function branchEstimateForDefinition(db: ScipDatabase, definition: SymbolMatch): BranchEstimate;
63
+ /**
64
+ * Count branch points in a parsed AST. The count follows the same practical
65
+ * McCabe approximation as the command output: decision nodes plus boolean
66
+ * decision operators.
67
+ */
68
+ declare function countBranchesFromAst(node: SyntaxNode): number;
31
69
 
32
- export { type ComplexityResult, complexity };
70
+ export { type BranchEstimateBasis, type ComplexityResult, branchEstimateForDefinition, complexity, countBranchesFromAst };
@@ -1,2 +1,2 @@
1
- import{a}from"../chunk-AZBELWZQ.js";import"../chunk-RM2WQ75T.js";import"../chunk-WUOB4DHH.js";import"../chunk-BGBBVSH4.js";import"../chunk-L446VQYQ.js";import"../chunk-RSSXKJ6J.js";import"../chunk-UQ73QF5D.js";import"../chunk-CYHIKTJN.js";import"../chunk-NBNEVLRC.js";import"../chunk-F6IXELII.js";import"../chunk-ULHLDOD6.js";import"../chunk-DVFP6PZI.js";import"../chunk-63CI3IXR.js";import"../chunk-NABVR6B7.js";import"../chunk-THB6AM3V.js";import"../chunk-SA3DPTHT.js";import"../chunk-SGTKURU6.js";import"../chunk-AREANYIA.js";import"../chunk-64MNV6AB.js";import"../chunk-7S5E7KWT.js";export{a as complexity};
1
+ import{a,b,c}from"../chunk-PZS6J5YG.js";import"../chunk-X4O6K47U.js";import"../chunk-NAH5EAZS.js";import"../chunk-BGBBVSH4.js";import"../chunk-QJ3FK4TB.js";import"../chunk-WFGOH2UI.js";import"../chunk-C4ICAIJ4.js";import"../chunk-WQHWIVA7.js";import"../chunk-XEMQUN3Z.js";import"../chunk-MTDBHTSF.js";import"../chunk-R3JY4EZ4.js";import"../chunk-HXXMPYEF.js";import"../chunk-T2FQ4GHD.js";import"../chunk-ISLWJ4PY.js";import"../chunk-WS3Z6W3M.js";import"../chunk-GNG622H3.js";import"../chunk-64MNV6AB.js";import"../chunk-7S5E7KWT.js";export{b as branchEstimateForDefinition,a as complexity,c as countBranchesFromAst};
2
2
  //# sourceMappingURL=complexity.js.map
@@ -1,6 +1,6 @@
1
- import { S as ScipDatabase } from '../db-rMZO5JFK.js';
1
+ import { S as ScipDatabase } from '../db-_Bdx0E1W.js';
2
2
  import 'better-sqlite3';
3
- import '../config-types-dvHOz0zU.js';
3
+ import '../config-types-BrHl3Bge.js';
4
4
 
5
5
  interface ConvergenceResult {
6
6
  symbolA: {
@@ -1,2 +1,2 @@
1
- import{a}from"../chunk-Q5P7NOVM.js";import"../chunk-RSSXKJ6J.js";import"../chunk-UQ73QF5D.js";import"../chunk-CYHIKTJN.js";import"../chunk-NBNEVLRC.js";import"../chunk-F6IXELII.js";import"../chunk-ULHLDOD6.js";import"../chunk-DVFP6PZI.js";import"../chunk-63CI3IXR.js";import"../chunk-NABVR6B7.js";import"../chunk-THB6AM3V.js";import"../chunk-SA3DPTHT.js";import"../chunk-SGTKURU6.js";import"../chunk-AREANYIA.js";import"../chunk-64MNV6AB.js";import"../chunk-7S5E7KWT.js";export{a as convergence};
1
+ import{a}from"../chunk-FLJJLSGB.js";import"../chunk-STBXCPKY.js";import"../chunk-KMVGRIO2.js";import"../chunk-B75HZHUP.js";import"../chunk-X4O6K47U.js";import"../chunk-NAH5EAZS.js";import"../chunk-BGBBVSH4.js";import"../chunk-QJ3FK4TB.js";import"../chunk-WFGOH2UI.js";import"../chunk-C4ICAIJ4.js";import"../chunk-WQHWIVA7.js";import"../chunk-XEMQUN3Z.js";import"../chunk-MTDBHTSF.js";import"../chunk-R3JY4EZ4.js";import"../chunk-HXXMPYEF.js";import"../chunk-T2FQ4GHD.js";import"../chunk-ISLWJ4PY.js";import"../chunk-WS3Z6W3M.js";import"../chunk-GNG622H3.js";import"../chunk-64MNV6AB.js";import"../chunk-7S5E7KWT.js";export{a as convergence};
2
2
  //# sourceMappingURL=convergence.js.map