@piwitests/server 0.23.0 → 0.25.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 (619) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/_nuxt/{DZECGgZm.js → 5nOoVJzL.js} +1 -1
  3. package/.output/public/_nuxt/6DSY_93j.js +1 -0
  4. package/.output/public/_nuxt/7vRR5W2L.js +1 -0
  5. package/.output/public/_nuxt/{CC8wk-N0.js → 9Dtlg-K4.js} +1 -1
  6. package/.output/public/_nuxt/9Yziijlb.js +1 -0
  7. package/.output/public/_nuxt/{DAhv9aNg.js → B-onBCAB.js} +1 -1
  8. package/.output/public/_nuxt/B2bK5uNR.js +1 -0
  9. package/.output/public/_nuxt/{B2L0-Lzp.js → B63B19Iv.js} +2 -2
  10. package/.output/public/_nuxt/{oSLbl-p0.js → B77w1Eib.js} +1 -1
  11. package/.output/public/_nuxt/{pZbe82l5.js → BC5bqlfM.js} +1 -1
  12. package/.output/public/_nuxt/{jR2xm3_t.js → BF5JDf9_.js} +1 -1
  13. package/.output/public/_nuxt/BFVrl1ss.js +1 -0
  14. package/.output/public/_nuxt/{Bj_v57Zu.js → BIHMeNW-.js} +1 -1
  15. package/.output/public/_nuxt/BKqOGcst.js +1 -0
  16. package/.output/public/_nuxt/{Bsc11YIJ.js → BLqooxh5.js} +1 -1
  17. package/.output/public/_nuxt/{Ce_j5NtN.js → BMfTUMYy.js} +1 -1
  18. package/.output/public/_nuxt/{CmTzxoQt.js → BOrnSpTA.js} +1 -1
  19. package/.output/public/_nuxt/{Bq4_kqIp.js → BPQNVV4M.js} +1 -1
  20. package/.output/public/_nuxt/{FJTsZ5Aa.js → BSKLNgre.js} +1 -1
  21. package/.output/public/_nuxt/BTCWUyBX.js +1 -0
  22. package/.output/public/_nuxt/BUYmGTVP.js +1 -0
  23. package/.output/public/_nuxt/{mi22nGUC.js → BWddBCom.js} +1 -1
  24. package/.output/public/_nuxt/{axj2iIDK.js → BYQ9lXQb.js} +1 -1
  25. package/.output/public/_nuxt/BYWQ47QQ.js +5 -0
  26. package/.output/public/_nuxt/{Bag08cIY.js → BYnqoVCE.js} +1 -1
  27. package/.output/public/_nuxt/{Clg2Qx0r.js → BaU2hm4B.js} +1 -1
  28. package/.output/public/_nuxt/{roaTZkYi.js → BbXvpkBp.js} +1 -1
  29. package/.output/public/_nuxt/Bb_925DD.js +1 -0
  30. package/.output/public/_nuxt/BcHU1KNK.js +1 -0
  31. package/.output/public/_nuxt/BdUGUwvE.js +1 -0
  32. package/.output/public/_nuxt/{D1Ucra3E.js → BeQq85yJ.js} +2 -2
  33. package/.output/public/_nuxt/Bg8yOdSf.js +1 -0
  34. package/.output/public/_nuxt/BhzfJaPC.js +1 -0
  35. package/.output/public/_nuxt/{499RbBSX.js → Bkb-0yS0.js} +4 -4
  36. package/.output/public/_nuxt/BmweLu9g.js +2 -0
  37. package/.output/public/_nuxt/Boyv6hLW.js +1 -0
  38. package/.output/public/_nuxt/{DXkFgrsT.js → Bq4xEWLF.js} +4 -4
  39. package/.output/public/_nuxt/{7_9fts7T.js → BraJd4EA.js} +1 -1
  40. package/.output/public/_nuxt/BvXrhZ8k.js +1 -0
  41. package/.output/public/_nuxt/{DNKZmhbX.js → Bw4oIhct.js} +1 -1
  42. package/.output/public/_nuxt/BxSrScjV.js +1 -0
  43. package/.output/public/_nuxt/Byqt8JHG.js +1 -0
  44. package/.output/public/_nuxt/{CNu3kken.js → BzBaMPgu.js} +4 -4
  45. package/.output/public/_nuxt/{PDSNX4Te.js → C1-8_6cB.js} +1 -1
  46. package/.output/public/_nuxt/{Ce89VyHE.js → C7SG50jD.js} +1 -1
  47. package/.output/public/_nuxt/{CBJFORiZ.js → C8WgBDU1.js} +1 -1
  48. package/.output/public/_nuxt/C8uZoJVq.js +1 -0
  49. package/.output/public/_nuxt/{D3SJGdl4.js → CBQXv4bU.js} +2 -2
  50. package/.output/public/_nuxt/CDEmotIt.js +1 -0
  51. package/.output/public/_nuxt/CIBOv3Ge.js +2 -0
  52. package/.output/public/_nuxt/CO7j4p5r.js +1 -0
  53. package/.output/public/_nuxt/COMhp7lz.js +1 -0
  54. package/.output/public/_nuxt/{jxc14CqP.js → CPiLUjjx.js} +1 -1
  55. package/.output/public/_nuxt/{DZ-KbUZi.js → CTYlay1H.js} +1 -1
  56. package/.output/public/_nuxt/{5QBnDbs_.js → CVEk4D8I.js} +1 -1
  57. package/.output/public/_nuxt/{LTMoFvEY.js → CbuK1HIv.js} +1 -1
  58. package/.output/public/_nuxt/{2yLW7WU0.js → CdLqOMvN.js} +1 -1
  59. package/.output/public/_nuxt/CdM2qNYM.js +2 -0
  60. package/.output/public/_nuxt/Ch8sGLqE.js +1 -0
  61. package/.output/public/_nuxt/CkdznmkX.js +1 -0
  62. package/.output/public/_nuxt/{DJzFYrBt.js → Cmuwgbf4.js} +1 -1
  63. package/.output/public/_nuxt/{C9I1Dp3S.js → CnRNwiuE.js} +1 -1
  64. package/.output/public/_nuxt/{Bb2mDqKr.js → CnsaoeEq.js} +1 -1
  65. package/.output/public/_nuxt/{DgEa6_av.js → Cp0V2FeW.js} +1 -1
  66. package/.output/public/_nuxt/Cvw4EFTy.js +17 -0
  67. package/.output/public/_nuxt/CwDej2Lz.js +1 -0
  68. package/.output/public/_nuxt/D-wlhH6J.js +1 -0
  69. package/.output/public/_nuxt/D5Mhpp98.js +1 -0
  70. package/.output/public/_nuxt/{CTTmX4gy.js → D8ixf-ZR.js} +5 -5
  71. package/.output/public/_nuxt/{HbnAkiyK.js → DBvdRbTA.js} +2 -2
  72. package/.output/public/_nuxt/DDho3MJD.js +1 -0
  73. package/.output/public/_nuxt/DEGHW4pO.js +1 -0
  74. package/.output/public/_nuxt/{C77tM5Hz.js → DHSYRMJp.js} +1 -1
  75. package/.output/public/_nuxt/DH_LEqhd.js +2 -0
  76. package/.output/public/_nuxt/{CUOS6S13.js → DIqik40e.js} +1 -1
  77. package/.output/public/_nuxt/DLwuL-qR.js +1 -0
  78. package/.output/public/_nuxt/{AQ86C4c2.js → DPDFGVb_.js} +2 -2
  79. package/.output/public/_nuxt/DRNHuVn4.js +2 -0
  80. package/.output/public/_nuxt/{B_MVJP17.js → DUtYU4Sb.js} +1 -1
  81. package/.output/public/_nuxt/{CAoQUDI4.js → DWl73MJR.js} +1 -1
  82. package/.output/public/_nuxt/{BZFiz2UB.js → DWz_bHNP.js} +1 -1
  83. package/.output/public/_nuxt/{CGDPUNcO.js → D_SCB-z2.js} +1 -1
  84. package/.output/public/_nuxt/{Ce47NgZw.js → D_j436ND.js} +1 -1
  85. package/.output/public/_nuxt/DamzjN7l.js +1 -0
  86. package/.output/public/_nuxt/Db5xe__T.js +1 -0
  87. package/.output/public/_nuxt/{BuGAn4f7.js → DcUBmKKE.js} +1 -1
  88. package/.output/public/_nuxt/DiP18sFE.js +1 -0
  89. package/.output/public/_nuxt/Die1200X.js +1 -0
  90. package/.output/public/_nuxt/DihSeDlY.js +9 -0
  91. package/.output/public/_nuxt/{BAbrtVp3.js → DkGXOZRW.js} +1 -1
  92. package/.output/public/_nuxt/{ZLfZolDM.js → DnOtRv65.js} +1 -1
  93. package/.output/public/_nuxt/DnV-BkUA.js +1 -0
  94. package/.output/public/_nuxt/DpeRrg68.js +1 -0
  95. package/.output/public/_nuxt/Dq6_-84R.js +1 -0
  96. package/.output/public/_nuxt/DqKFKS1b.js +1 -0
  97. package/.output/public/_nuxt/DrbO0dl5.js +6 -0
  98. package/.output/public/_nuxt/{B3G-TIoP.js → Ds8_6Fzl.js} +1 -1
  99. package/.output/public/_nuxt/{QZYo3ErV.js → DvewDI9t.js} +1 -1
  100. package/.output/public/_nuxt/E26Y1NWH.js +1 -0
  101. package/.output/public/_nuxt/Hp-_W7z4.js +1 -0
  102. package/.output/public/_nuxt/OanUGF_v.js +1 -0
  103. package/.output/public/_nuxt/{9_aJhhcm.js → RSS6R9Te.js} +12 -12
  104. package/.output/public/_nuxt/{BfcMJBTf.js → VqLetC2g.js} +1 -1
  105. package/.output/public/_nuxt/WCZdf9Ln.js +1 -0
  106. package/.output/public/_nuxt/{DBWM_xs-.js → Yl6iqHwK.js} +4 -4
  107. package/.output/public/_nuxt/builds/latest.json +1 -1
  108. package/.output/public/_nuxt/builds/meta/03f2d81b-8c58-4ea8-9a9d-7553c8ca4af6.json +1 -0
  109. package/.output/public/_nuxt/entry.DVKh2Fd6.css +1 -0
  110. package/.output/public/_nuxt/iUf7K_JR.js +1 -0
  111. package/.output/public/_nuxt/{B_JSV0yG.js → kDEwM7SQ.js} +1 -1
  112. package/.output/public/_nuxt/{BDUfBn3i.js → knaDbxMJ.js} +1 -1
  113. package/.output/public/_nuxt/lnpLc047.js +1 -0
  114. package/.output/public/_nuxt/{C2_7XZo0.js → mhvG7mu8.js} +1 -1
  115. package/.output/public/_nuxt/{Ck_fTH5z.js → qUaN2ZW8.js} +4 -4
  116. package/.output/public/_nuxt/qeqzb80l.js +1 -0
  117. package/.output/public/_nuxt/{BwwfasRt.js → uj92NYTx.js} +2 -2
  118. package/.output/public/_nuxt/vOZZ2cLi.js +1 -0
  119. package/.output/public/_nuxt/{CLWMETf9.js → zAFiz2Mg.js} +1 -1
  120. package/.output/public/demo/seed.version.json +2 -2
  121. package/.output/server/chunks/_/collect.mjs +1 -1
  122. package/.output/server/chunks/_/markers.mjs +1 -1
  123. package/.output/server/chunks/_/quarantine.mjs +1 -1
  124. package/.output/server/chunks/_/users.mjs +1 -1
  125. package/.output/server/chunks/build/{Alert-He-UxEt6.mjs → Alert-BhTWQzM5.mjs} +2 -2
  126. package/.output/server/chunks/build/Alert-BhTWQzM5.mjs.map +1 -0
  127. package/.output/server/chunks/build/{Breadcrumb-DEP2dVCZ.mjs → Breadcrumb-BJnPB2AW.mjs} +3 -3
  128. package/.output/server/chunks/build/Breadcrumb-BJnPB2AW.mjs.map +1 -0
  129. package/.output/server/chunks/build/{BreadcrumbNav-y6nMDYcR.mjs → BreadcrumbNav-C6Cun6tF.mjs} +3 -3
  130. package/.output/server/chunks/build/BreadcrumbNav-C6Cun6tF.mjs.map +1 -0
  131. package/.output/server/chunks/build/{BrowserBadge-DIASU8Gf.mjs → BrowserBadge-T1KRMIXA.mjs} +4 -4
  132. package/.output/server/chunks/build/BrowserBadge-T1KRMIXA.mjs.map +1 -0
  133. package/.output/server/chunks/build/{ChartCard-ZTsCvItQ.mjs → ChartCard-D_asI_WF.mjs} +2 -2
  134. package/.output/server/chunks/build/ChartCard-D_asI_WF.mjs.map +1 -0
  135. package/.output/server/chunks/build/{ChartMarkerTooltip-u_1DUHh-.mjs → ChartMarkerTooltip-DscESDg7.mjs} +3 -3
  136. package/.output/server/chunks/build/ChartMarkerTooltip-DscESDg7.mjs.map +1 -0
  137. package/.output/server/chunks/build/{Checkbox-BisdHf8n.mjs → Checkbox-Y9ZiIRkJ.mjs} +7 -7
  138. package/.output/server/chunks/build/Checkbox-Y9ZiIRkJ.mjs.map +1 -0
  139. package/.output/server/chunks/build/{CodeBlock-B8BNtZAe.mjs → CodeBlock-Bnn_ps9O.mjs} +5 -5
  140. package/.output/server/chunks/build/CodeBlock-Bnn_ps9O.mjs.map +1 -0
  141. package/.output/server/chunks/build/{DashboardNavbar-D7-3zBUU.mjs → DashboardNavbar-D37dPEtR.mjs} +3 -3
  142. package/.output/server/chunks/build/DashboardNavbar-D37dPEtR.mjs.map +1 -0
  143. package/.output/server/chunks/build/{DashboardSidebarToggle-C3HdHvlE.mjs → DashboardSidebarToggle-DzwsZHVx.mjs} +3 -3
  144. package/.output/server/chunks/build/DashboardSidebarToggle-DzwsZHVx.mjs.map +1 -0
  145. package/.output/server/chunks/build/{DataLocationCard-CC2-lHiP.mjs → DataLocationCard-CUXgZQEs.mjs} +4 -4
  146. package/.output/server/chunks/build/DataLocationCard-CUXgZQEs.mjs.map +1 -0
  147. package/.output/server/chunks/build/{DesktopRunLocallyButton-iNzrDsEs.mjs → DesktopRunLocallyButton-BCmQklj6.mjs} +15 -76
  148. package/.output/server/chunks/build/DesktopRunLocallyButton-BCmQklj6.mjs.map +1 -0
  149. package/.output/server/chunks/build/{DiagnosisPanel-BVb2LgHu.mjs → DiagnosisPanel-haHS2azn.mjs} +8 -8
  150. package/.output/server/chunks/build/DiagnosisPanel-haHS2azn.mjs.map +1 -0
  151. package/.output/server/chunks/build/{DiagnosisResult-xVgZlfKK.mjs → DiagnosisResult-DqTIOelM.mjs} +11 -11
  152. package/.output/server/chunks/build/DiagnosisResult-DqTIOelM.mjs.map +1 -0
  153. package/.output/server/chunks/build/{DurationValue-UX9uajQJ.mjs → DurationValue-D6fQEi5S.mjs} +2 -2
  154. package/.output/server/chunks/build/DurationValue-D6fQEi5S.mjs.map +1 -0
  155. package/.output/server/chunks/build/{EmptyState-DC2q_7TD.mjs → EmptyState-C-mCzGhO.mjs} +2 -2
  156. package/.output/server/chunks/build/EmptyState-C-mCzGhO.mjs.map +1 -0
  157. package/.output/server/chunks/build/{EntityLinks-Dzn73fbq.mjs → EntityLinks-CRJQM9Vy.mjs} +4 -4
  158. package/.output/server/chunks/build/EntityLinks-CRJQM9Vy.mjs.map +1 -0
  159. package/.output/server/chunks/build/{EnvManagedBadge-C-agmABK.mjs → EnvManagedBadge-hyelwXrw.mjs} +4 -4
  160. package/.output/server/chunks/build/EnvManagedBadge-hyelwXrw.mjs.map +1 -0
  161. package/.output/server/chunks/build/{ErrorState-CktYyeEZ.mjs → ErrorState-9UPssp7w.mjs} +2 -2
  162. package/.output/server/chunks/build/ErrorState-9UPssp7w.mjs.map +1 -0
  163. package/.output/server/chunks/build/{FeatureUnavailable-DHFkwI7t.mjs → FeatureUnavailable-CDw3__eq.mjs} +3 -3
  164. package/.output/server/chunks/build/FeatureUnavailable-CDw3__eq.mjs.map +1 -0
  165. package/.output/server/chunks/build/{FormField-GYHKiSI6.mjs → FormField-8vSc-3mb.mjs} +2 -2
  166. package/.output/server/chunks/build/FormField-8vSc-3mb.mjs.map +1 -0
  167. package/.output/server/chunks/build/{GetStartedWizard-BpcGYsm2.mjs → GetStartedWizard-Dp_tjhry.mjs} +4 -4
  168. package/.output/server/chunks/build/GetStartedWizard-Dp_tjhry.mjs.map +1 -0
  169. package/.output/server/chunks/build/{HelpHint-plioHKA0.mjs → HelpHint-Bfyo3ar6.mjs} +31 -4
  170. package/.output/server/chunks/build/HelpHint-Bfyo3ar6.mjs.map +1 -0
  171. package/.output/server/chunks/build/{LoadingState-CwpfmI0W.mjs → LoadingState-CxfFwac9.mjs} +2 -2
  172. package/.output/server/chunks/build/LoadingState-CxfFwac9.mjs.map +1 -0
  173. package/.output/server/chunks/build/{MarkerBadge-Biz5--h2.mjs → MarkerBadge-DmubzeuF.mjs} +2 -2
  174. package/.output/server/chunks/build/MarkerBadge-DmubzeuF.mjs.map +1 -0
  175. package/.output/server/chunks/build/{MetaStripGroup-A0a72vt5.mjs → MetaStripGroup-C-cNBfC9.mjs} +6 -6
  176. package/.output/server/chunks/build/MetaStripGroup-C-cNBfC9.mjs.map +1 -0
  177. package/.output/server/chunks/build/{Modal-hKLvVFNp.mjs → Modal-DcNzjvnm.mjs} +2 -2
  178. package/.output/server/chunks/build/Modal-DcNzjvnm.mjs.map +1 -0
  179. package/.output/server/chunks/build/{NavbarActions-_YjrSUat.mjs → NavbarActions-VCHW0u67.mjs} +2 -2
  180. package/.output/server/chunks/build/NavbarActions-VCHW0u67.mjs.map +1 -0
  181. package/.output/server/chunks/build/{NavigationMenu-RfBOyS32.mjs → NavigationMenu-DG6V0R9Y.mjs} +5 -5
  182. package/.output/server/chunks/build/NavigationMenu-DG6V0R9Y.mjs.map +1 -0
  183. package/.output/server/chunks/build/{OpenInIdeLink-Jp6SzEtD.mjs → OpenInIdeLink-CLj2cTkc.mjs} +6 -6
  184. package/.output/server/chunks/build/{OpenInIdeLink-Jp6SzEtD.mjs.map → OpenInIdeLink-CLj2cTkc.mjs.map} +1 -1
  185. package/.output/server/chunks/build/{ProjectTestCasesTable-DxOTfhi4.mjs → ProjectTestCasesTable-BNd5Fn_G.mjs} +15 -15
  186. package/.output/server/chunks/build/{ProjectTestCasesTable-DxOTfhi4.mjs.map → ProjectTestCasesTable-BNd5Fn_G.mjs.map} +1 -1
  187. package/.output/server/chunks/build/{RovingFocusItem-BOSx1Z9Z.mjs → RovingFocusItem-DkZadRuK.mjs} +2 -2
  188. package/.output/server/chunks/build/RovingFocusItem-DkZadRuK.mjs.map +1 -0
  189. package/.output/server/chunks/build/{RunReports-nuLb-Nm3.mjs → RunReports-CnyGcU8K.mjs} +4 -4
  190. package/.output/server/chunks/build/RunReports-CnyGcU8K.mjs.map +1 -0
  191. package/.output/server/chunks/build/{RunStatusBadge-CvWmcFYM.mjs → RunStatusBadge-DTqX18X-.mjs} +3 -3
  192. package/.output/server/chunks/build/RunStatusBadge-DTqX18X-.mjs.map +1 -0
  193. package/.output/server/chunks/build/{SectionCard-DHAFvJxm.mjs → SectionCard-taTpPtua.mjs} +3 -3
  194. package/.output/server/chunks/build/SectionCard-taTpPtua.mjs.map +1 -0
  195. package/.output/server/chunks/build/{Select-CEyw7HGK.mjs → Select-BChKOOsc.mjs} +4 -4
  196. package/.output/server/chunks/build/Select-BChKOOsc.mjs.map +1 -0
  197. package/.output/server/chunks/build/{SelectMenu-C02Hs2_F.mjs → SelectMenu-DLkMyBsW.mjs} +5 -5
  198. package/.output/server/chunks/build/{SelectMenu-C02Hs2_F.mjs.map → SelectMenu-DLkMyBsW.mjs.map} +1 -1
  199. package/.output/server/chunks/build/{Separator-lrN70ODV.mjs → Separator-Dn-4PN3P.mjs} +2 -2
  200. package/.output/server/chunks/build/Separator-Dn-4PN3P.mjs.map +1 -0
  201. package/.output/server/chunks/build/{SettingsField-tRmytcEJ.mjs → SettingsField-BLO1C7uY.mjs} +6 -6
  202. package/.output/server/chunks/build/SettingsField-BLO1C7uY.mjs.map +1 -0
  203. package/.output/server/chunks/build/{Slideover-D6cRIqch.mjs → Slideover-BiDJaQrt.mjs} +3 -3
  204. package/.output/server/chunks/build/Slideover-BiDJaQrt.mjs.map +1 -0
  205. package/.output/server/chunks/build/{Switch-R2n82ncQ.mjs → Switch-Ca3fYrSH.mjs} +4 -4
  206. package/.output/server/chunks/build/Switch-Ca3fYrSH.mjs.map +1 -0
  207. package/.output/server/chunks/build/{Table-qZdnm9t2.mjs → Table-DQb34a0A.mjs} +3 -3
  208. package/.output/server/chunks/build/Table-DQb34a0A.mjs.map +1 -0
  209. package/.output/server/chunks/build/{Tabs-BDP7MWl4.mjs → Tabs-_ALhm_oG.mjs} +3 -3
  210. package/.output/server/chunks/build/Tabs-_ALhm_oG.mjs.map +1 -0
  211. package/.output/server/chunks/build/{TestCaseHistoryChart-CKDXQ2GI.mjs → TestCaseHistoryChart-D-TEUsZ8.mjs} +3 -3
  212. package/.output/server/chunks/build/TestCaseHistoryChart-D-TEUsZ8.mjs.map +1 -0
  213. package/.output/server/chunks/build/{TestMetaBadges-BlyKmfeP.mjs → TestMetaBadges-G2dAHnT-.mjs} +2 -2
  214. package/.output/server/chunks/build/TestMetaBadges-G2dAHnT-.mjs.map +1 -0
  215. package/.output/server/chunks/build/{TestStatusBar-CvsmKJ4D.mjs → TestStatusBar-CseETAdn.mjs} +2 -2
  216. package/.output/server/chunks/build/TestStatusBar-CseETAdn.mjs.map +1 -0
  217. package/.output/server/chunks/build/{Textarea-DpmpM-lN.mjs → Textarea-CXOoRq7y.mjs} +2 -2
  218. package/.output/server/chunks/build/Textarea-CXOoRq7y.mjs.map +1 -0
  219. package/.output/server/chunks/build/{Tooltip-BI3WQErw.mjs → Tooltip-trltUr5c.mjs} +3 -3
  220. package/.output/server/chunks/build/Tooltip-trltUr5c.mjs.map +1 -0
  221. package/.output/server/chunks/build/{VisuallyHiddenInput-D4E5aJCQ.mjs → VisuallyHiddenInput-CGURvg3N.mjs} +2 -2
  222. package/.output/server/chunks/build/VisuallyHiddenInput-CGURvg3N.mjs.map +1 -0
  223. package/.output/server/chunks/build/{_id_-CrGTZymJ.mjs → _id_-B-G4eG5U.mjs} +40 -40
  224. package/.output/server/chunks/build/{_id_-CrGTZymJ.mjs.map → _id_-B-G4eG5U.mjs.map} +1 -1
  225. package/.output/server/chunks/build/{_id_-T965GKYC.mjs → _id_-Cnzg8n21.mjs} +41 -38
  226. package/.output/server/chunks/build/_id_-Cnzg8n21.mjs.map +1 -0
  227. package/.output/server/chunks/build/{_id_-wiULjAVc.mjs → _id_-Dp_d6gT7.mjs} +63 -55
  228. package/.output/server/chunks/build/{_id_-wiULjAVc.mjs.map → _id_-Dp_d6gT7.mjs.map} +1 -1
  229. package/.output/server/chunks/build/{_id_-D7UtAIPR.mjs → _id_-t2AWaYuK.mjs} +59 -52
  230. package/.output/server/chunks/build/{_id_-D7UtAIPR.mjs.map → _id_-t2AWaYuK.mjs.map} +1 -1
  231. package/.output/server/chunks/build/{about-B3V_OEiu.mjs → about-BFsHkJwE.mjs} +8 -8
  232. package/.output/server/chunks/build/about-BFsHkJwE.mjs.map +1 -0
  233. package/.output/server/chunks/build/{account-DpBdYE46.mjs → account-CZAq8kVg.mjs} +8 -8
  234. package/.output/server/chunks/build/account-CZAq8kVg.mjs.map +1 -0
  235. package/.output/server/chunks/build/{ai-DYhpzbqp.mjs → ai-BGP3GcCR.mjs} +21 -21
  236. package/.output/server/chunks/build/{ai-DYhpzbqp.mjs.map → ai-BGP3GcCR.mjs.map} +1 -1
  237. package/.output/server/chunks/build/{analytics-CZJEU0an.mjs → analytics-CXl5OWV-.mjs} +25 -25
  238. package/.output/server/chunks/build/{analytics-CZJEU0an.mjs.map → analytics-CXl5OWV-.mjs.map} +1 -1
  239. package/.output/server/chunks/build/client.precomputed.mjs +1 -1
  240. package/.output/server/chunks/build/{db.client-Bdqk_eYQ.mjs → db.client-DijpEH6i.mjs} +3 -1
  241. package/.output/server/chunks/build/db.client-DijpEH6i.mjs.map +1 -0
  242. package/.output/server/chunks/build/{default-DO1izI2V.mjs → default-4ixAePum.mjs} +209 -77
  243. package/.output/server/chunks/build/default-4ixAePum.mjs.map +1 -0
  244. package/.output/server/chunks/build/{docs-C8bndVXg.mjs → docs-Cgsd01H9.mjs} +16 -16
  245. package/.output/server/chunks/build/{docs-C8bndVXg.mjs.map → docs-Cgsd01H9.mjs.map} +1 -1
  246. package/.output/server/chunks/build/{edit-BdfF9er2.mjs → edit-BEQ-ozj9.mjs} +436 -40
  247. package/.output/server/chunks/build/edit-BEQ-ozj9.mjs.map +1 -0
  248. package/.output/server/chunks/build/{fetch-tkz5_OA-.mjs → fetch-B5TVXZ1s.mjs} +3 -3
  249. package/.output/server/chunks/build/fetch-B5TVXZ1s.mjs.map +1 -0
  250. package/.output/server/chunks/build/{forgot-password-swZRcvXE.mjs → forgot-password-mqE1mpDI.mjs} +4 -4
  251. package/.output/server/chunks/build/forgot-password-mqE1mpDI.mjs.map +1 -0
  252. package/.output/server/chunks/build/{help-content-C876a9WD.mjs → help-content-Bc99BajS.mjs} +6 -1
  253. package/.output/server/chunks/build/help-content-Bc99BajS.mjs.map +1 -0
  254. package/.output/server/chunks/build/{import-B27Sv7h5.mjs → import-DqDDTcSc.mjs} +15 -15
  255. package/.output/server/chunks/build/import-DqDDTcSc.mjs.map +1 -0
  256. package/.output/server/chunks/build/{index-ID913tUa.mjs → index-Bpdj6TXV.mjs} +5 -5
  257. package/.output/server/chunks/build/index-Bpdj6TXV.mjs.map +1 -0
  258. package/.output/server/chunks/build/{index-vRwzDXLs.mjs → index-DBFsIsjA.mjs} +534 -262
  259. package/.output/server/chunks/build/index-DBFsIsjA.mjs.map +1 -0
  260. package/.output/server/chunks/build/{index-C7m32bRI.mjs → index-DSufXCZq.mjs} +22 -18
  261. package/.output/server/chunks/build/index-DSufXCZq.mjs.map +1 -0
  262. package/.output/server/chunks/build/{index-BdZmxLtC.mjs → index-WXE60AXk.mjs} +24 -24
  263. package/.output/server/chunks/build/{index-BdZmxLtC.mjs.map → index-WXE60AXk.mjs.map} +1 -1
  264. package/.output/server/chunks/build/{index-ByWTzqF6.mjs → index-okKjrRhL.mjs} +15 -4
  265. package/.output/server/chunks/build/index-okKjrRhL.mjs.map +1 -0
  266. package/.output/server/chunks/build/{isValueEqualOrExist-D4lZ8uRY.mjs → isValueEqualOrExist-C-9DzL4K.mjs} +3 -3
  267. package/.output/server/chunks/build/isValueEqualOrExist-C-9DzL4K.mjs.map +1 -0
  268. package/.output/server/chunks/build/{login-hxCF06JT.mjs → login-eQ88UoBW.mjs} +7 -7
  269. package/.output/server/chunks/build/login-eQ88UoBW.mjs.map +1 -0
  270. package/.output/server/chunks/build/{mcp-BVW1llyW.mjs → mcp-frcSP2Zg.mjs} +14 -14
  271. package/.output/server/chunks/build/mcp-frcSP2Zg.mjs.map +1 -0
  272. package/.output/server/chunks/build/{notifications-Dn-evqXM.mjs → notifications-DAtRd5V6.mjs} +14 -14
  273. package/.output/server/chunks/build/notifications-DAtRd5V6.mjs.map +1 -0
  274. package/.output/server/chunks/build/{performance-CV8qm94u.mjs → performance-BcQzGXE7.mjs} +13 -13
  275. package/.output/server/chunks/build/performance-BcQzGXE7.mjs.map +1 -0
  276. package/.output/server/chunks/build/{pr-feedback-gKDz8LyA.mjs → pr-feedback-BHtgvegy.mjs} +11 -11
  277. package/.output/server/chunks/build/pr-feedback-BHtgvegy.mjs.map +1 -0
  278. package/.output/server/chunks/build/{reset-password-DtEISa1I.mjs → reset-password-DMHrp14-.mjs} +4 -4
  279. package/.output/server/chunks/build/reset-password-DMHrp14-.mjs.map +1 -0
  280. package/.output/server/chunks/build/server.mjs +34 -34
  281. package/.output/server/chunks/build/{settings-BJDnuLpc.mjs → settings-Bo5OETop.mjs} +11 -11
  282. package/.output/server/chunks/build/settings-Bo5OETop.mjs.map +1 -0
  283. package/.output/server/chunks/build/{settings-metadata-DnAK4Rzg.mjs → settings-metadata-BHbsWQ2g.mjs} +3 -3
  284. package/.output/server/chunks/build/settings-metadata-BHbsWQ2g.mjs.map +1 -0
  285. package/.output/server/chunks/build/{setup-BO9tXa_G.mjs → setup-DAXcxuNY.mjs} +18 -18
  286. package/.output/server/chunks/build/{setup-BO9tXa_G.mjs.map → setup-DAXcxuNY.mjs.map} +1 -1
  287. package/.output/server/chunks/build/{storage-zN92cA9q.mjs → storage-BPK0fVwx.mjs} +13 -13
  288. package/.output/server/chunks/build/storage-BPK0fVwx.mjs.map +1 -0
  289. package/.output/server/chunks/build/{tags-CJFnoyQc.mjs → tags-CoxErA5m.mjs} +8 -8
  290. package/.output/server/chunks/build/tags-CoxErA5m.mjs.map +1 -0
  291. package/.output/server/chunks/build/{test-cases-0Q6rT73d.mjs → test-cases-D8rn-0le.mjs} +27 -27
  292. package/.output/server/chunks/build/test-cases-D8rn-0le.mjs.map +1 -0
  293. package/.output/server/chunks/build/{test-functions-DVRJgiWo.mjs → test-functions-pWs9mhbJ.mjs} +13 -13
  294. package/.output/server/chunks/build/test-functions-pWs9mhbJ.mjs.map +1 -0
  295. package/.output/server/chunks/build/{useCopyRich-CZxJ7IY_.mjs → useCopyRich-BqVfhnoH.mjs} +90 -33
  296. package/.output/server/chunks/build/{useCopyRich-CZxJ7IY_.mjs.map → useCopyRich-BqVfhnoH.mjs.map} +1 -1
  297. package/.output/server/chunks/build/{useDesktopDownload-Dyf0fR47.mjs → useDesktopDownload-l80DQJ9e.mjs} +2 -2
  298. package/.output/server/chunks/build/useDesktopDownload-l80DQJ9e.mjs.map +1 -0
  299. package/.output/server/chunks/build/{useDesktopLocalRuns-k7Gw3Fv3.mjs → useDesktopLocalRuns-Dil3YzyU.mjs} +68 -6
  300. package/.output/server/chunks/build/useDesktopLocalRuns-Dil3YzyU.mjs.map +1 -0
  301. package/.output/server/chunks/build/{useDesktopProjectLink-WwLte59P.mjs → useDesktopProjectLink-BnIONB--.mjs} +21 -4
  302. package/.output/server/chunks/build/useDesktopProjectLink-BnIONB--.mjs.map +1 -0
  303. package/.output/server/chunks/build/{useFormControl-8skMOTIf.mjs → useFormControl-CXKztoWk.mjs} +2 -2
  304. package/.output/server/chunks/build/useFormControl-CXKztoWk.mjs.map +1 -0
  305. package/.output/server/chunks/build/{useOpenInIde-D74FmDNg.mjs → useOpenInIde-CbbYW3pd.mjs} +2 -2
  306. package/.output/server/chunks/build/useOpenInIde-CbbYW3pd.mjs.map +1 -0
  307. package/.output/server/chunks/build/{useSettingsNav-BLTHducV.mjs → useSettingsNav-C6NpD4Ab.mjs} +2 -2
  308. package/.output/server/chunks/build/useSettingsNav-C6NpD4Ab.mjs.map +1 -0
  309. package/.output/server/chunks/build/{users-C9bjOBde.mjs → users-C2MuCf5G.mjs} +9 -9
  310. package/.output/server/chunks/build/users-C2MuCf5G.mjs.map +1 -0
  311. package/.output/server/chunks/nitro/nitro.mjs +1032 -721
  312. package/.output/server/chunks/nitro/nitro.mjs.map +1 -1
  313. package/.output/server/chunks/routes/__piwi/session.get.mjs +1 -1
  314. package/.output/server/chunks/routes/api/ai/step-resolution.post.mjs +88 -0
  315. package/.output/server/chunks/routes/api/ai/step-resolution.post.mjs.map +1 -0
  316. package/.output/server/chunks/routes/api/analytics/_widget_.get.mjs +1 -1
  317. package/.output/server/chunks/routes/api/auth/change-password.post.mjs +1 -1
  318. package/.output/server/chunks/routes/api/auth/forgot-password.post.mjs +1 -1
  319. package/.output/server/chunks/routes/api/auth/login.post.mjs +1 -1
  320. package/.output/server/chunks/routes/api/auth/logout.post.mjs +1 -1
  321. package/.output/server/chunks/routes/api/auth/me.get.mjs +1 -1
  322. package/.output/server/chunks/routes/api/auth/oauth/_provider/callback.get.mjs +1 -1
  323. package/.output/server/chunks/routes/api/auth/oauth/_provider/login.get.mjs +1 -1
  324. package/.output/server/chunks/routes/api/auth/oauth/_provider/unlink.post.mjs +1 -1
  325. package/.output/server/chunks/routes/api/auth/reset-password.post.mjs +1 -1
  326. package/.output/server/chunks/routes/api/auth/send-verify-email.post.mjs +1 -1
  327. package/.output/server/chunks/routes/api/auth/setup.get.mjs +1 -1
  328. package/.output/server/chunks/routes/api/auth/setup.post.mjs +1 -1
  329. package/.output/server/chunks/routes/api/auth/verify-email.get.mjs +1 -1
  330. package/.output/server/chunks/routes/api/channels/_id/test.post.mjs +1 -1
  331. package/.output/server/chunks/routes/api/channels/_id_.delete.mjs +1 -1
  332. package/.output/server/chunks/routes/api/cluster-merge-suggestions/_id/approve.post.mjs +1 -1
  333. package/.output/server/chunks/routes/api/cluster-merge-suggestions/_id/reject.post.mjs +1 -1
  334. package/.output/server/chunks/routes/api/desktop/import-local.post.mjs +1 -1
  335. package/.output/server/chunks/routes/api/failure-clusters/_id/base-commit.patch.mjs +1 -1
  336. package/.output/server/chunks/routes/api/failure-clusters/_id/branches.get.mjs +1 -1
  337. package/.output/server/chunks/routes/api/failure-clusters/_id/commit-diff.get.mjs +1 -1
  338. package/.output/server/chunks/routes/api/failure-clusters/_id/commits.get.mjs +1 -1
  339. package/.output/server/chunks/routes/api/failure-clusters/_id/context.get.mjs +1 -1
  340. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnose/stream.post.mjs +1 -1
  341. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnose.post.mjs +1 -1
  342. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnoses.get.mjs +1 -1
  343. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnosis.get.mjs +1 -1
  344. package/.output/server/chunks/routes/api/failure-clusters/_id/export.get.mjs +1 -1
  345. package/.output/server/chunks/routes/api/failure-clusters/_id/extract-cases.post.mjs +1 -1
  346. package/.output/server/chunks/routes/api/failure-clusters/_id/fix-plan.get.mjs +1 -1
  347. package/.output/server/chunks/routes/api/failure-clusters/_id/status.patch.mjs +1 -1
  348. package/.output/server/chunks/routes/api/failure-clusters/_id_.get.mjs +1 -1
  349. package/.output/server/chunks/routes/api/failure-diagnoses/_id/feedback.patch.mjs +1 -1
  350. package/.output/server/chunks/routes/api/files/_...path_.get.mjs +1 -1
  351. package/.output/server/chunks/routes/api/health.get.mjs +1 -1
  352. package/.output/server/chunks/routes/api/index.get.mjs +1 -1
  353. package/.output/server/chunks/routes/api/index.get2.mjs +1 -1
  354. package/.output/server/chunks/routes/api/index.get3.mjs +1 -1
  355. package/.output/server/chunks/routes/api/index.get4.mjs +1 -1
  356. package/.output/server/chunks/routes/api/index.get5.mjs +1 -1
  357. package/.output/server/chunks/routes/api/index.post.mjs +1 -1
  358. package/.output/server/chunks/routes/api/index.post2.mjs +1 -1
  359. package/.output/server/chunks/routes/api/index.post3.mjs +1 -1
  360. package/.output/server/chunks/routes/api/index.post4.mjs +1 -1
  361. package/.output/server/chunks/routes/api/index.post5.mjs +1 -1
  362. package/.output/server/chunks/routes/api/index.post6.mjs +1 -1
  363. package/.output/server/chunks/routes/api/links/_id/refresh.post.mjs +1 -1
  364. package/.output/server/chunks/routes/api/links/_id_.delete.mjs +1 -1
  365. package/.output/server/chunks/routes/api/links/_id_.patch.mjs +1 -1
  366. package/.output/server/chunks/routes/api/markers/_id_.delete.mjs +1 -1
  367. package/.output/server/chunks/routes/api/markers/_id_.put.mjs +1 -1
  368. package/.output/server/chunks/routes/api/notifications/stream.get.mjs +1 -1
  369. package/.output/server/chunks/routes/api/projects/_id/ai-steps.get.mjs +63 -0
  370. package/.output/server/chunks/routes/api/projects/_id/ai-steps.get.mjs.map +1 -0
  371. package/.output/server/chunks/routes/api/projects/_id/cluster-merge-suggestions.get.mjs +1 -1
  372. package/.output/server/chunks/routes/api/projects/_id/failure-clusters.get.mjs +1 -1
  373. package/.output/server/chunks/routes/api/projects/_id/flaky-classify.post.mjs +1 -1
  374. package/.output/server/chunks/routes/api/projects/_id/flaky-tests.get.mjs +1 -1
  375. package/.output/server/chunks/routes/api/projects/_id/latest-run.get.mjs +1 -1
  376. package/.output/server/chunks/routes/api/projects/_id/markers.get.mjs +1 -1
  377. package/.output/server/chunks/routes/api/projects/_id/markers.post.mjs +1 -1
  378. package/.output/server/chunks/routes/api/projects/_id/members.get.mjs +1 -1
  379. package/.output/server/chunks/routes/api/projects/_id/members.put.mjs +1 -1
  380. package/.output/server/chunks/routes/api/projects/_id/performance.get.mjs +1 -1
  381. package/.output/server/chunks/routes/api/projects/_id/quarantine/_testCaseId_.delete.mjs +1 -1
  382. package/.output/server/chunks/routes/api/projects/_id/quarantine.get.mjs +1 -1
  383. package/.output/server/chunks/routes/api/projects/_id/quarantine.post.mjs +1 -1
  384. package/.output/server/chunks/routes/api/projects/_id/slow-tests.get.mjs +1 -1
  385. package/.output/server/chunks/routes/api/projects/_id/spec-health.get.mjs +1 -1
  386. package/.output/server/chunks/routes/api/projects/_id/test-cases.get.mjs +1 -1
  387. package/.output/server/chunks/routes/api/projects/_id/test-functions/extract.post.mjs +1 -1
  388. package/.output/server/chunks/routes/api/projects/_id/test-functions/validate-proposal.post.mjs +1 -1
  389. package/.output/server/chunks/routes/api/projects/_id/test-functions.get.mjs +1 -1
  390. package/.output/server/chunks/routes/api/projects/_id/test-functions.post.mjs +1 -1
  391. package/.output/server/chunks/routes/api/projects/_id/timeout-opportunities.get.mjs +1 -1
  392. package/.output/server/chunks/routes/api/projects/_id_.delete.mjs +1 -1
  393. package/.output/server/chunks/routes/api/projects/_id_.get.mjs +1 -1
  394. package/.output/server/chunks/routes/api/projects/_id_.put.mjs +1 -1
  395. package/.output/server/chunks/routes/api/projects/menu.get.mjs +1 -1
  396. package/.output/server/chunks/routes/api/projects/overview.get.mjs +1 -1
  397. package/.output/server/chunks/routes/api/projects.get.mjs +1 -1
  398. package/.output/server/chunks/routes/api/search.get.mjs +1 -1
  399. package/.output/server/chunks/routes/api/settings/ai/limits.get.mjs +1 -1
  400. package/.output/server/chunks/routes/api/settings/ai/limits.put.mjs +1 -1
  401. package/.output/server/chunks/routes/api/settings/ai/test.post.mjs +1 -1
  402. package/.output/server/chunks/routes/api/settings/ai/usage.get.mjs +1 -1
  403. package/.output/server/chunks/routes/api/settings/ai.get.mjs +1 -1
  404. package/.output/server/chunks/routes/api/settings/ai.put.mjs +1 -1
  405. package/.output/server/chunks/routes/api/settings/pr-feedback.get.mjs +1 -1
  406. package/.output/server/chunks/routes/api/settings/pr-feedback.put.mjs +1 -1
  407. package/.output/server/chunks/routes/api/settings/smtp/test.post.mjs +1 -1
  408. package/.output/server/chunks/routes/api/settings/smtp.get.mjs +1 -1
  409. package/.output/server/chunks/routes/api/settings/timeout-hygiene.get.mjs +1 -1
  410. package/.output/server/chunks/routes/api/settings/timeout-hygiene.put.mjs +1 -1
  411. package/.output/server/chunks/routes/api/settings/wasted-waits.get.mjs +1 -1
  412. package/.output/server/chunks/routes/api/settings/wasted-waits.put.mjs +1 -1
  413. package/.output/server/chunks/routes/api/setup-status.get.mjs +1 -1
  414. package/.output/server/chunks/routes/api/stream.get.mjs +1 -1
  415. package/.output/server/chunks/routes/api/subscriptions/_id_.delete.mjs +1 -1
  416. package/.output/server/chunks/routes/api/subscriptions/_id_.patch.mjs +1 -1
  417. package/.output/server/chunks/routes/api/tags/_id_.delete.mjs +1 -1
  418. package/.output/server/chunks/routes/api/tags/_id_.put.mjs +1 -1
  419. package/.output/server/chunks/routes/api/test-cases/_id/history.get.mjs +1 -1
  420. package/.output/server/chunks/routes/api/test-cases/_id/stability-trend.get.mjs +1 -1
  421. package/.output/server/chunks/routes/api/test-cases/_id_.get.mjs +1 -1
  422. package/.output/server/chunks/routes/api/test-functions/_id_.delete.mjs +1 -1
  423. package/.output/server/chunks/routes/api/test-functions/_id_.put.mjs +1 -1
  424. package/.output/server/chunks/routes/api/test-run-cases/_id/diagnose.post.mjs +1 -1
  425. package/.output/server/chunks/routes/api/test-run-cases/_id/diagnosis-context.get.mjs +1 -1
  426. package/.output/server/chunks/routes/api/test-run-cases/_id/diagnosis.get.mjs +1 -1
  427. package/.output/server/chunks/routes/api/test-run-cases/_id/export.get.mjs +1 -1
  428. package/.output/server/chunks/routes/api/test-run-cases/_id/traces.get.mjs +1 -1
  429. package/.output/server/chunks/routes/api/test-run-cases/_id_.get.mjs +1 -1
  430. package/.output/server/chunks/routes/api/test-runs/_id/begin.post.mjs +1 -1
  431. package/.output/server/chunks/routes/api/test-runs/_id/case-files.post.mjs +1 -1
  432. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/dom-snapshot.get.mjs +1 -1
  433. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/environment-diff.get.mjs +1 -1
  434. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/locator-healing.get.mjs +1 -1
  435. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/locator-pick.post.mjs +1 -1
  436. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-network-body.get.mjs +1 -1
  437. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-network.get.mjs +1 -1
  438. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-stacks.get.mjs +1 -1
  439. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/visual-diff.get.mjs +1 -1
  440. package/.output/server/chunks/routes/api/test-runs/_id/events.post.mjs +1 -1
  441. package/.output/server/chunks/routes/api/test-runs/_id/failure-groups.get.mjs +1 -1
  442. package/.output/server/chunks/routes/api/test-runs/_id/finish.post.mjs +1 -1
  443. package/.output/server/chunks/routes/api/test-runs/_id/gate.post.mjs +1 -1
  444. package/.output/server/chunks/routes/api/test-runs/_id/heartbeat.post.mjs +1 -1
  445. package/.output/server/chunks/routes/api/test-runs/_id/insights.get.mjs +1 -1
  446. package/.output/server/chunks/routes/api/test-runs/_id/network-requests.get.mjs +1 -1
  447. package/.output/server/chunks/routes/api/test-runs/_id/regression-context.get.mjs +1 -1
  448. package/.output/server/chunks/routes/api/test-runs/_id/stream.get.mjs +1 -1
  449. package/.output/server/chunks/routes/api/test-runs/_id/summary.get.mjs +1 -1
  450. package/.output/server/chunks/routes/api/test-runs/_id_.delete.mjs +1 -1
  451. package/.output/server/chunks/routes/api/test-runs/_id_.get.mjs +1 -1
  452. package/.output/server/chunks/routes/api/test-runs/_id_.patch.mjs +1 -1
  453. package/.output/server/chunks/routes/api/test-runs/import/check.post.mjs +1 -1
  454. package/.output/server/chunks/routes/api/test-runs/import.post.mjs +1 -1
  455. package/.output/server/chunks/routes/api/test-runs/recent.get.mjs +1 -1
  456. package/.output/server/chunks/routes/api/test-runs/setup.post.mjs +1 -1
  457. package/.output/server/chunks/routes/api/test-runs/start.post.mjs +1 -1
  458. package/.output/server/chunks/routes/api/test-runs/submit.post.mjs +3 -1
  459. package/.output/server/chunks/routes/api/test-runs/submit.post.mjs.map +1 -1
  460. package/.output/server/chunks/routes/api/test-runs/upload.post.mjs +2 -1
  461. package/.output/server/chunks/routes/api/test-runs/upload.post.mjs.map +1 -1
  462. package/.output/server/chunks/routes/api/tests/cleanup.delete.mjs +2 -1
  463. package/.output/server/chunks/routes/api/tests/cleanup.delete.mjs.map +1 -1
  464. package/.output/server/chunks/routes/api/traces/check.post.mjs +1 -1
  465. package/.output/server/chunks/routes/api/users/_id/api-keys/_keyId_.delete.mjs +1 -1
  466. package/.output/server/chunks/routes/api/users/_id/index.get.mjs +1 -1
  467. package/.output/server/chunks/routes/api/users/_id/index.post.mjs +1 -1
  468. package/.output/server/chunks/routes/api/users/_id/invite.post.mjs +1 -1
  469. package/.output/server/chunks/routes/api/users/_id/projects.get.mjs +1 -1
  470. package/.output/server/chunks/routes/api/users/_id/projects.put.mjs +1 -1
  471. package/.output/server/chunks/routes/api/users/_id_.delete.mjs +1 -1
  472. package/.output/server/chunks/routes/api/users/_id_.patch.mjs +1 -1
  473. package/.output/server/chunks/routes/api/version.get.mjs +1 -1
  474. package/.output/server/chunks/routes/mcp.post.mjs +1 -1
  475. package/.output/server/chunks/routes/renderer.mjs +1 -1
  476. package/.output/server/database/migrations/0045_productive_stingray.sql +1 -0
  477. package/.output/server/database/migrations/meta/0045_snapshot.json +3779 -0
  478. package/.output/server/database/migrations/meta/_journal.json +7 -0
  479. package/.output/server/database/migrations-pg/0046_gorgeous_hercules.sql +1 -0
  480. package/.output/server/database/migrations-pg/meta/0046_snapshot.json +4486 -0
  481. package/.output/server/database/migrations-pg/meta/_journal.json +7 -0
  482. package/.output/server/index.mjs +1 -1
  483. package/.output/server/package.json +1 -1
  484. package/package.json +1 -1
  485. package/.output/public/_nuxt/5SkLJHl8.js +0 -1
  486. package/.output/public/_nuxt/6sA-GK37.js +0 -1
  487. package/.output/public/_nuxt/6vX5JdHr.js +0 -1
  488. package/.output/public/_nuxt/B070fjS-.js +0 -1
  489. package/.output/public/_nuxt/B0tmRAhY.js +0 -1
  490. package/.output/public/_nuxt/B3AG2m76.js +0 -1
  491. package/.output/public/_nuxt/B4mZElvM.js +0 -1
  492. package/.output/public/_nuxt/B7tiBVLW.js +0 -1
  493. package/.output/public/_nuxt/BFYkWpPx.js +0 -1
  494. package/.output/public/_nuxt/BM5BPKlc.js +0 -1
  495. package/.output/public/_nuxt/BNyTWIad.js +0 -9
  496. package/.output/public/_nuxt/BOvtXn3m.js +0 -1
  497. package/.output/public/_nuxt/BVyjw9Bi.js +0 -1
  498. package/.output/public/_nuxt/BZOykMLD.js +0 -1
  499. package/.output/public/_nuxt/BjMo2tKC.js +0 -6
  500. package/.output/public/_nuxt/BjOFxi54.js +0 -1
  501. package/.output/public/_nuxt/BjaRappk.js +0 -1
  502. package/.output/public/_nuxt/BtZNYmZO.js +0 -1
  503. package/.output/public/_nuxt/C6t4kxaa.js +0 -1
  504. package/.output/public/_nuxt/CEai-PWF.js +0 -1
  505. package/.output/public/_nuxt/CF_eDZHu.js +0 -1
  506. package/.output/public/_nuxt/CIQeRUSy.js +0 -17
  507. package/.output/public/_nuxt/CPQRQqXU.js +0 -1
  508. package/.output/public/_nuxt/CYhm2FBS.js +0 -5
  509. package/.output/public/_nuxt/CdEzDaDI.js +0 -1
  510. package/.output/public/_nuxt/CfhOanaF.js +0 -1
  511. package/.output/public/_nuxt/CvVbKrcH.js +0 -1
  512. package/.output/public/_nuxt/Cz7SCzdW.js +0 -1
  513. package/.output/public/_nuxt/D7fxV-UA.js +0 -1
  514. package/.output/public/_nuxt/D7t0Dn3h.js +0 -1
  515. package/.output/public/_nuxt/DCE2_MKD.js +0 -2
  516. package/.output/public/_nuxt/DFfqRQxk.js +0 -1
  517. package/.output/public/_nuxt/DNqm5cWU.js +0 -1
  518. package/.output/public/_nuxt/DTrPCv7R.js +0 -1
  519. package/.output/public/_nuxt/DYjxDsYC.js +0 -1
  520. package/.output/public/_nuxt/Dbf8eT28.js +0 -1
  521. package/.output/public/_nuxt/DeewM3Wg.js +0 -2
  522. package/.output/public/_nuxt/DiWxW-w3.js +0 -2
  523. package/.output/public/_nuxt/DmqCquDx.js +0 -1
  524. package/.output/public/_nuxt/DnxrNGE_.js +0 -1
  525. package/.output/public/_nuxt/DprkT7rM.js +0 -1
  526. package/.output/public/_nuxt/DuBtaw3j.js +0 -1
  527. package/.output/public/_nuxt/DylyATWU.js +0 -2
  528. package/.output/public/_nuxt/HIGGZ_c-.js +0 -1
  529. package/.output/public/_nuxt/RkNtgoTD.js +0 -1
  530. package/.output/public/_nuxt/Wk7ZKG4B.js +0 -1
  531. package/.output/public/_nuxt/Ya8ZzWuY.js +0 -1
  532. package/.output/public/_nuxt/a8Z6VC7V.js +0 -2
  533. package/.output/public/_nuxt/builds/meta/6d1766a0-0aba-46b8-9d97-7dd174130359.json +0 -1
  534. package/.output/public/_nuxt/dUPMBJ4f.js +0 -1
  535. package/.output/public/_nuxt/eT2oObCh.js +0 -1
  536. package/.output/public/_nuxt/entry.D_eWXrnD.css +0 -1
  537. package/.output/public/_nuxt/kWnH8yJq.js +0 -1
  538. package/.output/public/_nuxt/sqqg4oXL.js +0 -1
  539. package/.output/public/_nuxt/xZQGtnVA.js +0 -1
  540. package/.output/server/chunks/build/Alert-He-UxEt6.mjs.map +0 -1
  541. package/.output/server/chunks/build/Breadcrumb-DEP2dVCZ.mjs.map +0 -1
  542. package/.output/server/chunks/build/BreadcrumbNav-y6nMDYcR.mjs.map +0 -1
  543. package/.output/server/chunks/build/BrowserBadge-DIASU8Gf.mjs.map +0 -1
  544. package/.output/server/chunks/build/ChartCard-ZTsCvItQ.mjs.map +0 -1
  545. package/.output/server/chunks/build/ChartMarkerTooltip-u_1DUHh-.mjs.map +0 -1
  546. package/.output/server/chunks/build/Checkbox-BisdHf8n.mjs.map +0 -1
  547. package/.output/server/chunks/build/CodeBlock-B8BNtZAe.mjs.map +0 -1
  548. package/.output/server/chunks/build/DashboardNavbar-D7-3zBUU.mjs.map +0 -1
  549. package/.output/server/chunks/build/DashboardSidebarToggle-C3HdHvlE.mjs.map +0 -1
  550. package/.output/server/chunks/build/DataLocationCard-CC2-lHiP.mjs.map +0 -1
  551. package/.output/server/chunks/build/DesktopRunLocallyButton-iNzrDsEs.mjs.map +0 -1
  552. package/.output/server/chunks/build/DiagnosisPanel-BVb2LgHu.mjs.map +0 -1
  553. package/.output/server/chunks/build/DiagnosisResult-xVgZlfKK.mjs.map +0 -1
  554. package/.output/server/chunks/build/DurationValue-UX9uajQJ.mjs.map +0 -1
  555. package/.output/server/chunks/build/EmptyState-DC2q_7TD.mjs.map +0 -1
  556. package/.output/server/chunks/build/EntityLinks-Dzn73fbq.mjs.map +0 -1
  557. package/.output/server/chunks/build/EnvManagedBadge-C-agmABK.mjs.map +0 -1
  558. package/.output/server/chunks/build/ErrorState-CktYyeEZ.mjs.map +0 -1
  559. package/.output/server/chunks/build/FeatureUnavailable-DHFkwI7t.mjs.map +0 -1
  560. package/.output/server/chunks/build/FormField-GYHKiSI6.mjs.map +0 -1
  561. package/.output/server/chunks/build/GetStartedWizard-BpcGYsm2.mjs.map +0 -1
  562. package/.output/server/chunks/build/HelpHint-plioHKA0.mjs.map +0 -1
  563. package/.output/server/chunks/build/LoadingState-CwpfmI0W.mjs.map +0 -1
  564. package/.output/server/chunks/build/MarkerBadge-Biz5--h2.mjs.map +0 -1
  565. package/.output/server/chunks/build/MetaStripGroup-A0a72vt5.mjs.map +0 -1
  566. package/.output/server/chunks/build/Modal-hKLvVFNp.mjs.map +0 -1
  567. package/.output/server/chunks/build/NavbarActions-_YjrSUat.mjs.map +0 -1
  568. package/.output/server/chunks/build/NavigationMenu-RfBOyS32.mjs.map +0 -1
  569. package/.output/server/chunks/build/RovingFocusItem-BOSx1Z9Z.mjs.map +0 -1
  570. package/.output/server/chunks/build/RunReports-nuLb-Nm3.mjs.map +0 -1
  571. package/.output/server/chunks/build/RunStatusBadge-CvWmcFYM.mjs.map +0 -1
  572. package/.output/server/chunks/build/SectionCard-DHAFvJxm.mjs.map +0 -1
  573. package/.output/server/chunks/build/Select-CEyw7HGK.mjs.map +0 -1
  574. package/.output/server/chunks/build/Separator-lrN70ODV.mjs.map +0 -1
  575. package/.output/server/chunks/build/SettingsField-tRmytcEJ.mjs.map +0 -1
  576. package/.output/server/chunks/build/Slideover-D6cRIqch.mjs.map +0 -1
  577. package/.output/server/chunks/build/Switch-R2n82ncQ.mjs.map +0 -1
  578. package/.output/server/chunks/build/Table-qZdnm9t2.mjs.map +0 -1
  579. package/.output/server/chunks/build/Tabs-BDP7MWl4.mjs.map +0 -1
  580. package/.output/server/chunks/build/TestCaseHistoryChart-CKDXQ2GI.mjs.map +0 -1
  581. package/.output/server/chunks/build/TestMetaBadges-BlyKmfeP.mjs.map +0 -1
  582. package/.output/server/chunks/build/TestStatusBar-CvsmKJ4D.mjs.map +0 -1
  583. package/.output/server/chunks/build/Textarea-DpmpM-lN.mjs.map +0 -1
  584. package/.output/server/chunks/build/Tooltip-BI3WQErw.mjs.map +0 -1
  585. package/.output/server/chunks/build/VisuallyHiddenInput-D4E5aJCQ.mjs.map +0 -1
  586. package/.output/server/chunks/build/_id_-T965GKYC.mjs.map +0 -1
  587. package/.output/server/chunks/build/about-B3V_OEiu.mjs.map +0 -1
  588. package/.output/server/chunks/build/account-DpBdYE46.mjs.map +0 -1
  589. package/.output/server/chunks/build/db.client-Bdqk_eYQ.mjs.map +0 -1
  590. package/.output/server/chunks/build/default-DO1izI2V.mjs.map +0 -1
  591. package/.output/server/chunks/build/edit-BdfF9er2.mjs.map +0 -1
  592. package/.output/server/chunks/build/fetch-tkz5_OA-.mjs.map +0 -1
  593. package/.output/server/chunks/build/forgot-password-swZRcvXE.mjs.map +0 -1
  594. package/.output/server/chunks/build/help-content-C876a9WD.mjs.map +0 -1
  595. package/.output/server/chunks/build/import-B27Sv7h5.mjs.map +0 -1
  596. package/.output/server/chunks/build/index-ByWTzqF6.mjs.map +0 -1
  597. package/.output/server/chunks/build/index-C7m32bRI.mjs.map +0 -1
  598. package/.output/server/chunks/build/index-ID913tUa.mjs.map +0 -1
  599. package/.output/server/chunks/build/index-vRwzDXLs.mjs.map +0 -1
  600. package/.output/server/chunks/build/isValueEqualOrExist-D4lZ8uRY.mjs.map +0 -1
  601. package/.output/server/chunks/build/login-hxCF06JT.mjs.map +0 -1
  602. package/.output/server/chunks/build/mcp-BVW1llyW.mjs.map +0 -1
  603. package/.output/server/chunks/build/notifications-Dn-evqXM.mjs.map +0 -1
  604. package/.output/server/chunks/build/performance-CV8qm94u.mjs.map +0 -1
  605. package/.output/server/chunks/build/pr-feedback-gKDz8LyA.mjs.map +0 -1
  606. package/.output/server/chunks/build/reset-password-DtEISa1I.mjs.map +0 -1
  607. package/.output/server/chunks/build/settings-BJDnuLpc.mjs.map +0 -1
  608. package/.output/server/chunks/build/settings-metadata-DnAK4Rzg.mjs.map +0 -1
  609. package/.output/server/chunks/build/storage-zN92cA9q.mjs.map +0 -1
  610. package/.output/server/chunks/build/tags-CJFnoyQc.mjs.map +0 -1
  611. package/.output/server/chunks/build/test-cases-0Q6rT73d.mjs.map +0 -1
  612. package/.output/server/chunks/build/test-functions-DVRJgiWo.mjs.map +0 -1
  613. package/.output/server/chunks/build/useDesktopDownload-Dyf0fR47.mjs.map +0 -1
  614. package/.output/server/chunks/build/useDesktopLocalRuns-k7Gw3Fv3.mjs.map +0 -1
  615. package/.output/server/chunks/build/useDesktopProjectLink-WwLte59P.mjs.map +0 -1
  616. package/.output/server/chunks/build/useFormControl-8skMOTIf.mjs.map +0 -1
  617. package/.output/server/chunks/build/useOpenInIde-D74FmDNg.mjs.map +0 -1
  618. package/.output/server/chunks/build/useSettingsNav-BLTHducV.mjs.map +0 -1
  619. package/.output/server/chunks/build/users-C9bjOBde.mjs.map +0 -1
