codebaseiq 0.1.0 → 0.2.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 (422) hide show
  1. package/CHANGELOG.md +47 -0
  2. package/dist/augment-vue-worker.js +1 -1
  3. package/dist/{chunk-DQMDCD24.js → chunk-27PHVDKL.js} +2 -2
  4. package/dist/{chunk-ZMI2JSX2.js → chunk-2DMVFAY7.js} +2 -2
  5. package/dist/{chunk-5PUWMSDU.js → chunk-2E6BTWER.js} +2 -2
  6. package/dist/{chunk-YESXMKX3.js → chunk-2F5ERMNI.js} +2 -2
  7. package/dist/chunk-2VKB5CMA.js +60 -0
  8. package/dist/{chunk-NNJ2KZZG.js → chunk-327YK6TB.js} +4 -4
  9. package/dist/chunk-347TXATM.js +2 -0
  10. package/dist/{chunk-VEXUL62T.js → chunk-35YYZD3D.js} +2 -2
  11. package/dist/chunk-36WRYYTE.js +3 -0
  12. package/dist/chunk-37TKC6MB.js +2 -0
  13. package/dist/{chunk-FAJQ7LWY.js → chunk-3AC56WAR.js} +2 -2
  14. package/dist/{chunk-JE3WZ6II.js → chunk-3NUZVLR7.js} +2 -2
  15. package/dist/{chunk-UZGZB3VB.js → chunk-3XFJUWJE.js} +2 -2
  16. package/dist/{chunk-OVTS4DKB.js → chunk-4AOOSCZ7.js} +2 -2
  17. package/dist/{chunk-LU3BMVH2.js → chunk-4IFISPQW.js} +2 -2
  18. package/dist/chunk-4NHWNAWQ.js +11 -0
  19. package/dist/chunk-4O52YNKL.js +5 -0
  20. package/dist/{chunk-HPJRBHVT.js → chunk-54K6556S.js} +2 -2
  21. package/dist/{chunk-HRWGYWRJ.js → chunk-57GCCPLS.js} +2 -2
  22. package/dist/{chunk-J77SU6VA.js → chunk-57KEZDPT.js} +2 -2
  23. package/dist/{chunk-OFBE4NGP.js → chunk-57KFVPVZ.js} +2 -2
  24. package/dist/{chunk-WOQBZPIF.js → chunk-5BDK6QC3.js} +2 -2
  25. package/dist/{chunk-7MGU3HPH.js → chunk-5IO2APSS.js} +2 -2
  26. package/dist/chunk-5NJPH3QZ.js +61 -0
  27. package/dist/{chunk-GW6Z3WGY.js → chunk-5WXOEJ4G.js} +2 -2
  28. package/dist/chunk-5XEVXVTK.js +3 -0
  29. package/dist/{chunk-RR7SX44N.js → chunk-6OVNYYY4.js} +2 -2
  30. package/dist/{chunk-ZV3JV5G5.js → chunk-6SDEQTVY.js} +2 -2
  31. package/dist/{chunk-EF2R3WNQ.js → chunk-6URCE5QY.js} +2 -2
  32. package/dist/{chunk-UCD3H3UZ.js → chunk-6ZV5EDUT.js} +2 -2
  33. package/dist/{chunk-C6SBF2WH.js → chunk-77GHPR2R.js} +2 -2
  34. package/dist/{chunk-YVCIMIOC.js → chunk-7R64XY4Y.js} +2 -2
  35. package/dist/{chunk-VXYS3FZD.js → chunk-7Z7HCZ7J.js} +2 -2
  36. package/dist/{chunk-CO5R3UNA.js → chunk-A67HT5FR.js} +2 -2
  37. package/dist/{chunk-UDS562V4.js → chunk-A7XQT7MH.js} +2 -2
  38. package/dist/{chunk-RDBI2RXU.js → chunk-ACZDU5GK.js} +2 -2
  39. package/dist/{chunk-FETNQCFO.js → chunk-AM5SUGHF.js} +2 -2
  40. package/dist/{chunk-NNOKTMZT.js → chunk-B2E3HZ2A.js} +2 -2
  41. package/dist/{chunk-CVYSU6BX.js → chunk-BH5CE4LN.js} +2 -2
  42. package/dist/chunk-BLKYYQ7C.js +543 -0
  43. package/dist/{chunk-4WKDMDEW.js → chunk-BX2U3QQV.js} +2 -2
  44. package/dist/{chunk-ZKX2FRS6.js → chunk-CANBLFVQ.js} +2 -2
  45. package/dist/{chunk-SMRBZ6EC.js → chunk-CCRZLRWJ.js} +2 -2
  46. package/dist/chunk-CDWSLAPN.js +21 -0
  47. package/dist/chunk-CIVYHK7U.js +22 -0
  48. package/dist/{chunk-L57ZKWVG.js → chunk-CMXW7MFV.js} +2 -2
  49. package/dist/{chunk-T3DGWPXM.js → chunk-CSZOQ7YO.js} +2 -2
  50. package/dist/{chunk-ZZXSWSN6.js → chunk-CWMHWD56.js} +2 -2
  51. package/dist/{chunk-6NW7MU72.js → chunk-CZEIHYMP.js} +2 -2
  52. package/dist/{chunk-DO6WQD2T.js → chunk-D62CTZX6.js} +2 -2
  53. package/dist/{chunk-XWUOUWYI.js → chunk-DFPAZXLU.js} +2 -2
  54. package/dist/{chunk-MOVBWNIP.js → chunk-DKJXK3HA.js} +2 -2
  55. package/dist/{chunk-XMQ23E27.js → chunk-DLC6JDN7.js} +2 -2
  56. package/dist/chunk-DUKHVPU5.js +4 -0
  57. package/dist/{chunk-ID63777H.js → chunk-DVYG3JTA.js} +2 -2
  58. package/dist/{chunk-NE6IU5ZD.js → chunk-EFFMFK7C.js} +2 -2
  59. package/dist/{chunk-I2T2LLK2.js → chunk-EM5UHLAM.js} +2 -2
  60. package/dist/chunk-EN4AHLL3.js +3 -0
  61. package/dist/chunk-EXMVF3JR.js +3 -0
  62. package/dist/{chunk-SWHMHUKF.js → chunk-FEBLLMTL.js} +2 -2
  63. package/dist/chunk-FIXYHQ3W.js +3 -0
  64. package/dist/{chunk-RKEJ6VTF.js → chunk-FLLXYUOL.js} +2 -2
  65. package/dist/{chunk-KWVHSKHK.js → chunk-FPDL2TUB.js} +2 -2
  66. package/dist/chunk-FQA3KIFX.js +17 -0
  67. package/dist/chunk-FWY2PRIF.js +3 -0
  68. package/dist/chunk-FY5V4V4F.js +2 -0
  69. package/dist/chunk-G2XUZCF2.js +88 -0
  70. package/dist/{chunk-QHRNXP3C.js → chunk-GXVDTHFC.js} +2 -2
  71. package/dist/{chunk-6MUIJMVL.js → chunk-H3CKAL6P.js} +2 -2
  72. package/dist/chunk-H5QXP63L.js +2 -0
  73. package/dist/{chunk-VUIYB2V3.js → chunk-HBQGKMM3.js} +2 -2
  74. package/dist/{chunk-PYAB5SM6.js → chunk-HBXZAGY6.js} +2 -2
  75. package/dist/{chunk-NNO6A2PO.js → chunk-HCMQZPEO.js} +2 -2
  76. package/dist/{chunk-Q65CQ4XL.js → chunk-HHBBGWES.js} +2 -2
  77. package/dist/{chunk-GTXSJDCO.js → chunk-HIEXRDJF.js} +2 -2
  78. package/dist/{chunk-4FC325IF.js → chunk-HYKSLTAR.js} +2 -2
  79. package/dist/{chunk-XLQ3GLWZ.js → chunk-I2KP4AGR.js} +2 -2
  80. package/dist/chunk-I5FCDTK2.js +2 -0
  81. package/dist/{chunk-QKPLA6IC.js → chunk-I645ZF75.js} +2 -2
  82. package/dist/{chunk-FDGD5AB5.js → chunk-IBM3F2BJ.js} +2 -2
  83. package/dist/{chunk-Q72QSKXC.js → chunk-IEL6Q5W3.js} +38 -38
  84. package/dist/{chunk-NCZUNH3E.js → chunk-IGQQUENU.js} +12 -12
  85. package/dist/chunk-IGYAZPRX.js +4 -0
  86. package/dist/chunk-IOVPAZWP.js +3 -0
  87. package/dist/{chunk-OL6KJP3N.js → chunk-IVJJNVSX.js} +2 -2
  88. package/dist/{chunk-AKB7V7TV.js → chunk-IWAMYGPN.js} +2 -2
  89. package/dist/chunk-IYBIBMPF.js +90 -0
  90. package/dist/{chunk-IOP6FWIM.js → chunk-J24VICI5.js} +2 -2
  91. package/dist/{chunk-C7QOQX32.js → chunk-JN5LIBT3.js} +2 -2
  92. package/dist/{chunk-O6QTXQPJ.js → chunk-JOALNFY3.js} +2 -2
  93. package/dist/{chunk-GCHRX4YW.js → chunk-JUO3Z644.js} +2 -2
  94. package/dist/{chunk-BJ6SQAEN.js → chunk-JXHLB7TP.js} +2 -2
  95. package/dist/{chunk-IJ4HMYBE.js → chunk-JYX5UZSZ.js} +2 -2
  96. package/dist/chunk-K2O7SBAU.js +2 -0
  97. package/dist/{chunk-OLF4MA5W.js → chunk-K5G7SPAG.js} +2 -2
  98. package/dist/{chunk-YSNONTJ2.js → chunk-KDYQQJ6X.js} +2 -2
  99. package/dist/{chunk-7NVGT435.js → chunk-KM4QRWI5.js} +2 -2
  100. package/dist/{chunk-HKQUXIFO.js → chunk-KNV5VFDV.js} +2 -2
  101. package/dist/chunk-L3YSDLNB.js +2 -0
  102. package/dist/{chunk-EZNMUY67.js → chunk-LAGDJXFY.js} +2 -2
  103. package/dist/{chunk-ENCCHKM6.js → chunk-LY2NB5XR.js} +4 -4
  104. package/dist/chunk-M4EVGA5S.js +14 -0
  105. package/dist/chunk-M7LAIM77.js +127 -0
  106. package/dist/{chunk-BVAJLC5A.js → chunk-MRGTCMDK.js} +2 -2
  107. package/dist/{chunk-OZYRSMSH.js → chunk-MT5W4DUG.js} +2 -2
  108. package/dist/{chunk-VE5AVNMP.js → chunk-MTMF4N7F.js} +2 -2
  109. package/dist/chunk-N3Q3AWGW.js +545 -0
  110. package/dist/{chunk-TXXOEMZJ.js → chunk-NDGTJHQN.js} +2 -2
  111. package/dist/chunk-NIO346UL.js +2 -0
  112. package/dist/chunk-NJA4MMBD.js +2 -0
  113. package/dist/{chunk-7FND7D7N.js → chunk-NK76RSB6.js} +2 -2
  114. package/dist/{chunk-H3LGFZVK.js → chunk-NTRW52UR.js} +2 -2
  115. package/dist/{chunk-JOIRNPPY.js → chunk-OJFLPVBP.js} +2 -2
  116. package/dist/{chunk-KMITESMT.js → chunk-OMBRP7BB.js} +2 -2
  117. package/dist/{chunk-UP3BUZR5.js → chunk-OVKZM2XI.js} +2 -2
  118. package/dist/{chunk-MVB3DAEY.js → chunk-PARCKE3Q.js} +2 -2
  119. package/dist/{chunk-CAUCPUOF.js → chunk-PFPHS4NO.js} +2 -2
  120. package/dist/chunk-PHPQ24UG.js +22 -0
  121. package/dist/chunk-PLZXWZHY.js +77 -0
  122. package/dist/{chunk-34WBMAYK.js → chunk-PNVZIJ57.js} +2 -2
  123. package/dist/{chunk-SYDJMPES.js → chunk-QKVTWODE.js} +2 -2
  124. package/dist/{chunk-FW53T7EB.js → chunk-QLTFXVUI.js} +2 -2
  125. package/dist/{chunk-PBI2LFKH.js → chunk-QMGWSEPL.js} +2 -2
  126. package/dist/{chunk-CQP3THUZ.js → chunk-QVHZB75Z.js} +2 -2
  127. package/dist/{chunk-6BQ3DSPK.js → chunk-QVWDQTMG.js} +2 -2
  128. package/dist/{chunk-ST7V3SKN.js → chunk-RCPZOPV6.js} +2 -2
  129. package/dist/chunk-RJWAB4VR.js +345 -0
  130. package/dist/chunk-RRPK327J.js +20 -0
  131. package/dist/chunk-RVYLJDXC.js +21 -0
  132. package/dist/chunk-RWKEXCHU.js +3 -0
  133. package/dist/{chunk-L4NRUAGJ.js → chunk-S5SKXCND.js} +2 -2
  134. package/dist/{chunk-RBAS5ZHI.js → chunk-S64NCE2Z.js} +2 -2
  135. package/dist/{chunk-WMPRTGH2.js → chunk-SF34QLK2.js} +2 -2
  136. package/dist/{chunk-ANFVSJWQ.js → chunk-SJZQ2PTZ.js} +2 -2
  137. package/dist/{chunk-4XTAUQFD.js → chunk-SRY26ITJ.js} +2 -2
  138. package/dist/chunk-SV2LEFVM.js +2 -0
  139. package/dist/{chunk-7XAN6GKB.js → chunk-T3YFIJ5P.js} +2 -2
  140. package/dist/chunk-T55YPJGB.js +3 -0
  141. package/dist/chunk-TAJ6UGCO.js +21 -0
  142. package/dist/{chunk-PIOMTC27.js → chunk-TUTSO7UZ.js} +2 -2
  143. package/dist/{chunk-FQKZWM4L.js → chunk-U24M5RQM.js} +5 -5
  144. package/dist/{chunk-XME3HPXZ.js → chunk-U2XX3BT4.js} +2 -2
  145. package/dist/{chunk-SZD2KF7Q.js → chunk-UWB5WMC2.js} +2 -2
  146. package/dist/{chunk-6CS3UQTN.js → chunk-VCL7FK3E.js} +2 -2
  147. package/dist/{chunk-N3IQCBCF.js → chunk-VCWAJPXQ.js} +2 -2
  148. package/dist/{chunk-LZYFLFEH.js → chunk-VG55NFXF.js} +2 -2
  149. package/dist/{chunk-PTAWHLVJ.js → chunk-VLTUX4IF.js} +2 -2
  150. package/dist/{chunk-JEJLSICM.js → chunk-VVCBMH5O.js} +2 -2
  151. package/dist/{chunk-JSOYNVWH.js → chunk-VYZQZ4ZN.js} +2 -2
  152. package/dist/chunk-W3FK73MD.js +8 -0
  153. package/dist/{chunk-UNBY47BC.js → chunk-W6C6QTXJ.js} +2 -2
  154. package/dist/chunk-WH5SYOMD.js +2 -0
  155. package/dist/chunk-WJOQC4P7.js +7 -0
  156. package/dist/chunk-WO47BIPY.js +3 -0
  157. package/dist/chunk-WOOTEWQT.js +239 -0
  158. package/dist/{chunk-UBGWN7I4.js → chunk-X5I2BQGX.js} +2 -2
  159. package/dist/{chunk-PX4RYAAK.js → chunk-XNUWRTYM.js} +2 -2
  160. package/dist/{chunk-ICFDQHAM.js → chunk-XUJM6474.js} +2 -2
  161. package/dist/chunk-XYLV727H.js +21 -0
  162. package/dist/{chunk-TRRC4ZJ7.js → chunk-YFQPWKHR.js} +2 -2
  163. package/dist/{chunk-NEDP5RFQ.js → chunk-YIOQJ45A.js} +2 -2
  164. package/dist/{chunk-Y6KHROC3.js → chunk-YXJ4IAHH.js} +2 -2
  165. package/dist/chunk-YYFV32WR.js +3 -0
  166. package/dist/{chunk-BH5F2Q4O.js → chunk-ZB3V5QM7.js} +2 -2
  167. package/dist/chunk-ZJZQ7Q2Q.js +3 -0
  168. package/dist/{chunk-EMNIHCRB.js → chunk-ZNQCR656.js} +2 -2
  169. package/dist/{chunk-TIIC3ZE7.js → chunk-ZOEDRCR4.js} +2 -2
  170. package/dist/cli-context-TSADTXLB.js +2 -0
  171. package/dist/cli-context-XEPPF4RX.js +3 -0
  172. package/dist/cli-program-KJGQEM72.js +7 -0
  173. package/dist/cli.js +1 -1
  174. package/dist/{code-DlqpBDd0.d.ts → code-CDe-mIjx.d.ts} +1 -1
  175. package/dist/code-viewer-YGDON6SY.js +12 -0
  176. package/dist/code-viewer-ZCTHXQ5C.js +11 -0
  177. package/dist/command-descriptors-5VAB2MZX.js +335 -0
  178. package/dist/command-descriptors-EAHKIRAG.js +337 -0
  179. package/dist/{config-types-BNoC96J3.d.ts → config-types-D6X5S68_.d.ts} +50 -0
  180. package/dist/{db-D7sauVFH.d.ts → db-DmRNdCtm.d.ts} +1 -1
  181. package/dist/direct-navigation-B3SGOOBW.js +2 -0
  182. package/dist/direct-navigation-ZL362KXF.js +3 -0
  183. package/dist/{graph-evidence-BIFqyisO.d.ts → graph-evidence-Bs54NWws.d.ts} +1 -1
  184. package/dist/{health-DJaZXg8I.d.ts → health-BnzbSLCE.d.ts} +1 -1
  185. package/dist/index.d.ts +2 -2
  186. package/dist/index.js +1 -1
  187. package/dist/invocation-command-descriptors-CSUGUHTT.js +2 -0
  188. package/dist/invocation-command-descriptors-PPVZOIE5.js +3 -0
  189. package/dist/output-continuation-command-FTVVBVSN.js +2 -0
  190. package/dist/output-continuation-command-ITPRC3YV.js +3 -0
  191. package/dist/project-reindex-7HZSLLLY.js +3 -0
  192. package/dist/project-reindex-NGM3DYBN.js +2 -0
  193. package/dist/queries/affected.d.ts +2 -2
  194. package/dist/queries/affected.js +1 -1
  195. package/dist/queries/anchors.d.ts +2 -2
  196. package/dist/queries/anchors.js +1 -1
  197. package/dist/queries/architecture.d.ts +2 -2
  198. package/dist/queries/architecture.js +1 -1
  199. package/dist/queries/bottlenecks.d.ts +2 -2
  200. package/dist/queries/bottlenecks.js +1 -1
  201. package/dist/queries/by-kind.d.ts +2 -2
  202. package/dist/queries/by-kind.js +1 -1
  203. package/dist/queries/call-graph.d.ts +2 -2
  204. package/dist/queries/call-graph.js +1 -1
  205. package/dist/queries/change-surface.d.ts +2 -2
  206. package/dist/queries/change-surface.js +1 -1
  207. package/dist/queries/cleanup-plan.d.ts +2 -2
  208. package/dist/queries/cleanup-plan.js +1 -1
  209. package/dist/queries/co-change.d.ts +2 -2
  210. package/dist/queries/co-change.js +1 -1
  211. package/dist/queries/code.d.ts +3 -3
  212. package/dist/queries/code.js +1 -1
  213. package/dist/queries/complexity-hotspots.d.ts +2 -2
  214. package/dist/queries/complexity-hotspots.js +1 -1
  215. package/dist/queries/complexity.d.ts +2 -2
  216. package/dist/queries/complexity.js +1 -1
  217. package/dist/queries/context.d.ts +2 -2
  218. package/dist/queries/context.js +1 -1
  219. package/dist/queries/convergence.d.ts +2 -2
  220. package/dist/queries/convergence.js +1 -1
  221. package/dist/queries/coupling.d.ts +2 -2
  222. package/dist/queries/coupling.js +1 -1
  223. package/dist/queries/cycles.d.ts +2 -2
  224. package/dist/queries/cycles.js +1 -1
  225. package/dist/queries/dataflow.d.ts +2 -2
  226. package/dist/queries/dataflow.js +1 -1
  227. package/dist/queries/dead.d.ts +2 -2
  228. package/dist/queries/dead.js +1 -1
  229. package/dist/queries/decorative-checkers.d.ts +2 -2
  230. package/dist/queries/decorative-checkers.js +1 -1
  231. package/dist/queries/deep-chains.d.ts +2 -2
  232. package/dist/queries/deep-chains.js +1 -1
  233. package/dist/queries/dependence-slice.d.ts +3 -3
  234. package/dist/queries/dependence-slice.js +1 -1
  235. package/dist/queries/dependency-depth.d.ts +2 -2
  236. package/dist/queries/dependency-depth.js +1 -1
  237. package/dist/queries/deps.d.ts +2 -2
  238. package/dist/queries/deps.js +1 -1
  239. package/dist/queries/diff-impact.d.ts +2 -2
  240. package/dist/queries/diff-impact.js +1 -1
  241. package/dist/queries/doc-drift.d.ts +2 -2
  242. package/dist/queries/doc-drift.js +1 -1
  243. package/dist/queries/drift.d.ts +2 -2
  244. package/dist/queries/drift.js +1 -1
  245. package/dist/queries/duplicate-bodies.d.ts +2 -2
  246. package/dist/queries/duplicate-bodies.js +1 -1
  247. package/dist/queries/entry-map.d.ts +2 -2
  248. package/dist/queries/entry-map.js +1 -1
  249. package/dist/queries/evidence.d.ts +3 -3
  250. package/dist/queries/evidence.js +1 -1
  251. package/dist/queries/extract-candidates.d.ts +2 -2
  252. package/dist/queries/extract-candidates.js +1 -1
  253. package/dist/queries/fan.d.ts +2 -2
  254. package/dist/queries/fan.js +1 -1
  255. package/dist/queries/files.d.ts +2 -2
  256. package/dist/queries/files.js +1 -1
  257. package/dist/queries/health.d.ts +3 -3
  258. package/dist/queries/health.js +1 -1
  259. package/dist/queries/hierarchy.d.ts +2 -2
  260. package/dist/queries/hierarchy.js +1 -1
  261. package/dist/queries/hotspots.d.ts +2 -2
  262. package/dist/queries/hotspots.js +1 -1
  263. package/dist/queries/imports.d.ts +2 -2
  264. package/dist/queries/imports.js +1 -1
  265. package/dist/queries/incomplete-migration.d.ts +2 -2
  266. package/dist/queries/incomplete-migration.js +1 -1
  267. package/dist/queries/index.d.ts +5 -5
  268. package/dist/queries/index.js +1 -1
  269. package/dist/queries/isolated.d.ts +2 -2
  270. package/dist/queries/isolated.js +1 -1
  271. package/dist/queries/locality-candidates.d.ts +2 -2
  272. package/dist/queries/locality-candidates.js +1 -1
  273. package/dist/queries/members.d.ts +2 -2
  274. package/dist/queries/members.js +1 -1
  275. package/dist/queries/methods.d.ts +2 -2
  276. package/dist/queries/methods.js +1 -1
  277. package/dist/queries/not-implemented.d.ts +2 -2
  278. package/dist/queries/not-implemented.js +1 -1
  279. package/dist/queries/outline.d.ts +2 -2
  280. package/dist/queries/outline.js +1 -1
  281. package/dist/queries/passthrough-candidates.d.ts +2 -2
  282. package/dist/queries/passthrough-candidates.js +1 -1
  283. package/dist/queries/plan-context.d.ts +2 -2
  284. package/dist/queries/plan-context.js +1 -1
  285. package/dist/queries/react-component-duplicates.d.ts +2 -2
  286. package/dist/queries/react-component-duplicates.js +1 -1
  287. package/dist/queries/react-hook-candidates.d.ts +2 -2
  288. package/dist/queries/react-hook-candidates.js +1 -1
  289. package/dist/queries/react-large-component-pressure.d.ts +2 -2
  290. package/dist/queries/react-large-component-pressure.js +1 -1
  291. package/dist/queries/recent-duplicates.d.ts +2 -2
  292. package/dist/queries/recent-duplicates.js +1 -1
  293. package/dist/queries/redundant-reexports.d.ts +2 -2
  294. package/dist/queries/redundant-reexports.js +1 -1
  295. package/dist/queries/reference-neighborhood.d.ts +2 -2
  296. package/dist/queries/reference-neighborhood.js +1 -1
  297. package/dist/queries/reference-reachability.d.ts +2 -2
  298. package/dist/queries/reference-reachability.js +1 -1
  299. package/dist/queries/refs.d.ts +2 -2
  300. package/dist/queries/refs.js +1 -1
  301. package/dist/queries/self-audit.d.ts +2 -2
  302. package/dist/queries/self-audit.js +1 -1
  303. package/dist/queries/similar-chains.d.ts +2 -2
  304. package/dist/queries/similar-chains.js +1 -1
  305. package/dist/queries/similar-files.d.ts +2 -2
  306. package/dist/queries/similar-files.js +1 -1
  307. package/dist/queries/similar-signatures.d.ts +2 -2
  308. package/dist/queries/similar-signatures.js +1 -1
  309. package/dist/queries/similar.d.ts +2 -2
  310. package/dist/queries/similar.js +1 -1
  311. package/dist/queries/slice.d.ts +2 -2
  312. package/dist/queries/slice.js +1 -1
  313. package/dist/queries/source-inspection.d.ts +4 -4
  314. package/dist/queries/source-inspection.js +1 -1
  315. package/dist/queries/source-search.d.ts +2 -2
  316. package/dist/queries/source-search.js +1 -1
  317. package/dist/queries/stale-abstractions.d.ts +2 -2
  318. package/dist/queries/stale-abstractions.js +1 -1
  319. package/dist/queries/stats.d.ts +2 -2
  320. package/dist/queries/surface.d.ts +2 -2
  321. package/dist/queries/surface.js +1 -1
  322. package/dist/queries/symbols.d.ts +2 -2
  323. package/dist/queries/symbols.js +1 -1
  324. package/dist/queries/system-map.d.ts +2 -2
  325. package/dist/queries/system-map.js +1 -1
  326. package/dist/queries/system.d.ts +2 -2
  327. package/dist/queries/system.js +1 -1
  328. package/dist/queries/test-quality.d.ts +2 -2
  329. package/dist/queries/test-quality.js +1 -1
  330. package/dist/queries/trace.d.ts +2 -2
  331. package/dist/queries/trace.js +1 -1
  332. package/dist/queries/twin-ab.d.ts +2 -2
  333. package/dist/queries/twin-ab.js +1 -1
  334. package/dist/queries/twin-drift.d.ts +2 -2
  335. package/dist/queries/twin-drift.js +1 -1
  336. package/dist/queries/unused-imports.d.ts +2 -2
  337. package/dist/queries/unused-imports.js +1 -1
  338. package/dist/queries/unused-params.d.ts +2 -2
  339. package/dist/queries/unused-params.js +1 -1
  340. package/dist/queries/value-flow.d.ts +3 -3
  341. package/dist/queries/value-flow.js +1 -1
  342. package/dist/queries/vue-component-duplicates.d.ts +2 -2
  343. package/dist/queries/vue-component-duplicates.js +1 -1
  344. package/dist/queries/vue-composable-candidates.d.ts +2 -2
  345. package/dist/queries/vue-composable-candidates.js +1 -1
  346. package/dist/queries/vue-large-view-pressure.d.ts +2 -2
  347. package/dist/queries/vue-large-view-pressure.js +1 -1
  348. package/dist/queries/wrapper-candidates.d.ts +2 -2
  349. package/dist/queries/wrapper-candidates.js +1 -1
  350. package/dist/reindex-worker.js +1 -1
  351. package/dist/reindex.d.ts +3 -3
  352. package/dist/reindex.js +31 -31
  353. package/dist/runtime.d.ts +24 -4
  354. package/dist/runtime.js +3 -3
  355. package/dist/rust-semantic-session-server.js +1 -1
  356. package/dist/rust-semantic-session-worker.js +1 -1
  357. package/dist/rust-semantic-worker.js +1 -1
  358. package/dist/{scip-cli-B7N3haxa.d.ts → scip-cli-BRFKkHQn.d.ts} +1 -1
  359. package/dist/sentinel-ensure-command-KYYULCFU.js +2 -0
  360. package/dist/sentinel-ensure-command-RIZA3RY7.js +3 -0
  361. package/dist/sentinel-hook.js +39 -0
  362. package/dist/sentinel-worker.js +16 -0
  363. package/dist/typescript-mailbox-worker.js +1 -1
  364. package/dist/watch-server.js +6 -6
  365. package/docs/COMMAND_REFERENCE.md +5 -3
  366. package/docs/schemas/project-config.schema.json +159 -0
  367. package/package.json +9 -5
  368. package/skills/codebaseiq/SKILL.md +1 -1
  369. package/skills/concrete-plan/SKILL.md +1 -1
  370. package/ui/view/api.js +450 -0
  371. package/ui/view/app.js +394 -0
  372. package/ui/view/builder.js +323 -0
  373. package/ui/view/file-panel.js +170 -0
  374. package/ui/view/focus.js +379 -0
  375. package/ui/view/index.html +54 -0
  376. package/ui/view/map.js +424 -0
  377. package/ui/view/styles.css +1125 -0
  378. package/dist/chunk-2X7V4HS4.js +0 -88
  379. package/dist/chunk-3IER7Q6H.js +0 -12
  380. package/dist/chunk-3JSXXYTZ.js +0 -345
  381. package/dist/chunk-476NR5B7.js +0 -2
  382. package/dist/chunk-5VKBFZZU.js +0 -3
  383. package/dist/chunk-ADTBPVUZ.js +0 -21
  384. package/dist/chunk-BFFZDZQV.js +0 -2
  385. package/dist/chunk-BMYOV5GP.js +0 -77
  386. package/dist/chunk-C74PPYLA.js +0 -3
  387. package/dist/chunk-CWONGW6P.js +0 -3
  388. package/dist/chunk-DDZ7VHWV.js +0 -20
  389. package/dist/chunk-DR2LURYU.js +0 -3
  390. package/dist/chunk-ECQBG7PW.js +0 -564
  391. package/dist/chunk-FM5BPL4V.js +0 -60
  392. package/dist/chunk-G6XFR4ZL.js +0 -4
  393. package/dist/chunk-GTIYTDRE.js +0 -562
  394. package/dist/chunk-HOA5YGOH.js +0 -3
  395. package/dist/chunk-KUW32IRO.js +0 -2
  396. package/dist/chunk-LTA3BRZX.js +0 -2
  397. package/dist/chunk-NAUD7LCA.js +0 -2
  398. package/dist/chunk-OGTFJ3XD.js +0 -2
  399. package/dist/chunk-Q5ELPRKQ.js +0 -2
  400. package/dist/chunk-QCN62RTF.js +0 -3
  401. package/dist/chunk-QW7EP6WI.js +0 -21
  402. package/dist/chunk-RU65DDUP.js +0 -215
  403. package/dist/chunk-SELM5MER.js +0 -2
  404. package/dist/chunk-SNNWPCN7.js +0 -4
  405. package/dist/chunk-TFZB6XTM.js +0 -239
  406. package/dist/chunk-UXM43C7T.js +0 -3
  407. package/dist/chunk-VFY6Y2H6.js +0 -61
  408. package/dist/chunk-WE5RZHZ7.js +0 -5
  409. package/dist/chunk-Z54RD7VL.js +0 -3
  410. package/dist/cli-context-3SNLDYBM.js +0 -3
  411. package/dist/cli-context-T3B7W6GG.js +0 -2
  412. package/dist/cli-program-YNOXO72B.js +0 -7
  413. package/dist/command-descriptors-6AOUKWW7.js +0 -346
  414. package/dist/command-descriptors-ZFKJSRUP.js +0 -344
  415. package/dist/direct-navigation-DP4LVMRX.js +0 -3
  416. package/dist/direct-navigation-FLUS3BT6.js +0 -2
  417. package/dist/invocation-command-descriptors-QT2JMY5J.js +0 -3
  418. package/dist/invocation-command-descriptors-YN4QJEAX.js +0 -2
  419. package/dist/output-continuation-command-2V2SL4TD.js +0 -2
  420. package/dist/output-continuation-command-65J5IP3O.js +0 -3
  421. package/dist/project-reindex-5JOKXAXT.js +0 -2
  422. package/dist/project-reindex-UQBIKO4M.js +0 -3
