@piwitests/server 0.20.0 → 0.21.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 (688) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/_nuxt/{CXEH9OPk.js → 9ti9eNH9.js} +1 -1
  3. package/.output/public/_nuxt/{oAClCn_h.js → B-zdP-D4.js} +1 -1
  4. package/.output/public/_nuxt/{DsesNydr.js → B1RmmOsM.js} +1 -1
  5. package/.output/public/_nuxt/{C0_yH0N7.js → B3Fsod9X.js} +1 -1
  6. package/.output/public/_nuxt/{Cnsmicv2.js → B3rirOqU.js} +34 -34
  7. package/.output/public/_nuxt/B3zmIJYb.js +1 -0
  8. package/.output/public/_nuxt/{DuwtTfO8.js → BAKUqW95.js} +2 -2
  9. package/.output/public/_nuxt/BG0KKQiT.js +7 -0
  10. package/.output/public/_nuxt/BGL_V7Y4.js +1 -0
  11. package/.output/public/_nuxt/{Dpd16JVI.js → BGusFAvZ.js} +1 -1
  12. package/.output/public/_nuxt/{l5WKbU4h.js → BNurUTla.js} +3 -3
  13. package/.output/public/_nuxt/BR5cR2Ot.js +1 -0
  14. package/.output/public/_nuxt/BTCh_0zN.js +1 -0
  15. package/.output/public/_nuxt/{C8e1EbJI.js → BTVqMsA3.js} +1 -1
  16. package/.output/public/_nuxt/{DabzhQB1.js → B_13C0GF.js} +1 -1
  17. package/.output/public/_nuxt/BeDIjhoR.js +44 -0
  18. package/.output/public/_nuxt/{D5tke0B5.js → BerCW7Ug.js} +1 -1
  19. package/.output/public/_nuxt/{BicAJ6U8.js → BfTNbVc_.js} +1 -1
  20. package/.output/public/_nuxt/BnbSEpXX.js +1 -0
  21. package/.output/public/_nuxt/Bo_dxehb.js +1 -0
  22. package/.output/public/_nuxt/{C2hkrSey.js → BpBHls4-.js} +1 -1
  23. package/.output/public/_nuxt/{Bm62iDV5.js → BpM6ZPIG.js} +1 -1
  24. package/.output/public/_nuxt/{GPNI1ffD.js → BqGumsDo.js} +2 -2
  25. package/.output/public/_nuxt/{A1pj0VnG.js → BrxtP_cN.js} +1 -1
  26. package/.output/public/_nuxt/{KyA_4Ks-.js → C2hNxjjz.js} +1 -1
  27. package/.output/public/_nuxt/C5PSqfKi.js +2 -0
  28. package/.output/public/_nuxt/C5vsaU4G.js +1 -0
  29. package/.output/public/_nuxt/C9sdHaXd.js +1 -0
  30. package/.output/public/_nuxt/{Und3xXFc.js → CAxgBYIt.js} +2 -2
  31. package/.output/public/_nuxt/{BmUfSNMV.js → CES2i5Pl.js} +1 -1
  32. package/.output/public/_nuxt/{CNyV9YpI.js → CFEdRqaj.js} +1 -1
  33. package/.output/public/_nuxt/{Dy-TJ0Mt.js → CFTZwazK.js} +1 -1
  34. package/.output/public/_nuxt/CIBS7ye6.js +1 -0
  35. package/.output/public/_nuxt/CIEceDOw.js +1 -0
  36. package/.output/public/_nuxt/{bLcjFslv.js → CJBhojV6.js} +1 -1
  37. package/.output/public/_nuxt/{b-GYfcrQ.js → CKYddHa6.js} +1 -1
  38. package/.output/public/_nuxt/{BKkF4pPD.js → CLVWiCds.js} +1 -1
  39. package/.output/public/_nuxt/{CwGWJbiy.js → CMYAryzi.js} +1 -1
  40. package/.output/public/_nuxt/{CjPfj7ya.js → COhdybDy.js} +1 -1
  41. package/.output/public/_nuxt/{B7FTvFWq.js → CRBXM2d6.js} +2 -2
  42. package/.output/public/_nuxt/CTD_pJ_v.js +1 -0
  43. package/.output/public/_nuxt/{Cus22Ud3.js → CTP8Pw0-.js} +2 -2
  44. package/.output/public/_nuxt/{CeW8v31b.js → CV8iF2kG.js} +1 -1
  45. package/.output/public/_nuxt/{H94BMf3L.js → CWKmbYlT.js} +1 -1
  46. package/.output/public/_nuxt/C_NfGMTd.js +9 -0
  47. package/.output/public/_nuxt/Cejoebel.js +6 -0
  48. package/.output/public/_nuxt/{FaFoMVKo.js → Chpah_7l.js} +1 -1
  49. package/.output/public/_nuxt/Ci9d8YVV.js +1 -0
  50. package/.output/public/_nuxt/{CIrFl3MW.js → CifRHVaR.js} +1 -1
  51. package/.output/public/_nuxt/{DrfE8IY0.js → Ckgsh9AT.js} +1 -1
  52. package/.output/public/_nuxt/{-f7BAm1H.js → Cpsq-kYE.js} +1 -1
  53. package/.output/public/_nuxt/Cqc-DSTF.js +1 -0
  54. package/.output/public/_nuxt/{CAAwCT7H.js → CsHulb12.js} +1 -1
  55. package/.output/public/_nuxt/Ctb2CqUf.js +5 -0
  56. package/.output/public/_nuxt/CtstIQSh.js +1 -0
  57. package/.output/public/_nuxt/{DJxlKFGb.js → CvMzDKvu.js} +1 -1
  58. package/.output/public/_nuxt/{CTU1mrhq.js → D2pBhsH8.js} +1 -1
  59. package/.output/public/_nuxt/{B3obW6cw.js → D8gX1Jde.js} +2 -2
  60. package/.output/public/_nuxt/D9knOn6D.js +1 -0
  61. package/.output/public/_nuxt/DAPTVdvA.js +1 -0
  62. package/.output/public/_nuxt/{Du2W7Jne.js → DCFbQvIN.js} +42 -42
  63. package/.output/public/_nuxt/DCoJlz_q.js +1 -0
  64. package/.output/public/_nuxt/DGnQ69wW.js +64 -0
  65. package/.output/public/_nuxt/{hNh4CIL0.js → DHzij16p.js} +1 -1
  66. package/.output/public/_nuxt/DJMCXRuW.js +5 -0
  67. package/.output/public/_nuxt/DJXcGkJP.js +2 -0
  68. package/.output/public/_nuxt/{DPCxhHri.js → DKFXZdWZ.js} +1 -1
  69. package/.output/public/_nuxt/{Bnxf8nbZ.js → DL24AjfW.js} +1 -1
  70. package/.output/public/_nuxt/DON74Yh6.js +1 -0
  71. package/.output/public/_nuxt/{5A6ITZXj.js → DQM62mxB.js} +1 -1
  72. package/.output/public/_nuxt/DSe8DxMl.js +1 -0
  73. package/.output/public/_nuxt/DWwiVTZX.js +24 -0
  74. package/.output/public/_nuxt/DX4tAP78.js +1 -0
  75. package/.output/public/_nuxt/{C1gTN4Q8.js → D_eDAIsT.js} +1 -1
  76. package/.output/public/_nuxt/Da8A92cF.js +1 -0
  77. package/.output/public/_nuxt/{CzAPFPpL.js → DdH3op4b.js} +1 -1
  78. package/.output/public/_nuxt/DepFDZO3.js +1 -0
  79. package/.output/public/_nuxt/{BzRRzmwm.js → DfSBKzrC.js} +1 -1
  80. package/.output/public/_nuxt/{BdfhYr-u.js → DfnKh3dZ.js} +1 -1
  81. package/.output/public/_nuxt/{Bow4tTR0.js → DhpTfeip.js} +1 -1
  82. package/.output/public/_nuxt/{CAvY22RE.js → Dk9nD32g.js} +1 -1
  83. package/.output/public/_nuxt/{BrQEE053.js → DkT2nCqn.js} +1 -1
  84. package/.output/public/_nuxt/DlW85lQq.js +4 -0
  85. package/.output/public/_nuxt/DnNio-ut.js +1 -0
  86. package/.output/public/_nuxt/{DdwHkKfV.js → DnQv_hst.js} +1 -1
  87. package/.output/public/_nuxt/{B99fbi73.js → DqEOMteW.js} +1 -1
  88. package/.output/public/_nuxt/{4gYNA-d4.js → Dsvu7YJT.js} +1 -1
  89. package/.output/public/_nuxt/DvhCDBrR.js +2 -0
  90. package/.output/public/_nuxt/DwQaVMZR.js +1 -0
  91. package/.output/public/_nuxt/E-_n_6vi.js +1 -0
  92. package/.output/public/_nuxt/{BT3wGCTI.js → Ebw5l7n8.js} +1 -1
  93. package/.output/public/_nuxt/{CA9B2HE5.js → IPePdbzl.js} +1 -1
  94. package/.output/public/_nuxt/{DJmoLeVt.js → LHoUGrfi.js} +1 -1
  95. package/.output/public/_nuxt/{L3kAWB2a.js → NERLHpOL.js} +1 -1
  96. package/.output/public/_nuxt/{CeG9pBAD.js → RAdNGxcF.js} +1 -1
  97. package/.output/public/_nuxt/Vxyo_mU9.js +1 -0
  98. package/.output/public/_nuxt/{pQqGiNch.js → YE1kAkU9.js} +1 -1
  99. package/.output/public/_nuxt/{CsLojMwR.js → YmT5WiN5.js} +1 -1
  100. package/.output/public/_nuxt/ZcAfCxWE.js +17 -0
  101. package/.output/public/_nuxt/{CxyAzHr3.js → _rglcvXN.js} +1 -1
  102. package/.output/public/_nuxt/bFU9Y1Vw.js +10 -0
  103. package/.output/public/_nuxt/bfecIH89.js +1 -0
  104. package/.output/public/_nuxt/builds/latest.json +1 -1
  105. package/.output/public/_nuxt/builds/meta/31ca2be4-a949-4df6-9818-773fc085557a.json +1 -0
  106. package/.output/public/_nuxt/entry.BAvBQY-h.css +1 -0
  107. package/.output/public/_nuxt/four-S1Y.js +1 -0
  108. package/.output/public/_nuxt/{CJFtzlQ4.js → gV2U_Gqd.js} +1 -1
  109. package/.output/public/_nuxt/{DeY2JkR2.js → lGC893pn.js} +1 -1
  110. package/.output/public/_nuxt/nOfj-ar8.js +1 -0
  111. package/.output/public/_nuxt/oKrbs1XK.js +1 -0
  112. package/.output/public/_nuxt/oSJFAC38.js +1 -0
  113. package/.output/public/_nuxt/rL4C0HV5.js +1 -0
  114. package/.output/public/_nuxt/{Dyeqn3aG.js → tQoyVPCE.js} +1 -1
  115. package/.output/public/_nuxt/{DfgOx_ou.js → uSPCvASp.js} +1 -1
  116. package/.output/public/_nuxt/{hC_z4G8p.js → wkz5-1SO.js} +1 -1
  117. package/.output/public/_nuxt/yYlVYKCz.js +34 -0
  118. package/.output/public/_nuxt/{AbmKWFQQ.js → zv8WdMx0.js} +1 -1
  119. package/.output/server/chunks/_/scope.mjs +43 -27
  120. package/.output/server/chunks/_/scope.mjs.map +1 -1
  121. package/.output/server/chunks/_/users.mjs +1 -1
  122. package/.output/server/chunks/build/{Breadcrumb-Ak2Lg3oM.mjs → Breadcrumb-3itRZ1uz.mjs} +2 -2
  123. package/.output/server/chunks/build/Breadcrumb-3itRZ1uz.mjs.map +1 -0
  124. package/.output/server/chunks/build/{BreadcrumbNav-DO7I_z-n.mjs → BreadcrumbNav-GnjBvXuT.mjs} +2 -2
  125. package/.output/server/chunks/build/BreadcrumbNav-GnjBvXuT.mjs.map +1 -0
  126. package/.output/server/chunks/build/{BrowserBadge-MFvBwxmD.mjs → BrowserBadge-DQqJS9CV.mjs} +2 -2
  127. package/.output/server/chunks/build/BrowserBadge-DQqJS9CV.mjs.map +1 -0
  128. package/.output/server/chunks/build/{ChartCard-Y1UKwMsf.mjs → ChartCard-D0rzMf-N.mjs} +2 -2
  129. package/.output/server/chunks/build/ChartCard-D0rzMf-N.mjs.map +1 -0
  130. package/.output/server/chunks/build/{Checkbox-4Q5d0fa0.mjs → Checkbox-DmRKG-0s.mjs} +3 -3
  131. package/.output/server/chunks/build/Checkbox-DmRKG-0s.mjs.map +1 -0
  132. package/.output/server/chunks/build/{CodeBlock-BgE-NSmE.mjs → CodeBlock-DGhKVFad.mjs} +4 -4
  133. package/.output/server/chunks/build/CodeBlock-DGhKVFad.mjs.map +1 -0
  134. package/.output/server/chunks/build/{DashboardNavbar-BHmMSPX7.mjs → DashboardNavbar-DCr10nxL.mjs} +2 -2
  135. package/.output/server/chunks/build/DashboardNavbar-DCr10nxL.mjs.map +1 -0
  136. package/.output/server/chunks/build/{DashboardSidebarToggle-DCTnHiIv.mjs → DashboardSidebarToggle-8EpBhX0R.mjs} +3 -3
  137. package/.output/server/chunks/build/DashboardSidebarToggle-8EpBhX0R.mjs.map +1 -0
  138. package/.output/server/chunks/build/{DataLocationCard-B_YHdzSz.mjs → DataLocationCard-rzS-pgCP.mjs} +5 -5
  139. package/.output/server/chunks/build/DataLocationCard-rzS-pgCP.mjs.map +1 -0
  140. package/.output/server/chunks/build/{DiagnosisPanel-CALyEmcJ.mjs → DiagnosisPanel-BWTpoCKy.mjs} +8 -7
  141. package/.output/server/chunks/build/DiagnosisPanel-BWTpoCKy.mjs.map +1 -0
  142. package/.output/server/chunks/build/{useAiStatus-CxjMmDDY.mjs → DiagnosisResult-Br3qBLXe.mjs} +10 -32
  143. package/.output/server/chunks/build/DiagnosisResult-Br3qBLXe.mjs.map +1 -0
  144. package/.output/server/chunks/build/{DurationValue-D20oGbnc.mjs → DurationValue-CWKfjIF2.mjs} +2 -2
  145. package/.output/server/chunks/build/DurationValue-CWKfjIF2.mjs.map +1 -0
  146. package/.output/server/chunks/build/{EntityLinks-BBHWssHH.mjs → EntityLinks-CF0xG3Y8.mjs} +6 -6
  147. package/.output/server/chunks/build/EntityLinks-CF0xG3Y8.mjs.map +1 -0
  148. package/.output/server/chunks/build/EnvManagedBadge-UwD2b9v2.mjs +1 -1
  149. package/.output/server/chunks/build/FeatureUnavailable-CwPms6X_.mjs +83 -0
  150. package/.output/server/chunks/build/FeatureUnavailable-CwPms6X_.mjs.map +1 -0
  151. package/.output/server/chunks/build/{FormField-B0HKsdMd.mjs → FormField-e7OnSKPM.mjs} +2 -2
  152. package/.output/server/chunks/build/FormField-e7OnSKPM.mjs.map +1 -0
  153. package/.output/server/chunks/build/GetStartedWizard-CB5v1Xzu.mjs +510 -0
  154. package/.output/server/chunks/build/GetStartedWizard-CB5v1Xzu.mjs.map +1 -0
  155. package/.output/server/chunks/build/{HelpHint-DrcIv-Oj.mjs → HelpHint-DjGrGFA7.mjs} +3 -3
  156. package/.output/server/chunks/build/HelpHint-DjGrGFA7.mjs.map +1 -0
  157. package/.output/server/chunks/build/{LoadingState-C3pBSuOO.mjs → LoadingState-B8v1nWJt.mjs} +3 -3
  158. package/.output/server/chunks/build/LoadingState-B8v1nWJt.mjs.map +1 -0
  159. package/.output/server/chunks/build/{CiEnvCard-DB5DvBh1.mjs → MetaStripGroup-dXXa_MzF.mjs} +242 -529
  160. package/.output/server/chunks/build/MetaStripGroup-dXXa_MzF.mjs.map +1 -0
  161. package/.output/server/chunks/build/{MiniRunBars-CZMugDrh.mjs → MiniRunBars-fgLMgRUp.mjs} +2 -2
  162. package/.output/server/chunks/build/MiniRunBars-fgLMgRUp.mjs.map +1 -0
  163. package/.output/server/chunks/build/{useSettingsNav-DnQKacz8.mjs → NavigationMenu-cqpt11Ce.mjs} +5 -28
  164. package/.output/server/chunks/build/NavigationMenu-cqpt11Ce.mjs.map +1 -0
  165. package/.output/server/chunks/build/{OpenInIdeLink-CQWKKChd.mjs → OpenInIdeLink-B9wvQkhy.mjs} +5 -5
  166. package/.output/server/chunks/build/{OpenInIdeLink-CQWKKChd.mjs.map → OpenInIdeLink-B9wvQkhy.mjs.map} +1 -1
  167. package/.output/server/chunks/build/{ProjectTestCasesTable-Bo61P5K1.mjs → ProjectTestCasesTable-BwHEtZTz.mjs} +15 -15
  168. package/.output/server/chunks/build/ProjectTestCasesTable-BwHEtZTz.mjs.map +1 -0
  169. package/.output/server/chunks/build/{RunReports-DFLv51TX.mjs → RunReports-BDRIWn3o.mjs} +2 -2
  170. package/.output/server/chunks/build/RunReports-BDRIWn3o.mjs.map +1 -0
  171. package/.output/server/chunks/build/{RunStatusBadge-FfGb6bkW.mjs → RunStatusBadge-CuTDknRJ.mjs} +2 -2
  172. package/.output/server/chunks/build/RunStatusBadge-CuTDknRJ.mjs.map +1 -0
  173. package/.output/server/chunks/build/{SectionCard-CN-v0FZ_.mjs → SectionCard-BW5Lynrr.mjs} +2 -2
  174. package/.output/server/chunks/build/SectionCard-BW5Lynrr.mjs.map +1 -0
  175. package/.output/server/chunks/build/{Select-5DK9frQ7.mjs → Select-CVctwpib.mjs} +3 -3
  176. package/.output/server/chunks/build/Select-CVctwpib.mjs.map +1 -0
  177. package/.output/server/chunks/build/{SelectMenu-D-2FSqBU.mjs → SelectMenu-XLVBEa11.mjs} +3 -3
  178. package/.output/server/chunks/build/{SelectMenu-D-2FSqBU.mjs.map → SelectMenu-XLVBEa11.mjs.map} +1 -1
  179. package/.output/server/chunks/build/{SettingsField-BZfx4ma1.mjs → SettingsField-DvtRvI6O.mjs} +3 -3
  180. package/.output/server/chunks/build/SettingsField-DvtRvI6O.mjs.map +1 -0
  181. package/.output/server/chunks/build/{StatTile-D61Vzo6e.mjs → StatTile-DpcVQFVI.mjs} +2 -26
  182. package/.output/server/chunks/build/StatTile-DpcVQFVI.mjs.map +1 -0
  183. package/.output/server/chunks/build/StatTileGrid-7zOFUQ6j.mjs +30 -0
  184. package/.output/server/chunks/build/StatTileGrid-7zOFUQ6j.mjs.map +1 -0
  185. package/.output/server/chunks/build/{Switch-B5Fp8ULt.mjs → Switch-8zWfwI5B.mjs} +2 -2
  186. package/.output/server/chunks/build/Switch-8zWfwI5B.mjs.map +1 -0
  187. package/.output/server/chunks/build/Table-BRk04Hd2.mjs +1 -1
  188. package/.output/server/chunks/build/{TestCaseHistoryChart-CSi64vVA.mjs → TestCaseHistoryChart-C6t5RrCG.mjs} +2 -2
  189. package/.output/server/chunks/build/TestCaseHistoryChart-C6t5RrCG.mjs.map +1 -0
  190. package/.output/server/chunks/build/{TestMetaBadges-D5_yUtIP.mjs → TestMetaBadges-BlyKmfeP.mjs} +1 -1
  191. package/.output/server/chunks/build/TestMetaBadges-BlyKmfeP.mjs.map +1 -0
  192. package/.output/server/chunks/build/{TestStatusBar-DX3EhlyP.mjs → TestStatusBar-DhbrM_rQ.mjs} +3 -3
  193. package/.output/server/chunks/build/TestStatusBar-DhbrM_rQ.mjs.map +1 -0
  194. package/.output/server/chunks/build/{Textarea-Dv2-lOvW.mjs → Textarea-vkMKVQTJ.mjs} +2 -2
  195. package/.output/server/chunks/build/Textarea-vkMKVQTJ.mjs.map +1 -0
  196. package/.output/server/chunks/build/Tooltip-Dv4htNP6.mjs +1 -1
  197. package/.output/server/chunks/build/{_id_-BdG37K7s.mjs → _id_-2PMH6rl8.mjs} +20 -19
  198. package/.output/server/chunks/build/_id_-2PMH6rl8.mjs.map +1 -0
  199. package/.output/server/chunks/build/{_id_-BdJs7BJZ.mjs → _id_-8cGIgeg6.mjs} +1903 -1113
  200. package/.output/server/chunks/build/_id_-8cGIgeg6.mjs.map +1 -0
  201. package/.output/server/chunks/build/{_id_-C_uSBiyU.mjs → _id_-CUZ5S6y5.mjs} +29 -29
  202. package/.output/server/chunks/build/_id_-CUZ5S6y5.mjs.map +1 -0
  203. package/.output/server/chunks/build/{_id_-BxA6IgWr.mjs → _id_-DMkgWSLZ.mjs} +885 -381
  204. package/.output/server/chunks/build/_id_-DMkgWSLZ.mjs.map +1 -0
  205. package/.output/server/chunks/build/{about-BE0UV-8-.mjs → about-D3WXTDro.mjs} +21 -453
  206. package/.output/server/chunks/build/about-D3WXTDro.mjs.map +1 -0
  207. package/.output/server/chunks/build/{account-DAfvaD-F.mjs → account-BslDNCoo.mjs} +6 -6
  208. package/.output/server/chunks/build/account-BslDNCoo.mjs.map +1 -0
  209. package/.output/server/chunks/build/{ai-Cn05ch0u.mjs → ai-C23R9l94.mjs} +14 -14
  210. package/.output/server/chunks/build/{ai-Cn05ch0u.mjs.map → ai-C23R9l94.mjs.map} +1 -1
  211. package/.output/server/chunks/build/{analytics-Bo_B_jko.mjs → analytics-DQHeToK0.mjs} +104 -77
  212. package/.output/server/chunks/build/analytics-DQHeToK0.mjs.map +1 -0
  213. package/.output/server/chunks/build/client.precomputed.mjs +1 -1
  214. package/.output/server/chunks/build/compare-RxHSOdsO.mjs +1 -0
  215. package/.output/server/chunks/build/{db.client-CQoVTYB9.mjs → db.client-D74DghqX.mjs} +38 -2
  216. package/.output/server/chunks/build/db.client-D74DghqX.mjs.map +1 -0
  217. package/.output/server/chunks/build/{default-CbNHaFsy.mjs → default-CeyePZ5I.mjs} +32 -19
  218. package/.output/server/chunks/build/{default-CbNHaFsy.mjs.map → default-CeyePZ5I.mjs.map} +1 -1
  219. package/.output/server/chunks/build/{docs-B_llWMxx.mjs → docs-f_bnC75q.mjs} +14 -14
  220. package/.output/server/chunks/build/{docs-B_llWMxx.mjs.map → docs-f_bnC75q.mjs.map} +1 -1
  221. package/.output/server/chunks/build/{edit-J0asTFg8.mjs → edit-BOC4zWuH.mjs} +11 -12
  222. package/.output/server/chunks/build/edit-BOC4zWuH.mjs.map +1 -0
  223. package/.output/server/chunks/build/{fetch-B4FwBOzu.mjs → fetch-BQg_fhX0.mjs} +32 -4
  224. package/.output/server/chunks/build/fetch-BQg_fhX0.mjs.map +1 -0
  225. package/.output/server/chunks/build/{forgot-password-CC__1OnV.mjs → forgot-password-CxuVbGWy.mjs} +4 -3
  226. package/.output/server/chunks/build/forgot-password-CxuVbGWy.mjs.map +1 -0
  227. package/.output/server/chunks/build/{import-CS9oylTN.mjs → import-CC27wEIu.mjs} +12 -12
  228. package/.output/server/chunks/build/import-CC27wEIu.mjs.map +1 -0
  229. package/.output/server/chunks/build/{index-e9skCi-V.mjs → index-B6PjfyTY.mjs} +39 -537
  230. package/.output/server/chunks/build/index-B6PjfyTY.mjs.map +1 -0
  231. package/.output/server/chunks/build/{index-CU2nZhAa.mjs → index-BOK1aJk9.mjs} +2 -1
  232. package/.output/server/chunks/build/index-BOK1aJk9.mjs.map +1 -0
  233. package/.output/server/chunks/build/{index-hGHlmyxj.mjs → index-BhS1DuCr.mjs} +117 -76
  234. package/.output/server/chunks/build/index-BhS1DuCr.mjs.map +1 -0
  235. package/.output/server/chunks/build/{index-DE45ycdZ.mjs → index-DUmjP3Gr.mjs} +12 -13
  236. package/.output/server/chunks/build/index-DUmjP3Gr.mjs.map +1 -0
  237. package/.output/server/chunks/build/index-jvF53f7_.mjs +91 -0
  238. package/.output/server/chunks/build/index-jvF53f7_.mjs.map +1 -0
  239. package/.output/server/chunks/build/isValueEqualOrExist-D2qw9YEr.mjs +1 -1
  240. package/.output/server/chunks/build/{login-Da4u1IlW.mjs → login-CdpOhiP8.mjs} +8 -7
  241. package/.output/server/chunks/build/login-CdpOhiP8.mjs.map +1 -0
  242. package/.output/server/chunks/build/{mcp-uhVCCwQM.mjs → mcp-WTeO5WRo.mjs} +193 -10
  243. package/.output/server/chunks/build/mcp-WTeO5WRo.mjs.map +1 -0
  244. package/.output/server/chunks/build/{notifications-fx_qnKGA.mjs → notifications-yY6ik-fi.mjs} +9 -9
  245. package/.output/server/chunks/build/notifications-yY6ik-fi.mjs.map +1 -0
  246. package/.output/server/chunks/build/{pr-feedback-X6-70iF0.mjs → pr-feedback-Hv2Ydh_6.mjs} +7 -7
  247. package/.output/server/chunks/build/pr-feedback-Hv2Ydh_6.mjs.map +1 -0
  248. package/.output/server/chunks/build/{reset-password-BmrUS4ZD.mjs → reset-password-CFtO8A6n.mjs} +4 -3
  249. package/.output/server/chunks/build/reset-password-CFtO8A6n.mjs.map +1 -0
  250. package/.output/server/chunks/build/server.mjs +51 -34
  251. package/.output/server/chunks/build/{settings-CCYe7rsc.mjs → settings-DIpvnY8_.mjs} +10 -8
  252. package/.output/server/chunks/build/settings-DIpvnY8_.mjs.map +1 -0
  253. package/.output/server/chunks/build/{settings-metadata-DrEqWcW-.mjs → settings-metadata-DRv9VveS.mjs} +32 -2
  254. package/.output/server/chunks/build/settings-metadata-DRv9VveS.mjs.map +1 -0
  255. package/.output/server/chunks/build/setup-Di0UMyWx.mjs +1116 -0
  256. package/.output/server/chunks/build/setup-Di0UMyWx.mjs.map +1 -0
  257. package/.output/server/chunks/build/{storage-CJEmviCD.mjs → storage-gAbY1KbQ.mjs} +10 -10
  258. package/.output/server/chunks/build/storage-gAbY1KbQ.mjs.map +1 -0
  259. package/.output/server/chunks/build/{tags-DauTe_F-.mjs → tags-DJ80wCqt.mjs} +6 -7
  260. package/.output/server/chunks/build/tags-DJ80wCqt.mjs.map +1 -0
  261. package/.output/server/chunks/build/{test-cases-thBbAykw.mjs → test-cases-YP83YlnL.mjs} +18 -18
  262. package/.output/server/chunks/build/test-cases-YP83YlnL.mjs.map +1 -0
  263. package/.output/server/chunks/build/test-functions-BwLTxGmM.mjs +550 -0
  264. package/.output/server/chunks/build/test-functions-BwLTxGmM.mjs.map +1 -0
  265. package/.output/server/chunks/build/{timeout-hygiene-CbnSaVbK.mjs → timeout-hygiene-RpXDjXTX.mjs} +6 -6
  266. package/.output/server/chunks/build/timeout-hygiene-RpXDjXTX.mjs.map +1 -0
  267. package/.output/server/chunks/build/useAiStatus-UR8x-feE.mjs +9 -0
  268. package/.output/server/chunks/build/useAiStatus-UR8x-feE.mjs.map +1 -0
  269. package/.output/server/chunks/build/{useCopyRich-RJKhWoyj.mjs → useCopyRich-Cd5Yj_Wy.mjs} +694 -242
  270. package/.output/server/chunks/build/useCopyRich-Cd5Yj_Wy.mjs.map +1 -0
  271. package/.output/server/chunks/build/{useDesktopDownload-BepjqxOt.mjs → useDesktopDownload-BmR6ouz2.mjs} +2 -2
  272. package/.output/server/chunks/build/useDesktopDownload-BmR6ouz2.mjs.map +1 -0
  273. package/.output/server/chunks/build/{useOpenInIde-BbTnPhFA.mjs → useOpenInIde-DolN3bZ5.mjs} +1 -1
  274. package/.output/server/chunks/build/useOpenInIde-DolN3bZ5.mjs.map +1 -0
  275. package/.output/server/chunks/build/useSettingsNav-DfnOFlR_.mjs +19 -0
  276. package/.output/server/chunks/build/useSettingsNav-DfnOFlR_.mjs.map +1 -0
  277. package/.output/server/chunks/build/{users-CTUqXyGh.mjs → users-I2K7HXS2.mjs} +6 -7
  278. package/.output/server/chunks/build/users-I2K7HXS2.mjs.map +1 -0
  279. package/.output/server/chunks/build/{wasted-time-BNTPIyrC.mjs → wasted-time-DyIk0olc.mjs} +9 -9
  280. package/.output/server/chunks/build/wasted-time-DyIk0olc.mjs.map +1 -0
  281. package/.output/server/chunks/nitro/nitro.mjs +1348 -675
  282. package/.output/server/chunks/nitro/nitro.mjs.map +1 -1
  283. package/.output/server/chunks/routes/__piwi/session.get.mjs +2 -1
  284. package/.output/server/chunks/routes/__piwi/session.get.mjs.map +1 -1
  285. package/.output/server/chunks/routes/api/admin/cleanup.delete.mjs +1 -0
  286. package/.output/server/chunks/routes/api/admin/cleanup.delete.mjs.map +1 -1
  287. package/.output/server/chunks/routes/api/admin/stats.get.mjs +1 -0
  288. package/.output/server/chunks/routes/api/admin/stats.get.mjs.map +1 -1
  289. package/.output/server/chunks/routes/api/ai/status.get.mjs +1 -0
  290. package/.output/server/chunks/routes/api/ai/status.get.mjs.map +1 -1
  291. package/.output/server/chunks/routes/api/analytics/_widget_.get.mjs +1 -0
  292. package/.output/server/chunks/routes/api/analytics/_widget_.get.mjs.map +1 -1
  293. package/.output/server/chunks/routes/api/auth/logout.post.mjs +1 -0
  294. package/.output/server/chunks/routes/api/auth/logout.post.mjs.map +1 -1
  295. package/.output/server/chunks/routes/api/auth/me.get.mjs +1 -0
  296. package/.output/server/chunks/routes/api/auth/me.get.mjs.map +1 -1
  297. package/.output/server/chunks/routes/api/auth/oauth/_provider/callback.get.mjs +1 -0
  298. package/.output/server/chunks/routes/api/auth/oauth/_provider/callback.get.mjs.map +1 -1
  299. package/.output/server/chunks/routes/api/auth/oauth/_provider/login.get.mjs +1 -0
  300. package/.output/server/chunks/routes/api/auth/oauth/_provider/login.get.mjs.map +1 -1
  301. package/.output/server/chunks/routes/api/auth/oauth/_provider/unlink.post.mjs +1 -0
  302. package/.output/server/chunks/routes/api/auth/oauth/_provider/unlink.post.mjs.map +1 -1
  303. package/.output/server/chunks/routes/api/auth/send-verify-email.post.mjs +1 -0
  304. package/.output/server/chunks/routes/api/auth/send-verify-email.post.mjs.map +1 -1
  305. package/.output/server/chunks/routes/api/auth/setup.get.mjs +1 -0
  306. package/.output/server/chunks/routes/api/auth/setup.get.mjs.map +1 -1
  307. package/.output/server/chunks/routes/api/auth/verify-email.get.mjs +1 -0
  308. package/.output/server/chunks/routes/api/auth/verify-email.get.mjs.map +1 -1
  309. package/.output/server/chunks/routes/api/channels/_id/test.post.mjs +1 -0
  310. package/.output/server/chunks/routes/api/channels/_id/test.post.mjs.map +1 -1
  311. package/.output/server/chunks/routes/api/channels/_id_.delete.mjs +1 -0
  312. package/.output/server/chunks/routes/api/channels/_id_.delete.mjs.map +1 -1
  313. package/.output/server/chunks/routes/api/cluster-merge-suggestions/_id/approve.post.mjs +1 -0
  314. package/.output/server/chunks/routes/api/cluster-merge-suggestions/_id/approve.post.mjs.map +1 -1
  315. package/.output/server/chunks/routes/api/cluster-merge-suggestions/_id/reject.post.mjs +1 -0
  316. package/.output/server/chunks/routes/api/cluster-merge-suggestions/_id/reject.post.mjs.map +1 -1
  317. package/.output/server/chunks/routes/api/desktop/import-local.post.mjs +1 -0
  318. package/.output/server/chunks/routes/api/desktop/import-local.post.mjs.map +1 -1
  319. package/.output/server/chunks/routes/api/desktop/reporter-config.get.mjs +1 -0
  320. package/.output/server/chunks/routes/api/desktop/reporter-config.get.mjs.map +1 -1
  321. package/.output/server/chunks/routes/api/failure-clusters/_id/base-commit.patch.mjs +1 -0
  322. package/.output/server/chunks/routes/api/failure-clusters/_id/base-commit.patch.mjs.map +1 -1
  323. package/.output/server/chunks/routes/api/failure-clusters/_id/branches.get.mjs +1 -0
  324. package/.output/server/chunks/routes/api/failure-clusters/_id/branches.get.mjs.map +1 -1
  325. package/.output/server/chunks/routes/api/failure-clusters/_id/commit-diff.get.mjs +1 -0
  326. package/.output/server/chunks/routes/api/failure-clusters/_id/commit-diff.get.mjs.map +1 -1
  327. package/.output/server/chunks/routes/api/failure-clusters/_id/commits.get.mjs +1 -0
  328. package/.output/server/chunks/routes/api/failure-clusters/_id/commits.get.mjs.map +1 -1
  329. package/.output/server/chunks/routes/api/failure-clusters/_id/context.get.mjs +1 -0
  330. package/.output/server/chunks/routes/api/failure-clusters/_id/context.get.mjs.map +1 -1
  331. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnose/stream.post.mjs +1 -0
  332. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnose/stream.post.mjs.map +1 -1
  333. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnose.post.mjs +1 -0
  334. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnose.post.mjs.map +1 -1
  335. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnoses.get.mjs +1 -0
  336. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnoses.get.mjs.map +1 -1
  337. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnosis.get.mjs +1 -0
  338. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnosis.get.mjs.map +1 -1
  339. package/.output/server/chunks/routes/api/failure-clusters/_id/export.get.mjs +1 -0
  340. package/.output/server/chunks/routes/api/failure-clusters/_id/export.get.mjs.map +1 -1
  341. package/.output/server/chunks/routes/api/failure-clusters/_id/extract-cases.post.mjs +1 -0
  342. package/.output/server/chunks/routes/api/failure-clusters/_id/extract-cases.post.mjs.map +1 -1
  343. package/.output/server/chunks/routes/api/failure-clusters/_id/fix-plan.get.mjs +1 -0
  344. package/.output/server/chunks/routes/api/failure-clusters/_id/fix-plan.get.mjs.map +1 -1
  345. package/.output/server/chunks/routes/api/failure-clusters/_id/status.patch.mjs +1 -0
  346. package/.output/server/chunks/routes/api/failure-clusters/_id/status.patch.mjs.map +1 -1
  347. package/.output/server/chunks/routes/api/failure-clusters/_id_.get.mjs +1 -0
  348. package/.output/server/chunks/routes/api/failure-clusters/_id_.get.mjs.map +1 -1
  349. package/.output/server/chunks/routes/api/failure-diagnoses/_id/feedback.patch.mjs +1 -0
  350. package/.output/server/chunks/routes/api/failure-diagnoses/_id/feedback.patch.mjs.map +1 -1
  351. package/.output/server/chunks/routes/api/files/_...path_.get.mjs +1 -0
  352. package/.output/server/chunks/routes/api/files/_...path_.get.mjs.map +1 -1
  353. package/.output/server/chunks/routes/api/health.get.mjs +1 -0
  354. package/.output/server/chunks/routes/api/health.get.mjs.map +1 -1
  355. package/.output/server/chunks/routes/api/index.get.mjs +1 -0
  356. package/.output/server/chunks/routes/api/index.get.mjs.map +1 -1
  357. package/.output/server/chunks/routes/api/index.get2.mjs +1 -0
  358. package/.output/server/chunks/routes/api/index.get2.mjs.map +1 -1
  359. package/.output/server/chunks/routes/api/index.get3.mjs +1 -0
  360. package/.output/server/chunks/routes/api/index.get3.mjs.map +1 -1
  361. package/.output/server/chunks/routes/api/index.get4.mjs +2 -1
  362. package/.output/server/chunks/routes/api/index.get4.mjs.map +1 -1
  363. package/.output/server/chunks/routes/api/index.get5.mjs +1 -0
  364. package/.output/server/chunks/routes/api/index.get5.mjs.map +1 -1
  365. package/.output/server/chunks/routes/api/index.post3.mjs +1 -1
  366. package/.output/server/chunks/routes/api/index.post4.mjs +1 -1
  367. package/.output/server/chunks/routes/api/index.post5.mjs +1 -1
  368. package/.output/server/chunks/routes/api/links/_id/refresh.post.mjs +1 -0
  369. package/.output/server/chunks/routes/api/links/_id/refresh.post.mjs.map +1 -1
  370. package/.output/server/chunks/routes/api/links/_id_.delete.mjs +1 -0
  371. package/.output/server/chunks/routes/api/links/_id_.delete.mjs.map +1 -1
  372. package/.output/server/chunks/routes/api/markers/_id_.delete.mjs +1 -0
  373. package/.output/server/chunks/routes/api/markers/_id_.delete.mjs.map +1 -1
  374. package/.output/server/chunks/routes/api/notifications/stream.get.mjs +1 -0
  375. package/.output/server/chunks/routes/api/notifications/stream.get.mjs.map +1 -1
  376. package/.output/server/chunks/routes/api/projects/_id/cluster-merge-suggestions.get.mjs +1 -0
  377. package/.output/server/chunks/routes/api/projects/_id/cluster-merge-suggestions.get.mjs.map +1 -1
  378. package/.output/server/chunks/routes/api/projects/_id/failure-clusters.get.mjs +1 -0
  379. package/.output/server/chunks/routes/api/projects/_id/failure-clusters.get.mjs.map +1 -1
  380. package/.output/server/chunks/routes/api/projects/_id/flaky-classify.post.mjs +1 -0
  381. package/.output/server/chunks/routes/api/projects/_id/flaky-classify.post.mjs.map +1 -1
  382. package/.output/server/chunks/routes/api/projects/_id/flaky-tests.get.mjs +1 -0
  383. package/.output/server/chunks/routes/api/projects/_id/flaky-tests.get.mjs.map +1 -1
  384. package/.output/server/chunks/routes/api/projects/_id/latest-run.get.mjs +1 -0
  385. package/.output/server/chunks/routes/api/projects/_id/latest-run.get.mjs.map +1 -1
  386. package/.output/server/chunks/routes/api/projects/_id/markers.get.mjs +1 -0
  387. package/.output/server/chunks/routes/api/projects/_id/markers.get.mjs.map +1 -1
  388. package/.output/server/chunks/routes/api/projects/_id/members.get.mjs +1 -0
  389. package/.output/server/chunks/routes/api/projects/_id/members.get.mjs.map +1 -1
  390. package/.output/server/chunks/routes/api/projects/_id/performance.get.mjs +1 -0
  391. package/.output/server/chunks/routes/api/projects/_id/performance.get.mjs.map +1 -1
  392. package/.output/server/chunks/routes/api/projects/_id/quarantine/_testCaseId_.delete.mjs +1 -0
  393. package/.output/server/chunks/routes/api/projects/_id/quarantine/_testCaseId_.delete.mjs.map +1 -1
  394. package/.output/server/chunks/routes/api/projects/_id/quarantine.get.mjs +1 -0
  395. package/.output/server/chunks/routes/api/projects/_id/quarantine.get.mjs.map +1 -1
  396. package/.output/server/chunks/routes/api/projects/_id/quarantine.post.mjs +1 -0
  397. package/.output/server/chunks/routes/api/projects/_id/quarantine.post.mjs.map +1 -1
  398. package/.output/server/chunks/routes/api/projects/_id/slow-tests.get.mjs +1 -0
  399. package/.output/server/chunks/routes/api/projects/_id/slow-tests.get.mjs.map +1 -1
  400. package/.output/server/chunks/routes/api/projects/_id/spec-health.get.mjs +1 -0
  401. package/.output/server/chunks/routes/api/projects/_id/spec-health.get.mjs.map +1 -1
  402. package/.output/server/chunks/routes/api/projects/_id/test-cases.get.mjs +1 -0
  403. package/.output/server/chunks/routes/api/projects/_id/test-cases.get.mjs.map +1 -1
  404. package/.output/server/chunks/routes/api/projects/_id/test-functions/extract.post.mjs +76 -0
  405. package/.output/server/chunks/routes/api/projects/_id/test-functions/extract.post.mjs.map +1 -0
  406. package/.output/server/chunks/routes/api/projects/_id/test-functions/validate-proposal.post.mjs +66 -0
  407. package/.output/server/chunks/routes/api/projects/_id/test-functions/validate-proposal.post.mjs.map +1 -0
  408. package/.output/server/chunks/routes/api/projects/_id/test-functions.get.mjs +53 -0
  409. package/.output/server/chunks/routes/api/projects/_id/test-functions.get.mjs.map +1 -0
  410. package/.output/server/chunks/routes/api/projects/_id/test-functions.post.mjs +67 -0
  411. package/.output/server/chunks/routes/api/projects/_id/test-functions.post.mjs.map +1 -0
  412. package/.output/server/chunks/routes/api/projects/_id/timeout-opportunities.get.mjs +2 -1
  413. package/.output/server/chunks/routes/api/projects/_id/timeout-opportunities.get.mjs.map +1 -1
  414. package/.output/server/chunks/routes/api/projects/_id_.delete.mjs +1 -0
  415. package/.output/server/chunks/routes/api/projects/_id_.delete.mjs.map +1 -1
  416. package/.output/server/chunks/routes/api/projects/_id_.get.mjs +1 -0
  417. package/.output/server/chunks/routes/api/projects/_id_.get.mjs.map +1 -1
  418. package/.output/server/chunks/routes/api/projects/menu.get.mjs +2 -1
  419. package/.output/server/chunks/routes/api/projects/menu.get.mjs.map +1 -1
  420. package/.output/server/chunks/routes/api/projects/overview.get.mjs +2 -1
  421. package/.output/server/chunks/routes/api/projects/overview.get.mjs.map +1 -1
  422. package/.output/server/chunks/routes/api/projects.get.mjs +1 -0
  423. package/.output/server/chunks/routes/api/projects.get.mjs.map +1 -1
  424. package/.output/server/chunks/routes/api/search.get.mjs +2 -1
  425. package/.output/server/chunks/routes/api/search.get.mjs.map +1 -1
  426. package/.output/server/chunks/routes/api/settings/ai/limits.get.mjs +2 -1
  427. package/.output/server/chunks/routes/api/settings/ai/limits.get.mjs.map +1 -1
  428. package/.output/server/chunks/routes/api/settings/ai/limits.put.mjs +2 -1
  429. package/.output/server/chunks/routes/api/settings/ai/limits.put.mjs.map +1 -1
  430. package/.output/server/chunks/routes/api/settings/ai/models.post.mjs +1 -0
  431. package/.output/server/chunks/routes/api/settings/ai/models.post.mjs.map +1 -1
  432. package/.output/server/chunks/routes/api/settings/ai/test.post.mjs +2 -1
  433. package/.output/server/chunks/routes/api/settings/ai/test.post.mjs.map +1 -1
  434. package/.output/server/chunks/routes/api/settings/ai/usage.get.mjs +1 -0
  435. package/.output/server/chunks/routes/api/settings/ai/usage.get.mjs.map +1 -1
  436. package/.output/server/chunks/routes/api/settings/ai.get.mjs +2 -1
  437. package/.output/server/chunks/routes/api/settings/ai.get.mjs.map +1 -1
  438. package/.output/server/chunks/routes/api/settings/ai.put.mjs +2 -1
  439. package/.output/server/chunks/routes/api/settings/ai.put.mjs.map +1 -1
  440. package/.output/server/chunks/routes/api/settings/pr-feedback.get.mjs +2 -1
  441. package/.output/server/chunks/routes/api/settings/pr-feedback.get.mjs.map +1 -1
  442. package/.output/server/chunks/routes/api/settings/pr-feedback.put.mjs +2 -1
  443. package/.output/server/chunks/routes/api/settings/pr-feedback.put.mjs.map +1 -1
  444. package/.output/server/chunks/routes/api/settings/smtp.get.mjs +2 -1
  445. package/.output/server/chunks/routes/api/settings/smtp.get.mjs.map +1 -1
  446. package/.output/server/chunks/routes/api/settings/timeout-hygiene.get.mjs +2 -1
  447. package/.output/server/chunks/routes/api/settings/timeout-hygiene.get.mjs.map +1 -1
  448. package/.output/server/chunks/routes/api/settings/timeout-hygiene.put.mjs +2 -1
  449. package/.output/server/chunks/routes/api/settings/timeout-hygiene.put.mjs.map +1 -1
  450. package/.output/server/chunks/routes/api/settings/wasted-waits.get.mjs +2 -1
  451. package/.output/server/chunks/routes/api/settings/wasted-waits.get.mjs.map +1 -1
  452. package/.output/server/chunks/routes/api/settings/wasted-waits.put.mjs +2 -1
  453. package/.output/server/chunks/routes/api/settings/wasted-waits.put.mjs.map +1 -1
  454. package/.output/server/chunks/routes/api/setup-status.get.mjs +99 -0
  455. package/.output/server/chunks/routes/api/setup-status.get.mjs.map +1 -0
  456. package/.output/server/chunks/routes/api/stream.get.mjs +1 -0
  457. package/.output/server/chunks/routes/api/stream.get.mjs.map +1 -1
  458. package/.output/server/chunks/routes/api/subscriptions/_id_.delete.mjs +1 -0
  459. package/.output/server/chunks/routes/api/subscriptions/_id_.delete.mjs.map +1 -1
  460. package/.output/server/chunks/routes/api/subscriptions/_id_.patch.mjs +1 -1
  461. package/.output/server/chunks/routes/api/tags/_id_.delete.mjs +2 -1
  462. package/.output/server/chunks/routes/api/tags/_id_.delete.mjs.map +1 -1
  463. package/.output/server/chunks/routes/api/tags/_id_.put.mjs +1 -1
  464. package/.output/server/chunks/routes/api/test-cases/_id/history.get.mjs +2 -1
  465. package/.output/server/chunks/routes/api/test-cases/_id/history.get.mjs.map +1 -1
  466. package/.output/server/chunks/routes/api/test-cases/_id/stability-trend.get.mjs +2 -1
  467. package/.output/server/chunks/routes/api/test-cases/_id/stability-trend.get.mjs.map +1 -1
  468. package/.output/server/chunks/routes/api/test-cases/_id_.get.mjs +2 -1
  469. package/.output/server/chunks/routes/api/test-cases/_id_.get.mjs.map +1 -1
  470. package/.output/server/chunks/routes/api/test-functions/_id_.delete.mjs +60 -0
  471. package/.output/server/chunks/routes/api/test-functions/_id_.delete.mjs.map +1 -0
  472. package/.output/server/chunks/routes/api/test-functions/_id_.put.mjs +69 -0
  473. package/.output/server/chunks/routes/api/test-functions/_id_.put.mjs.map +1 -0
  474. package/.output/server/chunks/routes/api/test-run-cases/_id/diagnose.post.mjs +2 -1
  475. package/.output/server/chunks/routes/api/test-run-cases/_id/diagnose.post.mjs.map +1 -1
  476. package/.output/server/chunks/routes/api/test-run-cases/_id/diagnosis-context.get.mjs +2 -1
  477. package/.output/server/chunks/routes/api/test-run-cases/_id/diagnosis-context.get.mjs.map +1 -1
  478. package/.output/server/chunks/routes/api/test-run-cases/_id/diagnosis.get.mjs +2 -1
  479. package/.output/server/chunks/routes/api/test-run-cases/_id/diagnosis.get.mjs.map +1 -1
  480. package/.output/server/chunks/routes/api/test-run-cases/_id/export.get.mjs +2 -1
  481. package/.output/server/chunks/routes/api/test-run-cases/_id/export.get.mjs.map +1 -1
  482. package/.output/server/chunks/routes/api/test-run-cases/_id/traces.get.mjs +2 -1
  483. package/.output/server/chunks/routes/api/test-run-cases/_id/traces.get.mjs.map +1 -1
  484. package/.output/server/chunks/routes/api/test-run-cases/_id_.get.mjs +2 -1
  485. package/.output/server/chunks/routes/api/test-run-cases/_id_.get.mjs.map +1 -1
  486. package/.output/server/chunks/routes/api/test-runs/_id/begin.post.mjs +2 -1
  487. package/.output/server/chunks/routes/api/test-runs/_id/begin.post.mjs.map +1 -1
  488. package/.output/server/chunks/routes/api/test-runs/_id/case-files.post.mjs +2 -1
  489. package/.output/server/chunks/routes/api/test-runs/_id/case-files.post.mjs.map +1 -1
  490. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/dom-snapshot.get.mjs +2 -1
  491. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/dom-snapshot.get.mjs.map +1 -1
  492. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/environment-diff.get.mjs +2 -1
  493. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/environment-diff.get.mjs.map +1 -1
  494. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/locator-healing.get.mjs +2 -1
  495. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/locator-healing.get.mjs.map +1 -1
  496. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/locator-pick.post.mjs +2 -1
  497. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/locator-pick.post.mjs.map +1 -1
  498. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-network-body.get.mjs +2 -1
  499. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-network-body.get.mjs.map +1 -1
  500. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-network.get.mjs +2 -1
  501. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-network.get.mjs.map +1 -1
  502. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-stacks.get.mjs +2 -1
  503. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-stacks.get.mjs.map +1 -1
  504. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/visual-diff.get.mjs +2 -1
  505. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/visual-diff.get.mjs.map +1 -1
  506. package/.output/server/chunks/routes/api/test-runs/_id/events.post.mjs +2 -1
  507. package/.output/server/chunks/routes/api/test-runs/_id/events.post.mjs.map +1 -1
  508. package/.output/server/chunks/routes/api/test-runs/_id/failure-groups.get.mjs +2 -1
  509. package/.output/server/chunks/routes/api/test-runs/_id/failure-groups.get.mjs.map +1 -1
  510. package/.output/server/chunks/routes/api/test-runs/_id/finish.post.mjs +2 -1
  511. package/.output/server/chunks/routes/api/test-runs/_id/finish.post.mjs.map +1 -1
  512. package/.output/server/chunks/routes/api/test-runs/_id/gate.post.mjs +2 -1
  513. package/.output/server/chunks/routes/api/test-runs/_id/gate.post.mjs.map +1 -1
  514. package/.output/server/chunks/routes/api/test-runs/_id/heartbeat.post.mjs +2 -1
  515. package/.output/server/chunks/routes/api/test-runs/_id/heartbeat.post.mjs.map +1 -1
  516. package/.output/server/chunks/routes/api/test-runs/_id/insights.get.mjs +2 -1
  517. package/.output/server/chunks/routes/api/test-runs/_id/insights.get.mjs.map +1 -1
  518. package/.output/server/chunks/routes/api/test-runs/_id/network-requests.get.mjs +2 -1
  519. package/.output/server/chunks/routes/api/test-runs/_id/network-requests.get.mjs.map +1 -1
  520. package/.output/server/chunks/routes/api/test-runs/_id/regression-context.get.mjs +2 -1
  521. package/.output/server/chunks/routes/api/test-runs/_id/regression-context.get.mjs.map +1 -1
  522. package/.output/server/chunks/routes/api/test-runs/_id/stream.get.mjs +2 -1
  523. package/.output/server/chunks/routes/api/test-runs/_id/stream.get.mjs.map +1 -1
  524. package/.output/server/chunks/routes/api/test-runs/_id/summary.get.mjs +2 -1
  525. package/.output/server/chunks/routes/api/test-runs/_id/summary.get.mjs.map +1 -1
  526. package/.output/server/chunks/routes/api/test-runs/_id_.delete.mjs +2 -1
  527. package/.output/server/chunks/routes/api/test-runs/_id_.delete.mjs.map +1 -1
  528. package/.output/server/chunks/routes/api/test-runs/_id_.get.mjs +2 -1
  529. package/.output/server/chunks/routes/api/test-runs/_id_.get.mjs.map +1 -1
  530. package/.output/server/chunks/routes/api/test-runs/_id_.patch.mjs +2 -1
  531. package/.output/server/chunks/routes/api/test-runs/_id_.patch.mjs.map +1 -1
  532. package/.output/server/chunks/routes/api/test-runs/import/check.post.mjs +2 -1
  533. package/.output/server/chunks/routes/api/test-runs/import/check.post.mjs.map +1 -1
  534. package/.output/server/chunks/routes/api/test-runs/import.post.mjs +2 -1
  535. package/.output/server/chunks/routes/api/test-runs/import.post.mjs.map +1 -1
  536. package/.output/server/chunks/routes/api/test-runs/recent.get.mjs +2 -1
  537. package/.output/server/chunks/routes/api/test-runs/recent.get.mjs.map +1 -1
  538. package/.output/server/chunks/routes/api/test-runs/setup.post.mjs +2 -1
  539. package/.output/server/chunks/routes/api/test-runs/setup.post.mjs.map +1 -1
  540. package/.output/server/chunks/routes/api/test-runs/start.post.mjs +2 -1
  541. package/.output/server/chunks/routes/api/test-runs/start.post.mjs.map +1 -1
  542. package/.output/server/chunks/routes/api/test-runs/submit.post.mjs +2 -1
  543. package/.output/server/chunks/routes/api/test-runs/submit.post.mjs.map +1 -1
  544. package/.output/server/chunks/routes/api/test-runs/upload.post.mjs +2 -1
  545. package/.output/server/chunks/routes/api/test-runs/upload.post.mjs.map +1 -1
  546. package/.output/server/chunks/routes/api/tests/cleanup.delete.mjs +1 -0
  547. package/.output/server/chunks/routes/api/tests/cleanup.delete.mjs.map +1 -1
  548. package/.output/server/chunks/routes/api/traces/check.post.mjs +2 -1
  549. package/.output/server/chunks/routes/api/traces/check.post.mjs.map +1 -1
  550. package/.output/server/chunks/routes/api/users/_id/api-keys/_keyId_.delete.mjs +1 -0
  551. package/.output/server/chunks/routes/api/users/_id/api-keys/_keyId_.delete.mjs.map +1 -1
  552. package/.output/server/chunks/routes/api/users/_id/index.get.mjs +1 -0
  553. package/.output/server/chunks/routes/api/users/_id/index.get.mjs.map +1 -1
  554. package/.output/server/chunks/routes/api/users/_id/index.post.mjs +1 -1
  555. package/.output/server/chunks/routes/api/users/_id/invite.post.mjs +2 -1
  556. package/.output/server/chunks/routes/api/users/_id/invite.post.mjs.map +1 -1
  557. package/.output/server/chunks/routes/api/users/_id/projects.get.mjs +2 -1
  558. package/.output/server/chunks/routes/api/users/_id/projects.get.mjs.map +1 -1
  559. package/.output/server/chunks/routes/api/users/_id/projects.put.mjs +1 -1
  560. package/.output/server/chunks/routes/api/users/_id_.delete.mjs +1 -0
  561. package/.output/server/chunks/routes/api/users/_id_.delete.mjs.map +1 -1
  562. package/.output/server/chunks/routes/api/version.get.mjs +2 -1
  563. package/.output/server/chunks/routes/api/version.get.mjs.map +1 -1
  564. package/.output/server/chunks/routes/mcp.post.mjs +41 -11
  565. package/.output/server/chunks/routes/mcp.post.mjs.map +1 -1
  566. package/.output/server/chunks/routes/renderer.mjs +1 -1
  567. package/.output/server/chunks/tasks/sweep.mjs +1 -0
  568. package/.output/server/chunks/tasks/sweep.mjs.map +1 -1
  569. package/.output/server/chunks/tasks/sweep2.mjs +1 -0
  570. package/.output/server/chunks/tasks/sweep2.mjs.map +1 -1
  571. package/.output/server/database/migrations/0043_watery_dragon_lord.sql +22 -0
  572. package/.output/server/database/migrations/meta/0043_snapshot.json +3764 -0
  573. package/.output/server/database/migrations/meta/_journal.json +7 -0
  574. package/.output/server/database/migrations-pg/0044_dark_triathlon.sql +22 -0
  575. package/.output/server/database/migrations-pg/meta/0044_snapshot.json +4473 -0
  576. package/.output/server/database/migrations-pg/meta/_journal.json +7 -0
  577. package/.output/server/index.mjs +2 -1
  578. package/.output/server/index.mjs.map +1 -1
  579. package/.output/server/package.json +1 -1
  580. package/package.json +1 -1
  581. package/.output/public/_nuxt/8PUUncmO.js +0 -44
  582. package/.output/public/_nuxt/B8zkOmwo.js +0 -1
  583. package/.output/public/_nuxt/B96M2gdj.js +0 -1
  584. package/.output/public/_nuxt/B9OLmp0f.js +0 -1
  585. package/.output/public/_nuxt/BUa0V0Ly.js +0 -1
  586. package/.output/public/_nuxt/BUkim3TM.js +0 -1
  587. package/.output/public/_nuxt/BVc14Ncz.js +0 -4
  588. package/.output/public/_nuxt/BY0HxR3t.js +0 -17
  589. package/.output/public/_nuxt/B_xAMWQS.js +0 -2
  590. package/.output/public/_nuxt/BdQoBaOv.js +0 -1
  591. package/.output/public/_nuxt/BgRu_3tT.js +0 -1
  592. package/.output/public/_nuxt/BiO7RBWb.js +0 -6
  593. package/.output/public/_nuxt/CEfS4-oS.js +0 -64
  594. package/.output/public/_nuxt/CIoSMkpp.js +0 -1
  595. package/.output/public/_nuxt/CSJ-eOQM.js +0 -1
  596. package/.output/public/_nuxt/CahpB9Z2.js +0 -5
  597. package/.output/public/_nuxt/Cbh--1MW.js +0 -1
  598. package/.output/public/_nuxt/Cx6gc2VW.js +0 -1
  599. package/.output/public/_nuxt/D--H4jLI.js +0 -1
  600. package/.output/public/_nuxt/D1POo6S4.js +0 -10
  601. package/.output/public/_nuxt/D8nkF-OO.js +0 -3
  602. package/.output/public/_nuxt/DA25RkyK.js +0 -1
  603. package/.output/public/_nuxt/DIB-5fUJ.js +0 -1
  604. package/.output/public/_nuxt/DMec-OLo.js +0 -1
  605. package/.output/public/_nuxt/DSqHUrvO.js +0 -1
  606. package/.output/public/_nuxt/DmkUdSS4.js +0 -1
  607. package/.output/public/_nuxt/DoIREDVb.js +0 -1
  608. package/.output/public/_nuxt/DpZ1r1HA.js +0 -1
  609. package/.output/public/_nuxt/DqcKngf3.js +0 -1
  610. package/.output/public/_nuxt/DtHJgCS8.js +0 -1
  611. package/.output/public/_nuxt/Dtd4rC58.js +0 -9
  612. package/.output/public/_nuxt/Dy86h-7P.js +0 -1
  613. package/.output/public/_nuxt/HPNQD6v3.js +0 -1
  614. package/.output/public/_nuxt/HXadJrHu.js +0 -2
  615. package/.output/public/_nuxt/McL25vkx.js +0 -34
  616. package/.output/public/_nuxt/Nn93e_Mz.js +0 -1
  617. package/.output/public/_nuxt/UdR3DBPS.js +0 -1
  618. package/.output/public/_nuxt/_mj6CfPa.js +0 -1
  619. package/.output/public/_nuxt/builds/meta/e659b3e1-0e61-4971-940e-10063f9f4763.json +0 -1
  620. package/.output/public/_nuxt/entry.DmptwB51.css +0 -1
  621. package/.output/public/_nuxt/ryMzSDUj.js +0 -2
  622. package/.output/server/chunks/build/Breadcrumb-Ak2Lg3oM.mjs.map +0 -1
  623. package/.output/server/chunks/build/BreadcrumbNav-DO7I_z-n.mjs.map +0 -1
  624. package/.output/server/chunks/build/BrowserBadge-MFvBwxmD.mjs.map +0 -1
  625. package/.output/server/chunks/build/ChartCard-Y1UKwMsf.mjs.map +0 -1
  626. package/.output/server/chunks/build/Checkbox-4Q5d0fa0.mjs.map +0 -1
  627. package/.output/server/chunks/build/CiEnvCard-DB5DvBh1.mjs.map +0 -1
  628. package/.output/server/chunks/build/CodeBlock-BgE-NSmE.mjs.map +0 -1
  629. package/.output/server/chunks/build/DashboardNavbar-BHmMSPX7.mjs.map +0 -1
  630. package/.output/server/chunks/build/DashboardSidebarToggle-DCTnHiIv.mjs.map +0 -1
  631. package/.output/server/chunks/build/DataLocationCard-B_YHdzSz.mjs.map +0 -1
  632. package/.output/server/chunks/build/DiagnosisPanel-CALyEmcJ.mjs.map +0 -1
  633. package/.output/server/chunks/build/DurationValue-D20oGbnc.mjs.map +0 -1
  634. package/.output/server/chunks/build/EntityLinks-BBHWssHH.mjs.map +0 -1
  635. package/.output/server/chunks/build/FormField-B0HKsdMd.mjs.map +0 -1
  636. package/.output/server/chunks/build/HelpHint-DrcIv-Oj.mjs.map +0 -1
  637. package/.output/server/chunks/build/LoadingState-C3pBSuOO.mjs.map +0 -1
  638. package/.output/server/chunks/build/MiniRunBars-CZMugDrh.mjs.map +0 -1
  639. package/.output/server/chunks/build/ProjectTestCasesTable-Bo61P5K1.mjs.map +0 -1
  640. package/.output/server/chunks/build/RunReports-DFLv51TX.mjs.map +0 -1
  641. package/.output/server/chunks/build/RunStatusBadge-FfGb6bkW.mjs.map +0 -1
  642. package/.output/server/chunks/build/SectionCard-CN-v0FZ_.mjs.map +0 -1
  643. package/.output/server/chunks/build/Select-5DK9frQ7.mjs.map +0 -1
  644. package/.output/server/chunks/build/SettingsField-BZfx4ma1.mjs.map +0 -1
  645. package/.output/server/chunks/build/StatTile-D61Vzo6e.mjs.map +0 -1
  646. package/.output/server/chunks/build/Switch-B5Fp8ULt.mjs.map +0 -1
  647. package/.output/server/chunks/build/TestCaseHistoryChart-CSi64vVA.mjs.map +0 -1
  648. package/.output/server/chunks/build/TestMetaBadges-D5_yUtIP.mjs.map +0 -1
  649. package/.output/server/chunks/build/TestStatusBar-DX3EhlyP.mjs.map +0 -1
  650. package/.output/server/chunks/build/Textarea-Dv2-lOvW.mjs.map +0 -1
  651. package/.output/server/chunks/build/_id_-BdG37K7s.mjs.map +0 -1
  652. package/.output/server/chunks/build/_id_-BdJs7BJZ.mjs.map +0 -1
  653. package/.output/server/chunks/build/_id_-BxA6IgWr.mjs.map +0 -1
  654. package/.output/server/chunks/build/_id_-C_uSBiyU.mjs.map +0 -1
  655. package/.output/server/chunks/build/about-BE0UV-8-.mjs.map +0 -1
  656. package/.output/server/chunks/build/account-DAfvaD-F.mjs.map +0 -1
  657. package/.output/server/chunks/build/analytics-Bo_B_jko.mjs.map +0 -1
  658. package/.output/server/chunks/build/db.client-CQoVTYB9.mjs.map +0 -1
  659. package/.output/server/chunks/build/edit-J0asTFg8.mjs.map +0 -1
  660. package/.output/server/chunks/build/fetch-B4FwBOzu.mjs.map +0 -1
  661. package/.output/server/chunks/build/forgot-password-CC__1OnV.mjs.map +0 -1
  662. package/.output/server/chunks/build/import-CS9oylTN.mjs.map +0 -1
  663. package/.output/server/chunks/build/index-CU2nZhAa.mjs.map +0 -1
  664. package/.output/server/chunks/build/index-DE45ycdZ.mjs.map +0 -1
  665. package/.output/server/chunks/build/index-e9skCi-V.mjs.map +0 -1
  666. package/.output/server/chunks/build/index-hGHlmyxj.mjs.map +0 -1
  667. package/.output/server/chunks/build/index-tR6owKzj.mjs +0 -167
  668. package/.output/server/chunks/build/index-tR6owKzj.mjs.map +0 -1
  669. package/.output/server/chunks/build/login-Da4u1IlW.mjs.map +0 -1
  670. package/.output/server/chunks/build/mcp-uhVCCwQM.mjs.map +0 -1
  671. package/.output/server/chunks/build/notifications-fx_qnKGA.mjs.map +0 -1
  672. package/.output/server/chunks/build/pr-feedback-X6-70iF0.mjs.map +0 -1
  673. package/.output/server/chunks/build/reset-password-BmrUS4ZD.mjs.map +0 -1
  674. package/.output/server/chunks/build/settings-CCYe7rsc.mjs.map +0 -1
  675. package/.output/server/chunks/build/settings-metadata-DrEqWcW-.mjs.map +0 -1
  676. package/.output/server/chunks/build/storage-CJEmviCD.mjs.map +0 -1
  677. package/.output/server/chunks/build/tags-DauTe_F-.mjs.map +0 -1
  678. package/.output/server/chunks/build/test-cases-thBbAykw.mjs.map +0 -1
  679. package/.output/server/chunks/build/timeout-hygiene-CbnSaVbK.mjs.map +0 -1
  680. package/.output/server/chunks/build/useAiStatus-CxjMmDDY.mjs.map +0 -1
  681. package/.output/server/chunks/build/useCopy-CeKWgHyT.mjs +0 -33
  682. package/.output/server/chunks/build/useCopy-CeKWgHyT.mjs.map +0 -1
  683. package/.output/server/chunks/build/useCopyRich-RJKhWoyj.mjs.map +0 -1
  684. package/.output/server/chunks/build/useDesktopDownload-BepjqxOt.mjs.map +0 -1
  685. package/.output/server/chunks/build/useOpenInIde-BbTnPhFA.mjs.map +0 -1
  686. package/.output/server/chunks/build/useSettingsNav-DnQKacz8.mjs.map +0 -1
  687. package/.output/server/chunks/build/users-CTUqXyGh.mjs.map +0 -1
  688. package/.output/server/chunks/build/wasted-time-BNTPIyrC.mjs.map +0 -1