@@ -1,50 +1,50 @@
1
- import { _ as _sfc_main$1$1, a as _sfc_main$m } from './DashboardNavbar-D7-3zBUU.mjs';
2
- import { _ as _sfc_main$1$2 } from './Breadcrumb-DEP2dVCZ.mjs';
3
- import { _ as __nuxt_component_3$1 } from './BreadcrumbNav-y6nMDYcR.mjs';
4
- import { _ as __nuxt_component_4$2 } from './NavbarActions-_YjrSUat.mjs';
5
- import { u as useRoute, k as useRouter, l as useHead, j as useToast, x as useAuth, n as _sfc_main$7$1, m as _sfc_main$k, o as _sfc_main$p, _ as _sfc_main$d$1, y as navigateTo, s as __nuxt_component_7$2, r as useRuntimeConfig, v as __nuxt_component_12, w as _sfc_main$8$1 } from './server.mjs';
6
- import { _ as _sfc_main$o } from './Separator-lrN70ODV.mjs';
7
- import { _ as __nuxt_component_2, a as __nuxt_component_9 } from './HelpHint-plioHKA0.mjs';
8
- import { _ as _sfc_main$q } from './FormField-GYHKiSI6.mjs';
9
- import { _ as _sfc_main$d } from './Select-CEyw7HGK.mjs';
1
+ import { _ as _sfc_main$1$1, a as _sfc_main$n } from './DashboardNavbar-D37dPEtR.mjs';
2
+ import { _ as _sfc_main$1$2 } from './Breadcrumb-BJnPB2AW.mjs';
3
+ import { _ as __nuxt_component_3$1 } from './BreadcrumbNav-C6Cun6tF.mjs';
4
+ import { _ as __nuxt_component_4$2 } from './NavbarActions-VCHW0u67.mjs';
5
+ import { u as useRoute, n as useRouter, o as useHead, j as useToast, x as useAuth, m as _sfc_main$7$1, l as _sfc_main$k, k as _sfc_main$p, _ as _sfc_main$d$1, y as navigateTo, s as __nuxt_component_7$2, r as useRuntimeConfig, v as __nuxt_component_12, w as _sfc_main$8$1 } from './server.mjs';
6
+ import { _ as _sfc_main$q } from './Separator-Dn-4PN3P.mjs';
7
+ import { _ as __nuxt_component_2, a as __nuxt_component_9 } from './HelpHint-Bfyo3ar6.mjs';
8
+ import { _ as _sfc_main$r } from './FormField-8vSc-3mb.mjs';
9
+ import { _ as _sfc_main$e } from './Select-BChKOOsc.mjs';
10
10
  import { computed, effectScope, defineComponent, withAsyncContext, ref, watch, withCtx, unref, isRef, createVNode, createTextVNode, toDisplayString, openBlock, createBlock, Fragment, renderList, createCommentVNode, withModifiers, mergeProps, withDirectives, vModelCheckbox, reactive, useSSRContext } from 'vue';