@@ -1,3 +1,3 @@
1
- import{a as X}from"./chunk-P5XHIJHI.js";import{C as wt,D as me,E as $,F as Le,G as Z,H as ee,I as Oe,J as Pt,K as dn,L as Ue,M as ne,N as Et,O as At,P as Be,Q as Ft,S as pn,U as mn,V as yn,u as Tt}from"./chunk-UCD3H3UZ.js";import{d as Ct}from"./chunk-ELNRLMC5.js";import{a as De,b as xe,c as we,d as ke,e as q,q as kt}from"./chunk-ZKX2FRS6.js";import{b as Dt,e as V,f as Ne,h as xt,j as pe,t as z,u as _e}from"./chunk-FETNQCFO.js";import{a as de,f as Fe,n as Mt,p as vt}from"./chunk-O6QTXQPJ.js";import{C as It,a as Ee,c as pt,d as mt,q as ln,z as ht}from"./chunk-ADTBPVUZ.js";import{a as ot,b as st,e as lt,f as ut,i as Pe,k as cn,m as ft,o as dt,r as un,s as fn,t as ue}from"./chunk-BMYOV5GP.js";import{d as gt,f as bt,g as fe,j as Rt}from"./chunk-CWONGW6P.js";import{a as _,c as yt,d as k,f as Ae}from"./chunk-3LCDIREB.js";import{A as at,B as H,C as Ce,F as Te,G as B,H as ct,L as an,ea as St,n as le,q as N}from"./chunk-NNJ2KZZG.js";function Nt(n){let e=new Map,t=ui(n),r=new Map;return i=>{let o=li(i),s=r.get(o);if(s!==void 0)return s;if(!t.has(i.file))return r.set(o,i.symbol),i.symbol;let a=e.get(i.file);a||(a=fi(z(n,i.file)),e.set(i.file,a));let c=di(a,i);return r.set(o,c),c}}function li(n){return`${n.file}\0${n.symbol}\0${n.line}`}function ui(n){return new Set(n.all("SELECT relative_path FROM documents").map(e=>e.relative_path))}function fi(n){let e=new Map,t=new Map;for(let r of n){let i=e.get(r.leaf);i?i.push(r):e.set(r.leaf,[r]);let o=t.get(r.startLine);o?o.push(r):t.set(r.startLine,[r])}return{definitions:n,byLeaf:e,byStartLine:t}}function di(n,e){if(n.definitions.length===0)return e.symbol;let t=yi(e.symbol),r=pi(n.byLeaf,t),i=mi(r,e.line);if(i)return i.symbol;let o=n.byStartLine.get(e.line)??[];return o.length===1?o[0].symbol:e.symbol}function pi(n,e){let t=[],r=new Set;for(let i of e)for(let o of n.get(i)??[])r.has(o.symbolId)||(r.add(o.symbolId),t.push(o));return t}function mi(n,e){let t=null;for(let r of n)if(!(r.startLine>e||r.endLine<e)){if(r.startLine===e)return r;(!t||r.endLine-r.startLine<t.endLine-t.startLine)&&(t=r)}return t}function yi(n){let e=new Set([n]),r=n.split(/::|\.|#/).filter(Boolean).at(-1);return r&&e.add(r),e}function _t(n,e){let r=vt(n,e).map(i=>gi(e,i));return{usage:r,positions:bi(n,e,r)}}function Lt(n,e){return{importUsage(t){let r=n.importUsageFacts(t);if(!e||r.positions.length===0)return r.usage;let i=e.importDefinitionsForFile(t,r.positions);return i.available?Si(r.usage,i.sourcePaths):r.usage}}}function Si(n,e){return n.map((t,r)=>{let i=e.get(String(r));return i?{...t,sourcePath:i}:t})}function gi(n,e){let t=e.isTypeOnly===!0,r=e.kind==="side-effect"||t||e.used;return{importer:n,sourcePath:e.sourcePath,importedName:e.importedName,localName:e.localName,kind:e.kind,isTypeOnly:t,isUsed:r,isTypeUsed:t,isValueUsed:e.kind==="side-effect"||!t&&e.used,references:[]}}function bi(n,e,t){let r=It(n,e);if(!r)return[];let i=Ri(r.rootNode),o=new Map;for(let a of i){let c=o.get(gn(a.importedName,a.localName));c?c.push(a.position):o.set(gn(a.importedName,a.localName),[a.position])}let s=[];return t.forEach((a,c)=>{let u=o.get(gn(a.importedName,a.localName??a.importedName))?.shift();u&&s.push({...u,id:String(c),file:e})}),s}function Ri(n){let e=[];for(let t of n.descendantsOfType("use_declaration")){let r=t.namedChildren.find(i=>i.type!=="visibility_modifier");r&&e.push(...qe(r,""))}return e.filter(t=>t.importedName!=="*")}function qe(n,e){switch(n.type){case"identifier":case"super":case"self":case"crate":return[{importedName:n.text,localName:n.text,position:Sn(n,n.text)}];case"scoped_identifier":{let t=n.text.split("::").pop()??n.text;return[{importedName:t,localName:t,position:Sn(n,t)}]}case"scoped_use_list":{let t=n.namedChild(0),r=n.namedChild(1);if(!t||!r)return[];let i=Mt(e,t.text);return r.namedChildren.flatMap(o=>qe(o,i))}case"use_list":return n.namedChildren.flatMap(t=>qe(t,e));case"use_as_clause":{let t=n.namedChild(0),r=n.namedChild(1);return!t||!r?[]:qe(t,e).map(i=>({...i,localName:r.text}))}case"use_wildcard":{let t=n.namedChild(0),r="*";return[{importedName:r,localName:r,position:Sn(t??n,r)}]}default:return[]}}function Sn(n,e){let t=Math.max(0,n.text.lastIndexOf(e));return{id:"",file:"",line:n.startPosition.row,column:n.startPosition.column+t+hi(e)}}function hi(n){return Math.max(0,Math.min(n.length-1,1))}function gn(n,e){return`${n}\0${e}`}import{spawnSync as wn}from"child_process";import{existsSync as kn}from"fs";import{fileURLToPath as vo}from"url";function je(n){let e=wt(Tt,n),t=e.runnable;return t?{available:!0,dependencyAvailable:t,resolvedBinary:e.resolvedBinary??void 0,note:"rust-analyzer semantic reference queries are enabled."}:{available:!1,dependencyAvailable:t,resolvedBinary:e.resolvedBinary??void 0,reason:"rust-analyzer is not runnable; Rust semantic checks will use SCIP/source evidence only."}}import{existsSync as oo,mkdtempSync as sr,rmSync as vn}from"fs";import{tmpdir as ar}from"os";import{join as Dn}from"path";import{fileURLToPath as Ye,pathToFileURL as so}from"url";import{SHARE_ENV as ao,Worker as co}from"worker_threads";function K(n,e,t=new Set){let r=new Map;for(let i of n)t.has(i.symbolId)||r.set(i.symbolId,e.get(i.symbolId)??[]);return r}function Y(n,e,t){let r=X(process.env.SCIP_RUST_SEMANTIC_BATCH_TIMEOUT_MS)??0;if(r>0)return r;let i=Math.max(1,Math.ceil(n/Math.max(1,t)));return Math.max(12e4,3e4+i*e)}import{spawn as Bi}from"child_process";import{createHash as qi,randomUUID as ji}from"crypto";import{existsSync as Qt,realpathSync as Wi,rmSync as zi}from"fs";import{tmpdir as Ki}from"os";import{resolve as re}from"path";import{execFileSync as wi}from"child_process";import{existsSync as Ii}from"fs";import{deserializeSCIP as Mi,SymbolRole as vi}from"@c4312/scip";import{realpathSync as ea}from"fs";import{basename as ta,dirname as ra,join as ia,relative as oa,sep as sa}from"path";import{fileURLToPath as ca,pathToFileURL as la}from"url";function We(n){let e=new Map;for(let t of n)e.set(`${t.file}\0${t.line}\0${t.column}`,t);return[...e.values()].sort((t,r)=>{let i=t.file.localeCompare(r.file);return i!==0?i:t.line!==r.line?t.line-r.line:t.column-r.column})}var bn=new WeakMap,Di="SCIP_RUST_SCIP_OCCURRENCE_REFERENCE_MODE";function Ot(n,e){let t=new Map,r=ze(),i=e.filter(s=>qt(s,r));if(i.length===0)return t;let o=jt(n);if(!o)return t;for(let s of i){let a=Bt(o,s);a!==null&&t.set(s.symbolId,a)}return t}function Ut(n,e){if(!qt(e,ze()))return null;let t=jt(n);return t?Bt(t,e):null}function Bt(n,e){return n.referencesBySymbol.get(e.symbol)??[]}function qt(n,e="safe"){if(!n.symbol.startsWith("rust-analyzer ")||!n.relativePath.endsWith(".rs")||pe(n.symbol)||/impl#\[[^\]]+\]\[Default\]default\(\)\.$/.test(n.symbol))return!1;if(e==="all")return!0;let t=Ne(n.symbol);if(t==="method")return!0;if(t!=="term")return!1;let r=Dt(n.symbol);return"kind"in r?!1:!xi(r)}function xi(n){for(let e=0;e<n.descriptors.length-1;e+=1)if(n.descriptors[e]?.suffix==="type")return!0;return!1}function jt(n){if(bn.has(n))return bn.get(n)??null;let e=Ci(n);return bn.set(n,e),e}function Ci(n){if(!n.generation.indexPath||!Ii(n.generation.indexPath))return null;try{let e=Mi(Te(n.generation.indexPath,{inputKind:"SCIP occurrence-reference index",maxBytes:Ce})),t=new Map;for(let r of e.documents??[]){let i=r.relativePath;if(!(!i||n.isIgnored(i)))for(let o of r.occurrences??[]){if(!o.symbol||(o.symbolRoles&vi.Definition)!==0)continue;let s=Ti(i,o.range);if(!s)continue;let a=t.get(o.symbol)??[];a.push(s),t.set(o.symbol,a)}}for(let[r,i]of t)t.set(r,We(i));return{referencesBySymbol:t}}catch{return null}}function Ti(n,e){if(e.length<3)return null;let t=e[0],r=e[1];return!Number.isInteger(t)||!Number.isInteger(r)?null:{file:n,line:t,column:r}}function ze(){return process.env[Di]==="all"?"all":"safe"}var Wt=new Map;function Rn(n){let t=je(n).resolvedBinary??null;return{engine:"rust-analyzer",resolvedBinary:t,version:t?ki(n,t):"unavailable"}}function hn(n){return{...Rn(n),scipOccurrenceReferenceMode:ze()}}function ki(n,e){let t=`${n}\0${e}`,r=Wt.get(t);if(r)return r;let i;try{i=wi(e,["--version"],{cwd:n,encoding:"utf8",stdio:["ignore","pipe","ignore"],windowsHide:!0,timeout:2e3}).trim()}catch{i="unknown"}return Wt.set(t,i),i}import{createHash as Pi}from"crypto";var Ei=new Set(["Cargo.lock","Cargo.toml","rust-project.json","rust-toolchain","rust-toolchain.toml"]);function zt(n){let e=Rt(n,{includePath:Ai});return Pi("sha256").update(JSON.stringify(e)).digest("hex")}function Ai(n){let e=n.replaceAll("\\","/"),t=e.split("/").at(-1)??e;return e.endsWith(".rs")||Ei.has(t)?!0:e===".cargo/config"||e===".cargo/config.toml"||e.endsWith("/.cargo/config")||e.endsWith("/.cargo/config.toml")}import{createHash as Fi}from"crypto";import{resolve as Ni}from"path";var te=3;function Mn(n){return Fi("sha256").update(me({kind:"codebaseiq-durable-rust-mailbox",protocolVersion:te,sessionDir:Ni(n)})).digest("hex")}function Vt(n,e){return le(n)?n.protocolVersion!==te?Ht(n.protocolVersion===void 0?"helper wrote a prior uncorrelated response protocol":`helper wrote unsupported response protocol ${String(n.protocolVersion)}`):n.mailboxVersion!==$||n.id!==e.requestId||n.operationKey!==e.operationKey||n.sessionIdentity!==e.sessionIdentity||n.deadlineAtMs!==e.deadlineAtMs?Ht("helper wrote an incompatible response identity"):typeof n.completedAtMs!="number"||!Number.isFinite(n.completedAtMs)||n.completedAtMs>e.deadlineAtMs||e.nowMs>e.deadlineAtMs?{ok:!1,code:"expired-request",error:"helper response arrived after the durable request deadline"}:n.ok===!1?typeof n.error!="string"||!Ui(n.errorCode)?In("helper wrote an invalid rejection response"):{ok:!1,code:n.errorCode,error:n.error}:n.ok!==!0||n.session!=="created"&&n.session!=="reused"&&n.session!=="invalidated"||!_i(n.response,e.requestKind)?In("helper wrote an invalid success response"):{ok:!0,session:n.session,response:n.response}:In("helper wrote an invalid response object")}function _i(n,e){return!le(n)||typeof n.available!="boolean"||n.available===!1&&(typeof n.reason!="string"||n.reason.length===0)||n.available===!0&&n.reason!==void 0?!1:e==="import-definitions"?Array.isArray(n.sourcePaths)&&n.sourcePaths.every(t=>Array.isArray(t)&&t.length===2&&typeof t[0]=="string"&&(t[1]===null||typeof t[1]=="string")):Kt(n.references,Li)&&(n.incompleteReferenceSymbolIds===void 0||Array.isArray(n.incompleteReferenceSymbolIds)&&n.incompleteReferenceSymbolIds.every(t=>Number.isSafeInteger(t)))&&(n.callees===void 0||Kt(n.callees,Oi))&&(n.signatures===void 0||Array.isArray(n.signatures)&&n.signatures.every(t=>Array.isArray(t)&&t.length===2&&Number.isSafeInteger(t[0])&&(t[1]===null||typeof t[1]=="string")))}function Kt(n,e){return Array.isArray(n)&&n.every(t=>Array.isArray(t)&&t.length===2&&Number.isSafeInteger(t[0])&&Array.isArray(t[1])&&t[1].every(e))}function Li(n){return le(n)&&typeof n.file=="string"&&N(n.line)&&N(n.column)}function Oi(n){return le(n)&&typeof n.symbol=="string"&&typeof n.file=="string"&&N(n.line)&&(n.callsiteLine===void 0||N(n.callsiteLine))}function Ui(n){return n==="unsupported-protocol"||n==="malformed-request"||n==="expired-request"||n==="handler-error"}function In(n){return{ok:!1,code:"malformed-response",error:n}}function Ht(n){return{ok:!1,code:"incompatible-response",error:n}}var Hi=5e3,Xt=10,Vi=3e4;function $t(n,e,t,r=rr){let i=r.engineIdentity(n),o={protocolVersion:te,projectRoot:r.canonicalProjectRoot(n),projectFingerprint:r.projectFingerprint(n),engine:{engine:i.engine,resolvedBinary:i.resolvedBinary,version:i.version},workerFingerprint:r.fileFingerprint(e),environment:er(r.environment())};return{key:ir(me(o)),...o}}function Ke(n,e,t,r){if(n.protocolVersion!==te||!t(n.pid))return!1;if(!n.processIdentity)return!0;let i=r?.(n.pid);return i!=null&&xe(n.processIdentity,i)}function Zt(n,e,t){let r;try{r=an(e,{maxBytes:H,inputKind:"Rust semantic engine artifact"})}catch{r="missing"}let i=ir(me({projectRoot:re(n),serverPath:re(e),serverFingerprint:r})).slice(0,20);return re(t,`codebaseiq-rust-session-${i}`)}function Yt(n){let e=n===void 0?Number.NaN:Number(n);return Number.isInteger(e)&&e>=0?e:0}function er(n){return Object.fromEntries(Object.entries(n).filter(([e])=>tr(e)).sort(([e],[t])=>e.localeCompare(t)).map(([e,t])=>[e,t??null]))}function nr(n,e){let t=e.runtime??Xi,r=e.identityRuntime??rr,i=Zt(n,e.serverPath,e.tempRoot??Ki()),o=!1,s=(a,c)=>{if(o)throw new Error("Durable Rust semantic session was already disposed.");return Yi(i,e.serverPath,e.semanticWorkerPath,a,c,t,e.mailboxLimits)};return{requestSemantic(a,c){let u=$t(n,e.semanticWorkerPath,a,r),{readinessDeadlineMs:f,...l}=a;return s({kind:"semantic",identityKey:u.key,workerEnvironment:Gt(),request:{...l,referenceRetryTimeoutMs:$i(process.env.SCIP_RUST_SEMANTIC_REFERENCE_RETRY_TIMEOUT_MS,a.referenceRetryTimeoutMs),settleDelayMs:process.env.SCIP_RUST_SEMANTIC_SETTLE_MS===void 0?a.settleDelayMs:Yt(process.env.SCIP_RUST_SEMANTIC_SETTLE_MS)},timeoutMs:c},c)},requestImportDefinitions(a,c){let u=$t(n,e.semanticWorkerPath,a,r),{readinessDeadlineMs:f,...l}=a;return s({kind:"import-definitions",identityKey:u.key,workerEnvironment:Gt(),request:{...l,settleDelayMs:process.env.SCIP_RUST_SEMANTIC_SETTLE_MS===void 0?a.settleDelayMs:Yt(process.env.SCIP_RUST_SEMANTIC_SETTLE_MS)},timeoutMs:c},c)},shutdown(){o=!0}}}function $i(n,e){return e!==void 0?e:n===void 0?Vi:void 0}function Yi(n,e,t,r,i,o,s={}){let a=o.now(),c=a+i,u=(o.monotonicNow??q)(),f=u+i,l=Z("rust-semantic-v3",r),d=ee(l),p=Le(n),m=Mn(n),R=Oe(p,{mailboxVersion:$,protocolVersion:te,id:d,operationKey:l,clientId:o.randomId(),enqueuedAtMs:a,deadlineAtMs:c,sessionIdentity:m,request:r},{nowMs:a,limits:s});for(Jt(n,e,t,f,o);(o.monotonicNow??q)()<=f;){if(Qt(R.responsePath)){let S=Ji(B(R.responsePath,{maxBytes:s.maxItemBytes??H,inputKind:"durable Rust semantic mailbox response"}),{requestId:d,operationKey:l,sessionIdentity:m,deadlineAtMs:R.authoritativeDeadlineAtMs,requestKind:r.kind,nowMs:o.now()});if(!S.ok)throw new Error(S.error);return _()&&Ae({type:"span",name:"rust.semantic.durable-session.request",durationMs:(o.monotonicNow??q)()-u,ok:!0,session:S.session,kind:r.kind}),S.response}let I=He(n);(!I||!Ke(I,o.now(),o.isProcessAlive,o.readProcessIdentity))&&Jt(n,e,t,f,o),o.sleep(Xt)}throw new Error(`Durable Rust semantic session timed out after ${(i/1e3).toFixed(0)}s.`)}function Jt(n,e,t,r,i){let o=He(n);if(o&&Ke(o,i.now(),i.isProcessAlive,i.readProcessIdentity))return;zi(re(n,"server.json"),{force:!0}),i.spawnServer(e,n,t);let s=i.monotonicNow??q,a=Math.min(r,s()+Hi);for(;s()<=a;){let c=He(n);if(c&&Ke(c,i.now(),i.isProcessAlive,i.readProcessIdentity))return;i.sleep(Xt)}throw new Error("Durable Rust semantic session helper did not become ready within 5s.")}function He(n){try{let e=JSON.parse(B(re(n,"server.json"),{maxBytes:at,inputKind:"durable Rust session state"}));if(typeof e.protocolVersion!="number"||e.sessionIdentity!==void 0&&(typeof e.sessionIdentity!="string"||e.sessionIdentity!==Mn(n))||typeof e.pid!="number"||typeof e.heartbeatAtMs!="number"||e.busyUntilMs!==void 0&&typeof e.busyUntilMs!="number"||e.mailbox!==void 0&&!Gi(e.mailbox))return null;let t=e.processIdentity===void 0?null:De(e.processIdentity);return e.processIdentity!==void 0&&(!t||t.pid!==e.pid)?null:{protocolVersion:e.protocolVersion,...e.sessionIdentity===void 0?{}:{sessionIdentity:e.sessionIdentity},pid:e.pid,...t?{processIdentity:t}:{},heartbeatAtMs:e.heartbeatAtMs,...e.busyUntilMs===void 0?{}:{busyUntilMs:e.busyUntilMs},...e.mailbox===void 0?{}:{mailbox:e.mailbox}}}catch{return null}}function Ji(n,e){try{return Vt(JSON.parse(n),e)}catch(t){return{ok:!1,code:"malformed-response",error:`helper wrote malformed JSON: ${t instanceof Error?t.message:String(t)}`}}}function Gi(n){if(!n||typeof n!="object")return!1;let e=n;return N(e.pending)&&N(e.inflight)&&N(e.responses)&&N(e.deadLetters)&&N(e.invalid)&&N(e.totalItems)&&typeof e.totalBytes=="number"&&Number.isFinite(e.totalBytes)&&e.totalBytes>=0&&(e.oldestPendingAt===void 0||Number.isFinite(Date.parse(e.oldestPendingAt)))}function Gt(){return Object.fromEntries(Object.entries(process.env).filter(([n])=>Qi(n)).sort(([n],[e])=>n.localeCompare(e)).map(([n,e])=>[n,e??null]))}function tr(n){return n==="HOME"||n==="PATH"||n.startsWith("CARGO_")||n.startsWith("RA_")||n.startsWith("RUST")}function Qi(n){return tr(n)||n.startsWith("SCIP_RUST_")||n==="CODEBASEIQ_PROFILE"||n==="CODEBASEIQ_PROFILE_CACHE_STATE"||n==="CODEBASEIQ_PROFILE_COMMAND"||n==="CODEBASEIQ_PROFILE_OUT"||n==="CODEBASEIQ_PROFILE_RUN_ID"||n==="CODEBASEIQ_PROFILE_WORKLOAD_IDENTITY"||n==="CODEBASEIQ_PROFILE_WORKLOAD_IDENTITY_KIND"||n==="CODEBASEIQ_PROFILE_MIN_MS"}var rr={canonicalProjectRoot(n){try{return Wi(n)}catch{return re(n)}},projectFingerprint(n){return zt(n)},engineIdentity:Rn,fileFingerprint(n){return an(n,{maxBytes:H,inputKind:"Rust semantic engine artifact"})},environment(){return er(process.env)}},Xi={now:Date.now,monotonicNow:q,randomId:ji,isProcessAlive:ke,readProcessIdentity:we,spawnServer(n,e,t){if(!Qt(n))throw new Error(`Durable Rust semantic session helper was not found at ${n}. Run npm run build first.`);Bi(process.execPath,[n,e,t],{detached:!0,stdio:"ignore",windowsHide:!0}).unref()},sleep(n){let e=new Int32Array(new SharedArrayBuffer(4));Atomics.wait(e,0,0,n)}};function ir(n){return qi("sha256").update(n).digest("hex")}import{randomUUID as Xa}from"crypto";import{readdirSync as Zi,rmSync as ec,writeFileSync as nc}from"fs";import{join as eo}from"path";var no="rust-analyzer-owner-",to=".json",ro=16*1024;async function or(n,e){if(!n)return[];let t;try{t=Zi(n)}catch{return[]}let r=t.filter(s=>s.startsWith(no)&&s.endsWith(to)).map(s=>eo(n,s)),i=[],o=[];for(let s of r){let a=io(s);a?o.push(a):i.push({reaped:!1,reason:"identity-unavailable",detail:`Rust analyzer ownership record ${s} could not be validated.`})}return i.push(...await Promise.all(o.map(s=>kt(s,e)))),i}function io(n){try{let e=B(n,{maxBytes:ro,inputKind:"rust-analyzer process ownership record"}),t=JSON.parse(e),r=De(t.rootIdentity);return t.version!==1||!r||typeof t.ownsProcessGroup!="boolean"?null:{rootPid:r.pid,rootIdentity:r,ownsProcessGroup:t.ownsProcessGroup,knownMembers:new Map([[r.pid,r]])}}catch{return null}}var cr=15e3,lr=8,fr=5e3,lo=64,uo=96,Cn=class{constructor(e,t,r={}){this.projectRoot=e;this.status=t;this.opts=r;this.requester=r.requester??yo(e,process.env.SCIP_RUST_SEMANTIC_DURABLE_SESSION)}projectRoot;status;opts;requester;referencesForDefinitions(e){let t=this.status(this.projectRoot);if(!t.available||!t.resolvedBinary)return{available:!1,resolvedBinary:t.resolvedBinary,reason:Se(t),references:ge(e)};try{let r=this.requestSession(t.resolvedBinary,e,{includeReferences:!0});return{...ye(r),resolvedBinary:t.resolvedBinary,references:K(e,new Map(r.references),new Set(r.incompleteReferenceSymbolIds??[]))}}catch(r){return this.opts.fallbackReferenceResolver?.referencesForDefinitions(e)??{available:!1,resolvedBinary:t.resolvedBinary,reason:r instanceof Error?r.message:String(r),references:ge(e)}}}calleesForDefinitions(e){let t=this.status(this.projectRoot);if(!t.available||!t.resolvedBinary)return{available:!1,resolvedBinary:t.resolvedBinary,reason:Se(t),callees:be(e)};try{let r=this.requestSession(t.resolvedBinary,e,{includeReferences:!1,includeCallees:!0});return{...ye(r),resolvedBinary:t.resolvedBinary,callees:xn(e,new Map(r.callees??[]))}}catch(r){return this.opts.fallbackCalleeResolver?.calleesForDefinitions(e)??{available:!1,resolvedBinary:t.resolvedBinary,reason:r instanceof Error?r.message:String(r),callees:be(e)}}}referencesAndCalleesForDefinitions(e,t){let r=this.status(this.projectRoot);if(!r.available||!r.resolvedBinary)return{available:!1,resolvedBinary:r.resolvedBinary,reason:Se(r),references:ge(e),callees:be(t)};let i=[...e,...t];try{let o=this.requestSession(r.resolvedBinary,i,{includeReferences:e.length>0,includeCallees:t.length>0,referenceDefinitions:e,calleeDefinitions:t});return{...ye(o),resolvedBinary:r.resolvedBinary,references:K(e,new Map(o.references),new Set(o.incompleteReferenceSymbolIds??[])),callees:xn(t,new Map(o.callees??[]))}}catch(o){return this.fallbackReferencesAndCallees(r,e,t,o)}}signaturesForDefinitions(e){let t=this.status(this.projectRoot);if(!t.available||!t.resolvedBinary)return{available:!1,resolvedBinary:t.resolvedBinary,reason:Se(t),signatures:ur(e)};try{let r=this.requestSession(t.resolvedBinary,e,{includeReferences:!1,includeCallees:!1,includeSignatures:!0});return{...ye(r),resolvedBinary:t.resolvedBinary,signatures:ho(e,new Map(r.signatures??[]))}}catch(r){return this.opts.fallbackSignatureResolver?.signaturesForDefinitions(e)??{available:!1,resolvedBinary:t.resolvedBinary,reason:r instanceof Error?r.message:String(r),signatures:ur(e)}}}importDefinitionsForFile(e,t){let r=this.status(this.projectRoot);if(t.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:Se(r),sourcePaths:new Map(t.map(i=>[i.id,null]))};try{let i=this.requestImportDefinitions(r.resolvedBinary,e,t);return{...ye(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(t.map(o=>[o.id,null]))}}}dispose(){this.requester.shutdown()}requestSession(e,t,r){let i=Ve(process.env.SCIP_RUST_SEMANTIC_REQUEST_TIMEOUT_MS,cr),o=$e(process.env.SCIP_RUST_SEMANTIC_REFERENCE_RETRY_TIMEOUT_MS,0),s=Ve(process.env.SCIP_RUST_SEMANTIC_CONCURRENCY,lr),a=$e(process.env.SCIP_RUST_SEMANTIC_DIAGNOSTICS_TIMEOUT_MS,Math.min(i,1e4)),c=r.referenceDefinitions?[...r.referenceDefinitions]:void 0,u=r.calleeDefinitions?[...r.calleeDefinitions]:void 0,f=r.signatureDefinitions?[...r.signatureDefinitions]:void 0,l=Re(process.env.SCIP_RUST_SEMANTIC_SETTLE_MS,{definitionCount:t.length,...r}),d={projectRoot:this.projectRoot,rustAnalyzerBinary:e,definitions:[...t],...c?{referenceDefinitions:c}:{},...u?{calleeDefinitions:u}:{},...f?{signatureDefinitions:f}:{},requestTimeoutMs:i,...r.includeReferences!==!1&&o>0?{referenceRetryTimeoutMs:o}:{},diagnosticsTimeoutMs:a,settleDelayMs:l,concurrency:s,includeReferences:r.includeReferences,includeCallees:r.includeCallees,includeSignatures:r.includeSignatures},p=Io(d);return k("rust.semantic.session.request",()=>this.requester.requestSemantic(d,Y(p,Tn(i,d.referenceRetryTimeoutMs),s)),()=>({definitions:t.length,operationDefinitions:p,referenceDefinitions:d.referenceDefinitions?.length,calleeDefinitions:d.calleeDefinitions?.length,signatureDefinitions:d.signatureDefinitions?.length,references:d.includeReferences!==!1,callees:d.includeCallees===!0,signatures:d.includeSignatures===!0,referenceRetryTimeoutMs:d.referenceRetryTimeoutMs}))}fallbackReferencesAndCallees(e,t,r,i){let o=t.length===0?{available:!0,resolvedBinary:e.resolvedBinary,references:ge(t)}:this.opts.fallbackReferenceResolver?.referencesForDefinitions(t),s=r.length===0?{available:!0,resolvedBinary:e.resolvedBinary,callees:be(r)}:this.opts.fallbackCalleeResolver?.calleesForDefinitions(r);if(o&&s){let a={resolvedBinary:o.resolvedBinary??s.resolvedBinary??e.resolvedBinary,references:K(t,o.references),callees:xn(r,s.callees)};return o.available&&s.available?{available:!0,...a}:{available:!1,reason:(o.available?void 0:o.reason)??(s.available?void 0:s.reason)??"Rust semantic fallback was unavailable.",...a}}return{available:!1,resolvedBinary:e.resolvedBinary,reason:i instanceof Error?i.message:String(i),references:ge(t),callees:be(r)}}requestImportDefinitions(e,t,r){let i=Ve(process.env.SCIP_RUST_SEMANTIC_REQUEST_TIMEOUT_MS,cr),o=Ve(process.env.SCIP_RUST_SEMANTIC_CONCURRENCY,lr),s=$e(process.env.SCIP_RUST_SEMANTIC_DIAGNOSTICS_TIMEOUT_MS,Math.min(i,1e4)),a=$e(process.env.SCIP_RUST_SEMANTIC_SETTLE_MS,fr),c={projectRoot:this.projectRoot,rustAnalyzerBinary:e,file:t,positions:[...r],requestTimeoutMs:i,diagnosticsTimeoutMs:s,settleDelayMs:a,concurrency:o};return k("rust.semantic.import-definitions.session.request",()=>this.requester.requestImportDefinitions(c,Y(r.length,i,o)),()=>({file:t,positions:r.length}))}};function ye(n){return n.available?{available:!0}:{available:!1,reason:n.reason}}function Se(n){return n.available?"rust-analyzer binary path is unavailable.":n.reason}function dr(n,e,t={}){return new Cn(n,e,t)}function Re(n,e){let t=mr(n);if(t!==null)return t;let r=e.includeReferences!==!1;return r&&e.includeCallees!==!0&&e.includeSignatures!==!0&&e.definitionCount<=lo||r&&e.includeCallees===!0&&e.includeSignatures!==!0&&e.definitionCount<=uo?0:fr}function fo(n){let e=n?.trim().toLowerCase(),t=e==="0"||e==="false"||e==="off"||e==="worker",r=e==="1"||e==="true"||e==="on"||e==="durable",i=e===void 0||e==="";return{transport:t||!i&&!r?"worker":"durable",source:i?"default":"environment",fallback:"worker",valid:i||t||r,optOut:"SCIP_RUST_SEMANTIC_DURABLE_SESSION=0"}}function po(n){return fo(n).transport}function mo(n,e){let t=null,r=!1,i=!1,o=!1,s=()=>t??=e(),a=()=>{i||(n.shutdown(),i=!0)},c=(f,l,d)=>{let p=Ro(f);r=!0;try{a()}catch{}_()&&Ae({type:"span",name:"rust.semantic.durable-session.request",durationMs:d,ok:!1,kind:l,session:"worker-fallback",reason:p})},u=(f,l,d)=>{if(o)throw new Error("Rust semantic failover session was already disposed.");if(r)return d(s());let p=performance.now();try{return l(n)}catch(m){c(m,f,performance.now()-p)}return d(s())};return{requestSemantic(f,l){return u("semantic",d=>d.requestSemantic(f,l),d=>d.requestSemantic(f,l))},requestImportDefinitions(f,l){return u("import-definitions",d=>d.requestImportDefinitions(f,l),d=>d.requestImportDefinitions(f,l))},shutdown(){if(o)return;o=!0;let f=[];try{a()}catch(l){f.push(l)}try{t?.shutdown()}catch(l){f.push(l)}if(f.length>0)throw f[0]}}}function yo(n,e,t={worker:()=>So(),durable:()=>nr(n,{serverPath:Ye(Mo()),semanticWorkerPath:Ye(pr())})}){return po(e)==="durable"?mo(t.durable(),t.worker):t.worker()}function So(n={}){let e=null,t=null,r=1,i=!1,o=null,s=null,a=l=>{l&&vn(l,{recursive:!0,force:!0})},c=()=>{if(o)return;let l=e,d=t;e=null,t=null;let p=l?l.terminate():Promise.resolve(0);o=Promise.allSettled([p,or(d,{gracefulMs:1e3,forceMs:1e3})]).then(([m,R])=>{let S=(R.status==="fulfilled"?R.value:[{reaped:!1,detail:String(R.reason)}]).filter(h=>!h.reaped);if(m.status==="rejected"||S.length>0){s=new Error(`Rust semantic worker cleanup did not complete; ownership evidence remains at ${d??"unknown"}.`);return}a(d)}).finally(()=>{o=null})},u=()=>{if(e)return e;if(o)throw new Error("The previous Rust semantic session worker is still terminating; retry the request.");if(s)throw s;let l=n.semanticWorkerPath?so(n.semanticWorkerPath):pr();if(!oo(Ye(l)))throw new Error(`Rust semantic session worker was not found at ${Ye(l)}. Run npm run build before using built semantic Rust queries.`);return t=sr(Dn(ar(),"codebaseiq-rust-session-")),e=new co(l,n.shareEnvironment?{env:ao}:void 0),e.unref(),e},f=()=>{let l=t??sr(Dn(ar(),"codebaseiq-rust-session-"));return t=l,Dn(l,`${r++}.json`)};return{requestSemantic(l,d){if(i)throw new Error("Rust semantic session was already disposed.");let p=u(),m=f(),R=new SharedArrayBuffer(4),I=new Int32Array(R);if(p.postMessage({kind:"semantic",request:l,responsePath:m,sharedBuffer:R}),Atomics.wait(I,0,0,d)==="timed-out")throw c(),new Error(`Rust semantic session worker timed out after ${(d/1e3).toFixed(0)}s`);try{let h=go(B(m,{maxBytes:H,inputKind:"Rust semantic worker response"}));if(!h.ok)throw new Error(h.error);return h.response}finally{vn(m,{force:!0})}},requestImportDefinitions(l,d){if(i)throw new Error("Rust semantic session was already disposed.");let p=u(),m=f(),R=new SharedArrayBuffer(4),I=new Int32Array(R);if(p.postMessage({kind:"import-definitions",request:l,responsePath:m,sharedBuffer:R}),Atomics.wait(I,0,0,d)==="timed-out")throw c(),new Error(`Rust semantic import-definition session worker timed out after ${(d/1e3).toFixed(0)}s`);try{let h=bo(B(m,{maxBytes:H,inputKind:"Rust import-definition worker response"}));if(!h.ok)throw new Error(h.error);return h.response}finally{vn(m,{force:!0})}},shutdown(){if(i)return;if(i=!0,!e){a(t),t=null;return}let l=f(),d=new SharedArrayBuffer(4),p=new Int32Array(d);e.postMessage({kind:"shutdown",responsePath:l,sharedBuffer:d}),Atomics.wait(p,0,0,5e3),c()}}}function go(n){let e=JSON.parse(n);if(!e||typeof e!="object")return{ok:!1,error:"Rust semantic session worker wrote a non-object response."};let t=e;return t.ok===!0&&"response"in t?{ok:!0,response:t.response}:{ok:!1,error:typeof e.error=="string"?e.error:"Rust semantic session worker failed."}}function bo(n){let e=JSON.parse(n);if(!e||typeof e!="object")return{ok:!1,error:"Rust semantic session worker wrote a non-object response."};let t=e;return t.ok===!0&&"response"in t?{ok:!0,response:t.response}:{ok:!1,error:typeof e.error=="string"?e.error:"Rust semantic session worker failed."}}function Ro(n){let e=n instanceof Error?`${n.name} ${n.message}`.toLowerCase():String(n).toLowerCase();return e.includes("readiness")?"readiness":e.includes("timeout")||e.includes("timed out")?"timeout":e.includes("helper")?"helper":"request"}function ge(n){return new Map(n.map(e=>[e.symbolId,[]]))}function be(n){return new Map(n.map(e=>[e.symbolId,[]]))}function ur(n){return new Map(n.map(e=>[e.symbolId,null]))}function xn(n,e){return new Map(n.map(t=>[t.symbolId,e.get(t.symbolId)??[]]))}function ho(n,e){return new Map(n.map(t=>[t.symbolId,e.get(t.symbolId)??null]))}function Io(n){let e=0;return n.includeReferences!==!1&&(e+=(n.referenceDefinitions??n.definitions).length),n.includeCallees===!0&&(e+=(n.calleeDefinitions??n.definitions).length),n.includeSignatures===!0&&(e+=(n.signatureDefinitions??n.definitions).length),Math.max(1,e)}function Tn(n,e){return e&&e>0?Math.max(n,e):n}function pr(){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 Ve(n,e){return X(n)??e}function $e(n,e){return mr(n)??e}function mr(n){if(!n)return null;let e=Number(n);return Number.isInteger(e)&&e>=0?e:null}var Pn=15e3,En=8;function br(n,e={}){let t=e.status??je,r=Co(n,t),i=To(n,t),o=wo(n,t),s=e.referenceResolver||e.calleeResolver||e.signatureResolver||!Do(e)?null:dr(n,t,{fallbackReferenceResolver:r,fallbackCalleeResolver:i,fallbackSignatureResolver:o}),a=e.referenceResolver??s??r,c=e.calleeResolver??s??i,u=e.signatureResolver??s??o,f=e.importUsageResolver??Lt(e.sourceImportUsageResolver??xo(),e.importDefinitionResolver??s),l=e.calleeSymbolResolver,d=e.sourceZeroCalleeOracle,p=e.scipOccurrenceCalleeOracle,m=new Map,R=new Map,I=null,S=null,h=()=>(I??=t(n),I),P=()=>{let b=h();return b.dependencyAvailable?S??b:b},M=b=>{if(b.length===0)return new Map;let y=Ie(b);try{let g=a.referencesForDefinitions(y),T=h();return S=Je(T,g),g.available?new Map(g.references):K(y,g.references)}catch(g){let T=h();return S=he(T,g),J(y)}},v=b=>{if(b.length===0)return new Map;let y=Ie(b),g=y.filter(yr);if(g.length===0)return G(y);let T=new Map,j=gr(g,p),F=[];for(let w of g)R.has(w.symbolId)?T.set(w.symbolId,R.get(w.symbolId)??[]):j.has(w.symbolId)?T.set(w.symbolId,j.get(w.symbolId)??[]):Sr(w,d)?T.set(w.symbolId,[]):F.push(w);if(F.length===0)return ie(y,T,void 0);try{let w=c.calleesForDefinitions(F),O=h();S=Je(O,w);let E=ie(F,w.callees,l);for(let[ce,rn]of E)T.set(ce,rn);return ie(y,T,void 0)}catch(w){let O=h();return S=he(O,w),G(y)}},C=(b,y)=>{let g=Ie(b),T=Ie(y),j=T.filter(yr),F=new Map,w=gr(j,p),O=[];for(let E of j)w.has(E.symbolId)?F.set(E.symbolId,w.get(E.symbolId)??[]):Sr(E,d)?F.set(E.symbolId,[]):O.push(E);if(g.length===0&&O.length===0)return{references:J(g),callees:ie(T,F,void 0)};try{let E=s?s.referencesAndCalleesForDefinitions(g,O):Ao(a,c,{referenceDefinitions:g,calleeDefinitions:O}),ce=h();S=Je(ce,E);let rn=E.available?new Map(E.references):K(g,E.references);for(let[on,sn]of E.callees)F.set(on,sn);let it=ie(T,F,l);for(let[on,sn]of it)R.set(on,sn);return{references:rn,callees:it}}catch(E){let ce=h();return S=he(ce,E),{references:J(g),callees:G(T)}}},D=b=>{if(b.length===0)return new Map;let y=Ie(b);try{let g=u.signaturesForDefinitions(y),T=h();return S=Je(T,g),Rr(y,g.signatures)}catch(g){let T=h();return S=he(T,g),Ge(y)}};return{language:"rust",availability:P,dispose:()=>{s?.dispose()},importUsage:b=>{let y=m.get(b);if(y)return y;try{let g=f.importUsage(b);return m.set(b,g),g}catch(g){let T=h();return S=he(T,g),[]}},referencesFor:b=>M([b]).get(b.symbolId)??[],referencesForDefinitions:M,referencesAndCalleesForDefinitions:C,calleesFor:b=>v([b]).get(b.symbolId)??[],calleesForDefinitions:v,signatureFor:b=>D([b]).get(b.symbolId)??null}}function Je(n,e){let t={dependencyAvailable:n.dependencyAvailable,resolvedBinary:e.resolvedBinary??n.resolvedBinary,...n.note?{note:n.note}:{}};return e.available?{available:!0,...t}:{available:!1,reason:e.reason,...t}}function he(n,e){return{available:!1,dependencyAvailable:n.dependencyAvailable,resolvedBinary:n.resolvedBinary,...n.note?{note:n.note}:{},reason:e instanceof Error?e.message:String(e)}}function Do(n){if(n.usePersistentSession!==void 0)return n.usePersistentSession;let e=process.env.SCIP_RUST_SEMANTIC_SESSION;return e!=="0"&&e!=="false"}function xo(){return{importUsageFacts:()=>({usage:[],positions:[]})}}function Ie(n){return n.map(e=>{let t=e;return{...e,leaf:typeof t.leaf=="string"?t.leaf:V(e.symbol),parentTypeName:t.parentTypeName??null,isFunctionLike:typeof t.isFunctionLike=="boolean"?t.isFunctionLike:xt(e.symbol),isTypeLike:t.isTypeLike??!1,kind:t.kind??null,documentation:t.documentation??null,enclosingSymbol:t.enclosingSymbol??null}})}function yr(n){return n.isFunctionLike}function Sr(n,e){if(!e)return!1;try{return e(n)}catch{return!1}}function gr(n,e){if(!e||n.length===0)return new Map;try{return e(n)}catch{return new Map}}function Co(n,e){return{referencesForDefinitions:t=>ko(n,e,t)}}function To(n,e){return{calleesForDefinitions:t=>Po(n,e,t)}}function wo(n,e){return{signaturesForDefinitions:t=>Eo(n,e,t)}}function ko(n,e,t){let r=e(n);if(!r.available||!r.resolvedBinary)return{available:!1,resolvedBinary:r.resolvedBinary,reason:Nn(r),references:J(t)};let i=An();if(!kn(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:J(t)};let o=oe(process.env.SCIP_RUST_SEMANTIC_REQUEST_TIMEOUT_MS,Pn),s=Qe(process.env.SCIP_RUST_SEMANTIC_REFERENCE_RETRY_TIMEOUT_MS,0),a=oe(process.env.SCIP_RUST_SEMANTIC_CONCURRENCY,En),c=Qe(process.env.SCIP_RUST_SEMANTIC_DIAGNOSTICS_TIMEOUT_MS,Math.min(o,1e4)),u=Re(process.env.SCIP_RUST_SEMANTIC_SETTLE_MS,{definitionCount:t.length,includeReferences:!0}),f={projectRoot:n,rustAnalyzerBinary:r.resolvedBinary,definitions:[...t],requestTimeoutMs:o,...s>0?{referenceRetryTimeoutMs:s}:{},diagnosticsTimeoutMs:c,settleDelayMs:u,concurrency:a},l=wn(process.execPath,[i],{cwd:n,input:JSON.stringify(f),encoding:"utf8",maxBuffer:50*1024*1024,windowsHide:!0,timeout:Y(t.length,Tn(o,f.referenceRetryTimeoutMs),a)}),d=_n(l.stdout);if(d)return{...Fn(d),resolvedBinary:r.resolvedBinary,references:K(t,new Map(d.references),new Set(d.incompleteReferenceSymbolIds??[]))};let p=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:p,references:J(t)}}function Po(n,e,t){let r=e(n);if(!r.available||!r.resolvedBinary)return{available:!1,resolvedBinary:r.resolvedBinary,reason:Nn(r),callees:G(t)};let i=An();if(!kn(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:G(t)};let o=oe(process.env.SCIP_RUST_SEMANTIC_REQUEST_TIMEOUT_MS,Pn),s=oe(process.env.SCIP_RUST_SEMANTIC_CONCURRENCY,En),a=Qe(process.env.SCIP_RUST_SEMANTIC_DIAGNOSTICS_TIMEOUT_MS,Math.min(o,1e4)),c=Re(process.env.SCIP_RUST_SEMANTIC_SETTLE_MS,{definitionCount:t.length,includeReferences:!1,includeCallees:!0}),u={projectRoot:n,rustAnalyzerBinary:r.resolvedBinary,definitions:[...t],requestTimeoutMs:o,diagnosticsTimeoutMs:a,settleDelayMs:c,concurrency:s,includeReferences:!1,includeCallees:!0},f=wn(process.execPath,[i],{cwd:n,input:JSON.stringify(u),encoding:"utf8",maxBuffer:50*1024*1024,windowsHide:!0,timeout:Y(t.length,o,s)}),l=_n(f.stdout);if(l)return{...Fn(l),resolvedBinary:r.resolvedBinary,callees:ie(t,new Map(l.callees??[]),void 0)};let d=f.error instanceof Error?f.error.message:f.stderr.trim()||`Rust semantic worker exited with status ${f.status??"unknown"}.`;return{available:!1,resolvedBinary:r.resolvedBinary,reason:d,callees:G(t)}}function Eo(n,e,t){let r=e(n);if(!r.available||!r.resolvedBinary)return{available:!1,resolvedBinary:r.resolvedBinary,reason:Nn(r),signatures:Ge(t)};let i=An();if(!kn(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:Ge(t)};let o=oe(process.env.SCIP_RUST_SEMANTIC_REQUEST_TIMEOUT_MS,Pn),s=oe(process.env.SCIP_RUST_SEMANTIC_CONCURRENCY,En),a=Qe(process.env.SCIP_RUST_SEMANTIC_DIAGNOSTICS_TIMEOUT_MS,Math.min(o,1e4)),c=Re(process.env.SCIP_RUST_SEMANTIC_SETTLE_MS,{definitionCount:t.length,includeReferences:!1,includeCallees:!1,includeSignatures:!0}),u={projectRoot:n,rustAnalyzerBinary:r.resolvedBinary,definitions:[...t],requestTimeoutMs:o,diagnosticsTimeoutMs:a,settleDelayMs:c,concurrency:s,includeReferences:!1,includeCallees:!1,includeSignatures:!0},f=wn(process.execPath,[i],{cwd:n,input:JSON.stringify(u),encoding:"utf8",maxBuffer:50*1024*1024,windowsHide:!0,timeout:Y(t.length,o,s)}),l=_n(f.stdout);if(l)return{...Fn(l),resolvedBinary:r.resolvedBinary,signatures:Rr(t,new Map(l.signatures??[]))};let d=f.error instanceof Error?f.error.message:f.stderr.trim()||`Rust semantic worker exited with status ${f.status??"unknown"}.`;return{available:!1,resolvedBinary:r.resolvedBinary,reason:d,signatures:Ge(t)}}function Ao(n,e,t){let r=t.referenceDefinitions.length>0?n.referencesForDefinitions(t.referenceDefinitions):{available:!0,references:J(t.referenceDefinitions)},i=t.calleeDefinitions.length>0?e.calleesForDefinitions(t.calleeDefinitions):{available:!0,callees:G(t.calleeDefinitions)},o={resolvedBinary:r.resolvedBinary??i.resolvedBinary,references:r.references,callees:i.callees};return r.available&&i.available?{available:!0,...o}:{available:!1,reason:(r.available?void 0:r.reason)??(i.available?void 0:i.reason)??"Rust semantic resolution was unavailable.",...o}}function J(n){return new Map(n.map(e=>[e.symbolId,[]]))}function G(n){return new Map(n.map(e=>[e.symbolId,[]]))}function Ge(n){return new Map(n.map(e=>[e.symbolId,null]))}function ie(n,e,t){let r=0,i=0;return k("rust.semantic.callees.complete-map",()=>{let o=new Map;for(let s of n){let a=e.get(s.symbolId)??[];a.length>0&&(r+=1),i+=a.length,o.set(s.symbolId,a.map(c=>({...c,symbol:t?t(c):c.symbol})))}return o},()=>({definitions:n.length,rows:r,callees:i,resolveSymbols:!!t}))}function Rr(n,e){return new Map(n.map(t=>[t.symbolId,e.get(t.symbolId)??null]))}function An(){return vo(new URL("./rust-semantic-worker.js",import.meta.url))}function Fn(n){return n.available?{available:!0}:{available:!1,reason:n.reason}}function Nn(n){return n.available?"rust-analyzer binary path is unavailable.":n.reason}function _n(n){try{let e=JSON.parse(n);if(!e||typeof e!="object")return null;let t=e;if(typeof t.available!="boolean"||!Array.isArray(t.references)||t.available===!1&&typeof t.reason!="string"||t.available===!0&&t.reason!==void 0)return null;let r={references:t.references,incompleteReferenceSymbolIds:Array.isArray(t.incompleteReferenceSymbolIds)?t.incompleteReferenceSymbolIds.filter(i=>typeof i=="number"):void 0,callees:Array.isArray(t.callees)?t.callees:void 0,signatures:Array.isArray(t.signatures)?t.signatures:void 0};return t.available===!0?{available:!0,...r}:{available:!1,reason:String(t.reason),...r}}catch{return null}}function oe(n,e){return X(n)??e}function Qe(n,e){if(!n)return e;let t=Number(n);return Number.isInteger(t)&&t>=0?t:e}import{existsSync as Fo}from"fs";import{deserializeSCIP as No,SymbolRole as _o}from"@c4312/scip";var Ln=new WeakMap;function Ir(n,e){let t=e.filter(Lo);if(t.length===0)return new Map;let r=!1,i=0,o=0;return k("rust.scip-occurrence.callees",()=>{let s=Bo(n);if(r=!!s,!s)return new Map;let a=new Map;for(let c of t){let u=Oo(n,s,c);u!==null&&(a.set(c.symbolId,u),i+=1,o+=u.length)}return a},()=>({definitions:e.length,candidates:t.length,indexAvailable:r,resolvedDefinitions:i,resolvedCallees:o}))}function Lo(n){return!(!n.symbol.startsWith("rust-analyzer ")||!n.relativePath.endsWith(".rs")||!n.isFunctionLike||n.leaf==="main"||pe(n.symbol))}function Oo(n,e,t){let r=Fe(n,t.relativePath);if(!r||r.language!=="rust")return null;let i=r.callables.find(u=>u.startLine!==t.startLine||u.endLine!==t.endLine?!1:u.name===t.leaf||t.leaf.endsWith(u.name)||u.name.endsWith(t.leaf));if(!i)return null;let o=r.callSites.filter(u=>u.line>=i.startLine&&u.line<=i.endLine);if(o.length===0)return null;let s=(e.occurrencesByFile.get(t.relativePath)??[]).filter(u=>u.line>=i.startLine&&u.line<=i.endLine&&u.callee.symbol!==t.symbol);if(s.some(u=>u.traitImplMember)||!Uo(o,s))return null;let a=[],c=new Set;for(let u of s){let f=`${u.callee.symbol}\0${u.callee.file}\0${u.callee.line}`;c.has(f)||(c.add(f),a.push(u.callee))}return a}function Uo(n,e){let t=hr(n),r=hr(e);if(t.size!==r.size)return!1;for(let[i,o]of t)if(r.get(i)!==o)return!1;return!0}function hr(n){let e=new Map;for(let t of n){let r=t.calleeLeaf??t.leaf;if(!r)continue;let i=`${t.line}\0${r}`;e.set(i,(e.get(i)??0)+1)}return e}function Bo(n){if(Ln.has(n))return Ln.get(n)??null;let e=qo(n);return Ln.set(n,e),e}function qo(n){if(!n.generation.indexPath||!Fo(n.generation.indexPath))return null;try{let e=_e(n).filter(o=>o.symbol.startsWith("rust-analyzer ")&&o.relativePath.endsWith(".rs")&&o.isFunctionLike),t=new Map(e.map(o=>[o.symbol,o])),r=No(Te(n.generation.indexPath,{inputKind:"SCIP occurrence-callee index",maxBytes:Ce})),i=new Map;for(let o of r.documents??[]){let s=o.relativePath;if(!s||!s.endsWith(".rs")||n.isIgnored(s))continue;let a=[];for(let c of o.occurrences??[]){if(!c.symbol||(c.symbolRoles&_o.Definition)!==0)continue;let u=t.get(c.symbol);if(!u)continue;let f=c.range?.[0];Number.isInteger(f)&&a.push({line:f,leaf:u.leaf,traitImplMember:pe(u.symbol),callee:{symbol:u.symbol,file:u.relativePath,line:u.startLine,callsiteLine:f}})}i.set(s,a)}return{occurrencesByFile:i}}catch{return null}}var Xe=class{sessions=new WeakMap;getOrCreate(e,t,r){let i=jo(e,t),o=this.sessions.get(e);o||(o=new Map,this.sessions.set(e,o));let s=o.get(i);if(s)return s.hits+=1,s.lastUsedAtMs=Date.now(),s.provider;let a=Date.now(),c=r();return o.set(i,{key:i,language:t,projectRoot:e.config.projectRoot,provider:c,createdAtMs:a,lastUsedAtMs:a,hits:1}),c}sessionsFor(e){return[...this.sessions.get(e)?.values()??[]]}clear(e){let t=this.sessions.get(e);if(t)for(let r of t.values())r.provider.dispose?.();this.sessions.delete(e)}};function jo(n,e){return`${n.config.projectRoot}:${e}-workspace`}import{randomUUID as ps}from"crypto";import{existsSync as ms}from"fs";import{dirname as ys}from"path";function Mr(n){if(!n||typeof n!="object"||Array.isArray(n))return null;let e=n;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(t=>typeof t=="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 U(n,e,t){if(n.has(e))return n.get(e);let r=t();return n.set(e,r),r}import xr from"path";import{realpathSync as vr}from"fs";function Wo(n,e){return n.getReferences().map(t=>{let r=t.getNode();return Ze(r,e)})}function zo(n){let e=n;return typeof e.findReferences=="function"?e.findReferences():[]}function Cr(n,e,t,r){let i=[];for(let o of zo(n))for(let s of Wo(o,r))s.file===e.relativePath&&s.line>=e.startLine&&s.line<=e.endLine||i.push(s);for(let o of t)i.push(o);return se(i)}function Tr(n,e,t,r){let i=[],o=t?.getStart();for(let s of n.getReferences()){let a=s.getNode();ae(r,a.getSourceFile().getFilePath())===e&&(o!==void 0&&a.getStart()===o||i.push({location:Ze(a,r),node:a}))}return i}function Ze(n,e){let t=n.getSourceFile(),r=t.getLineAndColumnAtPos(n.getStart());return{file:ae(e,t.getFilePath())??t.getBaseName(),line:r.line-1,column:r.column-1}}function On(n,e,t){let r=n.getSourceFile(),i=Bn(r,n),o=n.getText(),s=new RegExp(`\\b${de(o)}\\b`,"g"),a=r.getFullText().split(`
1
+ import{a as X}from"./chunk-P5XHIJHI.js";import{C as wt,D as me,E as $,F as Le,G as Z,H as ee,I as Oe,J as Pt,K as dn,L as Ue,M as ne,N as Et,O as At,P as Be,Q as Ft,S as pn,U as mn,V as yn,u as Tt}from"./chunk-6ZV5EDUT.js";import{d as Ct}from"./chunk-ELNRLMC5.js";import{a as De,b as xe,c as we,d as ke,e as q,q as kt}from"./chunk-CANBLFVQ.js";import{b as Dt,e as V,f as Ne,h as xt,j as pe,t as z,u as _e}from"./chunk-AM5SUGHF.js";import{a as de,f as Fe,n as Mt,p as vt}from"./chunk-JOALNFY3.js";import{C as It,a as Ee,c as pt,d as mt,q as ln,z as ht}from"./chunk-RVYLJDXC.js";import{c as ot,d as st,g as lt,h as ut,k as Pe,m as cn,o as ft,q as dt,t as un,u as fn,v as ue}from"./chunk-PLZXWZHY.js";import{d as gt,f as bt,g as fe,j as Rt}from"./chunk-IOVPAZWP.js";import{a as _,c as yt,d as k,f as Ae}from"./chunk-3LCDIREB.js";import{A as at,B as H,C as Ce,F as Te,G as B,H as ct,L as an,fa as St,n as le,q as N}from"./chunk-327YK6TB.js";function Nt(n){let e=new Map,t=ui(n),r=new Map;return i=>{let o=li(i),s=r.get(o);if(s!==void 0)return s;if(!t.has(i.file))return r.set(o,i.symbol),i.symbol;let a=e.get(i.file);a||(a=fi(z(n,i.file)),e.set(i.file,a));let c=di(a,i);return r.set(o,c),c}}function li(n){return`${n.file}\0${n.symbol}\0${n.line}`}function ui(n){return new Set(n.all("SELECT relative_path FROM documents").map(e=>e.relative_path))}function fi(n){let e=new Map,t=new Map;for(let r of n){let i=e.get(r.leaf);i?i.push(r):e.set(r.leaf,[r]);let o=t.get(r.startLine);o?o.push(r):t.set(r.startLine,[r])}return{definitions:n,byLeaf:e,byStartLine:t}}function di(n,e){if(n.definitions.length===0)return e.symbol;let t=yi(e.symbol),r=pi(n.byLeaf,t),i=mi(r,e.line);if(i)return i.symbol;let o=n.byStartLine.get(e.line)??[];return o.length===1?o[0].symbol:e.symbol}function pi(n,e){let t=[],r=new Set;for(let i of e)for(let o of n.get(i)??[])r.has(o.symbolId)||(r.add(o.symbolId),t.push(o));return t}function mi(n,e){let t=null;for(let r of n)if(!(r.startLine>e||r.endLine<e)){if(r.startLine===e)return r;(!t||r.endLine-r.startLine<t.endLine-t.startLine)&&(t=r)}return t}function yi(n){let e=new Set([n]),r=n.split(/::|\.|#/).filter(Boolean).at(-1);return r&&e.add(r),e}function _t(n,e){let r=vt(n,e).map(i=>gi(e,i));return{usage:r,positions:bi(n,e,r)}}function Lt(n,e){return{importUsage(t){let r=n.importUsageFacts(t);if(!e||r.positions.length===0)return r.usage;let i=e.importDefinitionsForFile(t,r.positions);return i.available?Si(r.usage,i.sourcePaths):r.usage}}}function Si(n,e){return n.map((t,r)=>{let i=e.get(String(r));return i?{...t,sourcePath:i}:t})}function gi(n,e){let t=e.isTypeOnly===!0,r=e.kind==="side-effect"||t||e.used;return{importer:n,sourcePath:e.sourcePath,importedName:e.importedName,localName:e.localName,kind:e.kind,isTypeOnly:t,isUsed:r,isTypeUsed:t,isValueUsed:e.kind==="side-effect"||!t&&e.used,references:[]}}function bi(n,e,t){let r=It(n,e);if(!r)return[];let i=Ri(r.rootNode),o=new Map;for(let a of i){let c=o.get(gn(a.importedName,a.localName));c?c.push(a.position):o.set(gn(a.importedName,a.localName),[a.position])}let s=[];return t.forEach((a,c)=>{let u=o.get(gn(a.importedName,a.localName??a.importedName))?.shift();u&&s.push({...u,id:String(c),file:e})}),s}function Ri(n){let e=[];for(let t of n.descendantsOfType("use_declaration")){let r=t.namedChildren.find(i=>i.type!=="visibility_modifier");r&&e.push(...qe(r,""))}return e.filter(t=>t.importedName!=="*")}function qe(n,e){switch(n.type){case"identifier":case"super":case"self":case"crate":return[{importedName:n.text,localName:n.text,position:Sn(n,n.text)}];case"scoped_identifier":{let t=n.text.split("::").pop()??n.text;return[{importedName:t,localName:t,position:Sn(n,t)}]}case"scoped_use_list":{let t=n.namedChild(0),r=n.namedChild(1);if(!t||!r)return[];let i=Mt(e,t.text);return r.namedChildren.flatMap(o=>qe(o,i))}case"use_list":return n.namedChildren.flatMap(t=>qe(t,e));case"use_as_clause":{let t=n.namedChild(0),r=n.namedChild(1);return!t||!r?[]:qe(t,e).map(i=>({...i,localName:r.text}))}case"use_wildcard":{let t=n.namedChild(0),r="*";return[{importedName:r,localName:r,position:Sn(t??n,r)}]}default:return[]}}function Sn(n,e){let t=Math.max(0,n.text.lastIndexOf(e));return{id:"",file:"",line:n.startPosition.row,column:n.startPosition.column+t+hi(e)}}function hi(n){return Math.max(0,Math.min(n.length-1,1))}function gn(n,e){return`${n}\0${e}`}import{spawnSync as wn}from"child_process";import{existsSync as kn}from"fs";import{fileURLToPath as vo}from"url";function je(n){let e=wt(Tt,n),t=e.runnable;return t?{available:!0,dependencyAvailable:t,resolvedBinary:e.resolvedBinary??void 0,note:"rust-analyzer semantic reference queries are enabled."}:{available:!1,dependencyAvailable:t,resolvedBinary:e.resolvedBinary??void 0,reason:"rust-analyzer is not runnable; Rust semantic checks will use SCIP/source evidence only."}}import{existsSync as oo,mkdtempSync as sr,rmSync as vn}from"fs";import{tmpdir as ar}from"os";import{join as Dn}from"path";import{fileURLToPath as Ye,pathToFileURL as so}from"url";import{SHARE_ENV as ao,Worker as co}from"worker_threads";function K(n,e,t=new Set){let r=new Map;for(let i of n)t.has(i.symbolId)||r.set(i.symbolId,e.get(i.symbolId)??[]);return r}function Y(n,e,t){let r=X(process.env.SCIP_RUST_SEMANTIC_BATCH_TIMEOUT_MS)??0;if(r>0)return r;let i=Math.max(1,Math.ceil(n/Math.max(1,t)));return Math.max(12e4,3e4+i*e)}import{spawn as Bi}from"child_process";import{createHash as qi,randomUUID as ji}from"crypto";import{existsSync as Qt,realpathSync as Wi,rmSync as zi}from"fs";import{tmpdir as Ki}from"os";import{resolve as re}from"path";import{execFileSync as wi}from"child_process";import{existsSync as Ii}from"fs";import{deserializeSCIP as Mi,SymbolRole as vi}from"@c4312/scip";import{realpathSync as ea}from"fs";import{basename as ta,dirname as ra,join as ia,relative as oa,sep as sa}from"path";import{fileURLToPath as ca,pathToFileURL as la}from"url";function We(n){let e=new Map;for(let t of n)e.set(`${t.file}\0${t.line}\0${t.column}`,t);return[...e.values()].sort((t,r)=>{let i=t.file.localeCompare(r.file);return i!==0?i:t.line!==r.line?t.line-r.line:t.column-r.column})}var bn=new WeakMap,Di="SCIP_RUST_SCIP_OCCURRENCE_REFERENCE_MODE";function Ot(n,e){let t=new Map,r=ze(),i=e.filter(s=>qt(s,r));if(i.length===0)return t;let o=jt(n);if(!o)return t;for(let s of i){let a=Bt(o,s);a!==null&&t.set(s.symbolId,a)}return t}function Ut(n,e){if(!qt(e,ze()))return null;let t=jt(n);return t?Bt(t,e):null}function Bt(n,e){return n.referencesBySymbol.get(e.symbol)??[]}function qt(n,e="safe"){if(!n.symbol.startsWith("rust-analyzer ")||!n.relativePath.endsWith(".rs")||pe(n.symbol)||/impl#\[[^\]]+\]\[Default\]default\(\)\.$/.test(n.symbol))return!1;if(e==="all")return!0;let t=Ne(n.symbol);if(t==="method")return!0;if(t!=="term")return!1;let r=Dt(n.symbol);return"kind"in r?!1:!xi(r)}function xi(n){for(let e=0;e<n.descriptors.length-1;e+=1)if(n.descriptors[e]?.suffix==="type")return!0;return!1}function jt(n){if(bn.has(n))return bn.get(n)??null;let e=Ci(n);return bn.set(n,e),e}function Ci(n){if(!n.generation.indexPath||!Ii(n.generation.indexPath))return null;try{let e=Mi(Te(n.generation.indexPath,{inputKind:"SCIP occurrence-reference index",maxBytes:Ce})),t=new Map;for(let r of e.documents??[]){let i=r.relativePath;if(!(!i||n.isIgnored(i)))for(let o of r.occurrences??[]){if(!o.symbol||(o.symbolRoles&vi.Definition)!==0)continue;let s=Ti(i,o.range);if(!s)continue;let a=t.get(o.symbol)??[];a.push(s),t.set(o.symbol,a)}}for(let[r,i]of t)t.set(r,We(i));return{referencesBySymbol:t}}catch{return null}}function Ti(n,e){if(e.length<3)return null;let t=e[0],r=e[1];return!Number.isInteger(t)||!Number.isInteger(r)?null:{file:n,line:t,column:r}}function ze(){return process.env[Di]==="all"?"all":"safe"}var Wt=new Map;function Rn(n){let t=je(n).resolvedBinary??null;return{engine:"rust-analyzer",resolvedBinary:t,version:t?ki(n,t):"unavailable"}}function hn(n){return{...Rn(n),scipOccurrenceReferenceMode:ze()}}function ki(n,e){let t=`${n}\0${e}`,r=Wt.get(t);if(r)return r;let i;try{i=wi(e,["--version"],{cwd:n,encoding:"utf8",stdio:["ignore","pipe","ignore"],windowsHide:!0,timeout:2e3}).trim()}catch{i="unknown"}return Wt.set(t,i),i}import{createHash as Pi}from"crypto";var Ei=new Set(["Cargo.lock","Cargo.toml","rust-project.json","rust-toolchain","rust-toolchain.toml"]);function zt(n){let e=Rt(n,{includePath:Ai});return Pi("sha256").update(JSON.stringify(e)).digest("hex")}function Ai(n){let e=n.replaceAll("\\","/"),t=e.split("/").at(-1)??e;return e.endsWith(".rs")||Ei.has(t)?!0:e===".cargo/config"||e===".cargo/config.toml"||e.endsWith("/.cargo/config")||e.endsWith("/.cargo/config.toml")}import{createHash as Fi}from"crypto";import{resolve as Ni}from"path";var te=3;function Mn(n){return Fi("sha256").update(me({kind:"codebaseiq-durable-rust-mailbox",protocolVersion:te,sessionDir:Ni(n)})).digest("hex")}function Vt(n,e){return le(n)?n.protocolVersion!==te?Ht(n.protocolVersion===void 0?"helper wrote a prior uncorrelated response protocol":`helper wrote unsupported response protocol ${String(n.protocolVersion)}`):n.mailboxVersion!==$||n.id!==e.requestId||n.operationKey!==e.operationKey||n.sessionIdentity!==e.sessionIdentity||n.deadlineAtMs!==e.deadlineAtMs?Ht("helper wrote an incompatible response identity"):typeof n.completedAtMs!="number"||!Number.isFinite(n.completedAtMs)||n.completedAtMs>e.deadlineAtMs||e.nowMs>e.deadlineAtMs?{ok:!1,code:"expired-request",error:"helper response arrived after the durable request deadline"}:n.ok===!1?typeof n.error!="string"||!Ui(n.errorCode)?In("helper wrote an invalid rejection response"):{ok:!1,code:n.errorCode,error:n.error}:n.ok!==!0||n.session!=="created"&&n.session!=="reused"&&n.session!=="invalidated"||!_i(n.response,e.requestKind)?In("helper wrote an invalid success response"):{ok:!0,session:n.session,response:n.response}:In("helper wrote an invalid response object")}function _i(n,e){return!le(n)||typeof n.available!="boolean"||n.available===!1&&(typeof n.reason!="string"||n.reason.length===0)||n.available===!0&&n.reason!==void 0?!1:e==="import-definitions"?Array.isArray(n.sourcePaths)&&n.sourcePaths.every(t=>Array.isArray(t)&&t.length===2&&typeof t[0]=="string"&&(t[1]===null||typeof t[1]=="string")):Kt(n.references,Li)&&(n.incompleteReferenceSymbolIds===void 0||Array.isArray(n.incompleteReferenceSymbolIds)&&n.incompleteReferenceSymbolIds.every(t=>Number.isSafeInteger(t)))&&(n.callees===void 0||Kt(n.callees,Oi))&&(n.signatures===void 0||Array.isArray(n.signatures)&&n.signatures.every(t=>Array.isArray(t)&&t.length===2&&Number.isSafeInteger(t[0])&&(t[1]===null||typeof t[1]=="string")))}function Kt(n,e){return Array.isArray(n)&&n.every(t=>Array.isArray(t)&&t.length===2&&Number.isSafeInteger(t[0])&&Array.isArray(t[1])&&t[1].every(e))}function Li(n){return le(n)&&typeof n.file=="string"&&N(n.line)&&N(n.column)}function Oi(n){return le(n)&&typeof n.symbol=="string"&&typeof n.file=="string"&&N(n.line)&&(n.callsiteLine===void 0||N(n.callsiteLine))}function Ui(n){return n==="unsupported-protocol"||n==="malformed-request"||n==="expired-request"||n==="handler-error"}function In(n){return{ok:!1,code:"malformed-response",error:n}}function Ht(n){return{ok:!1,code:"incompatible-response",error:n}}var Hi=5e3,Xt=10,Vi=3e4;function $t(n,e,t,r=rr){let i=r.engineIdentity(n),o={protocolVersion:te,projectRoot:r.canonicalProjectRoot(n),projectFingerprint:r.projectFingerprint(n),engine:{engine:i.engine,resolvedBinary:i.resolvedBinary,version:i.version},workerFingerprint:r.fileFingerprint(e),environment:er(r.environment())};return{key:ir(me(o)),...o}}function Ke(n,e,t,r){if(n.protocolVersion!==te||!t(n.pid))return!1;if(!n.processIdentity)return!0;let i=r?.(n.pid);return i!=null&&xe(n.processIdentity,i)}function Zt(n,e,t){let r;try{r=an(e,{maxBytes:H,inputKind:"Rust semantic engine artifact"})}catch{r="missing"}let i=ir(me({projectRoot:re(n),serverPath:re(e),serverFingerprint:r})).slice(0,20);return re(t,`codebaseiq-rust-session-${i}`)}function Yt(n){let e=n===void 0?Number.NaN:Number(n);return Number.isInteger(e)&&e>=0?e:0}function er(n){return Object.fromEntries(Object.entries(n).filter(([e])=>tr(e)).sort(([e],[t])=>e.localeCompare(t)).map(([e,t])=>[e,t??null]))}function nr(n,e){let t=e.runtime??Xi,r=e.identityRuntime??rr,i=Zt(n,e.serverPath,e.tempRoot??Ki()),o=!1,s=(a,c)=>{if(o)throw new Error("Durable Rust semantic session was already disposed.");return Yi(i,e.serverPath,e.semanticWorkerPath,a,c,t,e.mailboxLimits)};return{requestSemantic(a,c){let u=$t(n,e.semanticWorkerPath,a,r),{readinessDeadlineMs:f,...l}=a;return s({kind:"semantic",identityKey:u.key,workerEnvironment:Gt(),request:{...l,referenceRetryTimeoutMs:$i(process.env.SCIP_RUST_SEMANTIC_REFERENCE_RETRY_TIMEOUT_MS,a.referenceRetryTimeoutMs),settleDelayMs:process.env.SCIP_RUST_SEMANTIC_SETTLE_MS===void 0?a.settleDelayMs:Yt(process.env.SCIP_RUST_SEMANTIC_SETTLE_MS)},timeoutMs:c},c)},requestImportDefinitions(a,c){let u=$t(n,e.semanticWorkerPath,a,r),{readinessDeadlineMs:f,...l}=a;return s({kind:"import-definitions",identityKey:u.key,workerEnvironment:Gt(),request:{...l,settleDelayMs:process.env.SCIP_RUST_SEMANTIC_SETTLE_MS===void 0?a.settleDelayMs:Yt(process.env.SCIP_RUST_SEMANTIC_SETTLE_MS)},timeoutMs:c},c)},shutdown(){o=!0}}}function $i(n,e){return e!==void 0?e:n===void 0?Vi:void 0}function Yi(n,e,t,r,i,o,s={}){let a=o.now(),c=a+i,u=(o.monotonicNow??q)(),f=u+i,l=Z("rust-semantic-v3",r),d=ee(l),p=Le(n),m=Mn(n),R=Oe(p,{mailboxVersion:$,protocolVersion:te,id:d,operationKey:l,clientId:o.randomId(),enqueuedAtMs:a,deadlineAtMs:c,sessionIdentity:m,request:r},{nowMs:a,limits:s});for(Jt(n,e,t,f,o);(o.monotonicNow??q)()<=f;){if(Qt(R.responsePath)){let S=Ji(B(R.responsePath,{maxBytes:s.maxItemBytes??H,inputKind:"durable Rust semantic mailbox response"}),{requestId:d,operationKey:l,sessionIdentity:m,deadlineAtMs:R.authoritativeDeadlineAtMs,requestKind:r.kind,nowMs:o.now()});if(!S.ok)throw new Error(S.error);return _()&&Ae({type:"span",name:"rust.semantic.durable-session.request",durationMs:(o.monotonicNow??q)()-u,ok:!0,session:S.session,kind:r.kind}),S.response}let I=He(n);(!I||!Ke(I,o.now(),o.isProcessAlive,o.readProcessIdentity))&&Jt(n,e,t,f,o),o.sleep(Xt)}throw new Error(`Durable Rust semantic session timed out after ${(i/1e3).toFixed(0)}s.`)}function Jt(n,e,t,r,i){let o=He(n);if(o&&Ke(o,i.now(),i.isProcessAlive,i.readProcessIdentity))return;zi(re(n,"server.json"),{force:!0}),i.spawnServer(e,n,t);let s=i.monotonicNow??q,a=Math.min(r,s()+Hi);for(;s()<=a;){let c=He(n);if(c&&Ke(c,i.now(),i.isProcessAlive,i.readProcessIdentity))return;i.sleep(Xt)}throw new Error("Durable Rust semantic session helper did not become ready within 5s.")}function He(n){try{let e=JSON.parse(B(re(n,"server.json"),{maxBytes:at,inputKind:"durable Rust session state"}));if(typeof e.protocolVersion!="number"||e.sessionIdentity!==void 0&&(typeof e.sessionIdentity!="string"||e.sessionIdentity!==Mn(n))||typeof e.pid!="number"||typeof e.heartbeatAtMs!="number"||e.busyUntilMs!==void 0&&typeof e.busyUntilMs!="number"||e.mailbox!==void 0&&!Gi(e.mailbox))return null;let t=e.processIdentity===void 0?null:De(e.processIdentity);return e.processIdentity!==void 0&&(!t||t.pid!==e.pid)?null:{protocolVersion:e.protocolVersion,...e.sessionIdentity===void 0?{}:{sessionIdentity:e.sessionIdentity},pid:e.pid,...t?{processIdentity:t}:{},heartbeatAtMs:e.heartbeatAtMs,...e.busyUntilMs===void 0?{}:{busyUntilMs:e.busyUntilMs},...e.mailbox===void 0?{}:{mailbox:e.mailbox}}}catch{return null}}function Ji(n,e){try{return Vt(JSON.parse(n),e)}catch(t){return{ok:!1,code:"malformed-response",error:`helper wrote malformed JSON: ${t instanceof Error?t.message:String(t)}`}}}function Gi(n){if(!n||typeof n!="object")return!1;let e=n;return N(e.pending)&&N(e.inflight)&&N(e.responses)&&N(e.deadLetters)&&N(e.invalid)&&N(e.totalItems)&&typeof e.totalBytes=="number"&&Number.isFinite(e.totalBytes)&&e.totalBytes>=0&&(e.oldestPendingAt===void 0||Number.isFinite(Date.parse(e.oldestPendingAt)))}function Gt(){return Object.fromEntries(Object.entries(process.env).filter(([n])=>Qi(n)).sort(([n],[e])=>n.localeCompare(e)).map(([n,e])=>[n,e??null]))}function tr(n){return n==="HOME"||n==="PATH"||n.startsWith("CARGO_")||n.startsWith("RA_")||n.startsWith("RUST")}function Qi(n){return tr(n)||n.startsWith("SCIP_RUST_")||n==="CODEBASEIQ_PROFILE"||n==="CODEBASEIQ_PROFILE_CACHE_STATE"||n==="CODEBASEIQ_PROFILE_COMMAND"||n==="CODEBASEIQ_PROFILE_OUT"||n==="CODEBASEIQ_PROFILE_RUN_ID"||n==="CODEBASEIQ_PROFILE_WORKLOAD_IDENTITY"||n==="CODEBASEIQ_PROFILE_WORKLOAD_IDENTITY_KIND"||n==="CODEBASEIQ_PROFILE_MIN_MS"}var rr={canonicalProjectRoot(n){try{return Wi(n)}catch{return re(n)}},projectFingerprint(n){return zt(n)},engineIdentity:Rn,fileFingerprint(n){return an(n,{maxBytes:H,inputKind:"Rust semantic engine artifact"})},environment(){return er(process.env)}},Xi={now:Date.now,monotonicNow:q,randomId:ji,isProcessAlive:ke,readProcessIdentity:we,spawnServer(n,e,t){if(!Qt(n))throw new Error(`Durable Rust semantic session helper was not found at ${n}. Run npm run build first.`);Bi(process.execPath,[n,e,t],{detached:!0,stdio:"ignore",windowsHide:!0}).unref()},sleep(n){let e=new Int32Array(new SharedArrayBuffer(4));Atomics.wait(e,0,0,n)}};function ir(n){return qi("sha256").update(n).digest("hex")}import{randomUUID as Xa}from"crypto";import{readdirSync as Zi,rmSync as ec,writeFileSync as nc}from"fs";import{join as eo}from"path";var no="rust-analyzer-owner-",to=".json",ro=16*1024;async function or(n,e){if(!n)return[];let t;try{t=Zi(n)}catch{return[]}let r=t.filter(s=>s.startsWith(no)&&s.endsWith(to)).map(s=>eo(n,s)),i=[],o=[];for(let s of r){let a=io(s);a?o.push(a):i.push({reaped:!1,reason:"identity-unavailable",detail:`Rust analyzer ownership record ${s} could not be validated.`})}return i.push(...await Promise.all(o.map(s=>kt(s,e)))),i}function io(n){try{let e=B(n,{maxBytes:ro,inputKind:"rust-analyzer process ownership record"}),t=JSON.parse(e),r=De(t.rootIdentity);return t.version!==1||!r||typeof t.ownsProcessGroup!="boolean"?null:{rootPid:r.pid,rootIdentity:r,ownsProcessGroup:t.ownsProcessGroup,knownMembers:new Map([[r.pid,r]])}}catch{return null}}var cr=15e3,lr=8,fr=5e3,lo=64,uo=96,Cn=class{constructor(e,t,r={}){this.projectRoot=e;this.status=t;this.opts=r;this.requester=r.requester??yo(e,process.env.SCIP_RUST_SEMANTIC_DURABLE_SESSION)}projectRoot;status;opts;requester;referencesForDefinitions(e){let t=this.status(this.projectRoot);if(!t.available||!t.resolvedBinary)return{available:!1,resolvedBinary:t.resolvedBinary,reason:Se(t),references:ge(e)};try{let r=this.requestSession(t.resolvedBinary,e,{includeReferences:!0});return{...ye(r),resolvedBinary:t.resolvedBinary,references:K(e,new Map(r.references),new Set(r.incompleteReferenceSymbolIds??[]))}}catch(r){return this.opts.fallbackReferenceResolver?.referencesForDefinitions(e)??{available:!1,resolvedBinary:t.resolvedBinary,reason:r instanceof Error?r.message:String(r),references:ge(e)}}}calleesForDefinitions(e){let t=this.status(this.projectRoot);if(!t.available||!t.resolvedBinary)return{available:!1,resolvedBinary:t.resolvedBinary,reason:Se(t),callees:be(e)};try{let r=this.requestSession(t.resolvedBinary,e,{includeReferences:!1,includeCallees:!0});return{...ye(r),resolvedBinary:t.resolvedBinary,callees:xn(e,new Map(r.callees??[]))}}catch(r){return this.opts.fallbackCalleeResolver?.calleesForDefinitions(e)??{available:!1,resolvedBinary:t.resolvedBinary,reason:r instanceof Error?r.message:String(r),callees:be(e)}}}referencesAndCalleesForDefinitions(e,t){let r=this.status(this.projectRoot);if(!r.available||!r.resolvedBinary)return{available:!1,resolvedBinary:r.resolvedBinary,reason:Se(r),references:ge(e),callees:be(t)};let i=[...e,...t];try{let o=this.requestSession(r.resolvedBinary,i,{includeReferences:e.length>0,includeCallees:t.length>0,referenceDefinitions:e,calleeDefinitions:t});return{...ye(o),resolvedBinary:r.resolvedBinary,references:K(e,new Map(o.references),new Set(o.incompleteReferenceSymbolIds??[])),callees:xn(t,new Map(o.callees??[]))}}catch(o){return this.fallbackReferencesAndCallees(r,e,t,o)}}signaturesForDefinitions(e){let t=this.status(this.projectRoot);if(!t.available||!t.resolvedBinary)return{available:!1,resolvedBinary:t.resolvedBinary,reason:Se(t),signatures:ur(e)};try{let r=this.requestSession(t.resolvedBinary,e,{includeReferences:!1,includeCallees:!1,includeSignatures:!0});return{...ye(r),resolvedBinary:t.resolvedBinary,signatures:ho(e,new Map(r.signatures??[]))}}catch(r){return this.opts.fallbackSignatureResolver?.signaturesForDefinitions(e)??{available:!1,resolvedBinary:t.resolvedBinary,reason:r instanceof Error?r.message:String(r),signatures:ur(e)}}}importDefinitionsForFile(e,t){let r=this.status(this.projectRoot);if(t.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:Se(r),sourcePaths:new Map(t.map(i=>[i.id,null]))};try{let i=this.requestImportDefinitions(r.resolvedBinary,e,t);return{...ye(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(t.map(o=>[o.id,null]))}}}dispose(){this.requester.shutdown()}requestSession(e,t,r){let i=Ve(process.env.SCIP_RUST_SEMANTIC_REQUEST_TIMEOUT_MS,cr),o=$e(process.env.SCIP_RUST_SEMANTIC_REFERENCE_RETRY_TIMEOUT_MS,0),s=Ve(process.env.SCIP_RUST_SEMANTIC_CONCURRENCY,lr),a=$e(process.env.SCIP_RUST_SEMANTIC_DIAGNOSTICS_TIMEOUT_MS,Math.min(i,1e4)),c=r.referenceDefinitions?[...r.referenceDefinitions]:void 0,u=r.calleeDefinitions?[...r.calleeDefinitions]:void 0,f=r.signatureDefinitions?[...r.signatureDefinitions]:void 0,l=Re(process.env.SCIP_RUST_SEMANTIC_SETTLE_MS,{definitionCount:t.length,...r}),d={projectRoot:this.projectRoot,rustAnalyzerBinary:e,definitions:[...t],...c?{referenceDefinitions:c}:{},...u?{calleeDefinitions:u}:{},...f?{signatureDefinitions:f}:{},requestTimeoutMs:i,...r.includeReferences!==!1&&o>0?{referenceRetryTimeoutMs:o}:{},diagnosticsTimeoutMs:a,settleDelayMs:l,concurrency:s,includeReferences:r.includeReferences,includeCallees:r.includeCallees,includeSignatures:r.includeSignatures},p=Io(d);return k("rust.semantic.session.request",()=>this.requester.requestSemantic(d,Y(p,Tn(i,d.referenceRetryTimeoutMs),s)),()=>({definitions:t.length,operationDefinitions:p,referenceDefinitions:d.referenceDefinitions?.length,calleeDefinitions:d.calleeDefinitions?.length,signatureDefinitions:d.signatureDefinitions?.length,references:d.includeReferences!==!1,callees:d.includeCallees===!0,signatures:d.includeSignatures===!0,referenceRetryTimeoutMs:d.referenceRetryTimeoutMs}))}fallbackReferencesAndCallees(e,t,r,i){let o=t.length===0?{available:!0,resolvedBinary:e.resolvedBinary,references:ge(t)}:this.opts.fallbackReferenceResolver?.referencesForDefinitions(t),s=r.length===0?{available:!0,resolvedBinary:e.resolvedBinary,callees:be(r)}:this.opts.fallbackCalleeResolver?.calleesForDefinitions(r);if(o&&s){let a={resolvedBinary:o.resolvedBinary??s.resolvedBinary??e.resolvedBinary,references:K(t,o.references),callees:xn(r,s.callees)};return o.available&&s.available?{available:!0,...a}:{available:!1,reason:(o.available?void 0:o.reason)??(s.available?void 0:s.reason)??"Rust semantic fallback was unavailable.",...a}}return{available:!1,resolvedBinary:e.resolvedBinary,reason:i instanceof Error?i.message:String(i),references:ge(t),callees:be(r)}}requestImportDefinitions(e,t,r){let i=Ve(process.env.SCIP_RUST_SEMANTIC_REQUEST_TIMEOUT_MS,cr),o=Ve(process.env.SCIP_RUST_SEMANTIC_CONCURRENCY,lr),s=$e(process.env.SCIP_RUST_SEMANTIC_DIAGNOSTICS_TIMEOUT_MS,Math.min(i,1e4)),a=$e(process.env.SCIP_RUST_SEMANTIC_SETTLE_MS,fr),c={projectRoot:this.projectRoot,rustAnalyzerBinary:e,file:t,positions:[...r],requestTimeoutMs:i,diagnosticsTimeoutMs:s,settleDelayMs:a,concurrency:o};return k("rust.semantic.import-definitions.session.request",()=>this.requester.requestImportDefinitions(c,Y(r.length,i,o)),()=>({file:t,positions:r.length}))}};function ye(n){return n.available?{available:!0}:{available:!1,reason:n.reason}}function Se(n){return n.available?"rust-analyzer binary path is unavailable.":n.reason}function dr(n,e,t={}){return new Cn(n,e,t)}function Re(n,e){let t=mr(n);if(t!==null)return t;let r=e.includeReferences!==!1;return r&&e.includeCallees!==!0&&e.includeSignatures!==!0&&e.definitionCount<=lo||r&&e.includeCallees===!0&&e.includeSignatures!==!0&&e.definitionCount<=uo?0:fr}function fo(n){let e=n?.trim().toLowerCase(),t=e==="0"||e==="false"||e==="off"||e==="worker",r=e==="1"||e==="true"||e==="on"||e==="durable",i=e===void 0||e==="";return{transport:t||!i&&!r?"worker":"durable",source:i?"default":"environment",fallback:"worker",valid:i||t||r,optOut:"SCIP_RUST_SEMANTIC_DURABLE_SESSION=0"}}function po(n){return fo(n).transport}function mo(n,e){let t=null,r=!1,i=!1,o=!1,s=()=>t??=e(),a=()=>{i||(n.shutdown(),i=!0)},c=(f,l,d)=>{let p=Ro(f);r=!0;try{a()}catch{}_()&&Ae({type:"span",name:"rust.semantic.durable-session.request",durationMs:d,ok:!1,kind:l,session:"worker-fallback",reason:p})},u=(f,l,d)=>{if(o)throw new Error("Rust semantic failover session was already disposed.");if(r)return d(s());let p=performance.now();try{return l(n)}catch(m){c(m,f,performance.now()-p)}return d(s())};return{requestSemantic(f,l){return u("semantic",d=>d.requestSemantic(f,l),d=>d.requestSemantic(f,l))},requestImportDefinitions(f,l){return u("import-definitions",d=>d.requestImportDefinitions(f,l),d=>d.requestImportDefinitions(f,l))},shutdown(){if(o)return;o=!0;let f=[];try{a()}catch(l){f.push(l)}try{t?.shutdown()}catch(l){f.push(l)}if(f.length>0)throw f[0]}}}function yo(n,e,t={worker:()=>So(),durable:()=>nr(n,{serverPath:Ye(Mo()),semanticWorkerPath:Ye(pr())})}){return po(e)==="durable"?mo(t.durable(),t.worker):t.worker()}function So(n={}){let e=null,t=null,r=1,i=!1,o=null,s=null,a=l=>{l&&vn(l,{recursive:!0,force:!0})},c=()=>{if(o)return;let l=e,d=t;e=null,t=null;let p=l?l.terminate():Promise.resolve(0);o=Promise.allSettled([p,or(d,{gracefulMs:1e3,forceMs:1e3})]).then(([m,R])=>{let S=(R.status==="fulfilled"?R.value:[{reaped:!1,detail:String(R.reason)}]).filter(h=>!h.reaped);if(m.status==="rejected"||S.length>0){s=new Error(`Rust semantic worker cleanup did not complete; ownership evidence remains at ${d??"unknown"}.`);return}a(d)}).finally(()=>{o=null})},u=()=>{if(e)return e;if(o)throw new Error("The previous Rust semantic session worker is still terminating; retry the request.");if(s)throw s;let l=n.semanticWorkerPath?so(n.semanticWorkerPath):pr();if(!oo(Ye(l)))throw new Error(`Rust semantic session worker was not found at ${Ye(l)}. Run npm run build before using built semantic Rust queries.`);return t=sr(Dn(ar(),"codebaseiq-rust-session-")),e=new co(l,n.shareEnvironment?{env:ao}:void 0),e.unref(),e},f=()=>{let l=t??sr(Dn(ar(),"codebaseiq-rust-session-"));return t=l,Dn(l,`${r++}.json`)};return{requestSemantic(l,d){if(i)throw new Error("Rust semantic session was already disposed.");let p=u(),m=f(),R=new SharedArrayBuffer(4),I=new Int32Array(R);if(p.postMessage({kind:"semantic",request:l,responsePath:m,sharedBuffer:R}),Atomics.wait(I,0,0,d)==="timed-out")throw c(),new Error(`Rust semantic session worker timed out after ${(d/1e3).toFixed(0)}s`);try{let h=go(B(m,{maxBytes:H,inputKind:"Rust semantic worker response"}));if(!h.ok)throw new Error(h.error);return h.response}finally{vn(m,{force:!0})}},requestImportDefinitions(l,d){if(i)throw new Error("Rust semantic session was already disposed.");let p=u(),m=f(),R=new SharedArrayBuffer(4),I=new Int32Array(R);if(p.postMessage({kind:"import-definitions",request:l,responsePath:m,sharedBuffer:R}),Atomics.wait(I,0,0,d)==="timed-out")throw c(),new Error(`Rust semantic import-definition session worker timed out after ${(d/1e3).toFixed(0)}s`);try{let h=bo(B(m,{maxBytes:H,inputKind:"Rust import-definition worker response"}));if(!h.ok)throw new Error(h.error);return h.response}finally{vn(m,{force:!0})}},shutdown(){if(i)return;if(i=!0,!e){a(t),t=null;return}let l=f(),d=new SharedArrayBuffer(4),p=new Int32Array(d);e.postMessage({kind:"shutdown",responsePath:l,sharedBuffer:d}),Atomics.wait(p,0,0,5e3),c()}}}function go(n){let e=JSON.parse(n);if(!e||typeof e!="object")return{ok:!1,error:"Rust semantic session worker wrote a non-object response."};let t=e;return t.ok===!0&&"response"in t?{ok:!0,response:t.response}:{ok:!1,error:typeof e.error=="string"?e.error:"Rust semantic session worker failed."}}function bo(n){let e=JSON.parse(n);if(!e||typeof e!="object")return{ok:!1,error:"Rust semantic session worker wrote a non-object response."};let t=e;return t.ok===!0&&"response"in t?{ok:!0,response:t.response}:{ok:!1,error:typeof e.error=="string"?e.error:"Rust semantic session worker failed."}}function Ro(n){let e=n instanceof Error?`${n.name} ${n.message}`.toLowerCase():String(n).toLowerCase();return e.includes("readiness")?"readiness":e.includes("timeout")||e.includes("timed out")?"timeout":e.includes("helper")?"helper":"request"}function ge(n){return new Map(n.map(e=>[e.symbolId,[]]))}function be(n){return new Map(n.map(e=>[e.symbolId,[]]))}function ur(n){return new Map(n.map(e=>[e.symbolId,null]))}function xn(n,e){return new Map(n.map(t=>[t.symbolId,e.get(t.symbolId)??[]]))}function ho(n,e){return new Map(n.map(t=>[t.symbolId,e.get(t.symbolId)??null]))}function Io(n){let e=0;return n.includeReferences!==!1&&(e+=(n.referenceDefinitions??n.definitions).length),n.includeCallees===!0&&(e+=(n.calleeDefinitions??n.definitions).length),n.includeSignatures===!0&&(e+=(n.signatureDefinitions??n.definitions).length),Math.max(1,e)}function Tn(n,e){return e&&e>0?Math.max(n,e):n}function pr(){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 Ve(n,e){return X(n)??e}function $e(n,e){return mr(n)??e}function mr(n){if(!n)return null;let e=Number(n);return Number.isInteger(e)&&e>=0?e:null}var Pn=15e3,En=8;function br(n,e={}){let t=e.status??je,r=Co(n,t),i=To(n,t),o=wo(n,t),s=e.referenceResolver||e.calleeResolver||e.signatureResolver||!Do(e)?null:dr(n,t,{fallbackReferenceResolver:r,fallbackCalleeResolver:i,fallbackSignatureResolver:o}),a=e.referenceResolver??s??r,c=e.calleeResolver??s??i,u=e.signatureResolver??s??o,f=e.importUsageResolver??Lt(e.sourceImportUsageResolver??xo(),e.importDefinitionResolver??s),l=e.calleeSymbolResolver,d=e.sourceZeroCalleeOracle,p=e.scipOccurrenceCalleeOracle,m=new Map,R=new Map,I=null,S=null,h=()=>(I??=t(n),I),P=()=>{let b=h();return b.dependencyAvailable?S??b:b},M=b=>{if(b.length===0)return new Map;let y=Ie(b);try{let g=a.referencesForDefinitions(y),T=h();return S=Je(T,g),g.available?new Map(g.references):K(y,g.references)}catch(g){let T=h();return S=he(T,g),J(y)}},v=b=>{if(b.length===0)return new Map;let y=Ie(b),g=y.filter(yr);if(g.length===0)return G(y);let T=new Map,j=gr(g,p),F=[];for(let w of g)R.has(w.symbolId)?T.set(w.symbolId,R.get(w.symbolId)??[]):j.has(w.symbolId)?T.set(w.symbolId,j.get(w.symbolId)??[]):Sr(w,d)?T.set(w.symbolId,[]):F.push(w);if(F.length===0)return ie(y,T,void 0);try{let w=c.calleesForDefinitions(F),O=h();S=Je(O,w);let E=ie(F,w.callees,l);for(let[ce,rn]of E)T.set(ce,rn);return ie(y,T,void 0)}catch(w){let O=h();return S=he(O,w),G(y)}},C=(b,y)=>{let g=Ie(b),T=Ie(y),j=T.filter(yr),F=new Map,w=gr(j,p),O=[];for(let E of j)w.has(E.symbolId)?F.set(E.symbolId,w.get(E.symbolId)??[]):Sr(E,d)?F.set(E.symbolId,[]):O.push(E);if(g.length===0&&O.length===0)return{references:J(g),callees:ie(T,F,void 0)};try{let E=s?s.referencesAndCalleesForDefinitions(g,O):Ao(a,c,{referenceDefinitions:g,calleeDefinitions:O}),ce=h();S=Je(ce,E);let rn=E.available?new Map(E.references):K(g,E.references);for(let[on,sn]of E.callees)F.set(on,sn);let it=ie(T,F,l);for(let[on,sn]of it)R.set(on,sn);return{references:rn,callees:it}}catch(E){let ce=h();return S=he(ce,E),{references:J(g),callees:G(T)}}},D=b=>{if(b.length===0)return new Map;let y=Ie(b);try{let g=u.signaturesForDefinitions(y),T=h();return S=Je(T,g),Rr(y,g.signatures)}catch(g){let T=h();return S=he(T,g),Ge(y)}};return{language:"rust",availability:P,dispose:()=>{s?.dispose()},importUsage:b=>{let y=m.get(b);if(y)return y;try{let g=f.importUsage(b);return m.set(b,g),g}catch(g){let T=h();return S=he(T,g),[]}},referencesFor:b=>M([b]).get(b.symbolId)??[],referencesForDefinitions:M,referencesAndCalleesForDefinitions:C,calleesFor:b=>v([b]).get(b.symbolId)??[],calleesForDefinitions:v,signatureFor:b=>D([b]).get(b.symbolId)??null}}function Je(n,e){let t={dependencyAvailable:n.dependencyAvailable,resolvedBinary:e.resolvedBinary??n.resolvedBinary,...n.note?{note:n.note}:{}};return e.available?{available:!0,...t}:{available:!1,reason:e.reason,...t}}function he(n,e){return{available:!1,dependencyAvailable:n.dependencyAvailable,resolvedBinary:n.resolvedBinary,...n.note?{note:n.note}:{},reason:e instanceof Error?e.message:String(e)}}function Do(n){if(n.usePersistentSession!==void 0)return n.usePersistentSession;let e=process.env.SCIP_RUST_SEMANTIC_SESSION;return e!=="0"&&e!=="false"}function xo(){return{importUsageFacts:()=>({usage:[],positions:[]})}}function Ie(n){return n.map(e=>{let t=e;return{...e,leaf:typeof t.leaf=="string"?t.leaf:V(e.symbol),parentTypeName:t.parentTypeName??null,isFunctionLike:typeof t.isFunctionLike=="boolean"?t.isFunctionLike:xt(e.symbol),isTypeLike:t.isTypeLike??!1,kind:t.kind??null,documentation:t.documentation??null,enclosingSymbol:t.enclosingSymbol??null}})}function yr(n){return n.isFunctionLike}function Sr(n,e){if(!e)return!1;try{return e(n)}catch{return!1}}function gr(n,e){if(!e||n.length===0)return new Map;try{return e(n)}catch{return new Map}}function Co(n,e){return{referencesForDefinitions:t=>ko(n,e,t)}}function To(n,e){return{calleesForDefinitions:t=>Po(n,e,t)}}function wo(n,e){return{signaturesForDefinitions:t=>Eo(n,e,t)}}function ko(n,e,t){let r=e(n);if(!r.available||!r.resolvedBinary)return{available:!1,resolvedBinary:r.resolvedBinary,reason:Nn(r),references:J(t)};let i=An();if(!kn(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:J(t)};let o=oe(process.env.SCIP_RUST_SEMANTIC_REQUEST_TIMEOUT_MS,Pn),s=Qe(process.env.SCIP_RUST_SEMANTIC_REFERENCE_RETRY_TIMEOUT_MS,0),a=oe(process.env.SCIP_RUST_SEMANTIC_CONCURRENCY,En),c=Qe(process.env.SCIP_RUST_SEMANTIC_DIAGNOSTICS_TIMEOUT_MS,Math.min(o,1e4)),u=Re(process.env.SCIP_RUST_SEMANTIC_SETTLE_MS,{definitionCount:t.length,includeReferences:!0}),f={projectRoot:n,rustAnalyzerBinary:r.resolvedBinary,definitions:[...t],requestTimeoutMs:o,...s>0?{referenceRetryTimeoutMs:s}:{},diagnosticsTimeoutMs:c,settleDelayMs:u,concurrency:a},l=wn(process.execPath,[i],{cwd:n,input:JSON.stringify(f),encoding:"utf8",maxBuffer:50*1024*1024,windowsHide:!0,timeout:Y(t.length,Tn(o,f.referenceRetryTimeoutMs),a)}),d=_n(l.stdout);if(d)return{...Fn(d),resolvedBinary:r.resolvedBinary,references:K(t,new Map(d.references),new Set(d.incompleteReferenceSymbolIds??[]))};let p=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:p,references:J(t)}}function Po(n,e,t){let r=e(n);if(!r.available||!r.resolvedBinary)return{available:!1,resolvedBinary:r.resolvedBinary,reason:Nn(r),callees:G(t)};let i=An();if(!kn(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:G(t)};let o=oe(process.env.SCIP_RUST_SEMANTIC_REQUEST_TIMEOUT_MS,Pn),s=oe(process.env.SCIP_RUST_SEMANTIC_CONCURRENCY,En),a=Qe(process.env.SCIP_RUST_SEMANTIC_DIAGNOSTICS_TIMEOUT_MS,Math.min(o,1e4)),c=Re(process.env.SCIP_RUST_SEMANTIC_SETTLE_MS,{definitionCount:t.length,includeReferences:!1,includeCallees:!0}),u={projectRoot:n,rustAnalyzerBinary:r.resolvedBinary,definitions:[...t],requestTimeoutMs:o,diagnosticsTimeoutMs:a,settleDelayMs:c,concurrency:s,includeReferences:!1,includeCallees:!0},f=wn(process.execPath,[i],{cwd:n,input:JSON.stringify(u),encoding:"utf8",maxBuffer:50*1024*1024,windowsHide:!0,timeout:Y(t.length,o,s)}),l=_n(f.stdout);if(l)return{...Fn(l),resolvedBinary:r.resolvedBinary,callees:ie(t,new Map(l.callees??[]),void 0)};let d=f.error instanceof Error?f.error.message:f.stderr.trim()||`Rust semantic worker exited with status ${f.status??"unknown"}.`;return{available:!1,resolvedBinary:r.resolvedBinary,reason:d,callees:G(t)}}function Eo(n,e,t){let r=e(n);if(!r.available||!r.resolvedBinary)return{available:!1,resolvedBinary:r.resolvedBinary,reason:Nn(r),signatures:Ge(t)};let i=An();if(!kn(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:Ge(t)};let o=oe(process.env.SCIP_RUST_SEMANTIC_REQUEST_TIMEOUT_MS,Pn),s=oe(process.env.SCIP_RUST_SEMANTIC_CONCURRENCY,En),a=Qe(process.env.SCIP_RUST_SEMANTIC_DIAGNOSTICS_TIMEOUT_MS,Math.min(o,1e4)),c=Re(process.env.SCIP_RUST_SEMANTIC_SETTLE_MS,{definitionCount:t.length,includeReferences:!1,includeCallees:!1,includeSignatures:!0}),u={projectRoot:n,rustAnalyzerBinary:r.resolvedBinary,definitions:[...t],requestTimeoutMs:o,diagnosticsTimeoutMs:a,settleDelayMs:c,concurrency:s,includeReferences:!1,includeCallees:!1,includeSignatures:!0},f=wn(process.execPath,[i],{cwd:n,input:JSON.stringify(u),encoding:"utf8",maxBuffer:50*1024*1024,windowsHide:!0,timeout:Y(t.length,o,s)}),l=_n(f.stdout);if(l)return{...Fn(l),resolvedBinary:r.resolvedBinary,signatures:Rr(t,new Map(l.signatures??[]))};let d=f.error instanceof Error?f.error.message:f.stderr.trim()||`Rust semantic worker exited with status ${f.status??"unknown"}.`;return{available:!1,resolvedBinary:r.resolvedBinary,reason:d,signatures:Ge(t)}}function Ao(n,e,t){let r=t.referenceDefinitions.length>0?n.referencesForDefinitions(t.referenceDefinitions):{available:!0,references:J(t.referenceDefinitions)},i=t.calleeDefinitions.length>0?e.calleesForDefinitions(t.calleeDefinitions):{available:!0,callees:G(t.calleeDefinitions)},o={resolvedBinary:r.resolvedBinary??i.resolvedBinary,references:r.references,callees:i.callees};return r.available&&i.available?{available:!0,...o}:{available:!1,reason:(r.available?void 0:r.reason)??(i.available?void 0:i.reason)??"Rust semantic resolution was unavailable.",...o}}function J(n){return new Map(n.map(e=>[e.symbolId,[]]))}function G(n){return new Map(n.map(e=>[e.symbolId,[]]))}function Ge(n){return new Map(n.map(e=>[e.symbolId,null]))}function ie(n,e,t){let r=0,i=0;return k("rust.semantic.callees.complete-map",()=>{let o=new Map;for(let s of n){let a=e.get(s.symbolId)??[];a.length>0&&(r+=1),i+=a.length,o.set(s.symbolId,a.map(c=>({...c,symbol:t?t(c):c.symbol})))}return o},()=>({definitions:n.length,rows:r,callees:i,resolveSymbols:!!t}))}function Rr(n,e){return new Map(n.map(t=>[t.symbolId,e.get(t.symbolId)??null]))}function An(){return vo(new URL("./rust-semantic-worker.js",import.meta.url))}function Fn(n){return n.available?{available:!0}:{available:!1,reason:n.reason}}function Nn(n){return n.available?"rust-analyzer binary path is unavailable.":n.reason}function _n(n){try{let e=JSON.parse(n);if(!e||typeof e!="object")return null;let t=e;if(typeof t.available!="boolean"||!Array.isArray(t.references)||t.available===!1&&typeof t.reason!="string"||t.available===!0&&t.reason!==void 0)return null;let r={references:t.references,incompleteReferenceSymbolIds:Array.isArray(t.incompleteReferenceSymbolIds)?t.incompleteReferenceSymbolIds.filter(i=>typeof i=="number"):void 0,callees:Array.isArray(t.callees)?t.callees:void 0,signatures:Array.isArray(t.signatures)?t.signatures:void 0};return t.available===!0?{available:!0,...r}:{available:!1,reason:String(t.reason),...r}}catch{return null}}function oe(n,e){return X(n)??e}function Qe(n,e){if(!n)return e;let t=Number(n);return Number.isInteger(t)&&t>=0?t:e}import{existsSync as Fo}from"fs";import{deserializeSCIP as No,SymbolRole as _o}from"@c4312/scip";var Ln=new WeakMap;function Ir(n,e){let t=e.filter(Lo);if(t.length===0)return new Map;let r=!1,i=0,o=0;return k("rust.scip-occurrence.callees",()=>{let s=Bo(n);if(r=!!s,!s)return new Map;let a=new Map;for(let c of t){let u=Oo(n,s,c);u!==null&&(a.set(c.symbolId,u),i+=1,o+=u.length)}return a},()=>({definitions:e.length,candidates:t.length,indexAvailable:r,resolvedDefinitions:i,resolvedCallees:o}))}function Lo(n){return!(!n.symbol.startsWith("rust-analyzer ")||!n.relativePath.endsWith(".rs")||!n.isFunctionLike||n.leaf==="main"||pe(n.symbol))}function Oo(n,e,t){let r=Fe(n,t.relativePath);if(!r||r.language!=="rust")return null;let i=r.callables.find(u=>u.startLine!==t.startLine||u.endLine!==t.endLine?!1:u.name===t.leaf||t.leaf.endsWith(u.name)||u.name.endsWith(t.leaf));if(!i)return null;let o=r.callSites.filter(u=>u.line>=i.startLine&&u.line<=i.endLine);if(o.length===0)return null;let s=(e.occurrencesByFile.get(t.relativePath)??[]).filter(u=>u.line>=i.startLine&&u.line<=i.endLine&&u.callee.symbol!==t.symbol);if(s.some(u=>u.traitImplMember)||!Uo(o,s))return null;let a=[],c=new Set;for(let u of s){let f=`${u.callee.symbol}\0${u.callee.file}\0${u.callee.line}`;c.has(f)||(c.add(f),a.push(u.callee))}return a}function Uo(n,e){let t=hr(n),r=hr(e);if(t.size!==r.size)return!1;for(let[i,o]of t)if(r.get(i)!==o)return!1;return!0}function hr(n){let e=new Map;for(let t of n){let r=t.calleeLeaf??t.leaf;if(!r)continue;let i=`${t.line}\0${r}`;e.set(i,(e.get(i)??0)+1)}return e}function Bo(n){if(Ln.has(n))return Ln.get(n)??null;let e=qo(n);return Ln.set(n,e),e}function qo(n){if(!n.generation.indexPath||!Fo(n.generation.indexPath))return null;try{let e=_e(n).filter(o=>o.symbol.startsWith("rust-analyzer ")&&o.relativePath.endsWith(".rs")&&o.isFunctionLike),t=new Map(e.map(o=>[o.symbol,o])),r=No(Te(n.generation.indexPath,{inputKind:"SCIP occurrence-callee index",maxBytes:Ce})),i=new Map;for(let o of r.documents??[]){let s=o.relativePath;if(!s||!s.endsWith(".rs")||n.isIgnored(s))continue;let a=[];for(let c of o.occurrences??[]){if(!c.symbol||(c.symbolRoles&_o.Definition)!==0)continue;let u=t.get(c.symbol);if(!u)continue;let f=c.range?.[0];Number.isInteger(f)&&a.push({line:f,leaf:u.leaf,traitImplMember:pe(u.symbol),callee:{symbol:u.symbol,file:u.relativePath,line:u.startLine,callsiteLine:f}})}i.set(s,a)}return{occurrencesByFile:i}}catch{return null}}var Xe=class{sessions=new WeakMap;getOrCreate(e,t,r){let i=jo(e,t),o=this.sessions.get(e);o||(o=new Map,this.sessions.set(e,o));let s=o.get(i);if(s)return s.hits+=1,s.lastUsedAtMs=Date.now(),s.provider;let a=Date.now(),c=r();return o.set(i,{key:i,language:t,projectRoot:e.config.projectRoot,provider:c,createdAtMs:a,lastUsedAtMs:a,hits:1}),c}sessionsFor(e){return[...this.sessions.get(e)?.values()??[]]}clear(e){let t=this.sessions.get(e);if(t)for(let r of t.values())r.provider.dispose?.();this.sessions.delete(e)}};function jo(n,e){return`${n.config.projectRoot}:${e}-workspace`}import{randomUUID as ps}from"crypto";import{existsSync as ms}from"fs";import{dirname as ys}from"path";function Mr(n){if(!n||typeof n!="object"||Array.isArray(n))return null;let e=n;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(t=>typeof t=="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 U(n,e,t){if(n.has(e))return n.get(e);let r=t();return n.set(e,r),r}import xr from"path";import{realpathSync as vr}from"fs";function Wo(n,e){return n.getReferences().map(t=>{let r=t.getNode();return Ze(r,e)})}function zo(n){let e=n;return typeof e.findReferences=="function"?e.findReferences():[]}function Cr(n,e,t,r){let i=[];for(let o of zo(n))for(let s of Wo(o,r))s.file===e.relativePath&&s.line>=e.startLine&&s.line<=e.endLine||i.push(s);for(let o of t)i.push(o);return se(i)}function Tr(n,e,t,r){let i=[],o=t?.getStart();for(let s of n.getReferences()){let a=s.getNode();ae(r,a.getSourceFile().getFilePath())===e&&(o!==void 0&&a.getStart()===o||i.push({location:Ze(a,r),node:a}))}return i}function Ze(n,e){let t=n.getSourceFile(),r=t.getLineAndColumnAtPos(n.getStart());return{file:ae(e,t.getFilePath())??t.getBaseName(),line:r.line-1,column:r.column-1}}function On(n,e,t){let r=n.getSourceFile(),i=Bn(r,n),o=n.getText(),s=new RegExp(`\\b${de(o)}\\b`,"g"),a=r.getFullText().split(`
2
2
  `),c=[];for(let u=0;u<a.length;u++){if(u===i)continue;let f=a[u]??"";s.lastIndex=0;let l;for(;(l=s.exec(f))!==null;)c.push({file:e,line:u,column:l.index})}return se(c.filter(u=>ae(t,xr.join(t,u.file))===e))}function Un(n){for(let e=n;e;e=e.getParent()){let t=e.getKindName();if(t.includes("Type")||t==="InterfaceDeclaration"||t==="TypeAliasDeclaration")return!0;if(t==="CallExpression"||t==="NewExpression"||t==="ExpressionStatement")return!1}return!1}function Bn(n,e){return n.getLineAndColumnAtPos(e.getStart()).line-1}function se(n){let e=new Set,t=[];for(let r of n){let i=`${r.file}:${r.line}:${r.column}`;e.has(i)||(e.add(i),t.push(r))}return t}function ae(n,e){let t=n||process.cwd(),r=Dr(t,e);if(r)return r;try{return Dr(vr(t),vr(e))}catch{return null}}function Dr(n,e){let t=xr.relative(n,e).replace(/\\/g,"/");return!t||t===".."||t.startsWith("../")?null:t}function wr(n,e,t,r){let i=Ko(e,r);return i.size===0?new Map:Ho(n,t,i)}function Ko(n,e){let t=new Map;for(let r of z(n,e)){let i=V(r.symbol)??r.leaf;if(!i)continue;let o=t.get(i);o||(o=[],t.set(i,o)),o.push(r)}return t}function Ho(n,e,t){let r=new Map,i=new Map;return e.forEachDescendant(o=>{for(let s of Vo(n,o)){let a=t.get(s);if(!a)continue;let c=Bn(e,o);for(let u of a){if(c<u.startLine-1||c>u.endLine+1)continue;let f=Math.abs(c-u.startLine),l=i.get(u.symbolId);l!==void 0&&l<=f||(i.set(u.symbolId,f),r.set(u.symbolId,o))}}}),r}function Vo(n,e){let t=[],r=i=>{i&&!t.includes(i)&&t.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 n.Node.isIdentifier(e)&&r(e.getText()),t}var $o=lt("ts-definition-leaf-candidates",{clearGroups:["definition-catalog"]});function kr(n,e,t,r){let i=Wn(n,e),o=qn(i.get(r)??[],t);if(o)return o;let s=[];for(let a of i.values())for(let c of a)((c.leaf||V(c.symbol)||"").includes(r)||c.symbol.includes(r))&&s.push(c);return qn(s,t)}function jn(n,e,t,r){return qn(Wn(n,e).get(r)??[],t)}function Pr(n,e){let t=new Map;for(let[r,i]of Wn(n,e)){let o=i[0];o&&t.set(r,o)}return t}function Wn(n,e){return $o.get(n,e,()=>{let t=new Map;for(let r of z(n,e)){let i=r.leaf||V(r.symbol);if(!i)continue;let o=t.get(i);o||(o=[],t.set(i,o)),o.push({...r,leaf:i})}for(let r of t.values())r.sort((i,o)=>i.startLine-o.startLine||i.endLine-o.endLine||i.symbolId-o.symbolId);return t})}function qn(n,e){let t=null,r=Number.POSITIVE_INFINITY;for(let i of n){let o=Math.abs(i.startLine-e);(o<r||o===r&&t&&i.startLine<t.startLine)&&(t=i,r=o)}return t}import Yo from"path";import{realpathSync as Jo}from"fs";function Er(n,e){let t=new Map,r=null,i=null,o=()=>(i??=Ee(n,{extensions:Ue}),i),s=()=>(r??=k("typescript.source-file-index",()=>Go(n.config.projectRoot,e,o()),()=>({projects:e.length,indexedDocuments:o().length})),r),a=c=>ne(c)?U(t,c,()=>{let u=Ar(n.config.projectRoot,c);if(!u)return null;for(let{project:f,sourceFiles:l}of s()){let d=l.get(u)??null;if(d||(d=f.addSourceFileAtPathIfExists(u)??null,d&&zn(l,d)),d)return{project:f,sourceFile:d}}return null}):null;return{sourceFile:c=>a(c)?.sourceFile??null,sourceFileMatch:a,indexedTypeScriptLikeDocuments:o}}function Go(n,e,t){let r=e.map(({project:i})=>{let o=new Map;for(let s of i.getSourceFiles())zn(o,s);return{project:i,sourceFiles:o}});for(let i of t){let o=Ar(n,i);if(o)for(let s of r){if(s.sourceFiles.has(o))break;let a=s.project.addSourceFileAtPathIfExists(o)??null;if(a){zn(s.sourceFiles,a);break}}}return r}function zn(n,e){let t=Kn(e.getFilePath());n.set(t,e);try{n.set(Kn(Jo(t)),e)}catch(r){if(!fe(r))throw r}}function Ar(n,e){try{return Kn(gt(n,e,{inputKind:"indexed TypeScript source file"}).absolutePath)}catch(t){if(!fe(t))throw t;return null}}function Kn(n){return Yo.resolve(n)}function Hn(n,e){for(let t of n)if(e===t.name||e.startsWith(`${t.name}/`))return t.name;return null}function Fr(n){let e=`${n.relativeDir}/src`;return[`${e}/index.ts`,`${e}/index.tsx`,`${e}/index.mts`,`${e}/index.cts`]}import{existsSync as Me}from"fs";import A from"path";var Vn=["tsconfig.json","tsconfig.app.json","tsconfig.node.json","tsconfig.base.json"];function $n(n,e){let r=e?A.dirname(A.join(n,e)):n,i=A.resolve(n);for(;r.startsWith(i);){for(let s of Vn){let a=A.join(r,s);if(Me(a))return a}let o=A.dirname(r);if(o===r)break;r=o}for(let o of Vn){let s=A.join(n,o);if(Me(s))return s}return null}function Nr(n){let e=n.config.projectRoot,t=new Set(Qo(e,n.config.semantic?.typescript?.tsconfigs)),r=Ee(n,{includeIgnored:!1,extensions:Ue});for(let i of r){let o=$n(e,i);o&&t.add(A.resolve(o))}if(t.size===0){let i=$n(e);i&&t.add(A.resolve(i))}return[...t].filter(i=>!_r(e,i)).sort((i,o)=>i.localeCompare(o))}function Qo(n,e=[]){let t=new Set;for(let r of e){let i=A.isAbsolute(r)?r:A.join(n,r);Me(i)&&t.add(A.resolve(i))}for(let r of Xo(n))for(let i of Vn){let o=A.join(r,i);Me(o)&&t.add(A.resolve(o))}if(t.size===0){let r=$n(n);r&&t.add(A.resolve(r))}return[...t].filter(r=>!_r(n,r)).sort((r,i)=>r.localeCompare(i))}function Xo(n){let e=A.join(n,"package.json");if(!Me(e))return[];let t;try{t=JSON.parse(ct(e,"project package manifest"))}catch{return[]}return(Array.isArray(t.workspaces)?t.workspaces:t.workspaces?.packages??[]).flatMap(i=>mt(n,i))}function _r(n,e){let t=A.relative(n,e).replace(/\\/g,"/");return t.startsWith("..")||t.includes("/node_modules/")||t.startsWith("node_modules/")||t.includes("/dist/")||t.startsWith("dist/")}function Yn(n,e){try{return n()}catch{e?.();return}}var Zo=32;function jr(n,e){let t=k("typescript.provider.load",()=>Et());if(!t)return Be("ts-morph is not installed");let r=k("typescript.provider.tsconfig-discovery",()=>Nr(n));if(r.length===0)return Be("no tsconfig found");try{let i=k("typescript.provider.project-bundles",()=>At(t,r),()=>({tsconfigs:r.length}));return es(n,t,i)}catch(i){return Be(i instanceof Error?i.message:String(i),r[0],r)}}function es(n,e,t,r={}){return k("typescript.provider.construct",()=>new Jn(n,e,t),()=>({tsconfigs:t.length,reusedProjects:r.reusedProjects===!0}))}var Jn=class{constructor(e,t,r){this.db=e;this.tsMorph=t;this.projects=r;this.workspacePackages=pt(e.config.projectRoot),this.sourceFiles=Er(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(){return{available:!0,tsconfigPath:this.projects[0]?.tsconfigPath,tsconfigPaths:this.projects.map(e=>e.tsconfigPath)}}importUsage(e){return U(this.importUsageCache,e,()=>{let t=this.sourceFiles.sourceFile(e);if(!t)return[];let r=ts();return k("typescript.import-usage.file",()=>this.importUsageForSourceFile(e,t,r),()=>({file:e,...r}))})}referencesFor(e){return U(this.referencesCache,e.symbolId,()=>{let t=this.nodeForDefinition(e);return this.referencesForDefinitionNode(e,t)})}referencesForDefinitions(e,t={}){let r=new Map,i=_(),o=[];for(let f of e){let l=this.referencesCache.get(f.symbolId);l?r.set(f.symbolId,l):o.push(f)}if(o.length===0)return r;let s=o,a=t.exact?[]:o.filter(f=>!Or(f));if(a.length>=Zo){let f=this.referencesForDefinitionsBySymbolScan(a);if(f.incompleteFiles.size===0)for(let l of a){let d=f.references.get(l.symbolId)??[];this.referencesCache.set(l.symbolId,d),r.set(l.symbolId,d)}if(s=o.filter(l=>Or(l)),s.length===0)return r}let c=new Map;for(let f of s){let l=c.get(f.relativePath);l?l.push(f):c.set(f.relativePath,[f])}let u=[];for(let[f,l]of c){let d=Ur();k("typescript.references-map.file",()=>{let p=this.definitionNodesForFile(f);for(let m of l){i&&(d.cacheMisses+=1);let R=p.get(m.symbolId)??null;i&&(R?d.nodeHits+=1:d.nodeMisses+=1);try{let I=this.referencesForDefinitionNode(m,R,i?d:void 0);this.referencesCache.set(m.symbolId,I),r.set(m.symbolId,I)}catch{d.preciseSearchFailures+=1,u.push(m)}}},()=>({relativePath:f,definitions:l.length,...Br(d)}))}if(u.length>0){let f=this.referencesForDefinitionsBySymbolScan(u);if(f.incompleteFiles.size===0)for(let l of u){let d=f.references.get(l.symbolId)??[];this.referencesCache.set(l.symbolId,d),r.set(l.symbolId,d)}}return r}referenceFragmentsForFiles(e){let t=_e(this.db).filter(s=>ne(s.relativePath)),r=e.filter(s=>this.sourceFiles.sourceFile(s)!==null),i=this.referencesForDefinitionsBySymbolScan(t,r),o=r.filter(s=>!i.incompleteFiles.has(s));return Ft(t,i.references,o)}referencesForDefinitionsBySymbolScan(e,t){let r=_(),i=Ur(),o=new Map,s=new Set,a=new Set(e.map(u=>u.symbolId)),c=new Map(e.map(u=>[u.symbolId,u]));for(let u of e)o.set(u.symbolId,[]);return k("typescript.references-map.inverted-scan",()=>{let u=r?x.now():0,f=t?this.packageImportReferencesForFiles(t):this.packageImportReferences();for(let S of e){let h=f.get(S.symbolId)??[];if(h.length>0){let P=o.get(S.symbolId)??[];P.push(...h),o.set(S.symbolId,P)}r&&(i.packageReferenceCount+=h.length)}r&&(i.packageRefsMs+=x.now()-u);let l=new Map,d=new Map,p=this.hierarchyTargetsForDefinitions(e),m=new Set(e.map(S=>S.leaf).filter(Boolean)),R=r?x.now():0;for(let S of t??this.sourceFiles.indexedTypeScriptLikeDocuments()){if(this.db.isIgnored(S))continue;let h=this.sourceFiles.sourceFile(S);if(!h)continue;r&&(i.scanFiles+=1),this.addReferencesFromSourceFileScan(h,S,a,c,p,m,l,d,o,r?i:void 0)||s.add(S)}r&&(i.scanMs+=x.now()-R);let I=r?x.now():0;this.addHierarchyMemberReferences(e,o,r?i:void 0),r&&(i.hierarchyMs+=x.now()-I);for(let[S,h]of o){let P=se(h);o.set(S,P),r&&(i.referenceCount+=P.length)}},()=>({definitions:e.length,...Br(i)})),{references:o,incompleteFiles:s}}addReferencesFromSourceFileScan(e,t,r,i,o,s,a,c,u,f){let l=this.compilerCheckerForSourceFile(e),d=e.compilerNode,p=os(e),m=!0,R=I=>{if(this.tsMorph.ts.isIdentifier(I)){if(f&&(f.identifiers+=1),!s.has(I.text)&&!p.has(I.text)){this.tsMorph.ts.forEachChild(I,R);return}let S=this.compilerReferenceSymbol(l,I,f,()=>{m=!1});if(S){let h;a.has(S)?h=a.get(S)??null:(h=this.referenceDefinitionFromCompilerSymbol(S),a.set(S,h)),f&&(h?f.targetHits+=1:f.targetMisses+=1);let P=U(c,S,()=>this.compilerSymbolKeys(S)),M=null,v=null,C=h&&r.has(h.symbolId)?i.get(h.symbolId):void 0;if(C&&(M=en(d,I),!Lr(C,t,M))){let D=d.getLineAndCharacterOfPosition(I.getStart(d));v={file:t,line:D.line,column:D.character};let b=u.get(C.symbolId)??[];b.push(v),u.set(C.symbolId,b),f&&(f.requestedHits+=1)}for(let D of P)for(let b of o.get(D)?.values()??[]){if(M??=en(d,I),Lr(b,t,M))continue;if(!v){let g=d.getLineAndCharacterOfPosition(I.getStart(d));v={file:t,line:g.line,column:g.character}}let y=u.get(b.symbolId)??[];y.push(v),u.set(b.symbolId,y),f&&(f.requestedHits+=1)}}}this.tsMorph.ts.forEachChild(I,R)};return R(d),m}hierarchyTargetsForDefinitions(e){let t=new Map;for(let r of e){let i=this.nodeForDefinition(r),o=i?.compilerNode;if(!o||!this.isHierarchyMethod(o))continue;let s=o.parent;if(!this.isHierarchyContainer(s))continue;let a=this.compilerCheckerForSourceFile(i.getSourceFile()),c=a.getSymbolAtLocation(o.name);if(c)for(let u of this.hierarchyMemberSymbols(a,s,c))for(let f of this.compilerSymbolKeys(u)){let l=t.get(f)??new Map;l.set(r.symbolId,r),t.set(f,l)}}return t}hierarchyMemberSymbols(e,t,r){let i=new Set,o=new Set,s=(a,c,u)=>{if(!o.has(a)){o.add(a),i.add(c);for(let f of u){let l=f.getProperty(r.name);l&&s(f,l,this.hierarchyAncestorTypesForType(e,f))}}};return s(e.getTypeAtLocation(t),r,this.hierarchyAncestorTypes(e,t)),i}addHierarchyMemberReferences(e,t,r){let i=new Map;for(let o of e){let s=this.nodeForDefinition(o),a=s?.compilerNode;if(!a||!this.isHierarchyMethod(a))continue;let c=a.parent;if(!this.isHierarchyContainer(c))continue;let u=this.compilerCheckerForSourceFile(s.getSourceFile()),f=u.getSymbolAtLocation(a.name);if(!f)continue;let l=a.getSourceFile(),d=l.getLineAndCharacterOfPosition(a.name.getStart(l)),p={definition:o,location:{file:o.relativePath,line:d.line,column:d.character}},m=t.get(o.symbolId)??[];for(let I of this.hierarchyMemberSymbols(u,c,f))if(I!==f)for(let S of this.compilerSymbolLocations(I))m.push(S),r&&(r.hierarchyReferences+=1);t.set(o.symbolId,m);let R=this.hierarchyRootMemberSymbols(u,c,f);for(let I of R){let S=i.get(I)??new Map;S.set(o.symbolId,p),i.set(I,S)}r&&(r.hierarchyDefinitions+=1)}for(let o of i.values())if(!(o.size<2)){r&&(r.hierarchyFamilies+=1);for(let{definition:s}of o.values()){let a=t.get(s.symbolId)??[];for(let c of o.values())c.definition.symbolId!==s.symbolId&&(a.push(c.location),r&&(r.hierarchyReferences+=1));t.set(s.symbolId,a)}}}hierarchyRootMemberSymbols(e,t,r){let i=new Set,o=new Set,s=(a,c,u)=>{if(o.has(a))return;o.add(a);let f=!1;for(let l of u){let d=l.getProperty(r.name);d&&(f=!0,s(l,d,this.hierarchyAncestorTypesForType(e,l)))}if(!f)for(let l of this.compilerSymbolKeys(c))i.add(l)};return s(e.getTypeAtLocation(t),r,this.hierarchyAncestorTypes(e,t)),i}compilerSymbolKeys(e){return(e.declarations??[]).map(t=>{let r=t.getSourceFile();return`${r.fileName}\0${t.getStart(r)}\0${e.name}`})}compilerSymbolLocations(e){let t=[];for(let r of e.declarations??[]){let i=r.getSourceFile(),o=ae(this.db.config.projectRoot,i.fileName);if(!o)continue;let s=r.name,a=i.getLineAndCharacterOfPosition((s??r).getStart(i));t.push({file:o,line:a.line,column:a.character})}return t}baseTypes(e,t){try{return e.getBaseTypes(t)??[]}catch{return[]}}hierarchyAncestorTypes(e,t){let r=new Set(this.hierarchyAncestorTypesForType(e,e.getTypeAtLocation(t)));for(let i of t.heritageClauses??[])for(let o of i.types)r.add(e.getTypeAtLocation(o));return[...r]}hierarchyAncestorTypesForType(e,t){let r=new Set(this.baseTypes(e,t));for(let i of t.getSymbol()?.declarations??[])if(this.isHierarchyContainer(i))for(let o of i.heritageClauses??[])for(let s of o.types)r.add(e.getTypeAtLocation(s));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,t,r,i){r&&(r.symbolLookups+=1);let o=Yn(()=>e.getSymbolAtLocation(t),i);if(o){if((o.flags&this.tsMorph.ts.SymbolFlags.Alias)===0)return o;try{return r&&(r.aliasResolutions+=1),e.getAliasedSymbol(o)}catch{return i?.(),o}}}calleesFor(e){if(this.calleesCache.has(e.symbolId))return this.calleesCache.get(e.symbolId)??[];let t=U(this.fileCalleesCache,e.relativePath,()=>this.calleeMapForFile(e.relativePath));if(t.incompleteSymbolIds.has(e.symbolId))throw new Error(`TypeScript callee evidence is incomplete for ${e.symbol}.`);let r=t.callees.get(e.symbolId)??[];return this.calleesCache.set(e.symbolId,r),r}calleesForDefinitions(e){let t=new Map,r=new Map;for(let i of e){if(this.calleesCache.has(i.symbolId)){t.set(i.symbolId,this.calleesCache.get(i.symbolId)??[]);continue}let o=r.get(i.relativePath);o?o.push(i):r.set(i.relativePath,[i])}for(let[i,o]of r){let s=this.fileCalleesCache.get(i),a=new Set(o.map(u=>u.symbolId)),c=s??this.calleeMapForFile(i,a);for(let u of o){if(c.incompleteSymbolIds.has(u.symbolId))continue;let f=c.callees.get(u.symbolId)??[];this.calleesCache.set(u.symbolId,f),t.set(u.symbolId,f)}}return t}referencesForDefinitionNode(e,t,r){let i=r?x.now():0,o=this.packageImportReferencesForDefinition(e);if(r&&(r.packageRefsMs+=x.now()-i,r.packageReferenceCount+=o.length),!t)return o;let s=r?x.now():0,a=Cr(t,e,o,this.db.config.projectRoot);return r&&(r.semanticRefsMs+=x.now()-s,r.referenceCount+=a.length),a}signatureFor(e){return U(this.signatureCache,e.symbolId,()=>{let t=this.nodeForDefinition(e);if(!t||!this.tsMorph.Node.isFunctionDeclaration(t)&&!this.tsMorph.Node.isMethodDeclaration(t)&&!this.tsMorph.Node.isArrowFunction(t)&&!this.tsMorph.Node.isFunctionExpression(t)&&!this.tsMorph.Node.isConstructorDeclaration(t))return null;let r=t.getType().getCallSignatures()[0];if(!r)return null;let i=r.getParameters().map(s=>{let a=s.getDeclarations()[0],c=a?s.getTypeAtLocation(a).getText(a):s.getValueDeclaration()?.getType().getText()??"unknown";return qr(c)}),o=r.getReturnType().getText(t);return`(${i.join(",")})=>${qr(o)}`})}importUsageForSourceFile(e,t,r){let i=[],o=new Map;for(let s of t.getImportDeclarations()){r.declarations+=1;let a=ln(this.db,e,s.getModuleSpecifierValue()),c=s.getImportClause()?.isTypeOnly()??!1;for(let u of Gn(s)){r.entries+=1;let f=c?null:u.identifier?.getSymbol()?.compilerSymbol??null;!c&&u.identifier&&(f?r.bindingSymbols+=1:r.missingBindingSymbols+=1);let l={sourcePath:a,entry:u,typeOnlyDeclaration:c,bindingSymbol:f,references:[]};if(i.push(l),c||!u.localName||!f)continue;let d=o.get(u.localName);d?d.push(l):o.set(u.localName,[l])}}return o.size>0&&t.forEachDescendant(s=>{if(s.getKindName()!=="Identifier")return;let a=o.get(s.getText());if(!a||rs(s))return;r.scannedIdentifiers+=1;let c=s.getSymbol()?.compilerSymbol;if(r.symbolLookups+=1,!!c){for(let u of a)if(u.bindingSymbol===c){u.references.push({location:Ze(s,this.db.config.projectRoot),node:s}),r.matchedReferences+=1;break}}}),i.map(s=>s.typeOnlyDeclaration?ns(e,s.sourcePath,s.entry):s.entry.identifier&&!s.bindingSymbol?(r.fallbackEntries+=1,this.valueImportUsageForEntry(e,s.sourcePath,s.entry)):this.valueImportUsageFromLocations(e,s.sourcePath,s.entry,s.references))}valueImportUsageForEntry(e,t,r){let i;try{i=r.identifier?r.identifier.findReferences():[]}catch{let s=r.identifier?On(r.identifier,e,this.db.config.projectRoot):[];return{importer:e,sourcePath:t,importedName:r.importedName,localName:r.localName,kind:r.kind,isTypeOnly:r.isTypeOnly,isUsed:r.isTypeOnly||s.length>0,isTypeUsed:r.isTypeOnly,isValueUsed:!r.isTypeOnly&&s.length>0,references:s}}let o=[];for(let s of i)for(let a of Tr(s,e,r.identifier,this.db.config.projectRoot))o.push(a);return this.valueImportUsageFromLocations(e,t,r,o)}valueImportUsageFromLocations(e,t,r,i){let o=i.some(c=>!Un(c.node)),s=i.some(c=>Un(c.node)),a=r.isTypeOnly;return{importer:e,sourcePath:t,importedName:r.importedName,localName:r.localName,kind:r.kind,isTypeOnly:a,isUsed:a||i.length>0,isTypeUsed:a||s,isValueUsed:o,references:i.map(c=>c.location)}}packageImportReferencesForDefinition(e){return this.packageImportReferences().get(e.symbolId)??[]}packageImportReferencesForFiles(e){let t=new Map,r=new Set;for(let o of e){let s=this.sourceFiles.sourceFile(o);if(s)for(let a of s.getImportDeclarations()){let c=Hn(this.workspacePackages,a.getModuleSpecifierValue());c&&r.add(c)}}if(r.size===0)return t;let i=this.packageExportsForNames(r);for(let o of e)this.addPackageImportReferencesForDocument(t,i,o);for(let[o,s]of t)t.set(o,se(s));return t}packageImportReferences(){if(this.packageImportReferenceIndex)return this.packageImportReferenceIndex;let e=new Map,t=this.packageExports();for(let r of this.sourceFiles.indexedTypeScriptLikeDocuments())this.addPackageImportReferencesForDocument(e,t,r);for(let[r,i]of e)e.set(r,se(i));return this.packageImportReferenceIndex=e,e}addPackageImportReferencesForDocument(e,t,r){if(this.db.isIgnored(r))return;let i=this.sourceFiles.sourceFileMatch(r);if(i)for(let o of i.sourceFile.getImportDeclarations())this.addPackageImportReferencesForDeclaration(e,t,r,o)}addPackageImportReferencesForDeclaration(e,t,r,i){let o=Hn(this.workspacePackages,i.getModuleSpecifierValue());if(!o)return;let s=t.get(o);if(s)for(let a of Gn(i)){if(a.kind!=="named"||!a.identifier)continue;let c=s.get(a.importedName);if(!c||c.size===0)continue;let u=On(a.identifier,r,this.db.config.projectRoot);u.length>0&&ls(e,c,u)}}packageExports(){return this.packageExportIndex?this.packageExportIndex:(this.packageExportIndex=this.packageExportsForNames(new Set(this.workspacePackages.map(e=>e.name))),this.packageExportIndex)}packageExportsForNames(e){let t=new Map;for(let r of this.workspacePackages){if(!e.has(r.name))continue;let i=new Map;for(let o of Fr(r))this.collectPackageExports(r,o,i,new Set);i.size>0&&t.set(r.name,i)}return t}collectPackageExports(e,t,r,i){if(i.has(t))return;i.add(t);let o=this.sourceFiles.sourceFile(t);if(o)for(let s of o.getExportDeclarations()){let a=s.getModuleSpecifierValue(),c=a?ln(this.db,t,a):t;if(!c||!c.startsWith(`${e.relativeDir}/src/`))continue;let u=s.getNamedExports();if(u.length===0){if(s.isNamespaceExport())continue;this.collectPackageExports(e,c,r,i);continue}for(let f of u){let l=f.getNameNode().getText(),d=f.getAliasNode()?.getText()??l,p=this.indexedDefinitionByLeaf(c,l);if(!p)continue;let m=r.get(d);m||(m=new Set,r.set(d,m)),m.add(p.symbolId)}}}indexedDefinitionByLeaf(e,t){return U(this.indexedDefinitionLeafCache,e,()=>Pr(this.db,e)).get(t)??null}nodeForDefinition(e){return U(this.definitionNodeCache,e.symbolId,()=>this.definitionNodesForFile(e.relativePath).get(e.symbolId)??null)}definitionNodesForFile(e){return U(this.fileDefinitionNodeCache,e,()=>{let t=this.sourceFiles.sourceFile(e);return t?wr(this.tsMorph,this.db,t,e):new Map})}referenceDefinitionFromCompilerSymbol(e){return this.definitionFromCompilerSymbol(e,void 0,!0)}definitionFromCompilerSymbol(e,t,r=!1){let i=e.name,o=t?x.now():0,s=e.declarations??[];t&&(t.declarationsMs+=x.now()-o,t.declarationChecks+=s.length);for(let a of s){let c=t?x.now():0,u=a.getSourceFile(),f=ae(this.db.config.projectRoot,u.fileName),l=u.getLineAndCharacterOfPosition(a.getStart(u)).line;if(t&&(t.declarationLocationMs+=x.now()-c),!f||this.db.isIgnored(f))continue;let d=t?x.now():0,p=this.compilerDeclarationName(a),m=r?jn(this.db,f,l,i)??(p&&p!==i?jn(this.db,f,l,p):null):kr(this.db,f,l,i);if(t&&(t.indexedLookupMs+=x.now()-d),m)return{symbolId:m.symbolId,symbol:m.symbol,file:m.relativePath,line:m.startLine}}return null}compilerDeclarationName(e){let t=e.name;return t&&this.tsMorph.ts.isIdentifier(t)?t.text:null}calleeMapForFile(e,t){let r=_(),i=0,o=0,s=0,a=0,c=0,u=0,f=0,l=0,d=r?as():void 0;return k("typescript.callee-map.file",()=>{let p=r?x.now():0,m=this.sourceFiles.sourceFile(e);if(r&&(c=Math.round(x.now()-p)),!m)return{callees:new Map,incompleteSymbolIds:new Set};let R=r?x.now():0,I=z(this.db,e).sort((y,g)=>y.startLine-g.startLine||g.endLine-y.endLine);if(r&&(u=Math.round(x.now()-R)),i=I.length,I.length===0)return{callees:new Map,incompleteSymbolIds:new Set};let S=new Map,h=new Set,P=r?x.now():0,M=this.compilerCheckerForSourceFile(m),v=m.compilerNode;r&&(f=Math.round(x.now()-P));let C=new Map,D=y=>{if(this.tsMorph.ts.isCallExpression(y)||this.tsMorph.ts.isNewExpression(y)){r&&(o+=1);let g=this.semanticCalleeForCallNode(M,v,I,y,C,t,h,d);g&&(r&&(s+=1),is(S,g.callerId,g.target))}this.tsMorph.ts.forEachChild(y,D)},b=r?x.now():0;D(v),r&&(l=Math.round(x.now()-b));for(let[y,g]of S)S.set(y,us(g));return a=S.size,{callees:S,incompleteSymbolIds:h}},()=>({relativePath:e,definitions:i,callNodes:o,resolvedCallees:s,outputRows:a,requestedDefinitions:t?.size??i,sourceFileLookupMs:c,definitionsLoadMs:u,checkerLookupMs:f,traversalMs:l,...d?cs(d):{}}))}semanticCalleeForCallNode(e,t,r,i,o,s,a,c){let u=c?x.now():0,f=ss(r,en(t,i));if(c&&(c.callerLookupMs+=x.now()-u),!f)return null;if(s&&!s.has(f.symbolId))return c&&(c.skippedUnrequestedCallers+=1),null;let l=i.expression,d=this.compilerSymbolForExpression(e,l,c);d.incomplete&&a?.add(f.symbolId);let p=d.symbol,m=null;if(p)if(c&&(c.targetSymbolHits+=1),o.has(p))c&&(c.compilerSymbolCacheHits+=1),m=o.get(p)??null;else{c&&(c.compilerSymbolCacheMisses+=1);let R=c?x.now():0;m=this.definitionFromCompilerSymbol(p,c),c&&(c.targetLookupMs+=x.now()-R),o.set(p,m)}else c&&(c.targetMisses+=1);return m?{callerId:f.symbolId,target:{symbol:m.symbol,file:m.file,line:m.line,callsiteLine:en(t,i)}}:null}compilerSymbolForExpression(e,t,r){let i=!1,o=r?x.now():0,s=Yn(()=>e.getSymbolAtLocation(t),()=>{i=!0});if(r&&(r.expressionSymbolMs+=x.now()-o),s)return{symbol:s,incomplete:!1};r&&(r.typeFallbacks+=1);let a=!1,c=r?x.now():0,u=Yn(()=>e.getTypeAtLocation(t).getSymbol(),()=>{a=!0});return r&&(r.typeSymbolMs+=x.now()-c),{symbol:u,incomplete:!u&&(i||a)}}compilerCheckerForSourceFile(e){let t=e.getProject(),r=this.compilerCheckerCache.get(t);return r||(r=t.getTypeChecker().compilerObject,this.compilerCheckerCache.set(t,r)),r}};function Gn(n){let e=[],t=n.getDefaultImport();t&&e.push({identifier:t,importedName:"default",localName:t.getText(),kind:"default",isTypeOnly:n.getImportClause()?.isTypeOnly()??!1});let r=n.getNamespaceImport();r&&e.push({identifier:r,importedName:"*",localName:r.getText(),kind:"namespace",isTypeOnly:n.getImportClause()?.isTypeOnly()??!1});for(let i of n.getNamedImports()){let o=i.getNameNode(),a=i.getAliasNode()??(o.getKindName()==="Identifier"?o:null);e.push({identifier:a,importedName:o.getText(),localName:a?.getText()??o.getText(),kind:"named",isTypeOnly:i.isTypeOnly()||(n.getImportClause()?.isTypeOnly()??!1)})}return e.length===0&&e.push({identifier:null,importedName:"*",localName:null,kind:"side-effect",isTypeOnly:!1}),e}function ns(n,e,t){return{importer:n,sourcePath:e,importedName:t.importedName,localName:t.localName,kind:t.kind,isTypeOnly:!0,isUsed:!0,isTypeUsed:!0,isValueUsed:!1,references:[]}}function ts(){return{declarations:0,entries:0,bindingSymbols:0,missingBindingSymbols:0,scannedIdentifiers:0,symbolLookups:0,matchedReferences:0,fallbackEntries:0}}function rs(n){for(let e=n;e;e=e.getParent())if(e.getKindName()==="ImportDeclaration")return!0;return!1}function is(n,e,t){let r=n.get(e);r||(r=[],n.set(e,r)),r.push(t)}function os(n){let e=new Set;for(let t of n.getImportDeclarations())for(let r of Gn(t))r.localName&&e.add(r.localName);return e}function ss(n,e){let t=null;for(let r of n)e<r.startLine||e>r.endLine||(!t||r.startLine>=t.startLine)&&(t=r);return t}function en(n,e){return n.getLineAndCharacterOfPosition(e.getStart(n)).line}function Lr(n,e,t){return e===n.relativePath&&t>=n.startLine&&t<=n.endLine}function Or(n){return n.symbol.includes("#")?Ne(n.symbol)==="type"&&n.relativePath.endsWith(".d.ts"):!1}function as(){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 cs(n){return{...n,callerLookupMs:Math.round(n.callerLookupMs),expressionSymbolMs:Math.round(n.expressionSymbolMs),typeSymbolMs:Math.round(n.typeSymbolMs),targetLookupMs:Math.round(n.targetLookupMs),declarationsMs:Math.round(n.declarationsMs),declarationLocationMs:Math.round(n.declarationLocationMs),indexedLookupMs:Math.round(n.indexedLookupMs)}}function Ur(){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}}function Br(n){return{...n,scanMs:Math.round(n.scanMs),packageRefsMs:Math.round(n.packageRefsMs),semanticRefsMs:Math.round(n.semanticRefsMs),hierarchyMs:Math.round(n.hierarchyMs)}}function ls(n,e,t){for(let r of e){let i=n.get(r)??[];i.push(...t),n.set(r,i)}}function us(n){let e=new Set,t=[];for(let r of n){let i=`${r.symbol}|${r.file}|${r.line}|${r.callsiteLine??""}`;e.has(i)||(e.add(i),t.push(r))}return t}function qr(n){return n.replace(/\s+/g," ").replace(/\bimport\("[^"]+"\)\./g,"").trim()}import{join as fs}from"path";var nn=4;var ds="typescript-semantic";function Wr(n){let e=fs(n,ds),t=Le(e);return{...t,requestDir:t.legacyRequestDir}}var Ss=12e4,gs=5;function Vr(n,e,t={}){let r=new Qn(n,t),i=null,o=null,s=process.env.CODEBASEIQ_SKIP_WATCH_SERVICE==="1",a=()=>(i??=jr(n,e),i),c=(l,d,p)=>{if(s)return p();try{return d(r.request(l))}catch{return s=!0,p()}},u=(l,d)=>c({kind:"references",definitions:[...l],...d?.exact?{exact:!0}:{}},p=>Hr(p),()=>a().referencesForDefinitions?.(l,d)??new Map(l.map(p=>[p.symbolId,a().referencesFor(p)]))),f=l=>c({kind:"callees",definitions:[...l]},d=>Hr(d),()=>a().calleesForDefinitions?.(l)??new Map(l.map(d=>[d.symbolId,a().calleesFor(d)])));return{language:"typescript",availability:()=>(o??=c({kind:"availability"},hs,()=>a().availability()),o),importUsage:l=>c({kind:"import-usage",file:l},d=>d,()=>a().importUsage(l)),referencesFor:l=>zr(u([l]),l,"reference"),referencesForDefinitions:u,referenceFragmentsForFiles:l=>c({kind:"reference-fragments",files:[...l]},d=>Rs(d),()=>a().referenceFragmentsForFiles?.(l)??new Map),calleesFor:l=>zr(f([l]),l,"callee"),calleesForDefinitions:f,signatureFor:l=>c({kind:"signature",definition:l},Is,()=>a().signatureFor(l)),dispose:()=>i?.dispose?.()}}function zr(n,e,t){if(!n.has(e.symbolId))throw new Error(`TypeScript ${t} evidence is incomplete for ${e.symbol}.`);return n.get(e.symbolId)}var Qn=class{constructor(e,t={}){this.db=e;this.runtime=t.runtime??vs,this.timeoutMs=t.timeoutMs??Ms(),this.mailboxLimits=t.mailboxLimits??{},this.cacheDir=ys(e.config.dbPath),this.projectRoot=St(e.config.projectRoot)}db;runtime;timeoutMs;cacheDir;projectRoot;mailboxLimits;request(e){let t=Pt(this.cacheDir),r=Wr(this.cacheDir),i=dn(t.statePath);if(!Kr(i,this.projectRoot,this.runtime))throw new Error("Compatible TypeScript semantic service is not running.");let o=this.db.generation.identity;if(!o)throw new Error("Published TypeScript generation identity is unavailable.");let s=this.runtime.now(),a=s+this.timeoutMs,c=(this.runtime.monotonicNow??q)()+this.timeoutMs,u=yt(),f=Z("typescript-semantic-v4",{generation:o,profileEnvironment:u,request:e}),l=ee(f),d=Oe(r,{mailboxVersion:$,operationKey:f,clientId:this.runtime.randomId(),enqueuedAtMs:s,deadlineAtMs:a,protocolVersion:nn,id:l,generation:o,profileEnvironment:u,request:e},{nowMs:s,limits:this.mailboxLimits});for(;(this.runtime.monotonicNow??q)()<=c;){if(ms(d.responsePath))return bs(B(d.responsePath,{maxBytes:this.mailboxLimits.maxItemBytes??64*1024*1024,inputKind:"TypeScript semantic mailbox response"}),l,o,f);let p=dn(t.statePath);if(!Kr(p,this.projectRoot,this.runtime))throw new Error("TypeScript semantic service stopped while processing a request.");this.runtime.sleep(gs)}throw new Error(`TypeScript semantic service timed out after ${this.timeoutMs}ms.`)}};function Kr(n,e,t){let r=n?.processIdentity?t.readProcessIdentity?.(n.pid):null;return n!==null&&n.projectRoot===e&&n.typescriptSemantic?.protocolVersion===nn&&t.isProcessAlive(n.pid)&&(!n.processIdentity||r!=null&&xe(n.processIdentity,r))}function bs(n,e,t,r){let i=JSON.parse(n);if(i.protocolVersion!==nn||i.id!==e||i.operationKey!==r||i.ok===!0&&i.generation!==t)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 Hr(n){if(!Array.isArray(n))throw new Error("TypeScript semantic service wrote an invalid numeric map.");return new Map(n)}function Rs(n){if(!Array.isArray(n))throw new Error("TypeScript semantic service wrote an invalid string map.");return new Map(n)}function hs(n){let e=Mr(n);if(!e)throw new Error("TypeScript semantic service wrote invalid availability.");return e}function Is(n){if(n!==null&&typeof n!="string")throw new Error("TypeScript semantic service wrote an invalid signature.");return n}function Ms(){let n=Number(process.env.SCIP_TYPESCRIPT_SEMANTIC_TIMEOUT_MS);return Number.isInteger(n)&&n>0?n:Ss}var vs={now:Date.now,monotonicNow:q,randomId:ps,sleep(n){let e=new Int32Array(new SharedArrayBuffer(4));Atomics.wait(e,0,0,n)},isProcessAlive:ke,readProcessIdentity:we};var Xn=new Xe;ot({name:"semantic-provider",groups:["semantic-provider"],clearAll:n=>Xn.clear(n)});st({name:"semantic-provider",close:n=>Xn.clear(n)});function Q(n,e){let t=L(e)??"typescript";return Xn.getOrCreate(n,t,()=>t==="rust"?br(n.config.projectRoot,{sourceImportUsageResolver:{importUsageFacts:r=>_t(n,r)},calleeSymbolResolver:Nt(n),sourceZeroCalleeOracle:r=>Ds(n,r),scipOccurrenceCalleeOracle:r=>Ir(n,r)}):Vr(n,e))}function L(n){return n?ht(n)==="rust"?"rust":ne(n)?"typescript":null:"typescript"}function Ds(n,e){let t=Fe(n,e.relativePath);if(!t||t.language!=="rust")return!1;let r=t.callables.find(i=>i.startLine===e.startLine&&i.endLine===e.endLine&&i.name===e.leaf)??t.callables.find(i=>i.startLine===e.startLine&&i.endLine===e.endLine);return r?!t.callSites.some(i=>i.line>=r.startLine&&i.line<=r.endLine):!1}var xs=/^[A-Za-z_][A-Za-z0-9_]*$/,$r=/\bDefault::default\b/g,Cs=/^\.\.\s*Default::default\b/;function Yr(n,e){let t=new Map,r=new Map;for(let i of e){let o=Zn(n,i,r);o!==null&&t.set(i.symbolId,o)}return t}function Zn(n,e,t=new Map){let r=ws(e.symbol);if(!r)return null;let i=Ct(n,[e.symbolId]);if(i.length===0)return null;let o=new RegExp(`(^|[^A-Za-z0-9_])${de(r)}::default\\b`,"g"),s=new RegExp(`(^|[^A-Za-z0-9_])${de(r)}\\s*$`),a=Ts(n,e.symbolId),c=[];for(let u of i){let f=ks(n,u.relative_path,t);if(f===null)return null;let l=f.split(/\r?\n/),d=0,p=[],m=0;for(let R=u.chunk_start;R<=u.chunk_end&&R<l.length;R+=1){let S=l[R]??"",h=new Set;o.lastIndex=0;let P;for(;P=o.exec(S);)c.push({file:u.relative_path,line:R,column:P.index+P[1].length+r.length+2}),m+=1;for(let M=0;M<S.length;M+=1){let v=Cs.exec(S.slice(M));if(v){if(a&&p.includes(d)){let D=M+v[0].lastIndexOf("default");c.push({file:u.relative_path,line:R,column:D}),h.add(D),m+=1}M+=v[0].length-1;continue}let C=S[M];if(C==="{"){let D=s.test(S.slice(0,M));d+=1,D&&p.push(d);continue}if(C==="}")for(d=Math.max(0,d-1);p.length>0&&p[p.length-1]>d;)p.pop()}for($r.lastIndex=0;P=$r.exec(S);){let M=P.index+9;if(!h.has(M))return null}}if(m===0)return null}return We(c)}function Ts(n,e){return n.get("SELECT 1 AS present FROM mentions WHERE symbol_id = ? AND role = 1 LIMIT 1",e)?.present===1}function ws(n){let e=/impl#\[([^\]]+)\]\[Default\]default\(\)\./.exec(n)?.[1]??null;return!e||!xs.test(e)?null:e}function ks(n,e,t){if(t.has(e))return t.get(e)??null;let r=n.get("SELECT text FROM documents WHERE relative_path = ?",e),i=typeof r?.text=="string"?r.text:Ps(n,e);return t.set(e,i),i}function Ps(n,e){try{return bt(n.config.projectRoot,e,{inputKind:"indexed Rust source file"})}catch(t){if(!fe(t))throw t;return null}}function Jr(n){let e=new Map;for(let t of n){let r=e.get(t.relativePath)??[];r.push(t),e.set(t.relativePath,r)}return e}var tn=new WeakMap;function Du(n){tn.delete(n)}function xu(n){let e=tn.get(n);return{incompleteSymbolIds:new Set(e?.incompleteSymbolIds),unavailableSymbolIds:new Set(e?.unavailableSymbolIds)}}function tt(n,e){if(e.incompleteSymbolIds.size===0&&e.unavailableSymbolIds.size===0)return;let t=tn.get(n)??{incompleteSymbolIds:new Set,unavailableSymbolIds:new Set};for(let r of e.incompleteSymbolIds)t.incompleteSymbolIds.add(r);for(let r of e.unavailableSymbolIds)t.unavailableSymbolIds.add(r);tn.set(n,t)}var Es="typescript-import-usage-v1",As="typescript-signatures-v1",et=ut("semantic-prefetched-callees",{clearGroups:["whole-project","source-file","semantic-provider"]}),Gr=fn({kind:"semantic-import-usage",invalidation:ue("semantic-import-usage"),serialize:n=>JSON.stringify(n),deserialize:ai}),Qr=fn({kind:"semantic-signatures",invalidation:ue("semantic-signatures"),serialize:n=>JSON.stringify(n),deserialize:js}),Xr=un({kind:"typescript-import-usage",invalidation:ue("typescript-import-usage"),serialize:n=>JSON.stringify(n),deserialize:ai}),Zr=un({kind:"typescript-signatures",invalidation:ue("typescript-signatures"),serialize:n=>JSON.stringify(n),deserialize:Ws});function rt(n){let e=new Map,t=new Set;return{capability:(r,i)=>ci(n,r,i),importUsage:r=>Ns(n,r),references:r=>ni(n,r),materializeReferences:(r,i)=>ti(n,r,e,t,i),callerMap:r=>Ls(n,r,e,t),calleeMap:r=>oi(n,r),signature:r=>Bs(n,r)}}function Fs(n,e){if(e.size===0)return;let t=et.get(n,()=>new Map);for(let[r,i]of e)t.set(r,[...i])}function Cu(n,e){if(!et.has(n))return{hits:[],misses:[...e]};let t=et.get(n,()=>new Map),r=[],i=[];for(let o of e)t.has(o.symbolId)?r.push({definition:o,callees:t.get(o.symbolId)??[]}):i.push(o);return{hits:r,misses:i}}function Tu(n,e){return rt(n).importUsage(e)}function Ns(n,e){if(L(e)==="typescript"){let o="fallback",s=0,a=0,c=0,u=0;return k("typescript.import-usage.materialize",()=>{let f=pn(n,e,Es);if(f?.key){s=1;let d=Xr.read(n,e,f.key);if(d)return o="hit",a=1,d;c=1;let p=W(n,e);if(!p)return o="unavailable",[];let m=p.importUsage(e);return Xr.write(n,e,f.key,m),o="computed",m}u=1;let l=W(n,e);return l?(o="direct-fallback",l.importUsage(e)):(o="unavailable",[])},()=>({state:o,eligible:s,cacheHits:a,cacheMisses:c,fallbacks:u}))}let t=si(n,"semantic-import-usage",e);if(t){let o=Gr.read(n,e,t);if(o)return o}let r=W(n,e);if(!r)return[];let i=r.importUsage(e);return t&&Gr.write(n,e,t,i),i}function wu(n,e){return rt(n).references(e)}function ni(n,e){let t=Zn(n,e);if(t)return t;let r=Ut(n,e);if(r)return r;let i=W(n,e.relativePath);return i?i.referencesFor(e):[]}function ku(n,e){let t=_s(n,e),r=t.incompleteSymbolIds.size+t.unavailableSymbolIds.size;if(r>0)throw new Error(`Exact semantic caller evidence is incomplete for ${r} definition(s).`);return t.callers}function _s(n,e,t=r=>Q(n,r)){let r=new Map,i=new Set,o=new Set,s=new Map;for(let c of e){let u=L(c.relativePath);if(!u)continue;let f;try{f=t(c.relativePath)}catch{o.add(c.symbolId);continue}if(!f.availability().available){o.add(c.symbolId);continue}if(u==="typescript"){let l=s.get(f)??[];l.push(c),s.set(f,l);continue}nt(n,r,c,ni(n,c))}for(let[c,u]of s){let f=yn(n,u,t),l=f?.references??(c.referencesForDefinitions?c.referencesForDefinitions(u,{exact:!0}):new Map(u.map(d=>[d.symbolId,c.referencesFor(d)])));!f&&_()&&mn(n,u,l,t);for(let d of u){if(!l.has(d.symbolId)){i.add(d.symbolId);continue}nt(n,r,d,l.get(d.symbolId)??[])}}let a={callers:r,incompleteSymbolIds:i,unavailableSymbolIds:o};return tt(n,a),a}function Ls(n,e,t=new Map,r=new Set){let i=new Map,o=ti(n,e,t,r),s=0;return k("semantic.callers.from-references",()=>{for(let a of e)s+=nt(n,i,a,t.get(a.symbolId)??[])},()=>({definitions:e.length,materialized:o.definitions,inMemoryHits:o.inMemoryHits,incompleteInMemoryHits:o.incompleteInMemoryHits,resultRows:i.size,callerFiles:s})),i}function ti(n,e,t,r,i={}){let o=cn(n),s=[],a=[],c=[],u=0,f=0,l=0,d=0,p=0,m=0,R=0,I=0,S=0,h=0,P=0,M=0,v=[],C=new Map,D=e.filter(y=>L(y.relativePath)==="typescript"&&!t.has(y.symbolId)&&!r.has(y.symbolId)),b=yn(n,D,y=>Q(n,y));if(b){S=D.length,h=b.cacheHits,P=b.cacheMisses,M=b.computedFiles;for(let y of D)t.set(y.symbolId,b.references.get(y.symbolId)??[])}if(k("semantic.references.cache-scan",()=>{for(let[y,g]of Jr(e)){let T=[];for(let w of g)t.has(w.symbolId)?f+=1:r.has(w.symbolId)?I+=1:T.push(w);if(T.length===0){R+=1;continue}let j=Os(n,o,y);if(!j){for(let w of T)L(w.relativePath)||(u+=1),c.push(w);continue}m+=1;let F=ft(n,y,j);for(let w of T){let O=F.get(w.symbol)??null;if(O!==null){let E=Us(O);if(E){l+=1,t.set(w.symbolId,E);continue}d+=1}a.push({definition:w,cacheFingerprint:j})}}},()=>({definitions:e.length,skippedUnsupportedLanguage:u,cacheHits:l,parseFailures:d,misses:a.length,unkeyed:c.length,inMemoryHits:f,incompleteInMemoryHits:I,fullyInMemoryFiles:R,cacheReadFiles:m})),a.length>0||c.length>0){v=[...c,...a.map(y=>y.definition)],C=k("semantic.references.compute-misses",()=>{let y=ri(n,v,i);return p=y.size,y},()=>({definitions:v.length,misses:a.length,unkeyed:c.length,rows:p}));for(let y of v)C.has(y.symbolId)?(t.set(y.symbolId,C.get(y.symbolId)??[]),r.delete(y.symbolId)):r.add(y.symbolId);for(let{definition:y,cacheFingerprint:g}of a)C.has(y.symbolId)&&ci(n,"semantic-references",y.relativePath).available&&s.push({relativePath:y.relativePath,symbol:y.symbol,projectFingerprint:g,payload:JSON.stringify(C.get(y.symbolId)??[])})}return s.length>0&&k("semantic.references.cache-write",()=>dt(n,s),()=>({entries:s.length})),C.size>0&&mn(n,v,C,y=>Q(n,y)),{definitions:e.length,inMemoryHits:f,incompleteInMemoryHits:I,cacheHits:l,misses:a.length,unkeyed:c.length,skippedUnsupportedLanguage:u,parseFailures:d,computed:p,incomplete:r.size,cacheWrites:s.length,fragmentDefinitions:S,fragmentCacheHits:h,fragmentCacheMisses:P,fragmentComputedFiles:M}}function Os(n,e,t){if(!e)return null;let r=L(t);return r==="typescript"?Pe(JSON.stringify({kind:"semantic-references",language:r,schema:"typescript-references-v2-incomplete-scan",projectFingerprint:e})):r==="rust"?Pe(JSON.stringify({kind:"semantic-references",language:r,engine:hn(n.config.projectRoot),projectFingerprint:e})):null}function ri(n,e,t={}){let r=_(),i=new Map,o=0,s=0,a=0,c=0,u=0,f=0,l=0,d=0,p=0;return k("semantic.references.provider-loop",()=>{let m=Yr(n,e),R=Ot(n,e),I=new Map,S=t.prefetchCallees?new Map:null,h=[];for(let M of e){let v,C=()=>(v??=W(n,M.relativePath),v);if(S){let g=C();if(g?.referencesAndCalleesForDefinitions){let T=S.get(g);T?T.push(M):S.set(g,[M]),p+=1}}let D=m.get(M.symbolId);if(D){a+=1,c+=D.length,ve(i,M.symbolId,D,r,g=>{l+=1,d+=g});continue}let b=R.get(M.symbolId);if(b){u+=1,f+=b.length,ve(i,M.symbolId,b,r,g=>{l+=1,d+=g});continue}let y=C();if(!y){r&&(s+=1);continue}if(r&&(o+=1),y.referencesForDefinitions){let g=I.get(y);g?g.push(M):I.set(y,[M])}else h.push({provider:y,definition:M})}let P=new Set;if(S)for(let[M,v]of S){if(!M.referencesAndCalleesForDefinitions)continue;let C=I.get(M)??[],D=M.referencesAndCalleesForDefinitions(C,v);P.add(M),Fs(n,D.callees);for(let b of C){if(!D.references.has(b.symbolId))continue;let y=D.references.get(b.symbolId)??[];ve(i,b.symbolId,y,r,g=>{l+=1,d+=g})}}for(let[M,v]of I){if(P.has(M))continue;let C=M.referencesForDefinitions(v);for(let D of v){if(!C.has(D.symbolId))continue;let b=C.get(D.symbolId)??[];ve(i,D.symbolId,b,r,y=>{l+=1,d+=y})}}for(let{provider:M,definition:v}of h){let C=M.referencesFor(v);ve(i,v.symbolId,C,r,D=>{l+=1,d+=D})}return i},()=>({definitions:e.length,providerHits:o,providerMisses:s,rustDefaultFastPathRows:a,rustDefaultFastPathReferences:c,rustScipOccurrenceFastPathRows:u,rustScipOccurrenceFastPathReferences:f,prefetchCalleeDefinitions:p,definitionsWithReferences:l,referenceCount:d,rows:i.size}))}function Pu(n,e,t={}){let r=ri(n,e,t),i=ii(n,e,r);return tt(n,i),{rows:r,...i}}function ve(n,e,t,r,i){n.set(e,t),r&&t.length>0&&i(t.length)}function nt(n,e,t,r){let i=0;for(let o of r){if(o.file===t.relativePath||n.isIgnored(o.file))continue;let s=e.get(t.symbolId);s||(s=new Set,e.set(t.symbolId,s));let a=s.size;s.add(o.file),s.size!==a&&(i+=1)}return i}function Us(n){try{return JSON.parse(n)}catch{return null}}function Eu(n,e,t){let r=oi(n,e,t),i=ii(n,e,r,t);return tt(n,i),{rows:r,...i}}function ii(n,e,t,r){let i=new Set,o=new Set;for(let s of e)if(!(t.has(s.symbolId)||!L(s.relativePath)))try{(r?r(s.relativePath):Q(n,s.relativePath)).availability().available?i.add(s.symbolId):o.add(s.symbolId)}catch{o.add(s.symbolId)}return{incompleteSymbolIds:i,unavailableSymbolIds:o}}function oi(n,e,t){let r=_(),i=new Map,o=0,s=0,a=0,c=0;return k("semantic.callees.provider-loop",()=>{let u=new Map,f=[];for(let l of e){let d=t?t(l.relativePath):W(n,l.relativePath);if(d&&!d.availability().available){r&&(s+=1);continue}if(!d){r&&(s+=1);continue}r&&(o+=1);let p=l;if(d.calleesForDefinitions){let m=u.get(d);m?m.push(p):u.set(d,[p])}else f.push({provider:d,definition:p})}for(let[l,d]of u){let p=l.calleesForDefinitions(d);for(let m of d){if(!p.has(m.symbolId))continue;let R=p.get(m.symbolId)??[];ei(i,m.symbolId,R,r,I=>{a+=1,c+=I})}}for(let{provider:l,definition:d}of f){let p=l.calleesFor(d);ei(i,d.symbolId,p,r,m=>{a+=1,c+=m})}return i},()=>({definitions:e.length,providerHits:o,providerMisses:s,definitionsWithCallees:a,calleeCount:c,rows:i.size}))}function ei(n,e,t,r,i){n.set(e,t),r&&t.length>0&&i(t.length)}function Au(n,e){return rt(n).signature(e)}function Bs(n,e){if(L(e.relativePath)==="typescript"){let s="fallback",a=0,c=0,u=0,f=0;return k("typescript.signature.materialize",()=>{let l=pn(n,e.relativePath,As);if(l?.key){a=1;let p=Zr.read(n,e.relativePath,l.key)??{};if(Object.prototype.hasOwnProperty.call(p,e.symbol))return s="hit",c=1,p[e.symbol]??null;u=1;let m=W(n,e.relativePath);if(!m)return s="unavailable",null;let R=m.signatureFor(e);return Zr.write(n,e.relativePath,l.key,{...p,[e.symbol]:R}),s="computed",R}f=1;let d=W(n,e.relativePath);return d?(s="direct-fallback",d.signatureFor(e)):(s="unavailable",null)},()=>({state:s,eligible:a,cacheHits:c,cacheMisses:u,fallbacks:f}))}let t=si(n,"semantic-signatures",e.relativePath),r=qs(e);if(t){let s=Qr.read(n,r,t);if(s)return s.signature}let i=W(n,e.relativePath);if(!i)return null;let o=i.signatureFor(e);return t&&Qr.write(n,r,t,{signature:o}),o}function si(n,e,t){let r=cn(n);if(!r)return null;let i=L(t);return i!=="rust"?null:Pe(JSON.stringify({kind:e,language:i,engine:hn(n.config.projectRoot),projectFingerprint:r}))}function qs(n){return`${n.relativePath}\0${n.symbol}`}function ai(n){try{let e=JSON.parse(n);return Array.isArray(e)?e:null}catch{return null}}function js(n){try{let e=JSON.parse(n);if(!e||typeof e!="object")return null;let t=e.signature;return t!==null&&typeof t!="string"?null:{signature:t}}catch{return null}}function Ws(n){try{let e=JSON.parse(n);if(!e||typeof e!="object"||Array.isArray(e))return null;for(let t of Object.values(e))if(t!==null&&typeof t!="string")return null;return e}catch{return null}}function ci(n,e,t){let r=L(t);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,...Q(n,t).availability()}}catch(i){return{slot:e,language:r,available:!1,reason:i instanceof Error?i.message:String(i)}}}function W(n,e){if(!L(e))return null;let t=Q(n,e);return t.availability().available?t:null}export{Jr as a,hn as b,L as c,Du as d,xu as e,rt as f,Cu as g,Tu as h,wu as i,ku as j,_s as k,ri as l,Pu as m,Eu as n,Au as o};
3
- //# sourceMappingURL=chunk-6CS3UQTN.js.map
3
+ //# sourceMappingURL=chunk-VCL7FK3E.js.map
@@ -1,4 +1,4 @@
1
- import{b as a}from"./chunk-GTXSJDCO.js";import{c as l}from"./chunk-7FND7D7N.js";import{d as o,g as i}from"./chunk-FETNQCFO.js";function _(e,t){let r=a(e,t);return r.length===0?[]:u([...c(e,r),...f(e,r)]).filter(s=>!e.isIgnored(s.relative_path)).map(d)}function R(e,t){let r=a(e,t);return r.length===0?[]:u(c(e,r)).filter(s=>!e.isIgnored(s.relative_path)).map(s=>({...d(s),basis:"external-reference"}))}function c(e,t){let r=t.map(()=>"?").join(", ");return e.all(`SELECT DISTINCT d1.relative_path, gs.symbol
1
+ import{b as a}from"./chunk-HIEXRDJF.js";import{c as l}from"./chunk-NK76RSB6.js";import{d as o,g as i}from"./chunk-AM5SUGHF.js";function _(e,t){let r=a(e,t);return r.length===0?[]:u([...c(e,r),...f(e,r)]).filter(s=>!e.isIgnored(s.relative_path)).map(d)}function R(e,t){let r=a(e,t);return r.length===0?[]:u(c(e,r)).filter(s=>!e.isIgnored(s.relative_path)).map(s=>({...d(s),basis:"external-reference"}))}function c(e,t){let r=t.map(()=>"?").join(", ");return e.all(`SELECT DISTINCT d1.relative_path, gs.symbol
2
2
  FROM mentions m
3
3
  JOIN chunks c ON m.chunk_id = c.id
4
4
  JOIN documents d1 ON c.document_id = d1.id
@@ -26,4 +26,4 @@ import{b as a}from"./chunk-GTXSJDCO.js";import{c as l}from"./chunk-7FND7D7N.js";
26
26
  AND ${e.localSymbolPredicate}
27
27
  ${e.pathExclusionsFor("d1")}
28
28
  ORDER BY d1.relative_path`,...t,...t,...t)}function f(e,t){let r=new l(e);return t.flatMap(s=>r.definitionsForFile(s).filter(n=>i(n.symbol)).map(n=>({relative_path:s,symbol:n.symbol})))}function u(e){let t=new Set;return e.filter(r=>{let s=`${r.relative_path}|${r.symbol}`;return t.has(s)?!1:(t.add(s),!0)})}function d(e){return{consumer:e.relative_path,symbol:e.symbol,shortName:o(e.symbol)}}export{_ as a,R as b};
29
- //# sourceMappingURL=chunk-N3IQCBCF.js.map
29
+ //# sourceMappingURL=chunk-VCWAJPXQ.js.map
@@ -1,2 +1,2 @@
1
- import{c as a}from"./chunk-B75HZHUP.js";import{a as m}from"./chunk-JOIRNPPY.js";import{a as b,c as S}from"./chunk-J77SU6VA.js";import{o as y}from"./chunk-CVYSU6BX.js";import{a as f}from"./chunk-UZGZB3VB.js";import{d as r}from"./chunk-FETNQCFO.js";function u(o,l,t={}){let i=f(o,l);if(!i)return null;let g=[{file:i.relativePath,line:i.startLine}],s=y(o,i,{semantic:t.semantic,semanticEvidence:m}).map(e=>({file:e.file,line:e.line,enclosingSymbol:e.enclosingSymbol??"(top-level)",enclosingShort:e.enclosingSymbol?r(e.enclosingSymbol):"(top-level)"})),{outgoingCalls:c,incomingCalls:n}=h(o,i,s,{semantic:t.semantic!==!1});return{symbol:i.symbol,shortName:r(i.symbol),relativePath:i.relativePath,definitionSites:g.filter(e=>!o.isIgnored(e.file)),referenceSites:s,outgoingCalls:c.filter(e=>!o.isIgnored(e.file)).map(e=>({symbol:e.symbol,shortName:r(e.symbol),file:e.file})),incomingCalls:n.filter(e=>!o.isIgnored(e.file)).map(e=>({symbol:e.symbol,shortName:e.symbol===e.file?"(top-level)":r(e.symbol),file:e.file}))}}function A(o,l,t={}){let i=u(o,l,t);return i?{symbol:i.symbol,shortName:i.shortName,relativePath:i.relativePath,definitionSites:i.definitionSites,usageSites:i.referenceSites,producers:i.outgoingCalls,consumers:i.incomingCalls}:null}function h(o,l,t,i){let g=a(b(o,l,{limit:30,semantic:i.semantic,semanticEvidence:m}).map(n=>({symbol:n.symbol,file:n.file}))),s=a(S(o,l,{limit:30,semantic:i.semantic,semanticEvidence:m})),c=s.length>0?s:a(t.map(n=>({symbol:n.enclosingSymbol==="(top-level)"?n.file:n.enclosingSymbol,file:n.file})));return{outgoingCalls:g,incomingCalls:c}}export{u as a,A as b};
2
- //# sourceMappingURL=chunk-LZYFLFEH.js.map
1
+ import{c as a}from"./chunk-B75HZHUP.js";import{a as m}from"./chunk-OJFLPVBP.js";import{a as b,c as S}from"./chunk-57KEZDPT.js";import{o as y}from"./chunk-BH5CE4LN.js";import{a as f}from"./chunk-3XFJUWJE.js";import{d as r}from"./chunk-AM5SUGHF.js";function u(o,l,t={}){let i=f(o,l);if(!i)return null;let g=[{file:i.relativePath,line:i.startLine}],s=y(o,i,{semantic:t.semantic,semanticEvidence:m}).map(e=>({file:e.file,line:e.line,enclosingSymbol:e.enclosingSymbol??"(top-level)",enclosingShort:e.enclosingSymbol?r(e.enclosingSymbol):"(top-level)"})),{outgoingCalls:c,incomingCalls:n}=h(o,i,s,{semantic:t.semantic!==!1});return{symbol:i.symbol,shortName:r(i.symbol),relativePath:i.relativePath,definitionSites:g.filter(e=>!o.isIgnored(e.file)),referenceSites:s,outgoingCalls:c.filter(e=>!o.isIgnored(e.file)).map(e=>({symbol:e.symbol,shortName:r(e.symbol),file:e.file})),incomingCalls:n.filter(e=>!o.isIgnored(e.file)).map(e=>({symbol:e.symbol,shortName:e.symbol===e.file?"(top-level)":r(e.symbol),file:e.file}))}}function A(o,l,t={}){let i=u(o,l,t);return i?{symbol:i.symbol,shortName:i.shortName,relativePath:i.relativePath,definitionSites:i.definitionSites,usageSites:i.referenceSites,producers:i.outgoingCalls,consumers:i.incomingCalls}:null}function h(o,l,t,i){let g=a(b(o,l,{limit:30,semantic:i.semantic,semanticEvidence:m}).map(n=>({symbol:n.symbol,file:n.file}))),s=a(S(o,l,{limit:30,semantic:i.semantic,semanticEvidence:m})),c=s.length>0?s:a(t.map(n=>({symbol:n.enclosingSymbol==="(top-level)"?n.file:n.enclosingSymbol,file:n.file})));return{outgoingCalls:g,incomingCalls:c}}export{u as a,A as b};
2
+ //# sourceMappingURL=chunk-VG55NFXF.js.map
@@ -1,6 +1,6 @@
1
- import{a as x}from"./chunk-YSNONTJ2.js";import{C as b}from"./chunk-ADTBPVUZ.js";import{v as p}from"./chunk-BMYOV5GP.js";var y=new Set(["call","call_expression","command","command_call","function_call_expression","invocation_expression","macro_invocation","method_call","method_invocation","new_expression","object_creation_expression"]);function h(e,t,n,r){if(!Number.isSafeInteger(n)||n<0)return null;if(!Number.isSafeInteger(r)||r<0)throw new RangeError(`contextLines must be a non-negative safe integer; received ${r}`);let i=p(e,t);if(i.length===0||n>=i.length)return null;let o=Math.max(0,n-r),c=Math.min(i.length-1,n+r);return{relativePath:t,startLine:o,endLine:c,focusLine:n,source:i.slice(o,c+1).join(`
1
+ import{a as x}from"./chunk-KDYQQJ6X.js";import{C as b}from"./chunk-RVYLJDXC.js";import{x as p}from"./chunk-PLZXWZHY.js";var y=new Set(["call","call_expression","command","command_call","function_call_expression","invocation_expression","macro_invocation","method_call","method_invocation","new_expression","object_creation_expression"]);function h(e,t,n,r){if(!Number.isSafeInteger(n)||n<0)return null;if(!Number.isSafeInteger(r)||r<0)throw new RangeError(`contextLines must be a non-negative safe integer; received ${r}`);let i=p(e,t);if(i.length===0||n>=i.length)return null;let o=Math.max(0,n-r),c=Math.min(i.length-1,n+r);return{relativePath:t,startLine:o,endLine:c,focusLine:n,source:i.slice(o,c+1).join(`
2
2
  `)}}function F(e,t,n,r,i){let o=h(e,t,n,r);if(!o)return null;let c=b(e,t)?.rootNode??null;if(!c)return{...o,kind:"bounded-context"};let s=_(c,n,i);if(s.length!==1)return{...o,kind:s.length===0?"non-call-reference":"bounded-context"};let l=s[0],a=p(e,t),u=Math.max(0,l.startPosition.row),S=l.endPosition.column===0?l.endPosition.row-1:l.endPosition.row,d=Math.min(a.length-1,Math.max(u,S));return{relativePath:t,startLine:u,endLine:d,focusLine:n,source:a.slice(u,d+1).join(`
3
3
  `),kind:"complete-call-expression"}}function L(e,t,n,r,i){if(!Number.isSafeInteger(i)||i<=0)throw new RangeError(`maxLines must be a positive safe integer; received ${i}`);let o=p(e,t);if(o.length===0||n<0||n>=o.length)return null;let c=Math.min(o.length-1,r,n+i-1);return{relativePath:t,startLine:n,endLine:c,focusLine:n,source:o.slice(n,c+1).join(`
4
4
  `)}}function k(e,t,n,r,i=6){if(!Number.isSafeInteger(r)||r<=0)throw new RangeError(`maxLines must be a positive safe integer; received ${r}`);let o=p(e,t);if(o.length===0||n<0||n>=o.length)return null;let c=x(e,t,n);if(!c){let m=h(e,t,n,i);return m?{...m,unitType:null,unitStartLine:m.startLine,unitEndLine:m.endLine,omittedLines:0}:null}let s=c.startLine,l=c.endLine,a=l-s+1,u=Math.min(a,r),S=n-s-Math.floor(u/2),d=Math.max(0,Math.min(a-u,S)),f=s+d,g=f+u-1;return{relativePath:t,startLine:f,endLine:g,focusLine:n,source:o.slice(f,g+1).join(`
5
5
  `),unitType:c.type,unitStartLine:s,unitEndLine:l,omittedLines:a-u}}function _(e,t,n){let r=[];return N(e,t,n,r),r.filter(i=>!r.some(o=>o!==i&&o.startIndex>=i.startIndex&&o.endIndex<=i.endIndex))}function N(e,t,n,r){if(M(e,t)){y.has(e.type)&&w(e)===n&&r.push(e);for(let i of e.namedChildren)N(i,t,n,r)}}function w(e){let t=e.childForFieldName("function")??e.childForFieldName("constructor")??e.childForFieldName("method")??e.childForFieldName("name")??e.namedChild(0);return t?t.text.match(/[\p{L}_$][\p{L}\p{N}_$!?-]*/gu)?.at(-1)??null:null}function M(e,t){return e.startPosition.row<=t&&e.endPosition.row>=t}export{h as a,F as b,L as c,k as d};
6
- //# sourceMappingURL=chunk-PTAWHLVJ.js.map
6
+ //# sourceMappingURL=chunk-VLTUX4IF.js.map
@@ -1,4 +1,4 @@
1
- import{a as me}from"./chunk-TIIC3ZE7.js";import{f as G}from"./chunk-O6QTXQPJ.js";import{C as D}from"./chunk-ADTBPVUZ.js";import{v as W}from"./chunk-BMYOV5GP.js";var Fe=12,Ee=20,re=200,oe=800,Re=.9,ye={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"],be=[...Z,"lifecycle"],Se=["loop","await","throw","mutation","spread","catch","finally","lifecycle"],Pe=new Set(["onBeforeMount","onBeforeUnmount","onMounted","onUnmounted","useEffect","useInsertionEffect","useLayoutEffect"]);var ge=new Set(["object","object_pattern","dictionary","field_declaration_list","struct_expression","struct_pattern"]);function at(e,n,t,r,o=[],a={}){let s=D(e,n);if(!s)return null;let f=W(e,n),c=Ce(e,n,t,r,o),u=te(e,n,c.startLine,c.endLine),p=u?.startLine??t,d=u?.endLine??r,b=(u?I(s.rootNode,c.startLine,c.endLine):null)??K(s.rootNode,p,d);if(!b)return null;let m=xe(b,f,p,d,o);if(!m||m.lines.length===0||m.lines.some(S=>S.text.length>oe))return null;let g=Xe(f,p,d),F=Ve(m);if((a.requireSavings??!0)&&F>=g*Re)return null;let N=Z.filter(S=>m.lines.some(v=>v.signals.includes(S)));return{...u?{callable:{name:u.name,startLine:u.startLine,endLine:u.endLine}}:{},representation:"outline",constructKind:m.constructKind,signature:m.signature,lines:m.lines,signals:N,testCases:me(n)==="test"?tt(f,p,d):[],coverage:{sourceStatements:m.sourceStatements,representedStatements:m.sourceStatements,copiedStatements:m.copiedStatements,omittedStatements:0},rawCharacters:g,outlineCharacters:F,candidateLines:m.sourceStatements,omittedLines:0}}function st(e,n,t,r,o){if(o.length===0)return[];let a=D(e,n);if(!a)return[];let s=W(e,n),f=Ce(e,n,t,r,o),c=te(e,n,f.startLine,f.endLine),u=c?.startLine??t,p=c?.endLine??r,d=(c?I(a.rootNode,f.startLine,f.endLine):null)??K(a.rootNode,u,p);if(!d)return[];let b=xe(d,s,u,p,o);return b?b.lines.filter(m=>m.text.length<=oe&&m.signals.some(g=>["branch","loop","catch","finally"].includes(g))&&o.some(g=>g>=m.line&&g<=m.endLine)):[]}function ct(e,n,t,r){let o=D(e,n);if(!o)return null;let a=I(o.rootNode,t,r)??K(o.rootNode,t,r);if(!a)return null;let s=[],f=ae(a),c=[];return se(a,a,u=>{if(k.has(u.type)||Te.has(u.type)){Oe(s,c,u);return}if(ee.has(u.type)){De(s,c,u);return}if(z.has(u.type)){Ie(s,c,u);return}j.has(u.type)&&Me(s,u)}),{facts:ze(s),terminals:ve(f),unsupported:c}}function Ce(e,n,t,r,o=[]){let a=o.filter(d=>d>=t&&d<=r),s=D(e,n);if(a.length>0&&s){let d=[];A(s.rootNode,m=>{je(m)&&m.startPosition.row>=t&&m.endPosition.row<=r&&a.every(g=>m.startPosition.row<=g&&m.endPosition.row>=g)&&d.push(m)});let b=d.sort((m,g)=>m.endPosition.row-m.startPosition.row-(g.endPosition.row-g.startPosition.row)||m.startPosition.row-g.startPosition.row)[0];if(b)return{startLine:b.startPosition.row,endLine:b.endPosition.row}}let f=te(e,n,t,r);if(f)return{startLine:f.startLine,endLine:f.endLine};if(a.length===0)return{startLine:t,endLine:r};let c=(G(e,n)?.callables??[]).filter(d=>d.startLine>=t&&d.endLine<=r&&a.every(b=>d.startLine<=b&&d.endLine>=b)).sort((d,b)=>d.endLine-d.startLine-(b.endLine-b.startLine)||d.startLine-b.startLine)[0];if(!s)return c?{startLine:c.startLine,endLine:c.endLine}:{startLine:t,endLine:r};let u=[];A(s.rootNode,d=>{P.has(d.type)&&d.startPosition.row>=t&&d.endPosition.row<=r&&a.every(b=>d.startPosition.row<=b&&d.endPosition.row>=b)&&u.push(d)});let p=u.sort((d,b)=>d.endPosition.row-d.startPosition.row-(b.endPosition.row-b.startPosition.row)||d.startPosition.row-b.startPosition.row)[0];return p?{startLine:p.startPosition.row,endLine:p.endPosition.row}:c?{startLine:c.startLine,endLine:c.endLine}:{startLine:t,endLine:r}}function lt(e,n,t,r,o={}){if(r-t+1<(o.minimumBodyLines??Ee))return null;let s=Le(e,n,t,r,[],!1);if(!s)return null;let f=s.candidates.map(S=>({...S,signals:S.signals.filter(v=>v!=="anchor"&&v!=="signature")})).filter(S=>S.signals.length>0);if(f.length===0)return null;let c=Ze(f),u=f.filter(S=>S.text.length<=re);if(u.length===0)return null;let p=Se.filter(S=>(c[S]??0)>0),d=p.filter(S=>S!=="await"),b=s.shapes.reduce((S,v)=>S+v.fields.length,0);if(d.length===0&&!((c.await??0)>0&&b>0)&&b<3)return null;let m=et(u,c),g=new Map;for(let S of p){let v=m.find(h=>h.signals.includes(S));v&&g.set(v.line,v)}if(g.size===0){let S=m.find(v=>v.signals.includes("branch"));S&&g.set(S.line,S)}let F=Math.min(10,Math.max(1,o.maxLines??g.size)),N=new Map;for(let S of g.values()){if(N.size>=F)break;N.set(S.line,S)}return N.size>=f.length&&s.shapes.length===0?null:{owner:s.callable?.name??null,startLine:t,endLine:r,lines:[...N.values()].sort((S,v)=>S.line-v.line),shapes:s.shapes,signalCounts:c,candidateLines:f.length,omittedLines:f.length-N.size}}function ut(e,n,t,r){let o=Le(e,n,t,r,[],!1);return o?new Map(o.candidates.map(a=>[a.line,a.signals.filter(s=>s!=="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"]),L=new Set(["block","body","compound_statement","declaration_list","statement_block"]),k=new Set(["if_expression","if_statement","unless","unless_statement"]),Te=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"]),_e=new Set(["case_statement","match_arm","switch_case","switch_default"]),j=new Set(["try_expression","try_statement"]),V=new Set(["catch_clause","except_clause","rescue"]),$=new Set(["ensure","finally_clause"]),Y=new Set(["else","else_clause"]),Ne=new Set(["raise_statement","return_statement","throw_statement"]),Ae=new Set(["block_comment","comment","line_comment"]);function Oe(e,n,t){let r=t.childForFieldName("condition")??le(t),o=t.childForFieldName("consequence")??t.childForFieldName("body")??t.namedChildren.find(c=>L.has(c.type)),a=t.childForFieldName("alternative")??t.namedChildren.find(c=>Y.has(c.type));if(!r||!o){n.push(ce(t,"conditional-fields-unresolved"));return}let s=R(r,"predicate",r.text),f=R(o,pe(o),"consequence");if(E(e,s,f,"predicate-consequence",{branchRole:"consequence"}),J(e,s,o,"consequence"),a){let c=R(a,pe(a),"alternative");E(e,s,c,"predicate-alternative",{branchRole:"alternative"}),J(e,s,a,"alternative");return}E(e,s,ie(s,"otherwise continue"),"predicate-fallthrough",{branchRole:"fallthrough"})}function De(e,n,t){let r=t.childForFieldName("body")??t.namedChildren.find(s=>L.has(s.type));if(!r){n.push(ce(t,"loop-body-unresolved"));return}let o=t.childForFieldName("condition"),a=R(o??t,"predicate",o?.text??B(t,r));E(e,a,R(r,"outcome","iteration"),"loop-iteration",{branchRole:"iteration"}),J(e,a,r,"iteration"),E(e,a,ie(a,"loop exits"),"loop-exit",{branchRole:"exit"})}function Ie(e,n,t){let r=t.childForFieldName("body")??t.namedChildren.find(c=>L.has(c.type)),o=t.childForFieldName("value")??t.childForFieldName("condition")??t.childForFieldName("subject")??le(t),a=Ye(r??t);if(!o||a.length===0){n.push(ce(t,"switch-cases-unresolved"));return}let s=R(o,"predicate",o.text),f=!1;for(let c of a){let u=qe(c);f||=u;let p=B(c,c.namedChildren.find(d=>Q(d)));E(e,s,R(c,"outcome",p||(u?"default":"case")),u?"predicate-default":"predicate-case",{branchRole:u?"default":"case"}),J(e,s,c,u?"default":"case")}f||E(e,s,ie(s,"no case matched"),"predicate-fallthrough",{branchRole:"fallthrough"})}function Me(e,n){let t=R(n,"scope","try");for(let r of $e(n)){let o=$.has(r.type),a=R(r,"handler",o?"finally":B(r,U(r)));E(e,t,a,o?"finally-cleanup":"exception-handler",{branchRole:o?"finally":"catch"}),ke(e,a,r,o?"finally":"catch")}}function ke(e,n,t,r){for(let o of ae(t)){let a=o.label.startsWith("throw")||o.label.startsWith("raise")?"throw":"return";E(e,n,o,a==="throw"?"handler-throw":"handler-return",{branchRole:r,terminalKind:a})}}function J(e,n,t,r){for(let o of ae(t)){let a=o.label.startsWith("throw")||o.label.startsWith("raise")?"throw":"return";E(e,n,o,a==="throw"?"predicate-throw":"predicate-return",{branchRole:r,terminalKind:a})}}function E(e,n,t,r,o){e.push({controller:n,outcome:t,subtype:r,attributes:o})}function R(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 pe(e){return Ne.has(e.type)?"terminal":"outcome"}function ae(e){let n=[];return se(e,e,t=>{Ne.has(t.type)&&n.push(R(t,"terminal",t.text))}),ve(n)}function se(e,n,t){t(n);for(let r of n.namedChildren)r!==e&&P.has(r.type)||se(e,r,t)}function Ye(e){let n=[],t=r=>{for(let o of r.namedChildren)z.has(o.type)||(_e.has(o.type)?n.push(o):t(o))};return t(e),n}function $e(e){let n=[],t=r=>{for(let o of r.namedChildren)j.has(o.type)||(V.has(o.type)||$.has(o.type)?n.push(o):P.has(o.type)||t(o))};return t(e),n}function qe(e){let n=B(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 ze(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 ve(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 je(e){return P.has(e.type)||ee.has(e.type)||z.has(e.type)||j.has(e.type)||V.has(e.type)||$.has(e.type)}function xe(e,n,t,r,o){let s=I(e,t,r)??e,f=U(s),c=[],u=0,p=0,d=(i,l,y,C,x=!1,O=!0)=>{let H=x?y.trim():q(y);if(!H)return;let T=Math.max(t,i.startPosition.row),de=Math.min(r,i.endPosition.row);c.push({line:T,endLine:Math.max(T,de),depth:l,signals:Z.filter(he=>C.includes(he)||he==="anchor"&&o.some(fe=>fe>=T&&fe<=de)),text:H,copied:x}),O&&(u+=1,x&&(p+=1))},b=(i,l)=>{for(let y of i.namedChildren)_(y,l)},m=(i,l)=>{if(k.has(i.type)){g(i,l,"else if");return}if(Y.has(i.type)){let y=i.namedChildren.find(x=>k.has(x.type));if(y){g(y,l,"else if");return}d(i,l,"else",["branch"],!1,!1);let C=U(i)??i.namedChildren.find(x=>L.has(x.type));if(C)_(C,l+1);else for(let x of i.namedChildren)_(x,l+1);return}d(i,l,"else",["branch"],!1,!1),_(i,l+1)},g=(i,l,y=i.type.startsWith("unless")?"unless":"if")=>{let C=i.childForFieldName("condition")??le(i),x=i.childForFieldName("consequence")??i.childForFieldName("body")??i.namedChildren.find(T=>L.has(T.type)),O=i.childForFieldName("alternative")??i.namedChildren.find(T=>Y.has(T.type)),H=C?C.text:B(i,x);d(i,l,`${y} ${Ge(H)}`,M(C,["branch"])),x&&_(x,l+1),O&&m(O,l)},F=(i,l)=>{let y=i.childForFieldName("body")??i.namedChildren.find(C=>L.has(C.type));d(i,l,B(i,y),M(i,["loop"])),y&&_(y,l+1)},N=(i,l)=>{let y=i.childForFieldName("body")??i.namedChildren.find(C=>L.has(C.type));d(i,l,B(i,y),M(i,["branch"])),y&&_(y,l+1)},S=(i,l)=>{let y=i.namedChildren.find(C=>Q(C));d(i,l,B(i,y),["branch"],!1,!1);for(let C of i.namedChildren)(C===y||Q(C))&&_(C,l+1)},v=(i,l)=>{d(i,l,"try",[],!1);for(let y of i.namedChildren)L.has(y.type)?_(y,l+1):(V.has(y.type)||$.has(y.type))&&_(y,l)},h=(i,l,y)=>{let C=i.childForFieldName("body")??i.namedChildren.find(O=>L.has(O.type)),x=y==="finally"?"finally":B(i,C);d(i,l,x,[y],!1,!1),C&&_(C,l+1)},w=(i,l)=>{let y=U(i);d(i,l,B(i,y),M(i,["binding"])),y&&_(y,l+1)},_=(i,l)=>{if(i.startPosition.row>r||i.endPosition.row<t||Ae.has(i.type)||i.type==="empty_statement")return;if(L.has(i.type)){b(i,l);return}if(k.has(i.type)){g(i,l);return}if(ee.has(i.type)){F(i,l);return}if(z.has(i.type)){N(i,l);return}if(_e.has(i.type)){S(i,l);return}if(j.has(i.type)){v(i,l);return}if(V.has(i.type)){h(i,l,"catch");return}if($.has(i.type)){h(i,l,"finally");return}if(Y.has(i.type)){m(i,l);return}if(P.has(i.type)){w(i,l);return}let C=!we(i)||Ue(i);d(i,l,i.text,M(i),C)};return _(f&&f!==s?f:s,0),u===0?null:{constructKind:We(s),signature:He(s,f,n,t),lines:c,sourceStatements:u,copiedStatements:p}}function I(e,n,t){let r=e.namedChildren.filter(o=>o.startPosition.row<=n&&o.endPosition.row>=t);for(let o of r.sort(Ke)){let a=I(o,n,t);if(a)return a}return P.has(e.type)&&e.startPosition.row<=n&&e.endPosition.row>=t?e:null}function Ke(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=>L.has(n.type))??null}function He(e,n,t,r){let o=B(e,n);return o||(t[r]??e.text).trim()}function We(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=>!L.has(n.type)&&!Y.has(n.type))??null}function B(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 Ge(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&&A(e,r=>{let o=ye[r.type];o&&t.add(o),r.type==="call_expression"&&(t.add("call"),Be(r)&&t.add("shape")),ue.has(r.type)&&t.add("binding")}),Z.filter(r=>t.has(r))}function Ue(e){let n=!1;return A(e,t=>{n||!t.text.includes(`
1
+ import{a as me}from"./chunk-ZOEDRCR4.js";import{f as G}from"./chunk-JOALNFY3.js";import{C as D}from"./chunk-RVYLJDXC.js";import{x as W}from"./chunk-PLZXWZHY.js";var Fe=12,Ee=20,re=200,oe=800,Re=.9,ye={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"],be=[...Z,"lifecycle"],Se=["loop","await","throw","mutation","spread","catch","finally","lifecycle"],Pe=new Set(["onBeforeMount","onBeforeUnmount","onMounted","onUnmounted","useEffect","useInsertionEffect","useLayoutEffect"]);var ge=new Set(["object","object_pattern","dictionary","field_declaration_list","struct_expression","struct_pattern"]);function at(e,n,t,r,o=[],a={}){let s=D(e,n);if(!s)return null;let f=W(e,n),c=Ce(e,n,t,r,o),u=te(e,n,c.startLine,c.endLine),p=u?.startLine??t,d=u?.endLine??r,b=(u?I(s.rootNode,c.startLine,c.endLine):null)??K(s.rootNode,p,d);if(!b)return null;let m=xe(b,f,p,d,o);if(!m||m.lines.length===0||m.lines.some(S=>S.text.length>oe))return null;let g=Xe(f,p,d),F=Ve(m);if((a.requireSavings??!0)&&F>=g*Re)return null;let N=Z.filter(S=>m.lines.some(v=>v.signals.includes(S)));return{...u?{callable:{name:u.name,startLine:u.startLine,endLine:u.endLine}}:{},representation:"outline",constructKind:m.constructKind,signature:m.signature,lines:m.lines,signals:N,testCases:me(n)==="test"?tt(f,p,d):[],coverage:{sourceStatements:m.sourceStatements,representedStatements:m.sourceStatements,copiedStatements:m.copiedStatements,omittedStatements:0},rawCharacters:g,outlineCharacters:F,candidateLines:m.sourceStatements,omittedLines:0}}function st(e,n,t,r,o){if(o.length===0)return[];let a=D(e,n);if(!a)return[];let s=W(e,n),f=Ce(e,n,t,r,o),c=te(e,n,f.startLine,f.endLine),u=c?.startLine??t,p=c?.endLine??r,d=(c?I(a.rootNode,f.startLine,f.endLine):null)??K(a.rootNode,u,p);if(!d)return[];let b=xe(d,s,u,p,o);return b?b.lines.filter(m=>m.text.length<=oe&&m.signals.some(g=>["branch","loop","catch","finally"].includes(g))&&o.some(g=>g>=m.line&&g<=m.endLine)):[]}function ct(e,n,t,r){let o=D(e,n);if(!o)return null;let a=I(o.rootNode,t,r)??K(o.rootNode,t,r);if(!a)return null;let s=[],f=ae(a),c=[];return se(a,a,u=>{if(k.has(u.type)||Te.has(u.type)){Oe(s,c,u);return}if(ee.has(u.type)){De(s,c,u);return}if(z.has(u.type)){Ie(s,c,u);return}j.has(u.type)&&Me(s,u)}),{facts:ze(s),terminals:ve(f),unsupported:c}}function Ce(e,n,t,r,o=[]){let a=o.filter(d=>d>=t&&d<=r),s=D(e,n);if(a.length>0&&s){let d=[];A(s.rootNode,m=>{je(m)&&m.startPosition.row>=t&&m.endPosition.row<=r&&a.every(g=>m.startPosition.row<=g&&m.endPosition.row>=g)&&d.push(m)});let b=d.sort((m,g)=>m.endPosition.row-m.startPosition.row-(g.endPosition.row-g.startPosition.row)||m.startPosition.row-g.startPosition.row)[0];if(b)return{startLine:b.startPosition.row,endLine:b.endPosition.row}}let f=te(e,n,t,r);if(f)return{startLine:f.startLine,endLine:f.endLine};if(a.length===0)return{startLine:t,endLine:r};let c=(G(e,n)?.callables??[]).filter(d=>d.startLine>=t&&d.endLine<=r&&a.every(b=>d.startLine<=b&&d.endLine>=b)).sort((d,b)=>d.endLine-d.startLine-(b.endLine-b.startLine)||d.startLine-b.startLine)[0];if(!s)return c?{startLine:c.startLine,endLine:c.endLine}:{startLine:t,endLine:r};let u=[];A(s.rootNode,d=>{P.has(d.type)&&d.startPosition.row>=t&&d.endPosition.row<=r&&a.every(b=>d.startPosition.row<=b&&d.endPosition.row>=b)&&u.push(d)});let p=u.sort((d,b)=>d.endPosition.row-d.startPosition.row-(b.endPosition.row-b.startPosition.row)||d.startPosition.row-b.startPosition.row)[0];return p?{startLine:p.startPosition.row,endLine:p.endPosition.row}:c?{startLine:c.startLine,endLine:c.endLine}:{startLine:t,endLine:r}}function lt(e,n,t,r,o={}){if(r-t+1<(o.minimumBodyLines??Ee))return null;let s=Le(e,n,t,r,[],!1);if(!s)return null;let f=s.candidates.map(S=>({...S,signals:S.signals.filter(v=>v!=="anchor"&&v!=="signature")})).filter(S=>S.signals.length>0);if(f.length===0)return null;let c=Ze(f),u=f.filter(S=>S.text.length<=re);if(u.length===0)return null;let p=Se.filter(S=>(c[S]??0)>0),d=p.filter(S=>S!=="await"),b=s.shapes.reduce((S,v)=>S+v.fields.length,0);if(d.length===0&&!((c.await??0)>0&&b>0)&&b<3)return null;let m=et(u,c),g=new Map;for(let S of p){let v=m.find(h=>h.signals.includes(S));v&&g.set(v.line,v)}if(g.size===0){let S=m.find(v=>v.signals.includes("branch"));S&&g.set(S.line,S)}let F=Math.min(10,Math.max(1,o.maxLines??g.size)),N=new Map;for(let S of g.values()){if(N.size>=F)break;N.set(S.line,S)}return N.size>=f.length&&s.shapes.length===0?null:{owner:s.callable?.name??null,startLine:t,endLine:r,lines:[...N.values()].sort((S,v)=>S.line-v.line),shapes:s.shapes,signalCounts:c,candidateLines:f.length,omittedLines:f.length-N.size}}function ut(e,n,t,r){let o=Le(e,n,t,r,[],!1);return o?new Map(o.candidates.map(a=>[a.line,a.signals.filter(s=>s!=="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"]),L=new Set(["block","body","compound_statement","declaration_list","statement_block"]),k=new Set(["if_expression","if_statement","unless","unless_statement"]),Te=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"]),_e=new Set(["case_statement","match_arm","switch_case","switch_default"]),j=new Set(["try_expression","try_statement"]),V=new Set(["catch_clause","except_clause","rescue"]),$=new Set(["ensure","finally_clause"]),Y=new Set(["else","else_clause"]),Ne=new Set(["raise_statement","return_statement","throw_statement"]),Ae=new Set(["block_comment","comment","line_comment"]);function Oe(e,n,t){let r=t.childForFieldName("condition")??le(t),o=t.childForFieldName("consequence")??t.childForFieldName("body")??t.namedChildren.find(c=>L.has(c.type)),a=t.childForFieldName("alternative")??t.namedChildren.find(c=>Y.has(c.type));if(!r||!o){n.push(ce(t,"conditional-fields-unresolved"));return}let s=R(r,"predicate",r.text),f=R(o,pe(o),"consequence");if(E(e,s,f,"predicate-consequence",{branchRole:"consequence"}),J(e,s,o,"consequence"),a){let c=R(a,pe(a),"alternative");E(e,s,c,"predicate-alternative",{branchRole:"alternative"}),J(e,s,a,"alternative");return}E(e,s,ie(s,"otherwise continue"),"predicate-fallthrough",{branchRole:"fallthrough"})}function De(e,n,t){let r=t.childForFieldName("body")??t.namedChildren.find(s=>L.has(s.type));if(!r){n.push(ce(t,"loop-body-unresolved"));return}let o=t.childForFieldName("condition"),a=R(o??t,"predicate",o?.text??B(t,r));E(e,a,R(r,"outcome","iteration"),"loop-iteration",{branchRole:"iteration"}),J(e,a,r,"iteration"),E(e,a,ie(a,"loop exits"),"loop-exit",{branchRole:"exit"})}function Ie(e,n,t){let r=t.childForFieldName("body")??t.namedChildren.find(c=>L.has(c.type)),o=t.childForFieldName("value")??t.childForFieldName("condition")??t.childForFieldName("subject")??le(t),a=Ye(r??t);if(!o||a.length===0){n.push(ce(t,"switch-cases-unresolved"));return}let s=R(o,"predicate",o.text),f=!1;for(let c of a){let u=qe(c);f||=u;let p=B(c,c.namedChildren.find(d=>Q(d)));E(e,s,R(c,"outcome",p||(u?"default":"case")),u?"predicate-default":"predicate-case",{branchRole:u?"default":"case"}),J(e,s,c,u?"default":"case")}f||E(e,s,ie(s,"no case matched"),"predicate-fallthrough",{branchRole:"fallthrough"})}function Me(e,n){let t=R(n,"scope","try");for(let r of $e(n)){let o=$.has(r.type),a=R(r,"handler",o?"finally":B(r,U(r)));E(e,t,a,o?"finally-cleanup":"exception-handler",{branchRole:o?"finally":"catch"}),ke(e,a,r,o?"finally":"catch")}}function ke(e,n,t,r){for(let o of ae(t)){let a=o.label.startsWith("throw")||o.label.startsWith("raise")?"throw":"return";E(e,n,o,a==="throw"?"handler-throw":"handler-return",{branchRole:r,terminalKind:a})}}function J(e,n,t,r){for(let o of ae(t)){let a=o.label.startsWith("throw")||o.label.startsWith("raise")?"throw":"return";E(e,n,o,a==="throw"?"predicate-throw":"predicate-return",{branchRole:r,terminalKind:a})}}function E(e,n,t,r,o){e.push({controller:n,outcome:t,subtype:r,attributes:o})}function R(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 pe(e){return Ne.has(e.type)?"terminal":"outcome"}function ae(e){let n=[];return se(e,e,t=>{Ne.has(t.type)&&n.push(R(t,"terminal",t.text))}),ve(n)}function se(e,n,t){t(n);for(let r of n.namedChildren)r!==e&&P.has(r.type)||se(e,r,t)}function Ye(e){let n=[],t=r=>{for(let o of r.namedChildren)z.has(o.type)||(_e.has(o.type)?n.push(o):t(o))};return t(e),n}function $e(e){let n=[],t=r=>{for(let o of r.namedChildren)j.has(o.type)||(V.has(o.type)||$.has(o.type)?n.push(o):P.has(o.type)||t(o))};return t(e),n}function qe(e){let n=B(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 ze(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 ve(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 je(e){return P.has(e.type)||ee.has(e.type)||z.has(e.type)||j.has(e.type)||V.has(e.type)||$.has(e.type)}function xe(e,n,t,r,o){let s=I(e,t,r)??e,f=U(s),c=[],u=0,p=0,d=(i,l,y,C,x=!1,O=!0)=>{let H=x?y.trim():q(y);if(!H)return;let T=Math.max(t,i.startPosition.row),de=Math.min(r,i.endPosition.row);c.push({line:T,endLine:Math.max(T,de),depth:l,signals:Z.filter(he=>C.includes(he)||he==="anchor"&&o.some(fe=>fe>=T&&fe<=de)),text:H,copied:x}),O&&(u+=1,x&&(p+=1))},b=(i,l)=>{for(let y of i.namedChildren)_(y,l)},m=(i,l)=>{if(k.has(i.type)){g(i,l,"else if");return}if(Y.has(i.type)){let y=i.namedChildren.find(x=>k.has(x.type));if(y){g(y,l,"else if");return}d(i,l,"else",["branch"],!1,!1);let C=U(i)??i.namedChildren.find(x=>L.has(x.type));if(C)_(C,l+1);else for(let x of i.namedChildren)_(x,l+1);return}d(i,l,"else",["branch"],!1,!1),_(i,l+1)},g=(i,l,y=i.type.startsWith("unless")?"unless":"if")=>{let C=i.childForFieldName("condition")??le(i),x=i.childForFieldName("consequence")??i.childForFieldName("body")??i.namedChildren.find(T=>L.has(T.type)),O=i.childForFieldName("alternative")??i.namedChildren.find(T=>Y.has(T.type)),H=C?C.text:B(i,x);d(i,l,`${y} ${Ge(H)}`,M(C,["branch"])),x&&_(x,l+1),O&&m(O,l)},F=(i,l)=>{let y=i.childForFieldName("body")??i.namedChildren.find(C=>L.has(C.type));d(i,l,B(i,y),M(i,["loop"])),y&&_(y,l+1)},N=(i,l)=>{let y=i.childForFieldName("body")??i.namedChildren.find(C=>L.has(C.type));d(i,l,B(i,y),M(i,["branch"])),y&&_(y,l+1)},S=(i,l)=>{let y=i.namedChildren.find(C=>Q(C));d(i,l,B(i,y),["branch"],!1,!1);for(let C of i.namedChildren)(C===y||Q(C))&&_(C,l+1)},v=(i,l)=>{d(i,l,"try",[],!1);for(let y of i.namedChildren)L.has(y.type)?_(y,l+1):(V.has(y.type)||$.has(y.type))&&_(y,l)},h=(i,l,y)=>{let C=i.childForFieldName("body")??i.namedChildren.find(O=>L.has(O.type)),x=y==="finally"?"finally":B(i,C);d(i,l,x,[y],!1,!1),C&&_(C,l+1)},w=(i,l)=>{let y=U(i);d(i,l,B(i,y),M(i,["binding"])),y&&_(y,l+1)},_=(i,l)=>{if(i.startPosition.row>r||i.endPosition.row<t||Ae.has(i.type)||i.type==="empty_statement")return;if(L.has(i.type)){b(i,l);return}if(k.has(i.type)){g(i,l);return}if(ee.has(i.type)){F(i,l);return}if(z.has(i.type)){N(i,l);return}if(_e.has(i.type)){S(i,l);return}if(j.has(i.type)){v(i,l);return}if(V.has(i.type)){h(i,l,"catch");return}if($.has(i.type)){h(i,l,"finally");return}if(Y.has(i.type)){m(i,l);return}if(P.has(i.type)){w(i,l);return}let C=!we(i)||Ue(i);d(i,l,i.text,M(i),C)};return _(f&&f!==s?f:s,0),u===0?null:{constructKind:We(s),signature:He(s,f,n,t),lines:c,sourceStatements:u,copiedStatements:p}}function I(e,n,t){let r=e.namedChildren.filter(o=>o.startPosition.row<=n&&o.endPosition.row>=t);for(let o of r.sort(Ke)){let a=I(o,n,t);if(a)return a}return P.has(e.type)&&e.startPosition.row<=n&&e.endPosition.row>=t?e:null}function Ke(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=>L.has(n.type))??null}function He(e,n,t,r){let o=B(e,n);return o||(t[r]??e.text).trim()}function We(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=>!L.has(n.type)&&!Y.has(n.type))??null}function B(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 Ge(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&&A(e,r=>{let o=ye[r.type];o&&t.add(o),r.type==="call_expression"&&(t.add("call"),Be(r)&&t.add("shape")),ue.has(r.type)&&t.add("binding")}),Z.filter(r=>t.has(r))}function Ue(e){let n=!1;return A(e,t=>{n||!t.text.includes(`
2
2
  `)||/(?:string|template|heredoc|raw_string)/u.test(t.type)&&(n=!0)}),n}function Q(e){return L.has(e.type)||k.has(e.type)||ee.has(e.type)||z.has(e.type)||j.has(e.type)||P.has(e.type)||we(e)}function we(e){return/(?:statement|declaration|expression|assignment|return|throw|raise|break|continue|yield|with_item)$/u.test(e.type)||ue.has(e.type)}function Xe(e,n,t){let r=0;for(let o=n;o<=t;o+=1)r+=(e[o]?.length??0)+10;return r}function Ve(e){return e.constructKind.length+e.signature.length+80+e.lines.reduce((n,t)=>n+t.text.length+t.depth*2+10,0)}function Le(e,n,t,r,o,a){let s=D(e,n);if(!s)return null;let f=W(e,n),c=te(e,n,t,r),u=a?c?.startLine??t:t,p=a?c?.endLine??r:r,b=(c?.startLine===u&&c.endLine===p?I(s.rootNode,u,p):null)??K(s.rootNode,u,p);if(!b)return null;let m=new Map,g=new Map,F=new Map,N=(h,w)=>{if(h<u||h>p)return;let _=m.get(h)??new Set;_.add(w),m.set(h,_)};c&&N(c.startLine,"signature");for(let h of o)N(h,"anchor");A(b,h=>{let w=ye[h.type];if(w&&N(h.startPosition.row,w),w==="shape"&&Je(g,h,b,u,p),h.type==="call_expression"){let i=(h.childForFieldName("function")??h.namedChild(0))?.text.split(".").at(-1);if(Be(h)){N(h.startPosition.row,"shape");let l=X(h.text);l.length<=re&&F.set(h.startPosition.row,l)}if(i&&Pe.has(i)){N(h.startPosition.row,"lifecycle");let l=X(h.text);l.length<=re&&F.set(h.startPosition.row,l)}}ue.has(h.type)&&N(h.startPosition.row,"binding")});let S=G(e,n);for(let h of S?.callSites??[])h.line<u||h.line>p||(N(h.line,"call"),h.calleeLeaf==="catch"&&N(h.line,"catch"));let v=[...m.entries()].sort(([h],[w])=>h-w).map(([h,w])=>({line:h,signals:be.filter(_=>w.has(_)),text:F.get(h)??X(f[h]??"")})).filter(h=>h.text.length>0||h.signals.includes("anchor"));return{...c?{callable:c}:{},rangeStart:u,rangeEnd:p,sourceLines:f,candidates:v,shapes:[...g.values()].sort((h,w)=>h.startLine-w.startLine)}}function Je(e,n,t,r,o){if(n.startPosition.row<r||n.endPosition.row>o)return;let a=n.childForFieldName("key")??n.childForFieldName("name")??n.namedChild(0),s=X(a?.text??"");if(!s||s.includes(`
3
3
  `)||s.length>60)return;let f=Qe(n,t);if(f.startPosition.row<r||f.endPosition.row>o)return;let c=`${f.startPosition.row}:${f.endPosition.row}`,u=e.get(c)??{startLine:f.startPosition.row,endLine:f.endPosition.row,fields:[]};u.fields.some(p=>p.name===s&&p.line===n.startPosition.row)||u.fields.push({name:s,line:n.startPosition.row}),e.set(c,u)}function Qe(e,n){let t=e.parent;for(;t&&t!==n.parent;){if(ge.has(t.type))return t;if(t===n)break;t=t.parent}return e.parent??e}function te(e,n,t,r){return G(e,n)?.callables.filter(o=>o.startLine<=t&&o.endLine>=r).sort((o,a)=>o.endLine-o.startLine-(a.endLine-a.startLine)||o.startLine-a.startLine)[0]}function K(e,n,t){if(e.startPosition.row>n||e.endPosition.row<t)return null;for(let r of e.namedChildren){let o=K(r,n,t);if(o)return o}return e}function A(e,n){n(e);for(let t of e.namedChildren)A(t,n)}function X(e){return e.trim().replace(/\s+/gu," ")}function Be(e){if(e.type!=="call_expression")return!1;let n=e.childForFieldName("arguments")??e.namedChildren.find(r=>r.type==="arguments"||r.type==="argument_list");if(!n)return!1;let t=!1;return A(n,r=>{ge.has(r.type)&&(t=!0)}),t}function Ze(e){let n={};for(let t of be){let r=e.filter(o=>o.signals.includes(t)).length;r>0&&(n[t]=r)}return n}function et(e,n){let t=new Map;for(let a of e){let s=a.signals.join(",");t.set(s,(t.get(s)??0)+1)}let r=new Set(Se),o=a=>{let s=t.get(a.signals.join(","))??1,f=Math.min(...a.signals.map(p=>n[p]??1)),c=a.signals.some(p=>r.has(p))?3:1,u=Math.max(0,a.signals.length-1)*1e3;return c*(1e3/s+1e3/f)+u};return[...e].sort((a,s)=>o(s)-o(a)||s.line-a.line)}var ue=new Set(["lexical_declaration","variable_declarator","const_item","static_item","let_declaration","assignment"]);function tt(e,n,t){let r=[],o=/\b(?:describe|it|test)(?:\.(?:only|skip|todo))?\s*\(\s*(['"`])([^'"`]+)\1/u;for(let a=n;a<=t;a+=1){let s=o.exec(e[a]??"")?.[2];if(!(!s||r.includes(s))&&(r.push(s),r.length>=Fe))break}return r}export{at as a,st as b,ct as c,Ce as d,lt as e,ut as f};
4
- //# sourceMappingURL=chunk-JEJLSICM.js.map
4
+ //# sourceMappingURL=chunk-VVCBMH5O.js.map
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
- import{q as o}from"./chunk-ECQBG7PW.js";import{l as n}from"./chunk-2X7V4HS4.js";async function i(t){if(typeof t!="string"||t.length===0)throw new Error("Output continuation requires a cursor.");await o(t,n)}var u={id:"continue",command:"continue <cursor>",hidden:!0,description:"Continue an immutable output snapshot",renderShape:"custom",handler:i};export{u as a};
3
- //# sourceMappingURL=chunk-JSOYNVWH.js.map
2
+ import{m as o}from"./chunk-PHPQ24UG.js";import{l as n}from"./chunk-G2XUZCF2.js";async function i(t){if(typeof t!="string"||t.length===0)throw new Error("Output continuation requires a cursor.");await o(t,n)}var u={id:"continue",command:"continue <cursor>",hidden:!0,description:"Continue an immutable output snapshot",renderShape:"custom",handler:i};export{u as a};
3
+ //# sourceMappingURL=chunk-VYZQZ4ZN.js.map