@@ -1,38 +1,40 @@
1
- import { _ as _sfc_main$1$1, a as _sfc_main$f } from './DashboardNavbar-BHmMSPX7.mjs';
2
- import { _ as _sfc_main$1$2 } from './Breadcrumb-Ak2Lg3oM.mjs';
3
- import { _ as __nuxt_component_3$2 } from './BreadcrumbNav-DO7I_z-n.mjs';
4
- import { u as useRoute, k as useRouter, l as useHead, r as useRuntimeConfig, m as _sfc_main$k, s as __nuxt_component_12, n as _sfc_main$7$1, o as _sfc_main$p, y as __nuxt_component_7, j as useToast } from './server.mjs';
5
- import { u as useCopyRich, n as __nuxt_component_24, a as __nuxt_component_19, b as __nuxt_component_20, c as __nuxt_component_21, _ as __nuxt_component_25, d as __nuxt_component_27, e as __nuxt_component_6$1, p as __nuxt_component_1$2, i as isImageFile, f as isVideoFile, q as __nuxt_component_3$2$1, r as __nuxt_component_4$2$1, l as __nuxt_component_3$4, m as __nuxt_component_4$3, g as __nuxt_component_1$1$1, h as __nuxt_component_2$2, j as __nuxt_component_3$1$1, k as __nuxt_component_4$1$1 } from './useCopyRich-RJKhWoyj.mjs';
6
- import { _ as __nuxt_component_8, a as __nuxt_component_13, b as __nuxt_component_1$5, c as __nuxt_component_15$1, d as __nuxt_component_14$2, e as __nuxt_component_16$1 } from './CiEnvCard-DB5DvBh1.mjs';
7
- import { _ as __nuxt_component_4$2 } from './NavbarActions-_YjrSUat.mjs';
8
- import { c as clusterSectionLocatorKey, a as __nuxt_component_26, d as useAiStatus, f as __nuxt_component_3$3, h as __nuxt_component_6, g as __nuxt_component_8$1, e as __nuxt_component_1$4, u as useDetailGrid, _ as __nuxt_component_0 } from './useAiStatus-CxjMmDDY.mjs';
9
- import { _ as __nuxt_component_14$1 } from './DurationValue-D20oGbnc.mjs';
10
- import { _ as __nuxt_component_3$5 } from './BrowserBadge-MFvBwxmD.mjs';
1
+ import { _ as _sfc_main$1$1, a as _sfc_main$f } from './DashboardNavbar-DCr10nxL.mjs';
2
+ import { _ as _sfc_main$1$2 } from './Breadcrumb-3itRZ1uz.mjs';
3
+ import { _ as __nuxt_component_3$2 } from './BreadcrumbNav-GnjBvXuT.mjs';
4
+ import { u as useRoute, k as useRouter, l as useHead, r as useRuntimeConfig, m as _sfc_main$k, v as __nuxt_component_12, n as _sfc_main$7$1, o as _sfc_main$p, s as __nuxt_component_7, j as useToast } from './server.mjs';
5
+ import { u as useCopyRich, n as __nuxt_component_24, a as __nuxt_component_19, b as __nuxt_component_20, c as __nuxt_component_21, _ as __nuxt_component_25, d as __nuxt_component_27, e as __nuxt_component_6, p as __nuxt_component_1$2, i as isImageFile, f as isVideoFile, q as __nuxt_component_3$2$1, r as __nuxt_component_4$2$1, l as __nuxt_component_3$4, m as __nuxt_component_4$4, g as __nuxt_component_1$1$1, h as __nuxt_component_2$2, j as __nuxt_component_3$1$1, k as __nuxt_component_4$1$1 } from './useCopyRich-Cd5Yj_Wy.mjs';
6
+ import { _ as __nuxt_component_8, a as __nuxt_component_14$2, b as __nuxt_component_1$4, c as __nuxt_component_16$1, d as __nuxt_component_17$1 } from './MetaStripGroup-dXXa_MzF.mjs';
7
+ import { _ as __nuxt_component_4$3 } from './NavbarActions-_YjrSUat.mjs';
8
+ import { c as clusterSectionLocatorKey, a as __nuxt_component_26, d as __nuxt_component_3$3, f as __nuxt_component_6$1, e as __nuxt_component_8$1, b as __nuxt_component_1$3, _ as __nuxt_component_0 } from './DiagnosisResult-Br3qBLXe.mjs';
9
+ import { _ as __nuxt_component_14$1 } from './DurationValue-CWKfjIF2.mjs';
10
+ import { _ as __nuxt_component_3$5 } from './BrowserBadge-DQqJS9CV.mjs';
11
11
  import { _ as _sfc_main$i } from './Card-BQP_oZkQ.mjs';