11
11
  import { ssrRenderComponent, ssrInterpolate, ssrRenderList, ssrRenderClass, ssrRenderAttr, ssrIncludeBooleanAttr, ssrRenderAttrs, ssrRenderStyle, ssrLooseContain } from 'vue/server-renderer';
12
- import { c3 as NOTIFICATION_EVENTS } from '../nitro/nitro.mjs';
13
- import { c as useCookie } from './DashboardSidebarToggle-C3HdHvlE.mjs';
14
- import { u as useFetch } from './fetch-tkz5_OA-.mjs';
12
+ import { c5 as NOTIFICATION_EVENTS } from '../nitro/nitro.mjs';
13
+ import { c as useCookie } from './DashboardSidebarToggle-DzwsZHVx.mjs';
14
+ import { u as useFetch } from './fetch-B5TVXZ1s.mjs';
15
15
  import { _ as __nuxt_component_4 } from './TagBadge-DwzoFCBb.mjs';
16
- import { _ as __nuxt_component_11$1 } from './SectionCard-DHAFvJxm.mjs';
17
- import { u as useDesktopProjectLink } from './useDesktopProjectLink-WwLte59P.mjs';
18
- import { _ as _sfc_main$e } from './Tabs-BDP7MWl4.mjs';
19
- import { _ as __nuxt_component_0 } from './ChartCard-ZTsCvItQ.mjs';
20
- import { _ as __nuxt_component_0$1 } from './ChartMarkerTooltip-u_1DUHh-.mjs';
21
- import { _ as __nuxt_component_4$1 } from './EmptyState-DC2q_7TD.mjs';
16
+ import { _ as _sfc_main$g } from './Card--Ike7sYc.mjs';
17
+ import { u as useDesktopProjectLink, i as inspectDesktopFolder, a as isFolderPiwiReady } from './useDesktopProjectLink-BnIONB--.mjs';
18
+ import { _ as _sfc_main$f } from './Tabs-_ALhm_oG.mjs';
19
+ import { _ as __nuxt_component_0 } from './ChartCard-D_asI_WF.mjs';
20
+ import { _ as __nuxt_component_0$1 } from './ChartMarkerTooltip-DscESDg7.mjs';
21
+ import { _ as __nuxt_component_4$1 } from './EmptyState-C-mCzGhO.mjs';
22
22
  import { u as useChartMarkers, _ as __nuxt_component_1$2 } from './useChartMarkers-C0wSO0xk.mjs';
