scip-query 0.23.0 → 0.26.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (650) hide show
  1. package/CHANGELOG.md +491 -2
  2. package/README.md +111 -122
  3. package/dist/augment-vue-worker.js +1 -1
  4. package/dist/by-kind-PRVFAGTQ.js +2 -0
  5. package/dist/call-graph-DVPAQV2F.js +2 -0
  6. package/dist/call-graph-evidence-CUtj8V2I.d.ts +19 -0
  7. package/dist/chunk-2FSBGL5P.js +2 -0
  8. package/dist/chunk-2HLAFUCY.js +2 -0
  9. package/dist/chunk-2IWUT6CJ.js +3 -0
  10. package/dist/chunk-2KNN7GTQ.js +2 -0
  11. package/dist/chunk-2LHXRE2B.js +8 -0
  12. package/dist/{chunk-EG2CPZMJ.js → chunk-2YXE77TJ.js} +2 -2
  13. package/dist/chunk-36SGVCGX.js +2 -0
  14. package/dist/chunk-3ABBFPTP.js +2 -0
  15. package/dist/chunk-3IVFU4FD.js +3 -0
  16. package/dist/chunk-3JIQS44J.js +7 -0
  17. package/dist/chunk-3ZRB6DNK.js +7 -0
  18. package/dist/{chunk-6YTSKJJ3.js → chunk-42EOW5VI.js} +1 -1
  19. package/dist/{chunk-6I6L7Z62.js → chunk-4BHGBMNO.js} +2 -2
  20. package/dist/chunk-4BP3UBDG.js +2 -0
  21. package/dist/chunk-4D6RO7G4.js +2 -0
  22. package/dist/chunk-4FEWQ6RH.js +2 -0
  23. package/dist/chunk-4IGEOBG7.js +2 -0
  24. package/dist/chunk-4QZXBUKC.js +2 -0
  25. package/dist/chunk-4WBDEVX2.js +4 -0
  26. package/dist/chunk-4WCUBZU3.js +8 -0
  27. package/dist/chunk-4WTUBQ36.js +40 -0
  28. package/dist/chunk-4XQ4O6IM.js +3 -0
  29. package/dist/chunk-55UQAMZO.js +4 -0
  30. package/dist/chunk-5D2LVK7O.js +125 -0
  31. package/dist/chunk-5IYJ56TT.js +2 -0
  32. package/dist/chunk-5PLMJC7Q.js +2 -0
  33. package/dist/chunk-5TNQJUR2.js +5 -0
  34. package/dist/chunk-62BDNPMI.js +2 -0
  35. package/dist/chunk-64DZ5TXR.js +7 -0
  36. package/dist/chunk-65245JCM.js +2 -0
  37. package/dist/chunk-6FFVZZL4.js +2 -0
  38. package/dist/chunk-6KO5JHAR.js +2 -0
  39. package/dist/chunk-6LRXOOSX.js +2 -0
  40. package/dist/chunk-6LSEIIF7.js +2 -0
  41. package/dist/chunk-6YMNWD3H.js +6 -0
  42. package/dist/chunk-72AD6ZRR.js +5 -0
  43. package/dist/chunk-73AAKPUC.js +4 -0
  44. package/dist/chunk-76CZ77DF.js +2 -0
  45. package/dist/chunk-7VPEEAAG.js +2 -0
  46. package/dist/chunk-7WTPQ4NX.js +14 -0
  47. package/dist/chunk-7Y5T6XDP.js +2 -0
  48. package/dist/chunk-A2IIGFMJ.js +5 -0
  49. package/dist/chunk-AB5KCTEV.js +2 -0
  50. package/dist/chunk-AC566WBP.js +6 -0
  51. package/dist/chunk-AGWFSTXC.js +3 -0
  52. package/dist/chunk-AOSIYPTA.js +2 -0
  53. package/dist/chunk-AUVEWPIF.js +2 -0
  54. package/dist/chunk-B56T42J3.js +25 -0
  55. package/dist/chunk-BIQEF5NE.js +2 -0
  56. package/dist/chunk-BL6XJKTA.js +3 -0
  57. package/dist/chunk-BMKOQJRI.js +2 -0
  58. package/dist/chunk-BOZ4EXBB.js +3 -0
  59. package/dist/chunk-BUTWYEPH.js +2 -0
  60. package/dist/chunk-BZB4QPIP.js +2 -0
  61. package/dist/{chunk-ILTDAWEF.js → chunk-CE357GEE.js} +4 -4
  62. package/dist/chunk-CFN45HFP.js +2 -0
  63. package/dist/chunk-CFYMZFXT.js +368 -0
  64. package/dist/chunk-CN5EH7O3.js +2 -0
  65. package/dist/chunk-D254DNNQ.js +4 -0
  66. package/dist/chunk-D3FDISIC.js +2 -0
  67. package/dist/chunk-D3NX5XIE.js +3 -0
  68. package/dist/chunk-DA7RPPDF.js +3 -0
  69. package/dist/chunk-DDMC3FON.js +3 -0
  70. package/dist/chunk-DIO3FUSG.js +2 -0
  71. package/dist/chunk-DJ2NNSUK.js +3 -0
  72. package/dist/chunk-DKYQIM3C.js +18 -0
  73. package/dist/{chunk-JTQVMR42.js → chunk-DOOEL2IV.js} +2 -2
  74. package/dist/chunk-DVFP6PZI.js +2 -0
  75. package/dist/chunk-E3FDPXZK.js +2 -0
  76. package/dist/chunk-E7YNJLCB.js +2 -0
  77. package/dist/chunk-EFGW5JPH.js +2 -0
  78. package/dist/chunk-EJVTR244.js +13 -0
  79. package/dist/chunk-EOV7RTRZ.js +2 -0
  80. package/dist/chunk-ETOIKRHO.js +2 -0
  81. package/dist/chunk-EYK3ZAO2.js +3 -0
  82. package/dist/chunk-F2V2LPET.js +52 -0
  83. package/dist/chunk-F4LUHJTF.js +2 -0
  84. package/dist/chunk-F4PUT6IT.js +2 -0
  85. package/dist/chunk-F56GCXXS.js +5 -0
  86. package/dist/chunk-FC2EVQRM.js +2 -0
  87. package/dist/chunk-FL7NBMHP.js +3 -0
  88. package/dist/chunk-FMRN2TRL.js +3 -0
  89. package/dist/chunk-FVULPZDF.js +20 -0
  90. package/dist/chunk-GCKCF5FL.js +43 -0
  91. package/dist/chunk-GH2PYF46.js +2 -0
  92. package/dist/chunk-GHJAGXIP.js +2 -0
  93. package/dist/{chunk-WIWY3CRX.js → chunk-GMVSHUKZ.js} +2 -2
  94. package/dist/chunk-GS6KDO4R.js +2 -0
  95. package/dist/chunk-GUUBXNN7.js +2 -0
  96. package/dist/chunk-GVWX5T43.js +80 -0
  97. package/dist/chunk-GZKFETP5.js +2 -0
  98. package/dist/chunk-H4EQHO6J.js +9 -0
  99. package/dist/chunk-H73WY2RM.js +2 -0
  100. package/dist/chunk-H75GSPRV.js +60 -0
  101. package/dist/chunk-HDR3AHSV.js +61 -0
  102. package/dist/chunk-HQBSL74Y.js +2 -0
  103. package/dist/chunk-HRRFKWPZ.js +2 -0
  104. package/dist/chunk-HXENDJC6.js +2 -0
  105. package/dist/chunk-IIBAZNSW.js +21 -0
  106. package/dist/chunk-INLMWEUU.js +12 -0
  107. package/dist/chunk-IWQPAF4F.js +2 -0
  108. package/dist/chunk-IZJ6YUKP.js +35 -0
  109. package/dist/chunk-J2TMAIN5.js +60 -0
  110. package/dist/chunk-J5FJMODQ.js +142 -0
  111. package/dist/chunk-J7HZPIO3.js +2 -0
  112. package/dist/chunk-JEVRKFRL.js +2 -0
  113. package/dist/chunk-JFXSGAEB.js +30 -0
  114. package/dist/chunk-JVRTHGFS.js +3 -0
  115. package/dist/chunk-JYWEX7RR.js +360 -0
  116. package/dist/chunk-K3YL22N6.js +2 -0
  117. package/dist/chunk-K4CN7GXK.js +12 -0
  118. package/dist/chunk-K5TBVXU4.js +30 -0
  119. package/dist/chunk-KDDIE2DP.js +9 -0
  120. package/dist/chunk-KHWRRPV4.js +2 -0
  121. package/dist/chunk-KI6NBKDY.js +14 -0
  122. package/dist/chunk-KU3QRSTH.js +2 -0
  123. package/dist/chunk-KZBJWZJB.js +2 -0
  124. package/dist/chunk-L7GFM3NP.js +3 -0
  125. package/dist/chunk-LMO6PK3V.js +35 -0
  126. package/dist/chunk-LN4YXJJU.js +2 -0
  127. package/dist/chunk-LOVIZBJ4.js +43 -0
  128. package/dist/chunk-LPCRK4A2.js +11 -0
  129. package/dist/chunk-MMHZKBFA.js +2 -0
  130. package/dist/{chunk-M2O5NY6W.js → chunk-MOQQBQRD.js} +2 -2
  131. package/dist/chunk-N2WN6I3L.js +2 -0
  132. package/dist/chunk-N3ORQT7L.js +2 -0
  133. package/dist/chunk-NAZ3RAIW.js +2 -0
  134. package/dist/chunk-NDUNO5JQ.js +2 -0
  135. package/dist/chunk-NEIWRNAZ.js +4 -0
  136. package/dist/chunk-NJJMVD65.js +2 -0
  137. package/dist/chunk-NLOQOBXI.js +20 -0
  138. package/dist/chunk-NOLZOVCU.js +2 -0
  139. package/dist/chunk-NOWINRRN.js +2 -0
  140. package/dist/chunk-NZAXKGRL.js +16 -0
  141. package/dist/chunk-O2C4UILI.js +2 -0
  142. package/dist/chunk-O3RHA6ZT.js +3 -0
  143. package/dist/chunk-O4UZSPPI.js +3 -0
  144. package/dist/chunk-OGFV2BUX.js +2 -0
  145. package/dist/chunk-OZCJXZK6.js +499 -0
  146. package/dist/chunk-P6ODM7BY.js +2 -0
  147. package/dist/{chunk-XBGWL66K.js → chunk-PAVGPRHJ.js} +2 -2
  148. package/dist/chunk-PH52RA7D.js +2 -0
  149. package/dist/chunk-PKN354TH.js +3 -0
  150. package/dist/chunk-PWOASWEG.js +11 -0
  151. package/dist/chunk-QIWXRW72.js +2 -0
  152. package/dist/chunk-QJRMOK5N.js +2 -0
  153. package/dist/{chunk-YXPUP5G2.js → chunk-QOIXNWQR.js} +2 -2
  154. package/dist/chunk-QXEUDXBT.js +3 -0
  155. package/dist/chunk-QYUVVBMR.js +6 -0
  156. package/dist/chunk-QZ7KQZRN.js +2 -0
  157. package/dist/chunk-R6LQBUDH.js +2 -0
  158. package/dist/chunk-RBS42E55.js +20 -0
  159. package/dist/chunk-RSJKPCFX.js +26 -0
  160. package/dist/chunk-S6CZA3MV.js +2 -0
  161. package/dist/chunk-STMVAHJP.js +2 -0
  162. package/dist/chunk-SYVPTTVW.js +2 -0
  163. package/dist/chunk-T3I6NHBH.js +2 -0
  164. package/dist/chunk-T6DK3ZP7.js +2 -0
  165. package/dist/chunk-TKD34PHN.js +4 -0
  166. package/dist/chunk-TNNQFH7W.js +2 -0
  167. package/dist/chunk-TNV7SSUF.js +2 -0
  168. package/dist/chunk-TO7ZR3EH.js +8 -0
  169. package/dist/chunk-TOU3CHK4.js +2 -0
  170. package/dist/chunk-TRBI4UKT.js +2 -0
  171. package/dist/chunk-TZCVNCAN.js +4 -0
  172. package/dist/chunk-U4LZA5LL.js +3 -0
  173. package/dist/chunk-U5RIG3JP.js +3 -0
  174. package/dist/chunk-UP5KXN2I.js +2 -0
  175. package/dist/chunk-UQFR3NDH.js +5 -0
  176. package/dist/chunk-UXYXF7GV.js +2 -0
  177. package/dist/chunk-VB3GOKOS.js +2 -0
  178. package/dist/chunk-VF5JZICY.js +2 -0
  179. package/dist/chunk-VTY3VK6E.js +2 -0
  180. package/dist/chunk-VX2O4RIS.js +2 -0
  181. package/dist/chunk-WKPV2TDZ.js +2 -0
  182. package/dist/chunk-WOFQ5DTB.js +2 -0
  183. package/dist/chunk-WS4C6TCK.js +2 -0
  184. package/dist/chunk-WXU3DGPU.js +2 -0
  185. package/dist/chunk-X6RMKHJQ.js +81 -0
  186. package/dist/{chunk-4ILJCCXV.js → chunk-XHMN6ZX7.js} +2 -2
  187. package/dist/chunk-XHTVFLWW.js +2 -0
  188. package/dist/chunk-XKIDJCIK.js +2 -0
  189. package/dist/chunk-XTYTYZPT.js +2 -0
  190. package/dist/chunk-Y2JHHTTA.js +2 -0
  191. package/dist/chunk-YGVRMGYN.js +4 -0
  192. package/dist/chunk-YNQCGEQE.js +2 -0
  193. package/dist/chunk-YOQVEXVE.js +14 -0
  194. package/dist/chunk-YRT2WLYY.js +2 -0
  195. package/dist/chunk-YTAP5Y2G.js +2 -0
  196. package/dist/chunk-YTYWI7VB.js +2 -0
  197. package/dist/chunk-YULZRALL.js +2 -0
  198. package/dist/chunk-Z33WQG4Q.js +2 -0
  199. package/dist/chunk-ZGTYGDMF.js +16 -0
  200. package/dist/chunk-ZHMRSZFD.js +43 -0
  201. package/dist/chunk-ZHSP366W.js +10 -0
  202. package/dist/chunk-ZIBYCYKK.js +7 -0
  203. package/dist/{chunk-GAS2LJMP.js → chunk-ZLADLUE6.js} +3 -3
  204. package/dist/chunk-ZO4YXUT6.js +4 -0
  205. package/dist/{chunk-HYO3NP5Q.js → chunk-ZR4HBC2H.js} +2 -2
  206. package/dist/cli-main.js +6 -6
  207. package/dist/cli.js +1 -1
  208. package/dist/{code-B17qEMbt.d.ts → code-BNyrCF3_.d.ts} +3 -2
  209. package/dist/code-IL5WH3NZ.js +2 -0
  210. package/dist/code-result-json-ANTBEDFP.js +4 -0
  211. package/dist/command-descriptors-HEEMDHTU.js +222 -0
  212. package/dist/deps-EOWFC6FD.js +2 -0
  213. package/dist/direct-navigation-Y5B6OSIQ.js +3 -0
  214. package/dist/{exploration-topology-BG4v30HZ.d.ts → exploration-topology-CSgEyAz-.d.ts} +3 -1
  215. package/dist/files-K4AI3JUM.js +2 -0
  216. package/dist/frontend-profile-roles-D7eCum8P.d.ts +10 -0
  217. package/dist/{health-CPp2Jf1Z.d.ts → health-BtfmNrfa.d.ts} +58 -74
  218. package/dist/hierarchy-6W5NDIFI.js +2 -0
  219. package/dist/imports-WH365QY4.js +2 -0
  220. package/dist/index.d.ts +13 -1
  221. package/dist/index.js +1 -1
  222. package/dist/members-K3PHMF5S.js +2 -0
  223. package/dist/methods-E7KVMBX4.js +2 -0
  224. package/dist/output-continuation-command-BJSY67SN.js +3 -0
  225. package/dist/output-pagination-UZJ5ACIX.js +24 -0
  226. package/dist/postinstall.js +1 -1
  227. package/dist/project-reindex-EP24WT4X.js +3 -0
  228. package/dist/queries/affected.js +1 -1
  229. package/dist/queries/architecture.d.ts +15 -4
  230. package/dist/queries/architecture.js +1 -1
  231. package/dist/queries/bottlenecks.js +1 -1
  232. package/dist/queries/by-kind.js +1 -1
  233. package/dist/queries/call-graph.d.ts +3 -1
  234. package/dist/queries/call-graph.js +1 -1
  235. package/dist/queries/change-surface.d.ts +1 -0
  236. package/dist/queries/change-surface.js +1 -1
  237. package/dist/queries/cleanup-plan.d.ts +3 -3
  238. package/dist/queries/cleanup-plan.js +1 -1
  239. package/dist/queries/co-change.d.ts +20 -2
  240. package/dist/queries/co-change.js +1 -1
  241. package/dist/queries/code.d.ts +1 -1
  242. package/dist/queries/code.js +1 -1
  243. package/dist/queries/complexity.d.ts +6 -3
  244. package/dist/queries/complexity.js +1 -1
  245. package/dist/queries/context.d.ts +1 -7
  246. package/dist/queries/context.js +1 -1
  247. package/dist/queries/coupling.js +1 -1
  248. package/dist/queries/cycles.js +1 -1
  249. package/dist/queries/dead.d.ts +2 -0
  250. package/dist/queries/dead.js +1 -1
  251. package/dist/queries/decorative-checkers.js +1 -1
  252. package/dist/queries/dependence-slice.d.ts +46 -22
  253. package/dist/queries/dependence-slice.js +1 -1
  254. package/dist/queries/dependency-depth.d.ts +1 -7
  255. package/dist/queries/dependency-depth.js +1 -1
  256. package/dist/queries/deps.js +1 -1
  257. package/dist/queries/diff-impact.d.ts +3 -1
  258. package/dist/queries/diff-impact.js +1 -1
  259. package/dist/queries/doc-drift.js +1 -1
  260. package/dist/queries/drift.d.ts +1 -1
  261. package/dist/queries/drift.js +1 -1
  262. package/dist/queries/duplicate-bodies.d.ts +29 -2
  263. package/dist/queries/duplicate-bodies.js +1 -1
  264. package/dist/queries/entry-map.d.ts +2 -4
  265. package/dist/queries/entry-map.js +1 -1
  266. package/dist/queries/evidence.d.ts +121 -61
  267. package/dist/queries/evidence.js +1 -1
  268. package/dist/queries/fan.js +1 -1
  269. package/dist/queries/files.js +1 -1
  270. package/dist/queries/health.d.ts +1 -1
  271. package/dist/queries/health.js +1 -1
  272. package/dist/queries/hierarchy.d.ts +2 -2
  273. package/dist/queries/hierarchy.js +1 -1
  274. package/dist/queries/hotspots.d.ts +1 -1
  275. package/dist/queries/hotspots.js +1 -1
  276. package/dist/queries/imports.d.ts +1 -0
  277. package/dist/queries/imports.js +1 -1
  278. package/dist/queries/incomplete-migration.d.ts +3 -3
  279. package/dist/queries/incomplete-migration.js +1 -1
  280. package/dist/queries/index.d.ts +17 -65
  281. package/dist/queries/index.js +1 -1
  282. package/dist/queries/locality-candidates.d.ts +4 -4
  283. package/dist/queries/locality-candidates.js +1 -1
  284. package/dist/queries/members.d.ts +2 -2
  285. package/dist/queries/members.js +1 -1
  286. package/dist/queries/methods.js +1 -1
  287. package/dist/queries/not-implemented.d.ts +2 -6
  288. package/dist/queries/not-implemented.js +1 -1
  289. package/dist/queries/outline.js +1 -1
  290. package/dist/queries/passthrough-candidates.d.ts +9 -1
  291. package/dist/queries/passthrough-candidates.js +1 -1
  292. package/dist/queries/react-component-duplicates.d.ts +19 -3
  293. package/dist/queries/react-component-duplicates.js +1 -1
  294. package/dist/queries/react-hook-candidates.d.ts +22 -3
  295. package/dist/queries/react-hook-candidates.js +1 -1
  296. package/dist/queries/react-large-component-pressure.d.ts +17 -3
  297. package/dist/queries/react-large-component-pressure.js +1 -1
  298. package/dist/queries/recent-duplicates.js +1 -1
  299. package/dist/queries/redundant-reexports.d.ts +4 -14
  300. package/dist/queries/redundant-reexports.js +1 -1
  301. package/dist/queries/refs.d.ts +4 -1
  302. package/dist/queries/refs.js +1 -1
  303. package/dist/queries/review.d.ts +188 -0
  304. package/dist/queries/review.js +2 -0
  305. package/dist/queries/similar-files.d.ts +7 -10
  306. package/dist/queries/similar-files.js +1 -1
  307. package/dist/queries/similar-signatures.js +1 -1
  308. package/dist/queries/similar.d.ts +19 -1
  309. package/dist/queries/similar.js +1 -1
  310. package/dist/queries/slice-cohesion.d.ts +205 -0
  311. package/dist/queries/slice-cohesion.js +2 -0
  312. package/dist/queries/source-inspection.d.ts +6 -202
  313. package/dist/queries/source-inspection.js +1 -1
  314. package/dist/queries/source-search.d.ts +2 -3
  315. package/dist/queries/source-search.js +1 -1
  316. package/dist/queries/stats.d.ts +1 -0
  317. package/dist/queries/stats.js +1 -1
  318. package/dist/queries/surface.js +1 -1
  319. package/dist/queries/symbols.js +1 -1
  320. package/dist/queries/system.d.ts +4 -2
  321. package/dist/queries/system.js +1 -1
  322. package/dist/queries/test-quality.d.ts +1 -1
  323. package/dist/queries/test-quality.js +1 -1
  324. package/dist/queries/twin-drift.d.ts +23 -7
  325. package/dist/queries/twin-drift.js +1 -1
  326. package/dist/queries/unused-imports.js +1 -1
  327. package/dist/queries/unused-params.d.ts +3 -15
  328. package/dist/queries/unused-params.js +1 -1
  329. package/dist/queries/vue-component-duplicates.js +1 -1
  330. package/dist/queries/vue-composable-candidates.js +1 -1
  331. package/dist/queries/vue-large-view-pressure.js +1 -1
  332. package/dist/query-service-fastpath.js +5 -5
  333. package/dist/query-service-server.js +4 -4
  334. package/dist/refs-CCBJG7WK.js +2 -0
  335. package/dist/refs-pagination-DRNLVU4S.js +2 -0
  336. package/dist/reindex-worker.js +79 -29
  337. package/dist/reindex.js +45 -45
  338. package/dist/repository-cache-worker.js +2 -0
  339. package/dist/runtime.d.ts +8 -8
  340. package/dist/runtime.js +3 -4
  341. package/dist/rust-semantic-session-server.js +1 -1
  342. package/dist/rust-semantic-session-worker.js +1 -1
  343. package/dist/rust-semantic-worker.js +1 -1
  344. package/dist/service-queries-2WAJI7R6.js +6 -0
  345. package/dist/source-inspection-91U9zdO3.d.ts +341 -0
  346. package/dist/{source-search-types-Dwz8KeuW.d.ts → source-search-types-DWGYNg8M.d.ts} +15 -2
  347. package/dist/stats-G7DIV6VU.js +2 -0
  348. package/dist/surface-IO55UALI.js +2 -0
  349. package/dist/system-ZBMSHJXU.js +2 -0
  350. package/dist/{queries/trace.d.ts → trace-BMjw3prn.d.ts} +1 -18
  351. package/dist/typescript-indexer.js +2 -0
  352. package/dist/typescript-mailbox-worker.js +1 -1
  353. package/dist/watch-server.js +3 -3
  354. package/docs/AGENT_GUIDE.md +19 -128
  355. package/docs/CLI_JSON_OUTPUT.md +21 -17
  356. package/docs/COMMAND_REFERENCE.md +34 -49
  357. package/docs/CURRENT_COMMANDS.md +123 -0
  358. package/docs/DETECTOR_EVIDENCE_CONTRACTS.md +0 -40
  359. package/docs/DETECTOR_GUIDE.md +55 -12
  360. package/docs/PRODUCT_VISION.md +135 -0
  361. package/docs/PROPERTY_TESTING.md +73 -0
  362. package/docs/REVIEW.md +76 -0
  363. package/docs/SKILLS.md +51 -0
  364. package/docs/WINDOWS_SIDECAR_RELEASE.md +12 -3
  365. package/docs/accuracy-audit-checklist.md +70 -13
  366. package/docs/analyzer-inventory.md +2 -2
  367. package/docs/locality-analyzer-design.md +9 -9
  368. package/package.json +18 -80
  369. package/scripts/evidence-product-contract.mjs +7 -3
  370. package/scripts/record-review-coverage.mjs +118 -0
  371. package/scripts/scip-windows-provenance.mjs +29 -19
  372. package/skills/scip-architecture-review/SKILL.md +57 -0
  373. package/skills/scip-architecture-review/agents/openai.yaml +4 -0
  374. package/skills/scip-architecture-review/references/design-checks.md +17 -0
  375. package/skills/scip-explore/SKILL.md +15 -59
  376. package/skills/scip-explore/agents/openai.yaml +3 -3
  377. package/skills/scip-explore/references/external-evidence.md +2 -2
  378. package/skills/scip-explore/references/information-model.md +26 -29
  379. package/skills/scip-explore/scripts/capture-evidence.mjs +68 -34
  380. package/skills/scip-integrity-audit/SKILL.md +53 -181
  381. package/skills/scip-integrity-audit/agents/openai.yaml +3 -3
  382. package/skills/scip-integrity-audit/references/integrity-probes.md +27 -0
  383. package/skills/scip-plan/SKILL.md +39 -65
  384. package/skills/scip-plan/agents/openai.yaml +2 -2
  385. package/skills/scip-query/SKILL.md +28 -81
  386. package/skills/scip-query/agents/openai.yaml +2 -2
  387. package/skills/scip-query/references/command-guide.md +169 -0
  388. package/skills/scip-setup/SKILL.md +4 -2
  389. package/skills/scip-setup/agents/openai.yaml +3 -3
  390. package/dist/by-kind-XI2CSWEY.js +0 -2
  391. package/dist/call-graph-UONR6JR5.js +0 -2
  392. package/dist/call-graph-evidence-lZa2dwQA.d.ts +0 -11
  393. package/dist/chunk-26CT72HM.js +0 -2
  394. package/dist/chunk-2E7CX53V.js +0 -2
  395. package/dist/chunk-2GRUZAQF.js +0 -43
  396. package/dist/chunk-2LDBDR6J.js +0 -29
  397. package/dist/chunk-2OOY75BW.js +0 -2
  398. package/dist/chunk-2R3V3PSD.js +0 -4
  399. package/dist/chunk-2WC2OEDO.js +0 -4
  400. package/dist/chunk-35NLDRZC.js +0 -2
  401. package/dist/chunk-3AF4TUFK.js +0 -3
  402. package/dist/chunk-3D3QG236.js +0 -2
  403. package/dist/chunk-3FHOF22C.js +0 -21
  404. package/dist/chunk-3JKSW6LJ.js +0 -2
  405. package/dist/chunk-3L2ZBPEX.js +0 -133
  406. package/dist/chunk-3PJABJSU.js +0 -2
  407. package/dist/chunk-3SVF22I5.js +0 -2
  408. package/dist/chunk-3WR4E3A3.js +0 -3
  409. package/dist/chunk-4FTZ4P5G.js +0 -2
  410. package/dist/chunk-4UX2F3JX.js +0 -2
  411. package/dist/chunk-4WNW27SX.js +0 -2
  412. package/dist/chunk-5ENOG4VP.js +0 -61
  413. package/dist/chunk-64BFSI5I.js +0 -2
  414. package/dist/chunk-66DVSJQG.js +0 -455
  415. package/dist/chunk-6HFCYNYE.js +0 -9
  416. package/dist/chunk-6PQNKL3G.js +0 -3
  417. package/dist/chunk-6V5CNXL6.js +0 -2
  418. package/dist/chunk-6VVV4WRR.js +0 -4
  419. package/dist/chunk-7BWFZPPZ.js +0 -2
  420. package/dist/chunk-7CYG22FH.js +0 -2
  421. package/dist/chunk-7F45LJKI.js +0 -2
  422. package/dist/chunk-7IWV2EG3.js +0 -3
  423. package/dist/chunk-7KCZELVM.js +0 -2
  424. package/dist/chunk-AFHTBORT.js +0 -2
  425. package/dist/chunk-AVRYW5OZ.js +0 -2
  426. package/dist/chunk-B3X6KU75.js +0 -2
  427. package/dist/chunk-B5D7QPBE.js +0 -4
  428. package/dist/chunk-BBCIS4DX.js +0 -16
  429. package/dist/chunk-BDUVI7TO.js +0 -3
  430. package/dist/chunk-BE7ZZTMC.js +0 -2
  431. package/dist/chunk-BHVUJOCQ.js +0 -3
  432. package/dist/chunk-BJT7LSPK.js +0 -3
  433. package/dist/chunk-BKVWUP7Y.js +0 -2
  434. package/dist/chunk-BQGB4HBD.js +0 -2
  435. package/dist/chunk-BRV7PIFF.js +0 -2
  436. package/dist/chunk-CEEZJXEF.js +0 -2
  437. package/dist/chunk-CIYLO6SI.js +0 -7
  438. package/dist/chunk-CJZXN4NU.js +0 -2
  439. package/dist/chunk-CNO7TOKL.js +0 -2
  440. package/dist/chunk-COF23M5F.js +0 -2
  441. package/dist/chunk-CWFP7GM5.js +0 -2
  442. package/dist/chunk-D2DHWI3D.js +0 -2
  443. package/dist/chunk-D4N5SQ2M.js +0 -4
  444. package/dist/chunk-DBRSYFXR.js +0 -2
  445. package/dist/chunk-DHUIOLDT.js +0 -2
  446. package/dist/chunk-DIRJWYBM.js +0 -6
  447. package/dist/chunk-DIUFNHRJ.js +0 -35
  448. package/dist/chunk-DRENNWRG.js +0 -2
  449. package/dist/chunk-DTZCKZEU.js +0 -4
  450. package/dist/chunk-DULC3QFP.js +0 -5
  451. package/dist/chunk-DYGHBZ2N.js +0 -16
  452. package/dist/chunk-E5R6AQ73.js +0 -40
  453. package/dist/chunk-E73UNJTF.js +0 -38
  454. package/dist/chunk-EKV5HX33.js +0 -2
  455. package/dist/chunk-EQHFIL6T.js +0 -3
  456. package/dist/chunk-ESIQ66Z7.js +0 -2
  457. package/dist/chunk-EVFUMY4R.js +0 -3
  458. package/dist/chunk-F7DY272B.js +0 -2
  459. package/dist/chunk-FBN2FGXG.js +0 -2
  460. package/dist/chunk-FDLOBR6P.js +0 -4
  461. package/dist/chunk-FESCRNVV.js +0 -5
  462. package/dist/chunk-FFRKR4EQ.js +0 -2
  463. package/dist/chunk-FGA2U4OR.js +0 -8
  464. package/dist/chunk-FIQRSHVM.js +0 -2
  465. package/dist/chunk-FPYLNQPT.js +0 -2
  466. package/dist/chunk-FRUSVINH.js +0 -2
  467. package/dist/chunk-GSP44ENC.js +0 -2
  468. package/dist/chunk-GUFSG5TX.js +0 -2
  469. package/dist/chunk-GYIZ4NXB.js +0 -2
  470. package/dist/chunk-GZIUDL6G.js +0 -2
  471. package/dist/chunk-H5EXS3HM.js +0 -2
  472. package/dist/chunk-HCXEQRFF.js +0 -18
  473. package/dist/chunk-HEHOQQKH.js +0 -2
  474. package/dist/chunk-HKGFPJ4T.js +0 -4
  475. package/dist/chunk-HLZTEXRA.js +0 -2
  476. package/dist/chunk-HOENASQM.js +0 -3
  477. package/dist/chunk-HVF5VBG6.js +0 -2
  478. package/dist/chunk-I55I7XXP.js +0 -2
  479. package/dist/chunk-IDFEUFKS.js +0 -2
  480. package/dist/chunk-IHGQTTVW.js +0 -2
  481. package/dist/chunk-IICPE7B2.js +0 -20
  482. package/dist/chunk-IL676XCC.js +0 -18
  483. package/dist/chunk-IW5XQG5G.js +0 -2
  484. package/dist/chunk-IZDPJ2QI.js +0 -2
  485. package/dist/chunk-J66VOFW6.js +0 -5
  486. package/dist/chunk-JFMEXGFE.js +0 -2
  487. package/dist/chunk-JGKUET5J.js +0 -3
  488. package/dist/chunk-JS4PGXMV.js +0 -3
  489. package/dist/chunk-JWTGMPIT.js +0 -80
  490. package/dist/chunk-JYR66JN5.js +0 -5
  491. package/dist/chunk-KFOYCQAJ.js +0 -9
  492. package/dist/chunk-KLFEXGQA.js +0 -2
  493. package/dist/chunk-KMVGRIO2.js +0 -2
  494. package/dist/chunk-KYSDI3GE.js +0 -5
  495. package/dist/chunk-L6PJPETJ.js +0 -29
  496. package/dist/chunk-LDVT66YM.js +0 -2
  497. package/dist/chunk-LEECKFCJ.js +0 -2
  498. package/dist/chunk-LMZ5PRUV.js +0 -2
  499. package/dist/chunk-LQRQN2XA.js +0 -2
  500. package/dist/chunk-LXABEJX3.js +0 -2
  501. package/dist/chunk-MNV5FSBW.js +0 -3
  502. package/dist/chunk-MPQ4OTBM.js +0 -2
  503. package/dist/chunk-MTDBHTSF.js +0 -2
  504. package/dist/chunk-MV3CDXPI.js +0 -38
  505. package/dist/chunk-MWN53KRN.js +0 -60
  506. package/dist/chunk-MXNGIEPU.js +0 -3
  507. package/dist/chunk-N2ZSIIGR.js +0 -117
  508. package/dist/chunk-N5B2NILC.js +0 -5
  509. package/dist/chunk-NJITK2GP.js +0 -2
  510. package/dist/chunk-NOGJXYFO.js +0 -2
  511. package/dist/chunk-NOYBFVJA.js +0 -554
  512. package/dist/chunk-NWQXSFFU.js +0 -3
  513. package/dist/chunk-ODDUPDP7.js +0 -13
  514. package/dist/chunk-OLIWTZI3.js +0 -3
  515. package/dist/chunk-OLNV6I6U.js +0 -2
  516. package/dist/chunk-OR2E3AGZ.js +0 -2
  517. package/dist/chunk-OSR2GEHQ.js +0 -2
  518. package/dist/chunk-OSSESPDX.js +0 -3
  519. package/dist/chunk-OWOOWNJ5.js +0 -7
  520. package/dist/chunk-P42EIXTA.js +0 -2
  521. package/dist/chunk-PJFGPYTU.js +0 -2
  522. package/dist/chunk-PP7KNN7L.js +0 -2
  523. package/dist/chunk-PU7T5QYQ.js +0 -2
  524. package/dist/chunk-PWWAJSKV.js +0 -74
  525. package/dist/chunk-PZL5T7SU.js +0 -73
  526. package/dist/chunk-QBE3YX64.js +0 -23
  527. package/dist/chunk-QGVTFRY2.js +0 -7
  528. package/dist/chunk-QOJONDS7.js +0 -2
  529. package/dist/chunk-QU5XRYB5.js +0 -4
  530. package/dist/chunk-QUU5OBVK.js +0 -11
  531. package/dist/chunk-RBLQNW26.js +0 -20
  532. package/dist/chunk-RTQ7NEKG.js +0 -81
  533. package/dist/chunk-SQXRS7BG.js +0 -4
  534. package/dist/chunk-SSK6LDPC.js +0 -2
  535. package/dist/chunk-SZHGTCPP.js +0 -7
  536. package/dist/chunk-T4N4P2K5.js +0 -16
  537. package/dist/chunk-TA3QKLLU.js +0 -2
  538. package/dist/chunk-TEBQMNVI.js +0 -43
  539. package/dist/chunk-TPFHAQ2G.js +0 -2
  540. package/dist/chunk-TQPCBMWT.js +0 -5
  541. package/dist/chunk-TQZV7KV4.js +0 -2
  542. package/dist/chunk-TRNAEQ6P.js +0 -3
  543. package/dist/chunk-TY7CRN3Z.js +0 -2
  544. package/dist/chunk-UHFYCMZO.js +0 -35
  545. package/dist/chunk-UICY4GTQ.js +0 -7
  546. package/dist/chunk-UVGEWT4Y.js +0 -26
  547. package/dist/chunk-UXW33INU.js +0 -29
  548. package/dist/chunk-VMPRET3I.js +0 -5
  549. package/dist/chunk-VNLGKHS6.js +0 -6
  550. package/dist/chunk-VQILFTEH.js +0 -2
  551. package/dist/chunk-VUPHCS7Y.js +0 -57
  552. package/dist/chunk-VVZSBTSU.js +0 -23
  553. package/dist/chunk-VZRNID6A.js +0 -2
  554. package/dist/chunk-W5OXRYGE.js +0 -7
  555. package/dist/chunk-W6STWDQI.js +0 -57
  556. package/dist/chunk-W7CXK74K.js +0 -2
  557. package/dist/chunk-WB3WYIRE.js +0 -4
  558. package/dist/chunk-WDNVY4E7.js +0 -20
  559. package/dist/chunk-WK46TNUM.js +0 -3
  560. package/dist/chunk-WNTFFKAX.js +0 -12
  561. package/dist/chunk-WOIKCX6A.js +0 -2
  562. package/dist/chunk-WUN6KBHV.js +0 -2
  563. package/dist/chunk-WYCTJDVR.js +0 -2
  564. package/dist/chunk-WYPL7GF7.js +0 -2
  565. package/dist/chunk-XDAUYDFT.js +0 -2
  566. package/dist/chunk-XDQMU3BT.js +0 -2
  567. package/dist/chunk-XFA4SSO3.js +0 -3
  568. package/dist/chunk-XGZEP6GR.js +0 -8
  569. package/dist/chunk-XPDPNWTQ.js +0 -368
  570. package/dist/chunk-XRYABF57.js +0 -8
  571. package/dist/chunk-YBGKCQIS.js +0 -2
  572. package/dist/chunk-YEN6CYC7.js +0 -16
  573. package/dist/chunk-YF5IB2LF.js +0 -2
  574. package/dist/chunk-YI2AWIHC.js +0 -3
  575. package/dist/chunk-YPWBKGFU.js +0 -2
  576. package/dist/chunk-YPWHBBIS.js +0 -2
  577. package/dist/chunk-YSH6U3L4.js +0 -3
  578. package/dist/chunk-YU5DZUZI.js +0 -10
  579. package/dist/chunk-YWO5DDRC.js +0 -16
  580. package/dist/chunk-Z4CDXYNQ.js +0 -2
  581. package/dist/chunk-ZF5KHH7C.js +0 -2
  582. package/dist/chunk-ZOHS7AQV.js +0 -21
  583. package/dist/chunk-ZTI4SBFV.js +0 -3
  584. package/dist/code-MI6F2TTU.js +0 -2
  585. package/dist/code-result-json-FXALY4HE.js +0 -2
  586. package/dist/command-descriptors-P34VABY5.js +0 -343
  587. package/dist/dataflow-4KEMJPC6.js +0 -2
  588. package/dist/dependence-slice-R7FPWD5M.js +0 -2
  589. package/dist/deps-7EMQUYUT.js +0 -2
  590. package/dist/direct-navigation-6YO234F2.js +0 -3
  591. package/dist/entry-map-KOOLR26E.js +0 -2
  592. package/dist/files-OPIPJIGZ.js +0 -2
  593. package/dist/graph-evidence-Bjyky2V4.d.ts +0 -126
  594. package/dist/hierarchy-QPD2CAER.js +0 -2
  595. package/dist/imports-M6HUXRXC.js +0 -2
  596. package/dist/members-I5MEFOCT.js +0 -2
  597. package/dist/methods-5JYGGHXA.js +0 -2
  598. package/dist/next-anchor-candidates-BwMczMvX.d.ts +0 -90
  599. package/dist/output-continuation-command-UPQAAKBP.js +0 -3
  600. package/dist/output-pagination-3OFL2MJV.js +0 -19
  601. package/dist/project-reindex-UKKQ5PLS.js +0 -3
  602. package/dist/queries/anchors.d.ts +0 -123
  603. package/dist/queries/anchors.js +0 -2
  604. package/dist/queries/complexity-hotspots.d.ts +0 -40
  605. package/dist/queries/complexity-hotspots.js +0 -2
  606. package/dist/queries/convergence.d.ts +0 -33
  607. package/dist/queries/convergence.js +0 -2
  608. package/dist/queries/dataflow.d.ts +0 -77
  609. package/dist/queries/dataflow.js +0 -2
  610. package/dist/queries/deep-chains.d.ts +0 -5
  611. package/dist/queries/deep-chains.js +0 -2
  612. package/dist/queries/extract-candidates.d.ts +0 -52
  613. package/dist/queries/extract-candidates.js +0 -2
  614. package/dist/queries/isolated.d.ts +0 -24
  615. package/dist/queries/isolated.js +0 -2
  616. package/dist/queries/plan-context.d.ts +0 -33
  617. package/dist/queries/plan-context.js +0 -2
  618. package/dist/queries/reference-neighborhood.d.ts +0 -4
  619. package/dist/queries/reference-neighborhood.js +0 -2
  620. package/dist/queries/reference-reachability.d.ts +0 -48
  621. package/dist/queries/reference-reachability.js +0 -2
  622. package/dist/queries/self-audit.d.ts +0 -63
  623. package/dist/queries/self-audit.js +0 -2
  624. package/dist/queries/similar-chains.d.ts +0 -48
  625. package/dist/queries/similar-chains.js +0 -2
  626. package/dist/queries/slice.d.ts +0 -4
  627. package/dist/queries/slice.js +0 -2
  628. package/dist/queries/stale-abstractions.d.ts +0 -72
  629. package/dist/queries/stale-abstractions.js +0 -2
  630. package/dist/queries/system-map.d.ts +0 -449
  631. package/dist/queries/system-map.js +0 -2
  632. package/dist/queries/trace.js +0 -2
  633. package/dist/queries/twin-ab.d.ts +0 -66
  634. package/dist/queries/twin-ab.js +0 -2
  635. package/dist/queries/value-flow.d.ts +0 -43
  636. package/dist/queries/value-flow.js +0 -2
  637. package/dist/queries/wrapper-candidates.d.ts +0 -34
  638. package/dist/queries/wrapper-candidates.js +0 -2
  639. package/dist/refs-PSU4JZZW.js +0 -2
  640. package/dist/refs-pagination-JG6CJMRC.js +0 -2
  641. package/dist/slice-HYRATV64.js +0 -2
  642. package/dist/source-snippet-_wrcgmZc.d.ts +0 -15
  643. package/dist/stats-OOJ74B32.js +0 -2
  644. package/dist/surface-VTGDYWF5.js +0 -2
  645. package/dist/symbol-resolution-WD5EU5JE.js +0 -2
  646. package/dist/system-LRQNFOR2.js +0 -2
  647. package/dist/trace-F4B6OLL4.js +0 -2
  648. package/dist/value-flow-VRPZY72V.js +0 -2
  649. package/skills/concrete-plan/SKILL.md +0 -8
  650. package/skills/concrete-plan/agents/openai.yaml +0 -4
