scip-query 0.23.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 (432) hide show
  1. package/CHANGELOG.md +244 -1
  2. package/README.md +2 -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-WIWY3CRX.js → chunk-2GJSD5GY.js} +2 -2
  9. package/dist/{chunk-W5OXRYGE.js → chunk-2M2LSIMY.js} +3 -3
  10. package/dist/{chunk-2LDBDR6J.js → chunk-2N6WBNDC.js} +2 -2
  11. package/dist/{chunk-HOENASQM.js → chunk-2USA3S3P.js} +2 -2
  12. package/dist/chunk-2VAHDDLM.js +133 -0
  13. package/dist/chunk-2XWIUW5Z.js +455 -0
  14. package/dist/chunk-3D4BOXW6.js +20 -0
  15. package/dist/{chunk-BBCIS4DX.js → chunk-3LO4FST5.js} +2 -2
  16. package/dist/chunk-3WTY4LP2.js +3 -0
  17. package/dist/{chunk-UXW33INU.js → chunk-3Z5AMSK6.js} +2 -2
  18. package/dist/{chunk-4ILJCCXV.js → chunk-44IETFOU.js} +2 -2
  19. package/dist/chunk-4FR6GQIT.js +2 -0
  20. package/dist/chunk-4KBTHJLP.js +2 -0
  21. package/dist/{chunk-SSK6LDPC.js → chunk-5BIKR67W.js} +2 -2
  22. package/dist/{chunk-IHGQTTVW.js → chunk-5PROPLHI.js} +2 -2
  23. package/dist/{chunk-TA3QKLLU.js → chunk-5V7EPTII.js} +2 -2
  24. package/dist/{chunk-JS4PGXMV.js → chunk-62LPZCBQ.js} +2 -2
  25. package/dist/{chunk-DBRSYFXR.js → chunk-64O2JHQA.js} +2 -2
  26. package/dist/chunk-6D4F5VWG.js +10 -0
  27. package/dist/{chunk-BHVUJOCQ.js → chunk-6ERFBC3X.js} +2 -2
  28. package/dist/{chunk-ILTDAWEF.js → chunk-6ILKOOGH.js} +2 -2
  29. package/dist/chunk-6MFXCMZC.js +2 -0
  30. package/dist/chunk-6O7FACKB.js +2 -0
  31. package/dist/{chunk-XDQMU3BT.js → chunk-6TS3KOXR.js} +2 -2
  32. package/dist/{chunk-YI2AWIHC.js → chunk-76QOU4PK.js} +2 -2
  33. package/dist/{chunk-7CYG22FH.js → chunk-7DUI77BN.js} +2 -2
  34. package/dist/{chunk-IDFEUFKS.js → chunk-7F7T6DCR.js} +2 -2
  35. package/dist/chunk-7H6VHWWJ.js +2 -0
  36. package/dist/chunk-7HXT6YLU.js +5 -0
  37. package/dist/{chunk-DIRJWYBM.js → chunk-7R4V5ES6.js} +4 -4
  38. package/dist/{chunk-SZHGTCPP.js → chunk-7RIRIADH.js} +2 -2
  39. package/dist/chunk-7ZLWLOGT.js +2 -0
  40. package/dist/{chunk-M2O5NY6W.js → chunk-A4WEAK35.js} +2 -2
  41. package/dist/chunk-AADQLOQ4.js +38 -0
  42. package/dist/{chunk-OLNV6I6U.js → chunk-AN76MGUE.js} +2 -2
  43. package/dist/chunk-ANLNLY66.js +2 -0
  44. package/dist/chunk-ATXPTSEI.js +81 -0
  45. package/dist/{chunk-YPWBKGFU.js → chunk-AX7IDVFT.js} +2 -2
  46. package/dist/chunk-B7MPDEAK.js +3 -0
  47. package/dist/chunk-BBB5FBX4.js +2 -0
  48. package/dist/{chunk-6I6L7Z62.js → chunk-BHKK5RJY.js} +2 -2
  49. package/dist/chunk-BJWFVAA5.js +2 -0
  50. package/dist/{chunk-UHFYCMZO.js → chunk-BKZYTLGE.js} +2 -2
  51. package/dist/chunk-BL6DCHQP.js +2 -0
  52. package/dist/{chunk-TEBQMNVI.js → chunk-BOW7SSQH.js} +2 -2
  53. package/dist/{chunk-OWOOWNJ5.js → chunk-C4RHHCKL.js} +2 -2
  54. package/dist/{chunk-N2ZSIIGR.js → chunk-C7C6AKAT.js} +6 -6
  55. package/dist/chunk-CD6M6LS2.js +16 -0
  56. package/dist/chunk-CFE6PSG6.js +2 -0
  57. package/dist/{chunk-6V5CNXL6.js → chunk-CFNIGQMT.js} +2 -2
  58. package/dist/{chunk-GUFSG5TX.js → chunk-CKBUBRYD.js} +2 -2
  59. package/dist/{chunk-4WNW27SX.js → chunk-CZW5MZ5B.js} +2 -2
  60. package/dist/chunk-DBBZ63ZX.js +2 -0
  61. package/dist/{chunk-HCXEQRFF.js → chunk-DBN7DMJB.js} +2 -2
  62. package/dist/{chunk-6PQNKL3G.js → chunk-DUULLZHZ.js} +2 -2
  63. package/dist/{chunk-Z4CDXYNQ.js → chunk-DV5Y5NOS.js} +2 -2
  64. package/dist/chunk-DZOIKCTM.js +3 -0
  65. package/dist/chunk-E4PKTOL3.js +2 -0
  66. package/dist/{chunk-EG2CPZMJ.js → chunk-E65ELFKU.js} +2 -2
  67. package/dist/{chunk-CNO7TOKL.js → chunk-E7QR35ST.js} +2 -2
  68. package/dist/{chunk-3D3QG236.js → chunk-EFSXAINW.js} +2 -2
  69. package/dist/{chunk-IL676XCC.js → chunk-EHVEIEQN.js} +2 -2
  70. package/dist/{chunk-BE7ZZTMC.js → chunk-EHYDXE3Z.js} +2 -2
  71. package/dist/{chunk-LXABEJX3.js → chunk-EP63Y6LD.js} +2 -2
  72. package/dist/{chunk-QU5XRYB5.js → chunk-EPX6NQN6.js} +2 -2
  73. package/dist/{chunk-FESCRNVV.js → chunk-ETC674NS.js} +2 -2
  74. package/dist/{chunk-OSSESPDX.js → chunk-F5GSBHC6.js} +2 -2
  75. package/dist/chunk-FH3DGXC6.js +2 -0
  76. package/dist/{chunk-YEN6CYC7.js → chunk-FI7VGOR4.js} +2 -2
  77. package/dist/chunk-FJF6VO2P.js +2 -0
  78. package/dist/{chunk-FRUSVINH.js → chunk-FLMTCX5R.js} +2 -2
  79. package/dist/chunk-FVFDOIM3.js +2 -0
  80. package/dist/{chunk-PJFGPYTU.js → chunk-G2HU5WRN.js} +2 -2
  81. package/dist/{chunk-FIQRSHVM.js → chunk-G4ALYS4J.js} +2 -2
  82. package/dist/{chunk-UVGEWT4Y.js → chunk-G56I7K4W.js} +2 -2
  83. package/dist/{chunk-WOIKCX6A.js → chunk-GC4DG2V5.js} +2 -2
  84. package/dist/chunk-GG45PK4S.js +4 -0
  85. package/dist/{chunk-XBGWL66K.js → chunk-GHNPACNP.js} +2 -2
  86. package/dist/{chunk-IICPE7B2.js → chunk-GINH3YQU.js} +2 -2
  87. package/dist/{chunk-HLZTEXRA.js → chunk-GTZZVLKJ.js} +2 -2
  88. package/dist/chunk-GXXW5ZHH.js +2 -0
  89. package/dist/{chunk-B5D7QPBE.js → chunk-HAXXKRTD.js} +2 -2
  90. package/dist/chunk-HEZWBAZY.js +2 -0
  91. package/dist/chunk-HMEWLMML.js +2 -0
  92. package/dist/{chunk-QUU5OBVK.js → chunk-HOBOVYPO.js} +2 -2
  93. package/dist/{chunk-XGZEP6GR.js → chunk-HRFQ6GW5.js} +2 -2
  94. package/dist/{chunk-MPQ4OTBM.js → chunk-HX4X7KG3.js} +2 -2
  95. package/dist/{chunk-FDLOBR6P.js → chunk-HYT2R7LX.js} +2 -2
  96. package/dist/chunk-IKQVBVQL.js +40 -0
  97. package/dist/chunk-J6GLBBRK.js +4 -0
  98. package/dist/{chunk-ZTI4SBFV.js → chunk-J7A4PWFX.js} +2 -2
  99. package/dist/{chunk-OSR2GEHQ.js → chunk-JCSAZ35V.js} +2 -2
  100. package/dist/{chunk-ESIQ66Z7.js → chunk-JDU2IV3A.js} +2 -2
  101. package/dist/chunk-JFMI5SGB.js +4 -0
  102. package/dist/{chunk-W6STWDQI.js → chunk-JJP37RGX.js} +2 -2
  103. package/dist/chunk-JZ2A7LDM.js +5 -0
  104. package/dist/chunk-KNLQGXVH.js +80 -0
  105. package/dist/chunk-KVQCECPR.js +2 -0
  106. package/dist/{chunk-SQXRS7BG.js → chunk-KXXORBZ2.js} +2 -2
  107. package/dist/{chunk-DIUFNHRJ.js → chunk-L5KYH6U3.js} +2 -2
  108. package/dist/chunk-L6XHYJPZ.js +21 -0
  109. package/dist/{chunk-2GRUZAQF.js → chunk-L7KTFEAV.js} +2 -2
  110. package/dist/{chunk-QBE3YX64.js → chunk-LDXHR5EL.js} +2 -2
  111. package/dist/{chunk-HEHOQQKH.js → chunk-MHGDSBFX.js} +2 -2
  112. package/dist/{chunk-PWWAJSKV.js → chunk-MLQVVDG3.js} +2 -2
  113. package/dist/chunk-MOKUWRHO.js +3 -0
  114. package/dist/{chunk-VQILFTEH.js → chunk-MPYAPMNE.js} +2 -2
  115. package/dist/{chunk-UICY4GTQ.js → chunk-MV6SPXCR.js} +2 -2
  116. package/dist/{chunk-HYO3NP5Q.js → chunk-MZPXPSUJ.js} +2 -2
  117. package/dist/{chunk-VZRNID6A.js → chunk-N55KIE46.js} +2 -2
  118. package/dist/{chunk-YF5IB2LF.js → chunk-NB4D3BNM.js} +2 -2
  119. package/dist/{chunk-VVZSBTSU.js → chunk-NGKBOT6G.js} +2 -2
  120. package/dist/{chunk-NJITK2GP.js → chunk-NJGKXKQF.js} +2 -2
  121. package/dist/chunk-NJQISBL4.js +8 -0
  122. package/dist/{chunk-T4N4P2K5.js → chunk-NJT3ZEKY.js} +2 -2
  123. package/dist/{chunk-FPYLNQPT.js → chunk-NKMKZP6A.js} +2 -2
  124. package/dist/chunk-NODFZ6ED.js +2 -0
  125. package/dist/{chunk-BRV7PIFF.js → chunk-NSM5IEVW.js} +2 -2
  126. package/dist/{chunk-3WR4E3A3.js → chunk-NTGUVNR2.js} +2 -2
  127. package/dist/{chunk-VUPHCS7Y.js → chunk-NU3KFF2O.js} +2 -2
  128. package/dist/chunk-NWLVNU66.js +557 -0
  129. package/dist/{chunk-D4N5SQ2M.js → chunk-NYKZMCRC.js} +2 -2
  130. package/dist/{chunk-VNLGKHS6.js → chunk-O6BUXZEH.js} +2 -2
  131. package/dist/chunk-ODPDP7A4.js +3 -0
  132. package/dist/{chunk-JTQVMR42.js → chunk-OHIV323X.js} +2 -2
  133. package/dist/chunk-OIAPEKMT.js +3 -0
  134. package/dist/chunk-OIOC5EHF.js +3 -0
  135. package/dist/{chunk-YBGKCQIS.js → chunk-ONPPQM4G.js} +2 -2
  136. package/dist/{chunk-64BFSI5I.js → chunk-OUHEZBYI.js} +2 -2
  137. package/dist/{chunk-L6PJPETJ.js → chunk-OVGYW7UD.js} +2 -2
  138. package/dist/{chunk-I55I7XXP.js → chunk-OYKU4B3Y.js} +2 -2
  139. package/dist/{chunk-J66VOFW6.js → chunk-POBJ6FR2.js} +2 -2
  140. package/dist/{chunk-CWFP7GM5.js → chunk-PSZPMMWN.js} +2 -2
  141. package/dist/chunk-PXTRBKRK.js +3 -0
  142. package/dist/{chunk-HKGFPJ4T.js → chunk-Q5JRIHT3.js} +2 -2
  143. package/dist/{chunk-P42EIXTA.js → chunk-Q7ATHARX.js} +2 -2
  144. package/dist/{chunk-JYR66JN5.js → chunk-Q7CSKIDM.js} +2 -2
  145. package/dist/{chunk-TRNAEQ6P.js → chunk-QBQE7ZJ5.js} +2 -2
  146. package/dist/{chunk-DULC3QFP.js → chunk-QH22UIXP.js} +2 -2
  147. package/dist/chunk-QXCKQTKR.js +60 -0
  148. package/dist/{chunk-ODDUPDP7.js → chunk-RBAD4GJ2.js} +5 -5
  149. package/dist/{chunk-IZDPJ2QI.js → chunk-RMDPFPNW.js} +2 -2
  150. package/dist/chunk-ROPJDEJZ.js +4 -0
  151. package/dist/{chunk-EKV5HX33.js → chunk-RVZC6TJE.js} +2 -2
  152. package/dist/{chunk-XFA4SSO3.js → chunk-S4QZBKSR.js} +2 -2
  153. package/dist/{chunk-D2DHWI3D.js → chunk-SCPMZ73U.js} +2 -2
  154. package/dist/{chunk-PZL5T7SU.js → chunk-SIAP5RGI.js} +2 -2
  155. package/dist/{chunk-7IWV2EG3.js → chunk-SIX4RFR3.js} +2 -2
  156. package/dist/{chunk-DYGHBZ2N.js → chunk-SKKXTABJ.js} +2 -2
  157. package/dist/{chunk-F7DY272B.js → chunk-SSRFUQBD.js} +2 -2
  158. package/dist/chunk-SYVJEEUJ.js +3 -0
  159. package/dist/{chunk-FGA2U4OR.js → chunk-T3CZAZSI.js} +2 -2
  160. package/dist/chunk-T3I6NHBH.js +2 -0
  161. package/dist/{chunk-EQHFIL6T.js → chunk-T6DWDI5E.js} +2 -2
  162. package/dist/chunk-T6HRIROJ.js +7 -0
  163. package/dist/{chunk-GSP44ENC.js → chunk-TAA7HXHE.js} +2 -2
  164. package/dist/{chunk-BQGB4HBD.js → chunk-TJ2JQYT3.js} +2 -2
  165. package/dist/{chunk-XPDPNWTQ.js → chunk-TULNMD5T.js} +19 -19
  166. package/dist/chunk-U2FPY5XA.js +3 -0
  167. package/dist/chunk-U3SXIMII.js +38 -0
  168. package/dist/{chunk-NOGJXYFO.js → chunk-U6KCHXJ4.js} +2 -2
  169. package/dist/chunk-UH3XSKS5.js +9 -0
  170. package/dist/{chunk-AFHTBORT.js → chunk-UIFUZVCC.js} +2 -2
  171. package/dist/{chunk-7BWFZPPZ.js → chunk-UXKURIVI.js} +2 -2
  172. package/dist/{chunk-2E7CX53V.js → chunk-V2RBODHL.js} +2 -2
  173. package/dist/{chunk-KLFEXGQA.js → chunk-VBKUWB6N.js} +2 -2
  174. package/dist/{chunk-WUN6KBHV.js → chunk-VBV6ALJE.js} +2 -2
  175. package/dist/{chunk-GZIUDL6G.js → chunk-VDGFWCQV.js} +2 -2
  176. package/dist/chunk-VDSDOEWF.js +2 -0
  177. package/dist/{chunk-WDNVY4E7.js → chunk-VZPWVCLN.js} +2 -2
  178. package/dist/chunk-WDSFQDPN.js +2 -0
  179. package/dist/{chunk-CIYLO6SI.js → chunk-WFA35BGR.js} +2 -2
  180. package/dist/{chunk-LMZ5PRUV.js → chunk-WLMP3OCW.js} +2 -2
  181. package/dist/{chunk-3SVF22I5.js → chunk-WSA52GOR.js} +2 -2
  182. package/dist/{chunk-VMPRET3I.js → chunk-X3YVZAKZ.js} +2 -2
  183. package/dist/{chunk-GYIZ4NXB.js → chunk-X6OGVFIT.js} +2 -2
  184. package/dist/{chunk-6HFCYNYE.js → chunk-XKXTR6ZI.js} +2 -2
  185. package/dist/{chunk-6VVV4WRR.js → chunk-Y5DFAW5W.js} +2 -2
  186. package/dist/chunk-YSYPDRD5.js +3 -0
  187. package/dist/{chunk-TQPCBMWT.js → chunk-ZFVPWH62.js} +2 -2
  188. package/dist/chunk-ZGIHTH27.js +2 -0
  189. package/dist/{chunk-OR2E3AGZ.js → chunk-ZGIQN2SX.js} +2 -2
  190. package/dist/{chunk-WNTFFKAX.js → chunk-ZHG4WAHR.js} +2 -2
  191. package/dist/{chunk-DTZCKZEU.js → chunk-ZKB2XUEN.js} +2 -2
  192. package/dist/chunk-ZLMXIQLC.js +21 -0
  193. package/dist/chunk-ZMCQIHI4.js +2 -0
  194. package/dist/cli-main.js +2 -2
  195. package/dist/code-TAVIKWJI.js +2 -0
  196. package/dist/code-result-json-5FEFQCAQ.js +2 -0
  197. package/dist/{command-descriptors-P34VABY5.js → command-descriptors-7BKH53Y3.js} +124 -124
  198. package/dist/dataflow-GFBTVDH3.js +2 -0
  199. package/dist/dependence-slice-GWGQCODG.js +2 -0
  200. package/dist/deps-4QHVDPYA.js +2 -0
  201. package/dist/direct-navigation-4UBC6HNW.js +3 -0
  202. package/dist/entry-map-QCTF4RVY.js +2 -0
  203. package/dist/files-M2UBF5HJ.js +2 -0
  204. package/dist/frontend-profile-roles-D7eCum8P.d.ts +10 -0
  205. package/dist/{health-CPp2Jf1Z.d.ts → health-BI2a9WPy.d.ts} +60 -2
  206. package/dist/hierarchy-2UIHRLW4.js +2 -0
  207. package/dist/imports-WIE3YZOB.js +2 -0
  208. package/dist/index.d.ts +1 -1
  209. package/dist/index.js +1 -1
  210. package/dist/members-YKD636DA.js +2 -0
  211. package/dist/methods-VDF4IMYG.js +2 -0
  212. package/dist/output-continuation-command-4UMDOOLO.js +3 -0
  213. package/dist/output-pagination-2GME6OPY.js +19 -0
  214. package/dist/postinstall.js +1 -1
  215. package/dist/project-reindex-XEQTRCV5.js +3 -0
  216. package/dist/queries/affected.js +1 -1
  217. package/dist/queries/anchors.d.ts +1 -1
  218. package/dist/queries/anchors.js +1 -1
  219. package/dist/queries/architecture.js +1 -1
  220. package/dist/queries/bottlenecks.js +1 -1
  221. package/dist/queries/by-kind.js +1 -1
  222. package/dist/queries/call-graph.d.ts +2 -0
  223. package/dist/queries/call-graph.js +1 -1
  224. package/dist/queries/change-surface.js +1 -1
  225. package/dist/queries/cleanup-plan.js +1 -1
  226. package/dist/queries/co-change.d.ts +20 -2
  227. package/dist/queries/co-change.js +1 -1
  228. package/dist/queries/code.js +1 -1
  229. package/dist/queries/complexity-hotspots.js +1 -1
  230. package/dist/queries/complexity.js +1 -1
  231. package/dist/queries/context.js +1 -1
  232. package/dist/queries/convergence.js +1 -1
  233. package/dist/queries/coupling.js +1 -1
  234. package/dist/queries/cycles.js +1 -1
  235. package/dist/queries/dataflow.js +1 -1
  236. package/dist/queries/dead.d.ts +2 -0
  237. package/dist/queries/dead.js +1 -1
  238. package/dist/queries/decorative-checkers.js +1 -1
  239. package/dist/queries/deep-chains.js +1 -1
  240. package/dist/queries/dependence-slice.js +1 -1
  241. package/dist/queries/dependency-depth.js +1 -1
  242. package/dist/queries/deps.js +1 -1
  243. package/dist/queries/diff-impact.js +1 -1
  244. package/dist/queries/doc-drift.js +1 -1
  245. package/dist/queries/drift.js +1 -1
  246. package/dist/queries/duplicate-bodies.d.ts +28 -1
  247. package/dist/queries/duplicate-bodies.js +1 -1
  248. package/dist/queries/entry-map.d.ts +1 -1
  249. package/dist/queries/entry-map.js +1 -1
  250. package/dist/queries/evidence.js +1 -1
  251. package/dist/queries/extract-candidates.d.ts +50 -23
  252. package/dist/queries/extract-candidates.js +1 -1
  253. package/dist/queries/fan.js +1 -1
  254. package/dist/queries/files.js +1 -1
  255. package/dist/queries/health.d.ts +1 -1
  256. package/dist/queries/health.js +1 -1
  257. package/dist/queries/hierarchy.js +1 -1
  258. package/dist/queries/hotspots.js +1 -1
  259. package/dist/queries/imports.js +1 -1
  260. package/dist/queries/incomplete-migration.js +1 -1
  261. package/dist/queries/index.d.ts +4 -3
  262. package/dist/queries/index.js +1 -1
  263. package/dist/queries/isolated.js +1 -1
  264. package/dist/queries/locality-candidates.js +1 -1
  265. package/dist/queries/members.js +1 -1
  266. package/dist/queries/methods.js +1 -1
  267. package/dist/queries/not-implemented.js +1 -1
  268. package/dist/queries/outline.js +1 -1
  269. package/dist/queries/passthrough-candidates.d.ts +9 -1
  270. package/dist/queries/passthrough-candidates.js +1 -1
  271. package/dist/queries/plan-context.js +1 -1
  272. package/dist/queries/react-component-duplicates.d.ts +19 -3
  273. package/dist/queries/react-component-duplicates.js +1 -1
  274. package/dist/queries/react-hook-candidates.d.ts +22 -3
  275. package/dist/queries/react-hook-candidates.js +1 -1
  276. package/dist/queries/react-large-component-pressure.d.ts +17 -3
  277. package/dist/queries/react-large-component-pressure.js +1 -1
  278. package/dist/queries/recent-duplicates.js +1 -1
  279. package/dist/queries/redundant-reexports.js +1 -1
  280. package/dist/queries/reference-neighborhood.js +1 -1
  281. package/dist/queries/reference-reachability.js +1 -1
  282. package/dist/queries/refs.js +1 -1
  283. package/dist/queries/self-audit.d.ts +7 -1
  284. package/dist/queries/self-audit.js +1 -1
  285. package/dist/queries/similar-chains.js +1 -1
  286. package/dist/queries/similar-files.js +1 -1
  287. package/dist/queries/similar-signatures.js +1 -1
  288. package/dist/queries/similar.js +1 -1
  289. package/dist/queries/slice.js +1 -1
  290. package/dist/queries/source-inspection.js +1 -1
  291. package/dist/queries/source-search.js +1 -1
  292. package/dist/queries/stale-abstractions.js +1 -1
  293. package/dist/queries/surface.js +1 -1
  294. package/dist/queries/symbols.js +1 -1
  295. package/dist/queries/system-map.d.ts +1 -1
  296. package/dist/queries/system-map.js +1 -1
  297. package/dist/queries/system.js +1 -1
  298. package/dist/queries/test-quality.js +1 -1
  299. package/dist/queries/trace.js +1 -1
  300. package/dist/queries/twin-ab.js +1 -1
  301. package/dist/queries/twin-drift.d.ts +22 -6
  302. package/dist/queries/twin-drift.js +1 -1
  303. package/dist/queries/unused-imports.js +1 -1
  304. package/dist/queries/unused-params.js +1 -1
  305. package/dist/queries/value-flow.js +1 -1
  306. package/dist/queries/vue-component-duplicates.js +1 -1
  307. package/dist/queries/vue-composable-candidates.js +1 -1
  308. package/dist/queries/vue-large-view-pressure.js +1 -1
  309. package/dist/queries/wrapper-candidates.d.ts +16 -1
  310. package/dist/queries/wrapper-candidates.js +1 -1
  311. package/dist/query-service-fastpath.js +5 -5
  312. package/dist/query-service-server.js +2 -2
  313. package/dist/refs-JNK5CLM7.js +2 -0
  314. package/dist/refs-pagination-6BLRYGMV.js +2 -0
  315. package/dist/reindex-worker.js +10 -10
  316. package/dist/reindex.js +18 -18
  317. package/dist/runtime.js +4 -4
  318. package/dist/rust-semantic-session-server.js +1 -1
  319. package/dist/rust-semantic-session-worker.js +1 -1
  320. package/dist/rust-semantic-worker.js +1 -1
  321. package/dist/slice-PHPVNCWX.js +2 -0
  322. package/dist/surface-MQX5MPIV.js +2 -0
  323. package/dist/{symbol-resolution-WD5EU5JE.js → symbol-resolution-DBLVXLBC.js} +2 -2
  324. package/dist/system-JOPKV4OG.js +2 -0
  325. package/dist/trace-I2P2YFH4.js +2 -0
  326. package/dist/typescript-mailbox-worker.js +1 -1
  327. package/dist/value-flow-JJVMF7NP.js +2 -0
  328. package/dist/watch-server.js +3 -3
  329. package/docs/COMMAND_REFERENCE.md +2 -2
  330. package/docs/DETECTOR_GUIDE.md +51 -12
  331. package/docs/accuracy-audit-checklist.md +36 -13
  332. package/docs/locality-analyzer-design.md +9 -9
  333. package/package.json +2 -2
  334. package/skills/conductor/SKILL.md +110 -0
  335. package/skills/conductor/agents/openai.yaml +4 -0
  336. package/skills/principal-maintainability-review/SKILL.md +273 -0
  337. package/skills/principal-maintainability-review/agents/openai.yaml +4 -0
  338. package/skills/scip-calibrate/SKILL.md +102 -0
  339. package/skills/scip-calibrate/agents/openai.yaml +4 -0
  340. package/skills/scip-claim-audit/SKILL.md +113 -0
  341. package/skills/scip-claim-audit/agents/openai.yaml +4 -0
  342. package/skills/scip-probe-reachability/SKILL.md +93 -0
  343. package/skills/scip-probe-reachability/agents/openai.yaml +4 -0
  344. package/skills/scip-root-cause/SKILL.md +160 -0
  345. package/skills/scip-root-cause/agents/openai.yaml +4 -0
  346. package/skills/scip-system-compression/SKILL.md +252 -0
  347. package/skills/scip-system-compression/agents/openai.yaml +4 -0
  348. package/skills/scip-system-compression/references/compression-atlas.md +116 -0
  349. package/skills/scip-system-compression/references/compression-patterns.md +87 -0
  350. package/skills/scip-twin-drift/SKILL.md +109 -0
  351. package/skills/scip-twin-drift/agents/openai.yaml +4 -0
  352. package/dist/by-kind-XI2CSWEY.js +0 -2
  353. package/dist/call-graph-UONR6JR5.js +0 -2
  354. package/dist/call-graph-evidence-lZa2dwQA.d.ts +0 -11
  355. package/dist/chunk-2R3V3PSD.js +0 -4
  356. package/dist/chunk-2WC2OEDO.js +0 -4
  357. package/dist/chunk-3FHOF22C.js +0 -21
  358. package/dist/chunk-3JKSW6LJ.js +0 -2
  359. package/dist/chunk-3L2ZBPEX.js +0 -133
  360. package/dist/chunk-3PJABJSU.js +0 -2
  361. package/dist/chunk-4FTZ4P5G.js +0 -2
  362. package/dist/chunk-4UX2F3JX.js +0 -2
  363. package/dist/chunk-5ENOG4VP.js +0 -61
  364. package/dist/chunk-66DVSJQG.js +0 -455
  365. package/dist/chunk-AVRYW5OZ.js +0 -2
  366. package/dist/chunk-BDUVI7TO.js +0 -3
  367. package/dist/chunk-CEEZJXEF.js +0 -2
  368. package/dist/chunk-CJZXN4NU.js +0 -2
  369. package/dist/chunk-COF23M5F.js +0 -2
  370. package/dist/chunk-DHUIOLDT.js +0 -2
  371. package/dist/chunk-DRENNWRG.js +0 -2
  372. package/dist/chunk-E5R6AQ73.js +0 -40
  373. package/dist/chunk-E73UNJTF.js +0 -38
  374. package/dist/chunk-EVFUMY4R.js +0 -3
  375. package/dist/chunk-FBN2FGXG.js +0 -2
  376. package/dist/chunk-FFRKR4EQ.js +0 -2
  377. package/dist/chunk-GAS2LJMP.js +0 -3
  378. package/dist/chunk-HVF5VBG6.js +0 -2
  379. package/dist/chunk-JGKUET5J.js +0 -3
  380. package/dist/chunk-JWTGMPIT.js +0 -80
  381. package/dist/chunk-KFOYCQAJ.js +0 -9
  382. package/dist/chunk-KYSDI3GE.js +0 -5
  383. package/dist/chunk-LDVT66YM.js +0 -2
  384. package/dist/chunk-LQRQN2XA.js +0 -2
  385. package/dist/chunk-MNV5FSBW.js +0 -3
  386. package/dist/chunk-MV3CDXPI.js +0 -38
  387. package/dist/chunk-N5B2NILC.js +0 -5
  388. package/dist/chunk-NOYBFVJA.js +0 -554
  389. package/dist/chunk-NWQXSFFU.js +0 -3
  390. package/dist/chunk-OLIWTZI3.js +0 -3
  391. package/dist/chunk-PP7KNN7L.js +0 -2
  392. package/dist/chunk-PU7T5QYQ.js +0 -2
  393. package/dist/chunk-QGVTFRY2.js +0 -7
  394. package/dist/chunk-QOJONDS7.js +0 -2
  395. package/dist/chunk-RBLQNW26.js +0 -20
  396. package/dist/chunk-RTQ7NEKG.js +0 -81
  397. package/dist/chunk-TPFHAQ2G.js +0 -2
  398. package/dist/chunk-TQZV7KV4.js +0 -2
  399. package/dist/chunk-TY7CRN3Z.js +0 -2
  400. package/dist/chunk-W7CXK74K.js +0 -2
  401. package/dist/chunk-WB3WYIRE.js +0 -4
  402. package/dist/chunk-WK46TNUM.js +0 -3
  403. package/dist/chunk-WYCTJDVR.js +0 -2
  404. package/dist/chunk-XRYABF57.js +0 -8
  405. package/dist/chunk-YPWHBBIS.js +0 -2
  406. package/dist/chunk-YSH6U3L4.js +0 -3
  407. package/dist/chunk-YU5DZUZI.js +0 -10
  408. package/dist/chunk-YWO5DDRC.js +0 -16
  409. package/dist/chunk-ZF5KHH7C.js +0 -2
  410. package/dist/chunk-ZOHS7AQV.js +0 -21
  411. package/dist/code-MI6F2TTU.js +0 -2
  412. package/dist/code-result-json-FXALY4HE.js +0 -2
  413. package/dist/dataflow-4KEMJPC6.js +0 -2
  414. package/dist/dependence-slice-R7FPWD5M.js +0 -2
  415. package/dist/deps-7EMQUYUT.js +0 -2
  416. package/dist/direct-navigation-6YO234F2.js +0 -3
  417. package/dist/entry-map-KOOLR26E.js +0 -2
  418. package/dist/files-OPIPJIGZ.js +0 -2
  419. package/dist/hierarchy-QPD2CAER.js +0 -2
  420. package/dist/imports-M6HUXRXC.js +0 -2
  421. package/dist/members-I5MEFOCT.js +0 -2
  422. package/dist/methods-5JYGGHXA.js +0 -2
  423. package/dist/output-continuation-command-UPQAAKBP.js +0 -3
  424. package/dist/output-pagination-3OFL2MJV.js +0 -19
  425. package/dist/project-reindex-UKKQ5PLS.js +0 -3
  426. package/dist/refs-PSU4JZZW.js +0 -2
  427. package/dist/refs-pagination-JG6CJMRC.js +0 -2
  428. package/dist/slice-HYRATV64.js +0 -2
  429. package/dist/surface-VTGDYWF5.js +0 -2
  430. package/dist/system-LRQNFOR2.js +0 -2
  431. package/dist/trace-F4B6OLL4.js +0 -2
  432. package/dist/value-flow-VRPZY72V.js +0 -2
