codebaseiq 0.2.0 → 0.3.1

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 (403) hide show
  1. package/CHANGELOG.md +59 -2
  2. package/README.md +1 -1
  3. package/dist/augment-vue-worker.js +1 -1
  4. package/dist/{chunk-WH5SYOMD.js → chunk-2E6OUPCF.js} +2 -2
  5. package/dist/chunk-2I2UHZET.js +2 -0
  6. package/dist/{chunk-CSZOQ7YO.js → chunk-2OMXFE64.js} +2 -2
  7. package/dist/{chunk-57KFVPVZ.js → chunk-2XBJRZEM.js} +2 -2
  8. package/dist/{chunk-PFPHS4NO.js → chunk-2Z7K66D7.js} +2 -2
  9. package/dist/{chunk-5WXOEJ4G.js → chunk-356EZBIP.js} +2 -2
  10. package/dist/{chunk-DLC6JDN7.js → chunk-3H2H5ODK.js} +2 -2
  11. package/dist/{chunk-HBQGKMM3.js → chunk-3LQJRS4I.js} +2 -2
  12. package/dist/{chunk-H3CKAL6P.js → chunk-3ON3A2QV.js} +2 -2
  13. package/dist/{chunk-MTMF4N7F.js → chunk-3VJ3OCRE.js} +2 -2
  14. package/dist/{chunk-QMGWSEPL.js → chunk-4GWN76B2.js} +2 -2
  15. package/dist/{chunk-IBM3F2BJ.js → chunk-4LK5OIPW.js} +2 -2
  16. package/dist/{chunk-6SDEQTVY.js → chunk-53ELMZRF.js} +2 -2
  17. package/dist/{chunk-OJFLPVBP.js → chunk-57OPIQFM.js} +2 -2
  18. package/dist/{chunk-2E6BTWER.js → chunk-5CR4U5X2.js} +2 -2
  19. package/dist/{chunk-IYBIBMPF.js → chunk-5FWR5HLG.js} +2 -2
  20. package/dist/{chunk-HHBBGWES.js → chunk-5LL4KEHO.js} +2 -2
  21. package/dist/{chunk-NTRW52UR.js → chunk-5MPBSFZH.js} +2 -2
  22. package/dist/chunk-5T44HG5Y.js +88 -0
  23. package/dist/chunk-5TZNHP4T.js +8 -0
  24. package/dist/{chunk-L3YSDLNB.js → chunk-5YBDBY5L.js} +2 -2
  25. package/dist/{chunk-YFQPWKHR.js → chunk-5ZI2PPI7.js} +2 -2
  26. package/dist/{chunk-WO47BIPY.js → chunk-6EYESTJM.js} +2 -2
  27. package/dist/{chunk-PHPQ24UG.js → chunk-6FXXYYQM.js} +2 -2
  28. package/dist/chunk-6O3KXIDL.js +2 -0
  29. package/dist/{chunk-PLZXWZHY.js → chunk-7GAK2F3H.js} +2 -2
  30. package/dist/{chunk-W3FK73MD.js → chunk-7UCDGXRW.js} +2 -2
  31. package/dist/{chunk-U2XX3BT4.js → chunk-AGGR2BKS.js} +2 -2
  32. package/dist/{chunk-ZB3V5QM7.js → chunk-ALOEHWJS.js} +2 -2
  33. package/dist/{chunk-NDGTJHQN.js → chunk-AXQCHG77.js} +2 -2
  34. package/dist/{chunk-X5I2BQGX.js → chunk-BFANZRQ5.js} +2 -2
  35. package/dist/{chunk-VVCBMH5O.js → chunk-BGGB5N53.js} +2 -2
  36. package/dist/{chunk-PARCKE3Q.js → chunk-BGYRF5YX.js} +2 -2
  37. package/dist/{chunk-CIVYHK7U.js → chunk-BIADXGC3.js} +2 -2
  38. package/dist/{chunk-NK76RSB6.js → chunk-BPKNP3KZ.js} +2 -2
  39. package/dist/{chunk-ZOEDRCR4.js → chunk-BRQL7AFJ.js} +2 -2
  40. package/dist/{chunk-KDYQQJ6X.js → chunk-BWL3PMPT.js} +2 -2
  41. package/dist/{chunk-M7LAIM77.js → chunk-C6WKPKCF.js} +2 -2
  42. package/dist/{chunk-37TKC6MB.js → chunk-CB5AVJMM.js} +2 -2
  43. package/dist/{chunk-BX2U3QQV.js → chunk-CCIYWXX6.js} +2 -2
  44. package/dist/{chunk-3AC56WAR.js → chunk-CIYA2KZN.js} +2 -2
  45. package/dist/{chunk-6OVNYYY4.js → chunk-CJTKGAGH.js} +2 -2
  46. package/dist/{chunk-FIXYHQ3W.js → chunk-CLPCFGRT.js} +2 -2
  47. package/dist/{chunk-LY2NB5XR.js → chunk-CSPDQLLU.js} +2 -2
  48. package/dist/{chunk-CMXW7MFV.js → chunk-CYJS33YX.js} +2 -2
  49. package/dist/{chunk-ACZDU5GK.js → chunk-D7DOB27N.js} +7 -7
  50. package/dist/{chunk-XUJM6474.js → chunk-DDRA3QKN.js} +2 -2
  51. package/dist/{chunk-3NUZVLR7.js → chunk-DECN422G.js} +2 -2
  52. package/dist/{chunk-RRPK327J.js → chunk-DJKOXMNG.js} +2 -2
  53. package/dist/{chunk-SJZQ2PTZ.js → chunk-DWBAESVW.js} +2 -2
  54. package/dist/{chunk-S5SKXCND.js → chunk-EHPOTEQX.js} +2 -2
  55. package/dist/chunk-EIBGSU2R.js +2 -0
  56. package/dist/{chunk-DVYG3JTA.js → chunk-ELYMY5S2.js} +2 -2
  57. package/dist/chunk-EOKVZXNF.js +355 -0
  58. package/dist/chunk-EQNMD62X.js +51 -0
  59. package/dist/{chunk-YIOQJ45A.js → chunk-F3QSL4W2.js} +2 -2
  60. package/dist/{chunk-VG55NFXF.js → chunk-F5CJO5JN.js} +2 -2
  61. package/dist/{chunk-JOALNFY3.js → chunk-F74LZWCE.js} +2 -2
  62. package/dist/chunk-G7GVV2TV.js +27 -0
  63. package/dist/{chunk-U24M5RQM.js → chunk-GQLDYCWS.js} +2 -2
  64. package/dist/{chunk-B2E3HZ2A.js → chunk-GV2CEZCW.js} +2 -2
  65. package/dist/{chunk-AM5SUGHF.js → chunk-GVAF222T.js} +2 -2
  66. package/dist/{chunk-T3YFIJ5P.js → chunk-HJTM3C4Y.js} +2 -2
  67. package/dist/{chunk-FY5V4V4F.js → chunk-HNXRVGMY.js} +2 -2
  68. package/dist/{chunk-UWB5WMC2.js → chunk-I3OK27P7.js} +2 -2
  69. package/dist/{chunk-RVYLJDXC.js → chunk-ICUL7XRT.js} +2 -2
  70. package/dist/{chunk-QVHZB75Z.js → chunk-IHSLIIL3.js} +2 -2
  71. package/dist/chunk-ILGTMRMZ.js +2 -0
  72. package/dist/{chunk-XNUWRTYM.js → chunk-IZDPGOZR.js} +2 -2
  73. package/dist/{chunk-BH5CE4LN.js → chunk-J7AMBVWF.js} +2 -2
  74. package/dist/chunk-JAFDMV5I.js +2 -0
  75. package/dist/{chunk-YXJ4IAHH.js → chunk-JCMFBF4Z.js} +2 -2
  76. package/dist/{chunk-BLKYYQ7C.js → chunk-JNXI6NQ7.js} +95 -95
  77. package/dist/{chunk-DKJXK3HA.js → chunk-JSB43EX6.js} +2 -2
  78. package/dist/chunk-JYRJYXUV.js +2 -0
  79. package/dist/chunk-K4S2VH42.js +82 -0
  80. package/dist/{chunk-QLTFXVUI.js → chunk-K6FNTQQW.js} +2 -2
  81. package/dist/{chunk-JYX5UZSZ.js → chunk-KEJ2HLRW.js} +2 -2
  82. package/dist/{chunk-VCWAJPXQ.js → chunk-KFTHI2R6.js} +2 -2
  83. package/dist/chunk-KLX6NSWT.js +3 -0
  84. package/dist/{chunk-DFPAZXLU.js → chunk-KPZGTB2O.js} +2 -2
  85. package/dist/{chunk-T55YPJGB.js → chunk-KUKKLWJD.js} +2 -2
  86. package/dist/{chunk-RWKEXCHU.js → chunk-KUKWHP4R.js} +2 -2
  87. package/dist/{chunk-ZJZQ7Q2Q.js → chunk-KWRQVLPX.js} +2 -2
  88. package/dist/{chunk-FQA3KIFX.js → chunk-L37EQYAX.js} +2 -2
  89. package/dist/{chunk-PNVZIJ57.js → chunk-LCW3PSGL.js} +2 -2
  90. package/dist/{chunk-7Z7HCZ7J.js → chunk-LKUTSP4G.js} +2 -2
  91. package/dist/{chunk-HIEXRDJF.js → chunk-LMTSB3TB.js} +2 -2
  92. package/dist/{chunk-SF34QLK2.js → chunk-LQHYYIOB.js} +2 -2
  93. package/dist/{chunk-EXMVF3JR.js → chunk-LSZYMN2A.js} +3 -3
  94. package/dist/{chunk-RCPZOPV6.js → chunk-M2Y6PCFE.js} +2 -2
  95. package/dist/chunk-MC46AL7B.js +343 -0
  96. package/dist/{chunk-SRY26ITJ.js → chunk-MDFT325O.js} +2 -2
  97. package/dist/{chunk-WJOQC4P7.js → chunk-MEUHIDI3.js} +2 -2
  98. package/dist/{chunk-FLLXYUOL.js → chunk-MQW6SJ4P.js} +2 -2
  99. package/dist/{chunk-57KEZDPT.js → chunk-MSI3K7PJ.js} +2 -2
  100. package/dist/{chunk-27PHVDKL.js → chunk-MZNMASFM.js} +2 -2
  101. package/dist/{chunk-VYZQZ4ZN.js → chunk-N2XDMNVI.js} +2 -2
  102. package/dist/{chunk-JN5LIBT3.js → chunk-NDKOVQFG.js} +2 -2
  103. package/dist/{chunk-W6C6QTXJ.js → chunk-NEWHKGVD.js} +2 -2
  104. package/dist/chunk-NNG6M6XD.js +3 -0
  105. package/dist/chunk-O2KWU34K.js +278 -0
  106. package/dist/{chunk-HBXZAGY6.js → chunk-O2M3VNDY.js} +2 -2
  107. package/dist/{chunk-FPDL2TUB.js → chunk-OBC7HSSO.js} +2 -2
  108. package/dist/{chunk-J24VICI5.js → chunk-OKAF4OQS.js} +2 -2
  109. package/dist/{chunk-I5FCDTK2.js → chunk-OP6BUIV6.js} +2 -2
  110. package/dist/{chunk-2DMVFAY7.js → chunk-OQ3DK7FW.js} +2 -2
  111. package/dist/{chunk-FEBLLMTL.js → chunk-OQUCBKOI.js} +2 -2
  112. package/dist/chunk-OT5ISJSR.js +2 -0
  113. package/dist/{chunk-N3Q3AWGW.js → chunk-OWJWOEDU.js} +96 -96
  114. package/dist/{chunk-M4EVGA5S.js → chunk-PIFYOWS4.js} +3 -3
  115. package/dist/{chunk-35YYZD3D.js → chunk-PTR3EOXC.js} +2 -2
  116. package/dist/{chunk-5XEVXVTK.js → chunk-PUVNH4PO.js} +2 -2
  117. package/dist/{chunk-I645ZF75.js → chunk-QEOWONKY.js} +2 -2
  118. package/dist/{chunk-JXHLB7TP.js → chunk-QMOZZ2VX.js} +2 -2
  119. package/dist/{chunk-NIO346UL.js → chunk-QY7QB7I6.js} +2 -2
  120. package/dist/{chunk-YYFV32WR.js → chunk-R4OJGTMP.js} +2 -2
  121. package/dist/{chunk-2VKB5CMA.js → chunk-RCIGX23V.js} +2 -2
  122. package/dist/{chunk-TUTSO7UZ.js → chunk-RIO3JXHM.js} +2 -2
  123. package/dist/{chunk-4IFISPQW.js → chunk-SA7G6GJX.js} +2 -2
  124. package/dist/{chunk-OMBRP7BB.js → chunk-SB53KPWA.js} +2 -2
  125. package/dist/chunk-SB7NASHU.js +2 -0
  126. package/dist/{chunk-3XFJUWJE.js → chunk-SGMNWYTH.js} +2 -2
  127. package/dist/{chunk-A7XQT7MH.js → chunk-SUE7SHZL.js} +2 -2
  128. package/dist/{chunk-IOVPAZWP.js → chunk-SX72EVMY.js} +2 -2
  129. package/dist/{chunk-OVKZM2XI.js → chunk-SZ4P7MF7.js} +2 -2
  130. package/dist/{chunk-EM5UHLAM.js → chunk-T2M5HWBQ.js} +2 -2
  131. package/dist/{chunk-CZEIHYMP.js → chunk-T6MQNNAC.js} +2 -2
  132. package/dist/chunk-T75DS2E6.js +21 -0
  133. package/dist/{chunk-57GCCPLS.js → chunk-TEANKHUU.js} +2 -2
  134. package/dist/{chunk-MT5W4DUG.js → chunk-TEMM2FEL.js} +2 -2
  135. package/dist/{chunk-I2KP4AGR.js → chunk-TJWVT4DO.js} +2 -2
  136. package/dist/{chunk-77GHPR2R.js → chunk-TLTSESB4.js} +2 -2
  137. package/dist/{chunk-KM4QRWI5.js → chunk-TNJGTQWO.js} +2 -2
  138. package/dist/{chunk-EFFMFK7C.js → chunk-TOTWJZIX.js} +2 -2
  139. package/dist/{chunk-54K6556S.js → chunk-U33PMPNW.js} +2 -2
  140. package/dist/{chunk-GXVDTHFC.js → chunk-U7NUXDQO.js} +2 -2
  141. package/dist/chunk-UC2FD2PS.js +4 -0
  142. package/dist/{chunk-MRGTCMDK.js → chunk-UIAUPFBJ.js} +2 -2
  143. package/dist/{chunk-LAGDJXFY.js → chunk-UJIXCI3L.js} +2 -2
  144. package/dist/{chunk-IVJJNVSX.js → chunk-UMEPSVKT.js} +2 -2
  145. package/dist/{chunk-4O52YNKL.js → chunk-UQYQBLJX.js} +2 -2
  146. package/dist/{chunk-JUO3Z644.js → chunk-UW6KD57C.js} +2 -2
  147. package/dist/{chunk-TAJ6UGCO.js → chunk-V4NGDIEA.js} +3 -3
  148. package/dist/{chunk-VLTUX4IF.js → chunk-VGWZ4MOY.js} +2 -2
  149. package/dist/{chunk-KNV5VFDV.js → chunk-VSGOIZMQ.js} +2 -2
  150. package/dist/{chunk-K5G7SPAG.js → chunk-W7QDASTN.js} +4 -4
  151. package/dist/{chunk-IWAMYGPN.js → chunk-W7YLRXZE.js} +2 -2
  152. package/dist/{chunk-QKVTWODE.js → chunk-WK2IQJPK.js} +2 -2
  153. package/dist/{chunk-HYKSLTAR.js → chunk-WO6OFKUC.js} +2 -2
  154. package/dist/{chunk-S64NCE2Z.js → chunk-WWCV4E6J.js} +2 -2
  155. package/dist/{chunk-2F5ERMNI.js → chunk-XJBK3QDV.js} +2 -2
  156. package/dist/{chunk-IGYAZPRX.js → chunk-XN3EKMLI.js} +2 -2
  157. package/dist/{chunk-FWY2PRIF.js → chunk-XQAVQVIL.js} +2 -2
  158. package/dist/{chunk-NJA4MMBD.js → chunk-XUPFA6GH.js} +2 -2
  159. package/dist/{chunk-4AOOSCZ7.js → chunk-YHPG3S2U.js} +2 -2
  160. package/dist/{chunk-CDWSLAPN.js → chunk-YPBKBYPS.js} +2 -2
  161. package/dist/{chunk-5BDK6QC3.js → chunk-YRKP7PM7.js} +2 -2
  162. package/dist/{chunk-4NHWNAWQ.js → chunk-YT4DVWUV.js} +2 -2
  163. package/dist/{chunk-5NJPH3QZ.js → chunk-YTJHCGYB.js} +2 -2
  164. package/dist/{chunk-ZNQCR656.js → chunk-Z66XYVLZ.js} +2 -2
  165. package/dist/{chunk-A67HT5FR.js → chunk-ZB4C5TTR.js} +2 -2
  166. package/dist/chunk-ZMA5HWXY.js +3 -0
  167. package/dist/{chunk-CWMHWD56.js → chunk-ZNH33XIB.js} +2 -2
  168. package/dist/{cli-context-XEPPF4RX.js → cli-context-FJL2JHOE.js} +2 -2
  169. package/dist/{cli-context-TSADTXLB.js → cli-context-PQNWHMCQ.js} +2 -2
  170. package/dist/{cli-program-KJGQEM72.js → cli-program-SCHOHOQE.js} +2 -2
  171. package/dist/cli.js +1 -1
  172. package/dist/{code-CDe-mIjx.d.ts → code-DfX3xeWy.d.ts} +1 -1
  173. package/dist/{code-viewer-ZCTHXQ5C.js → code-viewer-AMRXV444.js} +2 -2
  174. package/dist/{code-viewer-YGDON6SY.js → code-viewer-EXI5SFFR.js} +2 -2
  175. package/dist/{command-descriptors-5VAB2MZX.js → command-descriptors-H6A4UY72.js} +129 -129
  176. package/dist/{command-descriptors-EAHKIRAG.js → command-descriptors-ROIOTCCW.js} +130 -130
  177. package/dist/{db-DmRNdCtm.d.ts → db-BoG_PWYH.d.ts} +1 -1
  178. package/dist/direct-navigation-3JOYP2MO.js +3 -0
  179. package/dist/direct-navigation-SJMJLBY7.js +2 -0
  180. package/dist/{graph-evidence-Bs54NWws.d.ts → graph-evidence-D1jx1Cql.d.ts} +1 -1
  181. package/dist/{health-BnzbSLCE.d.ts → health-DkYBS5BI.d.ts} +1 -1
  182. package/dist/index.d.ts +1 -1
  183. package/dist/index.js +1 -1
  184. package/dist/invocation-command-descriptors-GMZX3UAD.js +2 -0
  185. package/dist/invocation-command-descriptors-HNMKDEF6.js +3 -0
  186. package/dist/{scip-cli-BRFKkHQn.d.ts → maintenance-types-CdL5eQii.d.ts} +1 -20
  187. package/dist/output-continuation-command-5NWVDQT7.js +2 -0
  188. package/dist/output-continuation-command-RNEHNYPU.js +3 -0
  189. package/dist/postinstall.js +1 -1
  190. package/dist/project-reindex-MIW5CYEG.js +3 -0
  191. package/dist/project-reindex-VQ23LWDA.js +2 -0
  192. package/dist/queries/affected.d.ts +1 -1
  193. package/dist/queries/affected.js +1 -1
  194. package/dist/queries/anchors.d.ts +1 -1
  195. package/dist/queries/anchors.js +1 -1
  196. package/dist/queries/architecture.d.ts +1 -1
  197. package/dist/queries/architecture.js +1 -1
  198. package/dist/queries/bottlenecks.d.ts +1 -1
  199. package/dist/queries/bottlenecks.js +1 -1
  200. package/dist/queries/by-kind.d.ts +1 -1
  201. package/dist/queries/by-kind.js +1 -1
  202. package/dist/queries/call-graph.d.ts +1 -1
  203. package/dist/queries/call-graph.js +1 -1
  204. package/dist/queries/change-surface.d.ts +1 -1
  205. package/dist/queries/change-surface.js +1 -1
  206. package/dist/queries/cleanup-plan.d.ts +1 -1
  207. package/dist/queries/cleanup-plan.js +1 -1
  208. package/dist/queries/co-change.d.ts +1 -1
  209. package/dist/queries/co-change.js +1 -1
  210. package/dist/queries/code.d.ts +2 -2
  211. package/dist/queries/code.js +1 -1
  212. package/dist/queries/complexity-hotspots.d.ts +1 -1
  213. package/dist/queries/complexity-hotspots.js +1 -1
  214. package/dist/queries/complexity.d.ts +1 -1
  215. package/dist/queries/complexity.js +1 -1
  216. package/dist/queries/context.d.ts +1 -1
  217. package/dist/queries/context.js +1 -1
  218. package/dist/queries/convergence.d.ts +1 -1
  219. package/dist/queries/convergence.js +1 -1
  220. package/dist/queries/coupling.d.ts +1 -1
  221. package/dist/queries/coupling.js +1 -1
  222. package/dist/queries/cycles.d.ts +1 -1
  223. package/dist/queries/cycles.js +1 -1
  224. package/dist/queries/dataflow.d.ts +1 -1
  225. package/dist/queries/dataflow.js +1 -1
  226. package/dist/queries/dead.d.ts +1 -1
  227. package/dist/queries/dead.js +1 -1
  228. package/dist/queries/decorative-checkers.d.ts +1 -1
  229. package/dist/queries/decorative-checkers.js +1 -1
  230. package/dist/queries/deep-chains.d.ts +1 -1
  231. package/dist/queries/deep-chains.js +1 -1
  232. package/dist/queries/dependence-slice.d.ts +2 -2
  233. package/dist/queries/dependence-slice.js +1 -1
  234. package/dist/queries/dependency-depth.d.ts +1 -1
  235. package/dist/queries/dependency-depth.js +1 -1
  236. package/dist/queries/deps.d.ts +1 -1
  237. package/dist/queries/deps.js +1 -1
  238. package/dist/queries/diff-impact.d.ts +1 -1
  239. package/dist/queries/diff-impact.js +1 -1
  240. package/dist/queries/doc-drift.d.ts +1 -1
  241. package/dist/queries/doc-drift.js +1 -1
  242. package/dist/queries/drift.d.ts +1 -1
  243. package/dist/queries/drift.js +1 -1
  244. package/dist/queries/duplicate-bodies.d.ts +1 -1
  245. package/dist/queries/duplicate-bodies.js +1 -1
  246. package/dist/queries/entry-map.d.ts +1 -1
  247. package/dist/queries/entry-map.js +1 -1
  248. package/dist/queries/evidence.d.ts +2 -2
  249. package/dist/queries/evidence.js +1 -1
  250. package/dist/queries/extract-candidates.d.ts +1 -1
  251. package/dist/queries/extract-candidates.js +1 -1
  252. package/dist/queries/fan.d.ts +1 -1
  253. package/dist/queries/fan.js +1 -1
  254. package/dist/queries/files.d.ts +1 -1
  255. package/dist/queries/files.js +1 -1
  256. package/dist/queries/health.d.ts +2 -2
  257. package/dist/queries/health.js +1 -1
  258. package/dist/queries/hierarchy.d.ts +1 -1
  259. package/dist/queries/hierarchy.js +1 -1
  260. package/dist/queries/hotspots.d.ts +1 -1
  261. package/dist/queries/hotspots.js +1 -1
  262. package/dist/queries/imports.d.ts +1 -1
  263. package/dist/queries/imports.js +1 -1
  264. package/dist/queries/incomplete-migration.d.ts +1 -1
  265. package/dist/queries/incomplete-migration.js +1 -1
  266. package/dist/queries/index.d.ts +4 -4
  267. package/dist/queries/index.js +1 -1
  268. package/dist/queries/isolated.d.ts +1 -1
  269. package/dist/queries/isolated.js +1 -1
  270. package/dist/queries/locality-candidates.d.ts +1 -1
  271. package/dist/queries/locality-candidates.js +1 -1
  272. package/dist/queries/members.d.ts +1 -1
  273. package/dist/queries/members.js +1 -1
  274. package/dist/queries/methods.d.ts +1 -1
  275. package/dist/queries/methods.js +1 -1
  276. package/dist/queries/not-implemented.d.ts +1 -1
  277. package/dist/queries/not-implemented.js +1 -1
  278. package/dist/queries/outline.d.ts +1 -1
  279. package/dist/queries/outline.js +1 -1
  280. package/dist/queries/passthrough-candidates.d.ts +1 -1
  281. package/dist/queries/passthrough-candidates.js +1 -1
  282. package/dist/queries/plan-context.d.ts +1 -1
  283. package/dist/queries/plan-context.js +1 -1
  284. package/dist/queries/react-component-duplicates.d.ts +1 -1
  285. package/dist/queries/react-component-duplicates.js +1 -1
  286. package/dist/queries/react-hook-candidates.d.ts +1 -1
  287. package/dist/queries/react-hook-candidates.js +1 -1
  288. package/dist/queries/react-large-component-pressure.d.ts +1 -1
  289. package/dist/queries/react-large-component-pressure.js +1 -1
  290. package/dist/queries/recent-duplicates.d.ts +1 -1
  291. package/dist/queries/recent-duplicates.js +1 -1
  292. package/dist/queries/redundant-reexports.d.ts +1 -1
  293. package/dist/queries/redundant-reexports.js +1 -1
  294. package/dist/queries/reference-neighborhood.d.ts +1 -1
  295. package/dist/queries/reference-neighborhood.js +1 -1
  296. package/dist/queries/reference-reachability.d.ts +1 -1
  297. package/dist/queries/reference-reachability.js +1 -1
  298. package/dist/queries/refs.d.ts +1 -1
  299. package/dist/queries/refs.js +1 -1
  300. package/dist/queries/self-audit.d.ts +1 -1
  301. package/dist/queries/self-audit.js +1 -1
  302. package/dist/queries/similar-chains.d.ts +1 -1
  303. package/dist/queries/similar-chains.js +1 -1
  304. package/dist/queries/similar-files.d.ts +1 -1
  305. package/dist/queries/similar-files.js +1 -1
  306. package/dist/queries/similar-signatures.d.ts +1 -1
  307. package/dist/queries/similar-signatures.js +1 -1
  308. package/dist/queries/similar.d.ts +1 -1
  309. package/dist/queries/similar.js +1 -1
  310. package/dist/queries/slice.d.ts +1 -1
  311. package/dist/queries/slice.js +1 -1
  312. package/dist/queries/source-inspection.d.ts +3 -3
  313. package/dist/queries/source-inspection.js +1 -1
  314. package/dist/queries/source-search.d.ts +1 -1
  315. package/dist/queries/source-search.js +1 -1
  316. package/dist/queries/stale-abstractions.d.ts +1 -1
  317. package/dist/queries/stale-abstractions.js +1 -1
  318. package/dist/queries/stats.d.ts +1 -1
  319. package/dist/queries/surface.d.ts +1 -1
  320. package/dist/queries/surface.js +1 -1
  321. package/dist/queries/symbols.d.ts +1 -1
  322. package/dist/queries/symbols.js +1 -1
  323. package/dist/queries/system-map.d.ts +1 -1
  324. package/dist/queries/system-map.js +1 -1
  325. package/dist/queries/system.d.ts +1 -1
  326. package/dist/queries/system.js +1 -1
  327. package/dist/queries/test-quality.d.ts +1 -1
  328. package/dist/queries/test-quality.js +1 -1
  329. package/dist/queries/trace.d.ts +1 -1
  330. package/dist/queries/trace.js +1 -1
  331. package/dist/queries/twin-ab.d.ts +1 -1
  332. package/dist/queries/twin-ab.js +1 -1
  333. package/dist/queries/twin-drift.d.ts +1 -1
  334. package/dist/queries/twin-drift.js +1 -1
  335. package/dist/queries/unused-imports.d.ts +1 -1
  336. package/dist/queries/unused-imports.js +1 -1
  337. package/dist/queries/unused-params.d.ts +1 -1
  338. package/dist/queries/unused-params.js +1 -1
  339. package/dist/queries/value-flow.d.ts +2 -2
  340. package/dist/queries/value-flow.js +1 -1
  341. package/dist/queries/vue-component-duplicates.d.ts +1 -1
  342. package/dist/queries/vue-component-duplicates.js +1 -1
  343. package/dist/queries/vue-composable-candidates.d.ts +1 -1
  344. package/dist/queries/vue-composable-candidates.js +1 -1
  345. package/dist/queries/vue-large-view-pressure.d.ts +1 -1
  346. package/dist/queries/vue-large-view-pressure.js +1 -1
  347. package/dist/queries/wrapper-candidates.d.ts +1 -1
  348. package/dist/queries/wrapper-candidates.js +1 -1
  349. package/dist/reindex-worker.js +2 -2
  350. package/dist/reindex.d.ts +2 -4
  351. package/dist/reindex.js +71 -32
  352. package/dist/runtime.d.ts +1 -2
  353. package/dist/runtime.js +3 -3
  354. package/dist/rust-semantic-session-server.js +1 -1
  355. package/dist/rust-semantic-session-worker.js +1 -1
  356. package/dist/rust-semantic-worker.js +1 -1
  357. package/dist/sentinel-ensure-command-H66AZ3VE.js +2 -0
  358. package/dist/sentinel-ensure-command-R4YAUCJB.js +3 -0
  359. package/dist/sentinel-worker.js +1 -1
  360. package/dist/typescript-mailbox-worker.js +1 -1
  361. package/dist/watch-server.js +2 -2
  362. package/docs/INDEX_GENERATIONS.md +2 -2
  363. package/docs/NPM_RELEASE.md +323 -0
  364. package/docs/schemas/npm-release-state.schema.json +4 -13
  365. package/package.json +3 -11
  366. package/dist/chunk-2Q2LW5JW.js +0 -14
  367. package/dist/chunk-327YK6TB.js +0 -4
  368. package/dist/chunk-347TXATM.js +0 -2
  369. package/dist/chunk-36WRYYTE.js +0 -3
  370. package/dist/chunk-5IO2APSS.js +0 -2
  371. package/dist/chunk-6OAHRI2D.js +0 -6
  372. package/dist/chunk-6URCE5QY.js +0 -2
  373. package/dist/chunk-6ZV5EDUT.js +0 -5
  374. package/dist/chunk-7R64XY4Y.js +0 -12
  375. package/dist/chunk-CANBLFVQ.js +0 -15
  376. package/dist/chunk-CCRZLRWJ.js +0 -2
  377. package/dist/chunk-G2XUZCF2.js +0 -88
  378. package/dist/chunk-H5QXP63L.js +0 -2
  379. package/dist/chunk-HCMQZPEO.js +0 -2
  380. package/dist/chunk-IEL6Q5W3.js +0 -308
  381. package/dist/chunk-IGQQUENU.js +0 -109
  382. package/dist/chunk-K2O7SBAU.js +0 -2
  383. package/dist/chunk-QVWDQTMG.js +0 -2
  384. package/dist/chunk-RJWAB4VR.js +0 -345
  385. package/dist/chunk-VCL7FK3E.js +0 -3
  386. package/dist/chunk-WOOTEWQT.js +0 -239
  387. package/dist/chunk-XYLV727H.js +0 -21
  388. package/dist/chunk-YMGZZEW4.js +0 -2
  389. package/dist/direct-navigation-B3SGOOBW.js +0 -2
  390. package/dist/direct-navigation-ZL362KXF.js +0 -3
  391. package/dist/invocation-command-descriptors-CSUGUHTT.js +0 -2
  392. package/dist/invocation-command-descriptors-PPVZOIE5.js +0 -3
  393. package/dist/output-continuation-command-FTVVBVSN.js +0 -2
  394. package/dist/output-continuation-command-ITPRC3YV.js +0 -3
  395. package/dist/project-reindex-7HZSLLLY.js +0 -3
  396. package/dist/project-reindex-NGM3DYBN.js +0 -2
  397. package/dist/sentinel-ensure-command-KYYULCFU.js +0 -2
  398. package/dist/sentinel-ensure-command-RIZA3RY7.js +0 -3
  399. package/docs/WINDOWS_SIDECAR_RELEASE.md +0 -424
  400. package/docs/schemas/windows-sidecar-provenance.schema.json +0 -137
  401. package/scripts/build-codebaseiq-windows.mjs +0 -197
  402. package/scripts/codebaseiq-windows-provenance.mjs +0 -364
  403. package/scripts/verify-codebaseiq-windows.mjs +0 -29
