scip-query 0.22.0 → 0.24.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 (470) hide show
  1. package/CHANGELOG.md +500 -0
  2. package/README.md +13 -0
  3. package/dist/augment-vue-worker.js +1 -1
  4. package/dist/by-kind-H3P6BR5G.js +2 -0
  5. package/dist/call-graph-VTG2CUOQ.js +2 -0
  6. package/dist/call-graph-evidence-BociKRpF.d.ts +19 -0
  7. package/dist/chunk-2BMSSRBH.js +2 -0
  8. package/dist/{chunk-TAYD3AE7.js → chunk-2GJSD5GY.js} +2 -2
  9. package/dist/{chunk-TUQIPUDS.js → chunk-2M2LSIMY.js} +3 -3
  10. package/dist/{chunk-GIQ6CSL4.js → chunk-2N6WBNDC.js} +2 -2
  11. package/dist/{chunk-JHH5SCZ3.js → chunk-2OOY75BW.js} +2 -2
  12. package/dist/{chunk-EELPBR7E.js → chunk-2USA3S3P.js} +2 -2
  13. package/dist/chunk-2VAHDDLM.js +133 -0
  14. package/dist/chunk-2XWIUW5Z.js +455 -0
  15. package/dist/{chunk-57N6LN2A.js → chunk-3AF4TUFK.js} +2 -2
  16. package/dist/chunk-3D4BOXW6.js +20 -0
  17. package/dist/{chunk-FFJQZG6J.js → chunk-3LO4FST5.js} +2 -2
  18. package/dist/{chunk-HXOU4XNH.js → chunk-3WTY4LP2.js} +2 -2
  19. package/dist/{chunk-DPWKKNKI.js → chunk-3Z5AMSK6.js} +2 -2
  20. package/dist/{chunk-F24G5NBE.js → chunk-44IETFOU.js} +2 -2
  21. package/dist/chunk-4FR6GQIT.js +2 -0
  22. package/dist/chunk-4KBTHJLP.js +2 -0
  23. package/dist/chunk-5BIKR67W.js +2 -0
  24. package/dist/{chunk-DJAO2OZJ.js → chunk-5PROPLHI.js} +2 -2
  25. package/dist/chunk-5V7EPTII.js +2 -0
  26. package/dist/{chunk-VZ7NXSHV.js → chunk-62LPZCBQ.js} +2 -2
  27. package/dist/{chunk-LXQUF2RP.js → chunk-64O2JHQA.js} +2 -2
  28. package/dist/chunk-6D4F5VWG.js +10 -0
  29. package/dist/{chunk-NEIQPFBI.js → chunk-6ERFBC3X.js} +2 -2
  30. package/dist/{chunk-4HE7MVWD.js → chunk-6ILKOOGH.js} +2 -2
  31. package/dist/chunk-6MFXCMZC.js +2 -0
  32. package/dist/chunk-6O7FACKB.js +2 -0
  33. package/dist/{chunk-R6M456QG.js → chunk-6TS3KOXR.js} +2 -2
  34. package/dist/{chunk-7U2YQSDE.js → chunk-76QOU4PK.js} +2 -2
  35. package/dist/{chunk-25GWKRUZ.js → chunk-7DUI77BN.js} +2 -2
  36. package/dist/chunk-7F45LJKI.js +2 -0
  37. package/dist/{chunk-DEAB5TGT.js → chunk-7F7T6DCR.js} +2 -2
  38. package/dist/chunk-7H6VHWWJ.js +2 -0
  39. package/dist/chunk-7HXT6YLU.js +5 -0
  40. package/dist/{chunk-KZYID5KV.js → chunk-7R4V5ES6.js} +4 -4
  41. package/dist/chunk-7RIRIADH.js +7 -0
  42. package/dist/chunk-7ZLWLOGT.js +2 -0
  43. package/dist/{chunk-WHADK6OS.js → chunk-A4WEAK35.js} +2 -2
  44. package/dist/chunk-AADQLOQ4.js +38 -0
  45. package/dist/{chunk-XFMVKFSF.js → chunk-AN76MGUE.js} +2 -2
  46. package/dist/chunk-ANLNLY66.js +2 -0
  47. package/dist/chunk-ATXPTSEI.js +81 -0
  48. package/dist/{chunk-EELG7D3Q.js → chunk-AX7IDVFT.js} +2 -2
  49. package/dist/chunk-B3PYOSCX.js +2 -0
  50. package/dist/chunk-B7MPDEAK.js +3 -0
  51. package/dist/chunk-BBB5FBX4.js +2 -0
  52. package/dist/{chunk-Y2VM4CJC.js → chunk-BHKK5RJY.js} +2 -2
  53. package/dist/chunk-BJWFVAA5.js +2 -0
  54. package/dist/chunk-BKVWUP7Y.js +2 -0
  55. package/dist/{chunk-7XA3OM44.js → chunk-BKZYTLGE.js} +2 -2
  56. package/dist/chunk-BL6DCHQP.js +2 -0
  57. package/dist/chunk-BOW7SSQH.js +43 -0
  58. package/dist/{chunk-KQHJEU6V.js → chunk-C4RHHCKL.js} +2 -2
  59. package/dist/chunk-C7C6AKAT.js +117 -0
  60. package/dist/chunk-CD6M6LS2.js +16 -0
  61. package/dist/chunk-CFE6PSG6.js +2 -0
  62. package/dist/{chunk-GPGRZJ3R.js → chunk-CFNIGQMT.js} +2 -2
  63. package/dist/{chunk-K3XFWJI2.js → chunk-CKBUBRYD.js} +2 -2
  64. package/dist/chunk-CZW5MZ5B.js +2 -0
  65. package/dist/chunk-DBBZ63ZX.js +2 -0
  66. package/dist/chunk-DBN7DMJB.js +18 -0
  67. package/dist/{chunk-CKRWA452.js → chunk-DUULLZHZ.js} +2 -2
  68. package/dist/{chunk-6HRZQLOI.js → chunk-DV5Y5NOS.js} +2 -2
  69. package/dist/chunk-DZOIKCTM.js +3 -0
  70. package/dist/chunk-E4PKTOL3.js +2 -0
  71. package/dist/{chunk-GVOMSPGL.js → chunk-E65ELFKU.js} +2 -2
  72. package/dist/{chunk-VXJJTQYE.js → chunk-E7QR35ST.js} +2 -2
  73. package/dist/{chunk-2RE5OCHZ.js → chunk-EFSXAINW.js} +2 -2
  74. package/dist/{chunk-GY7CCCEZ.js → chunk-EHVEIEQN.js} +2 -2
  75. package/dist/{chunk-BVFYEEBH.js → chunk-EHYDXE3Z.js} +2 -2
  76. package/dist/{chunk-HISEUIL2.js → chunk-EP63Y6LD.js} +2 -2
  77. package/dist/chunk-EPX6NQN6.js +4 -0
  78. package/dist/chunk-ETC674NS.js +5 -0
  79. package/dist/{chunk-5H5WTJSD.js → chunk-F5GSBHC6.js} +2 -2
  80. package/dist/chunk-FH3DGXC6.js +2 -0
  81. package/dist/{chunk-2XCGSDIT.js → chunk-FI7VGOR4.js} +2 -2
  82. package/dist/chunk-FJF6VO2P.js +2 -0
  83. package/dist/{chunk-FELGD32K.js → chunk-FLMTCX5R.js} +2 -2
  84. package/dist/chunk-FVFDOIM3.js +2 -0
  85. package/dist/{chunk-AQ2PORIO.js → chunk-G2HU5WRN.js} +2 -2
  86. package/dist/{chunk-7YQOCABQ.js → chunk-G4ALYS4J.js} +2 -2
  87. package/dist/{chunk-SWK4XPUS.js → chunk-G56I7K4W.js} +2 -2
  88. package/dist/{chunk-JFQBRL3J.js → chunk-GC4DG2V5.js} +2 -2
  89. package/dist/chunk-GG45PK4S.js +4 -0
  90. package/dist/{chunk-XN22RGSR.js → chunk-GHNPACNP.js} +2 -2
  91. package/dist/{chunk-XU75YQN4.js → chunk-GINH3YQU.js} +2 -2
  92. package/dist/chunk-GTZZVLKJ.js +2 -0
  93. package/dist/chunk-GXXW5ZHH.js +2 -0
  94. package/dist/{chunk-RNKPYYYE.js → chunk-HAXXKRTD.js} +2 -2
  95. package/dist/chunk-HEZWBAZY.js +2 -0
  96. package/dist/chunk-HMEWLMML.js +2 -0
  97. package/dist/{chunk-2KVU55CW.js → chunk-HOBOVYPO.js} +2 -2
  98. package/dist/{chunk-2YC7YNKT.js → chunk-HRFQ6GW5.js} +2 -2
  99. package/dist/{chunk-RYOYJMGF.js → chunk-HX4X7KG3.js} +2 -2
  100. package/dist/{chunk-AZS7YPCB.js → chunk-HYT2R7LX.js} +2 -2
  101. package/dist/chunk-IKQVBVQL.js +40 -0
  102. package/dist/chunk-J6GLBBRK.js +4 -0
  103. package/dist/{chunk-TNG2FYS5.js → chunk-J7A4PWFX.js} +2 -2
  104. package/dist/chunk-JCSAZ35V.js +2 -0
  105. package/dist/{chunk-EWWY2ZFL.js → chunk-JDU2IV3A.js} +2 -2
  106. package/dist/{chunk-SB25YMEQ.js → chunk-JFMEXGFE.js} +2 -2
  107. package/dist/chunk-JFMI5SGB.js +4 -0
  108. package/dist/chunk-JJP37RGX.js +57 -0
  109. package/dist/chunk-JZ2A7LDM.js +5 -0
  110. package/dist/chunk-KNLQGXVH.js +80 -0
  111. package/dist/chunk-KVQCECPR.js +2 -0
  112. package/dist/{chunk-F24QUEQP.js → chunk-KXXORBZ2.js} +2 -2
  113. package/dist/{chunk-IKVNEGTW.js → chunk-L5KYH6U3.js} +2 -2
  114. package/dist/chunk-L6XHYJPZ.js +21 -0
  115. package/dist/chunk-L7KTFEAV.js +43 -0
  116. package/dist/{chunk-UAQ4T73O.js → chunk-LDXHR5EL.js} +2 -2
  117. package/dist/chunk-LEECKFCJ.js +2 -0
  118. package/dist/{chunk-LO5JSW2C.js → chunk-MHGDSBFX.js} +2 -2
  119. package/dist/{chunk-JUN5DOAK.js → chunk-MLQVVDG3.js} +2 -2
  120. package/dist/chunk-MOKUWRHO.js +3 -0
  121. package/dist/{chunk-44T4DUAA.js → chunk-MPYAPMNE.js} +2 -2
  122. package/dist/{chunk-ARVO6TTW.js → chunk-MV6SPXCR.js} +2 -2
  123. package/dist/{chunk-NRBNAECH.js → chunk-MWN53KRN.js} +2 -2
  124. package/dist/{chunk-TH6IC56G.js → chunk-MZPXPSUJ.js} +2 -2
  125. package/dist/{chunk-FBCVASUG.js → chunk-N55KIE46.js} +2 -2
  126. package/dist/{chunk-VMWUV6WB.js → chunk-NB4D3BNM.js} +2 -2
  127. package/dist/{chunk-JAT6C3VX.js → chunk-NGKBOT6G.js} +2 -2
  128. package/dist/{chunk-Q6T2CAJL.js → chunk-NJGKXKQF.js} +2 -2
  129. package/dist/chunk-NJQISBL4.js +8 -0
  130. package/dist/chunk-NJT3ZEKY.js +16 -0
  131. package/dist/{chunk-KFVSJX25.js → chunk-NKMKZP6A.js} +2 -2
  132. package/dist/chunk-NODFZ6ED.js +2 -0
  133. package/dist/{chunk-ERCYGVAM.js → chunk-NSM5IEVW.js} +2 -2
  134. package/dist/{chunk-YAGYMBEX.js → chunk-NTGUVNR2.js} +2 -2
  135. package/dist/{chunk-N7FP5H5U.js → chunk-NU3KFF2O.js} +8 -8
  136. package/dist/chunk-NWLVNU66.js +557 -0
  137. package/dist/{chunk-Q55NF3ZG.js → chunk-NYKZMCRC.js} +2 -2
  138. package/dist/{chunk-I6UTXNHU.js → chunk-O6BUXZEH.js} +2 -2
  139. package/dist/chunk-ODPDP7A4.js +3 -0
  140. package/dist/{chunk-ZAZGGSM3.js → chunk-OHIV323X.js} +2 -2
  141. package/dist/chunk-OIAPEKMT.js +3 -0
  142. package/dist/chunk-OIOC5EHF.js +3 -0
  143. package/dist/{chunk-YIHNPKWD.js → chunk-ONPPQM4G.js} +2 -2
  144. package/dist/{chunk-RHHCLWQ6.js → chunk-OUHEZBYI.js} +2 -2
  145. package/dist/{chunk-MSR2QRUE.js → chunk-OVGYW7UD.js} +2 -2
  146. package/dist/{chunk-OPSAW5DT.js → chunk-OYKU4B3Y.js} +2 -2
  147. package/dist/{chunk-5YRQIE2B.js → chunk-POBJ6FR2.js} +2 -2
  148. package/dist/{chunk-ZGW4HLPD.js → chunk-PSZPMMWN.js} +2 -2
  149. package/dist/chunk-PXTRBKRK.js +3 -0
  150. package/dist/{chunk-U2N2KE7A.js → chunk-Q5JRIHT3.js} +2 -2
  151. package/dist/{chunk-GRX7JOXQ.js → chunk-Q7ATHARX.js} +2 -2
  152. package/dist/{chunk-5ZMBRQFC.js → chunk-Q7CSKIDM.js} +2 -2
  153. package/dist/{chunk-HG722PO7.js → chunk-QBQE7ZJ5.js} +2 -2
  154. package/dist/{chunk-Z2PZVKPR.js → chunk-QH22UIXP.js} +2 -2
  155. package/dist/chunk-QXCKQTKR.js +60 -0
  156. package/dist/chunk-RBAD4GJ2.js +13 -0
  157. package/dist/chunk-RMDPFPNW.js +2 -0
  158. package/dist/chunk-ROPJDEJZ.js +4 -0
  159. package/dist/{chunk-56NQAEPJ.js → chunk-RVZC6TJE.js} +2 -2
  160. package/dist/{chunk-XJX6LGHL.js → chunk-S4QZBKSR.js} +2 -2
  161. package/dist/chunk-SCPMZ73U.js +2 -0
  162. package/dist/{chunk-7IQXARSQ.js → chunk-SIAP5RGI.js} +2 -2
  163. package/dist/{chunk-4TQU4TX2.js → chunk-SIX4RFR3.js} +2 -2
  164. package/dist/{chunk-AYPDH2LU.js → chunk-SKKXTABJ.js} +2 -2
  165. package/dist/{chunk-ZYM4HOFA.js → chunk-SSRFUQBD.js} +2 -2
  166. package/dist/chunk-SYVJEEUJ.js +3 -0
  167. package/dist/chunk-T3CZAZSI.js +8 -0
  168. package/dist/chunk-T3I6NHBH.js +2 -0
  169. package/dist/{chunk-GDRJB3SB.js → chunk-T6DWDI5E.js} +2 -2
  170. package/dist/chunk-T6HRIROJ.js +7 -0
  171. package/dist/{chunk-OTSPRVNW.js → chunk-TAA7HXHE.js} +2 -2
  172. package/dist/{chunk-IJMD6BRI.js → chunk-TJ2JQYT3.js} +2 -2
  173. package/dist/chunk-TULNMD5T.js +368 -0
  174. package/dist/chunk-U2FPY5XA.js +3 -0
  175. package/dist/chunk-U3SXIMII.js +38 -0
  176. package/dist/{chunk-ENWQWA2R.js → chunk-U6KCHXJ4.js} +2 -2
  177. package/dist/chunk-UH3XSKS5.js +9 -0
  178. package/dist/{chunk-UDY7MIAW.js → chunk-UIFUZVCC.js} +2 -2
  179. package/dist/{chunk-BDGTPN27.js → chunk-UXKURIVI.js} +2 -2
  180. package/dist/{chunk-FGNCOQUX.js → chunk-V2RBODHL.js} +2 -2
  181. package/dist/chunk-VBKUWB6N.js +2 -0
  182. package/dist/{chunk-PIFTZEEM.js → chunk-VBV6ALJE.js} +2 -2
  183. package/dist/{chunk-2OXVP5U5.js → chunk-VDGFWCQV.js} +2 -2
  184. package/dist/chunk-VDSDOEWF.js +2 -0
  185. package/dist/{chunk-C76O5MDS.js → chunk-VZPWVCLN.js} +2 -2
  186. package/dist/chunk-WDSFQDPN.js +2 -0
  187. package/dist/{chunk-BTVKZGWT.js → chunk-WFA35BGR.js} +2 -2
  188. package/dist/{chunk-H7CG6LOE.js → chunk-WLMP3OCW.js} +2 -2
  189. package/dist/{chunk-WOOAY3PA.js → chunk-WSA52GOR.js} +2 -2
  190. package/dist/chunk-WYPL7GF7.js +2 -0
  191. package/dist/{chunk-RDULNRSJ.js → chunk-X3YVZAKZ.js} +2 -2
  192. package/dist/chunk-X6OGVFIT.js +2 -0
  193. package/dist/{chunk-ISWFRGJ6.js → chunk-XKXTR6ZI.js} +2 -2
  194. package/dist/chunk-Y5DFAW5W.js +4 -0
  195. package/dist/chunk-YSYPDRD5.js +3 -0
  196. package/dist/chunk-ZFVPWH62.js +5 -0
  197. package/dist/chunk-ZGIHTH27.js +2 -0
  198. package/dist/{chunk-QKT4UI2Y.js → chunk-ZGIQN2SX.js} +2 -2
  199. package/dist/chunk-ZHG4WAHR.js +12 -0
  200. package/dist/{chunk-CLG6DWVS.js → chunk-ZKB2XUEN.js} +2 -2
  201. package/dist/chunk-ZLMXIQLC.js +21 -0
  202. package/dist/chunk-ZMCQIHI4.js +2 -0
  203. package/dist/cli-main.js +2 -2
  204. package/dist/code-TAVIKWJI.js +2 -0
  205. package/dist/code-result-json-5FEFQCAQ.js +2 -0
  206. package/dist/command-descriptors-7BKH53Y3.js +343 -0
  207. package/dist/dataflow-GFBTVDH3.js +2 -0
  208. package/dist/dependence-slice-GWGQCODG.js +2 -0
  209. package/dist/deps-4QHVDPYA.js +2 -0
  210. package/dist/direct-navigation-4UBC6HNW.js +3 -0
  211. package/dist/entry-map-QCTF4RVY.js +2 -0
  212. package/dist/files-M2UBF5HJ.js +2 -0
  213. package/dist/frontend-profile-roles-D7eCum8P.d.ts +10 -0
  214. package/dist/{health-CPp2Jf1Z.d.ts → health-BI2a9WPy.d.ts} +60 -2
  215. package/dist/hierarchy-2UIHRLW4.js +2 -0
  216. package/dist/imports-WIE3YZOB.js +2 -0
  217. package/dist/index.d.ts +1 -1
  218. package/dist/index.js +1 -1
  219. package/dist/members-YKD636DA.js +2 -0
  220. package/dist/methods-VDF4IMYG.js +2 -0
  221. package/dist/output-continuation-command-4UMDOOLO.js +3 -0
  222. package/dist/output-pagination-2GME6OPY.js +19 -0
  223. package/dist/postinstall.js +1 -1
  224. package/dist/project-reindex-XEQTRCV5.js +3 -0
  225. package/dist/queries/affected.js +1 -1
  226. package/dist/queries/anchors.d.ts +1 -1
  227. package/dist/queries/anchors.js +1 -1
  228. package/dist/queries/architecture.js +1 -1
  229. package/dist/queries/bottlenecks.js +1 -1
  230. package/dist/queries/by-kind.js +1 -1
  231. package/dist/queries/call-graph.d.ts +2 -0
  232. package/dist/queries/call-graph.js +1 -1
  233. package/dist/queries/change-surface.js +1 -1
  234. package/dist/queries/cleanup-plan.js +1 -1
  235. package/dist/queries/co-change.d.ts +20 -2
  236. package/dist/queries/co-change.js +1 -1
  237. package/dist/queries/code.js +1 -1
  238. package/dist/queries/complexity-hotspots.js +1 -1
  239. package/dist/queries/complexity.js +1 -1
  240. package/dist/queries/context.js +1 -1
  241. package/dist/queries/convergence.js +1 -1
  242. package/dist/queries/coupling.js +1 -1
  243. package/dist/queries/cycles.js +1 -1
  244. package/dist/queries/dataflow.js +1 -1
  245. package/dist/queries/dead.d.ts +2 -0
  246. package/dist/queries/dead.js +1 -1
  247. package/dist/queries/decorative-checkers.js +1 -1
  248. package/dist/queries/deep-chains.js +1 -1
  249. package/dist/queries/dependence-slice.js +1 -1
  250. package/dist/queries/dependency-depth.js +1 -1
  251. package/dist/queries/deps.js +1 -1
  252. package/dist/queries/diff-impact.d.ts +9 -0
  253. package/dist/queries/diff-impact.js +1 -1
  254. package/dist/queries/doc-drift.js +1 -1
  255. package/dist/queries/drift.js +1 -1
  256. package/dist/queries/duplicate-bodies.d.ts +28 -1
  257. package/dist/queries/duplicate-bodies.js +1 -1
  258. package/dist/queries/entry-map.d.ts +1 -1
  259. package/dist/queries/entry-map.js +1 -1
  260. package/dist/queries/evidence.js +1 -1
  261. package/dist/queries/extract-candidates.d.ts +50 -23
  262. package/dist/queries/extract-candidates.js +1 -1
  263. package/dist/queries/fan.js +1 -1
  264. package/dist/queries/files.js +1 -1
  265. package/dist/queries/health.d.ts +1 -1
  266. package/dist/queries/health.js +1 -1
  267. package/dist/queries/hierarchy.js +1 -1
  268. package/dist/queries/hotspots.js +1 -1
  269. package/dist/queries/imports.js +1 -1
  270. package/dist/queries/incomplete-migration.js +1 -1
  271. package/dist/queries/index.d.ts +4 -3
  272. package/dist/queries/index.js +1 -1
  273. package/dist/queries/isolated.js +1 -1
  274. package/dist/queries/locality-candidates.js +1 -1
  275. package/dist/queries/members.js +1 -1
  276. package/dist/queries/methods.js +1 -1
  277. package/dist/queries/not-implemented.js +1 -1
  278. package/dist/queries/outline.js +1 -1
  279. package/dist/queries/passthrough-candidates.d.ts +9 -1
  280. package/dist/queries/passthrough-candidates.js +1 -1
  281. package/dist/queries/plan-context.js +1 -1
  282. package/dist/queries/react-component-duplicates.d.ts +19 -3
  283. package/dist/queries/react-component-duplicates.js +1 -1
  284. package/dist/queries/react-hook-candidates.d.ts +22 -3
  285. package/dist/queries/react-hook-candidates.js +1 -1
  286. package/dist/queries/react-large-component-pressure.d.ts +17 -3
  287. package/dist/queries/react-large-component-pressure.js +1 -1
  288. package/dist/queries/recent-duplicates.js +1 -1
  289. package/dist/queries/redundant-reexports.js +1 -1
  290. package/dist/queries/reference-neighborhood.js +1 -1
  291. package/dist/queries/reference-reachability.js +1 -1
  292. package/dist/queries/refs.js +1 -1
  293. package/dist/queries/self-audit.d.ts +7 -1
  294. package/dist/queries/self-audit.js +1 -1
  295. package/dist/queries/similar-chains.js +1 -1
  296. package/dist/queries/similar-files.js +1 -1
  297. package/dist/queries/similar-signatures.js +1 -1
  298. package/dist/queries/similar.js +1 -1
  299. package/dist/queries/slice.js +1 -1
  300. package/dist/queries/source-inspection.js +1 -1
  301. package/dist/queries/source-search.js +1 -1
  302. package/dist/queries/stale-abstractions.js +1 -1
  303. package/dist/queries/surface.js +1 -1
  304. package/dist/queries/symbols.js +1 -1
  305. package/dist/queries/system-map.d.ts +1 -1
  306. package/dist/queries/system-map.js +1 -1
  307. package/dist/queries/system.js +1 -1
  308. package/dist/queries/test-quality.js +1 -1
  309. package/dist/queries/trace.js +1 -1
  310. package/dist/queries/twin-ab.js +1 -1
  311. package/dist/queries/twin-drift.d.ts +22 -6
  312. package/dist/queries/twin-drift.js +1 -1
  313. package/dist/queries/unused-imports.js +1 -1
  314. package/dist/queries/unused-params.js +1 -1
  315. package/dist/queries/value-flow.js +1 -1
  316. package/dist/queries/vue-component-duplicates.js +1 -1
  317. package/dist/queries/vue-composable-candidates.js +1 -1
  318. package/dist/queries/vue-large-view-pressure.js +1 -1
  319. package/dist/queries/wrapper-candidates.d.ts +16 -1
  320. package/dist/queries/wrapper-candidates.js +1 -1
  321. package/dist/query-service-fastpath.js +5 -5
  322. package/dist/query-service-server.js +3 -3
  323. package/dist/refs-JNK5CLM7.js +2 -0
  324. package/dist/refs-pagination-6BLRYGMV.js +2 -0
  325. package/dist/reindex-worker.js +25 -25
  326. package/dist/reindex.d.ts +3 -2
  327. package/dist/reindex.js +35 -35
  328. package/dist/runtime.d.ts +34 -2
  329. package/dist/runtime.js +4 -4
  330. package/dist/rust-semantic-session-server.js +1 -1
  331. package/dist/rust-semantic-session-worker.js +1 -1
  332. package/dist/rust-semantic-worker.js +1 -1
  333. package/dist/{scip-cli-H-n59izO.d.ts → scip-cli-DOerTq-R.d.ts} +42 -4
  334. package/dist/slice-PHPVNCWX.js +2 -0
  335. package/dist/surface-MQX5MPIV.js +2 -0
  336. package/dist/symbol-resolution-DBLVXLBC.js +2 -0
  337. package/dist/system-JOPKV4OG.js +2 -0
  338. package/dist/trace-I2P2YFH4.js +2 -0
  339. package/dist/typescript-mailbox-worker.js +1 -1
  340. package/dist/value-flow-JJVMF7NP.js +2 -0
  341. package/dist/watch-server.js +3 -3
  342. package/docs/COMMAND_REFERENCE.md +2 -2
  343. package/docs/DETECTOR_GUIDE.md +51 -12
  344. package/docs/accuracy-audit-checklist.md +36 -13
  345. package/docs/locality-analyzer-design.md +9 -9
  346. package/package.json +2 -2
  347. package/skills/conductor/SKILL.md +110 -0
  348. package/skills/conductor/agents/openai.yaml +4 -0
  349. package/skills/principal-maintainability-review/SKILL.md +273 -0
  350. package/skills/principal-maintainability-review/agents/openai.yaml +4 -0
  351. package/skills/scip-calibrate/SKILL.md +102 -0
  352. package/skills/scip-calibrate/agents/openai.yaml +4 -0
  353. package/skills/scip-claim-audit/SKILL.md +113 -0
  354. package/skills/scip-claim-audit/agents/openai.yaml +4 -0
  355. package/skills/scip-probe-reachability/SKILL.md +93 -0
  356. package/skills/scip-probe-reachability/agents/openai.yaml +4 -0
  357. package/skills/scip-root-cause/SKILL.md +160 -0
  358. package/skills/scip-root-cause/agents/openai.yaml +4 -0
  359. package/skills/scip-system-compression/SKILL.md +252 -0
  360. package/skills/scip-system-compression/agents/openai.yaml +4 -0
  361. package/skills/scip-system-compression/references/compression-atlas.md +116 -0
  362. package/skills/scip-system-compression/references/compression-patterns.md +87 -0
  363. package/skills/scip-twin-drift/SKILL.md +109 -0
  364. package/skills/scip-twin-drift/agents/openai.yaml +4 -0
  365. package/dist/by-kind-4IYG2SKW.js +0 -2
  366. package/dist/call-graph-WQNXMNNN.js +0 -2
  367. package/dist/call-graph-evidence-lZa2dwQA.d.ts +0 -11
  368. package/dist/chunk-2BTJALUS.js +0 -454
  369. package/dist/chunk-3QXC54FQ.js +0 -3
  370. package/dist/chunk-3TJY6M3B.js +0 -7
  371. package/dist/chunk-42W3LFUK.js +0 -13
  372. package/dist/chunk-4GAQ6FI4.js +0 -43
  373. package/dist/chunk-6NC3YSPY.js +0 -38
  374. package/dist/chunk-6VEFRPTD.js +0 -5
  375. package/dist/chunk-7C26EKLZ.js +0 -4
  376. package/dist/chunk-7JYHQAH2.js +0 -22
  377. package/dist/chunk-7KSO2OAP.js +0 -2
  378. package/dist/chunk-7XZGZBSQ.js +0 -2
  379. package/dist/chunk-A77SCPW2.js +0 -3
  380. package/dist/chunk-AK3PYTIK.js +0 -5
  381. package/dist/chunk-AMIMMNA4.js +0 -11
  382. package/dist/chunk-AUY5BL74.js +0 -2
  383. package/dist/chunk-BDHFVH2M.js +0 -18
  384. package/dist/chunk-BECZLYNU.js +0 -8
  385. package/dist/chunk-BUTEIZKP.js +0 -10
  386. package/dist/chunk-BWVQP3LB.js +0 -38
  387. package/dist/chunk-BYDAFMSR.js +0 -57
  388. package/dist/chunk-BZYSGZRK.js +0 -2
  389. package/dist/chunk-C7IJMOFP.js +0 -134
  390. package/dist/chunk-CBBHFNLX.js +0 -2
  391. package/dist/chunk-D2MVJSP4.js +0 -21
  392. package/dist/chunk-D35XIZGN.js +0 -2
  393. package/dist/chunk-DKM723YF.js +0 -79
  394. package/dist/chunk-DRENNWRG.js +0 -2
  395. package/dist/chunk-E44IVWIJ.js +0 -367
  396. package/dist/chunk-EDMB6SSO.js +0 -7
  397. package/dist/chunk-EETGXQY7.js +0 -3
  398. package/dist/chunk-FKGQOTKD.js +0 -2
  399. package/dist/chunk-GH5YSGZL.js +0 -5
  400. package/dist/chunk-GQIDEID3.js +0 -2
  401. package/dist/chunk-HCVJR2V4.js +0 -3
  402. package/dist/chunk-IMKZEXZG.js +0 -2
  403. package/dist/chunk-ISIQLPJ2.js +0 -61
  404. package/dist/chunk-IXESDH3J.js +0 -2
  405. package/dist/chunk-JJ62MTQH.js +0 -40
  406. package/dist/chunk-JT6XX7QY.js +0 -8
  407. package/dist/chunk-KFOYCQAJ.js +0 -9
  408. package/dist/chunk-LRI5OMPE.js +0 -2
  409. package/dist/chunk-MHIEP7EG.js +0 -4
  410. package/dist/chunk-NK3JMP22.js +0 -2
  411. package/dist/chunk-NVSZNESQ.js +0 -2
  412. package/dist/chunk-OJNK5ALA.js +0 -2
  413. package/dist/chunk-OXYAWIEA.js +0 -2
  414. package/dist/chunk-OZETODHH.js +0 -2
  415. package/dist/chunk-PBUH2P5S.js +0 -3
  416. package/dist/chunk-PLJUQFQN.js +0 -2
  417. package/dist/chunk-PLYUVM4F.js +0 -2
  418. package/dist/chunk-PXXYQK55.js +0 -2
  419. package/dist/chunk-Q5TA4OY4.js +0 -20
  420. package/dist/chunk-Q7GBK5T7.js +0 -81
  421. package/dist/chunk-QLBSG7U5.js +0 -3
  422. package/dist/chunk-QWKHW6VZ.js +0 -2
  423. package/dist/chunk-RPL3ARU7.js +0 -16
  424. package/dist/chunk-SVHTMVA4.js +0 -4
  425. package/dist/chunk-T6QD2ZQB.js +0 -43
  426. package/dist/chunk-TD7VKJ2Y.js +0 -117
  427. package/dist/chunk-TKDNDQA7.js +0 -3
  428. package/dist/chunk-TQZV7KV4.js +0 -2
  429. package/dist/chunk-TUSPIVZ3.js +0 -4
  430. package/dist/chunk-URSGGIZX.js +0 -2
  431. package/dist/chunk-UT7TADJX.js +0 -2
  432. package/dist/chunk-V4NG5OMS.js +0 -554
  433. package/dist/chunk-VTCIYFEK.js +0 -2
  434. package/dist/chunk-VU6LIWHT.js +0 -2
  435. package/dist/chunk-VUSKPCUB.js +0 -2
  436. package/dist/chunk-WN3TCGJ4.js +0 -2
  437. package/dist/chunk-WSLEJSFR.js +0 -2
  438. package/dist/chunk-WYZIHUPZ.js +0 -16
  439. package/dist/chunk-XE33FV5W.js +0 -2
  440. package/dist/chunk-XGGBK66W.js +0 -4
  441. package/dist/chunk-XSWYJCAK.js +0 -2
  442. package/dist/chunk-Y334QQU5.js +0 -3
  443. package/dist/chunk-Z2AWCTN6.js +0 -2
  444. package/dist/chunk-ZOXKSQQB.js +0 -2
  445. package/dist/chunk-ZPASRBLF.js +0 -2
  446. package/dist/chunk-ZZ3Z7D56.js +0 -2
  447. package/dist/code-EQJFDT6I.js +0 -2
  448. package/dist/code-result-json-7UWIWBOO.js +0 -2
  449. package/dist/command-descriptors-ORNTVNYV.js +0 -342
  450. package/dist/dataflow-6VL54GX5.js +0 -2
  451. package/dist/dependence-slice-DT2NUHD2.js +0 -2
  452. package/dist/deps-DB7H5IKC.js +0 -2
  453. package/dist/direct-navigation-O3LUAYWQ.js +0 -3
  454. package/dist/entry-map-6K62RV3D.js +0 -2
  455. package/dist/files-MSLD7MO6.js +0 -2
  456. package/dist/hierarchy-IVBXAKFA.js +0 -2
  457. package/dist/imports-FRAVZ3Y2.js +0 -2
  458. package/dist/members-KJOJDYGO.js +0 -2
  459. package/dist/methods-2AYABBT3.js +0 -2
  460. package/dist/output-continuation-command-JHMPH6NC.js +0 -3
  461. package/dist/output-pagination-3OFL2MJV.js +0 -19
  462. package/dist/project-reindex-HYO4WD7Z.js +0 -3
  463. package/dist/refs-ARMA6XUJ.js +0 -2
  464. package/dist/refs-pagination-VUGIWN6U.js +0 -2
  465. package/dist/slice-YOB5YFAM.js +0 -2
  466. package/dist/surface-VY5EFWTW.js +0 -2
  467. package/dist/symbol-resolution-DGQN4XIV.js +0 -2
  468. package/dist/system-2KQ3QD2P.js +0 -2
  469. package/dist/trace-HTIPTXAE.js +0 -2
  470. package/dist/value-flow-5FV3VQI7.js +0 -2