12
- import { _ as __nuxt_component_2$3 } from './TestMetaBadges-D5_yUtIP.mjs';
13
- import { a as __nuxt_component_9, _ as __nuxt_component_2$1 } from './HelpHint-DrcIv-Oj.mjs';
14
- import { _ as __nuxt_component_18$1 } from './EntityLinks-BBHWssHH.mjs';
15
- import { v as getStatusColor, g as renderAnsi, n as fileApiUrl, A as httpMethodColor, B as httpStatusColor, f as formatRelativeTime, i as clusterErrorTypeColor, C as isPiwiAnnotation, e as errorMessage, d as formatDuration } from './index-CU2nZhAa.mjs';
12
+ import { _ as __nuxt_component_2$3 } from './TestMetaBadges-BlyKmfeP.mjs';
13
+ import { _ as __nuxt_component_1$1 } from './OpenInIdeLink-B9wvQkhy.mjs';
14
+ import { _ as __nuxt_component_1 } from './StatTileGrid-7zOFUQ6j.mjs';
15
+ import { _ as __nuxt_component_2 } from './StatTile-DpcVQFVI.mjs';
16
+ import { a as __nuxt_component_9, _ as __nuxt_component_2$1 } from './HelpHint-DjGrGFA7.mjs';
17
+ import { _ as __nuxt_component_19$1 } from './EntityLinks-CF0xG3Y8.mjs';
18
+ import { v as getStatusColor, g as renderAnsi, n as fileApiUrl, A as httpMethodColor, B as httpStatusColor, f as formatRelativeTime, i as clusterErrorTypeColor, C as isPiwiAnnotation, e as errorMessage, d as formatDuration } from './index-BOK1aJk9.mjs';
16
19
  import { defineComponent, withAsyncContext, ref, watch, computed, provide, mergeProps, withCtx, unref, isRef, createTextVNode, openBlock, createBlock, toDisplayString, createCommentVNode, createVNode, Fragment, renderList, createSlots, toValue, useSSRContext } from 'vue';