package/CHANGELOG.md CHANGED
@@ -9,6 +9,63 @@ names are separate packages, and no `scip-query` version is superseded in place.
9
9
  Entries at 0.20.0 and below record the predecessor package's history, retained
10
10
  for continuity; they document releases of `scip-query`, not of `codebaseiq`.
11
11
 
12
+ ## [0.3.1] — 2026-10-19
13
+
14
+ ### Fixes
15
+
16
+ - **Large Rust workspaces can finish indexing.** Each language indexer was
17
+ stopped after 10 minutes, and rust-analyzer on a 15-crate Tauri workspace
18
+ had grown past that, so every refresh failed and `codebaseiq view` could not
19
+ prepare fresh evidence. The default limit is now 30 minutes.
20
+ `CODEBASEIQ_INDEXER_TIMEOUT_MS` still overrides it.
21
+ - **Stopping a timed-out indexer on Windows no longer reports a cleanup
22
+ failure.** `taskkill /T /F` had one second to end the whole process tree,
23
+ which is too short for rust-analyzer with its cargo, rustc, and proc-macro
24
+ children, so the error ended with "Process-tree cleanup failed: spawnSync
25
+ taskkill.exe ETIMEDOUT". It now has ten seconds.
26
+
27
+ ## [0.3.0] — 2026-10-18
28
+
29
+ ### Changed (codebaseiq writes its own SQLite index)
30
+
31
+ - **Indexing no longer needs Sourcegraph's `scip` CLI.** codebaseiq now writes
32
+ its SQLite index store itself instead of running `scip expt-convert`, and a
33
+ missing `scip` binary no longer stops a reindex. The tables, indexes, and
34
+ rows are unchanged: on seven real indexes from 15 KB to 160 MB, covering C#,
35
+ JavaScript, Python, Rust, and TypeScript, every row matched the converter's
36
+ output.
37
+ - **Queries no longer read `index.scip`.** Exact occurrence call targets and
38
+ the Rust occurrence references and callees now decode the occurrences stored
39
+ in `index.db` instead of deserializing the whole `index.scip` on first use.
40
+ An index written by an earlier release is rebuilt in full on its next
41
+ refresh rather than patched, and until then those lookups report themselves
42
+ unavailable.
43
+ - **The `codebaseiq-windows` package is retired.** It existed only to ship
44
+ `scip.exe`. New releases no longer depend on it, and the release coordinator
45
+ publishes a single package.
46
+ - **Node.js 22.15 or newer is required** (previously 22.0), for the built-in
47
+ zstd compression the index store uses.
48
+
49
+ ### Breaking
50
+
51
+ - `isScipInstalled`, `getScipVersion`, and `printScipInstallInstructions`
52
+ (`codebaseiq/runtime`) and `tryInstallScipCli` (`codebaseiq/reindex`) are
53
+ removed, and `CODEBASEIQ_SCIP_BIN` is no longer read. `check-deps` and
54
+ `setup` no longer check for a `scip` binary, and the setup report no longer
55
+ carries `scipCliInstalled` or a `scip-cli` step.
56
+ - `chunks.occurrences` in `index.db` now holds codebaseiq's own encoding
57
+ (zstd-compressed JSON) instead of zstd-compressed SCIP protobuf. An external
58
+ tool that decoded the old bytes must change.
59
+
60
+ ### Fixes
61
+
62
+ - **C# and VB solutions in a subfolder now index.** codebaseiq looked for a
63
+ `.sln` or project file only at the repository root, so a layout such as
64
+ `dotnet/App.slnx` handed scip-dotnet the root folder and indexing failed
65
+ with "Solution file not found". It now searches up to three folder levels
66
+ down, skipping hidden folders, `bin`, `obj`, and `node_modules`, and
67
+ recognizes `.slnx` solutions.
68
+
12
69
  ## [0.2.0] — 2026-10-04
13
70
 
14
71
  ### Added (reuse before writing, a trailing sentinel, and a code map)
@@ -22,12 +79,12 @@ for continuity; they document releases of `scip-query`, not of `codebaseiq`.
22
79
  (`--mode embeddings`); `--mode auto` walks the configured chain and reports
23
80
  every fallback. Results are labeled heuristic candidates, never a locator.
24
81
  - **An opt-in trailing sentinel watches agent edits** (`codebaseiq setup
25
- --sentinel`). It parses each edited file directly, without waiting for a
82
+ --sentinel`). It parses each edited file directly, without waiting for a
26
83
  reindex, and reports a new function whose body equals an existing one; at
27
84
  Stop it reports new code nothing imports or calls outside tests. It starts in
28
85
  shadow mode (logged, never shown) until a finding family passes a measured
29
86
  promotion gate (`npm run calibrate:sentinel`, `npm run
30
- calibrate:sentinel-review`, then `codebaseiq setup --sentinel-live <family>`).
87
+ calibrate:sentinel-review`, then `codebaseiq setup --sentinel-live <family>`).
31
88
  Hooks are installed for Claude Code and Codex.
32
89
  - **`codebaseiq view` opens a local code map.** Folders and files are drawn with
33
90
  their dependencies rolled up per level, cycles flagged; clicking into a symbol
package/README.md CHANGED
@@ -29,7 +29,7 @@ is complete.
29
29
 
30
30
  ## Install
31
31
 
32
- codebaseiq requires Node.js 22 or newer. Node.js 24 LTS is recommended.
32
+ codebaseiq requires Node.js 22.15 or newer. Node.js 24 LTS is recommended.
33
33
 
34
34
  ```bash
35
35
  npm install -g codebaseiq
@@ -1,2 +1,2 @@
1
- import{e as t}from"./chunk-5NJPH3QZ.js";import"./chunk-YUKYB54I.js";import"./chunk-FWY2PRIF.js";import"./chunk-4NHWNAWQ.js";import"./chunk-2VKB5CMA.js";import"./chunk-4O52YNKL.js";import{writeFileSync as s}from"fs";import{workerData as o}from"worker_threads";var r=o;try{let e=t({projectRoot:r.projectRoot,dbPath:r.dbPath,tsconfig:r.tsconfig,vueFiles:r.vueFiles,tasks:r.tasks});s(r.resultPath,JSON.stringify({version:1,runId:r.runId,workerId:r.workerId,taskIds:r.taskIds,ok:!0,result:e}))}catch(e){s(r.resultPath,JSON.stringify({version:1,runId:r.runId,workerId:r.workerId,taskIds:r.taskIds,ok:!1,error:e instanceof Error?e.message:String(e)}))}
1
+ import{e as t}from"./chunk-YTJHCGYB.js";import"./chunk-YUKYB54I.js";import"./chunk-XQAVQVIL.js";import"./chunk-YT4DVWUV.js";import"./chunk-RCIGX23V.js";import"./chunk-UQYQBLJX.js";import{writeFileSync as s}from"fs";import{workerData as o}from"worker_threads";var r=o;try{let e=t({projectRoot:r.projectRoot,dbPath:r.dbPath,tsconfig:r.tsconfig,vueFiles:r.vueFiles,tasks:r.tasks});s(r.resultPath,JSON.stringify({version:1,runId:r.runId,workerId:r.workerId,taskIds:r.taskIds,ok:!0,result:e}))}catch(e){s(r.resultPath,JSON.stringify({version:1,runId:r.runId,workerId:r.workerId,taskIds:r.taskIds,ok:!1,error:e instanceof Error?e.message:String(e)}))}
2
2
  //# sourceMappingURL=augment-vue-worker.js.map
@@ -1,2 +1,2 @@
1
- import{K as c}from"./chunk-RVYLJDXC.js";import{h as a,w as u,y as p}from"./chunk-PLZXWZHY.js";var g=a("suppression-inventory",{clearGroups:["whole-project"]});function b(t){return g.get(t,()=>y(t))}function y(t){let e={dead:0,stale:0,wrapper:0,passthrough:0,drift:0,extract:0,similar:0,twin:0,uncategorized:0},n=new Map,o=0;for(let r of c(t)){let i=u(t,r);if(!(!i||!i.includes("codebaseiq")))for(let f of i.split(/\r?\n/)){let s=p(f);if(s===null)continue;o+=1,n.set(r,(n.get(r)??0)+1);let d=l(s);e[d]+=1}}for(let r of t.config.suppressions??[])r.expiresAt&&Date.parse(r.expiresAt)<=Date.now()||(o+=1,r.file&&n.set(r.file,(n.get(r.file)??0)+1),e[l(r.check)]+=1);return{total:o,byCategory:e,byFile:n}}function l(t){if(!t)return"uncategorized";let e=t.toLowerCase();return e==="dead-code"||e==="new-dead"?"dead":e.includes("twin")?"twin":e.includes("similar")||e.includes("duplicate")?"similar":e.includes("wrapper")?"wrapper":e.includes("passthrough")?"passthrough":e.includes("drift")?"drift":e.includes("extract")?"extract":e.includes("stale")?"stale":"uncategorized"}export{b as a};
2
- //# sourceMappingURL=chunk-WH5SYOMD.js.map
1
+ import{K as c}from"./chunk-ICUL7XRT.js";import{h as a,w as u,y as p}from"./chunk-7GAK2F3H.js";var g=a("suppression-inventory",{clearGroups:["whole-project"]});function b(t){return g.get(t,()=>y(t))}function y(t){let e={dead:0,stale:0,wrapper:0,passthrough:0,drift:0,extract:0,similar:0,twin:0,uncategorized:0},n=new Map,o=0;for(let r of c(t)){let i=u(t,r);if(!(!i||!i.includes("codebaseiq")))for(let f of i.split(/\r?\n/)){let s=p(f);if(s===null)continue;o+=1,n.set(r,(n.get(r)??0)+1);let d=l(s);e[d]+=1}}for(let r of t.config.suppressions??[])r.expiresAt&&Date.parse(r.expiresAt)<=Date.now()||(o+=1,r.file&&n.set(r.file,(n.get(r.file)??0)+1),e[l(r.check)]+=1);return{total:o,byCategory:e,byFile:n}}function l(t){if(!t)return"uncategorized";let e=t.toLowerCase();return e==="dead-code"||e==="new-dead"?"dead":e.includes("twin")?"twin":e.includes("similar")||e.includes("duplicate")?"similar":e.includes("wrapper")?"wrapper":e.includes("passthrough")?"passthrough":e.includes("drift")?"drift":e.includes("extract")?"extract":e.includes("stale")?"stale":"uncategorized"}export{b as a};
2
+ //# sourceMappingURL=chunk-2E6OUPCF.js.map
@@ -0,0 +1,2 @@
1
+ import{b as r}from"./chunk-LMTSB3TB.js";import{y as e}from"./chunk-GVAF222T.js";function l(t,s){let o=r(t,s);return e(t,o).map(({relativePath:n,...a})=>a)}export{l as a};
2
+ //# sourceMappingURL=chunk-2I2UHZET.js.map
@@ -1,3 +1,3 @@
1
- import{c as p}from"./chunk-BX2U3QQV.js";import{b as D}from"./chunk-B75HZHUP.js";import{a as m}from"./chunk-BGBBVSH4.js";import{d as g,u as B}from"./chunk-AM5SUGHF.js";import{b as f}from"./chunk-JOALNFY3.js";import{A as d,x as y}from"./chunk-PLZXWZHY.js";import{createHash as A}from"crypto";var h=3;function H(e,t={}){let{scope:o,maxLoc:n=15,minLoc:i=h,limit:r,scanLimit:s}=t,l=p(e),u=L(e,{scope:o,maxLoc:n,scanLimit:s}).map(a=>x(e,a,l,i)).filter(a=>a!==null),c=v(u);return r?c.slice(0,r):c}function M(e,t,o={}){let{scope:n,maxLoc:i=15,minLoc:r=h,scanLimit:s}=o,l=p(e),u=L(e,{scope:n,maxLoc:i,scanLimit:s}).map(a=>x(e,a,l,r)).filter(a=>a!==null),c=u.find(a=>a.symbol===t);return c?u.filter(a=>a.symbol!==c.symbol&&a.normalizedBody===c.normalizedBody&&a.file!==c.file).sort(z).map(({normalizedBody:a,...C})=>C):[]}function I(e){let t=S(e);return f(t).replace(/\s+/g,"")}function v(e){let t=new Map;for(let n of e){if(n.normalizedBody.length<8)continue;let i=F(n.normalizedBody),r=t.get(i)??[];r.push(n),t.set(i,r)}let o=[];for(let[n,i]of t){let r=new Set(i.map(l=>l.file));if(i.length<2||r.size<2)continue;let s=[...i].sort(z).map(({normalizedBody:l,...u})=>u);o.push({hash:n,canonical:s[0],functions:s})}return o.sort((n,i)=>{let r=i.functions.length-n.functions.length;if(r!==0)return r;let s=b(i)-b(n);return s!==0?s:n.canonical.file.localeCompare(i.canonical.file)}),o}function L(e,t){let o=B(e,{scope:t.scope}).filter(n=>n.isFunctionLike&&!e.isIgnored(n.relativePath)).filter(n=>!d(e,n.relativePath,n.startLine,"similar")).filter(n=>m(n)<=t.maxLoc);return o.sort((n,i)=>m(i)-m(n)||n.relativePath.localeCompare(i.relativePath)),D(o,t.scanLimit)}function x(e,t,o,n){let i=E(e,t);if(!i||W(i)<n)return null;let r=P(e,t);return r?{symbol:t.symbol,shortName:g(t.symbol),file:t.relativePath,startLine:t.startLine,endLine:t.endLine,loc:m(t),ageCommits:o?.get(t.relativePath)?.commitsAgo??null,normalizedBody:r}:null}function P(e,t){let o=E(e,t);return o&&I(o)||null}function E(e,t){let o=y(e,t.relativePath);return o.length===0?null:o.slice(t.startLine,t.endLine+1).join(`
1
+ import{c as p}from"./chunk-CCIYWXX6.js";import{b as D}from"./chunk-B75HZHUP.js";import{a as m}from"./chunk-BGBBVSH4.js";import{d as g,u as B}from"./chunk-GVAF222T.js";import{b as f}from"./chunk-F74LZWCE.js";import{A as d,x as y}from"./chunk-7GAK2F3H.js";import{createHash as A}from"crypto";var h=3;function H(e,t={}){let{scope:o,maxLoc:n=15,minLoc:i=h,limit:r,scanLimit:s}=t,l=p(e),u=L(e,{scope:o,maxLoc:n,scanLimit:s}).map(a=>x(e,a,l,i)).filter(a=>a!==null),c=v(u);return r?c.slice(0,r):c}function M(e,t,o={}){let{scope:n,maxLoc:i=15,minLoc:r=h,scanLimit:s}=o,l=p(e),u=L(e,{scope:n,maxLoc:i,scanLimit:s}).map(a=>x(e,a,l,r)).filter(a=>a!==null),c=u.find(a=>a.symbol===t);return c?u.filter(a=>a.symbol!==c.symbol&&a.normalizedBody===c.normalizedBody&&a.file!==c.file).sort(z).map(({normalizedBody:a,...C})=>C):[]}function I(e){let t=S(e);return f(t).replace(/\s+/g,"")}function v(e){let t=new Map;for(let n of e){if(n.normalizedBody.length<8)continue;let i=F(n.normalizedBody),r=t.get(i)??[];r.push(n),t.set(i,r)}let o=[];for(let[n,i]of t){let r=new Set(i.map(l=>l.file));if(i.length<2||r.size<2)continue;let s=[...i].sort(z).map(({normalizedBody:l,...u})=>u);o.push({hash:n,canonical:s[0],functions:s})}return o.sort((n,i)=>{let r=i.functions.length-n.functions.length;if(r!==0)return r;let s=b(i)-b(n);return s!==0?s:n.canonical.file.localeCompare(i.canonical.file)}),o}function L(e,t){let o=B(e,{scope:t.scope}).filter(n=>n.isFunctionLike&&!e.isIgnored(n.relativePath)).filter(n=>!d(e,n.relativePath,n.startLine,"similar")).filter(n=>m(n)<=t.maxLoc);return o.sort((n,i)=>m(i)-m(n)||n.relativePath.localeCompare(i.relativePath)),D(o,t.scanLimit)}function x(e,t,o,n){let i=E(e,t);if(!i||W(i)<n)return null;let r=P(e,t);return r?{symbol:t.symbol,shortName:g(t.symbol),file:t.relativePath,startLine:t.startLine,endLine:t.endLine,loc:m(t),ageCommits:o?.get(t.relativePath)?.commitsAgo??null,normalizedBody:r}:null}function P(e,t){let o=E(e,t);return o&&I(o)||null}function E(e,t){let o=y(e,t.relativePath);return o.length===0?null:o.slice(t.startLine,t.endLine+1).join(`
2
2
  `)}function S(e){let t=e.indexOf("{"),o=e.lastIndexOf("}");if(t>=0&&o>t)return e.slice(t+1,o);let n=e.indexOf("=>");return n>=0?e.slice(n+2).replace(/;+\s*$/,""):e}function W(e){return S(e).split(/\r?\n/).map(o=>o.trim()).filter(o=>o.length>0).length}function F(e){return A("sha256").update(e).digest("hex").slice(0,16)}function z(e,t){let o=e.ageCommits??-1;return(t.ageCommits??-1)-o||e.file.localeCompare(t.file)||e.startLine-t.startLine}function b(e){return e.functions.reduce((t,o)=>t+o.loc,0)}export{H as a,M as b,I as c,v as d,P as e,E as f,S as g};