@@ -1,4 +1,4 @@
1
- import{a as _}from"./chunk-P5XHIJHI.js";import{d as P,w as E,y as M}from"./chunk-Q7GBK5T7.js";import{execFileSync as U}from"child_process";var L=2e3,S=50,J=64,Y=8,V=3,W=2160*60*60,X=/\b(?:fix(?:es|ed)?|bug|regression|hotfix)\b/i,Z=3,Q=/#\d+|\b[A-Z][A-Z0-9]+-\d+\b/g,q=/^([a-z][a-z0-9-]+)(?:\([^)]+\))?!?:/i;function tt(t){let e=P(t,{clearGroups:["whole-project"]});return(i,n,r)=>{let o=r??H(i.config.projectRoot);if(!o)return null;let s=e.has(i)?e.get(i,()=>({head:"",value:null})):null;return s&&s.head===o?s.value:(e.invalidate(i),e.get(i,()=>({head:o,value:n(i.config.projectRoot,o)})).value)}}function F(t){let e=P(t,{clearGroups:["whole-project"]});return(i,n,r,o)=>{let s=o??H(i.config.projectRoot);if(!s)return null;let c=e.has(i)?e.get(i,()=>({head:"",values:new Map})):null;(!c||c.head!==s)&&e.invalidate(i);let l=e.get(i,()=>({head:s,values:new Map}));if(l.values.has(n))return l.values.get(n)??null;let d=r(i.config.projectRoot,s);return l.values.set(n,d),d}}var et=F("git-commit-history");function nt(t,e={}){let i=e.historyMode??"bounded",n=e.head;return{capability:r=>it(t,r,n),commitHistory:()=>x(t,i,n),fileChurn:()=>st(t,i,n),changeAmplification:()=>at(t,i,n),trackedFiles:()=>lt(t,n),fileAddRecords:()=>dt(t,i,n),coChangePairs:(r={})=>bt(t,r,i,n),coChangePairsForFiles:(r,o={})=>z(t,r,o,i,n),directionalCoChangePairsForFiles:(r,o={})=>yt(t,r,o,i,n)}}function x(t,e="bounded",i){return et(t,y(e),(n,r)=>rt(n,r,e),i)}function it(t,e,i){let n=i??H(t.config.projectRoot);return n?{slot:e,available:!0,head:n}:{slot:e,available:!1,head:null,reason:"git history is unavailable for this project"}}function H(t){try{return C(t,["rev-parse","HEAD"]).trim()||null}catch{return null}}function C(t,e){return U("git",["-C",t,...e],{encoding:"utf-8",maxBuffer:64*1024*1024,stdio:["ignore","pipe","ignore"],timeout:3e4,killSignal:"SIGKILL"})}function rt(t,e,i){let n;try{n=C(t,["log","--no-merges","--name-only",...R(i),"--pretty=format:%x01%H%x00%ct%x00%s"])}catch{return null}return{head:e,...w(n,S)}}function ot(t){return X.test(t.subject)}function st(t,e,i){let n=x(t,e,i);if(!n)return null;let r=new Map;for(let o of n.commits){let s=ot(o);for(let c of o.files){let l=r.get(c)??{changes:0,fixChanges:0,lastChangedAt:0};l.changes+=1,s&&(l.fixChanges+=1),o.timestamp>l.lastChangedAt&&(l.lastChangedAt=o.timestamp),r.set(c,l)}}return r}function at(t,e,i){let n=x(t,e,i);if(!n||n.commits.length===0)return null;let r=n.commits.map(o=>o.files.length).filter(o=>o>0).sort((o,s)=>o-s);return r.length===0?null:{medianFilesPerCommit:O(r,.5),p90FilesPerCommit:O(r,.9),commitsAnalyzed:r.length}}function O(t,e){let i=Math.min(t.length-1,Math.floor(t.length*e));return t[i]}var ct=tt("git-tracked-files");function lt(t,e){return ct(t,i=>{try{let n=C(i,["ls-files"]);return new Set(n.split(`
1
+ import{a as _}from"./chunk-P5XHIJHI.js";import{c as E,e as M}from"./chunk-ETC674NS.js";import{d as P}from"./chunk-KNLQGXVH.js";import{execFileSync as U}from"child_process";var L=2e3,S=50,J=64,Y=8,V=3,W=2160*60*60,X=/\b(?:fix(?:es|ed)?|bug|regression|hotfix)\b/i,Z=3,Q=/#\d+|\b[A-Z][A-Z0-9]+-\d+\b/g,q=/^([a-z][a-z0-9-]+)(?:\([^)]+\))?!?:/i;function tt(t){let e=P(t,{clearGroups:["whole-project"]});return(i,n,r)=>{let o=r??H(i.config.projectRoot);if(!o)return null;let s=e.has(i)?e.get(i,()=>({head:"",value:null})):null;return s&&s.head===o?s.value:(e.invalidate(i),e.get(i,()=>({head:o,value:n(i.config.projectRoot,o)})).value)}}function F(t){let e=P(t,{clearGroups:["whole-project"]});return(i,n,r,o)=>{let s=o??H(i.config.projectRoot);if(!s)return null;let c=e.has(i)?e.get(i,()=>({head:"",values:new Map})):null;(!c||c.head!==s)&&e.invalidate(i);let l=e.get(i,()=>({head:s,values:new Map}));if(l.values.has(n))return l.values.get(n)??null;let d=r(i.config.projectRoot,s);return l.values.set(n,d),d}}var et=F("git-commit-history");function nt(t,e={}){let i=e.historyMode??"bounded",n=e.head;return{capability:r=>it(t,r,n),commitHistory:()=>x(t,i,n),fileChurn:()=>st(t,i,n),changeAmplification:()=>at(t,i,n),trackedFiles:()=>lt(t,n),fileAddRecords:()=>dt(t,i,n),coChangePairs:(r={})=>bt(t,r,i,n),coChangePairsForFiles:(r,o={})=>z(t,r,o,i,n),directionalCoChangePairsForFiles:(r,o={})=>yt(t,r,o,i,n)}}function x(t,e="bounded",i){return et(t,y(e),(n,r)=>rt(n,r,e),i)}function it(t,e,i){let n=i??H(t.config.projectRoot);return n?{slot:e,available:!0,head:n}:{slot:e,available:!1,head:null,reason:"git history is unavailable for this project"}}function H(t){try{return C(t,["rev-parse","HEAD"]).trim()||null}catch{return null}}function C(t,e){return U("git",["-C",t,...e],{encoding:"utf-8",maxBuffer:64*1024*1024,stdio:["ignore","pipe","ignore"],timeout:3e4,killSignal:"SIGKILL"})}function rt(t,e,i){let n;try{n=C(t,["log","--no-merges","--name-only",...R(i),"--pretty=format:%x01%H%x00%ct%x00%s"])}catch{return null}return{head:e,...w(n,S)}}function ot(t){return X.test(t.subject)}function st(t,e,i){let n=x(t,e,i);if(!n)return null;let r=new Map;for(let o of n.commits){let s=ot(o);for(let c of o.files){let l=r.get(c)??{changes:0,fixChanges:0,lastChangedAt:0};l.changes+=1,s&&(l.fixChanges+=1),o.timestamp>l.lastChangedAt&&(l.lastChangedAt=o.timestamp),r.set(c,l)}}return r}function at(t,e,i){let n=x(t,e,i);if(!n||n.commits.length===0)return null;let r=n.commits.map(o=>o.files.length).filter(o=>o>0).sort((o,s)=>o-s);return r.length===0?null:{medianFilesPerCommit:O(r,.5),p90FilesPerCommit:O(r,.9),commitsAnalyzed:r.length}}function O(t,e){let i=Math.min(t.length-1,Math.floor(t.length*e));return t[i]}var ct=tt("git-tracked-files");function lt(t,e){return ct(t,i=>{try{let n=C(i,["ls-files"]);return new Set(n.split(`
2
2
  `).map(r=>r.trim()).filter(r=>r!==""))}catch{return null}},e)}var ut=F("git-file-adds"),D="__git__/file-adds",k=E({kind:"git-file-adds",invalidation:M("git-file-adds"),serialize:gt,deserialize:ft});function _t(t){return nt(t).fileAddRecords()}function dt(t,e,i){let n=y(e);return ut(t,n,(r,o)=>mt(t,r,o,e),i)}function mt(t,e,i,n){let r=k.read(t,I(n),i);if(r)return r;let o=ht(e,n);return o&&k.write(t,I(n),i,o),o}function gt(t){return JSON.stringify([...t.entries()])}function ft(t){if(!t)return null;try{let e=JSON.parse(t);if(!Array.isArray(e))return null;let i=new Map;for(let n of e){if(!Array.isArray(n)||n.length!==2||typeof n[0]!="string")return null;let r=n[1];if(!r||typeof r.commitsAgo!="number"||!Number.isFinite(r.commitsAgo)||typeof r.addedAt!="number"||!Number.isFinite(r.addedAt))return null;i.set(n[0],{commitsAgo:r.commitsAgo,addedAt:r.addedAt})}return i}catch{return null}}function ht(t,e){let i;try{i=C(t,["log","--no-merges","--find-renames","--name-status",...R(e),"--pretty=format:%x01%H%x00%ct%x00%s"])}catch{return null}let n=new Map,r=new Map,o=-1;for(let s of i.split("")){if(s.trim()==="")continue;o+=1;let c=s.indexOf(`
3
3
  `),l=c>=0?s.slice(0,c):s,[,d]=l.split("\0"),f=Number(d)||0;if(!(c<0))for(let u of s.slice(c+1).split(`
4
4
  `)){let a=pt(u);if(!a)continue;if(a.status==="R"&&a.from&&a.to){let p=r.get(a.to)??new Set([a.to]);r.set(a.from,p);continue}if(a.status!=="A"||!a.to)continue;let m={commitsAgo:o,addedAt:f};n.set(a.to,m);for(let p of r.get(a.to)??[])n.set(p,m)}}return n}function pt(t){let e=t.trim().split(" "),i=e[0]??"";if(!i)return null;let n=i[0]??"";if(n==="R"){let o=e[1],s=e[2];return o&&s?{status:n,from:o,to:s}:null}let r=e[1];return r?{status:n,to:r}:null}var j=F("git-co-change-pairs"),Ct=F("git-directional-co-change-pairs");function bt(t,e,i,n){let r=`all\0${y(i)}\0${T(e)}`,o=j(t,r,()=>{let s=x(t,i,n);return s?G(s,e):null},n);return o&&[...o]}function z(t,e,i,n,r){if(e.size===0)return[];let o=`files\0${y(n)}\0${N(e)}\0${T(i)}`,s=j(t,o,()=>{let c=x(t,n,r);return c?G(c,i,e):null},r);return s&&[...s]}function yt(t,e,i,n,r){if(e.size===0)return[];let o=i.maxFilesPerCommit??S;if(e.size>J)return z(t,e,i,n,r);let s=`directional\0${y(n)}\0${N(e)}\0${T({...i,maxFilesPerCommit:o})}`,c=Ct(t,s,(l,d)=>{let f=At(l,d,e,o,n);return f?G(f,i,e):null},r);return c&&[...c]}function T(t){let e=t.minTogether??4,i=t.minConfidence??.6,n=t.maxFilesPerCommit??S;return`${e}\0${i}\0${n}`}function N(t){return[...t].sort().join("\0")}function G(t,e,i){let{minTogether:n=4,minConfidence:r=.6,maxFilesPerCommit:o=S}=e,s=new Map,c=new Map,l=t.newestAnalyzedAt??0;for(let u of t.commits){let a=[...new Set(u.files)].sort();if(a.length>o)continue;t.newestAnalyzedAt===void 0&&u.timestamp>l&&(l=u.timestamp);let m=Ft(a),p=i===void 0||a.some(g=>i.has(g));for(let g of a)s.set(g,(s.get(g)??0)+1);if(p)for(let g=0;g<a.length;g++)for(let b=g+1;b<a.length;b++){if(i&&!i.has(a[g])&&!i.has(a[b]))continue;let A=`${a[g]}\0${a[b]}`,h=c.get(A)??{together:0,focusedTogether:0,broadTogether:0,lastTogetherAt:0,timestamps:[],subjects:[]};h.together+=1,m?h.broadTogether+=1:h.focusedTogether+=1,u.timestamp>h.lastTogetherAt&&(h.lastTogetherAt=u.timestamp),h.timestamps.push(u.timestamp),h.subjects.push(u.subject),c.set(A,h)}}let d=[],f=l-W;for(let[u,a]of c){let m=a.together;if(m<n)continue;let[p,g]=u.split("\0"),b=s.get(p)??m,A=s.get(g)??m,h=Math.max(m/b,m/A);if(h<r)continue;let $=a.broadTogether/m,v=a.timestamps.filter(K=>K>=f).length;d.push({fileA:p,fileB:g,together:m,confidence:h,changesA:b,changesB:A,focusedTogether:a.focusedTogether,broadTogether:a.broadTogether,broadCommitRatio:$,lastTogetherAt:a.lastTogetherAt,recentTogether:v,commitScope:Pt(a.broadTogether,m),recency:v>0?"recent":"stale",subjectContext:Ht(a.subjects)})}return d.sort((u,a)=>a.together-u.together||a.confidence-u.confidence||u.fileA.localeCompare(a.fileA)),d}function At(t,e,i,n,r){let o;try{o=xt(t,r)}catch{return null}if(o.length===0)return{head:e,commits:[],skippedBulkCommits:0,newestAnalyzedAt:0};let s;try{s=C(t,["log","--no-merges","--format=%H",...R(r),"--",...[...i].sort()])}catch{return null}let c=new Set(o.map(a=>a.hash)),l=s.split(`
@@ -6,4 +6,4 @@ import{a as _}from"./chunk-P5XHIJHI.js";import{d as P,w as E,y as M}from"./chunk
6
6
  `).map(n=>n.trim()).filter(n=>n!=="").map(n=>{let[r,o]=n.split("\0");return{hash:r??"",timestamp:Number(o)||0}}).filter(n=>n.hash!=="")}function R(t){return t==="full"?[]:["-n",String(B())]}function B(){return _(process.env.SCIP_QUERY_GIT_HISTORY_MAX_COMMITS)??L}function y(t){return t==="full"?"full":`bounded:${B()}`}function I(t){let e=y(t);return e===`bounded:${L}`?D:`${D}:${e}`}function St(t,e,i){for(let r=0;r<e.length;r+=20){let o=e.slice(r,r+20),s;try{s=C(t,["show","--no-walk=unsorted","--name-only","--pretty=format:%x01%H%x00%ct%x00%s",...o.map(l=>l.hash)])}catch{return e[0]?.timestamp??0}let c=w(s,i);if(c.commits.length>0)return c.commits[0].timestamp}return 0}function w(t,e){let i=[],n=0;for(let r of t.split("")){if(r.trim()==="")continue;let o=r.indexOf(`
7
7
  `),s=o>=0?r.slice(0,o):r,[c,l,d]=s.split("\0");if(!c||!l)continue;let f=o>=0?r.slice(o+1).split(`