17
20
  import { ssrRenderComponent, ssrRenderAttr, ssrInterpolate, ssrRenderList, ssrRenderClass, ssrRenderStyle, ssrIncludeBooleanAttr, ssrRenderAttrs } from 'vue/server-renderer';
18
- import { _ as __nuxt_component_11 } from './SectionCard-CN-v0FZ_.mjs';
21
+ import { _ as __nuxt_component_11 } from './SectionCard-BW5Lynrr.mjs';
19
22
  import { _ as _sfc_main$e } from './Tooltip-Dv4htNP6.mjs';
20
- import { _ as _sfc_main$h } from './Textarea-Dv2-lOvW.mjs';
21
- import { dF as condenseErrorText, dG as hasSlowMark, dC as extractCitedSectionIds, aa as formatBytes } from '../nitro/nitro.mjs';
23
+ import { _ as _sfc_main$h } from './Textarea-vkMKVQTJ.mjs';
24
+ import { dV as condenseErrorText, dW as hasSlowMark, dS as extractCitedSectionIds, aa as formatBytes } from '../nitro/nitro.mjs';
25
+ import { u as useAiStatus } from './useAiStatus-UR8x-feE.mjs';
22
26
  import { _ as _sfc_main$g } from './Tabs-BkSOnbaB.mjs';
23
- import { _ as __nuxt_component_1$3 } from './LoadingState-C3pBSuOO.mjs';
24
- import { _ as __nuxt_component_4$1 } from './EmptyState-DC2q_7TD.mjs';
27
+ import { _ as __nuxt_component_12$1 } from './LoadingState-B8v1nWJt.mjs';
28
+ import { _ as __nuxt_component_4$2 } from './FeatureUnavailable-CwPms6X_.mjs';
25
29
  import { _ as _sfc_main$j } from './Slideover-D270EZZD.mjs';
26
- import { _ as __nuxt_component_5 } from './CodeBlock-BgE-NSmE.mjs';
30
+ import { _ as __nuxt_component_5 } from './CodeBlock-DGhKVFad.mjs';
27
31
  import { _ as __nuxt_component_3$1 } from './TableScroller-DMcdCVrH.mjs';
28
32
  import { _ as _sfc_main$d } from './Table-BRk04Hd2.mjs';
29
- import { _ as __nuxt_component_1$1 } from './OpenInIdeLink-CQWKKChd.mjs';
30
- import { _ as __nuxt_component_1, a as __nuxt_component_2 } from './StatTile-D61Vzo6e.mjs';
31
- import { _ as __nuxt_component_39 } from './TestCaseHistoryChart-CSi64vVA.mjs';
32
- import { b as buildRetryCommand } from './useOpenInIde-BbTnPhFA.mjs';
33
- import { u as useFetch } from './fetch-B4FwBOzu.mjs';
34
- import { u as useCopy } from './useCopy-CeKWgHyT.mjs';
35
- import './DashboardSidebarToggle-DCTnHiIv.mjs';
33
+ import { _ as __nuxt_component_4$1 } from './EmptyState-DC2q_7TD.mjs';
34
+ import { _ as __nuxt_component_39 } from './TestCaseHistoryChart-C6t5RrCG.mjs';
35
+ import { b as buildRetryCommand } from './useOpenInIde-DolN3bZ5.mjs';
36
+ import { u as useFetch, a as useCopy } from './fetch-BQg_fhX0.mjs';
37
+ import './DashboardSidebarToggle-8EpBhX0R.mjs';
36
38
  import 'vue-router';
37
39
  import '@iconify/vue';
38
40
  import 'tailwindcss/colors';
@@ -65,6 +67,7 @@ import 'highlight.js/lib/languages/typescript';
65
67
  import 'highlight.js/lib/languages/xml';
66
68
  import 'highlight.js/lib/languages/yaml';
67
69
  import 'fflate';
70
+ import 'zod';
68
71
  import 'pixelmatch';
69
72
  import 'sharp';
70
73
  import '@anthropic-ai/sdk';
@@ -89,17 +92,17 @@ import 'consola';
89
92
  import 'node:url';
90
93
  import '@iconify/utils';
91
94
  import './Separator-CR4WcEKD.mjs';
92
- import './useDesktopDownload-BepjqxOt.mjs';
95
+ import './useDesktopDownload-BmR6ouz2.mjs';
93
96
  import './useIsDesktop-BS13spVj.mjs';
94
97
  import './useTauri-Kf3HE_42.mjs';
95
98
  import './Alert-C4xq8lao.mjs';
96
99
  import './Modal-pSDlXzT3.mjs';
97
- import './FormField-B0HKsdMd.mjs';
100
+ import './FormField-e7OnSKPM.mjs';
98
101
  import './Label-DYDR1Oeh.mjs';
99
- import './Select-5DK9frQ7.mjs';
102
+ import './Select-CVctwpib.mjs';
100
103
  import './useFormControl-CZ9So7iX.mjs';
101
104
  import './handleAndDispatchCustomEvent-Bk_AVSSo.mjs';
102
- import './Switch-B5Fp8ULt.mjs';
105
+ import './Switch-8zWfwI5B.mjs';
103
106
  import './useForwardScopeId-D0ameaSU.mjs';
104
107
  import './VisuallyHiddenInput-BHvzNumK.mjs';
105
108
  import './help-content-C876a9WD.mjs';
@@ -126,7 +129,9 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
126
129
  environment: {},
127
130
  stepsCount: {},
128
131
  historicalTiming: {},
129
- stableLinks: {}
132
+ stableLinks: {},
133
+ projectKey: {},
134
+ projectName: {}
130
135
  },
131
136
  emits: ["refresh"],
132
137
  setup(__props) {
@@ -150,32 +155,28 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
150
155
  () => (props.testCase?.testAnnotations ?? []).filter((ann) => !isPiwiAnnotation(ann.type))
151
156
  );
152
157
  const startedAtMs = computed(() => props.testCase?.startedAt ?? null);