23
23
  import { VisXYContainer, VisLine, VisAxis, VisArea } from '@unovis/vue';
24
24
  import { CurveType } from '@unovis/ts';
25
- import { _ as _sfc_main$f } from './Card--Ike7sYc.mjs';
26
- import { _ as _sfc_main$j } from './Switch-R2n82ncQ.mjs';
27
- import { _ as _sfc_main$i } from './Table-qZdnm9t2.mjs';
28
- import { _ as __nuxt_component_13$1 } from './RunStatusBadge-CvWmcFYM.mjs';
29
- import { _ as _sfc_main$l } from './Tooltip-BI3WQErw.mjs';
30
- import { _ as __nuxt_component_3 } from './BrowserBadge-DIASU8Gf.mjs';
31
- import { _ as __nuxt_component_14$1 } from './TestStatusBar-CvsmKJ4D.mjs';
32
- import { _ as __nuxt_component_14 } from './DurationValue-UX9uajQJ.mjs';
33
- import { _ as __nuxt_component_15 } from './RunReports-nuLb-Nm3.mjs';
25
+ import { _ as _sfc_main$l } from './Switch-Ca3fYrSH.mjs';
26
+ import { _ as _sfc_main$j } from './Table-DQb34a0A.mjs';
27
+ import { _ as __nuxt_component_13$1 } from './RunStatusBadge-DTqX18X-.mjs';
28
+ import { _ as _sfc_main$m } from './Tooltip-trltUr5c.mjs';
29
+ import { _ as __nuxt_component_3 } from './BrowserBadge-T1KRMIXA.mjs';
30
+ import { _ as __nuxt_component_14$1 } from './TestStatusBar-CseETAdn.mjs';
31
+ import { _ as __nuxt_component_14 } from './DurationValue-D6fQEi5S.mjs';
32
+ import { _ as __nuxt_component_15 } from './RunReports-CnyGcU8K.mjs';
33
+ import { _ as __nuxt_component_11$1 } from './SectionCard-taTpPtua.mjs';
34
34
  import { _ as __nuxt_component_3$2 } from './TableScroller-DMcdCVrH.mjs';