@@ -0,0 +1,2 @@
1
+ import{a as Ie,i as De,j as W}from"./chunk-WKPV2TDZ.js";import{c as we,h as Ae}from"./chunk-ZLADLUE6.js";import{a as A,c as E,e as Ee,g as q,h as U,i as xe}from"./chunk-3JIQS44J.js";import{a as ge}from"./chunk-B3PYOSCX.js";import{a as b,c as fe,d as M,e as R,f as Q,g as J,i as pe}from"./chunk-HRRFKWPZ.js";import{a as Me,e as he,i as ke}from"./chunk-YULZRALL.js";import{a as v,e as X,g as C}from"./chunk-HGFDYOVB.js";import{a as ye,b as be,c as Se,d as w}from"./chunk-QZ7KQZRN.js";import{y as me}from"./chunk-TKD34PHN.js";import{a as ce,b as k,c as de,f as Re,h as x,l as $}from"./chunk-62BDNPMI.js";import{createHash as cn}from"crypto";import{resolve as dn}from"path";var S=3;function F(e){return cn("sha256").update(A({kind:"scip-query-durable-rust-mailbox",protocolVersion:S,sessionDir:dn(e)})).digest("hex")}function Rn(e,n){return fn(e)?e.id!==n.claimRequestId?T("Durable Rust semantic request identity does not match its mailbox path."):e.protocolVersion===void 0?pn(e,n):mn(e,n):T("Durable Rust semantic helper received an invalid mailbox request.")}function fn(e){return b(e)&&typeof e.id=="string"&&!!e.id}function pn(e,n){if(e.mailboxVersion!==void 0||e.operationKey!==void 0||e.clientId!==void 0||e.enqueuedAtMs!==void 0||e.deadlineAtMs!==void 0||e.sessionIdentity!==void 0)return T("Durable Rust semantic helper received a partially versioned request without a protocol version.");let t=qe(e.request);if(!t)return T("Durable Rust semantic helper received an invalid legacy request kind or payload.");let r=n.nowMs+Math.max(1,t.timeoutMs);return{ok:!0,compatibility:"legacy-v2",value:{mailboxVersion:E,protocolVersion:S,id:e.id,operationKey:q("rust-semantic-v2",{id:e.id,request:t}),clientId:"legacy-v2",enqueuedAtMs:n.nowMs,deadlineAtMs:r,sessionIdentity:n.sessionIdentity,request:t}}}function mn(e,n){let t=Mn(e,n);if(!t.ok)return t;if(e.protocolVersion!==S)return{ok:!1,code:"unsupported-protocol",error:`Durable Rust semantic helper does not support mailbox protocol ${String(e.protocolVersion)}.`,responseIdentity:t.responseIdentity};let r=qe(e.request);return r?t.operationKey!==q("rust-semantic-v3",r)?{ok:!1,code:"malformed-request",error:"Durable Rust semantic helper received a mismatched mailbox operation identity.",responseIdentity:t.responseIdentity}:t.deadlineAtMs-t.enqueuedAtMs!==r.timeoutMs?{ok:!1,code:"malformed-request",error:"Durable Rust semantic helper received a deadline that does not match the request timeout.",responseIdentity:t.responseIdentity}:t.deadlineAtMs<n.nowMs?{ok:!1,code:"expired-request",error:"Durable Rust semantic request expired before processing.",responseIdentity:t.responseIdentity}:{ok:!0,compatibility:t.priorSessionIdentity?"prior-v3":"current-v3",value:{mailboxVersion:E,protocolVersion:S,id:e.id,operationKey:t.operationKey,clientId:t.clientId,enqueuedAtMs:t.enqueuedAtMs,deadlineAtMs:t.deadlineAtMs,sessionIdentity:n.sessionIdentity,request:r}}:{ok:!1,code:"malformed-request",error:"Durable Rust semantic helper received an invalid request kind or payload.",responseIdentity:t.responseIdentity}}function yn(e,n){return e.mailboxVersion===E&&e.id===n.requestId&&e.operationKey===n.operationKey&&e.sessionIdentity===n.sessionIdentity&&e.deadlineAtMs===n.deadlineAtMs}function bn(e,n){return typeof e.completedAtMs=="number"&&Number.isFinite(e.completedAtMs)&&!(e.completedAtMs>n.deadlineAtMs)&&!(n.nowMs>n.deadlineAtMs)}function Sn(e,n){return e.ok===!1?typeof e.error!="string"||!On(e.errorCode)?ee("helper wrote an invalid rejection response"):{ok:!1,code:e.errorCode,error:e.error}:e.ok!==!0||e.session!=="created"&&e.session!=="reused"&&e.session!=="invalidated"||!qn(e.response,n)?ee("helper wrote an invalid success response"):{ok:!0,session:e.session,response:e.response}}function ne(e,n){return b(e)?e.protocolVersion!==S?ve(e.protocolVersion===void 0?"helper wrote a prior uncorrelated response protocol":`helper wrote unsupported response protocol ${String(e.protocolVersion)}`):yn(e,n)?bn(e,n)?Sn(e,n.requestKind):{ok:!1,code:"expired-request",error:"helper response arrived after the durable request deadline"}:ve("helper wrote an incompatible response identity"):ee("helper wrote an invalid response object")}function gn(e){return e.mailboxVersion===E&&typeof e.protocolVersion=="number"&&Number.isInteger(e.protocolVersion)&&typeof e.operationKey=="string"&&J(e.operationKey)&&e.id===U(e.operationKey)&&typeof e.clientId=="string"&&!!e.clientId}function In(e){return typeof e.enqueuedAtMs=="number"&&Number.isFinite(e.enqueuedAtMs)&&typeof e.deadlineAtMs=="number"&&Number.isFinite(e.deadlineAtMs)&&e.deadlineAtMs>=e.enqueuedAtMs}function Dn(e){return e.sessionIdentity!==void 0?typeof e.sessionIdentity=="string"&&J(e.sessionIdentity):e.protocolVersion===S}function Mn(e,n){if(!gn(e)||!In(e)||!Dn(e))return T("Durable Rust semantic helper received an invalid mailbox lifecycle.");let t={id:n.claimRequestId,sessionIdentity:n.sessionIdentity,deadlineAtMs:e.deadlineAtMs};return e.sessionIdentity!==void 0&&e.sessionIdentity!==n.sessionIdentity?{ok:!1,code:"malformed-request",error:"Durable Rust semantic request belongs to a different mailbox session.",responseIdentity:t}:{ok:!0,responseIdentity:t,operationKey:e.operationKey,clientId:e.clientId,enqueuedAtMs:e.enqueuedAtMs,deadlineAtMs:e.deadlineAtMs,priorSessionIdentity:e.sessionIdentity===void 0}}function qe(e){return Un(e)?e.kind==="semantic"&&hn(e.request)?{kind:"semantic",identityKey:e.identityKey,...e.workerEnvironment===void 0?{}:{workerEnvironment:e.workerEnvironment},request:e.request,timeoutMs:e.timeoutMs}:e.kind==="import-definitions"&&wn(e.request)?{kind:"import-definitions",identityKey:e.identityKey,...e.workerEnvironment===void 0?{}:{workerEnvironment:e.workerEnvironment},request:e.request,timeoutMs:e.timeoutMs}:null:null}function hn(e){return!b(e)||!M(e.projectRoot)||!M(e.rustAnalyzerBinary)||!Te(e.definitions)?!1:kn(e)&&En(e)&&xn(e)}function kn(e){return G(e.referenceDefinitions)&&G(e.calleeDefinitions)&&G(e.signatureDefinitions)}function En(e){return I(e.requestTimeoutMs)&&I(e.readinessDeadlineMs)&&I(e.referenceRetryTimeoutMs)&&I(e.diagnosticsTimeoutMs)&&I(e.settleDelayMs)&&Pe(e.concurrency)}function xn(e){return Z(e.includeReferences)&&Z(e.includeCallees)&&Z(e.includeSignatures)}function wn(e){return!b(e)||!M(e.projectRoot)||!M(e.rustAnalyzerBinary)||!M(e.file)||!Array.isArray(e.positions)||!e.positions.every(n=>b(n)&&M(n.id)&&M(n.file)&&R(n.line)&&R(n.column))?!1:Wn(e)}function Te(e){return Array.isArray(e)&&e.every(Cn)}function G(e){return e===void 0||Te(e)}function An(e){return R(e.symbolId)&&R(e.documentId)&&R(e.startLine)&&Ce(e.startChar)&&R(e.endLine)&&Ce(e.endChar)}function _n(e){return typeof e.symbol=="string"&&typeof e.relativePath=="string"&&typeof e.leaf=="string"&&(e.parentTypeName===null||typeof e.parentTypeName=="string")}function vn(e){return typeof e.isFunctionLike=="boolean"&&typeof e.isTypeLike=="boolean"&&(e.kind===null||Number.isSafeInteger(e.kind))&&(e.documentation===null||typeof e.documentation=="string")&&(e.enclosingSymbol===null||typeof e.enclosingSymbol=="string")}function Cn(e){return b(e)&&An(e)&&_n(e)&&vn(e)}function qn(e,n){return!b(e)||typeof e.available!="boolean"||e.available===!1&&(typeof e.reason!="string"||e.reason.length===0)||e.available===!0&&e.reason!==void 0?!1:n==="import-definitions"?Tn(e):Pn(e)}function Tn(e){return Array.isArray(e.sourcePaths)&&e.sourcePaths.every(n=>Array.isArray(n)&&n.length===2&&typeof n[0]=="string"&&(n[1]===null||typeof n[1]=="string"))}function Pn(e){return _e(e.references,Nn)&&(e.incompleteReferenceSymbolIds===void 0||Array.isArray(e.incompleteReferenceSymbolIds)&&e.incompleteReferenceSymbolIds.every(n=>Number.isSafeInteger(n)))&&(e.callees===void 0||_e(e.callees,Bn))&&(e.signatures===void 0||Array.isArray(e.signatures)&&e.signatures.every(n=>Array.isArray(n)&&n.length===2&&Number.isSafeInteger(n[0])&&(n[1]===null||typeof n[1]=="string")))}function _e(e,n){return Array.isArray(e)&&e.every(t=>Array.isArray(t)&&t.length===2&&Number.isSafeInteger(t[0])&&Array.isArray(t[1])&&t[1].every(n))}function Nn(e){return b(e)&&typeof e.file=="string"&&R(e.line)&&R(e.column)}function Bn(e){return b(e)&&typeof e.symbol=="string"&&typeof e.file=="string"&&R(e.line)&&(e.callsiteLine===void 0||R(e.callsiteLine))}function On(e){return e==="unsupported-protocol"||e==="malformed-request"||e==="expired-request"||e==="handler-error"}function T(e){return{ok:!1,code:"malformed-request",error:e}}function ee(e){return{ok:!1,code:"malformed-response",error:e}}function ve(e){return{ok:!1,code:"incompatible-response",error:e}}function Pe(e){return e===void 0||Q(e)}function Ce(e){return e===void 0||R(e)}function I(e){return e===void 0||pe(e)}function Z(e){return e===void 0||typeof e=="boolean"}function Un(e){return!(!b(e)||typeof e.identityKey!="string"||!e.identityKey||!Q(e.timeoutMs)||e.workerEnvironment!==void 0&&!fe(e.workerEnvironment))}function Wn(e){return I(e.requestTimeoutMs)&&I(e.readinessDeadlineMs)&&I(e.diagnosticsTimeoutMs)&&I(e.settleDelayMs)&&Pe(e.concurrency)}import{spawn as Zn}from"child_process";import{createHash as et,randomUUID as nt}from"crypto";import{existsSync as He,realpathSync as tt,rmSync as rt}from"fs";import{tmpdir as st}from"os";import{resolve as _}from"path";import{execFileSync as $n}from"child_process";import{existsSync as Fn}from"fs";import{deserializeSCIP as Ln,SymbolRole as jn}from"@c4312/scip";var te=new WeakMap,Kn="SCIP_RUST_SCIP_OCCURRENCE_REFERENCE_MODE";function Zt(e,n){let t=new Map,r=L(),s=n.filter(l=>Be(l,r));if(s.length===0)return t;let i=Oe(e);if(!i)return t;for(let l of s){let u=Ne(i,l);u!==null&&t.set(l.symbolId,u)}return t}function er(e,n){if(!Be(n,L()))return null;let t=Oe(e);return t?Ne(t,n):null}function Ne(e,n){return e.referencesBySymbol.get(n.symbol)??[]}function Be(e,n="safe"){if(!e.symbol.startsWith("rust-analyzer ")||!e.relativePath.endsWith(".rs")||ke(e.symbol)||/impl#\[[^\]]+\]\[Default\]default\(\)\.$/.test(e.symbol))return!1;if(n==="all")return!0;let t=he(e.symbol);if(t==="method")return!0;if(t!=="term")return!1;let r=Me(e.symbol);return"kind"in r?!1:!zn(r)}function zn(e){for(let n=0;n<e.descriptors.length-1;n+=1)if(e.descriptors[n]?.suffix==="type")return!0;return!1}function Oe(e){if(te.has(e))return te.get(e)??null;let n=Vn(e);return te.set(e,n),n}function Vn(e){if(!e.generation.indexPath||!Fn(e.generation.indexPath))return null;try{let n=Ln(Re(e.generation.indexPath,{inputKind:"SCIP occurrence-reference index",maxBytes:de})),t=new Map;for(let r of n.documents??[]){let s=r.relativePath;!s||e.isIgnored(s)||Hn(r,s,t)}for(let[r,s]of t)t.set(r,Ae(s));return{referencesBySymbol:t}}catch{return null}}function Yn(e,n){if(n.length<3)return null;let t=n[0],r=n[1];return!Number.isInteger(t)||!Number.isInteger(r)?null:{file:e,line:t,column:r}}function L(){return process.env[Kn]==="all"?"all":"safe"}function Hn(e,n,t){for(let r of e.occurrences??[]){if(!r.symbol||(r.symbolRoles&jn.Definition)!==0)continue;let s=Yn(n,r.range);if(!s)continue;let i=t.get(r.symbol)??[];i.push(s),t.set(r.symbol,i)}}function Ue(e){let n=De(Ie,e),t=n.runnable;return t?{available:!0,dependencyAvailable:t,resolvedBinary:n.resolvedBinary??void 0,note:"rust-analyzer semantic reference queries are enabled."}:{available:!1,dependencyAvailable:t,resolvedBinary:n.resolvedBinary??void 0,reason:"rust-analyzer is not runnable; Rust semantic checks will use SCIP/source evidence only."}}var We=new Map;function re(e){let t=Ue(e).resolvedBinary??null;return{engine:"rust-analyzer",resolvedBinary:t,version:t?Qn(e,t):"unavailable"}}function ar(e){return{...re(e),scipOccurrenceReferenceMode:L()}}function Qn(e,n){let t=`${e}\0${n}`,r=We.get(t);if(r)return r;let s;try{s=$n(n,["--version"],{cwd:e,encoding:"utf8",stdio:["ignore","pipe","ignore"],timeout:2e3}).trim()}catch{s="unknown"}return We.set(t,s),s}import{createHash as Jn}from"crypto";var Xn=new Set(["Cargo.lock","Cargo.toml","rust-project.json","rust-toolchain","rust-toolchain.toml"]);function Fe(e){let n=me(e,{includePath:Gn});return Jn("sha256").update(JSON.stringify(n)).digest("hex")}function Gn(e){let n=e.replaceAll("\\","/"),t=n.split("/").at(-1)??n;return n.endsWith(".rs")||Xn.has(t)?!0:n===".cargo/config"||n===".cargo/config.toml"||n.endsWith("/.cargo/config")||n.endsWith("/.cargo/config.toml")}var it=5e3,$e=10,ot=3e4;function Le(e,n,t,r=en){let s=r.engineIdentity(e),i={protocolVersion:S,projectRoot:r.canonicalProjectRoot(e),projectFingerprint:r.projectFingerprint(e),engine:{engine:s.engine,resolvedBinary:s.resolvedBinary,version:s.version},workerFingerprint:r.fileFingerprint(n),environment:Je(r.environment())};return{key:se(A(i)),...i}}var je=class{constructor(n,t=lt){this.createRequester=n;this.applyEnvironment=t}createRequester;applyEnvironment;requester=null;identityKey=null;semanticResponseCache=null;handle(n){this.applyEnvironment(n.workerEnvironment??{});let t;if(this.requester?this.identityKey!==n.identityKey?(this.semanticResponseCache=null,this.requester.shutdown(),this.requester=this.createRequester(),this.identityKey=n.identityKey,t="invalidated"):t="reused":(this.requester=this.createRequester(),this.identityKey=n.identityKey,t="created"),n.kind==="semantic"){let r=at(n.request),s=It(this.semanticResponseCache,t,r,n.identityKey);if(s)return Ke(!0,n.request.definitions.length),{session:t,response:s};let i=this.requester.requestSemantic(n.request,n.timeoutMs);return r!==null&&ut(i)&&(this.semanticResponseCache={identityKey:n.identityKey,requestKey:r,response:i}),Ke(!1,n.request.definitions.length),{session:t,response:i}}return{session:t,response:this.requester.requestImportDefinitions(n.request,n.timeoutMs)}}shutdown(){this.requester?.shutdown(),this.requester=null,this.identityKey=null,this.semanticResponseCache=null}};function at(e){if(e.includeReferences===!1||e.includeCallees!==!0||e.includeSignatures===!0||(e.referenceDefinitions?.length??0)===0||(e.calleeDefinitions?.length??0)===0)return null;let{readinessDeadlineMs:n,...t}=e;return se(A(t))}function ut(e){return e.available&&Array.isArray(e.callees)&&(e.incompleteReferenceSymbolIds?.length??0)===0}function Ke(e,n){v()&&C({type:"span",name:"rust.semantic.durable-session.response-cache",durationMs:0,ok:!0,hit:e,definitions:n})}function j(e,n,t,r){if(e.protocolVersion!==S||!t(e.pid))return!1;if(!e.processIdentity)return!0;let s=r?.(e.pid);return s!=null&&be(e.processIdentity,s)}function Qe(e,n,t){let r;try{r=$(n,{maxBytes:k,inputKind:"Rust semantic engine artifact"})}catch{r="missing"}let s=se(A({projectRoot:_(e),serverPath:_(n),serverFingerprint:r})).slice(0,20);return _(t,`scip-query-rust-session-${s}`)}function ze(e){let n=e===void 0?Number.NaN:Number(e);return Number.isInteger(n)&&n>=0?n:0}function Je(e){return Object.fromEntries(Object.entries(e).filter(([n])=>Ge(n)).sort(([n],[t])=>n.localeCompare(t)).map(([n,t])=>[n,t??null]))}function Xe(e,n){let t=n.runtime??St,r=n.identityRuntime??en,s=Qe(e,n.serverPath,n.tempRoot??st()),i=!1,l=(u,d)=>{if(i)throw new Error("Durable Rust semantic session was already disposed.");return dt(s,n.serverPath,n.semanticWorkerPath,u,d,t,n.mailboxLimits)};return{requestSemantic(u,d){let p=Le(e,n.semanticWorkerPath,u,r),{readinessDeadlineMs:c,...o}=u;return l({kind:"semantic",identityKey:p.key,workerEnvironment:Ye(),request:{...o,referenceRetryTimeoutMs:ct(process.env.SCIP_RUST_SEMANTIC_REFERENCE_RETRY_TIMEOUT_MS,u.referenceRetryTimeoutMs),settleDelayMs:process.env.SCIP_RUST_SEMANTIC_SETTLE_MS===void 0?u.settleDelayMs:ze(process.env.SCIP_RUST_SEMANTIC_SETTLE_MS)},timeoutMs:d},d)},requestImportDefinitions(u,d){let p=Le(e,n.semanticWorkerPath,u,r),{readinessDeadlineMs:c,...o}=u;return l({kind:"import-definitions",identityKey:p.key,workerEnvironment:Ye(),request:{...o,settleDelayMs:process.env.SCIP_RUST_SEMANTIC_SETTLE_MS===void 0?u.settleDelayMs:ze(process.env.SCIP_RUST_SEMANTIC_SETTLE_MS)},timeoutMs:d},d)},shutdown(){i=!0}}}function lt(e){for(let n of Object.keys(process.env))Ze(n)&&delete process.env[n];for(let[n,t]of Object.entries(e))t!==null&&(process.env[n]=t)}function ct(e,n){return n!==void 0?n:e===void 0?ot:void 0}function dt(e,n,t,r,s,i,l={}){let u=i.now(),d=u+s,p=(i.monotonicNow??w)(),c=p+s,o=q("rust-semantic-v3",r),a=U(o),f=Ee(e),m=F(e),y=xe(f,{mailboxVersion:E,protocolVersion:S,id:a,operationKey:o,clientId:i.randomId(),enqueuedAtMs:u,deadlineAtMs:d,sessionIdentity:m,request:r},{nowMs:u,limits:l});for(Ve(e,n,t,c,i);(i.monotonicNow??w)()<=c;){if(He(y.responsePath)){let D=yt(x(y.responsePath,{maxBytes:l.maxItemBytes??k,inputKind:"durable Rust semantic mailbox response"}),{requestId:a,operationKey:o,sessionIdentity:m,deadlineAtMs:y.authoritativeDeadlineAtMs,requestKind:r.kind,nowMs:i.now()});if(!D.ok)throw new Error(D.error);return Dt(i,p,D.session,r.kind),D.response}let h=K(e);(!h||!j(h,i.now(),i.isProcessAlive,i.readProcessIdentity))&&Ve(e,n,t,c,i),i.sleep($e)}throw new Error(`Durable Rust semantic session timed out after ${(s/1e3).toFixed(0)}s.`)}function Ve(e,n,t,r,s){let i=K(e);if(i&&j(i,s.now(),s.isProcessAlive,s.readProcessIdentity))return;rt(_(e,"server.json"),{force:!0}),s.spawnServer(n,e,t);let l=s.monotonicNow??w,u=Math.min(r,l()+it);for(;l()<=u;){let d=K(e);if(d&&j(d,s.now(),s.isProcessAlive,s.readProcessIdentity))return;s.sleep($e)}throw new Error("Durable Rust semantic session helper did not become ready within 5s.")}function Rt(e,n){return typeof e.protocolVersion=="number"&&ft(e,n)&&typeof e.pid=="number"&&typeof e.heartbeatAtMs=="number"}function ft(e,n){return e.sessionIdentity===void 0||typeof e.sessionIdentity=="string"&&e.sessionIdentity===F(n)}function pt(e){return(e.busyUntilMs===void 0||typeof e.busyUntilMs=="number")&&(e.mailbox===void 0||bt(e.mailbox))}function mt(e,n){return{protocolVersion:e.protocolVersion,...e.sessionIdentity===void 0?{}:{sessionIdentity:e.sessionIdentity},pid:e.pid,...n?{processIdentity:n}:{},heartbeatAtMs:e.heartbeatAtMs,...e.busyUntilMs===void 0?{}:{busyUntilMs:e.busyUntilMs},...e.mailbox===void 0?{}:{mailbox:e.mailbox}}}function K(e){try{let n=JSON.parse(x(_(e,"server.json"),{maxBytes:ce,inputKind:"durable Rust session state"}));if(!Rt(n,e)||!pt(n))return null;let t=n.processIdentity===void 0?null:ye(n.processIdentity);return n.processIdentity!==void 0&&(!t||t.pid!==n.pid)?null:mt(n,t)}catch{return null}}function yt(e,n){try{return ne(JSON.parse(e),n)}catch(t){return{ok:!1,code:"malformed-response",error:`helper wrote malformed JSON: ${t instanceof Error?t.message:String(t)}`}}}function bt(e){if(!e||typeof e!="object")return!1;let n=e;return gt(n)&&typeof n.totalBytes=="number"&&Number.isFinite(n.totalBytes)&&n.totalBytes>=0&&(n.oldestPendingAt===void 0||Number.isFinite(Date.parse(n.oldestPendingAt)))}function Ye(){return Object.fromEntries(Object.entries(process.env).filter(([e])=>Ze(e)).sort(([e],[n])=>e.localeCompare(n)).map(([e,n])=>[e,n??null]))}function Ge(e){return e==="HOME"||e==="PATH"||e.startsWith("CARGO_")||e.startsWith("RA_")||e.startsWith("RUST")}function Ze(e){return Ge(e)||e.startsWith("SCIP_RUST_")||e==="SCIP_QUERY_PROFILE"||e==="SCIP_QUERY_PROFILE_CACHE_STATE"||e==="SCIP_QUERY_PROFILE_COMMAND"||e==="SCIP_QUERY_PROFILE_OUT"||e==="SCIP_QUERY_PROFILE_RUN_ID"||e==="SCIP_QUERY_PROFILE_WORKLOAD_IDENTITY"||e==="SCIP_QUERY_PROFILE_WORKLOAD_IDENTITY_KIND"||e==="SCIP_QUERY_PROFILE_MIN_MS"}var en={canonicalProjectRoot(e){try{return tt(e)}catch{return _(e)}},projectFingerprint(e){return Fe(e)},engineIdentity:re,fileFingerprint(e){return $(e,{maxBytes:k,inputKind:"Rust semantic engine artifact"})},environment(){return Je(process.env)}},St={now:Date.now,monotonicNow:w,randomId:nt,isProcessAlive:ge,readProcessIdentity:Se,spawnServer(e,n,t){if(!He(e))throw new Error(`Durable Rust semantic session helper was not found at ${e}. Run npm run build first.`);Zn(process.execPath,[e,n,t],{detached:!0,stdio:"ignore"}).unref()},sleep(e){let n=new Int32Array(new SharedArrayBuffer(4));Atomics.wait(n,0,0,e)}};function se(e){return et("sha256").update(e).digest("hex")}function gt(e){return R(e.pending)&&R(e.inflight)&&R(e.responses)&&R(e.deadLetters)&&R(e.invalid)&&R(e.totalItems)}function It(e,n,t,r){return n==="reused"&&t!==null&&e?.identityKey===r&&e.requestKey===t?e.response:null}function Dt(e,n,t,r){v()&&C({type:"span",name:"rust.semantic.durable-session.request",durationMs:(e.monotonicNow??w)()-n,ok:!0,session:t,kind:r})}import{existsSync as Mt,mkdtempSync as nn,rmSync as oe}from"fs";import{tmpdir as tn}from"os";import{join as ae}from"path";import{fileURLToPath as H,pathToFileURL as ht}from"url";import{SHARE_ENV as kt,Worker as Et}from"worker_threads";function z(e,n,t=new Set){let r=new Map;for(let s of e)t.has(s.symbolId)||r.set(s.symbolId,n.get(s.symbolId)??[]);return r}function ie(e,n,t){let r=W(process.env.SCIP_RUST_SEMANTIC_BATCH_TIMEOUT_MS)??0;if(r>0)return r;let s=Math.max(1,Math.ceil(e/Math.max(1,t)));return Math.max(12e4,3e4+s*n)}var rn=15e3,sn=8,an=5e3,xt=64,wt=96,ue=class{constructor(n,t,r={}){this.projectRoot=n;this.status=t;this.opts=r;this.requester=r.requester??qt(n,process.env.SCIP_RUST_SEMANTIC_DURABLE_SESSION)}projectRoot;status;opts;requester;referencesForDefinitions(n){let t=this.status(this.projectRoot);if(!t.available||!t.resolvedBinary)return{available:!1,resolvedBinary:t.resolvedBinary,reason:N(t),references:B(n)};try{let r=this.requestSession(t.resolvedBinary,n,{includeReferences:!0});return{...P(r),resolvedBinary:t.resolvedBinary,references:z(n,new Map(r.references),new Set(r.incompleteReferenceSymbolIds??[]))}}catch(r){return this.opts.fallbackReferenceResolver?.referencesForDefinitions(n)??{available:!1,resolvedBinary:t.resolvedBinary,reason:r instanceof Error?r.message:String(r),references:B(n)}}}calleesForDefinitions(n){let t=this.status(this.projectRoot);if(!t.available||!t.resolvedBinary)return{available:!1,resolvedBinary:t.resolvedBinary,reason:N(t),callees:O(n)};try{let r=this.requestSession(t.resolvedBinary,n,{includeReferences:!1,includeCallees:!0});return{...P(r),resolvedBinary:t.resolvedBinary,callees:le(n,new Map(r.callees??[]))}}catch(r){return this.opts.fallbackCalleeResolver?.calleesForDefinitions(n)??{available:!1,resolvedBinary:t.resolvedBinary,reason:r instanceof Error?r.message:String(r),callees:O(n)}}}referencesAndCalleesForDefinitions(n,t){let r=this.status(this.projectRoot);if(!r.available||!r.resolvedBinary)return{available:!1,resolvedBinary:r.resolvedBinary,reason:N(r),references:B(n),callees:O(t)};let s=[...n,...t];try{let i=this.requestSession(r.resolvedBinary,s,{includeReferences:n.length>0,includeCallees:t.length>0,referenceDefinitions:n,calleeDefinitions:t});return{...P(i),resolvedBinary:r.resolvedBinary,references:z(n,new Map(i.references),new Set(i.incompleteReferenceSymbolIds??[])),callees:le(t,new Map(i.callees??[]))}}catch(i){return this.fallbackReferencesAndCallees(r,n,t,i)}}signaturesForDefinitions(n){let t=this.status(this.projectRoot);if(!t.available||!t.resolvedBinary)return{available:!1,resolvedBinary:t.resolvedBinary,reason:N(t),signatures:on(n)};try{let r=this.requestSession(t.resolvedBinary,n,{includeReferences:!1,includeCallees:!1,includeSignatures:!0});return{...P(r),resolvedBinary:t.resolvedBinary,signatures:Ot(n,new Map(r.signatures??[]))}}catch(r){return this.opts.fallbackSignatureResolver?.signaturesForDefinitions(n)??{available:!1,resolvedBinary:t.resolvedBinary,reason:r instanceof Error?r.message:String(r),signatures:on(n)}}}importDefinitionsForFile(n,t){let r=this.status(this.projectRoot);if(t.length===0)return r.available?{available:!0,resolvedBinary:r.resolvedBinary,sourcePaths:new Map}:{available:!1,reason:r.reason,resolvedBinary:r.resolvedBinary,sourcePaths:new Map};if(!r.available||!r.resolvedBinary)return{available:!1,resolvedBinary:r.resolvedBinary,reason:N(r),sourcePaths:new Map(t.map(s=>[s.id,null]))};try{let s=this.requestImportDefinitions(r.resolvedBinary,n,t);return{...P(s),resolvedBinary:r.resolvedBinary,sourcePaths:new Map(s.sourcePaths)}}catch(s){return{available:!1,resolvedBinary:r.resolvedBinary,reason:s instanceof Error?s.message:String(s),sourcePaths:new Map(t.map(i=>[i.id,null]))}}}dispose(){this.requester.shutdown()}requestSession(n,t,r){let s=V(process.env.SCIP_RUST_SEMANTIC_REQUEST_TIMEOUT_MS,rn),i=Y(process.env.SCIP_RUST_SEMANTIC_REFERENCE_RETRY_TIMEOUT_MS,0),l=V(process.env.SCIP_RUST_SEMANTIC_CONCURRENCY,sn),u=Y(process.env.SCIP_RUST_SEMANTIC_DIAGNOSTICS_TIMEOUT_MS,Math.min(s,1e4)),d=r.referenceDefinitions?[...r.referenceDefinitions]:void 0,p=r.calleeDefinitions?[...r.calleeDefinitions]:void 0,c=r.signatureDefinitions?[...r.signatureDefinitions]:void 0,o=At(process.env.SCIP_RUST_SEMANTIC_SETTLE_MS,{definitionCount:t.length,...r}),a={projectRoot:this.projectRoot,rustAnalyzerBinary:n,definitions:[...t],...d?{referenceDefinitions:d}:{},...p?{calleeDefinitions:p}:{},...c?{signatureDefinitions:c}:{},requestTimeoutMs:s,...r.includeReferences!==!1&&i>0?{referenceRetryTimeoutMs:i}:{},diagnosticsTimeoutMs:u,settleDelayMs:o,concurrency:l,includeReferences:r.includeReferences,includeCallees:r.includeCallees,includeSignatures:r.includeSignatures},f=Ut(a);return X("rust.semantic.session.request",()=>this.requester.requestSemantic(a,ie(f,Wt(s,a.referenceRetryTimeoutMs),l)),()=>({definitions:t.length,operationDefinitions:f,referenceDefinitions:a.referenceDefinitions?.length,calleeDefinitions:a.calleeDefinitions?.length,signatureDefinitions:a.signatureDefinitions?.length,references:a.includeReferences!==!1,callees:a.includeCallees===!0,signatures:a.includeSignatures===!0,referenceRetryTimeoutMs:a.referenceRetryTimeoutMs}))}fallbackReferencesAndCallees(n,t,r,s){let i=t.length===0?{available:!0,resolvedBinary:n.resolvedBinary,references:B(t)}:this.opts.fallbackReferenceResolver?.referencesForDefinitions(t),l=r.length===0?{available:!0,resolvedBinary:n.resolvedBinary,callees:O(r)}:this.opts.fallbackCalleeResolver?.calleesForDefinitions(r);return i&&l?Lt(n,t,r,i,l):{available:!1,resolvedBinary:n.resolvedBinary,reason:s instanceof Error?s.message:String(s),references:B(t),callees:O(r)}}requestImportDefinitions(n,t,r){let s=V(process.env.SCIP_RUST_SEMANTIC_REQUEST_TIMEOUT_MS,rn),i=V(process.env.SCIP_RUST_SEMANTIC_CONCURRENCY,sn),l=Y(process.env.SCIP_RUST_SEMANTIC_DIAGNOSTICS_TIMEOUT_MS,Math.min(s,1e4)),u=Y(process.env.SCIP_RUST_SEMANTIC_SETTLE_MS,an),d={projectRoot:this.projectRoot,rustAnalyzerBinary:n,file:t,positions:[...r],requestTimeoutMs:s,diagnosticsTimeoutMs:l,settleDelayMs:u,concurrency:i};return X("rust.semantic.import-definitions.session.request",()=>this.requester.requestImportDefinitions(d,ie(r.length,s,i)),()=>({file:t,positions:r.length}))}};function P(e){return e.available?{available:!0}:{available:!1,reason:e.reason}}function N(e){return e.available?"rust-analyzer binary path is unavailable.":e.reason}function Kr(e,n,t={}){return new ue(e,n,t)}function At(e,n){let t=ln(e);if(t!==null)return t;let r=n.includeReferences!==!1;return r&&n.includeCallees!==!0&&n.includeSignatures!==!0&&n.definitionCount<=xt||r&&n.includeCallees===!0&&n.includeSignatures!==!0&&n.definitionCount<=wt?0:an}function _t(e){let n=e?.trim().toLowerCase(),t=["0","false","off","worker"].includes(n??""),r=["1","true","on","durable"].includes(n??""),s=n===void 0||n==="";return{transport:t||!s&&!r?"worker":"durable",source:s?"default":"environment",fallback:"worker",valid:s||t||r,optOut:"SCIP_RUST_SEMANTIC_DURABLE_SESSION=0"}}function vt(e){return _t(e).transport}function Ct(e,n){let t=null,r=!1,s=!1,i=!1,l=()=>t??=n(),u=()=>{s||(e.shutdown(),s=!0)},d=(c,o,a)=>{let f=Bt(c);r=!0;try{u()}catch{}v()&&C({type:"span",name:"rust.semantic.durable-session.request",durationMs:a,ok:!1,kind:o,session:"worker-fallback",reason:f})},p=(c,o,a)=>{if(i)throw new Error("Rust semantic failover session was already disposed.");if(r)return a(l());let f=performance.now();try{return o(e)}catch(m){d(m,c,performance.now()-f)}return a(l())};return{requestSemantic(c,o){return p("semantic",a=>a.requestSemantic(c,o),a=>a.requestSemantic(c,o))},requestImportDefinitions(c,o){return p("import-definitions",a=>a.requestImportDefinitions(c,o),a=>a.requestImportDefinitions(c,o))},shutdown(){if(i)return;i=!0;let c=[];try{u()}catch(o){c.push(o)}try{t?.shutdown()}catch(o){c.push(o)}if(c.length>0)throw c[0]}}}function qt(e,n,t={worker:()=>Tt(),durable:()=>Xe(e,{serverPath:H(Ft()),semanticWorkerPath:H(un())})}){return vt(n)==="durable"?Ct(t.durable(),t.worker):t.worker()}function Tt(e={}){let n=null,t=null,r=1,s=!1,i=null,l=null,u=o=>{o&&oe(o,{recursive:!0,force:!0})},d=()=>{if(i)return;let o=n,a=t;n=null,t=null;let f=o?o.terminate():Promise.resolve(0);i=Promise.allSettled([f,we(a,{gracefulMs:1e3,forceMs:1e3})]).then(([m,y])=>{let D=(y.status==="fulfilled"?y.value:[{reaped:!1,detail:String(y.reason)}]).filter(g=>!g.reaped);if(m.status==="rejected"||D.length>0){l=new Error(`Rust semantic worker cleanup did not complete; ownership evidence remains at ${a??"unknown"}.`);return}u(a)}).finally(()=>{i=null})},p=()=>{if(n)return n;if(i)throw new Error("The previous Rust semantic session worker is still terminating; retry the request.");if(l)throw l;let o=e.semanticWorkerPath?ht(e.semanticWorkerPath):un();if(!Mt(H(o)))throw new Error(`Rust semantic session worker was not found at ${H(o)}. Run npm run build before using built semantic Rust queries.`);return t=nn(ae(tn(),"scip-query-rust-session-")),n=new Et(o,e.shareEnvironment?{env:kt}:void 0),n.unref(),n},c=()=>{let o=t??nn(ae(tn(),"scip-query-rust-session-"));return t=o,ae(o,`${r++}.json`)};return{requestSemantic(o,a){if(s)throw new Error("Rust semantic session was already disposed.");let f=p(),m=c(),y=new SharedArrayBuffer(4),h=new Int32Array(y);if(f.postMessage({kind:"semantic",request:o,responsePath:m,sharedBuffer:y}),Atomics.wait(h,0,0,a)==="timed-out")throw d(),new Error(`Rust semantic session worker timed out after ${(a/1e3).toFixed(0)}s`);try{let g=Pt(x(m,{maxBytes:k,inputKind:"Rust semantic worker response"}));if(!g.ok)throw new Error(g.error);return g.response}finally{oe(m,{force:!0})}},requestImportDefinitions(o,a){if(s)throw new Error("Rust semantic session was already disposed.");let f=p(),m=c(),y=new SharedArrayBuffer(4),h=new Int32Array(y);if(f.postMessage({kind:"import-definitions",request:o,responsePath:m,sharedBuffer:y}),Atomics.wait(h,0,0,a)==="timed-out")throw d(),new Error(`Rust semantic import-definition session worker timed out after ${(a/1e3).toFixed(0)}s`);try{let g=Nt(x(m,{maxBytes:k,inputKind:"Rust import-definition worker response"}));if(!g.ok)throw new Error(g.error);return g.response}finally{oe(m,{force:!0})}},shutdown(){if(s)return;if(s=!0,!n){u(t),t=null;return}let o=c(),a=new SharedArrayBuffer(4),f=new Int32Array(a);n.postMessage({kind:"shutdown",responsePath:o,sharedBuffer:a}),Atomics.wait(f,0,0,5e3),d()}}}function Pt(e){let n=JSON.parse(e);if(!n||typeof n!="object")return{ok:!1,error:"Rust semantic session worker wrote a non-object response."};let t=n;return t.ok===!0&&"response"in t?{ok:!0,response:t.response}:{ok:!1,error:typeof n.error=="string"?n.error:"Rust semantic session worker failed."}}function Nt(e){let n=JSON.parse(e);if(!n||typeof n!="object")return{ok:!1,error:"Rust semantic session worker wrote a non-object response."};let t=n;return t.ok===!0&&"response"in t?{ok:!0,response:t.response}:{ok:!1,error:typeof n.error=="string"?n.error:"Rust semantic session worker failed."}}function Bt(e){let n=e instanceof Error?`${e.name} ${e.message}`.toLowerCase():String(e).toLowerCase();return n.includes("readiness")?"readiness":n.includes("timeout")||n.includes("timed out")?"timeout":n.includes("helper")?"helper":"request"}function B(e){return new Map(e.map(n=>[n.symbolId,[]]))}function O(e){return new Map(e.map(n=>[n.symbolId,[]]))}function on(e){return new Map(e.map(n=>[n.symbolId,null]))}function le(e,n){return new Map(e.map(t=>[t.symbolId,n.get(t.symbolId)??[]]))}function Ot(e,n){return new Map(e.map(t=>[t.symbolId,n.get(t.symbolId)??null]))}function Ut(e){let n=0;return e.includeReferences!==!1&&(n+=(e.referenceDefinitions??e.definitions).length),e.includeCallees===!0&&(n+=(e.calleeDefinitions??e.definitions).length),e.includeSignatures===!0&&(n+=(e.signatureDefinitions??e.definitions).length),Math.max(1,n)}function Wt(e,n){return n&&n>0?Math.max(e,n):e}function un(){return new URL("./rust-semantic-session-worker.js",import.meta.url)}function Ft(){return new URL("./rust-semantic-session-server.js",import.meta.url)}function V(e,n){return W(e)??n}function Y(e,n){return ln(e)??n}function ln(e){if(!e)return null;let n=Number(e);return Number.isInteger(n)&&n>=0?n:null}function Lt(e,n,t,r,s){let i={resolvedBinary:r.resolvedBinary??s.resolvedBinary??e.resolvedBinary,references:z(n,r.references),callees:le(t,s.callees)};return r.available&&s.available?{available:!0,...i}:{available:!1,reason:(r.available?void 0:r.reason)??(s.available?void 0:s.reason)??"Rust semantic fallback was unavailable.",...i}}export{Zt as a,er as b,Ue as c,ar as d,S as e,F as f,Rn as g,je as h,z as i,ie as j,Kr as k,At as l,Tt as m,Wt as n};
2
+ //# sourceMappingURL=chunk-TRBI4UKT.js.map
@@ -0,0 +1,4 @@
1
+ import{a as M}from"./chunk-BGBBVSH4.js";import{a as v}from"./chunk-7VPEEAAG.js";import{c as g}from"./chunk-H73WY2RM.js";import{A as Ee,w as xe,z as ke}from"./chunk-ZHMRSZFD.js";import{a as ge,c as be,d as Se,e as ye,f as he,g as Re,h as O,i as Pe,l as $}from"./chunk-ZGTYGDMF.js";import{a as pe}from"./chunk-WRQXLNYE.js";import{b as C}from"./chunk-LOVIZBJ4.js";import{c as ae}from"./chunk-WXU3DGPU.js";import{a as De}from"./chunk-DHEQMPLW.js";import{$ as de,L as se,M as P,O as oe,S as ce,Y as x,Z as fe,aa as me,ba as j,k as ee,n as te,o as ne,p as re,s as h,t as ie}from"./chunk-J5FJMODQ.js";import{a as m}from"./chunk-QOIXNWQR.js";import{e as u}from"./chunk-GZKFETP5.js";import{d as D,f as N,g as _,i as le,j as ue}from"./chunk-YULZRALL.js";import{e as Q}from"./chunk-HGFDYOVB.js";import{u as S,v as R,w as J}from"./chunk-TKD34PHN.js";import{l as d}from"./chunk-U5RIG3JP.js";import{existsSync as w,readdirSync as Te}from"fs";import{join as T}from"path";var ot={files:new Set,pathPrefixes:[]};var V=/^(?:dist|build|lib|out|output|esm|cjs|umd)\//,ct=/\.(?:d\.ts|d\.mts|d\.cts|ts|tsx|mts|cts|js|jsx|mjs|cjs)$/,Ce=[".ts",".tsx",".mts",".cts",".js",".jsx",".mjs",".cjs"],lt=new Set([".git",".next",".turbo","build","coverage","dist","node_modules","out"]),ut=4,ft=u("package-surface",{clearGroups:["whole-project"]}),Yn=u("package-operational-surface",{clearGroups:["whole-project"]});function dt(t){return ft.get(t,()=>mt(t.config.projectRoot))}function G(t,e){let n=dt(t);return n.files.has(e)?!0:n.pathPrefixes.some(r=>e.startsWith(r))}function mt(t){let e=new Set,n=[];for(let{manifest:r,packageRoot:i}of gt(t))for(let s of pt(r))bt(t,i,s,e,n);return e.size===0&&n.length===0?ot:{files:e,pathPrefixes:n}}function gt(t){let e=[],n=we(t,"");return n&&e.push({manifest:n,packageRoot:""}),Me(t,"",e,0),e}function Me(t,e,n,r){if(r>=ut)return;let i=T(t,e);if(w(i))for(let s of Te(i,{withFileTypes:!0})){if(!s.isDirectory()||lt.has(s.name))continue;let a=e?`${e}/${s.name}`:s.name,o=we(t,a);o&&n.push({manifest:o,packageRoot:a}),Me(t,a,n,r+1)}}function we(t,e){let n;try{n=S(t,T(e,"package.json"),{maxBytes:8*1024*1024,inputKind:"package manifest"})}catch(r){if(!R(r))throw r;return null}try{let r=JSON.parse(n);return r&&typeof r=="object"?r:null}catch{return null}}function pt(t){let e=[];for(let r of["main","module","types","browser"])typeof t[r]=="string"&&e.push(t[r]);let n=t.bin;if(typeof n=="string")e.push(n);else if(n&&typeof n=="object")for(let r of Object.values(n))typeof r=="string"&&e.push(r);return Fe(t.exports,e),e}function Fe(t,e){if(typeof t=="string"){e.push(t);return}if(!(!t||typeof t!="object"))for(let n of Object.values(t))Fe(n,e)}function bt(t,e,n,r,i){let s=n.replace(/\\/g,"/").replace(/^\.\//,"");if(s===""||s.startsWith(".."))return;let a=s.indexOf("*");if(a>=0){let c=s.slice(0,a);for(let l of ve(c))l!==""&&i.push(p(e,l));return}let o=s.replace(ct,"");for(let c of ve(o)){c===o&&c===s&&r.add(p(e,s));for(let l of Ce)St(t,r,e,c+l)}r.add(p(e,s))}function ve(t){let e=[t];return V.test(t)&&(e.push(t.replace(V,"src/")),e.push(t.replace(V,""))),e}function St(t,e,n,r){let i=p(n,r);if(e.add(i),!r.startsWith("src/")||w(T(t,i)))return;let s=Ce.find(b=>r.endsWith(b));if(!s)return;let a=r.slice(0,-s.length);yt(t,e,n,a,s);let o=a.lastIndexOf("/");if(o<=4)return;let c=a.slice(0,o),l=a.slice(o+1);for(let b of Ie(t,n,c,`${l}${s}`))e.add(b)}function yt(t,e,n,r,i){let s=p(n,`${r}/index${i}`);w(T(t,s))&&e.add(s)}function Ie(t,e,n,r){let i=T(t,e,n);if(!w(i))return[];let s=[];for(let a of Te(i,{withFileTypes:!0})){let o=`${n}/${a.name}`;a.isDirectory()?s.push(...Ie(t,e,o,r)):a.isFile()&&a.name===r&&s.push(p(e,o))}return s}function p(t,e){return t?`${t}/${e}`:e}import{existsSync as K,readdirSync as ht}from"fs";import{dirname as Rt,join as B}from"path";var Pt={rootFiles:new Set,sourcePrefixes:[]},xt=new Set([".git",".scipquery","node_modules","target"]),kt=6,Et=u("rust-library-surface",{clearGroups:["whole-project"]});function Le(t,e,n){if(!n.endsWith(".rs")||!Tt(Dt(t),n))return!1;let r=x(t,n).find(i=>i.symbol===e);return r?Ct(te(t,n)[r.startLine]??""):!1}function Dt(t){return Et.get(t,()=>vt(t.config.projectRoot))}function vt(t){let e=new Set,n=new Set;for(let r of Mt(t)){let i=S(t,B(r,"Cargo.toml"),{maxBytes:8388608,inputKind:"Cargo manifest"}),s=wt(i),a=p(r,"src/lib.rs"),o=s?p(r,s):!Ft(i)&&J(t,a)?a:null;if(!o)continue;e.add(o);let c=Rt(o).replaceAll("\\","/");n.add(c==="."?"":`${c}/`)}return e.size===0?Pt:{rootFiles:e,sourcePrefixes:[...n].sort()}}function Tt(t,e){return e.endsWith(".rs")?t.rootFiles.has(e)?!0:It(e)?!1:t.sourcePrefixes.some(n=>e.startsWith(n)):!1}function Ct(t){return/^\s*pub\s+(?!\()/.test(t)}function Mt(t){if(!K(t))return[];let e=[];return Ae(t,"",e,0),e}function Ae(t,e,n,r){let i=B(t,e);if(K(i)&&(K(B(i,"Cargo.toml"))&&n.push(e),!(r>=kt)))for(let s of ht(i,{withFileTypes:!0})){if(!s.isDirectory()||xt.has(s.name))continue;let a=e?`${e}/${s.name}`:s.name;Ae(t,a,n,r+1)}}function wt(t){let e=!1;for(let n of t.split(`
2
+ `)){let r=n.replace(/\s+#.*$/,"").trim(),i=/^\[([^\]]+)\]$/.exec(r);if(i){e=i[1]==="lib";continue}if(!e)continue;let s=/^path\s*=\s*["']([^"']+)["']/.exec(r)?.[1];if(s)return s.replaceAll("\\","/").replace(/^\.\//,"")}return null}function Ft(t){let e=!1;for(let n of t.split(`
3
+ `)){let r=n.replace(/\s+#.*$/,"").trim(),i=/^\[([^\]]+)\]$/.exec(r);if(i){e=i[1]==="package";continue}if(e&&/^autolib\s*=\s*false\b/.test(r))return!0}return!1}function It(t){return/(?:^|\/)src\/main\.rs$/.test(t)||/(?:^|\/)src\/bin\//.test(t)||/(?:^|\/)(?:examples|tests|benches)\//.test(t)}import{existsSync as Lt,readdirSync as At}from"fs";import{join as Nt}from"path";var _t=/^(?:[\w.-]+\.config\.[cm]?[jt]s|package\.json)$/,jt=/(?:\.{1,2}\/)?[\w@./-]+\.(?:[cm]?[jt]sx?)\b/g,Ot=u("config-referenced-files",{clearGroups:["whole-project"]});function $t(t){return Ot.get(t,()=>Vt(t))}function Ne(t,e){return $t(t).has(d(e))}function Vt(t){let e=new Set,n=t.config.projectRoot,r;try{r=At(n)}catch{return e}let i=r.filter(a=>_t.test(a)&&Lt(Nt(n,a)));if(i.length===0)return e;let s=new Set(m(t,{includeIgnored:!1}).map(a=>d(a)));for(let a of i){let o;try{o=S(n,a,{inputKind:"root configuration file"})}catch(c){if(R(c))continue;continue}Gt(o,s,e)}return e}function Gt(t,e,n){for(let r of t.matchAll(jt)){let i=d(r[0]).replace(/^\.\//,"");i.startsWith("..")||i.startsWith("/")||e.has(i)&&n.add(i)}}import{existsSync as X,readdirSync as Kt}from"fs";import{join as F}from"path";var Bt=["trigger.config.ts","trigger.config.mts","trigger.config.js","trigger.config.mjs"],Xt=["./src/trigger","./trigger"],qt=/\bdirs\s*:\s*\[([^\]]*)\]/,Ut=/["'`]([^"'`]+)["'`]/g,Ht=["","apps","packages","services"],Wt=u("framework-task-surface",{clearGroups:["whole-project"]});function Yt(t){return Wt.get(t,()=>Zt(t))}function _e(t,e){let n=d(e);return Yt(t).directories.some(r=>n===r.directory||n.startsWith(`${r.directory}/`))}function Zt(t){let e=new Map;for(let n of zt(t.config.projectRoot))for(let r of Jt(t,n))e.has(r)||e.set(r,{directory:r,framework:"trigger.dev",config:n});return{directories:[...e.values()].sort((n,r)=>n.directory.localeCompare(r.directory))}}function zt(t){let e=[],n=r=>{for(let i of Bt){let s=r?`${r}/${i}`:i;X(F(t,s))&&e.push(s)}};n("");for(let r of Ht.slice(1)){let i=F(t,r);if(!X(i))continue;let s;try{s=Kt(i)}catch{continue}for(let a of s)n(`${r}/${a}`)}return e}function Jt(t,e){let n;try{n=S(t.config.projectRoot,e,{inputKind:"framework task config"})}catch(o){return R(o)?[]:[]}let r=e.includes("/")?e.slice(0,e.lastIndexOf("/")):"",i=qt.exec(n)?.[1],s=i?[...i.matchAll(Ut)].map(o=>o[1]):Xt,a=[];for(let o of s){let c=d(F(r,o)).replace(/\/+$/,"");c===""||c.startsWith("..")||X(F(t.config.projectRoot,c))&&a.push(c)}return a}function Qt(t){return en.get(t,()=>{let n=m(t,{includeIgnored:!1}).filter(a=>{let o=g(a);return o==="entry"||o==="worker"});if(n.length===0)return new Set;let r=C(t),i=new Set,s=new Set;for(;n.length>0;){let a=n.shift();if(!i.has(a)){i.add(a),g(a)==="barrel"&&s.add(a);for(let o of r.get(a)??[])i.has(o)||n.push(o)}}return s})}var en=u("live-barrels",{clearGroups:["whole-project"]});function tn(t,e){return Qt(t).has(d(e))}function Oe(t,e){let n=d(e),r=g(e);return r==="entry"||r==="worker"||hn(n)||_e(t,n)||Ne(t,n)||tn(t,n)}function nn(t,e,n){let r=d(n),i=[];G(t,r)&&i.push("package-surface-file"),sn(t,e,r)&&i.push("transitive-package-surface"),Le(t,e,r)&&i.push("rust-public-library"),yn(e,r)&&i.push("framework-entrypoint");let s=t.config.entryRoots;return s&&(s.files?.some(a=>d(a)===r)&&i.push("configured-file"),s.pathPrefixes?.some(a=>r.startsWith(d(a)))&&i.push("configured-path-prefix"),s.qualifiedVars?.some(a=>Pn(e,a))&&i.push("configured-qualified-var"),s.symbolPatterns?.some(a=>{try{return De(a,"entryRoots.symbolPatterns entry").test(e)}catch{return!1}})&&i.push("configured-symbol-pattern")),i}function $e(t,e,n){return nn(t,e,n).length>0}var rn=u("package-surface-reachability",{clearGroups:["whole-project"]}),Ir=u("explicit-package-surface-reachability",{clearGroups:["whole-project"]});function sn(t,e,n){let r=an(t).get(n);return r===void 0?!1:r===null||r.has(D(e))}function an(t){return rn.get(t,()=>on(t,e=>G(t,e)))}function on(t,e){let n=new Map,r=[];for(let i of m(t,{includeIgnored:!1}))e(i)&&(n.set(i,null),r.push(i));for(;r.length>0;){let i=r.shift(),s=n.get(i);s!==void 0&&xn(t,i,s,n,r)}return n}function cn(t,e){if(t===null)return e.kind==="named"?new Set(e.names):null;if(e.kind==="star")return new Set(t);if(e.kind==="star-as")return e.names.some(r=>t.has(r))?null:void 0;let n=e.names.filter(r=>t.has(r));return n.length>0?new Set(n):void 0}function ln(t,e,n){if(!t.has(e))return t.set(e,n),!0;let r=t.get(e);if(r===void 0)return!1;if(r===null||n===null)return r===null?!1:(t.set(e,null),!0);let i=!1;for(let s of n)r.has(s)||(r.add(s),i=!0);return i}var Ve=new Set(["GET","POST","PUT","PATCH","DELETE","HEAD","OPTIONS"]),un=new Set(["default","generateMetadata","generateStaticParams"]),fn=new Set(["default","getStaticProps","getServerSideProps","getStaticPaths","config"]),dn=new Set(["default","middleware","config"]),mn=new Set(["register","onRequestError"]),gn=new Set(["onRouterTransitionStart"]),pn=new Set(["default","loader","action","clientLoader","clientAction","headers","links","meta","shouldRevalidate","ErrorBoundary","HydrateFallback"]),bn=new Set(["load","actions","entries",...Ve]),Sn=new Set(["default"]);function yn(t,e){let n=D(t);return n===""?!1:kn(e,n)}function hn(t){return Ge(t)||Ke(t)||Be(t)||Xe(t)||qe(t)||Ue(t)||He(t)||We(t)}function Ge(t){return/(?:^|\/)app(?:\/[^/]+)*\/route\.(?:ts|tsx|js|jsx|mjs|cjs)$/.test(t)}function Ke(t){return/(?:^|\/)app(?:\/[^/]+)*\/(?:page|layout|template|loading|error|not-found|global-error|head|default)\.(?:ts|tsx|js|jsx|mjs|cjs)$/.test(t)}function Be(t){return/(?:^|\/)pages\/.+\.(?:ts|tsx|js|jsx|mjs|cjs)$/.test(t)}function Xe(t){return q(t,"(?:middleware|proxy)\\.(?:ts|js|mts|mjs)")}function qe(t){return q(t,"instrumentation\\.(?:ts|js|mts|mjs)")}function Ue(t){return q(t,"instrumentation-client\\.(?:ts|js|mts|mjs)")}function q(t,e){return new RegExp(`^(?:src/)?${e}$`).test(t)||new RegExp(`(?:^|/)src/${e}$`).test(t)||new RegExp(`(?:^|/)(?:apps|services|packages)/[^/]+/(?:src/)?${e}$`).test(t)}function He(t){return/(?:^|\/)app\/routes\/.+\.(?:ts|tsx|js|jsx|mjs|cjs)$/.test(t)}function We(t){return/(?:^|\/)src\/routes\/(?:.*\/)?\+(?:page|page\.server|layout|layout\.server|server)\.(?:ts|js)$/.test(t)}function Rn(t){return/(?:^|\/)src\/(?:pages|views|routes)\/.+\.(?:ts|tsx|js|jsx|vue)$/.test(t)}function Pn(t,e){let n=e.lastIndexOf("/");if(n<0)return!1;let r=e.slice(0,n),i=e.slice(n+1);return t.includes(je(r)+"/")&&t.includes(je(i)+".")}function je(t){return/^[A-Za-z0-9_$+-]+$/.test(t)?t:"`"+t.replace(/`/g,"``")+"`"}function xn(t,e,n,r,i){for(let s of oe(t,e)){if(!s.sourcePath||t.isIgnored(s.sourcePath))continue;let a=cn(n,s);a!==void 0&&ln(r,s.sourcePath,a)&&i.push(s.sourcePath)}}function kn(t,e){return Ge(t)?Ve.has(e):Ke(t)?un.has(e):Be(t)?fn.has(e):Xe(t)?dn.has(e):qe(t)?mn.has(e):Ue(t)?gn.has(e):He(t)?pn.has(e):We(t)?bn.has(e):Rn(t)?Sn.has(e):!1}function U(t,e,n={}){let r=new Map;if(e&&e.length===0)return r;let i=m(t,{includeIgnored:!1}),s=ye(t),a=e??fe(t),o=new Set(a.map(l=>l.symbolId)),c=In(a);return En(t,r,i,s,o,c),vn(t,r,a,o),wn(t,r,i,s,o,c),n.semantic!==!1&&n.semanticEvidence&&An(r,n.semanticEvidence.callerMap(t,Ln(a))),r}function En(t,e,n,r,i,s){for(let a of n){if(!h(a))continue;let o=se(t,a);if(o)for(let c of o)s&&!s.has(c.calleeLeaf)||Dn(t,e,a,c,r,i)}}function Dn(t,e,n,r,i,s){let a=be(n,i.get(r.calleeLeaf)??[]);if(!a||a.length===0)return;let o=Se(t,n,a,r.memberAccess,r.calleeQualifier);o&&s.has(o.symbolId)&&o.file!==n&&H(e,o.symbolId,n)}function vn(t,e,n,r){let i=Cn(n);for(let s of Tn(t,r))t.isIgnored(s.relative_path)||Mn(s,i.get(s.symbol_id))||H(e,s.symbol_id,s.relative_path)}function Tn(t,e){return pe(t,e?[...e]:void 0)}function Cn(t){let e=new Map;for(let n of t)e.set(n.symbolId,{docId:n.documentId,startLine:n.startLine,endLine:n.endLine});return e}function Mn(t,e){return!!e&&e.docId===t.document_id&&t.chunk_start>=e.startLine&&t.chunk_end<=e.endLine}function wn(t,e,n,r,i,s){for(let a of n){if(h(a)!=="rust")continue;let o=P(t,a,{includeRustAttributeNames:!0});if(o.length!==0)for(let{name:c}of o)s&&!s.has(c)||Fn(e,a,r.get(c),i)}}function Fn(t,e,n,r){if(n)for(let i of n)r.has(i.symbolId)&&i.file!==e&&H(t,i.symbolId,e)}function H(t,e,n){let r=t.get(e);r||(r=new Set,t.set(e,r)),r.add(n)}function In(t){let e=new Set;for(let n of t){let r="leaf"in n&&typeof n.leaf=="string"?n.leaf:"symbol"in n&&typeof n.symbol=="string"?D(n.symbol):"";r&&e.add(r)}return e.size>0?e:null}function Ln(t){return t.filter(e=>"relativePath"in e&&"symbol"in e&&"leaf"in e)}function An(t,e){for(let[n,r]of e){let i=t.get(n);i||(i=new Set,t.set(n,i));for(let s of r)i.add(s)}}var Nn=u("cross-file-caller-files",{clearGroups:["whole-project","source-file"]}),_n=u("source-fallback-caller-files",{clearGroups:["whole-project","source-file"]});function Ye(t,e,n){let r=e.filter(s=>!t.has(s.symbolId));if(r.length>0){let s=n(r);for(let a of r)t.set(a.symbolId,s.get(a.symbolId)??new Set)}let i=new Map;for(let s of e){let a=t.get(s.symbolId);a&&a.size>0&&i.set(s.symbolId,new Set(a))}return i}function W(t,e,n={}){if(e===void 0)return U(t,e,n);let r=Ye(Nn.get(t,()=>new Map),e,i=>U(t,i,{semantic:!1}));return n.semantic===!1||!n.semanticEvidence?r:ze(r,n.semanticEvidence.callerMap(t,e.filter(i=>"relativePath"in i&&"symbol"in i&&"leaf"in i)))}function Y(t,e,n={}){return n.skipPath?$(t,e,n):Ye(_n.get(t,()=>new Map),e,r=>$(t,r))}function Ze(t,e,n={}){let r=W(t,e,{semantic:n.semantic,semanticEvidence:n.semanticEvidence});return n.sourceFallback===!1?r:ze(r,Y(t,e))}function ze(t,e){let n=new Map;for(let[r,i]of t)n.set(r,new Set(i));for(let[r,i]of e){let s=n.get(r)??new Set;for(let a of i)s.add(a);n.set(r,s)}return n}function Je(t,e,n){let r=e.identifierResolution==="strict"?O:Pe,i=e.candidateNames?he(e.candidateNames):null,s={scannedPaths:0,candidateMatchedPaths:0,visitedNames:0,visitedHits:0,currentPath:""};for(let a of e.paths)if(s.scannedPaths+=1,s.currentPath=a,!!jn(t,a,e))try{if(i&&!Re(ee(t,a),i))continue;s.candidateMatchedPaths+=1,On(t,a,e,r,n,s)}finally{e.afterPath?.(a),s.scannedPaths%10===0&&Q("source-reference-scan.progress",()=>{},()=>({scannedPaths:s.scannedPaths,currentPath:s.currentPath,candidateMatchedPaths:s.candidateMatchedPaths,visitedNames:s.visitedNames,visitedHits:s.visitedHits}))}}function jn(t,e,n){return!(!h(e)&&!(n.includeVueSfc&&ie(e))||t.isIgnored(e)||n.skipPath?.(e))}function On(t,e,n,r,i,s){let a=(c,l,b,k)=>{if(n.candidateNames&&!n.candidateNames.has(c))return;s.visitedNames+=1;let I=n.resolveTargets?n.resolveTargets({sourceFile:e,name:c,kind:l,defaultTargets:k}):k();for(let L of I)s.visitedHits+=1,i({sourceFile:e,name:c,target:L,occurrences:b,kind:l})},o=ge(t,e);for(let[c,l]of o)a(c,"identifier",l.length,()=>r(t,e,c));for(let c of P(t,e,{includeCrossLanguageDispatchNames:n.includeCrossLanguageDispatchNames,includeRustAttributeNames:n.includeRustAttributeNames})){let l=c.kind==="cross-language-dispatch"?()=>O(t,e,c.name):()=>r(t,e,c.name);a(c.name,c.kind,c.occurrences,l)}}function Qe(t,e={}){let{scope:n,files:r,minLoc:i=1,maxLoc:s=Number.POSITIVE_INFINITY,excludeSymbol:a,excludeEntrySurfaces:o=!1,excludeTypesFiles:c=!1,excludeRootedSymbols:l=!1,requireFunctionLikeSymbol:b=!1,requireCallableSymbol:k=!1,excludeRustTraitImplMembers:I=!1,includeSuppressed:L=!1,sortByLocDesc:tt=!1}=e,A=[],nt=Kn(t,{scope:n,files:r,requireFunctionLikeSymbol:b,requireCallableSymbol:k}),Z=new Map,z=new Map,rt=f=>{let y=Z.get(f);if(y!==void 0)return y;let E=Oe(t,f);return Z.set(f,E),E},it=f=>{let y=z.get(f);if(y!==void 0)return y;let E=g(f);return z.set(f,E),E},st={excludeEntrySurfaces:o,requireFunctionLikeSymbol:b,requireCallableSymbol:k,excludeSymbol:a,minLoc:i,maxLoc:s},at={excludeTypesFiles:c,excludeRootedSymbols:l,excludeRustTraitImplMembers:I};for(let f of nt)$n(t,f,st,rt)&&Vn(t,f,at)&&Gn(t,f,L,it)&&A.push(f);return tt?A.sort((f,y)=>M(y)-M(f)):A}function $n(t,e,n,r){let i=e.relativePath;if(t.isIgnored(i)||n.excludeEntrySurfaces&&r(i)||!Bn(e,n)||n.excludeSymbol!==void 0&&e.symbol===n.excludeSymbol)return!1;let s=M(e);return!(s<n.minLoc||s>n.maxLoc)}function Vn(t,e,n){let r=e.relativePath;return n.excludeTypesFiles&&Xn(r)||n.excludeRootedSymbols&&$e(t,e.symbol,r)?!1:!n.excludeRustTraitImplMembers||!le(e.symbol)}function Gn(t,e,n,r){let i=e.relativePath;return r(i)==="test"||ue(e.symbol)?!1:n||!re(t,i,e.startLine,"")}function Kn(t,e){return e.files!==void 0?[...new Set(e.files.map(r=>r.replace(/\\/g,"/")))].sort().filter(r=>!e.scope||r.includes(e.scope)).flatMap(r=>x(t,r)):e.requireCallableSymbol?j(t,{scope:e.scope,symbolMatches:N,sqlPrefilter:"callable"}):e.requireFunctionLikeSymbol?j(t,{scope:e.scope,symbolMatches:_,sqlPrefilter:"function-like"}):me(t,e.scope)}function Bn(t,e){return e.requireCallableSymbol?N(t.symbol):e.requireFunctionLikeSymbol?_(t.symbol):t.isFunctionLike}function Xn(t){return(t.split("/").pop()??"").includes("types")}var et=class{constructor(e){this.db=e}db;scopedDefinitions(e){return de(this.db,e)}definitionsForFile(e){return x(this.db,e)}productionCallableDefinitions(e={}){return Qe(this.db,e)}calleeMap(e,n={}){return ke(this.db,e,{...n,semanticEvidence:v})}callableCallees(e,n={}){return xe(this.db,e,{...n,additive:!0,callableOnly:!0,semanticEvidence:v}).map(r=>({...r,evidenceStrength:Ee(r.source)}))}crossFileCallerMap(e,n={}){return W(this.db,e,{...n,semanticEvidence:v})}sourceFallbackCallerFiles(e,n={}){return Y(this.db,e,n)}callerFileMap(e,n={}){return Ze(this.db,e,{...n,semanticEvidence:v})}frameworkReferencedSymbolIds(e){let n=new Map;for(let i of e){if(!i.leaf)continue;let s=n.get(i.leaf)??[];s.push(i.symbolId),n.set(i.leaf,s)}let r=new Set;for(let i of m(this.db,{includeIgnored:!1}))if(h(i)==="rust")for(let{name:s}of P(this.db,i,{includeRustAttributeNames:!0}))for(let a of n.get(s)??[])r.add(a);return r}symbolsWithNonSelfCallees(e,n={}){if(e.length===0)return new Set;let r=new Map(e.map(s=>[s.symbolId,s.symbol])),i=this.calleeMap(e,n);return new Set([...i.entries()].filter(([s,a])=>{let o=r.get(s);return a.some(c=>c.symbol!==o)}).map(([s])=>s))}fileDependencyGraph(e){return C(this.db,e)}fileKind(e){return g(e)}hasSuppressionComment(e){return ne(this.db,e.relativePath,e.startLine)}sourceFiles(){return ae(this.db)}scanSourceReferences(e,n){Je(this.db,e,n)}callableSignature(e){let n=ce(this.db).forFile(e.relativePath,{facts:!0}).facts?.callables.find(r=>r.startLine===e.startLine&&r.endLine===e.endLine);return n?{paramCount:n.paramCount}:null}};export{Oe as a,nn as b,Qe as c,et as d};
4
+ //# sourceMappingURL=chunk-TZCVNCAN.js.map
@@ -0,0 +1,3 @@
1
+ import{a as te}from"./chunk-DOOEL2IV.js";import{a as ne}from"./chunk-42EOW5VI.js";import{a as re}from"./chunk-4QZXBUKC.js";import{a as oe}from"./chunk-YTYWI7VB.js";import{b as J}from"./chunk-XHTVFLWW.js";import{a as ee}from"./chunk-MMHZKBFA.js";import{a as Z}from"./chunk-AUVEWPIF.js";import{b as Y}from"./chunk-NAZ3RAIW.js";import{b as X}from"./chunk-5IYJ56TT.js";import{f as U}from"./chunk-UXYXF7GV.js";import{a as K}from"./chunk-DKYQIM3C.js";import{b as Q}from"./chunk-2FSBGL5P.js";import{a as z,c as j}from"./chunk-TOU3CHK4.js";import{b as W}from"./chunk-NEIWRNAZ.js";import{b as O}from"./chunk-D254DNNQ.js";import{a as S,b as M}from"./chunk-O3RHA6ZT.js";import{c as q}from"./chunk-UP5KXN2I.js";import{a as G,b as f}from"./chunk-KDDIE2DP.js";import{r as k}from"./chunk-PKN354TH.js";import{b as I}from"./chunk-ETOIKRHO.js";import{e as _,g as V}from"./chunk-4WCUBZU3.js";import{a as $}from"./chunk-7WTPQ4NX.js";import{A as F,O as N}from"./chunk-FVULPZDF.js";import{a as b}from"./chunk-A2IIGFMJ.js";import{qa as T,ra as B}from"./chunk-5TNQJUR2.js";function ie(e){let t;try{t=f(e,["rev-parse","HEAD"]).trim()}catch{return null}return/^[0-9a-f]{40,64}$/u.test(t)?{head:t,branch:De(e),dirtyPaths:Pe(e)}:null}function De(e){try{let t=f(e,["rev-parse","--abbrev-ref","HEAD"]).trim();return t&&t!=="HEAD"?t:null}catch{return null}}function Pe(e){try{return f(e,["status","--porcelain"]).split(`
2
+ `).filter(t=>t.length>0).length}catch{return 0}}import{readdirSync as Le}from"fs";import{basename as Ae,join as ae}from"path";function ke(e,t,r={}){let n=new Set(e),o=new Set(t),i=[...o].filter(s=>!n.has(s)).sort(),a=r.allowExtra?[]:[...n].filter(s=>!o.has(s)).sort();return{missing:i,extra:a}}function Te(e,t){let r=Be(e,t.file,t.keys);if(!r.ok)return{name:t.name,file:t.file,status:"unavailable",missing:[],extra:[],unavailableReason:r.reason};let n=Ie(e.config.projectRoot,t.mustEqual),o=ke(r.keys,n,{allowExtra:t.allowExtra??!1}),i=o.missing.length>0||o.extra.length>0?"violated":"ok";return{name:t.name,file:t.file,status:i,missing:o.missing,extra:o.extra}}function ce(e,t){return t.map(r=>Te(e,r))}function Be(e,t,r){return r.type==="markdown-list"?Ve(e,t,r.marker):$e(e,t,r)}function $e(e,t,r){if(!b(e,t))return{ok:!1,reason:`file not found: ${t}`};let o=F(t);if(!o)return{ok:!1,reason:`unsupported file type for ${r.type} extraction: ${t}`};let i=N(e,t);if(!i)return{ok:!1,reason:`tree-sitter parser unavailable for ${o} (${t}) \u2014 contract skipped, not silently passed`,disclosedUnavailable:{language:o,reason:"parser-unavailable"}};let a=r.type==="object-literal-keys"?Fe(i,r.identifier):_e(i,r.identifier);return a===null?{ok:!1,reason:`no ${r.type==="object-literal-keys"?"object literal":"string array"} named "${r.identifier}" found in ${t}`}:{ok:!0,keys:a}}function ue(e){let t=e.childForFieldName("value");return t?t.type==="as_expression"||t.type==="satisfies_expression"?t.namedChild(0):t:null}function Fe(e,t){for(let r of e.rootNode.descendantsOfType("variable_declarator")){if(r.childForFieldName("name")?.text!==t)continue;let o=ue(r);if(o?.type==="object")return Ne(o)}return null}function Ne(e){let t=new Set;for(let r of e.namedChildren)if(r.type==="pair"){let n=r.childForFieldName("key");n&&t.add(le(n.text))}else r.type==="shorthand_property_identifier"&&t.add(r.text);return[...t].sort()}function _e(e,t){for(let r of e.rootNode.descendantsOfType("variable_declarator")){if(r.childForFieldName("name")?.text!==t)continue;let o=ue(r);if(o?.type!=="array")continue;let i=new Set;for(let a of o.namedChildren)a.type==="string"&&i.add(le(a.text));return[...i].sort()}return null}function le(e){return e.length>=2&&(e[0]==="'"&&e.endsWith("'")||e[0]==='"'&&e.endsWith('"'))?e.slice(1,-1):e}function Ve(e,t,r){let n=b(e,t);if(!n)return{ok:!1,reason:`file not found: ${t}`};let o=de(n,r);return o===null?{ok:!1,reason:`no <!-- BEGIN GENERATED ${r} --> ... <!-- END GENERATED ${r} --> block in ${t}`}:{ok:!0,keys:me(o)}}function de(e,t){let r=$(t),o=new RegExp(`<!--\\s*BEGIN GENERATED ${r}\\s*-->([\\s\\S]*?)<!--\\s*END GENERATED ${r}\\s*-->`).exec(e);return o?o[1]:null}function me(e){let t=new Set;for(let r of e.matchAll(/`([a-z][a-z0-9-]*)`/g))t.add(r[1]);for(let r of e.matchAll(/\[([a-z][a-z0-9-]*)\]\([^)]*\)/g))t.add(r[1]);return[...t].sort()}function Ie(e,t){switch(t.type){case"top-level-dirs":return se(ae(e,t.path));case"file-glob":return[...new Set(I(e,t.pattern).map(r=>Ae(r)))].sort();case"registered-commands":return Me(e);case"builtin-skills":return se(ae(e,"skills"))}}function se(e){let t;try{t=Le(e,{withFileTypes:!0})}catch{return[]}return t.filter(r=>r.isDirectory()&&!r.name.startsWith(".")).map(r=>r.name).sort()}function Me(e){let t;try{t=T(e,"docs/COMMAND_REFERENCE.md",{maxBytes:8*1024*1024,inputKind:"generated command reference"})}catch(n){if(!B(n))throw n;return[]}let r=de(t,"COMMAND REFERENCE");return r?me(r):[]}var p={dead:{minLoc:1,skipBarrels:!1,deadCodeOnly:!1},similar:{minSimilarity:.6,limit:50,minCallees:4},duplicateBodies:{maxLoc:15,limit:50},passthroughs:{maxLoc:15,limit:50},drift:{},twinDrift:{minSimilarity:.3}};import{getHeapStatistics as Ge}from"v8";var qe=64*1024*1024;function H(){let e=globalThis.gc;if(!e)return;let t=Ge();t.heap_size_limit-t.used_heap_size<qe||e()}function E(e){return e.scoreCount??e.count}function w(e,t){let r=Xe(e);return{overview:{documents:e.statsResult.documents,symbols:e.statsResult.symbols,indexSizeBytes:e.statsResult.indexSizeBytes},...t?{provenance:t}:{},findings:{deadSymbols:e.dead.count,deadLoc:e.dead.loc,cycles:e.realCycleCount,similarPairs:e.similarCount,duplicateBodyGroups:e.duplicateBodies.count,duplicateBodyLoc:e.duplicateBodies.loc,twinDriftGroups:e.twinDrift.count,twinDriftLoc:e.twinDrift.loc,reactComponentDuplicatePairs:e.reactComponentDuplicates.count,reactHookCandidatePairs:e.reactHookCandidates.count,reactHookCandidateScoreCount:E(e.reactHookCandidates),reactLargeComponentPressureFiles:e.reactLargeComponentPressure.count,vueComponentDuplicatePairs:e.vueComponentDuplicates.count,vueComposableCandidatePairs:e.vueComposableCandidates.count,vueComposableCandidateScoreCount:E(e.vueComposableCandidates),vueLargeViewPressureFiles:e.vueLargeViewPressure.count,passthroughs:e.passthroughs.count,driftedFiles:e.drift.count,hiddenCouplingPairs:e.gitEvidence?.hiddenCoupling.pairCount??null,hiddenCouplingScoreCount:e.gitEvidence?.hiddenCoupling.scoreCount??null,coverageContractViolations:e.coverageContracts.count},axes:Oe(e),validation:We(e),suppressions:e.suppressions,actions:r,policyExclusions:je(e),detectorEvidence:e.detectorEvidence,warnings:e.warnings.length>0?e.warnings:void 0}}var ze=[["react-component-duplicates",e=>e.reactComponentDuplicates],["react-hook-candidates",e=>e.reactHookCandidates],["react-large-component-pressure",e=>e.reactLargeComponentPressure],["duplicate-bodies",e=>e.duplicateBodies],["dead",e=>e.dead]];function je(e){let t=[],r=(n,o)=>{for(let i of o??[])i.count<=0||t.push({detector:n,reason:i.reason,detail:i.detail,count:i.count})};for(let[n,o]of ze)r(n,o(e).exclusions);return r("cycles",e.cycleExclusions),r("co-change",e.gitEvidence?.hiddenCoupling.exclusions),t}function Oe(e){return{deletable:{loc:e.dead.loc,symbols:e.dead.count},cycles:{count:e.realCycleCount},changeAmplification:e.gitEvidence?.amplification??null,hiddenCoupling:e.gitEvidence?.hiddenCoupling??null,evidenceQuality:{graphFindings:e.dead.count+e.realCycleCount,heuristicFindings:e.similarCount+e.duplicateBodies.count+e.twinDrift.count+e.reactComponentDuplicates.count+e.reactHookCandidates.count+e.reactLargeComponentPressure.count+e.vueComponentDuplicates.count+e.vueComposableCandidates.count+e.vueLargeViewPressure.count+e.passthroughs.count+e.drift.count,userSuppressed:e.suppressions?.total??0}}}function We(e){let t=e.gitEvidence?.fileStats;if(!t)return null;let r=Ke(e),n=new Set(Object.values(r).flat()),{flaggedFixDensity:o,baselineFixDensity:i}=Qe(t,n),a=Ue(r,t,i);return{flaggedFiles:n.size,flaggedFixDensity:o,baselineFixDensity:i,ratio:n.size>0&&i>0?h(o/i):null,byCategory:a,validationBasis:{method:"subject-regex",commitsScanned:e.gitEvidence?.commitsScanned??0}}}function Ke(e){return{dead:e.dead.files??[],twinDrift:e.twinDrift.files??[],passthroughs:e.passthroughs.files??[],reactComponents:e.reactComponentDuplicates.files??[],reactHooks:e.reactHookCandidates.files??[],reactLargeComponents:e.reactLargeComponentPressure.files??[],vueComponents:e.vueComponentDuplicates.files??[],vueComposables:e.vueComposableCandidates.files??[],vueLargeViews:e.vueLargeViewPressure.files??[]}}function Qe(e,t){let r=0,n=0,o=0;for(let[s,u]of Object.entries(e))t.has(s)?r+=u.fixChanges:(n+=u.fixChanges,o+=1);let i=t.size>0?h(r/t.size):0,a=o>0?h(n/o):0;return{flaggedFixDensity:i,baselineFixDensity:a}}function Ue(e,t,r){let n={};for(let[o,i]of Object.entries(e)){let a=new Set(i);if(a.size===0)continue;let s=0;for(let y of a)s+=t[y]?.fixChanges??0;let u=h(s/a.size);n[o]={flaggedFiles:a.size,fixDensity:u,lift:r>0?h(u/r):null}}return n}function h(e){return Math.round(e*100)/100}function Ye(e){return Number.isInteger(e)?String(e):e.toFixed(2).replace(/0+$/,"").replace(/\.$/,"")}function g(e,t="existing shared infrastructure discount"){let r=E(e);return Math.abs(r-e.count)<.01?"":` (combined pair weight ${Ye(r)} after ${t})`}function Xe(e){let t=[];Je(e,t),Ze(e,t),et(e,t),tt(e,t),rt(e,t);let r={high:3,medium:2,low:1},n={low:3,medium:2,high:1};return t.sort((o,i)=>{let a=r[o.impact]*n[o.effort];return r[i.impact]*n[i.effort]-a}),t}function Je(e,t){e.dead.count>0&&t.push({category:"Dead code",evidence:"graph-fact",evidenceContractId:"dead-visible-references",description:`${e.dead.count} indexed symbols with no visible repository references \u2014 review runtime/framework roots and the capability disclosure, then verify any deletion with cleanup-plan --verify`,effort:"low",impact:"high",count:e.dead.count,locRecoverable:e.dead.loc}),e.realCycleCount>0&&t.push({category:"Circular dependencies",evidence:"graph-fact",description:`${e.realCycleCount} cyclic import/re-export component(s), including type-only dependencies \u2014 inspect ownership and runtime effects before changing them`,effort:"medium",impact:"high",count:e.realCycleCount,locRecoverable:0})}function Ze(e,t){e.similarCount>0&&t.push({category:"Similar functions",evidence:"heuristic",evidenceContractId:"duplicate-structural-candidate",description:`${e.similarCount} pairs share disclosed call or source-token evidence beyond imports \u2014 review domain identity before considering consolidation`,effort:"medium",impact:"medium",count:e.similarCount,locRecoverable:0}),e.duplicateBodies.count>0&&t.push({category:"Duplicate function bodies",evidence:"heuristic",evidenceContractId:"duplicate-structural-candidate",description:`${e.duplicateBodies.count} exact small-body group(s) across files \u2014 consolidate only when the domain concept matches`,effort:"low",impact:"medium",count:e.duplicateBodies.count,locRecoverable:e.duplicateBodies.loc}),e.twinDrift.count>0&&t.push({category:"Drifted twin implementations",evidence:"heuristic",description:`${e.twinDrift.count} same-name (or near-name) function group(s) across files with diverged or identical bodies \u2014 determine whether they represent the same concept before acting`,effort:"medium",impact:"medium",count:e.twinDrift.count,locRecoverable:0})}function et(e,t){e.reactComponentDuplicates.count>0&&t.push({category:"Duplicated React components",evidence:"heuristic",description:`${e.reactComponentDuplicates.count} React component pair(s) share JSX structure${g(e.reactComponentDuplicates,"support-tier discount")} \u2014 review whether local product intent justifies reuse`,effort:"medium",impact:"medium",count:e.reactComponentDuplicates.count,locRecoverable:e.reactComponentDuplicates.loc}),e.reactHookCandidates.count>0&&t.push({category:"Duplicated React hook behavior",evidence:"heuristic",description:`${e.reactHookCandidates.count} React component pair(s) share state/effect/request behavior${g(e.reactHookCandidates)} \u2014 review whether a common hook would preserve ownership and lifecycle semantics`,effort:"medium",impact:"medium",count:e.reactHookCandidates.count,locRecoverable:e.reactHookCandidates.loc}),e.reactLargeComponentPressure.count>0&&t.push({category:"Large React components",evidence:"heuristic",description:`${e.reactLargeComponentPressure.count} React component(s) concentrate JSX/behavior pressure \u2014 split by reason to change`,effort:"medium",impact:"medium",count:e.reactLargeComponentPressure.count,locRecoverable:0}),e.vueComponentDuplicates.count>0&&t.push({category:"Duplicated Vue components",evidence:"heuristic",description:`${e.vueComponentDuplicates.count} Vue component pair(s) share template structure \u2014 review whether local product intent justifies reuse`,effort:"medium",impact:"medium",count:e.vueComponentDuplicates.count,locRecoverable:e.vueComponentDuplicates.loc}),e.vueComposableCandidates.count>0&&t.push({category:"Duplicated Vue behavior",evidence:"heuristic",description:`${e.vueComposableCandidates.count} Vue component pair(s) share state/effect/request behavior${g(e.vueComposableCandidates)} \u2014 review whether a common composable would preserve ownership and lifecycle semantics`,effort:"medium",impact:"medium",count:e.vueComposableCandidates.count,locRecoverable:e.vueComposableCandidates.loc}),e.vueLargeViewPressure.count>0&&t.push({category:"Large Vue views",evidence:"heuristic",description:`${e.vueLargeViewPressure.count} Vue file(s) concentrate template/script/style pressure \u2014 split by reason to change`,effort:"medium",impact:"medium",count:e.vueLargeViewPressure.count,locRecoverable:0})}function tt(e,t){if(e.passthroughs.count>0&&t.push({category:"Passthrough functions",evidence:"heuristic",evidenceContractId:"passthrough-forwarding-candidate",description:`${e.passthroughs.count} functions that literally forward to one callee \u2014 inspect whether each is unnecessary indirection or an intentional boundary`,effort:"low",impact:"low",count:e.passthroughs.count,locRecoverable:e.passthroughs.loc}),e.drift.count>0){let r=[];e.drift.unusedImports>0&&r.push(`${e.drift.unusedImports} unused imports`),e.drift.architectureViolations>0&&r.push(`${e.drift.architectureViolations} declared architecture violations`),t.push({category:"Structural drift",evidence:"heuristic",description:`${r.join(", ")} \u2014 repair direct dependency-rule breaks; inspect boundary signals with \`drift --architecture\``,effort:e.drift.architectureViolations>0?"medium":"low",impact:e.drift.architectureViolations>0?"medium":"low",count:e.drift.count,locRecoverable:0})}e.coverageContracts.count>0&&t.push({category:"Coverage contract drift",evidence:"graph-fact",description:`${e.coverageContracts.count} configured coverage contract(s) drifted from their ground-truth source (enumeration rot) \u2014 run \`scip-query health --json\` for the missing/extra keys`,effort:"low",impact:"medium",count:e.coverageContracts.count,locRecoverable:0})}function rt(e,t){if(e.gitEvidence&&e.gitEvidence.hiddenCoupling.pairCount>0){let r=e.gitEvidence.hiddenCoupling.top[0];t.push({category:"Hidden coupling",evidence:"change-graph",description:`${e.gitEvidence.hiddenCoupling.pairCount} file pair(s) co-change without a structural link`+g({count:e.gitEvidence.hiddenCoupling.pairCount,scoreCount:e.gitEvidence.hiddenCoupling.scoreCount},"broad/stale-history discount")+(r?` (e.g. ${r.fileA} \u2194 ${r.fileB})`:"")+" \u2014 inspect whether a shared concept, generated artifact, or coordinated contract explains the history",effort:"medium",impact:"high",count:e.gitEvidence.hiddenCoupling.pairCount,locRecoverable:0})}}var nt=[{id:"dead-visible-references",detector:"dead",claim:"The symbol has no visible repository reference after entry, framework, and rooted-symbol exclusions.",relationRequirements:[{family:"identity",subtype:"references",minimumStrength:"exact"},{family:"execution",subtype:"call",minimumStrength:"exact"}],structuralEvidence:["entry-surface exclusions","framework/source fallback references","rooted-symbol exclusions"],calibration:"mixed",providerCoverage:"partial",nonClaims:["Absence of visible references does not prove absence of reflection, generated dispatch, or external use."],recoverWith:"scip-query evidence --symbol <symbol> --edge execution --edge runtime --edge identity --direction both --depth 2 --max-edges 100"},{id:"passthrough-forwarding-candidate",detector:"passthrough-candidates",claim:"A small callable visibly forwards to one callee, with public-facade and boundary signals disclosed.",relationRequirements:[{family:"execution",subtype:"call",minimumStrength:"exact"},{family:"contract",subtype:"uses-contract-symbol",minimumStrength:"exact"}],structuralEvidence:["statement-complete forwarding shape","public facade evidence","runtime-boundary signals"],calibration:"mixed",providerCoverage:"partial",nonClaims:["Literal forwarding does not prove the callable has no contract, naming, policy, or compatibility role."],recoverWith:"scip-query inspect --symbol <symbol> --view behavior"},{id:"decorative-checker-terminal-behavior",detector:"decorative-checkers",claim:"A checker-shaped callable lacks a visible failure terminal directly or through one resolved delegate.",relationRequirements:[{family:"execution",subtype:"returns",minimumStrength:"exact"},{family:"execution",subtype:"throws",minimumStrength:"exact"}],structuralEvidence:["checker naming shape","direct terminal behavior","one-hop delegate body"],calibration:"mixed",providerCoverage:"partial",nonClaims:["No visible terminal does not prove the checker cannot fail through an opaque call, exception, or process exit."],recoverWith:"scip-query inspect --symbol <symbol> --view behavior"},{id:"duplicate-structural-candidate",detector:"duplicate and similarity detectors",claim:"Two source units share the detector-specific structural or token pattern.",relationRequirements:[],structuralEvidence:["normalized source/token/JSX/template similarity"],calibration:"candidate",providerCoverage:"partial",nonClaims:["Structural similarity does not establish shared domain identity or justify consolidation."],recoverWith:"scip-query inspect --symbol <symbol-a> --symbol <symbol-b> --view behavior"}];function pe(e=new Set(["indexed-graph","source-facts"])){return nt.map(t=>{let r=t.relationRequirements.map(o=>{let i=Q(o.family,o.subtype);if(!i)throw new Error(`Detector ${t.id} names an unregistered relation ${o.family}/${o.subtype}`);if(!i.relation.evidenceStrengths.includes(o.minimumStrength))throw new Error(`Detector ${t.id} requires unsupported strength ${o.minimumStrength} for ${o.family}/${o.subtype}`);return i.provider}),n=[...new Set(r.flatMap(o=>o.requirements))].filter(o=>!e.has(o));return{...t,status:n.length>0?"unsupported":t.calibration,providerIds:[...new Set(r.map(o=>o.id))],unavailableRequirements:n}})}var ot=25e3,it=2500,he=2500,x=50,at=["overview","dead","cycles","similar","duplicate-bodies","twin-drift","react-component-duplicates","react-hook-candidates","react-large-component-pressure","vue-component-duplicates","vue-composable-candidates","vue-large-view-pressure","passthrough-candidates","drift","git-evidence","suppressions","coverage-contracts"],Ce={overview:(e,t,r,n)=>({phase:"overview",statsResult:n,warnings:[...r.warnings,...t?["Scope filters detector candidates; repository statistics, history and coverage contracts remain global. A scoped graph cannot establish repository-wide cycle freedom."]:[]]}),dead:(e,t,r)=>({phase:"dead",dead:ut(e,t,r)}),cycles:(e,t,r)=>({phase:"cycles",...lt(e,t,r)}),similar:(e,t,r)=>({phase:"similar",similarCount:dt(e,t,r)}),"duplicate-bodies":(e,t,r)=>({phase:"duplicate-bodies",duplicateBodies:mt(e,t,r)}),"twin-drift":(e,t,r)=>({phase:"twin-drift",twinDrift:pt(e,t,r)}),"react-component-duplicates":(e,t,r)=>({phase:"react-component-duplicates",reactComponentDuplicates:ht(e,t,r)}),"react-hook-candidates":(e,t,r)=>({phase:"react-hook-candidates",reactHookCandidates:ft(e,t,r)}),"react-large-component-pressure":(e,t,r)=>({phase:"react-large-component-pressure",reactLargeComponentPressure:gt(e,t,r)}),"vue-component-duplicates":(e,t,r)=>({phase:"vue-component-duplicates",vueComponentDuplicates:Ct(e,t,r)}),"vue-composable-candidates":(e,t,r)=>({phase:"vue-composable-candidates",vueComposableCandidates:vt(e,t,r)}),"vue-large-view-pressure":(e,t,r)=>({phase:"vue-large-view-pressure",vueLargeViewPressure:yt(e,t,r)}),"passthrough-candidates":(e,t,r)=>({phase:"passthrough-candidates",passthroughs:bt(e,t,r)}),drift:(e,t,r)=>({phase:"drift",drift:wt(e,t,r)}),"git-evidence":(e,t,r)=>({phase:"git-evidence",gitEvidence:St(e,r)}),suppressions:(e,t,r)=>({phase:"suppressions",suppressions:Ht(e,r)}),"coverage-contracts":(e,t,r)=>({phase:"coverage-contracts",coverageContracts:Et(e,r)})};function wr(e,t={}){return ye(e,t.full!==!1,(r,n)=>{let o=ct(e,t.scope,r,n);return w(o,ve(e))})}function ve(e){let t=e.generation.identity,r=k(e.config.dbPath),n=r?.currentGeneration===t?r:null;return{computedAt:new Date().toISOString(),generation:{identity:t,publishedAt:n?.publishedAt??null,mode:n?.publication?.mode??null},git:ie(e.config.projectRoot)}}function xr(e,t,r={}){return st(e,[t],r)[0]}function st(e,t,r={}){return ye(e,r.full!==!1,(n,o)=>{let i={...o,releaseCachesBetweenPhases:!1};return t.map(a=>Ce[a](e,r.scope,i,n))})}function ye(e,t,r){let n=ne(e),o=xt(n,t);try{return r(n,o)}finally{S(e,{semanticProvider:!0}),H()}}function Rr(e,t){return w(be(e),t?ve(t):void 0)}function be(e){let t=l(e,"overview");return{statsResult:t.statsResult,warnings:t.warnings,detectorEvidence:pe(),dead:l(e,"dead").dead,realCycleCount:l(e,"cycles").realCycleCount,cycleExclusions:l(e,"cycles").cycleExclusions,similarCount:l(e,"similar").similarCount,duplicateBodies:l(e,"duplicate-bodies").duplicateBodies,twinDrift:l(e,"twin-drift").twinDrift,reactComponentDuplicates:l(e,"react-component-duplicates").reactComponentDuplicates,reactHookCandidates:l(e,"react-hook-candidates").reactHookCandidates,reactLargeComponentPressure:l(e,"react-large-component-pressure").reactLargeComponentPressure,vueComponentDuplicates:l(e,"vue-component-duplicates").vueComponentDuplicates,vueComposableCandidates:l(e,"vue-composable-candidates").vueComposableCandidates,vueLargeViewPressure:l(e,"vue-large-view-pressure").vueLargeViewPressure,passthroughs:l(e,"passthrough-candidates").passthroughs,drift:l(e,"drift").drift,gitEvidence:fe(e,"git-evidence")?.gitEvidence??null,suppressions:fe(e,"suppressions")?.suppressions??null,coverageContracts:l(e,"coverage-contracts").coverageContracts}}function fe(e,t){return e.find(r=>r.phase===t)}function l(e,t){let r=e.find(n=>n.phase===t);if(!r)throw new Error(`Missing health phase result: ${t}`);return r}function ct(e,t,r,n){return be(at.map(o=>Ce[o](e,t,n,r)))}function ut(e,t,r){return d(e,r,"dead",()=>{let n=M(e,{scope:t,...p.dead,scanLimit:r.candidateScanLimit,semantic:r.semantic}),o=n.applicability;return{...D(Pt(e,n.symbols)),exclusions:v([{reason:"entry-surface-symbols",detail:"zero-reference symbols in framework entry surfaces (route handlers, pages, scheduled tasks, live barrels) that the framework invokes",count:o.entrySurfaceExcluded},{reason:"generated-artifact-symbols",detail:"zero-reference symbols in generated artifacts (migration dumps, codegen output) owned by their generator",count:o.generatedArtifactExcluded??0}])}})}function lt(e,t,r){return d(e,r,"cycles",()=>{let n=j(e,{scope:t,edgeBasis:"imports"}),o=z(e,{scope:t}),i=new Set(n.flatMap(s=>s.component??s.path)),a=o.filter(s=>!(s.component??s.path).some(u=>i.has(u)));return{realCycleCount:n.length,cycleExclusions:a.length>0?[{reason:"symbol-reference-only-cycles",detail:`component(s) that cycle through type or symbol references but not through imports (${a.reduce((s,u)=>s+(u.component?.length??u.path.length-1),0)} files); listed by cycles on its default basis`,count:a.length}]:[]}})}function dt(e,t,r){let n=d(e,r,"similar",()=>U(e,{scope:t,...p.similar,scanLimit:r.candidateScanLimit,semantic:r.semantic}));return Math.min(n,r.candidateResultLimit)}function mt(e,t,r){return d(e,r,"duplicate-bodies",()=>{let n=O(e,{scope:t,...p.duplicateBodies,limit:r.candidateResultLimit,scanLimit:r.candidateScanLimit}),o=new Set,i=0;for(let a of n.groups)for(let s of a.functions.slice(1))o.add(s.file),i+=s.loc;return{count:n.groups.length,loc:i,files:[...o],exclusions:n.exclusions.map(a=>({reason:a.reason,detail:`${a.detail}; group members removed before counting`,count:a.count}))}})}function pt(e,t,r){return d(e,r,"twin-drift",()=>{let n=W(e,{scope:t,...p.twinDrift,scanLimit:r.candidateScanLimit}).filter(a=>a.relationship==="divergent"||a.relationship==="identical"),o=new Set,i=0;for(let a of n)for(let s of a.members)o.add(s.file),i+=s.loc;return{count:n.length,loc:i,files:[...o].sort()}})}function ht(e,t,r){return d(e,r,"react-component-duplicates",()=>{let n=Y(e,{scope:t,limit:r.candidateResultLimit,scanLimit:r.candidateScanLimit}),o=n.results.filter(i=>ge(i)>0);return{...P(o,ge),exclusions:v(n.exclusions,[{reason:"support-tier-pairs",detail:"support-tier pairs (generic structure only, or framework route scaffolding); listed by react-component-duplicates but not counted",count:n.results.length-o.length}])}})}function ft(e,t,r){return d(e,r,"react-hook-candidates",()=>{let n=X(e,{scope:t,limit:r.candidateResultLimit,scanLimit:r.candidateScanLimit}),o=[],i=new Map;for(let a of n.results){let s=He(a);if(s.weight>0){o.push(a);continue}let u=i.get(s.reason)??{reason:s.reason,detail:s.detail,count:0};u.count+=1,i.set(s.reason,u)}return{...P(o,kt),exclusions:v(n.exclusions,[...i.values()])}})}function gt(e,t,r){return d(e,r,"react-large-component-pressure",()=>{let n=J(e,{scope:t,limit:r.candidateResultLimit,scanLimit:r.candidateScanLimit});return{...At(n.results),exclusions:v(n.exclusions,[])}})}function Ct(e,t,r){return d(e,r,"vue-component-duplicates",()=>{let n=Z(e,{scope:t,limit:r.candidateResultLimit,scanLimit:r.candidateScanLimit});return Se(n)})}function vt(e,t,r){return d(e,r,"vue-composable-candidates",()=>{let n=ee(e,{scope:t,limit:r.candidateResultLimit,scanLimit:r.candidateScanLimit});return P(n,Tt)})}function yt(e,t,r){return d(e,r,"vue-large-view-pressure",()=>{let n=te(e,{scope:t,limit:r.candidateResultLimit,scanLimit:r.candidateScanLimit});return D(n)})}function bt(e,t,r){return d(e,r,"passthrough-candidates",()=>{let n=re(e,{scope:t,...p.passthroughs,limit:r.candidateResultLimit,scanLimit:r.candidateScanLimit,semantic:r.semantic});return Lt(n,Ft)})}function St(e,t){return d(e,t,"git-evidence",()=>{let r=G(e,{historyMode:t.gitHistoryMode}),n=r.fileChurn();if(!n)return null;let o=r.commitHistory(),i=q(e,void 0,{limit:t.candidateResultLimit,historyMode:t.gitHistoryMode}),a={};for(let[c,m]of n)a[c]={changes:m.changes,fixChanges:m.fixChanges};let s=i.findings.filter(c=>R(c).counted),u=new Map;for(let c of i.findings){let m=R(c);if(m.counted)continue;let A=u.get(m.reason)??{reason:m.reason,detail:m.detail,count:0};A.count+=1,u.set(m.reason,A)}let y=[...s].sort((c,m)=>C(m)-C(c)||m.together-c.together);return{amplification:r.changeAmplification(),hiddenCoupling:{pairCount:s.length,scoreCount:L(s.reduce((c,m)=>c+C(m),0)),exclusions:[...u.values()].sort((c,m)=>c.reason.localeCompare(m.reason)),top:y.slice(0,5).map(c=>({fileA:c.fileA,fileB:c.fileB,together:c.together,confidence:c.confidence,focusedTogether:c.focusedTogether,broadTogether:c.broadTogether,broadCommitRatio:c.broadCommitRatio,lastTogetherAt:c.lastTogetherAt,recentTogether:c.recentTogether,commitScope:c.commitScope,recency:c.recency,scoreWeight:C(c),subjectContext:c.subjectContext}))},fileStats:a,commitsScanned:o?.commits.length??0}})}function Ht(e,t){return d(e,t,"suppressions",()=>{let r=oe(e);return{total:r.total,byCategory:{...r.byCategory}}})}function Et(e,t){return d(e,t,"coverage-contracts",()=>{let r=e.config.coverageContracts??[],o=ce(e,r).filter(i=>i.status!=="ok");return{count:o.length,loc:0,files:[...new Set(o.map(i=>i.file))].sort()}})}function wt(e,t,r){return d(e,r,"drift",()=>{let n=K(e,{scope:t,...p.drift,includePatternDeviations:!1,limit:Number.POSITIVE_INFINITY,semantic:r.semantic}),o=n.results.filter(s=>s.kind!=="pattern-deviation"),i=o.filter(s=>s.actionTier==="direct").length,a=o.length-i;return{count:o.length,unusedImports:n.unusedImports,architectureViolations:n.architectureViolations,layerViolations:n.layerViolations,direct:i,signal:a}})}function xt(e,t){let r=e.symbols>=ot||e.documents>=it,n=t?Number.POSITIVE_INFINITY:x;return!r||t?{candidateScanLimit:void 0,candidateResultLimit:n,semantic:!0,gitHistoryMode:t?"full":"bounded",releaseCachesBetweenPhases:!0,warnings:t&&r?["Large index detected; running health without candidate scan or result caps because full mode is enabled."]:t?[]:[`Candidate result counts are capped at ${x}; history uses a bounded window. Enable full mode for unbounded analysis.`]}:{candidateScanLimit:he,candidateResultLimit:n,semantic:!1,gitHistoryMode:"bounded",releaseCachesBetweenPhases:!0,warnings:[`Large index detected; candidate-style health checks scanned their highest-priority ${he} symbols and reported their top ${x} findings. Enable full mode for unbounded candidate counts.`]}}function Rt(e,t){t.releaseCachesBetweenPhases&&(S(e),H())}function d(e,t,r,n){Dt(r);try{return n()}finally{Rt(e,t)}}function Dt(e){process.env.SCIP_QUERY_HEALTH_TRACE==="1"&&console.error(`[health] ${e}`)}function Pt(e,t){return t.filter(r=>!_(e,r.relativePath)&&!V(e,r.symbol,r.relativePath)&&r.kind==="dead-code")}function D(e){let t=new Set;for(let r of e){let n=r.relativePath??r.file;n&&t.add(n)}return{count:e.length,loc:e.reduce((r,n)=>r+n.loc,0),files:[...t]}}function Lt(e,t){return{...D(e),scoreCount:L(e.reduce((n,o)=>n+t(o),0))}}function At(e){let t=new Map;for(let r of e)t.set(r.file,Math.max(t.get(r.file)??0,r.loc));return{count:t.size,loc:[...t.values()].reduce((r,n)=>r+n,0),files:[...t.keys()]}}function Se(e){let t=new Map;for(let r of e)t.set(r.fileA,Math.max(t.get(r.fileA)??0,r.locA)),t.set(r.fileB,Math.max(t.get(r.fileB)??0,r.locB));return{count:e.length,loc:[...t.values()].reduce((r,n)=>r+n,0),files:[...t.keys()]}}function P(e,t){return{...Se(e),scoreCount:L(e.reduce((n,o)=>n+t(o),0))}}function ge(e){return e.actionTier==="signal"?1:0}function kt(e){return He(e).weight}function He(e){if(e.evidenceClass==="generic-workflow-scaffolding")return{weight:0,reason:"generic-workflow-pairs",detail:"pairs whose shared behavior is only generic React mechanics (open/close/submit state and handlers)"};let t=e.sharedHooks.some(o=>!Bt.has(o)),r=Ee({namedState:e.sharedState,requests:e.sharedRequests,lifecycle:e.sharedEffects,functions:e.sharedHandlers});if(t&&r<=2)return{weight:0,reason:"shared-hook-covered-pairs",detail:"pairs whose concrete shared behavior is already carried by a project hook both sides call"};if(!t&&r===0)return{weight:0,reason:"generic-workflow-pairs",detail:"pairs whose shared behavior is only generic React mechanics (open/close/submit state and handlers)"};let n={reason:"counted",detail:"counted"};return t?{weight:.5,...n}:we(e.sharedState,e.sharedHandlers,e.sharedHandlerVerbs)?{weight:.25,...n}:{weight:r>=2?1:.5,...n}}function v(...e){let t=new Map;for(let r of e)for(let n of r){if(n.count<=0)continue;let o=t.get(n.reason);o?o.count+=n.count:t.set(n.reason,{...n})}return[...t.values()].sort((r,n)=>r.reason.localeCompare(n.reason))}function Tt(e){let t=e.sharedComposables.length+e.sharedStores.length>0,r=Ee({namedState:e.sharedBindings,requests:e.sharedRequests,lifecycle:e.sharedLifecycle,functions:e.sharedFunctions});return t&&r<=2?0:t?.5:we(e.sharedBindings,e.sharedFunctions,e.sharedFunctionVerbs)?.25:r>=2?1:.5}function Ee(e){return e.requests.filter(r=>!$t.has(r)).length*2+e.lifecycle.length+e.namedState.filter(r=>!Re.has(xe(r))).length+Math.min(e.functions.length,3)}var Bt=new Set(["useForm","useFormContext","useInfiniteQuery","useMutation","useParams","usePathname","useQuery","useQueryClient","useRouter","useSearchParams","useSelector","useDispatch","useSuspenseQuery","useTheme","useTranslation"]),$t=new Set(["axios","fetch","gql","graphql","mutate","query","request","useInfiniteQuery","useMutation","useQuery","useSuspenseQuery"]);function we(e,t,r){let n=[...e,...t,...r].map(xe);return n.length>0&&n.every(o=>Re.has(o))}function xe(e){return e.replace(/^handle/,"").replace(/^is/,"").replace(/^has/,"").toLowerCase()}function Ft(e){return e.actionTier==="signal"?.25:1}function C(e){return R(e).counted?e.commitScope==="broad-sweep"?e.recency==="recent"?.25:0:e.commitScope==="mixed"?e.recency==="recent"?.5:.25:e.recency==="recent"?1:.5:0}function R(e){if(e.actionTier==="signal"&&e.partnerClass!=="doc-code"&&e.partnerClass!=="generated-artifact")return{counted:!1,reason:"sweep-only-pairs",detail:"pairs whose shared commits were only broad sweeps, stale pairs with at most two focused co-changes, and configuration or schema partners; listed by co-change at signal tier"};switch(e.partnerClass){case"doc-code":return{counted:!1,reason:"doc-sync-pairs",detail:"documentation that changes alongside the code it describes (doc-drift owns stale docs)"};case"generated-artifact":return{counted:!1,reason:"generated-artifact-pairs",detail:"generated artifacts (migration journals, snapshots, codegen output) rewritten from their source"};default:return{counted:!0,reason:"counted",detail:"counted"}}}function L(e){return Math.round(e*100)/100}var Re=new Set(["add","apply","cancel","change","clear","close","create","delete","draft","edit","error","filter","form","load","loading","name","open","refresh","remove","reset","save","saving","search","select","selected","submit","toggle","update","value"]);export{p as a,at as b,wr as c,ve as d,xr as e,st as f,Rr as g};
3
+ //# sourceMappingURL=chunk-U4LZA5LL.js.map
@@ -0,0 +1,3 @@
1
+ import{a as M,f as B,i as $}from"./chunk-62BDNPMI.js";import{isAbsolute as H,relative as be}from"path";var j=class extends Error{constructor(n,r){super(`refusing unsafe project file path ${JSON.stringify(n)} (${r})`);this.relativePath=n;this.reason=r;this.name="UnsafeProjectPathError"}relativePath;reason;code="SCIP_QUERY_UNSAFE_PROJECT_PATH"};function R(e){return e.replace(/\\/g,"/").replace(/^\.\//,"")}function Gt(e){return e.replace(/\\/g,"/")}function Rt(e,t){return R(e)===R(t)}function P(e,t){let n=be(e,t);return n===""||!n.startsWith("..")&&!H(n)}function wt(e){if(!e)throw new j(e,"empty-path");if(e.includes("\0"))throw new j(e,"nul-byte");if(H(e)||/^[A-Za-z]:/.test(e)||e.startsWith("//")||e.startsWith("\\\\"))throw new j(e,"absolute-path");let t=R(e);if(t.split("/").some(r=>r===".."))throw new j(e,"parent-traversal");if(!t||t===".")throw new j(e,"empty-path");return t}import{spawnSync as Ie}from"child_process";import{createHash as Fe}from"crypto";import{existsSync as Ge,lstatSync as Re,realpathSync as we}from"fs";import{dirname as Ee,isAbsolute as Te,join as De,relative as Mt,resolve as v,sep as Bt}from"path";var z=Symbol.for("scip-query.project-file-listing-context.v1"),q=globalThis,w=q[z],m=w&&typeof w=="object"?w:{};q[z]=m;function Tt(e,t){let n=m.active?m.canonicalProjectRoots:void 0,r=n?.get(e);if(r!==void 0)return r;let i=t();return n?.set(e,i),i}function U(){return m.sequence??0}function Dt(e,t,n){let r=m.active,i=r?.get(e);if(i&&i.pathBytes<=t)return i;let o=ve(n(),(m.sequence??0)+1);if(m.sequence=o.sequence,o.pathBytes>t)throw new RangeError(`Git project file listing exceeded ${t} path bytes.`);return r?.set(e,o),o}function J(e,t){let n=m.active?.get(e);return n&&n.sequence>t?n.indexAllowsTreeFingerprintReuse:void 0}function*_t(e){let t=0;for(;t<e.taggedOutput.length;){let n=e.taggedOutput.indexOf("\0",t);if(n<0)return;yield e.taggedOutput.slice(t+2,n),t=n+1}}function ve(e,t){let n=0,r=0,i=!0;for(;n<e.length;){let o=e.indexOf("\0",n);if(o<0||o<=n+2||e[n+1]!==" ")throw new Error("Git returned a malformed tagged project file listing.");let s=e[n];i&&=s==="H"||s==="?",r+=1,n=o+1}return{taggedOutput:e,pathBytes:Buffer.byteLength(e,"utf8")-r*2,indexAllowsTreeFingerprintReuse:i,sequence:t}}var h={run(e,t){let n=Y(e,t);return n.kind==="success"?n.output:void 0},runResult:Y},_e=["rev-parse","--show-toplevel","--absolute-git-dir","--git-common-dir","HEAD","HEAD^{tree}"],D=["status","--porcelain=v2","--branch","-z","--untracked-files=all"],E=/^[0-9a-f]{40,64}$/;function Ht(e,t=h){return We(e,t)?.context}function We(e,t=h){let n=t.runResult(e,_e);if(n.kind==="success"){let i=Oe(n.output);if(i){let o=Ae(i,t);if(o)return K(o)}}let r=Ne(e,t);return r?K(r):void 0}function zt(e,t=h){if(!e.headCommit)return;let n=t.run(e.projectRoot,D);if(n===void 0)return;let r=_(n);if(!(!r?.headCommit||r.headCommit!==e.headCommit))return{...e,clean:r.clean}}function qt(e,t=h,n={}){let r=t===h&&n.cachedInventoryAfterSequence!==void 0?J(e,n.cachedInventoryAfterSequence):void 0;if(r!==void 0)return r;let i=t.run(e,["ls-files","-v","-z"]);return i===void 0?!1:i.split("\0").filter(Boolean).every(o=>o.startsWith("H "))}function K(e){return{context:e,projectFileInventorySequence:U()}}function _(e){let t=e.split("\0").filter(Boolean),n=t.find(i=>i.startsWith("# branch.oid "))?.slice(13),r=n==="(initial)"?void 0:n;if(!(r!==void 0&&!E.test(r))&&n!==void 0)return{headCommit:r,clean:t.every(i=>i.startsWith("# "))}}function Oe(e){let t=e.split(`
2
+ `).map(a=>a.trim());if(t.length!==5)return;let[n,r,i,o,s]=t;if(!n||!r||!i||!o||!s||!E.test(o)||!E.test(s))return;let u=f(n);return{root:u,gitDir:f(b(u,r)),commonDir:f(b(u,i)),headCommit:o,treeOid:s}}function Ae(e,t){let n=t.run(e.root,D);if(n===void 0)return;let r=_(n);return r?.headCommit!==e.headCommit?void 0:{...V(e.root,e.gitDir),commonDir:e.commonDir,repositoryId:W("repository",e.commonDir),headCommit:e.headCommit,treeOid:e.treeOid,clean:r.clean}}function Ne(e,t){let n=Le(e,t);if(n.kind!=="worktree")return;let r=n.identity,i=r.projectRoot,o=t.run(i,["rev-parse","--git-common-dir"])?.trim();if(!o)return;let s=f(b(i,o)),u=T(t.run(i,["rev-parse","--verify","HEAD"])),a=T(t.run(i,["rev-parse","--verify","HEAD^{tree}"])),l=t.run(i,D);if(l===void 0)return;let p=_(l);if(!(!p||p.headCommit!==u))return{...r,commonDir:s,repositoryId:W("repository",s),headCommit:u,treeOid:a,clean:p.clean}}function Le(e,t=h){let n=t.runResult(e,["rev-parse","--show-toplevel"]);if(n.kind==="not-repository")return{kind:"non-git"};if(n.kind==="error")return n;let r=n.output.trim();if(!r)return{kind:"error",message:"Git returned an empty worktree root."};let i=f(r),o=t.run(i,["rev-parse","--absolute-git-dir"])?.trim();if(!o)return{kind:"error",message:"Git did not return an absolute worktree directory."};let s=f(b(i,o));return{kind:"worktree",identity:V(i,s)}}function V(e,t){return{projectRoot:e,gitDir:t,worktreeId:W("worktree",`${e}\0${t}`)}}function Ut(e,t=h){let n=t.run(e,["worktree","list","--porcelain","-z"]);return n===void 0?[]:Me(n)}function Me(e){let t=[],n;for(let r of e.split("\0")){if(r===""){n&&t.push(n),n=void 0;continue}let{key:i,value:o}=Be(r);if(i==="worktree"){n&&t.push(n),n={path:f(o),detached:!1,bare:!1,prunable:!1,locked:!1};continue}n&&$e(n,i,o)}return n&&t.push(n),t}function Be(e){let t=e.indexOf(" ");return{key:t<0?e:e.slice(0,t),value:t<0?"":e.slice(t+1)}}function $e(e,t,n){t==="HEAD"?e.head=n:t==="branch"?e.branch=n:t==="detached"?e.detached=!0:t==="bare"?e.bare=!0:t==="prunable"?e.prunable=!0:t==="locked"&&(e.locked=!0)}function Jt(e,t,n=h){return T(n.run(e,t))}function b(e,t){return Te(t)?t:v(e,t)}function f(e){try{return we(e)}catch{return v(e)}}function W(e,t){return Fe("sha256").update(`${e}\0${t}`).digest("hex").slice(0,24)}function T(e){return e?.trim()||void 0}function Y(e,t){let n=Ie("git",["-C",e,...t],{encoding:"utf-8",env:{...process.env,LC_ALL:"C"},maxBuffer:52428800,stdio:["ignore","pipe","pipe"],timeout:3e4,killSignal:"SIGKILL"});if(n.status===0)return{kind:"success",output:n.stdout.trimEnd()};let i=(typeof n.stderr=="string"?n.stderr.trim():"")||n.error?.message||`git exited with status ${n.status??"unknown"}`,o=n.error?.code;return(/not a git repository/i.test(i)||o==="ENOENT"&&Ge(v(e)))&&!He(e)?{kind:"not-repository"}:{kind:"error",message:i}}function He(e){if(process.env.GIT_DIR||process.env.GIT_COMMON_DIR)return!0;let t=v(e);for(;;){try{return Re(De(t,".git")),!0}catch(r){let i=r.code;if(i!=="ENOENT"&&i!=="ENOTDIR")return!0}let n=Ee(t);if(n===t)return!1;t=n}}function Yt(e){return`${e}+scip-query-symbols.6`}function ze(e,t,n=[]){let r=O(e);if(ne.has(r)||n.some(o=>I(r,o))||t.some(o=>re(r,o)))return"config";if(t.some(oe)&&/\.d\.(?:ts|mts|cts)$/.test(r.toLowerCase()))return"ambient";let i=ie(r);return t.some(o=>(se[o]??[]).includes(i))?"source":"other"}function Xt(e,t,n){let r=O(e);if(ne.has(r)||n?.some(o=>I(r,o))||re(r,t)||oe(t)&&/\.d\.(?:ts|mts|cts)$/.test(r.toLowerCase()))return!0;let i=ie(r);return(se[t]??[]).includes(i)}function Qt(e){if(typeof e!="object"||e===null)return null;let t=e;return!Qe(t)||t.clojureConfigPath!==void 0&&typeof t.clojureConfigPath!="string"||!Array.isArray(t.files)||!t.files.every(Je)?null:t}function X(e){return{...e,files:e.files.map(({semanticHash:t,...n})=>n)}}function Zt(e,t){return!e||!t?e===t:JSON.stringify(X(e))===JSON.stringify(X(t))}function qe(e,t,n,r){if(!n&&r)return{kind:"added",path:e,inputKind:t,after:r};if(n&&!r)return{kind:"deleted",path:e,inputKind:t,before:n};if(n&&r&&(n.hash!==r.hash||n.size!==r.size))return{kind:"modified",path:e,inputKind:t,before:n,after:r}}function Ue(e,t){let n=e?.files??[],r=new Set;return e||r.add("prior-snapshot-unavailable"),e&&e.version!==t.version&&r.add("snapshot-version-changed"),(Z(n)||Z(t.files))&&r.add("duplicate-input-path"),[...n,...t.files].some(Ke)&&r.add("unreadable-input"),[...r].sort()}function en(e,t){let n=new Map((e?.files??[]).map(u=>[u.path,u])),r=new Map(t.files.map(u=>[u.path,u])),i=new Set([...n.keys(),...r.keys()]),o=[];for(let u of[...i].sort()){let a=n.get(u),l=r.get(u),p=ze(u,t.languages),d=qe(u,p,a,l);d&&o.push(d)}let s=Ue(e,t);return{version:1,changes:o,projectIdentityChanged:e?!Ye(e,t):!0,uncertainty:s}}function Q(e){return Array.isArray(e)&&e.every(t=>typeof t=="string")}function Z(e){return new Set(e.map(t=>t.path)).size!==e.length}function Je(e){if(typeof e!="object"||e===null)return!1;let t=e;return typeof t.path=="string"&&typeof t.size=="number"&&Number.isFinite(t.size)&&typeof t.hash=="string"&&(t.semanticHash===void 0||typeof t.semanticHash=="string")}function Ke(e){return e.hash==="unreadable"||e.size<0}function Ye(e,t){return ee(e.languages,t.languages)&&e.pnpmWorkspaces===t.pnpmWorkspaces&&e.typescriptProjectMode===t.typescriptProjectMode&&ee(e.typescriptProjects,t.typescriptProjects)&&e.clojureConfigPath===t.clojureConfigPath}function ee(e,t){if(e.length!==t.length)return!1;let n=[...e].sort(),r=[...t].sort();return n.every((i,o)=>i===r[o])}var ne=new Set([".scipquery.json"]),Ve={typescript:["tsconfig.json"],javascript:["package.json"],java:["pom.xml","build.gradle"],scala:["build.sbt"],kotlin:["build.gradle.kts"],rust:["Cargo.toml"],python:["pyproject.toml","setup.py"],ruby:["Gemfile"],go:["go.mod"],cpp:["CMakeLists.txt","Makefile"],c:["CMakeLists.txt","Makefile"],csharp:["*.csproj","*.sln"],vb:["*.vbproj","*.sln"],dart:["pubspec.yaml"],php:["composer.json"],clojure:["deps.edn","project.clj","bb.edn","shadow-cljs.edn"]},Xe={typescript:["package.json","package-lock.json","pnpm-lock.yaml","yarn.lock","bun.lock","bun.lockb","tsconfig.*.json","jsconfig.json","jsconfig.*.json"],javascript:["package-lock.json","pnpm-lock.yaml","yarn.lock","bun.lock","bun.lockb","tsconfig.json","tsconfig.*.json","jsconfig.json","jsconfig.*.json"],java:["build.gradle.kts","settings.gradle","settings.gradle.kts","gradle.properties","gradle.lockfile","gradle-wrapper.properties"],scala:["plugins.sbt","build.properties"],kotlin:["pom.xml","build.gradle","settings.gradle","settings.gradle.kts","gradle.properties","gradle.lockfile","gradle-wrapper.properties"],rust:["Cargo.lock","rust-project.json","rust-toolchain","rust-toolchain.toml"],python:["setup.cfg","requirements*.txt","Pipfile","Pipfile.lock","poetry.lock","uv.lock"],ruby:["Gemfile.lock","gems.locked"],go:["go.sum","go.work","go.work.sum"],cpp:["compile_commands.json"],c:["compile_commands.json"],csharp:["Directory.Build.props","Directory.Build.targets","Directory.Packages.props","packages.lock.json","NuGet.Config","global.json"],vb:["Directory.Build.props","Directory.Build.targets","Directory.Packages.props","packages.lock.json","NuGet.Config","global.json"],dart:["pubspec.lock","analysis_options.yaml"],php:["composer.lock"],clojure:[]},te=new Map;function re(e,t){return Ve[t].some(n=>I(e,n))||Xe[t].some(n=>I(e,n))}function I(e,t){let n=O(t).replace(/^\.\//,"");if(!n)return!1;let r=e.split("/").at(-1)??e,i=n.includes("/")?e:r;if(!n.includes("*")&&!n.includes("?"))return i===n;let o=te.get(n);if(!o){let s=n.replace(/[.+^${}()|[\]\\]/g,"\\$&").replace(/\*/g,"[^/]*").replace(/\?/g,"[^/]");o=new RegExp(`^${s}$`),te.set(n,o)}return o.test(i)}function O(e){return e.replaceAll("\\","/").replace(/^\.\//,"")}function ie(e){return e.includes(".")?`.${e.split(".").at(-1).toLowerCase()}`:""}function oe(e){return e==="typescript"||e==="javascript"}var se={typescript:[".ts",".tsx",".mts",".cts"],javascript:[".js",".jsx",".mjs",".cjs",".vue"],java:[".java"],scala:[".scala"],kotlin:[".kt",".kts"],rust:[".rs"],python:[".py",".pyi"],ruby:[".rb"],go:[".go"],cpp:[".cc",".cpp",".cxx",".hpp",".hh",".hxx"],c:[".c",".h"],csharp:[".cs"],vb:[".vb"],dart:[".dart"],php:[".php"],clojure:[".clj",".cljs",".cljc"]};function Qe(e){return!(typeof e.version!="number"||!Q(e.languages)||typeof e.pnpmWorkspaces!="boolean"||typeof e.typescriptProjectMode!="string"||!Q(e.typescriptProjects))}import{readdirSync as Ze}from"fs";function ce(e){try{return Ze(e,{withFileTypes:!0})}catch{return[]}}import{AsyncLocalStorage as et}from"async_hooks";var tt=new et;function A(e,t){let n=F(e);if(!n||n.missing.has(t))return;let r=n.files.get(t);if(r)return r;let i=n.readBaseFile?.(t);return i&&n.files.set(t,i),i}function ae(e,t){let n=F(e);if(n)return n.missing.has(t)?"missing":n.paths.includes(t)?"present":"missing"}function cn(e,t){return F(e)?.fingerprints.get(t)}function x(e){return F(e)?.paths}function F(e){let t=tt.getStore();if(t)return t.projectRoot===f(e)?t:void 0}import{createRequire as nt}from"module";import{existsSync as rt,lstatSync as pe,statSync as it}from"fs";import c from"path";var ot=nt(import.meta.url),de=new Set([".cache",".git",".next",".nuxt",".turbo",".nx","build","coverage","dist","node_modules","tmp","vendor"]),st=18003;function fe(e,t=[]){let n=c.resolve(e),r=t.flatMap(a=>pt(n,a));if(r.length>0)return ue(n,le(r));let i=lt(n),o=le(i),s=dt(n,o)?[n,...o]:o,u=s.length>0?s:[n];return ue(n,u)}function hn(e){return new Set(e.map(t=>t==="."?"tsconfig.json":`${t.replace(/\/$/u,"")}/tsconfig.json`))}function yn(e){let t=e.split("/").at(-1)?.toLowerCase();return t?.startsWith("tsconfig")===!0&&t.endsWith(".json")}var ct=/^\.scipquery-compiler-shard-\d+\.tsconfig\.json$/;function jn(e){return`.scipquery-compiler-shard-${e}.tsconfig.json`}function Sn(e){return ct.test(e)}function Pn(e,t,n=[]){let r;try{r=ot("@ts-morph/common/dist/typescript.js")}catch{return null}let i=c.resolve(e),o=t==="workspace"?fe(i,n):["."],s=new Set;for(let u of o){let a=u==="."?i:c.join(i,u),l=c.join(a,"tsconfig.json"),p=gt(r,i);if(!p.fileExists(l))return null;let d=r.readConfigFile(l,p.readFile);if(d.error)return null;let y=r.parseJsonConfigFileContent(d.config,p,a);if(y.errors.some(g=>g.code!==st))return null;yt(i,y.fileNames,s)}return s}function xn(e,t,n,r){let i=c.resolve(e),o=new Set(r);for(let u of n)if(!at(i,u,o))return!1;let s=t==="workspace"?fe(i,n):["."];for(let u of s)if(!ut(i,u,o))return!1;return!0}function at(e,t,n){let r=c.resolve(e,t);if(!P(e,r))return!0;try{let i=pe(r);if(i.isSymbolicLink()||i.isFile()&&!n.has(S(e,r)))return!1}catch{}return!0}function ut(e,t,n){let r=t==="."?e:c.join(e,t),i=c.join(r,"tsconfig.json");if(!he(e,i))return!0;let o=S(e,i);if(!n.has(o))return!1;try{if(pe(i).isSymbolicLink())return!1;let s=ye(e,i);if(s.includes("extends")||s.includes("\\"))return!1}catch{return!1}return!0}function ue(e,t){return[...new Set(t.map(n=>S(e,n)))].sort((n,r)=>n.localeCompare(r))}function lt(e){let t=x(e);if(t)return t.flatMap(i=>{if(i.split("/").some(s=>de.has(s)))return[];let o=c.join(e,...i.split("/"));return ge(e,o)?[c.dirname(o)]:[]});let n=[],r=[e];for(;r.length>0;){let i=r.pop(),o=ce(i);for(let s of o){let u=c.join(i,s.name);jt(e,u,s,r,n)}}return n}function pt(e,t){let n=t.trim();if(!n)return[];let r=c.resolve(e,n);if(!P(e,r))return[];let i=x(e);if(i)return ht(e,r,i);try{let o=it(r);if(o.isDirectory())return[r];if(o.isFile()&&N(c.basename(r)))return[c.dirname(r)]}catch{return[]}return[]}function ge(e,t){if(!N(c.basename(t)))return!1;let n=me(e,t);return n?c.basename(t)==="tsconfig.json"||"include"in n||"files"in n||"references"in n:!1}function N(e){return e.startsWith("tsconfig")&&e.endsWith(".json")}function le(e){let t=[...new Set(e.map(n=>c.resolve(n)))].sort((n,r)=>n.localeCompare(r));return t.length<=1?t:t.filter(n=>!t.some(r=>r!==n&&mt(n,r)))}function dt(e,t){if(t.length===0||t.some(r=>c.resolve(r)===e))return!1;let n=c.join(e,"tsconfig.json");return he(e,n)&&ft(e,n)}function ft(e,t){let r=me(e,t)?.include;return Array.isArray(r)?r.some(i=>typeof i=="string"&&i.trim()!==""&&!i.startsWith("!")&&(i.includes("/")||i.includes("**")||!c.extname(i))):!1}function me(e,t){try{let n=JSON.parse(ye(e,t));return n&&typeof n=="object"&&!Array.isArray(n)?n:null}catch{return null}}function he(e,t){let n=S(e,t),r=ae(e,n);return r?r==="present":rt(t)}function ye(e,t){let n=S(e,t);if(x(e)){let i=A(e,n);if(!i)throw Object.assign(new Error(`Snapshot file ${n} is missing.`),{code:"ENOENT"});return i.content.toString("utf8")}return $(t,"TypeScript project config")}function gt(e,t){let n=x(t);if(!n)return e.sys;let r=c.resolve(t),i=new Set(n),o=je(r,n),s=e,u=a=>{let l=c.resolve(a);return P(r,l)?S(r,l):null};return{useCaseSensitiveFileNames:e.sys.useCaseSensitiveFileNames,fileExists(a){let l=u(a);return l===null?e.sys.fileExists(a):i.has(l)},readFile(a){let l=u(a);return l===null?e.sys.readFile(a):A(r,l)?.content.toString("utf8")},readDirectory(a,l,p,d,y){let g=c.resolve(a);return P(r,g)?s.matchFiles(g,l,p,d,e.sys.useCaseSensitiveFileNames,r,y,G=>o.get(c.resolve(G))??{files:[],directories:[]},G=>G):e.sys.readDirectory(a,l,p,d,y)}}}function je(e,t,n=c.join){let r=new Map,i=new Map,o=s=>{r.has(s)||r.set(s,new Set),i.has(s)||i.set(s,new Set)};o(e);for(let s of t){let u=s.split("/"),a=e;for(let l=0;l<u.length-1;l+=1){let p=u[l];o(a),i.get(a).add(p),a=n(a,p),o(a)}r.get(a).add(u.at(-1))}return new Map([...r].map(([s,u])=>[s,{files:[...u].sort(),directories:[...i.get(s)??[]].sort()}]))}function kn(e,t,n){let i=new Set(t),o=je("/",t,c.posix.join),s=e;if(typeof s.matchFiles!="function")throw new Error("TypeScript snapshot file matching is unavailable.");let u=a=>c.posix.relative("/",c.posix.resolve("/",a));return{useCaseSensitiveFileNames:!0,fileExists:a=>i.has(u(a)),directoryExists:a=>o.has(c.posix.resolve("/",a)),getDirectories:a=>o.get(c.posix.resolve("/",a))?.directories??[],getCurrentDirectory:()=>"/",realpath:a=>c.posix.resolve("/",a),readFile:a=>{let l=u(a);return i.has(l)?n(l):void 0},readDirectory:(a,l,p,d,y)=>s.matchFiles(c.posix.resolve("/",a),l,p,d,!0,"/",y,g=>o.get(c.posix.resolve("/",g))??{files:[],directories:[]},g=>g)}}function S(e,t){let n=c.relative(e,t);return n?n.split(c.sep).join("/"):"."}function mt(e,t){let n=c.relative(e,t);return!!n&&!n.startsWith("..")&&!c.isAbsolute(n)}function ht(e,t,n){let r=S(e,t);if(n.includes(r)&&N(c.basename(t)))return[c.dirname(t)];let i=r==="."?"":`${r}/`;return n.some(o=>o.startsWith(i))?[t]:[]}function yt(e,t,n){for(let r of t){let i=c.resolve(r);P(e,i)&&n.add(c.relative(e,i).split(c.sep).join("/"))}}function jt(e,t,n,r,i){if(n.isDirectory()){!de.has(n.name)&&!n.name.startsWith(".")&&r.push(t);return}n.isFile()&&ge(e,t)&&i.push(c.dirname(t))}import{createHash as St,randomUUID as Pt}from"crypto";import{readdirSync as xt}from"fs";import{dirname as Pe,extname as kt,join as L,relative as xe,sep as ke}from"path";import{fileURLToPath as Ct}from"url";import{createRequire as bt}from"module";var Se=bt(import.meta.url),C=It(),wn=C.version,En=C.path?Pe(C.path):null,k;function Tn(){if(k!==void 0)return k;try{if(!C.path)throw new Error("Package location unavailable");let e=Pe(C.path),n=xe(e,Ct(import.meta.url)).startsWith(`src${ke}`)?"src":"dist";k=vt(e,n)}catch{k=`unavailable:${Pt()}`}return k}function vt(e,t){let n=St("sha256").update("scip-query-runtime-v2\0"),r=t==="src"?new Set([".ts",".tsx",".js",".jsx",".mjs",".cjs",".json"]):new Set([".js",".mjs",".cjs",".json"]),i=Ce(L(e,t),r);if(i.length===0)throw new Error("Package runtime is empty");for(let o of[L(e,"package.json"),...i]){let s=B(o,{maxBytes:M,inputKind:"Package runtime input"});n.update(xe(e,o).split(ke).join("/")).update("\0"),n.update(String(s.length)).update("\0").update(s)}return n.digest("hex").slice(0,16)}function Ce(e,t){let n=[],r=xt(e,{withFileTypes:!0}).sort((i,o)=>i.name<o.name?-1:i.name>o.name?1:0);for(let i of r){let o=L(e,i.name);if(i.isDirectory())n.push(...Ce(o,t));else if(i.isFile())t.has(kt(i.name))&&n.push(o);else throw new Error(`Unsupported runtime entry: ${o}`)}return n}function It(){for(let e of["../package.json","../../package.json"])try{let t=Se(e);if(t.name==="scip-query"&&typeof t.version=="string")return{version:t.version,path:Se.resolve(e)}}catch{}return{version:"0.0.0"}}export{ze as a,Xt as b,Qt as c,X as d,Zt as e,en as f,Je as g,Ve as h,ce as i,j,R as k,Gt as l,Rt as m,P as n,wt as o,Tt as p,Dt as q,_t as r,h as s,Ht as t,zt as u,qt as v,Le as w,Ut as x,Jt as y,b as z,f as A,A as B,ae as C,cn as D,x as E,fe as F,hn as G,yn as H,jn as I,Sn as J,Pn as K,xn as L,kn as M,Yt as N,wn as O,En as P,Tn as Q};
3
+ //# sourceMappingURL=chunk-U5RIG3JP.js.map
@@ -0,0 +1,2 @@
1
+ import{a as b}from"./chunk-KDDIE2DP.js";import{a as f}from"./chunk-VF5JZICY.js";import{c as u}from"./chunk-E3FDPXZK.js";import{b as h}from"./chunk-GCKCF5FL.js";import{sa as p}from"./chunk-5TNQJUR2.js";function F(t,e){return e==="config-code"||e==="doc-code"||e==="generated-artifact"||e==="schema-script"?{actionTier:"signal",tierReason:`${e} partner: configuration, documentation, schema, and generated files change alongside many sources`}:t.focusedTogether===0?{actionTier:"signal",tierReason:"every shared commit was a broad sweep; no focused change touched both files"}:t.recency==="stale"&&t.focusedTogether<=2?{actionTier:"signal",tierReason:"at most two focused co-changes, none of them recent"}:{actionTier:"direct",tierReason:`${t.focusedTogether} focused co-change(s)`}}function ae(t){return C.test(t)}var C=/(?:^|\/)(?:package-lock\.json|pnpm-lock\.yaml|yarn\.lock|Cargo\.lock|uv\.lock|poetry\.lock|Pipfile\.lock|bun\.lockb?|\.SRCINFO|CHANGELOG(?:\.[a-z]+)?|.*\.(?:map|tsbuildinfo))$|(?:^|\/)(?:dist|build|out|node_modules|docs\/plans)\//i;function ce(t,e,n={}){let{minTogether:s=4,minConfidence:o=.6,limit:r=30,maxFilesPerCommit:i=20}=n,a=b(t,{historyMode:n.historyMode,...n.head?{head:n.head}:{}}),c=a.commitHistory(),g=e!==void 0,l=a.coChangePairs({minTogether:g?Math.min(s,2):s,minConfidence:g?0:o,maxFilesPerCommit:i});if(!c||!l)return{available:!1,commitsAnalyzed:0,findings:[]};if(r===0)return{available:!0,commitsAnalyzed:c.commits.length,findings:[]};let d=e===void 0?l:l.filter(m=>m.fileA.includes(e)||m.fileB.includes(e)),A=typeof n.scanLimit=="number"?d.slice(0,n.scanLimit):d,R=h(t),k=x(t),E=O(t,R,k),v=n.includeLinked===!0||g,j=L(t,A,g,v,E,r);return{available:!0,commitsAnalyzed:c.commits.length,findings:j}}function L(t,e,n,s,o,r){let i=[];for(let a of e){let c=w(t,a,n,s,o);if(c&&(i.push(c),i.length>=r))break}return i}function w(t,e,n,s,o){if(!$(t,e)||!n&&_(e.fileA,e.fileB))return null;let r=o(e.fileA,e.fileB);if(!s&&r)return null;let i=I(e.fileA,e.fileB),a=D(e,i,r);return{...e,structurallyLinked:r,partnerClass:i.partnerClass,partnerClassReasons:i.reasons,...F(e,i.partnerClass),...a?{declaredCouplingSuggestion:a}:{}}}function $(t,e){return!(C.test(e.fileA)||C.test(e.fileB)||!y(t,e.fileA)||!y(t,e.fileB))}function _(t,e){return!!(u(t)==="test"||u(e)==="test"||H(t,e)||M(t,e))}function y(t,e){return p(t.config.projectRoot,e)}function I(t,e){let n=P(t),s=P(e),o=[],r=a=>{o.includes(a)||o.push(a)},i=(a,c)=>n.tags.has(a)&&s.tags.has(c)||n.tags.has(c)&&s.tags.has(a);return n.tags.has("generated")||s.tags.has("generated")?(r("one side is a generated artifact (migration journal, snapshot, or codegen output) that a tool rewrites whenever its source changes"),{partnerClass:"generated-artifact",reasons:o}):i("doc","code")?(r("one side is documentation and the other is executable source"),{partnerClass:"doc-code",reasons:o}):n.tags.has("test")||s.tags.has("test")?(r("one side is classified as a test file"),{partnerClass:"test-code",reasons:o}):i("schema","script")?(r("schema or contract file changes with a script or generated-code path"),{partnerClass:"schema-script",reasons:o}):i("model","view")?(r("model or state path changes with a view or component path"),{partnerClass:"model-view",reasons:o}):i("config","code")?(r("configuration file changes with executable source"),{partnerClass:"config-code",reasons:o}):N(t,e,n,s,o,r)}function N(t,e,n,s,o,r){let i=Y(n.tokens,s.tokens).filter(a=>!Q.has(a));return T(t,e)||i.length>=2?(r(T(t,e)?"both files live in the same directory":`files share feature tokens: ${i.slice(0,4).join(", ")}`),{partnerClass:"same-feature",reasons:o}):(r("no specific relationship pattern matched"),{partnerClass:"unknown",reasons:o})}function D(t,e,n){if(n||t.together<4||t.confidence<.75||t.commitScope==="broad-sweep"||t.recency==="stale"||!V.has(e.partnerClass))return;let s=[t.fileA,t.fileB].sort();return{name:`co-change ${e.partnerClass}: ${ee(s)}`,files:s,reason:`${e.partnerClass} pair changed together ${t.together}x with ${Math.round(t.confidence*100)}% confidence; declare it if future edits should require both sides.`}}function O(t,e=h(t),n=x(t)){return(s,o)=>q(e,n,s,o)}var G=/(?:^|\/)(?:locales|i18n)\//i;function S(t){return G.test(t)}function M(t,e){return S(t)&&S(e)?!0:B(t,e)}function B(t,e){if(!t.endsWith(".json")||!e.endsWith(".json"))return!1;let n=t.lastIndexOf("/"),s=e.lastIndexOf("/");if(n<0||s<0)return!1;let o=t.slice(0,n),r=e.slice(0,s);if(o===r)return!1;let i=t.slice(n+1),a=e.slice(s+1);if(i!==a)return!1;let c=o.lastIndexOf("/"),g=r.lastIndexOf("/"),l=c>=0?o.slice(0,c):"",d=g>=0?r.slice(0,g):"";return l===d}function H(t,e){let n=t.lastIndexOf("/"),s=e.lastIndexOf("/");if(t.slice(0,n)!==e.slice(0,s))return!1;let o=t.slice(n+1).split(".")[0],r=e.slice(s+1).split(".")[0];return o!==""&&o===r}function x(t){return(t.config.declaredCouplings??[]).filter(e=>Array.isArray(e.files)&&e.files.length>=2).map(e=>new Set(e.files))}function q(t,e,n,s){return t.get(n)?.has(s)===!0||t.get(s)?.has(n)===!0?!0:e.some(o=>o.has(n)&&o.has(s))}var z=/(?:^|\/)(?:readme|docs?|guides?|adr|architecture|design)(?:\/|$)|\.(?:md|mdx|rst|adoc|txt)$/i,W=/(?:^|\/)(?:\.[a-z0-9-]+rc|config|configs|settings|\.github)(?:\/|$)|(?:^|\/)(?:package\.json|tsconfig(?:\.[^.]+)?\.json|vite\.config\.[cm]?[jt]s|rollup\.config\.[cm]?[jt]s|eslint\.config\.[cm]?[jt]s)$|\.(?:json|ya?ml|toml|ini|env)$/i,Z=/(?:^|\/)(?:schemas?|contracts?|migrations?|models?|types?)(?:\/|$)|(?:^|\/)[^/]*(?:schema|contract|migration|model|types?)[^/]*|(?:\.schema)?\.(?:graphql|gql|proto|prisma)$/i,J=/(?:^|\/)(?:scripts?|bin|tools?|tasks?|generators?|codegen|migrations?|seeds?)(?:\/|$)|(?:^|\/)(?![^/]*\.script\.[cm]?[jt]sx?$)[^/]*(?:generate|codegen|migrate|seed|script)[^/]*\.[cm]?[jt]s$/i,K=/(?:^|\/)(?:models?|entities|domain|state|stores?|reducers?)(?:\/|$)|(?:^|\/)[^/]*(?:model|entity|state|store|reducer|viewmodel)[^/]*\.[^.]+$/i,U=/(?:^|\/)(?:views?|pages?|components?|screens?|routes?|templates?)(?:\/|$)|(?:^|\/)[^/]*(?:view|page|component|screen|template)[^/]*\.[^.]+$|\.(?:vue|svelte|tsx|jsx)$/i,V=new Set(["doc-code","config-code","schema-script","model-view","test-code"]),Q=new Set(["src","lib","app","apps","packages","frontend","backend","examples","python","typescript","javascript","test","tests","spec","index","main","utils","util","types","type","config","docs","doc","package","requirements","ts","tsx","js","jsx","mjs","cjs","vue","py","md","mdx","json","yaml","yml","toml","txt"]);function P(t){let e=t.replace(/\\/g,"/"),n=new Set;return f(e)&&n.add("generated"),te(e,n),u(e)==="test"&&n.add("test"),!n.has("doc")&&!n.has("config")&&n.add("code"),{tags:n,tokens:X(e)}}function T(t,e){let n=t.lastIndexOf("/"),s=e.lastIndexOf("/"),o=n>=0?t.slice(0,n):"",r=s>=0?e.slice(0,s):"";return o!==""&&o===r}function X(t){return t.replace(/([a-z0-9])([A-Z])/g,"$1 $2").split(/[^A-Za-z0-9]+/).map(e=>e.toLowerCase()).filter(e=>e.length>=2)}function Y(t,e){let n=new Set(e);return[...new Set(t.filter(s=>n.has(s)))].sort()}function ee(t){return t.map(e=>e.split("/").pop()?.replace(/\.[^.]+$/,"")||e).join(" + ")}function te(t,e){z.test(t)&&e.add("doc"),W.test(t)&&e.add("config"),Z.test(t)&&e.add("schema"),J.test(t)&&e.add("script"),K.test(t)&&e.add("model"),U.test(t)&&e.add("view")}export{F as a,ae as b,ce as c,I as d,D as e,O as f};
2
+ //# sourceMappingURL=chunk-UP5KXN2I.js.map
@@ -0,0 +1,5 @@
1
+ import{a as $}from"./chunk-QOKYJ33H.js";import{a as w}from"./chunk-KDDIE2DP.js";import{a as z}from"./chunk-SV2LEFVM.js";import{e as B,f as I,g as H,i as K}from"./chunk-D3FDISIC.js";import{a as S}from"./chunk-A2IIGFMJ.js";import{d as P,q as O,t as F}from"./chunk-GVWX5T43.js";import{ma as _,qa as N,sa as b}from"./chunk-5TNQJUR2.js";function M(n,t){let e=Y(n,t)??nt(n,t)??et(n,t)??rt(n,t);return ot(n,e,t)}function Y(n,t){let e=-1,i=null;for(let r=0;r<=t;r+=1){let o=k(n[r]??"");o&&(i===null?(i=o,e=r):o===i&&(i=null,e=-1))}return i===null||e<0?null:{start:e,end:tt(n,t,i)}}function tt(n,t,e){for(let i=t+1;i<n.length;i+=1)if(k(n[i]??"")===e)return i+1;return n.length}function k(n){let t=n.match(/^\s*(```+|~~~+)/);return t?t[1].startsWith("`")?"`":"~":null}function nt(n,t){if(!T(n[t]??""))return null;let e=t;for(;e>0&&T(n[e-1]??"");)e-=1;let i=t+1;for(;i<n.length&&T(n[i]??"");)i+=1;return{start:e,end:i}}function T(n){let t=n.trim();return t.startsWith("|")&&t.endsWith("|")&&t.includes("|")}function et(n,t){let e=t;for(;e>=0;){let r=n[e]??"";if(v(r)!==null)break;if(j(r)!==null)return null;e-=1}if(e<0)return null;let i=v(n[e]??"");return i===null?null:{start:e,end:it(n,e,i)}}function it(n,t,e){let i=t+1;for(;i<n.length;){let r=n[i]??"",o=v(r);if(o!==null){if(o<=e)break;i+=1;continue}if(j(r)!==null)break;i+=1}return i}function v(n){let t=n.match(/^(\s*)(?:[-*+]\s+|\d+[.)]\s+)/);return t?t[1].length:null}function rt(n,t){let e=n[t]??"";if(U(e)||e.trim().length===0)return{start:t,end:t+1};let i=t;for(;i>0&&X(n[i-1]??"");)i-=1;let r=t+1;for(;r<n.length&&X(n[r]??"");)r+=1;return{start:i,end:r}}function X(n){return j(n)===null}function j(n){return n.trim().length===0?"blank":U(n)?"heading":k(n)?"fence":T(n)?"table":v(n)!==null?"list":null}function U(n){return/^#{1,6}\s+/.test(n.trim())}function ot(n,t,e){let{start:i,end:r}=t;if(r-i>40){let s=Math.floor(20);i=Math.max(i,e-s),r=Math.min(r,i+40),i=Math.max(t.start,r-40)}let o=n.slice(i,r).join(`
2
+ `).trim();return o.length<=2e3?o:`${o.slice(0,2e3).trimEnd()}...`}function R(n,t){return t.filter(e=>n.includes(e))}var st=/<!--\s*scip-query:\s*snapshot\s*-->/i;function G(n,t){if((n.config.docs?.snapshotPaths??[]).some(r=>z(r,t)))return!0;let i=S(n,t);return i.length>0&&st.test(i)}var q={classifyCitation:at,citationContexts:lt,citationKindLabel:dt,citationRemediation:ft,referenceTargets:gt,hasLineAnchoredCitation:ct};function ct(n){return n.some(t=>(t.lineReferences?.length??0)>0)}function at(n){let t=n.join(`
3
+ `).toLowerCase(),e=[],i=R(t,[".scipquery","declaredcouplings","suppression","suppressions","config","configuration","json"]);if(i.length>0)return e.push(`configuration/example terms near citation: ${i.join(", ")}`),{citationKind:"configuration-example",actionTier:"support",reasons:e};let r=R(t,["accepted","intentional","intentionally","retained","historical"]);if(r.length>0)return e.push(`intentional-record terms near citation: ${r.join(", ")}`),{citationKind:"intentional-record",actionTier:"support",reasons:e};let o=R(t,["command","cli","usage","example","run","workflow"]);return o.length>0?(e.push(`guide/reference terms near citation: ${o.join(", ")}`),{citationKind:"guide-reference",actionTier:"signal",reasons:e}):(e.push(n.length>0?"citation appears in prose without config or guide markers":"citation context unavailable"),{citationKind:"behavioral-claim",actionTier:"direct",reasons:e})}function lt(n,t,e){let i=S(n,t);if(!i&&!b(n.config.projectRoot,t))return[];let r=i.split(/\r?\n/),o=e.flatMap(ut),s=[];for(let c=0;c<r.length;c+=1){let l=r[c]??"";o.some(a=>l.includes(a))&&s.push(M(r,c))}return s}function ut(n){let t=n.split("/");return[n,`./${n}`,t.slice(-3).join("/"),t.slice(-2).join("/")].filter((e,i,r)=>e.length>0&&r.indexOf(e)===i)}function dt(n){switch(n){case"behavioral-claim":return"a behavioral doc claim";case"configuration-example":return"a configuration example";case"guide-reference":return"a guide reference";case"intentional-record":return"an intentional record"}}function ft(n,t){switch(n){case"behavioral-claim":return`Re-read ${t} and update the behavioral claim or citation.`;case"configuration-example":return`Verify the configuration example in ${t} still points at the intended file; update only if the example target changed.`;case"guide-reference":return`Verify the guide reference in ${t} still sends readers to the right implementation or command surface.`;case"intentional-record":return`Verify the intentional citation in ${t} is still meant to name this file.`}}function gt(n,t,e){let i=$(e),r=new Set;for(let o of t)pt(n,o,i.get(o)??[])&&r.add(o);return r}function pt(n,t,e){if(!mt.test(t)||!b(n.config.projectRoot,t))return!0;if(e.length===0)return!1;let i=N(n.config.projectRoot,t,{inputKind:"changed source file"}).split(/\r?\n/),r=ht(i);for(let o of e)for(let s=o.startLine;s<=o.endLine;s+=1)if((i[s]??"").trim()!==""&&!r.has(s))return!0;return!1}var mt=/\.(?:[cm]?[jt]sx?)$/i;function ht(n){let t=new Set,e=!1;for(let i=0;i<n.length;i+=1){let r=n[i].trim();!e&&yt(r)&&(e=!0),e&&(t.add(i),r.endsWith(";")&&(e=!1))}return t}function yt(n){return/^import(?:\s|$)/.test(n)||/^export(?:\s+type)?\s+(?:\*|\{)/.test(n)}var V=H({kind:"doc-path-evidence",invalidation:K("doc-path-evidence"),serialize:Pt,deserialize:Bt}),x=/\.(?:md|mdx|rst|txt)$/i;function Dt(n){return/(?:^|\/)(?:docs\/plans|plans|adrs?|rfcs?|decisions|changelogs?|archive|reports?)\//i.test(n)||/(?:^|\/)CHANGELOG\.(?:md|mdx|rst|txt)$/i.test(n)}var bt=3,Ct=/([A-Za-z0-9_@-]+(?:\/[A-Za-z0-9_.@-]+)+\.[A-Za-z0-9]{1,6})(?::([1-9][0-9]*))?\b/g;function ln(n,t={}){let{doc:e,limit:i=20,minCoupling:r=bt,includeSnapshotExcluded:o=!1}=t,s=Mt(n,t.historyMode??"bounded");if(!s)return{available:!1,commitsAnalyzed:0,docsScanned:0,findings:[]};let c=[],l=0;for(let a of s.docFiles){let f=St(n,a,e,o);if(f===null)continue;l+=1;let p=Rt(n,s,a,f,r);p&&c.push(p)}return c.sort((a,f)=>f.staleness-a.staleness),{available:!0,commitsAnalyzed:s.historyCommitCount,docsScanned:l,findings:c.slice(0,i)}}function St(n,t,e,i){if(e!==void 0&&!t.includes(e)||e===void 0&&!W(n,t)||e!==void 0&&!b(n.config.projectRoot,t))return null;let r=G(n,t);return r&&!i?null:r}function Rt(n,t,e,i,r){let{value:o,estimated:s}=xt(n,e,t.changeTimes.get(e)),c=Tt(n,e),l=new Map,{resolved:a,broken:f,citations:p}=jt(n,e,t.tracked,t.trackedBySuffix,t.everSeenInHistory),g=new Map(p.map(u=>[u.file,u])),y=()=>{for(let u of a){if(u===e||x.test(u))continue;let h=(t.changeTimes.get(u)??[]).filter(C=>C>o).length;if(h===0)continue;let D=g.get(u);l.set(u,{file:u,evidence:"reference",coChanges:0,changesSinceDocUpdate:h,...L("reference",c,D?.contexts),citationContexts:D?.contexts,citedLines:D?.lineReferences})}},d=()=>{for(let[u,h]of t.coupling.get(e)??[]){if(h<r||!t.tracked.has(u))continue;let D=(t.changeTimes.get(u)??[]).filter(Q=>Q>o).length;if(D===0)continue;let C=l.get(u);C?(C.evidence="both",C.coChanges=h,Object.assign(C,L("both",c,C.citationContexts))):l.set(u,{file:u,evidence:"co-change",coChanges:h,changesSinceDocUpdate:D,...L("co-change",c)})}};if(y(),d(),l.size===0&&f.length===0)return null;let m=[...l.values()].sort((u,h)=>h.changesSinceDocUpdate-u.changesSinceDocUpdate);return{doc:e,docLastChangedAt:o,staleness:m.reduce((u,h)=>u+h.changesSinceDocUpdate,0)+f.length*10,subjects:m,brokenReferences:f,...i?{snapshotExcluded:!0}:{},...s?{docLastChangedAtEstimated:!0}:{}}}function xt(n,t,e){if(e&&e.length>0)return{value:Math.max(...e),estimated:!1};try{return{value:Math.floor(_(n.config.projectRoot,t).mtimeMs/1e3),estimated:!0}}catch(i){if(b(n.config.projectRoot,t))throw i;return{value:0,estimated:!1}}}function Tt(n,t){let e=S(n,t).slice(0,6e3);if(!e)return{docIntent:"unknown",reasons:["doc text unavailable"]};let i=`${t}
4
+ ${e}`.toLowerCase(),r=R(i,["historical note","historical record","history note","retrospective","postmortem","post-mortem","archived","archive","previously","legacy","recorded","record of","snapshot","as of","migration note","decision record"]);if(r.length>0)return{docIntent:"historical-note",reasons:[`historical-note terms: ${r.join(", ")}`]};let o=R(i,["current","standard","standards","must","should","policy","guide","guidance","workflow","contract","invariant","source of truth"]);return o.length>0?{docIntent:"current-guidance",reasons:[`current-guidance terms: ${o.join(", ")}`]}:{docIntent:"unknown",reasons:["no current-guidance or historical-note markers found"]}}function L(n,t,e=[]){let i=n==="co-change"||e.length===0?null:q.classifyCitation(e);return{actionTier:vt(n,t.docIntent,i?.actionTier),docIntent:t.docIntent,docIntentReasons:t.reasons,...i?{citationKind:i.citationKind,citationKindReasons:i.reasons}:{}}}function vt(n,t,e){return t==="historical-note"?"support":e||(n==="co-change"?"signal":"direct")}function Mt(n,t){let e=w(n,{historyMode:t}),i=e.commitHistory();if(!i)return null;let r=e.trackedFiles();if(!r)return null;let o=new Map,s=new Map,c=new Set;for(let l of i.commits){let a=[...new Set(l.files)],f=a.filter(g=>x.test(g)),p=a.filter(g=>!x.test(g));for(let g of a){c.add(g);let y=o.get(g)??[];y.push(l.timestamp),o.set(g,y)}for(let g of f){let y=s.get(g);y||(y=new Map,s.set(g,y));for(let d of p)y.set(d,(y.get(d)??0)+1)}}return{changeTimes:o,coupling:s,docFiles:[...r].filter(l=>x.test(l)),everSeenInHistory:c,historyCommitCount:i.commits.length,tracked:r,trackedBySuffix:Z(r)}}function un(n,t){if(t.size===0)return[];let e=O(),i={trackedCount:0,livingDocs:0,unreadableDocs:0,candidateMisses:0,evidenceDocs:0,citedDocs:0};return F("doc-reference.docs-citing-files",()=>{let r=w(n).trackedFiles()??new Set;i.trackedCount=r.size;let o=Z(r),s=wt(t,o),c=[];for(let l of r){let a=At(n,l,t,s,r,o,e,i);a&&c.push(a)}return c},()=>({targets:t.size,trackedFiles:i.trackedCount,livingDocs:i.livingDocs,unreadableDocs:i.unreadableDocs,candidateMisses:i.candidateMisses,evidenceDocs:i.evidenceDocs,citedDocs:i.citedDocs}))}function At(n,t,e,i,r,o,s,c){let l=Et(n,t,i,s,c);if(!l)return null;let a=kt(l.candidates,e,i,r,o);return a.size===0?null:It(t,a,l,s,c)}function Et(n,t,e,i,r){if(!W(n,t))return null;i&&(r.livingDocs+=1);let o=S(n,t);if(!o&&!b(n.config.projectRoot,t))return i&&(r.unreadableDocs+=1),null;if(!_t(o,e))return i&&(r.candidateMisses+=1),null;let s=J(n,t,o);return s?(i&&(r.evidenceDocs+=1),s):null}function It(n,t,e,i,r){let o=[...new Set([...t.values()].flatMap(a=>[...a]))],s=Lt(e.contextsByCandidate,o),c=[...t].map(([a,f])=>({file:a,contexts:A([...f].flatMap(p=>s.get(p)??[])).slice(0,3),lineReferences:E([...f].flatMap(p=>e.lineReferencesByCandidate.get(p)??[]))})).filter(a=>a.contexts.length>0),l=[...t.keys()];if(l.length>0){i&&(r.citedDocs+=1);let a=l.sort();return{doc:n,cited:a,citations:c,citedClaims:A(c.flatMap(f=>f.contexts)).slice(0,3)}}return null}function W(n,t){return x.test(t)&&!Dt(t)&&b(n.config.projectRoot,t)}function Z(n){let t=new Map;for(let e of n){let i=e.split("/");for(let r of[2,3]){if(i.length<r)continue;let o=i.slice(-r).join("/"),s=t.get(o)??[];s.push(e),t.set(o,s)}}return t}function wt(n,t){let e=new Set(n);for(let i of n){let r=i.split("/");for(let o of[2,3]){if(r.length<o)continue;let s=r.slice(-o).join("/"),c=t.get(s);c?.length===1&&c[0]===i&&e.add(s)}}return e}function kt(n,t,e,i,r){let o=new Map;for(let s of n){if(!e.has(s))continue;let c;if(t.has(s))c=s;else if(i.has(s))c=s;else{let a=r.get(s);a?.length===1&&(c=a[0])}if(!c||!t.has(c))continue;let l=o.get(c)??new Set;l.add(s),o.set(c,l)}return o}function jt(n,t,e,i,r){let o=new Set,s=new Set,c=J(n,t);if(!c)return{resolved:o,broken:[],citations:[]};let l=c.candidates,a=c.contextsByCandidate,f=c.lineReferencesByCandidate,p=new Map,g=new Map,y=(d,m)=>{let u=a.get(m);if(u&&u.length>0){let D=p.get(d)??[];D.push(...u),p.set(d,A(D).slice(0,3))}let h=f.get(m);h&&h.length>0&&g.set(d,E([...g.get(d)??[],...h]))};for(let d of l){if(e.has(d)){o.add(d),y(d,d);continue}let m=i.get(d);if(m&&m.length===1){o.add(m[0]),y(m[0],d);continue}m&&m.length>1||r.has(d)&&s.add(d)}return{resolved:o,broken:[...s],citations:[...p].map(([d,m])=>({file:d,contexts:m,lineReferences:g.get(d)}))}}function Lt(n,t){let e=new Map;for(let i of t){let r=n.get(i);r&&r.length>0&&e.set(i,[...r])}return e}function J(n,t,e){let i=e;if(i===void 0&&(i=S(n,t),!i&&!b(n.config.projectRoot,t)))return null;let r=P(n,t,i),o=V.read(n,t,r);if(o)return o;let s=Nt(i);return V.write(n,t,r,s),s}function _t(n,t){for(let e of t)if(n.includes(e))return!0;return!1}function Nt(n){let t=n.split(/\r?\n/),e=new Set,i=new Map,r=new Map;for(let o=0;o<t.length;o+=1){let s=t[o]??"";Kt(t,o,s,e,i,r)}return{candidates:[...e],contextsByCandidate:i,lineReferencesByCandidate:r}}function Pt(n){let t={candidates:n.candidates,contextsByCandidate:[...n.contextsByCandidate.entries()],lineReferencesByCandidate:[...n.lineReferencesByCandidate.entries()]};return JSON.stringify(t)}function Bt(n){try{let t=JSON.parse(n);if(!B(t))return null;let e=I(t.candidates),i=Ft(t.contextsByCandidate),r=Ot(t.lineReferencesByCandidate);return!e||!i?null:{candidates:e,contextsByCandidate:new Map(i),lineReferencesByCandidate:new Map(r??[])}}catch{return null}}function Ot(n){if(n===void 0)return[];if(!Array.isArray(n))return null;let t=[];for(let e of n){if(!Array.isArray(e)||e.length!==2||typeof e[0]!="string"||!Array.isArray(e[1]))return null;let i=zt(e[1]);if(!i)return null;t.push([e[0],E(i)])}return t}function Ft(n){if(!Array.isArray(n))return null;let t=[];for(let e of n){if(!Array.isArray(e)||e.length!==2||typeof e[0]!="string")return null;let i=I(e[1]);if(!i)return null;t.push([e[0],i])}return t}function A(n){let t=[];for(let e of new Set(n))t.some(i=>Ht(i,e))||t.push(e);return t}function E(n){return[...new Set(n)].sort((t,e)=>t-e)}function Ht(n,t){if(n===t)return!0;let e=n.split(/\r?\n/).map(c=>c.trim()).filter(c=>c.length>0),i=t.split(/\r?\n/).map(c=>c.trim()).filter(c=>c.length>0),r=Math.min(e.length,i.length);if(r===0)return!1;if(r<3)return n.includes(t)||t.includes(n);let o=new Set(i),s=e.filter(c=>o.has(c)).length;return s>=3&&s/r>=.6}function Kt(n,t,e,i,r,o){for(let s of e.matchAll(Ct)){let c=(s[1]??"").replace(/^\.?\//,"");if(c.length===0)continue;i.add(c);let l=s[2]?Number(s[2]):null;l!==null&&Number.isSafeInteger(l)&&o.set(c,E([...o.get(c)??[],l]));let a=M(n,t);if(a.length===0)continue;let f=r.get(c)??[];f.push(a),r.set(c,A(f).slice(0,3))}}function zt(n){let t=[];for(let e of n){if(typeof e!="number"||!Number.isSafeInteger(e))return null;t.push(e)}return t}export{Dt as a,ln as b,un as c};
5
+ //# sourceMappingURL=chunk-UQFR3NDH.js.map
@@ -0,0 +1,2 @@
1
+ import{a as ne,b as w,e as G,f as D,g as k,h as te,i as re}from"./chunk-NOLZOVCU.js";import{g as j}from"./chunk-D254DNNQ.js";import{b as B}from"./chunk-BOJ5SVE2.js";import{b as M}from"./chunk-6LSEIIF7.js";import{a as ie}from"./chunk-36SGVCGX.js";import{y as ee}from"./chunk-4WTUBQ36.js";import{b as Q}from"./chunk-FMRN2TRL.js";import{d as v,e as _,j as E}from"./chunk-5D2LVK7O.js";import{a as X}from"./chunk-FVULPZDF.js";import{g as Y,i as J}from"./chunk-D3FDISIC.js";import{a as $,g as A}from"./chunk-A2IIGFMJ.js";import{d as Z,q as I,t as y}from"./chunk-GVWX5T43.js";import{a as W}from"./chunk-T6DK3ZP7.js";import{Da as R}from"./chunk-5TNQJUR2.js";function ke(e,i,n={}){let{minSimilarity:t=.4,limit:r=20}=n,s=qe(e,i,{semantic:n.semantic!==!1});if(!s)return[];if(!E(s.symbol))return[];if(s.callees.size===0)return se(e,i,{minSimilarity:t,limit:r,scanLimit:n.scanLimit,candidateMode:n.sourceCandidateMode??"full"});let a=Le(e,s,t,{scanLimit:n.scanLimit,semantic:n.semantic!==!1});return a.length>0?a.slice(0,r):se(e,i,{minSimilarity:t,limit:r,scanLimit:n.scanLimit,candidateMode:n.sourceCandidateMode??"full"})}function zi(e,i,n,t={}){let r=q(e,i),s=q(e,n);if(!r||!s)return null;let a=ke(e,r.symbol,{minSimilarity:0,limit:Number.POSITIVE_INFINITY,semantic:t.semantic,scanLimit:t.scanLimit}).find(u=>u.symbolB===s.symbol||u.symbolA===s.symbol);if(!a)return null;let l=r.endLine-r.startLine+1,o=s.endLine-s.startLine+1;return{symbolA:{symbol:r.symbol,shortName:v(r.symbol),file:r.relativePath,loc:l},symbolB:{symbol:s.symbol,shortName:v(s.symbol),file:s.relativePath,loc:o},similarity:a.similarity,similarityBasis:a.similarityBasis??"callees",sharedEvidence:a.sharedCallees,uniqueToA:a.uniqueToA,uniqueToB:a.uniqueToB,evidenceClass:a.evidenceClass,actionTier:a.actionTier,recommendation:a.recommendation,consolidationStrategy:Te(a)}}function Te(e){let i=e.similarityBasis==="source-tokens"?"source-token":"tracked callee";return e.sharedCallees.length===0?`No shared ${i} evidence survived similar's weighting. Inspect the source before attempting consolidation.`:e.uniqueToA.length===0&&e.uniqueToB.length===0?`The functions have identical ${i} evidence under similar's weighting. Verify signatures, guards, and return values before consolidating.`:e.uniqueToA.length===0?`A's ${i} evidence is a subset of B's. B may subsume part of A's structure, but verify signatures, guards, and non-call logic first.`:e.uniqueToB.length===0?`B's ${i} evidence is a subset of A's. A may subsume part of B's structure, but verify signatures, guards, and non-call logic first.`:e.uniqueToA.length<=2&&e.uniqueToB.length<=2?`Inspect whether control flow and effects permit a shared helper around the ${e.sharedCallees.length} shared ${i}(s). Check whether the ${e.uniqueToA.length+e.uniqueToB.length} divergent point(s) can be parameters or callbacks.`:`Inspect whether control flow and effects permit extracting the ${e.sharedCallees.length} shared ${i}(s) into a common helper. Keep each function's unique logic outside that helper (${e.uniqueToA.length} item(s) in A, ${e.uniqueToB.length} in B).`}function Le(e,i,n,t){let r=z(e).calleeIndex({minCallees:3,scanLimit:t.scanLimit,semantic:t.semantic}),s=Ge(i,r.corpus),a=$e(s,r),l=Re(s,r),o=D(l),u=k(s.callees,l),f=[];for(let g of a){if(g.callees.size<3)continue;let c=k(g.callees,l),m=ce(s,g,l,{minSimilarity:n,requireSignificantShared:1,requireSharedCount:0,medianIdf:o,magnitudeA:u,magnitudeB:c});m&&f.push(m)}return f.sort((g,c)=>c.similarity-g.similarity),f}function Re(e,i){let n=new Map(i.docFreq);for(let t of e.callees)n.set(t,(n.get(t)??0)+1);return G(n,i.corpus.length+1)}function ce(e,i,n,t){let r=we(e,i,n,t);if(!Ae(r,t))return null;let{similarity:s,significantShared:a,trivialShared:l}=r,o=a.length>0?a:l,u=Xe(Se(o,"callees"),{similarity:s,sharedCount:o.length,sameFile:e.file===i.file});return{symbolA:e.symbol,shortNameA:v(e.symbol),fileA:e.file,symbolB:i.symbol,shortNameB:v(i.symbol),fileB:i.file,similarity:s,similarityBasis:"callees",sharedCallees:o.map(v),uniqueToA:[...w(e.callees,i.callees)].map(v),uniqueToB:[...w(i.callees,e.callees)].map(v),...u}}function Me(e,i,n,t){let r=t.magnitudeA??k(e.callees,n),s=t.magnitudeB??k(i.callees,n),a=t.medianIdf??D(n),{dotProduct:l,significantShared:o,sharedCount:u}=hi(e,i,n,a);if(u===0)return!1;let f=r*s;return(f>0?l/f:0)<t.minSimilarity?!1:o>=t.requireSignificantShared||u>=t.requireSharedCount}function we(e,i,n,t){return t.magnitudeA===void 0||t.magnitudeB===void 0?te(e.callees,i.callees,n,{medianIdf:t.medianIdf}):re(e.callees,i.callees,n,{medianIdf:t.medianIdf,magnitudeA:t.magnitudeA,magnitudeB:t.magnitudeB})}function Ae(e,i){if(e.similarity<i.minSimilarity)return!1;let n=e.significantShared.length+e.trivialShared.length;return e.significantShared.length>=i.requireSignificantShared||n>=i.requireSharedCount}function Ni(e,i={}){let{minSimilarity:n=.5,limit:t=20,scope:r,minCallees:s=4,crossFileOnly:a=!1,scanLimit:l}=i,o=i.semantic!==!1,u=I(),f=0,g=0,c=0,m=0,d=0,p=0,S=0;return y("similar.all",()=>{let b=z(e).calleeIndex({minCallees:s,scope:r,scanLimit:l,semantic:o}),F=b.corpus;f=F.length;let N=i.focusFiles,x=[],T=0,P=(C,L,Ie)=>{let O=F[L];if(a&&C.file===O.file){u&&(d+=1);return}if(me(C,O)){u&&(p+=1);return}u&&(m+=1);let V=ce(C,O,b.idfWeights,{minSimilarity:n,requireSignificantShared:2,requireSharedCount:4,medianIdf:b.medianIdf,magnitudeA:Ie,magnitudeB:b.weightedMagnitudes[L]});V&&(Be(x,V,t,T),u&&(S+=1),T+=1)};return y("similar.all.pair-scan",()=>ue(b,N,P,C=>{u&&(c+=C,C>0&&(g+=1))}),()=>({corpusSize:f,candidateSets:g,candidatePairs:c,comparedPairs:m,crossFileSkips:d,signatureSkips:p,insertedResults:S,topResults:x.length})),y("similar.all.sort-project",()=>(x.sort((C,L)=>L.result.similarity-C.result.similarity||C.order-L.order),x.map(C=>C.result)),()=>({topResults:x.length}))},()=>({minSimilarity:n,limit:t,scope:r,minCallees:s,crossFileOnly:a,scanLimit:l,semantic:o,corpusSize:f,candidateSets:g,candidatePairs:c,comparedPairs:m,crossFileSkips:d,signatureSkips:p,insertedResults:S}))}function Pi(e,i={}){let{minSimilarity:n=.5,scope:t,minCallees:r=4,crossFileOnly:s=!1,scanLimit:a}=i,l=i.semantic!==!1,o=I(),u=0,f=0,g=0,c=0,m=0,d=0,p=0;return y("similar.all-count",()=>{let h=z(e).calleeIndex({minCallees:r,scope:t,scanLimit:a,semantic:l}),b=h.corpus;u=b.length;let F=i.focusFiles,N=(x,T,P)=>{let C=b[T];if(s&&x.file===C.file){o&&(m+=1);return}if(me(x,C)){o&&(d+=1);return}o&&(c+=1),Me(x,C,h.idfWeights,{minSimilarity:n,requireSignificantShared:2,requireSharedCount:4,medianIdf:h.medianIdf,magnitudeA:P,magnitudeB:h.weightedMagnitudes[T]})&&(p+=1)};return y("similar.all-count.pair-scan",()=>ue(h,F,N,x=>{o&&(g+=x,x>0&&(f+=1))}),()=>({corpusSize:u,candidateSets:f,candidatePairs:g,comparedPairs:c,crossFileSkips:m,signatureSkips:d,insertedResults:p})),p},()=>({minSimilarity:n,scope:t,minCallees:r,crossFileOnly:s,scanLimit:a,semantic:l,corpusSize:u,candidateSets:f,candidatePairs:g,comparedPairs:c,crossFileSkips:m,signatureSkips:d,insertedResults:p}))}function ue(e,i,n,t){for(let r=0;r<e.corpus.length;r+=1){let s=e.corpus[r],a=e.weightedMagnitudes[r],l=Ee(e,r,i);t(l.size);for(let o of l)n(s,o,a)}}function Ee(e,i,n){let t=e.corpus[i],r=n?.has(t.file)??!1,s=new Set,a=l=>{for(let o of l)o<=i||n&&!r&&!n.has(e.corpus[o].file)||s.add(o)};for(let l of t.callees){let o=e.candidateIndexesByCallee.get(l);o&&a(o)}return s}function me(e,i){if(e.paramCount<0||i.paramCount<0)return!1;let n=Math.abs(e.paramCount-i.paramCount),t=Math.max(2,Math.ceil(Math.max(e.paramCount,i.paramCount)*.5));return n>t}var de=Y({kind:"source-fingerprints",invalidation:J("source-fingerprints"),serialize:Si,deserialize:gi});function Be(e,i,n,t){if(n<=0)return;if(e.length<n){e.push({result:i,order:t});return}let r=0;for(let a=1;a<e.length;a+=1){let l=e[a],o=e[r];(l.result.similarity<o.result.similarity||l.result.similarity===o.result.similarity&&l.order>o.order)&&(r=a)}let s=e[r];i.similarity<=s.result.similarity||(e[r]={result:i,order:t})}var De=["ScipDatabase#all","ScipDatabase#get","ScipDatabase#prepare","ScipDatabase#pathExclusionsFor","ScipDatabase#isIgnored","ScipDatabase#symbolNoiseFor","PerDbValue#get","PerDbValue#has",":storage:db:ScipDatabase:all",":storage:db:ScipDatabase:get",":storage:db:ScipDatabase:prepare",":storage:db:ScipDatabase:pathExclusionsFor",":storage:db:ScipDatabase:isIgnored",":storage:db:ScipDatabase:symbolNoiseFor",":storage:per-db-cache:PerDbValue:get",":storage:per-db-cache:PerDbValue:has"];function q(e,i){let n=Q(e,i);if(n.candidates.length>0)throw new Error(`Ambiguous similarity target: ${i}. Use an exact symbol or file:line.`);return n.match}function qe(e,i,n){let t=q(e,i);if(!t||!E(t.symbol))return null;let r=new M(e),s=ee(e,t,{semantic:n.semantic,semanticEvidence:ie});return{symbol:t.symbol,file:t.relativePath,callees:pe(s.map(a=>a.symbol)),paramCount:r.callableSignature(t)?.paramCount??-1}}var ze=R("callee-fingerprint-corpus",{clearGroups:["whole-project","definition-catalog"]}),Ne=R("callee-fingerprint-index",{clearGroups:["whole-project","definition-catalog"]});function fe(e,i){let{minCallees:n,scope:t,excludeSymbol:r,scanLimit:s}=i,a=i.semantic!==!1,l=ze.get(e,()=>new Map),o=`${n}|${t??""}|${s??""}|${a}`,u=!0,f=0,g=0;return y("similar.callee-fingerprints.resolve",()=>{let c=l.get(o);if(u=c!==void 0,c||(c=_e(e,{minCallees:n,scope:t,scanLimit:s,semantic:a}),l.set(o,c)),f=c.length,r===void 0)return c;let m=c.filter(d=>d.symbol!==r);return g=c.length-m.length,m},()=>({minCallees:n,scope:t,scanLimit:s,semantic:a,cacheHit:u,corpusSize:f,excludeSymbol:r!==void 0,excludedSymbols:g}))}function Pe(e,i){let{minCallees:n,scope:t,scanLimit:r}=i,s=i.semantic!==!1,a=Ne.get(e,()=>new Map),l=`${n}|${t??""}|${r??""}|${s}`,o=!0,u=0,f=0,g=0;return y("similar.callee-index.resolve",()=>{let c=a.get(l);return o=c!==void 0,c||(c=Oe(fe(e,{minCallees:n,scope:t,scanLimit:r,semantic:s})),a.set(l,c)),u=c.corpus.length,f=c.docFreq.size,g=c.candidateIndexesByCallee.size,c},()=>({minCallees:n,scope:t,scanLimit:r,semantic:s,cacheHit:o,corpusSize:u,indexedCallees:f,candidateBuckets:g}))}function z(e){return{calleeCorpus:i=>fe(e,i),calleeIndex:i=>Pe(e,i),sourceCorpus:(i={})=>Fe(e,i),sourceIndex:(i={})=>le(e,i),sourceCandidates:(i,n)=>(n.candidateMode??"full")==="target-pruned"?ai(e,i,{minSimilarity:n.minSimilarity,scanLimit:n.scanLimit}):si(i,le(e,{scanLimit:n.scanLimit}))}}function Oe(e){let i=I(),n=0,t=y("similar.callee-index.doc-frequency",()=>{let c=new Map;for(let m of e)for(let d of m.callees)c.set(d,(c.get(d)??0)+1);return n=c.size,c},()=>({corpusSize:e.length,uniqueCallees:n})),r=Math.max(8,Math.ceil(Math.sqrt(e.length))),s=y("similar.callee-index.idf-weights",()=>G(t,e.length),()=>({corpusSize:e.length,uniqueCallees:t.size})),a=y("similar.callee-index.weighted-magnitudes",()=>e.map(c=>k(c.callees,s)),()=>({corpusSize:e.length})),l=0,o=0,u=0,f=y("similar.callee-index.candidate-buckets",()=>{let c=new Map;for(let m=0;m<e.length;m+=1){let d=e[m];for(let p of d.callees){if((t.get(p)??0)>r){i&&(o+=1);continue}Ci(c,p,m),i&&(l+=1)}}return i&&(u=c.size),c},()=>({corpusSize:e.length,buckets:u,candidateRefs:l,ubiquitousSkips:o,ubiquityThreshold:r})),g=y("similar.callee-index.median-idf",()=>D(s),()=>({uniqueCallees:s.size}));return{corpus:e,candidateIndexesByCallee:f,docFreq:t,idfWeights:s,weightedMagnitudes:a,medianIdf:g,ubiquityThreshold:r}}function $e(e,i){let n=new Map;for(let t of e.callees)for(let r of i.candidateIndexesByCallee.get(t)??[]){let s=i.corpus[r];s.symbol!==e.symbol&&n.set(s.symbol,s)}return n.size>0?[...n.values()]:i.corpus.filter(t=>t.symbol!==e.symbol)}function _e(e,i){let{minCallees:n,scope:t,scanLimit:r,semantic:s}=i,a=I(),l=new M(e),o=0,u=y("similar.callee-fingerprints.candidates",()=>{let p=B(l.productionCallableDefinitions({scope:t,minLoc:5,sortByLocDesc:typeof r=="number"&&r>0}).filter(S=>!A(e,S.relativePath,S.startLine,"similar")),r);return o=p.length,p},()=>({scope:t,scanLimit:r,candidateCount:o})),f=0,g=y("similar.callee-fingerprints.callee-map",()=>{let p=l.calleeMap(u,{semantic:s});if(a)for(let S of p.values())f+=S.length;return p},()=>({candidateCount:o,semantic:s,calleeEdges:f})),c=0,m=0,d=0;return y("similar.callee-fingerprints.shape",()=>{let p=u.map(b=>({symbol:b.symbol,file:b.relativePath,callees:pe((g.get(b.symbolId)??[]).filter(F=>F.kind!=="jsx-render").map(F=>F.symbol)),paramCount:l.callableSignature(b)?.paramCount??-1})),S=je(p);a&&(d=S.filter((b,F)=>b.callees.size!==p[F].callees.size).length);let h=S.filter(b=>b.callees.size>=n);return c=h.length,a&&(m=h.reduce((b,F)=>b+F.callees.size,0)),h},()=>({candidateCount:o,fingerprintCount:c,retainedCalleeCount:m,minCallees:n,siblingSaturatedFingerprints:d}))}var ge=5;function je(e){let i=new Map;for(let n of e){let t=i.get(n.file);t||(t=new Map,i.set(n.file,t));for(let r of n.callees)t.set(r,(t.get(r)??0)+1)}return e.map(n=>{let t=i.get(n.file);if(!t)return n;let r=[...n.callees].filter(a=>(t.get(a)??0)>=ge);if(r.length===0)return n;let s=new Set(n.callees);for(let a of r)s.delete(a);return{...n,callees:s}})}function Ge(e,i){let n=new Map;for(let s of i)if(!(s.file!==e.file||s.symbol===e.symbol))for(let a of s.callees)n.set(a,(n.get(a)??0)+1);let t=[...e.callees].filter(s=>(n.get(s)??0)+1>=ge);if(t.length===0)return e;let r=new Set(e.callees);for(let s of t)r.delete(s);return{...e,callees:r}}function pe(e){return new Set([...e].filter(i=>!Ue(i)))}function Ue(e){return De.some(i=>e.includes(i))}function se(e,i,n){let t=ei(e,i);if(!t||t.tokens.size<3)return[];let r=n.minSimilarity>=.5?n.minSimilarity:.3,s=[],a=n.candidateMode??"full",l=0,o=0,u=0,f=0;return y("similar.source-shape",()=>{let c=z(e).sourceCandidates(t,{minSimilarity:r,scanLimit:n.scanLimit,candidateMode:a});l=c.length;for(let m of c){if(m.symbol===t.symbol||m.tokens.size<3)continue;o+=1;let d=ne(t.tokens,m.tokens);if(d.size<2){u+=1;continue}let p=new Set([...t.tokens,...m.tokens]),S=p.size>0?d.size/p.size:0;if(S<r){f+=1;continue}s.push({symbolA:t.symbol,shortNameA:v(t.symbol),fileA:t.file,symbolB:m.symbol,shortNameB:v(m.symbol),fileB:m.file,similarity:S,similarityBasis:"source-tokens",sharedCallees:[...d].sort(),uniqueToA:[...w(t.tokens,m.tokens)].sort(),uniqueToB:[...w(m.tokens,t.tokens)].sort(),...Se([...d],"source-tokens")})}return s.sort((m,d)=>d.similarity-m.similarity||m.shortNameB.localeCompare(d.shortNameB)),s.slice(0,n.limit)},()=>({symbol:t.symbol,file:t.file,targetTokens:t.tokens.size,candidateMode:a,candidates:l,comparedPairs:o,sharedSkips:u,similaritySkips:f,results:s.length}))}function Se(e,i){let n=e.flatMap(H),t=e.flatMap(S=>ae(S,i)),r=U(n,be),s=U(n,ye),a=U(t,K),l=[...new Set(t.filter(oe))],o=e.filter(S=>{let h=ae(S,i);return h.some(b=>K.has(b))&&h.some(oe)}).length,u=i==="source-tokens"&&n.length>0&&n.every(S=>he.has(S)),f=Ve(r,s,a,l,u),g=a.length>0&&l.length>0,c=r.length+s.length>0,m=He(i,g,e.length,l.length,o),d=Ke(m,g,c,r.length>0,s.length>0||u);d==="structural-overlap"&&e.length>0&&f.push(`shared ${i} overlap has no recognized domain or scaffolding category`);let p=d==="domain-behavior"&&(e.length>=3||m)?"direct":"signal";return{evidenceClass:d,actionTier:p,evidenceClassReasons:f,recommendation:Ye(d,p)}}function He(e,i,n,t,r){return e==="callees"&&i&&n>=4&&t>=4&&r>=2}function Ke(e,i,n,t,r){return e?"domain-behavior":i?n?"mixed":"domain-behavior":t?"access-query-scaffolding":r?"framework-scaffolding":"structural-overlap"}function Ve(e,i,n,t,r){let s=[];return e.length>0&&s.push(`access/query scaffolding: ${e.slice(0,5).join(", ")}`),i.length>0&&s.push(`framework/generic scaffolding: ${i.slice(0,5).join(", ")}`),n.length>0&&s.push(`domain behavior verbs: ${n.slice(0,5).join(", ")}`),n.length>0&&t.length>0&&s.push(`domain-specific terms: ${t.slice(0,5).join(", ")}`),r&&s.push("shared source tokens are generic scaffolding"),s}var We=.5,Ze=.6;function Xe(e,i){if(e.actionTier==="direct"||i.sharedCount<4)return e;let n=i.sameFile&&i.similarity>=We,t=e.evidenceClass==="mixed"&&i.similarity>=Ze;if(!n&&!t)return e;let r=n?`same-file siblings share ${i.sharedCount} callees at similarity ${i.similarity.toFixed(2)}`:`mixed domain and scaffolding evidence at similarity ${i.similarity.toFixed(2)} across ${i.sharedCount} shared callees`;return{...e,actionTier:"direct",evidenceClassReasons:[...e.evidenceClassReasons,r],recommendation:n?"Sibling functions have overlapping weighted callee sets; compare ordering, guards and effects before considering extraction.":"Shared evidence carries domain behavior alongside scaffolding at high overlap; review for an extract/reuse opportunity."}}function Ye(e,i){return i==="direct"?"Shared names match the domain vocabulary heuristic; compare behavior before considering extraction or reuse.":e==="mixed"?"Shared evidence mixes domain behavior with scaffolding; review semantics before extracting anything.":e==="access-query-scaffolding"?"Shared evidence is mostly access/query scaffolding; compare product semantics before reusing code.":e==="structural-overlap"?"Shared structure has no domain or scaffolding classification; inspect names and behavior before reusing code.":"Shared evidence is mostly framework or generic scaffolding; treat as a contextual signal."}function U(e,i){return[...new Set(e.filter(n=>i.has(n)))]}function H(e){return e.replace(/([a-z0-9])([A-Z])/g,"$1 $2").toLowerCase().split(/[^a-z0-9]+/).filter(i=>i.length>1)}function ae(e,i){if(i==="source-tokens")return H(e);let n=_(e);return H(n.length>0?n:Je(e))}function Je(e){return e.replace(/[()`]/g," ").replace(/\.[a-z][a-z0-9]+(?=\s|$)/gi," ").split(/[:/\\\s]+/).map(t=>t.trim()).filter(t=>/[A-Za-z]/.test(t)).at(-1)?.replace(/\.$/,"")??e}function oe(e){return e.length>3&&!K.has(e)&&!be.has(e)&&!ye.has(e)&&!he.has(e)&&!Qe.has(e)}var K=new Set(["archive","assign","book","cancel","create","delete","ensure","export","import","notify","persist","publish","restore","schedule","send","set","submit","sync","update","upload","validate","write"]),be=new Set(["access","auth","authorize","cache","context","db","find","get","guard","list","permission","permissions","prisma","query","request","response","role","route","session","sql","where"]),ye=new Set(["bytes","computed","crypto","describe","effect","expect","fetch","filter","hex","hook","json","map","mounted","on","promise","random","react","reduce","ref","render","state","test","token","trim","uuid","vue","watch"]),he=new Set(["bytes","crypto","data","false","get","hex","id","key","map","name","num","random","result","secret","set","string","to","token","true","type","value"]),Qe=new Set(["best","backend","conflict","database","effect","effects","error","errors","frontend","found","helpers","javascript","module","modules","scip","shared","source","typescript","utils","with","workflow","workflows"]);function ei(e,i){let n=q(e,i);if(!n||!E(n.symbol))return null;let t=ii(e,n);return t?{symbol:n.symbol,file:n.relativePath,tokens:t}:null}function ii(e,i){let n=_(i.symbol),t=j(e,i)??"",r=ve(t,n);return r.size>0?r:null}var ni=R("source-fingerprint-corpus",{clearGroups:["whole-project","definition-catalog"]}),ti=R("source-fingerprint-index",{clearGroups:["whole-project","definition-catalog"]});function Ce(e){return`${e.scanLimit??""}`}function Fe(e,i={}){let n=ni.get(e,()=>new Map),t=Ce(i),r=n.get(t);return r||(r=ui(e,i),n.set(t,r)),r}function le(e,i={}){let n=ti.get(e,()=>new Map),t=Ce(i),r=n.get(t);return r||(r=ri(Fe(e,i)),n.set(t,r)),r}function ri(e){let i=new Map;for(let r of e)for(let s of r.tokens)i.set(s,(i.get(s)??0)+1);let n=Math.max(8,Math.ceil(Math.sqrt(e.length))),t=new Map;for(let r of e)for(let s of r.tokens){if((i.get(s)??0)>n)continue;let a=t.get(s);a||(a=[],t.set(s,a)),a.push(r)}return{corpus:e,candidateByToken:t,docFreq:i,ubiquityThreshold:n}}function si(e,i){let n=new Map;for(let t of e.tokens)for(let r of i.candidateByToken.get(t)??[])r.symbol!==e.symbol&&n.set(r.symbol,r);return n.size>0?[...n.values()]:i.corpus.filter(t=>t.symbol!==e.symbol)}function ai(e,i,n){let t=I(),r=new M(e),s=oi(i.tokens.size,n.minSimilarity),a=0,l=0,o=0,u=y("similar.source-shape.target-files",()=>{let d=[...i.tokens],p=[];for(let S of X(e,{includeIgnored:!1})){a+=1;let h=$(e,S);h&&(l+=1,li(h,d,s)&&p.push(S))}return o=p.length,p},()=>({symbol:i.symbol,targetTokens:i.tokens.size,requiredSharedTokens:s,scannedFiles:a,readableFiles:l,candidateFiles:o})),f=0,g=y("similar.source-shape.target-definitions",()=>{let d=B(r.productionCallableDefinitions({files:u,sortByLocDesc:typeof n.scanLimit=="number"&&n.scanLimit>0}).filter(p=>!A(e,p.relativePath,p.startLine,"similar")),n.scanLimit);return f=d.length,d},()=>({symbol:i.symbol,candidateFiles:o,scanLimit:n.scanLimit,definitionCount:f})),c=0;return y("similar.source-shape.target-fingerprints",()=>{let d=xe(e,g);return t&&(c=d.length),d},()=>({symbol:i.symbol,definitionCount:f,fingerprintCount:c})).filter(d=>d.symbol!==i.symbol)}function oi(e,i){return Math.max(2,Math.ceil(e*i))}function li(e,i,n){if(i.length<n)return!1;let t=e.toLowerCase(),r=0;for(let s of i)if(ci(t,s)&&(r+=1,r>=n))return!0;return!1}function ci(e,i){return i==="num"?/\b\d+\b/.test(e):e.includes(i)}function ui(e,i={}){let n=new M(e),{scanLimit:t}=i,r=B(n.productionCallableDefinitions({sortByLocDesc:typeof t=="number"&&t>0}).filter(s=>!A(e,s.relativePath,s.startLine,"similar")),t);return xe(e,r)}function xe(e,i){let n=new Map;for(let r of i){let s=n.get(r.relativePath)??[];s.push(r),n.set(r.relativePath,s)}let t=new Map;for(let[r,s]of n)for(let a of mi(e,r,s))t.set(a.symbol,a);return i.map(r=>t.get(r.symbol)).filter(r=>!!r)}function mi(e,i,n){let t=[],r=$(e,i);if(!r)return[];let s=Z(e,i,r),a=fi(e,i,s),l=!1;for(let o of n){let u=di(o),f=a.get(u),g=f?new Set(f.tokens):null;g||(g=ve(j(e,o)??"",o.leaf),a.set(u,{key:u,symbol:o.symbol,startLine:o.startLine,endLine:o.endLine,leaf:o.leaf,tokens:[...g].sort()}),l=!0),g.size>0&&t.push({symbol:o.symbol,file:o.relativePath,tokens:g})}return l&&bi(e,i,s,a),t}function di(e){return`${e.symbol}\0${e.startLine}\0${e.endLine}\0${e.leaf}`}function fi(e,i,n){return de.read(e,i,n)??new Map}function gi(e){try{let i=JSON.parse(e);if(i.version!==2||!Array.isArray(i.entries))return null;let n=new Map;for(let t of i.entries){if(!pi(t))return null;n.set(t.key,t)}return n}catch{return null}}function pi(e){return W(e)&&typeof e.key=="string"&&typeof e.symbol=="string"&&typeof e.startLine=="number"&&typeof e.endLine=="number"&&typeof e.leaf=="string"&&Array.isArray(e.tokens)&&e.tokens.every(i=>typeof i=="string")}function Si(e){let i={version:2,entries:[...e.values()].sort((n,t)=>n.key.localeCompare(t.key))};return JSON.stringify(i)}function bi(e,i,n,t){de.write(e,i,n,new Map(t))}function ve(e,i){if(!e)return new Set;let n=new Set(["public","private","protected","final","static","class","def","fun","fn","function","return","string","bool","boolean","void","unit","self","this","new","const","let","var","end","pub"]),t=yi(i),s=e.replace(/["'`]/g," ").replace(/\b\d+\b/g," NUM ").replace(/([a-z0-9])([A-Z])/g,"$1 $2").replace(/[^A-Za-z0-9_]+/g," ").replace(/_/g," ").toLowerCase().split(/\s+/).map(a=>a.trim()).filter(a=>a.length>1).filter(a=>!n.has(a)).filter(a=>!t.has(a));return new Set(s)}function yi(e){return new Set(e.replace(/([a-z0-9])([A-Z])/g,"$1 $2").split(/[^A-Za-z0-9_]+|_/).map(i=>i.toLowerCase()).filter(i=>i.length>1))}function hi(e,i,n,t){let r=0,s=0,a=0;for(let l of e.callees){if(!i.callees.has(l))continue;let o=n.get(l)??0;r+=o*o,a+=1,o>=t&&(s+=1)}return{dotProduct:r,significantShared:s,sharedCount:a}}function Ci(e,i,n){let t=e.get(i);t||(t=[],e.set(i,t)),t.push(n)}export{ke as a,zi as b,Re as c,ce as d,Ni as e,Pi as f,Be as g,fe as h,Pe as i,z as j,Oe as k,$e as l,ge as m,je as n,pe as o,Se as p,We as q,Ze as r,Xe as s};
2
+ //# sourceMappingURL=chunk-UXYXF7GV.js.map
@@ -0,0 +1,2 @@
1
+ import{a as d}from"./chunk-7VPEEAAG.js";import{A as o,w as h,x as b}from"./chunk-ZHMRSZFD.js";import{b as y}from"./chunk-QXEUDXBT.js";import{c,g as f}from"./chunk-YULZRALL.js";function v(i){let r=new Set,a=[];for(let t of i){let n=`${t.symbol}|${t.file}`;r.has(n)||(r.add(n),a.push(t))}return a}function k(i,r,a={}){let t=y(i,r);if(t.candidates.length>0)throw new Error(`Ambiguous symbol: ${r}. Use an exact symbol.`);let n=t.match;if(!n)return null;let m=a.semantic!==!1,g=b(i,n,{semantic:m,semanticEvidence:d}).filter(e=>f(e.symbol)),x=v(h(i,n,{additive:!0,callableOnly:!0,semantic:m,semanticEvidence:d}).sort((e,l)=>+(o(l.source)==="exact")-+(o(e.source)==="exact"))),u=g.map(e=>({symbol:e.symbol,shortName:c(e.symbol),file:e.file,relationship:e.source!=="caller-map-inversion"?"reference-candidate":e.callEvidence==="scip-chunk"?"chunk-candidate":o(e.callEvidence)==="exact"?"resolved-call":"source-call-candidate",evidenceStrength:e.source==="caller-map-inversion"?o(e.callEvidence):"candidate",evidenceSource:e.callEvidence??e.source})),p=x.map(e=>({symbol:e.symbol,shortName:c(e.symbol),file:e.file,relationship:e.source==="scip-chunk"?"chunk-candidate":o(e.source)==="exact"?"resolved-call":"source-call-candidate",evidenceStrength:o(e.source),evidenceSource:e.source,...e.kind==="jsx-render"?{interaction:"render"}:{}}));return{symbol:n.symbol,shortName:c(n.symbol),callers:u.map(({symbol:e,shortName:l,file:s})=>({symbol:e,shortName:l,file:s})),callees:p.map(({symbol:e,shortName:l,file:s})=>({symbol:e,shortName:l,file:s})),callerEvidence:u,calleeEvidence:p,coverage:{scope:"indexed-static-call-graph",blindSpots:["unresolved dynamic dispatch and reflection","external or unindexed callees without a resolved symbol identity","SCIP chunk co-occurrence and source-name resolution are candidate call evidence"]}}}export{k as a};
2
+ //# sourceMappingURL=chunk-VB3GOKOS.js.map
@@ -0,0 +1,2 @@
1
+ import{c as t}from"./chunk-5TNQJUR2.js";var e=/(?:^|\/)(?:migrations?\/meta\/|drizzle\/meta\/|prisma\/migrations\/|__generated__\/|generated\/)|(?:^|\/)(?:_journal\.json|migration_lock\.toml)$|(?:^|\/)[^/]*(?:snapshot|\.generated|\.gen)\.[a-z0-9]+$|(?:^|\/)(?:migrations?|drizzle)\/[^/]+\.sql$|(?:^|\/)(?:migrations?|drizzle)\/(?:schema|relations)\.[cm]?[jt]s$/i;function i(a){return e.test(t(a))}export{i as a};
2
+ //# sourceMappingURL=chunk-VF5JZICY.js.map
@@ -0,0 +1,2 @@
1
+ var r=/^[A-Za-z0-9_@%+=:,./-]+$/u;function o(e,t={}){return t.omitSafeQuotes&&r.test(e)?e:(t.platform??process.platform)==="win32"?`"${e.replaceAll("%","%%").replaceAll('"','\\"')}"`:`'${e.replaceAll("'",`'"'"'`)}'`}export{o as a};
2
+ //# sourceMappingURL=chunk-VTY3VK6E.js.map
@@ -0,0 +1,2 @@
1
+ import{a as g,c as B}from"./chunk-F4FNK44D.js";import{e as P}from"./chunk-YTAP5Y2G.js";import{a as I,b as S}from"./chunk-2HLAFUCY.js";import{execFileSync as b}from"child_process";import{createRequire as le}from"module";import{chmodSync as ue,existsSync as N}from"fs";import{platform as h,arch as w}from"os";import{dirname as de,join as V}from"path";import{createHash as C,randomUUID as q}from"crypto";import{closeSync as y,createReadStream as J,existsSync as M,fsyncSync as G,mkdirSync as H,openSync as x,renameSync as U,unlinkSync as z,writeSync as W}from"fs";import{homedir as K}from"os";import{dirname as A,join as v}from"path";var Q=3e5,Y=256*1024*1024;function k(e,r=process.env){let n=r.SCIP_QUERY_CACHE_DIR??(r.XDG_CACHE_HOME?v(r.XDG_CACHE_HOME,"scip-query"):v(K(),".cache","scip-query"));return v(n,e)}var c=class extends Error{constructor(n,t,i={}){super(t,i.cause===void 0?void 0:{cause:i.cause});this.kind=n;this.name="VerifiedBinaryFetchError"}kind};async function _(e){let{cachePath:r,url:n,expectedSha256:t}=e,i=e.timeoutMs??Q,o=e.maxBytes??Y,l=e.lockWaitMs??i;j(i,o,l);let s=X(n,i,e.signal);try{let a=await R(r,t,o,s.controller.signal);if(a)return{status:"cached",path:r,sha256:a};H(A(r),{recursive:!0});let d=await P(`${r}.fetch.lock`,{waitMs:l,pollMs:25,signal:s.controller.signal});if(!d)throw new c("lock-timeout",`timed out waiting ${l}ms for verified binary cache ownership at ${r}`);try{let m=await R(r,t,o,s.controller.signal);return m?{status:"cached",path:r,sha256:m}:await Z(e,s.controller,o)}finally{d.release()}}catch(a){return ce(a,s.controller.signal,n)}finally{clearTimeout(s.timeout),s.detachExternalAbort(),s.controller.signal.aborted||s.controller.abort()}}function j(e,r,n){if(!Number.isFinite(e)||e<=0)throw new TypeError("timeoutMs must be a positive finite number.");if(!Number.isSafeInteger(r)||r<=0)throw new TypeError("maxBytes must be a positive safe integer.");if(!Number.isFinite(n)||n<0)throw new TypeError("lockWaitMs must be a non-negative finite number.")}function X(e,r,n){let t=new AbortController,i=()=>{t.abort(new c("aborted",`download of ${e} was aborted`,{cause:n?.reason}))};n?.addEventListener("abort",i,{once:!0}),n?.aborted&&i();let o=setTimeout(()=>{t.abort(new c("timeout",`download of ${e} timed out after ${r}ms`))},r);return o.unref(),{controller:t,timeout:o,detachExternalAbort:()=>n?.removeEventListener("abort",i)}}async function R(e,r,n,t){if(!M(e))return null;let i=C("sha256"),o=0;try{for await(let s of J(e,{signal:t})){let a=Buffer.isBuffer(s)?s:Buffer.from(s);if(o+=a.length,o>n)return null;i.update(a)}}catch{if(t.aborted)throw f(t,e);return null}let l=i.digest("hex");return l===r?l:null}async function Z(e,r,n){let t=await ee(e,r),i=ie(t,n,e.url);if(!t.body)throw new c("stream",`downloaded ${e.url} response has no readable body`);let o=`${e.cachePath}.tmp-${process.pid}-${q()}`,l,s=!1;try{l=x(o,"wx",384),s=!0;let a=await ne(t.body,l,e,r,n,i);y(l),l=void 0;try{oe(o,e.cachePath,e.renameImpl??U,e.syncImpl??G)}catch(d){throw new c("install",`failed to install verified binary at ${e.cachePath}`,{cause:d})}return s=!1,{status:"downloaded",path:e.cachePath,sha256:a}}catch(a){throw r.signal.aborted?f(r.signal,e.url):a instanceof c?a:new c("install",`failed to stage verified binary at ${e.cachePath}`,{cause:a})}finally{te(l,o,s)}}async function ee(e,r){let n=e.fetchImpl??fetch,t;try{t=await L(n(e.url,{signal:r.signal}),r.signal)}catch(i){throw r.signal.aborted?f(r.signal,e.url):new c("stream",`failed to download ${e.url}: ${F(i)}`,{cause:i})}if(!t.ok){let i=new c("http",`failed to download ${e.url}: HTTP ${t.status}`);throw r.abort(i),i}return t}function re(e,r,n,t,i){if(e>n||r!==void 0&&e>r){let o=new c("length",`downloaded ${t} exceeded its ${r??n} byte limit`);throw i.abort(o),o}}async function ne(e,r,n,t,i,o){let l=e.getReader(),s=C("sha256"),a=0;for(;;){let{done:m,value:p}=await L(l.read(),t.signal);if(m)break;if(!(p instanceof Uint8Array))throw new c("stream",`downloaded ${n.url} produced a non-byte stream chunk`);a+=p.byteLength,re(a,o,i,n.url,t);let E=Buffer.from(p.buffer,p.byteOffset,p.byteLength);s.update(E),I(r,E,{writeFile:n.writeImpl??W},"verified binary staging")}if(o!==void 0&&a!==o)throw new c("length",`downloaded ${n.url} length mismatch: declared ${o} bytes, received ${a}`);let d=s.digest("hex");if(d!==n.expectedSha256)throw new c("checksum",`downloaded ${n.url} checksum mismatch: expected ${n.expectedSha256}, got ${d}`);return d}function te(e,r,n){if(e!==void 0)try{y(e)}catch{}if(n)try{z(r)}catch{}}function ie(e,r,n){let t=e.headers?.get("content-length");if(t==null)return;if(!/^\d+$/.test(t))throw new c("length",`downloaded ${n} has an invalid Content-Length header`);let i=Number(t);if(!Number.isSafeInteger(i)||i<0)throw new c("length",`downloaded ${n} has an invalid Content-Length header`);if(i>r)throw new c("length",`downloaded ${n} declares ${i} bytes, above the ${r} byte limit`);return i}function oe(e,r,n,t){ae(e,t),n(e,r),se(A(r),t)}function ae(e,r){let n=x(e,"r");try{r(n)}finally{y(n)}}function se(e,r){let n;try{n=x(e,"r")}catch(t){if(S(t,process.platform))return;throw t}try{r(n)}catch(t){if(!S(t,process.platform))throw t}finally{y(n)}}function L(e,r){return r.aborted?Promise.reject(f(r,"operation")):new Promise((n,t)=>{let i=()=>{r.removeEventListener("abort",i),t(f(r,"operation"))};r.addEventListener("abort",i,{once:!0}),e.then(o=>{r.removeEventListener("abort",i),n(o)},o=>{r.removeEventListener("abort",i),t(o)})})}function f(e,r){return e.reason instanceof Error?e.reason:new c("aborted",`verified binary operation for ${r} was aborted`)}function F(e){return e instanceof Error?e.message:String(e)}function ce(e,r,n){throw r.aborted?f(r,n):e instanceof c?e:new c("stream",`failed to download ${n}: ${F(e)}`,{cause:e})}var u="v0.8.1",D="https://github.com/sourcegraph/scip",$=`github.com/sourcegraph/scip/cmd/scip@${u}`,fe=le(import.meta.url),pe={"scip-darwin-amd64.tar.gz":"39f18be957d350bcd9ed5cb12d7781b0e237a5cb2429a107feaf9ce2d1dcd5d5","scip-darwin-arm64.tar.gz":"5b3f4a2fb1dc10c599cb3422ed0406a739060e4ac0b1222c0f43630dd0dd8221","scip-linux-amd64.tar.gz":"16b79ed98f893abd530cfa63f333527f1351008b4a23e02b9e522e34d1da6596","scip-linux-arm64.tar.gz":"876dfb680119dd6e5713077c49b27701102d598bdeba94c809173276d399c7e2"},he="SCIP_QUERY_SCIP_BIN";function Je(e=process.env){return e.SCIP_QUERY_SQLITE_CONVERTER==="scip-cli"}function me(e){let r=e.env[he];if(r&&e.fileExists(r))return{source:"env",path:r};let n=e.resolveCached?.()??null;if(n)return{source:"cache",path:n};if(e.isOnPath("scip"))return{source:"path",path:"scip"};if(e.platform==="win32"){let t=e.resolveSidecar(e.arch);if(t&&e.fileExists(t))return{source:"sidecar",path:t}}return null}function ge(e){for(let r of e==="arm64"?["arm64","x64"]:[e])try{return fe.resolve(`scip-query-scip-windows/scip-win32-${r}.exe`)}catch{}return null}function T(e=process.env){return ye(e)?.path??null}function ye(e=process.env){let r=me({platform:h(),arch:w(),env:e,isOnPath:g,fileExists:N,resolveSidecar:ge,resolveCached:()=>be(e)});return r?.source==="path"?{source:"path",path:B("scip")??r.path}:r}function O(e=process.env){return k(V("scip",u,"scip"),e)}function be(e){let r=O(e);return N(r)?r:null}function we(e){return e!==null&&e.includes(u.replace(/^v/,""))}function Se(){let e=T();if(!e)return null;try{return b(e,["--version"],{stdio:"pipe",timeout:1e4,killSignal:"SIGKILL"}).toString().trim()}catch{return null}}function ve(e=h(),r=w()){let n=xe(e,r);if(!n)return null;let t=pe[n.filename];return t?{...n,sha256:t}:null}function xe(e=h(),r=w()){let n,t,i;switch(e){case"darwin":n="darwin",i="tar.gz";break;case"linux":n="linux",i="tar.gz";break;default:return null}switch(r){case"arm64":t="arm64";break;case"x64":t="amd64";break;default:return null}let o=`scip-${n}-${t}.${i}`;return{url:`${D}/releases/download/${u}/${o}`,filename:o}}var $e={fetch:_,extract:(e,r)=>{b("tar",["-xzf",e,"-C",r,"scip"],{stdio:"pipe",timeout:12e4,killSignal:"SIGKILL"})},markExecutable:e=>ue(e,493),probeVersion:e=>Ie(e),env:process.env};async function Ee(e,r={}){let n={...$e,...r},t=ve();if(!t)return e(`No reviewed scip ${u} release archive is published for ${h()}/${w()}.`),null;let i=O(n.env),o=de(i),l=V(o,t.filename);e(`Downloading reviewed scip ${u} (${t.filename}, sha256 ${t.sha256.slice(0,12)}\u2026).`);try{let a=await n.fetch({cachePath:l,url:t.url,expectedSha256:t.sha256});n.extract(a.path,o),n.markExecutable(i)}catch(a){return e(`Could not install scip ${u}: ${a instanceof Error?a.message:String(a)}`),null}let s=n.probeVersion(i);return we(s)?(e(`Installed reviewed scip ${u} at ${i}.`),i):(e(`Installed scip at ${i} did not report ${u} (reported: ${s??"unavailable"}).`),null)}function Ie(e){try{return b(e,["--version"],{stdio:"pipe",timeout:1e4,killSignal:"SIGKILL"}).toString().trim()}catch{return null}}async function Me(e,r={}){if(h()!=="win32"&&await Ee(e,r)!==null)return!0;if(g("go")){e(`Installing immutable ${$} via go install into the Go bin directory (GOBIN or GOPATH/bin); expected executable: scip.`);try{if(b("go",["install",$],{stdio:"inherit",timeout:3e5,env:process.env}),Pe(e))return!0}catch(n){let t=n instanceof Error?n.message:String(n);e(`go install failed: ${t}`)}}return e("Could not auto-install scip CLI."),e(`Install manually from: ${D}/releases/tag/${u}`),!1}function Pe(e){if(g("scip")){let r=T(),n=Se();if(r&&n&&n.includes(u))return e(`Successfully installed ${$}; resolved executable: ${r}; reported version: ${n}.`),!0;e(`go install completed, but the resolved scip executable did not report ${u} (executable: ${r??"unresolved"}; version: ${n??"unavailable"}).`)}return!1}export{u as a,Je as b,T as c,ye as d,we as e,Se as f,Ee as g,Me as h};
2
+ //# sourceMappingURL=chunk-VX2O4RIS.js.map
@@ -0,0 +1,2 @@
1
+ import{a as m,c as x}from"./chunk-F4FNK44D.js";import{q as g,r as p}from"./chunk-TKD34PHN.js";import{P as l}from"./chunk-U5RIG3JP.js";import{i as f}from"./chunk-62BDNPMI.js";function z(n){if(!n)return;let e=Number(n);return Number.isInteger(e)&&e>0?e:void 0}import{execFileSync as I}from"child_process";import{createHash as N}from"crypto";import{existsSync as s,statSync as B}from"fs";import{createRequire as S}from"module";import{platform as k}from"os";import{dirname as b,join as a}from"path";var L=S(import.meta.url),Y={language:"rust",indexerBinary:"rust-analyzer",installUrl:"https://github.com/rust-lang/rust-analyzer"};function u(n){return[n.indexerBinary,...n.binaryAliases??[]]}function O(n){let e=u(n);return e.length===1?e[0]:e.join(" or ")}function c(n){if(n.bundledNpmPackage==="@sourcegraph/scip-typescript"){let e=P(n);if(e)return e}for(let e of u(n)){let r=x(e);if(r)return r}return P(n)}function Z(n){return c(n)!==null||E(n)}function E(n){return T(n)!==null}function P(n){let e=T(n);if(!e)return null;if(n.bundledNpmPackage==="@sourcegraph/scip-typescript"){if(!l)return null;let o=a(l,"dist","typescript-indexer.js");return s(o)?o:null}let t=JSON.parse(f(e,"indexer package manifest")).bin;if(!t)return null;if(typeof t=="string")return a(b(e),t);for(let o of u(n)){let i=t[o];if(i)return a(b(e),i)}return null}function T(n){if(!n.bundledNpmPackage)return null;try{return L.resolve(`${n.bundledNpmPackage}/package.json`)}catch{return null}}function R(n,e){for(let r of n.projectLocalBinaries??[]){let t=a(e,r);if(s(t))return t}return null}function w(n,e){for(let r of n.projectLocalBinaries??[]){let t=a(e,r);if(s(t))return y(e,r,t)}return null}function Q(n,e){let r=D(n,e);if(!r||r.canonicalPath!==e.canonicalPath||r.sha256!==e.sha256||r.size!==e.size||r.mtimeMs!==e.mtimeMs||r.device!==e.device||r.inode!==e.inode||r.executable!==e.executable)throw new Error(`refusing changed project-local indexer ${e.relativePath}; review the current file and rerun with --trust-project-tools`)}function D(n,e){try{return y(n,e.relativePath,e.configuredPath)}catch{return null}}function y(n,e,r){let t={maxBytes:268435456,inputKind:"project-local indexer"},o=g(n,e,t),i=p(n,e,t),j=B(o.absolutePath);return{configuredPath:r,canonicalPath:o.absolutePath,relativePath:e,sha256:N("sha256").update(i).digest("hex"),size:o.size,mtimeMs:o.mtimeMs,device:o.device,inode:o.inode,executable:(j.mode&73)!==0}}function J(n,e,r={}){return(r.trustProjectTools?w(n,e)?.canonicalPath:null)??c(n)}function V(n,e=process.env,r=n.indexerBinary){if(n.indexerBinary!=="scip-dotnet"||d(r,e))return e;let t=h(r,e);return t?{...e,DOTNET_ROOT:t}:e}function X(n,e,r={}){let t=O(n),o=e?J(n,e,r):c(n);if(!o)return{language:n.language,binaryLabel:t,installed:!1,runnable:!1,resolvedBinary:null,installUrl:n.installUrl,...e&&R(n,e)?{note:"project-local indexer available only with --trust-project-tools"}:{}};if(n.indexerBinary!=="scip-dotnet")return{language:n.language,binaryLabel:t,installed:!0,runnable:!0,resolvedBinary:o};let i=U(o);return{language:n.language,binaryLabel:t,installed:!0,runnable:i.runnable,resolvedBinary:o,installUrl:n.installUrl,note:i.note}}function U(n){if(d(n,process.env))return{runnable:!0};let e=h(n,process.env);if(e)return{runnable:!0,note:`using .NET 9 runtime from ${e}`};let r=v(process.env);return{runnable:!1,note:r.length>0?`.NET 9 runtime still unavailable after checking ${r.join(", ")}`:"binary is present, but scip-dotnet still needs a .NET 9 runtime"}}function h(n,e){for(let r of v(e))if(d(n,{...e,DOTNET_ROOT:r}))return r;return null}function v(n){let e=[],r=n.DOTNET_ROOT;if(r&&s(r)&&e.push(r),k()==="darwin"&&m("brew"))try{let t=I("brew",["--prefix","dotnet@9"],{stdio:"pipe",env:n,timeout:1e4,killSignal:"SIGKILL"}).toString().trim(),o=a(t,"libexec");s(o)&&!e.includes(o)&&e.push(o)}catch{}return e}function d(n,e){try{return I(n,["--version"],{stdio:"pipe",env:e,timeout:1e4,killSignal:"SIGKILL"}),!0}catch{return!1}}export{Y as a,O as b,c,Z as d,R as e,w as f,Q as g,V as h,X as i,z as j};
2
+ //# sourceMappingURL=chunk-WKPV2TDZ.js.map
@@ -0,0 +1,2 @@
1
+ function t(n){return typeof n=="object"&&n!==null}function o(n){return Array.isArray(n)&&n.every(r=>typeof r=="string")?n:null}export{t as a,o as b};
2
+ //# sourceMappingURL=chunk-WOFQ5DTB.js.map
@@ -0,0 +1,2 @@
1
+ import{b as x}from"./chunk-BOJ5SVE2.js";import{b as C}from"./chunk-6LSEIIF7.js";import{a as y}from"./chunk-36SGVCGX.js";import{A as v,C as b,y as h}from"./chunk-4WTUBQ36.js";import{d as g}from"./chunk-5D2LVK7O.js";function I(a,n={}){let{limit:f=20,scope:u,minFanIn:m=2,minFanOut:d=2,scanLimit:r}=n,s=new C(a),o=x(s.productionCallableDefinitions({scope:u,requireCallableSymbol:!0,includeSuppressed:!0,sortByLocDesc:typeof r=="number"&&r>0}),r),l=n.semantic!==!1,c=v(a,o,{semantic:l,semanticEvidence:y});return o.map(t=>w(a,t,l,c.get(t.symbolId)??[])).filter(t=>t.fanIn>=m&&t.fanOut>=d).sort((t,e)=>e.score-t.score||e.fanIn-t.fanIn).slice(0,f)}function O(a,n={}){return I(a,n)}function w(a,n,f,u){let m=u.filter(e=>e.file!==n.relativePath),d=[...new Set(m.map(e=>e.file))].sort(),r=[...new Set(m.filter(e=>e.source!=="caller-map-inversion"||b(e.callEvidence)==="candidate").map(e=>e.file))].sort(),s=new Map;for(let e of h(a,n,{semantic:f,semanticEvidence:y})){if(e.file===n.relativePath)continue;let i=`${e.symbol}|${e.file}`;(!s.has(i)||s.get(i).evidenceStrength==="candidate"&&b(e.source)==="exact")&&s.set(i,{symbol:e.symbol,shortName:g(e.symbol),file:e.file,evidenceStrength:b(e.source),evidenceSource:e.source})}let o=[...s.values()].sort((e,i)=>e.file.localeCompare(i.file)||e.symbol.localeCompare(i.symbol)),l=d.length,c=o.length,p=l*c,t=o.filter(e=>e.evidenceStrength==="candidate").map(e=>e.symbol);return{symbol:n.symbol,shortName:g(n.symbol),fanIn:l,fanOut:c,callerFiles:d,candidateCallerFiles:r,externalCallees:o.map(({symbol:e,shortName:i,file:S})=>({symbol:e,shortName:i,file:S})),externalCalleeEvidence:o,candidateExternalCallees:t,inputBasis:"mixed-static-call-or-reference-evidence",score:p,definedIn:n.relativePath,actionTier:"signal",riskKind:"coordination-hotspot",evidenceReasons:[`${l} incoming file(s) reference this symbol`,`${c} distinct cross-file callee target(s) are observed; candidate targets do not establish reachability`,`centrality score is ${p} (fan-in * fan-out)`,`${r.length} incoming file(s) and ${t.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{I as a,O as b};
2
+ //# sourceMappingURL=chunk-WS4C6TCK.js.map
@@ -0,0 +1,2 @@
1
+ import{a as f}from"./chunk-QOIXNWQR.js";import{a as S,c as d}from"./chunk-GZKFETP5.js";import{readdirSync as y}from"fs";import{execFileSync as h}from"child_process";import{extname as l,join as _}from"path";var C=[".ts",".tsx",".mts",".cts",".js",".jsx",".mjs",".cjs",".vue",".rs",".py",".pyi",".java",".kt",".kts",".scala",".sc",".clj",".cljs",".cljc",".rb",".c",".h",".cc",".cpp",".cxx",".hpp",".hh",".hxx",".cs",".vb",".php",".dart"],F=[".vue"],p=[".tsx",".jsx"],g=[".vue"],X=[...p,...g],k=new Set(p),D=new Set(g),E=new Set(C.map(e=>e.toLowerCase())),I=[...E].sort().join(","),m=new Set(["node_modules",".git","target","dist","build",".next",".nuxt",".cache",".turbo",".nbb",".cpcache",".shadow-cljs","out","coverage",".scipquery-cache","__pycache__",".venv","venv",".idea",".vscode"]);function $(e,n={}){let s=n.includeIndexed??!0,o=n.includeAuxiliary??!0,t=n.extensions?.map(c=>c.toLowerCase()),r=t?new Set(t):E,a=t?[...r].sort().join(","):I,i=`${s?"1":"0"}|${o?"1":"0"}|${a}`;return x.get(e,i,()=>{let c=new Set;if(s)for(let u of f(e,{includeIgnored:!1}))r.has(l(u).toLowerCase())&&c.add(u);return o&&j(e,r,s,c),[...c].sort()})}var x=d("source-files",{clearGroups:["whole-project"]});S({name:"source-files-membership",groups:["source-file"],clearAll:e=>x.invalidateAll(e)});function O(e,n){return R(e,n)??N(e,n)}function R(e,n){try{let s=h("git",["ls-files","-z","--cached","--others","--exclude-standard"],{cwd:e,encoding:"utf-8",timeout:1e4,killSignal:"SIGKILL",stdio:["ignore","pipe","ignore"]}),o=new Set;for(let t of s.split("\0"))t&&(w(t)||n.has(l(t).toLowerCase())&&o.add(t));return o}catch{return null}}function w(e){return e.split("/").some(n=>m.has(n))}function N(e,n){let s=new Set,o=t=>{let r=t?_(e,t):e,a=y(r,{withFileTypes:!0});for(let i of a)if(!m.has(i.name)){if(i.isDirectory()){o(t?`${t}/${i.name}`:i.name);continue}n.has(l(i.name).toLowerCase())&&s.add(t?`${t}/${i.name}`:i.name)}};return o(""),s}function j(e,n,s,o){for(let t of O(e.config.projectRoot,n))e.isIgnored(t)||s&&o.has(t)||o.add(t)}export{F as a,m as b,$ as c};
2
+ //# sourceMappingURL=chunk-WXU3DGPU.js.map