153
- const { summaryColSpanClass, blockColSpanClass } = useDetailGrid(() => {
154
- let count = 0;
155
- if (props.scmInfo) count++;
156
- if (props.ciInfo || props.environment || props.browser) count++;
157
- count++;
158
- return count;
159
- });
158
+ const showCiGroup = computed(() => !!(props.ciInfo || props.environment));
160
159
  return (_ctx, _push, _parent, _attrs) => {
161
160
  const _component_FoldableSummary = __nuxt_component_0;
162
- const _component_StatusBlock = __nuxt_component_1$5;
161
+ const _component_StatusChip = __nuxt_component_1$4;
163
162
  const _component_DurationValue = __nuxt_component_14$1;
164
163
  const _component_BrowserBadge = __nuxt_component_3$5;
165
164
  const _component_UCard = _sfc_main$i;
166
165
  const _component_UBadge = _sfc_main$7$1;
167
166
  const _component_TestMetaBadges = __nuxt_component_2$3;
167
+ const _component_OpenInIdeLink = __nuxt_component_1$1;
168
168
  const _component_ClientOnly = __nuxt_component_7;
169
+ const _component_StatTileGrid = __nuxt_component_1;
170
+ const _component_StatTile = __nuxt_component_2;
169
171
  const _component_UIcon = _sfc_main$p;
170
172
  const _component_HelpHint = __nuxt_component_2$1;
171
- const _component_SourceInfoCard = __nuxt_component_15$1;
172
- const _component_CiEnvCard = __nuxt_component_14$2;
173
- const _component_BlockCard = __nuxt_component_16$1;
174
- const _component_EntityLinks = __nuxt_component_18$1;
173
+ const _component_SummaryMetaStrip = __nuxt_component_16$1;
174
+ const _component_MetaStripGroup = __nuxt_component_17$1;
175
+ const _component_EntityLinks = __nuxt_component_19$1;
175
176
  _push(ssrRenderComponent(_component_FoldableSummary, mergeProps({ "storage-key": "test-case" }, _attrs), {
176
177
  folded: withCtx((_, _push2, _parent2, _scopeId) => {
177
178
  if (_push2) {
178
- _push2(ssrRenderComponent(_component_StatusBlock, {
179
+ _push2(ssrRenderComponent(_component_StatusChip, {
179
180
  status: __props.testCase?.status ?? "",
180
181
  size: "sm"
181
182
  }, null, _parent2, _scopeId));
@@ -202,7 +203,7 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
202
203
  }
203
204
  } else {
204
205
  return [
205
- createVNode(_component_StatusBlock, {
206
+ createVNode(_component_StatusChip, {
206
207
  status: __props.testCase?.status ?? "",
207
208
  size: "sm"
208
209
  }, null, 8, ["status"]),
@@ -246,16 +247,461 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
246
247
  }),
247
248
  default: withCtx((_, _push2, _parent2, _scopeId) => {
248
249
  if (_push2) {
249
- _push2(`<div class="grid grid-cols-1 lg:grid-cols-12 gap-4"${_scopeId}><div class="${ssrRenderClass(unref(summaryColSpanClass))}"${_scopeId}>`);
250
- _push2(ssrRenderComponent(_component_UCard, { class: "shadow-xs h-full" }, {
250
+ _push2(`<div class="@container"${_scopeId}>`);
251
+ _push2(ssrRenderComponent(_component_UCard, {
252
+ class: "shadow-xs",
253
+ ui: { footer: "px-4 py-2.5 sm:px-4 bg-muted/30" }
254
+ }, {
255
+ footer: withCtx((_2, _push3, _parent3, _scopeId2) => {
256
+ if (_push3) {
257
+ _push3(ssrRenderComponent(_component_SummaryMetaStrip, null, {
258
+ default: withCtx((_3, _push4, _parent4, _scopeId3) => {
259
+ if (_push4) {
260
+ if (__props.scmInfo) {
261
+ _push4(ssrRenderComponent(_component_MetaStripGroup, {
262
+ label: "Source",
263
+ icon: "i-lucide-git-branch"
264
+ }, {
265
+ default: withCtx((_4, _push5, _parent5, _scopeId4) => {
266
+ if (_push5) {
267
+ if (__props.scmInfo.branch) {
268
+ _push5(`<span class="font-medium"${_scopeId4}>${ssrInterpolate(__props.scmInfo.branch)}</span>`);
269
+ } else {
270
+ _push5(`<!---->`);
271
+ }
272
+ if (__props.scmInfo.commit) {
273
+ _push5(`<code class="text-xs font-mono bg-zinc-100 dark:bg-zinc-800 px-1 py-0.5 rounded"${ssrRenderAttr("title", __props.scmInfo.commit)}${_scopeId4}>${ssrInterpolate(__props.scmInfo.commit.length >= 8 ? __props.scmInfo.commit.substring(0, 8) : __props.scmInfo.commit)}</code>`);
274
+ } else {
275
+ _push5(`<!---->`);
276
+ }
277
+ if (__props.scmInfo.author) {
278
+ _push5(`<span class="text-muted"${_scopeId4}>${ssrInterpolate(__props.scmInfo.author)}</span>`);
279
+ } else {
280
+ _push5(`<!---->`);
281
+ }
282
+ if (__props.scmInfo.commitMessage) {
283
+ _push5(`<span class="text-xs text-dimmed truncate max-w-[40ch]"${ssrRenderAttr("title", __props.scmInfo.commitMessage)}${_scopeId4}>${ssrInterpolate(__props.scmInfo.commitMessage)}</span>`);
284
+ } else {
285
+ _push5(`<!---->`);
286
+ }
287
+ } else {
288
+ return [
289
+ __props.scmInfo.branch ? (openBlock(), createBlock("span", {
290
+ key: 0,
291
+ class: "font-medium"
292
+ }, toDisplayString(__props.scmInfo.branch), 1)) : createCommentVNode("", true),
293
+ __props.scmInfo.commit ? (openBlock(), createBlock("code", {
294
+ key: 1,
295
+ class: "text-xs font-mono bg-zinc-100 dark:bg-zinc-800 px-1 py-0.5 rounded",
296
+ title: __props.scmInfo.commit
297
+ }, toDisplayString(__props.scmInfo.commit.length >= 8 ? __props.scmInfo.commit.substring(0, 8) : __props.scmInfo.commit), 9, ["title"])) : createCommentVNode("", true),
298
+ __props.scmInfo.author ? (openBlock(), createBlock("span", {
299
+ key: 2,
300
+ class: "text-muted"
301
+ }, toDisplayString(__props.scmInfo.author), 1)) : createCommentVNode("", true),
302
+ __props.scmInfo.commitMessage ? (openBlock(), createBlock("span", {
303
+ key: 3,
304
+ class: "text-xs text-dimmed truncate max-w-[40ch]",
305
+ title: __props.scmInfo.commitMessage
306
+ }, toDisplayString(__props.scmInfo.commitMessage), 9, ["title"])) : createCommentVNode("", true)
307
+ ];
308
+ }
309
+ }),
310
+ _: 1
311
+ }, _parent4, _scopeId3));
312
+ } else {
313
+ _push4(`<!---->`);
314
+ }
315
+ if (unref(showCiGroup)) {
316
+ _push4(ssrRenderComponent(_component_MetaStripGroup, {
317
+ label: "CI & environment",
318
+ icon: "i-lucide-cloud",
319
+ help: "run.ci-env"
320
+ }, {
321
+ default: withCtx((_4, _push5, _parent5, _scopeId4) => {
322
+ if (_push5) {
323
+ if (__props.environment) {
324
+ _push5(`<span class="rounded-full border border-default px-2 py-0.5 text-xs bg-elevated/60"${_scopeId4}>${ssrInterpolate(__props.environment)}</span>`);
325
+ } else {
326
+ _push5(`<!---->`);
327
+ }
328
+ if (__props.ciInfo?.provider) {
329
+ _push5(`<span${_scopeId4}>${ssrInterpolate(__props.ciInfo.provider)}</span>`);
330
+ } else {
331
+ _push5(`<!---->`);
332
+ }
333
+ if (__props.ciInfo?.buildNumber || __props.ciInfo?.buildUrl) {
334
+ _push5(`<!--[--><span class="text-dimmed"${_scopeId4}>·</span>`);
335
+ if (__props.ciInfo?.buildUrl) {
336
+ _push5(`<a${ssrRenderAttr("href", __props.ciInfo.buildUrl)} target="_blank" class="text-primary hover:underline"${_scopeId4}>${ssrInterpolate(__props.ciInfo?.buildNumber ? `Build #${__props.ciInfo.buildNumber}` : "View build")}</a>`);
337
+ } else {
338
+ _push5(`<span${_scopeId4}>Build #${ssrInterpolate(__props.ciInfo.buildNumber)}</span>`);
339
+ }
340
+ _push5(`<!--]-->`);
341
+ } else {
342
+ _push5(`<!---->`);
343
+ }
344
+ if (__props.ciInfo?.workflow || __props.ciInfo?.jobName) {
345
+ _push5(`<!--[--><span class="text-dimmed"${_scopeId4}>·</span><span class="text-muted"${_scopeId4}>`);
346
+ if (__props.ciInfo?.workflow) {
347
+ _push5(`<!--[-->${ssrInterpolate(__props.ciInfo.workflow)}<!--]-->`);
348
+ } else {
349
+ _push5(`<!---->`);
350
+ }
351
+ if (__props.ciInfo?.workflow && __props.ciInfo?.jobName) {
352
+ _push5(`<!--[--> · <!--]-->`);
353
+ } else {
354
+ _push5(`<!---->`);
355
+ }
356
+ if (__props.ciInfo?.jobName) {
357
+ _push5(`<!--[-->${ssrInterpolate(__props.ciInfo.jobName)}<!--]-->`);
358
+ } else {
359
+ _push5(`<!---->`);
360
+ }
361
+ _push5(`</span><!--]-->`);
362
+ } else {
363
+ _push5(`<!---->`);
364
+ }
365
+ } else {
366
+ return [
367
+ __props.environment ? (openBlock(), createBlock("span", {
368
+ key: 0,
369
+ class: "rounded-full border border-default px-2 py-0.5 text-xs bg-elevated/60"
370
+ }, toDisplayString(__props.environment), 1)) : createCommentVNode("", true),
371
+ __props.ciInfo?.provider ? (openBlock(), createBlock("span", { key: 1 }, toDisplayString(__props.ciInfo.provider), 1)) : createCommentVNode("", true),
372
+ __props.ciInfo?.buildNumber || __props.ciInfo?.buildUrl ? (openBlock(), createBlock(Fragment, { key: 2 }, [
373
+ createVNode("span", { class: "text-dimmed" }, "·"),
374
+ __props.ciInfo?.buildUrl ? (openBlock(), createBlock("a", {
375
+ key: 0,
376
+ href: __props.ciInfo.buildUrl,
377
+ target: "_blank",
378
+ class: "text-primary hover:underline"
379
+ }, toDisplayString(__props.ciInfo?.buildNumber ? `Build #${__props.ciInfo.buildNumber}` : "View build"), 9, ["href"])) : (openBlock(), createBlock("span", { key: 1 }, "Build #" + toDisplayString(__props.ciInfo.buildNumber), 1))
380
+ ], 64)) : createCommentVNode("", true),
381
+ __props.ciInfo?.workflow || __props.ciInfo?.jobName ? (openBlock(), createBlock(Fragment, { key: 3 }, [
382
+ createVNode("span", { class: "text-dimmed" }, "·"),
383
+ createVNode("span", { class: "text-muted" }, [
384
+ __props.ciInfo?.workflow ? (openBlock(), createBlock(Fragment, { key: 0 }, [
385
+ createTextVNode(toDisplayString(__props.ciInfo.workflow), 1)
386
+ ], 64)) : createCommentVNode("", true),
387
+ __props.ciInfo?.workflow && __props.ciInfo?.jobName ? (openBlock(), createBlock(Fragment, { key: 1 }, [
388
+ createTextVNode(" · ")
389
+ ], 64)) : createCommentVNode("", true),
390
+ __props.ciInfo?.jobName ? (openBlock(), createBlock(Fragment, { key: 2 }, [
391
+ createTextVNode(toDisplayString(__props.ciInfo.jobName), 1)
392
+ ], 64)) : createCommentVNode("", true)
393
+ ])
394
+ ], 64)) : createCommentVNode("", true)
395
+ ];
396
+ }
397
+ }),
398
+ _: 1
399
+ }, _parent4, _scopeId3));
400
+ } else {
401
+ _push4(`<!---->`);
402
+ }
403
+ if (__props.browser) {
404
+ _push4(ssrRenderComponent(_component_MetaStripGroup, { label: "Browser" }, {
405
+ default: withCtx((_4, _push5, _parent5, _scopeId4) => {
406
+ if (_push5) {
407
+ _push5(ssrRenderComponent(_component_BrowserBadge, {
408
+ browser: { ...__props.browser, viewport: void 0 },
409
+ size: "sm"
410
+ }, null, _parent5, _scopeId4));
411
+ if (__props.browser.viewport) {
412
+ _push5(`<span class="tabular-nums text-muted"${_scopeId4}>${ssrInterpolate(__props.browser.viewport.width)}×${ssrInterpolate(__props.browser.viewport.height)} `);
413
+ if (__props.browser.deviceScaleFactor && __props.browser.deviceScaleFactor !== 1) {
414
+ _push5(`<span class="text-dimmed"${_scopeId4}>@${ssrInterpolate(__props.browser.deviceScaleFactor)}x</span>`);
415
+ } else {
416
+ _push5(`<!---->`);
417
+ }
418
+ _push5(`</span>`);
419
+ } else {
420
+ _push5(`<!---->`);
421
+ }
422
+ } else {
423
+ return [
424
+ createVNode(_component_BrowserBadge, {
425
+ browser: { ...__props.browser, viewport: void 0 },
426
+ size: "sm"
427
+ }, null, 8, ["browser"]),
428
+ __props.browser.viewport ? (openBlock(), createBlock("span", {
429
+ key: 0,
430
+ class: "tabular-nums text-muted"
431
+ }, [
432
+ createTextVNode(toDisplayString(__props.browser.viewport.width) + "×" + toDisplayString(__props.browser.viewport.height) + " ", 1),
433
+ __props.browser.deviceScaleFactor && __props.browser.deviceScaleFactor !== 1 ? (openBlock(), createBlock("span", {
434
+ key: 0,
435
+ class: "text-dimmed"
436
+ }, "@" + toDisplayString(__props.browser.deviceScaleFactor) + "x", 1)) : createCommentVNode("", true)
437
+ ])) : createCommentVNode("", true)
438
+ ];
439
+ }
440
+ }),
441
+ _: 1
442
+ }, _parent4, _scopeId3));
443
+ } else {
444
+ _push4(`<!---->`);
445
+ }
446
+ _push4(ssrRenderComponent(_component_MetaStripGroup, {
447
+ label: "Links",
448
+ icon: "i-lucide-link"
449
+ }, {
450
+ default: withCtx((_4, _push5, _parent5, _scopeId4) => {
451
+ if (_push5) {
452
+ if (__props.testCase?.id) {
453
+ _push5(ssrRenderComponent(_component_EntityLinks, {
454
+ "entity-type": "test_case",
455
+ "entity-id": __props.testCase.id,
456
+ links: __props.stableLinks ?? null,
457
+ onUpdated: ($event) => _ctx.$emit("refresh")
458
+ }, null, _parent5, _scopeId4));
459
+ } else {
460
+ _push5(`<!---->`);
461
+ }
462
+ } else {
463
+ return [
464
+ __props.testCase?.id ? (openBlock(), createBlock(_component_EntityLinks, {
465
+ key: 0,
466
+ "entity-type": "test_case",
467
+ "entity-id": __props.testCase.id,
468
+ links: __props.stableLinks ?? null,
469
+ onUpdated: ($event) => _ctx.$emit("refresh")
470
+ }, null, 8, ["entity-id", "links", "onUpdated"])) : createCommentVNode("", true)
471
+ ];
472
+ }
473
+ }),
474
+ _: 1
475
+ }, _parent4, _scopeId3));
476
+ } else {
477
+ return [
478
+ __props.scmInfo ? (openBlock(), createBlock(_component_MetaStripGroup, {
479
+ key: 0,
480
+ label: "Source",
481
+ icon: "i-lucide-git-branch"
482
+ }, {
483
+ default: withCtx(() => [
484
+ __props.scmInfo.branch ? (openBlock(), createBlock("span", {
485
+ key: 0,
486
+ class: "font-medium"
487
+ }, toDisplayString(__props.scmInfo.branch), 1)) : createCommentVNode("", true),
488
+ __props.scmInfo.commit ? (openBlock(), createBlock("code", {
489
+ key: 1,
490
+ class: "text-xs font-mono bg-zinc-100 dark:bg-zinc-800 px-1 py-0.5 rounded",
491
+ title: __props.scmInfo.commit
492
+ }, toDisplayString(__props.scmInfo.commit.length >= 8 ? __props.scmInfo.commit.substring(0, 8) : __props.scmInfo.commit), 9, ["title"])) : createCommentVNode("", true),
493
+ __props.scmInfo.author ? (openBlock(), createBlock("span", {
494
+ key: 2,
495
+ class: "text-muted"
496
+ }, toDisplayString(__props.scmInfo.author), 1)) : createCommentVNode("", true),
497
+ __props.scmInfo.commitMessage ? (openBlock(), createBlock("span", {
498
+ key: 3,
499
+ class: "text-xs text-dimmed truncate max-w-[40ch]",
500
+ title: __props.scmInfo.commitMessage
501
+ }, toDisplayString(__props.scmInfo.commitMessage), 9, ["title"])) : createCommentVNode("", true)
502
+ ]),
503
+ _: 1
504
+ })) : createCommentVNode("", true),
505
+ unref(showCiGroup) ? (openBlock(), createBlock(_component_MetaStripGroup, {
506
+ key: 1,
507
+ label: "CI & environment",
508
+ icon: "i-lucide-cloud",
509
+ help: "run.ci-env"
510
+ }, {
511
+ default: withCtx(() => [
512
+ __props.environment ? (openBlock(), createBlock("span", {
513
+ key: 0,
514
+ class: "rounded-full border border-default px-2 py-0.5 text-xs bg-elevated/60"
515
+ }, toDisplayString(__props.environment), 1)) : createCommentVNode("", true),
516
+ __props.ciInfo?.provider ? (openBlock(), createBlock("span", { key: 1 }, toDisplayString(__props.ciInfo.provider), 1)) : createCommentVNode("", true),
517
+ __props.ciInfo?.buildNumber || __props.ciInfo?.buildUrl ? (openBlock(), createBlock(Fragment, { key: 2 }, [
518
+ createVNode("span", { class: "text-dimmed" }, "·"),
519
+ __props.ciInfo?.buildUrl ? (openBlock(), createBlock("a", {
520
+ key: 0,
521
+ href: __props.ciInfo.buildUrl,
522
+ target: "_blank",
523
+ class: "text-primary hover:underline"
524
+ }, toDisplayString(__props.ciInfo?.buildNumber ? `Build #${__props.ciInfo.buildNumber}` : "View build"), 9, ["href"])) : (openBlock(), createBlock("span", { key: 1 }, "Build #" + toDisplayString(__props.ciInfo.buildNumber), 1))
525
+ ], 64)) : createCommentVNode("", true),
526
+ __props.ciInfo?.workflow || __props.ciInfo?.jobName ? (openBlock(), createBlock(Fragment, { key: 3 }, [
527
+ createVNode("span", { class: "text-dimmed" }, "·"),
528
+ createVNode("span", { class: "text-muted" }, [
529
+ __props.ciInfo?.workflow ? (openBlock(), createBlock(Fragment, { key: 0 }, [
530
+ createTextVNode(toDisplayString(__props.ciInfo.workflow), 1)
531
+ ], 64)) : createCommentVNode("", true),
532
+ __props.ciInfo?.workflow && __props.ciInfo?.jobName ? (openBlock(), createBlock(Fragment, { key: 1 }, [
533
+ createTextVNode(" · ")
534
+ ], 64)) : createCommentVNode("", true),
535
+ __props.ciInfo?.jobName ? (openBlock(), createBlock(Fragment, { key: 2 }, [
536
+ createTextVNode(toDisplayString(__props.ciInfo.jobName), 1)
537
+ ], 64)) : createCommentVNode("", true)
538
+ ])
539
+ ], 64)) : createCommentVNode("", true)
540
+ ]),
541
+ _: 1
542
+ })) : createCommentVNode("", true),
543
+ __props.browser ? (openBlock(), createBlock(_component_MetaStripGroup, {
544
+ key: 2,
545
+ label: "Browser"
546
+ }, {
547
+ default: withCtx(() => [
548
+ createVNode(_component_BrowserBadge, {
549
+ browser: { ...__props.browser, viewport: void 0 },
550
+ size: "sm"
551
+ }, null, 8, ["browser"]),
552
+ __props.browser.viewport ? (openBlock(), createBlock("span", {
553
+ key: 0,
554
+ class: "tabular-nums text-muted"
555
+ }, [
556
+ createTextVNode(toDisplayString(__props.browser.viewport.width) + "×" + toDisplayString(__props.browser.viewport.height) + " ", 1),
557
+ __props.browser.deviceScaleFactor && __props.browser.deviceScaleFactor !== 1 ? (openBlock(), createBlock("span", {
558
+ key: 0,
559
+ class: "text-dimmed"
560
+ }, "@" + toDisplayString(__props.browser.deviceScaleFactor) + "x", 1)) : createCommentVNode("", true)
561
+ ])) : createCommentVNode("", true)
562
+ ]),
563
+ _: 1
564
+ })) : createCommentVNode("", true),
565
+ createVNode(_component_MetaStripGroup, {
566
+ label: "Links",
567
+ icon: "i-lucide-link"
568
+ }, {
569
+ default: withCtx(() => [
570
+ __props.testCase?.id ? (openBlock(), createBlock(_component_EntityLinks, {
571
+ key: 0,
572
+ "entity-type": "test_case",
573
+ "entity-id": __props.testCase.id,
574
+ links: __props.stableLinks ?? null,
575
+ onUpdated: ($event) => _ctx.$emit("refresh")
576
+ }, null, 8, ["entity-id", "links", "onUpdated"])) : createCommentVNode("", true)
577
+ ]),
578
+ _: 1
579
+ })
580
+ ];
581
+ }
582
+ }),
583
+ _: 1
584
+ }, _parent3, _scopeId2));
585
+ } else {
586
+ return [
587
+ createVNode(_component_SummaryMetaStrip, null, {
588
+ default: withCtx(() => [
589
+ __props.scmInfo ? (openBlock(), createBlock(_component_MetaStripGroup, {
590
+ key: 0,
591
+ label: "Source",
592
+ icon: "i-lucide-git-branch"
593
+ }, {
594
+ default: withCtx(() => [
595
+ __props.scmInfo.branch ? (openBlock(), createBlock("span", {
596
+ key: 0,
597
+ class: "font-medium"
598
+ }, toDisplayString(__props.scmInfo.branch), 1)) : createCommentVNode("", true),
599
+ __props.scmInfo.commit ? (openBlock(), createBlock("code", {
600
+ key: 1,
601
+ class: "text-xs font-mono bg-zinc-100 dark:bg-zinc-800 px-1 py-0.5 rounded",
602
+ title: __props.scmInfo.commit
603
+ }, toDisplayString(__props.scmInfo.commit.length >= 8 ? __props.scmInfo.commit.substring(0, 8) : __props.scmInfo.commit), 9, ["title"])) : createCommentVNode("", true),
604
+ __props.scmInfo.author ? (openBlock(), createBlock("span", {
605
+ key: 2,
606
+ class: "text-muted"
607
+ }, toDisplayString(__props.scmInfo.author), 1)) : createCommentVNode("", true),
608
+ __props.scmInfo.commitMessage ? (openBlock(), createBlock("span", {
609
+ key: 3,
610
+ class: "text-xs text-dimmed truncate max-w-[40ch]",
611
+ title: __props.scmInfo.commitMessage
612
+ }, toDisplayString(__props.scmInfo.commitMessage), 9, ["title"])) : createCommentVNode("", true)
613
+ ]),
614
+ _: 1
615
+ })) : createCommentVNode("", true),
616
+ unref(showCiGroup) ? (openBlock(), createBlock(_component_MetaStripGroup, {
617
+ key: 1,
618
+ label: "CI & environment",
619
+ icon: "i-lucide-cloud",
620
+ help: "run.ci-env"
621
+ }, {
622
+ default: withCtx(() => [
623
+ __props.environment ? (openBlock(), createBlock("span", {
624
+ key: 0,
625
+ class: "rounded-full border border-default px-2 py-0.5 text-xs bg-elevated/60"
626
+ }, toDisplayString(__props.environment), 1)) : createCommentVNode("", true),
627
+ __props.ciInfo?.provider ? (openBlock(), createBlock("span", { key: 1 }, toDisplayString(__props.ciInfo.provider), 1)) : createCommentVNode("", true),
628
+ __props.ciInfo?.buildNumber || __props.ciInfo?.buildUrl ? (openBlock(), createBlock(Fragment, { key: 2 }, [
629
+ createVNode("span", { class: "text-dimmed" }, "·"),
630
+ __props.ciInfo?.buildUrl ? (openBlock(), createBlock("a", {
631
+ key: 0,
632
+ href: __props.ciInfo.buildUrl,
633
+ target: "_blank",
634
+ class: "text-primary hover:underline"
635
+ }, toDisplayString(__props.ciInfo?.buildNumber ? `Build #${__props.ciInfo.buildNumber}` : "View build"), 9, ["href"])) : (openBlock(), createBlock("span", { key: 1 }, "Build #" + toDisplayString(__props.ciInfo.buildNumber), 1))
636
+ ], 64)) : createCommentVNode("", true),
637
+ __props.ciInfo?.workflow || __props.ciInfo?.jobName ? (openBlock(), createBlock(Fragment, { key: 3 }, [
638
+ createVNode("span", { class: "text-dimmed" }, "·"),
639
+ createVNode("span", { class: "text-muted" }, [
640
+ __props.ciInfo?.workflow ? (openBlock(), createBlock(Fragment, { key: 0 }, [
641
+ createTextVNode(toDisplayString(__props.ciInfo.workflow), 1)
642
+ ], 64)) : createCommentVNode("", true),
643
+ __props.ciInfo?.workflow && __props.ciInfo?.jobName ? (openBlock(), createBlock(Fragment, { key: 1 }, [
644
+ createTextVNode(" · ")
645
+ ], 64)) : createCommentVNode("", true),
646
+ __props.ciInfo?.jobName ? (openBlock(), createBlock(Fragment, { key: 2 }, [
647
+ createTextVNode(toDisplayString(__props.ciInfo.jobName), 1)
648
+ ], 64)) : createCommentVNode("", true)
649
+ ])
650
+ ], 64)) : createCommentVNode("", true)
651
+ ]),
652
+ _: 1
653
+ })) : createCommentVNode("", true),
654
+ __props.browser ? (openBlock(), createBlock(_component_MetaStripGroup, {
655
+ key: 2,
656
+ label: "Browser"
657
+ }, {
658
+ default: withCtx(() => [
659
+ createVNode(_component_BrowserBadge, {
660
+ browser: { ...__props.browser, viewport: void 0 },
661
+ size: "sm"
662
+ }, null, 8, ["browser"]),
663
+ __props.browser.viewport ? (openBlock(), createBlock("span", {
664
+ key: 0,
665
+ class: "tabular-nums text-muted"
666
+ }, [
667
+ createTextVNode(toDisplayString(__props.browser.viewport.width) + "×" + toDisplayString(__props.browser.viewport.height) + " ", 1),
668
+ __props.browser.deviceScaleFactor && __props.browser.deviceScaleFactor !== 1 ? (openBlock(), createBlock("span", {
669
+ key: 0,
670
+ class: "text-dimmed"
671
+ }, "@" + toDisplayString(__props.browser.deviceScaleFactor) + "x", 1)) : createCommentVNode("", true)
672
+ ])) : createCommentVNode("", true)
673
+ ]),
674
+ _: 1
675
+ })) : createCommentVNode("", true),
676
+ createVNode(_component_MetaStripGroup, {
677
+ label: "Links",
678
+ icon: "i-lucide-link"
679
+ }, {
680
+ default: withCtx(() => [
681
+ __props.testCase?.id ? (openBlock(), createBlock(_component_EntityLinks, {
682
+ key: 0,
683
+ "entity-type": "test_case",
684
+ "entity-id": __props.testCase.id,
685
+ links: __props.stableLinks ?? null,
686
+ onUpdated: ($event) => _ctx.$emit("refresh")
687
+ }, null, 8, ["entity-id", "links", "onUpdated"])) : createCommentVNode("", true)
688
+ ]),
689
+ _: 1
690
+ })
691
+ ]),
692
+ _: 1
693
+ })
694
+ ];
695
+ }
696
+ }),
251
697
  default: withCtx((_2, _push3, _parent3, _scopeId2) => {
252
698
  if (_push3) {
253
- _push3(`<div class="space-y-3"${_scopeId2}><div class="flex items-start gap-3"${_scopeId2}>`);
254
- _push3(ssrRenderComponent(_component_StatusBlock, {
699
+ _push3(`<div class="space-y-3"${_scopeId2}><div class="flex items-start gap-2.5 pr-8"${_scopeId2}>`);
700
+ _push3(ssrRenderComponent(_component_StatusChip, {
255
701
  status: __props.testCase?.status ?? "",
256
- size: "md"
702
+ class: "mt-0.5"
257
703
  }, null, _parent3, _scopeId2));
258
- _push3(`<div class="min-w-0 flex-1"${_scopeId2}><div class="flex items-center gap-2 flex-wrap"${_scopeId2}><h2 class="text-base font-bold truncate"${_scopeId2}>${ssrInterpolate(__props.testCase?.title)}</h2><!--[-->`);
704
+ _push3(`<div class="min-w-0 flex-1"${_scopeId2}><div class="flex items-center gap-2 flex-wrap"${_scopeId2}><h2 class="text-base font-bold truncate max-w-full"${_scopeId2}>${ssrInterpolate(__props.testCase?.title)}</h2><!--[-->`);
259
705
  ssrRenderList(unref(signalBadges), (badge) => {
260
706
  _push3(ssrRenderComponent(_component_UBadge, {
261
707
  key: badge.label,
@@ -303,15 +749,19 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
303
749
  tags: __props.testCase?.tags,
304
750
  meta: __props.testCase?.testMeta
305
751
  }, null, _parent3, _scopeId2));
306
- _push3(`</div><p class="text-xs text-gray-500 mt-0.5"${_scopeId2}>`);
752
+ _push3(`</div><p class="text-xs text-gray-500 mt-0.5 flex items-center gap-x-2 gap-y-0.5 flex-wrap"${_scopeId2}>`);
307
753
  if (__props.testCase?.location) {
308
- _push3(`<span${_scopeId2}>${ssrInterpolate(__props.testCase.location)}</span>`);
754
+ _push3(ssrRenderComponent(_component_OpenInIdeLink, {
755
+ location: __props.testCase.location,
756
+ "project-key": __props.projectKey,
757
+ "project-name": __props.projectName
758
+ }, null, _parent3, _scopeId2));
309
759
  } else {
310
760
  _push3(`<!---->`);
311
761
  }
312
762
  _push3(ssrRenderComponent(_component_ClientOnly, null, {}, _parent3, _scopeId2));
313
763
  if (__props.historicalTiming) {
314
- _push3(`<span class="ml-2"${_scopeId2}> Avg `);
764
+ _push3(`<span${_scopeId2}> Avg `);
315
765
  _push3(ssrRenderComponent(_component_DurationValue, {
316
766
  ms: __props.historicalTiming.avg
317
767
  }, null, _parent3, _scopeId2));
@@ -319,11 +769,65 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
319
769
  } else {
320
770
  _push3(`<!---->`);
321
771
  }
322
- _push3(`</p></div></div><div class="grid grid-cols-2 sm:grid-cols-4 gap-2"${_scopeId2}><div class="rounded-lg bg-gray-50 dark:bg-gray-900 p-3"${_scopeId2}><p class="text-xs font-medium text-gray-500 uppercase tracking-wider"${_scopeId2}>Duration</p><p class="text-xl font-bold mt-0.5"${_scopeId2}>`);
323
- _push3(ssrRenderComponent(_component_DurationValue, {
324
- ms: __props.testCase?.duration
325
- }, null, _parent3, _scopeId2));
326
- _push3(`</p></div><div class="rounded-lg bg-gray-50 dark:bg-gray-900 p-3"${_scopeId2}><p class="text-xs font-medium text-gray-500 uppercase tracking-wider"${_scopeId2}>Retries</p><p class="text-xl font-bold mt-0.5"${_scopeId2}>${ssrInterpolate(__props.testCase?.retries ?? 0)}</p></div><div class="rounded-lg bg-gray-50 dark:bg-gray-900 p-3"${_scopeId2}><p class="text-xs font-medium text-gray-500 uppercase tracking-wider"${_scopeId2}>Steps</p><p class="text-xl font-bold mt-0.5"${_scopeId2}>${ssrInterpolate(__props.stepsCount)}</p></div><div class="rounded-lg bg-gray-50 dark:bg-gray-900 p-3"${_scopeId2}><p class="text-xs font-medium text-gray-500 uppercase tracking-wider"${_scopeId2}>Worker</p><p class="text-xl font-bold mt-0.5"${_scopeId2}>${ssrInterpolate(__props.testCase?.workerIndex ?? "—")}</p></div></div>`);
772
+ _push3(`</p></div></div>`);
773
+ _push3(ssrRenderComponent(_component_StatTileGrid, null, {
774
+ default: withCtx((_3, _push4, _parent4, _scopeId3) => {
775
+ if (_push4) {
776
+ _push4(ssrRenderComponent(_component_StatTile, { label: "Duration" }, {
777
+ default: withCtx((_4, _push5, _parent5, _scopeId4) => {
778
+ if (_push5) {
779
+ _push5(ssrRenderComponent(_component_DurationValue, {
780
+ ms: __props.testCase?.duration
781
+ }, null, _parent5, _scopeId4));
782
+ } else {
783
+ return [
784
+ createVNode(_component_DurationValue, {
785
+ ms: __props.testCase?.duration
786
+ }, null, 8, ["ms"])
787
+ ];
788
+ }
789
+ }),
790
+ _: 1
791
+ }, _parent4, _scopeId3));
792
+ _push4(ssrRenderComponent(_component_StatTile, {
793
+ label: "Retries",
794
+ value: __props.testCase?.retries ?? 0
795
+ }, null, _parent4, _scopeId3));
796
+ _push4(ssrRenderComponent(_component_StatTile, {
797
+ label: "Steps",
798
+ value: __props.stepsCount
799
+ }, null, _parent4, _scopeId3));
800
+ _push4(ssrRenderComponent(_component_StatTile, {
801
+ label: "Worker",
802
+ value: __props.testCase?.workerIndex ?? "—"
803
+ }, null, _parent4, _scopeId3));
804
+ } else {
805
+ return [
806
+ createVNode(_component_StatTile, { label: "Duration" }, {
807
+ default: withCtx(() => [
808
+ createVNode(_component_DurationValue, {
809
+ ms: __props.testCase?.duration
810
+ }, null, 8, ["ms"])
811
+ ]),
812
+ _: 1
813
+ }),
814
+ createVNode(_component_StatTile, {
815
+ label: "Retries",
816
+ value: __props.testCase?.retries ?? 0
817
+ }, null, 8, ["value"]),
818
+ createVNode(_component_StatTile, {
819
+ label: "Steps",
820
+ value: __props.stepsCount
821
+ }, null, 8, ["value"]),
822
+ createVNode(_component_StatTile, {
823
+ label: "Worker",
824
+ value: __props.testCase?.workerIndex ?? "—"
825
+ }, null, 8, ["value"])
826
+ ];
827
+ }
828
+ }),
829
+ _: 1
830
+ }, _parent3, _scopeId2));
327
831
  if (__props.testCase?.slowestStep) {
328
832
  _push3(`<div class="flex items-center gap-2 text-sm"${_scopeId2}>`);
329
833
  _push3(ssrRenderComponent(_component_UIcon, {
@@ -364,14 +868,14 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
364
868
  } else {
365
869
  return [
366
870
  createVNode("div", { class: "space-y-3" }, [
367
- createVNode("div", { class: "flex items-start gap-3" }, [
368
- createVNode(_component_StatusBlock, {
871
+ createVNode("div", { class: "flex items-start gap-2.5 pr-8" }, [
872
+ createVNode(_component_StatusChip, {
369
873
  status: __props.testCase?.status ?? "",
370
- size: "md"
874
+ class: "mt-0.5"
371
875
  }, null, 8, ["status"]),
372
876
  createVNode("div", { class: "min-w-0 flex-1" }, [
373
877
  createVNode("div", { class: "flex items-center gap-2 flex-wrap" }, [
374
- createVNode("h2", { class: "text-base font-bold truncate" }, toDisplayString(__props.testCase?.title), 1),
878
+ createVNode("h2", { class: "text-base font-bold truncate max-w-full" }, toDisplayString(__props.testCase?.title), 1),
375
879
  (openBlock(true), createBlock(Fragment, null, renderList(unref(signalBadges), (badge) => {
376
880
  return openBlock(), createBlock(_component_UBadge, {
377
881
  key: badge.label,
@@ -406,22 +910,24 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
406
910
  meta: __props.testCase?.testMeta
407
911
  }, null, 8, ["tags", "meta"])
408
912
  ]),
409
- createVNode("p", { class: "text-xs text-gray-500 mt-0.5" }, [
410
- __props.testCase?.location ? (openBlock(), createBlock("span", { key: 0 }, toDisplayString(__props.testCase.location), 1)) : createCommentVNode("", true),
913
+ createVNode("p", { class: "text-xs text-gray-500 mt-0.5 flex items-center gap-x-2 gap-y-0.5 flex-wrap" }, [
914
+ __props.testCase?.location ? (openBlock(), createBlock(_component_OpenInIdeLink, {
915
+ key: 0,
916
+ location: __props.testCase.location,
917
+ "project-key": __props.projectKey,
918
+ "project-name": __props.projectName
919
+ }, null, 8, ["location", "project-key", "project-name"])) : createCommentVNode("", true),
411
920
  createVNode(_component_ClientOnly, null, {
412
921
  default: withCtx(() => [
413
922
  unref(startedAtMs) ? (openBlock(), createBlock("span", {
414
923
  key: 0,
415
- class: "ml-2 text-gray-400",
924
+ class: "text-gray-400",
416
925
  title: new Date(unref(startedAtMs)).toLocaleString()
417
926
  }, " started " + toDisplayString(("formatRelativeTime" in _ctx ? _ctx.formatRelativeTime : unref(formatRelativeTime))(unref(startedAtMs))), 9, ["title"])) : createCommentVNode("", true)
418
927
  ]),
419
928
  _: 2
420
929
  }, 1024),
421
- __props.historicalTiming ? (openBlock(), createBlock("span", {
422
- key: 1,
423
- class: "ml-2"
424
- }, [
930
+ __props.historicalTiming ? (openBlock(), createBlock("span", { key: 1 }, [
425
931
  createTextVNode(" Avg "),
426
932
  createVNode(_component_DurationValue, {
427
933
  ms: __props.historicalTiming.avg
@@ -434,28 +940,31 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
434
940
  ])
435
941
  ])
436
942
  ]),
437
- createVNode("div", { class: "grid grid-cols-2 sm:grid-cols-4 gap-2" }, [
438
- createVNode("div", { class: "rounded-lg bg-gray-50 dark:bg-gray-900 p-3" }, [
439
- createVNode("p", { class: "text-xs font-medium text-gray-500 uppercase tracking-wider" }, "Duration"),
440
- createVNode("p", { class: "text-xl font-bold mt-0.5" }, [
441
- createVNode(_component_DurationValue, {
442
- ms: __props.testCase?.duration
443
- }, null, 8, ["ms"])
444
- ])
445
- ]),
446
- createVNode("div", { class: "rounded-lg bg-gray-50 dark:bg-gray-900 p-3" }, [
447
- createVNode("p", { class: "text-xs font-medium text-gray-500 uppercase tracking-wider" }, "Retries"),
448
- createVNode("p", { class: "text-xl font-bold mt-0.5" }, toDisplayString(__props.testCase?.retries ?? 0), 1)
449
- ]),
450
- createVNode("div", { class: "rounded-lg bg-gray-50 dark:bg-gray-900 p-3" }, [
451
- createVNode("p", { class: "text-xs font-medium text-gray-500 uppercase tracking-wider" }, "Steps"),
452
- createVNode("p", { class: "text-xl font-bold mt-0.5" }, toDisplayString(__props.stepsCount), 1)
943
+ createVNode(_component_StatTileGrid, null, {
944
+ default: withCtx(() => [
945
+ createVNode(_component_StatTile, { label: "Duration" }, {
946
+ default: withCtx(() => [
947
+ createVNode(_component_DurationValue, {
948
+ ms: __props.testCase?.duration
949
+ }, null, 8, ["ms"])
950
+ ]),
951
+ _: 1
952
+ }),
953
+ createVNode(_component_StatTile, {
954
+ label: "Retries",
955
+ value: __props.testCase?.retries ?? 0
956
+ }, null, 8, ["value"]),
957
+ createVNode(_component_StatTile, {
958
+ label: "Steps",
959
+ value: __props.stepsCount
960
+ }, null, 8, ["value"]),
961
+ createVNode(_component_StatTile, {
962
+ label: "Worker",
963
+ value: __props.testCase?.workerIndex ?? "—"
964
+ }, null, 8, ["value"])
453
965
  ]),
454
- createVNode("div", { class: "rounded-lg bg-gray-50 dark:bg-gray-900 p-3" }, [
455
- createVNode("p", { class: "text-xs font-medium text-gray-500 uppercase tracking-wider" }, "Worker"),
456
- createVNode("p", { class: "text-xl font-bold mt-0.5" }, toDisplayString(__props.testCase?.workerIndex ?? "—"), 1)
457
- ])
458
- ]),
966
+ _: 1
967
+ }),
459
968
  __props.testCase?.slowestStep ? (openBlock(), createBlock("div", {
460
969
  key: 0,
461
970
  class: "flex items-center gap-2 text-sm"
@@ -499,221 +1008,261 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
499
1008
  _: 1
500
1009
  }, _parent2, _scopeId));
501
1010
  _push2(`</div>`);
502
- if (__props.scmInfo) {
503
- _push2(ssrRenderComponent(_component_SourceInfoCard, {
504
- scm: __props.scmInfo,
505
- class: unref(blockColSpanClass)
506
- }, null, _parent2, _scopeId));
507
- } else {
508
- _push2(`<!---->`);
509
- }
510
- if (__props.ciInfo || __props.environment || __props.browser) {
511
- _push2(ssrRenderComponent(_component_CiEnvCard, {
512
- ci: __props.ciInfo,
513
- environment: __props.environment,
514
- browser: __props.browser,
515
- class: unref(blockColSpanClass)
516
- }, null, _parent2, _scopeId));
517
- } else {
518
- _push2(`<!---->`);
519
- }
520
- _push2(ssrRenderComponent(_component_BlockCard, {
521
- class: unref(blockColSpanClass),
522
- title: "Links",
523
- icon: "i-lucide-link"
524
- }, {
525
- default: withCtx((_2, _push3, _parent3, _scopeId2) => {
526
- if (_push3) {
527
- if (__props.testCase?.id) {
528
- _push3(ssrRenderComponent(_component_EntityLinks, {
529
- "entity-type": "test_case",
530
- "entity-id": __props.testCase.id,
531
- links: __props.stableLinks ?? null
532
- }, null, _parent3, _scopeId2));
533
- } else {
534
- _push3(`<!---->`);
535
- }
536
- } else {
537
- return [
538
- __props.testCase?.id ? (openBlock(), createBlock(_component_EntityLinks, {
539
- key: 0,
540
- "entity-type": "test_case",
541
- "entity-id": __props.testCase.id,
542
- links: __props.stableLinks ?? null
543
- }, null, 8, ["entity-id", "links"])) : createCommentVNode("", true)
544
- ];
545
- }
546
- }),
547
- _: 1
548
- }, _parent2, _scopeId));
549
- _push2(`</div>`);
550
1011
  } else {
551
1012
  return [
552
- createVNode("div", { class: "grid grid-cols-1 lg:grid-cols-12 gap-4" }, [
553
- createVNode("div", { class: unref(summaryColSpanClass) }, [
554
- createVNode(_component_UCard, { class: "shadow-xs h-full" }, {
555
- default: withCtx(() => [
556
- createVNode("div", { class: "space-y-3" }, [
557
- createVNode("div", { class: "flex items-start gap-3" }, [
558
- createVNode(_component_StatusBlock, {
559
- status: __props.testCase?.status ?? "",
560
- size: "md"
561
- }, null, 8, ["status"]),
562
- createVNode("div", { class: "min-w-0 flex-1" }, [
563
- createVNode("div", { class: "flex items-center gap-2 flex-wrap" }, [
564
- createVNode("h2", { class: "text-base font-bold truncate" }, toDisplayString(__props.testCase?.title), 1),
565
- (openBlock(true), createBlock(Fragment, null, renderList(unref(signalBadges), (badge) => {
566
- return openBlock(), createBlock(_component_UBadge, {
567
- key: badge.label,
568
- color: badge.color,
569
- variant: "subtle",
570
- size: "xs",
571
- title: badge.title
572
- }, {
573
- default: withCtx(() => [
574
- createTextVNode(toDisplayString(badge.label), 1)
575
- ]),
576
- _: 2
577
- }, 1032, ["color", "title"]);
578
- }), 128)),
579
- (openBlock(true), createBlock(Fragment, null, renderList(unref(annotations), (ann, i) => {
580
- return openBlock(), createBlock(_component_UBadge, {
581
- key: `ann-${i}`,
582
- color: "neutral",
583
- variant: "soft",
584
- size: "xs",
585
- class: "font-mono",
586
- title: ann.description || ann.type
587
- }, {
588
- default: withCtx(() => [
589
- createTextVNode(" @" + toDisplayString(ann.type), 1)
590
- ]),
591
- _: 2
592
- }, 1032, ["title"]);
593
- }), 128)),
594
- createVNode(_component_TestMetaBadges, {
595
- tags: __props.testCase?.tags,
596
- meta: __props.testCase?.testMeta
597
- }, null, 8, ["tags", "meta"])
598
- ]),
599
- createVNode("p", { class: "text-xs text-gray-500 mt-0.5" }, [
600
- __props.testCase?.location ? (openBlock(), createBlock("span", { key: 0 }, toDisplayString(__props.testCase.location), 1)) : createCommentVNode("", true),
601
- createVNode(_component_ClientOnly, null, {
1013
+ createVNode("div", { class: "@container" }, [
1014
+ createVNode(_component_UCard, {
1015
+ class: "shadow-xs",
1016
+ ui: { footer: "px-4 py-2.5 sm:px-4 bg-muted/30" }
1017
+ }, {
1018
+ footer: withCtx(() => [
1019
+ createVNode(_component_SummaryMetaStrip, null, {
1020
+ default: withCtx(() => [
1021
+ __props.scmInfo ? (openBlock(), createBlock(_component_MetaStripGroup, {
1022
+ key: 0,
1023
+ label: "Source",
1024
+ icon: "i-lucide-git-branch"
1025
+ }, {
1026
+ default: withCtx(() => [
1027
+ __props.scmInfo.branch ? (openBlock(), createBlock("span", {
1028
+ key: 0,
1029
+ class: "font-medium"
1030
+ }, toDisplayString(__props.scmInfo.branch), 1)) : createCommentVNode("", true),
1031
+ __props.scmInfo.commit ? (openBlock(), createBlock("code", {
1032
+ key: 1,
1033
+ class: "text-xs font-mono bg-zinc-100 dark:bg-zinc-800 px-1 py-0.5 rounded",
1034
+ title: __props.scmInfo.commit
1035
+ }, toDisplayString(__props.scmInfo.commit.length >= 8 ? __props.scmInfo.commit.substring(0, 8) : __props.scmInfo.commit), 9, ["title"])) : createCommentVNode("", true),
1036
+ __props.scmInfo.author ? (openBlock(), createBlock("span", {
1037
+ key: 2,
1038
+ class: "text-muted"
1039
+ }, toDisplayString(__props.scmInfo.author), 1)) : createCommentVNode("", true),
1040
+ __props.scmInfo.commitMessage ? (openBlock(), createBlock("span", {
1041
+ key: 3,
1042
+ class: "text-xs text-dimmed truncate max-w-[40ch]",
1043
+ title: __props.scmInfo.commitMessage
1044
+ }, toDisplayString(__props.scmInfo.commitMessage), 9, ["title"])) : createCommentVNode("", true)
1045
+ ]),
1046
+ _: 1
1047
+ })) : createCommentVNode("", true),
1048
+ unref(showCiGroup) ? (openBlock(), createBlock(_component_MetaStripGroup, {
1049
+ key: 1,
1050
+ label: "CI & environment",
1051
+ icon: "i-lucide-cloud",
1052
+ help: "run.ci-env"
1053
+ }, {
1054
+ default: withCtx(() => [
1055
+ __props.environment ? (openBlock(), createBlock("span", {
1056
+ key: 0,
1057
+ class: "rounded-full border border-default px-2 py-0.5 text-xs bg-elevated/60"
1058
+ }, toDisplayString(__props.environment), 1)) : createCommentVNode("", true),
1059
+ __props.ciInfo?.provider ? (openBlock(), createBlock("span", { key: 1 }, toDisplayString(__props.ciInfo.provider), 1)) : createCommentVNode("", true),
1060
+ __props.ciInfo?.buildNumber || __props.ciInfo?.buildUrl ? (openBlock(), createBlock(Fragment, { key: 2 }, [
1061
+ createVNode("span", { class: "text-dimmed" }, "·"),
1062
+ __props.ciInfo?.buildUrl ? (openBlock(), createBlock("a", {
1063
+ key: 0,
1064
+ href: __props.ciInfo.buildUrl,
1065
+ target: "_blank",
1066
+ class: "text-primary hover:underline"
1067
+ }, toDisplayString(__props.ciInfo?.buildNumber ? `Build #${__props.ciInfo.buildNumber}` : "View build"), 9, ["href"])) : (openBlock(), createBlock("span", { key: 1 }, "Build #" + toDisplayString(__props.ciInfo.buildNumber), 1))
1068
+ ], 64)) : createCommentVNode("", true),
1069
+ __props.ciInfo?.workflow || __props.ciInfo?.jobName ? (openBlock(), createBlock(Fragment, { key: 3 }, [
1070
+ createVNode("span", { class: "text-dimmed" }, "·"),
1071
+ createVNode("span", { class: "text-muted" }, [
1072
+ __props.ciInfo?.workflow ? (openBlock(), createBlock(Fragment, { key: 0 }, [
1073
+ createTextVNode(toDisplayString(__props.ciInfo.workflow), 1)
1074
+ ], 64)) : createCommentVNode("", true),
1075
+ __props.ciInfo?.workflow && __props.ciInfo?.jobName ? (openBlock(), createBlock(Fragment, { key: 1 }, [
1076
+ createTextVNode(" · ")
1077
+ ], 64)) : createCommentVNode("", true),
1078
+ __props.ciInfo?.jobName ? (openBlock(), createBlock(Fragment, { key: 2 }, [
1079
+ createTextVNode(toDisplayString(__props.ciInfo.jobName), 1)
1080
+ ], 64)) : createCommentVNode("", true)
1081
+ ])
1082
+ ], 64)) : createCommentVNode("", true)
1083
+ ]),
1084
+ _: 1
1085
+ })) : createCommentVNode("", true),
1086
+ __props.browser ? (openBlock(), createBlock(_component_MetaStripGroup, {
1087
+ key: 2,
1088
+ label: "Browser"
1089
+ }, {
1090
+ default: withCtx(() => [
1091
+ createVNode(_component_BrowserBadge, {
1092
+ browser: { ...__props.browser, viewport: void 0 },
1093
+ size: "sm"
1094
+ }, null, 8, ["browser"]),
1095
+ __props.browser.viewport ? (openBlock(), createBlock("span", {
1096
+ key: 0,
1097
+ class: "tabular-nums text-muted"
1098
+ }, [
1099
+ createTextVNode(toDisplayString(__props.browser.viewport.width) + "×" + toDisplayString(__props.browser.viewport.height) + " ", 1),
1100
+ __props.browser.deviceScaleFactor && __props.browser.deviceScaleFactor !== 1 ? (openBlock(), createBlock("span", {
1101
+ key: 0,
1102
+ class: "text-dimmed"
1103
+ }, "@" + toDisplayString(__props.browser.deviceScaleFactor) + "x", 1)) : createCommentVNode("", true)
1104
+ ])) : createCommentVNode("", true)
1105
+ ]),
1106
+ _: 1
1107
+ })) : createCommentVNode("", true),
1108
+ createVNode(_component_MetaStripGroup, {
1109
+ label: "Links",
1110
+ icon: "i-lucide-link"
1111
+ }, {
1112
+ default: withCtx(() => [
1113
+ __props.testCase?.id ? (openBlock(), createBlock(_component_EntityLinks, {
1114
+ key: 0,
1115
+ "entity-type": "test_case",
1116
+ "entity-id": __props.testCase.id,
1117
+ links: __props.stableLinks ?? null,
1118
+ onUpdated: ($event) => _ctx.$emit("refresh")
1119
+ }, null, 8, ["entity-id", "links", "onUpdated"])) : createCommentVNode("", true)
1120
+ ]),
1121
+ _: 1
1122
+ })
1123
+ ]),
1124
+ _: 1
1125
+ })
1126
+ ]),
1127
+ default: withCtx(() => [
1128
+ createVNode("div", { class: "space-y-3" }, [
1129
+ createVNode("div", { class: "flex items-start gap-2.5 pr-8" }, [
1130
+ createVNode(_component_StatusChip, {
1131
+ status: __props.testCase?.status ?? "",
1132
+ class: "mt-0.5"
1133
+ }, null, 8, ["status"]),
1134
+ createVNode("div", { class: "min-w-0 flex-1" }, [
1135
+ createVNode("div", { class: "flex items-center gap-2 flex-wrap" }, [
1136
+ createVNode("h2", { class: "text-base font-bold truncate max-w-full" }, toDisplayString(__props.testCase?.title), 1),
1137
+ (openBlock(true), createBlock(Fragment, null, renderList(unref(signalBadges), (badge) => {
1138
+ return openBlock(), createBlock(_component_UBadge, {
1139
+ key: badge.label,
1140
+ color: badge.color,
1141
+ variant: "subtle",
1142
+ size: "xs",
1143
+ title: badge.title
1144
+ }, {
602
1145
  default: withCtx(() => [
603
- unref(startedAtMs) ? (openBlock(), createBlock("span", {
604
- key: 0,
605
- class: "ml-2 text-gray-400",
606
- title: new Date(unref(startedAtMs)).toLocaleString()
607
- }, " started " + toDisplayString(("formatRelativeTime" in _ctx ? _ctx.formatRelativeTime : unref(formatRelativeTime))(unref(startedAtMs))), 9, ["title"])) : createCommentVNode("", true)
1146
+ createTextVNode(toDisplayString(badge.label), 1)
608
1147
  ]),
609
1148
  _: 2
610
- }, 1024),
611
- __props.historicalTiming ? (openBlock(), createBlock("span", {
612
- key: 1,
613
- class: "ml-2"
614
- }, [
615
- createTextVNode(" Avg "),
616
- createVNode(_component_DurationValue, {
617
- ms: __props.historicalTiming.avg
618
- }, null, 8, ["ms"]),
619
- createTextVNode(" · "),
620
- createVNode("span", {
621
- class: __props.historicalTiming.diff > 0 ? "text-red-600" : "text-green-600"
622
- }, toDisplayString(__props.historicalTiming.diff > 0 ? "+" : "") + toDisplayString(__props.historicalTiming.pct) + "% ", 3)
623
- ])) : createCommentVNode("", true)
624
- ])
1149
+ }, 1032, ["color", "title"]);
1150
+ }), 128)),
1151
+ (openBlock(true), createBlock(Fragment, null, renderList(unref(annotations), (ann, i) => {
1152
+ return openBlock(), createBlock(_component_UBadge, {
1153
+ key: `ann-${i}`,
1154
+ color: "neutral",
1155
+ variant: "soft",
1156
+ size: "xs",
1157
+ class: "font-mono",
1158
+ title: ann.description || ann.type
1159
+ }, {
1160
+ default: withCtx(() => [
1161
+ createTextVNode(" @" + toDisplayString(ann.type), 1)
1162
+ ]),
1163
+ _: 2
1164
+ }, 1032, ["title"]);
1165
+ }), 128)),
1166
+ createVNode(_component_TestMetaBadges, {
1167
+ tags: __props.testCase?.tags,
1168
+ meta: __props.testCase?.testMeta
1169
+ }, null, 8, ["tags", "meta"])
1170
+ ]),
1171
+ createVNode("p", { class: "text-xs text-gray-500 mt-0.5 flex items-center gap-x-2 gap-y-0.5 flex-wrap" }, [
1172
+ __props.testCase?.location ? (openBlock(), createBlock(_component_OpenInIdeLink, {
1173
+ key: 0,
1174
+ location: __props.testCase.location,
1175
+ "project-key": __props.projectKey,
1176
+ "project-name": __props.projectName
1177
+ }, null, 8, ["location", "project-key", "project-name"])) : createCommentVNode("", true),
1178
+ createVNode(_component_ClientOnly, null, {
1179
+ default: withCtx(() => [
1180
+ unref(startedAtMs) ? (openBlock(), createBlock("span", {
1181
+ key: 0,
1182
+ class: "text-gray-400",
1183
+ title: new Date(unref(startedAtMs)).toLocaleString()
1184
+ }, " started " + toDisplayString(("formatRelativeTime" in _ctx ? _ctx.formatRelativeTime : unref(formatRelativeTime))(unref(startedAtMs))), 9, ["title"])) : createCommentVNode("", true)
1185
+ ]),
1186
+ _: 2
1187
+ }, 1024),
1188
+ __props.historicalTiming ? (openBlock(), createBlock("span", { key: 1 }, [
1189
+ createTextVNode(" Avg "),
1190
+ createVNode(_component_DurationValue, {
1191
+ ms: __props.historicalTiming.avg
1192
+ }, null, 8, ["ms"]),
1193
+ createTextVNode(" · "),
1194
+ createVNode("span", {
1195
+ class: __props.historicalTiming.diff > 0 ? "text-red-600" : "text-green-600"
1196
+ }, toDisplayString(__props.historicalTiming.diff > 0 ? "+" : "") + toDisplayString(__props.historicalTiming.pct) + "% ", 3)
1197
+ ])) : createCommentVNode("", true)
625
1198
  ])
626
- ]),
627
- createVNode("div", { class: "grid grid-cols-2 sm:grid-cols-4 gap-2" }, [
628
- createVNode("div", { class: "rounded-lg bg-gray-50 dark:bg-gray-900 p-3" }, [
629
- createVNode("p", { class: "text-xs font-medium text-gray-500 uppercase tracking-wider" }, "Duration"),
630
- createVNode("p", { class: "text-xl font-bold mt-0.5" }, [
1199
+ ])
1200
+ ]),
1201
+ createVNode(_component_StatTileGrid, null, {
1202
+ default: withCtx(() => [
1203
+ createVNode(_component_StatTile, { label: "Duration" }, {
1204
+ default: withCtx(() => [
631
1205
  createVNode(_component_DurationValue, {
632
1206
  ms: __props.testCase?.duration
633
1207
  }, null, 8, ["ms"])
634
- ])
635
- ]),
636
- createVNode("div", { class: "rounded-lg bg-gray-50 dark:bg-gray-900 p-3" }, [
637
- createVNode("p", { class: "text-xs font-medium text-gray-500 uppercase tracking-wider" }, "Retries"),
638
- createVNode("p", { class: "text-xl font-bold mt-0.5" }, toDisplayString(__props.testCase?.retries ?? 0), 1)
639
- ]),
640
- createVNode("div", { class: "rounded-lg bg-gray-50 dark:bg-gray-900 p-3" }, [
641
- createVNode("p", { class: "text-xs font-medium text-gray-500 uppercase tracking-wider" }, "Steps"),
642
- createVNode("p", { class: "text-xl font-bold mt-0.5" }, toDisplayString(__props.stepsCount), 1)
643
- ]),
644
- createVNode("div", { class: "rounded-lg bg-gray-50 dark:bg-gray-900 p-3" }, [
645
- createVNode("p", { class: "text-xs font-medium text-gray-500 uppercase tracking-wider" }, "Worker"),
646
- createVNode("p", { class: "text-xl font-bold mt-0.5" }, toDisplayString(__props.testCase?.workerIndex ?? "—"), 1)
647
- ])
1208
+ ]),
1209
+ _: 1
1210
+ }),
1211
+ createVNode(_component_StatTile, {
1212
+ label: "Retries",
1213
+ value: __props.testCase?.retries ?? 0
1214
+ }, null, 8, ["value"]),
1215
+ createVNode(_component_StatTile, {
1216
+ label: "Steps",
1217
+ value: __props.stepsCount
1218
+ }, null, 8, ["value"]),
1219
+ createVNode(_component_StatTile, {
1220
+ label: "Worker",
1221
+ value: __props.testCase?.workerIndex ?? "—"
1222
+ }, null, 8, ["value"])
648
1223
  ]),
649
- __props.testCase?.slowestStep ? (openBlock(), createBlock("div", {
1224
+ _: 1
1225
+ }),
1226
+ __props.testCase?.slowestStep ? (openBlock(), createBlock("div", {
1227
+ key: 0,
1228
+ class: "flex items-center gap-2 text-sm"
1229
+ }, [
1230
+ createVNode(_component_UIcon, {
1231
+ name: "i-lucide-zap",
1232
+ class: "size-4 text-amber-500 shrink-0"
1233
+ }),
1234
+ createVNode("span", { class: "font-medium text-amber-700 dark:text-amber-300" }, "Slowest step:"),
1235
+ createVNode("span", { class: "text-gray-700 dark:text-gray-300 truncate" }, toDisplayString(__props.testCase.slowestStep), 1),
1236
+ __props.testCase.slowestStepDuration ? (openBlock(), createBlock("span", {
650
1237
  key: 0,
651
- class: "flex items-center gap-2 text-sm"
652
- }, [
653
- createVNode(_component_UIcon, {
654
- name: "i-lucide-zap",
655
- class: "size-4 text-amber-500 shrink-0"
656
- }),
657
- createVNode("span", { class: "font-medium text-amber-700 dark:text-amber-300" }, "Slowest step:"),
658
- createVNode("span", { class: "text-gray-700 dark:text-gray-300 truncate" }, toDisplayString(__props.testCase.slowestStep), 1),
659
- __props.testCase.slowestStepDuration ? (openBlock(), createBlock("span", {
660
- key: 0,
661
- class: "text-gray-500 shrink-0"
662
- }, [
663
- createTextVNode("("),
664
- createVNode(_component_DurationValue, {
665
- ms: __props.testCase.slowestStepDuration
666
- }, null, 8, ["ms"]),
667
- createTextVNode(")")
668
- ])) : createCommentVNode("", true)
669
- ])) : createCommentVNode("", true),
670
- (__props.testCase?.wastedTimeMs ?? 0) > 0 ? (openBlock(), createBlock("div", {
671
- key: 1,
672
- class: "flex items-center gap-1.5 text-sm"
1238
+ class: "text-gray-500 shrink-0"
673
1239
  }, [
674
- createVNode(_component_UIcon, {
675
- name: "i-lucide-hourglass",
676
- class: "size-4 text-amber-500 shrink-0"
677
- }),
678
- createVNode("span", { class: "font-medium text-amber-700 dark:text-amber-300" }, "Wasted in fixed waits:"),
1240
+ createTextVNode("("),
679
1241
  createVNode(_component_DurationValue, {
680
- ms: __props.testCase?.wastedTimeMs,
681
- class: "text-gray-700 dark:text-gray-300"
1242
+ ms: __props.testCase.slowestStepDuration
682
1243
  }, null, 8, ["ms"]),
683
- createVNode(_component_HelpHint, { topic: "case.wasted-time" })
1244
+ createTextVNode(")")
684
1245
  ])) : createCommentVNode("", true)
685
- ])
686
- ]),
687
- _: 2
688
- }, 1024)
689
- ], 2),
690
- __props.scmInfo ? (openBlock(), createBlock(_component_SourceInfoCard, {
691
- key: 0,
692
- scm: __props.scmInfo,
693
- class: unref(blockColSpanClass)
694
- }, null, 8, ["scm", "class"])) : createCommentVNode("", true),
695
- __props.ciInfo || __props.environment || __props.browser ? (openBlock(), createBlock(_component_CiEnvCard, {
696
- key: 1,
697
- ci: __props.ciInfo,
698
- environment: __props.environment,
699
- browser: __props.browser,
700
- class: unref(blockColSpanClass)
701
- }, null, 8, ["ci", "environment", "browser", "class"])) : createCommentVNode("", true),
702
- createVNode(_component_BlockCard, {
703
- class: unref(blockColSpanClass),
704
- title: "Links",
705
- icon: "i-lucide-link"
706
- }, {
707
- default: withCtx(() => [
708
- __props.testCase?.id ? (openBlock(), createBlock(_component_EntityLinks, {
709
- key: 0,
710
- "entity-type": "test_case",
711
- "entity-id": __props.testCase.id,
712
- links: __props.stableLinks ?? null
713
- }, null, 8, ["entity-id", "links"])) : createCommentVNode("", true)
1246
+ ])) : createCommentVNode("", true),
1247
+ (__props.testCase?.wastedTimeMs ?? 0) > 0 ? (openBlock(), createBlock("div", {
1248
+ key: 1,
1249
+ class: "flex items-center gap-1.5 text-sm"
1250
+ }, [
1251
+ createVNode(_component_UIcon, {
1252
+ name: "i-lucide-hourglass",
1253
+ class: "size-4 text-amber-500 shrink-0"
1254
+ }),
1255
+ createVNode("span", { class: "font-medium text-amber-700 dark:text-amber-300" }, "Wasted in fixed waits:"),
1256
+ createVNode(_component_DurationValue, {
1257
+ ms: __props.testCase?.wastedTimeMs,
1258
+ class: "text-gray-700 dark:text-gray-300"
1259
+ }, null, 8, ["ms"]),
1260
+ createVNode(_component_HelpHint, { topic: "case.wasted-time" })
1261
+ ])) : createCommentVNode("", true)
1262
+ ])
714
1263
  ]),
715
- _: 1
716
- }, 8, ["class"])
1264
+ _: 2
1265
+ }, 1024)
717
1266
  ])
718
1267
  ];
719
1268
  }
@@ -1401,12 +1950,12 @@ ${text}` : text;
1401
1950
  );
1402
1951
  return (_ctx, _push, _parent, _attrs) => {
1403
1952
  const _component_SectionCard = __nuxt_component_11;
1404
- const _component_CopyAiPromptButton = __nuxt_component_1$4;
1953
+ const _component_CopyAiPromptButton = __nuxt_component_1$3;
1405
1954
  const _component_UIcon = _sfc_main$p;
1406
1955
  const _component_DiagnosisCoverageStrip = __nuxt_component_3$3;
1407
1956
  const _component_UTextarea = _sfc_main$h;
1408
1957
  const _component_UButton = _sfc_main$k;
1409
- const _component_DiagnosisResult = __nuxt_component_6;
1958
+ const _component_DiagnosisResult = __nuxt_component_6$1;
1410
1959
  const _component_HelpHint = __nuxt_component_2$1;
1411
1960
  const _component_DiagnosisContextModal = __nuxt_component_8$1;
1412
1961
  const _component_NuxtLink = __nuxt_component_12;
@@ -1877,9 +2426,9 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
1877
2426
  const _component_UTabs = _sfc_main$g;
1878
2427
  const _component_UIcon = _sfc_main$p;
1879
2428
  const _component_TraceCallStack = __nuxt_component_3$4;
1880
- const _component_TestSourceStack = __nuxt_component_4$3;
2429
+ const _component_TestSourceStack = __nuxt_component_4$4;
1881
2430
  const _component_MarkdownPreview = __nuxt_component_26;
1882
- const _component_LoadingState = __nuxt_component_1$3;
2431
+ const _component_LoadingState = __nuxt_component_12$1;
1883
2432
  const _component_DocLink = __nuxt_component_9;
1884
2433
  _push(ssrRenderComponent(_component_CollapsibleSectionCard, mergeProps({
1885
2434
  ref_key: "card",
@@ -2125,7 +2674,7 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
2125
2674
  const _component_TestEvidenceSection = __nuxt_component_4$1$1;
2126
2675
  const _component_UIcon = _sfc_main$p;
2127
2676
  const _component_UButton = _sfc_main$k;
2128
- const _component_EmptyState = __nuxt_component_4$1;
2677
+ const _component_FeatureUnavailable = __nuxt_component_4$2;
2129
2678
  _push(ssrRenderComponent(_component_CollapsibleSectionCard, mergeProps({
2130
2679
  ref_key: "card",
2131
2680
  ref: card,
@@ -2225,9 +2774,11 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
2225
2774
  _push2(`<!---->`);
2226
2775
  }
2227
2776
  if (unref(totalCount) === 0) {
2228
- _push2(ssrRenderComponent(_component_EmptyState, {
2777
+ _push2(ssrRenderComponent(_component_FeatureUnavailable, {
2229
2778
  icon: "i-lucide-camera-off",
2230
- text: "No screenshots, video or traces captured"
2779
+ title: "No screenshots, video or traces captured",
2780
+ text: "Evidence comes from Playwright's own capture settings — set trace, screenshot and video in your config (trace: 'retain-on-failure' is the usual starting point).",
2781
+ doc: "reporter"
2231
2782
  }, null, _parent2, _scopeId));
2232
2783
  } else {
2233
2784
  _push2(`<!---->`);
@@ -2279,10 +2830,12 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
2279
2830
  ]),
2280
2831
  _: 1
2281
2832
  }, 8, ["count"])) : createCommentVNode("", true),
2282
- unref(totalCount) === 0 ? (openBlock(), createBlock(_component_EmptyState, {
2833
+ unref(totalCount) === 0 ? (openBlock(), createBlock(_component_FeatureUnavailable, {
2283
2834
  key: 1,
2284
2835
  icon: "i-lucide-camera-off",
2285
- text: "No screenshots, video or traces captured"
2836
+ title: "No screenshots, video or traces captured",
2837
+ text: "Evidence comes from Playwright's own capture settings — set trace, screenshot and video in your config (trace: 'retain-on-failure' is the usual starting point).",
2838
+ doc: "reporter"
2286
2839
  })) : createCommentVNode("", true)
2287
2840
  ])
2288
2841
  ];
@@ -2505,7 +3058,7 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
2505
3058
  const _component_UBadge = _sfc_main$7$1;
2506
3059
  const _component_DurationValue = __nuxt_component_14$1;
2507
3060
  const _component_CodeBlock = __nuxt_component_5;
2508
- const _component_LoadingState = __nuxt_component_1$3;
3061
+ const _component_LoadingState = __nuxt_component_12$1;
2509
3062
  _push(ssrRenderComponent(_component_USlideover, mergeProps({
2510
3063
  open: __props.open,
2511
3064
  title: "Request detail",
@@ -3224,7 +3777,7 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
3224
3777
  const _component_SectionCard = __nuxt_component_11;
3225
3778
  const _component_UIcon = _sfc_main$p;
3226
3779
  const _component_UTabs = _sfc_main$g;
3227
- const _component_LoadingState = __nuxt_component_1$3;
3780
+ const _component_LoadingState = __nuxt_component_12$1;
3228
3781
  const _component_TraceNetworkList = __nuxt_component_4;
3229
3782
  const _component_UBadge = _sfc_main$7$1;
3230
3783
  const _component_DurationValue = __nuxt_component_14$1;
@@ -4287,7 +4840,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
4287
4840
  const hasTrace = computed(() => (traceData.value?.length ?? 0) > 0);
4288
4841
  useHead(
4289
4842
  computed(() => ({
4290
- title: `${testCase.value?.title || `Test run case #${testCaseId}`} — Piwi Dashboard`
4843
+ title: testCase.value?.title ? `${testCase.value.title} execution — Piwi Dashboard` : `Execution #${testCaseId} — Piwi Dashboard`
4291
4844
  }))
4292
4845
  );
4293
4846
  const hasError = computed(() => Boolean(testCase.value?.error));
@@ -4570,9 +5123,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
4570
5123
  const _component_BreadcrumbNav = __nuxt_component_3$2;
4571
5124
  const _component_NuxtLink = __nuxt_component_12;
4572
5125
  const _component_UIcon = _sfc_main$p;
4573
- const _component_ExportMenu = __nuxt_component_6$1;
4574
- const _component_DesktopRunLocallyButton = __nuxt_component_13;
4575
- const _component_NavbarActions = __nuxt_component_4$2;
5126
+ const _component_ExportMenu = __nuxt_component_6;
5127
+ const _component_DesktopRunLocallyButton = __nuxt_component_14$2;
5128
+ const _component_NavbarActions = __nuxt_component_4$3;
4576
5129
  const _component_DetailPageLayout = __nuxt_component_8;
4577
5130
  const _component_TestCaseSummary = __nuxt_component_10;
4578
5131
  const _component_SectionCard = __nuxt_component_11;
@@ -4602,7 +5155,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
4602
5155
  const _component_TestCaseAttachmentsCard = __nuxt_component_35;
4603
5156
  const _component_StatTileGrid = __nuxt_component_1;
4604
5157
  const _component_StatTile = __nuxt_component_2;
4605
- const _component_DocLink = __nuxt_component_9;
5158
+ const _component_FeatureUnavailable = __nuxt_component_4$2;
4606
5159
  const _component_TestCaseHistoryChart = __nuxt_component_39;
4607
5160
  _push(ssrRenderComponent(_component_UDashboardPanel, mergeProps({ id: "test-run-case-detail" }, _attrs), {
4608
5161
  header: withCtx((_, _push2, _parent2, _scopeId) => {
@@ -4627,7 +5180,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
4627
5180
  to: `/test-runs/${unref(testCase).testRun.id}`
4628
5181
  }
4629
5182
  ] : [{ label: "Test run" }],
4630
- { label: unref(testCase)?.title || `Test run case #${unref(testCaseId)}` }
5183
+ { label: unref(testCase)?.title || `Execution #${unref(testCaseId)}` }
4631
5184
  ]
4632
5185
  }, null, _parent3, _scopeId2));
4633
5186
  } else {
@@ -4649,7 +5202,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
4649
5202
  to: `/test-runs/${unref(testCase).testRun.id}`
4650
5203
  }
4651
5204
  ] : [{ label: "Test run" }],
4652
- { label: unref(testCase)?.title || `Test run case #${unref(testCaseId)}` }
5205
+ { label: unref(testCase)?.title || `Execution #${unref(testCaseId)}` }
4653
5206
  ]
4654
5207
  }, null, 8, ["items"])
4655
5208
  ];
@@ -4757,7 +5310,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
4757
5310
  to: `/test-runs/${unref(testCase).testRun.id}`
4758
5311
  }
4759
5312
  ] : [{ label: "Test run" }],
4760
- { label: unref(testCase)?.title || `Test run case #${unref(testCaseId)}` }
5313
+ { label: unref(testCase)?.title || `Execution #${unref(testCaseId)}` }
4761
5314
  ]
4762
5315
  }, null, 8, ["items"])
4763
5316
  ]),
@@ -4814,6 +5367,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
4814
5367
  "steps-count": unref(steps).length,
4815
5368
  "historical-timing": unref(historicalTiming),
4816
5369
  "stable-links": unref(testCase)?.stableLinks ?? null,
5370
+ "project-key": unref(testCase)?.testRun?.project?.id,
5371
+ "project-name": unref(testCase)?.testRun?.project?.name,
4817
5372
  onRefresh: ($event) => unref(refresh)()
4818
5373
  }, null, _parent3, _scopeId2));
4819
5374
  } else {
@@ -4827,8 +5382,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
4827
5382
  "steps-count": unref(steps).length,
4828
5383
  "historical-timing": unref(historicalTiming),
4829
5384
  "stable-links": unref(testCase)?.stableLinks ?? null,
5385
+ "project-key": unref(testCase)?.testRun?.project?.id,
5386
+ "project-name": unref(testCase)?.testRun?.project?.name,
4830
5387
  onRefresh: ($event) => unref(refresh)()
4831
- }, null, 8, ["test-case", "scm-info", "ci-info", "browser", "environment", "steps-count", "historical-timing", "stable-links", "onRefresh"])
5388
+ }, null, 8, ["test-case", "scm-info", "ci-info", "browser", "environment", "steps-count", "historical-timing", "stable-links", "project-key", "project-name", "onRefresh"])
4832
5389
  ];
4833
5390
  }
4834
5391
  }),
@@ -6296,43 +6853,12 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
6296
6853
  _push3(`<!---->`);
6297
6854
  }
6298
6855
  if (unref(performanceHints).length === 0 && !unref(webVitals)) {
6299
- _push3(ssrRenderComponent(_component_EmptyState, {
6856
+ _push3(ssrRenderComponent(_component_FeatureUnavailable, {
6300
6857
  icon: "i-lucide-gauge",
6301
- text: "No performance hints or Web Vitals were captured for this execution."
6302
- }, {
6303
- default: withCtx((_3, _push4, _parent4, _scopeId3) => {
6304
- if (_push4) {
6305
- _push4(`<p class="text-xs text-gray-400"${_scopeId3}> Web Vitals and timing come from the `);
6306
- _push4(ssrRenderComponent(_component_DocLink, { to: "capture-fixtures" }, {
6307
- default: withCtx((_4, _push5, _parent5, _scopeId4) => {
6308
- if (_push5) {
6309
- _push5(`capture fixtures`);
6310
- } else {
6311
- return [
6312
- createTextVNode("capture fixtures")
6313
- ];
6314
- }
6315
- }),
6316
- _: 1
6317
- }, _parent4, _scopeId3));
6318
- _push4(`. </p>`);
6319
- } else {
6320
- return [
6321
- createVNode("p", { class: "text-xs text-gray-400" }, [
6322
- createTextVNode(" Web Vitals and timing come from the "),
6323
- createVNode(_component_DocLink, { to: "capture-fixtures" }, {
6324
- default: withCtx(() => [
6325
- createTextVNode("capture fixtures")
6326
- ]),
6327
- _: 1
6328
- }),
6329
- createTextVNode(". ")
6330
- ])
6331
- ];
6332
- }
6333
- }),
6334
- _: 1
6335
- }, _parent3, _scopeId2));
6858
+ title: "No performance hints or Web Vitals for this execution",
6859
+ text: "Web Vitals and step timing come from the Piwi capture fixtures — extend your Playwright test with piwiFixtures to collect them.",
6860
+ doc: "capture-fixtures"
6861
+ }, null, _parent3, _scopeId2));
6336
6862
  } else {
6337
6863
  _push3(`<!---->`);
6338
6864
  }
@@ -6517,24 +7043,12 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
6517
7043
  ]),
6518
7044
  _: 1
6519
7045
  })) : createCommentVNode("", true),
6520
- unref(performanceHints).length === 0 && !unref(webVitals) ? (openBlock(), createBlock(_component_EmptyState, {
7046
+ unref(performanceHints).length === 0 && !unref(webVitals) ? (openBlock(), createBlock(_component_FeatureUnavailable, {
6521
7047
  key: 2,
6522
7048
  icon: "i-lucide-gauge",
6523
- text: "No performance hints or Web Vitals were captured for this execution."
6524
- }, {
6525
- default: withCtx(() => [
6526
- createVNode("p", { class: "text-xs text-gray-400" }, [
6527
- createTextVNode(" Web Vitals and timing come from the "),
6528
- createVNode(_component_DocLink, { to: "capture-fixtures" }, {
6529
- default: withCtx(() => [
6530
- createTextVNode("capture fixtures")
6531
- ]),
6532
- _: 1
6533
- }),
6534
- createTextVNode(". ")
6535
- ])
6536
- ]),
6537
- _: 1
7049
+ title: "No performance hints or Web Vitals for this execution",
7050
+ text: "Web Vitals and step timing come from the Piwi capture fixtures — extend your Playwright test with piwiFixtures to collect them.",
7051
+ doc: "capture-fixtures"
6538
7052
  })) : createCommentVNode("", true)
6539
7053
  ])
6540
7054
  ];
@@ -6938,8 +7452,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
6938
7452
  "steps-count": unref(steps).length,
6939
7453
  "historical-timing": unref(historicalTiming),
6940
7454
  "stable-links": unref(testCase)?.stableLinks ?? null,
7455
+ "project-key": unref(testCase)?.testRun?.project?.id,
7456
+ "project-name": unref(testCase)?.testRun?.project?.name,
6941
7457
  onRefresh: ($event) => unref(refresh)()
6942
- }, null, 8, ["test-case", "scm-info", "ci-info", "browser", "environment", "steps-count", "historical-timing", "stable-links", "onRefresh"])
7458
+ }, null, 8, ["test-case", "scm-info", "ci-info", "browser", "environment", "steps-count", "historical-timing", "stable-links", "project-key", "project-name", "onRefresh"])
6943
7459
  ]),
6944
7460
  "tab-diagnosis": withCtx(() => [
6945
7461
  createVNode("div", { class: "space-y-4" }, [
@@ -7459,24 +7975,12 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
7459
7975
  ]),
7460
7976
  _: 1
7461
7977
  })) : createCommentVNode("", true),
7462
- unref(performanceHints).length === 0 && !unref(webVitals) ? (openBlock(), createBlock(_component_EmptyState, {
7978
+ unref(performanceHints).length === 0 && !unref(webVitals) ? (openBlock(), createBlock(_component_FeatureUnavailable, {
7463
7979
  key: 2,
7464
7980
  icon: "i-lucide-gauge",
7465
- text: "No performance hints or Web Vitals were captured for this execution."
7466
- }, {
7467
- default: withCtx(() => [
7468
- createVNode("p", { class: "text-xs text-gray-400" }, [
7469
- createTextVNode(" Web Vitals and timing come from the "),
7470
- createVNode(_component_DocLink, { to: "capture-fixtures" }, {
7471
- default: withCtx(() => [
7472
- createTextVNode("capture fixtures")
7473
- ]),
7474
- _: 1
7475
- }),
7476
- createTextVNode(". ")
7477
- ])
7478
- ]),
7479
- _: 1
7981
+ title: "No performance hints or Web Vitals for this execution",
7982
+ text: "Web Vitals and step timing come from the Piwi capture fixtures — extend your Playwright test with piwiFixtures to collect them.",
7983
+ doc: "capture-fixtures"
7480
7984
  })) : createCommentVNode("", true)
7481
7985
  ])
7482
7986
  ]),
@@ -7607,4 +8111,4 @@ _sfc_main.setup = (props, ctx) => {
7607
8111
  };
7608
8112
 
7609
8113
  export { _sfc_main as default };
7610
- //# sourceMappingURL=_id_-BxA6IgWr.mjs.map
8114
+ //# sourceMappingURL=_id_-DMkgWSLZ.mjs.map