35
- import { v as getStatusColor, p as prettyDateFormat, w as createSortHeader, f as formatRelativeTime, b as toTestPriority, j as clusterStatusColor, i as clusterErrorTypeColor, e as errorMessage, h as fixVerificationBadge } from './index-ByWTzqF6.mjs';
36
- import { _ as __nuxt_component_2$2 } from './TestMetaBadges-BlyKmfeP.mjs';
37
- import { _ as __nuxt_component_1 } from './OpenInIdeLink-Jp6SzEtD.mjs';
38
- import { _ as __nuxt_component_13 } from './LoadingState-CwpfmI0W.mjs';
39
- import { _ as _sfc_main$h } from './SelectMenu-C02Hs2_F.mjs';
40
- import { _ as __nuxt_component_36 } from './ProjectTestCasesTable-DxOTfhi4.mjs';
41
- import { _ as __nuxt_component_5$2 } from './ErrorState-CktYyeEZ.mjs';
35
+ import { w as getStatusColor, p as prettyDateFormat, x as createSortHeader, f as formatRelativeTime, b as toTestPriority, k as clusterStatusColor, i as clusterErrorTypeColor, e as errorMessage, h as fixVerificationBadge } from './index-okKjrRhL.mjs';
36
+ import { _ as __nuxt_component_2$2 } from './TestMetaBadges-G2dAHnT-.mjs';
37
+ import { _ as __nuxt_component_1 } from './OpenInIdeLink-CLj2cTkc.mjs';
38
+ import { _ as __nuxt_component_13 } from './LoadingState-CxfFwac9.mjs';
39
+ import { _ as _sfc_main$i } from './SelectMenu-DLkMyBsW.mjs';
40
+ import { _ as __nuxt_component_36 } from './ProjectTestCasesTable-BNd5Fn_G.mjs';
41
+ import { _ as __nuxt_component_5$2 } from './ErrorState-9UPssp7w.mjs';
42
42
  import { _ as __nuxt_component_1$1 } from './StatTileGrid-7zOFUQ6j.mjs';
43
43
  import { _ as __nuxt_component_2$1 } from './StatTile-DpcVQFVI.mjs';
44
- import { _ as _sfc_main$g } from './Checkbox-BisdHf8n.mjs';
45
- import { _ as __nuxt_component_5$1 } from './MarkerBadge-Biz5--h2.mjs';
44
+ import { _ as _sfc_main$h } from './Checkbox-Y9ZiIRkJ.mjs';
45
+ import { _ as __nuxt_component_5$1 } from './MarkerBadge-DmubzeuF.mjs';
46
46
  import { g as getMarkerCategory, a as MARKER_CATEGORIES, D as DEFAULT_MARKER_CATEGORY } from '../_/marker-categories.mjs';
47
- import { _ as _sfc_main$n } from './Modal-hKLvVFNp.mjs';
47
+ import { _ as _sfc_main$o } from './Modal-DcNzjvnm.mjs';
48
48
  import { u as useRunComparison } from './useRunComparison-CiMBLpe2.mjs';
49
49
  import 'vue-router';
50
50
  import '@iconify/vue';
@@ -104,23 +104,23 @@ import 'node:zlib';
104
104
  import 'consola';
105
105
  import 'node:url';
106
106
  import '@iconify/utils';
107
- import './help-content-C876a9WD.mjs';
107
+ import './help-content-Bc99BajS.mjs';
108
108
  import './Label-DYDR1Oeh.mjs';
109
- import './useFormControl-8skMOTIf.mjs';
109
+ import './useFormControl-CXKztoWk.mjs';
110
110
  import './handleAndDispatchCustomEvent-Bk_AVSSo.mjs';
111
111
  import '@vue/shared';
112
112
  import './useTauri-Kf3HE_42.mjs';
113
- import './RovingFocusItem-BOSx1Z9Z.mjs';
113
+ import './RovingFocusItem-DkZadRuK.mjs';
114
114
  import './useForwardScopeId-D0ameaSU.mjs';
115
- import './VisuallyHiddenInput-D4E5aJCQ.mjs';
115
+ import './VisuallyHiddenInput-CGURvg3N.mjs';
116
116
  import '@tanstack/vue-table';
117
117
  import '@tanstack/vue-virtual';
118
118
  import 'date-fns';
119
- import './useOpenInIde-D74FmDNg.mjs';
119
+ import './useOpenInIde-CbbYW3pd.mjs';
120
120
  import './FilterToolbar-BwXy8xSk.mjs';
121
- import './Alert-He-UxEt6.mjs';
121
+ import './Alert-BhTWQzM5.mjs';
122
122
  import './useTreeViewCookie-CQjQdTkH.mjs';
123
- import './isValueEqualOrExist-D4lZ8uRY.mjs';
123
+ import './isValueEqualOrExist-C-9DzL4K.mjs';
124
124
 
125
125
  const COOKIE_KEY = "piwi-browser-notify";
126
126
  function defaultStored() {
@@ -317,7 +317,7 @@ function useDemoNotifications() {
317
317
  }
318
318
  return { scheduleFor, cancelFor };
319
319
  }
