scip-query 0.15.0 → 0.16.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 (321) hide show
  1. package/CHANGELOG.md +4 -1
  2. package/README.md +148 -66
  3. package/dist/augment-vue-worker.js +1 -1
  4. package/dist/chunk-2EU6WVR3.js +3 -0
  5. package/dist/chunk-2HFXPIBT.js +2 -0
  6. package/dist/chunk-2LGPMYS2.js +35 -0
  7. package/dist/chunk-2Y7YX54K.js +16 -0
  8. package/dist/chunk-363TZ64I.js +2 -0
  9. package/dist/chunk-3I34FZ6R.js +2 -0
  10. package/dist/chunk-3LAKH6BV.js +2 -0
  11. package/dist/chunk-3M2UCPFS.js +3 -0
  12. package/dist/chunk-3OPIMH42.js +2 -0
  13. package/dist/{chunk-QZOAOLLZ.js → chunk-3YAZH3JU.js} +2 -2
  14. package/dist/chunk-5P26M63Y.js +2 -0
  15. package/dist/{chunk-72FR7KEZ.js → chunk-5TVNLPUM.js} +14 -12
  16. package/dist/chunk-5UKDCXVC.js +5 -0
  17. package/dist/{chunk-R7U2I55B.js → chunk-5XDNFOAH.js} +2 -2
  18. package/dist/chunk-62Y3PC27.js +4 -0
  19. package/dist/chunk-6DNE65QS.js +40 -0
  20. package/dist/{chunk-N2OTJWC2.js → chunk-6EVORGCB.js} +2 -2
  21. package/dist/chunk-6GZ7LM7S.js +2 -0
  22. package/dist/chunk-753JWTUH.js +3 -0
  23. package/dist/chunk-7II7NFRV.js +4 -0
  24. package/dist/{chunk-M7EEHYSU.js → chunk-7RAS466A.js} +2 -2
  25. package/dist/chunk-A46JTKTM.js +5 -0
  26. package/dist/{chunk-2XRXEIRK.js → chunk-AAMZRDJT.js} +2 -2
  27. package/dist/chunk-AMPN2VMF.js +3 -0
  28. package/dist/{chunk-6XA4LDHY.js → chunk-B3X6KU75.js} +2 -2
  29. package/dist/chunk-BFWVHD2P.js +16 -0
  30. package/dist/chunk-BVHP2B4D.js +61 -0
  31. package/dist/{chunk-BUNDZ6K2.js → chunk-BVUA3GZC.js} +2 -2
  32. package/dist/{chunk-EDSD3VJK.js → chunk-CKIAEVGM.js} +2 -2
  33. package/dist/chunk-CM4EZLW4.js +2 -0
  34. package/dist/chunk-CS3FXTUC.js +2 -0
  35. package/dist/chunk-CVBS2FD4.js +2 -0
  36. package/dist/chunk-D5OXYOJP.js +7 -0
  37. package/dist/chunk-DA34GNNO.js +29 -0
  38. package/dist/chunk-DKK2H4D7.js +7 -0
  39. package/dist/chunk-EBSSCVR4.js +5 -0
  40. package/dist/{chunk-OXTM2RX3.js → chunk-EVCSXWER.js} +2 -2
  41. package/dist/chunk-FFIYGYQR.js +67 -0
  42. package/dist/chunk-G4KQ7S74.js +20 -0
  43. package/dist/{chunk-44P4SJFN.js → chunk-GWWYLYD3.js} +2 -2
  44. package/dist/chunk-HGUNWXJX.js +2 -0
  45. package/dist/chunk-HLRWOFXC.js +9 -0
  46. package/dist/{chunk-YQKECTPV.js → chunk-IRIM3SUR.js} +2 -2
  47. package/dist/chunk-JHK2DMUQ.js +4 -0
  48. package/dist/chunk-JQ2PCFZW.js +3 -0
  49. package/dist/chunk-JRFCWCOD.js +16 -0
  50. package/dist/chunk-JXAJDINF.js +2 -0
  51. package/dist/chunk-K32ZOW3P.js +2 -0
  52. package/dist/{chunk-3H5OSDF7.js → chunk-KI4WPR7Q.js} +2 -2
  53. package/dist/{chunk-43GKP6LI.js → chunk-KP2DJY7D.js} +2 -2
  54. package/dist/{chunk-YTVKPJXW.js → chunk-L27UIF3E.js} +2 -2
  55. package/dist/chunk-LT6AHYVY.js +18 -0
  56. package/dist/chunk-MCNWCJYL.js +11 -0
  57. package/dist/{chunk-K6UI6EBZ.js → chunk-MZB3DTHW.js} +2 -2
  58. package/dist/chunk-NLRWGGPY.js +8 -0
  59. package/dist/chunk-NLVKD45E.js +13 -0
  60. package/dist/chunk-OO6S4ECV.js +112 -0
  61. package/dist/{chunk-QYOPMTZ6.js → chunk-OYGKBDAD.js} +2 -2
  62. package/dist/chunk-P5QZILZ4.js +2 -0
  63. package/dist/chunk-P5XHIJHI.js +2 -0
  64. package/dist/chunk-PCCMMI2M.js +3 -0
  65. package/dist/{chunk-2TPCIPYA.js → chunk-Q65QYKU7.js} +2 -2
  66. package/dist/{chunk-K7SPOJHZ.js → chunk-QB7NRST4.js} +2 -2
  67. package/dist/{chunk-7JZRFDCU.js → chunk-QSNG3NHQ.js} +2 -2
  68. package/dist/chunk-QVZSWLLZ.js +2 -0
  69. package/dist/chunk-RLB7FZKR.js +10 -0
  70. package/dist/{chunk-KYB7FPXT.js → chunk-RPMT6MTX.js} +2 -2
  71. package/dist/chunk-RQWNF2RM.js +2 -0
  72. package/dist/chunk-RYFIRFYJ.js +4 -0
  73. package/dist/{chunk-QARYU7R3.js → chunk-S2FZILCF.js} +2 -2
  74. package/dist/{chunk-HV27H2V2.js → chunk-S3IXCXW2.js} +2 -2
  75. package/dist/{chunk-TYCZ7S4I.js → chunk-S5MTSES5.js} +2 -2
  76. package/dist/chunk-S5RZQA6V.js +2 -0
  77. package/dist/{chunk-PEHDARNC.js → chunk-SEEJPIWG.js} +2 -2
  78. package/dist/chunk-SOCS3467.js +2 -0
  79. package/dist/chunk-U6BJVXWQ.js +2 -0
  80. package/dist/chunk-UO4IADXJ.js +38 -0
  81. package/dist/{chunk-ZEO4CXQR.js → chunk-VLSI5MYU.js} +2 -2
  82. package/dist/chunk-VSQRU3AP.js +2 -0
  83. package/dist/chunk-VYQY75NA.js +2 -0
  84. package/dist/{chunk-NOKUZU56.js → chunk-VZCR3VQY.js} +2 -2
  85. package/dist/chunk-W3ZVRLCH.js +2 -0
  86. package/dist/chunk-WA64GKWB.js +20 -0
  87. package/dist/chunk-WFRZGMWJ.js +71 -0
  88. package/dist/chunk-WN6XEYVX.js +2 -0
  89. package/dist/chunk-XAEU4ROB.js +101 -0
  90. package/dist/chunk-XBPAJASV.js +2 -0
  91. package/dist/{chunk-GY3HAWUA.js → chunk-XC6PUFNN.js} +2 -2
  92. package/dist/chunk-Y42DMR6F.js +6 -0
  93. package/dist/chunk-YCVYOV4A.js +7 -0
  94. package/dist/{chunk-WPZPB42I.js → chunk-YD37KSEK.js} +2 -2
  95. package/dist/{chunk-V5W7H7V4.js → chunk-YFEJIYWH.js} +2 -2
  96. package/dist/chunk-YSUD2S7T.js +3 -0
  97. package/dist/{chunk-KJCDEDQW.js → chunk-ZEKBAMCN.js} +2 -2
  98. package/dist/chunk-ZHGUZKJL.js +2 -0
  99. package/dist/cli.js +587 -312
  100. package/dist/{config-types-aCgyLrvE.d.ts → config-types-SVkUIufk.d.ts} +8 -2
  101. package/dist/{db-DwCdT3rv.d.ts → db-CS0TuVH6.d.ts} +1 -1
  102. package/dist/{git-history-Dao3_Pu9.d.ts → git-history-ChNHbfZQ.d.ts} +2 -1
  103. package/dist/{health-nJUidasZ.d.ts → health-Btal3mQi.d.ts} +4 -4
  104. package/dist/index.d.ts +7 -5
  105. package/dist/index.js +1 -19
  106. package/dist/queries/affected.d.ts +2 -2
  107. package/dist/queries/affected.js +1 -1
  108. package/dist/queries/bottlenecks.d.ts +8 -2
  109. package/dist/queries/bottlenecks.js +1 -1
  110. package/dist/queries/by-kind.d.ts +2 -2
  111. package/dist/queries/by-kind.js +1 -1
  112. package/dist/queries/call-graph.d.ts +2 -2
  113. package/dist/queries/call-graph.js +1 -1
  114. package/dist/queries/change-surface.d.ts +2 -2
  115. package/dist/queries/change-surface.js +1 -1
  116. package/dist/queries/cleanup-plan.d.ts +2 -2
  117. package/dist/queries/cleanup-plan.js +1 -1
  118. package/dist/queries/co-change.d.ts +4 -3
  119. package/dist/queries/co-change.js +1 -1
  120. package/dist/queries/code.d.ts +2 -2
  121. package/dist/queries/code.js +1 -1
  122. package/dist/queries/complexity-hotspots.d.ts +3 -3
  123. package/dist/queries/complexity-hotspots.js +1 -1
  124. package/dist/queries/complexity.d.ts +5 -4
  125. package/dist/queries/complexity.js +1 -1
  126. package/dist/queries/convergence.d.ts +2 -2
  127. package/dist/queries/convergence.js +1 -1
  128. package/dist/queries/coupling.d.ts +2 -2
  129. package/dist/queries/coupling.js +1 -1
  130. package/dist/queries/cycles.d.ts +2 -2
  131. package/dist/queries/cycles.js +1 -1
  132. package/dist/queries/dataflow.d.ts +2 -2
  133. package/dist/queries/dataflow.js +1 -1
  134. package/dist/queries/dead.d.ts +12 -3
  135. package/dist/queries/dead.js +1 -1
  136. package/dist/queries/decorative-checkers.d.ts +2 -2
  137. package/dist/queries/decorative-checkers.js +1 -1
  138. package/dist/queries/deep-chains.d.ts +8 -3
  139. package/dist/queries/deep-chains.js +1 -1
  140. package/dist/queries/deps.d.ts +2 -2
  141. package/dist/queries/deps.js +1 -1
  142. package/dist/queries/diff-gate.d.ts +5 -4
  143. package/dist/queries/diff-gate.js +1 -1
  144. package/dist/queries/diff-impact.d.ts +3 -3
  145. package/dist/queries/diff-impact.js +1 -1
  146. package/dist/queries/doc-drift.d.ts +4 -2
  147. package/dist/queries/doc-drift.js +1 -1
  148. package/dist/queries/drift.d.ts +2 -2
  149. package/dist/queries/drift.js +1 -1
  150. package/dist/queries/duplicate-bodies.d.ts +3 -3
  151. package/dist/queries/duplicate-bodies.js +1 -1
  152. package/dist/queries/extract-candidates.d.ts +2 -2
  153. package/dist/queries/extract-candidates.js +1 -1
  154. package/dist/queries/fan.d.ts +11 -5
  155. package/dist/queries/fan.js +1 -1
  156. package/dist/queries/files.d.ts +2 -2
  157. package/dist/queries/health.d.ts +3 -3
  158. package/dist/queries/health.js +1 -1
  159. package/dist/queries/hierarchy.d.ts +2 -2
  160. package/dist/queries/hierarchy.js +1 -1
  161. package/dist/queries/hotspots.d.ts +2 -2
  162. package/dist/queries/hotspots.js +1 -1
  163. package/dist/queries/imports.d.ts +2 -2
  164. package/dist/queries/imports.js +1 -1
  165. package/dist/queries/incomplete-migration.d.ts +3 -3
  166. package/dist/queries/incomplete-migration.js +1 -1
  167. package/dist/queries/index.d.ts +5 -5
  168. package/dist/queries/index.js +1 -1
  169. package/dist/queries/isolated.d.ts +2 -2
  170. package/dist/queries/isolated.js +1 -1
  171. package/dist/queries/locality-candidates.d.ts +2 -2
  172. package/dist/queries/locality-candidates.js +1 -1
  173. package/dist/queries/members.d.ts +2 -2
  174. package/dist/queries/members.js +1 -1
  175. package/dist/queries/methods.d.ts +2 -2
  176. package/dist/queries/methods.js +1 -1
  177. package/dist/queries/not-implemented.d.ts +2 -2
  178. package/dist/queries/not-implemented.js +1 -1
  179. package/dist/queries/outline.d.ts +2 -2
  180. package/dist/queries/outline.js +1 -1
  181. package/dist/queries/passthrough-candidates.d.ts +3 -3
  182. package/dist/queries/passthrough-candidates.js +1 -1
  183. package/dist/queries/plan-context.d.ts +4 -4
  184. package/dist/queries/plan-context.js +1 -1
  185. package/dist/queries/react-component-duplicates.d.ts +4 -2
  186. package/dist/queries/react-component-duplicates.js +1 -1
  187. package/dist/queries/react-hook-candidates.d.ts +4 -2
  188. package/dist/queries/react-hook-candidates.js +1 -1
  189. package/dist/queries/react-large-component-pressure.d.ts +2 -2
  190. package/dist/queries/react-large-component-pressure.js +1 -1
  191. package/dist/queries/recent-duplicates.d.ts +4 -2
  192. package/dist/queries/recent-duplicates.js +1 -1
  193. package/dist/queries/redundant-reexports.d.ts +2 -2
  194. package/dist/queries/redundant-reexports.js +1 -1
  195. package/dist/queries/refs.d.ts +2 -2
  196. package/dist/queries/refs.js +1 -1
  197. package/dist/queries/self-audit.d.ts +2 -2
  198. package/dist/queries/self-audit.js +1 -1
  199. package/dist/queries/similar-chains.d.ts +2 -2
  200. package/dist/queries/similar-chains.js +1 -1
  201. package/dist/queries/similar-files.d.ts +2 -2
  202. package/dist/queries/similar-files.js +1 -1
  203. package/dist/queries/similar-signatures.d.ts +2 -2
  204. package/dist/queries/similar-signatures.js +1 -1
  205. package/dist/queries/similar.d.ts +2 -2
  206. package/dist/queries/similar.js +1 -1
  207. package/dist/queries/slice.d.ts +2 -2
  208. package/dist/queries/slice.js +1 -1
  209. package/dist/queries/stale-abstractions.d.ts +2 -2
  210. package/dist/queries/stale-abstractions.js +1 -1
  211. package/dist/queries/stats.d.ts +2 -2
  212. package/dist/queries/surface.d.ts +2 -2
  213. package/dist/queries/surface.js +1 -1
  214. package/dist/queries/symbols.d.ts +2 -2
  215. package/dist/queries/symbols.js +1 -1
  216. package/dist/queries/system.d.ts +2 -2
  217. package/dist/queries/system.js +1 -1
  218. package/dist/queries/test-quality.d.ts +2 -2
  219. package/dist/queries/test-quality.js +1 -1
  220. package/dist/queries/trace.d.ts +2 -2
  221. package/dist/queries/trace.js +1 -1
  222. package/dist/queries/twin-ab.d.ts +2 -2
  223. package/dist/queries/twin-ab.js +1 -1
  224. package/dist/queries/twin-drift.d.ts +2 -2
  225. package/dist/queries/twin-drift.js +1 -1
  226. package/dist/queries/unused-imports.d.ts +2 -2
  227. package/dist/queries/unused-imports.js +1 -1
  228. package/dist/queries/unused-params.d.ts +2 -2
  229. package/dist/queries/unused-params.js +1 -1
  230. package/dist/queries/vue-component-duplicates.d.ts +4 -2
  231. package/dist/queries/vue-component-duplicates.js +1 -1
  232. package/dist/queries/vue-composable-candidates.d.ts +4 -2
  233. package/dist/queries/vue-composable-candidates.js +1 -1
  234. package/dist/queries/vue-large-view-pressure.d.ts +2 -2
  235. package/dist/queries/vue-large-view-pressure.js +1 -1
  236. package/dist/queries/wrapper-candidates.d.ts +2 -2
  237. package/dist/queries/wrapper-candidates.js +1 -1
  238. package/dist/reindex-worker.js +256 -12
  239. package/dist/reindex.d.ts +29 -3
  240. package/dist/reindex.js +251 -22
  241. package/dist/runtime.d.ts +8 -4
  242. package/dist/runtime.js +2 -2
  243. package/dist/rust-semantic-session-server.js +2 -0
  244. package/dist/rust-semantic-session-worker.js +2 -0
  245. package/dist/rust-semantic-worker.js +2 -0
  246. package/dist/{scip-cli-DeAbuJ2b.d.ts → scip-cli-BKL-26TZ.d.ts} +2 -2
  247. package/dist/{symbol-types-DaoeXKUt.d.ts → symbol-types-BgWU6lhL.d.ts} +2 -0
  248. package/dist/watch-server.js +42 -0
  249. package/docs/AGENT_GUIDE.md +110 -34
  250. package/docs/AI_FAILURE_MODES.md +8 -3
  251. package/docs/COMMAND_REFERENCE.md +10 -6
  252. package/docs/REGEX_POLICY.md +3 -1
  253. package/docs/accuracy-audit-checklist.md +300 -0
  254. package/docs/accuracy-hardening-goal.md +493 -54
  255. package/docs/analyzer-inventory.md +31 -23
  256. package/docs/analyzer-validation-ledger.md +51 -21
  257. package/package.json +2 -1
  258. package/scripts/build-scip-windows.mjs +7 -7
  259. package/skills/_shared/SKILL.md +20 -19
  260. package/skills/scip-calibrate/SKILL.md +4 -2
  261. package/skills/scip-hyper-optimization/SKILL.md +5 -1
  262. package/skills/scip-query/SKILL.md +1 -1
  263. package/skills/scip-setup/SKILL.md +104 -4
  264. package/skills/scip-verify/SKILL.md +20 -14
  265. package/dist/chunk-27HMTUJE.js +0 -3
  266. package/dist/chunk-27XEGMCT.js +0 -7
  267. package/dist/chunk-3AMWF6V5.js +0 -3
  268. package/dist/chunk-4SCMYKD6.js +0 -2
  269. package/dist/chunk-5AAAEZ2Z.js +0 -2
  270. package/dist/chunk-5JRMZMLM.js +0 -2
  271. package/dist/chunk-5VY3RIEI.js +0 -38
  272. package/dist/chunk-6JUAGXR4.js +0 -4
  273. package/dist/chunk-6KDOYKCB.js +0 -40
  274. package/dist/chunk-6KMTPNZL.js +0 -3
  275. package/dist/chunk-7COVQPQQ.js +0 -9
  276. package/dist/chunk-7S5E7KWT.js +0 -2
  277. package/dist/chunk-7TVFPOD7.js +0 -102
  278. package/dist/chunk-A6KSEIRN.js +0 -61
  279. package/dist/chunk-AAMURYOK.js +0 -4
  280. package/dist/chunk-BP7S6V3M.js +0 -20
  281. package/dist/chunk-BRBF3E5X.js +0 -35
  282. package/dist/chunk-BZXE3HO4.js +0 -6
  283. package/dist/chunk-CXQQOXSI.js +0 -10
  284. package/dist/chunk-EVZSAR3S.js +0 -2
  285. package/dist/chunk-GMOEX7EV.js +0 -2
  286. package/dist/chunk-GNG622H3.js +0 -3
  287. package/dist/chunk-GUDKRIGW.js +0 -7
  288. package/dist/chunk-GULVO6NF.js +0 -43
  289. package/dist/chunk-HZZQKNVE.js +0 -2
  290. package/dist/chunk-I4R3SNMR.js +0 -2
  291. package/dist/chunk-IMQFJ53K.js +0 -2
  292. package/dist/chunk-ISLWJ4PY.js +0 -10
  293. package/dist/chunk-IUSSGHJO.js +0 -2
  294. package/dist/chunk-J5WVNZ6O.js +0 -2
  295. package/dist/chunk-JJUX2OAP.js +0 -2
  296. package/dist/chunk-JZBGTSAB.js +0 -13
  297. package/dist/chunk-K5N5RNGM.js +0 -2
  298. package/dist/chunk-KSJ544IV.js +0 -5
  299. package/dist/chunk-LY7NMOBW.js +0 -2
  300. package/dist/chunk-N23FT4EZ.js +0 -2
  301. package/dist/chunk-NCVFKOLB.js +0 -2
  302. package/dist/chunk-PESEPWZO.js +0 -2
  303. package/dist/chunk-PMY4UFGV.js +0 -2
  304. package/dist/chunk-Q7PWDXL5.js +0 -5
  305. package/dist/chunk-QVGFVRKD.js +0 -2
  306. package/dist/chunk-R5336VHZ.js +0 -2
  307. package/dist/chunk-RLB6SG25.js +0 -2
  308. package/dist/chunk-SFDVBARK.js +0 -2
  309. package/dist/chunk-TG7QSYCJ.js +0 -2
  310. package/dist/chunk-UHPWZCYQ.js +0 -3
  311. package/dist/chunk-URSSPS5H.js +0 -2
  312. package/dist/chunk-WIBFXSYB.js +0 -6
  313. package/dist/chunk-WMO2VZZK.js +0 -3
  314. package/dist/chunk-WS3Z6W3M.js +0 -65
  315. package/dist/chunk-X3DTIEMU.js +0 -18
  316. package/dist/chunk-X5C43YVI.js +0 -2
  317. package/dist/chunk-X7CHWTZ2.js +0 -72
  318. package/dist/chunk-XDESMVOL.js +0 -4
  319. package/dist/chunk-XZBLZHXL.js +0 -16
  320. package/dist/chunk-YBGC7HTY.js +0 -3
  321. package/dist/chunk-ZMGBWSFZ.js +0 -2