8
8
  `).map(u=>u.trim()).filter(u=>u!==""):[];if(f.length>e){n+=1;continue}i.push({hash:c,timestamp:Number(l)||0,subject:d??"",files:f})}return{commits:i,skippedBulkCommits:n}}function Ft(t){return t.length>=Y?!0:Rt(t).size>=V}function Rt(t){let e=new Set;for(let i of t){let n=i.indexOf("/");e.add(n>=0?i.slice(0,n):".")}return e}function Pt(t,e){return t===0?"focused":t/e>=.5?"broad-sweep":"mixed"}function Ht(t){let e=new Set,i=[],n=[];for(let r of t){!n.includes(r)&&n.length<Z&&n.push(r);for(let o of Tt(r))e.add(o);for(let o of r.match(Q)??[])i.includes(o)||i.push(o)}return{subjectLabels:[...e].sort(),issueRefs:i,sampleSubjects:n,externalIssueLabelStatus:"unavailable"}}function Tt(t){let e=new Set,i=q.exec(t)?.[1]?.toLowerCase();return i&&e.add(Gt(i)),/\b(?:feat|feature)\b/i.test(t)&&e.add("feature"),/\b(?:fix(?:es|ed)?|bug|regression|hotfix)\b/i.test(t)&&e.add("fix"),/\b(?:docs?|documentation|guide|readme)\b/i.test(t)&&e.add("docs"),/\brefactor(?:ing|ed)?\b/i.test(t)&&e.add("refactor"),/\btests?\b/i.test(t)&&e.add("test"),/\b(?:release|version|v\d+\.\d+)\b/i.test(t)&&e.add("release"),/\bchore\b/i.test(t)&&e.add("chore"),/\bbuild\b/i.test(t)&&e.add("build"),/\bci\b/i.test(t)&&e.add("ci"),/\bperf(?:ormance)?\b/i.test(t)&&e.add("perf"),[...e]}function Gt(t){return t==="feat"?"feature":t}export{nt as a,C as b,_t as c};
9
- //# sourceMappingURL=chunk-ISWFRGJ6.js.map
9
+ //# sourceMappingURL=chunk-XKXTR6ZI.js.map
@@ -0,0 +1,4 @@
1
+ import{b as ye}from"./chunk-FLMTCX5R.js";import{i as I,n as W}from"./chunk-RBAD4GJ2.js";import{E as O}from"./chunk-ZLMXIQLC.js";import{h as pe,k as G}from"./chunk-ETC674NS.js";import{e as me}from"./chunk-KNLQGXVH.js";var Pe=12,Te=20,re=200,oe=800,Ae=.9,Oe=64,De=me("behavior-construct-ranges"),Se={if_statement:"branch",conditional_expression:"branch",ternary_expression:"branch",switch_statement:"branch",switch_expression:"branch",switch_case:"branch",case_statement:"branch",match_statement:"branch",match_expression:"branch",match_arm:"branch",for_statement:"loop",for_in_statement:"loop",for_of_statement:"loop",while_statement:"loop",do_statement:"loop",await_expression:"await",return_statement:"return",throw_statement:"throw",raise_statement:"throw",assignment_expression:"mutation",augmented_assignment_expression:"mutation",assignment:"mutation",pair:"shape",field_initializer:"shape",spread_element:"spread",dictionary_splat:"spread",catch_clause:"catch",except_clause:"catch",finally_clause:"finally"},Z=["anchor","signature","binding","branch","loop","call","await","return","throw","mutation","shape","spread","catch","finally"],ge=[...Z,"lifecycle"],Ce=["loop","await","throw","mutation","spread","catch","finally","lifecycle"],Ie=new Set(["onBeforeMount","onBeforeUnmount","onMounted","onUnmounted","useEffect","useInsertionEffect","useLayoutEffect"]);var _e=new Set(["object","object_pattern","dictionary","field_declaration_list","struct_expression","struct_pattern"]);function mt(e,n,t,o,r=[],s={}){let a=O(e,n);if(!a)return null;let h=G(e,n),c=Ne(e,n,t,o,r),l=te(e,n,c.startLine,c.endLine),u=l?.startLine??t,p=l?.endLine??o,N=(l?D(a.rootNode,c.startLine,c.endLine):null)??I(a.rootNode,u,p);if(!N)return null;let b=Le(N,h,u,p,r);if(!b||b.lines.length===0||b.lines.some(S=>S.text.length>oe))return null;let m=tt(h,u,p),C=nt(b);if((s.requireSavings??!0)&&C>=m*Ae)return null;let v=Z.filter(S=>b.lines.some(x=>x.signals.includes(S)));return{...l?{callable:{name:l.name,startLine:l.startLine,endLine:l.endLine}}:{},representation:"outline",constructKind:b.constructKind,signature:b.signature,lines:b.lines,signals:v,testCases:ye(n)==="test"?st(h,u,p):[],coverage:{sourceStatements:b.sourceStatements,representedStatements:b.sourceStatements,copiedStatements:b.copiedStatements,omittedStatements:0},rawCharacters:m,outlineCharacters:C,candidateLines:b.sourceStatements,omittedLines:0}}function pt(e,n,t,o,r){if(r.length===0)return[];let s=O(e,n);if(!s)return[];let a=G(e,n),h=Ne(e,n,t,o,r),c=te(e,n,h.startLine,h.endLine),l=c?.startLine??t,u=c?.endLine??o,p=(c?D(s.rootNode,h.startLine,h.endLine):null)??I(s.rootNode,l,u);if(!p)return[];let N=Le(p,a,l,u,r);return N?N.lines.filter(b=>b.text.length<=oe&&b.signals.some(m=>["branch","loop","catch","finally"].includes(m))&&r.some(m=>m>=b.line&&m<=b.endLine)):[]}function yt(e,n,t,o){let r=O(e,n);if(!r)return null;let s=D(r.rootNode,t,o)??I(r.rootNode,t,o);if(!s)return null;let a=[],h=ae(s),c=[];return se(s,s,l=>{if(k.has(l.type)||ke.has(l.type)){$e(a,c,l);return}if(ee.has(l.type)){qe(a,c,l);return}if(z.has(l.type)){ze(a,c,l);return}j.has(l.type)&&je(a,l)}),{facts:Ue(a),terminals:we(h),unsupported:c}}function Ne(e,n,t,o,r=[]){let s=r.filter(u=>u>=t&&u<=o),a=De.get(e,n,pe(e,n)??"",()=>new Map),h=`${t}:${o}:${s.join(",")}`,c=a.get(h);if(c)return a.delete(h),a.set(h,c),{startLine:c[0],endLine:c[1]};let l=Me(e,n,t,o,s);if(a.set(h,[l.startLine,l.endLine]),a.size>Oe){let u=a.keys().next().value;u!==void 0&&a.delete(u)}return l}function Me(e,n,t,o,r){let s=O(e,n),a=[];if(r.length>0&&s){let u=[],p=r[0],N=p;for(let m of r)p=Math.min(p,m),N=Math.max(N,m);Ee(s.rootNode,p,N,m=>{Ve(m)&&m.startPosition.row>=t&&m.endPosition.row<=o&&r.every(C=>m.startPosition.row<=C&&m.endPosition.row>=C)&&u.push(m),P.has(m.type)&&m.startPosition.row>=t&&m.endPosition.row<=o&&r.every(C=>m.startPosition.row<=C&&m.endPosition.row>=C)&&a.push(m)});let b=u.sort((m,C)=>m.endPosition.row-m.startPosition.row-(C.endPosition.row-C.startPosition.row)||m.startPosition.row-C.startPosition.row)[0];if(b)return{startLine:b.startPosition.row,endLine:b.endPosition.row}}let h=te(e,n,t,o);if(h)return{startLine:h.startLine,endLine:h.endLine};if(r.length===0)return{startLine:t,endLine:o};let c=(W(e,n)?.callables??[]).filter(u=>u.startLine>=t&&u.endLine<=o&&r.every(p=>u.startLine<=p&&u.endLine>=p)).sort((u,p)=>u.endLine-u.startLine-(p.endLine-p.startLine)||u.startLine-p.startLine)[0];if(!s)return c?{startLine:c.startLine,endLine:c.endLine}:{startLine:t,endLine:o};let l=a.sort((u,p)=>u.endPosition.row-u.startPosition.row-(p.endPosition.row-p.startPosition.row)||u.startPosition.row-p.startPosition.row)[0];return l?{startLine:l.startPosition.row,endLine:l.endPosition.row}:c?{startLine:c.startLine,endLine:c.endLine}:{startLine:t,endLine:o}}function bt(e,n,t,o,r={}){if(o-t+1<(r.minimumBodyLines??Te))return null;let a=Re(e,n,t,o,[],!1);if(!a)return null;let h=a.candidates.map(S=>({...S,signals:S.signals.filter(x=>x!=="anchor"&&x!=="signature")})).filter(S=>S.signals.length>0);if(h.length===0)return null;let c=it(h),l=h.filter(S=>S.text.length<=re);if(l.length===0)return null;let u=Ce.filter(S=>(c[S]??0)>0),p=u.filter(S=>S!=="await"),N=a.shapes.reduce((S,x)=>S+x.fields.length,0);if(p.length===0&&!((c.await??0)>0&&N>0)&&N<3)return null;let b=at(l,c),m=new Map;for(let S of u){let x=b.find(f=>f.signals.includes(S));x&&m.set(x.line,x)}if(m.size===0){let S=b.find(x=>x.signals.includes("branch"));S&&m.set(S.line,S)}let C=Math.min(10,Math.max(1,r.maxLines??m.size)),v=new Map;for(let S of m.values()){if(v.size>=C)break;v.set(S.line,S)}return v.size>=h.length&&a.shapes.length===0?null:{owner:a.callable?.name??null,startLine:t,endLine:o,lines:[...v.values()].sort((S,x)=>S.line-x.line),shapes:a.shapes,signalCounts:c,candidateLines:h.length,omittedLines:h.length-v.size}}function St(e,n,t,o){let r=Re(e,n,t,o,[],!1);return r?new Map(r.candidates.map(s=>[s.line,s.signals.filter(a=>a!=="lifecycle")])):new Map}var P=new Set(["arrow_function","constructor_declaration","function_declaration","function_definition","function_expression","generator_function","generator_function_declaration","function_item","lambda","lambda_expression","method","method_declaration","method_definition"]),B=new Set(["block","body","compound_statement","declaration_list","statement_block"]),k=new Set(["if_expression","if_statement","unless","unless_statement"]),ke=new Set(["conditional_expression","ternary_expression"]),ee=new Set(["do_statement","enhanced_for_statement","for_expression","for_in_statement","for_of_statement","for_statement","loop_expression","while_statement"]),z=new Set(["match_expression","match_statement","switch_expression","switch_statement"]),ve=new Set(["case_statement","match_arm","switch_case","switch_default"]),j=new Set(["try_expression","try_statement"]),X=new Set(["catch_clause","except_clause","rescue"]),$=new Set(["ensure","finally_clause"]),Y=new Set(["else","else_clause"]),xe=new Set(["raise_statement","return_statement","throw_statement"]),Ye=new Set(["block_comment","comment","line_comment"]);function $e(e,n,t){let o=t.childForFieldName("condition")??le(t),r=t.childForFieldName("consequence")??t.childForFieldName("body")??t.namedChildren.find(c=>B.has(c.type)),s=t.childForFieldName("alternative")??t.namedChildren.find(c=>Y.has(c.type));if(!o||!r){n.push(ce(t,"conditional-fields-unresolved"));return}let a=F(o,"predicate",o.text),h=F(r,be(r),"consequence");if(E(e,a,h,"predicate-consequence",{branchRole:"consequence"}),J(e,a,r,"consequence"),s){let c=F(s,be(s),"alternative");E(e,a,c,"predicate-alternative",{branchRole:"alternative"}),J(e,a,s,"alternative");return}E(e,a,ie(a,"otherwise continue"),"predicate-fallthrough",{branchRole:"fallthrough"})}function qe(e,n,t){let o=t.childForFieldName("body")??t.namedChildren.find(a=>B.has(a.type));if(!o){n.push(ce(t,"loop-body-unresolved"));return}let r=t.childForFieldName("condition"),s=F(r??t,"predicate",r?.text??R(t,o));E(e,s,F(o,"outcome","iteration"),"loop-iteration",{branchRole:"iteration"}),J(e,s,o,"iteration"),E(e,s,ie(s,"loop exits"),"loop-exit",{branchRole:"exit"})}function ze(e,n,t){let o=t.childForFieldName("body")??t.namedChildren.find(c=>B.has(c.type)),r=t.childForFieldName("value")??t.childForFieldName("condition")??t.childForFieldName("subject")??le(t),s=Ke(o??t);if(!r||s.length===0){n.push(ce(t,"switch-cases-unresolved"));return}let a=F(r,"predicate",r.text),h=!1;for(let c of s){let l=We(c);h||=l;let u=R(c,c.namedChildren.find(p=>Q(p)));E(e,a,F(c,"outcome",u||(l?"default":"case")),l?"predicate-default":"predicate-case",{branchRole:l?"default":"case"}),J(e,a,c,l?"default":"case")}h||E(e,a,ie(a,"no case matched"),"predicate-fallthrough",{branchRole:"fallthrough"})}function je(e,n){let t=F(n,"scope","try");for(let o of Ge(n)){let r=$.has(o.type),s=F(o,"handler",r?"finally":R(o,U(o)));E(e,t,s,r?"finally-cleanup":"exception-handler",{branchRole:r?"finally":"catch"}),He(e,s,o,r?"finally":"catch")}}function He(e,n,t,o){for(let r of ae(t)){let s=r.label.startsWith("throw")||r.label.startsWith("raise")?"throw":"return";E(e,n,r,s==="throw"?"handler-throw":"handler-return",{branchRole:o,terminalKind:s})}}function J(e,n,t,o){for(let r of ae(t)){let s=r.label.startsWith("throw")||r.label.startsWith("raise")?"throw":"return";E(e,n,r,s==="throw"?"predicate-throw":"predicate-return",{branchRole:o,terminalKind:s})}}function E(e,n,t,o,r){e.push({controller:n,outcome:t,subtype:o,attributes:r})}function F(e,n,t){return{kind:n,label:q(t).slice(0,oe),startLine:e.startPosition.row,endLine:e.endPosition.row,implicit:!1}}function ie(e,n){return{...e,kind:"outcome",label:n,implicit:!0}}function be(e){return xe.has(e.type)?"terminal":"outcome"}function ae(e){let n=[];return se(e,e,t=>{xe.has(t.type)&&n.push(F(t,"terminal",t.text))}),we(n)}function se(e,n,t){t(n);for(let o of n.namedChildren)o!==e&&P.has(o.type)||se(e,o,t)}function Ke(e){let n=[],t=o=>{for(let r of o.namedChildren)z.has(r.type)||(ve.has(r.type)?n.push(r):t(r))};return t(e),n}function Ge(e){let n=[],t=o=>{for(let r of o.namedChildren)j.has(r.type)||(X.has(r.type)||$.has(r.type)?n.push(r):P.has(r.type)||t(r))};return t(e),n}function We(e){let n=R(e,e.namedChildren.find(t=>Q(t))).trim();return e.type==="switch_default"||/^(?:default\b|_\s*=>)/u.test(n)}function ce(e,n){return{startLine:e.startPosition.row,endLine:e.endPosition.row,reason:n}}function Ue(e){let n=new Map;for(let t of e)n.set(`${t.controller.startLine}\0${t.controller.endLine}\0${t.outcome.startLine}\0${t.outcome.endLine}\0${t.subtype}\0${t.outcome.label}`,t);return[...n.values()]}function we(e){let n=new Map;for(let t of e)n.set(`${t.startLine}\0${t.endLine}\0${t.kind}\0${t.label}`,t);return[...n.values()]}function Ve(e){return P.has(e.type)||ee.has(e.type)||z.has(e.type)||j.has(e.type)||X.has(e.type)||$.has(e.type)}function Le(e,n,t,o,r){let a=D(e,t,o)??e,h=U(a),c=[],l=0,u=0,p=(i,d,y,g,w=!1,A=!0)=>{let K=w?y.trim():q(y);if(!K)return;let T=Math.max(t,i.startPosition.row),de=Math.min(o,i.endPosition.row);c.push({line:T,endLine:Math.max(T,de),depth:d,signals:Z.filter(he=>g.includes(he)||he==="anchor"&&r.some(fe=>fe>=T&&fe<=de)),text:K,copied:w}),A&&(l+=1,w&&(u+=1))},N=(i,d)=>{for(let y of i.namedChildren)_(y,d)},b=(i,d)=>{if(k.has(i.type)){m(i,d,"else if");return}if(Y.has(i.type)){let y=i.namedChildren.find(w=>k.has(w.type));if(y){m(y,d,"else if");return}p(i,d,"else",["branch"],!1,!1);let g=U(i)??i.namedChildren.find(w=>B.has(w.type));if(g)_(g,d+1);else for(let w of i.namedChildren)_(w,d+1);return}p(i,d,"else",["branch"],!1,!1),_(i,d+1)},m=(i,d,y=i.type.startsWith("unless")?"unless":"if")=>{let g=i.childForFieldName("condition")??le(i),w=i.childForFieldName("consequence")??i.childForFieldName("body")??i.namedChildren.find(T=>B.has(T.type)),A=i.childForFieldName("alternative")??i.namedChildren.find(T=>Y.has(T.type)),K=g?g.text:R(i,w);p(i,d,`${y} ${Ze(K)}`,M(g,["branch"])),w&&_(w,d+1),A&&b(A,d)},C=(i,d)=>{let y=i.childForFieldName("body")??i.namedChildren.find(g=>B.has(g.type));p(i,d,R(i,y),M(i,["loop"])),y&&_(y,d+1)},v=(i,d)=>{let y=i.childForFieldName("body")??i.namedChildren.find(g=>B.has(g.type));p(i,d,R(i,y),M(i,["branch"])),y&&_(y,d+1)},S=(i,d)=>{let y=i.namedChildren.find(g=>Q(g));p(i,d,R(i,y),["branch"],!1,!1);for(let g of i.namedChildren)(g===y||Q(g))&&_(g,d+1)},x=(i,d)=>{p(i,d,"try",[],!1);for(let y of i.namedChildren)B.has(y.type)?_(y,d+1):(X.has(y.type)||$.has(y.type))&&_(y,d)},f=(i,d,y)=>{let g=i.childForFieldName("body")??i.namedChildren.find(A=>B.has(A.type)),w=y==="finally"?"finally":R(i,g);p(i,d,w,[y],!1,!1),g&&_(g,d+1)},L=(i,d)=>{let y=U(i);p(i,d,R(i,y),M(i,["binding"])),y&&_(y,d+1)},_=(i,d)=>{if(i.startPosition.row>o||i.endPosition.row<t||Ye.has(i.type)||i.type==="empty_statement")return;if(B.has(i.type)){N(i,d);return}if(k.has(i.type)){m(i,d);return}if(ee.has(i.type)){C(i,d);return}if(z.has(i.type)){v(i,d);return}if(ve.has(i.type)){S(i,d);return}if(j.has(i.type)){x(i,d);return}if(X.has(i.type)){f(i,d,"catch");return}if($.has(i.type)){f(i,d,"finally");return}if(Y.has(i.type)){b(i,d);return}if(P.has(i.type)){L(i,d);return}let g=!Be(i)||et(i);p(i,d,i.text,M(i),g)};return _(h&&h!==a?h:a,0),l===0?null:{constructKind:Qe(a),signature:Je(a,h,n,t),lines:c,sourceStatements:l,copiedStatements:u}}function D(e,n,t){let o=e.namedChildren.filter(r=>r.startPosition.row<=n&&r.endPosition.row>=t);for(let r of o.sort(Xe)){let s=D(r,n,t);if(s)return s}return P.has(e.type)&&e.startPosition.row<=n&&e.endPosition.row>=t?e:null}function Xe(e,n){return e.endPosition.row-e.startPosition.row-(n.endPosition.row-n.startPosition.row)||e.startPosition.row-n.startPosition.row}function U(e){return e.childForFieldName("body")??e.childForFieldName("consequence")??e.namedChildren.find(n=>B.has(n.type))??null}function Je(e,n,t,o){let r=R(e,n);return r||(t[o]??e.text).trim()}function Qe(e){return e.type.includes("constructor")?"constructor":e.type.includes("method")||e.type==="method"?ne(e,new Set(["class_body","class_declaration","class_definition"]))?"class method":"object method":e.type==="arrow_function"||e.type==="function_expression"||e.type==="lambda"?ne(e,new Set(["object","pair"]))?"object member":"function value":e.type.includes("function")?ne(e,P)?"nested function":"module function":"source construct"}function ne(e,n){let t=e.parent;for(;t;){if(n.has(t.type))return!0;t=t.parent}return!1}function le(e){return e.namedChildren.find(n=>!B.has(n.type)&&!Y.has(n.type))??null}function R(e,n){if(!n)return q(e.text);let t=Math.max(0,n.startIndex-e.startIndex);return q(e.text.slice(0,t)).replace(/[:{]\s*$/u,"").trim()}function Ze(e){let n=q(e);return n.startsWith("(")&&n.endsWith(")")?n.slice(1,-1).trim():n}function q(e){return e.trim().replace(/\r?\n[\t ]*/gu," ")}function M(e,n=[]){let t=new Set(n);return e&&H(e,o=>{let r=Se[o.type];r&&t.add(r),o.type==="call_expression"&&(t.add("call"),Fe(o)&&t.add("shape")),ue.has(o.type)&&t.add("binding")}),Z.filter(o=>t.has(o))}function et(e){let n=!1;return H(e,t=>{n||!t.text.includes(`
2
+ `)||/(?:string|template|heredoc|raw_string)/u.test(t.type)&&(n=!0)}),n}function Q(e){return B.has(e.type)||k.has(e.type)||ee.has(e.type)||z.has(e.type)||j.has(e.type)||P.has(e.type)||Be(e)}function Be(e){return/(?:statement|declaration|expression|assignment|return|throw|raise|break|continue|yield|with_item)$/u.test(e.type)||ue.has(e.type)}function tt(e,n,t){let o=0;for(let r=n;r<=t;r+=1)o+=(e[r]?.length??0)+10;return o}function nt(e){return e.constructKind.length+e.signature.length+80+e.lines.reduce((n,t)=>n+t.text.length+t.depth*2+10,0)}function Re(e,n,t,o,r,s){let a=O(e,n);if(!a)return null;let h=G(e,n),c=te(e,n,t,o),l=s?c?.startLine??t:t,u=s?c?.endLine??o:o,N=(c?.startLine===l&&c.endLine===u?D(a.rootNode,l,u):null)??I(a.rootNode,l,u);if(!N)return null;let b=new Map,m=new Map,C=new Map,v=(f,L)=>{if(f<l||f>u)return;let _=b.get(f)??new Set;_.add(L),b.set(f,_)};c&&v(c.startLine,"signature");for(let f of r)v(f,"anchor");H(N,f=>{let L=Se[f.type];if(L&&v(f.startPosition.row,L),L==="shape"&&rt(m,f,N,l,u),f.type==="call_expression"){let i=(f.childForFieldName("function")??f.namedChild(0))?.text.split(".").at(-1);if(Fe(f)){v(f.startPosition.row,"shape");let d=V(f.text);d.length<=re&&C.set(f.startPosition.row,d)}if(i&&Ie.has(i)){v(f.startPosition.row,"lifecycle");let d=V(f.text);d.length<=re&&C.set(f.startPosition.row,d)}}ue.has(f.type)&&v(f.startPosition.row,"binding")});let S=W(e,n);for(let f of S?.callSites??[])f.line<l||f.line>u||(v(f.line,"call"),f.calleeLeaf==="catch"&&v(f.line,"catch"));let x=[...b.entries()].sort(([f],[L])=>f-L).map(([f,L])=>({line:f,signals:ge.filter(_=>L.has(_)),text:C.get(f)??V(h[f]??"")})).filter(f=>f.text.length>0||f.signals.includes("anchor"));return{...c?{callable:c}:{},rangeStart:l,rangeEnd:u,sourceLines:h,candidates:x,shapes:[...m.values()].sort((f,L)=>f.startLine-L.startLine)}}function rt(e,n,t,o,r){if(n.startPosition.row<o||n.endPosition.row>r)return;let s=n.childForFieldName("key")??n.childForFieldName("name")??n.namedChild(0),a=V(s?.text??"");if(!a||a.includes(`
3
+ `)||a.length>60)return;let h=ot(n,t);if(h.startPosition.row<o||h.endPosition.row>r)return;let c=`${h.startPosition.row}:${h.endPosition.row}`,l=e.get(c)??{startLine:h.startPosition.row,endLine:h.endPosition.row,fields:[]};l.fields.some(u=>u.name===a&&u.line===n.startPosition.row)||l.fields.push({name:a,line:n.startPosition.row}),e.set(c,l)}function ot(e,n){let t=e.parent;for(;t&&t!==n.parent;){if(_e.has(t.type))return t;if(t===n)break;t=t.parent}return e.parent??e}function te(e,n,t,o){return W(e,n)?.callables.filter(r=>r.startLine<=t&&r.endLine>=o).sort((r,s)=>r.endLine-r.startLine-(s.endLine-s.startLine)||r.startLine-s.startLine)[0]}function H(e,n){n(e);for(let t of e.namedChildren)H(t,n)}function Ee(e,n,t,o){o(e);for(let r of e.namedChildren)r.startPosition.row>n||r.endPosition.row<t||Ee(r,n,t,o)}function V(e){return e.trim().replace(/\s+/gu," ")}function Fe(e){if(e.type!=="call_expression")return!1;let n=e.childForFieldName("arguments")??e.namedChildren.find(o=>o.type==="arguments"||o.type==="argument_list");if(!n)return!1;let t=!1;return H(n,o=>{_e.has(o.type)&&(t=!0)}),t}function it(e){let n={};for(let t of ge){let o=e.filter(r=>r.signals.includes(t)).length;o>0&&(n[t]=o)}return n}function at(e,n){let t=new Map;for(let s of e){let a=s.signals.join(",");t.set(a,(t.get(a)??0)+1)}let o=new Set(Ce),r=s=>{let a=t.get(s.signals.join(","))??1,h=Math.min(...s.signals.map(u=>n[u]??1)),c=s.signals.some(u=>o.has(u))?3:1,l=Math.max(0,s.signals.length-1)*1e3;return c*(1e3/a+1e3/h)+l};return[...e].sort((s,a)=>r(a)-r(s)||a.line-s.line)}var ue=new Set(["lexical_declaration","variable_declarator","const_item","static_item","let_declaration","assignment"]);function st(e,n,t){let o=[],r=/\b(?:describe|it|test)(?:\.(?:only|skip|todo))?\s*\(\s*(['"`])([^'"`]+)\1/u;for(let s=n;s<=t;s+=1){let a=r.exec(e[s]??"")?.[2];if(!(!a||o.includes(a))&&(o.push(a),o.length>=Pe))break}return o}export{mt as a,pt as b,yt as c,Ne as d,bt as e,St as f};
4
+ //# sourceMappingURL=chunk-Y5DFAW5W.js.map
@@ -0,0 +1,3 @@
1
+ import{a as te}from"./chunk-P5XHIJHI.js";import{A as An,B as Rt,D as bt,E as ht,F as Fn,a as Cn,i as Tn,j as ge,k as Y,l as Be,m as ne,n as re,o as qe,q as gt,r as je,s as We,t as ie,u as ze,v as wn,w as kn,x as Ke,y as En,z as He}from"./chunk-J6GLBBRK.js";import{d as xn}from"./chunk-KK7GPALL.js";import{a as we,b as ke,c as Fe,d as Ne,e as j,o as Pn}from"./chunk-QBQE7ZJ5.js";import{b as vn,e as V,h as Ue,j as Dn,l as Se,v as z,w as ee}from"./chunk-C7C6AKAT.js";import{a as ye,n as Oe,w as In,y as Mn}from"./chunk-RBAD4GJ2.js";import{A as bn,E as hn,a as _e,c as Sn,d as gn,q as yt}from"./chunk-ZLMXIQLC.js";import{c as St,d as me,e as $}from"./chunk-ETC674NS.js";import{A as Le,a as pn,c as dn,d as dt,h as mt,j as Z,s as mn,u as yn,v as L,x as Rn,y as w}from"./chunk-KNLQGXVH.js";import{Ba as un,C as an,Ca as de,D as H,E as Ee,Fa as fn,H as Ae,I as q,J as cn,O as ft,ca as pt,n as pe,q as _,xa as ln}from"./chunk-JZ2A7LDM.js";import{randomUUID as qi}from"crypto";import{existsSync as ji}from"fs";import{dirname as ar}from"path";function Nn(t){if(!t||typeof t!="object"||Array.isArray(t))return null;let e=t;if(typeof e.available!="boolean"||e.dependencyAvailable!==void 0&&typeof e.dependencyAvailable!="boolean"||e.tsconfigPath!==void 0&&typeof e.tsconfigPath!="string"||e.tsconfigPaths!==void 0&&(!Array.isArray(e.tsconfigPaths)||!e.tsconfigPaths.every(n=>typeof n=="string"))||e.resolvedBinary!==void 0&&typeof e.resolvedBinary!="string"||e.note!==void 0&&typeof e.note!="string")return null;if(e.available===!0){if(e.reason!==void 0)return null}else if(typeof e.reason!="string"||e.reason.length===0)return null;return e}import{performance as x}from"perf_hooks";function F(t,e,n){if(t.has(e))return t.get(e);let r=n();return t.set(e,r),r}import On from"path";import{realpathSync as _n}from"fs";function mi(t,e){return t.getReferences().map(n=>{let r=n.getNode();return $e(r,e)})}function yi(t){let e=t;return typeof e.findReferences=="function"?e.findReferences():[]}function Un(t,e,n,r){let i=[];for(let s of yi(t))for(let o of mi(s,r))o.file===e.relativePath&&o.line>=e.startLine&&o.line<=e.endLine||i.push(o);for(let s of n)i.push(s);return se(i)}function Bn(t,e,n,r){let i=[],s=n?.getStart();for(let o of t.getReferences()){let a=o.getNode();oe(r,a.getSourceFile().getFilePath())===e&&(s!==void 0&&a.getStart()===s||i.push({location:$e(a,r),node:a}))}return i}function $e(t,e){let n=t.getSourceFile(),r=n.getLineAndColumnAtPos(t.getStart());return{file:oe(e,n.getFilePath())??n.getBaseName(),line:r.line-1,column:r.column-1}}function qn(t,e,n){let r=t.getSourceFile(),i=Mt(r,t),s=t.getText(),o=new RegExp(`\\b${ye(s)}\\b`,"g"),a=r.getFullText().split(`
2
+ `),c=[];for(let f=0;f<a.length;f++){if(f===i)continue;let u=a[f]??"";o.lastIndex=0;let l;for(;(l=o.exec(u))!==null;)c.push({file:e,line:f,column:l.index})}return se(c.filter(f=>oe(n,On.join(n,f.file))===e))}function It(t){for(let e=t;e;e=e.getParent()){let n=e.getKindName();if(n.includes("Type")||n==="InterfaceDeclaration"||n==="TypeAliasDeclaration")return!0;if(n==="CallExpression"||n==="NewExpression"||n==="ExpressionStatement")return!1}return!1}function Mt(t,e){return t.getLineAndColumnAtPos(e.getStart()).line-1}function se(t){let e=new Set,n=[];for(let r of t){let i=`${r.file}:${r.line}:${r.column}`;e.has(i)||(e.add(i),n.push(r))}return n}function oe(t,e){let n=t||process.cwd(),r=Ln(n,e);if(r)return r;try{return Ln(_n(n),_n(e))}catch{return null}}function Ln(t,e){let n=On.relative(t,e).replace(/\\/g,"/");return!n||n===".."||n.startsWith("../")?null:n}function jn(t,e,n,r){let i=Si(e,r);return i.size===0?new Map:gi(t,n,i)}function Si(t,e){let n=new Map;for(let r of z(t,e)){let i=V(r.symbol)??r.leaf;if(!i)continue;let s=n.get(i);s||(s=[],n.set(i,s)),s.push(r)}return n}function gi(t,e,n){let r=new Map,i=new Map;return e.forEachDescendant(s=>{for(let o of Ri(t,s)){let a=n.get(o);if(!a)continue;let c=Mt(e,s);for(let f of a){if(c<f.startLine-1||c>f.endLine+1)continue;let u=Math.abs(c-f.startLine),l=i.get(f.symbolId);l!==void 0&&l<=u||(i.set(f.symbolId,u),r.set(f.symbolId,s))}}}),r}function Ri(t,e){let n=[],r=i=>{i&&!n.includes(i)&&n.push(i)};if("getNameNode"in e&&typeof e.getNameNode=="function"){let i=e.getNameNode();r(i?.getText())}if("getName"in e&&typeof e.getName=="function"){let i=e.getName();r(i)}return t.Node.isIdentifier(e)&&r(e.getText()),n}var bi=dn("ts-definition-leaf-candidates",{clearGroups:["definition-catalog"]});function Wn(t,e,n,r){let i=xt(t,e),s=vt(i.get(r)??[],n);if(s)return s;let o=[];for(let a of i.values())for(let c of a)((c.leaf||V(c.symbol)||"").includes(r)||c.symbol.includes(r))&&o.push(c);return vt(o,n)}function Dt(t,e,n,r){return vt(xt(t,e).get(r)??[],n)}function zn(t,e){let n=new Map;for(let[r,i]of xt(t,e)){let s=i[0];s&&n.set(r,s)}return n}function xt(t,e){return bi.get(t,e,()=>{let n=new Map;for(let r of z(t,e)){let i=r.leaf||V(r.symbol);if(!i)continue;let s=n.get(i);s||(s=[],n.set(i,s)),s.push({...r,leaf:i})}for(let r of n.values())r.sort((i,s)=>i.startLine-s.startLine||i.endLine-s.endLine||i.symbolId-s.symbolId);return n})}function vt(t,e){let n=null,r=Number.POSITIVE_INFINITY;for(let i of t){let s=Math.abs(i.startLine-e);(s<r||s===r&&n&&i.startLine<n.startLine)&&(n=i,r=s)}return n}import hi from"path";import{realpathSync as Ii}from"fs";function Hn(t,e){let n=new Map,r=new Map,i=null,s=()=>(i??=_e(t,{extensions:We}),i),o=f=>F(r,f,()=>w("typescript.source-file-index",()=>{let u=new Map;for(let l of f.project.getSourceFiles())Kn(u,l);return{project:f.project,sourceFiles:u}},()=>({tsconfigPath:f.tsconfigPath,indexedDocuments:s().length}))),a=(f,u)=>{let l=o(f),p=l.sourceFiles.get(u)??null;return p||(p=f.project.addSourceFileAtPathIfExists(u)??null,p&&Kn(l.sourceFiles,p)),p?{project:l.project,sourceFile:p}:null},c=f=>ie(f)?F(n,f,()=>{let u=Mi(t.config.projectRoot,f);if(!u)return null;for(let m of e){if(!m.loaded)continue;let d=o(m).sourceFiles.get(u);if(d)return{project:m.project,sourceFile:d}}let l=e.find(m=>m.fileNames?.has(u));if(l)return a(l,u);for(let m of e){if(!m.loaded)continue;let d=a(m,u);if(d)return d}let p=e[0];return p?a(p,u):null}):null;return{sourceFile:f=>c(f)?.sourceFile??null,sourceFileMatch:c,indexedTypeScriptLikeDocuments:s}}function Kn(t,e){let n=Ct(e.getFilePath());t.set(n,e);try{t.set(Ct(Ii(n)),e)}catch(r){if(!de(r))throw r}}function Mi(t,e){try{return Ct(ln(t,e,{inputKind:"indexed TypeScript source file"}).absolutePath)}catch(n){if(!de(n))throw n;return null}}function Ct(t){return hi.resolve(t)}function Tt(t,e){for(let n of t)if(e===n.name||e.startsWith(`${n.name}/`))return n.name;return null}function $n(t){let e=`${t.relativeDir}/src`;return[`${e}/index.ts`,`${e}/index.tsx`,`${e}/index.mts`,`${e}/index.cts`]}import{existsSync as Re}from"fs";import A from"path";var Pt=["tsconfig.json","tsconfig.app.json","tsconfig.node.json","tsconfig.base.json"];function wt(t,e){let r=e?A.dirname(A.join(t,e)):t,i=A.resolve(t);for(;r.startsWith(i);){for(let o of Pt){let a=A.join(r,o);if(Re(a))return a}let s=A.dirname(r);if(s===r)break;r=s}for(let s of Pt){let o=A.join(t,s);if(Re(o))return o}return null}function Ve(t){let e=t.config.projectRoot,n=new Set(vi(e,t.config.semantic?.typescript?.tsconfigs)),r=_e(t,{includeIgnored:!1,extensions:We});for(let i of r){let s=wt(e,i);s&&n.add(A.resolve(s))}if(n.size===0){let i=wt(e);i&&n.add(A.resolve(i))}return[...n].filter(i=>!Vn(e,i)).sort((i,s)=>i.localeCompare(s))}function vi(t,e=[]){let n=new Set;for(let r of e){let i=A.isAbsolute(r)?r:A.join(t,r);Re(i)&&n.add(A.resolve(i))}for(let r of Di(t))for(let i of Pt){let s=A.join(r,i);Re(s)&&n.add(A.resolve(s))}if(n.size===0){let r=wt(t);r&&n.add(A.resolve(r))}return[...n].filter(r=>!Vn(t,r)).sort((r,i)=>r.localeCompare(i))}function Di(t){let e=A.join(t,"package.json");if(!Re(e))return[];let n;try{n=JSON.parse(cn(e,"project package manifest"))}catch{return[]}return(Array.isArray(n.workspaces)?n.workspaces:n.workspaces?.packages??[]).flatMap(i=>gn(t,i))}function Vn(t,e){let n=A.relative(t,e).replace(/\\/g,"/");return n.startsWith("..")||n.includes("/node_modules/")||n.startsWith("node_modules/")||n.includes("/dist/")||n.startsWith("dist/")}var xi=32;function nr(t,e){let n=w("typescript.provider.load",()=>ze());if(!n)return He("ts-morph is not installed");let r=w("typescript.provider.tsconfig-discovery",()=>Ve(t));if(r.length===0)return He("no tsconfig found");try{let i=w("typescript.provider.project-bundles",()=>wn(n,r),()=>({tsconfigs:r.length}));return Ci(t,n,i)}catch(i){return He(i instanceof Error?i.message:String(i),r[0],r)}}function Ci(t,e,n,r={}){return w("typescript.provider.construct",()=>new kt(t,e,n),()=>({tsconfigs:n.length,reusedProjects:r.reusedProjects===!0}))}var kt=class{constructor(e,n,r){this.db=e;this.tsMorph=n;this.projects=r;this.workspacePackages=Sn(e.config.projectRoot),this.sourceFiles=Hn(e,r)}db;tsMorph;projects;language="typescript";importUsageCache=new Map;referencesCache=new Map;calleesCache=new Map;fileCalleesCache=new Map;signatureCache=new Map;definitionNodeCache=new Map;fileDefinitionNodeCache=new Map;indexedDefinitionLeafCache=new Map;compilerCheckerCache=new WeakMap;packageImportReferenceIndex=null;packageExportIndex=null;workspacePackages;sourceFiles;availability(){let e=Ke(this.projects);return{available:!0,tsconfigPath:this.projects[0]?.tsconfigPath,tsconfigPaths:this.projects.map(n=>n.tsconfigPath),projectScope:e?"file-closure":"project",...e?{note:"compiler projects are file-scoped: callees, signatures, and import usage are served per file; references and hierarchies are unavailable"}:{}}}attachBatchFiles(e){if(Ke(this.projects))for(let n of new Set(e.map(r=>r.relativePath)))this.sourceFiles.sourceFile(n)}assertProjectWide(){if(Ke(this.projects))throw new Error(kn)}importUsage(e){return F(this.importUsageCache,e,()=>{let n=this.sourceFiles.sourceFile(e);if(!n)return[];let r=Pi();return w("typescript.import-usage.file",()=>this.importUsageForSourceFile(e,n,r),()=>({file:e,...r}))})}referencesFor(e){return F(this.referencesCache,e.symbolId,()=>{let n=this.nodeForDefinition(e);return this.referencesForDefinitionNode(e,n)})}referencesForDefinitions(e,n={}){this.assertProjectWide();let r=new Map,i=L(),s=[];for(let u of e){let l=this.referencesCache.get(u.symbolId);l?r.set(u.symbolId,l):s.push(u)}if(s.length===0)return r;let o=s,a=n.exact?[]:s.filter(u=>!Gn(u));if(a.length>=xi){let u=this.referencesForDefinitionsBySymbolScan(a);for(let l of a){let p=u.get(l.symbolId)??[];this.referencesCache.set(l.symbolId,p),r.set(l.symbolId,p)}if(o=s.filter(l=>Gn(l)),o.length===0)return r}let c=new Map;for(let u of o){let l=c.get(u.relativePath);l?l.push(u):c.set(u.relativePath,[u])}let f=[];for(let[u,l]of c){let p=Qn();w("typescript.references-map.file",()=>{let m=this.definitionNodesForFile(u);for(let d of l){i&&(p.cacheMisses+=1);let y=m.get(d.symbolId)??null;i&&(y?p.nodeHits+=1:p.nodeMisses+=1);try{let S=this.referencesForDefinitionNode(d,y,i?p:void 0);this.referencesCache.set(d.symbolId,S),r.set(d.symbolId,S)}catch{p.preciseSearchFailures+=1,f.push(d)}}},()=>({relativePath:u,definitions:l.length,...Zn(p)}))}if(f.length>0){let u=this.referencesForDefinitionsBySymbolScan(f);for(let l of f){let p=u.get(l.symbolId)??[];this.referencesCache.set(l.symbolId,p),r.set(l.symbolId,p)}}return r}referenceFragmentsForFiles(e){this.assertProjectWide();let n=ee(this.db).filter(s=>ie(s.relativePath)),r=e.filter(s=>this.sourceFiles.sourceFile(s)!==null),i=this.referencesForDefinitionsBySymbolScan(n,r);return An(n,i,r)}referencesForDefinitionsBySymbolScan(e,n){let r=L(),i=Qn(),s=new Map,o=new Set(e.map(c=>c.symbolId)),a=new Map(e.map(c=>[c.symbolId,c]));for(let c of e)s.set(c.symbolId,[]);return w("typescript.references-map.inverted-scan",()=>{let c=r?x.now():0,f=n?this.packageImportReferencesForFiles(n):this.packageImportReferences();for(let S of e){let g=f.get(S.symbolId)??[];if(g.length>0){let I=s.get(S.symbolId)??[];I.push(...g),s.set(S.symbolId,I)}r&&(i.packageReferenceCount+=g.length)}r&&(i.packageRefsMs+=x.now()-c);let u=new Map,l=new Map,p=this.hierarchyTargetsForDefinitions(e),m=new Set(e.map(S=>S.leaf).filter(Boolean)),d=r?x.now():0;for(let S of n??this.sourceFiles.indexedTypeScriptLikeDocuments()){if(this.db.isIgnored(S))continue;let g=this.sourceFiles.sourceFile(S);g&&(r&&(i.scanFiles+=1),this.addReferencesFromSourceFileScan(g,S,o,a,p,m,u,l,s,r?i:void 0))}r&&(i.scanMs+=x.now()-d);let y=r?x.now():0;this.addHierarchyMemberReferences(e,s,r?i:void 0),r&&(i.hierarchyMs+=x.now()-y);for(let[S,g]of s){let I=se(g);s.set(S,I),r&&(i.referenceCount+=I.length)}},()=>({definitions:e.length,...Zn(i)})),s}addReferencesFromSourceFileScan(e,n,r,i,s,o,a,c,f,u){let l=this.compilerCheckerForSourceFile(e),p=e.compilerNode,m=Ei(e),d=y=>{if(this.tsMorph.ts.isIdentifier(y)){if(u&&(u.identifiers+=1),!o.has(y.text)&&!m.has(y.text)){this.tsMorph.ts.forEachChild(y,d);return}let S=this.compilerReferenceSymbol(l,y,u);if(S){let g;a.has(S)?g=a.get(S)??null:(g=this.referenceDefinitionFromCompilerSymbol(S),a.set(S,g)),u&&(g?u.targetHits+=1:u.targetMisses+=1);let I=F(c,S,()=>this.compilerSymbolKeys(S)),k=null,h=null,v=g&&r.has(g.symbolId)?i.get(g.symbolId):void 0;if(v&&(k=be(p,y),!Jn(v,n,k))){let C=p.getLineAndCharacterOfPosition(y.getStart(p));h={file:n,line:C.line,column:C.character};let D=f.get(v.symbolId)??[];D.push(h),f.set(v.symbolId,D),u&&(u.requestedHits+=1)}for(let C of I)for(let D of s.get(C)?.values()??[]){if(k??=be(p,y),Jn(D,n,k))continue;if(!h){let R=p.getLineAndCharacterOfPosition(y.getStart(p));h={file:n,line:R.line,column:R.character}}let b=f.get(D.symbolId)??[];b.push(h),f.set(D.symbolId,b),u&&(u.requestedHits+=1)}}}this.tsMorph.ts.forEachChild(y,d)};d(p)}hierarchyTargetsMemo=null;hierarchyTargetsForDefinitions(e){let n=_i(e);if(this.hierarchyTargetsMemo?.key===n)return this.hierarchyTargetsMemo.targets;let r=Z(this.db),i=`definitions:${n}`,s=!1,o=w("typescript.references-map.hierarchy-targets",()=>{if(r){let c=Xn.read(this.db,i,r);if(c&&c.projectRoot===this.db.config.projectRoot)return s=!0,Ni(c,e)}let a=this.computeHierarchyTargets(e);return r&&Xn.write(this.db,i,r,{version:rr,projectRoot:this.db.config.projectRoot,entries:[...a].map(([c,f])=>[c,[...f.values()].map(u=>u.symbol)])}),a},()=>({definitions:e.length,hit:s}));return this.hierarchyTargetsMemo={key:n,targets:o},o}computeHierarchyTargets(e){let n=new Map;for(let r of e){let i=this.nodeForDefinition(r),s=i?.compilerNode;if(!s||!this.isHierarchyMethod(s))continue;let o=s.parent;if(!this.isHierarchyContainer(o))continue;let a=this.compilerCheckerForSourceFile(i.getSourceFile()),c=a.getSymbolAtLocation(s.name);if(c)for(let f of this.hierarchyMemberSymbols(a,o,c))for(let u of this.compilerSymbolKeys(f)){let l=n.get(u)??new Map;l.set(r.symbolId,r),n.set(u,l)}}return n}hierarchyMemberSymbols(e,n,r){let i=new Set,s=new Set,o=(a,c,f)=>{if(!s.has(a)){s.add(a),i.add(c);for(let u of f){let l=u.getProperty(r.name);l&&o(u,l,this.hierarchyAncestorTypesForType(e,u))}}};return o(e.getTypeAtLocation(n),r,this.hierarchyAncestorTypes(e,n)),i}addHierarchyMemberReferences(e,n,r){let i=new Map;for(let s of e){let o=this.nodeForDefinition(s),a=o?.compilerNode;if(!a||!this.isHierarchyMethod(a))continue;let c=a.parent;if(!this.isHierarchyContainer(c))continue;let f=this.compilerCheckerForSourceFile(o.getSourceFile()),u=f.getSymbolAtLocation(a.name);if(!u)continue;let l=a.getSourceFile(),p=l.getLineAndCharacterOfPosition(a.name.getStart(l)),m={definition:s,location:{file:s.relativePath,line:p.line,column:p.character}},d=n.get(s.symbolId)??[];for(let S of this.hierarchyMemberSymbols(f,c,u))if(S!==u)for(let g of this.compilerSymbolLocations(S))d.push(g),r&&(r.hierarchyReferences+=1);n.set(s.symbolId,d);let y=this.hierarchyRootMemberSymbols(f,c,u);for(let S of y){let g=i.get(S)??new Map;g.set(s.symbolId,m),i.set(S,g)}r&&(r.hierarchyDefinitions+=1)}for(let s of i.values())if(!(s.size<2)){r&&(r.hierarchyFamilies+=1);for(let{definition:o}of s.values()){let a=n.get(o.symbolId)??[];for(let c of s.values())c.definition.symbolId!==o.symbolId&&(a.push(c.location),r&&(r.hierarchyReferences+=1));n.set(o.symbolId,a)}}}hierarchyRootMemberSymbols(e,n,r){let i=new Set,s=new Set,o=(a,c,f)=>{if(s.has(a))return;s.add(a);let u=!1;for(let l of f){let p=l.getProperty(r.name);p&&(u=!0,o(l,p,this.hierarchyAncestorTypesForType(e,l)))}if(!u)for(let l of this.compilerSymbolKeys(c))i.add(l)};return o(e.getTypeAtLocation(n),r,this.hierarchyAncestorTypes(e,n)),i}compilerSymbolKeys(e){return(e.declarations??[]).map(n=>{let r=n.getSourceFile();return`${r.fileName}\0${n.getStart(r)}\0${e.name}`})}compilerSymbolLocations(e){let n=[];for(let r of e.declarations??[]){let i=r.getSourceFile(),s=oe(this.db.config.projectRoot,i.fileName);if(!s)continue;let o=r.name,a=i.getLineAndCharacterOfPosition((o??r).getStart(i));n.push({file:s,line:a.line,column:a.character})}return n}baseTypes(e,n){try{return e.getBaseTypes(n)??[]}catch{return[]}}hierarchyAncestorTypes(e,n){let r=new Set(this.hierarchyAncestorTypesForType(e,e.getTypeAtLocation(n)));for(let i of n.heritageClauses??[])for(let s of i.types)r.add(e.getTypeAtLocation(s));return[...r]}hierarchyAncestorTypesForType(e,n){let r=new Set(this.baseTypes(e,n));for(let i of n.getSymbol()?.declarations??[])if(this.isHierarchyContainer(i))for(let s of i.heritageClauses??[])for(let o of s.types)r.add(e.getTypeAtLocation(o));return[...r]}isHierarchyMethod(e){return this.tsMorph.ts.isMethodDeclaration(e)||this.tsMorph.ts.isMethodSignature(e)}isHierarchyContainer(e){return this.tsMorph.ts.isClassDeclaration(e)||this.tsMorph.ts.isClassExpression(e)||this.tsMorph.ts.isInterfaceDeclaration(e)}compilerReferenceSymbol(e,n,r){r&&(r.symbolLookups+=1);let i=e.getSymbolAtLocation(n);if(i){if((i.flags&this.tsMorph.ts.SymbolFlags.Alias)===0)return i;try{return r&&(r.aliasResolutions+=1),e.getAliasedSymbol(i)}catch{return i}}}calleesFor(e){return F(this.calleesCache,e.symbolId,()=>F(this.fileCalleesCache,e.relativePath,()=>this.calleeMapForFile(e.relativePath)).get(e.symbolId)??[])}calleesForDefinitions(e){let n=new Map;this.attachBatchFiles(e);let r=new Map;for(let i of e){let s=r.get(i.relativePath);s?s.push(i):r.set(i.relativePath,[i])}for(let[i,s]of r){let o=this.fileCalleesCache.get(i),a=new Set(s.map(f=>f.symbolId)),c=o??this.calleeMapForFile(i,a);for(let f of s){let u=c.get(f.symbolId)??[];this.calleesCache.set(f.symbolId,u),n.set(f.symbolId,u)}}return n}calleeCoverageForDefinitions(e){this.attachBatchFiles(e);let n=new Map,r=new Map;for(let i of e){let s=r.get(i.relativePath);s?s.push(i):r.set(i.relativePath,[i]),n.set(i.symbolId,{callSites:0,resolvedInRepository:0,resolvedExternal:0,unresolved:0})}for(let[i,s]of r){let o=this.sourceFiles.sourceFile(i);if(!o)continue;let a=this.compilerCheckerForSourceFile(o),c=o.compilerNode,f=new Map,u=l=>{if(this.tsMorph.ts.isCallExpression(l)||this.tsMorph.ts.isNewExpression(l)||er(this.tsMorph.ts,l)){let p=Yn(s,be(c,l)),m=p?n.get(p.symbolId):void 0;if(m){m.callSites+=1;let d=this.tsMorph.ts.isJsxOpeningElement(l)||this.tsMorph.ts.isJsxSelfClosingElement(l),y=d&&!this.tsMorph.ts.isJsxNamespacedName(l.tagName)?l.tagName:d?null:l.expression,S=y?this.compilerSymbolForExpression(a,y):void 0;if(!S)m.unresolved+=1;else{let g=f.get(S);g===void 0&&(g=this.definitionFromCompilerSymbol(S),f.set(S,g)),g?m.resolvedInRepository+=1:m.resolvedExternal+=1}}}this.tsMorph.ts.forEachChild(l,u)};u(c)}return n}referencesForDefinitionNode(e,n,r){let i=r?x.now():0,s=this.packageImportReferencesForDefinition(e);if(r&&(r.packageRefsMs+=x.now()-i,r.packageReferenceCount+=s.length),!n)return s;let o=r?x.now():0,a=Un(n,e,s,this.db.config.projectRoot);return r&&(r.semanticRefsMs+=x.now()-o,r.referenceCount+=a.length),a}signatureFor(e){return F(this.signatureCache,e.symbolId,()=>{let n=this.nodeForDefinition(e);if(!n||!this.tsMorph.Node.isFunctionDeclaration(n)&&!this.tsMorph.Node.isMethodDeclaration(n)&&!this.tsMorph.Node.isArrowFunction(n)&&!this.tsMorph.Node.isFunctionExpression(n)&&!this.tsMorph.Node.isConstructorDeclaration(n))return null;let r=n.getType().getCallSignatures()[0];if(!r)return null;let i=r.getParameters().map(o=>{let a=o.getDeclarations()[0],c=a?o.getTypeAtLocation(a).getText(a):o.getValueDeclaration()?.getType().getText()??"unknown";return tr(c)}),s=r.getReturnType().getText(n);return`(${i.join(",")})=>${tr(s)}`})}importUsageForSourceFile(e,n,r){let i=[],s=new Map;for(let o of n.getImportDeclarations()){r.declarations+=1;let a=yt(this.db,e,o.getModuleSpecifierValue()),c=o.getImportClause()?.isTypeOnly()??!1;for(let f of Et(o)){r.entries+=1;let u=c?null:f.identifier?.getSymbol()?.compilerSymbol??null;!c&&f.identifier&&(u?r.bindingSymbols+=1:r.missingBindingSymbols+=1);let l={sourcePath:a,entry:f,typeOnlyDeclaration:c,bindingSymbol:u,references:[]};if(i.push(l),c||!f.localName||!u)continue;let p=s.get(f.localName);p?p.push(l):s.set(f.localName,[l])}}return s.size>0&&n.forEachDescendant(o=>{if(o.getKindName()!=="Identifier")return;let a=s.get(o.getText());if(!a||wi(o))return;r.scannedIdentifiers+=1;let c=o.getSymbol()?.compilerSymbol;if(r.symbolLookups+=1,!!c){for(let f of a)if(f.bindingSymbol===c){f.references.push({location:$e(o,this.db.config.projectRoot),node:o}),r.matchedReferences+=1;break}}}),i.map(o=>o.typeOnlyDeclaration?Ti(e,o.sourcePath,o.entry):o.entry.identifier&&!o.bindingSymbol?(r.fallbackEntries+=1,this.valueImportUsageForEntry(e,o.sourcePath,o.entry)):this.valueImportUsageFromLocations(e,o.sourcePath,o.entry,o.references))}valueImportUsageForEntry(e,n,r){let i=r.identifier?r.identifier.findReferences():[],s=[];for(let o of i)for(let a of Bn(o,e,r.identifier,this.db.config.projectRoot))s.push(a);return this.valueImportUsageFromLocations(e,n,r,s)}valueImportUsageFromLocations(e,n,r,i){let s=i.some(c=>!It(c.node)),o=i.some(c=>It(c.node)),a=r.isTypeOnly;return{importer:e,sourcePath:n,importedName:r.importedName,localName:r.localName,kind:r.kind,isTypeOnly:a,isUsed:a||i.length>0,isTypeUsed:a||o,isValueUsed:s,references:i.map(c=>c.location)}}packageImportReferencesForDefinition(e){return this.packageImportReferences().get(e.symbolId)??[]}packageImportReferencesForFiles(e){let n=new Map,r=new Set;for(let s of e){let o=this.sourceFiles.sourceFile(s);if(o)for(let a of o.getImportDeclarations()){let c=Tt(this.workspacePackages,a.getModuleSpecifierValue());c&&r.add(c)}}if(r.size===0)return n;let i=this.packageExportsForNames(r);for(let s of e)this.addPackageImportReferencesForDocument(n,i,s);for(let[s,o]of n)n.set(s,se(o));return n}packageImportReferences(){if(this.packageImportReferenceIndex)return this.packageImportReferenceIndex;let e=new Map,n=this.packageExports();for(let r of this.sourceFiles.indexedTypeScriptLikeDocuments())this.addPackageImportReferencesForDocument(e,n,r);for(let[r,i]of e)e.set(r,se(i));return this.packageImportReferenceIndex=e,e}addPackageImportReferencesForDocument(e,n,r){if(this.db.isIgnored(r))return;let i=this.sourceFiles.sourceFileMatch(r);if(i)for(let s of i.sourceFile.getImportDeclarations())this.addPackageImportReferencesForDeclaration(e,n,r,s)}addPackageImportReferencesForDeclaration(e,n,r,i){let s=Tt(this.workspacePackages,i.getModuleSpecifierValue());if(!s)return;let o=n.get(s);if(o)for(let a of Et(i)){if(a.kind!=="named"||!a.identifier)continue;let c=o.get(a.importedName);if(!c||c.size===0)continue;let f=qn(a.identifier,r,this.db.config.projectRoot);f.length>0&&Li(e,c,f)}}packageExports(){return this.packageExportIndex?this.packageExportIndex:(this.packageExportIndex=this.packageExportsForNames(new Set(this.workspacePackages.map(e=>e.name))),this.packageExportIndex)}packageExportsForNames(e){let n=new Map;for(let r of this.workspacePackages){if(!e.has(r.name))continue;let i=new Map;for(let s of $n(r))this.collectPackageExports(r,s,i,new Set);i.size>0&&n.set(r.name,i)}return n}collectPackageExports(e,n,r,i){if(i.has(n))return;i.add(n);let s=this.sourceFiles.sourceFile(n);if(s)for(let o of s.getExportDeclarations()){let a=o.getModuleSpecifierValue(),c=a?yt(this.db,n,a):n;if(!c||!c.startsWith(`${e.relativeDir}/src/`))continue;let f=o.getNamedExports();if(f.length===0){if(o.isNamespaceExport())continue;this.collectPackageExports(e,c,r,i);continue}for(let u of f){let l=u.getNameNode().getText(),p=u.getAliasNode()?.getText()??l,m=this.indexedDefinitionByLeaf(c,l);if(!m)continue;let d=r.get(p);d||(d=new Set,r.set(p,d)),d.add(m.symbolId)}}}indexedDefinitionByLeaf(e,n){return F(this.indexedDefinitionLeafCache,e,()=>zn(this.db,e)).get(n)??null}nodeForDefinition(e){return F(this.definitionNodeCache,e.symbolId,()=>this.definitionNodesForFile(e.relativePath).get(e.symbolId)??null)}definitionNodesForFile(e){return F(this.fileDefinitionNodeCache,e,()=>{let n=this.sourceFiles.sourceFile(e);return n?jn(this.tsMorph,this.db,n,e):new Map})}referenceDefinitionFromCompilerSymbol(e){return this.definitionFromCompilerSymbol(e,void 0,!0)}definitionFromCompilerSymbol(e,n,r=!1){let i=e.name,s=n?x.now():0,o=e.declarations??[];n&&(n.declarationsMs+=x.now()-s,n.declarationChecks+=o.length);for(let a of o){let c=n?x.now():0,f=a.getSourceFile(),u=oe(this.db.config.projectRoot,f.fileName),l=f.getLineAndCharacterOfPosition(a.getStart(f)).line;if(n&&(n.declarationLocationMs+=x.now()-c),!u||this.db.isIgnored(u))continue;let p=n?x.now():0,m=this.compilerDeclarationName(a),d=r?Dt(this.db,u,l,i)??(m&&m!==i?Dt(this.db,u,l,m):null):Wn(this.db,u,l,i);if(n&&(n.indexedLookupMs+=x.now()-p),d)return{symbolId:d.symbolId,symbol:d.symbol,file:d.relativePath,line:d.startLine}}return null}compilerDeclarationName(e){let n=e.name;return n&&this.tsMorph.ts.isIdentifier(n)?n.text:null}calleeMapForFile(e,n){let r=L(),i=0,s=0,o=0,a=0,c=0,f=0,u=0,l=0,p=r?Ai():void 0;return w("typescript.callee-map.file",()=>{let m=r?x.now():0,d=this.sourceFiles.sourceFile(e);if(r&&(c=Math.round(x.now()-m)),!d)return new Map;let y=r?x.now():0,S=z(this.db,e).sort((b,R)=>b.startLine-R.startLine||R.endLine-b.endLine);if(r&&(f=Math.round(x.now()-y)),i=S.length,S.length===0)return new Map;let g=new Map,I=r?x.now():0,k=this.compilerCheckerForSourceFile(d),h=d.compilerNode;r&&(u=Math.round(x.now()-I));let v=new Map,C=b=>{if(this.tsMorph.ts.isCallExpression(b)||this.tsMorph.ts.isNewExpression(b)||er(this.tsMorph.ts,b)){r&&(s+=1);let R=this.semanticCalleeForCallNode(k,h,S,b,v,n,p);R&&(r&&(o+=1),ki(g,R.callerId,R.target))}this.tsMorph.ts.forEachChild(b,C)},D=r?x.now():0;C(h),r&&(l=Math.round(x.now()-D));for(let[b,R]of g)g.set(b,Oi(R));return a=g.size,g},()=>({relativePath:e,definitions:i,callNodes:s,resolvedCallees:o,outputRows:a,requestedDefinitions:n?.size??i,sourceFileLookupMs:c,definitionsLoadMs:f,checkerLookupMs:u,traversalMs:l,...p?Fi(p):{}}))}semanticCalleeForCallNode(e,n,r,i,s,o,a){let c=a?x.now():0,f=Yn(r,be(n,i));if(a&&(a.callerLookupMs+=x.now()-c),!f)return null;if(o&&!o.has(f.symbolId))return a&&(a.skippedUnrequestedCallers+=1),null;let u=this.tsMorph.ts.isJsxOpeningElement(i)||this.tsMorph.ts.isJsxSelfClosingElement(i);if(u&&this.tsMorph.ts.isJsxNamespacedName(i.tagName))return null;let l=u?i.tagName:i.expression,p=this.compilerSymbolForExpression(e,l,a),m=null;if(p)if(a&&(a.targetSymbolHits+=1),s.has(p))a&&(a.compilerSymbolCacheHits+=1),m=s.get(p)??null;else{a&&(a.compilerSymbolCacheMisses+=1);let d=a?x.now():0;m=this.definitionFromCompilerSymbol(p,a),a&&(a.targetLookupMs+=x.now()-d),s.set(p,m)}else a&&(a.targetMisses+=1);return m?{callerId:f.symbolId,target:{symbol:m.symbol,file:m.file,line:m.line,callsiteLine:be(n,i),...u?{kind:"jsx-render"}:{}}}:null}compilerSymbolForExpression(e,n,r){let i=r?x.now():0,s=e.getSymbolAtLocation(n);if(r&&(r.expressionSymbolMs+=x.now()-i),s){if((s.flags&this.tsMorph.ts.SymbolFlags.Alias)===0)return s;try{return e.getAliasedSymbol(s)}catch{return s}}r&&(r.typeFallbacks+=1);let o=r?x.now():0,a=e.getTypeAtLocation(n).getSymbol();return r&&(r.typeSymbolMs+=x.now()-o),a}compilerCheckerForSourceFile(e){let n=e.getProject(),r=this.compilerCheckerCache.get(n);return r||(r=n.getTypeChecker().compilerObject,this.compilerCheckerCache.set(n,r)),r}};function Et(t){let e=[],n=t.getDefaultImport();n&&e.push({identifier:n,importedName:"default",localName:n.getText(),kind:"default",isTypeOnly:t.getImportClause()?.isTypeOnly()??!1});let r=t.getNamespaceImport();r&&e.push({identifier:r,importedName:"*",localName:r.getText(),kind:"namespace",isTypeOnly:t.getImportClause()?.isTypeOnly()??!1});for(let i of t.getNamedImports()){let s=i.getNameNode(),a=i.getAliasNode()??(s.getKindName()==="Identifier"?s:null);e.push({identifier:a,importedName:s.getText(),localName:a?.getText()??s.getText(),kind:"named",isTypeOnly:i.isTypeOnly()||(t.getImportClause()?.isTypeOnly()??!1)})}return e.length===0&&e.push({identifier:null,importedName:"*",localName:null,kind:"side-effect",isTypeOnly:!1}),e}function Ti(t,e,n){return{importer:t,sourcePath:e,importedName:n.importedName,localName:n.localName,kind:n.kind,isTypeOnly:!0,isUsed:!0,isTypeUsed:!0,isValueUsed:!1,references:[]}}function Pi(){return{declarations:0,entries:0,bindingSymbols:0,missingBindingSymbols:0,scannedIdentifiers:0,symbolLookups:0,matchedReferences:0,fallbackEntries:0}}function wi(t){for(let e=t;e;e=e.getParent())if(e.getKindName()==="ImportDeclaration")return!0;return!1}function ki(t,e,n){let r=t.get(e);r||(r=[],t.set(e,r)),r.push(n)}function Ei(t){let e=new Set;for(let n of t.getImportDeclarations())for(let r of Et(n))r.localName&&e.add(r.localName);return e}function Yn(t,e){let n=null;for(let r of t)e<r.startLine||e>r.endLine||(!n||r.startLine>=n.startLine)&&(n=r);return n}function be(t,e){return t.getLineAndCharacterOfPosition(e.getStart(t)).line}function Jn(t,e,n){return e===t.relativePath&&n>=t.startLine&&n<=t.endLine}function Gn(t){return t.symbol.includes("#")?Ue(t.symbol)==="type"&&t.relativePath.endsWith(".d.ts"):!1}function Ai(){return{callerLookupMs:0,expressionSymbolMs:0,typeSymbolMs:0,targetLookupMs:0,declarationsMs:0,declarationLocationMs:0,indexedLookupMs:0,compilerSymbolCacheHits:0,compilerSymbolCacheMisses:0,targetSymbolHits:0,targetMisses:0,typeFallbacks:0,declarationChecks:0,skippedUnrequestedCallers:0}}function Fi(t){return{...t,callerLookupMs:Math.round(t.callerLookupMs),expressionSymbolMs:Math.round(t.expressionSymbolMs),typeSymbolMs:Math.round(t.typeSymbolMs),targetLookupMs:Math.round(t.targetLookupMs),declarationsMs:Math.round(t.declarationsMs),declarationLocationMs:Math.round(t.declarationLocationMs),indexedLookupMs:Math.round(t.indexedLookupMs)}}function Qn(){return{cacheHits:0,cacheMisses:0,nodeHits:0,nodeMisses:0,scanFiles:0,identifiers:0,symbolLookups:0,aliasResolutions:0,targetHits:0,targetMisses:0,requestedHits:0,scanMs:0,packageRefsMs:0,semanticRefsMs:0,packageReferenceCount:0,referenceCount:0,preciseSearchFailures:0,hierarchyDefinitions:0,hierarchyFamilies:0,hierarchyReferences:0,hierarchyMs:0}}var rr=1,Xn=me({kind:"typescript-hierarchy-targets",invalidation:$("typescript-hierarchy-targets"),serialize:t=>JSON.stringify(t),deserialize:t=>{try{let e=JSON.parse(t);return e.version!==rr||typeof e.projectRoot!="string"||!Array.isArray(e.entries)?null:e}catch{return null}}});function Ni(t,e){let n=new Map(e.map(i=>[i.symbol,i])),r=new Map;for(let[i,s]of t.entries){let o=new Map;for(let a of s){let c=n.get(a);c&&o.set(c.symbolId,c)}o.size>0&&r.set(i,o)}return r}function _i(t){let e=2166136261;for(let n of t)e^=n.symbolId,e=Math.imul(e,16777619)>>>0;return`${t.length}:${e.toString(16)}`}function Zn(t){return{...t,scanMs:Math.round(t.scanMs),packageRefsMs:Math.round(t.packageRefsMs),semanticRefsMs:Math.round(t.semanticRefsMs),hierarchyMs:Math.round(t.hierarchyMs)}}function Li(t,e,n){for(let r of e){let i=t.get(r)??[];i.push(...n),t.set(r,i)}}function er(t,e){if(!t.isJsxOpeningElement(e)&&!t.isJsxSelfClosingElement(e))return!1;let n=e.tagName;return t.isPropertyAccessExpression(n)?!0:t.isIdentifier(n)?/^[A-Z]/.test(n.text):!1}function Oi(t){let e=new Set,n=[];for(let r of t){let i=`${r.symbol}|${r.file}|${r.line}|${r.callsiteLine??""}`;e.has(i)||(e.add(i),n.push(r))}return n}function tr(t){return t.replace(/\s+/g," ").replace(/\bimport\("[^"]+"\)\./g,"").trim()}import{join as Ui}from"path";var Ye=3;var Bi="typescript-semantic";function ir(t){let e=Ui(t,Bi),n=Be(e);return{...n,requestDir:n.legacyRequestDir}}var Wi=12e4,zi=5;function cr(t,e,n={}){let r=n.requester??new Ft(t,n),i=null,s=null,o=process.env.SCIP_QUERY_SKIP_WATCH_SERVICE==="1",a=null,c=()=>(i??=nr(t,e),i),f=(d,y,S)=>(o=!0,Yi(t)?y():(a=d instanceof Error?d.message:String(d),console.error(`TypeScript semantic service request failed (${a}); semantic enrichment is disabled for the rest of this run because the index is too large for an in-process compiler.`),S())),u=(d,y,S,g=S)=>{if(a!==null)return g();if(o)return S();try{return y(r.request(d))}catch(I){return sr(I)?g():f(I,S,g)}},l=(d,y,S,g)=>{if(a!==null)return new Map;if(o)return g();let I=k=>{try{return S(r.request(y(k)))}catch(h){if(!Ki(h))throw h;let v=Hi(k);if(!v)throw h;return new Map([...I(v[0]),...I(v[1])])}};try{return I(d)}catch(k){return sr(k)?new Map:f(k,g,()=>new Map)}},p=(d,y)=>l(d,S=>({kind:"references",definitions:[...S],...y?.exact?{exact:!0}:{}}),S=>At(S),()=>c().referencesForDefinitions?.(d,y)??new Map(d.map(S=>[S.symbolId,c().referencesFor(S)]))),m=d=>l(d,y=>({kind:"callees",definitions:[...y]}),y=>At(y),()=>c().calleesForDefinitions?.(d)??new Map(d.map(y=>[y.symbolId,c().calleesFor(y)])));return{language:"typescript",availability:()=>(s??=u({kind:"availability"},Xi,()=>c().availability(),()=>({available:!1,reason:`TypeScript semantic service declined: ${a??"unknown"}`})),s),importUsage:d=>u({kind:"import-usage",file:d},y=>y,()=>c().importUsage(d),()=>[]),referencesFor:d=>p([d]).get(d.symbolId)??[],referencesForDefinitions:p,referenceFragmentsForFiles:d=>u({kind:"reference-fragments",files:[...d]},y=>Qi(y),()=>c().referenceFragmentsForFiles?.(d)??new Map,()=>new Map),calleesFor:d=>m([d]).get(d.symbolId)??[],calleesForDefinitions:m,calleeCoverageForDefinitions:d=>l(d,y=>({kind:"callee-coverage",definitions:[...y]}),y=>At(y),()=>c().calleeCoverageForDefinitions?.(d)??new Map),signatureFor:d=>u({kind:"signature",definition:d},Zi,()=>c().signatureFor(d),()=>null),dispose:()=>i?.dispose?.()}}function Ki(t){let e=t instanceof Error?t.message:String(t);return/memory limit|heap out of memory|worker terminated|worker failed/iu.test(e)}function Hi(t){let e=[...new Set(t.map(r=>r.relativePath))].sort();if(e.length<2)return null;let n=new Set(e.slice(0,Math.ceil(e.length/2)));return[t.filter(r=>n.has(r.relativePath)),t.filter(r=>!n.has(r.relativePath))]}function sr(t){let e=t instanceof Error?t.message:String(t);return e.includes("invalid mailbox request")||e.includes("Unhandled TypeScript semantic request")||e.includes("compiler project is file-scoped")}var $i=2500,Vi=25e3,or=new WeakMap;function Yi(t){let e=or.get(t);if(e!==void 0)return e;let n=Ji(t);return or.set(t,n),n}function Ji(t){try{let e=t.get("SELECT (SELECT count(*) FROM documents) AS documents, (SELECT count(*) FROM global_symbols) AS symbols");return!e||e.documents<$i&&e.symbols<Vi}catch{return!0}}var Ft=class{constructor(e,n={}){this.db=e;this.runtime=n.runtime??ur,this.timeoutMs=n.timeoutMs??es(),this.mailboxLimits=n.mailboxLimits??{},this.cacheDir=ar(e.config.dbPath),this.projectRoot=pt(e.config.projectRoot)}db;runtime;timeoutMs;cacheDir;projectRoot;mailboxLimits;request(e){let n=gt(this.cacheDir),r=ir(this.cacheDir),i=je(n.statePath);if(!Nt(i,this.projectRoot,this.runtime))throw new Error("Compatible TypeScript semantic service is not running.");let s=this.db.generation.identity;if(!s)throw new Error("Published TypeScript generation identity is unavailable.");let o=this.runtime.now(),a=o+this.timeoutMs,c=(this.runtime.monotonicNow??j)()+this.timeoutMs,f=Rn(),u=ne("typescript-semantic-v3",{generation:s,profileEnvironment:f,request:e}),l=re(u),p=qe(r,{mailboxVersion:Y,operationKey:u,clientId:this.runtime.randomId(),enqueuedAtMs:o,deadlineAtMs:a,protocolVersion:Ye,id:l,generation:s,profileEnvironment:f,request:e},{nowMs:o,limits:this.mailboxLimits});for(;(this.runtime.monotonicNow??j)()<=c;){if(ji(p.responsePath))return Gi(q(p.responsePath,{maxBytes:this.mailboxLimits.maxItemBytes??64*1024*1024,inputKind:"TypeScript semantic mailbox response"}),l,s,u);let m=je(n.statePath);if(!Nt(m,this.projectRoot,this.runtime))throw new Error("TypeScript semantic service stopped while processing a request.");this.runtime.sleep(zi)}throw new Error(`TypeScript semantic service timed out after ${this.timeoutMs}ms.`)}};function lr(t){if(process.env.SCIP_QUERY_SKIP_WATCH_SERVICE==="1")return!1;try{let e=je(gt(ar(t.config.dbPath)).statePath);return Nt(e,pt(t.config.projectRoot),ur)}catch{return!1}}function Nt(t,e,n){let r=t?.processIdentity?n.readProcessIdentity?.(t.pid):null;return t!==null&&t.projectRoot===e&&t.typescriptSemantic?.protocolVersion===Ye&&n.isProcessAlive(t.pid)&&(!t.processIdentity||r!=null&&ke(t.processIdentity,r))}function Gi(t,e,n,r){let i=JSON.parse(t);if(i.protocolVersion!==Ye||i.id!==e||i.operationKey!==r||i.ok===!0&&i.generation!==n)throw new Error("TypeScript semantic service wrote an incompatible response.");if(i.ok===!0)return i.response;throw new Error(typeof i.error=="string"?i.error:"TypeScript semantic service request failed.")}function At(t){if(!Array.isArray(t))throw new Error("TypeScript semantic service wrote an invalid numeric map.");return new Map(t)}function Qi(t){if(!Array.isArray(t))throw new Error("TypeScript semantic service wrote an invalid string map.");return new Map(t)}function Xi(t){let e=Nn(t);if(!e)throw new Error("TypeScript semantic service wrote invalid availability.");return e}function Zi(t){if(t!==null&&typeof t!="string")throw new Error("TypeScript semantic service wrote an invalid signature.");return t}function es(){let t=Number(process.env.SCIP_TYPESCRIPT_SEMANTIC_TIMEOUT_MS);return Number.isInteger(t)&&t>0?t:Wi}var ur={now:Date.now,monotonicNow:j,randomId:qi,sleep(t){let e=new Int32Array(new SharedArrayBuffer(4));Atomics.wait(e,0,0,t)},isProcessAlive:Ne,readProcessIdentity:Fe};function fr(t){let e=new Map,n=ns(t),r=new Map;return i=>{let s=ts(i),o=r.get(s);if(o!==void 0)return o;if(!n.has(i.file))return r.set(s,i.symbol),i.symbol;let a=e.get(i.file);a||(a=rs(z(t,i.file)),e.set(i.file,a));let c=is(a,i);return r.set(s,c),c}}function ts(t){return`${t.file}\0${t.symbol}\0${t.line}`}function ns(t){return new Set(t.all("SELECT relative_path FROM documents").map(e=>e.relative_path))}function rs(t){let e=new Map,n=new Map;for(let r of t){let i=e.get(r.leaf);i?i.push(r):e.set(r.leaf,[r]);let s=n.get(r.startLine);s?s.push(r):n.set(r.startLine,[r])}return{definitions:t,byLeaf:e,byStartLine:n}}function is(t,e){if(t.definitions.length===0)return e.symbol;let n=as(e.symbol),r=ss(t.byLeaf,n),i=os(r,e.line);if(i)return i.symbol;let s=t.byStartLine.get(e.line)??[];return s.length===1?s[0].symbol:e.symbol}function ss(t,e){let n=[],r=new Set;for(let i of e)for(let s of t.get(i)??[])r.has(s.symbolId)||(r.add(s.symbolId),n.push(s));return n}function os(t,e){let n=null;for(let r of t)if(!(r.startLine>e||r.endLine<e)){if(r.startLine===e)return r;(!n||r.endLine-r.startLine<n.endLine-n.startLine)&&(n=r)}return n}function as(t){let e=new Set([t]),r=t.split(/::|\.|#/).filter(Boolean).at(-1);return r&&e.add(r),e}function pr(t,e){let r=Mn(t,e).map(i=>ls(e,i));return{usage:r,positions:us(t,e,r)}}function dr(t,e){return{importUsage(n){let r=t.importUsageFacts(n);if(!e||r.positions.length===0)return r.usage;let i=e.importDefinitionsForFile(n,r.positions);return i.available?cs(r.usage,i.sourcePaths):r.usage}}}function cs(t,e){return t.map((n,r)=>{let i=e.get(String(r));return i?{...n,sourcePath:i}:n})}function ls(t,e){let n=e.isTypeOnly===!0,r=e.kind==="side-effect"||n||e.used;return{importer:t,sourcePath:e.sourcePath,importedName:e.importedName,localName:e.localName,kind:e.kind,isTypeOnly:n,isUsed:r,isTypeUsed:n,isValueUsed:e.kind==="side-effect"||!n&&e.used,references:[]}}function us(t,e,n){let r=hn(t,e);if(!r)return[];let i=fs(r.rootNode),s=new Map;for(let a of i){let c=s.get(Lt(a.importedName,a.localName));c?c.push(a.position):s.set(Lt(a.importedName,a.localName),[a.position])}let o=[];return n.forEach((a,c)=>{let f=s.get(Lt(a.importedName,a.localName??a.importedName))?.shift();f&&o.push({...f,id:String(c),file:e})}),o}function fs(t){let e=[];for(let n of t.descendantsOfType("use_declaration")){let r=n.namedChildren.find(i=>i.type!=="visibility_modifier");r&&e.push(...Je(r,""))}return e.filter(n=>n.importedName!=="*")}function Je(t,e){switch(t.type){case"identifier":case"super":case"self":case"crate":return[{importedName:t.text,localName:t.text,position:_t(t,t.text)}];case"scoped_identifier":{let n=t.text.split("::").pop()??t.text;return[{importedName:n,localName:n,position:_t(t,n)}]}case"scoped_use_list":{let n=t.namedChild(0),r=t.namedChild(1);if(!n||!r)return[];let i=In(e,n.text);return r.namedChildren.flatMap(s=>Je(s,i))}case"use_list":return t.namedChildren.flatMap(n=>Je(n,e));case"use_as_clause":{let n=t.namedChild(0),r=t.namedChild(1);return!n||!r?[]:Je(n,e).map(i=>({...i,localName:r.text}))}case"use_wildcard":{let n=t.namedChild(0),r="*";return[{importedName:r,localName:r,position:_t(n??t,r)}]}default:return[]}}function _t(t,e){let n=Math.max(0,t.text.lastIndexOf(e));return{id:"",file:"",line:t.startPosition.row,column:t.startPosition.column+n+ps(e)}}function ps(t){return Math.max(0,Math.min(t.length-1,1))}function Lt(t,e){return`${t}\0${e}`}import{spawnSync as Vt}from"child_process";import{existsSync as Yt}from"fs";import{fileURLToPath as yo}from"url";function Ge(t){let e=Tn(Cn,t),n=e.runnable;return n?{available:!0,dependencyAvailable:n,resolvedBinary:e.resolvedBinary??void 0,note:"rust-analyzer semantic reference queries are enabled."}:{available:!1,dependencyAvailable:n,resolvedBinary:e.resolvedBinary??void 0,reason:"rust-analyzer is not runnable; Rust semantic checks will use SCIP/source evidence only."}}import{existsSync as Qs,mkdtempSync as Or,rmSync as Wt}from"fs";import{tmpdir as Ur}from"os";import{join as zt}from"path";import{fileURLToPath as rt,pathToFileURL as Xs}from"url";import{SHARE_ENV as Zs,Worker as eo}from"worker_threads";function K(t,e,n=new Set){let r=new Map;for(let i of t)n.has(i.symbolId)||r.set(i.symbolId,e.get(i.symbolId)??[]);return r}function J(t,e,n){let r=te(process.env.SCIP_RUST_SEMANTIC_BATCH_TIMEOUT_MS)??0;if(r>0)return r;let i=Math.max(1,Math.ceil(t/Math.max(1,n)));return Math.max(12e4,3e4+i*e)}import{spawn as Es}from"child_process";import{createHash as As,randomUUID as Fs}from"crypto";import{existsSync as Pr,realpathSync as Ns,rmSync as _s}from"fs";import{tmpdir as Ls}from"os";import{resolve as ce}from"path";import{execFileSync as hs}from"child_process";import{existsSync as ds}from"fs";import{deserializeSCIP as ms,SymbolRole as ys}from"@c4312/scip";import{realpathSync as wc}from"fs";import{basename as Ec,dirname as Ac,join as Fc,relative as Nc,sep as _c}from"path";import{fileURLToPath as Oc,pathToFileURL as Uc}from"url";function Qe(t){let e=new Map;for(let n of t)e.set(`${n.file}\0${n.line}\0${n.column}`,n);return[...e.values()].sort((n,r)=>{let i=n.file.localeCompare(r.file);return i!==0?i:n.line!==r.line?n.line-r.line:n.column-r.column})}var Ot=new WeakMap,Ss="SCIP_RUST_SCIP_OCCURRENCE_REFERENCE_MODE";function mr(t,e){let n=new Map,r=Xe(),i=e.filter(o=>gr(o,r));if(i.length===0)return n;let s=Rr(t);if(!s)return n;for(let o of i){let a=Sr(s,o);a!==null&&n.set(o.symbolId,a)}return n}function yr(t,e){if(!gr(e,Xe()))return null;let n=Rr(t);return n?Sr(n,e):null}function Sr(t,e){return t.referencesBySymbol.get(e.symbol)??[]}function gr(t,e="safe"){if(!t.symbol.startsWith("rust-analyzer ")||!t.relativePath.endsWith(".rs")||Se(t.symbol)||/impl#\[[^\]]+\]\[Default\]default\(\)\.$/.test(t.symbol))return!1;if(e==="all")return!0;let n=Ue(t.symbol);if(n==="method")return!0;if(n!=="term")return!1;let r=vn(t.symbol);return"kind"in r?!1:!gs(r)}function gs(t){for(let e=0;e<t.descriptors.length-1;e+=1)if(t.descriptors[e]?.suffix==="type")return!0;return!1}function Rr(t){if(Ot.has(t))return Ot.get(t)??null;let e=Rs(t);return Ot.set(t,e),e}function Rs(t){if(!t.generation.indexPath||!ds(t.generation.indexPath))return null;try{let e=ms(Ae(t.generation.indexPath,{inputKind:"SCIP occurrence-reference index",maxBytes:Ee})),n=new Map;for(let r of e.documents??[]){let i=r.relativePath;if(!(!i||t.isIgnored(i)))for(let s of r.occurrences??[]){if(!s.symbol||(s.symbolRoles&ys.Definition)!==0)continue;let o=bs(i,s.range);if(!o)continue;let a=n.get(s.symbol)??[];a.push(o),n.set(s.symbol,a)}}for(let[r,i]of n)n.set(r,Qe(i));return{referencesBySymbol:n}}catch{return null}}function bs(t,e){if(e.length<3)return null;let n=e[0],r=e[1];return!Number.isInteger(n)||!Number.isInteger(r)?null:{file:t,line:n,column:r}}function Xe(){return process.env[Ss]==="all"?"all":"safe"}var br=new Map;function Ut(t){let n=Ge(t).resolvedBinary??null;return{engine:"rust-analyzer",resolvedBinary:n,version:n?Is(t,n):"unavailable"}}function Bt(t){return{...Ut(t),scipOccurrenceReferenceMode:Xe()}}function Is(t,e){let n=`${t}\0${e}`,r=br.get(n);if(r)return r;let i;try{i=hs(e,["--version"],{cwd:t,encoding:"utf8",stdio:["ignore","pipe","ignore"],timeout:2e3}).trim()}catch{i="unknown"}return br.set(n,i),i}import{createHash as Ms}from"crypto";var vs=new Set(["Cargo.lock","Cargo.toml","rust-project.json","rust-toolchain","rust-toolchain.toml"]);function hr(t){let e=fn(t,{includePath:Ds});return Ms("sha256").update(JSON.stringify(e)).digest("hex")}function Ds(t){let e=t.replaceAll("\\","/"),n=e.split("/").at(-1)??e;return e.endsWith(".rs")||vs.has(n)?!0:e===".cargo/config"||e===".cargo/config.toml"||e.endsWith("/.cargo/config")||e.endsWith("/.cargo/config.toml")}import{createHash as xs}from"crypto";import{resolve as Cs}from"path";var ae=3;function jt(t){return xs("sha256").update(ge({kind:"scip-query-durable-rust-mailbox",protocolVersion:ae,sessionDir:Cs(t)})).digest("hex")}function vr(t,e){return pe(t)?t.protocolVersion!==ae?Mr(t.protocolVersion===void 0?"helper wrote a prior uncorrelated response protocol":`helper wrote unsupported response protocol ${String(t.protocolVersion)}`):t.mailboxVersion!==Y||t.id!==e.requestId||t.operationKey!==e.operationKey||t.sessionIdentity!==e.sessionIdentity||t.deadlineAtMs!==e.deadlineAtMs?Mr("helper wrote an incompatible response identity"):typeof t.completedAtMs!="number"||!Number.isFinite(t.completedAtMs)||t.completedAtMs>e.deadlineAtMs||e.nowMs>e.deadlineAtMs?{ok:!1,code:"expired-request",error:"helper response arrived after the durable request deadline"}:t.ok===!1?typeof t.error!="string"||!ks(t.errorCode)?qt("helper wrote an invalid rejection response"):{ok:!1,code:t.errorCode,error:t.error}:t.ok!==!0||t.session!=="created"&&t.session!=="reused"&&t.session!=="invalidated"||!Ts(t.response,e.requestKind)?qt("helper wrote an invalid success response"):{ok:!0,session:t.session,response:t.response}:qt("helper wrote an invalid response object")}function Ts(t,e){return!pe(t)||typeof t.available!="boolean"||t.available===!1&&(typeof t.reason!="string"||t.reason.length===0)||t.available===!0&&t.reason!==void 0?!1:e==="import-definitions"?Array.isArray(t.sourcePaths)&&t.sourcePaths.every(n=>Array.isArray(n)&&n.length===2&&typeof n[0]=="string"&&(n[1]===null||typeof n[1]=="string")):Ir(t.references,Ps)&&(t.incompleteReferenceSymbolIds===void 0||Array.isArray(t.incompleteReferenceSymbolIds)&&t.incompleteReferenceSymbolIds.every(n=>Number.isSafeInteger(n)))&&(t.callees===void 0||Ir(t.callees,ws))&&(t.signatures===void 0||Array.isArray(t.signatures)&&t.signatures.every(n=>Array.isArray(n)&&n.length===2&&Number.isSafeInteger(n[0])&&(n[1]===null||typeof n[1]=="string")))}function Ir(t,e){return Array.isArray(t)&&t.every(n=>Array.isArray(n)&&n.length===2&&Number.isSafeInteger(n[0])&&Array.isArray(n[1])&&n[1].every(e))}function Ps(t){return pe(t)&&typeof t.file=="string"&&_(t.line)&&_(t.column)}function ws(t){return pe(t)&&typeof t.symbol=="string"&&typeof t.file=="string"&&_(t.line)&&(t.callsiteLine===void 0||_(t.callsiteLine))}function ks(t){return t==="unsupported-protocol"||t==="malformed-request"||t==="expired-request"||t==="handler-error"}function qt(t){return{ok:!1,code:"malformed-response",error:t}}function Mr(t){return{ok:!1,code:"incompatible-response",error:t}}var Os=5e3,wr=10,Us=3e4;function Dr(t,e,n,r=Nr){let i=r.engineIdentity(t),s={protocolVersion:ae,projectRoot:r.canonicalProjectRoot(t),projectFingerprint:r.projectFingerprint(t),engine:{engine:i.engine,resolvedBinary:i.resolvedBinary,version:i.version},workerFingerprint:r.fileFingerprint(e),environment:Er(r.environment())};return{key:_r(ge(s)),...s}}function Ze(t,e,n,r){if(t.protocolVersion!==ae||!n(t.pid))return!1;if(!t.processIdentity)return!0;let i=r?.(t.pid);return i!=null&&ke(t.processIdentity,i)}function kr(t,e,n){let r;try{r=ft(e,{maxBytes:H,inputKind:"Rust semantic engine artifact"})}catch{r="missing"}let i=_r(ge({projectRoot:ce(t),serverPath:ce(e),serverFingerprint:r})).slice(0,20);return ce(n,`scip-query-rust-session-${i}`)}function xr(t){let e=t===void 0?Number.NaN:Number(t);return Number.isInteger(e)&&e>=0?e:0}function Er(t){return Object.fromEntries(Object.entries(t).filter(([e])=>Fr(e)).sort(([e],[n])=>e.localeCompare(n)).map(([e,n])=>[e,n??null]))}function Ar(t,e){let n=e.runtime??Ks,r=e.identityRuntime??Nr,i=kr(t,e.serverPath,e.tempRoot??Ls()),s=!1,o=(a,c)=>{if(s)throw new Error("Durable Rust semantic session was already disposed.");return qs(i,e.serverPath,e.semanticWorkerPath,a,c,n,e.mailboxLimits)};return{requestSemantic(a,c){let f=Dr(t,e.semanticWorkerPath,a,r),{readinessDeadlineMs:u,...l}=a;return o({kind:"semantic",identityKey:f.key,workerEnvironment:Tr(),request:{...l,referenceRetryTimeoutMs:Bs(process.env.SCIP_RUST_SEMANTIC_REFERENCE_RETRY_TIMEOUT_MS,a.referenceRetryTimeoutMs),settleDelayMs:process.env.SCIP_RUST_SEMANTIC_SETTLE_MS===void 0?a.settleDelayMs:xr(process.env.SCIP_RUST_SEMANTIC_SETTLE_MS)},timeoutMs:c},c)},requestImportDefinitions(a,c){let f=Dr(t,e.semanticWorkerPath,a,r),{readinessDeadlineMs:u,...l}=a;return o({kind:"import-definitions",identityKey:f.key,workerEnvironment:Tr(),request:{...l,settleDelayMs:process.env.SCIP_RUST_SEMANTIC_SETTLE_MS===void 0?a.settleDelayMs:xr(process.env.SCIP_RUST_SEMANTIC_SETTLE_MS)},timeoutMs:c},c)},shutdown(){s=!0}}}function Bs(t,e){return e!==void 0?e:t===void 0?Us:void 0}function qs(t,e,n,r,i,s,o={}){let a=s.now(),c=a+i,f=(s.monotonicNow??j)(),u=f+i,l=ne("rust-semantic-v3",r),p=re(l),m=Be(t),d=jt(t),y=qe(m,{mailboxVersion:Y,protocolVersion:ae,id:p,operationKey:l,clientId:s.randomId(),enqueuedAtMs:a,deadlineAtMs:c,sessionIdentity:d,request:r},{nowMs:a,limits:o});for(Cr(t,e,n,u,s);(s.monotonicNow??j)()<=u;){if(Pr(y.responsePath)){let g=js(q(y.responsePath,{maxBytes:o.maxItemBytes??H,inputKind:"durable Rust semantic mailbox response"}),{requestId:p,operationKey:l,sessionIdentity:d,deadlineAtMs:y.authoritativeDeadlineAtMs,requestKind:r.kind,nowMs:s.now()});if(!g.ok)throw new Error(g.error);return L()&&Le({type:"span",name:"rust.semantic.durable-session.request",durationMs:(s.monotonicNow??j)()-f,ok:!0,session:g.session,kind:r.kind}),g.response}let S=et(t);(!S||!Ze(S,s.now(),s.isProcessAlive,s.readProcessIdentity))&&Cr(t,e,n,u,s),s.sleep(wr)}throw new Error(`Durable Rust semantic session timed out after ${(i/1e3).toFixed(0)}s.`)}function Cr(t,e,n,r,i){let s=et(t);if(s&&Ze(s,i.now(),i.isProcessAlive,i.readProcessIdentity))return;_s(ce(t,"server.json"),{force:!0}),i.spawnServer(e,t,n);let o=i.monotonicNow??j,a=Math.min(r,o()+Os);for(;o()<=a;){let c=et(t);if(c&&Ze(c,i.now(),i.isProcessAlive,i.readProcessIdentity))return;i.sleep(wr)}throw new Error("Durable Rust semantic session helper did not become ready within 5s.")}function et(t){try{let e=JSON.parse(q(ce(t,"server.json"),{maxBytes:an,inputKind:"durable Rust session state"}));if(typeof e.protocolVersion!="number"||e.sessionIdentity!==void 0&&(typeof e.sessionIdentity!="string"||e.sessionIdentity!==jt(t))||typeof e.pid!="number"||typeof e.heartbeatAtMs!="number"||e.busyUntilMs!==void 0&&typeof e.busyUntilMs!="number"||e.mailbox!==void 0&&!Ws(e.mailbox))return null;let n=e.processIdentity===void 0?null:we(e.processIdentity);return e.processIdentity!==void 0&&(!n||n.pid!==e.pid)?null:{protocolVersion:e.protocolVersion,...e.sessionIdentity===void 0?{}:{sessionIdentity:e.sessionIdentity},pid:e.pid,...n?{processIdentity:n}:{},heartbeatAtMs:e.heartbeatAtMs,...e.busyUntilMs===void 0?{}:{busyUntilMs:e.busyUntilMs},...e.mailbox===void 0?{}:{mailbox:e.mailbox}}}catch{return null}}function js(t,e){try{return vr(JSON.parse(t),e)}catch(n){return{ok:!1,code:"malformed-response",error:`helper wrote malformed JSON: ${n instanceof Error?n.message:String(n)}`}}}function Ws(t){if(!t||typeof t!="object")return!1;let e=t;return _(e.pending)&&_(e.inflight)&&_(e.responses)&&_(e.deadLetters)&&_(e.invalid)&&_(e.totalItems)&&typeof e.totalBytes=="number"&&Number.isFinite(e.totalBytes)&&e.totalBytes>=0&&(e.oldestPendingAt===void 0||Number.isFinite(Date.parse(e.oldestPendingAt)))}function Tr(){return Object.fromEntries(Object.entries(process.env).filter(([t])=>zs(t)).sort(([t],[e])=>t.localeCompare(e)).map(([t,e])=>[t,e??null]))}function Fr(t){return t==="HOME"||t==="PATH"||t.startsWith("CARGO_")||t.startsWith("RA_")||t.startsWith("RUST")}function zs(t){return Fr(t)||t.startsWith("SCIP_RUST_")||t==="SCIP_QUERY_PROFILE"||t==="SCIP_QUERY_PROFILE_CACHE_STATE"||t==="SCIP_QUERY_PROFILE_COMMAND"||t==="SCIP_QUERY_PROFILE_OUT"||t==="SCIP_QUERY_PROFILE_RUN_ID"||t==="SCIP_QUERY_PROFILE_WORKLOAD_IDENTITY"||t==="SCIP_QUERY_PROFILE_WORKLOAD_IDENTITY_KIND"||t==="SCIP_QUERY_PROFILE_MIN_MS"}var Nr={canonicalProjectRoot(t){try{return Ns(t)}catch{return ce(t)}},projectFingerprint(t){return hr(t)},engineIdentity:Ut,fileFingerprint(t){return ft(t,{maxBytes:H,inputKind:"Rust semantic engine artifact"})},environment(){return Er(process.env)}},Ks={now:Date.now,monotonicNow:j,randomId:Fs,isProcessAlive:Ne,readProcessIdentity:Fe,spawnServer(t,e,n){if(!Pr(t))throw new Error(`Durable Rust semantic session helper was not found at ${t}. Run npm run build first.`);Es(process.execPath,[t,e,n],{detached:!0,stdio:"ignore"}).unref()},sleep(t){let e=new Int32Array(new SharedArrayBuffer(4));Atomics.wait(e,0,0,t)}};function _r(t){return As("sha256").update(t).digest("hex")}import{randomUUID as Pl}from"crypto";import{readdirSync as Hs,rmSync as kl,writeFileSync as El}from"fs";import{join as $s}from"path";var Vs="rust-analyzer-owner-",Ys=".json",Js=16*1024;async function Lr(t,e){if(!t)return[];let n;try{n=Hs(t)}catch{return[]}let r=n.filter(o=>o.startsWith(Vs)&&o.endsWith(Ys)).map(o=>$s(t,o)),i=[],s=[];for(let o of r){let a=Gs(o);a?s.push(a):i.push({reaped:!1,reason:"identity-unavailable",detail:`Rust analyzer ownership record ${o} could not be validated.`})}return i.push(...await Promise.all(s.map(o=>Pn(o,e)))),i}function Gs(t){try{let e=q(t,{maxBytes:Js,inputKind:"rust-analyzer process ownership record"}),n=JSON.parse(e),r=we(n.rootIdentity);return n.version!==1||!r||typeof n.ownsProcessGroup!="boolean"?null:{rootPid:r.pid,rootIdentity:r,ownsProcessGroup:n.ownsProcessGroup,knownMembers:new Map([[r.pid,r]])}}catch{return null}}var Br=15e3,qr=8,Wr=5e3,to=64,no=96,Ht=class{constructor(e,n,r={}){this.projectRoot=e;this.status=n;this.opts=r;this.requester=r.requester??oo(e,process.env.SCIP_RUST_SEMANTIC_DURABLE_SESSION)}projectRoot;status;opts;requester;referencesForDefinitions(e){let n=this.status(this.projectRoot);if(!n.available||!n.resolvedBinary)return{available:!1,resolvedBinary:n.resolvedBinary,reason:Ie(n),references:Me(e)};try{let r=this.requestSession(n.resolvedBinary,e,{includeReferences:!0});return{...he(r),resolvedBinary:n.resolvedBinary,references:K(e,new Map(r.references),new Set(r.incompleteReferenceSymbolIds??[]))}}catch(r){return this.opts.fallbackReferenceResolver?.referencesForDefinitions(e)??{available:!1,resolvedBinary:n.resolvedBinary,reason:r instanceof Error?r.message:String(r),references:Me(e)}}}calleesForDefinitions(e){let n=this.status(this.projectRoot);if(!n.available||!n.resolvedBinary)return{available:!1,resolvedBinary:n.resolvedBinary,reason:Ie(n),callees:ve(e)};try{let r=this.requestSession(n.resolvedBinary,e,{includeReferences:!1,includeCallees:!0});return{...he(r),resolvedBinary:n.resolvedBinary,callees:Kt(e,new Map(r.callees??[]))}}catch(r){return this.opts.fallbackCalleeResolver?.calleesForDefinitions(e)??{available:!1,resolvedBinary:n.resolvedBinary,reason:r instanceof Error?r.message:String(r),callees:ve(e)}}}referencesAndCalleesForDefinitions(e,n){let r=this.status(this.projectRoot);if(!r.available||!r.resolvedBinary)return{available:!1,resolvedBinary:r.resolvedBinary,reason:Ie(r),references:Me(e),callees:ve(n)};let i=[...e,...n];try{let s=this.requestSession(r.resolvedBinary,i,{includeReferences:e.length>0,includeCallees:n.length>0,referenceDefinitions:e,calleeDefinitions:n});return{...he(s),resolvedBinary:r.resolvedBinary,references:K(e,new Map(s.references),new Set(s.incompleteReferenceSymbolIds??[])),callees:Kt(n,new Map(s.callees??[]))}}catch(s){return this.fallbackReferencesAndCallees(r,e,n,s)}}signaturesForDefinitions(e){let n=this.status(this.projectRoot);if(!n.available||!n.resolvedBinary)return{available:!1,resolvedBinary:n.resolvedBinary,reason:Ie(n),signatures:jr(e)};try{let r=this.requestSession(n.resolvedBinary,e,{includeReferences:!1,includeCallees:!1,includeSignatures:!0});return{...he(r),resolvedBinary:n.resolvedBinary,signatures:fo(e,new Map(r.signatures??[]))}}catch(r){return this.opts.fallbackSignatureResolver?.signaturesForDefinitions(e)??{available:!1,resolvedBinary:n.resolvedBinary,reason:r instanceof Error?r.message:String(r),signatures:jr(e)}}}importDefinitionsForFile(e,n){let r=this.status(this.projectRoot);if(n.length===0)return r.available?{available:!0,resolvedBinary:r.resolvedBinary,sourcePaths:new Map}:{available:!1,reason:r.reason,resolvedBinary:r.resolvedBinary,sourcePaths:new Map};if(!r.available||!r.resolvedBinary)return{available:!1,resolvedBinary:r.resolvedBinary,reason:Ie(r),sourcePaths:new Map(n.map(i=>[i.id,null]))};try{let i=this.requestImportDefinitions(r.resolvedBinary,e,n);return{...he(i),resolvedBinary:r.resolvedBinary,sourcePaths:new Map(i.sourcePaths)}}catch(i){return{available:!1,resolvedBinary:r.resolvedBinary,reason:i instanceof Error?i.message:String(i),sourcePaths:new Map(n.map(s=>[s.id,null]))}}}dispose(){this.requester.shutdown()}requestSession(e,n,r){let i=tt(process.env.SCIP_RUST_SEMANTIC_REQUEST_TIMEOUT_MS,Br),s=nt(process.env.SCIP_RUST_SEMANTIC_REFERENCE_RETRY_TIMEOUT_MS,0),o=tt(process.env.SCIP_RUST_SEMANTIC_CONCURRENCY,qr),a=nt(process.env.SCIP_RUST_SEMANTIC_DIAGNOSTICS_TIMEOUT_MS,Math.min(i,1e4)),c=r.referenceDefinitions?[...r.referenceDefinitions]:void 0,f=r.calleeDefinitions?[...r.calleeDefinitions]:void 0,u=r.signatureDefinitions?[...r.signatureDefinitions]:void 0,l=De(process.env.SCIP_RUST_SEMANTIC_SETTLE_MS,{definitionCount:n.length,...r}),p={projectRoot:this.projectRoot,rustAnalyzerBinary:e,definitions:[...n],...c?{referenceDefinitions:c}:{},...f?{calleeDefinitions:f}:{},...u?{signatureDefinitions:u}:{},requestTimeoutMs:i,...r.includeReferences!==!1&&s>0?{referenceRetryTimeoutMs:s}:{},diagnosticsTimeoutMs:a,settleDelayMs:l,concurrency:o,includeReferences:r.includeReferences,includeCallees:r.includeCallees,includeSignatures:r.includeSignatures},m=po(p);return w("rust.semantic.session.request",()=>this.requester.requestSemantic(p,J(m,$t(i,p.referenceRetryTimeoutMs),o)),()=>({definitions:n.length,operationDefinitions:m,referenceDefinitions:p.referenceDefinitions?.length,calleeDefinitions:p.calleeDefinitions?.length,signatureDefinitions:p.signatureDefinitions?.length,references:p.includeReferences!==!1,callees:p.includeCallees===!0,signatures:p.includeSignatures===!0,referenceRetryTimeoutMs:p.referenceRetryTimeoutMs}))}fallbackReferencesAndCallees(e,n,r,i){let s=n.length===0?{available:!0,resolvedBinary:e.resolvedBinary,references:Me(n)}:this.opts.fallbackReferenceResolver?.referencesForDefinitions(n),o=r.length===0?{available:!0,resolvedBinary:e.resolvedBinary,callees:ve(r)}:this.opts.fallbackCalleeResolver?.calleesForDefinitions(r);if(s&&o){let a={resolvedBinary:s.resolvedBinary??o.resolvedBinary??e.resolvedBinary,references:K(n,s.references),callees:Kt(r,o.callees)};return s.available&&o.available?{available:!0,...a}:{available:!1,reason:(s.available?void 0:s.reason)??(o.available?void 0:o.reason)??"Rust semantic fallback was unavailable.",...a}}return{available:!1,resolvedBinary:e.resolvedBinary,reason:i instanceof Error?i.message:String(i),references:Me(n),callees:ve(r)}}requestImportDefinitions(e,n,r){let i=tt(process.env.SCIP_RUST_SEMANTIC_REQUEST_TIMEOUT_MS,Br),s=tt(process.env.SCIP_RUST_SEMANTIC_CONCURRENCY,qr),o=nt(process.env.SCIP_RUST_SEMANTIC_DIAGNOSTICS_TIMEOUT_MS,Math.min(i,1e4)),a=nt(process.env.SCIP_RUST_SEMANTIC_SETTLE_MS,Wr),c={projectRoot:this.projectRoot,rustAnalyzerBinary:e,file:n,positions:[...r],requestTimeoutMs:i,diagnosticsTimeoutMs:o,settleDelayMs:a,concurrency:s};return w("rust.semantic.import-definitions.session.request",()=>this.requester.requestImportDefinitions(c,J(r.length,i,s)),()=>({file:n,positions:r.length}))}};function he(t){return t.available?{available:!0}:{available:!1,reason:t.reason}}function Ie(t){return t.available?"rust-analyzer binary path is unavailable.":t.reason}function zr(t,e,n={}){return new Ht(t,e,n)}function De(t,e){let n=Hr(t);if(n!==null)return n;let r=e.includeReferences!==!1;return r&&e.includeCallees!==!0&&e.includeSignatures!==!0&&e.definitionCount<=to||r&&e.includeCallees===!0&&e.includeSignatures!==!0&&e.definitionCount<=no?0:Wr}function ro(t){let e=t?.trim().toLowerCase(),n=e==="0"||e==="false"||e==="off"||e==="worker",r=e==="1"||e==="true"||e==="on"||e==="durable",i=e===void 0||e==="";return{transport:n||!i&&!r?"worker":"durable",source:i?"default":"environment",fallback:"worker",valid:i||n||r,optOut:"SCIP_RUST_SEMANTIC_DURABLE_SESSION=0"}}function io(t){return ro(t).transport}function so(t,e){let n=null,r=!1,i=!1,s=!1,o=()=>n??=e(),a=()=>{i||(t.shutdown(),i=!0)},c=(u,l,p)=>{let m=uo(u);r=!0;try{a()}catch{}L()&&Le({type:"span",name:"rust.semantic.durable-session.request",durationMs:p,ok:!1,kind:l,session:"worker-fallback",reason:m})},f=(u,l,p)=>{if(s)throw new Error("Rust semantic failover session was already disposed.");if(r)return p(o());let m=performance.now();try{return l(t)}catch(d){c(d,u,performance.now()-m)}return p(o())};return{requestSemantic(u,l){return f("semantic",p=>p.requestSemantic(u,l),p=>p.requestSemantic(u,l))},requestImportDefinitions(u,l){return f("import-definitions",p=>p.requestImportDefinitions(u,l),p=>p.requestImportDefinitions(u,l))},shutdown(){if(s)return;s=!0;let u=[];try{a()}catch(l){u.push(l)}try{n?.shutdown()}catch(l){u.push(l)}if(u.length>0)throw u[0]}}}function oo(t,e,n={worker:()=>ao(),durable:()=>Ar(t,{serverPath:rt(mo()),semanticWorkerPath:rt(Kr())})}){return io(e)==="durable"?so(n.durable(),n.worker):n.worker()}function ao(t={}){let e=null,n=null,r=1,i=!1,s=null,o=null,a=l=>{l&&Wt(l,{recursive:!0,force:!0})},c=()=>{if(s)return;let l=e,p=n;e=null,n=null;let m=l?l.terminate():Promise.resolve(0);s=Promise.allSettled([m,Lr(p,{gracefulMs:1e3,forceMs:1e3})]).then(([d,y])=>{let g=(y.status==="fulfilled"?y.value:[{reaped:!1,detail:String(y.reason)}]).filter(I=>!I.reaped);if(d.status==="rejected"||g.length>0){o=new Error(`Rust semantic worker cleanup did not complete; ownership evidence remains at ${p??"unknown"}.`);return}a(p)}).finally(()=>{s=null})},f=()=>{if(e)return e;if(s)throw new Error("The previous Rust semantic session worker is still terminating; retry the request.");if(o)throw o;let l=t.semanticWorkerPath?Xs(t.semanticWorkerPath):Kr();if(!Qs(rt(l)))throw new Error(`Rust semantic session worker was not found at ${rt(l)}. Run npm run build before using built semantic Rust queries.`);return n=Or(zt(Ur(),"scip-query-rust-session-")),e=new eo(l,t.shareEnvironment?{env:Zs}:void 0),e.unref(),e},u=()=>{let l=n??Or(zt(Ur(),"scip-query-rust-session-"));return n=l,zt(l,`${r++}.json`)};return{requestSemantic(l,p){if(i)throw new Error("Rust semantic session was already disposed.");let m=f(),d=u(),y=new SharedArrayBuffer(4),S=new Int32Array(y);if(m.postMessage({kind:"semantic",request:l,responsePath:d,sharedBuffer:y}),Atomics.wait(S,0,0,p)==="timed-out")throw c(),new Error(`Rust semantic session worker timed out after ${(p/1e3).toFixed(0)}s`);try{let I=co(q(d,{maxBytes:H,inputKind:"Rust semantic worker response"}));if(!I.ok)throw new Error(I.error);return I.response}finally{Wt(d,{force:!0})}},requestImportDefinitions(l,p){if(i)throw new Error("Rust semantic session was already disposed.");let m=f(),d=u(),y=new SharedArrayBuffer(4),S=new Int32Array(y);if(m.postMessage({kind:"import-definitions",request:l,responsePath:d,sharedBuffer:y}),Atomics.wait(S,0,0,p)==="timed-out")throw c(),new Error(`Rust semantic import-definition session worker timed out after ${(p/1e3).toFixed(0)}s`);try{let I=lo(q(d,{maxBytes:H,inputKind:"Rust import-definition worker response"}));if(!I.ok)throw new Error(I.error);return I.response}finally{Wt(d,{force:!0})}},shutdown(){if(i)return;if(i=!0,!e){a(n),n=null;return}let l=u(),p=new SharedArrayBuffer(4),m=new Int32Array(p);e.postMessage({kind:"shutdown",responsePath:l,sharedBuffer:p}),Atomics.wait(m,0,0,5e3),c()}}}function co(t){let e=JSON.parse(t);if(!e||typeof e!="object")return{ok:!1,error:"Rust semantic session worker wrote a non-object response."};let n=e;return n.ok===!0&&"response"in n?{ok:!0,response:n.response}:{ok:!1,error:typeof e.error=="string"?e.error:"Rust semantic session worker failed."}}function lo(t){let e=JSON.parse(t);if(!e||typeof e!="object")return{ok:!1,error:"Rust semantic session worker wrote a non-object response."};let n=e;return n.ok===!0&&"response"in n?{ok:!0,response:n.response}:{ok:!1,error:typeof e.error=="string"?e.error:"Rust semantic session worker failed."}}function uo(t){let e=t instanceof Error?`${t.name} ${t.message}`.toLowerCase():String(t).toLowerCase();return e.includes("readiness")?"readiness":e.includes("timeout")||e.includes("timed out")?"timeout":e.includes("helper")?"helper":"request"}function Me(t){return new Map(t.map(e=>[e.symbolId,[]]))}function ve(t){return new Map(t.map(e=>[e.symbolId,[]]))}function jr(t){return new Map(t.map(e=>[e.symbolId,null]))}function Kt(t,e){return new Map(t.map(n=>[n.symbolId,e.get(n.symbolId)??[]]))}function fo(t,e){return new Map(t.map(n=>[n.symbolId,e.get(n.symbolId)??null]))}function po(t){let e=0;return t.includeReferences!==!1&&(e+=(t.referenceDefinitions??t.definitions).length),t.includeCallees===!0&&(e+=(t.calleeDefinitions??t.definitions).length),t.includeSignatures===!0&&(e+=(t.signatureDefinitions??t.definitions).length),Math.max(1,e)}function $t(t,e){return e&&e>0?Math.max(t,e):t}function Kr(){return new URL("./rust-semantic-session-worker.js",import.meta.url)}function mo(){return new URL("./rust-semantic-session-server.js",import.meta.url)}function tt(t,e){return te(t)??e}function nt(t,e){return Hr(t)??e}function Hr(t){if(!t)return null;let e=Number(t);return Number.isInteger(e)&&e>=0?e:null}var Jt=15e3,Gt=8;function Jr(t,e={}){let n=e.status??Ge,r=Ro(t,n),i=bo(t,n),s=ho(t,n),o=e.referenceResolver||e.calleeResolver||e.signatureResolver||!So(e)?null:zr(t,n,{fallbackReferenceResolver:r,fallbackCalleeResolver:i,fallbackSignatureResolver:s}),a=e.referenceResolver??o??r,c=e.calleeResolver??o??i,f=e.signatureResolver??o??s,u=e.importUsageResolver??dr(e.sourceImportUsageResolver??go(),e.importDefinitionResolver??o),l=e.calleeSymbolResolver,p=e.sourceZeroCalleeOracle,m=e.scipOccurrenceCalleeOracle,d=new Map,y=new Map,S=null,g=null,I=()=>(S??=n(t),S),k=()=>{let b=I();return b.dependencyAvailable?g??b:b},h=b=>{if(b.length===0)return new Map;let R=Ce(b);try{let M=a.referencesForDefinitions(R),T=I();return g=it(T,M),M.available?new Map(M.references):K(R,M.references)}catch(M){let T=I();return g=xe(T,M),G(R)}},v=b=>{if(b.length===0)return new Map;let R=Ce(b),M=R.filter($r);if(M.length===0)return Q(R);let T=new Map,W=Yr(M,m),N=[];for(let P of M)y.has(P.symbolId)?T.set(P.symbolId,y.get(P.symbolId)??[]):W.has(P.symbolId)?T.set(P.symbolId,W.get(P.symbolId)??[]):Vr(P,p)?T.set(P.symbolId,[]):N.push(P);if(N.length===0)return le(R,T,void 0);try{let P=c.calleesForDefinitions(N),U=I();g=it(U,P);let E=le(N,P.callees,l);for(let[fe,ct]of E)T.set(fe,ct);return le(R,T,void 0)}catch(P){let U=I();return g=xe(U,P),Q(R)}},C=(b,R)=>{let M=Ce(b),T=Ce(R),W=T.filter($r),N=new Map,P=Yr(W,m),U=[];for(let E of W)P.has(E.symbolId)?N.set(E.symbolId,P.get(E.symbolId)??[]):Vr(E,p)?N.set(E.symbolId,[]):U.push(E);if(M.length===0&&U.length===0)return{references:G(M),callees:le(T,N,void 0)};try{let E=o?o.referencesAndCalleesForDefinitions(M,U):Do(a,c,{referenceDefinitions:M,calleeDefinitions:U}),fe=I();g=it(fe,E);let ct=E.available?new Map(E.references):K(M,E.references);for(let[lt,ut]of E.callees)N.set(lt,ut);let on=le(T,N,l);for(let[lt,ut]of on)y.set(lt,ut);return{references:ct,callees:on}}catch(E){let fe=I();return g=xe(fe,E),{references:G(M),callees:Q(T)}}},D=b=>{if(b.length===0)return new Map;let R=Ce(b);try{let M=f.signaturesForDefinitions(R),T=I();return g=it(T,M),Gr(R,M.signatures)}catch(M){let T=I();return g=xe(T,M),st(R)}};return{language:"rust",availability:k,dispose:()=>{o?.dispose()},importUsage:b=>{let R=d.get(b);if(R)return R;try{let M=u.importUsage(b);return d.set(b,M),M}catch(M){let T=I();return g=xe(T,M),[]}},referencesFor:b=>h([b]).get(b.symbolId)??[],referencesForDefinitions:h,referencesAndCalleesForDefinitions:C,calleesFor:b=>v([b]).get(b.symbolId)??[],calleesForDefinitions:v,signatureFor:b=>D([b]).get(b.symbolId)??null}}function it(t,e){let n={dependencyAvailable:t.dependencyAvailable,resolvedBinary:e.resolvedBinary??t.resolvedBinary,...t.note?{note:t.note}:{}};return e.available?{available:!0,...n}:{available:!1,reason:e.reason,...n}}function xe(t,e){return{available:!1,dependencyAvailable:t.dependencyAvailable,resolvedBinary:t.resolvedBinary,...t.note?{note:t.note}:{},reason:e instanceof Error?e.message:String(e)}}function So(t){if(t.usePersistentSession!==void 0)return t.usePersistentSession;let e=process.env.SCIP_RUST_SEMANTIC_SESSION;return e!=="0"&&e!=="false"}function go(){return{importUsageFacts:()=>({usage:[],positions:[]})}}function Ce(t){return t.map(e=>{let n=e;return{...e,leaf:typeof n.leaf=="string"?n.leaf:V(e.symbol),parentTypeName:n.parentTypeName??null,isFunctionLike:typeof n.isFunctionLike=="boolean"?n.isFunctionLike:Dn(e.symbol),isTypeLike:n.isTypeLike??!1,kind:n.kind??null,documentation:n.documentation??null,enclosingSymbol:n.enclosingSymbol??null}})}function $r(t){return t.isFunctionLike}function Vr(t,e){if(!e)return!1;try{return e(t)}catch{return!1}}function Yr(t,e){if(!e||t.length===0)return new Map;try{return e(t)}catch{return new Map}}function Ro(t,e){return{referencesForDefinitions:n=>Io(t,e,n)}}function bo(t,e){return{calleesForDefinitions:n=>Mo(t,e,n)}}function ho(t,e){return{signaturesForDefinitions:n=>vo(t,e,n)}}function Io(t,e,n){let r=e(t);if(!r.available||!r.resolvedBinary)return{available:!1,resolvedBinary:r.resolvedBinary,reason:Zt(r),references:G(n)};let i=Qt();if(!Yt(i))return{available:!1,resolvedBinary:r.resolvedBinary,reason:`Rust semantic worker was not found at ${i}. Run npm run build before using built semantic Rust queries.`,references:G(n)};let s=ue(process.env.SCIP_RUST_SEMANTIC_REQUEST_TIMEOUT_MS,Jt),o=ot(process.env.SCIP_RUST_SEMANTIC_REFERENCE_RETRY_TIMEOUT_MS,0),a=ue(process.env.SCIP_RUST_SEMANTIC_CONCURRENCY,Gt),c=ot(process.env.SCIP_RUST_SEMANTIC_DIAGNOSTICS_TIMEOUT_MS,Math.min(s,1e4)),f=De(process.env.SCIP_RUST_SEMANTIC_SETTLE_MS,{definitionCount:n.length,includeReferences:!0}),u={projectRoot:t,rustAnalyzerBinary:r.resolvedBinary,definitions:[...n],requestTimeoutMs:s,...o>0?{referenceRetryTimeoutMs:o}:{},diagnosticsTimeoutMs:c,settleDelayMs:f,concurrency:a},l=Vt(process.execPath,[i],{cwd:t,input:JSON.stringify(u),encoding:"utf8",maxBuffer:50*1024*1024,timeout:J(n.length,$t(s,u.referenceRetryTimeoutMs),a)}),p=en(l.stdout);if(p)return{...Xt(p),resolvedBinary:r.resolvedBinary,references:K(n,new Map(p.references),new Set(p.incompleteReferenceSymbolIds??[]))};let m=l.error instanceof Error?l.error.message:l.stderr.trim()||`Rust semantic worker exited with status ${l.status??"unknown"}.`;return{available:!1,resolvedBinary:r.resolvedBinary,reason:m,references:G(n)}}function Mo(t,e,n){let r=e(t);if(!r.available||!r.resolvedBinary)return{available:!1,resolvedBinary:r.resolvedBinary,reason:Zt(r),callees:Q(n)};let i=Qt();if(!Yt(i))return{available:!1,resolvedBinary:r.resolvedBinary,reason:`Rust semantic worker was not found at ${i}. Run npm run build before using built semantic Rust queries.`,callees:Q(n)};let s=ue(process.env.SCIP_RUST_SEMANTIC_REQUEST_TIMEOUT_MS,Jt),o=ue(process.env.SCIP_RUST_SEMANTIC_CONCURRENCY,Gt),a=ot(process.env.SCIP_RUST_SEMANTIC_DIAGNOSTICS_TIMEOUT_MS,Math.min(s,1e4)),c=De(process.env.SCIP_RUST_SEMANTIC_SETTLE_MS,{definitionCount:n.length,includeReferences:!1,includeCallees:!0}),f={projectRoot:t,rustAnalyzerBinary:r.resolvedBinary,definitions:[...n],requestTimeoutMs:s,diagnosticsTimeoutMs:a,settleDelayMs:c,concurrency:o,includeReferences:!1,includeCallees:!0},u=Vt(process.execPath,[i],{cwd:t,input:JSON.stringify(f),encoding:"utf8",maxBuffer:50*1024*1024,timeout:J(n.length,s,o)}),l=en(u.stdout);if(l)return{...Xt(l),resolvedBinary:r.resolvedBinary,callees:le(n,new Map(l.callees??[]),void 0)};let p=u.error instanceof Error?u.error.message:u.stderr.trim()||`Rust semantic worker exited with status ${u.status??"unknown"}.`;return{available:!1,resolvedBinary:r.resolvedBinary,reason:p,callees:Q(n)}}function vo(t,e,n){let r=e(t);if(!r.available||!r.resolvedBinary)return{available:!1,resolvedBinary:r.resolvedBinary,reason:Zt(r),signatures:st(n)};let i=Qt();if(!Yt(i))return{available:!1,resolvedBinary:r.resolvedBinary,reason:`Rust semantic worker was not found at ${i}. Run npm run build before using built semantic Rust queries.`,signatures:st(n)};let s=ue(process.env.SCIP_RUST_SEMANTIC_REQUEST_TIMEOUT_MS,Jt),o=ue(process.env.SCIP_RUST_SEMANTIC_CONCURRENCY,Gt),a=ot(process.env.SCIP_RUST_SEMANTIC_DIAGNOSTICS_TIMEOUT_MS,Math.min(s,1e4)),c=De(process.env.SCIP_RUST_SEMANTIC_SETTLE_MS,{definitionCount:n.length,includeReferences:!1,includeCallees:!1,includeSignatures:!0}),f={projectRoot:t,rustAnalyzerBinary:r.resolvedBinary,definitions:[...n],requestTimeoutMs:s,diagnosticsTimeoutMs:a,settleDelayMs:c,concurrency:o,includeReferences:!1,includeCallees:!1,includeSignatures:!0},u=Vt(process.execPath,[i],{cwd:t,input:JSON.stringify(f),encoding:"utf8",maxBuffer:50*1024*1024,timeout:J(n.length,s,o)}),l=en(u.stdout);if(l)return{...Xt(l),resolvedBinary:r.resolvedBinary,signatures:Gr(n,new Map(l.signatures??[]))};let p=u.error instanceof Error?u.error.message:u.stderr.trim()||`Rust semantic worker exited with status ${u.status??"unknown"}.`;return{available:!1,resolvedBinary:r.resolvedBinary,reason:p,signatures:st(n)}}function Do(t,e,n){let r=n.referenceDefinitions.length>0?t.referencesForDefinitions(n.referenceDefinitions):{available:!0,references:G(n.referenceDefinitions)},i=n.calleeDefinitions.length>0?e.calleesForDefinitions(n.calleeDefinitions):{available:!0,callees:Q(n.calleeDefinitions)},s={resolvedBinary:r.resolvedBinary??i.resolvedBinary,references:r.references,callees:i.callees};return r.available&&i.available?{available:!0,...s}:{available:!1,reason:(r.available?void 0:r.reason)??(i.available?void 0:i.reason)??"Rust semantic resolution was unavailable.",...s}}function G(t){return new Map(t.map(e=>[e.symbolId,[]]))}function Q(t){return new Map(t.map(e=>[e.symbolId,[]]))}function st(t){return new Map(t.map(e=>[e.symbolId,null]))}function le(t,e,n){let r=0,i=0;return w("rust.semantic.callees.complete-map",()=>{let s=new Map;for(let o of t){let a=e.get(o.symbolId)??[];a.length>0&&(r+=1),i+=a.length,s.set(o.symbolId,a.map(c=>({...c,symbol:n?n(c):c.symbol})))}return s},()=>({definitions:t.length,rows:r,callees:i,resolveSymbols:!!n}))}function Gr(t,e){return new Map(t.map(n=>[n.symbolId,e.get(n.symbolId)??null]))}function Qt(){return yo(new URL("./rust-semantic-worker.js",import.meta.url))}function Xt(t){return t.available?{available:!0}:{available:!1,reason:t.reason}}function Zt(t){return t.available?"rust-analyzer binary path is unavailable.":t.reason}function en(t){try{let e=JSON.parse(t);if(!e||typeof e!="object")return null;let n=e;if(typeof n.available!="boolean"||!Array.isArray(n.references)||n.available===!1&&typeof n.reason!="string"||n.available===!0&&n.reason!==void 0)return null;let r={references:n.references,incompleteReferenceSymbolIds:Array.isArray(n.incompleteReferenceSymbolIds)?n.incompleteReferenceSymbolIds.filter(i=>typeof i=="number"):void 0,callees:Array.isArray(n.callees)?n.callees:void 0,signatures:Array.isArray(n.signatures)?n.signatures:void 0};return n.available===!0?{available:!0,...r}:{available:!1,reason:String(n.reason),...r}}catch{return null}}function ue(t,e){return te(t)??e}function ot(t,e){if(!t)return e;let n=Number(t);return Number.isInteger(n)&&n>=0?n:e}import{existsSync as xo}from"fs";import{deserializeSCIP as Co,SymbolRole as To}from"@c4312/scip";var tn=new WeakMap;function Xr(t,e){let n=e.filter(Po);if(n.length===0)return new Map;let r=!1,i=0,s=0;return w("rust.scip-occurrence.callees",()=>{let o=Eo(t);if(r=!!o,!o)return new Map;let a=new Map;for(let c of n){let f=wo(t,o,c);f!==null&&(a.set(c.symbolId,f),i+=1,s+=f.length)}return a},()=>({definitions:e.length,candidates:n.length,indexAvailable:r,resolvedDefinitions:i,resolvedCallees:s}))}function Po(t){return!(!t.symbol.startsWith("rust-analyzer ")||!t.relativePath.endsWith(".rs")||!t.isFunctionLike||t.leaf==="main"||Se(t.symbol))}function wo(t,e,n){let r=Oe(t,n.relativePath);if(!r||r.language!=="rust")return null;let i=r.callables.find(f=>f.startLine!==n.startLine||f.endLine!==n.endLine?!1:f.name===n.leaf||n.leaf.endsWith(f.name)||f.name.endsWith(n.leaf));if(!i)return null;let s=r.callSites.filter(f=>f.line>=i.startLine&&f.line<=i.endLine);if(s.length===0)return null;let o=(e.occurrencesByFile.get(n.relativePath)??[]).filter(f=>f.line>=i.startLine&&f.line<=i.endLine&&f.callee.symbol!==n.symbol);if(o.some(f=>f.traitImplMember)||!ko(s,o))return null;let a=[],c=new Set;for(let f of o){let u=`${f.callee.symbol}\0${f.callee.file}\0${f.callee.line}`;c.has(u)||(c.add(u),a.push(f.callee))}return a}function ko(t,e){let n=Qr(t),r=Qr(e);if(n.size!==r.size)return!1;for(let[i,s]of n)if(r.get(i)!==s)return!1;return!0}function Qr(t){let e=new Map;for(let n of t){let r=n.calleeLeaf??n.leaf;if(!r)continue;let i=`${n.line}\0${r}`;e.set(i,(e.get(i)??0)+1)}return e}function Eo(t){if(tn.has(t))return tn.get(t)??null;let e=Ao(t);return tn.set(t,e),e}function Ao(t){if(!t.generation.indexPath||!xo(t.generation.indexPath))return null;try{let e=ee(t).filter(s=>s.symbol.startsWith("rust-analyzer ")&&s.relativePath.endsWith(".rs")&&s.isFunctionLike),n=new Map(e.map(s=>[s.symbol,s])),r=Co(Ae(t.generation.indexPath,{inputKind:"SCIP occurrence-callee index",maxBytes:Ee})),i=new Map;for(let s of r.documents??[]){let o=s.relativePath;if(!o||!o.endsWith(".rs")||t.isIgnored(o))continue;let a=[];for(let c of s.occurrences??[]){if(!c.symbol||(c.symbolRoles&To.Definition)!==0)continue;let f=n.get(c.symbol);if(!f)continue;let u=c.range?.[0];Number.isInteger(u)&&a.push({line:u,leaf:f.leaf,traitImplMember:Se(f.symbol),callee:{symbol:f.symbol,file:f.relativePath,line:f.startLine,callsiteLine:u}})}i.set(o,a)}return{occurrencesByFile:i}}catch{return null}}var at=class{sessions=new WeakMap;getOrCreate(e,n,r){let i=Fo(e,n),s=this.sessions.get(e);s||(s=new Map,this.sessions.set(e,s));let o=s.get(i);if(o)return o.hits+=1,o.lastUsedAtMs=Date.now(),o.provider;let a=Date.now(),c=r();return s.set(i,{key:i,language:n,projectRoot:e.config.projectRoot,provider:c,createdAtMs:a,lastUsedAtMs:a,hits:1}),c}sessionsFor(e){return[...this.sessions.get(e)?.values()??[]]}clear(e){let n=this.sessions.get(e);if(n)for(let r of n.values())r.provider.dispose?.();this.sessions.delete(e)}};function Fo(t,e){return`${t.config.projectRoot}:${e}-workspace`}var Zr=new at;pn({name:"semantic-provider",groups:["semantic-provider"],clearAll:t=>Zr.clear(t)});function X(t,e){let n=O(e)??"typescript";return Zr.getOrCreate(t,n,()=>n==="rust"?Jr(t.config.projectRoot,{sourceImportUsageResolver:{importUsageFacts:r=>pr(t,r)},calleeSymbolResolver:fr(t),sourceZeroCalleeOracle:r=>No(t,r),scipOccurrenceCalleeOracle:r=>Xr(t,r)}):cr(t,e))}function O(t){return t?bn(t)==="rust"?"rust":ie(t)?"typescript":null:"typescript"}function No(t,e){let n=Oe(t,e.relativePath);if(!n||n.language!=="rust")return!1;let r=n.callables.find(i=>i.startLine===e.startLine&&i.endLine===e.endLine&&i.name===e.leaf)??n.callables.find(i=>i.startLine===e.startLine&&i.endLine===e.endLine);return r?!n.callSites.some(i=>i.line>=r.startLine&&i.line<=r.endLine):!1}import{resolve as jo}from"path";var _o=/^[A-Za-z_][A-Za-z0-9_]*$/,ei=/\bDefault::default\b/g,Lo=/^\.\.\s*Default::default\b/;function ti(t,e){let n=new Map,r=new Map;for(let i of e){let s=nn(t,i,r);s!==null&&n.set(i.symbolId,s)}return n}function nn(t,e,n=new Map){let r=Uo(e.symbol);if(!r)return null;let i=xn(t,[e.symbolId]);if(i.length===0)return null;let s=new RegExp(`(^|[^A-Za-z0-9_])${ye(r)}::default\\b`,"g"),o=new RegExp(`(^|[^A-Za-z0-9_])${ye(r)}\\s*$`),a=Oo(t,e.symbolId),c=[];for(let f of i){let u=Bo(t,f.relative_path,n);if(u===null)return null;let l=u.split(/\r?\n/),p=0,m=[],d=0;for(let y=f.chunk_start;y<=f.chunk_end&&y<l.length;y+=1){let g=l[y]??"",I=new Set;s.lastIndex=0;let k;for(;k=s.exec(g);)c.push({file:f.relative_path,line:y,column:k.index+k[1].length+r.length+2}),d+=1;for(let h=0;h<g.length;h+=1){let v=Lo.exec(g.slice(h));if(v){if(a&&m.includes(p)){let D=h+v[0].lastIndexOf("default");c.push({file:f.relative_path,line:y,column:D}),I.add(D),d+=1}h+=v[0].length-1;continue}let C=g[h];if(C==="{"){let D=o.test(g.slice(0,h));p+=1,D&&m.push(p);continue}if(C==="}")for(p=Math.max(0,p-1);m.length>0&&m[m.length-1]>p;)m.pop()}for(ei.lastIndex=0;k=ei.exec(g);){let h=k.index+9;if(!I.has(h))return null}}if(d===0)return null}return Qe(c)}function Oo(t,e){return t.get("SELECT 1 AS present FROM mentions WHERE symbol_id = ? AND role = 1 LIMIT 1",e)?.present===1}function Uo(t){let e=/impl#\[([^\]]+)\]\[Default\]default\(\)\./.exec(t)?.[1]??null;return!e||!_o.test(e)?null:e}function Bo(t,e,n){if(n.has(e))return n.get(e)??null;let r=t.get("SELECT text FROM documents WHERE relative_path = ?",e),i=typeof r?.text=="string"?r.text:qo(t,e);return n.set(e,i),i}function qo(t,e){try{return un(t.config.projectRoot,e,{inputKind:"indexed Rust source file"})}catch(n){if(!de(n))throw n;return null}}function ni(t){let e=new Map;for(let n of t){let r=e.get(n.relativePath)??[];r.push(n),e.set(n.relativePath,r)}return e}var Wo="typescript-import-usage-v1",zo="typescript-signatures-v1",rn=dt("semantic-prefetched-callees",{clearGroups:["whole-project","source-file","semantic-provider"]}),ri=me({kind:"semantic-import-usage",invalidation:$("semantic-import-usage"),serialize:t=>JSON.stringify(t),deserialize:pi}),ii=me({kind:"semantic-signatures",invalidation:$("semantic-signatures"),serialize:t=>JSON.stringify(t),deserialize:ra}),si=St({kind:"typescript-import-usage",invalidation:$("typescript-import-usage"),serialize:t=>JSON.stringify(t),deserialize:pi}),oi=St({kind:"typescript-signatures",invalidation:$("typescript-signatures"),serialize:t=>JSON.stringify(t),deserialize:ia}),Ko=256;function Yu(t,e={}){let n=e.coldFragmentLimit??Ko,r=Fn(t);return r===null||r.missing<=n?{ready:!0}:(e.serviceAvailable??lr)(t)?{ready:!0}:{ready:!1,reason:`TypeScript reference fragments are cold for ${r.missing} of ${r.files} files and no watch service is running; run \`scip-query health --full\` once or start the service with \`scip-query watch --daemon\`, then re-run this command.`}}var Ho=dt("typescript-reference-map",{clearGroups:["whole-project"]});function $o(t){return Ho.get(t,()=>{let e=Z(t);if(!e)return null;let n=ee(t).filter(i=>O(i.relativePath)==="typescript"),r=ht(t,n,i=>X(t,i));return r?{projectFingerprint:e,references:r.references,files:r.files,cacheHits:r.cacheHits,cacheMisses:r.cacheMisses,computedFiles:r.computedFiles}:null})}function Pe(t){let e=new Map,n=new Set;return{capability:(r,i)=>di(t,r,i),importUsage:r=>Yo(t,r),references:r=>ci(t,r),materializeReferences:(r,i)=>li(t,r,e,n,i),callerMap:r=>Jo(t,r,e,n),calleeMap:r=>Zo(t,r),signature:r=>ta(t,r)}}function Vo(t,e){if(e.size===0)return;let n=rn.get(t,()=>new Map);for(let[r,i]of e)n.set(r,[...i])}function Ju(t,e){if(!rn.has(t))return{hits:[],misses:[...e]};let n=rn.get(t,()=>new Map),r=[],i=[];for(let s of e)n.has(s.symbolId)?r.push({definition:s,callees:n.get(s.symbolId)??[]}):i.push(s);return{hits:r,misses:i}}function Gu(t,e){return Pe(t).importUsage(e)}function Yo(t,e){if(O(e)==="typescript"){let s="fallback",o=0,a=0,c=0,f=0;return w("typescript.import-usage.materialize",()=>{let u=Rt(t,e,Wo);if(u?.key){o=1;let p=si.read(t,e,u.key);if(p)return s="hit",a=1,p;c=1;let m=B(t,e);if(!m)return s="unavailable",[];let d=m.importUsage(e);return si.write(t,e,u.key,d),s="computed",d}f=1;let l=B(t,e);return l?(s="direct-fallback",l.importUsage(e)):(s="unavailable",[])},()=>({state:s,eligible:o,cacheHits:a,cacheMisses:c,fallbacks:f}))}let n=fi(t,"semantic-import-usage",e);if(n){let s=ri.read(t,e,n);if(s)return s}let r=B(t,e);if(!r)return[];let i=r.importUsage(e);return n&&ri.write(t,e,n,i),i}function Qu(t,e){return Pe(t).references(e)}function ci(t,e){let n=nn(t,e);if(n)return n;let r=yr(t,e);if(r)return r;let i=B(t,e.relativePath);return i?i.referencesFor(e):[]}function Xu(t,e){return Pe(t).callerMap(e)}function Zu(t,e){let n=new Map,r=[];for(let i of e){if(O(i.relativePath)==="typescript"){r.push(i);continue}sn(t,n,i,ci(t,i))}if(r.length>0){let s=ht(t,r,o=>X(t,o))?.references;if(!s){let o=B(t,r[0].relativePath);s=o?o.referencesForDefinitions?o.referencesForDefinitions(r,{exact:!0}):new Map(r.map(a=>[a.symbolId,o.referencesFor(a)])):new Map,o&&L()&&bt(t,r,s,a=>X(t,a))}for(let o of r)sn(t,n,o,s.get(o.symbolId)??[])}return n}function Jo(t,e,n=new Map,r=new Set){let i=new Map,s=li(t,e,n,r),o=0;return w("semantic.callers.from-references",()=>{for(let a of e)o+=sn(t,i,a,n.get(a.symbolId)??[])},()=>({definitions:e.length,materialized:s.definitions,inMemoryHits:s.inMemoryHits,incompleteInMemoryHits:s.incompleteInMemoryHits,resultRows:i.size,callerFiles:o})),i}function li(t,e,n,r,i={}){let s=Z(t),o=[],a=[],c=[],f=0,u=0,l=0,p=0,m=0,d=0,y=0,S=0,g=0,I=0,k=0,h=0,v=[],C=new Map,D=e.filter(R=>O(R.relativePath)==="typescript"&&!n.has(R.symbolId)&&!r.has(R.symbolId)),b=D.length>0?$o(t):null;if(b){g=D.length,I=b.cacheHits,k=b.cacheMisses,h=b.computedFiles;for(let R of D)n.set(R.symbolId,b.references.get(R.symbolId)??[])}if(w("semantic.references.cache-scan",()=>{for(let[R,M]of ni(e)){let T=[];for(let P of M)n.has(P.symbolId)?u+=1:r.has(P.symbolId)?S+=1:T.push(P);if(T.length===0){y+=1;continue}let W=Go(t,s,R);if(!W){for(let P of T)O(P.relativePath)||(f+=1),c.push(P);continue}d+=1;let N=mn(t,R,W);for(let P of T){let U=N.get(P.symbol)??null;if(U!==null){let E=Xo(U);if(E){l+=1,n.set(P.symbolId,E);continue}p+=1}a.push({definition:P,cacheFingerprint:W})}}},()=>({definitions:e.length,skippedUnsupportedLanguage:f,cacheHits:l,parseFailures:p,misses:a.length,unkeyed:c.length,inMemoryHits:u,incompleteInMemoryHits:S,fullyInMemoryFiles:y,cacheReadFiles:d})),a.length>0||c.length>0){v=[...c,...a.map(R=>R.definition)],C=w("semantic.references.compute-misses",()=>{let R=Qo(t,v,i);return m=R.size,R},()=>({definitions:v.length,misses:a.length,unkeyed:c.length,rows:m}));for(let R of v)C.has(R.symbolId)?(n.set(R.symbolId,C.get(R.symbolId)??[]),r.delete(R.symbolId)):r.add(R.symbolId);for(let{definition:R,cacheFingerprint:M}of a)C.has(R.symbolId)&&di(t,"semantic-references",R.relativePath).available&&o.push({relativePath:R.relativePath,symbol:R.symbol,projectFingerprint:M,payload:JSON.stringify(C.get(R.symbolId)??[])})}return o.length>0&&w("semantic.references.cache-write",()=>yn(t,o),()=>({entries:o.length})),C.size>0&&bt(t,v,C,R=>X(t,R)),{definitions:e.length,inMemoryHits:u,incompleteInMemoryHits:S,cacheHits:l,misses:a.length,unkeyed:c.length,skippedUnsupportedLanguage:f,parseFailures:p,computed:m,incomplete:r.size,cacheWrites:o.length,fragmentDefinitions:g,fragmentCacheHits:I,fragmentCacheMisses:k,fragmentComputedFiles:h}}function Go(t,e,n){if(!e)return null;let r=O(n);return r==="typescript"?e:r==="rust"?mt(JSON.stringify({kind:"semantic-references",language:r,engine:Bt(t.config.projectRoot),projectFingerprint:e})):null}function Qo(t,e,n={}){let r=L(),i=new Map,s=0,o=0,a=0,c=0,f=0,u=0,l=0,p=0,m=0;return w("semantic.references.provider-loop",()=>{let d=ti(t,e),y=mr(t,e),S=new Map,g=n.prefetchCallees?new Map:null,I=[];for(let h of e){let v,C=()=>(v??=B(t,h.relativePath),v);if(g){let M=C();if(M?.referencesAndCalleesForDefinitions){let T=g.get(M);T?T.push(h):g.set(M,[h]),m+=1}}let D=d.get(h.symbolId);if(D){a+=1,c+=D.length,Te(i,h.symbolId,D,r,M=>{l+=1,p+=M});continue}let b=y.get(h.symbolId);if(b){f+=1,u+=b.length,Te(i,h.symbolId,b,r,M=>{l+=1,p+=M});continue}let R=C();if(!R){r&&(o+=1);continue}if(r&&(s+=1),R.referencesForDefinitions){let M=S.get(R);M?M.push(h):S.set(R,[h])}else I.push({provider:R,definition:h})}let k=new Set;if(g)for(let[h,v]of g){if(!h.referencesAndCalleesForDefinitions)continue;let C=S.get(h)??[],D=h.referencesAndCalleesForDefinitions(C,v);k.add(h),Vo(t,D.callees);for(let b of C){if(!D.references.has(b.symbolId))continue;let R=D.references.get(b.symbolId)??[];Te(i,b.symbolId,R,r,M=>{l+=1,p+=M})}}for(let[h,v]of S){if(k.has(h))continue;let C=h.referencesForDefinitions(v);for(let D of v){if(!C.has(D.symbolId))continue;let b=C.get(D.symbolId)??[];Te(i,D.symbolId,b,r,R=>{l+=1,p+=R})}}for(let{provider:h,definition:v}of I){let C=h.referencesFor(v);Te(i,v.symbolId,C,r,D=>{l+=1,p+=D})}return i},()=>({definitions:e.length,providerHits:s,providerMisses:o,rustDefaultFastPathRows:a,rustDefaultFastPathReferences:c,rustScipOccurrenceFastPathRows:f,rustScipOccurrenceFastPathReferences:u,prefetchCalleeDefinitions:m,definitionsWithReferences:l,referenceCount:p,rows:i.size}))}function Te(t,e,n,r,i){t.set(e,n),r&&n.length>0&&i(n.length)}function sn(t,e,n,r){let i=0;for(let s of r){if(s.file===n.relativePath||t.isIgnored(s.file))continue;let o=e.get(n.symbolId);o||(o=new Set,e.set(n.symbolId,o));let a=o.size;o.add(s.file),o.size!==a&&(i+=1)}return i}function Xo(t){try{return JSON.parse(t)}catch{return null}}function ef(t,e){return Pe(t).calleeMap(e)}function tf(t){let e=ze();if(!e)return null;let n=Ve(t);if(n.length===0)return null;let r=new Map;return n.forEach((i,s)=>{for(let o of En(e,[i]))r.has(o)||r.set(o,s)}),i=>r.get(jo(t.config.projectRoot,i))??null}function nf(t,e){let n=new Map,r=new Map;for(let i of e){let s=B(t,i.relativePath);if(!s?.calleeCoverageForDefinitions)continue;let o=r.get(s);o?o.push(i):r.set(s,[i])}for(let[i,s]of r)for(let o of ui(s))for(let[a,c]of i.calleeCoverageForDefinitions(o))n.set(a,c);return n}function Zo(t,e){let n=L(),r=new Map,i=0,s=0,o=0,a=0;return w("semantic.callees.provider-loop",()=>{let c=new Map,f=[];for(let u of e){let l=B(t,u.relativePath);if(!l){n&&(s+=1);continue}n&&(i+=1);let p=u;if(l.calleesForDefinitions){let m=c.get(l);m?m.push(p):c.set(l,[p])}else f.push({provider:l,definition:p})}for(let[u,l]of c)for(let p of ui(l)){let m=u.calleesForDefinitions(p);for(let d of p){let y=m.get(d.symbolId)??[];ai(r,d.symbolId,y,n,S=>{o+=1,a+=S})}}for(let{provider:u,definition:l}of f){let p=u.calleesFor(l);ai(r,l.symbolId,p,n,m=>{o+=1,a+=m})}return r},()=>({definitions:e.length,providerHits:i,providerMisses:s,definitionsWithCallees:o,calleeCount:a,rows:r.size}))}var ea=256;function ui(t){let e=new Map;for(let i of t){let s=e.get(i.relativePath);s?s.push(i):e.set(i.relativePath,[i])}let n=[],r=[];for(let i of e.values())r.length>0&&r.length+i.length>ea&&(n.push(r),r=[]),r.push(...i);return r.length>0&&n.push(r),n}function ai(t,e,n,r,i){n.length>0&&(t.set(e,n),r&&i(n.length))}function rf(t,e){return Pe(t).signature(e)}function ta(t,e){if(O(e.relativePath)==="typescript"){let o="fallback",a=0,c=0,f=0,u=0;return w("typescript.signature.materialize",()=>{let l=Rt(t,e.relativePath,zo);if(l?.key){a=1;let m=oi.read(t,e.relativePath,l.key)??{};if(Object.prototype.hasOwnProperty.call(m,e.symbol))return o="hit",c=1,m[e.symbol]??null;f=1;let d=B(t,e.relativePath);if(!d)return o="unavailable",null;let y=d.signatureFor(e);return oi.write(t,e.relativePath,l.key,{...m,[e.symbol]:y}),o="computed",y}u=1;let p=B(t,e.relativePath);return p?(o="direct-fallback",p.signatureFor(e)):(o="unavailable",null)},()=>({state:o,eligible:a,cacheHits:c,cacheMisses:f,fallbacks:u}))}let n=fi(t,"semantic-signatures",e.relativePath),r=na(e);if(n){let o=ii.read(t,r,n);if(o)return o.signature}let i=B(t,e.relativePath);if(!i)return null;let s=i.signatureFor(e);return n&&ii.write(t,r,n,{signature:s}),s}function fi(t,e,n){let r=Z(t);if(!r)return null;let i=O(n);return i!=="rust"?null:mt(JSON.stringify({kind:e,language:i,engine:Bt(t.config.projectRoot),projectFingerprint:r}))}function na(t){return`${t.relativePath}\0${t.symbol}`}function pi(t){try{let e=JSON.parse(t);return Array.isArray(e)?e:null}catch{return null}}function ra(t){try{let e=JSON.parse(t);if(!e||typeof e!="object")return null;let n=e.signature;return n!==null&&typeof n!="string"?null:{signature:n}}catch{return null}}function ia(t){try{let e=JSON.parse(t);if(!e||typeof e!="object"||Array.isArray(e))return null;for(let n of Object.values(e))if(n!==null&&typeof n!="string")return null;return e}catch{return null}}function di(t,e,n){let r=O(n);if(!r)return{slot:e,language:"typescript",available:!1,reason:"semantic evidence is only available for TypeScript or Rust files"};try{return{slot:e,language:r,...X(t,n).availability()}}catch(i){return{slot:e,language:r,available:!1,reason:i instanceof Error?i.message:String(i)}}}function B(t,e){if(!O(e))return null;let n=X(t,e);return n.availability().available?n:null}export{ni as a,Bt as b,O as c,Yu as d,Pe as e,Ju as f,Gu as g,Qu as h,Xu as i,Zu as j,Qo as k,ef as l,tf as m,nf as n,rf as o};
3
+ //# sourceMappingURL=chunk-YSYPDRD5.js.map
@@ -0,0 +1,5 @@
1
+ import{a as te,b as N,e as V,f as j,g as E,h as re,i as se}from"./chunk-KMVGRIO2.js";import{b as _}from"./chunk-BOJ5SVE2.js";import{c as q}from"./chunk-2BMSSRBH.js";import{a as ie}from"./chunk-BJWFVAA5.js";import{f as ne}from"./chunk-U3SXIMII.js";import{a as D}from"./chunk-F5GSBHC6.js";import{d as I,e as K,j as $}from"./chunk-C7C6AKAT.js";import{a as B}from"./chunk-RBAD4GJ2.js";import{a as Y}from"./chunk-ZLMXIQLC.js";import{c as Q,e as ee,h as U,k as H}from"./chunk-ETC674NS.js";import{d as z,i as J,v as A,y}from"./chunk-KNLQGXVH.js";function ve(e,n,t={}){let{minSimilarity:i=.4,limit:r=20}=t,s=ze(e,n,{semantic:t.semantic!==!1});if(!s)return[];if(!$(s.symbol))return[];if(s.callees.size===0)return ae(e,n,{minSimilarity:i,limit:r,scanLimit:t.scanLimit,candidateMode:t.sourceCandidateMode??"full"});let a=Me(e,s,i,{scanLimit:t.scanLimit,semantic:t.semantic!==!1});return a.length>0?a.slice(0,r):ae(e,n,{minSimilarity:i,limit:r,scanLimit:t.scanLimit,candidateMode:t.sourceCandidateMode??"full"})}function Mn(e,n,t,i={}){let r=D(e,n),s=D(e,t);if(!r||!s)return null;let a=ve(e,r.symbol,{minSimilarity:0,limit:Number.POSITIVE_INFINITY,semantic:i.semantic,scanLimit:i.scanLimit}).find(m=>m.symbolB===s.symbol||m.symbolA===s.symbol);if(!a)return null;let l=r.endLine-r.startLine+1,c=s.endLine-s.startLine+1;return{symbolA:{symbol:r.symbol,shortName:I(r.symbol),file:r.relativePath,loc:l},symbolB:{symbol:s.symbol,shortName:I(s.symbol),file:s.relativePath,loc:c},similarity:a.similarity,similarityBasis:a.similarityBasis??"callees",sharedEvidence:a.sharedCallees,uniqueToA:a.uniqueToA,uniqueToB:a.uniqueToB,evidenceClass:a.evidenceClass,actionTier:a.actionTier,recommendation:a.recommendation,consolidationStrategy:we(a)}}function we(e){let n=e.similarityBasis==="source-tokens"?"source-token":"tracked callee";return e.sharedCallees.length===0?`No shared ${n} evidence survived similar's weighting. Inspect the source before attempting consolidation.`:e.uniqueToA.length===0&&e.uniqueToB.length===0?`The functions have identical ${n} evidence under similar's weighting. Verify signatures, guards, and return values before consolidating.`:e.uniqueToA.length===0?`A's ${n} evidence is a subset of B's. B may subsume part of A's structure, but verify signatures, guards, and non-call logic first.`:e.uniqueToB.length===0?`B's ${n} evidence is a subset of A's. A may subsume part of B's structure, but verify signatures, guards, and non-call logic first.`:e.uniqueToA.length<=2&&e.uniqueToB.length<=2?`Create a shared helper around the ${e.sharedCallees.length} shared ${n}(s). Pass the ${e.uniqueToA.length+e.uniqueToB.length} divergent point(s) as parameters or callbacks.`:`Extract the ${e.sharedCallees.length} shared ${n}(s) into a common helper. Keep each function's unique logic outside that helper (${e.uniqueToA.length} item(s) in A, ${e.uniqueToB.length} in B).`}function Me(e,n,t,i){let r=G(e).calleeIndex({minCallees:3,scanLimit:i.scanLimit,semantic:i.semantic}),s=je(n,r.corpus),a=Oe(s,r),l=Te(s,r),c=j(l),m=E(s.callees,l),g=[];for(let f of a){if(f.callees.size<3)continue;let o=E(f.callees,l),u=ue(s,f,l,{minSimilarity:t,requireSignificantShared:1,requireSharedCount:0,medianIdf:c,magnitudeA:m,magnitudeB:o});u&&g.push(u)}return g.sort((f,o)=>o.similarity-f.similarity),g}function Te(e,n){let t=new Map(n.docFreq);for(let i of e.callees)t.set(i,(t.get(i)??0)+1);return V(t,n.corpus.length+1)}function ue(e,n,t,i){let r=Re(e,n,t,i);if(!Ae(r,i))return null;let{similarity:s,significantShared:a,trivialShared:l}=r,c=a.length>0?a:l,m=Se(c,"callees");return{symbolA:e.symbol,shortNameA:I(e.symbol),fileA:e.file,symbolB:n.symbol,shortNameB:I(n.symbol),fileB:n.file,similarity:s,similarityBasis:"callees",sharedCallees:c.map(I),uniqueToA:[...N(e.callees,n.callees)].map(I),uniqueToB:[...N(n.callees,e.callees)].map(I),...m}}function Le(e,n,t,i){let r=i.magnitudeA??E(e.callees,t),s=i.magnitudeB??E(n.callees,t),a=0,l=0,c=0,m=i.medianIdf??j(t);for(let o of e.callees){if(!n.callees.has(o))continue;let u=t.get(o)??0;a+=u*u,c+=1,u>=m&&(l+=1)}if(c===0)return!1;let g=r*s;return(g>0?a/g:0)<i.minSimilarity?!1:l>=i.requireSignificantShared||c>=i.requireSharedCount}function Re(e,n,t,i){return i.magnitudeA===void 0||i.magnitudeB===void 0?re(e.callees,n.callees,t,{medianIdf:i.medianIdf}):se(e.callees,n.callees,t,{medianIdf:i.medianIdf,magnitudeA:i.magnitudeA,magnitudeB:i.magnitudeB})}function Ae(e,n){if(e.similarity<n.minSimilarity)return!1;let t=e.significantShared.length+e.trivialShared.length;return e.significantShared.length>=n.requireSignificantShared||t>=n.requireSharedCount}function Tn(e,n={}){let{minSimilarity:t=.5,limit:i=20,scope:r,minCallees:s=4,crossFileOnly:a=!1,scanLimit:l}=n,c=n.semantic!==!1,m=A(),g=0,f=0,o=0,u=0,d=0,p=0,S=0;return y("similar.all",()=>{let b=G(e).calleeIndex({minCallees:s,scope:r,scanLimit:l,semantic:c}),C=b.corpus;g=C.length;let v=n.focusFiles,k=[],P=0;return y("similar.all.pair-scan",()=>{for(let x=0;x<C.length;x+=1){let F=C[x],T=v?.has(F.file)??!1,w=b.weightedMagnitudes[x],M=new Set;for(let O of F.callees){let L=b.candidateIndexesByCallee.get(O);if(L)for(let R of L)R<=x||v&&!T&&!v.has(C[R].file)||M.add(R)}m&&(o+=M.size,M.size>0&&(f+=1));for(let O of M){let L=C[O];if(a&&F.file===L.file){m&&(d+=1);continue}if(me(F,L)){m&&(p+=1);continue}m&&(u+=1);let R=ue(F,L,b.idfWeights,{minSimilarity:t,requireSignificantShared:2,requireSharedCount:4,medianIdf:b.medianIdf,magnitudeA:w,magnitudeB:b.weightedMagnitudes[O]});R&&(Be(k,R,i,P),m&&(S+=1),P+=1)}}},()=>({corpusSize:g,candidateSets:f,candidatePairs:o,comparedPairs:u,crossFileSkips:d,signatureSkips:p,insertedResults:S,topResults:k.length})),y("similar.all.sort-project",()=>(k.sort((x,F)=>F.result.similarity-x.result.similarity||x.order-F.order),k.map(x=>x.result)),()=>({topResults:k.length}))},()=>({minSimilarity:t,limit:i,scope:r,minCallees:s,crossFileOnly:a,scanLimit:l,semantic:c,corpusSize:g,candidateSets:f,candidatePairs:o,comparedPairs:u,crossFileSkips:d,signatureSkips:p,insertedResults:S}))}function Ln(e,n={}){let{minSimilarity:t=.5,scope:i,minCallees:r=4,crossFileOnly:s=!1,scanLimit:a}=n,l=n.semantic!==!1,c=A(),m=0,g=0,f=0,o=0,u=0,d=0,p=0;return y("similar.all-count",()=>{let h=G(e).calleeIndex({minCallees:r,scope:i,scanLimit:a,semantic:l}),b=h.corpus;m=b.length;let C=n.focusFiles;return y("similar.all-count.pair-scan",()=>{for(let v=0;v<b.length;v+=1){let k=b[v],P=C?.has(k.file)??!1,x=h.weightedMagnitudes[v],F=new Set;for(let T of k.callees){let w=h.candidateIndexesByCallee.get(T);if(w)for(let M of w)M<=v||C&&!P&&!C.has(b[M].file)||F.add(M)}c&&(f+=F.size,F.size>0&&(g+=1));for(let T of F){let w=b[T];if(s&&k.file===w.file){c&&(u+=1);continue}if(me(k,w)){c&&(d+=1);continue}c&&(o+=1),Le(k,w,h.idfWeights,{minSimilarity:t,requireSignificantShared:2,requireSharedCount:4,medianIdf:h.medianIdf,magnitudeA:x,magnitudeB:h.weightedMagnitudes[T]})&&(p+=1)}}},()=>({corpusSize:m,candidateSets:g,candidatePairs:f,comparedPairs:o,crossFileSkips:u,signatureSkips:d,insertedResults:p})),p},()=>({minSimilarity:t,scope:i,minCallees:r,crossFileOnly:s,scanLimit:a,semantic:l,corpusSize:m,candidateSets:g,candidatePairs:f,comparedPairs:o,crossFileSkips:u,signatureSkips:d,insertedResults:p}))}function me(e,n){if(e.paramCount<0||n.paramCount<0)return!1;let t=Math.abs(e.paramCount-n.paramCount),i=Math.max(2,Math.ceil(Math.max(e.paramCount,n.paramCount)*.5));return t>i}var de=Q({kind:"source-fingerprints",invalidation:ee("source-fingerprints"),serialize:cn,deserialize:ln});function Be(e,n,t,i){if(t<=0)return;if(e.length<t){e.push({result:n,order:i});return}let r=0;for(let a=1;a<e.length;a+=1){let l=e[a],c=e[r];(l.result.similarity<c.result.similarity||l.result.similarity===c.result.similarity&&l.order>c.order)&&(r=a)}let s=e[r];n.similarity<=s.result.similarity||(e[r]={result:n,order:i})}var Ee=["ScipDatabase#all","ScipDatabase#get","ScipDatabase#prepare","ScipDatabase#pathExclusionsFor","ScipDatabase#isIgnored","ScipDatabase#symbolNoiseFor","PerDbValue#get","PerDbValue#has",":storage:db:ScipDatabase:all",":storage:db:ScipDatabase:get",":storage:db:ScipDatabase:prepare",":storage:db:ScipDatabase:pathExclusionsFor",":storage:db:ScipDatabase:isIgnored",":storage:db:ScipDatabase:symbolNoiseFor",":storage:per-db-cache:PerDbValue:get",":storage:per-db-cache:PerDbValue:has"];function ze(e,n,t){let i=D(e,n);if(!i||!$(i.symbol))return null;let r=new q(e),s=ne(e,i,{semantic:t.semantic,semanticEvidence:ie});return{symbol:i.symbol,file:i.relativePath,callees:pe(s.map(a=>a.symbol)),paramCount:r.callableSignature(i)?.paramCount??-1}}var De=z("callee-fingerprint-corpus",{clearGroups:["whole-project","definition-catalog"]}),qe=z("callee-fingerprint-index",{clearGroups:["whole-project","definition-catalog"]});function fe(e,n){let{minCallees:t,scope:i,excludeSymbol:r,scanLimit:s}=n,a=n.semantic!==!1,l=De.get(e,()=>new Map),c=`${t}|${i??""}|${s??""}|${a}`,m=!0,g=0,f=0;return y("similar.callee-fingerprints.resolve",()=>{let o=l.get(c);if(m=o!==void 0,o||(o=$e(e,{minCallees:t,scope:i,scanLimit:s,semantic:a}),l.set(c,o)),g=o.length,r===void 0)return o;let u=o.filter(d=>d.symbol!==r);return f=o.length-u.length,u},()=>({minCallees:t,scope:i,scanLimit:s,semantic:a,cacheHit:m,corpusSize:g,excludeSymbol:r!==void 0,excludedSymbols:f}))}function Ne(e,n){let{minCallees:t,scope:i,scanLimit:r}=n,s=n.semantic!==!1,a=qe.get(e,()=>new Map),l=`${t}|${i??""}|${r??""}|${s}`,c=!0,m=0,g=0,f=0;return y("similar.callee-index.resolve",()=>{let o=a.get(l);return c=o!==void 0,o||(o=Pe(fe(e,{minCallees:t,scope:i,scanLimit:r,semantic:s})),a.set(l,o)),m=o.corpus.length,g=o.docFreq.size,f=o.candidateIndexesByCallee.size,o},()=>({minCallees:t,scope:i,scanLimit:r,semantic:s,cacheHit:c,corpusSize:m,indexedCallees:g,candidateBuckets:f}))}function G(e){return{calleeCorpus:n=>fe(e,n),calleeIndex:n=>Ne(e,n),sourceCorpus:(n={})=>Fe(e,n),sourceIndex:(n={})=>ce(e,n),sourceCandidates:(n,t)=>(t.candidateMode??"full")==="target-pruned"?Qe(e,n,{minSimilarity:t.minSimilarity,scanLimit:t.scanLimit}):Ye(n,ce(e,{scanLimit:t.scanLimit}))}}function Pe(e){let n=A(),t=0,i=y("similar.callee-index.doc-frequency",()=>{let o=new Map;for(let u of e)for(let d of u.callees)o.set(d,(o.get(d)??0)+1);return t=o.size,o},()=>({corpusSize:e.length,uniqueCallees:t})),r=Math.max(8,Math.ceil(Math.sqrt(e.length))),s=y("similar.callee-index.idf-weights",()=>V(i,e.length),()=>({corpusSize:e.length,uniqueCallees:i.size})),a=y("similar.callee-index.weighted-magnitudes",()=>e.map(o=>E(o.callees,s)),()=>({corpusSize:e.length})),l=0,c=0,m=0,g=y("similar.callee-index.candidate-buckets",()=>{let o=new Map;for(let u=0;u<e.length;u+=1){let d=e[u];for(let p of d.callees){if((i.get(p)??0)>r){n&&(c+=1);continue}let S=o.get(p);S||(S=[],o.set(p,S)),S.push(u),n&&(l+=1)}}return n&&(m=o.size),o},()=>({corpusSize:e.length,buckets:m,candidateRefs:l,ubiquitousSkips:c,ubiquityThreshold:r})),f=y("similar.callee-index.median-idf",()=>j(s),()=>({uniqueCallees:s.size}));return{corpus:e,candidateIndexesByCallee:g,docFreq:i,idfWeights:s,weightedMagnitudes:a,medianIdf:f,ubiquityThreshold:r}}function Oe(e,n){let t=new Map;for(let i of e.callees)for(let r of n.candidateIndexesByCallee.get(i)??[]){let s=n.corpus[r];s.symbol!==e.symbol&&t.set(s.symbol,s)}return t.size>0?[...t.values()]:n.corpus.filter(i=>i.symbol!==e.symbol)}function $e(e,n){let{minCallees:t,scope:i,scanLimit:r,semantic:s}=n,a=A(),l=new q(e),c=0,m=y("similar.callee-fingerprints.candidates",()=>{let p=_(l.productionCallableDefinitions({scope:i,minLoc:5,sortByLocDesc:typeof r=="number"&&r>0}),r);return c=p.length,p},()=>({scope:i,scanLimit:r,candidateCount:c})),g=0,f=y("similar.callee-fingerprints.callee-map",()=>{let p=l.calleeMap(m,{semantic:s});if(a)for(let S of p.values())g+=S.length;return p},()=>({candidateCount:c,semantic:s,calleeEdges:g})),o=0,u=0,d=0;return y("similar.callee-fingerprints.shape",()=>{let p=m.map(b=>({symbol:b.symbol,file:b.relativePath,callees:pe((f.get(b.symbolId)??[]).filter(C=>C.kind!=="jsx-render").map(C=>C.symbol)),paramCount:l.callableSignature(b)?.paramCount??-1})),S=_e(p);a&&(d=S.filter((b,C)=>b.callees.size!==p[C].callees.size).length);let h=S.filter(b=>b.callees.size>=t);return o=h.length,a&&(u=h.reduce((b,C)=>b+C.callees.size,0)),h},()=>({candidateCount:c,fingerprintCount:o,retainedCalleeCount:u,minCallees:t,siblingSaturatedFingerprints:d}))}var ge=5;function _e(e){let n=new Map;for(let t of e){let i=n.get(t.file);i||(i=new Map,n.set(t.file,i));for(let r of t.callees)i.set(r,(i.get(r)??0)+1)}return e.map(t=>{let i=n.get(t.file);if(!i)return t;let r=[...t.callees].filter(a=>(i.get(a)??0)>=ge);if(r.length===0)return t;let s=new Set(t.callees);for(let a of r)s.delete(a);return{...t,callees:s}})}function je(e,n){let t=new Map;for(let s of n)if(!(s.file!==e.file||s.symbol===e.symbol))for(let a of s.callees)t.set(a,(t.get(a)??0)+1);let i=[...e.callees].filter(s=>(t.get(s)??0)+1>=ge);if(i.length===0)return e;let r=new Set(e.callees);for(let s of i)r.delete(s);return{...e,callees:r}}function pe(e){return new Set([...e].filter(n=>!Ge(n)))}function Ge(e){return Ee.some(n=>e.includes(n))}function ae(e,n,t){let i=Ve(e,n);if(!i||i.tokens.size<3)return[];let r=t.minSimilarity>=.5?t.minSimilarity:.3,s=[],a=t.candidateMode??"full",l=0,c=0,m=0,g=0;return y("similar.source-shape",()=>{let o=G(e).sourceCandidates(i,{minSimilarity:r,scanLimit:t.scanLimit,candidateMode:a});l=o.length;for(let u of o){if(u.symbol===i.symbol||u.tokens.size<3)continue;c+=1;let d=te(i.tokens,u.tokens);if(d.size<2){m+=1;continue}let p=new Set([...i.tokens,...u.tokens]),S=p.size>0?d.size/p.size:0;if(S<r){g+=1;continue}s.push({symbolA:i.symbol,shortNameA:I(i.symbol),fileA:i.file,symbolB:u.symbol,shortNameB:I(u.symbol),fileB:u.file,similarity:S,similarityBasis:"source-tokens",sharedCallees:[...d].sort(),uniqueToA:[...N(i.tokens,u.tokens)].sort(),uniqueToB:[...N(u.tokens,i.tokens)].sort(),...Se([...d],"source-tokens")})}return s.sort((u,d)=>d.similarity-u.similarity||u.shortNameB.localeCompare(d.shortNameB)),s.slice(0,t.limit)},()=>({symbol:i.symbol,file:i.file,targetTokens:i.tokens.size,candidateMode:a,candidates:l,comparedPairs:c,sharedSkips:m,similaritySkips:g,results:s.length}))}function Se(e,n){let t=e.flatMap(W),i=e.flatMap(S=>oe(S,n)),r=Z(t,be),s=Z(t,ye),a=Z(i,X),l=[...new Set(i.filter(le))],c=e.filter(S=>{let h=oe(S,n);return h.some(b=>X.has(b))&&h.some(le)}).length,m=[];r.length>0&&m.push(`access/query scaffolding: ${r.slice(0,5).join(", ")}`),s.length>0&&m.push(`framework/generic scaffolding: ${s.slice(0,5).join(", ")}`),a.length>0&&m.push(`domain behavior verbs: ${a.slice(0,5).join(", ")}`),a.length>0&&l.length>0&&m.push(`domain-specific terms: ${l.slice(0,5).join(", ")}`);let g=n==="source-tokens"&&t.length>0&&t.every(S=>he.has(S));g&&m.push("shared source tokens are generic scaffolding");let f=a.length>0&&l.length>0,o=r.length+s.length>0,u=n==="callees"&&f&&e.length>=4&&l.length>=4&&c>=2,d=u?"domain-behavior":f?o?"mixed":"domain-behavior":r.length>0?"access-query-scaffolding":s.length>0||g?"framework-scaffolding":"structural-overlap";d==="structural-overlap"&&e.length>0&&m.push(`shared ${n} overlap has no recognized domain or scaffolding category`);let p=d==="domain-behavior"&&(e.length>=3||u)?"direct":"signal";return{evidenceClass:d,actionTier:p,evidenceClassReasons:m,recommendation:Ue(d,p)}}function Ue(e,n){return n==="direct"?"Shared domain behavior looks concrete; review for an extract/reuse opportunity.":e==="mixed"?"Shared evidence mixes domain behavior with scaffolding; review semantics before extracting anything.":e==="access-query-scaffolding"?"Shared evidence is mostly access/query scaffolding; compare product semantics before reusing code.":e==="structural-overlap"?"Shared structure has no domain or scaffolding classification; inspect names and behavior before reusing code.":"Shared evidence is mostly framework or generic scaffolding; treat as a contextual signal."}function Z(e,n){return[...new Set(e.filter(t=>n.has(t)))]}function W(e){return e.replace(/([a-z0-9])([A-Z])/g,"$1 $2").toLowerCase().split(/[^a-z0-9]+/).filter(n=>n.length>1)}function oe(e,n){if(n==="source-tokens")return W(e);let t=K(e);return W(t.length>0?t:He(e))}function He(e){return e.replace(/[()`]/g," ").replace(/\.[a-z][a-z0-9]+(?=\s|$)/gi," ").split(/[:/\\\s]+/).map(i=>i.trim()).filter(i=>/[A-Za-z]/.test(i)).at(-1)?.replace(/\.$/,"")??e}function le(e){return e.length>3&&!X.has(e)&&!be.has(e)&&!ye.has(e)&&!he.has(e)&&!Ke.has(e)}var X=new Set(["archive","assign","book","cancel","create","delete","ensure","export","import","notify","persist","publish","restore","schedule","send","set","submit","sync","update","upload","validate","write"]),be=new Set(["access","auth","authorize","cache","context","db","find","get","guard","list","permission","permissions","prisma","query","request","response","role","route","session","sql","where"]),ye=new Set(["bytes","computed","crypto","describe","effect","expect","fetch","filter","hex","hook","json","map","mounted","on","promise","random","react","reduce","ref","render","state","test","token","trim","uuid","vue","watch"]),he=new Set(["bytes","crypto","data","false","get","hex","id","key","map","name","num","random","result","secret","set","string","to","token","true","type","value"]),Ke=new Set(["best","backend","conflict","database","effect","effects","error","errors","frontend","found","helpers","javascript","module","modules","scip","shared","source","typescript","utils","with","workflow","workflows"]);function Ve(e,n){let t=D(e,n);if(!t||!$(t.symbol))return null;let i=Ze(e,t);return i?{symbol:t.symbol,file:t.relativePath,tokens:i}:null}function Ze(e,n){let t=K(n.symbol),i=sn(e,n.relativePath,n.startLine,n.endLine,t),r=Ie(i,t);return r.size>0?r:null}var We=z("source-fingerprint-corpus",{clearGroups:["whole-project","definition-catalog"]}),Xe=z("source-fingerprint-index",{clearGroups:["whole-project","definition-catalog"]});function Ce(e){return`${e.scanLimit??""}`}function Fe(e,n={}){let t=We.get(e,()=>new Map),i=Ce(n),r=t.get(i);return r||(r=rn(e,n),t.set(i,r)),r}function ce(e,n={}){let t=Xe.get(e,()=>new Map),i=Ce(n),r=t.get(i);return r||(r=Je(Fe(e,n)),t.set(i,r)),r}function Je(e){let n=new Map;for(let r of e)for(let s of r.tokens)n.set(s,(n.get(s)??0)+1);let t=Math.max(8,Math.ceil(Math.sqrt(e.length))),i=new Map;for(let r of e)for(let s of r.tokens){if((n.get(s)??0)>t)continue;let a=i.get(s);a||(a=[],i.set(s,a)),a.push(r)}return{corpus:e,candidateByToken:i,docFreq:n,ubiquityThreshold:t}}function Ye(e,n){let t=new Map;for(let i of e.tokens)for(let r of n.candidateByToken.get(i)??[])r.symbol!==e.symbol&&t.set(r.symbol,r);return t.size>0?[...t.values()]:n.corpus.filter(i=>i.symbol!==e.symbol)}function Qe(e,n,t){let i=A(),r=new q(e),s=en(n.tokens.size,t.minSimilarity),a=0,l=0,c=0,m=y("similar.source-shape.target-files",()=>{let d=[...n.tokens],p=[];for(let S of Y(e,{includeIgnored:!1})){a+=1;let h=U(e,S);h&&(l+=1,nn(h,d,s)&&p.push(S))}return c=p.length,p},()=>({symbol:n.symbol,targetTokens:n.tokens.size,requiredSharedTokens:s,scannedFiles:a,readableFiles:l,candidateFiles:c})),g=0,f=y("similar.source-shape.target-definitions",()=>{let d=_(r.productionCallableDefinitions({files:m,sortByLocDesc:typeof t.scanLimit=="number"&&t.scanLimit>0}),t.scanLimit);return g=d.length,d},()=>({symbol:n.symbol,candidateFiles:c,scanLimit:t.scanLimit,definitionCount:g})),o=0;return y("similar.source-shape.target-fingerprints",()=>{let d=xe(e,f);return i&&(o=d.length),d},()=>({symbol:n.symbol,definitionCount:g,fingerprintCount:o})).filter(d=>d.symbol!==n.symbol)}function en(e,n){return Math.max(2,Math.ceil(e*n))}function nn(e,n,t){if(n.length<t)return!1;let i=e.toLowerCase(),r=0;for(let s of n)if(tn(i,s)&&(r+=1,r>=t))return!0;return!1}function tn(e,n){return n==="num"?/\b\d+\b/.test(e):e.includes(n)}function rn(e,n={}){let t=new q(e),{scanLimit:i}=n,r=_(t.productionCallableDefinitions({sortByLocDesc:typeof i=="number"&&i>0}),i);return xe(e,r)}function xe(e,n){let t=new Map;for(let r of n){let s=t.get(r.relativePath)??[];s.push(r),t.set(r.relativePath,s)}let i=new Map;for(let[r,s]of t){let a=U(e,r);if(!a)continue;let l=J(e,r,a),c=on(e,r,l),m=!1,g=null;for(let f of s){let o=an(f),u=c.get(o),d=u?new Set(u.tokens):null;d||(g??=H(e,r),d=Ie(ke(g,f.startLine,f.endLine,f.leaf),f.leaf),c.set(o,{key:o,symbol:f.symbol,startLine:f.startLine,endLine:f.endLine,leaf:f.leaf,tokens:[...d].sort()}),m=!0),d.size>0&&i.set(f.symbol,{symbol:f.symbol,file:f.relativePath,tokens:d})}m&&un(e,r,l,c)}return n.map(r=>i.get(r.symbol)).filter(r=>!!r)}function sn(e,n,t,i,r){let s=H(e,n);return s.length===0?"":ke(s,t,i,r)}function ke(e,n,t,i){if(t>=n&&t-n<=12)return e.slice(n,t+1).join(`
2
+ `);let r=[new RegExp(`\\bdef\\s+${B(i)}\\b`),new RegExp(`\\bfun\\s+${B(i)}\\b`),new RegExp(`\\bfn\\s+${B(i)}\\b`),new RegExp(`\\bfunction\\s+${B(i)}\\b`),new RegExp(`\\b${B(i)}\\s*\\(`)],s=e.findIndex(a=>r.some(l=>l.test(a)));if(s>=0){let a=s;for(let l=s+1;l<e.length&&l<=s+8;l++){let c=e[l]??"";if(l>s&&dn(c)||(a=l,c.trim()===""&&l>s+1))break}return e.slice(s,a+1).join(`
3
+ `)}return e.slice(n,Math.min(e.length,n+8)).join(`
4
+ `)}function an(e){return`${e.symbol}\0${e.startLine}\0${e.endLine}\0${e.leaf}`}function on(e,n,t){return de.read(e,n,t)??new Map}function ln(e){try{let n=JSON.parse(e);if(!Array.isArray(n.entries))return null;let t=new Map;for(let i of n.entries){if(!i||typeof i.key!="string"||typeof i.symbol!="string"||typeof i.startLine!="number"||typeof i.endLine!="number"||typeof i.leaf!="string"||!Array.isArray(i.tokens)||!i.tokens.every(r=>typeof r=="string"))return null;t.set(i.key,i)}return t}catch{return null}}function cn(e){let n={entries:[...e.values()].sort((t,i)=>t.key.localeCompare(i.key))};return JSON.stringify(n)}function un(e,n,t,i){de.write(e,n,t,new Map(i))}function Ie(e,n){if(!e)return new Set;let t=new Set(["public","private","protected","final","static","class","def","fun","fn","function","return","string","bool","boolean","void","unit","self","this","new","const","let","var","end","pub"]),i=mn(n),s=e.replace(/["'`]/g," ").replace(/\b\d+\b/g," NUM ").replace(/([a-z0-9])([A-Z])/g,"$1 $2").replace(/[^A-Za-z0-9_]+/g," ").replace(/_/g," ").toLowerCase().split(/\s+/).map(a=>a.trim()).filter(a=>a.length>1).filter(a=>!t.has(a)).filter(a=>!i.has(a));return new Set(s)}function mn(e){return new Set(e.replace(/([a-z0-9])([A-Z])/g,"$1 $2").split(/[^A-Za-z0-9_]+|_/).map(n=>n.toLowerCase()).filter(n=>n.length>1))}function dn(e){return/^\s*(?:def|fun|fn|function|class|trait|module|object|enum|interface|public|private|protected)\b/.test(e)}export{ve as a,Mn as b,Te as c,ue as d,Tn as e,Ln as f,Be as g,fe as h,Ne as i,G as j,Pe as k,Oe as l,ge as m,_e as n,pe as o,Se as p};
5
+ //# sourceMappingURL=chunk-ZFVPWH62.js.map
@@ -0,0 +1,2 @@
1
+ import{a as p}from"./chunk-7KCZELVM.js";import{e as h,f as u}from"./chunk-AADQLOQ4.js";import{a as t}from"./chunk-WDSFQDPN.js";import{a as m}from"./chunk-2USA3S3P.js";import{c as i,g as d}from"./chunk-BL6DCHQP.js";function k(c,v,y={}){let l=m(c,v);if(!l)return null;let o=y.semantic!==!1,b=u(c,l,{semantic:o,semanticEvidence:t}).filter(e=>d(e.symbol)).slice(0,50),g=p(h(c,l,{limit:50,additive:!0,callableOnly:!0,semantic:o,semanticEvidence:t})),r=b.map(e=>({symbol:e.symbol,shortName:i(e.symbol),file:e.file,relationship:e.source!=="caller-map-inversion"?"reference-candidate":e.callEvidence==="scip-chunk"?"chunk-candidate":"resolved-call",evidenceStrength:e.source==="caller-map-inversion"&&e.callEvidence!=="scip-chunk"?"exact":"candidate",evidenceSource:e.callEvidence??e.source})),s=g.map(e=>({symbol:e.symbol,shortName:i(e.symbol),file:e.file,relationship:e.source==="scip-chunk"?"chunk-candidate":"resolved-call",evidenceStrength:e.source==="scip-chunk"?"candidate":"exact",evidenceSource:e.source,...e.kind==="jsx-render"?{interaction:"render"}:{}}));return{symbol:l.symbol,shortName:i(l.symbol),callers:r.map(({symbol:e,shortName:a,file:n})=>({symbol:e,shortName:a,file:n})),callees:s.map(({symbol:e,shortName:a,file:n})=>({symbol:e,shortName:a,file:n})),callerEvidence:r,calleeEvidence:s,coverage:{scope:"indexed-static-call-graph",blindSpots:["unresolved dynamic dispatch and reflection","external or unindexed callees without a resolved symbol identity","SCIP chunk co-occurrence is retained only as candidate call evidence"]}}}export{k as a};
2
+ //# sourceMappingURL=chunk-ZGIHTH27.js.map
@@ -1,2 +1,2 @@
1
- import{Aa as j,f as T,ra as x,ua as m,va as P,wa as k,x as v,ya as b}from"./chunk-GH5YSGZL.js";import{createHash as A}from"crypto";import{isUtf8 as K}from"buffer";import{TextDecoder as _}from"util";var O=new _("utf-8",{fatal:!0});function H(e){return j(e.config.projectRoot)}function V(e,t){let i=T(t),n;try{n=m(e.config.projectRoot,i,{inputKind:"repository text file"})}catch(o){if(b(o)||o instanceof x)return null;throw o}let r=W(n);return r===null?null:w(i,n,r,E(e),L(e))}function X(e,t={}){let i=[],n=C(e,t,r=>i.push(r));return{files:i,candidateFiles:n.candidateFiles,scannedBytes:n.scannedBytes,skippedBinaryPaths:n.skippedBinaryPaths,skippedUnreadablePaths:n.skippedUnreadablePaths,skippedOversizedPaths:n.skippedOversizedPaths}}function C(e,t,i){let n=H(e).filter(s=>!t.scope||s.includes(t.scope)),r=E(e),o=L(e),u=[],S=[],B=[],f=0,d=0,h={aligned:0,stale:0,unavailable:0},l=t.literalBytes?Buffer.isBuffer(t.literalBytes)?[t.literalBytes]:[...t.literalBytes]:[],F=l.length>0?Buffer.allocUnsafe(1024*1024):void 0;for(let s of n){let c,p,g=[],y=o.has(s);try{if(l.length>0){let a=l.length===1?P(e.config.projectRoot,s,l[0],{inputKind:"repository text file",computeSha256:y,scratchBuffer:F}):k(e.config.projectRoot,s,l,{inputKind:"repository text file",computeSha256:y,scratchBuffer:F});if(!a.isUtf8Text){u.push(s);continue}f+=a.byteLength,d+=1,p=a.sha256;let z=R(s,p,r,o);if(h[z.state]+=1,g="matchedLiteralIndexes"in a?a.matchedLiteralIndexes:a.includesLiteral?[0]:[],g.length===0||!a.bytes)continue;c=a.bytes}else c=m(e.config.projectRoot,s,{inputKind:"repository text file"})}catch(a){if(a instanceof x){B.push(s);continue}if(b(a))continue;S.push(s);continue}if(l.length===0&&!I(c)){u.push(s);continue}if(l.length===0){f+=c.byteLength,d+=1,p=y?M(c):void 0;let a=R(s,p,r,o);h[a.state]+=1}if(t.includeBytes&&!t.includeBytes(s,c))continue;let U=O.decode(c);i(w(s,c,U,r,o,p),g)}return{candidateFiles:n.length,scannedTextFiles:d,semanticFiles:h,scannedBytes:f,skippedBinaryPaths:u,skippedUnreadablePaths:S,skippedOversizedPaths:B}}function w(e,t,i,n,r,o){let u=o??M(t);return{relativePath:e,text:i,bytes:t.byteLength,freshness:{exactText:{state:"current",basis:"working-tree-read",sha256:u},semantic:R(e,u,n,r)}}}function R(e,t,i,n){if(!n.has(e))return{state:"unavailable",basis:"no-compiler-document"};let r=i.get(e);return!r||!t?{state:"unavailable",basis:"fingerprint-unavailable"}:{state:r===t?"aligned":"stale",basis:"indexed-input-fingerprint"}}function L(e){return new Set(e.all(`SELECT documents.relative_path FROM documents WHERE 1 = 1 ${e.pathExclusionsFor("documents")}`).map(t=>t.relative_path))}function E(e){let t=new Map;if(!e.generation.metadataRaw)return t;let i=v(e.generation.metadataRaw);if(i.kind!=="legacy"&&i.kind!=="supported")return t;let n=i.metadata.fingerprint;if(!D(n)||!Array.isArray(n.files))return t;for(let r of n.files)!D(r)||typeof r.path!="string"||typeof r.hash!="string"||t.set(r.path,r.hash);return t}function W(e){return I(e)?O.decode(e):null}function I(e){return!e.includes(0)&&K(e)}function M(e){return A("sha256").update(e).digest("hex")}function D(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}export{H as a,V as b,X as c,C as d};
2
- //# sourceMappingURL=chunk-QKT4UI2Y.js.map
1
+ import{Aa as k,Ca as b,Ea as j,f as T,va as x,x as v,ya as m,za as P}from"./chunk-JZ2A7LDM.js";import{createHash as A}from"crypto";import{isUtf8 as K}from"buffer";import{TextDecoder as _}from"util";var O=new _("utf-8",{fatal:!0});function H(e){return j(e.config.projectRoot)}function V(e,t){let i=T(t),n;try{n=m(e.config.projectRoot,i,{inputKind:"repository text file"})}catch(o){if(b(o)||o instanceof x)return null;throw o}let r=W(n);return r===null?null:w(i,n,r,E(e),L(e))}function X(e,t={}){let i=[],n=C(e,t,r=>i.push(r));return{files:i,candidateFiles:n.candidateFiles,scannedBytes:n.scannedBytes,skippedBinaryPaths:n.skippedBinaryPaths,skippedUnreadablePaths:n.skippedUnreadablePaths,skippedOversizedPaths:n.skippedOversizedPaths}}function C(e,t,i){let n=H(e).filter(s=>!t.scope||s.includes(t.scope)),r=E(e),o=L(e),u=[],S=[],B=[],f=0,d=0,h={aligned:0,stale:0,unavailable:0},l=t.literalBytes?Buffer.isBuffer(t.literalBytes)?[t.literalBytes]:[...t.literalBytes]:[],F=l.length>0?Buffer.allocUnsafe(1024*1024):void 0;for(let s of n){let c,p,g=[],y=o.has(s);try{if(l.length>0){let a=l.length===1?P(e.config.projectRoot,s,l[0],{inputKind:"repository text file",computeSha256:y,scratchBuffer:F}):k(e.config.projectRoot,s,l,{inputKind:"repository text file",computeSha256:y,scratchBuffer:F});if(!a.isUtf8Text){u.push(s);continue}f+=a.byteLength,d+=1,p=a.sha256;let z=R(s,p,r,o);if(h[z.state]+=1,g="matchedLiteralIndexes"in a?a.matchedLiteralIndexes:a.includesLiteral?[0]:[],g.length===0||!a.bytes)continue;c=a.bytes}else c=m(e.config.projectRoot,s,{inputKind:"repository text file"})}catch(a){if(a instanceof x){B.push(s);continue}if(b(a))continue;S.push(s);continue}if(l.length===0&&!I(c)){u.push(s);continue}if(l.length===0){f+=c.byteLength,d+=1,p=y?M(c):void 0;let a=R(s,p,r,o);h[a.state]+=1}if(t.includeBytes&&!t.includeBytes(s,c))continue;let U=O.decode(c);i(w(s,c,U,r,o,p),g)}return{candidateFiles:n.length,scannedTextFiles:d,semanticFiles:h,scannedBytes:f,skippedBinaryPaths:u,skippedUnreadablePaths:S,skippedOversizedPaths:B}}function w(e,t,i,n,r,o){let u=o??M(t);return{relativePath:e,text:i,bytes:t.byteLength,freshness:{exactText:{state:"current",basis:"working-tree-read",sha256:u},semantic:R(e,u,n,r)}}}function R(e,t,i,n){if(!n.has(e))return{state:"unavailable",basis:"no-compiler-document"};let r=i.get(e);return!r||!t?{state:"unavailable",basis:"fingerprint-unavailable"}:{state:r===t?"aligned":"stale",basis:"indexed-input-fingerprint"}}function L(e){return new Set(e.all(`SELECT documents.relative_path FROM documents WHERE 1 = 1 ${e.pathExclusionsFor("documents")}`).map(t=>t.relative_path))}function E(e){let t=new Map;if(!e.generation.metadataRaw)return t;let i=v(e.generation.metadataRaw);if(i.kind!=="legacy"&&i.kind!=="supported")return t;let n=i.metadata.fingerprint;if(!D(n)||!Array.isArray(n.files))return t;for(let r of n.files)!D(r)||typeof r.path!="string"||typeof r.hash!="string"||t.set(r.path,r.hash);return t}function W(e){return I(e)?O.decode(e):null}function I(e){return!e.includes(0)&&K(e)}function M(e){return A("sha256").update(e).digest("hex")}function D(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}export{H as a,V as b,X as c,C as d};
2
+ //# sourceMappingURL=chunk-ZGIQN2SX.js.map