@@ -1,2 +1,2 @@
1
- import{c as z,d as B,e as E}from"./chunk-BE7ZZTMC.js";import{a as O,b as G,c as M,d as J}from"./chunk-3AF4TUFK.js";import{b as Y,c as k}from"./chunk-FGA2U4OR.js";import{a as x}from"./chunk-B3PYOSCX.js";import{b as g}from"./chunk-H5EXS3HM.js";import{a as U,b as w,c as C,d as T}from"./chunk-JFMEXGFE.js";import{I as Q,M as D,j as _,k as m,l as K}from"./chunk-KYSDI3GE.js";import{h as I}from"./chunk-7F45LJKI.js";import{statSync as ve,watch as ge}from"fs";function He(e){let t=!1,r=!1,i,n=[],s=[...new Set(e)],c=new Map,a=u=>{try{return ve(u).mtimeMs}catch{return null}},o=()=>{for(let u of s)c.set(u,a(u))},d=()=>s.some(u=>a(u)!==c.get(u));o();let p=()=>{r=!0;let u=i;i=void 0,u?.()};for(let u of s)try{let v=ge(u,{persistent:!1},p);v.on("error",()=>{}),n.push(v)}catch{}return{wait(u){return t||u<=0?(r=!1,Promise.resolve()):new Promise(v=>{let Se=setTimeout(()=>{i===W&&(i=void 0),v()},u),W=()=>{clearTimeout(Se),i===W&&(i=void 0),v()};i=W,(r||t||d())&&(r=!1,o(),W())})},close(){if(!t){t=!0;for(let u of n)try{u.close()}catch{}n.length=0}p()}}}import{spawn as xe}from"child_process";import{existsSync as Oe,rmSync as ae}from"fs";import{dirname as at,resolve as V}from"path";import{fileURLToPath as ut}from"url";import{createHash as ye,randomUUID as L}from"crypto";import{existsSync as Re,linkSync as We,readdirSync as Ie,rmSync as S}from"fs";import{basename as we,dirname as ke,join as l}from"path";var h=1,Ee=10*6e4,be=10080*6e4,A="requests",y="claims",b="completions",Z="staging";function ze(e,t,r={}){let i=r.now?.()??new Date,n=qe(r.ttlMs),s=Ce(r.idempotencyKey),c=s?`key-${ye("sha256").update(s).digest("hex")}`:`request-${(r.randomId??L)()}`,a={version:h,requestId:c,...s?{idempotencyKey:s}:{},createdAt:i.toISOString(),deadlineAt:new Date(i.getTime()+n).toISOString(),detail:t.trim().slice(0,2048)||"stale index observed by a command"},o=se(e,c),d=$(e,o,a,r.onStage);if(d.published)return{disposition:"accepted",request:a,achievedDurability:d.achievedDurability,directorySync:d.directorySync};let p=N(o);if(!p)throw new Error(`Watch refresh request identity ${c} exists but is malformed.`);return{disposition:"duplicate",request:p}}function Be(e,t={}){let r=t.now?.()??new Date,i=`claim-${(t.randomId??L)()}`,n=Math.max(1,Math.floor(t.limit??64)),s=re(e).sort(Te),c=[];for(let a of s){if(c.length>=n)break;if(X(e,a.requestId))continue;if(Date.parse(a.deadlineAt)<=r.getTime()){te(e,{version:h,requestId:a.requestId,outcome:"expired",completedAt:r.toISOString()});continue}let o={version:h,requestId:a.requestId,claimId:i,claimedAt:r.toISOString()};if($(e,oe(e,a.requestId),o).published){if(X(e,a.requestId)){ie(e,a.requestId,i);continue}c.push(a)}}return{claimId:i,requests:c}}function Xe(e,t,r=()=>new Date,i){let n=r().toISOString();for(let s of t.requests)te(e,{version:h,requestId:s.requestId,claimId:t.claimId,outcome:"completed",completedAt:n});i?.("after-completion"),Ae(e,t),i?.("after-claim-release")}function Ae(e,t){for(let r of t.requests)ie(e,r.requestId,t.claimId)}function Ze(e){let t=0;for(let r of f(l(e,y)))S(r,{force:!0}),t++;return t>0&&m(l(e,y)),ne(e),t}function et(e){let t=re(e),r=new Map,i=Pe(l(e,A),N);for(let o of f(l(e,b))){let d=P(o);if(!d){i++;continue}r.set(d.requestId,d)}let n=new Set;for(let o of f(l(e,y))){let d=ee(o);if(!d){i++;continue}n.add(d.requestId)}let s=t.filter(o=>!r.has(o.requestId)&&!n.has(o.requestId)),c=[...r.values()].filter(o=>o.outcome==="completed").length,a=[...r.values()].filter(o=>o.outcome==="expired").length;return{pending:s.length,claimed:t.filter(o=>!r.has(o.requestId)&&n.has(o.requestId)).length,completed:c,expired:a,invalid:i,...s.length>0?{oldestPendingAt:s.map(o=>o.createdAt).reduce((o,d)=>_e(o,d))}:{}}}function tt(e,t={}){let r=(t.now?.()??new Date).getTime(),i=Math.max(0,t.retentionMs??be),n=0;for(let s of f(l(e,b))){let c=P(s);!c||r-Date.parse(c.completedAt)<i||(S(s,{force:!0}),S(se(e,c.requestId),{force:!0}),n++)}return n>0&&(m(l(e,b)),m(l(e,A))),ne(e),n}function N(e){return F(e,t=>{let r=t;return r.version===h&&R(r.requestId)&&(r.idempotencyKey===void 0||typeof r.idempotencyKey=="string")&&g(r.createdAt)&&g(r.deadlineAt)&&Date.parse(r.deadlineAt)>=Date.parse(r.createdAt)&&typeof r.detail=="string"&&r.detail.length>0})}function ee(e){return F(e,t=>{let r=t;return r.version===h&&R(r.requestId)&&R(r.claimId)&&g(r.claimedAt)})}function P(e){return F(e,t=>{let r=t;return r.version===h&&R(r.requestId)&&(r.claimId===void 0||R(r.claimId))&&(r.outcome==="completed"||r.outcome==="expired")&&g(r.completedAt)})}function te(e,t){let r=ce(e,t.requestId);if($(e,r,t).published)return;let i=P(r);if(!i||i.requestId!==t.requestId||i.outcome!==t.outcome)throw new Error(`Watch refresh completion ${t.requestId} conflicts with an existing record.`)}function $(e,t,r,i){let n=l(e,Z),s=ke(t),c=_(n),a=_(s),o=l(n,`${we(t)}.${process.pid}.${L()}.tmp`);try{let d=k(o,r,{spacing:2,trailingNewline:!0});i?.("after-staged");try{We(o,t)}catch(u){if(u.code==="EEXIST")return{published:!1};throw u}let p=K(c,a,d.directorySync,m(s));return i?.("after-published"),{published:!0,achievedDurability:p==="synced"?"directory-durable":"file-flushed",directorySync:p}}finally{S(o,{force:!0})}}function re(e){let t=[];for(let r of f(l(e,A))){let i=N(r);i&&t.push(i)}return t}function ie(e,t,r){let i=oe(e,t),n=ee(i);!n||n.claimId!==r||(S(i,{force:!0}),m(l(e,y)))}function ne(e){for(let t of f(l(e,Z),".tmp"))S(t,{force:!0})}function Pe(e,t){return f(e).filter(r=>!t(r)).length}function f(e,t=".json"){return Re(e)?Ie(e,{withFileTypes:!0}).filter(r=>r.isFile()&&r.name.endsWith(t)).map(r=>l(e,r.name)).sort():[]}function F(e,t){try{let r=JSON.parse(I(e,"watch refresh request record"));return t(r)?r:null}catch{return null}}function se(e,t){return l(e,A,`${t}.json`)}function oe(e,t){return l(e,y,`${t}.json`)}function ce(e,t){return l(e,b,`${t}.json`)}function X(e,t){return P(ce(e,t))!==null}function qe(e){if(e===void 0)return Ee;if(!Number.isFinite(e)||e<=0)throw new Error("Watch refresh request ttlMs must be positive.");return Math.floor(e)}function Ce(e){let t=e?.trim();return t?t.slice(0,512):void 0}function R(e){return typeof e=="string"&&/^[a-z0-9][a-z0-9-]{0,127}$/i.test(e)}function Te(e,t){return Date.parse(e.createdAt)-Date.parse(t.createdAt)||e.requestId.localeCompare(t.requestId)}function _e(e,t){return Date.parse(t)<Date.parse(e)?t:e}var Me=6e3,De=1e3,de=10;function yt(e,t,r){let i=D(V(e));if(r&&D(r.projectRoot)===i)return{projectRoot:i,worktreeKind:"git",worktreeId:r.worktreeId,cliVersion:t};let n=Q(i);if(n.kind==="error")throw new Error(`Could not establish Git worktree identity for ${i}: ${n.message}`);return n.kind==="non-git"?{projectRoot:i,worktreeKind:"non-git",cliVersion:t}:{projectRoot:i,worktreeKind:"git",worktreeId:n.identity.worktreeId,cliVersion:t}}function Rt(e){let t=e.runtime??$e,r=z(e.cacheDir),i=B(r.statePath),n=i?le(i,t)?{kind:"live",state:i}:{kind:"stale",state:i,reason:"dead-process"}:{kind:"stopped"},s=Le("stop",n);if(s.kind==="signal-stop")return ue(s.state,e,t),H(r,s.state.pid,t),{disposition:"stopped",pid:s.state.pid};if(s.kind==="clean-stale")return H(r,s.state.pid,t),{disposition:"stopped",pid:s.state.pid};let c=he(r.lockPath);return s.kind==="already-stopped"&&c?(le(c,t)&&ue(c,e,t),H(r,c.pid,t),{disposition:"stopped",pid:c.pid}):{disposition:"already-stopped"}}function Wt(e,t,r={}){let{durability:i="durable",...n}=r;i==="durable"?k(e,t,n):Y(e,t,n)}function It(e){try{let t=JSON.parse(I(e,"watch activity record"));return t.version!==1||!E(t.at)||t.refreshRequestedAt!==void 0&&!E(t.refreshRequestedAt)||t.refreshDetail!==void 0&&typeof t.refreshDetail!="string"?null:{atMs:Date.parse(t.at),...t.refreshRequestedAt===void 0?{}:{refreshRequestedAtMs:Date.parse(t.refreshRequestedAt)},...t.refreshDetail===void 0?{}:{refreshDetail:t.refreshDetail}}}catch{return null}}function wt(e,t,r={}){let i=r.pid??process.pid,n=r.isProcessAlive??x,s=()=>{},c=r.readProcessIdentity??C,a=r.now??(()=>new Date),o={...O,wallNow:()=>a().getTime(),isProcessAlive:n,readProcessIdentity:c},d=G(e,{kind:"watch",pid:i,processIdentity:c(i),detail:{projectRoot:V(t)},parseLegacy:q,runtime:o});if(d.kind==="contended"){let p=fe(d.observation);return{acquired:!1,lockPath:e,message:Ne(e,t,p),release:s}}return{acquired:!0,lockPath:e,message:"",release:()=>{d.lock.release()}}}function he(e){return fe(M(e,{parseLegacy:q}))}var q=e=>{let t=me(e);return t?{pid:t.pid,...t.processIdentity?{processIdentity:t.processIdentity}:{}}:null};function fe(e){if(e.state==="valid"&&e.record?.kind==="watch"){let t=e.record.detail?.projectRoot;return typeof t!="string"?null:{version:1,pid:e.record.pid,...e.record.processIdentity?{processIdentity:e.record.processIdentity}:{},projectRoot:t,startedAt:e.record.startedAt}}return me(e.parsed)}function me(e){try{let t=e;if(t.version!==1||typeof t.pid!="number"||!Number.isInteger(t.pid)||t.pid<=0||typeof t.projectRoot!="string"||!E(t.startedAt))return null;let r=t.processIdentity===void 0?null:U(t.processIdentity);return t.processIdentity!==void 0&&(!r||r.pid!==t.pid)?null:{version:1,pid:t.pid,...r?{processIdentity:r}:{},projectRoot:t.projectRoot,startedAt:t.startedAt}}catch{return null}}function Le(e,t){switch(e){case"status":return{kind:"report",classification:t};case"ensure":switch(t.kind){case"stopped":return{kind:"start"};case"stale":return t.reason==="old-heartbeat"?{kind:"refuse-replace",state:t.state,reason:"old-heartbeat"}:{kind:"start"};case"live":return{kind:"reuse",state:t.state};case"incompatible":return{kind:"replace",state:t.state};default:return j(t)}case"stop":switch(t.kind){case"stopped":return{kind:"already-stopped"};case"stale":return t.reason==="old-heartbeat"?{kind:"signal-stop",state:t.state}:{kind:"clean-stale",state:t.state};case"live":case"incompatible":return{kind:"signal-stop",state:t.state};default:return j(t)}default:return j(e)}}function kt(e){return e.idleTimeoutMs===0||e.watcher.state!=="idle"?!1:e.nowMs-e.lastActivityAtMs>=e.idleTimeoutMs}function ue(e,t,r){let{pid:i}=e;if(!r.isProcessAlive(i))return;pe(e,r),r.signalProcess(i);let n=t.stopTimeoutMs??Me,s=r.monotonicNow??T,c=s()+n;for(;s()<=c;){if(!r.isProcessAlive(i))return;r.sleep(de)}if(!r.forceSignalProcess)throw new Error(`scip-query watch service pid ${i} did not stop within ${n}ms and forced termination is unavailable.`);pe(e,r),r.forceSignalProcess(i);let a=t.forceStopTimeoutMs??De,o=s()+a;for(;s()<=o;){if(!r.isProcessAlive(i))return;let d=r.readProcessIdentity(i);if(e.processIdentity&&d&&!w(e.processIdentity,d))return;r.sleep(de)}throw new Error(`scip-query watch service pid ${i} remained alive ${a}ms after forced termination.`)}function H(e,t,r){if(ae(e.statePath,{force:!0}),ae(e.activityPath,{force:!0}),he(e.lockPath)?.pid===t){let n={...O,wallNow:r.now,isProcessAlive:r.isProcessAlive,readProcessIdentity:r.readProcessIdentity},s=M(e.lockPath,{parseLegacy:q,runtime:n});J(e.lockPath,s,{parseLegacy:q,runtime:n})}}function le(e,t){if(!t.isProcessAlive(e.pid))return!1;if(!e.processIdentity)return!0;let r=t.readProcessIdentity(e.pid);return r===null||w(e.processIdentity,r)}function Ne(e,t,r){return`error: scip-query watch is already running for ${V(t)}${r?` (pid ${r.pid}, started ${r.startedAt}; lock: ${e})`:` (lock: ${e})`}. Stop that watcher before starting another.`}var $e={now:Date.now,monotonicNow:T,isProcessAlive:x,readProcessIdentity:C,spawnServer(e,t,r,i){if(!Oe(e))throw new Error(`Watch service helper was not found at ${e}. Run npm run build first.`);xe(process.execPath,[e,t,r,JSON.stringify(i)],{detached:!0,stdio:"ignore",env:{...process.env,SCIP_QUERY_SKIP_WATCH_SERVICE:"1"}}).unref()},signalProcess(e){process.kill(e,"SIGTERM")},forceSignalProcess(e){process.kill(e,"SIGKILL")},sleep(e){let t=new Int32Array(new SharedArrayBuffer(4));Atomics.wait(t,0,0,e)}};function pe(e,t){if(!e.processIdentity)throw new Error(`Refusing to signal scip-query watch pid ${e.pid}: its ownership record has no process identity.`);let r=t.readProcessIdentity(e.pid);if(!r)throw new Error(`Refusing to signal scip-query watch pid ${e.pid}: its process identity is unavailable.`);if(!w(e.processIdentity,r))throw new Error(`Refusing to signal scip-query watch pid ${e.pid}: its process identity does not match the ownership record.`)}function j(e){throw new Error(`Unhandled watch service value: ${JSON.stringify(e)}`)}export{He as a,ze as b,Be as c,Xe as d,Ae as e,Ze as f,et as g,tt as h,yt as i,Rt as j,Wt as k,It as l,wt as m,kt as n};
2
- //# sourceMappingURL=chunk-GYIZ4NXB.js.map
1
+ import{c as z,d as B,e as E}from"./chunk-EHYDXE3Z.js";import{a as O,b as G,c as M,d as J}from"./chunk-3AF4TUFK.js";import{b as Y,c as k}from"./chunk-T3CZAZSI.js";import{a as x}from"./chunk-B3PYOSCX.js";import{b as g}from"./chunk-H5EXS3HM.js";import{a as U,b as w,c as C,d as T}from"./chunk-JFMEXGFE.js";import{J as Q,N as D,j as _,k as m,l as K}from"./chunk-7HXT6YLU.js";import{h as I}from"./chunk-7F45LJKI.js";import{statSync as ve,watch as ge}from"fs";function He(e){let t=!1,r=!1,i,n=[],s=[...new Set(e)],c=new Map,a=u=>{try{return ve(u).mtimeMs}catch{return null}},o=()=>{for(let u of s)c.set(u,a(u))},d=()=>s.some(u=>a(u)!==c.get(u));o();let p=()=>{r=!0;let u=i;i=void 0,u?.()};for(let u of s)try{let v=ge(u,{persistent:!1},p);v.on("error",()=>{}),n.push(v)}catch{}return{wait(u){return t||u<=0?(r=!1,Promise.resolve()):new Promise(v=>{let Se=setTimeout(()=>{i===W&&(i=void 0),v()},u),W=()=>{clearTimeout(Se),i===W&&(i=void 0),v()};i=W,(r||t||d())&&(r=!1,o(),W())})},close(){if(!t){t=!0;for(let u of n)try{u.close()}catch{}n.length=0}p()}}}import{spawn as xe}from"child_process";import{existsSync as Oe,rmSync as ae}from"fs";import{dirname as at,resolve as V}from"path";import{fileURLToPath as ut}from"url";import{createHash as ye,randomUUID as L}from"crypto";import{existsSync as Re,linkSync as We,readdirSync as Ie,rmSync as S}from"fs";import{basename as we,dirname as ke,join as l}from"path";var h=1,Ee=10*6e4,be=10080*6e4,A="requests",y="claims",b="completions",Z="staging";function ze(e,t,r={}){let i=r.now?.()??new Date,n=qe(r.ttlMs),s=Ce(r.idempotencyKey),c=s?`key-${ye("sha256").update(s).digest("hex")}`:`request-${(r.randomId??L)()}`,a={version:h,requestId:c,...s?{idempotencyKey:s}:{},createdAt:i.toISOString(),deadlineAt:new Date(i.getTime()+n).toISOString(),detail:t.trim().slice(0,2048)||"stale index observed by a command"},o=se(e,c),d=$(e,o,a,r.onStage);if(d.published)return{disposition:"accepted",request:a,achievedDurability:d.achievedDurability,directorySync:d.directorySync};let p=N(o);if(!p)throw new Error(`Watch refresh request identity ${c} exists but is malformed.`);return{disposition:"duplicate",request:p}}function Be(e,t={}){let r=t.now?.()??new Date,i=`claim-${(t.randomId??L)()}`,n=Math.max(1,Math.floor(t.limit??64)),s=re(e).sort(Te),c=[];for(let a of s){if(c.length>=n)break;if(X(e,a.requestId))continue;if(Date.parse(a.deadlineAt)<=r.getTime()){te(e,{version:h,requestId:a.requestId,outcome:"expired",completedAt:r.toISOString()});continue}let o={version:h,requestId:a.requestId,claimId:i,claimedAt:r.toISOString()};if($(e,oe(e,a.requestId),o).published){if(X(e,a.requestId)){ie(e,a.requestId,i);continue}c.push(a)}}return{claimId:i,requests:c}}function Xe(e,t,r=()=>new Date,i){let n=r().toISOString();for(let s of t.requests)te(e,{version:h,requestId:s.requestId,claimId:t.claimId,outcome:"completed",completedAt:n});i?.("after-completion"),Ae(e,t),i?.("after-claim-release")}function Ae(e,t){for(let r of t.requests)ie(e,r.requestId,t.claimId)}function Ze(e){let t=0;for(let r of f(l(e,y)))S(r,{force:!0}),t++;return t>0&&m(l(e,y)),ne(e),t}function et(e){let t=re(e),r=new Map,i=Pe(l(e,A),N);for(let o of f(l(e,b))){let d=P(o);if(!d){i++;continue}r.set(d.requestId,d)}let n=new Set;for(let o of f(l(e,y))){let d=ee(o);if(!d){i++;continue}n.add(d.requestId)}let s=t.filter(o=>!r.has(o.requestId)&&!n.has(o.requestId)),c=[...r.values()].filter(o=>o.outcome==="completed").length,a=[...r.values()].filter(o=>o.outcome==="expired").length;return{pending:s.length,claimed:t.filter(o=>!r.has(o.requestId)&&n.has(o.requestId)).length,completed:c,expired:a,invalid:i,...s.length>0?{oldestPendingAt:s.map(o=>o.createdAt).reduce((o,d)=>_e(o,d))}:{}}}function tt(e,t={}){let r=(t.now?.()??new Date).getTime(),i=Math.max(0,t.retentionMs??be),n=0;for(let s of f(l(e,b))){let c=P(s);!c||r-Date.parse(c.completedAt)<i||(S(s,{force:!0}),S(se(e,c.requestId),{force:!0}),n++)}return n>0&&(m(l(e,b)),m(l(e,A))),ne(e),n}function N(e){return F(e,t=>{let r=t;return r.version===h&&R(r.requestId)&&(r.idempotencyKey===void 0||typeof r.idempotencyKey=="string")&&g(r.createdAt)&&g(r.deadlineAt)&&Date.parse(r.deadlineAt)>=Date.parse(r.createdAt)&&typeof r.detail=="string"&&r.detail.length>0})}function ee(e){return F(e,t=>{let r=t;return r.version===h&&R(r.requestId)&&R(r.claimId)&&g(r.claimedAt)})}function P(e){return F(e,t=>{let r=t;return r.version===h&&R(r.requestId)&&(r.claimId===void 0||R(r.claimId))&&(r.outcome==="completed"||r.outcome==="expired")&&g(r.completedAt)})}function te(e,t){let r=ce(e,t.requestId);if($(e,r,t).published)return;let i=P(r);if(!i||i.requestId!==t.requestId||i.outcome!==t.outcome)throw new Error(`Watch refresh completion ${t.requestId} conflicts with an existing record.`)}function $(e,t,r,i){let n=l(e,Z),s=ke(t),c=_(n),a=_(s),o=l(n,`${we(t)}.${process.pid}.${L()}.tmp`);try{let d=k(o,r,{spacing:2,trailingNewline:!0});i?.("after-staged");try{We(o,t)}catch(u){if(u.code==="EEXIST")return{published:!1};throw u}let p=K(c,a,d.directorySync,m(s));return i?.("after-published"),{published:!0,achievedDurability:p==="synced"?"directory-durable":"file-flushed",directorySync:p}}finally{S(o,{force:!0})}}function re(e){let t=[];for(let r of f(l(e,A))){let i=N(r);i&&t.push(i)}return t}function ie(e,t,r){let i=oe(e,t),n=ee(i);!n||n.claimId!==r||(S(i,{force:!0}),m(l(e,y)))}function ne(e){for(let t of f(l(e,Z),".tmp"))S(t,{force:!0})}function Pe(e,t){return f(e).filter(r=>!t(r)).length}function f(e,t=".json"){return Re(e)?Ie(e,{withFileTypes:!0}).filter(r=>r.isFile()&&r.name.endsWith(t)).map(r=>l(e,r.name)).sort():[]}function F(e,t){try{let r=JSON.parse(I(e,"watch refresh request record"));return t(r)?r:null}catch{return null}}function se(e,t){return l(e,A,`${t}.json`)}function oe(e,t){return l(e,y,`${t}.json`)}function ce(e,t){return l(e,b,`${t}.json`)}function X(e,t){return P(ce(e,t))!==null}function qe(e){if(e===void 0)return Ee;if(!Number.isFinite(e)||e<=0)throw new Error("Watch refresh request ttlMs must be positive.");return Math.floor(e)}function Ce(e){let t=e?.trim();return t?t.slice(0,512):void 0}function R(e){return typeof e=="string"&&/^[a-z0-9][a-z0-9-]{0,127}$/i.test(e)}function Te(e,t){return Date.parse(e.createdAt)-Date.parse(t.createdAt)||e.requestId.localeCompare(t.requestId)}function _e(e,t){return Date.parse(t)<Date.parse(e)?t:e}var Me=6e3,De=1e3,de=10;function yt(e,t,r){let i=D(V(e));if(r&&D(r.projectRoot)===i)return{projectRoot:i,worktreeKind:"git",worktreeId:r.worktreeId,cliVersion:t};let n=Q(i);if(n.kind==="error")throw new Error(`Could not establish Git worktree identity for ${i}: ${n.message}`);return n.kind==="non-git"?{projectRoot:i,worktreeKind:"non-git",cliVersion:t}:{projectRoot:i,worktreeKind:"git",worktreeId:n.identity.worktreeId,cliVersion:t}}function Rt(e){let t=e.runtime??$e,r=z(e.cacheDir),i=B(r.statePath),n=i?le(i,t)?{kind:"live",state:i}:{kind:"stale",state:i,reason:"dead-process"}:{kind:"stopped"},s=Le("stop",n);if(s.kind==="signal-stop")return ue(s.state,e,t),H(r,s.state.pid,t),{disposition:"stopped",pid:s.state.pid};if(s.kind==="clean-stale")return H(r,s.state.pid,t),{disposition:"stopped",pid:s.state.pid};let c=he(r.lockPath);return s.kind==="already-stopped"&&c?(le(c,t)&&ue(c,e,t),H(r,c.pid,t),{disposition:"stopped",pid:c.pid}):{disposition:"already-stopped"}}function Wt(e,t,r={}){let{durability:i="durable",...n}=r;i==="durable"?k(e,t,n):Y(e,t,n)}function It(e){try{let t=JSON.parse(I(e,"watch activity record"));return t.version!==1||!E(t.at)||t.refreshRequestedAt!==void 0&&!E(t.refreshRequestedAt)||t.refreshDetail!==void 0&&typeof t.refreshDetail!="string"?null:{atMs:Date.parse(t.at),...t.refreshRequestedAt===void 0?{}:{refreshRequestedAtMs:Date.parse(t.refreshRequestedAt)},...t.refreshDetail===void 0?{}:{refreshDetail:t.refreshDetail}}}catch{return null}}function wt(e,t,r={}){let i=r.pid??process.pid,n=r.isProcessAlive??x,s=()=>{},c=r.readProcessIdentity??C,a=r.now??(()=>new Date),o={...O,wallNow:()=>a().getTime(),isProcessAlive:n,readProcessIdentity:c},d=G(e,{kind:"watch",pid:i,processIdentity:c(i),detail:{projectRoot:V(t)},parseLegacy:q,runtime:o});if(d.kind==="contended"){let p=fe(d.observation);return{acquired:!1,lockPath:e,message:Ne(e,t,p),release:s}}return{acquired:!0,lockPath:e,message:"",release:()=>{d.lock.release()}}}function he(e){return fe(M(e,{parseLegacy:q}))}var q=e=>{let t=me(e);return t?{pid:t.pid,...t.processIdentity?{processIdentity:t.processIdentity}:{}}:null};function fe(e){if(e.state==="valid"&&e.record?.kind==="watch"){let t=e.record.detail?.projectRoot;return typeof t!="string"?null:{version:1,pid:e.record.pid,...e.record.processIdentity?{processIdentity:e.record.processIdentity}:{},projectRoot:t,startedAt:e.record.startedAt}}return me(e.parsed)}function me(e){try{let t=e;if(t.version!==1||typeof t.pid!="number"||!Number.isInteger(t.pid)||t.pid<=0||typeof t.projectRoot!="string"||!E(t.startedAt))return null;let r=t.processIdentity===void 0?null:U(t.processIdentity);return t.processIdentity!==void 0&&(!r||r.pid!==t.pid)?null:{version:1,pid:t.pid,...r?{processIdentity:r}:{},projectRoot:t.projectRoot,startedAt:t.startedAt}}catch{return null}}function Le(e,t){switch(e){case"status":return{kind:"report",classification:t};case"ensure":switch(t.kind){case"stopped":return{kind:"start"};case"stale":return t.reason==="old-heartbeat"?{kind:"refuse-replace",state:t.state,reason:"old-heartbeat"}:{kind:"start"};case"live":return{kind:"reuse",state:t.state};case"incompatible":return{kind:"replace",state:t.state};default:return j(t)}case"stop":switch(t.kind){case"stopped":return{kind:"already-stopped"};case"stale":return t.reason==="old-heartbeat"?{kind:"signal-stop",state:t.state}:{kind:"clean-stale",state:t.state};case"live":case"incompatible":return{kind:"signal-stop",state:t.state};default:return j(t)}default:return j(e)}}function kt(e){return e.idleTimeoutMs===0||e.watcher.state!=="idle"?!1:e.nowMs-e.lastActivityAtMs>=e.idleTimeoutMs}function ue(e,t,r){let{pid:i}=e;if(!r.isProcessAlive(i))return;pe(e,r),r.signalProcess(i);let n=t.stopTimeoutMs??Me,s=r.monotonicNow??T,c=s()+n;for(;s()<=c;){if(!r.isProcessAlive(i))return;r.sleep(de)}if(!r.forceSignalProcess)throw new Error(`scip-query watch service pid ${i} did not stop within ${n}ms and forced termination is unavailable.`);pe(e,r),r.forceSignalProcess(i);let a=t.forceStopTimeoutMs??De,o=s()+a;for(;s()<=o;){if(!r.isProcessAlive(i))return;let d=r.readProcessIdentity(i);if(e.processIdentity&&d&&!w(e.processIdentity,d))return;r.sleep(de)}throw new Error(`scip-query watch service pid ${i} remained alive ${a}ms after forced termination.`)}function H(e,t,r){if(ae(e.statePath,{force:!0}),ae(e.activityPath,{force:!0}),he(e.lockPath)?.pid===t){let n={...O,wallNow:r.now,isProcessAlive:r.isProcessAlive,readProcessIdentity:r.readProcessIdentity},s=M(e.lockPath,{parseLegacy:q,runtime:n});J(e.lockPath,s,{parseLegacy:q,runtime:n})}}function le(e,t){if(!t.isProcessAlive(e.pid))return!1;if(!e.processIdentity)return!0;let r=t.readProcessIdentity(e.pid);return r===null||w(e.processIdentity,r)}function Ne(e,t,r){return`error: scip-query watch is already running for ${V(t)}${r?` (pid ${r.pid}, started ${r.startedAt}; lock: ${e})`:` (lock: ${e})`}. Stop that watcher before starting another.`}var $e={now:Date.now,monotonicNow:T,isProcessAlive:x,readProcessIdentity:C,spawnServer(e,t,r,i){if(!Oe(e))throw new Error(`Watch service helper was not found at ${e}. Run npm run build first.`);xe(process.execPath,[e,t,r,JSON.stringify(i)],{detached:!0,stdio:"ignore",env:{...process.env,SCIP_QUERY_SKIP_WATCH_SERVICE:"1"}}).unref()},signalProcess(e){process.kill(e,"SIGTERM")},forceSignalProcess(e){process.kill(e,"SIGKILL")},sleep(e){let t=new Int32Array(new SharedArrayBuffer(4));Atomics.wait(t,0,0,e)}};function pe(e,t){if(!e.processIdentity)throw new Error(`Refusing to signal scip-query watch pid ${e.pid}: its ownership record has no process identity.`);let r=t.readProcessIdentity(e.pid);if(!r)throw new Error(`Refusing to signal scip-query watch pid ${e.pid}: its process identity is unavailable.`);if(!w(e.processIdentity,r))throw new Error(`Refusing to signal scip-query watch pid ${e.pid}: its process identity does not match the ownership record.`)}function j(e){throw new Error(`Unhandled watch service value: ${JSON.stringify(e)}`)}export{He as a,ze as b,Be as c,Xe as d,Ae as e,Ze as f,et as g,tt as h,yt as i,Rt as j,Wt as k,It as l,wt as m,kt as n};
2
+ //# sourceMappingURL=chunk-X6OGVFIT.js.map
@@ -1,4 +1,4 @@
1
- import{a as _}from"./chunk-P5XHIJHI.js";import{c as E,e as M}from"./chunk-FESCRNVV.js";import{d as P}from"./chunk-JWTGMPIT.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{c as E,e as M}from"./chunk-FESCRN
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-6HFCYNYE.js.map
9
+ //# sourceMappingURL=chunk-XKXTR6ZI.js.map
@@ -1,4 +1,4 @@
1
- import{b as ye}from"./chunk-NJITK2GP.js";import{i as I,n as W}from"./chunk-ODDUPDP7.js";import{D as O}from"./chunk-ZOHS7AQV.js";import{h as pe,k as G}from"./chunk-FESCRNVV.js";import{e as me}from"./chunk-JWTGMPIT.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(`
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
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
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-6VVV4WRR.js.map
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
@@ -1,5 +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-CJZXN4NU.js";import{a as ie}from"./chunk-W7CXK74K.js";import{a as ne}from"./chunk-E73UNJTF.js";import{a as D}from"./chunk-OSSESPDX.js";import{d as I,e as K,h as $}from"./chunk-N2ZSIIGR.js";import{a as B}from"./chunk-ODDUPDP7.js";import{a as Y}from"./chunk-ZOHS7AQV.js";import{c as Q,e as ee,h as U,k as H}from"./chunk-FESCRNVV.js";import{d as z,i as J,v as A,y}from"./chunk-JWTGMPIT.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)??[]).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(`
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
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
3
  `)}return e.slice(n,Math.min(e.length,n+8)).join(`
4
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-TQPCBMWT.js.map
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