@@ -0,0 +1,2 @@
1
+ import{a as ce}from"./chunk-QSNG3NHQ.js";import{a as ae}from"./chunk-XBPAJASV.js";import{a as oe}from"./chunk-CM4EZLW4.js";import{a as se}from"./chunk-ZHGUZKJL.js";import{a as ne}from"./chunk-3OPIMH42.js";import{a as re}from"./chunk-S5RZQA6V.js";import{a as ie}from"./chunk-3LAKH6BV.js";import{b as W,e as m}from"./chunk-VLSI5MYU.js";import{a as te}from"./chunk-YCVYOV4A.js";import{a as Z}from"./chunk-62Y3PC27.js";import{a as ee}from"./chunk-C2QSK7E7.js";import{a as Q}from"./chunk-2EU6WVR3.js";import{a as X}from"./chunk-CS3FXTUC.js";import{a as Y}from"./chunk-LT6AHYVY.js";import{a as K}from"./chunk-AAMZRDJT.js";import{b as j}from"./chunk-SOCS3467.js";import{a as G}from"./chunk-753JWTUH.js";import{a as A,b as q}from"./chunk-JQ2PCFZW.js";import{b as N}from"./chunk-U6BJVXWQ.js";import{a as z}from"./chunk-HLRWOFXC.js";import{a as ue}from"./chunk-RYFIRFYJ.js";import{f as J}from"./chunk-A46JTKTM.js";import{a as U}from"./chunk-WN6XEYVX.js";import{f as k,g as M}from"./chunk-NLRWGGPY.js";import{n as _}from"./chunk-WFRZGMWJ.js";function de(e,r){let t=new Map;for(let o of e){let n=t.get(o.check)??[];n.push(o),t.set(o.check,n)}let i=[];for(let[o,n]of t){let s=n.filter(d=>d.outcome==="resolved").length,c=n.filter(d=>d.outcome==="suppressed").length,l=n.filter(d=>d.outcome==="still-open").length,h=n.length,C=n.filter(d=>d.outcome==="still-open").sort((d,b)=>d.firstSeen-b.firstSeen)[0];i.push({check:o,seen:h,resolved:s,suppressed:c,stillOpen:l,resolutionRate:h>0?s/h:0,suppressionRate:h>0?c/h:0,oldestOpenAgeDays:C?Math.floor((r-C.firstSeen)/Ie):null})}return i.sort((o,n)=>o.check.localeCompare(n.check))}var Ie=864e5;function le(e){return _(e).map(r=>({check:r.check,findingId:r.findingId,firstSeen:r.firstSeen,lastSeen:r.lastSeen,timesShown:r.timesShown,outcome:r.outcome}))}function f(e){return e.scoreCount??e.count}function B(e){let r=ze(e),{breakdown:t,pressure:i}=Ne(e),o=me(t,"risk"),n=me(t,"hygiene");return{score:Math.min(o,n),riskScore:o,hygieneScore:n,scoreBreakdown:t,overview:{documents:e.statsResult.documents,symbols:e.statsResult.symbols,indexSizeBytes:e.statsResult.indexSizeBytes},findings:{deadSymbols:e.dead.count,deadLoc:e.dead.loc,isolatedSymbols:e.isolated.count,isolatedLoc:e.isolated.loc,cycles:e.realCycleCount,similarPairs:e.similarCount,duplicateBodyGroups:e.duplicateBodies.count,duplicateBodyLoc:e.duplicateBodies.loc,twinDriftGroups:e.twinDrift.count,twinDriftLoc:e.twinDrift.loc,reactComponentDuplicatePairs:e.reactComponentDuplicates.count,reactHookCandidatePairs:e.reactHookCandidates.count,reactHookCandidateScoreCount:f(e.reactHookCandidates),reactLargeComponentPressureFiles:e.reactLargeComponentPressure.count,vueComponentDuplicatePairs:e.vueComponentDuplicates.count,vueComposableCandidatePairs:e.vueComposableCandidates.count,vueComposableCandidateScoreCount:f(e.vueComposableCandidates),vueLargeViewPressureFiles:e.vueLargeViewPressure.count,extractionCandidates:e.extractCount,wrappers:e.wrappers.count,wrapperScoreCount:f(e.wrappers),passthroughs:e.passthroughs.count,staleTypes:e.stale.count,driftedFiles:e.drift.count,complexityHotspotCount:e.complexity.extremeCount,hiddenCouplingPairs:e.gitEvidence?.hiddenCoupling.pairCount??null,hiddenCouplingScoreCount:e.gitEvidence?.hiddenCoupling.scoreCount??null,coverageContractViolations:e.coverageContracts.count},axes:Oe(e),validation:_e(e),suppressions:e.suppressions,actions:r,pressure:i,topComplexity:e.complexity.top,warnings:e.warnings.length>0?e.warnings:void 0,detectorPrecision:[]}}function Oe(e){return{deletable:{loc:e.dead.loc+e.isolated.loc,symbols:e.dead.count+e.isolated.count},cycles:{count:e.realCycleCount},changeAmplification:e.gitEvidence?.amplification??null,hiddenCoupling:e.gitEvidence?.hiddenCoupling??null,churnWeightedComplexity:Ve(e),evidenceQuality:{graphFindings:e.dead.count+e.isolated.count+e.realCycleCount,heuristicFindings:e.similarCount+e.duplicateBodies.count+e.twinDrift.count+e.reactComponentDuplicates.count+e.reactHookCandidates.count+e.reactLargeComponentPressure.count+e.vueComponentDuplicates.count+e.vueComposableCandidates.count+e.vueLargeViewPressure.count+e.extractCount+e.wrappers.count+e.passthroughs.count+e.stale.count+e.drift.count,userSuppressed:e.suppressions?.total??0}}}function Ve(e){let r=e.gitEvidence?.fileStats;return r?e.complexity.top.map(t=>{let i=t.file?r[t.file]?.changes??0:0;return{...t,changes:i,weighted:g(t.score*Math.log2(1+i))}}).sort((t,i)=>i.weighted-t.weighted):null}function _e(e){let r=e.gitEvidence?.fileStats;if(!r)return null;let t={dead:e.dead.files??[],isolated:e.isolated.files??[],twinDrift:e.twinDrift.files??[],wrappers:e.wrappers.files??[],passthroughs:e.passthroughs.files??[],stale:e.stale.files??[],reactComponents:e.reactComponentDuplicates.files??[],reactHooks:e.reactHookCandidates.files??[],reactLargeComponents:e.reactLargeComponentPressure.files??[],vueComponents:e.vueComponentDuplicates.files??[],vueComposables:e.vueComposableCandidates.files??[],vueLargeViews:e.vueLargeViewPressure.files??[]},i=new Set(Object.values(t).flat()),o=0,n=0,s=0;for(let[C,d]of Object.entries(r))i.has(C)?o+=d.fixChanges:(n+=d.fixChanges,s+=1);let c=i.size>0?g(o/i.size):0,l=s>0?g(n/s):0,h={};for(let[C,d]of Object.entries(t)){let b=new Set(d);if(b.size===0)continue;let S=0;for(let P of b)S+=r[P]?.fixChanges??0;let y=g(S/b.size);h[C]={flaggedFiles:b.size,fixDensity:y,lift:l>0?g(y/l):null}}return{flaggedFiles:i.size,flaggedFixDensity:c,baselineFixDensity:l,ratio:i.size>0&&l>0?g(c/l):null,byCategory:h,validationBasis:{method:"subject-regex",commitsScanned:e.gitEvidence?.commitsScanned??0}}}function g(e){return Math.round(e*100)/100}function he(e){return Number.isInteger(e)?String(e):e.toFixed(2).replace(/0+$/,"").replace(/\.$/,"")}function L(e,r="existing shared infrastructure discount"){let t=f(e);return Math.abs(t-e.count)<.01?"":` (${he(t)} score-weighted after ${r})`}function w(e,r){let t=f(e),i=`${e.count} ${r}`;return Math.abs(t-e.count)<.01?i:`${i} (${he(t)} score-weighted)`}function ze(e){let r=[];if(e.dead.count>0&&r.push({category:"Dead code",evidence:"graph-fact",description:`${e.dead.count} indexed symbols with no visible repository references \u2014 review runtime/framework roots and the capability disclosure, then verify any deletion with cleanup-plan --verify`,effort:"low",impact:"high",count:e.dead.count,locRecoverable:e.dead.loc}),e.isolated.count>0&&r.push({category:"Isolated symbols",evidence:"graph-fact",description:`${e.isolated.count} symbols completely disconnected from the codebase graph`,effort:"low",impact:"medium",count:e.isolated.count,locRecoverable:e.isolated.loc}),e.realCycleCount>0&&r.push({category:"Circular dependencies",evidence:"graph-fact",description:`${e.realCycleCount} indexed dependency cycle(s) \u2014 inspect ownership and runtime order before choosing whether or how to break them`,effort:"medium",impact:"high",count:e.realCycleCount,locRecoverable:0}),e.similarCount>0&&r.push({category:"Similar functions",evidence:"heuristic",description:`${e.similarCount} pairs share disclosed call or source-token evidence beyond imports \u2014 review domain identity before considering consolidation`,effort:"medium",impact:"medium",count:e.similarCount,locRecoverable:0}),e.duplicateBodies.count>0&&r.push({category:"Duplicate function bodies",evidence:"heuristic",description:`${e.duplicateBodies.count} exact small-body group(s) across files \u2014 consolidate only when the domain concept matches`,effort:"low",impact:"medium",count:e.duplicateBodies.count,locRecoverable:e.duplicateBodies.loc}),e.twinDrift.count>0&&r.push({category:"Drifted twin implementations",evidence:"heuristic",description:`${e.twinDrift.count} same-name (or near-name) function group(s) across files with diverged or identical bodies \u2014 determine whether they represent the same concept before acting`,effort:"medium",impact:"medium",count:e.twinDrift.count,locRecoverable:0}),e.reactComponentDuplicates.count>0&&r.push({category:"Duplicated React components",evidence:"heuristic",description:`${e.reactComponentDuplicates.count} React component pair(s) share JSX structure \u2014 review whether local product intent justifies reuse`,effort:"medium",impact:"medium",count:e.reactComponentDuplicates.count,locRecoverable:e.reactComponentDuplicates.loc}),e.reactHookCandidates.count>0&&r.push({category:"Duplicated React hook behavior",evidence:"heuristic",description:`${e.reactHookCandidates.count} React component pair(s) share state/effect/request behavior${L(e.reactHookCandidates)} \u2014 review whether a common hook would preserve ownership and lifecycle semantics`,effort:"medium",impact:"medium",count:e.reactHookCandidates.count,locRecoverable:e.reactHookCandidates.loc}),e.reactLargeComponentPressure.count>0&&r.push({category:"Large React components",evidence:"heuristic",description:`${e.reactLargeComponentPressure.count} React component(s) concentrate JSX/behavior pressure \u2014 split by reason to change`,effort:"medium",impact:"medium",count:e.reactLargeComponentPressure.count,locRecoverable:0}),e.vueComponentDuplicates.count>0&&r.push({category:"Duplicated Vue components",evidence:"heuristic",description:`${e.vueComponentDuplicates.count} Vue component pair(s) share template structure \u2014 review whether local product intent justifies reuse`,effort:"medium",impact:"medium",count:e.vueComponentDuplicates.count,locRecoverable:e.vueComponentDuplicates.loc}),e.vueComposableCandidates.count>0&&r.push({category:"Duplicated Vue behavior",evidence:"heuristic",description:`${e.vueComposableCandidates.count} Vue component pair(s) share state/effect/request behavior${L(e.vueComposableCandidates)} \u2014 review whether a common composable would preserve ownership and lifecycle semantics`,effort:"medium",impact:"medium",count:e.vueComposableCandidates.count,locRecoverable:e.vueComposableCandidates.loc}),e.vueLargeViewPressure.count>0&&r.push({category:"Large Vue views",evidence:"heuristic",description:`${e.vueLargeViewPressure.count} Vue file(s) concentrate template/script/style pressure \u2014 split by reason to change`,effort:"medium",impact:"medium",count:e.vueLargeViewPressure.count,locRecoverable:0}),e.extractCount>0&&r.push({category:"Extraction candidates",evidence:"heuristic",description:`${e.extractCount} large functions with isolated callee clusters \u2014 review same-file or feature-local extraction seams`,effort:"medium",impact:"medium",count:e.extractCount,locRecoverable:0}),e.wrappers.count>0&&r.push({category:"Wrapper functions",evidence:"heuristic",description:`${e.wrappers.count} single-consumer symbols${L(e.wrappers,"boundary-evidence discount")} \u2014 inspect whether each is indirection or an intentional API, framework, or ownership boundary`,effort:"low",impact:"low",count:e.wrappers.count,locRecoverable:e.wrappers.loc}),e.passthroughs.count>0&&r.push({category:"Passthrough functions",evidence:"heuristic",description:`${e.passthroughs.count} functions that literally forward to one callee \u2014 inspect whether each is unnecessary indirection or an intentional boundary`,effort:"low",impact:"low",count:e.passthroughs.count,locRecoverable:e.passthroughs.loc}),e.stale.count>0){let o=[];e.stale.unused>0&&o.push(`${e.stale.unused} unused`),e.stale.singleUse>0&&o.push(`${e.stale.singleUse} single-consumer (not in types file)`),r.push({category:"Stale abstractions",evidence:"heuristic",description:`${o.join(", ")} \u2014 review public, runtime-registration, and ownership evidence before removing, moving, or inlining`,effort:"low",impact:"medium",count:e.stale.count,locRecoverable:e.stale.loc})}if(e.drift.count>0){let o=[];e.drift.unusedImports>0&&o.push(`${e.drift.unusedImports} unused imports`),e.drift.layerViolations>0&&o.push(`${e.drift.layerViolations} layer violations`),r.push({category:"Structural drift",evidence:"heuristic",description:`${o.join(", ")} \u2014 verify direct rows and review inferred layer signals against declared ownership`,effort:e.drift.layerViolations>0?"medium":"low",impact:e.drift.layerViolations>0?"medium":"low",count:e.drift.count,locRecoverable:0})}if(e.coverageContracts.count>0&&r.push({category:"Coverage contract drift",evidence:"graph-fact",description:`${e.coverageContracts.count} configured coverage contract(s) drifted from their ground-truth source (enumeration rot) \u2014 run \`scip-query diff-gate\` or \`scip-query health --json\` for the missing/extra keys`,effort:"low",impact:"medium",count:e.coverageContracts.count,locRecoverable:0}),e.gitEvidence&&e.gitEvidence.hiddenCoupling.pairCount>0){let o=e.gitEvidence.hiddenCoupling.top[0];r.push({category:"Hidden coupling",evidence:"change-graph",description:`${e.gitEvidence.hiddenCoupling.pairCount} file pair(s) co-change without a structural link`+L({count:e.gitEvidence.hiddenCoupling.pairCount,scoreCount:e.gitEvidence.hiddenCoupling.scoreCount},"broad/stale-history discount")+(o?` (e.g. ${o.fileA} \u2194 ${o.fileB})`:"")+" \u2014 inspect whether a shared concept, generated artifact, or coordinated contract explains the history",effort:"medium",impact:"high",count:e.gitEvidence.hiddenCoupling.pairCount,locRecoverable:0})}let t={high:3,medium:2,low:1},i={low:3,medium:2,high:1};return r.sort((o,n)=>{let s=t[o.impact]*i[o.effort];return t[n.impact]*i[n.effort]-s}),r}var pe={"dead-code":"risk",isolated:"risk",cycles:"risk",complexity:"risk","hidden-coupling":"risk","cycles-pressure":"risk","complexity-pressure":"risk","hidden-coupling-pressure":"risk",similar:"hygiene","duplicate-bodies":"hygiene","twin-drift":"hygiene","react-component-duplicates":"hygiene","react-hook-candidates":"hygiene","react-large-component-pressure":"hygiene","vue-component-duplicates":"hygiene","vue-composable-candidates":"hygiene","vue-large-view-pressure":"hygiene",extract:"hygiene",wrappers:"hygiene",passthroughs:"hygiene","stale-abstractions":"hygiene",drift:"hygiene","similar-pressure":"hygiene","duplicate-bodies-pressure":"hygiene","twin-drift-pressure":"hygiene","react-component-duplicates-pressure":"hygiene","react-hook-candidates-pressure":"hygiene","react-large-component-pressure-pressure":"hygiene","vue-component-duplicates-pressure":"hygiene","vue-composable-candidates-pressure":"hygiene","vue-large-view-pressure-pressure":"hygiene","extract-pressure":"hygiene","wrappers-pressure":"hygiene","passthroughs-pressure":"hygiene","stale-abstractions-pressure":"hygiene","drift-pressure":"hygiene"};function me(e,r){let t=e.filter(i=>i.kind===r).reduce((i,o)=>i+o.points,0);return Math.max(0,Math.min(100,100-t))}function Ne(e){let r=Math.max(e.statsResult.documents,1),t=Math.max(e.statsResult.symbols,1),i=[],o=[],n=(p,H,v)=>{H>0&&i.push({axis:p,points:H,detail:v,kind:pe[p]??"hygiene"})},s=(p,H,v,Ae,Be,Te,Fe)=>{let x=Math.max(Ae,1);if(v<=x)return;let R=v/x,E=Math.min(Be,Math.ceil(Math.log2(R)*Te));if(E<=0)return;let $e=pe[p]??"hygiene";o.push({axis:p,category:H,kind:$e,count:v,threshold:g(x),ratio:g(R),extraPenalty:E}),n(p,E,`${v} ${Fe} exceed pressure threshold ${g(x)} (${g(R)}x)`)},c=e.dead.count/t;n("dead-code",Math.min(20,Math.round(c*200)),`${e.dead.count} dead symbols (${e.dead.loc} LOC deletable)`);let l=e.isolated.count/t;n("isolated",Math.min(10,Math.round(l*200)),`${e.isolated.count} isolated symbols (${e.isolated.loc} LOC deletable)`),n("cycles",Math.min(15,e.realCycleCount*5),`${e.realCycleCount} real dependency cycle(s)`);let h=e.similarCount/t*1e3;n("similar",Math.min(10,Math.round(h)),`${e.similarCount} similar function pair(s)`);let C=e.duplicateBodies.count/t*1e3;n("duplicate-bodies",Math.min(10,Math.round(C*2)),`${e.duplicateBodies.count} exact duplicate small-body group(s) (${e.duplicateBodies.loc} duplicate LOC)`);let d=e.twinDrift.count/t*1e3;n("twin-drift",Math.min(10,Math.round(d*2)),`${e.twinDrift.count} drifted twin implementation group(s) (same or near-same name, diverged or identical bodies)`);let b=e.reactComponentDuplicates.count/r*1e3;n("react-component-duplicates",Math.min(10,Math.round(b)),`${e.reactComponentDuplicates.count} duplicated React component pair(s)`);let S=f(e.reactHookCandidates),y=S/r*1e3;n("react-hook-candidates",Math.min(10,Math.round(y)),w(e.reactHookCandidates,"duplicated React behavior pair(s)"));let P=e.reactLargeComponentPressure.count/r*1e3;n("react-large-component-pressure",Math.min(5,Math.round(P/2)),`${e.reactLargeComponentPressure.count} large React component pressure file(s)`);let Re=e.vueComponentDuplicates.count/r*1e3;n("vue-component-duplicates",Math.min(10,Math.round(Re)),`${e.vueComponentDuplicates.count} duplicated Vue component pair(s)`);let I=f(e.vueComposableCandidates),Ee=I/r*1e3;n("vue-composable-candidates",Math.min(10,Math.round(Ee)),w(e.vueComposableCandidates,"duplicated Vue behavior pair(s)"));let ke=e.vueLargeViewPressure.count/r*1e3;n("vue-large-view-pressure",Math.min(5,Math.round(ke/2)),`${e.vueLargeViewPressure.count} large Vue view pressure file(s)`);let O=f(e.wrappers);n("wrappers",Math.min(3,O),w(e.wrappers,"wrapper candidate(s)"));let V=f(e.passthroughs);n("passthroughs",Math.min(3,V),w(e.passthroughs,"passthrough candidate(s)")),n("stale-abstractions",Math.min(8,e.stale.unused),`${e.stale.unused} unused stale abstraction(s); ${e.stale.singleUse} single-consumer signal(s)`);let Me=e.drift.direct/r;if(n("drift",Math.min(5,Math.round(Me*50)),`${e.drift.direct} direct drift finding(s); ${e.drift.signal} signal drift finding(s)`),n("complexity",Math.min(5,e.complexity.extremeCount*2),`${e.complexity.extremeCount} extreme complexity hotspot(s)`),e.gitEvidence){let p=e.gitEvidence.hiddenCoupling.scoreCount;n("hidden-coupling",Math.min(5,Math.ceil(p/10)),w({count:e.gitEvidence.hiddenCoupling.pairCount,scoreCount:p},"co-changing pair(s) without a structural link"))}if(s("cycles-pressure","Circular dependencies",e.realCycleCount,3,10,3,"cycle(s)"),s("complexity-pressure","Extreme complexity",e.complexity.extremeCount,3,5,2,"extreme complexity hotspot(s)"),e.gitEvidence){let p=e.gitEvidence.hiddenCoupling.scoreCount;s("hidden-coupling-pressure","Hidden coupling",p,50,10,4,"score-weighted co-changing pair(s)")}return s("similar-pressure","Similar functions",e.similarCount,Math.max(50,t*.01),8,4,"similar function pair(s)"),s("duplicate-bodies-pressure","Duplicate function bodies",e.duplicateBodies.count,Math.max(20,t*.005),8,4,"exact duplicate small-body group(s)"),s("twin-drift-pressure","Drifted twin implementations",e.twinDrift.count,Math.max(20,t*.005),8,4,"drifted twin implementation group(s)"),s("react-component-duplicates-pressure","Duplicated React components",e.reactComponentDuplicates.count,Math.max(10,r*.01),8,4,"duplicated React component pair(s)"),s("react-hook-candidates-pressure","Duplicated React hook behavior",S,Math.max(10,r*.01),8,4,"duplicated React behavior pair(s)"),s("react-large-component-pressure-pressure","Large React components",e.reactLargeComponentPressure.count,Math.max(10,r*.01),4,2,"large React component pressure file(s)"),s("vue-component-duplicates-pressure","Duplicated Vue components",e.vueComponentDuplicates.count,Math.max(10,r*.01),8,4,"duplicated Vue component pair(s)"),s("vue-composable-candidates-pressure","Duplicated Vue behavior",I,Math.max(10,r*.01),8,4,"duplicated Vue behavior pair(s)"),s("vue-large-view-pressure-pressure","Large Vue views",e.vueLargeViewPressure.count,Math.max(10,r*.01),4,2,"large Vue view pressure file(s)"),s("extract-pressure","Extraction candidates",e.extractCount,Math.max(50,t*.01),4,2,"extraction candidate(s)"),s("wrappers-pressure","Wrapper functions",O,50,4,2,"wrapper candidate(s)"),s("passthroughs-pressure","Passthrough functions",V,50,4,2,"passthrough candidate(s)"),s("stale-abstractions-pressure","Single-consumer stale abstraction signals",e.stale.singleUse,Math.max(50,t*.02),4,2,"single-consumer stale abstraction signal(s)"),s("drift-pressure","Structural drift signals",e.drift.signal,Math.max(10,r*.1),4,2,"signal drift finding(s)"),{breakdown:i,pressure:o}}import{getHeapStatistics as Ge}from"v8";var je=64*1024*1024;function T(){let e=globalThis.gc;if(!e)return;let r=Ge();r.heap_size_limit-r.used_heap_size<je||e()}var We=50,Ue=25e3,qe=2500,ge=2500,fe=50,Ye=10,Ke=["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"],ve={overview:(e,r,t,i)=>({phase:"overview",statsResult:i,warnings:t.warnings}),dead:(e,r,t)=>({phase:"dead",dead:Je(e,r,t)}),isolated:(e,r,t)=>({phase:"isolated",isolated:Ze(e,r,t)}),cycles:(e,r,t)=>({phase:"cycles",realCycleCount:et(e,r,t)}),similar:(e,r,t)=>({phase:"similar",similarCount:tt(e,r,t)}),"duplicate-bodies":(e,r,t)=>({phase:"duplicate-bodies",duplicateBodies:it(e,r,t)}),"twin-drift":(e,r,t)=>({phase:"twin-drift",twinDrift:ot(e,r,t)}),"react-component-duplicates":(e,r,t)=>({phase:"react-component-duplicates",reactComponentDuplicates:nt(e,r,t)}),"react-hook-candidates":(e,r,t)=>({phase:"react-hook-candidates",reactHookCandidates:st(e,r,t)}),"react-large-component-pressure":(e,r,t)=>({phase:"react-large-component-pressure",reactLargeComponentPressure:ct(e,r,t)}),"vue-component-duplicates":(e,r,t)=>({phase:"vue-component-duplicates",vueComponentDuplicates:at(e,r,t)}),"vue-composable-candidates":(e,r,t)=>({phase:"vue-composable-candidates",vueComposableCandidates:ut(e,r,t)}),"vue-large-view-pressure":(e,r,t)=>({phase:"vue-large-view-pressure",vueLargeViewPressure:dt(e,r,t)}),"extract-candidates":(e,r,t)=>({phase:"extract-candidates",extractCount:rt(e,r,t)}),"wrapper-candidates":(e,r,t)=>({phase:"wrapper-candidates",wrappers:lt(e,r,t)}),"passthrough-candidates":(e,r,t)=>({phase:"passthrough-candidates",passthroughs:pt(e,r,t)}),"stale-abstractions":(e,r,t)=>({phase:"stale-abstractions",stale:mt(e,r,t)}),drift:(e,r,t)=>({phase:"drift",drift:Ct(e,r,t)}),"complexity-hotspots":(e,r,t)=>({phase:"complexity-hotspots",complexity:bt(e,r,t)}),"git-evidence":(e,r,t)=>({phase:"git-evidence",gitEvidence:ht(e,t)}),suppressions:(e,r,t)=>({phase:"suppressions",suppressions:gt(e,t)}),"coverage-contracts":(e,r,t)=>({phase:"coverage-contracts",coverageContracts:ft(e,t)})};function dr(e,r={}){return Se(e,r.full!==!1,(t,i)=>{let o=Qe(e,r.scope,t,i),n=B(o);return n.detectorPrecision=de(le(e),Date.now()),n})}function lr(e,r,t={}){return Xe(e,[r],t)[0]}function Xe(e,r,t={}){return Se(e,t.full!==!1,(i,o)=>{let n={...o,releaseCachesBetweenPhases:!1};return r.map(s=>ve[s](e,t.scope,n,i))})}function Se(e,r,t){let i=ee(e),o=vt(i,r);try{return t(i,o)}finally{A(e,{semanticProvider:!0}),T()}}function pr(e){return B(we(e))}function we(e){let r=u(e,"overview");return{statsResult:r.statsResult,warnings:r.warnings,dead:u(e,"dead").dead,isolated:u(e,"isolated").isolated,realCycleCount:u(e,"cycles").realCycleCount,similarCount:u(e,"similar").similarCount,duplicateBodies:u(e,"duplicate-bodies").duplicateBodies,twinDrift:u(e,"twin-drift").twinDrift,reactComponentDuplicates:u(e,"react-component-duplicates").reactComponentDuplicates,reactHookCandidates:u(e,"react-hook-candidates").reactHookCandidates,reactLargeComponentPressure:u(e,"react-large-component-pressure").reactLargeComponentPressure,vueComponentDuplicates:u(e,"vue-component-duplicates").vueComponentDuplicates,vueComposableCandidates:u(e,"vue-composable-candidates").vueComposableCandidates,vueLargeViewPressure:u(e,"vue-large-view-pressure").vueLargeViewPressure,extractCount:u(e,"extract-candidates").extractCount,wrappers:u(e,"wrapper-candidates").wrappers,passthroughs:u(e,"passthrough-candidates").passthroughs,stale:u(e,"stale-abstractions").stale,drift:u(e,"drift").drift,complexity:u(e,"complexity-hotspots").complexity,gitEvidence:Ce(e,"git-evidence")?.gitEvidence??null,suppressions:Ce(e,"suppressions")?.suppressions??null,coverageContracts:u(e,"coverage-contracts").coverageContracts}}function Ce(e,r){return e.find(t=>t.phase===r)}function u(e,r){let t=e.find(i=>i.phase===r);if(!t)throw new Error(`Missing health phase result: ${r}`);return t}function Qe(e,r,t,i){return we(Ke.map(o=>ve[o](e,r,i,t)))}function Je(e,r,t){return a(e,t,"dead",()=>{let i=q(e,{scope:r,...m.dead,scanLimit:t.candidateScanLimit,semantic:t.semantic});return D(yt(e,i.symbols))})}function Ze(e,r,t){return a(e,t,"isolated",()=>{let i=X(e,{scope:r,...m.isolated,scanLimit:t.candidateScanLimit,semantic:t.semantic});return D(Ht(e,i))})}function et(e,r,t){return a(e,t,"cycles",()=>U(e,{scope:r}).filter(o=>o.kind==="real").length)}function tt(e,r,t){let i=a(e,t,"similar",()=>J(e,{scope:r,...m.similar,scanLimit:t.candidateScanLimit,semantic:t.semantic}));return Math.min(i,t.candidateResultLimit)}function rt(e,r,t){return a(e,t,"extract-candidates",()=>K(e,{scope:r,...m.extract,limit:t.candidateResultLimit,scanLimit:t.candidateScanLimit,semantic:t.semantic}).length)}function it(e,r,t){return a(e,t,"duplicate-bodies",()=>{let i=G(e,{scope:r,...m.duplicateBodies,limit:t.candidateResultLimit,scanLimit:t.candidateScanLimit}),o=new Set,n=0;for(let s of i)for(let c of s.functions.slice(1))o.add(c.file),n+=c.loc;return{count:i.length,loc:n,files:[...o]}})}function ot(e,r,t){return a(e,t,"twin-drift",()=>{let i=j(e,{scope:r,...m.twinDrift,scanLimit:t.candidateScanLimit}).filter(s=>s.relationship==="divergent"||s.relationship==="identical"),o=new Set,n=0;for(let s of i)for(let c of s.members)o.add(c.file),n+=c.loc;return{count:i.length,loc:n,files:[...o].sort()}})}function nt(e,r,t){return a(e,t,"react-component-duplicates",()=>{let i=re(e,{scope:r,limit:t.candidateResultLimit,scanLimit:t.candidateScanLimit});return F(i)})}function st(e,r,t){return a(e,t,"react-hook-candidates",()=>{let i=ie(e,{scope:r,limit:t.candidateResultLimit,scanLimit:t.candidateScanLimit});return He(i,Lt)})}function ct(e,r,t){return a(e,t,"react-large-component-pressure",()=>{let i=oe(e,{scope:r,limit:t.candidateResultLimit,scanLimit:t.candidateScanLimit});return xt(i)})}function at(e,r,t){return a(e,t,"vue-component-duplicates",()=>{let i=ne(e,{scope:r,limit:t.candidateResultLimit,scanLimit:t.candidateScanLimit});return F(i)})}function ut(e,r,t){return a(e,t,"vue-composable-candidates",()=>{let i=se(e,{scope:r,limit:t.candidateResultLimit,scanLimit:t.candidateScanLimit});return He(i,Dt)})}function dt(e,r,t){return a(e,t,"vue-large-view-pressure",()=>{let i=ce(e,{scope:r,limit:t.candidateResultLimit,scanLimit:t.candidateScanLimit});return D(i)})}function lt(e,r,t){return a(e,t,"wrapper-candidates",()=>{let i=te(e,{scope:r,...m.wrappers,limit:t.candidateResultLimit,scanLimit:t.candidateScanLimit,semantic:t.semantic});return ye(i,Pt)})}function pt(e,r,t){return a(e,t,"passthrough-candidates",()=>{let i=Q(e,{scope:r,...m.passthroughs,limit:t.candidateResultLimit,scanLimit:t.candidateScanLimit,semantic:t.semantic});return ye(i,Rt)})}function mt(e,r,t){return a(e,t,"stale-abstractions",()=>{let i=Z(e,{scope:r,...m.stale,limit:t.candidateResultLimit,scanLimit:t.candidateScanLimit,semantic:t.semantic}),o=i.filter(n=>n.consumers===0).length;return{count:i.length,loc:i.reduce((n,s)=>n+s.loc,0),files:[...new Set(i.map(n=>n.file))],unused:o,singleUse:i.length-o}})}function ht(e,r){return a(e,r,"git-evidence",()=>{let t=z(e,{historyMode:r.gitHistoryMode}),i=t.fileChurn();if(!i)return null;let o=t.commitHistory(),n=N(e,void 0,{limit:r.candidateResultLimit,historyMode:r.gitHistoryMode}),s={};for(let[c,l]of i)s[c]={changes:l.changes,fixChanges:l.fixChanges};return{amplification:t.changeAmplification(),hiddenCoupling:{pairCount:n.findings.length,scoreCount:$(n.findings.reduce((c,l)=>c+be(l),0)),top:n.findings.slice(0,5).map(c=>({fileA:c.fileA,fileB:c.fileB,together:c.together,confidence:c.confidence,focusedTogether:c.focusedTogether,broadTogether:c.broadTogether,broadCommitRatio:c.broadCommitRatio,lastTogetherAt:c.lastTogetherAt,recentTogether:c.recentTogether,commitScope:c.commitScope,recency:c.recency,scoreWeight:be(c),subjectContext:c.subjectContext}))},fileStats:s,commitsScanned:o?.commits.length??0}})}function gt(e,r){return a(e,r,"suppressions",()=>{let t=ae(e);return{total:t.total,byCategory:{...t.byCategory}}})}function ft(e,r){return a(e,r,"coverage-contracts",()=>{let t=e.config.coverageContracts??[],o=W(e,t).filter(n=>n.status!=="ok");return{count:o.length,loc:0,files:[...new Set(o.map(n=>n.file))].sort()}})}function Ct(e,r,t){return a(e,t,"drift",()=>{let i=Y(e,{scope:r,...m.drift,includePatternDeviations:!1,limit:Number.POSITIVE_INFINITY,semantic:t.semantic}),o=i.results.filter(c=>c.kind!=="pattern-deviation"),n=o.filter(c=>c.actionTier==="direct").length,s=o.length-n;return{count:o.length,unusedImports:i.unusedImports,layerViolations:i.layerViolations,direct:n,signal:s}})}function bt(e,r,t){return a(e,t,"complexity-hotspots",()=>{let i=ue(e,{scope:r,minLoc:10,limit:t.complexityResultLimit,scanLimit:t.candidateScanLimit,semantic:t.semantic});return{top:i.slice(0,5).map(o=>({symbol:o.shortName,score:o.score,file:o.file})),extremeCount:i.filter(o=>o.score>We).length}})}function vt(e,r){let t=e.symbols>=Ue||e.documents>=qe,i=r?Number.POSITIVE_INFINITY:fe,o=r?Number.POSITIVE_INFINITY:Ye;return!t||r?{candidateScanLimit:void 0,candidateResultLimit:i,complexityResultLimit:o,semantic:!0,gitHistoryMode:r?"full":"bounded",releaseCachesBetweenPhases:!0,warnings:r&&t?["Large index detected; running health without candidate scan or result caps because full mode is enabled."]:[]}:{candidateScanLimit:ge,candidateResultLimit:i,complexityResultLimit:o,semantic:!1,gitHistoryMode:"bounded",releaseCachesBetweenPhases:!0,warnings:[`Large index detected; candidate-style health checks scanned their highest-priority ${ge} symbols and reported their top ${fe} findings. Enable full mode for unbounded candidate counts.`]}}function St(e,r){r.releaseCachesBetweenPhases&&(A(e),T())}function a(e,r,t,i){wt(t);try{return i()}finally{St(e,r)}}function wt(e){process.env.SCIP_QUERY_HEALTH_TRACE==="1"&&console.error(`[health] ${e}`)}function yt(e,r){return r.filter(t=>!k(e,t.relativePath)&&!M(e,t.symbol,t.relativePath)&&t.kind==="dead-code")}function Ht(e,r){return r.filter(t=>!k(e,t.relativePath)&&!M(e,t.symbol,t.relativePath))}function D(e){let r=new Set;for(let t of e){let i=t.relativePath??t.file;i&&r.add(i)}return{count:e.length,loc:e.reduce((t,i)=>t+i.loc,0),files:[...r]}}function ye(e,r){return{...D(e),scoreCount:$(e.reduce((i,o)=>i+r(o),0))}}function xt(e){let r=new Map;for(let t of e)r.set(t.file,Math.max(r.get(t.file)??0,t.loc));return{count:r.size,loc:[...r.values()].reduce((t,i)=>t+i,0),files:[...r.keys()]}}function F(e){let r=new Map;for(let t of e)r.set(t.fileA,Math.max(r.get(t.fileA)??0,t.locA)),r.set(t.fileB,Math.max(r.get(t.fileB)??0,t.locB));return{count:e.length,loc:[...r.values()].reduce((t,i)=>t+i,0),files:[...r.keys()]}}function He(e,r){return{...F(e),scoreCount:$(e.reduce((i,o)=>i+r(o),0))}}function Lt(e){let r=e.sharedHooks.length>0,t=xe({namedState:e.sharedState,requests:e.sharedRequests,lifecycle:e.sharedEffects,functions:e.sharedHandlers});return r&&t<=2?0:r?.5:Le(e.sharedState,e.sharedHandlers,e.sharedHandlerVerbs)?.25:t>=2?1:.5}function Dt(e){let r=e.sharedComposables.length+e.sharedStores.length>0,t=xe({namedState:e.sharedBindings,requests:e.sharedRequests,lifecycle:e.sharedLifecycle,functions:e.sharedFunctions});return r&&t<=2?0:r?.5:Le(e.sharedBindings,e.sharedFunctions,e.sharedFunctionVerbs)?.25:t>=2?1:.5}function xe(e){return e.requests.length*2+e.lifecycle.length+e.namedState.filter(r=>!Pe.has(De(r))).length+Math.min(e.functions.length,3)}function Le(e,r,t){let i=[...e,...r,...t].map(De);return i.length>0&&i.every(o=>Pe.has(o))}function De(e){return e.replace(/^handle/,"").replace(/^is/,"").replace(/^has/,"").toLowerCase()}function Pt(e){return e.actionTier==="signal"?.25:1}function Rt(e){return e.actionTier==="signal"?.25:1}function be(e){return e.commitScope==="broad-sweep"?e.recency==="recent"?.25:0:e.commitScope==="mixed"?e.recency==="recent"?.5:.25:e.recency==="recent"?1:.5}function $(e){return Math.round(e*100)/100}var Pe=new Set(["add","apply","cancel","change","clear","close","create","delete","draft","edit","error","filter","form","load","loading","name","open","refresh","remove","reset","save","saving","search","select","selected","submit","toggle","update","value"]);export{Ke as a,dr as b,lr as c,Xe as d,pr as e};
2
+ //# sourceMappingURL=chunk-W3ZVRLCH.js.map
@@ -0,0 +1,20 @@
1
+ import s from"better-sqlite3";var i=["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 s(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
+ EXISTS (
3
+ SELECT 1
4
+ FROM defn_enclosing_ranges local_der
5
+ JOIN documents local_d ON local_der.document_id = local_d.id
6
+ WHERE local_der.symbol_id = gs.id
7
+ ${this.pathExclusionsFor("local_d").trimStart()}
8
+ )
9
+ OR EXISTS (
10
+ SELECT 1
11
+ FROM mentions local_m
12
+ JOIN chunks local_c ON local_m.chunk_id = local_c.id
13
+ JOIN documents local_d ON local_c.document_id = local_d.id
14
+ WHERE local_m.symbol_id = gs.id
15
+ AND local_m.role = 1
16
+ ${this.pathExclusionsFor("local_d").trimStart()}
17
+ )
18
+ )`}get pathExclusions(){return this.pathExclusionsFor("d")}get symbolNoise(){return this.symbolNoiseFor("gs")}pathExclusionsFor(...t){return t.flatMap(e=>i.flatMap(a=>[`AND ${e}.relative_path NOT LIKE '${a}/%'`,`AND ${e}.relative_path NOT LIKE '%/${a}/%'`])).join(`
19
+ `)}symbolNoiseFor(t){return`AND ${t}.symbol NOT LIKE '%().(%' AND ${t}.symbol NOT LIKE '%typeLiteral%'`}all(t,...e){return this.statement(t).all(...e)}get(t,...e){return this.statement(t).get(...e)}close(){this.statementCache.clear(),this.db.close()}statement(t){let e=this.statementCache.get(t);return e||(e=this.db.prepare(t),this.statementCache.set(t,e)),e}};export{r as a};
20
+ //# sourceMappingURL=chunk-WA64GKWB.js.map
@@ -0,0 +1,71 @@
1
+ var L=[];function y(e){e.groups.length>0&&L.push(e)}function Ne(e,n){let t=new Set(n.groups);for(let i of L)i.groups.some(r=>t.has(r))&&(n.file!==void 0&&i.clearFile?i.clearFile(e,n.file):i.clearAll(e))}function F(){let e=new WeakMap;return{cache:e,ensure(n){let t=e.get(n);return t||(t=new Map,e.set(n,t)),t}}}function E(e,n){let{cache:t,ensure:i}=F(),r={get(a,s,o){let c=i(a);if(c.has(s))return c.get(s);let d=o();return c.set(s,d),d},invalidate(a,s){t.get(a)?.delete(s)},invalidateAll(a){t.delete(a)},size(a){return t.get(a)?.size??0}};return y({name:e,groups:n.clearGroups,clearAll:a=>r.invalidateAll(a),clearFile:(a,s)=>r.invalidate(a,s)}),r}function Le(e,n){let t=new WeakMap,i={get(r,a){let s=t.get(r);if(s)return s.value;let o=a();return t.set(r,{value:o}),o},invalidate(r){t.delete(r)},has(r){return t.has(r)}};return y({name:e,groups:n.clearGroups,clearAll:r=>i.invalidate(r)}),i}var te={clearGroups:["whole-project","source-file"]};function Fe(e){return ne(e,te)}function ne(e,n){let{cache:t,ensure:i}=F(),r={get(a,s,o,c){let d=i(a),D=d.get(s);if(D&&D.source===o)return D.value;let w=c();return d.set(s,{source:o,value:w}),w},invalidate(a,s){t.get(a)?.delete(s)},invalidateAll(a){t.delete(a)}};return y({name:e,groups:n.clearGroups,clearAll:a=>r.invalidateAll(a),clearFile:(a,s)=>r.invalidate(a,s)}),r}import{createHash as re}from"crypto";import{readFileSync as ie}from"fs";import{dirname as k,join as I}from"path";import ae from"better-sqlite3";var se="evidence.db";var _=new WeakMap,oe=E("evidence-content-hash",{clearGroups:["whole-project","source-file"]}),ce=E("evidence-project-fingerprint",{clearGroups:["whole-project"]}),g="evidence-v1",h="version NOT LIKE 'evidence-%'";function x(e){return re("sha256").update(e).digest("hex")}function Ve(e,n,t){return oe.get(e,n,()=>x(t))}function A(e){return ce.get(e,"current",()=>{try{let n=JSON.parse(ie(I(k(e.config.dbPath),"meta.json"),"utf-8"));if(n.version!==2&&n.version!==3||n.status!=="complete"&&n.status!=="partial"||n.fingerprint===void 0)return null;let t=Array.isArray(n.indexedLanguages)?[...n.indexedLanguages].sort():[];return x(JSON.stringify({fingerprint:n.fingerprint,indexedLanguages:t,status:n.status}))}catch(n){return C("project fingerprint unavailable",n),null}})}function C(e,n){process.env.SCIP_QUERY_DEBUG&&console.error(`evidence-cache: ${e}: ${n instanceof Error?n.message:String(n)}`)}function p(e){if(_.has(e))return _.get(e)??null;let n=null;try{let t=new ae(I(k(e.config.dbPath),se));t.pragma("journal_mode = WAL"),t.pragma("busy_timeout = 5000"),t.pragma("synchronous = NORMAL"),t.exec(`
2
+ CREATE TABLE IF NOT EXISTS file_evidence (
3
+ kind TEXT NOT NULL,
4
+ relative_path TEXT NOT NULL,
5
+ content_hash TEXT NOT NULL,
6
+ version TEXT NOT NULL,
7
+ payload TEXT NOT NULL,
8
+ PRIMARY KEY (kind, relative_path)
9
+ );
10
+ CREATE TABLE IF NOT EXISTS project_evidence (
11
+ kind TEXT NOT NULL,
12
+ cache_key TEXT NOT NULL,
13
+ project_fingerprint TEXT NOT NULL,
14
+ version TEXT NOT NULL,
15
+ payload TEXT NOT NULL,
16
+ PRIMARY KEY (kind, cache_key)
17
+ );
18
+ CREATE TABLE IF NOT EXISTS semantic_callees (
19
+ relative_path TEXT NOT NULL,
20
+ symbol TEXT NOT NULL,
21
+ content_hash TEXT NOT NULL,
22
+ deps_digest TEXT NOT NULL,
23
+ version TEXT NOT NULL,
24
+ payload TEXT NOT NULL,
25
+ PRIMARY KEY (relative_path, symbol)
26
+ );
27
+ CREATE TABLE IF NOT EXISTS semantic_references (
28
+ relative_path TEXT NOT NULL,
29
+ symbol TEXT NOT NULL,
30
+ project_fingerprint TEXT NOT NULL,
31
+ version TEXT NOT NULL,
32
+ payload TEXT NOT NULL,
33
+ PRIMARY KEY (relative_path, symbol)
34
+ );
35
+ CREATE TABLE IF NOT EXISTS finding_outcome_ledger (
36
+ check_name TEXT NOT NULL,
37
+ finding_id TEXT NOT NULL,
38
+ first_seen INTEGER NOT NULL,
39
+ last_seen INTEGER NOT NULL,
40
+ times_shown INTEGER NOT NULL,
41
+ outcome TEXT NOT NULL,
42
+ PRIMARY KEY (check_name, finding_id)
43
+ );
44
+ `),n={evidence:t,readFileEvidence:t.prepare("SELECT payload FROM file_evidence WHERE kind = ? AND relative_path = ? AND content_hash = ? AND version = ?"),readLegacyFileEvidence:t.prepare(`SELECT payload FROM file_evidence
45
+ WHERE kind = ? AND relative_path = ? AND content_hash = ? AND ${h}
46
+ ORDER BY version DESC
47
+ LIMIT 1`),writeFileEvidence:t.prepare("INSERT OR REPLACE INTO file_evidence (kind, relative_path, content_hash, version, payload) VALUES (?, ?, ?, ?, ?)"),readProjectEvidence:t.prepare("SELECT payload FROM project_evidence WHERE kind = ? AND cache_key = ? AND project_fingerprint = ? AND version = ?"),readLegacyProjectEvidence:t.prepare(`SELECT payload FROM project_evidence
48
+ WHERE kind = ? AND cache_key = ? AND project_fingerprint = ? AND ${h}
49
+ ORDER BY version DESC
50
+ LIMIT 1`),writeProjectEvidence:t.prepare("INSERT OR REPLACE INTO project_evidence (kind, cache_key, project_fingerprint, version, payload) VALUES (?, ?, ?, ?, ?)"),readCallees:t.prepare(`SELECT payload FROM semantic_callees
51
+ WHERE relative_path = ? AND symbol = ? AND content_hash = ? AND deps_digest = ? AND version = ?`),readLegacyCallees:t.prepare(`SELECT payload FROM semantic_callees
52
+ WHERE relative_path = ? AND symbol = ? AND content_hash = ? AND deps_digest = ? AND ${h}
53
+ ORDER BY version DESC
54
+ LIMIT 1`),readCalleesForFile:t.prepare(`SELECT symbol, payload FROM semantic_callees
55
+ WHERE relative_path = ? AND content_hash = ? AND deps_digest = ? AND version = ?`),readLegacyCalleesForFile:t.prepare(`SELECT symbol, payload FROM semantic_callees
56
+ WHERE relative_path = ? AND content_hash = ? AND deps_digest = ? AND ${h}
57
+ ORDER BY symbol, version DESC`),writeCallees:t.prepare(`INSERT OR REPLACE INTO semantic_callees
58
+ (relative_path, symbol, content_hash, deps_digest, version, payload) VALUES (?, ?, ?, ?, ?, ?)`),dropStaleCallees:t.prepare("DELETE FROM semantic_callees WHERE relative_path = ? AND content_hash != ?"),readReferences:t.prepare(`SELECT payload FROM semantic_references
59
+ WHERE relative_path = ? AND symbol = ? AND project_fingerprint = ? AND version = ?`),readLegacyReferences:t.prepare(`SELECT payload FROM semantic_references
60
+ WHERE relative_path = ? AND symbol = ? AND project_fingerprint = ? AND ${h}
61
+ ORDER BY version DESC
62
+ LIMIT 1`),readReferencesForFile:t.prepare(`SELECT symbol, payload FROM semantic_references
63
+ WHERE relative_path = ? AND project_fingerprint = ? AND version = ?`),readLegacyReferencesForFile:t.prepare(`SELECT symbol, payload FROM semantic_references
64
+ WHERE relative_path = ? AND project_fingerprint = ? AND ${h}
65
+ ORDER BY symbol, version DESC`),writeReferences:t.prepare(`INSERT OR REPLACE INTO semantic_references
66
+ (relative_path, symbol, project_fingerprint, version, payload) VALUES (?, ?, ?, ?, ?)`),dropStaleReferences:t.prepare("DELETE FROM semantic_references WHERE relative_path = ? AND project_fingerprint != ?"),readFindingOutcomeLedger:t.prepare("SELECT check_name, finding_id, first_seen, last_seen, times_shown, outcome FROM finding_outcome_ledger"),deleteFindingOutcomeLedgerForCheck:t.prepare("DELETE FROM finding_outcome_ledger WHERE check_name = ?"),writeFindingOutcomeLedgerRow:t.prepare(`INSERT INTO finding_outcome_ledger
67
+ (check_name, finding_id, first_seen, last_seen, times_shown, outcome) VALUES (?, ?, ?, ?, ?, ?)`)}}catch(t){C("disabled (open failed)",t)}return _.set(e,n),n}function u(e,n,t){C(`disabled (${n})`,t),_.set(e,null)}function j(e,n,t,i){let r=p(e);if(!r)return null;try{return(r.readFileEvidence.get(n,t,i,g)??r.readLegacyFileEvidence.get(n,t,i))?.payload??null}catch(a){return u(e,"file_evidence read",a),null}}function M(e,n,t,i,r){let a=p(e);if(a)try{a.writeFileEvidence.run(n,t,i,g,r)}catch(s){u(e,"file_evidence write",s)}}function V(e,n){if(n.length===0)return;let t=p(e);if(t)try{t.evidence.transaction(()=>{for(let i of n)t.writeFileEvidence.run(i.kind,i.relativePath,i.contentHash,g,i.payload)})()}catch(i){u(e,"file_evidence batch write",i)}}function K(e,n,t,i){let r=p(e);if(!r)return null;try{return(r.readProjectEvidence.get(n,t,i,g)??r.readLegacyProjectEvidence.get(n,t,i))?.payload??null}catch(a){return u(e,"project_evidence read",a),null}}function U(e,n,t,i,r){let a=p(e);if(a)try{a.writeProjectEvidence.run(n,t,i,g,r)}catch(s){u(e,"project_evidence write",s)}}function Ke(e,n,t,i){let r=p(e);if(!r)return new Map;try{let a=r.readCalleesForFile.all(n,t,i,g),s=r.readLegacyCalleesForFile.all(n,t,i);return H([...s,...a])}catch(a){return u(e,"semantic_callees bulk read",a),new Map}}function Ue(e,n,t){let i=p(e);if(!i)return new Map;try{let r=i.readReferencesForFile.all(n,t,g),a=i.readLegacyReferencesForFile.all(n,t);return H([...a,...r])}catch(r){return u(e,"semantic_references bulk read",r),new Map}}function H(e){let n=new Map;for(let t of e)n.set(t.symbol,t.payload);return n}function He(e,n){if(n.length===0)return;let t=p(e);if(t)try{t.evidence.transaction(()=>{let i=new Set;for(let r of n){let a=`${r.relativePath}\0${r.contentHash}`;i.has(a)||(i.add(a),t.dropStaleCallees.run(r.relativePath,r.contentHash)),t.writeCallees.run(r.relativePath,r.symbol,r.contentHash,r.depsDigest,g,r.payload)}})()}catch(i){u(e,"semantic_callees write",i)}}function We(e,n){if(n.length===0)return;let t=p(e);if(t)try{t.evidence.transaction(()=>{let i=new Set;for(let r of n){let a=`${r.relativePath}\0${r.projectFingerprint}`;i.has(a)||(i.add(a),t.dropStaleReferences.run(r.relativePath,r.projectFingerprint)),t.writeReferences.run(r.relativePath,r.symbol,r.projectFingerprint,g,r.payload)}})()}catch(i){u(e,"semantic_references write",i)}}function Xe(e){let n=p(e);if(!n)return[];try{return n.readFindingOutcomeLedger.all().map(i=>({check:i.check_name,findingId:i.finding_id,firstSeen:i.first_seen,lastSeen:i.last_seen,timesShown:i.times_shown,outcome:i.outcome}))}catch(t){return u(e,"finding_outcome_ledger read",t),[]}}function $e(e){return typeof e=="object"&&e!==null}function Be(e){return Array.isArray(e)&&e.every(n=>typeof n=="string")?e:null}import{appendFileSync as de,mkdirSync as le}from"fs";import{createHash as pe,randomUUID as ue}from"crypto";import{dirname as ge}from"path";import{performance as v}from"perf_hooks";var $="SCIP_QUERY_PROFILE",B="SCIP_QUERY_PROFILE_OUT",G="SCIP_QUERY_PROFILE_COMMAND",z="SCIP_QUERY_PROFILE_CACHE_STATE",b="SCIP_QUERY_PROFILE_RUN_ID",R="SCIP_QUERY_PROFILE_WORKLOAD_IDENTITY",N="SCIP_QUERY_PROFILE_WORKLOAD_IDENTITY_KIND",J=[$,B,G,z,b,R,N],Ze=new Set(J),W=new Set,X=new Map,Y=!1;function f(){let e=process.env[$];return e==="1"||e==="true"}function fe(){return process.env[B]}function Q(){return process.env[G]}function Ee(){return process.env[z]}function q(){let e=process.env[b];if(e)return e;if(!f())return;let n=ue();return process.env[b]=n,n}function Z(){return process.env[R]}function he(e){let n=Z();if(n)return n;if(!f())return;let t=q();if(!t)return;let i=e.projectFingerprint?"published-project":"run-only",r=m(["profile-workload-v1",e.toolVersion,e.command,e.projectFingerprint??t]);return process.env[R]=r,process.env[N]=i,r}function m(e){return pe("sha256").update(JSON.stringify(e)).digest("hex").slice(0,24)}function et(){return Object.fromEntries(J.flatMap(e=>{let n=process.env[e];return n===void 0?[]:[[e,n]]}))}function O(e,n,t){if(!f())return n();let i=v.now();try{let r=n();return S({type:"span",name:e,durationMs:Math.round(v.now()-i),ok:!0,...T(t)??{}}),r}catch(r){throw S({type:"span",name:e,durationMs:Math.round(v.now()-i),ok:!1,error:r instanceof Error?r.message:String(r),...T(t)??{}}),r}}async function tt(e,n,t){if(!f())return n();let i=v.now();try{let r=await n();return S({type:"span",name:e,durationMs:Math.round(v.now()-i),ok:!0,...T(t)??{}}),r}catch(r){throw S({type:"span",name:e,durationMs:Math.round(v.now()-i),ok:!1,error:r instanceof Error?r.message:String(r),...T(t)??{}}),r}}function S(e,n=fe()){let t=ve(e),i={timestamp:new Date().toISOString(),pid:process.pid,runId:q(),command:Q(),cacheState:Ee(),...t,...e},r=`${JSON.stringify(i)}
68
+ `;if(n)try{let a=ge(n);W.has(a)||(le(a,{recursive:!0}),W.add(a)),de(n,r);return}catch(a){Y||(Y=!0,process.stderr.write(`[profile] failed to write ${n}: ${a instanceof Error?a.message:String(a)}
69
+ `));return}f()&&process.stderr.write(r)}function ve(e){let n=Z()??he({command:Q()??"unknown",toolVersion:"unknown",projectFingerprint:null});if(!n)return{};let t=process.env[N],i=typeof e.name=="string"?e.name:void 0;if(!i)return{workloadIdentity:n,workloadIdentityKind:t};let r=i.split(/[.:]/,1)[0]??i,a=`${n}\0${i}`,s=X.get(a);return s||(s=m(["profile-subsystem-v1",n,i]),X.set(a,s)),{workloadIdentity:n,workloadIdentityKind:t,subsystem:r,subsystemWorkIdentity:s}}function T(e){return typeof e=="function"?e():e}var me=[l("source-facts",{dependsOn:["content-hash","tool-version"],keyParts:["kind","relativePath","contentHash","payloadVersion"],stalenessTest:"tests/storage/evidence-cache.test.ts",owner:"src/source/source-facts.ts"}),l("file-definitions",{dependsOn:["content-hash","project-fingerprint","indexed-language-set","tool-version"],keyParts:["kind","relativePath","contentHash","projectFingerprint","payloadVersion"],stalenessTest:"tests/storage/evidence-cache.test.ts",owner:"src/symbols/definition-catalog.ts"}),l("definition-exclusions",{dependsOn:["content-hash","tool-version"],keyParts:["kind","relativePath","contentHash","payloadVersion"],stalenessTest:"tests/storage/evidence-cache.test.ts",owner:"src/analysis/framework-patterns.ts"}),l("doc-path-tokens",{dependsOn:["content-hash","tool-version"],keyParts:["kind","relativePath","contentHash","payloadVersion"],stalenessTest:"tests/storage/evidence-products.test.ts",owner:"tests/storage/evidence-cache.test.ts"}),l("doc-path-evidence",{dependsOn:["content-hash","git-history","git-head","tool-version"],keyParts:["kind","relativePath","contentHash","trackedFiles","historyWindow","payloadVersion"],stalenessTest:"tests/storage/evidence-cache.test.ts",owner:"src/queries/cleanup/doc-drift.ts"}),l("source-imports",{dependsOn:["content-hash","import-resolution-fingerprint","config","tool-version"],keyParts:["kind","relativePath","contentHash","importResolutionFingerprint","payloadVersion"],stalenessTest:"tests/storage/evidence-cache.test.ts",owner:"src/language-parsers/index.ts"}),l("source-reexports",{dependsOn:["content-hash","import-resolution-fingerprint","config","tool-version"],keyParts:["kind","relativePath","contentHash","importResolutionFingerprint","payloadVersion"],stalenessTest:"tests/storage/evidence-cache.test.ts",owner:"src/language-parsers/index.ts"}),l("source-fingerprints",{dependsOn:["content-hash","project-fingerprint","indexed-language-set","tool-version"],keyParts:["kind","relativePath","contentHash","projectFingerprint","payloadVersion"],stalenessTest:"tests/symbols/definition-catalog.test.ts",owner:"src/queries/cleanup/similar.ts"}),l("consumer-file-usage",{dependsOn:["content-hash","project-fingerprint","indexed-language-set","tool-version"],keyParts:["kind","relativePath","contentHash","projectFingerprint","payloadVersion"],stalenessTest:"tests/storage/evidence-cache.test.ts",owner:"src/queries/internal/consumer-evidence.ts"}),l("react-component-behavior-profiles",{dependsOn:["content-hash","tool-version"],keyParts:["kind","relativePath","contentHash","payloadVersion"],stalenessTest:"tests/storage/evidence-cache.test.ts",owner:"src/source/react-profile.ts"}),l("git-file-adds",{dependsOn:["git-head","git-history","tool-version"],keyParts:["kind","cacheKey","head","historyWindow","payloadVersion"],stalenessTest:"tests/storage/evidence-cache.test.ts",owner:"src/analysis/git-history.ts"}),l("typescript-reference-fragments",{dependsOn:["content-hash","transitive-deps-digest","config","tool-version"],keyParts:["kind","relativePath","semanticIdentity","payloadVersion"],stalenessTest:"tests/semantic/typescript/typescript-reference-fragments.test.ts",owner:"src/semantic/typescript/reference-fragment-shadow.ts"}),l("typescript-import-usage",{dependsOn:["content-hash","transitive-deps-digest","config","tool-version"],keyParts:["kind","relativePath","semanticIdentity","payloadVersion"],stalenessTest:"tests/semantic/typescript/typescript-semantic-provider.test.ts",owner:"src/semantic/shared-primitives.ts"}),l("typescript-signatures",{dependsOn:["content-hash","transitive-deps-digest","config","tool-version"],keyParts:["kind","relativePath","semanticIdentity","payloadVersion"],stalenessTest:"tests/semantic/typescript/typescript-semantic-provider.test.ts",owner:"src/semantic/shared-primitives.ts"}),P("file-dependency-graph",{dependsOn:["project-fingerprint","indexed-language-set","import-resolution-fingerprint","tool-version"],keyParts:["kind","scope","projectFingerprint","payloadVersion"],stalenessTest:"tests/symbols/file-dep-graph.test.ts",owner:"src/symbols/graph/file-dep-graph.ts"}),P("semantic-import-usage",{dependsOn:["project-fingerprint","indexed-language-set","import-resolution-fingerprint","tool-version"],keyParts:["kind","relativePath","projectFingerprint","language","semanticEngine","payloadVersion"],stalenessTest:"tests/semantic/rust/rust-semantic-cache-gate.test.ts",owner:"src/semantic/shared-primitives.ts"}),P("semantic-signatures",{dependsOn:["project-fingerprint","indexed-language-set","tool-version"],keyParts:["kind","relativePath","symbol","projectFingerprint","language","semanticEngine","payloadVersion"],stalenessTest:"tests/semantic/rust/rust-semantic-cache-gate.test.ts",owner:"src/semantic/shared-primitives.ts"}),P("health-semantic-prewarm",{dependsOn:["project-fingerprint","indexed-language-set","tool-version"],keyParts:["kind","scope","cliVersion","projectFingerprint","payloadVersion"],stalenessTest:"tests/runtime/cli-support.test.ts",owner:"src/runtime/cli-support.ts"})];function ot(e){let n=new Map;return{kind:e.kind,read(t,i,r){let a=!1,s=0,o;if(f()){let c=A(t);if(c){let d=`${c}\0${i}\0${r}`;o=n.get(d),o||(o=m(["evidence-product-file-read-v1",e.kind,c,i,r]),n.set(d,o))}}return O("evidence-product.file.read",()=>{let c=j(t,e.kind,i,r);if(c===null)return null;s=c.length;try{let d=e.deserialize(c);return a=d!==null,d}catch{return null}},()=>({...o?{workIdentity:o,workOutcome:"computed"}:{},scope:"file",kind:e.kind,available:!0,hit:a,payloadBytes:s}))},write(t,i,r,a){M(t,e.kind,i,r,e.serialize(a))},writeBatch(t,i){V(t,i.map(r=>({kind:e.kind,relativePath:r.relativePath,contentHash:r.contentHash,payload:e.serialize(r.value)})))}}}function ct(e){let n=new Map;return{kind:e.kind,read(t,i,r){let a=!1,s=0,o;if(f()){let c=`${r}\0${i}`;o=n.get(c),o||(o=m(["evidence-product-project-read-v1",e.kind,r,i]),n.set(c,o))}return O("evidence-product.project.read",()=>{let c=K(t,e.kind,i,r);if(c===null)return null;s=c.length;try{let d=e.deserialize(c);return a=d!==null,d}catch{return null}},()=>({...o?{workIdentity:o,workOutcome:"computed"}:{},scope:"project",kind:e.kind,available:!0,hit:a,payloadBytes:s}))},write(t,i,r,a){U(t,e.kind,i,r,e.serialize(a))}}}function dt(e){let n=me.find(t=>t.kind===e);if(!n)throw new Error(`missing evidence product manifest entry for ${e}`);return n.invalidation}function l(e,n){return{scope:"file",kind:e,invalidation:{scope:"file",...n}}}function P(e,n){return{scope:"project",kind:e,invalidation:{scope:"project",...n}}}import{readFileSync as ye}from"fs";import{join as _e}from"path";var Se=E("source-text",{clearGroups:["whole-project","source-file"]}),Te=E("source-lines",{clearGroups:["whole-project","source-file"]});function Pe(e,n){let t=n.replace(/\\/g,"/");return Se.get(e,t,()=>{let i=_e(e.config.projectRoot,t);try{return ye(i,"utf-8")}catch(r){if(De(r))return"";throw r}})}function De(e){return typeof e=="object"&&e!==null&&"code"in e&&(e.code==="ENOENT"||e.code==="ENOTDIR")}function Ce(e,n){let t=n.replace(/\\/g,"/");return Te.get(e,t,()=>{let i=Pe(e,t);return i?i.split(`
70
+ `):[]})}var be=/^\s*(?:\/\/|#|\/\*+|\*)\s*scip-query[\s:-]*ignore(?:[\s:-]+(dead(?:-code)?|stale|wrapper|passthrough|drift|extract|similar|twin))?\b/i;function Re(e){let n=be.exec(e);return n?n[1]??"":null}function ft(e,n,t){return ee(e,n,t).length>0}function Et(e,n,t,i){let r=i.toLowerCase();return ee(e,n,t).some(a=>a.toLowerCase()===r)}function ee(e,n,t){if(t<=0)return[];let i=Ce(e,n);if(i.length===0)return[];let r=[];for(let a=t-1;a>=0&&a>=t-5;a-=1){let s=(i[a]??"").trim();if(s==="")continue;let o=Re(s);if(o!==null){r.push(o);continue}if(!s.startsWith("//")&&!s.startsWith("*")&&!s.startsWith("/*")&&!s.startsWith("@")&&!s.startsWith("#"))return r}return r}export{y as a,Ne as b,E as c,Le as d,Fe as e,ne as f,x as g,Ve as h,A as i,Ke as j,Ue as k,He as l,We as m,Xe as n,$e as o,Be as p,f as q,et as r,O as s,tt as t,S as u,ot as v,ct as w,dt as x,Pe as y,Ce as z,Re as A,ft as B,Et as C};
71
+ //# sourceMappingURL=chunk-WFRZGMWJ.js.map
@@ -0,0 +1,2 @@
1
+ import{b as m,c as d}from"./chunk-NLRWGGPY.js";import{a as $}from"./chunk-G4KQ7S74.js";function v(r,e={}){return P(r,e).cycles}function P(r,e={}){let{scope:s,maxDepth:i=10}=e,n=$(r,s,{scipEdges:"imports-only"}),c=[],a=new Set,l=new Set,f=[],g=!1;function b(t,o){if(o>i){g=!0;return}if(l.has(t)){let h=f.indexOf(t);if(h!==-1){let u=f.slice(h).concat(t),y=u.indexOf(u.reduce((C,D)=>C<D?C:D)),p=[...u.slice(y,-1),...u.slice(0,y),u[y]],k=p.join(" -> ");S.has(k)||(S.add(k),c.push({path:p,kind:w(p)}))}return}if(a.has(t))return;a.add(t),l.add(t),f.push(t);let x=n.get(t);if(x)for(let h of x)b(h,o+1);f.pop(),l.delete(t)}let S=new Set;for(let t of n.keys())a.has(t)||b(t,0);return c.sort((t,o)=>t.kind!==o.kind?t.kind==="real"?-1:1:t.path.length-o.path.length),{cycles:c,truncated:g,maxDepth:i}}function w(r){for(let i of r){let n=m(i);if(n==="test"||n==="barrel"||n==="entry")return"module-hierarchy"}if(r.length!==3)return"real";let[e,s]=r;return!e||!s?"real":d(e)||d(s)||B(e,s)||B(s,e)||R(e,s)||R(s,e)||m(e)==="entry"||m(s)==="entry"?"module-hierarchy":"real"}function B(r,e){if(!/\.rs$/.test(r)||!/\.rs$/.test(e))return!1;let s=e.replace(/\.rs$/,"/");return r.startsWith(s)?!r.slice(s.length).includes("/"):!1}function R(r,e){if(!/\.rs$/.test(r)||!/\.rs$/.test(e))return!1;let s=r.replace(/\.rs$/,""),i=e.replace(/\.rs$/,"");if(s===i+"_tests"||s===i+"/tests")return!0;let n=r.split("/"),c=e.split("/");if(n.length===c.length&&n.includes("tests")&&c.includes("src")){let a=n[n.length-1],l=c[c.length-1];if(a&&a===l)return!0}return!1}export{v as a,P as b};
2
+ //# sourceMappingURL=chunk-WN6XEYVX.js.map
@@ -0,0 +1,101 @@
1
+ import{a as ar,b as x,c as Le,d as cr,e as ue,f as lr,g as pr}from"./chunk-FFIYGYQR.js";import{a as St,b as be}from"./chunk-3M2UCPFS.js";import{a as gt,b as ht,e as yt}from"./chunk-JHK2DMUQ.js";import{spawn as Jn}from"child_process";import{closeSync as Yn,existsSync as Qn,mkdirSync as Zn,openSync as ei,readFileSync as vt,rmSync as ur,writeFileSync as ti}from"fs";import{dirname as ri,join as xt,resolve as fr}from"path";import{fileURLToPath as Lc}from"url";var Wc=3,$c=5e3,ni="watch.lock",ii="watch-state.json",si="watch-activity.json";function Vc(e){return{lockPath:xt(e,ni),statePath:xt(e,ii),activityPath:xt(e,si)}}function Uc(e){try{return oi(JSON.parse(vt(e,"utf8")))}catch{return null}}function Bc(e,t){be(e,t)}function qc(e){try{let t=JSON.parse(vt(e,"utf8"));return t.version!==1||!v(t.at)||t.refreshRequestedAt!==void 0&&!v(t.refreshRequestedAt)||t.refreshDetail!==void 0&&typeof t.refreshDetail!="string"?null:{atMs:Date.parse(t.at),...t.refreshRequestedAt===void 0?{}:{refreshRequestedAtMs:Date.parse(t.refreshRequestedAt)},...t.refreshDetail===void 0?{}:{refreshDetail:t.refreshDetail}}}catch{return null}}function Hc(e,t,r={}){let n=r.pid??process.pid,i=r.isProcessAlive??St,s=()=>{},o=bt(e);if(o&&i(o.pid))return{acquired:!1,lockPath:e,message:dr(e,t,o),release:s};o&&ur(e,{force:!0}),Zn(ri(e),{recursive:!0});let a;try{a=ei(e,"wx")}catch(p){if(ai(p)==="EEXIST")return{acquired:!1,lockPath:e,message:dr(e,t,bt(e)),release:s};throw p}let c={version:1,pid:n,projectRoot:fr(t),startedAt:(r.now??(()=>new Date))().toISOString()};ti(a,`${JSON.stringify(c)}
2
+ `);let l=!1;return{acquired:!0,lockPath:e,message:"",release:()=>{if(l)return;l=!0,Yn(a);let p=bt(e);p?.pid===c.pid&&p.startedAt===c.startedAt&&ur(e,{force:!0})}}}function bt(e){try{let t=JSON.parse(vt(e,"utf-8"));return t.version!==1||typeof t.pid!="number"||!Number.isInteger(t.pid)||t.pid<=0||typeof t.projectRoot!="string"||!v(t.startedAt)?null:t}catch{return null}}function oi(e){if(!e||typeof e!="object")return null;let t=e;return t.version!==1||typeof t.protocolVersion!="number"||typeof t.pid!="number"||!Number.isInteger(t.pid)||t.pid<=0||typeof t.projectRoot!="string"||typeof t.cliVersion!="string"||!v(t.startedAt)||!v(t.heartbeatAt)||!v(t.lastActivityAt)||!ci(t.watcher)||t.idleDeadlineAt!==void 0&&!v(t.idleDeadlineAt)||t.lastError!==void 0&&!li(t.lastError)||t.lastRefresh!==void 0&&!pi(t.lastRefresh)||t.typescriptSemantic!==void 0&&!ui(t.typescriptSemantic)||t.typescriptIndex!==void 0&&!di(t.typescriptIndex)?null:t}function zc(e){return e.idleTimeoutMs===0||e.watcher.state!=="idle"?!1:e.nowMs-e.lastActivityAtMs>=e.idleTimeoutMs}function dr(e,t,r){return`error: scip-query watch is already running for ${fr(t)}${r?` (pid ${r.pid}, started ${r.startedAt}; lock: ${e})`:` (lock: ${e})`}. Stop that watcher before starting another.`}function ai(e){return typeof e=="object"&&e&&"code"in e?e.code:void 0}var Gc={now:Date.now,isProcessAlive:St,spawnServer(e,t,r,n){if(!Qn(e))throw new Error(`Watch service helper was not found at ${e}. Run npm run build first.`);Jn(process.execPath,[e,t,r,JSON.stringify(n)],{detached:!0,stdio:"ignore",env:{...process.env,SCIP_QUERY_SKIP_WATCH_SERVICE:"1"}}).unref()},signalProcess(e){process.kill(e,"SIGTERM")},sleep(e){let t=new Int32Array(new SharedArrayBuffer(4));Atomics.wait(t,0,0,e)}};function v(e){return typeof e=="string"&&Number.isFinite(Date.parse(e))}function ci(e){if(!e||typeof e!="object"||!("state"in e))return!1;let t=e;switch(t.state){case"idle":return!0;case"waiting":return w(t.changedFiles)&&w(t.reindexAt);case"indexing":return w(t.startedAt);case"cooldown":return w(t.until)&&typeof t.dirty=="boolean";default:return!1}}function li(e){if(!e||typeof e!="object")return!1;let t=e;return v(t.at)&&typeof t.message=="string"}function pi(e){if(!e||typeof e!="object")return!1;let t=e;return typeof t.trigger?.kind=="string"&&typeof t.result=="string"&&v(t.startedAt)&&v(t.completedAt)&&w(t.durationMs)}function ui(e){if(!e||typeof e!="object")return!1;let t=e;return typeof t.protocolVersion=="number"&&(t.state==="idle"||t.state==="ready"||t.state==="unavailable"||t.state==="error")&&w(t.requests)&&w(t.sessionsCreated)&&w(t.sessionsReused)&&w(t.sessionsRefreshed)&&w(t.sessionsReplaced)&&w(t.projectsCreated)&&(t.lastRequestAt===void 0||v(t.lastRequestAt))&&(t.lastError===void 0||typeof t.lastError=="string")&&(t.busyUntil===void 0||v(t.busyUntil))}function di(e){if(!e||typeof e!="object")return!1;let t=e;return typeof t.protocolVersion=="number"&&(t.state==="idle"||t.state==="ready"||t.state==="unavailable"||t.state==="error")&&Q(t.requests)&&Q(t.sessionsCreated)&&Q(t.sessionsReplaced)&&Q(t.initializations)&&Q(t.programUpdates)&&Q(t.documentsEmitted)&&Q(t.documentsRemoved)&&(t.lastRequestAt===void 0||v(t.lastRequestAt))&&(t.lastDurationMs===void 0||w(t.lastDurationMs)&&t.lastDurationMs>=0)&&(t.lastError===void 0||typeof t.lastError=="string")&&(t.busyUntil===void 0||v(t.busyUntil))}function w(e){return typeof e=="number"&&Number.isFinite(e)}function Q(e){return typeof e=="number"&&Number.isInteger(e)&&e>=0}import{createHash as fi}from"crypto";import{readFileSync as mi}from"fs";import{dirname as gi,join as Oe}from"path";var hi=2,yi="typescript-index";function Qc(e){let t=Oe(e,yi);return{rootDir:t,requestDir:Oe(t,"requests"),responseDir:Oe(t,"responses")}}function Zc(e){let t=JSON.parse(e);if(t.protocolVersion!==hi||typeof t.id!="string"||!t.id||typeof t.baseGeneration!="string"||!t.baseGeneration||typeof t.deadlineAtMs!="number"||!Number.isFinite(t.deadlineAtMs)||!Si(t.request))throw new Error("TypeScript index service received an invalid mailbox request.");return t}function el(e){try{let t=JSON.parse(mi(Oe(gi(e),"meta.json"),"utf8"));return t.version!==2&&t.version!==3||t.status!=="complete"||typeof t.updatedAt!="string"||t.fingerprint===void 0?null:fi("sha256").update(JSON.stringify({version:t.version,status:t.status,updatedAt:t.updatedAt,fingerprint:t.fingerprint,indexedLanguages:t.indexedLanguages})).digest("hex")}catch{return null}}function Si(e){if(!e||typeof e!="object")return!1;let t=e,r=mr(t.modifiedFiles)?t.modifiedFiles:null,n=mr(t.affectedFiles)?t.affectedFiles:null;return t.kind==="emit-documents"&&typeof t.tsconfigPath=="string"&&!!t.tsconfigPath&&typeof t.projectArgument=="string"&&!!t.projectArgument&&typeof t.projectIdentity=="string"&&!!t.projectIdentity&&typeof t.producerIdentity=="string"&&!!t.producerIdentity&&r!==null&&r.length>0&&new Set(r).size===r.length&&n!==null&&n.length>0&&new Set(n).size===n.length&&r.every(i=>n.includes(i))}function mr(e){return Array.isArray(e)&&e.every(t=>typeof t=="string"&&t.length>0)}import xi from"better-sqlite3";var bi=["node_modules",".git","dist","build","out","coverage","target",".next",".nuxt",".cache",".turbo",".nbb",".cpcache",".shadow-cljs",".scipquery-cache","__pycache__",".venv","venv"],gr=class{db;config;pathFilter;statementCache=new Map;constructor(t,r){this.config=t,this.pathFilter=r??null,this.db=new xi(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`(
3
+ EXISTS (
4
+ SELECT 1
5
+ FROM defn_enclosing_ranges local_der
6
+ JOIN documents local_d ON local_der.document_id = local_d.id
7
+ WHERE local_der.symbol_id = gs.id
8
+ ${this.pathExclusionsFor("local_d").trimStart()}
9
+ )
10
+ OR EXISTS (
11
+ SELECT 1
12
+ FROM mentions local_m
13
+ JOIN chunks local_c ON local_m.chunk_id = local_c.id
14
+ JOIN documents local_d ON local_c.document_id = local_d.id
15
+ WHERE local_m.symbol_id = gs.id
16
+ AND local_m.role = 1
17
+ ${this.pathExclusionsFor("local_d").trimStart()}
18
+ )
19
+ )`}get pathExclusions(){return this.pathExclusionsFor("d")}get symbolNoise(){return this.symbolNoiseFor("gs")}pathExclusionsFor(...t){return t.flatMap(r=>bi.flatMap(n=>[`AND ${r}.relative_path NOT LIKE '${n}/%'`,`AND ${r}.relative_path NOT LIKE '%/${n}/%'`])).join(`
20
+ `)}symbolNoiseFor(t){return`AND ${t}.symbol NOT LIKE '%().(%' AND ${t}.symbol NOT LIKE '%typeLiteral%'`}all(t,...r){return this.statement(t).all(...r)}get(t,...r){return this.statement(t).get(...r)}close(){this.statementCache.clear(),this.db.close()}statement(t){let r=this.statementCache.get(t);return r||(r=this.db.prepare(t),this.statementCache.set(t,r)),r}};function de(e){return typeof e=="object"&&e!==null}function Et(e){return Array.isArray(e)&&e.every(t=>typeof t=="string")?e:null}function al(e){return!de(e)||typeof e.version!="number"||Et(e.languages)===null||typeof e.pnpmWorkspaces!="boolean"||typeof e.typescriptProjectMode!="string"||Et(e.typescriptProjects)===null||e.clojureConfigPath!==void 0&&typeof e.clojureConfigPath!="string"||!Array.isArray(e.files)||!e.files.every(vi)?null:e}function cl(e,t){let r=new Map((e?.files??[]).map(a=>[a.path,a])),n=new Map(t.files.map(a=>[a.path,a])),i=new Set([...r.keys(),...n.keys()]),s=[];for(let a of[...i].sort()){let c=r.get(a),l=n.get(a),p=pr(a,t.languages);!c&&l?s.push({kind:"added",path:a,inputKind:p,after:l}):c&&!l?s.push({kind:"deleted",path:a,inputKind:p,before:c}):c&&l&&(c.hash!==l.hash||c.size!==l.size)&&s.push({kind:"modified",path:a,inputKind:p,before:c,after:l})}let o=new Set;return e||o.add("prior-snapshot-unavailable"),e&&e.version!==t.version&&o.add("snapshot-version-changed"),(hr(e?.files??[])||hr(t.files))&&o.add("duplicate-input-path"),[...e?.files??[],...t.files].some(Ei)&&o.add("unreadable-input"),{version:1,changes:s,projectIdentityChanged:e?!ki(e,t):!0,uncertainty:[...o].sort()}}function hr(e){return new Set(e.map(t=>t.path)).size!==e.length}function vi(e){return de(e)&&typeof e.path=="string"&&typeof e.size=="number"&&typeof e.hash=="string"}function Ei(e){return e.hash==="unreadable"||e.size<0}function Pi(e){let t=new Set;for(let r of e.uncertainty)t.add(r);e.projectIdentityChanged&&t.add("project-identity-changed");for(let r of e.changes)r.kind==="added"&&t.add("file-added"),r.kind==="deleted"&&t.add("file-deleted"),r.inputKind==="config"&&t.add("configuration-changed"),r.inputKind==="ambient"&&t.add("ambient-declaration-changed"),r.inputKind==="other"&&t.add("unclassified-input");return{fullProject:t.size>0,reasons:[...t].sort()}}function ll(e,t,r){let n=e.changes.map(a=>a.path).sort();if(n.length===0&&!e.projectIdentityChanged&&e.uncertainty.length===0)return{mode:"none",changedFiles:n,affectedFiles:[],reasons:[]};let i=new Set(r),s=Pi(e),o=new Set(s.reasons);return n.some(a=>!i.has(a))&&o.add("changed-file-outside-project"),t===null?(o.add("dependency-graph-unavailable"),yr(n,i,o)):o.size>0?yr(n,i,o):{mode:"closure",changedFiles:n,affectedFiles:Ni(n,t,i),reasons:[]}}function yr(e,t,r){return{mode:"full-project",changedFiles:e,affectedFiles:[...t].sort(),reasons:[...r].sort()}}function Ni(e,t,r){let n=new Map;for(let[o,a]of t)if(r.has(o))for(let c of a){if(!r.has(c))continue;let l=n.get(c)??new Set;l.add(o),n.set(c,l)}let i=new Set(e),s=[...e];for(let o=0;o<s.length;o+=1){let a=s[o];if(a!==void 0)for(let c of n.get(a)??[])i.has(c)||(i.add(c),s.push(c))}return[...i].sort()}function ki(e,t){return Sr(e.languages,t.languages)&&e.pnpmWorkspaces===t.pnpmWorkspaces&&e.typescriptProjectMode===t.typescriptProjectMode&&Sr(e.typescriptProjects,t.typescriptProjects)&&e.clojureConfigPath===t.clojureConfigPath}function Sr(e,t){if(e.length!==t.length)return!1;let r=[...e].sort(),n=[...t].sort();return r.every((i,s)=>i===n[s])}import{execFileSync as Ti}from"child_process";import{existsSync as Ii,readdirSync as br}from"fs";import{extname as vr,join as Er}from"path";var Pr=new Set([".git",".hg",".svn",".idea",".vscode","node_modules","vendor","dist","build","target","bin","obj",".dart_tool",".gradle",".next",".venv","venv","__pycache__"]),Ci=[{language:"typescript",files:["tsconfig.json","tsconfig.base.json"],extensions:[".ts",".tsx",".mts",".cts"]},{language:"rust",files:["Cargo.toml"],extensions:[".rs"]},{language:"go",files:["go.mod"],extensions:[".go"]},{language:"java",files:["pom.xml","build.gradle","build.gradle.kts"],extensions:[".java"]},{language:"kotlin",files:["build.gradle.kts"],extensions:[".kt",".kts"]},{language:"scala",files:["build.sbt"],extensions:[".scala"]},{language:"clojure",files:["deps.edn","project.clj","bb.edn","shadow-cljs.edn"],extensions:[".clj",".cljs",".cljc"]},{language:"python",files:["pyproject.toml","setup.py","setup.cfg","Pipfile"],extensions:[".py",".pyi"]},{language:"ruby",files:["Gemfile"],extensions:[".rb"]},{language:"cpp",files:["compile_commands.json","CMakeLists.txt","Makefile"],extensions:[".cc",".cpp",".cxx",".hpp",".hh",".hxx"]},{language:"c",files:["compile_commands.json","CMakeLists.txt","Makefile"],extensions:[".c",".h"]},{language:"csharp",globs:["*.csproj","*.sln"],extensions:[".cs"]},{language:"vb",globs:["*.vbproj"],extensions:[".vb"]},{language:"dart",files:["pubspec.yaml"],extensions:[".dart"]},{language:"php",files:["composer.json"],extensions:[".php"]},{language:"javascript",files:["package.json"],extensions:[".js",".jsx",".mjs",".cjs"]}];function ml(e){let t=[],r=Ri(e),n=Ai(e);for(let i of Ci){if(_i(e,i.files)){t.push(i.language);continue}if(wi(r,i.globs)){t.push(i.language);continue}ji(n,i.extensions)&&t.push(i.language)}return t.includes("typescript")&&xr(t,"javascript"),t.includes("cpp")&&!n.has(".c")&&xr(t,"c"),t}function Ri(e){try{return br(e)}catch{return[]}}function _i(e,t){return t?.length?t.some(r=>Ii(Er(e,r))):!1}function wi(e,t){return t?.length?e.some(r=>t.some(n=>Fi(r,n))):!1}function Fi(e,t){if(t==="*")return!0;if(!t.includes("*"))return e===t;let[r,n]=t.split("*");return e.startsWith(r??"")&&e.endsWith(n??"")}function Ai(e){let t=Di(e);if(t)return t;let r=new Set,n=[e];for(;n.length>0;){let i=n.pop();if(!i)continue;let s;try{s=br(i,{withFileTypes:!0})}catch{continue}for(let o of s){if(o.name.startsWith(".")&&!o.name.endsWith("proj")&&!o.name.endsWith("sln")&&o.isDirectory())continue;let a=Er(i,o.name);if(o.isDirectory()){Pr.has(o.name)||n.push(a);continue}let c=vr(o.name).toLowerCase();c&&r.add(c)}}return r}function Di(e){try{let t=Ti("git",["-C",e,"ls-files","-co","--exclude-standard","--","."],{encoding:"utf-8",maxBuffer:26214400,stdio:["ignore","pipe","ignore"]}),r=new Set;for(let n of t.split(`
21
+ `)){if(!n||n.split("/").some(s=>Pr.has(s)))continue;let i=vr(n).toLowerCase();i&&r.add(i)}return r}catch{return null}}function ji(e,t){return t?.length?t.some(r=>e.has(r)):!1}function xr(e,t){let r=e.indexOf(t);r!==-1&&e.splice(r,1)}import{createHash as Li}from"crypto";import{copyFileSync as Nr,existsSync as q,linkSync as Oi,mkdirSync as kr,readFileSync as Cr,readdirSync as Tr,renameSync as Nt,rmSync as We,statSync as Mi}from"fs";import{basename as Me,dirname as ve,join as E,relative as Ir}from"path";var $e=1,Wi=".scipquery-generations";function bl(e){let t=Ve(e.outputDb),r=$i(e,t);e.onStage?.("after-recovery-retained"),e.preserveOutputScip||Pt(e.tempOutputScip,e.outputScip),e.onStage?.("after-scip-handoff"),Pt(e.tempOutputDb,e.outputDb),e.onStage?.("after-database-handoff"),Pt(e.tempMetaPath,e.metaPath),e.onStage?.("after-metadata-handoff");let n=Ue(e.metaPath,e.outputDb),i={version:$e,currentGeneration:n,...r?{previousGeneration:r}:{},...e.publication?{publication:e.publication}:{},publishedAt:(e.now??(()=>new Date))().toISOString()};return be(E(t,"state.json"),i,{spacing:2,trailingNewline:!0}),{currentGeneration:n,...r?{previousGeneration:r}:{}}}function Rr(e){try{let t=JSON.parse(Cr(E(Ve(e),"state.json"),"utf8"));return t.version!==$e||typeof t.currentGeneration!="string"||!t.currentGeneration||typeof t.publishedAt!="string"||!Number.isFinite(Date.parse(t.publishedAt))||!Bi(t.previousGeneration)||!qi(t.publication)?null:t}catch{return null}}function vl(e,t,r=()=>new Date){if(!q(e)||!q(t))throw new Error("metadata-only generation refresh requires stable database and metadata files");let n=Rr(e),i={version:$e,currentGeneration:Ue(t,e),...n?.previousGeneration?{previousGeneration:n.previousGeneration}:{},...n?.publication?{publication:n.publication}:{},publishedAt:r().toISOString()};return be(E(Ve(e),"state.json"),i,{spacing:2,trailingNewline:!0}),i}function El(e,t=E(ve(e),"meta.json")){let r=E(Ve(e),"state.json");if(!q(r))return{state:"legacy",statePath:r};let n=Rr(e);if(!n)return{state:"invalid",statePath:r,reason:"generation state is malformed"};try{let i=Ue(t,e),s=n.currentGeneration===i,o=n.previousGeneration?q(E(ve(e),n.previousGeneration.databasePath)):!0;return!s||!o?{state:"drifted",statePath:r,currentMatches:s,recoveryExists:o,generation:n,reason:s?"retained recovery database is missing":"stable database or metadata no longer matches the published generation"}:{state:"current",statePath:r,currentMatches:s,recoveryExists:o,generation:n}}catch(i){return{state:"drifted",statePath:r,currentMatches:!1,recoveryExists:!1,generation:n,reason:i instanceof Error?i.message:String(i)}}}function Ve(e){return E(ve(e),Wi)}function $i(e,t){if(!q(e.outputDb))return;let r=Ue(e.metaPath,e.outputDb),n=E(t,r),i=E(n,Me(e.outputDb)),s=q(e.metaPath)?E(n,Me(e.metaPath)):void 0;if(!q(i)){let o=`${n}.${process.pid}.${Date.now()}.tmp`;We(o,{recursive:!0,force:!0}),kr(o,{recursive:!0});let a=E(o,Me(e.outputDb));try{Oi(e.outputDb,a)}catch{Nr(e.outputDb,a)}s&&Nr(e.metaPath,E(o,Me(e.metaPath))),kr(t,{recursive:!0}),Nt(o,n)}return Vi(t,r),{generationIdentity:r,databasePath:Ir(ve(e.outputDb),i),...s?{metadataPath:Ir(ve(e.outputDb),s)}:{}}}function Vi(e,t){for(let r of Tr(e,{withFileTypes:!0}))!r.isDirectory()||r.name===t||r.name.endsWith(".tmp")||We(E(e,r.name),{recursive:!0,force:!0});for(let r of Tr(e,{withFileTypes:!0}))r.isDirectory()&&r.name.endsWith(".tmp")&&We(E(e,r.name),{recursive:!0,force:!0})}function Ue(e,t){let r=Li("sha256").update(`sqlite-generation-v${$e}\0`);q(e)&&r.update(Ui(Cr(e,"utf8")));let n=Mi(t);return r.update(`\0${n.size}`),r.digest("hex")}function Ui(e){try{let t=JSON.parse(e);if((t.version===2||t.version===3)&&t.status==="complete"&&typeof t.updatedAt=="string"&&t.fingerprint!==void 0)return JSON.stringify({version:t.version,status:t.status,updatedAt:t.updatedAt,fingerprint:t.fingerprint,indexedLanguages:t.indexedLanguages,scipCompanion:t.scipCompanion})}catch{}return e}function Pt(e,t){We(`${t}.tmp-replace`,{force:!0}),Nt(e,`${t}.tmp-replace`),Nt(`${t}.tmp-replace`,t)}function Bi(e){if(e===void 0)return!0;if(!e||typeof e!="object")return!1;let t=e;return typeof t.generationIdentity=="string"&&!!t.generationIdentity&&typeof t.databasePath=="string"&&!!t.databasePath&&(t.metadataPath===void 0||typeof t.metadataPath=="string"&&!!t.metadataPath)}function qi(e){if(e===void 0)return!0;if(!e||typeof e!="object")return!1;let t=e,r=[t.converterDurationMs,t.affectedDocumentCount,t.changedDocumentCount,t.producerDurationMs,t.materializationDurationMs,t.patchDurationMs].filter(n=>n!==void 0);return(t.mode==="incremental"||t.mode==="full")&&t.validation==="passed"&&t.converterDurationMs!==void 0&&r.every(n=>typeof n=="number"&&Number.isFinite(n)&&n>=0)&&(t.scipCompanion===void 0||t.scipCompanion==="current"||t.scipCompanion==="deferred")&&(t.typescriptOverlayGeneration===void 0||typeof t.typescriptOverlayGeneration=="string"&&!!t.typescriptOverlayGeneration)&&(t.scipCompanion!=="deferred"||!!t.typescriptOverlayGeneration)&&(t.fallbackReason===void 0||typeof t.fallbackReason=="string")}import{readFileSync as _r}from"fs";import{createRequire as Hi}from"module";import{dirname as Ct,isAbsolute as zi,relative as Dr,resolve as z,sep as kt}from"path";var H=Hi(import.meta.url),Gi=1,wr="0.4.0";function Ki(){try{let e=jr();if(!e.available)return e;let{packageRoot:t}=e,r=H.resolve("typescript",{paths:[t]}),n=H(r),{FileIndexer:i}=H(z(t,"dist/src/FileIndexer.js")),{Input:s}=H(z(t,"dist/src/Input.js")),{Packages:o}=H(z(t,"dist/src/Packages.js")),a=H(z(t,"dist/src/scip.js"));if(!i||!s||!o||!a.scip?.Document||!a.scip.Index)return{available:!1,reason:"scip-typescript document runtime has an unsupported module shape"};let c={packageVersion:e.packageVersion,typescript:n,Document:a.scip.Document,Index:a.scip.Index,FileIndexer:i,Input:s,Packages:o};return{available:!0,runtime:c,producerIdentity:Rt(c)}}catch(e){return{available:!1,reason:`scip-typescript document runtime unavailable: ${e instanceof Error?e.message:String(e)}`}}}function Il(){let e=jr();return e.available?{available:!0,packageVersion:e.packageVersion,typescriptVersion:e.typescriptVersion,producerIdentity:e.producerIdentity}:e}function jr(){try{let e=H.resolve("@sourcegraph/scip-typescript/package.json"),t=JSON.parse(_r(e,"utf8"));if(t.version!==wr)return{available:!1,reason:`unsupported scip-typescript version ${String(t.version??"unknown")}; expected ${wr}`};let r=Ct(e),n=H.resolve("typescript/package.json",{paths:[r]}),i=JSON.parse(_r(n,"utf8"));return typeof i.version!="string"||!i.version?{available:!1,reason:"scip-typescript TypeScript compiler version is unavailable"}:{available:!0,packageRoot:r,packageVersion:t.version,typescriptVersion:i.version,producerIdentity:Lr(t.version,i.version)}}catch(e){return{available:!1,reason:`scip-typescript document producer unavailable: ${e instanceof Error?e.message:String(e)}`}}}function Cl(e){let t=e.runtime===void 0?Ki():e.runtime===null?{available:!1,reason:"scip-typescript document runtime unavailable"}:{available:!0,runtime:e.runtime,producerIdentity:Rt(e.runtime)};return t.available?{available:!0,emitter:new Tt(e,t.runtime)}:t}var Tt=class{producerIdentity;workspaceRoot;tsconfigPath;projectRoot;maxFileByteSize;runtime;host;config=null;includedFiles=new Set;program=null;checker=null;symbolTable=new Map;constructorTable=new Map;packages;fragments=new Map;stats={initializations:0,programUpdates:0,documentsEmitted:0,documentsRemoved:0,sourceNodesReused:0,sourceNodesReplaced:0,symbolEntriesPruned:0};constructor(t,r){this.workspaceRoot=z(t.workspaceRoot),this.tsconfigPath=z(this.workspaceRoot,t.tsconfigPath),this.projectRoot=t.projectRoot??Ji(this.workspaceRoot,Ct(this.tsconfigPath)),this.maxFileByteSize=t.maxFileByteSize??1024*1024,this.runtime=r,this.producerIdentity=Rt(r);let n=Fr(r.typescript,this.tsconfigPath);this.config=n,this.host=new It(r.typescript,n.options,this.workspaceRoot),this.packages=new r.Packages(this.projectRoot)}initialize(){let t=performance.now(),r=this.config??Fr(this.runtime.typescript,this.tsconfigPath);this.includedFiles=new Set(r.fileNames.map(fe)),this.program=this.runtime.typescript.createProgram(r.fileNames,r.options,this.host.compilerHost),this.checker=this.program.getTypeChecker(),this.stats.initializations+=1;let n=[];for(let i of this.program.getSourceFiles())this.includedFiles.has(fe(i.fileName))&&n.push(this.emitSourceFile(i));return this.result(n,t)}advance(t){if(!this.program||!this.checker||!this.config)return this.initializeAndAdvance(t);let r=performance.now(),n=Be(t.modifiedFiles),i=Be(t.affectedFiles);this.validateIncrementalPaths(n,i);let s=this.program,o=new Map;for(let c of n){let l=Ee(this.workspaceRoot,c),p=s.getSourceFile(l);if(!p)throw new Error(`modified TypeScript source is unavailable: ${c}`);o.set(c,p),this.stats.symbolEntriesPruned+=Ar(this.symbolTable,p),this.stats.symbolEntriesPruned+=Ar(this.constructorTable,p),this.host.invalidate(l)}this.program=this.runtime.typescript.createProgram(this.config.fileNames,this.config.options,this.host.compilerHost,s),this.checker=this.program.getTypeChecker(),this.stats.programUpdates+=1;for(let[c,l]of o)this.program.getSourceFile(Ee(this.workspaceRoot,c))===l?this.stats.sourceNodesReused+=1:this.stats.sourceNodesReplaced+=1;let a=i.map(c=>{let l=Ee(this.workspaceRoot,c),p=this.program.getSourceFile(l);if(!p)throw new Error(`affected TypeScript source is unavailable: ${c}`);return this.emitSourceFile(p)});return this.result(a,r)}fragment(t){return this.fragments.get(qe(t))??null}snapshotStats(){return{...this.stats}}initializeAndAdvance(t){let r=this.initialize(),n=Be(t.modifiedFiles),i=Be(t.affectedFiles);this.validateIncrementalPaths(n,i);let s=new Set(i);return{...r,fragments:r.fragments.filter(o=>s.has(o.relativePath))}}validateIncrementalPaths(t,r){if(t.length===0)throw new Error("incremental TypeScript document update requires a modified file");if(r.length===0)throw new Error("incremental TypeScript document update requires an affected file");for(let n of t){let i=Ee(this.workspaceRoot,n);if(!this.includedFiles.has(fe(i)))throw new Error(`modified TypeScript file is outside the configured project: ${n}`)}for(let n of r){let i=Ee(this.workspaceRoot,n);if(!this.includedFiles.has(fe(i)))throw new Error(`affected TypeScript file is outside the configured project: ${n}`)}}emitSourceFile(t){if(!this.checker)throw new Error("TypeScript document emitter is not initialized");let r=qe(Dr(this.workspaceRoot,t.fileName)),n=new this.runtime.Document({relative_path:r,occurrences:[]});if(new this.runtime.FileIndexer(this.checker,{cwd:this.workspaceRoot,projectRoot:this.projectRoot,projectDisplayName:this.projectRoot,maxFileByteSizeNumber:this.maxFileByteSize},new this.runtime.Input(t.fileName,t.getText()),n,this.symbolTable,this.constructorTable,this.packages,t).index(),this.stats.documentsEmitted+=1,n.occurrences.length===0)return this.fragments.delete(r),this.stats.documentsRemoved+=1,{relativePath:r,bytes:null,occurrences:0,symbols:n.symbols.length,referenceFragments:[]};let s=n.serializeBinary();return this.fragments.set(r,s),{relativePath:r,bytes:s,occurrences:n.occurrences.length,symbols:n.symbols.length,referenceFragments:Xi(r,n)}}result(t,r){return{producerIdentity:this.producerIdentity,fragments:t,durationMs:performance.now()-r,stats:this.snapshotStats()}}};function Xi(e,t){let r=new Map;for(let n of t.occurrences){if(!n.symbol||(n.symbol_roles&1)!==0||n.range.length<3)continue;let i=n.range[0],s=n.range[1];if(!Number.isInteger(i)||!Number.isInteger(s))continue;let o={targetSymbol:n.symbol,location:{file:e,line:i,column:s}};r.set(`${n.symbol}\0${i}\0${s}`,o)}return[...r.values()].sort((n,i)=>n.targetSymbol.localeCompare(i.targetSymbol)||n.location.line-i.location.line||n.location.column-i.location.column)}var It=class{compilerHost;sourceFiles=new Map;constructor(t,r,n){let i=t.createCompilerHost(r),s=i.getSourceFile.bind(i);this.compilerHost={...i,getCurrentDirectory:()=>n,getSourceFile:(o,a,c,l)=>{let p=fe(o);if(this.sourceFiles.has(p))return this.sourceFiles.get(p);let u=s(o,a,c,l);return this.sourceFiles.set(p,u),u}}}invalidate(t){this.sourceFiles.delete(fe(t))}};function Fr(e,t){let r=e.readConfigFile(t,e.sys.readFile);if(r.error)throw new Error(e.formatDiagnostics([r.error],e.createCompilerHost({})));let n=e.parseJsonConfigFileContent(r.config,e.sys,Ct(t)),i=n.errors.filter(s=>s.code!==18003);if(i.length>0)throw new Error(e.formatDiagnostics(i,e.createCompilerHost({})));return n}function Rt(e){return Lr(e.packageVersion,e.typescript.version)}function Lr(e,t){return`scip-typescript:${e}:typescript:${t}:document-adapter:${Gi}`}function Ji(e,t){return qe(Dr(e,t))||"."}function Ee(e,t){if(zi(t))throw new Error(`expected a project-relative path: ${t}`);let r=z(e,t),n=e.endsWith(kt)?e:`${e}${kt}`;if(r!==e&&!r.startsWith(n))throw new Error(`path escapes the project root: ${t}`);return r}function Be(e){return[...new Set(e.map(qe))].sort()}function qe(e){return e.split(kt).join("/").replace(/^\.\//,"")}function fe(e){return z(e)}function Ar(e,t){let r=0;for(let n of e.keys())if(Yi(n)){try{if(n.getSourceFile()!==t)continue}catch{continue}e.delete(n),r+=1}return r}function Yi(e){return!!(e&&typeof e=="object"&&"kind"in e&&"getSourceFile"in e)}import{createHash as Qi}from"crypto";import{readFileSync as Zi}from"fs";import{dirname as Or,join as Mr}from"path";import es from"better-sqlite3";var ts="evidence.db";var He=new WeakMap,rs=x("evidence-content-hash",{clearGroups:["whole-project","source-file"]}),ns=x("evidence-project-fingerprint",{clearGroups:["whole-project"]}),Pe="evidence-v1",me="version NOT LIKE 'evidence-%'";function ze(e){return Qi("sha256").update(e).digest("hex")}function Ne(e,t,r){return rs.get(e,t,()=>ze(r))}function Wr(e){return ns.get(e,"current",()=>{try{let t=JSON.parse(Zi(Mr(Or(e.config.dbPath),"meta.json"),"utf-8"));if(t.version!==2&&t.version!==3||t.status!=="complete"&&t.status!=="partial"||t.fingerprint===void 0)return null;let r=Array.isArray(t.indexedLanguages)?[...t.indexedLanguages].sort():[];return ze(JSON.stringify({fingerprint:t.fingerprint,indexedLanguages:r,status:t.status}))}catch(t){return _t("project fingerprint unavailable",t),null}})}function _t(e,t){process.env.SCIP_QUERY_DEBUG&&console.error(`evidence-cache: ${e}: ${t instanceof Error?t.message:String(t)}`)}function ke(e){if(He.has(e))return He.get(e)??null;let t=null;try{let r=new es(Mr(Or(e.config.dbPath),ts));r.pragma("journal_mode = WAL"),r.pragma("busy_timeout = 5000"),r.pragma("synchronous = NORMAL"),r.exec(`
22
+ CREATE TABLE IF NOT EXISTS file_evidence (
23
+ kind TEXT NOT NULL,
24
+ relative_path TEXT NOT NULL,
25
+ content_hash TEXT NOT NULL,
26
+ version TEXT NOT NULL,
27
+ payload TEXT NOT NULL,
28
+ PRIMARY KEY (kind, relative_path)
29
+ );
30
+ CREATE TABLE IF NOT EXISTS project_evidence (
31
+ kind TEXT NOT NULL,
32
+ cache_key TEXT NOT NULL,
33
+ project_fingerprint TEXT NOT NULL,
34
+ version TEXT NOT NULL,
35
+ payload TEXT NOT NULL,
36
+ PRIMARY KEY (kind, cache_key)
37
+ );
38
+ CREATE TABLE IF NOT EXISTS semantic_callees (
39
+ relative_path TEXT NOT NULL,
40
+ symbol TEXT NOT NULL,
41
+ content_hash TEXT NOT NULL,
42
+ deps_digest TEXT NOT NULL,
43
+ version TEXT NOT NULL,
44
+ payload TEXT NOT NULL,
45
+ PRIMARY KEY (relative_path, symbol)
46
+ );
47
+ CREATE TABLE IF NOT EXISTS semantic_references (
48
+ relative_path TEXT NOT NULL,
49
+ symbol TEXT NOT NULL,
50
+ project_fingerprint TEXT NOT NULL,
51
+ version TEXT NOT NULL,
52
+ payload TEXT NOT NULL,
53
+ PRIMARY KEY (relative_path, symbol)
54
+ );
55
+ CREATE TABLE IF NOT EXISTS finding_outcome_ledger (
56
+ check_name TEXT NOT NULL,
57
+ finding_id TEXT NOT NULL,
58
+ first_seen INTEGER NOT NULL,
59
+ last_seen INTEGER NOT NULL,
60
+ times_shown INTEGER NOT NULL,
61
+ outcome TEXT NOT NULL,
62
+ PRIMARY KEY (check_name, finding_id)
63
+ );
64
+ `),t={evidence:r,readFileEvidence:r.prepare("SELECT payload FROM file_evidence WHERE kind = ? AND relative_path = ? AND content_hash = ? AND version = ?"),readLegacyFileEvidence:r.prepare(`SELECT payload FROM file_evidence
65
+ WHERE kind = ? AND relative_path = ? AND content_hash = ? AND ${me}
66
+ ORDER BY version DESC
67
+ LIMIT 1`),writeFileEvidence:r.prepare("INSERT OR REPLACE INTO file_evidence (kind, relative_path, content_hash, version, payload) VALUES (?, ?, ?, ?, ?)"),readProjectEvidence:r.prepare("SELECT payload FROM project_evidence WHERE kind = ? AND cache_key = ? AND project_fingerprint = ? AND version = ?"),readLegacyProjectEvidence:r.prepare(`SELECT payload FROM project_evidence
68
+ WHERE kind = ? AND cache_key = ? AND project_fingerprint = ? AND ${me}
69
+ ORDER BY version DESC
70
+ LIMIT 1`),writeProjectEvidence:r.prepare("INSERT OR REPLACE INTO project_evidence (kind, cache_key, project_fingerprint, version, payload) VALUES (?, ?, ?, ?, ?)"),readCallees:r.prepare(`SELECT payload FROM semantic_callees
71
+ WHERE relative_path = ? AND symbol = ? AND content_hash = ? AND deps_digest = ? AND version = ?`),readLegacyCallees:r.prepare(`SELECT payload FROM semantic_callees
72
+ WHERE relative_path = ? AND symbol = ? AND content_hash = ? AND deps_digest = ? AND ${me}
73
+ ORDER BY version DESC
74
+ LIMIT 1`),readCalleesForFile:r.prepare(`SELECT symbol, payload FROM semantic_callees
75
+ WHERE relative_path = ? AND content_hash = ? AND deps_digest = ? AND version = ?`),readLegacyCalleesForFile:r.prepare(`SELECT symbol, payload FROM semantic_callees
76
+ WHERE relative_path = ? AND content_hash = ? AND deps_digest = ? AND ${me}
77
+ ORDER BY symbol, version DESC`),writeCallees:r.prepare(`INSERT OR REPLACE INTO semantic_callees
78
+ (relative_path, symbol, content_hash, deps_digest, version, payload) VALUES (?, ?, ?, ?, ?, ?)`),dropStaleCallees:r.prepare("DELETE FROM semantic_callees WHERE relative_path = ? AND content_hash != ?"),readReferences:r.prepare(`SELECT payload FROM semantic_references
79
+ WHERE relative_path = ? AND symbol = ? AND project_fingerprint = ? AND version = ?`),readLegacyReferences:r.prepare(`SELECT payload FROM semantic_references
80
+ WHERE relative_path = ? AND symbol = ? AND project_fingerprint = ? AND ${me}
81
+ ORDER BY version DESC
82
+ LIMIT 1`),readReferencesForFile:r.prepare(`SELECT symbol, payload FROM semantic_references
83
+ WHERE relative_path = ? AND project_fingerprint = ? AND version = ?`),readLegacyReferencesForFile:r.prepare(`SELECT symbol, payload FROM semantic_references
84
+ WHERE relative_path = ? AND project_fingerprint = ? AND ${me}
85
+ ORDER BY symbol, version DESC`),writeReferences:r.prepare(`INSERT OR REPLACE INTO semantic_references
86
+ (relative_path, symbol, project_fingerprint, version, payload) VALUES (?, ?, ?, ?, ?)`),dropStaleReferences:r.prepare("DELETE FROM semantic_references WHERE relative_path = ? AND project_fingerprint != ?"),readFindingOutcomeLedger:r.prepare("SELECT check_name, finding_id, first_seen, last_seen, times_shown, outcome FROM finding_outcome_ledger"),deleteFindingOutcomeLedgerForCheck:r.prepare("DELETE FROM finding_outcome_ledger WHERE check_name = ?"),writeFindingOutcomeLedgerRow:r.prepare(`INSERT INTO finding_outcome_ledger
87
+ (check_name, finding_id, first_seen, last_seen, times_shown, outcome) VALUES (?, ?, ?, ?, ?, ?)`)}}catch(r){_t("disabled (open failed)",r)}return He.set(e,t),t}function Te(e,t,r){_t(`disabled (${t})`,r),He.set(e,null)}function $r(e,t,r,n){let i=ke(e);if(!i)return null;try{return(i.readFileEvidence.get(t,r,n,Pe)??i.readLegacyFileEvidence.get(t,r,n))?.payload??null}catch(s){return Te(e,"file_evidence read",s),null}}function Vr(e,t,r,n,i){let s=ke(e);if(s)try{s.writeFileEvidence.run(t,r,n,Pe,i)}catch(o){Te(e,"file_evidence write",o)}}function Ur(e,t){if(t.length===0)return;let r=ke(e);if(r)try{r.evidence.transaction(()=>{for(let n of t)r.writeFileEvidence.run(n.kind,n.relativePath,n.contentHash,Pe,n.payload)})()}catch(n){Te(e,"file_evidence batch write",n)}}function Br(e,t,r,n){let i=ke(e);if(!i)return null;try{return(i.readProjectEvidence.get(t,r,n,Pe)??i.readLegacyProjectEvidence.get(t,r,n))?.payload??null}catch(s){return Te(e,"project_evidence read",s),null}}function qr(e,t,r,n,i){let s=ke(e);if(s)try{s.writeProjectEvidence.run(t,r,n,Pe,i)}catch(o){Te(e,"project_evidence write",o)}}var is=[P("source-facts",{dependsOn:["content-hash","tool-version"],keyParts:["kind","relativePath","contentHash","payloadVersion"],stalenessTest:"tests/storage/evidence-cache.test.ts",owner:"src/source/source-facts.ts"}),P("file-definitions",{dependsOn:["content-hash","project-fingerprint","indexed-language-set","tool-version"],keyParts:["kind","relativePath","contentHash","projectFingerprint","payloadVersion"],stalenessTest:"tests/storage/evidence-cache.test.ts",owner:"src/symbols/definition-catalog.ts"}),P("definition-exclusions",{dependsOn:["content-hash","tool-version"],keyParts:["kind","relativePath","contentHash","payloadVersion"],stalenessTest:"tests/storage/evidence-cache.test.ts",owner:"src/analysis/framework-patterns.ts"}),P("doc-path-tokens",{dependsOn:["content-hash","tool-version"],keyParts:["kind","relativePath","contentHash","payloadVersion"],stalenessTest:"tests/storage/evidence-products.test.ts",owner:"tests/storage/evidence-cache.test.ts"}),P("doc-path-evidence",{dependsOn:["content-hash","git-history","git-head","tool-version"],keyParts:["kind","relativePath","contentHash","trackedFiles","historyWindow","payloadVersion"],stalenessTest:"tests/storage/evidence-cache.test.ts",owner:"src/queries/cleanup/doc-drift.ts"}),P("source-imports",{dependsOn:["content-hash","import-resolution-fingerprint","config","tool-version"],keyParts:["kind","relativePath","contentHash","importResolutionFingerprint","payloadVersion"],stalenessTest:"tests/storage/evidence-cache.test.ts",owner:"src/language-parsers/index.ts"}),P("source-reexports",{dependsOn:["content-hash","import-resolution-fingerprint","config","tool-version"],keyParts:["kind","relativePath","contentHash","importResolutionFingerprint","payloadVersion"],stalenessTest:"tests/storage/evidence-cache.test.ts",owner:"src/language-parsers/index.ts"}),P("source-fingerprints",{dependsOn:["content-hash","project-fingerprint","indexed-language-set","tool-version"],keyParts:["kind","relativePath","contentHash","projectFingerprint","payloadVersion"],stalenessTest:"tests/symbols/definition-catalog.test.ts",owner:"src/queries/cleanup/similar.ts"}),P("consumer-file-usage",{dependsOn:["content-hash","project-fingerprint","indexed-language-set","tool-version"],keyParts:["kind","relativePath","contentHash","projectFingerprint","payloadVersion"],stalenessTest:"tests/storage/evidence-cache.test.ts",owner:"src/queries/internal/consumer-evidence.ts"}),P("react-component-behavior-profiles",{dependsOn:["content-hash","tool-version"],keyParts:["kind","relativePath","contentHash","payloadVersion"],stalenessTest:"tests/storage/evidence-cache.test.ts",owner:"src/source/react-profile.ts"}),P("git-file-adds",{dependsOn:["git-head","git-history","tool-version"],keyParts:["kind","cacheKey","head","historyWindow","payloadVersion"],stalenessTest:"tests/storage/evidence-cache.test.ts",owner:"src/analysis/git-history.ts"}),P("typescript-reference-fragments",{dependsOn:["content-hash","transitive-deps-digest","config","tool-version"],keyParts:["kind","relativePath","semanticIdentity","payloadVersion"],stalenessTest:"tests/semantic/typescript/typescript-reference-fragments.test.ts",owner:"src/semantic/typescript/reference-fragment-shadow.ts"}),P("typescript-import-usage",{dependsOn:["content-hash","transitive-deps-digest","config","tool-version"],keyParts:["kind","relativePath","semanticIdentity","payloadVersion"],stalenessTest:"tests/semantic/typescript/typescript-semantic-provider.test.ts",owner:"src/semantic/shared-primitives.ts"}),P("typescript-signatures",{dependsOn:["content-hash","transitive-deps-digest","config","tool-version"],keyParts:["kind","relativePath","semanticIdentity","payloadVersion"],stalenessTest:"tests/semantic/typescript/typescript-semantic-provider.test.ts",owner:"src/semantic/shared-primitives.ts"}),Ge("file-dependency-graph",{dependsOn:["project-fingerprint","indexed-language-set","import-resolution-fingerprint","tool-version"],keyParts:["kind","scope","projectFingerprint","payloadVersion"],stalenessTest:"tests/symbols/file-dep-graph.test.ts",owner:"src/symbols/graph/file-dep-graph.ts"}),Ge("semantic-import-usage",{dependsOn:["project-fingerprint","indexed-language-set","import-resolution-fingerprint","tool-version"],keyParts:["kind","relativePath","projectFingerprint","language","semanticEngine","payloadVersion"],stalenessTest:"tests/semantic/rust/rust-semantic-cache-gate.test.ts",owner:"src/semantic/shared-primitives.ts"}),Ge("semantic-signatures",{dependsOn:["project-fingerprint","indexed-language-set","tool-version"],keyParts:["kind","relativePath","symbol","projectFingerprint","language","semanticEngine","payloadVersion"],stalenessTest:"tests/semantic/rust/rust-semantic-cache-gate.test.ts",owner:"src/semantic/shared-primitives.ts"}),Ge("health-semantic-prewarm",{dependsOn:["project-fingerprint","indexed-language-set","tool-version"],keyParts:["kind","scope","cliVersion","projectFingerprint","payloadVersion"],stalenessTest:"tests/runtime/cli-support.test.ts",owner:"src/runtime/cli-support.ts"})];function Ie(e){let t=new Map;return{kind:e.kind,read(r,n,i){let s=!1,o=0,a;if(gt()){let c=Wr(r);if(c){let l=`${c}\0${n}\0${i}`;a=t.get(l),a||(a=ht(["evidence-product-file-read-v1",e.kind,c,n,i]),t.set(l,a))}}return yt("evidence-product.file.read",()=>{let c=$r(r,e.kind,n,i);if(c===null)return null;o=c.length;try{let l=e.deserialize(c);return s=l!==null,l}catch{return null}},()=>({...a?{workIdentity:a,workOutcome:"computed"}:{},scope:"file",kind:e.kind,available:!0,hit:s,payloadBytes:o}))},write(r,n,i,s){Vr(r,e.kind,n,i,e.serialize(s))},writeBatch(r,n){Ur(r,n.map(i=>({kind:e.kind,relativePath:i.relativePath,contentHash:i.contentHash,payload:e.serialize(i.value)})))}}}function $l(e){let t=new Map;return{kind:e.kind,read(r,n,i){let s=!1,o=0,a;if(gt()){let c=`${i}\0${n}`;a=t.get(c),a||(a=ht(["evidence-product-project-read-v1",e.kind,i,n]),t.set(c,a))}return yt("evidence-product.project.read",()=>{let c=Br(r,e.kind,n,i);if(c===null)return null;o=c.length;try{let l=e.deserialize(c);return s=l!==null,l}catch{return null}},()=>({...a?{workIdentity:a,workOutcome:"computed"}:{},scope:"project",kind:e.kind,available:!0,hit:s,payloadBytes:o}))},write(r,n,i,s){qr(r,e.kind,n,i,e.serialize(s))}}}function Ce(e){let t=is.find(r=>r.kind===e);if(!t)throw new Error(`missing evidence product manifest entry for ${e}`);return t.invalidation}function P(e,t){return{scope:"file",kind:e,invalidation:{scope:"file",...t}}}function Ge(e,t){return{scope:"project",kind:e,invalidation:{scope:"project",...t}}}import{isAbsolute as ss,relative as os}from"path";function N(e){return e.replace(/\\/g,"/")}function Bl(e,t){let r=os(e,t);return r===""||!r.startsWith("..")&&!ss(r)}var as=[".ts",".tsx",".mts",".cts",".js",".jsx",".mjs",".cjs"];function Hl(e){let t=e.toLowerCase();return as.some(r=>t.endsWith(r))}import{createRequire as cs}from"module";var Hr=cs(import.meta.url),Re,Ke;function ls(){if(Re!==void 0)return Re;try{Re=Hr("ts-morph")}catch{Re=null}return Re}function Kl(){if(Ke)return Ke;let e=ls();if(!e)return"ts-morph:unavailable";let t="unknown";try{t=Hr("ts-morph/package.json").version??"unknown"}catch{}return Ke=`ts-morph:${t}:typescript:${e.ts.version}`,Ke}function Xl(e,t){return t.map(r=>({tsconfigPath:r,project:new e.Project({tsConfigFilePath:r,skipFileDependencyResolution:!0})}))}function Jl(e,t,r){return{language:"typescript",availability:()=>({available:!1,reason:e,tsconfigPath:t,tsconfigPaths:r}),importUsage:()=>[],referencesFor:()=>[],calleesFor:()=>[],signatureFor:()=>null}}function Ql(e,t,r){let n=new Set(r),i=new Map(r.map(s=>[s,[]]));for(let s of e)for(let o of t.get(s.symbolId)??[])n.has(o.file)&&i.get(o.file).push({targetSymbol:s.symbol,location:o});for(let[s,o]of i)i.set(s,ps(o));return i}function ps(e){let t=new Map;for(let r of e){let{location:n}=r;t.set(`${r.targetSymbol}\0${n.file}\0${n.line}\0${n.column}`,r)}return[...t.values()].sort((r,n)=>r.targetSymbol.localeCompare(n.targetSymbol)||us(r.location,n.location))}function us(e,t){return e.file.localeCompare(t.file)||e.line-t.line||e.column-t.column}import{existsSync as Ft,readFileSync as At,readdirSync as ds,statSync as fs}from"fs";import{join as ge,relative as ms}from"path";function zr(e){let t=gs(e)??xs(e);if(!t||t.length===0)return[];let r=[],n=new Set;for(let i of t)for(let s of bs(e,i)){if(n.has(s))continue;n.add(s);let o=vs(e,s);o&&r.push(o)}return r}function gs(e){let t=ge(e,"pnpm-workspace.yaml");if(!Ft(t))return null;try{return hs(At(t,"utf8"))}catch{return null}}function hs(e){let t=[],r=!1;for(let n of e.split(/\r?\n/)){let i=ys(n);if(!r){/^packages\s*:\s*$/.test(i.trim())&&(r=!0);continue}let s=/^\s+-\s*(.+)$/.exec(i);if(s){let o=Ss(s[1].trim());o&&t.push(o);continue}if(i.trim()!=="")break}return t}function ys(e){let t=e.indexOf("#");return t===-1?e:e.slice(0,t)}function Ss(e){return e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'")?e.slice(1,-1):e}function xs(e){let t=ge(e,"package.json");if(!Ft(t))return null;try{let r=JSON.parse(At(t,"utf8"));return r.workspaces?Array.isArray(r.workspaces)?r.workspaces:r.workspaces.packages??[]:null}catch{return null}}function bs(e,t){if(!t||t.startsWith("!")||t.includes("node_modules"))return[];if(!t.includes("*")){let o=ge(e,t);return wt(o)?[o]:[]}let r=t.indexOf("*"),n=t.slice(0,r).replace(/\/$/,""),i=t.slice(r+1).replace(/^\//,""),s=ge(e,n||".");return wt(s)?ds(s).map(o=>ge(s,o,i)).filter(wt):[]}function wt(e){try{return fs(e).isDirectory()}catch{return!1}}function vs(e,t){let r=ge(t,"package.json");if(!Ft(r))return null;try{let n=JSON.parse(At(r,"utf8"));return typeof n.name!="string"||n.name.length===0?null:{name:n.name,relativeDir:ms(e,t).replace(/\\/g,"/"),exports:n.exports}}catch{return null}}import{createRequire as Es}from"module";import{existsSync as te}from"fs";import{basename as Gr,dirname as I,extname as W,join as F,relative as Z,resolve as y,sep as Ps}from"path";var Ns=Le("indexed-paths",{clearGroups:[]}),ks=Le("indexed-path-digest",{clearGroups:[]}),Ts=x("tsconfig-alias-config",{clearGroups:["whole-project"]}),Is=x("tsconfig-alias-config-for-dir",{clearGroups:["whole-project"]}),Cs=Es(import.meta.url),_e;function Rs(){if(_e!==void 0)return _e;try{_e=Cs("typescript")}catch{_e=null}return _e}var _s=["tsconfig.json","tsconfig.app.json","tsconfig.node.json","tsconfig.base.json"],ws=Le("workspace-packages",{clearGroups:["whole-project"]}),ee=[".ts",".tsx",".mts",".cts",".js",".jsx",".mjs",".cjs",".vue"],Xe=[".py",".pyi"],C=[".java",".scala",".kt",".kts"],Je=[".rs"],Ye=[".rb"],Qe=[".c",".h",".cc",".cpp",".cxx",".hpp",".hh",".hxx"],G=[".cs",".vb"],Ze=[".dart"],re=[".php"],he=[".clj",".cljs",".cljc"],Fs=new Set(ee),Dt=new Set(Xe),Kr=new Set(C),jt=new Set(Je),Lt=new Set(Ye),Xr=new Set(Qe),Jr=new Set(G),Ot=new Set(Ze),Yr=new Set(re),Qr=new Set(he),As=[{extensions:ee,lookup:Fs},{extensions:Xe,lookup:Dt},{extensions:C,lookup:Kr},{extensions:Je,lookup:jt},{extensions:Ye,lookup:Lt},{extensions:Qe,lookup:Xr},{extensions:G,lookup:Jr},{extensions:Ze,lookup:Ot},{extensions:re,lookup:Yr},{extensions:he,lookup:Qr}];function $(e,t){return t.has(W(e).toLowerCase())}function Ds(e){return $(e,Dt)}function js(e){return $(e,Kr)}function Ls(e){return $(e,jt)}function Os(e){return $(e,Lt)}function Ms(e){return $(e,Xr)}function Ws(e){return $(e,Jr)}function Zr(e){return W(e).toLowerCase()===".vb"}function $s(e){return $(e,Ot)}function Vs(e){return $(e,Yr)}function Us(e){return $(e,Qr)}function Mt(e){let t=W(e).toLowerCase();for(let r of As)if(r.lookup.has(t))return r.extensions;return ee}function Bs(e){return js(e)||Ws(e)||Vs(e)}function K(e,t,r){return Ds(t)?ye(e,t,r):Ls(t)?V(e,t,r):Os(t)?et(e,t,r):Ms(t)?tt(e,t,r):Bs(t)?g(e,r.replace(/\\/g,"."),Mt(t)):$s(t)?rt(e,t,r):Us(t)?Wt(e,r):qs(e,t,r)}function qs(e,t,r){if(!r.startsWith(".")&&!r.startsWith("/"))return Hs(e,t,r)??Gs(e,r);let n=I(F(e.config.projectRoot,t)),i=y(n,r),s=U(e);for(let o of Vt(i)){let a=N(Z(e.config.projectRoot,o));if(s.has(a)||te(o))return a}return N(Z(e.config.projectRoot,i))}function Hs(e,t,r){let n=Zs(e,t);if(!n)return null;let i=U(e);for(let s of zs(n,r)){let o=y(n.baseUrl,s);for(let a of Vt(o)){let c=N(Z(e.config.projectRoot,a));if(i.has(c)||te(a))return c}}return null}function zs(e,t){let r=[];for(let[n,i]of Object.entries(e.paths)){let s=n.indexOf("*");if(s===-1){if(t!==n)continue;r.push(...i);continue}let o=n.slice(0,s),a=n.slice(s+1);if(!t.startsWith(o)||!t.endsWith(a)||t.length<o.length+a.length)continue;let c=t.slice(o.length,t.length-a.length);for(let l of i)r.push(l.includes("*")?l.replace("*",c):l)}return r}function Gs(e,t){let r=Xs(Ks(e),t);if(!r)return null;let n=U(e);for(let i of Js(r)){let s=y(e.config.projectRoot,r.pkg.relativeDir,i);for(let o of Vt(s)){let a=N(Z(e.config.projectRoot,o));if(n.has(a)||te(o))return a}}return null}function Ks(e){return ws.get(e,()=>zr(e.config.projectRoot))}function Xs(e,t){let r=null;for(let n of e){let i=null;t===n.name?i="":t.startsWith(`${n.name}/`)&&(i=t.slice(n.name.length+1)),i!==null&&(!r||n.name.length>r.pkg.name.length)&&(r={pkg:n,subpath:i})}return r}function Js(e){let t=[],r=Ys(e.pkg.exports,e.subpath);if(r){let n=Qs(r);n&&t.push(n)}return t.push(e.subpath?`src/${e.subpath}`:"src/index"),t}function Ys(e,t){if(!e||typeof e!="object")return null;let r=t===""?".":`./${t}`;return en(e[r])}function en(e){if(typeof e=="string")return e;if(!e||typeof e!="object")return null;let t=e;for(let r of["types","import","default","require","node"]){let n=en(t[r]);if(n)return n}return null}function Qs(e){let t=e.replace(/^\.\//,"");return t.startsWith("dist/")?`src/${t.slice(5)}`:null}function Zs(e,t){let r=N(I(t));return Is.get(e,r,()=>eo(e,r))}function eo(e,t){let r=Rs();if(!r)return null;let n=y(e.config.projectRoot),i=y(n,t);for(;i===n||i.startsWith(n+Ps);){for(let o of _s){let a=F(i,o);if(!te(a))continue;let c=Ts.get(e,a,()=>to(r,a));if(c)return c}let s=I(i);if(s===i)break;i=s}return null}function to(e,t){try{let r=e.readConfigFile(t,e.sys.readFile);if(r.error||!r.config)return null;let n=e.parseJsonConfigFileContent(r.config,e.sys,I(t)),i=n.options.paths;return!i||Object.keys(i).length===0?null:{baseUrl:n.options.baseUrl?y(I(t),n.options.baseUrl):I(t),paths:i}}catch{return null}}function ye(e,t,r){let n=U(e),i;if(r.startsWith(".")){let s=r.match(/^(\.+)(.*)$/);if(!s)return null;let o=s[1].length,a=s[2].replace(/^\./,""),c=I(F(e.config.projectRoot,t));for(let l=1;l<o;l++)c=I(c);i=a?y(c,a.replace(/\./g,"/")):c}else i=y(e.config.projectRoot,r.replace(/\./g,"/"));for(let s of ro(i)){let o=N(Z(e.config.projectRoot,s));if(n.has(o)||te(s))return o}return null}function V(e,t,r){if(!r)return null;let n=r.replace(/\s+as\s+.+$/,"").trim();if(!n.startsWith("crate::")&&!n.startsWith("self::")&&!n.startsWith("super::"))return null;let i=I(F(e.config.projectRoot,t)),s;return n.startsWith("crate::")?s=y(e.config.projectRoot,"src",n.slice(7).replace(/::/g,"/")):n.startsWith("self::")?s=y(i,n.slice(6).replace(/::/g,"/")):s=y(I(i),n.slice(7).replace(/::/g,"/")),$t(e,no(s))}function et(e,t,r){let n=I(F(e.config.projectRoot,t)),i=y(n,r);return $t(e,io(i))}function tt(e,t,r){let n=I(F(e.config.projectRoot,t)),i=[y(n,r),y(e.config.projectRoot,r),y(e.config.projectRoot,"include",r),y(e.config.projectRoot,"src",r)];return $t(e,i)}function g(e,t,r){let n=U(e),i=t.replace(/\\/g,".").replace(/::/g,".").replace(/^global::/,""),s=i.replace(/\./g,"/"),o=i.split(".").pop()??i;for(let c of r){let l=`${s}${c}`,p=[...n].find(u=>u.endsWith(l));if(p)return p}for(let c of r){let l=[...n].find(p=>Gr(p)===`${o}${c}`);if(l)return l}let a=[...n].filter(c=>r.includes(W(c).toLowerCase())).filter(c=>c.includes(`/${s}/`)||c.includes(`/${o}/`)).sort((c,l)=>c.localeCompare(l));return a.length===1?a[0]:null}function rt(e,t,r){let n=U(e);if(r.startsWith("package:")){let o=r.slice(8),a=o.indexOf("/");if(a<0)return null;let c=o.slice(a+1),l=N(c.startsWith("lib/")?c:`lib/${c}`);return n.has(l)?l:null}let i=I(F(e.config.projectRoot,t)),s=y(i,r);for(let o of so(s)){let a=N(Z(e.config.projectRoot,o));if(n.has(a)||te(o))return a}return null}function Wt(e,t){let r=t.replace(/-/g,"_").replace(/\./g,"/"),n=U(e);for(let i of he){let s=`${r}${i}`,o=[...n].find(a=>a.endsWith(s));if(o)return o}for(let i of he){let s=[...n].find(o=>Gr(o)===`${r.split("/").pop()}${i}`);if(s)return s}return null}function ro(e){let t=W(e);return Dt.has(t)?[e]:[`${e}.py`,`${e}.pyi`,F(e,"__init__.py"),F(e,"__init__.pyi")]}function $t(e,t){let r=U(e);for(let n of t){let i=N(Z(e.config.projectRoot,n));if(r.has(i)||te(n))return i}return null}function no(e){let t=W(e);return jt.has(t)?[e]:[`${e}.rs`,F(e,"mod.rs")]}function io(e){let t=W(e);return Lt.has(t)?[e]:[`${e}.rb`,F(e,"index.rb")]}function so(e){let t=W(e);return Ot.has(t)?[e]:[`${e}.dart`,e]}function Vt(e){let t=W(e),r=new Set;if(t){r.add(e);for(let n of ee)r.add(e.slice(0,-t.length)+n)}else for(let n of ee)r.add(`${e}${n}`),r.add(F(e,`index${n}`));return[...r]}function U(e){return Ns.get(e,()=>new Set(lr(e,{includeIgnored:!1}).map(N)))}function Ut(e){return ks.get(e,()=>ze([...U(e)].sort().join(`
88
+ `)))}import{readFileSync as oo}from"fs";import{join as ao}from"path";var co=x("source-text",{clearGroups:["whole-project","source-file"]}),lo=x("source-lines",{clearGroups:["whole-project","source-file"]});function R(e,t){let r=t.replace(/\\/g,"/");return co.get(e,r,()=>{let n=ao(e.config.projectRoot,r);try{return oo(n,"utf-8")}catch(i){if(po(i))return"";throw i}})}function po(e){return typeof e=="object"&&e!==null&&"code"in e&&(e.code==="ENOENT"||e.code==="ENOTDIR")}function gp(e,t){let r=t.replace(/\\/g,"/");return lo.get(e,r,()=>{let n=R(e,r);return n?n.split(`
89
+ `):[]})}import{basename as In}from"path";function ne(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function uo(e){return e.replace(/'''[\s\S]*?'''/g,X).replace(/"""[\s\S]*?"""/g,X).replace(/#.*$/gm,X).replace(/\/\/.*$/gm,X).replace(/\/\*[\s\S]*?\*\//g,X).replace(/`(?:\\[\s\S]|[^`])*`/g,X).replace(/'(?:\\.|[^'\\\r\n])*'/g,X).replace(/"(?:\\.|[^"\\\r\n])*"/g,X)}function X(e){return e.replace(/[^\r\n]/g," ")}var vp=ue("stripped-lines",{clearGroups:["whole-project","source-file"]});ar({name:"stripped-source-singleton",groups:["whole-project","source-file"],clearAll:()=>{nt=null,we=""},clearFile:()=>{nt=null,we=""}});var nt=null,we="";function fo(e){return nt===e||(nt=e,we=uo(e)),we}function J(e,t,r){let n=fo(e);return`${n.slice(0,t)}${" ".repeat(r-t)}${n.slice(r)}`}function k(e,t){return new RegExp(`\\b${ne(t)}\\b`,"m").test(e)}function Se(e,t){let r=new Set,n=new RegExp(`\\b${ne(t)}\\s*\\.\\s*([A-Za-z_$][\\w$]*)`,"g");for(let i of e.matchAll(n)){let s=i[1];s&&r.add(s)}return[...r]}function Bt(e){let t=0;for(let r of e)r==="("&&(t+=1),r===")"&&(t-=1);return t}import{extname as tn}from"path";var mo={".rs":"rust",".ts":"typescript",".mts":"typescript",".cts":"typescript",".tsx":"tsx",".js":"javascript",".jsx":"javascript",".mjs":"javascript",".cjs":"javascript",".py":"python",".pyi":"python",".java":"java",".kt":"kotlin",".kts":"kotlin",".scala":"scala",".sc":"scala",".rb":"ruby",".c":"c",".h":"c",".cc":"cpp",".cpp":"cpp",".cxx":"cpp",".hpp":"cpp",".hh":"cpp",".hxx":"cpp",".cs":"csharp",".php":"php",".vb":"vb",".clj":"clojure",".cljs":"clojure",".cljc":"clojure"};function ie(e){return mo[tn(e).toLowerCase()]??null}function se(e){return tn(e).toLowerCase()===".vue"}import{createRequire as go}from"module";var b=go(import.meta.url),it=null,rn=!1;function ho(){if(rn)return null;if(it)return it;try{return it=b("tree-sitter"),it}catch{return rn=!0,null}}var nn=new Map,st=new Set;function yo(e){if(st.has(e))return null;let t=nn.get(e);if(t)return t;let r;try{switch(e){case"rust":r=b("tree-sitter-rust");break;case"typescript":r=b("tree-sitter-typescript").typescript;break;case"tsx":r=b("tree-sitter-typescript").tsx;break;case"javascript":r=b("tree-sitter-javascript");break;case"python":r=b("tree-sitter-python");break;case"java":r=b("tree-sitter-java");break;case"kotlin":r=b("tree-sitter-kotlin");break;case"scala":r=b("tree-sitter-scala");break;case"ruby":r=b("tree-sitter-ruby");break;case"c":r=b("tree-sitter-c");break;case"cpp":r=b("tree-sitter-cpp");break;case"csharp":r=b("tree-sitter-c-sharp");break;case"php":r=b("tree-sitter-php").php;break;case"vb":{let n=b("tree-sitter-vb-dotnet");r=n.language??n;break}case"clojure":return st.add(e),null}}catch{return st.add(e),null}return nn.set(e,r),r}var sn=new Map;function So(e){let t=sn.get(e);if(t)return t;let r=yo(e);if(!r)return null;let n=ho();if(!n)return null;let i=new n;try{i.setLanguage(r)}catch{return st.add(e),null}return sn.set(e,i),i}function xo(e,t){return e.parse(n=>n>=t.length?null:t.slice(n,Math.min(t.length,n+16384)))}function qt(e,t){let r=So(e);if(!r)return null;try{return xo(r,t)}catch{return null}}import{posix as Ht}from"path";import{parse as bo}from"@vue/compiler-sfc";var wp=cr("vue-sfc-units");function vo(e){return e.replace(/\\/g,"/").replace(/^\.\//,"")}function Eo(e){let t=e?.toLowerCase();return!t||t==="js"||t==="javascript"||t==="jsx"?"javascript":t==="ts"||t==="typescript"?"typescript":t==="tsx"?"tsx":null}function cn(e,t,r){let n={relativePath:t,template:null,scripts:[],styles:[],customBlocks:[],errors:[]};if(!r)return n;let i;try{i=bo(r,{filename:t})}catch(o){return n.errors.push(an(o)),n}n.errors.push(...i.errors.map(an));let{descriptor:s}=i;return s.template&&(n.template=ot(e,t,"template",s.template)),s.script&&n.scripts.push(on(e,t,s.script,!1)),s.scriptSetup&&n.scripts.push(on(e,t,s.scriptSetup,!0)),n.styles=s.styles.map(o=>ot(e,t,"style",o)),n.customBlocks=s.customBlocks.map(o=>ot(e,t,"custom",o)),n.errors.push(...[n.template,...n.scripts,...n.styles,...n.customBlocks].flatMap(o=>o?.errors??[])),n}function on(e,t,r,n){let i=ot(e,t,"script",r);return{...i,kind:"script",setup:n,astLanguage:Eo(i.lang)}}function ot(e,t,r,n){let i=No(n.attrs),s=typeof i.lang=="string"?i.lang:null,o=typeof i.src=="string"?i.src:typeof n.src=="string"?n.src:void 0;if(o){let c=Po(t,o);if(!c)return{kind:r,ownerPath:t,sourcePath:t,external:!0,src:o,attrs:i,lang:s,body:"",startLine:0,endLine:0,errors:[`Could not resolve Vue ${r} block source: ${o}`]};let l=R(e,c),p=l?Math.max(0,l.split(`
90
+ `).length-1):0;return{kind:r,ownerPath:t,sourcePath:c,external:!0,src:o,attrs:i,lang:s,body:l,startLine:0,endLine:p,errors:l?[]:[`Vue ${r} block source not found: ${c}`]}}let a=Math.max(0,n.loc.start.line-1);return{kind:r,ownerPath:t,sourcePath:t,external:!1,attrs:i,lang:s,body:n.content,startLine:a,endLine:Math.max(a,n.loc.end.line-1),errors:[]}}function Po(e,t){let r=t.split(/[?#]/,1)[0];if(!r||r.startsWith("/")||r.includes("://"))return null;let n=vo(Ht.normalize(Ht.join(Ht.dirname(e),r)));return n===".."||n.startsWith("../")?null:n}function No(e){return{...e}}function an(e){return e instanceof Error?e.message:String(e)}function at(e,t,r){let i=cn(e,t,r).scripts.filter(o=>o.astLanguage&&o.body.length>0),s=i[0]?.astLanguage;return s?{body:i.map(o=>`${`
91
+ `.repeat(o.startLine)}${o.body}`).join(`
92
+ `),startLine:0,language:s}:null}var ln=ue("ast-trees",{clearGroups:["whole-project","source-file"]});function M(e,t){if(se(t))return ko(e,t);let r=ie(t);if(!r)return null;let n=R(e,t);return n?ln.get(e,t,n,()=>qt(r,n)):null}function ko(e,t){let r=R(e,t);return r?ln.get(e,t,r,()=>{let n=at(e,t,r);if(!n)return null;let i=`
93
+ `.repeat(n.startLine)+n.body;return qt(n.language,i)}):null}function pn(e,t){let r=To(e,t);if(!r)return null;let n=oe(r);return n?{calleeLeaf:n,memberAccess:Io(r),line:e.startPosition.row}:null}function To(e,t){if(t==="rust")return e.type==="call_expression"?e.childForFieldName("function")??e.namedChild(0):e.type==="macro_invocation"?e.childForFieldName("macro")??e.namedChild(0):null;if(t==="python")return e.type!=="call"?null:e.childForFieldName("function")??e.namedChild(0);if(t==="typescript"||t==="tsx"||t==="javascript"){if(e.type==="call_expression")return e.childForFieldName("function")??e.namedChild(0);if(e.type==="new_expression")return e.childForFieldName("constructor")??e.namedChild(0)}return null}function Io(e){switch(e.type){case"field_expression":case"member_expression":case"attribute":return!0;default:return!1}}function oe(e){switch(e.type){case"identifier":case"type_identifier":case"field_identifier":case"property_identifier":case"shorthand_property_identifier":return e.text;case"field_expression":case"member_expression":case"attribute":{let t=e.namedChild(e.namedChildCount-1);return t?oe(t):null}case"generic_function":{let t=e.childForFieldName("function")??e.namedChild(0);return t?oe(t):null}case"scoped_identifier":{let t=e.childForFieldName("name")??e.namedChild(e.namedChildCount-1);return t?oe(t):null}case"super":case"self":case"this":return null;default:return null}}function Fe(e){return e.type==="comment"||e.type==="line_comment"||e.type==="block_comment"}var Co=new Set(["function_declaration","method_definition","method_signature","function_signature"]);function gn(e,t){let r=_o(e,t);if(r)return{name:r.name,startLine:r.definitionNode.startPosition.row,endLine:r.definitionNode.endPosition.row,paramCount:fn(r.functionNode),params:un(r.functionNode),paramsEndLine:dn(r.functionNode),isLiteralPassthrough:mn(r.functionNode,t)};if(!Ro(e.type,t))return null;let n=e.childForFieldName("name")??e.namedChildren.find(i=>i.type==="identifier"||i.type==="property_identifier");return n?{name:n.text,startLine:e.startPosition.row,endLine:e.endPosition.row,paramCount:fn(e),params:un(e),paramsEndLine:dn(e),isLiteralPassthrough:mn(e,t)}:null}function hn(e){return e.namedChildren.find(t=>t.type==="parameters"||t.type==="formal_parameters")}function un(e){let t=hn(e);if(!t)return[];let r=[];for(let n of t.namedChildren){if(Fe(n))continue;if(n.type==="identifier"){r.push({name:n.text,simple:!0});continue}let i=n.namedChildren.some(a=>a.type.endsWith("_modifier"))||/^\s*(?:public|private|protected|readonly|override)\b/.test(n.text),s=n.childForFieldName("pattern");if(!i&&s&&s.type==="identifier"){r.push({name:s.text,simple:!0});continue}let o=n.namedChildren.find(a=>a.type==="identifier");r.push({name:s?.type==="identifier"?s.text:o?.text??"",simple:!1})}return r}function dn(e){let t=hn(e);return t?t.endPosition.row:e.startPosition.row}function Ro(e,t){return t==="rust"?e==="function_item"||e==="function_signature_item":t==="python"?e==="function_definition":t==="typescript"||t==="tsx"||t==="javascript"?Co.has(e):!1}function _o(e,t){if(t!=="typescript"&&t!=="tsx"&&t!=="javascript")return null;if(e.type==="variable_declarator"){let r=e.childForFieldName("name")??e.namedChild(0),n=e.childForFieldName("value")??e.namedChild(1);return!r||!n||n.type!=="arrow_function"&&n.type!=="function_expression"?null:{name:r.text,definitionNode:e,functionNode:n}}if(e.type==="public_field_definition"){let r=e.childForFieldName("name")??e.namedChild(0),n=e.childForFieldName("value")??e.namedChild(1);return!r||!n||n.type!=="arrow_function"&&n.type!=="function_expression"?null:{name:r.text,definitionNode:e,functionNode:n}}return null}function fn(e){let t=e.namedChildren.find(n=>n.type==="parameters"||n.type==="formal_parameters");if(!t)return 0;let r=0;for(let n of t.namedChildren)Fe(n)||(r+=1);return r}function mn(e,t){let r=e.namedChildren.find(u=>u.type==="block"||u.type==="statement_block");if(!r)return!1;let n=r.namedChildren.filter(u=>!Fe(u));if(n.length!==1)return!1;let i=n[0],s=null;if(i.type==="return_statement"||i.type==="expression_statement"?s=i.namedChild(0)??null:t==="rust"&&(i.type==="call_expression"||i.type==="macro_invocation")&&(s=i),!s)return!1;let o=t==="python"?"call":"call_expression";if(s.type!==o)return!1;let a=s.namedChildren.find(u=>u.type==="arguments"||u.type==="argument_list");if(!a)return!1;let c=a.namedChildren.filter(u=>!Fe(u)),l=e.namedChildren.find(u=>u.type==="parameters"||u.type==="formal_parameters");if(!l)return!1;let p=[];for(let u of l.namedChildren){if(u.type==="identifier"){p.push(u.text);continue}let d=u.namedChildren.find(f=>f.type==="identifier");d&&p.push(d.text)}if(c.length!==p.length)return!1;for(let u=0;u<p.length;u+=1){let d=c[u];if(d.type!=="identifier"||d.text!==p[u])return!1}return!0}var wo=new Set(["identifier","type_identifier","field_identifier"]),Fo=new Set(["identifier"]),Ao=new Set(["identifier","property_identifier","type_identifier","shorthand_property_identifier","shorthand_property_identifier_pattern"]),Do=new Set(["rust","python"]),jo=/\{([^{}]*)\}/g,Lo=/\b([A-Za-z_][\w]*)\b/g;function yn(e,t){return Oo(t).has(e.type)}function Sn(e,t){return Do.has(t)&&e.type==="string_content"}function zt(e){let t=0;for(let n of e.values()){let i=n[n.length-1];i!==void 0&&i>t&&(t=i)}let r=new Array(t+1);for(let n=0;n<=t;n+=1)r[n]=new Set;for(let[n,i]of e)for(let s of i)r[s].add(n);return r}function Oo(e){return e==="rust"?wo:e==="python"?Fo:Ao}function xn(e,t){let r=e.startPosition.row;for(let n of e.text.matchAll(jo)){let i=n[1]??"";for(let s of i.matchAll(Lo))s[1]&&t(s[1],r)}}var Mo=[/\bdefault\s*=\s*"([^"]+)"/g,/\bwith\s*=\s*"([^"]+)"/g,/\bserialize_with\s*=\s*"([^"]+)"/g,/\bdeserialize_with\s*=\s*"([^"]+)"/g,/\bskip_serializing_if\s*=\s*"([^"]+)"/g,/\bgetter\s*=\s*"([^"]+)"/g,/\brename_all_with\s*=\s*"([^"]+)"/g,/\bschema_with\s*=\s*"([^"]+)"/g],Wo=/^#!?\[\s*serde\s*\(/,$o=/^#!?\[\s*schemars\s*\(/,Vo=/^#!?\[\s*validate\s*\(/,Uo=new Set(["invoke","invokeTauriCommand","listen","once","emit","subscribe","dispatch","sendCommand","callRust"]);function bn(e,t,r){if(t!=="typescript"&&t!=="tsx"&&t!=="javascript"||e.type!=="call_expression")return;let n=e.childForFieldName("function")??e.namedChild(0);if(!n)return;let i=oe(n);if(!i||!Uo.has(i))return;let s=e.namedChildren.find(c=>c.type==="arguments");if(!s)return;let o=s.namedChild(0);if(!o||o.type!=="string")return;let a=o.namedChildren.find(c=>c.type==="string_fragment");a&&r.add(a.text)}function vn(e,t){let r=Wo.test(e),n=$o.test(e),i=Vo.test(e);if(!(!r&&!n&&!i))for(let s of Mo){s.lastIndex=0;let o;for(;(o=s.exec(e))!==null;){let a=o[1],c=a.split("::").pop()??a;c==="is_none"&&/\bOption\b/.test(a)||c==="is_empty"&&/\b(String|Vec|HashMap|BTreeMap|HashSet|BTreeSet)\b/.test(a)||c&&t.add(c)}}}function En(e,t){let r=new Map,n=(o,a)=>{if(o===a)return;let c=r.get(o);c||(c=new Set,r.set(o,c)),c.add(a)},i=t==="python"?new Set(["identifier"]):new Set(["type_identifier"]),s=(o,a)=>{let c=l=>{i.has(l.type)&&l.text!==a&&n(l.text,a);for(let p of l.children)c(p)};for(let l of o.children)c(l)};if(t==="rust")for(let o of e.rootNode.descendantsOfType(["struct_item","enum_item","union_item","type_item"])){let a=o.namedChildren.find(l=>l.type==="type_identifier")?.text;if(!a)continue;let c=o.namedChildren.find(l=>l.type==="field_declaration_list"||l.type==="enum_variant_list"||l.type==="ordered_field_declaration_list");c&&s(c,a),o.type==="type_item"&&s(o,a)}else if(t==="python")for(let o of e.rootNode.descendantsOfType("class_definition")){let a=o.namedChildren.find(p=>p.type==="identifier")?.text;if(!a)continue;let c=o.childForFieldName("superclasses");c&&s(c,a);let l=o.namedChildren.find(p=>p.type==="block");if(l)for(let p of l.descendantsOfType("type"))for(let u of p.descendantsOfType("identifier"))u.text!==a&&n(u.text,a)}else for(let o of e.rootNode.descendantsOfType(["interface_declaration","type_alias_declaration","class_declaration"])){let a=o.namedChildren.find(c=>c.type==="type_identifier")?.text;a&&s(o,a)}return r}var Bo=new Map([["defn","function"],["defn-","function"],["defmacro","macro"],["defmacro-","macro"],["defmethod","method"]]),Gt=new Set(["catch","comment","def","defprotocol","defrecord","deftype","defmethod","defmacro","defmacro-","defn","defn-","do","doseq","dotimes","fn","for","if","let","loop","ns","quote","recur","throw","try","extend-protocol","extend-type","when","when-let","when-not"]);function Pn(e){let t=[],r=[],n=[],i=new Map,s=[],o=0,a=0,c=(l,p)=>{let u=i.get(l);if(!u){i.set(l,[p]);return}u[u.length-1]!==p&&u.push(p)};for(;a<e.length;){let l=e[a];if(l===`
94
+ `){o+=1,a+=1;continue}if(/\s|,/.test(l)){a+=1;continue}if(l===";"){a=lt(e,a);continue}if(l==='"'){let S=De(e,a,o);o=S.line,a=S.index;continue}if(l==="("||l==="["||l==="{"){s.push({kind:l,startLine:o,endLine:o,headTokens:[],tokens:[],children:[]}),a+=1;continue}if(l===")"||l==="]"||l==="}"){let S=s.pop();S&&(S.endLine=o,qo(S,{callables:t,callSites:r,clojureMembers:n,recordIdentifier:c}),s[s.length-1]?.children.push(S)),a+=1;continue}if(Kt(l)){a+=1;continue}let p=o,u=a;for(;a<e.length&&!Xt(e[a]);)a+=1;let d=e.slice(u,a);if(!d)continue;let f={text:d,line:p};Ho(s[s.length-1],f),c(A(d),p)}return{language:"clojure",callables:t,callSites:r,clojureMembers:n,typeContainerMap:new Map,identifierLineMap:i,identifiersByLine:Jo(i),fileIdentifiers:new Set(i.keys()),rustAttrReferencedNames:new Set,crossLanguageDispatchNames:new Set}}function qo(e,t){if(e.kind!=="("||e.headTokens.length===0)return;let r=e.headTokens[0],n=A(r.text),i=Bo.get(r.text);if(i){let o=e.headTokens[1];if(o){let a=A(o.text);t.recordIdentifier(a,o.line),t.callables.push({name:a,startLine:e.startLine,endLine:e.endLine,paramCount:0,params:[],paramsEndLine:o.line,isLiteralPassthrough:!1,clojureKind:i})}}if(zo(e,t),!n||Gt.has(r.text)||Gt.has(n)||n.startsWith(":"))return;let s=Xo(r.text);t.callSites.push({calleeLeaf:s.leaf,calleeQualifier:s.qualifier,calleeText:s.text,memberAccess:!1,line:r.line})}function Ho(e,t){e&&(e.headTokens.length<2&&e.headTokens.push(t),e.tokens.length<200&&e.tokens.push(t))}function zo(e,t){let r=A(e.tokens[0]?.text??"");if(r==="defprotocol"){let n=A(e.tokens[1]?.text??"");if(!n)return;for(let i of ct(e))Ae(t,n,"protocol",i,"protocol-method");return}if(r==="defrecord"||r==="deftype"){let n=A(e.tokens[1]?.text??"");if(!n)return;let i=r==="defrecord"?"record":"type",s=r==="defrecord"?"record-method":"type-method";for(let o of ct(e))Ae(t,n,i,o,s);return}if(r==="extend-type"){let n=A(e.tokens[1]?.text??"");if(!n)return;for(let i of ct(e))Ae(t,n,"extension",i,"extension-method");return}if(r==="extend-protocol"){let n=A(e.tokens[1]?.text??"");for(let i of ct(e)){n&&Ae(t,n,"extension",i,"extension-method");let s=Ko(e,i.startLine);s&&s!==n&&Ae(t,s,"extension",i,"extension-method")}}}function ct(e){return e.children.filter(Go)}function Go(e){if(e.kind!=="(")return!1;let t=A(e.tokens[0]?.text??"");return!!(t&&!Gt.has(t)&&!t.startsWith(":"))}function Ae(e,t,r,n,i){let s=n.tokens[0],o=A(s?.text??"");!s||!o||(e.recordIdentifier(o,s.line),e.clojureMembers.push({ownerName:t,ownerKind:r,memberName:o,memberKind:i,startLine:n.startLine,endLine:n.endLine}))}function Ko(e,t){let r=null;for(let n=2;n<e.tokens.length;n+=1){let i=e.tokens[n];if(i.line>t)break;let s=A(i.text);s&&!s.startsWith(":")&&(r=s)}return r}function A(e){return e.replace(/^#?['`~@]+/,"").split("/").pop()?.replace(/^\./,"")??""}function Xo(e){let t=e.replace(/^#?['`~@]+/,""),r=t.lastIndexOf("/"),n=A(t);if(r<=0)return{leaf:n,text:t};let i=t.slice(0,r);return{leaf:n,qualifier:i,text:t}}function lt(e,t){let r=t;for(;r<e.length&&e[r]!==`
95
+ `;)r+=1;return r}function De(e,t,r){let n=t+1,i=r;for(;n<e.length;){let s=e[n];if(s==="\\"){n+=2;continue}if(s===`
96
+ `&&(i+=1),n+=1,s==='"')break}return{index:n,line:i}}function Kt(e){return e==="'"||e==="`"||e==="~"||e==="@"||e==="^"||e==="#"}function Xt(e){return/\s|,/.test(e)||e==="("||e===")"||e==="["||e==="]"||e==="{"||e==="}"||e==='"'||e===";"}function Jo(e){let t=[];for(let[r,n]of e)for(let i of n)t[i]??=new Set,t[i].add(r);return t}var Nn=3,Yo=ue("source-facts",{clearGroups:["whole-project","source-file"]}),Jt=Ie({kind:"source-facts",invalidation:Ce("source-facts"),serialize:ta,deserialize:ra});function kn(e,t){return Qo(e,t).facts}function Qo(e,t){let r=R(e,t);if(!r)return{facts:null};let n=Zo(e,t,r);return n?Yo.get(e,t,r,()=>ea(e,t,n,r)):{facts:null}}function Zo(e,t,r){return se(t)?at(e,t,r)?.language??null:ie(t)}function ea(e,t,r,n){let i=Ne(e,t,n),s=Jt.read(e,t,i);if(s&&s.language===r)return{facts:s};if(r==="clojure"){let c=Pn(n);return Jt.write(e,t,i,c),{facts:c}}let o=M(e,t);if(!o)return{facts:null,unavailable:{language:r,reason:"parser-unavailable"}};let a=na(o,r);return Jt.write(e,t,i,a),{facts:a}}function ta(e){let t={version:Nn,language:e.language,callables:e.callables,callSites:e.callSites,clojureMembers:e.clojureMembers,typeContainerMap:[...e.typeContainerMap.entries()].map(([r,n])=>[r,[...n]]),identifierLineMap:[...e.identifierLineMap.entries()],rustAttrReferencedNames:[...e.rustAttrReferencedNames],crossLanguageDispatchNames:[...e.crossLanguageDispatchNames]};return JSON.stringify(t)}function ra(e){try{let t=JSON.parse(e);if(t.version!==Nn||t.language==="clojure"&&(t.clojureMembers===void 0||t.callSites.some(n=>n.calleeText===void 0)))return null;let r=new Map(t.identifierLineMap);return{language:t.language,callables:t.callables,callSites:t.callSites,clojureMembers:t.clojureMembers??[],typeContainerMap:new Map(t.typeContainerMap.map(([n,i])=>[n,new Set(i)])),identifierLineMap:r,identifiersByLine:zt(r),fileIdentifiers:new Set(r.keys()),rustAttrReferencedNames:new Set(t.rustAttrReferencedNames),crossLanguageDispatchNames:new Set(t.crossLanguageDispatchNames)}}catch{return null}}function na(e,t){let r=[],n=[],i=new Set,s=new Set,o=new Map,a=(l,p)=>{let u=o.get(l);if(!u){o.set(l,[p]);return}u[u.length-1]!==p&&u.push(p)},c=l=>{let p=gn(l,t);p&&r.push(p);let u=pn(l,t);u&&n.push(u),bn(l,t,s),t==="rust"&&(l.type==="attribute_item"||l.type==="inner_attribute_item")&&vn(l.text,i),yn(l,t)&&a(l.text,l.startPosition.row),Sn(l,t)&&xn(l,a);for(let d of l.children)c(d)};return c(e.rootNode),{language:t,callables:r,callSites:n,clojureMembers:[],typeContainerMap:En(e,t),identifierLineMap:o,identifiersByLine:zt(o),fileIdentifiers:new Set(o.keys()),rustAttrReferencedNames:i,crossLanguageDispatchNames:s}}var ia=new Set(["rust","typescript","tsx","javascript","python","clojure"]);function sa(e,t){let r=kn(e,t);return!r||!ia.has(r.language)?null:r.callables.map(n=>({name:n.name,startLine:n.startLine,endLine:n.endLine}))}function Tn(e,t){return e.split(t).filter(Boolean).map(r=>r.charAt(0).toUpperCase()+r.slice(1)).join("")}var oa=new Set(["identifier","type_identifier","property_identifier","shorthand_property_identifier","field_identifier"]);function T(e){let t=[],r=0,n=0;for(let i=0;i<e.length;i++){let s=e[i];(s==="{"||s==="["||s==="(")&&r++,(s==="}"||s==="]"||s===")")&&r--,s===","&&r===0&&(t.push(e.slice(n,i)),n=i+1)}return t.push(e.slice(n)),t}function _(e,t){for(let r of e.namedChildren)if(r.type===t)return r;return null}function h(e,t){let r=new Set,n=(i,s)=>{let o=s||t.has(i.type);!o&&oa.has(i.type)&&r.add(i.text);for(let a of i.children)n(a,o)};return n(e.rootNode,!1),r}function O(e,t,r,n,i,s,o){return{importedName:i,localName:s,sourcePath:o??g(e,n,Mt(t)),kind:"named",used:k(r,s),usedMembers:[]}}function m(e,t,r,n,i="named",s={}){return{importedName:e,localName:t,sourcePath:r,kind:i,used:n.has(t),usedMembers:[],isTypeOnly:s.isTypeOnly}}function B(e,t,r,n,i="named",s=[],o={}){return{importedName:e,localName:t,sourcePath:r,kind:i,used:n,usedMembers:s,isTypeOnly:o.isTypeOnly}}function ae(e,t){return{importedName:e,localName:null,sourcePath:t,kind:"side-effect",used:!0,usedMembers:[]}}function ce(e,t,r={}){return{importedName:e,localName:r.localName??null,sourcePath:t,kind:"namespace",used:r.used??!0,usedMembers:r.usedMembers??[],isTypeOnly:r.isTypeOnly}}function D(e,t,r){let n=[];for(let i of e.matchAll(t)){let s=i[0];if(!s||typeof i.index!="number")continue;let o=J(e,i.index,i.index+s.length);for(let a of r(i,o))n.push(a)}return n}function j(e,t,r,n){let i=M(e,t);if(i){let s=r(i);if(s)return s}return n()}function pt(e,t,r,n){let i=M(e,t),s=ie(t),o=s?r[s]:void 0;return i&&o?o(i):n()}function Cn(e,t,r){return j(e,t,n=>ca(e,t,n),()=>aa(e,t,r))}function aa(e,t,r){return D(r,/^[ \t]*#include\s+[<"]([^">]+)[">]\s*$/gm,(n,i)=>{let s=n[1]?.trim();if(!s)return[];let o=In(s).replace(/\.[^.]+$/,"");return[B(s,o,tt(e,t,s),k(i,o))]})}function ca(e,t,r){let n=h(r,new Set(["preproc_include"])),i=[];for(let s of r.rootNode.descendantsOfType("preproc_include")){let o=null;for(let c of s.namedChildren){if(c.type==="system_lib_string"){o=c.text.replace(/^<|>$/g,"");break}if(c.type==="string_literal"){o=c.namedChildren.find(p=>p.type==="string_content")?.text??c.text.replace(/^"|"$/g,"");break}}if(!o)continue;let a=In(o).replace(/\.[^.]+$/,"");i.push(m(o,a,tt(e,t,o),n))}return i}var la=new Set([":require",":require-macros",":use"]),Zt=String.raw`A-Za-z0-9_$*+!?.<>=-`;function _n(e,t,r){let n=ba(r);if(!n)return[];let i=xa(r,n.start,n.end),s=[];for(let o of n.children.slice(2)){if(o.type!=="list"||o.children.length===0)continue;let a=L(o.children[0]);if(a){if(la.has(a)){for(let c of da(o.children.slice(1)))s.push(...ua(e,c,i));continue}if(a===":import")for(let c of ma(o.children.slice(1)))s.push(c)}}return s}function pa(e){return e.type==="list"&&L(e.children[0])==="ns"}function ua(e,t,r){let n=Wt(e,t.namespace),i=t.alias??t.namespace,s=ha(r,i),o=[{importedName:t.namespace,localName:i,sourcePath:n,kind:"namespace",used:t.refers.length>0||t.referAll||s.length>0||ya(r,t.namespace),usedMembers:s}];t.referAll&&o.push({importedName:"*",localName:null,sourcePath:n,kind:"side-effect",used:!0,usedMembers:[]});for(let a of t.refers)o.push({importedName:a,localName:a,sourcePath:n,kind:"named",used:Sa(r,a),usedMembers:[]});return o}function da(e){return e.flatMap(t=>ut(t,null))}function ut(e,t){if(e.type==="atom")return e.text.startsWith(":")?[]:[{namespace:Qt(t,e.text),alias:null,refers:[],referAll:!1}];if(e.type==="vector")return e.children.length>0&&L(e.children[0])===null?e.children.flatMap(r=>ut(r,t)):fa(e,t);if(e.type==="list"&&e.children.length>0){let r=L(e.children[0]);return r?!r||r.startsWith(":")?[]:e.children.slice(1).flatMap(n=>ut(n,Qt(t,r))):e.children.flatMap(n=>ut(n,t))}return[]}function fa(e,t){let r=L(e.children[0]);if(!r||r.startsWith(":"))return[];let n={namespace:Qt(t,r),alias:null,refers:[],referAll:!1};for(let i=1;i<e.children.length;i+=1){let s=L(e.children[i]);if(!s?.startsWith(":"))continue;let o=e.children[i+1];if((s===":as"||s===":as-alias")&&o){n.alias=L(o),i+=1;continue}s===":refer"&&o&&(L(o)===":all"?n.referAll=!0:(o.type==="vector"||o.type==="list")&&n.refers.push(...o.children.map(L).filter(ga)),i+=1)}return[n]}function ma(e){let t=[];for(let r of e){if(r.type==="atom"){let i=r.text.split(".").pop()??r.text;t.push(B(i,i,null,!0));continue}if(r.type!=="vector")continue;let n=L(r.children[0]);if(n)for(let i of r.children.slice(1)){let s=L(i);s&&t.push(B(`${n}.${s}`,s,null,!0))}}return t}function Qt(e,t){return e?`${e}.${t}`:t}function L(e){return e?.type==="atom"?e.text:null}function ga(e){return!!(e&&!e.startsWith(":"))}function ha(e,t){let r=new Set,n=new RegExp(`${er()}${ne(t)}\\s*/\\s*([${Zt}]+)`,"g");for(let i of e.matchAll(n)){let s=i[1];s&&r.add(s)}return[...r]}function ya(e,t){return new RegExp(`${er()}${ne(t)}\\s*/`,"m").test(e)}function Sa(e,t){return new RegExp(`${er()}${ne(t)}(?![${Zt}])`,"m").test(e)}function er(){return`(?<![${Zt}])`}function xa(e,t,r){let n="",i=0;for(;i<e.length;){if(i>=t&&i<r){n+=e[i]===`
97
+ `?`
98
+ `:" ",i+=1;continue}let s=e[i];if(s===";"){let o=lt(e,i);n+=Rn(e.slice(i,o)),i=o;continue}if(s==='"'){let o=De(e,i,0).index;n+=Rn(e.slice(i,o)),i=o;continue}n+=s,i+=1}return n}function ba(e){let t=0;for(;t<e.length&&(t=tr(e,t),!(t>=e.length));){let r=dt(e,t);if(!r){t+=1;continue}if(pa(r.form))return r.form;t=r.index}return null}function dt(e,t){let r=tr(e,t);if(e.startsWith("#?@",r)||e.startsWith("#?",r))return va(e,r);if(e.startsWith("#_",r)){let i=dt(e,r+2);return i?{form:{type:"atom",text:"",start:r,end:i.index},index:i.index}:null}for(;Kt(e[r]);)r+=1;let n=e[r];return n?n==="("?Yt(e,r,"list",")"):n==="["?Yt(e,r,"vector","]"):n==="{"?Yt(e,r,"map","}"):n==='"'?{form:{type:"atom",text:"",start:r,end:De(e,r,0).index},index:De(e,r,0).index}:Pa(e,r):null}function va(e,t){let r=e.startsWith("#?@",t)?3:2,n=dt(e,t+r);return n?{form:{type:"list",children:n.form.type==="list"||n.form.type==="vector"||n.form.type==="map"?Ea(n.form.children):[],start:t,end:n.index},index:n.index}:null}function Ea(e){let t=[];for(let r=0;r<e.length;r+=2){let n=L(e[r]),i=e[r+1];n?.startsWith(":")&&i&&t.push(i)}return t}function Yt(e,t,r,n){let i=[],s=t+1;for(;s<e.length;){if(s=tr(e,s),e[s]===n)return{form:{type:r,children:i,start:t,end:s+1},index:s+1};let o=dt(e,s);if(!o){s+=1;continue}o.form.type==="atom"&&o.form.text===""||i.push(o.form),s=o.index}return{form:{type:r,children:i,start:t,end:e.length},index:e.length}}function Pa(e,t){let r=t;for(;r<e.length&&!Xt(e[r]);)r+=1;return{form:{type:"atom",text:e.slice(t,r),start:t,end:r},index:r}}function tr(e,t){let r=t;for(;r<e.length;){let n=e[r];if(/\s|,/.test(n)){r+=1;continue}if(n===";"){r=lt(e,r);continue}break}return r}function Rn(e){return e.replace(/[^\r\n]/g," ")}function wn(e,t,r){let n=[];for(let i of r.matchAll(/^[ \t]*import\s+['"]([^'"]+)['"](?:\s+as\s+([A-Za-z_]\w*))?[\s\S]*?;$/gm)){let s=i[1]?.trim(),o=i[2]?.trim()??null,a=i[0];if(!s||!a||typeof i.index!="number")continue;let c=J(r,i.index,i.index+a.length);n.push({importedName:s,localName:o,sourcePath:rt(e,t,s),kind:o?"namespace":"side-effect",used:o?k(c,o):!0,usedMembers:o?Se(c,o):[]})}return n}function Fn(e,t,r){let n=[];for(let i of r.matchAll(/^[ \t]*export\s+['"]([^'"]+)['"][\s\S]*?;$/gm)){let s=i[1]?.trim();s&&n.push({specifier:s,sourcePath:rt(e,t,s)})}return n}function An(e,t,r){return pt(e,t,{csharp:n=>ka(e,t,n),vb:n=>Na(e,t,n)},()=>{let n=Zr(t)?/^[ \t]*Imports\s+(.+?)\s*$/gm:/^[ \t]*using\s+(.+?)\s*;$/gm;return D(r,n,(i,s)=>{let o=i[1]?.trim();if(!o)return[];let[a,c]=o.split(/\s*=\s*/),l=!!c,p=(l?c:a)?.trim()??o,u=p.split(".").pop()??p,d=l?a?.trim()??u:u;return[O(e,t,s,p,u,d,g(e,p,G))]})})}function Na(e,t,r){let n=h(r,new Set(["imports_statement"])),i=[];for(let s of r.rootNode.descendantsOfType("imports_statement")){let o=s.namedChildren.filter(d=>d.type==="namespace_name");if(o.length===0)continue;let a=o[o.length-1],c=o.length>1?o[0]:null,l=a.text,p=l.split(".").pop()??l,u=c?.text??p;i.push(m(p,u,g(e,l,G),n,c?"namespace":"named"))}return i}function ka(e,t,r){let n=h(r,new Set(["using_directive"])),i=[];for(let s of r.rootNode.descendantsOfType("using_directive")){let o=s.namedChildren;if(o.length===0)continue;let a=null,c;o.length>=2&&o[0].type==="identifier"&&(o[1].type==="qualified_name"||o[1].type==="identifier")?(a=o[0],c=o[1]):c=o[o.length-1];let l=c.text,p=l.split(".").pop()??l,u=a?.text??p;i.push(m(p,u,g(e,l,G),n,a?"namespace":"named"))}return i}var Ta=x("vue-non-script-identifiers",{clearGroups:["whole-project","source-file"]});function Dn(e,t){return Ta.get(e,t,()=>{let r=new Set,n=R(e,t);if(!n)return r;let s=n.replace(/<script\b[^>]*>[\s\S]*?<\/script>/g,o=>o.replace(/[^\r\n]/g," ")).replace(/<!--[\s\S]*?-->/g,o=>o.replace(/[^\r\n]/g," ")).replace(/\/\*[\s\S]*?\*\//g,o=>o.replace(/[^\r\n]/g," "));for(let o of s.matchAll(/[A-Za-z_$][\w$]*/g))r.add(o[0]);return r})}function rr(e,t,r){return j(e,t,n=>Ca(e,t,n),()=>Ia(e,t,r))}function Ia(e,t,r){return Wa(r).flatMap(n=>$a(e,t,n.clause,n.specifier,n.start,n.end,r))}function Ca(e,t,r){let n=Ra(e,t,r),i=[];for(let s of r.rootNode.descendantsOfType("import_statement"))i.push(..._a(e,t,r,s,n));return i}function Ra(e,t,r){let n=h(r,new Set(["import_statement"]));if(se(t))for(let i of Dn(e,t))n.add(i);return n}function _a(e,t,r,n,i){let s=ja(n);if(!s)return[];let o=K(e,t,s),a=_(n,"import_clause");return a?wa(r,a,o,i,La(n.text)):[ae("*",o)]}function wa(e,t,r,n,i){let s=[];for(let o of t.namedChildren)if(o.type==="identifier")s.push(Fa(o.text,r,n,i));else if(o.type==="namespace_import"){let a=Aa(e,o,r,n,i);a&&s.push(a)}else o.type==="named_imports"&&s.push(...Da(o,r,n,i));return s}function Fa(e,t,r,n){return m("default",e,t,r,"default",{isTypeOnly:n})}function Aa(e,t,r,n,i){let o=_(t,"identifier")?.text??"";if(!o)return null;let a=Ma(e,o);return ce("*",r,{localName:o,usedMembers:a,isTypeOnly:i,used:a.length>0||n.has(o)})}function Da(e,t,r,n){let i=[];for(let s of e.namedChildren){if(s.type!=="import_specifier")continue;let o=s.namedChild(0),a=s.namedChild(1);if(!o)continue;let c=o.text,l=a?.text??c;i.push(m(c,l,t,r,"named",{isTypeOnly:n||Oa(s.text)}))}return i}function ja(e){let t=_(e,"string");if(!t)return null;let r=_(t,"string_fragment");return r?r.text:null}function La(e){return/^\s*import\s+type\b/.test(e)}function Oa(e){return/^\s*type\b/.test(e.trim())}function Ma(e,t){let r=new Set;for(let n of e.rootNode.descendantsOfType("member_expression")){let i=n.namedChild(0),s=n.namedChild(1);!i||!s||i.type!=="identifier"||i.text!==t||(s.type==="property_identifier"||s.type==="identifier")&&r.add(s.text)}return[...r]}function Wa(e){let t=[],r=/^[ \t]*import\s+([\s\S]*?)\s+from\s+['"]([^'"]+)['"]\s*;?/gm;for(let i of e.matchAll(r)){let s=i[0],o=i[1],a=i[2];!s||!a||typeof i.index!="number"||t.push({clause:o,specifier:a,start:i.index,end:i.index+s.length})}let n=/^[ \t]*import\s+['"]([^'"]+)['"]\s*;?/gm;for(let i of e.matchAll(n)){let s=i[0],o=i[1];!s||!o||typeof i.index!="number"||t.push({clause:null,specifier:o,start:i.index,end:i.index+s.length})}return t.sort((i,s)=>i.start-s.start)}function $a(e,t,r,n,i,s,o){let a=K(e,t,n),c=J(o,i,s);return r?Va(r).map(p=>({...p,sourcePath:a})).map(p=>{if(p.kind==="namespace"){let u=Se(c,p.localName);return ce(p.importedName,p.sourcePath,{localName:p.localName,usedMembers:u,used:u.length>0||k(c,p.localName),isTypeOnly:p.isTypeOnly})}return p.kind==="side-effect"?ae(p.importedName,p.sourcePath):B(p.importedName,p.localName??"",p.sourcePath,p.localName?k(c,p.localName):!1,p.kind,[],{isTypeOnly:p.isTypeOnly})}):[ae("*",a)]}function Va(e){let t=e.trim(),r=/^type\b/.test(t),n=t.replace(/^type\s+/,""),[i,s]=Ua(n),o=[];return i&&o.push(...jn(i,r)),s&&o.push(...jn(s,r)),o}function jn(e,t){let r=e.trim();if(!r)return[];if(r.startsWith("{")){let n=r.slice(1,-1).trim();return n?T(n).map(i=>{let s=i.trim(),o=t||/^type\b/.test(s),a=s.replace(/^type\s+/,""),[c,l]=a.split(/\s+as\s+/);return{importedName:c.trim(),localName:(l??c).trim(),kind:"named",isTypeOnly:o}}):[]}return r.startsWith("* as ")?[{importedName:"*",localName:r.slice(5).trim(),kind:"namespace",isTypeOnly:t}]:[{importedName:"default",localName:r,kind:"default",isTypeOnly:t}]}function Ua(e){let t=0;for(let r=0;r<e.length;r++){let n=e[r];if(n==="{"&&t++,n==="}"&&t--,n===","&&t===0)return[e.slice(0,r).trim(),e.slice(r+1).trim()]}return[e.trim(),null]}function nr(e,t,r){let n=M(e,t);return n?Ka(e,t,n):Ba(e,t,r)}function Ba(e,t,r){return[...qa(e,t,r),...Ha(e,t,r),...za(e,t,r)]}function qa(e,t,r){let n=[],i=/^[ \t]*export\s+(?:type\s+)?\{([\s\S]*?)\}\s+from\s+['"]([^'"]+)['"]\s*;?/gm;for(let s of r.matchAll(i)){if(typeof s.index!="number")continue;let o=s[1]??"",a=s[2]??"",c=T(o).map(u=>Ga(u.trim())).filter(u=>!!u),l=xe(r,s.index),p=xe(r,s.index+s[0].length-1);n.push({kind:"named",sourcePath:K(e,t,a),names:c,startLine:l,endLine:p})}return n}function Ha(e,t,r){let n=[],i=/^[ \t]*export\s+\*\s+as\s+(\w+)\s+from\s+['"]([^'"]+)['"]\s*;?/gm;for(let s of r.matchAll(i)){if(typeof s.index!="number")continue;let o=s[2]??"",a=xe(r,s.index),c=xe(r,s.index+s[0].length-1);n.push({kind:"star-as",sourcePath:K(e,t,o),names:[],startLine:a,endLine:c})}return n}function za(e,t,r){let n=[],i=/^[ \t]*export\s+\*\s+from\s+['"]([^'"]+)['"]\s*;?/gm;for(let s of r.matchAll(i)){if(typeof s.index!="number")continue;let o=s[1]??"",a=xe(r,s.index),c=xe(r,s.index+s[0].length-1);n.push({kind:"star",sourcePath:K(e,t,o),names:[],startLine:a,endLine:c})}return n}function Ga(e){if(!e)return null;let t=e.replace(/^type\s+/,"").trim();if(!t)return null;let r=t.match(/^(\w+)\s+as\s+(\w+)$/);if(r)return r[2]??null;let n=t.match(/^(\w+)$/);return n?n[1]??null:null}function xe(e,t){let r=0;for(let n=0;n<t&&n<e.length;n++)e.charCodeAt(n)===10&&r++;return r}function Ka(e,t,r){let n=[];for(let i of r.rootNode.descendantsOfType("export_statement")){let s=Xa(e,t,i);if(s===void 0)continue;let o=i.startPosition.row,a=i.endPosition.row,c=Ja(i,s,o,a);n.push(c)}return n}function Xa(e,t,r){let n=_(r,"string");if(!n)return;let i=_(n,"string_fragment");if(i)return K(e,t,i.text)}function Ja(e,t,r,n){let i=_(e,"export_clause");if(i){let o=[];for(let a of i.namedChildren){if(a.type!=="export_specifier")continue;let c=a.namedChild(0),l=a.namedChild(1);c&&o.push((l??c).text)}return{kind:"named",sourcePath:t,names:o,startLine:r,endLine:n}}return _(e,"namespace_export")?{kind:"star-as",sourcePath:t,names:[],startLine:r,endLine:n}:{kind:"star",sourcePath:t,names:[],startLine:r,endLine:n}}function Ln(e,t,r){return pt(e,t,{java:n=>Ya(e,t,n),kotlin:n=>Qa(e,t,n),scala:n=>Za(e,t,n)},()=>D(r,/^[ \t]*import\s+(?:static\s+)?(.+?)\s*;?$/gm,(n,i)=>{let s=n[1]?.trim();return s?ec(e,t,s,i):[]}))}function Ya(e,t,r){let n=h(r,new Set(["import_declaration"])),i=[];for(let s of r.rootNode.descendantsOfType("import_declaration")){let o=s.children.some(u=>u.type==="asterisk"),c=s.namedChildren.find(u=>u.type==="scoped_identifier")??s.namedChildren.find(u=>u.type==="identifier");if(!c)continue;let l=c.text;if(o){i.push(ce("*",g(e,l,C)));continue}let p=l.split(".").pop()??l;i.push(m(p,p,g(e,l,C),n))}return i}function Qa(e,t,r){let n=h(r,new Set(["import_header","import_list"])),i=[];for(let s of r.rootNode.descendantsOfType("import_header")){let o=s.namedChildren.find(f=>f.type==="identifier");if(!o)continue;let a=s.namedChildren.some(f=>f.type==="wildcard_import"),c=s.namedChildren.find(f=>f.type==="import_alias");if(a){i.push(ce("*",g(e,o.text,C)));continue}let l=o.text,p=l.split(".").pop()??l,d=c?.namedChild(0)?.text??p;i.push(m(p,d,g(e,l,C),n))}return i}function Za(e,t,r){let n=h(r,new Set(["import_declaration"])),i=[];for(let s of r.rootNode.descendantsOfType("import_declaration")){let o=s.namedChildren.find(u=>u.type==="namespace_selectors"||u.type==="namespace_wildcard"),a=s.namedChildren.filter(u=>u!==o&&(u.type==="identifier"||u.type==="stable_identifier")),c=a.map(u=>u.text).join(".");if(!c)continue;if(o?.type==="namespace_wildcard"){i.push(ce("*",g(e,c,C)));continue}if(o?.type==="namespace_selectors"){for(let u of o.namedChildren)if(u.type==="arrow_renamed_identifier"){let[d,f]=u.namedChildren;if(!d)continue;let S=d.text,le=f?.text??S;if(S==="_")continue;i.push(m(S,le,g(e,`${c}.${S}`,C),n))}else if(u.type==="identifier"){let d=u.text;i.push(m(d,d,g(e,`${c}.${d}`,C),n))}continue}let l=a[a.length-1]?.text??c,p=a.slice(0,-1).map(u=>u.text).join(".")||c;i.push(m(l,l,g(e,p&&a.length>1?`${p}.${l}`:c,C),n))}return i}function ec(e,t,r,n){if(r.includes("{")&&r.includes("}")){let i=r.slice(0,r.indexOf("{")).replace(/\.$/,"").trim(),s=r.slice(r.indexOf("{")+1,r.lastIndexOf("}")).trim();return T(s).flatMap(o=>{let a=o.trim();if(!a)return[];let[c,l]=a.includes("=>")?a.split(/\s*=>\s*/):a.split(/\s+as\s+/),p=c?.trim();if(!p||p==="_")return[];let u=(l??p.split(".").pop()??p).trim(),d=p==="_"?i:`${i}.${p}`.replace(/\.\./g,".");return[O(e,t,n,d,p,u)]})}return[O(e,t,n,r,r.split(".").pop()??r,r.split(".").pop()??r)]}function Mn(e,t,r){return j(e,t,n=>tc(e,t,n),()=>D(r,/^[ \t]*use\s+(.+?)\s*;$/gm,(n,i)=>{let s=n[1]?.trim();return s?T(s).flatMap(o=>{let a=o.trim();if(!a)return[];let[c,l]=a.split(/\s+as\s+/i),p=c?.trim()??a,u=p.split("\\").pop()??p,d=(l??u).trim();return[O(e,t,i,p,u,d,g(e,p.replace(/\\/g,"."),re))]}):[]}))}function tc(e,t,r){let n=h(r,new Set(["namespace_use_declaration"])),i=[],s=(o,a,c)=>{i.push(m(a,c,g(e,o.replace(/\\/g,"."),re),n))};for(let o of r.rootNode.descendantsOfType("namespace_use_declaration")){let a=o.namedChildren.find(c=>c.type==="namespace_use_group");if(a){let c=o.namedChildren.find(l=>l.type==="namespace_name")?.text??"";for(let l of a.namedChildren){if(l.type!=="namespace_use_clause")continue;let{importedName:p,localName:u,qualified:d}=On(l,c);p&&s(d,p,u)}continue}for(let c of o.namedChildren){if(c.type!=="namespace_use_clause")continue;let{importedName:l,localName:p,qualified:u}=On(c,"");l&&s(u,l,p)}}return i}function On(e,t){let r=e.namedChildren.find(l=>l.type==="qualified_name"),n=e.namedChildren.filter(l=>l.type==="name"),i="";r?i=r.text:n.length>=1&&(i=n[0].text);let s=r&&n.length>0?n[n.length-1]:null,o=i.split("\\").pop()??i,a=s?.text??o,c=t?`${t}\\${i}`:i;return{importedName:o,localName:a,qualified:c}}function $n(e,t,r){return j(e,t,n=>rc(e,t,n),()=>ic(r).flatMap(n=>oc(e,t,n,r)))}function rc(e,t,r){let n=h(r,new Set(["import_statement","import_from_statement"])),i=[];for(let s of r.rootNode.descendantsOfType("import_statement"))for(let o of s.namedChildren){let a=Wn(o);if(!a)continue;let c=ye(e,t,a.qualifiedName);i.push({importedName:a.qualifiedName,localName:a.localName,sourcePath:c,kind:"namespace",used:n.has(a.localName),usedMembers:[]})}for(let s of r.rootNode.descendantsOfType("import_from_statement")){let o=s.namedChild(0);if(!o)continue;let a=nc(o);if(a===null)continue;let c=ye(e,t,a);for(let l=1;l<s.namedChildCount;l+=1){let p=s.namedChild(l);if(p.type==="wildcard_import"){i.push({importedName:"*",localName:null,sourcePath:c,kind:"side-effect",used:!0,usedMembers:[]});continue}let u=Wn(p);u&&i.push({importedName:u.qualifiedName,localName:u.localName,sourcePath:c,kind:"named",used:n.has(u.localName),usedMembers:[]})}}return i}function Wn(e){if(e.type==="aliased_import"){let t=e.namedChild(0),r=e.namedChild(1);return!t||!r?null:{qualifiedName:t.text,localName:r.text}}if(e.type==="dotted_name"){let t=e.text;return{qualifiedName:t,localName:t.split(".")[0]??t}}return e.type==="identifier"?{qualifiedName:e.text,localName:e.text}:null}function nc(e){if(e.type==="dotted_name")return e.text;if(e.type==="relative_import"){let t=_(e,"import_prefix")?.text??"",r=_(e,"dotted_name")?.text??"";return`${t}${r}`}return null}function ic(e){let t=e.split(`
99
+ `),r=[],n=0;for(let i=0;i<t.length;i++){let s=t[i],o=s.trimStart(),a=n;if(n+=s.length+1,!o.startsWith("import ")&&!o.startsWith("from "))continue;let c=s,l=a+s.length,p=Bt(s);for(;i+1<t.length&&(p>0||c.trimEnd().endsWith("\\"));){i++;let d=t[i];c+=`
100
+ ${d}`,l+=1+d.length,p+=Bt(d),n+=d.length+1}let u=sc(c);u&&r.push({...u,start:a,end:l})}return r}function sc(e){let t=e.replace(/\\\s*\n/g," ").trim();if(t.startsWith("import "))return{kind:"import",module:null,clause:t.slice(7).trim()};let r=t.match(/^from\s+([.\w]+)\s+import\s+([\s\S]+)$/);if(!r)return null;let n=r[2].trim();return n.startsWith("(")&&n.endsWith(")")&&(n=n.slice(1,-1).trim()),{kind:"from",module:r[1],clause:n}}function oc(e,t,r,n){let i=J(n,r.start,r.end),s=r.clause.replace(/\n/g," ").trim();if(r.kind==="import")return T(s).flatMap(c=>{let l=c.trim().replace(/,$/,"");if(!l)return[];let[p,u]=l.split(/\s+as\s+/),d=p.trim(),f=(u??d.split(".")[0]??d).trim(),S=ye(e,t,d),le=Se(i,f);return[{importedName:d,localName:f,sourcePath:S,kind:"namespace",used:k(i,f)||le.length>0,usedMembers:le}]});let o=r.module?ye(e,t,r.module):null,a=[];for(let c of T(s)){let l=c.trim().replace(/,$/,"");if(!l)continue;if(l==="*"){a.push({importedName:"*",localName:null,sourcePath:o,kind:"side-effect",used:!0,usedMembers:[]});continue}let[p,u]=l.split(/\s+as\s+/),d=(u??p).trim();a.push({importedName:p.trim(),localName:d,sourcePath:o,kind:"named",used:k(i,d),usedMembers:[]})}return a}import{basename as ac}from"path";function Vn(e,t,r){return j(e,t,n=>lc(e,t,n),()=>cc(e,t,r))}function cc(e,t,r){return D(r,/^[ \t]*(require_relative|require)\s+["']([^"']+)["']\s*$/gm,(n,i)=>{let s=n[1],o=n[2];if(!s||!o)return[];let a=s==="require_relative"?et(e,t,o):null;if(a){let c=Un(o);return[B(c,c,a,k(i,c))]}return[ae(o,a)]})}function lc(e,t,r){let n=h(r,new Set([])),i=[],s=new Set(["require","require_relative","load"]);for(let o of r.rootNode.descendantsOfType("call")){let a=o.namedChild(0);if(!a||a.type!=="identifier"||!s.has(a.text))continue;let l=o.namedChildren.find(f=>f.type==="argument_list")?.namedChild(0);if(!l||l.type!=="string")continue;let u=l.namedChildren.find(f=>f.type==="string_content")?.text;if(!u)continue;let d=a.text==="require_relative"?et(e,t,u):null;if(d){let f=Un(u);i.push(m(f,f,d,n))}else i.push(ae(u,d))}return i}function Un(e){return Tn(ac(e).replace(/\.[^.]+$/,""),/_/)}function Bn(e,t,r){return j(e,t,n=>pc(e,t,n),()=>D(r,/^[ \t]*use\s+(.+?)\s*;$/gm,(n,i)=>{let s=n[1]?.trim();return s?uc(e,t,s,i):[]}))}function pc(e,t,r){let n=h(r,new Set(["use_declaration"])),i=[];for(let s of r.rootNode.descendantsOfType("use_declaration")){let o=s.namedChild(0);if(o)for(let a of je(o,"")){if(!a.importedName||a.importedName==="*")continue;let c=V(e,t,a.qualifiedName)??V(e,t,a.qualifiedName.split("::").slice(0,-1).join("::"));i.push(m(a.importedName,a.localName,c,n))}}return i}function je(e,t){switch(e.type){case"identifier":case"super":case"crate":{let r=e.text;return[{qualifiedName:ft(t,r),importedName:r,localName:r}]}case"self":{let r=t.split("::").filter(Boolean).pop()??"self";return[{qualifiedName:t||"self",importedName:r,localName:r}]}case"scoped_identifier":{let r=e.text,n=r.split("::").pop()??r;return[{qualifiedName:ft(t,r),importedName:n,localName:n}]}case"scoped_use_list":{let r=e.namedChild(0),n=e.namedChild(1);if(!r||!n)return[];let i=ft(t,r.text),s=[];for(let o of n.namedChildren)s.push(...je(o,i));return s}case"use_list":{let r=[];for(let n of e.namedChildren)r.push(...je(n,t));return r}case"use_as_clause":{let r=e.namedChild(0),n=e.namedChild(1);if(!r||!n)return[];let i=je(r,t),s=n.text;return i.map(o=>({...o,localName:s}))}case"use_wildcard":{let r=e.namedChild(0),n=r?r.text:"";return[{qualifiedName:ft(t,`${n}::*`),importedName:"*",localName:"*"}]}default:return[]}}function ft(e,t){return e?t?`${e}::${t}`:e:t}function uc(e,t,r,n){let i=r.trim();if(i.includes("{")&&i.includes("}")){let p=i.slice(0,i.indexOf("{")).replace(/::$/,"").trim(),u=i.slice(i.indexOf("{")+1,i.lastIndexOf("}")).trim();return T(u).flatMap(d=>{let f=d.trim();if(!f)return[];if(f==="self"){let mt=p.split("::").filter(Boolean).pop();return mt?[O(e,t,n,p,mt,mt)]:[]}let[S,le]=f.split(/\s+as\s+/),pe=S?.trim();if(!pe)return[];let Kn=(le??pe.split("::").pop()??pe).trim(),Xn=`${p}::${pe}`.replace(/::::/g,"::");return[O(e,t,n,Xn,pe.split("::").pop()??pe,Kn,V(e,t,p))]})}let[s,o]=i.split(/\s+as\s+/),a=s?.trim()??i,c=(o??a.split("::").pop()??a).trim(),l=V(e,t,a)??V(e,t,a.split("::").slice(0,-1).join("::"));return[O(e,t,n,a,a.split("::").pop()??a,c,l)]}function qn(e,t,r){let n=M(e,t);if(n)return dc(e,t,n);let i=[];for(let s of r.matchAll(/^[ \t]*pub\s+use\s+(.+?)\s*;$/gm)){let o=s[1]?.trim();o&&i.push(...mc(e,t,o))}return i}function dc(e,t,r){let n=[];for(let i of r.rootNode.descendantsOfType("use_declaration")){if(!fc(i))continue;let s=i.namedChildren.find(o=>o.type!=="visibility_modifier");if(s)for(let o of je(s,""))o.importedName&&n.push(ir(e,t,o.qualifiedName))}return n}function fc(e){for(let t of e.children)if(t.type==="visibility_modifier"&&t.text.startsWith("pub"))return!0;return!1}function mc(e,t,r){let n=r.trim();if(n.includes("{")&&n.includes("}")){let i=n.slice(0,n.indexOf("{")).replace(/::$/,"").trim(),s=n.slice(n.indexOf("{")+1,n.lastIndexOf("}")).trim();return T(s).flatMap(o=>{let a=o.trim();if(!a||a==="self")return[];let[c]=a.split(/\s+as\s+/),l=`${i}::${c?.trim()??a}`.replace(/::::/g,"::");return[ir(e,t,l)]})}return[ir(e,t,n)]}function ir(e,t,r){return{specifier:r,sourcePath:V(e,t,r)??V(e,t,r.split("::").slice(0,-1).join("::"))}}function Y({language:e,extensions:t,imports:r,parseImports:n}){return{language:e,extensions:t,capabilities:{imports:r},parseImports:n}}function Hn(e,t){let r=t.toLowerCase();for(let n of e)for(let i of n.extensions)if(r.endsWith(i))return n;return null}var gc={language:"javascript",extensions:ee,capabilities:{imports:"ast-with-regex-fallback",reExports:"ast-with-regex-fallback"},parseImports:rr,parseReExports:nr},hc=Y({language:"python",extensions:Xe,imports:"ast-with-regex-fallback",parseImports:$n}),yc=Y({language:"jvm",extensions:C,imports:"ast-dispatch-with-regex-fallback",parseImports:Ln}),Sc={language:"rust",extensions:Je,capabilities:{imports:"ast-with-regex-fallback",exports:"ast-with-regex-fallback"},parseImports:Bn,parseExports:qn},xc=Y({language:"ruby",extensions:Ye,imports:"ast-with-regex-fallback",parseImports:Vn}),bc=Y({language:"c/cpp",extensions:Qe,imports:"ast-with-regex-fallback",parseImports:Cn}),vc=Y({language:"dotnet",extensions:G,imports:"ast-dispatch-with-regex-fallback",parseImports:An}),Ec={language:"dart",extensions:Ze,capabilities:{imports:"regex-only",exports:"regex-only"},parseImports:wn,parseExports:Fn},Pc=Y({language:"php",extensions:re,imports:"ast-with-regex-fallback",parseImports:Mn}),Nc=Y({language:"clojure",extensions:he,imports:"regex-only",parseImports:_n}),kc=[gc,hc,yc,Sc,xc,bc,vc,Ec,Pc,Nc];function sr(e){return Hn(kc,e)}var or={clearGroups:["whole-project","source-file"]},Tc=x("source-imports",or),Bd=x("source-exports",or),Ic=x("source-reexports",or),zn=Ie({kind:"source-imports",invalidation:Ce("source-imports"),serialize:Cc,deserialize:Rc}),Gn=Ie({kind:"source-reexports",invalidation:Ce("source-reexports"),serialize:_c,deserialize:wc});function qd(e,t){let r=N(t);return Ic.get(e,r,()=>{let n=sr(r);if(!n?.parseReExports)return[];let i=R(e,r);if(!i)return[];let s=Ne(e,r,i),o=Ut(e),a=Gn.read(e,r,s);if(a?.resolutionFingerprint===o)return a.reExports;let c=n.parseReExports(e,r,i);return Gn.write(e,r,s,{resolutionFingerprint:o,reExports:c}),c})}function Hd(e,t){let r=N(t);return Tc.get(e,r,()=>{let n=sr(r);if(!n)return[];let i=R(e,r);if(!i)return[];let s=Ne(e,r,i),o=Ut(e),a=zn.read(e,r,s);if(a?.resolutionFingerprint===o)return a.imports;let c=n.parseImports(e,r,i);return zn.write(e,r,s,{resolutionFingerprint:o,imports:c}),c})}function Cc(e){return JSON.stringify(e)}function Rc(e){try{let t=JSON.parse(e);return!de(t)||typeof t.resolutionFingerprint!="string"||!Array.isArray(t.imports)?null:{resolutionFingerprint:t.resolutionFingerprint,imports:t.imports}}catch{return null}}function _c(e){return JSON.stringify(e)}function wc(e){try{let t=JSON.parse(e);return!de(t)||typeof t.resolutionFingerprint!="string"||!Array.isArray(t.reExports)?null:{resolutionFingerprint:t.resolutionFingerprint,reExports:t.reExports}}catch{return null}}export{gr as a,ze as b,Ne as c,Wr as d,Ie as e,$l as f,Ce as g,R as h,gp as i,M as j,Qo as k,sa as l,Bl as m,zr as n,bs as o,K as p,de as q,Et as r,ne as s,qd as t,Hd as u,Wc as v,$c as w,Vc as x,Uc as y,Bc as z,qc as A,Hc as B,zc as C,as as D,Hl as E,ls as F,Kl as G,Xl as H,Jl as I,Ql as J,al as K,cl as L,Pi as M,ll as N,ml as O,bl as P,vl as Q,El as R,Il as S,Cl as T,hi as U,Qc as V,Zc as W,el as X};
101
+ //# sourceMappingURL=chunk-XAEU4ROB.js.map
@@ -0,0 +1,2 @@
1
+ import{L as c}from"./chunk-MCNWCJYL.js";import{A as u,d as a,y as p}from"./chunk-WFRZGMWJ.js";var l=a("suppression-inventory",{clearGroups:["whole-project"]});function b(e){return l.get(e,()=>f(e))}function f(e){let r={dead:0,stale:0,wrapper:0,passthrough:0,drift:0,extract:0,similar:0,twin:0,uncategorized:0},t=new Map,s=0;for(let o of c(e)){let n=p(e,o);if(!(!n||!n.includes("scip-query")))for(let g of n.split(/\r?\n/)){let i=u(g);if(i===null)continue;s+=1,t.set(o,(t.get(o)??0)+1);let y=d(i);r[y]+=1}}return{total:s,byCategory:r,byFile:t}}function d(e){if(!e)return"uncategorized";let r=e.toLowerCase();return r==="dead-code"?"dead":r}export{b as a};
2
+ //# sourceMappingURL=chunk-XBPAJASV.js.map