320
- const _sfc_main$c = /* @__PURE__ */ defineComponent({
320
+ const _sfc_main$d = /* @__PURE__ */ defineComponent({
321
321
  __name: "SubscribeBell",
322
322
  __ssrInlineRender: true,
323
323
  props: {
@@ -486,12 +486,12 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
486
486
  return (_ctx, _push, _parent, _attrs) => {
487
487
  const _component_UPopover = _sfc_main$8$1;
488
488
  const _component_UButton = _sfc_main$k;
489
- const _component_USeparator = _sfc_main$o;
489
+ const _component_USeparator = _sfc_main$q;
490
490
  const _component_HelpHint = __nuxt_component_2;
491
491
  const _component_UIcon = _sfc_main$p;
492
492
  const _component_NuxtLink = __nuxt_component_12;
493
- const _component_UFormField = _sfc_main$q;
494
- const _component_USelect = _sfc_main$d;
493
+ const _component_UFormField = _sfc_main$r;
494
+ const _component_USelect = _sfc_main$e;
495
495
  if (unref(showComponent)) {
496
496
  _push(ssrRenderComponent(_component_UPopover, mergeProps({
497
497
  open: unref(open),
@@ -1179,14 +1179,14 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
1179
1179
  };
1180
1180
  }
1181
1181
  });
1182
- const _sfc_setup$c = _sfc_main$c.setup;
1183
- _sfc_main$c.setup = (props, ctx) => {
1182
+ const _sfc_setup$d = _sfc_main$d.setup;
1183
+ _sfc_main$d.setup = (props, ctx) => {
1184
1184
  const ssrContext = useSSRContext();
1185
1185
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/project/SubscribeBell.vue");
1186
- return _sfc_setup$c ? _sfc_setup$c(props, ctx) : void 0;
1186
+ return _sfc_setup$d ? _sfc_setup$d(props, ctx) : void 0;
1187
1187
  };
1188
- const __nuxt_component_5 = Object.assign(_sfc_main$c, { __name: "SubscribeBell" });
1189
- const _sfc_main$b = /* @__PURE__ */ defineComponent({
1188
+ const __nuxt_component_5 = Object.assign(_sfc_main$d, { __name: "SubscribeBell" });
1189
+ const _sfc_main$c = /* @__PURE__ */ defineComponent({
1190
1190
  __name: "DesktopProjectLinkCard",
1191
1191
  __ssrInlineRender: true,
1192
1192
  props: {
@@ -1194,35 +1194,35 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
1194
1194
  },
1195
1195
  setup(__props) {
1196
1196
  const props = __props;
1197
- const { available, link, busy, pickAndLink, unlink } = useDesktopProjectLink(() => props.projectId);
1197
+ const { available, link } = useDesktopProjectLink(() => props.projectId);
1198
+ const inspection = ref(null);
1199
+ watch(
1200
+ () => link.value?.path,
1201
+ async (path) => {
1202
+ inspection.value = path && link.value?.exists ? await inspectDesktopFolder(path) : null;
1203
+ },
1204
+ { immediate: true }
1205
+ );
1206
+ const ready = computed(() => isFolderPiwiReady(inspection.value));
1198
1207
  return (_ctx, _push, _parent, _attrs) => {
1199
- const _component_SectionCard = __nuxt_component_11$1;
1208
+ const _component_UCard = _sfc_main$g;
1200
1209
  const _component_UIcon = _sfc_main$p;
1201
1210
  const _component_UBadge = _sfc_main$7$1;
1202
1211
  const _component_UButton = _sfc_main$k;
1203
1212
  if (unref(available)) {
1204
- _push(ssrRenderComponent(_component_SectionCard, mergeProps({
1205
- icon: "i-lucide-folder-symlink",
1206
- title: "Local folder"
1213
+ _push(ssrRenderComponent(_component_UCard, mergeProps({
1214
+ class: "shrink-0",
1215
+ ui: { body: "p-3 sm:p-3" }
1207
1216
  }, _attrs), {
1208
- subtitle: withCtx((_, _push2, _parent2, _scopeId) => {
1209
- if (_push2) {
1210
- _push2(` Link this project to its checkout on this machine to retry failures from here and open files in your IDE. `);
1211
- } else {
1212
- return [
1213
- createTextVNode(" Link this project to its checkout on this machine to retry failures from here and open files in your IDE. ")
1214
- ];
1215
- }
1216
- }),
1217
1217
  default: withCtx((_, _push2, _parent2, _scopeId) => {
1218
1218
  if (_push2) {
1219
+ _push2(`<div class="flex flex-wrap items-center justify-between gap-3"${_scopeId}><div class="flex items-center gap-2 min-w-0 text-sm"${_scopeId}>`);
1220
+ _push2(ssrRenderComponent(_component_UIcon, {
1221
+ name: unref(link) ? unref(link).exists ? "i-lucide-folder-check" : "i-lucide-folder-x" : "i-lucide-folder-symlink",
1222
+ class: ["size-4 shrink-0", unref(link) ? unref(link).exists ? "text-success" : "text-warning" : "text-muted"]
1223
+ }, null, _parent2, _scopeId));
1219
1224
  if (unref(link)) {
1220
- _push2(`<div class="flex items-center justify-between gap-3"${_scopeId}><div class="flex items-center gap-2 min-w-0 text-sm"${_scopeId}>`);
1221
- _push2(ssrRenderComponent(_component_UIcon, {
1222
- name: unref(link).exists ? "i-lucide-folder-check" : "i-lucide-folder-x",
1223
- class: ["size-4 shrink-0", unref(link).exists ? "text-success" : "text-warning"]
1224
- }, null, _parent2, _scopeId));
1225
- _push2(`<code class="text-xs break-all"${_scopeId}>${ssrInterpolate(unref(link).path)}</code>`);
1225
+ _push2(`<!--[--><code class="text-xs break-all"${_scopeId}>${ssrInterpolate(unref(link).path)}</code>`);
1226
1226
  if (!unref(link).exists) {
1227
1227
  _push2(ssrRenderComponent(_component_UBadge, {
1228
1228
  color: "warning",
@@ -1240,139 +1240,128 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
1240
1240
  }),
1241
1241
  _: 1
1242
1242
  }, _parent2, _scopeId));
1243
+ } else if (unref(ready)) {
1244
+ _push2(ssrRenderComponent(_component_UBadge, {
1245
+ color: "success",
1246
+ variant: "subtle",
1247
+ size: "sm"
1248
+ }, {
1249
+ default: withCtx((_2, _push3, _parent3, _scopeId2) => {
1250
+ if (_push3) {
1251
+ _push3(`ready`);
1252
+ } else {
1253
+ return [
1254
+ createTextVNode("ready")
1255
+ ];
1256
+ }
1257
+ }),
1258
+ _: 1
1259
+ }, _parent2, _scopeId));
1260
+ } else if (unref(inspection)) {
1261
+ _push2(ssrRenderComponent(_component_UBadge, {
1262
+ color: "warning",
1263
+ variant: "subtle",
1264
+ size: "sm"
1265
+ }, {
1266
+ default: withCtx((_2, _push3, _parent3, _scopeId2) => {
1267
+ if (_push3) {
1268
+ _push3(`needs setup`);
1269
+ } else {
1270
+ return [
1271
+ createTextVNode("needs setup")
1272
+ ];
1273
+ }
1274
+ }),
1275
+ _: 1
1276
+ }, _parent2, _scopeId));
1243
1277
  } else {
1244
1278
  _push2(`<!---->`);
1245
1279
  }
1246
- _push2(`</div><div class="flex items-center gap-1.5 shrink-0"${_scopeId}>`);
1247
- _push2(ssrRenderComponent(_component_UButton, {
1248
- size: "xs",
1249
- color: "neutral",
1250
- variant: "soft",
1251
- icon: "i-lucide-folder-search",
1252
- loading: unref(busy),
1253
- onClick: unref(pickAndLink)
1254
- }, {
1255
- default: withCtx((_2, _push3, _parent3, _scopeId2) => {
1256
- if (_push3) {
1257
- _push3(` Change `);
1258
- } else {
1259
- return [
1260
- createTextVNode(" Change ")
1261
- ];
1262
- }
1263
- }),
1264
- _: 1
1265
- }, _parent2, _scopeId));
1266
- _push2(ssrRenderComponent(_component_UButton, {
1267
- size: "xs",
1268
- color: "neutral",
1269
- variant: "ghost",
1270
- icon: "i-lucide-unlink",
1271
- disabled: unref(busy),
1272
- onClick: unref(unlink)
1273
- }, {
1274
- default: withCtx((_2, _push3, _parent3, _scopeId2) => {
1275
- if (_push3) {
1276
- _push3(` Unlink `);
1277
- } else {
1278
- return [
1279
- createTextVNode(" Unlink ")
1280
- ];
1281
- }
1282
- }),
1283
- _: 1
1284
- }, _parent2, _scopeId));
1285
- _push2(`</div></div>`);
1280
+ _push2(`<!--]-->`);
1286
1281
  } else {
1287
- _push2(`<div class="flex items-center justify-between gap-3"${_scopeId}><p class="text-sm text-muted"${_scopeId}>No folder linked yet.</p>`);
1288
- _push2(ssrRenderComponent(_component_UButton, {
1289
- size: "xs",
1290
- icon: "i-lucide-folder-plus",
1291
- loading: unref(busy),
1292
- onClick: unref(pickAndLink)
1293
- }, {
1294
- default: withCtx((_2, _push3, _parent3, _scopeId2) => {
1295
- if (_push3) {
1296
- _push3(`Choose folder…`);
1297
- } else {
1298
- return [
1299
- createTextVNode("Choose folder…")
1300
- ];
1301
- }
1302
- }),
1303
- _: 1
1304
- }, _parent2, _scopeId));
1305
- _push2(`</div>`);
1282
+ _push2(`<span class="text-muted"${_scopeId}> No local folder linked — link this project’s checkout to run tests from here and open files in your IDE. </span>`);
1306
1283
  }
1284
+ _push2(`</div>`);
1285
+ _push2(ssrRenderComponent(_component_UButton, {
1286
+ size: "xs",
1287
+ color: "neutral",
1288
+ variant: "soft",
1289
+ icon: unref(link) ? "i-lucide-settings-2" : "i-lucide-folder-plus",
1290
+ to: `/projects/${__props.projectId}/edit#local-folder`,
1291
+ title: unref(link) ? "Manage the linked folder in project settings" : "Link a folder in project settings"
1292
+ }, {
1293
+ default: withCtx((_2, _push3, _parent3, _scopeId2) => {
1294
+ if (_push3) {
1295
+ _push3(`${ssrInterpolate(unref(link) ? "Manage" : "Link folder")}`);
1296
+ } else {
1297
+ return [
1298
+ createTextVNode(toDisplayString(unref(link) ? "Manage" : "Link folder"), 1)
1299
+ ];
1300
+ }
1301
+ }),
1302
+ _: 1
1303
+ }, _parent2, _scopeId));
1304
+ _push2(`</div>`);
1307
1305
  } else {
1308
1306
  return [
1309
- unref(link) ? (openBlock(), createBlock("div", {
1310
- key: 0,
1311
- class: "flex items-center justify-between gap-3"
1312
- }, [
1307
+ createVNode("div", { class: "flex flex-wrap items-center justify-between gap-3" }, [
1313
1308
  createVNode("div", { class: "flex items-center gap-2 min-w-0 text-sm" }, [
1314
1309
  createVNode(_component_UIcon, {
1315
- name: unref(link).exists ? "i-lucide-folder-check" : "i-lucide-folder-x",
1316
- class: ["size-4 shrink-0", unref(link).exists ? "text-success" : "text-warning"]
1310
+ name: unref(link) ? unref(link).exists ? "i-lucide-folder-check" : "i-lucide-folder-x" : "i-lucide-folder-symlink",
1311
+ class: ["size-4 shrink-0", unref(link) ? unref(link).exists ? "text-success" : "text-warning" : "text-muted"]
1317
1312
  }, null, 8, ["name", "class"]),
1318
- createVNode("code", { class: "text-xs break-all" }, toDisplayString(unref(link).path), 1),
1319
- !unref(link).exists ? (openBlock(), createBlock(_component_UBadge, {
1320
- key: 0,
1321
- color: "warning",
1322
- variant: "subtle",
1323
- size: "sm"
1324
- }, {
1325
- default: withCtx(() => [
1326
- createTextVNode("missing")
1327
- ]),
1328
- _: 1
1329
- })) : createCommentVNode("", true)
1313
+ unref(link) ? (openBlock(), createBlock(Fragment, { key: 0 }, [
1314
+ createVNode("code", { class: "text-xs break-all" }, toDisplayString(unref(link).path), 1),
1315
+ !unref(link).exists ? (openBlock(), createBlock(_component_UBadge, {
1316
+ key: 0,
1317
+ color: "warning",
1318
+ variant: "subtle",
1319
+ size: "sm"
1320
+ }, {
1321
+ default: withCtx(() => [
1322
+ createTextVNode("missing")
1323
+ ]),
1324
+ _: 1
1325
+ })) : unref(ready) ? (openBlock(), createBlock(_component_UBadge, {
1326
+ key: 1,
1327
+ color: "success",
1328
+ variant: "subtle",
1329
+ size: "sm"
1330
+ }, {
1331
+ default: withCtx(() => [
1332
+ createTextVNode("ready")
1333
+ ]),
1334
+ _: 1
1335
+ })) : unref(inspection) ? (openBlock(), createBlock(_component_UBadge, {
1336
+ key: 2,
1337
+ color: "warning",
1338
+ variant: "subtle",
1339
+ size: "sm"
1340
+ }, {
1341
+ default: withCtx(() => [
1342
+ createTextVNode("needs setup")
1343
+ ]),
1344
+ _: 1
1345
+ })) : createCommentVNode("", true)
1346
+ ], 64)) : (openBlock(), createBlock("span", {
1347
+ key: 1,
1348
+ class: "text-muted"
1349
+ }, " No local folder linked — link this project’s checkout to run tests from here and open files in your IDE. "))
1330
1350
  ]),
1331
- createVNode("div", { class: "flex items-center gap-1.5 shrink-0" }, [
1332
- createVNode(_component_UButton, {
1333
- size: "xs",
1334
- color: "neutral",
1335
- variant: "soft",
1336
- icon: "i-lucide-folder-search",
1337
- loading: unref(busy),
1338
- onClick: unref(pickAndLink)
1339
- }, {
1340
- default: withCtx(() => [
1341
- createTextVNode(" Change ")
1342
- ]),
1343
- _: 1
1344
- }, 8, ["loading", "onClick"]),
1345
- createVNode(_component_UButton, {
1346
- size: "xs",
1347
- color: "neutral",
1348
- variant: "ghost",
1349
- icon: "i-lucide-unlink",
1350
- disabled: unref(busy),
1351
- onClick: unref(unlink)
1352
- }, {
1353
- default: withCtx(() => [
1354
- createTextVNode(" Unlink ")
1355
- ]),
1356
- _: 1
1357
- }, 8, ["disabled", "onClick"])
1358
- ])
1359
- ])) : (openBlock(), createBlock("div", {
1360
- key: 1,
1361
- class: "flex items-center justify-between gap-3"
1362
- }, [
1363
- createVNode("p", { class: "text-sm text-muted" }, "No folder linked yet."),
1364
1351
  createVNode(_component_UButton, {
1365
1352
  size: "xs",
1366
- icon: "i-lucide-folder-plus",
1367
- loading: unref(busy),
1368
- onClick: unref(pickAndLink)
1353
+ color: "neutral",
1354
+ variant: "soft",
1355
+ icon: unref(link) ? "i-lucide-settings-2" : "i-lucide-folder-plus",
1356
+ to: `/projects/${__props.projectId}/edit#local-folder`,
1357
+ title: unref(link) ? "Manage the linked folder in project settings" : "Link a folder in project settings"
1369
1358
  }, {
1370
1359
  default: withCtx(() => [
1371
- createTextVNode("Choose folder")
1360
+ createTextVNode(toDisplayString(unref(link) ? "Manage" : "Link folder"), 1)
1372
1361
  ]),
1373
1362
  _: 1
1374
- }, 8, ["loading", "onClick"])
1375
- ]))
1363
+ }, 8, ["icon", "to", "title"])
1364
+ ])
1376
1365
  ];
1377
1366
  }
1378
1367
  }),
@@ -1384,14 +1373,14 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
1384
1373
  };
1385
1374
  }
1386
1375
  });
1387
- const _sfc_setup$b = _sfc_main$b.setup;
1388
- _sfc_main$b.setup = (props, ctx) => {
1376
+ const _sfc_setup$c = _sfc_main$c.setup;
1377
+ _sfc_main$c.setup = (props, ctx) => {
1389
1378
  const ssrContext = useSSRContext();
1390
1379
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/desktop/DesktopProjectLinkCard.vue");
1391
- return _sfc_setup$b ? _sfc_setup$b(props, ctx) : void 0;
1380
+ return _sfc_setup$c ? _sfc_setup$c(props, ctx) : void 0;
1392
1381
  };
1393
- const __nuxt_component_7$1 = Object.assign(_sfc_main$b, { __name: "DesktopProjectLinkCard" });
1394
- const _sfc_main$a = /* @__PURE__ */ defineComponent({
1382
+ const __nuxt_component_7$1 = Object.assign(_sfc_main$c, { __name: "DesktopProjectLinkCard" });
1383
+ const _sfc_main$b = /* @__PURE__ */ defineComponent({
1395
1384
  __name: "TestRunsChart",
1396
1385
  __ssrInlineRender: true,
1397
1386
  props: {
@@ -1540,14 +1529,14 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
1540
1529
  };
1541
1530
  }
1542
1531
  });
1543
- const _sfc_setup$a = _sfc_main$a.setup;
1544
- _sfc_main$a.setup = (props, ctx) => {
1532
+ const _sfc_setup$b = _sfc_main$b.setup;
1533
+ _sfc_main$b.setup = (props, ctx) => {
1545
1534
  const ssrContext = useSSRContext();
1546
1535
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/project/TestRunsChart.vue");
1547
- return _sfc_setup$a ? _sfc_setup$a(props, ctx) : void 0;
1536
+ return _sfc_setup$b ? _sfc_setup$b(props, ctx) : void 0;
1548
1537
  };
1549
- const __nuxt_component_11 = Object.assign(_sfc_main$a, { __name: "TestRunsChart" });
1550
- const _sfc_main$9 = /* @__PURE__ */ defineComponent({
1538
+ const __nuxt_component_11 = Object.assign(_sfc_main$b, { __name: "TestRunsChart" });
1539
+ const _sfc_main$a = /* @__PURE__ */ defineComponent({
1551
1540
  __name: "ClusterMergeSuggestions",
1552
1541
  __ssrInlineRender: true,
1553
1542
  props: {
@@ -1760,14 +1749,14 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
1760
1749
  };
1761
1750
  }
1762
1751
  });
1763
- const _sfc_setup$9 = _sfc_main$9.setup;
1764
- _sfc_main$9.setup = (props, ctx) => {
1752
+ const _sfc_setup$a = _sfc_main$a.setup;
1753
+ _sfc_main$a.setup = (props, ctx) => {
1765
1754
  const ssrContext = useSSRContext();
1766
1755
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/project/ClusterMergeSuggestions.vue");
1767
- return _sfc_setup$9 ? _sfc_setup$9(props, ctx) : void 0;
1756
+ return _sfc_setup$a ? _sfc_setup$a(props, ctx) : void 0;
1768
1757
  };
1769
- const __nuxt_component_27 = Object.assign(_sfc_main$9, { __name: "ClusterMergeSuggestions" });
1770
- const _sfc_main$8 = /* @__PURE__ */ defineComponent({
1758
+ const __nuxt_component_27 = Object.assign(_sfc_main$a, { __name: "ClusterMergeSuggestions" });
1759
+ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
1771
1760
  __name: "FailureClustersList",
1772
1761
  __ssrInlineRender: true,
1773
1762
  props: {
@@ -1800,18 +1789,18 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
1800
1789
  { id: "actions", header: "Actions" }
1801
1790
  ];
1802
1791
  return (_ctx, _push, _parent, _attrs) => {
1803
- const _component_UCard = _sfc_main$f;
1792
+ const _component_UCard = _sfc_main$g;
1804
1793
  const _component_HelpHint = __nuxt_component_2;
1805
- const _component_USelect = _sfc_main$d;
1794
+ const _component_USelect = _sfc_main$e;
1806
1795
  const _component_TableScroller = __nuxt_component_3$2;
1807
- const _component_UTable = _sfc_main$i;
1796
+ const _component_UTable = _sfc_main$j;
1808
1797
  const _component_NuxtLink = __nuxt_component_12;
1809
1798
  const _component_UBadge = _sfc_main$7$1;
1810
- const _component_UTooltip = _sfc_main$l;
1799
+ const _component_UTooltip = _sfc_main$m;
1811
1800
  const _component_UIcon = _sfc_main$p;
1812
1801
  const _component_UButton = _sfc_main$k;
1813
1802
  const _component_EmptyState = __nuxt_component_4$1;
1814
- _push(ssrRenderComponent(_component_UCard, _attrs, {
1803
+ _push(ssrRenderComponent(_component_UCard, mergeProps({ "data-shot": "failure-clusters" }, _attrs), {
1815
1804
  header: withCtx((_, _push2, _parent2, _scopeId) => {
1816
1805
  if (_push2) {
1817
1806
  _push2(`<div class="flex items-center justify-between"${_scopeId}><p class="text-sm text-gray-500 inline-flex items-center gap-1"${_scopeId}> Ongoing failure signatures grouped by normalized error. `);
@@ -2556,14 +2545,14 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
2556
2545
  };
2557
2546
  }
2558
2547
  });
2559
- const _sfc_setup$8 = _sfc_main$8.setup;
2560
- _sfc_main$8.setup = (props, ctx) => {
2548
+ const _sfc_setup$9 = _sfc_main$9.setup;
2549
+ _sfc_main$9.setup = (props, ctx) => {
2561
2550
  const ssrContext = useSSRContext();
2562
2551
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/project/FailureClustersList.vue");
2563
- return _sfc_setup$8 ? _sfc_setup$8(props, ctx) : void 0;
2552
+ return _sfc_setup$9 ? _sfc_setup$9(props, ctx) : void 0;
2564
2553
  };
2565
- const __nuxt_component_28 = Object.assign(_sfc_main$8, { __name: "FailureClustersList" });
2566
- const _sfc_main$7 = /* @__PURE__ */ defineComponent({
2554
+ const __nuxt_component_28 = Object.assign(_sfc_main$9, { __name: "FailureClustersList" });
2555
+ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
2567
2556
  __name: "FlakyTestsList",
2568
2557
  __ssrInlineRender: true,
2569
2558
  props: {
@@ -2636,19 +2625,19 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
2636
2625
  { id: "actions", header: "Actions" }
2637
2626
  ];
2638
2627
  return (_ctx, _push, _parent, _attrs) => {
2639
- const _component_UCard = _sfc_main$f;
2628
+ const _component_UCard = _sfc_main$g;
2640
2629
  const _component_HelpHint = __nuxt_component_2;
2641
2630
  const _component_UBadge = _sfc_main$7$1;
2642
2631
  const _component_UIcon = _sfc_main$p;
2643
2632
  const _component_UButton = _sfc_main$k;
2644
- const _component_USelect = _sfc_main$d;
2633
+ const _component_USelect = _sfc_main$e;
2645
2634
  const _component_TableScroller = __nuxt_component_3$2;
2646
- const _component_UTable = _sfc_main$i;
2635
+ const _component_UTable = _sfc_main$j;
2647
2636
  const _component_NuxtLink = __nuxt_component_12;
2648
2637
  const _component_TestMetaBadges = __nuxt_component_2$2;
2649
2638
  const _component_OpenInIdeLink = __nuxt_component_1;
2650
2639
  const _component_TagBadge = __nuxt_component_4;
2651
- _push(ssrRenderComponent(_component_UCard, _attrs, {
2640
+ _push(ssrRenderComponent(_component_UCard, mergeProps({ "data-shot": "flaky-table" }, _attrs), {
2652
2641
  header: withCtx((_, _push2, _parent2, _scopeId) => {
2653
2642
  if (_push2) {
2654
2643
  _push2(`<div class="flex items-center justify-between"${_scopeId}><div class="flex items-center gap-3"${_scopeId}><p class="text-sm text-gray-500 inline-flex items-center gap-1"${_scopeId}> Tests that fail intermittently — detected by retry passes and status alternations `);
@@ -3379,14 +3368,14 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
3379
3368
  };
3380
3369
  }
3381
3370
  });
3382
- const _sfc_setup$7 = _sfc_main$7.setup;
3383
- _sfc_main$7.setup = (props, ctx) => {
3371
+ const _sfc_setup$8 = _sfc_main$8.setup;
3372
+ _sfc_main$8.setup = (props, ctx) => {
3384
3373
  const ssrContext = useSSRContext();
3385
3374
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/project/FlakyTestsList.vue");
3386
- return _sfc_setup$7 ? _sfc_setup$7(props, ctx) : void 0;
3375
+ return _sfc_setup$8 ? _sfc_setup$8(props, ctx) : void 0;
3387
3376
  };
3388
- const __nuxt_component_29 = Object.assign(_sfc_main$7, { __name: "FlakyTestsList" });
3389
- const _sfc_main$6 = /* @__PURE__ */ defineComponent({
3377
+ const __nuxt_component_29 = Object.assign(_sfc_main$8, { __name: "FlakyTestsList" });
3378
+ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
3390
3379
  __name: "PerformanceTrendChart",
3391
3380
  __ssrInlineRender: true,
3392
3381
  props: {
@@ -3527,14 +3516,14 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
3527
3516
  };
3528
3517
  }
3529
3518
  });
3530
- const _sfc_setup$6 = _sfc_main$6.setup;
3531
- _sfc_main$6.setup = (props, ctx) => {
3519
+ const _sfc_setup$7 = _sfc_main$7.setup;
3520
+ _sfc_main$7.setup = (props, ctx) => {
3532
3521
  const ssrContext = useSSRContext();
3533
3522
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/project/PerformanceTrendChart.vue");
3534
- return _sfc_setup$6 ? _sfc_setup$6(props, ctx) : void 0;
3523
+ return _sfc_setup$7 ? _sfc_setup$7(props, ctx) : void 0;
3535
3524
  };
3536
- const __nuxt_component_32 = Object.assign(_sfc_main$6, { __name: "PerformanceTrendChart" });
3537
- const _sfc_main$5 = /* @__PURE__ */ defineComponent({
3525
+ const __nuxt_component_32 = Object.assign(_sfc_main$7, { __name: "PerformanceTrendChart" });
3526
+ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
3538
3527
  __name: "TimeoutOpportunitiesTable",
3539
3528
  __ssrInlineRender: true,
3540
3529
  props: {
@@ -3566,11 +3555,11 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
3566
3555
  { accessorKey: "runCount", header: createSortHeader("Runs") }
3567
3556
  ];
3568
3557
  return (_ctx, _push, _parent, _attrs) => {
3569
- const _component_UCard = _sfc_main$f;
3558
+ const _component_UCard = _sfc_main$g;
3570
3559
  const _component_LoadingState = __nuxt_component_13;
3571
3560
  const _component_EmptyState = __nuxt_component_4$1;
3572
3561
  const _component_TableScroller = __nuxt_component_3$2;
3573
- const _component_UTable = _sfc_main$i;
3562
+ const _component_UTable = _sfc_main$j;
3574
3563
  const _component_NuxtLink = __nuxt_component_12;
3575
3564
  const _component_OpenInIdeLink = __nuxt_component_1;
3576
3565
  const _component_UBadge = _sfc_main$7$1;
@@ -3935,14 +3924,14 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
3935
3924
  };
3936
3925
  }
3937
3926
  });
3938
- const _sfc_setup$5 = _sfc_main$5.setup;
3939
- _sfc_main$5.setup = (props, ctx) => {
3927
+ const _sfc_setup$6 = _sfc_main$6.setup;
3928
+ _sfc_main$6.setup = (props, ctx) => {
3940
3929
  const ssrContext = useSSRContext();
3941
3930
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/project/TimeoutOpportunitiesTable.vue");
3942
- return _sfc_setup$5 ? _sfc_setup$5(props, ctx) : void 0;
3931
+ return _sfc_setup$6 ? _sfc_setup$6(props, ctx) : void 0;
3943
3932
  };
3944
- const __nuxt_component_34 = Object.assign(_sfc_main$5, { __name: "TimeoutOpportunitiesTable" });
3945
- const _sfc_main$4 = /* @__PURE__ */ defineComponent({
3933
+ const __nuxt_component_34 = Object.assign(_sfc_main$6, { __name: "TimeoutOpportunitiesTable" });
3934
+ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
3946
3935
  __name: "SpecHealthTable",
3947
3936
  __ssrInlineRender: true,
3948
3937
  props: {
@@ -3992,13 +3981,13 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
3992
3981
  { accessorKey: "avgDuration", header: createSortHeader("Avg time") }
3993
3982
  ];
3994
3983
  return (_ctx, _push, _parent, _attrs) => {
3995
- const _component_UCard = _sfc_main$f;
3984
+ const _component_UCard = _sfc_main$g;
3996
3985
  const _component_HelpHint = __nuxt_component_2;
3997
- const _component_USelect = _sfc_main$d;
3986
+ const _component_USelect = _sfc_main$e;
3998
3987
  const _component_LoadingState = __nuxt_component_13;
3999
3988
  const _component_EmptyState = __nuxt_component_4$1;
4000
3989
  const _component_TableScroller = __nuxt_component_3$2;
4001
- const _component_UTable = _sfc_main$i;
3990
+ const _component_UTable = _sfc_main$j;
4002
3991
  const _component_NuxtLink = __nuxt_component_12;
4003
3992
  _push(ssrRenderComponent(_component_UCard, _attrs, {
4004
3993
  header: withCtx((_, _push2, _parent2, _scopeId) => {
@@ -4259,13 +4248,272 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
4259
4248
  };
4260
4249
  }
4261
4250
  });
4251
+ const _sfc_setup$5 = _sfc_main$5.setup;
4252
+ _sfc_main$5.setup = (props, ctx) => {
4253
+ const ssrContext = useSSRContext();
4254
+ (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/project/SpecHealthTable.vue");
4255
+ return _sfc_setup$5 ? _sfc_setup$5(props, ctx) : void 0;
4256
+ };
4257
+ const __nuxt_component_37 = Object.assign(_sfc_main$5, { __name: "SpecHealthTable" });
4258
+ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
4259
+ __name: "AiStepCoverage",
4260
+ __ssrInlineRender: true,
4261
+ props: {
4262
+ projectId: {}
4263
+ },
4264
+ async setup(__props) {
4265
+ let __temp, __restore;
4266
+ const props = __props;
4267
+ const days = ref(30);
4268
+ const { data, pending } = ([__temp, __restore] = withAsyncContext(() => useFetch(
4269
+ () => `/api/projects/${props.projectId}/ai-steps?days=${days.value}`,
4270
+ { lazy: true, server: false, watch: [days] },
4271
+ "$XNuZ38B1nb"
4272
+ /* nuxt-injected */
4273
+ )), __temp = await __temp, __restore(), __temp);
4274
+ const artifacts = computed(() => data.value?.artifacts ?? []);
4275
+ const summary = computed(() => data.value?.summary ?? { artifactCount: 0, testCount: 0, runCount: 0, replayCount: 0 });
4276
+ function entryName(entry) {
4277
+ const parts = entry.split(/[\\/]/);
4278
+ return parts[parts.length - 1] || entry;
4279
+ }
4280
+ function relativeTime(iso) {
4281
+ if (!iso) return "—";
4282
+ const then = new Date(iso).getTime();
4283
+ if (!Number.isFinite(then)) return "—";
4284
+ const secs = Math.max(0, Math.round((Date.now() - then) / 1e3));
4285
+ if (secs < 60) return "just now";
4286
+ const mins = Math.round(secs / 60);
4287
+ if (mins < 60) return `${mins}m ago`;
4288
+ const hours = Math.round(mins / 60);
4289
+ if (hours < 24) return `${hours}h ago`;
4290
+ const days_ = Math.round(hours / 24);
4291
+ return `${days_}d ago`;
4292
+ }
4293
+ const DAY_OPTIONS = [
4294
+ { label: "Last 7 days", value: 7 },
4295
+ { label: "Last 30 days", value: 30 },
4296
+ { label: "Last 90 days", value: 90 }
4297
+ ];
4298
+ const columns = [
4299
+ { accessorKey: "entry", header: createSortHeader("Artifact") },
4300
+ { accessorKey: "testCount", header: createSortHeader("Tests") },
4301
+ { accessorKey: "replayCount", header: createSortHeader("Replays") },
4302
+ { accessorKey: "lastSeen", header: createSortHeader("Last seen") }
4303
+ ];
4304
+ return (_ctx, _push, _parent, _attrs) => {
4305
+ const _component_UCard = _sfc_main$g;
4306
+ const _component_USelect = _sfc_main$e;
4307
+ const _component_LoadingState = __nuxt_component_13;
4308
+ const _component_EmptyState = __nuxt_component_4$1;
4309
+ const _component_TableScroller = __nuxt_component_3$2;
4310
+ const _component_UTable = _sfc_main$j;
4311
+ _push(ssrRenderComponent(_component_UCard, _attrs, {
4312
+ header: withCtx((_, _push2, _parent2, _scopeId) => {
4313
+ if (_push2) {
4314
+ _push2(`<div class="flex items-center justify-between"${_scopeId}><p class="text-sm text-gray-500"${_scopeId}> AI-step liveness — which committed <code class="text-xs"${_scopeId}>piwiLocator</code> / <code class="text-xs"${_scopeId}>piwiRun</code> artifacts were replayed, and when they were last seen </p>`);
4315
+ _push2(ssrRenderComponent(_component_USelect, {
4316
+ modelValue: unref(days),
4317
+ "onUpdate:modelValue": ($event) => isRef(days) ? days.value = $event : null,
4318
+ items: DAY_OPTIONS,
4319
+ size: "xs",
4320
+ class: "w-32"
4321
+ }, null, _parent2, _scopeId));
4322
+ _push2(`</div>`);
4323
+ } else {
4324
+ return [
4325
+ createVNode("div", { class: "flex items-center justify-between" }, [
4326
+ createVNode("p", { class: "text-sm text-gray-500" }, [
4327
+ createTextVNode(" AI-step liveness — which committed "),
4328
+ createVNode("code", { class: "text-xs" }, "piwiLocator"),
4329
+ createTextVNode(" / "),
4330
+ createVNode("code", { class: "text-xs" }, "piwiRun"),
4331
+ createTextVNode(" artifacts were replayed, and when they were last seen ")
4332
+ ]),
4333
+ createVNode(_component_USelect, {
4334
+ modelValue: unref(days),
4335
+ "onUpdate:modelValue": ($event) => isRef(days) ? days.value = $event : null,
4336
+ items: DAY_OPTIONS,
4337
+ size: "xs",
4338
+ class: "w-32"
4339
+ }, null, 8, ["modelValue", "onUpdate:modelValue"])
4340
+ ])
4341
+ ];
4342
+ }
4343
+ }),
4344
+ default: withCtx((_, _push2, _parent2, _scopeId) => {
4345
+ if (_push2) {
4346
+ if (unref(pending)) {
4347
+ _push2(ssrRenderComponent(_component_LoadingState, null, null, _parent2, _scopeId));
4348
+ } else if (unref(artifacts).length === 0) {
4349
+ _push2(ssrRenderComponent(_component_EmptyState, {
4350
+ text: "No AI steps",
4351
+ description: "No committed AI-step artifacts were replayed in the selected period. Author them with page.piwiLocator / page.piwiRun in resolve mode."
4352
+ }, null, _parent2, _scopeId));
4353
+ } else {
4354
+ _push2(`<div${_scopeId}><div class="grid grid-cols-3 gap-3 mb-4"${_scopeId}><div class="rounded-lg border border-gray-200 dark:border-gray-800 p-3"${_scopeId}><div class="text-2xl font-semibold tabular-nums"${_scopeId}>${ssrInterpolate(unref(summary).artifactCount)}</div><div class="text-xs text-gray-500"${_scopeId}>Artifacts replayed</div></div><div class="rounded-lg border border-gray-200 dark:border-gray-800 p-3"${_scopeId}><div class="text-2xl font-semibold tabular-nums"${_scopeId}>${ssrInterpolate(unref(summary).testCount)}</div><div class="text-xs text-gray-500"${_scopeId}>Tests using AI steps</div></div><div class="rounded-lg border border-gray-200 dark:border-gray-800 p-3"${_scopeId}><div class="text-2xl font-semibold tabular-nums"${_scopeId}>${ssrInterpolate(unref(summary).replayCount)}</div><div class="text-xs text-gray-500"${_scopeId}>Total replays</div></div></div>`);
4355
+ _push2(ssrRenderComponent(_component_TableScroller, {
4356
+ "min-width": "40rem",
4357
+ bleed: false
4358
+ }, {
4359
+ default: withCtx((_2, _push3, _parent3, _scopeId2) => {
4360
+ if (_push3) {
4361
+ _push3(ssrRenderComponent(_component_UTable, {
4362
+ data: unref(artifacts),
4363
+ columns,
4364
+ sticky: "",
4365
+ class: "max-h-[32rem]"
4366
+ }, {
4367
+ "entry-cell": withCtx(({ row }, _push4, _parent4, _scopeId3) => {
4368
+ if (_push4) {
4369
+ _push4(`<span class="font-mono text-xs truncate block max-w-[28rem]"${ssrRenderAttr("title", row.original.entry)}${_scopeId3}>${ssrInterpolate(entryName(row.original.entry))}</span>`);
4370
+ } else {
4371
+ return [
4372
+ createVNode("span", {
4373
+ class: "font-mono text-xs truncate block max-w-[28rem]",
4374
+ title: row.original.entry
4375
+ }, toDisplayString(entryName(row.original.entry)), 9, ["title"])
4376
+ ];
4377
+ }
4378
+ }),
4379
+ "testCount-cell": withCtx(({ row }, _push4, _parent4, _scopeId3) => {
4380
+ if (_push4) {
4381
+ _push4(`<span class="tabular-nums"${_scopeId3}>${ssrInterpolate(row.original.testCount)}</span>`);
4382
+ } else {
4383
+ return [
4384
+ createVNode("span", { class: "tabular-nums" }, toDisplayString(row.original.testCount), 1)
4385
+ ];
4386
+ }
4387
+ }),
4388
+ "replayCount-cell": withCtx(({ row }, _push4, _parent4, _scopeId3) => {
4389
+ if (_push4) {
4390
+ _push4(`<span class="tabular-nums text-gray-500"${_scopeId3}>${ssrInterpolate(row.original.replayCount)}</span>`);
4391
+ } else {
4392
+ return [
4393
+ createVNode("span", { class: "tabular-nums text-gray-500" }, toDisplayString(row.original.replayCount), 1)
4394
+ ];
4395
+ }
4396
+ }),
4397
+ "lastSeen-cell": withCtx(({ row }, _push4, _parent4, _scopeId3) => {
4398
+ if (_push4) {
4399
+ _push4(`<span class="tabular-nums text-gray-500"${ssrRenderAttr("title", row.original.lastSeen || "")}${_scopeId3}>${ssrInterpolate(relativeTime(row.original.lastSeen))}</span>`);
4400
+ } else {
4401
+ return [
4402
+ createVNode("span", {
4403
+ class: "tabular-nums text-gray-500",
4404
+ title: row.original.lastSeen || ""
4405
+ }, toDisplayString(relativeTime(row.original.lastSeen)), 9, ["title"])
4406
+ ];
4407
+ }
4408
+ }),
4409
+ _: 1
4410
+ }, _parent3, _scopeId2));
4411
+ } else {
4412
+ return [
4413
+ createVNode(_component_UTable, {
4414
+ data: unref(artifacts),
4415
+ columns,
4416
+ sticky: "",
4417
+ class: "max-h-[32rem]"
4418
+ }, {
4419
+ "entry-cell": withCtx(({ row }) => [
4420
+ createVNode("span", {
4421
+ class: "font-mono text-xs truncate block max-w-[28rem]",
4422
+ title: row.original.entry
4423
+ }, toDisplayString(entryName(row.original.entry)), 9, ["title"])
4424
+ ]),
4425
+ "testCount-cell": withCtx(({ row }) => [
4426
+ createVNode("span", { class: "tabular-nums" }, toDisplayString(row.original.testCount), 1)
4427
+ ]),
4428
+ "replayCount-cell": withCtx(({ row }) => [
4429
+ createVNode("span", { class: "tabular-nums text-gray-500" }, toDisplayString(row.original.replayCount), 1)
4430
+ ]),
4431
+ "lastSeen-cell": withCtx(({ row }) => [
4432
+ createVNode("span", {
4433
+ class: "tabular-nums text-gray-500",
4434
+ title: row.original.lastSeen || ""
4435
+ }, toDisplayString(relativeTime(row.original.lastSeen)), 9, ["title"])
4436
+ ]),
4437
+ _: 1
4438
+ }, 8, ["data"])
4439
+ ];
4440
+ }
4441
+ }),
4442
+ _: 1
4443
+ }, _parent2, _scopeId));
4444
+ _push2(`</div>`);
4445
+ }
4446
+ } else {
4447
+ return [
4448
+ unref(pending) ? (openBlock(), createBlock(_component_LoadingState, { key: 0 })) : unref(artifacts).length === 0 ? (openBlock(), createBlock(_component_EmptyState, {
4449
+ key: 1,
4450
+ text: "No AI steps",
4451
+ description: "No committed AI-step artifacts were replayed in the selected period. Author them with page.piwiLocator / page.piwiRun in resolve mode."
4452
+ })) : (openBlock(), createBlock("div", { key: 2 }, [
4453
+ createVNode("div", { class: "grid grid-cols-3 gap-3 mb-4" }, [
4454
+ createVNode("div", { class: "rounded-lg border border-gray-200 dark:border-gray-800 p-3" }, [
4455
+ createVNode("div", { class: "text-2xl font-semibold tabular-nums" }, toDisplayString(unref(summary).artifactCount), 1),
4456
+ createVNode("div", { class: "text-xs text-gray-500" }, "Artifacts replayed")
4457
+ ]),
4458
+ createVNode("div", { class: "rounded-lg border border-gray-200 dark:border-gray-800 p-3" }, [
4459
+ createVNode("div", { class: "text-2xl font-semibold tabular-nums" }, toDisplayString(unref(summary).testCount), 1),
4460
+ createVNode("div", { class: "text-xs text-gray-500" }, "Tests using AI steps")
4461
+ ]),
4462
+ createVNode("div", { class: "rounded-lg border border-gray-200 dark:border-gray-800 p-3" }, [
4463
+ createVNode("div", { class: "text-2xl font-semibold tabular-nums" }, toDisplayString(unref(summary).replayCount), 1),
4464
+ createVNode("div", { class: "text-xs text-gray-500" }, "Total replays")
4465
+ ])
4466
+ ]),
4467
+ createVNode(_component_TableScroller, {
4468
+ "min-width": "40rem",
4469
+ bleed: false
4470
+ }, {
4471
+ default: withCtx(() => [
4472
+ createVNode(_component_UTable, {
4473
+ data: unref(artifacts),
4474
+ columns,
4475
+ sticky: "",
4476
+ class: "max-h-[32rem]"
4477
+ }, {
4478
+ "entry-cell": withCtx(({ row }) => [
4479
+ createVNode("span", {
4480
+ class: "font-mono text-xs truncate block max-w-[28rem]",
4481
+ title: row.original.entry
4482
+ }, toDisplayString(entryName(row.original.entry)), 9, ["title"])
4483
+ ]),
4484
+ "testCount-cell": withCtx(({ row }) => [
4485
+ createVNode("span", { class: "tabular-nums" }, toDisplayString(row.original.testCount), 1)
4486
+ ]),
4487
+ "replayCount-cell": withCtx(({ row }) => [
4488
+ createVNode("span", { class: "tabular-nums text-gray-500" }, toDisplayString(row.original.replayCount), 1)
4489
+ ]),
4490
+ "lastSeen-cell": withCtx(({ row }) => [
4491
+ createVNode("span", {
4492
+ class: "tabular-nums text-gray-500",
4493
+ title: row.original.lastSeen || ""
4494
+ }, toDisplayString(relativeTime(row.original.lastSeen)), 9, ["title"])
4495
+ ]),
4496
+ _: 1
4497
+ }, 8, ["data"])
4498
+ ]),
4499
+ _: 1
4500
+ })
4501
+ ]))
4502
+ ];
4503
+ }
4504
+ }),
4505
+ _: 1
4506
+ }, _parent));
4507
+ };
4508
+ }
4509
+ });
4262
4510
  const _sfc_setup$4 = _sfc_main$4.setup;
4263
4511
  _sfc_main$4.setup = (props, ctx) => {
4264
4512
  const ssrContext = useSSRContext();
4265
- (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/project/SpecHealthTable.vue");
4513
+ (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/project/AiStepCoverage.vue");
4266
4514
  return _sfc_setup$4 ? _sfc_setup$4(props, ctx) : void 0;
4267
4515
  };
4268
- const __nuxt_component_37 = Object.assign(_sfc_main$4, { __name: "SpecHealthTable" });
4516
+ const __nuxt_component_38 = Object.assign(_sfc_main$4, { __name: "AiStepCoverage" });
4269
4517
  const _sfc_main$3 = /* @__PURE__ */ defineComponent({
4270
4518
  __name: "QuarantineTable",
4271
4519
  __ssrInlineRender: true,
@@ -4875,7 +5123,7 @@ _sfc_main$3.setup = (props, ctx) => {
4875
5123
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/project/QuarantineTable.vue");
4876
5124
  return _sfc_setup$3 ? _sfc_setup$3(props, ctx) : void 0;
4877
5125
  };
4878
- const __nuxt_component_38 = Object.assign(_sfc_main$3, { __name: "QuarantineTable" });
5126
+ const __nuxt_component_39 = Object.assign(_sfc_main$3, { __name: "QuarantineTable" });
4879
5127
  const _sfc_main$2 = /* @__PURE__ */ defineComponent({
4880
5128
  __name: "MarkerFormModal",
4881
5129
  __ssrInlineRender: true,
@@ -5004,11 +5252,11 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
5004
5252
  const _component_EmptyState = __nuxt_component_4$1;
5005
5253
  const _component_MarkerBadge = __nuxt_component_5$1;
5006
5254
  const _component_UBadge = _sfc_main$7$1;
5007
- const _component_UTable = _sfc_main$i;
5255
+ const _component_UTable = _sfc_main$j;
5008
5256
  const _component_UIcon = _sfc_main$p;
5009
5257
  const _component_MarkerFormModal = __nuxt_component_7;
5010
5258
  const _component_ClientOnly = __nuxt_component_7$2;
5011
- const _component_UModal = _sfc_main$n;
5259
+ const _component_UModal = _sfc_main$o;
5012
5260
  _push(ssrRenderComponent(_component_SectionCard, mergeProps({
5013
5261
  title: "Timeline markers",
5014
5262
  count: __props.markers.length,
@@ -5508,7 +5756,7 @@ _sfc_main$1.setup = (props, ctx) => {
5508
5756
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/project/ProjectTimeline.vue");
5509
5757
  return _sfc_setup$1 ? _sfc_setup$1(props, ctx) : void 0;
5510
5758
  };
5511
- const __nuxt_component_40 = Object.assign(_sfc_main$1, { __name: "ProjectTimeline" });
5759
+ const __nuxt_component_41 = Object.assign(_sfc_main$1, { __name: "ProjectTimeline" });
5512
5760
  const _sfc_main = /* @__PURE__ */ defineComponent({
5513
5761
  __name: "index",
5514
5762
  __ssrInlineRender: true,
@@ -5614,6 +5862,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
5614
5862
  "test-cases",
5615
5863
  "compare",
5616
5864
  "spec-health",
5865
+ "ai-steps",
5617
5866
  "quarantine",
5618
5867
  "timeline",
5619
5868
  "members"
@@ -5666,6 +5915,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
5666
5915
  label: "Health",
5667
5916
  items: [
5668
5917
  { label: "Spec health", icon: "i-lucide-table-2", value: "spec-health", slot: "spec-health" },
5918
+ { label: "AI steps", icon: "i-lucide-wand-sparkles", value: "ai-steps", slot: "ai-steps" },
5669
5919
  { label: "Performance", icon: "i-lucide-trending-up", value: "performance", slot: "performance" },
5670
5920
  {
5671
5921
  label: `Timeline${markers.value.length ? ` (${markers.value.length})` : ""}`,
@@ -5982,24 +6232,24 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
5982
6232
  ];
5983
6233
  return (_ctx, _push, _parent, _attrs) => {
5984
6234
  const _component_UDashboardPanel = _sfc_main$1$1;
5985
- const _component_UDashboardNavbar = _sfc_main$m;
6235
+ const _component_UDashboardNavbar = _sfc_main$n;
5986
6236
  const _component_UDashboardSidebarCollapse = _sfc_main$1$2;
5987
6237
  const _component_BreadcrumbNav = __nuxt_component_3$1;
5988
6238
  const _component_NavbarActions = __nuxt_component_4$2;
5989
6239
  const _component_SubscribeBell = __nuxt_component_5;
5990
6240
  const _component_TagBadge = __nuxt_component_4;
5991
6241
  const _component_DesktopProjectLinkCard = __nuxt_component_7$1;
5992
- const _component_USelect = _sfc_main$d;
5993
- const _component_UTabs = _sfc_main$e;
6242
+ const _component_USelect = _sfc_main$e;
6243
+ const _component_UTabs = _sfc_main$f;
5994
6244
  const _component_ChartCard = __nuxt_component_0;
5995
6245
  const _component_TestRunsChart = __nuxt_component_11;
5996
- const _component_UCard = _sfc_main$f;
5997
- const _component_USwitch = _sfc_main$j;
6246
+ const _component_UCard = _sfc_main$g;
6247
+ const _component_USwitch = _sfc_main$l;
5998
6248
  const _component_HelpHint = __nuxt_component_2;
5999
6249
  const _component_UButton = _sfc_main$k;
6000
- const _component_UTable = _sfc_main$i;
6250
+ const _component_UTable = _sfc_main$j;
6001
6251
  const _component_RunStatusBadge = __nuxt_component_13$1;
6002
- const _component_UTooltip = _sfc_main$l;
6252
+ const _component_UTooltip = _sfc_main$m;
6003
6253
  const _component_UIcon = _sfc_main$p;
6004
6254
  const _component_BrowserBadge = __nuxt_component_3;
6005
6255
  const _component_UBadge = _sfc_main$7$1;
@@ -6016,12 +6266,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
6016
6266
  const _component_PerformanceTrendChart = __nuxt_component_32;
6017
6267
  const _component_OpenInIdeLink = __nuxt_component_1;
6018
6268
  const _component_TimeoutOpportunitiesTable = __nuxt_component_34;
6019
- const _component_USelectMenu = _sfc_main$h;
6269
+ const _component_USelectMenu = _sfc_main$i;
6020
6270
  const _component_ProjectTestCasesTable = __nuxt_component_36;
6021
6271
  const _component_SpecHealthTable = __nuxt_component_37;
6022
- const _component_QuarantineTable = __nuxt_component_38;
6023
- const _component_UCheckbox = _sfc_main$g;
6024
- const _component_ProjectTimeline = __nuxt_component_40;
6272
+ const _component_AiStepCoverage = __nuxt_component_38;
6273
+ const _component_QuarantineTable = __nuxt_component_39;
6274
+ const _component_UCheckbox = _sfc_main$h;
6275
+ const _component_ProjectTimeline = __nuxt_component_41;
6025
6276
  const _component_ClientOnly = __nuxt_component_7$2;
6026
6277
  _push(`<!--[-->`);
6027
6278
  _push(ssrRenderComponent(_component_UDashboardPanel, { id: "project-detail" }, {
@@ -7391,7 +7642,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
7391
7642
  _push3(ssrRenderComponent(_component_ChartCard, {
7392
7643
  title: "Performance trend",
7393
7644
  subtitle: "Duration metrics over time",
7394
- help: "project.performance"
7645
+ help: "project.performance",
7646
+ "data-shot": "performance-trend"
7395
7647
  }, {
7396
7648
  default: withCtx((_3, _push4, _parent4, _scopeId3) => {
7397
7649
  if (_push4) {
@@ -7422,7 +7674,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
7422
7674
  }),
7423
7675
  _: 1
7424
7676
  }, _parent3, _scopeId2));
7425
- _push3(ssrRenderComponent(_component_UCard, null, {
7677
+ _push3(ssrRenderComponent(_component_UCard, { "data-shot": "slowest-tests" }, {
7426
7678
  header: withCtx((_3, _push4, _parent4, _scopeId3) => {
7427
7679
  if (_push4) {
7428
7680
  _push4(`<h2 class="text-xl font-semibold inline-flex items-center gap-1"${_scopeId3}> Slowest tests `);
@@ -8087,7 +8339,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
8087
8339
  createVNode(_component_ChartCard, {
8088
8340
  title: "Performance trend",
8089
8341
  subtitle: "Duration metrics over time",
8090
- help: "project.performance"
8342
+ help: "project.performance",
8343
+ "data-shot": "performance-trend"
8091
8344
  }, {
8092
8345
  default: withCtx(() => [
8093
8346
  unref(performanceInitialLoading) ? (openBlock(), createBlock(_component_LoadingState, {
@@ -8103,7 +8356,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
8103
8356
  ]),
8104
8357
  _: 1
8105
8358
  }),
8106
- createVNode(_component_UCard, null, {
8359
+ createVNode(_component_UCard, { "data-shot": "slowest-tests" }, {
8107
8360
  header: withCtx(() => [
8108
8361
  createVNode("h2", { class: "text-xl font-semibold inline-flex items-center gap-1" }, [
8109
8362
  createTextVNode(" Slowest tests "),
@@ -9217,6 +9470,19 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
9217
9470
  ];
9218
9471
  }
9219
9472
  }),
9473
+ "ai-steps": withCtx((_2, _push3, _parent3, _scopeId2) => {
9474
+ if (_push3) {
9475
+ _push3(ssrRenderComponent(_component_AiStepCoverage, {
9476
+ "project-id": String(unref(projectId))
9477
+ }, null, _parent3, _scopeId2));
9478
+ } else {
9479
+ return [
9480
+ createVNode(_component_AiStepCoverage, {
9481
+ "project-id": String(unref(projectId))
9482
+ }, null, 8, ["project-id"])
9483
+ ];
9484
+ }
9485
+ }),
9220
9486
  quarantine: withCtx((_2, _push3, _parent3, _scopeId2) => {
9221
9487
  if (_push3) {
9222
9488
  _push3(ssrRenderComponent(_component_QuarantineTable, {
@@ -9824,7 +10090,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
9824
10090
  createVNode(_component_ChartCard, {
9825
10091
  title: "Performance trend",
9826
10092
  subtitle: "Duration metrics over time",
9827
- help: "project.performance"
10093
+ help: "project.performance",
10094
+ "data-shot": "performance-trend"
9828
10095
  }, {
9829
10096
  default: withCtx(() => [
9830
10097
  unref(performanceInitialLoading) ? (openBlock(), createBlock(_component_LoadingState, {
@@ -9840,7 +10107,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
9840
10107
  ]),
9841
10108
  _: 1
9842
10109
  }),
9843
- createVNode(_component_UCard, null, {
10110
+ createVNode(_component_UCard, { "data-shot": "slowest-tests" }, {
9844
10111
  header: withCtx(() => [
9845
10112
  createVNode("h2", { class: "text-xl font-semibold inline-flex items-center gap-1" }, [
9846
10113
  createTextVNode(" Slowest tests "),
@@ -10332,6 +10599,11 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
10332
10599
  "project-id": String(unref(projectId))
10333
10600
  }, null, 8, ["project-id"])
10334
10601
  ]),
10602
+ "ai-steps": withCtx(() => [
10603
+ createVNode(_component_AiStepCoverage, {
10604
+ "project-id": String(unref(projectId))
10605
+ }, null, 8, ["project-id"])
10606
+ ]),
10335
10607
  quarantine: withCtx(() => [
10336
10608
  createVNode(_component_QuarantineTable, {
10337
10609
  "project-id": String(unref(projectId)),
@@ -10438,4 +10710,4 @@ _sfc_main.setup = (props, ctx) => {
10438
10710
  };
10439
10711
 
10440
10712
  export { _sfc_main as default };
10441
- //# sourceMappingURL=index-vRwzDXLs.mjs.map
10713
+ //# sourceMappingURL=index-DBFsIsjA.mjs.map