3
- //# sourceMappingURL=chunk-CSZOQ7YO.js.map
3
+ //# sourceMappingURL=chunk-2OMXFE64.js.map
@@ -1,2 +1,2 @@
1
- import{a as g}from"./chunk-DGXRDLV5.js";import{c as m}from"./chunk-NK76RSB6.js";import{a as u}from"./chunk-BGBBVSH4.js";import{d}from"./chunk-AM5SUGHF.js";function k(n,l={}){let{scope:e,minLoc:t=10,minCallees:a=6,limit:r=20,scanLimit:i}=l,s=new m(n);return g({candidates:()=>s.productionCallableDefinitions({scope:e,minLoc:t,excludeTypesFiles:!0,requireFunctionLikeSymbol:!0,sortByLocDesc:!0}),scanLimit:i,profile:{name:"extract-candidates"},prepare:o=>s.calleeEvidenceMap(o,{semantic:l.semantic!==!1}),evaluate:(o,c)=>c.incompleteSymbolIds.has(o.symbolId)||c.unavailableSymbolIds.has(o.symbolId)?null:h(o,c.rows.get(o.symbolId)??[],a),orderResults:(o,c)=>c.clusters.length-o.clusters.length||c.loc-o.loc,limit:r})}function h(n,l,e){let t=new Set(l.map(c=>c.symbol));if(t.size<e)return null;let a=S(t,l),r=y(t,a);if(r.length<2)return null;let i=C(r,a);if(i.length===0)return null;let s=d(n.symbol),o=p(s,t.size,r.length,i);return{symbol:n.symbol,shortName:s,relativePath:n.relativePath,startLine:n.startLine,endLine:n.endLine,loc:u(n),totalCallees:t.size,extractionKind:o.extractionKind,actionTier:"signal",evidenceReasons:o.evidenceReasons,recommendation:o.recommendation,clusters:i}}function p(n,l,e,t){let a=Math.max(...t.map(o=>o.callees.length)),r=Math.max(...t.map(o=>o.isolation)),i=[`${l} distinct callees across ${e} co-occurrence cluster(s)`,`${t.length} extractable cluster(s) passed size and isolation thresholds`,`largest extractable cluster has ${a} callees at ${Math.round(r*100)}% isolation`],s=f(n,l,e);return s!==null?{extractionKind:"workflow-orchestration",evidenceReasons:[...i,s],recommendation:"Review the isolated helper group as a possible private or feature-local helper, but keep the orchestration sequence together when it preserves the workflow."}:a>=6?{extractionKind:"broad-helper-cluster",evidenceReasons:[...i,"one isolated helper group is broad enough to deserve a named review"],recommendation:"Review whether the broad helper cluster has a stable concept name before extracting it; avoid creating a bag-of-helpers abstraction."}:{extractionKind:"cohesive-helper-cluster",evidenceReasons:i,recommendation:"Review the isolated callee group as a possible same-file or feature-local helper; extract only if the new name preserves the current behavior."}}function f(n,l,e){if(l>=10)return`callee breadth suggests orchestration: ${l} callees`;if(e>=4)return`multiple disconnected callee groups suggest orchestration: ${e} groups`;let t=b(n);return x.has(t)?`caller verb suggests orchestration: ${t}`:null}function b(n){return n.split(":").pop()?.replace(/\(\)$/,"").replace(/[^A-Za-z0-9_]/g,"").replace(/([a-z0-9])([A-Z])/g,"$1 $2").split(/[_\s-]+/).filter(Boolean)[0]?.toLowerCase()??""}var x=new Set(["apply","build","check","collect","create","diff","execute","find","handle","load","prepare","process","render","resolve","run","select","sync","update","validate","verify","write"]);function S(n,l){let e=new Map;for(let a of n)e.set(a,new Set);let t=new Map;for(let a of l){let r=t.get(a.chunkId);r||(r=new Set,t.set(a.chunkId,r)),r.add(a.symbol)}for(let a of t.values()){let r=[...a];for(let i=0;i<r.length;i++)for(let s=i+1;s<r.length;s++)e.get(r[i]).add(r[s]),e.get(r[s]).add(r[i])}return e}function y(n,l){let e=new Set,t=[];for(let a of n){if(e.has(a))continue;let r=new Set,i=[a];for(;i.length>0;){let s=i.pop();if(!e.has(s)){e.add(s),r.add(s);for(let o of l.get(s)??[])e.has(o)||i.push(o)}}t.push(r)}return t}function C(n,l){return n.filter(e=>e.size>=3).map(e=>v(e,n,l)).filter(e=>e.isolation>.5).sort((e,t)=>t.isolation-e.isolation)}function v(n,l,e){let t=new Set;for(let s of l)if(s!==n)for(let o of s)t.add(o);let a=0;for(let s of n)for(let o of e.get(s)??[])t.has(o)&&a++;let r=n.size*t.size,i=r>0?1-a/r:1;return{callees:[...n].map(d),isolation:i}}export{k as a};
2
- //# sourceMappingURL=chunk-57KFVPVZ.js.map
1
+ import{a as g}from"./chunk-DGXRDLV5.js";import{c as m}from"./chunk-BPKNP3KZ.js";import{a as u}from"./chunk-BGBBVSH4.js";import{d}from"./chunk-GVAF222T.js";function k(n,l={}){let{scope:e,minLoc:t=10,minCallees:a=6,limit:r=20,scanLimit:i}=l,s=new m(n);return g({candidates:()=>s.productionCallableDefinitions({scope:e,minLoc:t,excludeTypesFiles:!0,requireFunctionLikeSymbol:!0,sortByLocDesc:!0}),scanLimit:i,profile:{name:"extract-candidates"},prepare:o=>s.calleeEvidenceMap(o,{semantic:l.semantic!==!1}),evaluate:(o,c)=>c.incompleteSymbolIds.has(o.symbolId)||c.unavailableSymbolIds.has(o.symbolId)?null:h(o,c.rows.get(o.symbolId)??[],a),orderResults:(o,c)=>c.clusters.length-o.clusters.length||c.loc-o.loc,limit:r})}function h(n,l,e){let t=new Set(l.map(c=>c.symbol));if(t.size<e)return null;let a=S(t,l),r=y(t,a);if(r.length<2)return null;let i=C(r,a);if(i.length===0)return null;let s=d(n.symbol),o=p(s,t.size,r.length,i);return{symbol:n.symbol,shortName:s,relativePath:n.relativePath,startLine:n.startLine,endLine:n.endLine,loc:u(n),totalCallees:t.size,extractionKind:o.extractionKind,actionTier:"signal",evidenceReasons:o.evidenceReasons,recommendation:o.recommendation,clusters:i}}function p(n,l,e,t){let a=Math.max(...t.map(o=>o.callees.length)),r=Math.max(...t.map(o=>o.isolation)),i=[`${l} distinct callees across ${e} co-occurrence cluster(s)`,`${t.length} extractable cluster(s) passed size and isolation thresholds`,`largest extractable cluster has ${a} callees at ${Math.round(r*100)}% isolation`],s=f(n,l,e);return s!==null?{extractionKind:"workflow-orchestration",evidenceReasons:[...i,s],recommendation:"Review the isolated helper group as a possible private or feature-local helper, but keep the orchestration sequence together when it preserves the workflow."}:a>=6?{extractionKind:"broad-helper-cluster",evidenceReasons:[...i,"one isolated helper group is broad enough to deserve a named review"],recommendation:"Review whether the broad helper cluster has a stable concept name before extracting it; avoid creating a bag-of-helpers abstraction."}:{extractionKind:"cohesive-helper-cluster",evidenceReasons:i,recommendation:"Review the isolated callee group as a possible same-file or feature-local helper; extract only if the new name preserves the current behavior."}}function f(n,l,e){if(l>=10)return`callee breadth suggests orchestration: ${l} callees`;if(e>=4)return`multiple disconnected callee groups suggest orchestration: ${e} groups`;let t=b(n);return x.has(t)?`caller verb suggests orchestration: ${t}`:null}function b(n){return n.split(":").pop()?.replace(/\(\)$/,"").replace(/[^A-Za-z0-9_]/g,"").replace(/([a-z0-9])([A-Z])/g,"$1 $2").split(/[_\s-]+/).filter(Boolean)[0]?.toLowerCase()??""}var x=new Set(["apply","build","check","collect","create","diff","execute","find","handle","load","prepare","process","render","resolve","run","select","sync","update","validate","verify","write"]);function S(n,l){let e=new Map;for(let a of n)e.set(a,new Set);let t=new Map;for(let a of l){let r=t.get(a.chunkId);r||(r=new Set,t.set(a.chunkId,r)),r.add(a.symbol)}for(let a of t.values()){let r=[...a];for(let i=0;i<r.length;i++)for(let s=i+1;s<r.length;s++)e.get(r[i]).add(r[s]),e.get(r[s]).add(r[i])}return e}function y(n,l){let e=new Set,t=[];for(let a of n){if(e.has(a))continue;let r=new Set,i=[a];for(;i.length>0;){let s=i.pop();if(!e.has(s)){e.add(s),r.add(s);for(let o of l.get(s)??[])e.has(o)||i.push(o)}}t.push(r)}return t}function C(n,l){return n.filter(e=>e.size>=3).map(e=>v(e,n,l)).filter(e=>e.isolation>.5).sort((e,t)=>t.isolation-e.isolation)}function v(n,l,e){let t=new Set;for(let s of l)if(s!==n)for(let o of s)t.add(o);let a=0;for(let s of n)for(let o of e.get(s)??[])t.has(o)&&a++;let r=n.size*t.size,i=r>0?1-a/r:1;return{callees:[...n].map(d),isolation:i}}export{k as a};
2
+ //# sourceMappingURL=chunk-2XBJRZEM.js.map
@@ -1,7 +1,7 @@
1
- import{a as A}from"./chunk-JXHLB7TP.js";import{a as T,b,c as W}from"./chunk-NIO346UL.js";import{a as R}from"./chunk-DGXRDLV5.js";import{a as N}from"./chunk-B75HZHUP.js";import{b as C,c as j}from"./chunk-NK76RSB6.js";import{a as _}from"./chunk-BGBBVSH4.js";import{b as E}from"./chunk-BH5CE4LN.js";import{A as P,d,e as w,k}from"./chunk-AM5SUGHF.js";import{i as L}from"./chunk-JOALNFY3.js";import{d as x}from"./chunk-3LCDIREB.js";import{basename as m,extname as I}from"path";function ce(t,n){let{scope:e,maxLoc:i=15,limit:r=30,scanLimit:o}=n??{},a=new j(t),l=K(a.fileDependencyGraph(e));return R({candidates:()=>z(t,a,e,i),orderCandidates:N,scanLimit:o,profile:{name:"wrapper-candidates"},prepare:c=>({...J(t,a,c,{semantic:n?.semantic!==!1}),reverseFanIn:l}),evaluate:(c,u)=>q(t,a,c,u),orderResults:(c,u)=>u.callerFanIn-c.callerFanIn||u.loc-c.loc,limit:r})}function J(t,n,e,i){let r=T(t,n),o=b(r.forDefinitions(e,{semantic:!1,sourceFallback:!1})),a=[];i.semantic&&x("wrapper.semantic-candidates",()=>{a=e.filter(s=>y(t,n,s,o).length<=1)},()=>({symbols:e.length,semanticCandidates:a.length}));let l=r.forDefinitions(a,{semantic:!0,sourceFallback:!1}),c=b(l),u=new Set([...l.values()].filter(s=>s.semanticIncomplete).map(s=>s.definition.symbolId)),f=new Set([...l.values()].filter(s=>s.semanticUnavailable).map(s=>s.definition.symbolId)),g=c.size===0?o:C(o,c),h=new Map(e.map(s=>[s.symbolId,s])),S=new Map;for(let s of e){let F=y(t,n,s,g);if(F.length>1||(S.set(s.symbolId,s),F.length!==1))continue;let D=F[0],v=O(t,s.symbolId,D);if(!v)continue;let p=B(n,t,D,s.symbol,v);p?.isFunctionLike&&h.has(p.symbolId)&&S.set(p.symbolId,h.get(p.symbolId))}let M=[...S.values()];return{callerFileMap:M.length===0?g:C(g,b(r.forDefinitions(M,{semantic:!1,sourceFallback:!0}))),incompleteSymbolIds:u,unavailableSymbolIds:f}}function q(t,n,e,i){if(i.incompleteSymbolIds.has(e.symbolId)||i.unavailableSymbolIds.has(e.symbolId))return null;let r=y(t,n,e,i.callerFileMap);if(r.length!==1)return null;let o=r[0],a=O(t,e.symbolId,o);if(!a)return null;let l=B(n,t,o,e.symbol,a);if(l&&k(l.symbol))return null;let{fanIn:c,source:u}=G(i.callerFileMap,i.reverseFanIn,o,l);if(u==="function"?c<=3:c<=5)return null;let f=Q(t,e,o,l);return{symbol:e.symbol,shortName:d(e.symbol),file:e.relativePath,startLine:e.startLine,endLine:e.endLine,loc:_(e),singleCaller:l?.symbol??"",singleCallerShort:l?.isFunctionLike?d(l.symbol):m(o),callerFanIn:c,actionTier:f.length>0?"signal":"direct",boundaryEvidence:f}}function z(t,n,e,i){return n.productionCallableDefinitions({scope:e,minLoc:2,maxLoc:i,requireFunctionLikeSymbol:!0,excludeRootedSymbols:!0,excludeRustTraitImplMembers:!0}).filter(r=>!L(t,r))}function y(t,n,e,i){let r=m(e.relativePath,I(e.relativePath)),o=[...i.get(e.symbolId)??[]].filter(a=>a!==e.relativePath).filter(a=>m(a,I(a))!==r).filter(a=>{let l=n.fileKind(a);return l!=="barrel"&&l!=="entry"&&l!=="test"});return W(t,e,o).realConsumers}function O(t,n,e){return t.get(`SELECT c.start_line, c.end_line
1
+ import{a as A}from"./chunk-QMOZZ2VX.js";import{a as T,b,c as W}from"./chunk-QY7QB7I6.js";import{a as R}from"./chunk-DGXRDLV5.js";import{a as N}from"./chunk-B75HZHUP.js";import{b as C,c as j}from"./chunk-BPKNP3KZ.js";import{a as _}from"./chunk-BGBBVSH4.js";import{b as E}from"./chunk-J7AMBVWF.js";import{A as P,d,e as w,k}from"./chunk-GVAF222T.js";import{i as L}from"./chunk-F74LZWCE.js";import{d as x}from"./chunk-3LCDIREB.js";import{basename as m,extname as I}from"path";function ce(t,n){let{scope:e,maxLoc:i=15,limit:r=30,scanLimit:o}=n??{},a=new j(t),l=K(a.fileDependencyGraph(e));return R({candidates:()=>z(t,a,e,i),orderCandidates:N,scanLimit:o,profile:{name:"wrapper-candidates"},prepare:c=>({...J(t,a,c,{semantic:n?.semantic!==!1}),reverseFanIn:l}),evaluate:(c,u)=>q(t,a,c,u),orderResults:(c,u)=>u.callerFanIn-c.callerFanIn||u.loc-c.loc,limit:r})}function J(t,n,e,i){let r=T(t,n),o=b(r.forDefinitions(e,{semantic:!1,sourceFallback:!1})),a=[];i.semantic&&x("wrapper.semantic-candidates",()=>{a=e.filter(s=>y(t,n,s,o).length<=1)},()=>({symbols:e.length,semanticCandidates:a.length}));let l=r.forDefinitions(a,{semantic:!0,sourceFallback:!1}),c=b(l),u=new Set([...l.values()].filter(s=>s.semanticIncomplete).map(s=>s.definition.symbolId)),f=new Set([...l.values()].filter(s=>s.semanticUnavailable).map(s=>s.definition.symbolId)),g=c.size===0?o:C(o,c),h=new Map(e.map(s=>[s.symbolId,s])),S=new Map;for(let s of e){let F=y(t,n,s,g);if(F.length>1||(S.set(s.symbolId,s),F.length!==1))continue;let D=F[0],v=O(t,s.symbolId,D);if(!v)continue;let p=B(n,t,D,s.symbol,v);p?.isFunctionLike&&h.has(p.symbolId)&&S.set(p.symbolId,h.get(p.symbolId))}let M=[...S.values()];return{callerFileMap:M.length===0?g:C(g,b(r.forDefinitions(M,{semantic:!1,sourceFallback:!0}))),incompleteSymbolIds:u,unavailableSymbolIds:f}}function q(t,n,e,i){if(i.incompleteSymbolIds.has(e.symbolId)||i.unavailableSymbolIds.has(e.symbolId))return null;let r=y(t,n,e,i.callerFileMap);if(r.length!==1)return null;let o=r[0],a=O(t,e.symbolId,o);if(!a)return null;let l=B(n,t,o,e.symbol,a);if(l&&k(l.symbol))return null;let{fanIn:c,source:u}=G(i.callerFileMap,i.reverseFanIn,o,l);if(u==="function"?c<=3:c<=5)return null;let f=Q(t,e,o,l);return{symbol:e.symbol,shortName:d(e.symbol),file:e.relativePath,startLine:e.startLine,endLine:e.endLine,loc:_(e),singleCaller:l?.symbol??"",singleCallerShort:l?.isFunctionLike?d(l.symbol):m(o),callerFanIn:c,actionTier:f.length>0?"signal":"direct",boundaryEvidence:f}}function z(t,n,e,i){return n.productionCallableDefinitions({scope:e,minLoc:2,maxLoc:i,requireFunctionLikeSymbol:!0,excludeRootedSymbols:!0,excludeRustTraitImplMembers:!0}).filter(r=>!L(t,r))}function y(t,n,e,i){let r=m(e.relativePath,I(e.relativePath)),o=[...i.get(e.symbolId)??[]].filter(a=>a!==e.relativePath).filter(a=>m(a,I(a))!==r).filter(a=>{let l=n.fileKind(a);return l!=="barrel"&&l!=="entry"&&l!=="test"});return W(t,e,o).realConsumers}function O(t,n,e){return t.get(`SELECT c.start_line, c.end_line
2
2
  FROM mentions m
3
3
  JOIN chunks c ON m.chunk_id = c.id
4
4
  JOIN documents d ON c.document_id = d.id
5
5
  WHERE m.symbol_id = ? AND m.role != 1 AND d.relative_path = ?
6
6
  LIMIT 1`,n,e)}function B(t,n,e,i,r){let o=t.definitionsForFile(e),a=H(n,e,i,r.start_line,r.end_line);return P(o,a)}function G(t,n,e,i){if(i?.isFunctionLike){let r=[...t.get(i.symbolId)??[]].filter(o=>o!==i.relativePath);if(r.length>0)return{fanIn:r.length,source:"function"}}return{fanIn:U(n,e),source:"file"}}function H(t,n,e,i,r){let o=w(e);if(!o)return i;let a=E(t,n).get(o);if(!a||a.length===0)return i;for(let l of a)if(l>=i&&l<=r)return l;return i}function K(t){let n=new Map;for(let[e,i]of t){n.has(e)||n.set(e,n.get(e)??0);for(let r of i)n.set(r,(n.get(r)??0)+1)}return n}function U(t,n){let e=t.get(n)??0;if(e>0)return e;let i=m(n,I(n)),r=0;for(let[o,a]of t)o!==n&&m(o,I(o))===i&&a>r&&(r=a);return r}function Q(t,n,e,i){return A(t,n.relativePath,n.startLine,"wrapper","explicit ignore-wrapper comment",[{label:"wrapper name",value:d(n.symbol)},{label:"caller name",value:i?.symbol?d(i.symbol):m(e)},{label:"wrapper path",value:n.relativePath},{label:"caller path",value:e}])}export{ce as a};
7
- //# sourceMappingURL=chunk-PFPHS4NO.js.map
7
+ //# sourceMappingURL=chunk-2Z7K66D7.js.map
@@ -1,2 +1,2 @@
1
- import{a as s}from"./chunk-B2E3HZ2A.js";function l(d,c,o){if(o.length===0)return[];let e=new Set(o),n=s(d),r=new Set;if(c==="forward")for(let t of e)for(let i of n.get(t)??[])e.has(i)||r.add(i);else for(let[t,i]of n)if(!e.has(t))for(let _ of e)i.has(_)&&r.add(t);return[...r].sort()}export{l as a};
2
- //# sourceMappingURL=chunk-5WXOEJ4G.js.map
1
+ import{a as s}from"./chunk-GV2CEZCW.js";function l(d,c,o){if(o.length===0)return[];let e=new Set(o),n=s(d),r=new Set;if(c==="forward")for(let t of e)for(let i of n.get(t)??[])e.has(i)||r.add(i);else for(let[t,i]of n)if(!e.has(t))for(let _ of e)i.has(_)&&r.add(t);return[...r].sort()}export{l as a};
2
+ //# sourceMappingURL=chunk-356EZBIP.js.map
@@ -1,2 +1,2 @@
1
- import{c as y}from"./chunk-NK76RSB6.js";import{b as h,e as b}from"./chunk-3XFJUWJE.js";import{d as u,e as i,g as c}from"./chunk-AM5SUGHF.js";import{f as m}from"./chunk-JOALNFY3.js";import{z as l}from"./chunk-RVYLJDXC.js";import{basename as f}from"path";function g(t,o){let n=o.className,e=h(t,n);return e.match?e.total>1?{kind:"ambiguous",query:n,total:e.total,candidates:[p(e.match),...e.candidates]}:{kind:"matched",query:n,owner:L(e.match),methods:M(t,e.match)}:{kind:"missing",query:n,suggestions:b(t,n,5)}}function j(t,o){let n=g(t,{className:o});if(n.kind==="missing")throw new Error(`No class definition matched '${o}'.`);if(n.kind==="ambiguous"){let e=n.candidates.map(s=>`${s.relativePath}:${s.startLine+1}`).join(", ");throw new Error(`Class '${o}' is ambiguous across ${n.total} definitions (${e}). Qualify it with a path or exact SCIP symbol identity.`)}return n.methods}function M(t,o){let n=i(o.symbol),s=new y(t).definitionsForFile(o.relativePath).filter(r=>c(r.symbol)),a=s.filter(r=>r.parentTypeName===n||r.symbol.includes(n)),d=(a.length>0?a:S(f(o.relativePath))===n?s.filter(r=>r.symbol.includes("<invalid-global-code>")):[]).map(r=>({startLine:r.startLine,endLine:r.endLine,name:i(r.symbol)}));return l(o.relativePath)!=="clojure"?d:R(d,w(t,o))}function p(t){return{symbol:t.symbol,shortName:u(t.symbol),relativePath:t.relativePath,startLine:t.startLine}}function L(t){return{...p(t),endLine:t.endLine}}function S(t){return t.replace(/\.[^.]+$/,"")}function w(t,o){let n=i(o.symbol);return n?(m(t,o.relativePath)?.clojureMembers??[]).filter(e=>e.ownerName===n).map(e=>({startLine:e.startLine,endLine:e.endLine,name:e.memberName})):[]}function R(t,o){let n=new Map;for(let e of[...t,...o])n.set(`${e.name}:${e.startLine}:${e.endLine}`,e);return[...n.values()].sort((e,s)=>e.startLine-s.startLine||e.endLine-s.endLine)}export{g as a,j as b};
2
- //# sourceMappingURL=chunk-DLC6JDN7.js.map
1
+ import{c as y}from"./chunk-BPKNP3KZ.js";import{b as h,e as b}from"./chunk-SGMNWYTH.js";import{d as u,e as i,g as c}from"./chunk-GVAF222T.js";import{f as m}from"./chunk-F74LZWCE.js";import{z as l}from"./chunk-ICUL7XRT.js";import{basename as f}from"path";function g(t,o){let n=o.className,e=h(t,n);return e.match?e.total>1?{kind:"ambiguous",query:n,total:e.total,candidates:[p(e.match),...e.candidates]}:{kind:"matched",query:n,owner:L(e.match),methods:M(t,e.match)}:{kind:"missing",query:n,suggestions:b(t,n,5)}}function j(t,o){let n=g(t,{className:o});if(n.kind==="missing")throw new Error(`No class definition matched '${o}'.`);if(n.kind==="ambiguous"){let e=n.candidates.map(s=>`${s.relativePath}:${s.startLine+1}`).join(", ");throw new Error(`Class '${o}' is ambiguous across ${n.total} definitions (${e}). Qualify it with a path or exact SCIP symbol identity.`)}return n.methods}function M(t,o){let n=i(o.symbol),s=new y(t).definitionsForFile(o.relativePath).filter(r=>c(r.symbol)),a=s.filter(r=>r.parentTypeName===n||r.symbol.includes(n)),d=(a.length>0?a:S(f(o.relativePath))===n?s.filter(r=>r.symbol.includes("<invalid-global-code>")):[]).map(r=>({startLine:r.startLine,endLine:r.endLine,name:i(r.symbol)}));return l(o.relativePath)!=="clojure"?d:R(d,w(t,o))}function p(t){return{symbol:t.symbol,shortName:u(t.symbol),relativePath:t.relativePath,startLine:t.startLine}}function L(t){return{...p(t),endLine:t.endLine}}function S(t){return t.replace(/\.[^.]+$/,"")}function w(t,o){let n=i(o.symbol);return n?(m(t,o.relativePath)?.clojureMembers??[]).filter(e=>e.ownerName===n).map(e=>({startLine:e.startLine,endLine:e.endLine,name:e.memberName})):[]}function R(t,o){let n=new Map;for(let e of[...t,...o])n.set(`${e.name}:${e.startLine}:${e.endLine}`,e);return[...n.values()].sort((e,s)=>e.startLine-s.startLine||e.endLine-s.endLine)}export{g as a,j as b};
2
+ //# sourceMappingURL=chunk-3H2H5ODK.js.map
@@ -1,2 +1,2 @@
1
- import{c as m}from"./chunk-UWB5WMC2.js";var v=/:\d+(?:-\d+)?$/u;function D(d,t,c={}){let p=c.direction??"backward",n=c.maxDepth??3;if(!Number.isSafeInteger(n)||n<0)throw new RangeError(`Dependence-slice depth must be a non-negative safe integer; received ${n}.`);let r=v.test(t),o=m(d,r?{locations:[t]}:{symbols:[t]},{families:["execution","runtime","dataflow","ownership"],maxDepth:n+1,maxEdges:c.maxEdges??200}),f=new Set(o.targets.flatMap(e=>e.nodeIds)),a=new Set(f),l=new Map;u(o.edges,a,l,0);for(let e=1;e<=n;e+=1){let s=[];for(let i of o.edges)if(p==="backward"?a.has(i.to.id):a.has(i.from.id)){let g=p==="backward"?i.from.id:i.to.id;if(a.has(g))continue;s.push(g),l.set(i.id,e)}if(s.length===0)break;for(let i of s)a.add(i);u(o.edges,a,l,e)}let h=o.edges.filter(e=>a.has(e.from.id)&&a.has(e.to.id)).filter(e=>l.has(e.id)||e.family==="ownership").map(e=>({...e,traversalDepth:l.get(e.id)??0,supporting:e.family!=="dataflow"&&!y(e)})).sort((e,s)=>e.traversalDepth-s.traversalDepth||e.family.localeCompare(s.family)||e.from.label.localeCompare(s.from.label)||e.to.label.localeCompare(s.to.label));return{kind:"dependence-slice",direction:p,criterion:t,targets:o.targets,nodeIds:[...a].sort(),edges:h,coverage:{status:o.coverage.status,criterionKind:r?"source-location-summary":"symbol-summary",basis:"partial-system-dependence-graph",analysisBasis:"typescript-cfg-reaching-definitions-plus-system-edges",providers:["typescript-local-dependence","bounded-static-value-flow"],graph:o.coverage,unsupportedRelations:["general heap alias and cross-instance field points-to flow","exceptional control and value flow","closure invocation order","downstream local definition-use after a call result","unresolved dynamic dispatch"]}}}function u(d,t,c,p){let n=!0;for(;n;){n=!1;for(let r of d)r.family!=="ownership"||!t.has(r.from.id)||t.has(r.to.id)||(t.add(r.to.id),c.set(r.id,p),n=!0)}}function y(d){return d.semanticFamily==="control"&&d.sourceKind==="control-dependence"}export{D as a};
2
- //# sourceMappingURL=chunk-HBQGKMM3.js.map
1
+ import{c as m}from"./chunk-I3OK27P7.js";var v=/:\d+(?:-\d+)?$/u;function D(d,t,c={}){let p=c.direction??"backward",n=c.maxDepth??3;if(!Number.isSafeInteger(n)||n<0)throw new RangeError(`Dependence-slice depth must be a non-negative safe integer; received ${n}.`);let r=v.test(t),o=m(d,r?{locations:[t]}:{symbols:[t]},{families:["execution","runtime","dataflow","ownership"],maxDepth:n+1,maxEdges:c.maxEdges??200}),f=new Set(o.targets.flatMap(e=>e.nodeIds)),a=new Set(f),l=new Map;u(o.edges,a,l,0);for(let e=1;e<=n;e+=1){let s=[];for(let i of o.edges)if(p==="backward"?a.has(i.to.id):a.has(i.from.id)){let g=p==="backward"?i.from.id:i.to.id;if(a.has(g))continue;s.push(g),l.set(i.id,e)}if(s.length===0)break;for(let i of s)a.add(i);u(o.edges,a,l,e)}let h=o.edges.filter(e=>a.has(e.from.id)&&a.has(e.to.id)).filter(e=>l.has(e.id)||e.family==="ownership").map(e=>({...e,traversalDepth:l.get(e.id)??0,supporting:e.family!=="dataflow"&&!y(e)})).sort((e,s)=>e.traversalDepth-s.traversalDepth||e.family.localeCompare(s.family)||e.from.label.localeCompare(s.from.label)||e.to.label.localeCompare(s.to.label));return{kind:"dependence-slice",direction:p,criterion:t,targets:o.targets,nodeIds:[...a].sort(),edges:h,coverage:{status:o.coverage.status,criterionKind:r?"source-location-summary":"symbol-summary",basis:"partial-system-dependence-graph",analysisBasis:"typescript-cfg-reaching-definitions-plus-system-edges",providers:["typescript-local-dependence","bounded-static-value-flow"],graph:o.coverage,unsupportedRelations:["general heap alias and cross-instance field points-to flow","exceptional control and value flow","closure invocation order","downstream local definition-use after a call result","unresolved dynamic dispatch"]}}}function u(d,t,c,p){let n=!0;for(;n;){n=!1;for(let r of d)r.family!=="ownership"||!t.has(r.from.id)||t.has(r.to.id)||(t.add(r.to.id),c.set(r.id,p),n=!0)}}function y(d){return d.semanticFamily==="control"&&d.sourceKind==="control-dependence"}export{D as a};
2
+ //# sourceMappingURL=chunk-3LQJRS4I.js.map
@@ -1,6 +1,6 @@
1
- import{a as le}from"./chunk-VCWAJPXQ.js";import{a as re}from"./chunk-JUO3Z644.js";import{b as _}from"./chunk-U2XX3BT4.js";import{a as se}from"./chunk-WH5SYOMD.js";import{b as ie}from"./chunk-DVYG3JTA.js";import{a as ne,b as oe}from"./chunk-IWAMYGPN.js";import{b as ee}from"./chunk-VG55NFXF.js";import{f as te}from"./chunk-CSZOQ7YO.js";import{a as X}from"./chunk-OMBRP7BB.js";import{a as Z}from"./chunk-SJZQ2PTZ.js";import{b as Q}from"./chunk-FEBLLMTL.js";import{a as J}from"./chunk-BX2U3QQV.js";import{d as V}from"./chunk-VLTUX4IF.js";import{b as Y}from"./chunk-HIEXRDJF.js";import{a as W}from"./chunk-IVJJNVSX.js";import{a as D}from"./chunk-A7XQT7MH.js";import{b as q}from"./chunk-4IFISPQW.js";import{a as H,c as K}from"./chunk-3XFJUWJE.js";import{a as G}from"./chunk-ZOEDRCR4.js";import{e as P,t as w}from"./chunk-AM5SUGHF.js";import{d as z}from"./chunk-3LCDIREB.js";function ae(e){let t=new Set(e.filter(o=>o.definition?.isFunctionLike).map(o=>`${o.role}:${o.definition.relativePath}`));return e.flatMap(o=>o.definition?!o.definition.isFunctionLike&&t.has(`${o.role}:${o.definition.relativePath}`)?[]:[{definition:o.definition,role:o.role}]:[])}var pe=6,I=10,B=3,N=8,he=.7,ce=24,M=200,ye=12,ue=80,me=600;function Ve(e,t,o={}){let l=o.impactDepth??3,m=o.sliceDepth??3,u=o.semantic,c=Ee(t)?be(e,t):null,a=c?c.primary?.symbol??null:t,s=a!==null,d=s?f("trace",a,()=>ie(e,a,{semantic:u,referenceContext:ye}),i=>({definitions:i.definitions.length,references:i.referencedBy.length})):{definitions:[],referencedBy:[],claimSupport:null},g=s?f("call-graph",a,()=>X(e,a,{semantic:u}),i=>({callers:i?.callers.length??0,callees:i?.callees.length??0})):null,n=s?f("complexity",a,()=>W(e,a,{semantic:u}),i=>({callees:i?.calleeCount??0})):null,y=s?f("dataflow",a,()=>ee(e,a,{semantic:u}),i=>({references:i?.usageSites.length??0,producers:i?.producers.length??0,consumers:i?.consumers.length??0})):null,r=s?f("backward-slice",a,()=>_(e,a,{direction:"backward",maxDepth:m,semantic:u}),i=>({maxDepth:m,connectedSymbols:i?.connectedSymbols.length??0})):null,C=s?f("forward-slice",a,()=>_(e,a,{direction:"forward",maxDepth:m,semantic:u}),i=>({maxDepth:m,connectedSymbols:i?.connectedSymbols.length??0})):null,h=s?f("affected",a,()=>q(e,a,{maxDepth:l,scope:o.scope}),i=>({maxDepth:l,affectedSymbols:i.rows.length,coverage:i.coverage.status})):null,b=h?.rows??[],p=h?.coverage??null,S=s?f("reuse-candidates",a,()=>D(e,a,{minSimilarity:.4,limit:5,semantic:u,sourceCandidateMode:"target-pruned"}),i=>({candidates:i.length,direct:i.filter(Ce=>Ce.actionTier==="direct").length})):[],L=s?H(e,a)?.symbol??null:null,k=s?f("affected-consumer-reuse",a,()=>Re(d,L,i=>D(e,i,{minSimilarity:.4,limit:I,semantic:u,sourceCandidateMode:"target-pruned"}),{consumerLimit:pe,perConsumerSearchLimit:I,perConsumerCandidateLimit:B,candidateLimit:N}),i=>({totalConsumers:i.coverage.totalConsumers,analyzedConsumers:i.coverage.analyzedConsumers,candidates:i.candidates.length})):ve(),A=f("change-surface",t,()=>Z(e,t,{semantic:u}),i=>({symbols:i?.symbols.length??0,externalConsumers:i?.totalExternalConsumers??0})),R=f("system",t,()=>re(e,t),i=>({files:i.files.length,symbols:i.symbols.length})),T=R.files.length===1,F=f("deps",t,()=>T?R.dependsOn.map(i=>({relativePath:i,edgeBasis:"symbol-references",evidence:"cross-file SCIP references plus resolved source imports"})):ne(e,t),i=>({files:i.length,reusedSystem:T})),O=f("rdeps",t,()=>T?R.dependedOnBy.map(i=>({relativePath:i,edgeBasis:"symbol-references",evidence:"cross-file SCIP references plus resolved source imports"})):oe(e,t),i=>({files:i.length,reusedSystem:T})),U=f("surface",t,()=>le(e,t),i=>({consumers:i.length})),v={symbol:d.definitions.length>0||d.referencedBy.length>0||g!==null||n!==null||y!==null||r!==null||C!==null||b.length>0,file:A!==null||F.length>0||O.length>0,module:R.files.length>0||R.symbols.length>0||U.length>0},x=[];c&&!c.primary&&c.callableCount>1&&x.push(`File target has ${c.callableCount} callable symbols; use one callable name for compiler-resolved flow.`);let $=[...new Set(d.referencedBy.map(i=>i.relativePath))];$.length>0&&$.every(i=>G(i)==="test")&&x.push("Only test references were found for this target. For replacement or retirement work, map the currently wired owner or one production entry point before planning; this target does not describe the live affected surface."),!v.symbol&&!v.file&&!v.module&&x.push("No symbol, file, or module matched target."),p&&p.status!=="accounted"&&x.push(`Possible-impact coverage is ${p.status}: ${p.reasons.join(" ")}`);let j=A?.file??d.definitions[0]?.relativePath??null;return{target:t,...c?.primary?{primaryCallable:{symbol:c.primary.symbol,shortName:P(c.primary.symbol),file:c.primary.relativePath}}:{},matched:v,history:f("history",j??t,()=>Pe(e,j,o.gitHead)),trace:ge(d),callGraph:g,complexity:n,dataflow:y,backwardSlice:r,forwardSlice:C,affected:b,affectedCoverage:p,changeSurface:A,deps:F,rdeps:O,system:R,surface:U,reuseCandidates:S,affectedConsumerReuse:k,sourcePacket:Se(e,L,d,k,S),warnings:x}}function ge(e){return{definitions:e.definitions,referencedBy:e.referencedBy.map(t=>({relativePath:t.relativePath,line:t.line,enclosingSymbol:t.enclosingSymbol,enclosingShort:t.enclosingShort}))}}function be(e,t){let o=Y(e,t);if(o.length!==1)return{primary:null,callableCount:0};let l=w(e,o[0]).filter(c=>c.isFunctionLike),m=l.filter(c=>c.enclosingSymbol===null),u=m.length>0?m:l;return{primary:u.length===1?u[0]:null,callableCount:u.length}}function Se(e,t,o,l,m){let u=[...t?[{definition:fe(e,t),role:"target"}]:[],...[...l.candidates.map(n=>n.candidate),...m].map(n=>({definition:fe(e,n.symbolB),role:"reuse-candidate"}))],c=new Map;for(let n of ae(u)){if(c.has(n.definition.symbol))continue;let y=n.role==="target"?M:ue,r=n.definition.endLine<=n.definition.startLine?V(e,n.definition.relativePath,n.definition.startLine,y):null,C=r?.unitType?r.source:te(e,n.definition);if(!C)continue;let h=C.split(`
1
+ import{a as le}from"./chunk-KFTHI2R6.js";import{a as re}from"./chunk-UW6KD57C.js";import{b as _}from"./chunk-AGGR2BKS.js";import{a as se}from"./chunk-2E6OUPCF.js";import{b as ie}from"./chunk-ELYMY5S2.js";import{a as ne,b as oe}from"./chunk-W7YLRXZE.js";import{b as ee}from"./chunk-F5CJO5JN.js";import{f as te}from"./chunk-2OMXFE64.js";import{a as X}from"./chunk-SB53KPWA.js";import{a as Z}from"./chunk-DWBAESVW.js";import{b as Q}from"./chunk-OQUCBKOI.js";import{a as J}from"./chunk-CCIYWXX6.js";import{d as V}from"./chunk-VGWZ4MOY.js";import{b as Y}from"./chunk-LMTSB3TB.js";import{a as W}from"./chunk-UMEPSVKT.js";import{a as D}from"./chunk-SUE7SHZL.js";import{b as q}from"./chunk-SA7G6GJX.js";import{a as H,c as K}from"./chunk-SGMNWYTH.js";import{a as G}from"./chunk-BRQL7AFJ.js";import{e as P,t as w}from"./chunk-GVAF222T.js";import{d as z}from"./chunk-3LCDIREB.js";function ae(e){let t=new Set(e.filter(o=>o.definition?.isFunctionLike).map(o=>`${o.role}:${o.definition.relativePath}`));return e.flatMap(o=>o.definition?!o.definition.isFunctionLike&&t.has(`${o.role}:${o.definition.relativePath}`)?[]:[{definition:o.definition,role:o.role}]:[])}var pe=6,I=10,B=3,N=8,he=.7,ce=24,M=200,ye=12,ue=80,me=600;function Ve(e,t,o={}){let l=o.impactDepth??3,m=o.sliceDepth??3,u=o.semantic,c=Ee(t)?be(e,t):null,a=c?c.primary?.symbol??null:t,s=a!==null,d=s?f("trace",a,()=>ie(e,a,{semantic:u,referenceContext:ye}),i=>({definitions:i.definitions.length,references:i.referencedBy.length})):{definitions:[],referencedBy:[],claimSupport:null},g=s?f("call-graph",a,()=>X(e,a,{semantic:u}),i=>({callers:i?.callers.length??0,callees:i?.callees.length??0})):null,n=s?f("complexity",a,()=>W(e,a,{semantic:u}),i=>({callees:i?.calleeCount??0})):null,y=s?f("dataflow",a,()=>ee(e,a,{semantic:u}),i=>({references:i?.usageSites.length??0,producers:i?.producers.length??0,consumers:i?.consumers.length??0})):null,r=s?f("backward-slice",a,()=>_(e,a,{direction:"backward",maxDepth:m,semantic:u}),i=>({maxDepth:m,connectedSymbols:i?.connectedSymbols.length??0})):null,C=s?f("forward-slice",a,()=>_(e,a,{direction:"forward",maxDepth:m,semantic:u}),i=>({maxDepth:m,connectedSymbols:i?.connectedSymbols.length??0})):null,h=s?f("affected",a,()=>q(e,a,{maxDepth:l,scope:o.scope}),i=>({maxDepth:l,affectedSymbols:i.rows.length,coverage:i.coverage.status})):null,b=h?.rows??[],p=h?.coverage??null,S=s?f("reuse-candidates",a,()=>D(e,a,{minSimilarity:.4,limit:5,semantic:u,sourceCandidateMode:"target-pruned"}),i=>({candidates:i.length,direct:i.filter(Ce=>Ce.actionTier==="direct").length})):[],L=s?H(e,a)?.symbol??null:null,k=s?f("affected-consumer-reuse",a,()=>Re(d,L,i=>D(e,i,{minSimilarity:.4,limit:I,semantic:u,sourceCandidateMode:"target-pruned"}),{consumerLimit:pe,perConsumerSearchLimit:I,perConsumerCandidateLimit:B,candidateLimit:N}),i=>({totalConsumers:i.coverage.totalConsumers,analyzedConsumers:i.coverage.analyzedConsumers,candidates:i.candidates.length})):ve(),A=f("change-surface",t,()=>Z(e,t,{semantic:u}),i=>({symbols:i?.symbols.length??0,externalConsumers:i?.totalExternalConsumers??0})),R=f("system",t,()=>re(e,t),i=>({files:i.files.length,symbols:i.symbols.length})),T=R.files.length===1,F=f("deps",t,()=>T?R.dependsOn.map(i=>({relativePath:i,edgeBasis:"symbol-references",evidence:"cross-file SCIP references plus resolved source imports"})):ne(e,t),i=>({files:i.length,reusedSystem:T})),O=f("rdeps",t,()=>T?R.dependedOnBy.map(i=>({relativePath:i,edgeBasis:"symbol-references",evidence:"cross-file SCIP references plus resolved source imports"})):oe(e,t),i=>({files:i.length,reusedSystem:T})),U=f("surface",t,()=>le(e,t),i=>({consumers:i.length})),v={symbol:d.definitions.length>0||d.referencedBy.length>0||g!==null||n!==null||y!==null||r!==null||C!==null||b.length>0,file:A!==null||F.length>0||O.length>0,module:R.files.length>0||R.symbols.length>0||U.length>0},x=[];c&&!c.primary&&c.callableCount>1&&x.push(`File target has ${c.callableCount} callable symbols; use one callable name for compiler-resolved flow.`);let $=[...new Set(d.referencedBy.map(i=>i.relativePath))];$.length>0&&$.every(i=>G(i)==="test")&&x.push("Only test references were found for this target. For replacement or retirement work, map the currently wired owner or one production entry point before planning; this target does not describe the live affected surface."),!v.symbol&&!v.file&&!v.module&&x.push("No symbol, file, or module matched target."),p&&p.status!=="accounted"&&x.push(`Possible-impact coverage is ${p.status}: ${p.reasons.join(" ")}`);let j=A?.file??d.definitions[0]?.relativePath??null;return{target:t,...c?.primary?{primaryCallable:{symbol:c.primary.symbol,shortName:P(c.primary.symbol),file:c.primary.relativePath}}:{},matched:v,history:f("history",j??t,()=>Pe(e,j,o.gitHead)),trace:ge(d),callGraph:g,complexity:n,dataflow:y,backwardSlice:r,forwardSlice:C,affected:b,affectedCoverage:p,changeSurface:A,deps:F,rdeps:O,system:R,surface:U,reuseCandidates:S,affectedConsumerReuse:k,sourcePacket:Se(e,L,d,k,S),warnings:x}}function ge(e){return{definitions:e.definitions,referencedBy:e.referencedBy.map(t=>({relativePath:t.relativePath,line:t.line,enclosingSymbol:t.enclosingSymbol,enclosingShort:t.enclosingShort}))}}function be(e,t){let o=Y(e,t);if(o.length!==1)return{primary:null,callableCount:0};let l=w(e,o[0]).filter(c=>c.isFunctionLike),m=l.filter(c=>c.enclosingSymbol===null),u=m.length>0?m:l;return{primary:u.length===1?u[0]:null,callableCount:u.length}}function Se(e,t,o,l,m){let u=[...t?[{definition:fe(e,t),role:"target"}]:[],...[...l.candidates.map(n=>n.candidate),...m].map(n=>({definition:fe(e,n.symbolB),role:"reuse-candidate"}))],c=new Map;for(let n of ae(u)){if(c.has(n.definition.symbol))continue;let y=n.role==="target"?M:ue,r=n.definition.endLine<=n.definition.startLine?V(e,n.definition.relativePath,n.definition.startLine,y):null,C=r?.unitType?r.source:te(e,n.definition);if(!C)continue;let h=C.split(`
2
2
  `),b=Math.min(h.length,y),p=r?.unitType?r.startLine:n.definition.startLine;c.set(n.definition.symbol,{role:n.role,symbol:n.definition.symbol,shortName:P(n.definition.symbol),file:n.definition.relativePath,startLine:p,endLine:p+b-1,source:h.slice(0,b).join(`
3
3
  `),omittedLines:(r?.unitType?r.omittedLines:0)+Math.max(0,h.length-b)})}let a=new Map;for(let n of o.referencedBy){if(n.source===void 0||n.source===null||n.sourceStartLine===void 0||n.sourceStartLine===null||n.sourceEndLine===void 0||n.sourceEndLine===null)continue;let y=`${n.relativePath}:${n.sourceStartLine}-${n.sourceEndLine}`,r=a.get(y);if(r){r.focusLines=[...new Set([...r.focusLines??[],n.line])].sort((C,h)=>C-h);continue}a.set(y,{role:"consumer",symbol:n.enclosingSymbol??`${n.relativePath}:${n.line}`,shortName:n.enclosingShort,file:n.relativePath,startLine:n.sourceStartLine,endLine:n.sourceEndLine,source:n.source,omittedLines:0,focusLines:[n.line]})}let s=[...[...c.values()].filter(n=>n.role==="target"),...a.values(),...[...c.values()].filter(n=>n.role==="reuse-candidate")],d=[],g=me;for(let n of s){if(d.length>=ce||g<=0)break;let y=n.source.split(`
4
4
  `),r=Math.min(y.length,g);d.push({...n,endLine:n.startLine+r-1,source:y.slice(0,r).join(`
5
5
  `),omittedLines:n.omittedLines+Math.max(0,y.length-r),...n.focusLines?{focusLines:n.focusLines.filter(C=>C<=n.startLine+r-1)}:{}}),g-=r}return{slices:d,candidateSlices:s.length,omittedSlices:Math.max(0,s.length-d.length),maxSlices:ce,maxLinesPerSlice:M,maxTotalLines:me,targetLineLimit:M,consumerContextLines:ye,reuseLineLimit:ue}}function fe(e,t){let o=K(e,t);return o?w(e,o.relativePath).find(l=>l.symbol===t)??null:null}function Re(e,t,o,l={}){let m=E(l.consumerLimit,pe),u=E(l.perConsumerSearchLimit,I),c=E(l.perConsumerCandidateLimit,B),a=E(l.candidateLimit,N),s=xe(e),d=s.slice(0,m),g=new Set(s.map(r=>r.symbol));t&&g.add(t);let n=new Map;for(let r of d){let C=o(r.symbol).slice(0,u),h=0;for(let b of C){let p=Le(b,r.symbol);if(!p||g.has(p.symbolB))continue;let S=n.get(p.symbolB);if(S?(S.consumers.some(L=>L.symbol===r.symbol)||S.consumers.push(r),p.similarity>S.candidate.similarity&&(S.candidate=p)):n.set(p.symbolB,{candidate:p,consumers:[r]}),h+=1,h>=c)break}}let y=[...n.values()].filter(r=>r.candidate.actionTier==="direct"||r.candidate.similarity>=he||r.consumers.length>1).sort(Te).slice(0,a);return{candidates:y,coverage:{totalConsumers:s.length,analyzedConsumers:d.length,omittedConsumers:Math.max(0,s.length-d.length),perConsumerSearchLimit:u,perConsumerCandidateLimit:c,candidateLimit:a,returnedCandidates:y.length}}}function xe(e){let t=new Map;for(let o of e.referencedBy){if(!o.enclosingSymbol)continue;let l=t.get(o.enclosingSymbol);if(l){l.referenceCount+=1;continue}t.set(o.enclosingSymbol,{symbol:o.enclosingSymbol,shortName:P(o.enclosingSymbol)||o.enclosingShort,file:o.relativePath,referenceCount:1})}return[...t.values()].sort((o,l)=>l.referenceCount-o.referenceCount||o.symbol.localeCompare(l.symbol))}function Le(e,t){return e.symbolA===t?e:e.symbolB!==t?null:{...e,symbolA:e.symbolB,shortNameA:e.shortNameB,fileA:e.fileB,symbolB:e.symbolA,shortNameB:e.shortNameA,fileB:e.fileA,uniqueToA:e.uniqueToB,uniqueToB:e.uniqueToA}}function Te(e,t){let o=de(t.candidate.actionTier)-de(e.candidate.actionTier);if(o!==0)return o;let l=t.consumers.length-e.consumers.length;if(l!==0)return l;let m=t.candidate.similarity-e.candidate.similarity;return m!==0?m:e.candidate.symbolB.localeCompare(t.candidate.symbolB)}function de(e){return e==="direct"?1:0}function E(e,t){return typeof e=="number"&&Number.isFinite(e)?Math.max(1,Math.floor(e)):t}function ve(){return{candidates:[],coverage:{totalConsumers:0,analyzedConsumers:0,omittedConsumers:0,perConsumerSearchLimit:I,perConsumerCandidateLimit:B,candidateLimit:N,returnedCandidates:0}}}function f(e,t,o,l=()=>({})){let m;return z(`context.${e}`,()=>(m=o(),m),()=>({target:t,...l(m)}))}function Pe(e,t,o){let l={available:!1,file:t,churn:null,coChangePartners:[],suppressionsInFile:0};if(!t)return l;let m=J(e,o?{head:o}:{}),u=f("history.churn",t,()=>m.fileChurn(),s=>({files:s?.size??0}));if(!u)return l;let c=f("history.co-change",t,()=>Q(e,t,{limit:5,...o?{head:o}:{}}),s=>({commits:s.commitsAnalyzed,partners:s.findings.length})),a=f("history.suppressions",t,()=>se(e).byFile.get(t)??0,s=>({suppressions:s}));return{available:!0,file:t,churn:u.get(t)??{changes:0,fixChanges:0,lastChangedAt:0},coChangePartners:c.findings.map(s=>({file:s.fileA===t?s.fileB:s.fileA,together:s.together,confidence:s.confidence,subjectContext:s.subjectContext})),suppressionsInFile:a}}function Ee(e){return e.includes("/")||e.includes("\\")||/\.[A-Za-z0-9]+(?::\d+(?:-\d+)?)?$/.test(e)}export{Ve as a,Re as b};
6
- //# sourceMappingURL=chunk-H3CKAL6P.js.map
6
+ //# sourceMappingURL=chunk-3ON3A2QV.js.map
@@ -1,2 +1,2 @@
1
- import{t as c}from"./chunk-AM5SUGHF.js";import{o as a}from"./chunk-JOALNFY3.js";var D=4;function m(e,i,t,r={}){return p(e,i,t,r.maxReexportDepth??D,0,new Set)}function p(e,i,t,r,s,o){let f=`${i}\0${t}`;if(o.has(f)||s>r)return[];o.add(f);let u=c(e,i).filter(n=>n.leaf===t);return u.length>0?u:a(e,i).flatMap(n=>n.sourcePath?n.kind==="named"&&!n.names.includes(t)?[]:p(e,n.sourcePath,t,r,s+1,new Set(o)):[])}export{m as a};
2
- //# sourceMappingURL=chunk-MTMF4N7F.js.map
1
+ import{t as c}from"./chunk-GVAF222T.js";import{o as a}from"./chunk-F74LZWCE.js";var D=4;function m(e,i,t,r={}){return p(e,i,t,r.maxReexportDepth??D,0,new Set)}function p(e,i,t,r,s,o){let f=`${i}\0${t}`;if(o.has(f)||s>r)return[];o.add(f);let u=c(e,i).filter(n=>n.leaf===t);return u.length>0?u:a(e,i).flatMap(n=>n.sourcePath?n.kind==="named"&&!n.names.includes(t)?[]:p(e,n.sourcePath,t,r,s+1,new Set(o)):[])}export{m as a};
2
+ //# sourceMappingURL=chunk-3VJ3OCRE.js.map
@@ -1,2 +1,2 @@
1
- import{b as S}from"./chunk-B75HZHUP.js";import{c as C}from"./chunk-NK76RSB6.js";import{a as g}from"./chunk-OJFLPVBP.js";import{f as v}from"./chunk-57KEZDPT.js";import{d as f}from"./chunk-AM5SUGHF.js";function h(n,t={}){return x(n,t).rows}function x(n,t={}){let{limit:a=20,scope:r,minFanIn:b=2,minFanOut:u=2,scanLimit:l}=t,c=new C(n),s=S(c.productionCallableDefinitions({scope:r,requireCallableSymbol:!0,includeSuppressed:!0,sortByLocDesc:typeof l=="number"&&l>0}),l),m=t.semantic!==!1,d=v(n,s,{limit:500,semantic:m,semanticEvidence:g}),e=c.calleeEvidenceMap(s,{semantic:m}),i=new Set([...d.incompleteSymbolIds,...e.incompleteSymbolIds]),p=new Set([...d.unavailableSymbolIds,...e.unavailableSymbolIds]);return{rows:s.filter(o=>!i.has(o.symbolId)&&!p.has(o.symbolId)).map(o=>E(o,d.rows.get(o.symbolId)??[],e.rows.get(o.symbolId)??[])).filter(o=>o.fanIn>=b&&o.fanOut>=u).sort((o,y)=>y.score-o.score||y.fanIn-o.fanIn).slice(0,a),coverage:k(m,i,p)}}function D(n,t={}){return h(n,t)}function k(n,t,a){let r=n?t.size>0&&a.size>0?"incomplete-and-unavailable":t.size>0?"incomplete":a.size>0?"unavailable":"complete":"disabled";return{semanticEvidence:{enabled:n,status:r,incompleteSymbolCount:t.size,unavailableSymbolCount:a.size,excludedSymbolCount:new Set([...t,...a]).size}}}function E(n,t,a){let r=[...new Set(t.map(e=>e.file))].sort(),b=[...new Set(t.filter(e=>e.source!=="caller-map-inversion"||e.callEvidence==="scip-chunk").map(e=>e.file))].sort(),u=new Map;for(let e of a.slice(0,500)){if(e.file===n.relativePath)continue;let i=`${e.symbol}|${e.file}`;u.has(i)||u.set(i,{symbol:e.symbol,shortName:f(e.symbol),file:e.file,evidenceStrength:e.source==="scip-chunk"?"candidate":"exact",evidenceSource:e.source})}let l=[...u.values()].sort((e,i)=>e.file.localeCompare(i.file)||e.symbol.localeCompare(i.symbol)),c=r.length,s=l.length,m=c*s,d=l.filter(e=>e.evidenceStrength==="candidate").map(e=>e.symbol);return{symbol:n.symbol,shortName:f(n.symbol),fanIn:c,fanOut:s,callerFiles:r,candidateCallerFiles:b,externalCallees:l.map(({symbol:e,shortName:i,file:p})=>({symbol:e,shortName:i,file:p})),externalCalleeEvidence:l,candidateExternalCallees:d,inputBasis:"mixed-static-call-or-reference-evidence",score:m,definedIn:n.relativePath,actionTier:"signal",riskKind:"coordination-hotspot",evidenceReasons:[`${c} incoming file(s) reference this symbol`,`${s} distinct cross-file callee symbol(s) are reached from it`,`centrality score is ${m} (fan-in * fan-out)`,`${b.length} incoming file(s) and ${d.length} outgoing target(s) rely on candidate rather than exact call evidence`],recommendation:"Review ownership, API stability, and caller groups before changing this central symbol; do not refactor solely from graph centrality."}}export{h as a,x as b,D as c};
2
- //# sourceMappingURL=chunk-QMGWSEPL.js.map
1
+ import{b as S}from"./chunk-B75HZHUP.js";import{c as C}from"./chunk-BPKNP3KZ.js";import{a as g}from"./chunk-57OPIQFM.js";import{f as v}from"./chunk-MSI3K7PJ.js";import{d as f}from"./chunk-GVAF222T.js";function h(n,t={}){return x(n,t).rows}function x(n,t={}){let{limit:a=20,scope:r,minFanIn:b=2,minFanOut:u=2,scanLimit:l}=t,c=new C(n),s=S(c.productionCallableDefinitions({scope:r,requireCallableSymbol:!0,includeSuppressed:!0,sortByLocDesc:typeof l=="number"&&l>0}),l),m=t.semantic!==!1,d=v(n,s,{limit:500,semantic:m,semanticEvidence:g}),e=c.calleeEvidenceMap(s,{semantic:m}),i=new Set([...d.incompleteSymbolIds,...e.incompleteSymbolIds]),p=new Set([...d.unavailableSymbolIds,...e.unavailableSymbolIds]);return{rows:s.filter(o=>!i.has(o.symbolId)&&!p.has(o.symbolId)).map(o=>E(o,d.rows.get(o.symbolId)??[],e.rows.get(o.symbolId)??[])).filter(o=>o.fanIn>=b&&o.fanOut>=u).sort((o,y)=>y.score-o.score||y.fanIn-o.fanIn).slice(0,a),coverage:k(m,i,p)}}function D(n,t={}){return h(n,t)}function k(n,t,a){let r=n?t.size>0&&a.size>0?"incomplete-and-unavailable":t.size>0?"incomplete":a.size>0?"unavailable":"complete":"disabled";return{semanticEvidence:{enabled:n,status:r,incompleteSymbolCount:t.size,unavailableSymbolCount:a.size,excludedSymbolCount:new Set([...t,...a]).size}}}function E(n,t,a){let r=[...new Set(t.map(e=>e.file))].sort(),b=[...new Set(t.filter(e=>e.source!=="caller-map-inversion"||e.callEvidence==="scip-chunk").map(e=>e.file))].sort(),u=new Map;for(let e of a.slice(0,500)){if(e.file===n.relativePath)continue;let i=`${e.symbol}|${e.file}`;u.has(i)||u.set(i,{symbol:e.symbol,shortName:f(e.symbol),file:e.file,evidenceStrength:e.source==="scip-chunk"?"candidate":"exact",evidenceSource:e.source})}let l=[...u.values()].sort((e,i)=>e.file.localeCompare(i.file)||e.symbol.localeCompare(i.symbol)),c=r.length,s=l.length,m=c*s,d=l.filter(e=>e.evidenceStrength==="candidate").map(e=>e.symbol);return{symbol:n.symbol,shortName:f(n.symbol),fanIn:c,fanOut:s,callerFiles:r,candidateCallerFiles:b,externalCallees:l.map(({symbol:e,shortName:i,file:p})=>({symbol:e,shortName:i,file:p})),externalCalleeEvidence:l,candidateExternalCallees:d,inputBasis:"mixed-static-call-or-reference-evidence",score:m,definedIn:n.relativePath,actionTier:"signal",riskKind:"coordination-hotspot",evidenceReasons:[`${c} incoming file(s) reference this symbol`,`${s} distinct cross-file callee symbol(s) are reached from it`,`centrality score is ${m} (fan-in * fan-out)`,`${b.length} incoming file(s) and ${d.length} outgoing target(s) rely on candidate rather than exact call evidence`],recommendation:"Review ownership, API stability, and caller groups before changing this central symbol; do not refactor solely from graph centrality."}}export{h as a,x as b,D as c};
2
+ //# sourceMappingURL=chunk-4GWN76B2.js.map
@@ -1,2 +1,2 @@
1
- import{d as F,f as w}from"./chunk-XYLV727H.js";import{u as S,v as D,x as b,y as E}from"./chunk-ACZDU5GK.js";import{h as m}from"./chunk-4O52YNKL.js";import{createHash as V}from"crypto";import{dirname as B,join as A}from"path";var T=4,z=3,L=2,$="typescript-index";function ne(t){let e=A(t,$),r=D(e);return{...r,requestDir:r.legacyRequestDir}}function ie(t){let e=JSON.parse(t),r=e.protocolVersion,n=r===L,i=r===z;if(!n&&!i&&r!==T||typeof e.id!="string"||!e.id||typeof e.baseGeneration!="string"||!e.baseGeneration||typeof e.deadlineAtMs!="number"||!Number.isFinite(e.deadlineAtMs)||!U(e.request)||!n&&(e.mailboxVersion!==S||typeof e.operationKey!="string"||!/^[a-f0-9]{64}$/.test(e.operationKey)||e.id!==E(e.operationKey)||typeof e.clientId!="string"||!e.clientId||typeof e.enqueuedAtMs!="number"||!Number.isFinite(e.enqueuedAtMs)||e.deadlineAtMs<e.enqueuedAtMs))throw new Error("TypeScript index service received an invalid mailbox request.");if(!n){let s=e,p=b(i?"typescript-index-v3":"typescript-index-v4",{baseGeneration:s.baseGeneration,request:s.request});if(s.operationKey!==p)throw new Error("TypeScript index service received a mismatched mailbox operation identity.");return{...s,protocolVersion:T}}let o=b("typescript-index-v2",{id:e.id,baseGeneration:e.baseGeneration,request:e.request});return{protocolVersion:T,mailboxVersion:S,id:e.id,operationKey:o,clientId:"legacy-v2",enqueuedAtMs:e.deadlineAtMs,deadlineAtMs:e.deadlineAtMs,baseGeneration:e.baseGeneration,request:e.request}}function oe(t){try{let e=w(F(m(A(B(t),"meta.json"),"reindex metadata")));return e?V("sha256").update(e).digest("hex"):null}catch{return null}}function U(t){if(!t||typeof t!="object")return!1;let e=t,r=C(e.modifiedFiles)?e.modifiedFiles:null,n=C(e.affectedFiles)?e.affectedFiles:null;return e.kind==="emit-documents"&&typeof e.tsconfigPath=="string"&&!!e.tsconfigPath&&typeof e.projectArgument=="string"&&!!e.projectArgument&&typeof e.projectIdentity=="string"&&!!e.projectIdentity&&typeof e.producerIdentity=="string"&&!!e.producerIdentity&&r!==null&&r.length>0&&new Set(r).size===r.length&&n!==null&&n.length>0&&new Set(n).size===n.length}function C(t){return Array.isArray(t)&&t.every(e=>typeof e=="string"&&e.length>0)}import{createRequire as G}from"module";import{dirname as R,isAbsolute as Y,relative as _,resolve as d,sep as v}from"path";var l=G(import.meta.url),H=1,M="0.4.0";function X(){try{let t=j();if(!t.available)return t;let{packageRoot:e}=t,r=l.resolve("typescript",{paths:[e]}),n=l(r),{FileIndexer:i}=l(d(e,"dist/src/FileIndexer.js")),{Input:o}=l(d(e,"dist/src/Input.js")),{Packages:s}=l(d(e,"dist/src/Packages.js")),p=l(d(e,"dist/src/scip.js"));if(!i||!o||!s||!p.scip?.Document||!p.scip.Index)return{available:!1,reason:"scip-typescript document runtime has an unsupported module shape"};let c={packageVersion:t.packageVersion,typescript:n,Document:p.scip.Document,Index:p.scip.Index,FileIndexer:i,Input:o,Packages:s};return{available:!0,runtime:c,producerIdentity:k(c)}}catch(t){return{available:!1,reason:`scip-typescript document runtime unavailable: ${t instanceof Error?t.message:String(t)}`}}}function ue(){let t=j();return t.available?{available:!0,packageVersion:t.packageVersion,typescriptVersion:t.typescriptVersion,producerIdentity:t.producerIdentity}:t}function j(){try{let t=l.resolve("@sourcegraph/scip-typescript/package.json"),e=JSON.parse(m(t,"scip-typescript package manifest"));if(e.version!==M)return{available:!1,reason:`unsupported scip-typescript version ${String(e.version??"unknown")}; expected ${M}`};let r=R(t),n=l.resolve("typescript/package.json",{paths:[r]}),i=JSON.parse(m(n,"TypeScript package manifest"));return typeof i.version!="string"||!i.version?{available:!1,reason:"scip-typescript TypeScript compiler version is unavailable"}:{available:!0,packageRoot:r,packageVersion:e.version,typescriptVersion:i.version,producerIdentity:q(e.version,i.version)}}catch(t){return{available:!1,reason:`scip-typescript document producer unavailable: ${t instanceof Error?t.message:String(t)}`}}}function le(t){let e=t.runtime===void 0?X():t.runtime===null?{available:!1,reason:"scip-typescript document runtime unavailable"}:{available:!0,runtime:t.runtime,producerIdentity:k(t.runtime)};return e.available?{available:!0,emitter:new x(t,e.runtime)}:e}var x=class{producerIdentity;workspaceRoot;tsconfigPath;projectRoot;maxFileByteSize;runtime;host;config=null;includedFiles=new Set;program=null;checker=null;symbolTable=new Map;constructorTable=new Map;packages;fragments=new Map;stats={initializations:0,programUpdates:0,documentsEmitted:0,documentsRemoved:0,sourceNodesReused:0,sourceNodesReplaced:0,symbolEntriesPruned:0};constructor(e,r){this.workspaceRoot=d(e.workspaceRoot),this.tsconfigPath=d(this.workspaceRoot,e.tsconfigPath),this.projectRoot=e.projectRoot??J(this.workspaceRoot,R(this.tsconfigPath)),this.maxFileByteSize=e.maxFileByteSize??1024*1024,this.runtime=r,this.producerIdentity=k(r);let n=N(r.typescript,this.tsconfigPath);this.config=n,this.host=new I(r.typescript,n.options,this.workspaceRoot),this.packages=new r.Packages(this.projectRoot)}initialize(){let e=performance.now(),r=this.config??N(this.runtime.typescript,this.tsconfigPath);this.includedFiles=new Set(r.fileNames.map(g)),this.program=this.runtime.typescript.createProgram(r.fileNames,r.options,this.host.compilerHost),this.checker=this.program.getTypeChecker(),this.stats.initializations+=1;let n=[];for(let i of this.program.getSourceFiles())this.includedFiles.has(g(i.fileName))&&n.push(this.emitSourceFile(i));return this.result(n,e)}advance(e){if(!this.program||!this.checker||!this.config)return this.initializeAndAdvance(e);let r=performance.now(),n=f(e.modifiedFiles),i=f(e.affectedFiles);this.validateIncrementalPaths(n,i);let o=this.program,s=new Map;for(let c of n){let u=y(this.workspaceRoot,c),a=o.getSourceFile(u);if(!a)throw new Error(`modified TypeScript source is unavailable: ${c}`);s.set(c,a),this.stats.symbolEntriesPruned+=O(this.symbolTable,a),this.stats.symbolEntriesPruned+=O(this.constructorTable,a),this.host.invalidate(u)}this.program=this.runtime.typescript.createProgram(this.config.fileNames,this.config.options,this.host.compilerHost,o),this.checker=this.program.getTypeChecker(),this.stats.programUpdates+=1;for(let[c,u]of s)this.program.getSourceFile(y(this.workspaceRoot,c))===u?this.stats.sourceNodesReused+=1:this.stats.sourceNodesReplaced+=1;let p=i.map(c=>{let u=y(this.workspaceRoot,c),a=this.program.getSourceFile(u);if(!a)throw new Error(`affected TypeScript source is unavailable: ${c}`);return this.emitSourceFile(a)});return this.result(p,r)}fragment(e){return this.fragments.get(h(e))??null}snapshotStats(){return{...this.stats}}initializeAndAdvance(e){let r=this.initialize(),n=f(e.modifiedFiles),i=f(e.affectedFiles);this.validateIncrementalPaths(n,i);let o=new Set(i);return{...r,fragments:r.fragments.filter(s=>o.has(s.relativePath))}}validateIncrementalPaths(e,r){if(e.length===0)throw new Error("incremental TypeScript document update requires a modified file");if(r.length===0)throw new Error("incremental TypeScript document update requires an affected file");for(let n of e){let i=y(this.workspaceRoot,n);if(!this.program?.getSourceFile(i))throw new Error(`modified TypeScript dependency is unavailable to the configured project: ${n}`)}for(let n of r){let i=y(this.workspaceRoot,n);if(!this.includedFiles.has(g(i)))throw new Error(`affected TypeScript file is outside the configured project: ${n}`)}}emitSourceFile(e){if(!this.checker)throw new Error("TypeScript document emitter is not initialized");let r=h(_(this.workspaceRoot,e.fileName)),n=new this.runtime.Document({relative_path:r,occurrences:[]});if(new this.runtime.FileIndexer(this.checker,{cwd:this.workspaceRoot,projectRoot:this.projectRoot,projectDisplayName:this.projectRoot,maxFileByteSizeNumber:this.maxFileByteSize},new this.runtime.Input(e.fileName,e.getText()),n,this.symbolTable,this.constructorTable,this.packages,e).index(),this.stats.documentsEmitted+=1,n.occurrences.length===0)return this.fragments.delete(r),this.stats.documentsRemoved+=1,{relativePath:r,bytes:null,occurrences:0,symbols:n.symbols.length,referenceFragments:[]};let o=n.serializeBinary();return this.fragments.set(r,o),{relativePath:r,bytes:o,occurrences:n.occurrences.length,symbols:n.symbols.length,referenceFragments:K(r,n)}}result(e,r){return{producerIdentity:this.producerIdentity,fragments:e,durationMs:performance.now()-r,stats:this.snapshotStats()}}};function K(t,e){let r=new Map;for(let n of e.occurrences){if(!n.symbol||(n.symbol_roles&1)!==0||n.range.length<3)continue;let i=n.range[0],o=n.range[1];if(!Number.isInteger(i)||!Number.isInteger(o))continue;let s={targetSymbol:n.symbol,location:{file:t,line:i,column:o}};r.set(`${n.symbol}\0${i}\0${o}`,s)}return[...r.values()].sort((n,i)=>n.targetSymbol.localeCompare(i.targetSymbol)||n.location.line-i.location.line||n.location.column-i.location.column)}var I=class{compilerHost;sourceFiles=new Map;constructor(e,r,n){let i=e.createCompilerHost(r),o=i.getSourceFile.bind(i);this.compilerHost={...i,getCurrentDirectory:()=>n,getSourceFile:(s,p,c,u)=>{let a=g(s);if(this.sourceFiles.has(a))return this.sourceFiles.get(a);let P=o(s,p,c,u);return this.sourceFiles.set(a,P),P}}}invalidate(e){this.sourceFiles.delete(g(e))}};function N(t,e){let r=t.readConfigFile(e,t.sys.readFile);if(r.error)throw new Error(t.formatDiagnostics([r.error],t.createCompilerHost({})));let n=t.parseJsonConfigFileContent(r.config,t.sys,R(e)),i=n.errors.filter(o=>o.code!==18003);if(i.length>0)throw new Error(t.formatDiagnostics(i,t.createCompilerHost({})));return n}function k(t){return q(t.packageVersion,t.typescript.version)}function q(t,e){return`scip-typescript:${t}:typescript:${e}:document-adapter:${H}`}function J(t,e){return h(_(t,e))||"."}function y(t,e){if(Y(e))throw new Error(`expected a project-relative path: ${e}`);let r=d(t,e),n=t.endsWith(v)?t:`${t}${v}`;if(r!==t&&!r.startsWith(n))throw new Error(`path escapes the project root: ${e}`);return r}function f(t){return[...new Set(t.map(h))].sort()}function h(t){return t.split(v).join("/").replace(/^\.\//,"")}function g(t){return d(t)}function O(t,e){let r=0;for(let n of t.keys())if(W(n)){try{if(n.getSourceFile()!==e)continue}catch{continue}t.delete(n),r+=1}return r}function W(t){return!!(t&&typeof t=="object"&&"kind"in t&&"getSourceFile"in t)}export{ue as a,le as b,T as c,ne as d,ie as e,oe as f};
2
- //# sourceMappingURL=chunk-IBM3F2BJ.js.map
1
+ import{d as F,f as w}from"./chunk-T75DS2E6.js";import{u as S,v as D,x as b,y as E}from"./chunk-D7DOB27N.js";import{h as m}from"./chunk-UQYQBLJX.js";import{createHash as V}from"crypto";import{dirname as B,join as A}from"path";var T=4,z=3,L=2,$="typescript-index";function ne(t){let e=A(t,$),r=D(e);return{...r,requestDir:r.legacyRequestDir}}function ie(t){let e=JSON.parse(t),r=e.protocolVersion,n=r===L,i=r===z;if(!n&&!i&&r!==T||typeof e.id!="string"||!e.id||typeof e.baseGeneration!="string"||!e.baseGeneration||typeof e.deadlineAtMs!="number"||!Number.isFinite(e.deadlineAtMs)||!U(e.request)||!n&&(e.mailboxVersion!==S||typeof e.operationKey!="string"||!/^[a-f0-9]{64}$/.test(e.operationKey)||e.id!==E(e.operationKey)||typeof e.clientId!="string"||!e.clientId||typeof e.enqueuedAtMs!="number"||!Number.isFinite(e.enqueuedAtMs)||e.deadlineAtMs<e.enqueuedAtMs))throw new Error("TypeScript index service received an invalid mailbox request.");if(!n){let s=e,p=b(i?"typescript-index-v3":"typescript-index-v4",{baseGeneration:s.baseGeneration,request:s.request});if(s.operationKey!==p)throw new Error("TypeScript index service received a mismatched mailbox operation identity.");return{...s,protocolVersion:T}}let o=b("typescript-index-v2",{id:e.id,baseGeneration:e.baseGeneration,request:e.request});return{protocolVersion:T,mailboxVersion:S,id:e.id,operationKey:o,clientId:"legacy-v2",enqueuedAtMs:e.deadlineAtMs,deadlineAtMs:e.deadlineAtMs,baseGeneration:e.baseGeneration,request:e.request}}function oe(t){try{let e=w(F(m(A(B(t),"meta.json"),"reindex metadata")));return e?V("sha256").update(e).digest("hex"):null}catch{return null}}function U(t){if(!t||typeof t!="object")return!1;let e=t,r=C(e.modifiedFiles)?e.modifiedFiles:null,n=C(e.affectedFiles)?e.affectedFiles:null;return e.kind==="emit-documents"&&typeof e.tsconfigPath=="string"&&!!e.tsconfigPath&&typeof e.projectArgument=="string"&&!!e.projectArgument&&typeof e.projectIdentity=="string"&&!!e.projectIdentity&&typeof e.producerIdentity=="string"&&!!e.producerIdentity&&r!==null&&r.length>0&&new Set(r).size===r.length&&n!==null&&n.length>0&&new Set(n).size===n.length}function C(t){return Array.isArray(t)&&t.every(e=>typeof e=="string"&&e.length>0)}import{createRequire as G}from"module";import{dirname as R,isAbsolute as Y,relative as _,resolve as d,sep as v}from"path";var l=G(import.meta.url),H=1,M="0.4.0";function X(){try{let t=j();if(!t.available)return t;let{packageRoot:e}=t,r=l.resolve("typescript",{paths:[e]}),n=l(r),{FileIndexer:i}=l(d(e,"dist/src/FileIndexer.js")),{Input:o}=l(d(e,"dist/src/Input.js")),{Packages:s}=l(d(e,"dist/src/Packages.js")),p=l(d(e,"dist/src/scip.js"));if(!i||!o||!s||!p.scip?.Document||!p.scip.Index)return{available:!1,reason:"scip-typescript document runtime has an unsupported module shape"};let c={packageVersion:t.packageVersion,typescript:n,Document:p.scip.Document,Index:p.scip.Index,FileIndexer:i,Input:o,Packages:s};return{available:!0,runtime:c,producerIdentity:k(c)}}catch(t){return{available:!1,reason:`scip-typescript document runtime unavailable: ${t instanceof Error?t.message:String(t)}`}}}function ue(){let t=j();return t.available?{available:!0,packageVersion:t.packageVersion,typescriptVersion:t.typescriptVersion,producerIdentity:t.producerIdentity}:t}function j(){try{let t=l.resolve("@sourcegraph/scip-typescript/package.json"),e=JSON.parse(m(t,"scip-typescript package manifest"));if(e.version!==M)return{available:!1,reason:`unsupported scip-typescript version ${String(e.version??"unknown")}; expected ${M}`};let r=R(t),n=l.resolve("typescript/package.json",{paths:[r]}),i=JSON.parse(m(n,"TypeScript package manifest"));return typeof i.version!="string"||!i.version?{available:!1,reason:"scip-typescript TypeScript compiler version is unavailable"}:{available:!0,packageRoot:r,packageVersion:e.version,typescriptVersion:i.version,producerIdentity:q(e.version,i.version)}}catch(t){return{available:!1,reason:`scip-typescript document producer unavailable: ${t instanceof Error?t.message:String(t)}`}}}function le(t){let e=t.runtime===void 0?X():t.runtime===null?{available:!1,reason:"scip-typescript document runtime unavailable"}:{available:!0,runtime:t.runtime,producerIdentity:k(t.runtime)};return e.available?{available:!0,emitter:new x(t,e.runtime)}:e}var x=class{producerIdentity;workspaceRoot;tsconfigPath;projectRoot;maxFileByteSize;runtime;host;config=null;includedFiles=new Set;program=null;checker=null;symbolTable=new Map;constructorTable=new Map;packages;fragments=new Map;stats={initializations:0,programUpdates:0,documentsEmitted:0,documentsRemoved:0,sourceNodesReused:0,sourceNodesReplaced:0,symbolEntriesPruned:0};constructor(e,r){this.workspaceRoot=d(e.workspaceRoot),this.tsconfigPath=d(this.workspaceRoot,e.tsconfigPath),this.projectRoot=e.projectRoot??J(this.workspaceRoot,R(this.tsconfigPath)),this.maxFileByteSize=e.maxFileByteSize??1024*1024,this.runtime=r,this.producerIdentity=k(r);let n=N(r.typescript,this.tsconfigPath);this.config=n,this.host=new I(r.typescript,n.options,this.workspaceRoot),this.packages=new r.Packages(this.projectRoot)}initialize(){let e=performance.now(),r=this.config??N(this.runtime.typescript,this.tsconfigPath);this.includedFiles=new Set(r.fileNames.map(g)),this.program=this.runtime.typescript.createProgram(r.fileNames,r.options,this.host.compilerHost),this.checker=this.program.getTypeChecker(),this.stats.initializations+=1;let n=[];for(let i of this.program.getSourceFiles())this.includedFiles.has(g(i.fileName))&&n.push(this.emitSourceFile(i));return this.result(n,e)}advance(e){if(!this.program||!this.checker||!this.config)return this.initializeAndAdvance(e);let r=performance.now(),n=f(e.modifiedFiles),i=f(e.affectedFiles);this.validateIncrementalPaths(n,i);let o=this.program,s=new Map;for(let c of n){let u=y(this.workspaceRoot,c),a=o.getSourceFile(u);if(!a)throw new Error(`modified TypeScript source is unavailable: ${c}`);s.set(c,a),this.stats.symbolEntriesPruned+=O(this.symbolTable,a),this.stats.symbolEntriesPruned+=O(this.constructorTable,a),this.host.invalidate(u)}this.program=this.runtime.typescript.createProgram(this.config.fileNames,this.config.options,this.host.compilerHost,o),this.checker=this.program.getTypeChecker(),this.stats.programUpdates+=1;for(let[c,u]of s)this.program.getSourceFile(y(this.workspaceRoot,c))===u?this.stats.sourceNodesReused+=1:this.stats.sourceNodesReplaced+=1;let p=i.map(c=>{let u=y(this.workspaceRoot,c),a=this.program.getSourceFile(u);if(!a)throw new Error(`affected TypeScript source is unavailable: ${c}`);return this.emitSourceFile(a)});return this.result(p,r)}fragment(e){return this.fragments.get(h(e))??null}snapshotStats(){return{...this.stats}}initializeAndAdvance(e){let r=this.initialize(),n=f(e.modifiedFiles),i=f(e.affectedFiles);this.validateIncrementalPaths(n,i);let o=new Set(i);return{...r,fragments:r.fragments.filter(s=>o.has(s.relativePath))}}validateIncrementalPaths(e,r){if(e.length===0)throw new Error("incremental TypeScript document update requires a modified file");if(r.length===0)throw new Error("incremental TypeScript document update requires an affected file");for(let n of e){let i=y(this.workspaceRoot,n);if(!this.program?.getSourceFile(i))throw new Error(`modified TypeScript dependency is unavailable to the configured project: ${n}`)}for(let n of r){let i=y(this.workspaceRoot,n);if(!this.includedFiles.has(g(i)))throw new Error(`affected TypeScript file is outside the configured project: ${n}`)}}emitSourceFile(e){if(!this.checker)throw new Error("TypeScript document emitter is not initialized");let r=h(_(this.workspaceRoot,e.fileName)),n=new this.runtime.Document({relative_path:r,occurrences:[]});if(new this.runtime.FileIndexer(this.checker,{cwd:this.workspaceRoot,projectRoot:this.projectRoot,projectDisplayName:this.projectRoot,maxFileByteSizeNumber:this.maxFileByteSize},new this.runtime.Input(e.fileName,e.getText()),n,this.symbolTable,this.constructorTable,this.packages,e).index(),this.stats.documentsEmitted+=1,n.occurrences.length===0)return this.fragments.delete(r),this.stats.documentsRemoved+=1,{relativePath:r,bytes:null,occurrences:0,symbols:n.symbols.length,referenceFragments:[]};let o=n.serializeBinary();return this.fragments.set(r,o),{relativePath:r,bytes:o,occurrences:n.occurrences.length,symbols:n.symbols.length,referenceFragments:K(r,n)}}result(e,r){return{producerIdentity:this.producerIdentity,fragments:e,durationMs:performance.now()-r,stats:this.snapshotStats()}}};function K(t,e){let r=new Map;for(let n of e.occurrences){if(!n.symbol||(n.symbol_roles&1)!==0||n.range.length<3)continue;let i=n.range[0],o=n.range[1];if(!Number.isInteger(i)||!Number.isInteger(o))continue;let s={targetSymbol:n.symbol,location:{file:t,line:i,column:o}};r.set(`${n.symbol}\0${i}\0${o}`,s)}return[...r.values()].sort((n,i)=>n.targetSymbol.localeCompare(i.targetSymbol)||n.location.line-i.location.line||n.location.column-i.location.column)}var I=class{compilerHost;sourceFiles=new Map;constructor(e,r,n){let i=e.createCompilerHost(r),o=i.getSourceFile.bind(i);this.compilerHost={...i,getCurrentDirectory:()=>n,getSourceFile:(s,p,c,u)=>{let a=g(s);if(this.sourceFiles.has(a))return this.sourceFiles.get(a);let P=o(s,p,c,u);return this.sourceFiles.set(a,P),P}}}invalidate(e){this.sourceFiles.delete(g(e))}};function N(t,e){let r=t.readConfigFile(e,t.sys.readFile);if(r.error)throw new Error(t.formatDiagnostics([r.error],t.createCompilerHost({})));let n=t.parseJsonConfigFileContent(r.config,t.sys,R(e)),i=n.errors.filter(o=>o.code!==18003);if(i.length>0)throw new Error(t.formatDiagnostics(i,t.createCompilerHost({})));return n}function k(t){return q(t.packageVersion,t.typescript.version)}function q(t,e){return`scip-typescript:${t}:typescript:${e}:document-adapter:${H}`}function J(t,e){return h(_(t,e))||"."}function y(t,e){if(Y(e))throw new Error(`expected a project-relative path: ${e}`);let r=d(t,e),n=t.endsWith(v)?t:`${t}${v}`;if(r!==t&&!r.startsWith(n))throw new Error(`path escapes the project root: ${e}`);return r}function f(t){return[...new Set(t.map(h))].sort()}function h(t){return t.split(v).join("/").replace(/^\.\//,"")}function g(t){return d(t)}function O(t,e){let r=0;for(let n of t.keys())if(W(n)){try{if(n.getSourceFile()!==e)continue}catch{continue}t.delete(n),r+=1}return r}function W(t){return!!(t&&typeof t=="object"&&"kind"in t&&"getSourceFile"in t)}export{ue as a,le as b,T as c,ne as d,ie as e,oe as f};
2
+ //# sourceMappingURL=chunk-4LK5OIPW.js.map
@@ -1,8 +1,8 @@
1
- import{a as D,c as L,i as H,k as O}from"./chunk-S5SKXCND.js";import{j as T,o as B}from"./chunk-A7XQT7MH.js";import{d as A}from"./chunk-NMTSZXCL.js";import{c as _}from"./chunk-NK76RSB6.js";import{d as u,e as F}from"./chunk-AM5SUGHF.js";import{a as E}from"./chunk-JOALNFY3.js";var J=5;function le(e,n={}){let{base:o="HEAD",minContainment:a=.7,minCallees:l=3,minSiteCoverage:t=.4,maxHelpers:p=Number.POSITIVE_INFINITY,limit:c=20,scanLimit:g}=n,h=n.semantic!==!1,s=n.diffPlan??L(e,{base:o}),r={available:s.note!==D,base:o,changedFiles:s.changedFiles,helpersChecked:0,skipped:[],findings:[],...s.note?{note:s.note}:{}};if(!r.available||s.changedFiles.length===0)return r;let k=new _(e),P=new Set(s.changedFiles),$=new Map(s.renamedFiles.map(i=>[i.to,i.from]));if(n.baseContentAt&&n.baseContentResultAt)throw new Error("Specify only one of baseContentAt or baseContentResultAt.");let z=n.baseContentResultAt?n.baseContentResultAt:n.baseContentAt?Q(n.baseContentAt):H({projectRoot:e.config.projectRoot,base:o,preloadPaths:O(s)}),f=Z(k,P,$,z);if(f.unavailable)return r.available=!1,r.note=`Base content unavailable: ${f.unavailable.reason}`,r;if(f.definitions.length===0)return r;let I=f.definitions.slice(0,p);f.definitions.length>p&&(r.note=`helper scoring capped at ${p} of ${f.definitions.length} new symbols`);let d=k.calleeEvidenceMap(I,{semantic:h}),q=I.filter(i=>!d.incompleteSymbolIds.has(i.symbolId)&&!d.unavailableSymbolIds.has(i.symbolId)).map(i=>({def:i,callees:B((d.rows.get(i.symbolId)??[]).map(m=>m.symbol))}));for(let i of I)!d.incompleteSymbolIds.has(i.symbolId)&&!d.unavailableSymbolIds.has(i.symbolId)||r.skipped.push({helperShortName:u(i.symbol),helperFile:i.relativePath,reason:"compiler-resolved callee evidence is incomplete or unavailable \u2014 unsafe to score"});let V=T(e),M,G=()=>(M??=V.calleeIndex({minCallees:Math.min(3,l),scanLimit:g,semantic:h}),M);for(let{def:i,callees:m}of q){let b=u(i.symbol);if(m.size<l){r.skipped.push({helperShortName:b,helperFile:i.relativePath,reason:`fewer than ${l} meaningful callees \u2014 too small to score`});continue}let w=G(),N=Y(m,w);if(N===0){r.skipped.push({helperShortName:b,helperFile:i.relativePath,reason:"helper callee pattern is all project-wide infrastructure \u2014 too generic to score"});continue}let y=ee(e,i.symbolId);if(y.length===0){r.skipped.push({helperShortName:b,helperFile:i.relativePath,reason:"no references yet \u2014 covered by the new-dead check"});continue}r.helpersChecked+=1;let v=K({candidateIndex:w,changed:P,helperCallees:m,helperFile:i.relativePath,helperSymbol:i.symbol,minContainment:a,minSiteCoverage:t,migratedFiles:y});v.length!==0&&(v.sort((C,S)=>j(S.migrationScope)-j(C.migrationScope)||S.containment-C.containment||S.siteCoverage-C.siteCoverage||C.file.localeCompare(S.file)),r.findings.push({helperSymbol:i.symbol,helperShortName:b,helperFile:i.relativePath,helperShape:"specific-callee-cluster",helperCalleeCount:m.size,specificHelperCalleeCount:N,migratedFiles:y.sort(),leftovers:v.slice(0,J)}))}return r.findings.sort((i,m)=>(m.leftovers[0]?.containment??0)-(i.leftovers[0]?.containment??0)||i.helperFile.localeCompare(m.helperFile)),r.findings=r.findings.slice(0,c),r}function K(e){let n=[],o=U(e.helperSymbol,e.helperFile,e.migratedFiles),a=new Set;for(let l of e.helperCallees)for(let t of e.candidateIndex.candidateIndexesByCallee.get(l)??[])a.add(t);for(let l of a){let t=e.candidateIndex.corpus[l];if(t.symbol===e.helperSymbol||e.changed.has(t.file)||t.callees.has(e.helperSymbol))continue;let p=A(e.helperCallees,t.callees);if(p<e.minContainment)continue;let c=[...e.helperCallees].filter(s=>t.callees.has(s)),g=t.callees.size===0?0:c.length/t.callees.size;if(g<e.minSiteCoverage||!c.some(s=>(e.candidateIndex.docFreq.get(s)??0)<=e.candidateIndex.ubiquityThreshold))continue;let h=W(o,t.symbol,t.file);n.push({symbol:t.symbol,shortName:u(t.symbol),file:t.file,...h,containment:p,siteCoverage:g,uniqueSiteCalleeCount:Math.max(0,t.callees.size-c.length),sharedCallees:c.map(u).sort()})}return n}function j(e){return e==="same-scope"?2:e==="unknown"?1:0}function U(e,n,o){let a=new Set([...R(n),...x(F(e))]);for(let l of o)for(let t of R(l))a.add(t);return a}function W(e,n,o){let a=new Set([...R(o),...x(F(n))]);if(e.size===0||a.size===0)return{migrationScope:"unknown",migrationScopeReasons:["insufficient path/name tokens to infer migration scope"]};let l=[...a].filter(t=>e.has(t)).sort();return l.length>0?{migrationScope:"same-scope",migrationScopeReasons:[`shares migration-scope token(s): ${l.slice(0,5).join(", ")}`]}:{migrationScope:"possible-subtype",migrationScopeReasons:["no path/name tokens shared with the helper or already migrated files"]}}var X=new Set(["app","apps","common","component","components","helper","helpers","index","lib","package","packages","page","pages","route","routes","service","services","shared","spec","src","test","tests","util","utils"]);function R(e){return x(e.replace(/\.[^.]+$/,""))}function x(e){return e.replace(/([a-z0-9])([A-Z])/g,"$1 $2").toLowerCase().split(/[^a-z0-9]+/).filter(n=>n.length>1&&!X.has(n))}function Y(e,n){let o=0;for(let a of e)(n.docFreq.get(a)??0)<=n.ubiquityThreshold&&(o+=1);return o}function Z(e,n,o,a){let l=[];for(let t of e.productionCallableDefinitions({files:[...n],requireFunctionLikeSymbol:!0})){if(!n.has(t.relativePath))continue;let p=o.get(t.relativePath)??t.relativePath,c=a(p);if(c.state==="unavailable")return{definitions:[],unavailable:c};(c.state==="absent"||!new RegExp(`\\b${E(t.leaf)}\\b`).test(c.content))&&l.push(t)}return{definitions:l}}function Q(e){return n=>{let o=e(n);return o===null?{state:"absent"}:{state:"present",content:o}}}function ee(e,n){return e.all(`SELECT DISTINCT ref_d.relative_path
1
+ import{a as D,c as L,i as H,k as O}from"./chunk-EHPOTEQX.js";import{j as T,o as B}from"./chunk-SUE7SHZL.js";import{d as A}from"./chunk-NMTSZXCL.js";import{c as _}from"./chunk-BPKNP3KZ.js";import{d as u,e as F}from"./chunk-GVAF222T.js";import{a as E}from"./chunk-F74LZWCE.js";var J=5;function le(e,n={}){let{base:o="HEAD",minContainment:a=.7,minCallees:l=3,minSiteCoverage:t=.4,maxHelpers:p=Number.POSITIVE_INFINITY,limit:c=20,scanLimit:g}=n,h=n.semantic!==!1,s=n.diffPlan??L(e,{base:o}),r={available:s.note!==D,base:o,changedFiles:s.changedFiles,helpersChecked:0,skipped:[],findings:[],...s.note?{note:s.note}:{}};if(!r.available||s.changedFiles.length===0)return r;let k=new _(e),P=new Set(s.changedFiles),$=new Map(s.renamedFiles.map(i=>[i.to,i.from]));if(n.baseContentAt&&n.baseContentResultAt)throw new Error("Specify only one of baseContentAt or baseContentResultAt.");let z=n.baseContentResultAt?n.baseContentResultAt:n.baseContentAt?Q(n.baseContentAt):H({projectRoot:e.config.projectRoot,base:o,preloadPaths:O(s)}),f=Z(k,P,$,z);if(f.unavailable)return r.available=!1,r.note=`Base content unavailable: ${f.unavailable.reason}`,r;if(f.definitions.length===0)return r;let I=f.definitions.slice(0,p);f.definitions.length>p&&(r.note=`helper scoring capped at ${p} of ${f.definitions.length} new symbols`);let d=k.calleeEvidenceMap(I,{semantic:h}),q=I.filter(i=>!d.incompleteSymbolIds.has(i.symbolId)&&!d.unavailableSymbolIds.has(i.symbolId)).map(i=>({def:i,callees:B((d.rows.get(i.symbolId)??[]).map(m=>m.symbol))}));for(let i of I)!d.incompleteSymbolIds.has(i.symbolId)&&!d.unavailableSymbolIds.has(i.symbolId)||r.skipped.push({helperShortName:u(i.symbol),helperFile:i.relativePath,reason:"compiler-resolved callee evidence is incomplete or unavailable \u2014 unsafe to score"});let V=T(e),M,G=()=>(M??=V.calleeIndex({minCallees:Math.min(3,l),scanLimit:g,semantic:h}),M);for(let{def:i,callees:m}of q){let b=u(i.symbol);if(m.size<l){r.skipped.push({helperShortName:b,helperFile:i.relativePath,reason:`fewer than ${l} meaningful callees \u2014 too small to score`});continue}let w=G(),N=Y(m,w);if(N===0){r.skipped.push({helperShortName:b,helperFile:i.relativePath,reason:"helper callee pattern is all project-wide infrastructure \u2014 too generic to score"});continue}let y=ee(e,i.symbolId);if(y.length===0){r.skipped.push({helperShortName:b,helperFile:i.relativePath,reason:"no references yet \u2014 covered by the new-dead check"});continue}r.helpersChecked+=1;let v=K({candidateIndex:w,changed:P,helperCallees:m,helperFile:i.relativePath,helperSymbol:i.symbol,minContainment:a,minSiteCoverage:t,migratedFiles:y});v.length!==0&&(v.sort((C,S)=>j(S.migrationScope)-j(C.migrationScope)||S.containment-C.containment||S.siteCoverage-C.siteCoverage||C.file.localeCompare(S.file)),r.findings.push({helperSymbol:i.symbol,helperShortName:b,helperFile:i.relativePath,helperShape:"specific-callee-cluster",helperCalleeCount:m.size,specificHelperCalleeCount:N,migratedFiles:y.sort(),leftovers:v.slice(0,J)}))}return r.findings.sort((i,m)=>(m.leftovers[0]?.containment??0)-(i.leftovers[0]?.containment??0)||i.helperFile.localeCompare(m.helperFile)),r.findings=r.findings.slice(0,c),r}function K(e){let n=[],o=U(e.helperSymbol,e.helperFile,e.migratedFiles),a=new Set;for(let l of e.helperCallees)for(let t of e.candidateIndex.candidateIndexesByCallee.get(l)??[])a.add(t);for(let l of a){let t=e.candidateIndex.corpus[l];if(t.symbol===e.helperSymbol||e.changed.has(t.file)||t.callees.has(e.helperSymbol))continue;let p=A(e.helperCallees,t.callees);if(p<e.minContainment)continue;let c=[...e.helperCallees].filter(s=>t.callees.has(s)),g=t.callees.size===0?0:c.length/t.callees.size;if(g<e.minSiteCoverage||!c.some(s=>(e.candidateIndex.docFreq.get(s)??0)<=e.candidateIndex.ubiquityThreshold))continue;let h=W(o,t.symbol,t.file);n.push({symbol:t.symbol,shortName:u(t.symbol),file:t.file,...h,containment:p,siteCoverage:g,uniqueSiteCalleeCount:Math.max(0,t.callees.size-c.length),sharedCallees:c.map(u).sort()})}return n}function j(e){return e==="same-scope"?2:e==="unknown"?1:0}function U(e,n,o){let a=new Set([...R(n),...x(F(e))]);for(let l of o)for(let t of R(l))a.add(t);return a}function W(e,n,o){let a=new Set([...R(o),...x(F(n))]);if(e.size===0||a.size===0)return{migrationScope:"unknown",migrationScopeReasons:["insufficient path/name tokens to infer migration scope"]};let l=[...a].filter(t=>e.has(t)).sort();return l.length>0?{migrationScope:"same-scope",migrationScopeReasons:[`shares migration-scope token(s): ${l.slice(0,5).join(", ")}`]}:{migrationScope:"possible-subtype",migrationScopeReasons:["no path/name tokens shared with the helper or already migrated files"]}}var X=new Set(["app","apps","common","component","components","helper","helpers","index","lib","package","packages","page","pages","route","routes","service","services","shared","spec","src","test","tests","util","utils"]);function R(e){return x(e.replace(/\.[^.]+$/,""))}function x(e){return e.replace(/([a-z0-9])([A-Z])/g,"$1 $2").toLowerCase().split(/[^a-z0-9]+/).filter(n=>n.length>1&&!X.has(n))}function Y(e,n){let o=0;for(let a of e)(n.docFreq.get(a)??0)<=n.ubiquityThreshold&&(o+=1);return o}function Z(e,n,o,a){let l=[];for(let t of e.productionCallableDefinitions({files:[...n],requireFunctionLikeSymbol:!0})){if(!n.has(t.relativePath))continue;let p=o.get(t.relativePath)??t.relativePath,c=a(p);if(c.state==="unavailable")return{definitions:[],unavailable:c};(c.state==="absent"||!new RegExp(`\\b${E(t.leaf)}\\b`).test(c.content))&&l.push(t)}return{definitions:l}}function Q(e){return n=>{let o=e(n);return o===null?{state:"absent"}:{state:"present",content:o}}}function ee(e,n){return e.all(`SELECT DISTINCT ref_d.relative_path
2
2
  FROM mentions m
3
3
  JOIN chunks c ON m.chunk_id = c.id
4
4
  JOIN documents ref_d ON c.document_id = ref_d.id
5
5
  WHERE m.symbol_id = ?
6
6
  AND m.role != 1
7
7
  ${e.pathExclusionsFor("ref_d")}`,n).map(a=>a.relative_path)}export{le as a};
8
- //# sourceMappingURL=chunk-6SDEQTVY.js.map
8
+ //# sourceMappingURL=chunk-53ELMZRF.js.map
@@ -1,2 +1,2 @@
1
- import{a as O,b as T,c as y,f as I,g as G,i as $,l as Y,m as q,n as K}from"./chunk-VCL7FK3E.js";import{S as _}from"./chunk-6ZV5EDUT.js";import{a as N}from"./chunk-B2E3HZ2A.js";import{g as U,k as P,l as h,n as z,p as E,w as g}from"./chunk-PLZXWZHY.js";import{a as J,d as f}from"./chunk-3LCDIREB.js";var ue={references:$,referenceMap:Y,referenceEvidenceMap:q,callerMap:(e,i)=>I(e).callerMap(i),calleeMap:X,calleeEvidenceMap:Q};function X(e,i,r={}){return Q(e,i,r).rows}function Q(e,i,r={}){let a=J(),o=new Map,l=G(e,i),n=[],c=[],m=0,p=0,d=0,w=0,R=0,H=0,k=0,S=new Set,v=new Set;for(let{definition:t,callees:s}of l.hits)R+=1,o.set(t.symbolId,s),s.length>0&&(H+=1,k+=s.length);let u=Z(e,l.hits);if(u.entries.length>0&&f("semantic.callees.prefetch-cache-write",()=>E(e,u.entries),()=>({entries:u.entries.length,sourceMissing:u.sourceMissing,skippedUnsupportedLanguage:u.skippedUnsupportedLanguage})),f("semantic.callees.cache-scan",()=>{for(let[t,s]of O(l.misses)){if(!y(t)){a&&(m+=s.length);continue}let j=g(e,t);if(!j){a&&(p+=s.length),c.push(...s);continue}let A=h(e,t,j),D=V(e,t);if(!D){c.push(...s);continue}let W=z(e,t,A,D);for(let M of s){let L=W.get(M.symbol)??null;if(L!==null){let B=te(L);if(B){a&&(d+=1),o.set(M.symbolId,B);continue}a&&(w+=1)}n.push({def:M,contentHash:A,depsDigest:D})}}},()=>({definitions:i.length,skippedUnsupportedLanguage:m,sourceMissing:p,cacheHits:d,parseFailures:w,misses:n.length,unkeyed:c.length,inMemoryHits:R,inMemoryRows:H,inMemoryCalleeCount:k,resultRows:o.size})),n.length===0&&c.length===0)return{rows:o,incompleteSymbolIds:S,unavailableSymbolIds:v};let x=[...c,...n.map(t=>t.def)],F=0,C=f("semantic.callees.compute-misses",()=>{let t=K(e,x,r.resolveProvider);for(let s of t.incompleteSymbolIds)S.add(s);for(let s of t.unavailableSymbolIds)v.add(s);return F=t.rows.size,t.rows},()=>({definitions:x.length,misses:n.length,unkeyed:c.length,rows:F}));for(let[t,s]of C)o.set(t,s);let b=n.filter(t=>C.has(t.def.symbolId)&&I(e).capability("semantic-callees",t.def.relativePath).available).map(t=>({relativePath:t.def.relativePath,symbol:t.def.symbol,contentHash:t.contentHash,depsDigest:t.depsDigest,payload:JSON.stringify(C.get(t.def.symbolId)??[])}));return b.length>0?f("semantic.callees.cache-write",()=>E(e,b),()=>({entries:b.length})):f("semantic.callees.cache-write-skip",()=>{},()=>({reason:"provider-unavailable",misses:n.length})),{rows:o,incompleteSymbolIds:S,unavailableSymbolIds:v}}function Z(e,i){let r=[],a=new Map,o=0,l=0;for(let{definition:n,callees:c}of i){if(!y(n.relativePath)){l+=1;continue}if(!a.has(n.relativePath)){let p=g(e,n.relativePath),d=p?V(e,n.relativePath):null;a.set(n.relativePath,p&&d?{contentHash:h(e,n.relativePath,p),depsDigest:d}:null)}let m=a.get(n.relativePath);if(!m){o+=1;continue}r.push({relativePath:n.relativePath,symbol:n.symbol,contentHash:m.contentHash,depsDigest:m.depsDigest,payload:JSON.stringify(c)})}return{entries:r,sourceMissing:o,skippedUnsupportedLanguage:l}}var ee="typescript-callees-v3-incomplete-scan";function V(e,i){let r=y(i);if(r==="typescript")return _(e,i,ee)?.key??null;let a=ie(e,i);return r==="rust"?P(JSON.stringify({kind:"semantic-callees",language:r,engine:T(e.config.projectRoot),positionMapping:"nearby-leaf-v2-callsite-line",depsDigest:a})):a}function te(e){try{return JSON.parse(e)}catch{return null}}var ne=U("semantic-deps-digest",{clearGroups:["whole-project","source-file"]});function ie(e,i){return ne.get(e,i,()=>{let a=[...N(e).get(i)??[]].sort().map(o=>`${o}:${h(e,o,g(e,o))}`);return P(a.join("|"))})}export{ue as a};
2
- //# sourceMappingURL=chunk-OJFLPVBP.js.map
1
+ import{a as O,b as T,c as y,f as I,g as G,i as $,l as Y,m as q,n as K}from"./chunk-KLX6NSWT.js";import{Y as _}from"./chunk-G7GVV2TV.js";import{a as N}from"./chunk-GV2CEZCW.js";import{g as U,k as P,l as h,n as z,p as E,w as g}from"./chunk-7GAK2F3H.js";import{a as J,d as f}from"./chunk-3LCDIREB.js";var ue={references:$,referenceMap:Y,referenceEvidenceMap:q,callerMap:(e,i)=>I(e).callerMap(i),calleeMap:X,calleeEvidenceMap:Q};function X(e,i,r={}){return Q(e,i,r).rows}function Q(e,i,r={}){let a=J(),o=new Map,l=G(e,i),n=[],c=[],m=0,p=0,d=0,w=0,R=0,H=0,k=0,S=new Set,v=new Set;for(let{definition:t,callees:s}of l.hits)R+=1,o.set(t.symbolId,s),s.length>0&&(H+=1,k+=s.length);let u=Z(e,l.hits);if(u.entries.length>0&&f("semantic.callees.prefetch-cache-write",()=>E(e,u.entries),()=>({entries:u.entries.length,sourceMissing:u.sourceMissing,skippedUnsupportedLanguage:u.skippedUnsupportedLanguage})),f("semantic.callees.cache-scan",()=>{for(let[t,s]of O(l.misses)){if(!y(t)){a&&(m+=s.length);continue}let j=g(e,t);if(!j){a&&(p+=s.length),c.push(...s);continue}let A=h(e,t,j),D=V(e,t);if(!D){c.push(...s);continue}let W=z(e,t,A,D);for(let M of s){let L=W.get(M.symbol)??null;if(L!==null){let B=te(L);if(B){a&&(d+=1),o.set(M.symbolId,B);continue}a&&(w+=1)}n.push({def:M,contentHash:A,depsDigest:D})}}},()=>({definitions:i.length,skippedUnsupportedLanguage:m,sourceMissing:p,cacheHits:d,parseFailures:w,misses:n.length,unkeyed:c.length,inMemoryHits:R,inMemoryRows:H,inMemoryCalleeCount:k,resultRows:o.size})),n.length===0&&c.length===0)return{rows:o,incompleteSymbolIds:S,unavailableSymbolIds:v};let x=[...c,...n.map(t=>t.def)],F=0,C=f("semantic.callees.compute-misses",()=>{let t=K(e,x,r.resolveProvider);for(let s of t.incompleteSymbolIds)S.add(s);for(let s of t.unavailableSymbolIds)v.add(s);return F=t.rows.size,t.rows},()=>({definitions:x.length,misses:n.length,unkeyed:c.length,rows:F}));for(let[t,s]of C)o.set(t,s);let b=n.filter(t=>C.has(t.def.symbolId)&&I(e).capability("semantic-callees",t.def.relativePath).available).map(t=>({relativePath:t.def.relativePath,symbol:t.def.symbol,contentHash:t.contentHash,depsDigest:t.depsDigest,payload:JSON.stringify(C.get(t.def.symbolId)??[])}));return b.length>0?f("semantic.callees.cache-write",()=>E(e,b),()=>({entries:b.length})):f("semantic.callees.cache-write-skip",()=>{},()=>({reason:"provider-unavailable",misses:n.length})),{rows:o,incompleteSymbolIds:S,unavailableSymbolIds:v}}function Z(e,i){let r=[],a=new Map,o=0,l=0;for(let{definition:n,callees:c}of i){if(!y(n.relativePath)){l+=1;continue}if(!a.has(n.relativePath)){let p=g(e,n.relativePath),d=p?V(e,n.relativePath):null;a.set(n.relativePath,p&&d?{contentHash:h(e,n.relativePath,p),depsDigest:d}:null)}let m=a.get(n.relativePath);if(!m){o+=1;continue}r.push({relativePath:n.relativePath,symbol:n.symbol,contentHash:m.contentHash,depsDigest:m.depsDigest,payload:JSON.stringify(c)})}return{entries:r,sourceMissing:o,skippedUnsupportedLanguage:l}}var ee="typescript-callees-v3-incomplete-scan";function V(e,i){let r=y(i);if(r==="typescript")return _(e,i,ee)?.key??null;let a=ie(e,i);return r==="rust"?P(JSON.stringify({kind:"semantic-callees",language:r,engine:T(e.config.projectRoot),positionMapping:"nearby-leaf-v2-callsite-line",depsDigest:a})):a}function te(e){try{return JSON.parse(e)}catch{return null}}var ne=U("semantic-deps-digest",{clearGroups:["whole-project","source-file"]});function ie(e,i){return ne.get(e,i,()=>{let a=[...N(e).get(i)??[]].sort().map(o=>`${o}:${h(e,o,g(e,o))}`);return P(a.join("|"))})}export{ue as a};
2
+ //# sourceMappingURL=chunk-57OPIQFM.js.map
@@ -1,4 +1,4 @@
1
- import{a as u}from"./chunk-OJFLPVBP.js";import{f as d}from"./chunk-57KEZDPT.js";import{d as r,u as a}from"./chunk-AM5SUGHF.js";function b(e,i={}){return f(e,i).rows}function f(e,i={}){let{limit:l=30,scope:t}=i,n=t?"AND def_d.relative_path LIKE ?":"",c=t?[`%${t}%`]:[],o=e.all(`SELECT
1
+ import{a as u}from"./chunk-57OPIQFM.js";import{f as d}from"./chunk-MSI3K7PJ.js";import{d as r,u as a}from"./chunk-GVAF222T.js";function b(e,i={}){return f(e,i).rows}function f(e,i={}){let{limit:l=30,scope:t}=i,n=t?"AND def_d.relative_path LIKE ?":"",c=t?[`%${t}%`]:[],o=e.all(`SELECT
2
2
  gs.symbol,
3
3
  COUNT(*) AS ref_count,
4
4
  COUNT(DISTINCT ref_d.id) AS file_count,
@@ -23,4 +23,4 @@ import{a as u}from"./chunk-OJFLPVBP.js";import{f as d}from"./chunk-57KEZDPT.js";
23
23
  GROUP BY gs.id
24
24
  ORDER BY ref_count DESC
25
25
  LIMIT ?`,...c,l).filter(s=>!e.isIgnored(s.defined_in)).map(s=>({symbol:s.symbol,shortName:r(s.symbol),refCount:s.ref_count,fileCount:s.file_count,definedIn:s.defined_in,basis:"scip-cross-file-mentions",countUnit:"reference-occurrences"}));return o.length>0?{rows:o,coverage:{semanticEvidence:{enabled:!1,status:"disabled",incompleteSymbolCount:0,unavailableSymbolCount:0}}}:p(e,t,l)}function I(e,i={}){return b(e,i)}function p(e,i,l){let t=a(e,{scope:i}).filter(o=>!e.isIgnored(o.relativePath)),n=d(e,t,{limit:500,semanticEvidence:u}),c=t.filter(o=>!n.incompleteSymbolIds.has(o.symbolId)&&!n.unavailableSymbolIds.has(o.symbolId)).map(o=>y(o,n.rows.get(o.symbolId)??[])).filter(o=>o.refCount>0).sort((o,s)=>s.refCount-o.refCount||s.fileCount-o.fileCount).slice(0,l),m=n.incompleteSymbolIds.size>0&&n.unavailableSymbolIds.size>0?"incomplete-and-unavailable":n.incompleteSymbolIds.size>0?"incomplete":n.unavailableSymbolIds.size>0?"unavailable":"complete";return{rows:c,coverage:{semanticEvidence:{enabled:!0,status:m,incompleteSymbolCount:n.incompleteSymbolIds.size,unavailableSymbolCount:n.unavailableSymbolIds.size}}}}function y(e,i){let l=i.filter(t=>t.file!==e.relativePath);return{symbol:e.symbol,shortName:r(e.symbol),refCount:l.length,fileCount:new Set(l.map(t=>t.file)).size,definedIn:e.relativePath,basis:"source-backed-incoming-evidence",countUnit:"distinct-incoming-evidence-rows"}}export{b as a,f as b,I as c};
26
- //# sourceMappingURL=chunk-2E6BTWER.js.map
26
+ //# sourceMappingURL=chunk-5CR4U5X2.js.map
@@ -1,4 +1,4 @@
1
- import{d as q}from"./chunk-XYLV727H.js";import{a as S,c as ne,d as F}from"./chunk-4NHWNAWQ.js";import{a as k,c as ee,d as te}from"./chunk-2VKB5CMA.js";import{a as j,f as O,i as I}from"./chunk-R2NOK63J.js";import{ca as J,da as Z}from"./chunk-4O52YNKL.js";import{createHash as xe}from"crypto";import{existsSync as Le,mkdirSync as De}from"fs";import{dirname as re,join as ke}from"path";import V from"better-sqlite3";var Fe="evidence.db";var we=["source-facts","callable-units","definition-exclusions","doc-path-tokens","react-component-behavior-profiles"],M=new Set(we),Re=25e4,Ae=512*1024*1024,Pe=6e4,N=new WeakMap;te({name:"evidence-connections",close:se});var je=S("evidence-content-hash",{clearGroups:["whole-project","source-file"]}),Oe=S("evidence-project-fingerprint",{clearGroups:["whole-project"]}),f="evidence-v1",_="version NOT LIKE 'evidence-%'";function ie(e){return xe("sha256").update(e).digest("hex")}function Ct(e,n,t){return je.get(e,n,()=>ie(t))}function ae(e){return Oe.get(e,"current",()=>{try{if(!e.generation.metadataRaw)return null;let n=q(e.generation.metadataRaw);if(n.kind!=="legacy"&&n.kind!=="supported"||!n.capabilities.usableForEvidenceCache)return null;let t=n.metadata,r=[...t.indexedLanguages??[]].sort();return ie(JSON.stringify({fingerprint:t.fingerprint,indexedLanguages:r,status:t.status}))}catch(n){return y("project fingerprint unavailable",n),null}})}function y(e,n){process.env.CODEBASEIQ_DEBUG&&console.error(`evidence-cache: ${e}: ${n instanceof Error?n.message:String(n)}`)}function m(e){if(N.has(e))return N.get(e)??null;let n=null;try{let t=new V(k(ke(re(e.config.dbPath),Fe)));t.pragma("journal_mode = WAL"),t.pragma("busy_timeout = 5000"),t.pragma("synchronous = NORMAL"),t.exec(`
1
+ import{d as q}from"./chunk-T75DS2E6.js";import{a as S,c as ne,d as F}from"./chunk-YT4DVWUV.js";import{a as k,c as ee,d as te}from"./chunk-RCIGX23V.js";import{a as j,f as O,i as I}from"./chunk-R2NOK63J.js";import{ca as J,da as Z}from"./chunk-UQYQBLJX.js";import{createHash as xe}from"crypto";import{existsSync as Le,mkdirSync as De}from"fs";import{dirname as re,join as ke}from"path";import V from"better-sqlite3";var Fe="evidence.db";var we=["source-facts","callable-units","definition-exclusions","doc-path-tokens","react-component-behavior-profiles"],M=new Set(we),Re=25e4,Ae=512*1024*1024,Pe=6e4,N=new WeakMap;te({name:"evidence-connections",close:se});var je=S("evidence-content-hash",{clearGroups:["whole-project","source-file"]}),Oe=S("evidence-project-fingerprint",{clearGroups:["whole-project"]}),f="evidence-v1",_="version NOT LIKE 'evidence-%'";function ie(e){return xe("sha256").update(e).digest("hex")}function Ct(e,n,t){return je.get(e,n,()=>ie(t))}function ae(e){return Oe.get(e,"current",()=>{try{if(!e.generation.metadataRaw)return null;let n=q(e.generation.metadataRaw);if(n.kind!=="legacy"&&n.kind!=="supported"||!n.capabilities.usableForEvidenceCache)return null;let t=n.metadata,r=[...t.indexedLanguages??[]].sort();return ie(JSON.stringify({fingerprint:t.fingerprint,indexedLanguages:r,status:t.status}))}catch(n){return y("project fingerprint unavailable",n),null}})}function y(e,n){process.env.CODEBASEIQ_DEBUG&&console.error(`evidence-cache: ${e}: ${n instanceof Error?n.message:String(n)}`)}function m(e){if(N.has(e))return N.get(e)??null;let n=null;try{let t=new V(k(ke(re(e.config.dbPath),Fe)));t.pragma("journal_mode = WAL"),t.pragma("busy_timeout = 5000"),t.pragma("synchronous = NORMAL"),t.exec(`
2
2
  CREATE TABLE IF NOT EXISTS file_evidence (
3
3
  kind TEXT NOT NULL,
4
4
  relative_path TEXT NOT NULL,
@@ -87,4 +87,4 @@ import{d as q}from"./chunk-XYLV727H.js";import{a as S,c as ne,d as F}from"./chun
87
87
  `),startLine:0,language:a}:null}var _e=F("ast-trees",{clearGroups:["whole-project","source-file"]});function Nn(e,n){if($(n))return rt(e,n);let t=K(n);if(!t)return null;let r=v(e,n);return r?_e.get(e,n,r,()=>L(t,r)):null}function Cn(e,n,t){if($(n)){let a=G(e,n,t);if(!a)return null;let s=L(a.language,`
88
88
  `.repeat(a.startLine)+a.body);return s?{tree:s,language:a.language}:null}let r=K(n);if(!r)return null;let i=L(r,t);return i?{tree:i,language:r}:null}function rt(e,n){let t=v(e,n);return t?_e.get(e,n,t,()=>{let r=G(e,n,t);if(!r)return null;let i=`
89
89
  `.repeat(r.startLine)+r.body;return L(r.language,i)}):null}function Tn(e,n){let t=at(e,n);if(!t)return null;let r=P(t);if(!r)return null;let i=st(t);return{calleeLeaf:r,calleeQualifier:i?it(t):void 0,calleeText:t.text,memberAccess:i,line:e.startPosition.row}}function it(e){return(e.childForFieldName("object")??e.childForFieldName("value")??e.namedChild(0)??void 0)?.text||void 0}function at(e,n){if(n==="rust")return e.type==="call_expression"?e.childForFieldName("function")??e.namedChild(0):e.type==="macro_invocation"?e.childForFieldName("macro")??e.namedChild(0):null;if(n==="python")return e.type!=="call"?null:e.childForFieldName("function")??e.namedChild(0);if(n==="typescript"||n==="tsx"||n==="javascript"){if(e.type==="call_expression")return e.childForFieldName("function")??e.namedChild(0);if(e.type==="new_expression")return e.childForFieldName("constructor")??e.namedChild(0)}return null}function st(e){switch(e.type){case"field_expression":case"member_expression":case"attribute":return!0;default:return!1}}function P(e){switch(e.type){case"identifier":case"type_identifier":case"field_identifier":case"property_identifier":case"private_property_identifier":case"shorthand_property_identifier":return e.text.replace(/^#/u,"");case"field_expression":case"member_expression":case"attribute":{let n=e.namedChild(e.namedChildCount-1);return n?P(n):null}case"generic_function":{let n=e.childForFieldName("function")??e.namedChild(0);return n?P(n):null}case"scoped_identifier":{let n=e.childForFieldName("name")??e.namedChild(e.namedChildCount-1);return n?P(n):null}case"super":case"self":case"this":return null;default:return null}}function D(e){return e.type==="comment"||e.type==="line_comment"||e.type==="block_comment"}var ot=new Set(["function_declaration","generator_function_declaration","method_definition","method_signature","function_signature"]),Ne=new Set(["arrow_function","function_expression","generator_function"]);function ct(e,n){let t=ut(e,n);if(t)return t;if(!pt(e.type,n))return null;let r=e.childForFieldName("name")??e.namedChildren.find(i=>i.type==="identifier"||i.type==="property_identifier");return r?{name:r.text,definitionNode:e,functionNode:e}:null}function kn(e,n){let t=ct(e,n);if(!t)return null;let{definitionNode:r,functionNode:i}=t;return{name:t.name,startLine:r.startPosition.row,endLine:r.endPosition.row,paramCount:ft(i),params:lt(i),paramsEndLine:dt(i),isLiteralPassthrough:gt(i,n)}}function be(e){return e.namedChildren.find(n=>n.type==="parameters"||n.type==="formal_parameters")}function lt(e){let n=be(e);if(!n)return[];let t=[];for(let r of n.namedChildren){if(D(r))continue;if(r.type==="identifier"){t.push({name:r.text,simple:!0});continue}let i=r.namedChildren.some(o=>o.type.endsWith("_modifier"))||/^\s*(?:public|private|protected|readonly|override)\b/.test(r.text),a=r.childForFieldName("pattern");if(!i&&a&&a.type==="identifier"){t.push({name:a.text,simple:!0});continue}let s=r.namedChildren.find(o=>o.type==="identifier");t.push({name:a?.type==="identifier"?a.text:s?.text??"",simple:!1})}return t}function dt(e){let n=be(e);return n?n.endPosition.row:e.startPosition.row}function pt(e,n){return n==="rust"?e==="function_item"||e==="function_signature_item":n==="python"?e==="function_definition":n==="typescript"||n==="tsx"||n==="javascript"?ot.has(e):!1}function ut(e,n){if(n!=="typescript"&&n!=="tsx"&&n!=="javascript")return null;if(e.type==="variable_declarator"){let t=e.childForFieldName("name")??e.namedChild(0),r=e.childForFieldName("value")??e.namedChild(1);if(!t||!r)return null;let i=Ce(r);return i?{name:t.text,definitionNode:e,functionNode:i}:null}if(e.type==="public_field_definition"){let t=e.childForFieldName("name")??e.namedChild(0),r=e.childForFieldName("value")??e.namedChild(1);if(!t||!r)return null;let i=Ce(r);return i?{name:t.text,definitionNode:e,functionNode:i}:null}return null}function Ce(e){if(Ne.has(e.type))return e;if(e.type!=="call_expression"||(e.childForFieldName("function")??e.namedChild(0))?.type!=="call_expression")return null;let r=((e.childForFieldName("arguments")??e.namedChildren.find(i=>i.type==="arguments"))?.namedChildren??[]).filter(i=>Ne.has(i.type));return r.length===1?r[0]:null}function ft(e){let n=e.namedChildren.find(r=>r.type==="parameters"||r.type==="formal_parameters");if(!n)return 0;let t=0;for(let r of n.namedChildren)D(r)||(t+=1);return t}function gt(e,n){let t=e.namedChildren.find(c=>c.type==="block"||c.type==="statement_block");if(!t)return!1;let r=t.namedChildren.filter(c=>!D(c));if(r.length!==1)return!1;let i=r[0],a=null;if(i.type==="return_statement"||i.type==="expression_statement"?a=i.namedChild(0)??null:n==="rust"&&(i.type==="call_expression"||i.type==="macro_invocation")&&(a=i),!a)return!1;let s=n==="python"?"call":"call_expression";if(a.type!==s)return!1;let o=a.namedChildren.find(c=>c.type==="arguments"||c.type==="argument_list");if(!o)return!1;let l=o.namedChildren.filter(c=>!D(c)),d=e.namedChildren.find(c=>c.type==="parameters"||c.type==="formal_parameters");if(!d)return!1;let g=[];for(let c of d.namedChildren){if(c.type==="identifier"){g.push(c.text);continue}let b=c.namedChildren.find(Te=>Te.type==="identifier");b&&g.push(b.text)}if(l.length!==g.length)return!1;for(let c=0;c<g.length;c+=1){let b=l[c];if(b.type!=="identifier"||b.text!==g[c])return!1}return!0}export{ie as a,Ct as b,ae as c,bt as d,Tt as e,xt as f,Lt as g,Dt as h,Pt as i,jt as j,Ot as k,v as l,He as m,$e as n,Bt as o,Ut as p,U as q,Xe as r,Yt as s,zt as t,Gt as u,qt as v,Jt as w,Zt as x,K as y,$ as z,an as A,sn as B,L as C,un as D,fn as E,G as F,Nn as G,Cn as H,Tn as I,P as J,D as K,ct as L,kn as M};
90
- //# sourceMappingURL=chunk-IYBIBMPF.js.map
90
+ //# sourceMappingURL=chunk-5FWR5HLG.js.map
@@ -1,2 +1,2 @@
1
- import{a as d,b as m}from"./chunk-IRQOAM5G.js";import{c as u}from"./chunk-NMTSZXCL.js";import{a as c}from"./chunk-B2E3HZ2A.js";function y(t,e={}){let{minSimilarity:o=.5,limit:l=20,scope:n,filePattern:p}=e,r=e.minDeps??(p?1:3),{profiles:i,distinctiveDeps:f}=D(t,{scope:n,minDeps:r}),s=d(i,a=>a.deps);return m({profiles:i,limit:l,filePattern:p,overrunFactor:5,candidateIndex:s,profile:{name:"similar-files"},compare:(a,g)=>F(a,g,o,f)})}function D(t,e){let{scope:o,minDeps:l}=e,n=c(t,o),{universalDeps:p,distinctiveDeps:r}=S(n),i=[];for(let[f,s]of n)s.size>=l&&i.push({file:f,deps:new Set([...s].filter(a=>!p.has(a)))});return{profiles:i,distinctiveDeps:r}}function S(t){let e=new Set,o=new Set,l=t.size;if(l===0)return{universalDeps:e,distinctiveDeps:o};let n=new Map;for(let r of t.values())for(let i of r)n.set(i,(n.get(i)??0)+1);let p=Math.max(3,Math.ceil(l*.03));for(let[r,i]of n)i>=5&&i/l>.3?e.add(r):i<=p&&o.add(r);return{universalDeps:e,distinctiveDeps:o}}function F(t,e,o,l){let n=new Set;for(let s of t.deps)e.deps.has(s)&&n.add(s);if(n.size<3||t.deps.size<4||e.deps.size<4)return null;let p=0;for(let s of n)l.has(s)&&p++;if(p<2)return null;let r=u(t.deps,e.deps);if(r<o)return null;let i=[];for(let s of t.deps)e.deps.has(s)||i.push(s);let f=[];for(let s of e.deps)t.deps.has(s)||f.push(s);return{fileA:t.file,fileB:e.file,similarity:r,sharedDeps:[...n],uniqueToA:i,uniqueToB:f}}export{y as a};
2
- //# sourceMappingURL=chunk-HHBBGWES.js.map
1
+ import{a as d,b as m}from"./chunk-IRQOAM5G.js";import{c as u}from"./chunk-NMTSZXCL.js";import{a as c}from"./chunk-GV2CEZCW.js";function y(t,e={}){let{minSimilarity:o=.5,limit:l=20,scope:n,filePattern:p}=e,r=e.minDeps??(p?1:3),{profiles:i,distinctiveDeps:f}=D(t,{scope:n,minDeps:r}),s=d(i,a=>a.deps);return m({profiles:i,limit:l,filePattern:p,overrunFactor:5,candidateIndex:s,profile:{name:"similar-files"},compare:(a,g)=>F(a,g,o,f)})}function D(t,e){let{scope:o,minDeps:l}=e,n=c(t,o),{universalDeps:p,distinctiveDeps:r}=S(n),i=[];for(let[f,s]of n)s.size>=l&&i.push({file:f,deps:new Set([...s].filter(a=>!p.has(a)))});return{profiles:i,distinctiveDeps:r}}function S(t){let e=new Set,o=new Set,l=t.size;if(l===0)return{universalDeps:e,distinctiveDeps:o};let n=new Map;for(let r of t.values())for(let i of r)n.set(i,(n.get(i)??0)+1);let p=Math.max(3,Math.ceil(l*.03));for(let[r,i]of n)i>=5&&i/l>.3?e.add(r):i<=p&&o.add(r);return{universalDeps:e,distinctiveDeps:o}}function F(t,e,o,l){let n=new Set;for(let s of t.deps)e.deps.has(s)&&n.add(s);if(n.size<3||t.deps.size<4||e.deps.size<4)return null;let p=0;for(let s of n)l.has(s)&&p++;if(p<2)return null;let r=u(t.deps,e.deps);if(r<o)return null;let i=[];for(let s of t.deps)e.deps.has(s)||i.push(s);let f=[];for(let s of e.deps)t.deps.has(s)||f.push(s);return{fileA:t.file,fileB:e.file,similarity:r,sharedDeps:[...n],uniqueToA:i,uniqueToB:f}}export{y as a};
2
+ //# sourceMappingURL=chunk-5LL4KEHO.js.map
@@ -1,2 +1,2 @@
1
- import{a as R}from"./chunk-27PHVDKL.js";import{a as D}from"./chunk-S64NCE2Z.js";import{a as g}from"./chunk-DFPAZXLU.js";import{a as F}from"./chunk-QKVTWODE.js";import{a as y}from"./chunk-BX2U3QQV.js";import{e as f}from"./chunk-A7XQT7MH.js";import{j as d}from"./chunk-AM5SUGHF.js";import{L as h}from"./chunk-RVYLJDXC.js";var A=.7,S=.62,C=.45;function J(i,t={}){let{windowCommits:e=100,limit:n=30,scope:a,scanLimit:o}=t,s=y(i,{historyMode:t.historyMode}).fileAddRecords();if(!s)return{available:!1,windowCommits:e,findings:[]};if(n<=0)return{available:!0,windowCommits:e,findings:[]};let r=P(s,e);if(r.size===0)return{available:!0,windowCommits:e,findings:[]};let b=B(i,{limit:n,minSimilarity:t.minSimilarity,scanLimit:o,scope:a,semantic:t.semantic,focusFiles:Number.isFinite(n)?void 0:r}).map(l=>O(l,s,e)).filter(l=>l!==null);b.sort((l,c)=>(l.kind===c.kind?0:l.kind==="echo"?-1:1)||c.similarity-l.similarity||l.echoFile.localeCompare(c.echoFile)||l.echoSymbol.localeCompare(c.echoSymbol)||l.domain.localeCompare(c.domain));let p=b.slice(0,n).map(M);return{available:!0,windowCommits:e,findings:p,rootCauseGroups:N(p)}}function B(i,t){let e=K(t.limit),n=[...k(i,{scope:t.scope,minSimilarity:t.minSimilarity??A,limit:e,scanLimit:t.scanLimit,semantic:t.semantic,focusFiles:t.focusFiles})],a=h(i,{scope:t.scope});return a.react&&n.push(...E(i,{scope:t.scope,minSimilarity:t.minSimilarity??S,limit:e,scanLimit:t.scanLimit,focusFiles:t.focusFiles}),...L(i,{scope:t.scope,minSimilarity:t.minSimilarity??C,limit:e,scanLimit:t.scanLimit,focusFiles:t.focusFiles})),a.vue&&n.push(...x(i,{scope:t.scope,minSimilarity:t.minSimilarity??S,limit:e,scanLimit:t.scanLimit,focusFiles:t.focusFiles}),...T(i,{scope:t.scope,minSimilarity:t.minSimilarity??C,limit:e,scanLimit:t.scanLimit,focusFiles:t.focusFiles})),n}function k(i,t){return f(i,{scope:t.scope,minSimilarity:t.minSimilarity,limit:t.limit,crossFileOnly:!0,scanLimit:t.scanLimit,semantic:t.semantic,focusFiles:t.focusFiles}).filter(e=>!d(e.symbolA)&&!d(e.symbolB)).map(e=>({domain:"callable",basis:e.similarityBasis??"callees",symbolA:e.shortNameA,fileA:e.fileA,symbolB:e.shortNameB,fileB:e.fileB,similarity:e.similarity,sharedEvidence:e.sharedCallees,sharedCallees:e.sharedCallees}))}function E(i,t){return u(i,t,{query:g,domain:"react-component",basis:"jsx-structure",symbolA:e=>e.componentA,symbolB:e=>e.componentB,evidenceBuckets:e=>[["component",e.sharedComponents],["tag",e.sharedNativeTags],["prop",e.sharedProps],["event",e.sharedEvents],["binding",e.sharedBindings]]})}function u(i,t,e){return e.query(i,t).filter(n=>n.fileA!==n.fileB).filter(n=>e.acceptPair?.(n)??!0).map(n=>({domain:e.domain,basis:e.basis,symbolA:e.symbolA(n),fileA:n.fileA,symbolB:e.symbolB(n),fileB:n.fileB,similarity:n.similarity,sharedEvidence:G(...e.evidenceBuckets(n)),sharedCallees:[]}))}function L(i,t){return u(i,t,{query:F,domain:"react-hook",basis:"react-behavior",symbolA:e=>e.componentA,symbolB:e=>e.componentB,acceptPair:w,evidenceBuckets:e=>[["hook",e.sharedHooks],["react-hook",e.sharedReactHooks],["effect",e.sharedEffects],["state",e.sharedState],["request",e.sharedRequests],["handler",e.sharedHandlers],["action",e.sharedHandlerVerbs]]})}var I=new Set(["useCallback","useEffect","useLayoutEffect","useMemo","useMutation","useQueries","useQuery","useQueryClient","useReducer","useRef","useState"]);function w(i){return i.sharedHooks.some(t=>!I.has(t))||i.sharedState.length>0||i.sharedHandlers.length>0||i.sharedHandlerVerbs.length>=2}function x(i,t){return u(i,t,{query:D,domain:"vue-component",basis:"vue-template",symbolA:e=>m(e.fileA),symbolB:e=>m(e.fileB),evidenceBuckets:e=>[["component",e.sharedComponents],["prop",e.sharedProps],["event",e.sharedEvents],["directive",e.sharedDirectives],["slot",e.sharedSlots],["identifier",e.sharedIdentifiers]]})}function T(i,t){return u(i,t,{query:R,domain:"vue-composable",basis:"vue-behavior",symbolA:e=>m(e.fileA),symbolB:e=>m(e.fileB),evidenceBuckets:e=>[["composable",e.sharedComposables],["store",e.sharedStores],["reactivity",e.sharedReactivity],["lifecycle",e.sharedLifecycle],["request",e.sharedRequests],["function",e.sharedFunctions],["action",e.sharedFunctionVerbs],["binding",e.sharedBindings],["template-event",e.sharedTemplateEvents]]})}function P(i,t){let e=new Set;for(let[n,a]of i)a.commitsAgo<=t&&e.add(n);return e}function O(i,t,e){let n=t.get(i.fileA)?.commitsAgo??null,a=t.get(i.fileB)?.commitsAgo??null,o=n!==null&&n<=e,s=a!==null&&a<=e;if(!o&&!s)return null;if(o&&s){let r=(n??0)<=(a??0);return{kind:"twin",domain:i.domain,basis:i.basis,echoSymbol:r?i.symbolA:i.symbolB,echoFile:r?i.fileA:i.fileB,echoAgeCommits:(r?n:a)??0,establishedSymbol:r?i.symbolB:i.symbolA,establishedFile:r?i.fileB:i.fileA,establishedAgeCommits:r?a:n,similarity:i.similarity,sharedEvidence:i.sharedEvidence,sharedCallees:i.sharedCallees}}return{kind:"echo",domain:i.domain,basis:i.basis,echoSymbol:o?i.symbolA:i.symbolB,echoFile:o?i.fileA:i.fileB,echoAgeCommits:(o?n:a)??0,establishedSymbol:o?i.symbolB:i.symbolA,establishedFile:o?i.fileB:i.fileA,establishedAgeCommits:o?a:n,similarity:i.similarity,sharedEvidence:i.sharedEvidence,sharedCallees:i.sharedCallees}}function M(i){let t=v(i);return{...i,rootCauseKey:t,groupKey:`recent-duplicate:${t}`}}function v(i){if(i.kind==="echo")return["echo",i.domain,i.basis,i.establishedSymbol].join(":");let t=i.sharedEvidence.slice().sort().join("|"),e=[i.echoSymbol,i.establishedSymbol].sort().join("|");return["twin",i.domain,i.basis,t||e].join(":")}function N(i){let t=new Map;for(let[e,n]of i.entries()){let a=n.rootCauseKey??v(n),o=n.groupKey??`recent-duplicate:${a}`,s=t.get(o);s||(s={groupKey:o,rootCauseKey:a,kind:n.kind,domain:n.domain,basis:n.basis,count:0,maxSimilarity:n.similarity,findingIndexes:[],echoFiles:new Set,establishedFile:n.kind==="echo"?n.establishedFile:void 0,establishedSymbol:n.kind==="echo"?n.establishedSymbol:void 0,relatedFiles:new Set,sharedEvidence:new Set,recommendation:H(n)},t.set(o,s)),s.count+=1,s.maxSimilarity=Math.max(s.maxSimilarity,n.similarity),s.findingIndexes.push(e),s.echoFiles.add(n.echoFile),s.relatedFiles.add(n.echoFile),s.relatedFiles.add(n.establishedFile);for(let r of n.sharedEvidence)s.sharedEvidence.add(r)}return[...t.values()].map(e=>({...e,echoFiles:[...e.echoFiles].sort(),relatedFiles:[...e.relatedFiles].sort(),sharedEvidence:[...e.sharedEvidence].sort().slice(0,16)})).sort((e,n)=>n.count-e.count||n.maxSimilarity-e.maxSimilarity||e.groupKey.localeCompare(n.groupKey))}function H(i){return i.kind==="echo"?"Review the established side once, then migrate or delete every echo in this group.":"Pick one owner for the new twins and consolidate the group before the copies diverge."}function K(i){return Number.isFinite(i)?i*5:Number.POSITIVE_INFINITY}function G(...i){let t=[],e=new Set;for(let[n,a]of i)for(let o of a){let s=`${n}:${o}`;e.has(s)||(e.add(s),t.push(s))}return t}function m(i){return(i.split("/").pop()??i).replace(/\.[^.]+$/,"")}export{J as a};
2
- //# sourceMappingURL=chunk-NTRW52UR.js.map
1
+ import{a as R}from"./chunk-MZNMASFM.js";import{a as D}from"./chunk-WWCV4E6J.js";import{a as g}from"./chunk-KPZGTB2O.js";import{a as F}from"./chunk-WK2IQJPK.js";import{a as y}from"./chunk-CCIYWXX6.js";import{e as f}from"./chunk-SUE7SHZL.js";import{j as d}from"./chunk-GVAF222T.js";import{L as h}from"./chunk-ICUL7XRT.js";var A=.7,S=.62,C=.45;function J(i,t={}){let{windowCommits:e=100,limit:n=30,scope:a,scanLimit:o}=t,s=y(i,{historyMode:t.historyMode}).fileAddRecords();if(!s)return{available:!1,windowCommits:e,findings:[]};if(n<=0)return{available:!0,windowCommits:e,findings:[]};let r=P(s,e);if(r.size===0)return{available:!0,windowCommits:e,findings:[]};let b=B(i,{limit:n,minSimilarity:t.minSimilarity,scanLimit:o,scope:a,semantic:t.semantic,focusFiles:Number.isFinite(n)?void 0:r}).map(l=>O(l,s,e)).filter(l=>l!==null);b.sort((l,c)=>(l.kind===c.kind?0:l.kind==="echo"?-1:1)||c.similarity-l.similarity||l.echoFile.localeCompare(c.echoFile)||l.echoSymbol.localeCompare(c.echoSymbol)||l.domain.localeCompare(c.domain));let p=b.slice(0,n).map(M);return{available:!0,windowCommits:e,findings:p,rootCauseGroups:N(p)}}function B(i,t){let e=K(t.limit),n=[...k(i,{scope:t.scope,minSimilarity:t.minSimilarity??A,limit:e,scanLimit:t.scanLimit,semantic:t.semantic,focusFiles:t.focusFiles})],a=h(i,{scope:t.scope});return a.react&&n.push(...E(i,{scope:t.scope,minSimilarity:t.minSimilarity??S,limit:e,scanLimit:t.scanLimit,focusFiles:t.focusFiles}),...L(i,{scope:t.scope,minSimilarity:t.minSimilarity??C,limit:e,scanLimit:t.scanLimit,focusFiles:t.focusFiles})),a.vue&&n.push(...x(i,{scope:t.scope,minSimilarity:t.minSimilarity??S,limit:e,scanLimit:t.scanLimit,focusFiles:t.focusFiles}),...T(i,{scope:t.scope,minSimilarity:t.minSimilarity??C,limit:e,scanLimit:t.scanLimit,focusFiles:t.focusFiles})),n}function k(i,t){return f(i,{scope:t.scope,minSimilarity:t.minSimilarity,limit:t.limit,crossFileOnly:!0,scanLimit:t.scanLimit,semantic:t.semantic,focusFiles:t.focusFiles}).filter(e=>!d(e.symbolA)&&!d(e.symbolB)).map(e=>({domain:"callable",basis:e.similarityBasis??"callees",symbolA:e.shortNameA,fileA:e.fileA,symbolB:e.shortNameB,fileB:e.fileB,similarity:e.similarity,sharedEvidence:e.sharedCallees,sharedCallees:e.sharedCallees}))}function E(i,t){return u(i,t,{query:g,domain:"react-component",basis:"jsx-structure",symbolA:e=>e.componentA,symbolB:e=>e.componentB,evidenceBuckets:e=>[["component",e.sharedComponents],["tag",e.sharedNativeTags],["prop",e.sharedProps],["event",e.sharedEvents],["binding",e.sharedBindings]]})}function u(i,t,e){return e.query(i,t).filter(n=>n.fileA!==n.fileB).filter(n=>e.acceptPair?.(n)??!0).map(n=>({domain:e.domain,basis:e.basis,symbolA:e.symbolA(n),fileA:n.fileA,symbolB:e.symbolB(n),fileB:n.fileB,similarity:n.similarity,sharedEvidence:G(...e.evidenceBuckets(n)),sharedCallees:[]}))}function L(i,t){return u(i,t,{query:F,domain:"react-hook",basis:"react-behavior",symbolA:e=>e.componentA,symbolB:e=>e.componentB,acceptPair:w,evidenceBuckets:e=>[["hook",e.sharedHooks],["react-hook",e.sharedReactHooks],["effect",e.sharedEffects],["state",e.sharedState],["request",e.sharedRequests],["handler",e.sharedHandlers],["action",e.sharedHandlerVerbs]]})}var I=new Set(["useCallback","useEffect","useLayoutEffect","useMemo","useMutation","useQueries","useQuery","useQueryClient","useReducer","useRef","useState"]);function w(i){return i.sharedHooks.some(t=>!I.has(t))||i.sharedState.length>0||i.sharedHandlers.length>0||i.sharedHandlerVerbs.length>=2}function x(i,t){return u(i,t,{query:D,domain:"vue-component",basis:"vue-template",symbolA:e=>m(e.fileA),symbolB:e=>m(e.fileB),evidenceBuckets:e=>[["component",e.sharedComponents],["prop",e.sharedProps],["event",e.sharedEvents],["directive",e.sharedDirectives],["slot",e.sharedSlots],["identifier",e.sharedIdentifiers]]})}function T(i,t){return u(i,t,{query:R,domain:"vue-composable",basis:"vue-behavior",symbolA:e=>m(e.fileA),symbolB:e=>m(e.fileB),evidenceBuckets:e=>[["composable",e.sharedComposables],["store",e.sharedStores],["reactivity",e.sharedReactivity],["lifecycle",e.sharedLifecycle],["request",e.sharedRequests],["function",e.sharedFunctions],["action",e.sharedFunctionVerbs],["binding",e.sharedBindings],["template-event",e.sharedTemplateEvents]]})}function P(i,t){let e=new Set;for(let[n,a]of i)a.commitsAgo<=t&&e.add(n);return e}function O(i,t,e){let n=t.get(i.fileA)?.commitsAgo??null,a=t.get(i.fileB)?.commitsAgo??null,o=n!==null&&n<=e,s=a!==null&&a<=e;if(!o&&!s)return null;if(o&&s){let r=(n??0)<=(a??0);return{kind:"twin",domain:i.domain,basis:i.basis,echoSymbol:r?i.symbolA:i.symbolB,echoFile:r?i.fileA:i.fileB,echoAgeCommits:(r?n:a)??0,establishedSymbol:r?i.symbolB:i.symbolA,establishedFile:r?i.fileB:i.fileA,establishedAgeCommits:r?a:n,similarity:i.similarity,sharedEvidence:i.sharedEvidence,sharedCallees:i.sharedCallees}}return{kind:"echo",domain:i.domain,basis:i.basis,echoSymbol:o?i.symbolA:i.symbolB,echoFile:o?i.fileA:i.fileB,echoAgeCommits:(o?n:a)??0,establishedSymbol:o?i.symbolB:i.symbolA,establishedFile:o?i.fileB:i.fileA,establishedAgeCommits:o?a:n,similarity:i.similarity,sharedEvidence:i.sharedEvidence,sharedCallees:i.sharedCallees}}function M(i){let t=v(i);return{...i,rootCauseKey:t,groupKey:`recent-duplicate:${t}`}}function v(i){if(i.kind==="echo")return["echo",i.domain,i.basis,i.establishedSymbol].join(":");let t=i.sharedEvidence.slice().sort().join("|"),e=[i.echoSymbol,i.establishedSymbol].sort().join("|");return["twin",i.domain,i.basis,t||e].join(":")}function N(i){let t=new Map;for(let[e,n]of i.entries()){let a=n.rootCauseKey??v(n),o=n.groupKey??`recent-duplicate:${a}`,s=t.get(o);s||(s={groupKey:o,rootCauseKey:a,kind:n.kind,domain:n.domain,basis:n.basis,count:0,maxSimilarity:n.similarity,findingIndexes:[],echoFiles:new Set,establishedFile:n.kind==="echo"?n.establishedFile:void 0,establishedSymbol:n.kind==="echo"?n.establishedSymbol:void 0,relatedFiles:new Set,sharedEvidence:new Set,recommendation:H(n)},t.set(o,s)),s.count+=1,s.maxSimilarity=Math.max(s.maxSimilarity,n.similarity),s.findingIndexes.push(e),s.echoFiles.add(n.echoFile),s.relatedFiles.add(n.echoFile),s.relatedFiles.add(n.establishedFile);for(let r of n.sharedEvidence)s.sharedEvidence.add(r)}return[...t.values()].map(e=>({...e,echoFiles:[...e.echoFiles].sort(),relatedFiles:[...e.relatedFiles].sort(),sharedEvidence:[...e.sharedEvidence].sort().slice(0,16)})).sort((e,n)=>n.count-e.count||n.maxSimilarity-e.maxSimilarity||e.groupKey.localeCompare(n.groupKey))}function H(i){return i.kind==="echo"?"Review the established side once, then migrate or delete every echo in this group.":"Pick one owner for the new twins and consolidate the group before the copies diverge."}function K(i){return Number.isFinite(i)?i*5:Number.POSITIVE_INFINITY}function G(...i){let t=[],e=new Set;for(let[n,a]of i)for(let o of a){let s=`${n}:${o}`;e.has(s)||(e.add(s),t.push(s))}return t}function m(i){return(i.split("/").pop()??i).replace(/\.[^.]+$/,"")}export{J as a};
2
+ //# sourceMappingURL=chunk-5MPBSFZH.js.map