@piwitests/server 0.20.0 → 0.22.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 (791) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/_nuxt/2VtBYkNh.js +1 -0
  3. package/.output/public/_nuxt/{BmUfSNMV.js → 3xlGO1qT.js} +1 -1
  4. package/.output/public/_nuxt/{DeY2JkR2.js → 4yvOL9PC.js} +1 -1
  5. package/.output/public/_nuxt/6-ivqM_I.js +17 -0
  6. package/.output/public/_nuxt/{BrQEE053.js → 9N6hSApy.js} +1 -1
  7. package/.output/public/_nuxt/{hC_z4G8p.js → 9P8iHISX.js} +1 -1
  8. package/.output/public/_nuxt/B-6GGrhr.js +1 -0
  9. package/.output/public/_nuxt/B09ddw9C.js +1 -0
  10. package/.output/public/_nuxt/{Dpd16JVI.js → B0hK-xDF.js} +1 -1
  11. package/.output/public/_nuxt/{BdfhYr-u.js → B2a-Phk3.js} +1 -1
  12. package/.output/public/_nuxt/{B99fbi73.js → B6s20NbT.js} +1 -1
  13. package/.output/public/_nuxt/B9FSuKdA.js +1 -0
  14. package/.output/public/_nuxt/B9kt7ySS.js +5 -0
  15. package/.output/public/_nuxt/BDQCwxpX.js +1 -0
  16. package/.output/public/_nuxt/{oAClCn_h.js → BFcdtAzg.js} +1 -1
  17. package/.output/public/_nuxt/{CeG9pBAD.js → BH-ym1CI.js} +1 -1
  18. package/.output/public/_nuxt/{AbmKWFQQ.js → BKJetfRH.js} +1 -1
  19. package/.output/public/_nuxt/BNAHBHbY.js +1 -0
  20. package/.output/public/_nuxt/BQOWm9mQ.js +1 -0
  21. package/.output/public/_nuxt/{DJxlKFGb.js → BQzG26t0.js} +1 -1
  22. package/.output/public/_nuxt/{DabzhQB1.js → BTvE9qca.js} +1 -1
  23. package/.output/public/_nuxt/{C2hkrSey.js → BUMoU50-.js} +1 -1
  24. package/.output/public/_nuxt/{C1gTN4Q8.js → BVN50jIb.js} +1 -1
  25. package/.output/public/_nuxt/BYB8NVJZ.js +1 -0
  26. package/.output/public/_nuxt/{BicAJ6U8.js → BZnfiR67.js} +1 -1
  27. package/.output/public/_nuxt/{5A6ITZXj.js → B_mN5eMV.js} +1 -1
  28. package/.output/public/_nuxt/BaDhDBCV.js +1 -0
  29. package/.output/public/_nuxt/Bb7Uckln.js +5 -0
  30. package/.output/public/_nuxt/Be4c943G.js +2 -0
  31. package/.output/public/_nuxt/{CsLojMwR.js → BfS8BZTO.js} +1 -1
  32. package/.output/public/_nuxt/{KyA_4Ks-.js → BhH0TNTi.js} +1 -1
  33. package/.output/public/_nuxt/BjU3HZuS.js +1 -0
  34. package/.output/public/_nuxt/{DrfE8IY0.js → BlRWlfdD.js} +1 -1
  35. package/.output/public/_nuxt/BmJUhCIO.js +6 -0
  36. package/.output/public/_nuxt/BpUXqOVj.js +2 -0
  37. package/.output/public/_nuxt/BqCiYSVY.js +1 -0
  38. package/.output/public/_nuxt/Bt4FLbe0.js +1 -0
  39. package/.output/public/_nuxt/{Bm62iDV5.js → BtSJxOdh.js} +1 -1
  40. package/.output/public/_nuxt/{Und3xXFc.js → BtaTvcz6.js} +2 -2
  41. package/.output/public/_nuxt/{hNh4CIL0.js → By5qkOq8.js} +1 -1
  42. package/.output/public/_nuxt/{Bnxf8nbZ.js → C0v6l4pr.js} +1 -1
  43. package/.output/public/_nuxt/{CXEH9OPk.js → C9p0YCAi.js} +1 -1
  44. package/.output/public/_nuxt/{Dyeqn3aG.js → CAZpjzvB.js} +1 -1
  45. package/.output/public/_nuxt/{CjPfj7ya.js → CBZD8ym8.js} +1 -1
  46. package/.output/public/_nuxt/CCP6Tyle.js +1 -0
  47. package/.output/public/_nuxt/{DuwtTfO8.js → CD3R-ggS.js} +2 -2
  48. package/.output/public/_nuxt/{CxyAzHr3.js → CDh_Qt7h.js} +1 -1
  49. package/.output/public/_nuxt/CI_q0F1O.js +9 -0
  50. package/.output/public/_nuxt/CJEp4i0N.js +1 -0
  51. package/.output/public/_nuxt/{l5WKbU4h.js → CMhK1PvI.js} +3 -3
  52. package/.output/public/_nuxt/{H94BMf3L.js → CNcu4khZ.js} +1 -1
  53. package/.output/public/_nuxt/COP3KBCA.js +9 -0
  54. package/.output/public/_nuxt/{BT3wGCTI.js → CRPt9SfB.js} +1 -1
  55. package/.output/public/_nuxt/{DsesNydr.js → CScusXhF.js} +1 -1
  56. package/.output/public/_nuxt/{-f7BAm1H.js → CWoSSKhQ.js} +1 -1
  57. package/.output/public/_nuxt/{CAvY22RE.js → CWw9WGlv.js} +1 -1
  58. package/.output/public/_nuxt/{DdwHkKfV.js → CZ9ThISn.js} +1 -1
  59. package/.output/public/_nuxt/Cd8r0xk5.js +1 -0
  60. package/.output/public/_nuxt/Cf52zHyB.js +1 -0
  61. package/.output/public/_nuxt/{GPNI1ffD.js → CkKCKAYp.js} +2 -2
  62. package/.output/public/_nuxt/CkyMZI-0.js +1 -0
  63. package/.output/public/_nuxt/CoPntblj.js +1 -0
  64. package/.output/public/_nuxt/CobveFaj.js +1 -0
  65. package/.output/public/_nuxt/Cot8fIp5.js +2 -0
  66. package/.output/public/_nuxt/{D5tke0B5.js → CrOA9onF.js} +1 -1
  67. package/.output/public/_nuxt/{FaFoMVKo.js → Cwwe5bRS.js} +1 -1
  68. package/.output/public/_nuxt/D0ROfwV0.js +1 -0
  69. package/.output/public/_nuxt/{L3kAWB2a.js → D4UlSVir.js} +1 -1
  70. package/.output/public/_nuxt/D4oheDIm.js +4 -0
  71. package/.output/public/_nuxt/{CAAwCT7H.js → D6Mo5HeX.js} +1 -1
  72. package/.output/public/_nuxt/{Cnsmicv2.js → DBhdObsO.js} +34 -34
  73. package/.output/public/_nuxt/{A1pj0VnG.js → DDN2tt0a.js} +1 -1
  74. package/.output/public/_nuxt/DGnQ69wW.js +64 -0
  75. package/.output/public/_nuxt/{Cus22Ud3.js → DGyGmFem.js} +2 -2
  76. package/.output/public/_nuxt/{CzAPFPpL.js → DHUT-BKj.js} +1 -1
  77. package/.output/public/_nuxt/DK7xciFW.js +7 -0
  78. package/.output/public/_nuxt/{C0_yH0N7.js → DLNNAYfu.js} +1 -1
  79. package/.output/public/_nuxt/DLn-VPtK.js +34 -0
  80. package/.output/public/_nuxt/{CA9B2HE5.js → DOBSrxzY.js} +1 -1
  81. package/.output/public/_nuxt/{Dy-TJ0Mt.js → DOLeth7M.js} +1 -1
  82. package/.output/public/_nuxt/{CNyV9YpI.js → DQnsFoJn.js} +1 -1
  83. package/.output/public/_nuxt/DS2ANCQh.js +1 -0
  84. package/.output/public/_nuxt/{bLcjFslv.js → DSvBQHzW.js} +1 -1
  85. package/.output/public/_nuxt/{BzRRzmwm.js → DWEkQ7bl.js} +1 -1
  86. package/.output/public/_nuxt/DWwiVTZX.js +24 -0
  87. package/.output/public/_nuxt/DXXnDejN.js +1 -0
  88. package/.output/public/_nuxt/{B3obW6cw.js → Dj-TetcW.js} +2 -2
  89. package/.output/public/_nuxt/DpalT0nH.js +1 -0
  90. package/.output/public/_nuxt/{Bow4tTR0.js → DsX5CCb5.js} +1 -1
  91. package/.output/public/_nuxt/DslnXfcH.js +1 -0
  92. package/.output/public/_nuxt/DtSn2Q9-.js +1 -0
  93. package/.output/public/_nuxt/DwyFnMoY.js +44 -0
  94. package/.output/public/_nuxt/{CJFtzlQ4.js → DzM9oeLa.js} +1 -1
  95. package/.output/public/_nuxt/{BKkF4pPD.js → Gik813Ek.js} +1 -1
  96. package/.output/public/_nuxt/{pQqGiNch.js → Hot1UcKY.js} +1 -1
  97. package/.output/public/_nuxt/{DPCxhHri.js → HwFFbACq.js} +1 -1
  98. package/.output/public/_nuxt/{DJmoLeVt.js → PdEEuEsg.js} +1 -1
  99. package/.output/public/_nuxt/SBmMTKQb.js +1 -0
  100. package/.output/public/_nuxt/{C8e1EbJI.js → Sgis3xif.js} +1 -1
  101. package/.output/public/_nuxt/{CTU1mrhq.js → _VzR8bwc.js} +1 -1
  102. package/.output/public/_nuxt/{CeW8v31b.js → b_yFgp5S.js} +1 -1
  103. package/.output/public/_nuxt/builds/latest.json +1 -1
  104. package/.output/public/_nuxt/builds/meta/5f1ebc7c-d690-4f02-847f-a3249653f75f.json +1 -0
  105. package/.output/public/_nuxt/{b-GYfcrQ.js → cSeAgciy.js} +1 -1
  106. package/.output/public/_nuxt/{CwGWJbiy.js → czXrP7NB.js} +1 -1
  107. package/.output/public/_nuxt/entry.BAvBQY-h.css +1 -0
  108. package/.output/public/_nuxt/{Du2W7Jne.js → h49q_GXF.js} +42 -42
  109. package/.output/public/_nuxt/hzsG6cAc.js +1 -0
  110. package/.output/public/_nuxt/iubpj2qv.js +1 -0
  111. package/.output/public/_nuxt/jjOqY9Tv.js +1 -0
  112. package/.output/public/_nuxt/kfFeu9tK.js +1 -0
  113. package/.output/public/_nuxt/nANaAHCd.js +5 -0
  114. package/.output/public/_nuxt/{CIrFl3MW.js → t-juTK3X.js} +1 -1
  115. package/.output/public/_nuxt/{4gYNA-d4.js → x8YSyy4c.js} +1 -1
  116. package/.output/public/_nuxt/{DfgOx_ou.js → x8w_1_rn.js} +1 -1
  117. package/.output/public/_nuxt/xbO0VmDX.js +1 -0
  118. package/.output/server/chunks/_/collect.mjs +1 -1
  119. package/.output/server/chunks/_/error-500.mjs.map +1 -1
  120. package/.output/server/chunks/_/markers.mjs +1 -1
  121. package/.output/server/chunks/_/quarantine.mjs +1 -1
  122. package/.output/server/chunks/_/scope.mjs +43 -27
  123. package/.output/server/chunks/_/scope.mjs.map +1 -1
  124. package/.output/server/chunks/_/users.mjs +1 -1
  125. package/.output/server/chunks/build/{Alert-C4xq8lao.mjs → Alert-DAb8nKVs.mjs} +2 -2
  126. package/.output/server/chunks/build/Alert-DAb8nKVs.mjs.map +1 -0
  127. package/.output/server/chunks/build/{Breadcrumb-Ak2Lg3oM.mjs → Breadcrumb-DJp5WvUM.mjs} +5 -5
  128. package/.output/server/chunks/build/Breadcrumb-DJp5WvUM.mjs.map +1 -0
  129. package/.output/server/chunks/build/{BreadcrumbNav-DO7I_z-n.mjs → BreadcrumbNav-BrQwfL8G.mjs} +2 -2
  130. package/.output/server/chunks/build/BreadcrumbNav-BrQwfL8G.mjs.map +1 -0
  131. package/.output/server/chunks/build/{BrowserBadge-MFvBwxmD.mjs → BrowserBadge-Djw_e_I9.mjs} +3 -3
  132. package/.output/server/chunks/build/BrowserBadge-Djw_e_I9.mjs.map +1 -0
  133. package/.output/server/chunks/build/{Card-BQP_oZkQ.mjs → Card--Ike7sYc.mjs} +2 -2
  134. package/.output/server/chunks/build/Card--Ike7sYc.mjs.map +1 -0
  135. package/.output/server/chunks/build/{ChartCard-Y1UKwMsf.mjs → ChartCard-B2gd_8HP.mjs} +2 -2
  136. package/.output/server/chunks/build/ChartCard-B2gd_8HP.mjs.map +1 -0
  137. package/.output/server/chunks/build/{ChartMarkerTooltip-0DcMfD_6.mjs → ChartMarkerTooltip-u_1DUHh-.mjs} +2 -2
  138. package/.output/server/chunks/build/ChartMarkerTooltip-u_1DUHh-.mjs.map +1 -0
  139. package/.output/server/chunks/build/{Checkbox-4Q5d0fa0.mjs → Checkbox-C1khEdTh.mjs} +4 -4
  140. package/.output/server/chunks/build/Checkbox-C1khEdTh.mjs.map +1 -0
  141. package/.output/server/chunks/build/{CodeBlock-BgE-NSmE.mjs → CodeBlock-CjnDrO3Y.mjs} +4 -4
  142. package/.output/server/chunks/build/CodeBlock-CjnDrO3Y.mjs.map +1 -0
  143. package/.output/server/chunks/build/{DashboardNavbar-BHmMSPX7.mjs → DashboardNavbar-DYtmVlhy.mjs} +5 -5
  144. package/.output/server/chunks/build/DashboardNavbar-DYtmVlhy.mjs.map +1 -0
  145. package/.output/server/chunks/build/{DashboardSidebarToggle-DCTnHiIv.mjs → DashboardSidebarToggle-BPNxODwj.mjs} +5 -5
  146. package/.output/server/chunks/build/DashboardSidebarToggle-BPNxODwj.mjs.map +1 -0
  147. package/.output/server/chunks/build/{DataLocationCard-B_YHdzSz.mjs → DataLocationCard-2B-sVSMr.mjs} +5 -5
  148. package/.output/server/chunks/build/DataLocationCard-2B-sVSMr.mjs.map +1 -0
  149. package/.output/server/chunks/build/{DiagnosisPanel-CALyEmcJ.mjs → DiagnosisPanel-D6QO30FQ.mjs} +9 -8
  150. package/.output/server/chunks/build/DiagnosisPanel-D6QO30FQ.mjs.map +1 -0
  151. package/.output/server/chunks/build/{useAiStatus-CxjMmDDY.mjs → DiagnosisResult-ujB5Lt2A.mjs} +12 -34
  152. package/.output/server/chunks/build/DiagnosisResult-ujB5Lt2A.mjs.map +1 -0
  153. package/.output/server/chunks/build/{DurationValue-D20oGbnc.mjs → DurationValue-UX9uajQJ.mjs} +2 -2
  154. package/.output/server/chunks/build/DurationValue-UX9uajQJ.mjs.map +1 -0
  155. package/.output/server/chunks/build/{EntityLinks-BBHWssHH.mjs → EntityLinks-F8_kC-IH.mjs} +6 -6
  156. package/.output/server/chunks/build/EntityLinks-F8_kC-IH.mjs.map +1 -0
  157. package/.output/server/chunks/build/{EnvManagedBadge-UwD2b9v2.mjs → EnvManagedBadge-D6e-10M9.mjs} +3 -3
  158. package/.output/server/chunks/build/EnvManagedBadge-D6e-10M9.mjs.map +1 -0
  159. package/.output/server/chunks/build/FeatureUnavailable-BMw4euTk.mjs +83 -0
  160. package/.output/server/chunks/build/FeatureUnavailable-BMw4euTk.mjs.map +1 -0
  161. package/.output/server/chunks/build/{FormField-B0HKsdMd.mjs → FormField-QptK0rPg.mjs} +3 -3
  162. package/.output/server/chunks/build/FormField-QptK0rPg.mjs.map +1 -0
  163. package/.output/server/chunks/build/GetStartedWizard-DxT8T14Y.mjs +510 -0
  164. package/.output/server/chunks/build/GetStartedWizard-DxT8T14Y.mjs.map +1 -0
  165. package/.output/server/chunks/build/{HelpHint-DrcIv-Oj.mjs → HelpHint-C5Ru8BCc.mjs} +3 -3
  166. package/.output/server/chunks/build/HelpHint-C5Ru8BCc.mjs.map +1 -0
  167. package/.output/server/chunks/build/{LoadingState-C3pBSuOO.mjs → LoadingState-CwpfmI0W.mjs} +3 -3
  168. package/.output/server/chunks/build/LoadingState-CwpfmI0W.mjs.map +1 -0
  169. package/.output/server/chunks/build/{MarkerBadge-D7meXy4u.mjs → MarkerBadge-Biz5--h2.mjs} +1 -1
  170. package/.output/server/chunks/build/MarkerBadge-Biz5--h2.mjs.map +1 -0
  171. package/.output/server/chunks/build/{CiEnvCard-DB5DvBh1.mjs → MetaStripGroup-BBByVvpR.mjs} +242 -529
  172. package/.output/server/chunks/build/MetaStripGroup-BBByVvpR.mjs.map +1 -0
  173. package/.output/server/chunks/build/{MiniRunBars-CZMugDrh.mjs → MiniRunBars-fgLMgRUp.mjs} +2 -2
  174. package/.output/server/chunks/build/MiniRunBars-fgLMgRUp.mjs.map +1 -0
  175. package/.output/server/chunks/build/{Modal-pSDlXzT3.mjs → Modal-BacZmQCX.mjs} +3 -3
  176. package/.output/server/chunks/build/Modal-BacZmQCX.mjs.map +1 -0
  177. package/.output/server/chunks/build/{useSettingsNav-DnQKacz8.mjs → NavigationMenu-sTiKSWDm.mjs} +7 -30
  178. package/.output/server/chunks/build/NavigationMenu-sTiKSWDm.mjs.map +1 -0
  179. package/.output/server/chunks/build/{OpenInIdeLink-CQWKKChd.mjs → OpenInIdeLink-Crc8y0Yx.mjs} +6 -6
  180. package/.output/server/chunks/build/{OpenInIdeLink-CQWKKChd.mjs.map → OpenInIdeLink-Crc8y0Yx.mjs.map} +1 -1
  181. package/.output/server/chunks/build/{ProjectTestCasesTable-Bo61P5K1.mjs → ProjectTestCasesTable-DwjqZ2i5.mjs} +17 -17
  182. package/.output/server/chunks/build/{ProjectTestCasesTable-Bo61P5K1.mjs.map → ProjectTestCasesTable-DwjqZ2i5.mjs.map} +1 -1
  183. package/.output/server/chunks/build/{RunReports-DFLv51TX.mjs → RunReports-nuLb-Nm3.mjs} +3 -3
  184. package/.output/server/chunks/build/RunReports-nuLb-Nm3.mjs.map +1 -0
  185. package/.output/server/chunks/build/{RunStatusBadge-FfGb6bkW.mjs → RunStatusBadge-CvWmcFYM.mjs} +2 -2
  186. package/.output/server/chunks/build/RunStatusBadge-CvWmcFYM.mjs.map +1 -0
  187. package/.output/server/chunks/build/{SectionCard-CN-v0FZ_.mjs → SectionCard-C753B3Yo.mjs} +3 -3
  188. package/.output/server/chunks/build/SectionCard-C753B3Yo.mjs.map +1 -0
  189. package/.output/server/chunks/build/{Select-5DK9frQ7.mjs → Select-BAyYwPuo.mjs} +4 -4
  190. package/.output/server/chunks/build/Select-BAyYwPuo.mjs.map +1 -0
  191. package/.output/server/chunks/build/{SelectMenu-D-2FSqBU.mjs → SelectMenu-zE_AhMX8.mjs} +4 -4
  192. package/.output/server/chunks/build/{SelectMenu-D-2FSqBU.mjs.map → SelectMenu-zE_AhMX8.mjs.map} +1 -1
  193. package/.output/server/chunks/build/{Separator-CR4WcEKD.mjs → Separator-BbgCfKKJ.mjs} +3 -3
  194. package/.output/server/chunks/build/Separator-BbgCfKKJ.mjs.map +1 -0
  195. package/.output/server/chunks/build/{SettingsField-BZfx4ma1.mjs → SettingsField-D-VriK9X.mjs} +5 -5
  196. package/.output/server/chunks/build/SettingsField-D-VriK9X.mjs.map +1 -0
  197. package/.output/server/chunks/build/{Skeleton-CEHuuKVh.mjs → Skeleton-DAp_WMEe.mjs} +2 -2
  198. package/.output/server/chunks/build/Skeleton-DAp_WMEe.mjs.map +1 -0
  199. package/.output/server/chunks/build/{Slideover-D270EZZD.mjs → Slideover-CNbGvbUF.mjs} +3 -3
  200. package/.output/server/chunks/build/Slideover-CNbGvbUF.mjs.map +1 -0
  201. package/.output/server/chunks/build/{StatTile-D61Vzo6e.mjs → StatTile-DpcVQFVI.mjs} +2 -26
  202. package/.output/server/chunks/build/StatTile-DpcVQFVI.mjs.map +1 -0
  203. package/.output/server/chunks/build/StatTileGrid-7zOFUQ6j.mjs +30 -0
  204. package/.output/server/chunks/build/StatTileGrid-7zOFUQ6j.mjs.map +1 -0
  205. package/.output/server/chunks/build/{Switch-B5Fp8ULt.mjs → Switch-DdkA3Fii.mjs} +3 -3
  206. package/.output/server/chunks/build/Switch-DdkA3Fii.mjs.map +1 -0
  207. package/.output/server/chunks/build/{Table-BRk04Hd2.mjs → Table-CfDVAuUJ.mjs} +4 -4
  208. package/.output/server/chunks/build/Table-CfDVAuUJ.mjs.map +1 -0
  209. package/.output/server/chunks/build/{Tabs-BkSOnbaB.mjs → Tabs-BCOhHEB9.mjs} +2 -2
  210. package/.output/server/chunks/build/Tabs-BCOhHEB9.mjs.map +1 -0
  211. package/.output/server/chunks/build/{TestCaseHistoryChart-CSi64vVA.mjs → TestCaseHistoryChart-CKDXQ2GI.mjs} +4 -4
  212. package/.output/server/chunks/build/TestCaseHistoryChart-CKDXQ2GI.mjs.map +1 -0
  213. package/.output/server/chunks/build/{TestMetaBadges-D5_yUtIP.mjs → TestMetaBadges-BlyKmfeP.mjs} +1 -1
  214. package/.output/server/chunks/build/TestMetaBadges-BlyKmfeP.mjs.map +1 -0
  215. package/.output/server/chunks/build/{TestStatusBar-DX3EhlyP.mjs → TestStatusBar-wquHQqtp.mjs} +4 -4
  216. package/.output/server/chunks/build/TestStatusBar-wquHQqtp.mjs.map +1 -0
  217. package/.output/server/chunks/build/{Textarea-Dv2-lOvW.mjs → Textarea-Ohs6QTXf.mjs} +3 -3
  218. package/.output/server/chunks/build/Textarea-Ohs6QTXf.mjs.map +1 -0
  219. package/.output/server/chunks/build/{Tooltip-Dv4htNP6.mjs → Tooltip-BRBnl4pE.mjs} +3 -3
  220. package/.output/server/chunks/build/Tooltip-BRBnl4pE.mjs.map +1 -0
  221. package/.output/server/chunks/build/{_id_-BxA6IgWr.mjs → _id_-BesWjK_d.mjs} +900 -394
  222. package/.output/server/chunks/build/_id_-BesWjK_d.mjs.map +1 -0
  223. package/.output/server/chunks/build/{_id_-C_uSBiyU.mjs → _id_-CGs0u8Fr.mjs} +38 -36
  224. package/.output/server/chunks/build/_id_-CGs0u8Fr.mjs.map +1 -0
  225. package/.output/server/chunks/build/{_id_-BdG37K7s.mjs → _id_-CQ0lolEK.mjs} +31 -28
  226. package/.output/server/chunks/build/_id_-CQ0lolEK.mjs.map +1 -0
  227. package/.output/server/chunks/build/{_id_-BdJs7BJZ.mjs → _id_-D1-06Fcl.mjs} +1913 -1121
  228. package/.output/server/chunks/build/_id_-D1-06Fcl.mjs.map +1 -0
  229. package/.output/server/chunks/build/{about-BE0UV-8-.mjs → about-DdyOj-dj.mjs} +25 -455
  230. package/.output/server/chunks/build/about-DdyOj-dj.mjs.map +1 -0
  231. package/.output/server/chunks/build/{account-DAfvaD-F.mjs → account-7aVMKekZ.mjs} +11 -9
  232. package/.output/server/chunks/build/account-7aVMKekZ.mjs.map +1 -0
  233. package/.output/server/chunks/build/{ai-Cn05ch0u.mjs → ai-zw3T9b5u.mjs} +24 -22
  234. package/.output/server/chunks/build/{ai-Cn05ch0u.mjs.map → ai-zw3T9b5u.mjs.map} +1 -1
  235. package/.output/server/chunks/build/{analytics-Bo_B_jko.mjs → analytics-CeCzKwEX.mjs} +105 -76
  236. package/.output/server/chunks/build/analytics-CeCzKwEX.mjs.map +1 -0
  237. package/.output/server/chunks/build/client.precomputed.mjs +1 -1
  238. package/.output/server/chunks/build/{compare-RxHSOdsO.mjs → compare-B2OB3zdd.mjs} +4 -1
  239. package/.output/server/chunks/build/compare-B2OB3zdd.mjs.map +1 -0
  240. package/.output/server/chunks/build/{db.client-CQoVTYB9.mjs → db.client-Bdqk_eYQ.mjs} +40 -2
  241. package/.output/server/chunks/build/db.client-Bdqk_eYQ.mjs.map +1 -0
  242. package/.output/server/chunks/build/{default-CbNHaFsy.mjs → default-CkyAx_Mu.mjs} +48 -33
  243. package/.output/server/chunks/build/{default-CbNHaFsy.mjs.map → default-CkyAx_Mu.mjs.map} +1 -1
  244. package/.output/server/chunks/build/{docs-B_llWMxx.mjs → docs-Dhj-wEks.mjs} +18 -16
  245. package/.output/server/chunks/build/{docs-B_llWMxx.mjs.map → docs-Dhj-wEks.mjs.map} +1 -1
  246. package/.output/server/chunks/build/{edit-J0asTFg8.mjs → edit-CVz_gdoe.mjs} +17 -16
  247. package/.output/server/chunks/build/edit-CVz_gdoe.mjs.map +1 -0
  248. package/.output/server/chunks/build/{fetch-B4FwBOzu.mjs → fetch-Be-j7hF1.mjs} +32 -4
  249. package/.output/server/chunks/build/fetch-Be-j7hF1.mjs.map +1 -0
  250. package/.output/server/chunks/build/{forgot-password-CC__1OnV.mjs → forgot-password-CwdjL7BO.mjs} +8 -5
  251. package/.output/server/chunks/build/forgot-password-CwdjL7BO.mjs.map +1 -0
  252. package/.output/server/chunks/build/{import-CS9oylTN.mjs → import-DyQEw4V3.mjs} +17 -15
  253. package/.output/server/chunks/build/import-DyQEw4V3.mjs.map +1 -0
  254. package/.output/server/chunks/build/{index-CU2nZhAa.mjs → index-ByWTzqF6.mjs} +2 -1
  255. package/.output/server/chunks/build/index-ByWTzqF6.mjs.map +1 -0
  256. package/.output/server/chunks/build/{index-DE45ycdZ.mjs → index-D7Bmj6bq.mjs} +19 -18
  257. package/.output/server/chunks/build/index-D7Bmj6bq.mjs.map +1 -0
  258. package/.output/server/chunks/build/{index-e9skCi-V.mjs → index-DcnICCZU.mjs} +43 -539
  259. package/.output/server/chunks/build/index-DcnICCZU.mjs.map +1 -0
  260. package/.output/server/chunks/build/{index-hGHlmyxj.mjs → index-DghAFpNR.mjs} +132 -89
  261. package/.output/server/chunks/build/{index-hGHlmyxj.mjs.map → index-DghAFpNR.mjs.map} +1 -1
  262. package/.output/server/chunks/build/index-ID913tUa.mjs +93 -0
  263. package/.output/server/chunks/build/index-ID913tUa.mjs.map +1 -0
  264. package/.output/server/chunks/build/isValueEqualOrExist-D2qw9YEr.mjs +1 -1
  265. package/.output/server/chunks/build/{login-Da4u1IlW.mjs → login-rXKF63j6.mjs} +12 -9
  266. package/.output/server/chunks/build/login-rXKF63j6.mjs.map +1 -0
  267. package/.output/server/chunks/build/{mcp-uhVCCwQM.mjs → mcp-ByNvFy4o.mjs} +254 -22
  268. package/.output/server/chunks/build/mcp-ByNvFy4o.mjs.map +1 -0
  269. package/.output/server/chunks/build/{notifications-fx_qnKGA.mjs → notifications-CbLAZnKJ.mjs} +18 -16
  270. package/.output/server/chunks/build/notifications-CbLAZnKJ.mjs.map +1 -0
  271. package/.output/server/chunks/build/performance-C93MEPaZ.mjs +581 -0
  272. package/.output/server/chunks/build/performance-C93MEPaZ.mjs.map +1 -0
  273. package/.output/server/chunks/build/{pr-feedback-X6-70iF0.mjs → pr-feedback-DKCB0bDE.mjs} +12 -10
  274. package/.output/server/chunks/build/pr-feedback-DKCB0bDE.mjs.map +1 -0
  275. package/.output/server/chunks/build/{reset-password-BmrUS4ZD.mjs → reset-password-BBoHKMqD.mjs} +8 -5
  276. package/.output/server/chunks/build/reset-password-BBoHKMqD.mjs.map +1 -0
  277. package/.output/server/chunks/build/server.mjs +86 -72
  278. package/.output/server/chunks/build/server.mjs.map +1 -1
  279. package/.output/server/chunks/build/{settings-CCYe7rsc.mjs → settings-DiG0JjzC.mjs} +18 -26
  280. package/.output/server/chunks/build/settings-DiG0JjzC.mjs.map +1 -0
  281. package/.output/server/chunks/build/{settings-metadata-DrEqWcW-.mjs → settings-metadata-DnAK4Rzg.mjs} +40 -18
  282. package/.output/server/chunks/build/settings-metadata-DnAK4Rzg.mjs.map +1 -0
  283. package/.output/server/chunks/build/setup-0-1O6Hjz.mjs +1065 -0
  284. package/.output/server/chunks/build/setup-0-1O6Hjz.mjs.map +1 -0
  285. package/.output/server/chunks/build/{storage-CJEmviCD.mjs → storage-3JiFJ843.mjs} +18 -16
  286. package/.output/server/chunks/build/storage-3JiFJ843.mjs.map +1 -0
  287. package/.output/server/chunks/build/{tags-DauTe_F-.mjs → tags-CqYcp7js.mjs} +11 -10
  288. package/.output/server/chunks/build/tags-CqYcp7js.mjs.map +1 -0
  289. package/.output/server/chunks/build/{test-cases-thBbAykw.mjs → test-cases-y1HSgPX2.mjs} +26 -24
  290. package/.output/server/chunks/build/test-cases-y1HSgPX2.mjs.map +1 -0
  291. package/.output/server/chunks/build/test-functions-D2ju95Ly.mjs +552 -0
  292. package/.output/server/chunks/build/test-functions-D2ju95Ly.mjs.map +1 -0
  293. package/.output/server/chunks/build/useAiStatus-UR8x-feE.mjs +9 -0
  294. package/.output/server/chunks/build/useAiStatus-UR8x-feE.mjs.map +1 -0
  295. package/.output/server/chunks/build/{useChartMarkers-C89e_VLV.mjs → useChartMarkers-C0wSO0xk.mjs} +1 -1
  296. package/.output/server/chunks/build/useChartMarkers-C0wSO0xk.mjs.map +1 -0
  297. package/.output/server/chunks/build/{useCopyRich-RJKhWoyj.mjs → useCopyRich-CVFeYfkG.mjs} +699 -247
  298. package/.output/server/chunks/build/useCopyRich-CVFeYfkG.mjs.map +1 -0
  299. package/.output/server/chunks/build/{useDesktopDownload-BepjqxOt.mjs → useDesktopDownload-Dyf0fR47.mjs} +2 -2
  300. package/.output/server/chunks/build/useDesktopDownload-Dyf0fR47.mjs.map +1 -0
  301. package/.output/server/chunks/build/{useOpenInIde-BbTnPhFA.mjs → useOpenInIde--6Me0WlL.mjs} +1 -1
  302. package/.output/server/chunks/build/useOpenInIde--6Me0WlL.mjs.map +1 -0
  303. package/.output/server/chunks/build/useSettingsNav-BLTHducV.mjs +19 -0
  304. package/.output/server/chunks/build/useSettingsNav-BLTHducV.mjs.map +1 -0
  305. package/.output/server/chunks/build/{users-CTUqXyGh.mjs → users-IdmY9JZV.mjs} +12 -11
  306. package/.output/server/chunks/build/users-IdmY9JZV.mjs.map +1 -0
  307. package/.output/server/chunks/nitro/nitro.mjs +2336 -1581
  308. package/.output/server/chunks/nitro/nitro.mjs.map +1 -1
  309. package/.output/server/chunks/routes/__piwi/session.get.mjs +4 -1
  310. package/.output/server/chunks/routes/__piwi/session.get.mjs.map +1 -1
  311. package/.output/server/chunks/routes/api/admin/cleanup.delete.mjs +3 -0
  312. package/.output/server/chunks/routes/api/admin/cleanup.delete.mjs.map +1 -1
  313. package/.output/server/chunks/routes/api/admin/stats.get.mjs +3 -0
  314. package/.output/server/chunks/routes/api/admin/stats.get.mjs.map +1 -1
  315. package/.output/server/chunks/routes/api/ai/status.get.mjs +3 -0
  316. package/.output/server/chunks/routes/api/ai/status.get.mjs.map +1 -1
  317. package/.output/server/chunks/routes/api/analytics/_widget_.get.mjs +3 -0
  318. package/.output/server/chunks/routes/api/analytics/_widget_.get.mjs.map +1 -1
  319. package/.output/server/chunks/routes/api/auth/change-password.post.mjs +10 -1
  320. package/.output/server/chunks/routes/api/auth/change-password.post.mjs.map +1 -1
  321. package/.output/server/chunks/routes/api/auth/forgot-password.post.mjs +3 -1
  322. package/.output/server/chunks/routes/api/auth/forgot-password.post.mjs.map +1 -1
  323. package/.output/server/chunks/routes/api/auth/login.post.mjs +16 -2
  324. package/.output/server/chunks/routes/api/auth/login.post.mjs.map +1 -1
  325. package/.output/server/chunks/routes/api/auth/logout.post.mjs +4 -1
  326. package/.output/server/chunks/routes/api/auth/logout.post.mjs.map +1 -1
  327. package/.output/server/chunks/routes/api/auth/me.get.mjs +4 -1
  328. package/.output/server/chunks/routes/api/auth/me.get.mjs.map +1 -1
  329. package/.output/server/chunks/routes/api/auth/oauth/_provider/callback.get.mjs +4 -1
  330. package/.output/server/chunks/routes/api/auth/oauth/_provider/callback.get.mjs.map +1 -1
  331. package/.output/server/chunks/routes/api/auth/oauth/_provider/login.get.mjs +4 -1
  332. package/.output/server/chunks/routes/api/auth/oauth/_provider/login.get.mjs.map +1 -1
  333. package/.output/server/chunks/routes/api/auth/oauth/_provider/unlink.post.mjs +11 -1
  334. package/.output/server/chunks/routes/api/auth/oauth/_provider/unlink.post.mjs.map +1 -1
  335. package/.output/server/chunks/routes/api/auth/reset-password.post.mjs +9 -1
  336. package/.output/server/chunks/routes/api/auth/reset-password.post.mjs.map +1 -1
  337. package/.output/server/chunks/routes/api/auth/send-verify-email.post.mjs +7 -1
  338. package/.output/server/chunks/routes/api/auth/send-verify-email.post.mjs.map +1 -1
  339. package/.output/server/chunks/routes/api/auth/setup.get.mjs +4 -1
  340. package/.output/server/chunks/routes/api/auth/setup.get.mjs.map +1 -1
  341. package/.output/server/chunks/routes/api/auth/setup.post.mjs +30 -12
  342. package/.output/server/chunks/routes/api/auth/setup.post.mjs.map +1 -1
  343. package/.output/server/chunks/routes/api/auth/verify-email.get.mjs +4 -1
  344. package/.output/server/chunks/routes/api/auth/verify-email.get.mjs.map +1 -1
  345. package/.output/server/chunks/routes/api/channels/_id/test.post.mjs +6 -3
  346. package/.output/server/chunks/routes/api/channels/_id/test.post.mjs.map +1 -1
  347. package/.output/server/chunks/routes/api/channels/_id_.delete.mjs +4 -1
  348. package/.output/server/chunks/routes/api/channels/_id_.delete.mjs.map +1 -1
  349. package/.output/server/chunks/routes/api/cluster-merge-suggestions/_id/approve.post.mjs +4 -1
  350. package/.output/server/chunks/routes/api/cluster-merge-suggestions/_id/approve.post.mjs.map +1 -1
  351. package/.output/server/chunks/routes/api/cluster-merge-suggestions/_id/reject.post.mjs +4 -1
  352. package/.output/server/chunks/routes/api/cluster-merge-suggestions/_id/reject.post.mjs.map +1 -1
  353. package/.output/server/chunks/routes/api/desktop/import-local.post.mjs +4 -1
  354. package/.output/server/chunks/routes/api/desktop/import-local.post.mjs.map +1 -1
  355. package/.output/server/chunks/routes/api/desktop/reporter-config.get.mjs +3 -0
  356. package/.output/server/chunks/routes/api/desktop/reporter-config.get.mjs.map +1 -1
  357. package/.output/server/chunks/routes/api/failure-clusters/_id/base-commit.patch.mjs +4 -1
  358. package/.output/server/chunks/routes/api/failure-clusters/_id/base-commit.patch.mjs.map +1 -1
  359. package/.output/server/chunks/routes/api/failure-clusters/_id/branches.get.mjs +4 -1
  360. package/.output/server/chunks/routes/api/failure-clusters/_id/branches.get.mjs.map +1 -1
  361. package/.output/server/chunks/routes/api/failure-clusters/_id/commit-diff.get.mjs +4 -1
  362. package/.output/server/chunks/routes/api/failure-clusters/_id/commit-diff.get.mjs.map +1 -1
  363. package/.output/server/chunks/routes/api/failure-clusters/_id/commits.get.mjs +4 -1
  364. package/.output/server/chunks/routes/api/failure-clusters/_id/commits.get.mjs.map +1 -1
  365. package/.output/server/chunks/routes/api/failure-clusters/_id/context.get.mjs +4 -1
  366. package/.output/server/chunks/routes/api/failure-clusters/_id/context.get.mjs.map +1 -1
  367. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnose/stream.post.mjs +4 -1
  368. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnose/stream.post.mjs.map +1 -1
  369. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnose.post.mjs +4 -1
  370. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnose.post.mjs.map +1 -1
  371. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnoses.get.mjs +4 -1
  372. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnoses.get.mjs.map +1 -1
  373. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnosis.get.mjs +4 -1
  374. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnosis.get.mjs.map +1 -1
  375. package/.output/server/chunks/routes/api/failure-clusters/_id/export.get.mjs +4 -1
  376. package/.output/server/chunks/routes/api/failure-clusters/_id/export.get.mjs.map +1 -1
  377. package/.output/server/chunks/routes/api/failure-clusters/_id/extract-cases.post.mjs +4 -1
  378. package/.output/server/chunks/routes/api/failure-clusters/_id/extract-cases.post.mjs.map +1 -1
  379. package/.output/server/chunks/routes/api/failure-clusters/_id/fix-plan.get.mjs +4 -1
  380. package/.output/server/chunks/routes/api/failure-clusters/_id/fix-plan.get.mjs.map +1 -1
  381. package/.output/server/chunks/routes/api/failure-clusters/_id/status.patch.mjs +4 -1
  382. package/.output/server/chunks/routes/api/failure-clusters/_id/status.patch.mjs.map +1 -1
  383. package/.output/server/chunks/routes/api/failure-clusters/_id_.get.mjs +4 -1
  384. package/.output/server/chunks/routes/api/failure-clusters/_id_.get.mjs.map +1 -1
  385. package/.output/server/chunks/routes/api/failure-diagnoses/_id/feedback.patch.mjs +4 -1
  386. package/.output/server/chunks/routes/api/failure-diagnoses/_id/feedback.patch.mjs.map +1 -1
  387. package/.output/server/chunks/routes/api/files/_...path_.get.mjs +23 -4
  388. package/.output/server/chunks/routes/api/files/_...path_.get.mjs.map +1 -1
  389. package/.output/server/chunks/routes/api/health.get.mjs +4 -1
  390. package/.output/server/chunks/routes/api/health.get.mjs.map +1 -1
  391. package/.output/server/chunks/routes/api/index.get.mjs +12 -5
  392. package/.output/server/chunks/routes/api/index.get.mjs.map +1 -1
  393. package/.output/server/chunks/routes/api/index.get2.mjs +9 -3
  394. package/.output/server/chunks/routes/api/index.get2.mjs.map +1 -1
  395. package/.output/server/chunks/routes/api/index.get3.mjs +4 -1
  396. package/.output/server/chunks/routes/api/index.get3.mjs.map +1 -1
  397. package/.output/server/chunks/routes/api/index.get4.mjs +4 -1
  398. package/.output/server/chunks/routes/api/index.get4.mjs.map +1 -1
  399. package/.output/server/chunks/routes/api/index.get5.mjs +4 -1
  400. package/.output/server/chunks/routes/api/index.get5.mjs.map +1 -1
  401. package/.output/server/chunks/routes/api/index.post.mjs +3 -1
  402. package/.output/server/chunks/routes/api/index.post.mjs.map +1 -1
  403. package/.output/server/chunks/routes/api/index.post2.mjs +6 -2
  404. package/.output/server/chunks/routes/api/index.post2.mjs.map +1 -1
  405. package/.output/server/chunks/routes/api/index.post3.mjs +3 -1
  406. package/.output/server/chunks/routes/api/index.post3.mjs.map +1 -1
  407. package/.output/server/chunks/routes/api/index.post4.mjs +14 -1
  408. package/.output/server/chunks/routes/api/index.post4.mjs.map +1 -1
  409. package/.output/server/chunks/routes/api/index.post5.mjs +3 -1
  410. package/.output/server/chunks/routes/api/index.post5.mjs.map +1 -1
  411. package/.output/server/chunks/routes/api/index.post6.mjs +3 -1
  412. package/.output/server/chunks/routes/api/index.post6.mjs.map +1 -1
  413. package/.output/server/chunks/routes/api/links/_id/refresh.post.mjs +5 -3
  414. package/.output/server/chunks/routes/api/links/_id/refresh.post.mjs.map +1 -1
  415. package/.output/server/chunks/routes/api/links/_id_.delete.mjs +5 -3
  416. package/.output/server/chunks/routes/api/links/_id_.delete.mjs.map +1 -1
  417. package/.output/server/chunks/routes/api/links/_id_.patch.mjs +4 -3
  418. package/.output/server/chunks/routes/api/links/_id_.patch.mjs.map +1 -1
  419. package/.output/server/chunks/routes/api/markers/_id_.delete.mjs +4 -1
  420. package/.output/server/chunks/routes/api/markers/_id_.delete.mjs.map +1 -1
  421. package/.output/server/chunks/routes/api/markers/_id_.put.mjs +3 -1
  422. package/.output/server/chunks/routes/api/markers/_id_.put.mjs.map +1 -1
  423. package/.output/server/chunks/routes/api/notifications/stream.get.mjs +33 -16
  424. package/.output/server/chunks/routes/api/notifications/stream.get.mjs.map +1 -1
  425. package/.output/server/chunks/routes/api/projects/_id/cluster-merge-suggestions.get.mjs +4 -1
  426. package/.output/server/chunks/routes/api/projects/_id/cluster-merge-suggestions.get.mjs.map +1 -1
  427. package/.output/server/chunks/routes/api/projects/_id/failure-clusters.get.mjs +4 -1
  428. package/.output/server/chunks/routes/api/projects/_id/failure-clusters.get.mjs.map +1 -1
  429. package/.output/server/chunks/routes/api/projects/_id/flaky-classify.post.mjs +4 -1
  430. package/.output/server/chunks/routes/api/projects/_id/flaky-classify.post.mjs.map +1 -1
  431. package/.output/server/chunks/routes/api/projects/_id/flaky-tests.get.mjs +4 -1
  432. package/.output/server/chunks/routes/api/projects/_id/flaky-tests.get.mjs.map +1 -1
  433. package/.output/server/chunks/routes/api/projects/_id/latest-run.get.mjs +4 -1
  434. package/.output/server/chunks/routes/api/projects/_id/latest-run.get.mjs.map +1 -1
  435. package/.output/server/chunks/routes/api/projects/_id/markers.get.mjs +4 -1
  436. package/.output/server/chunks/routes/api/projects/_id/markers.get.mjs.map +1 -1
  437. package/.output/server/chunks/routes/api/projects/_id/markers.post.mjs +3 -1
  438. package/.output/server/chunks/routes/api/projects/_id/markers.post.mjs.map +1 -1
  439. package/.output/server/chunks/routes/api/projects/_id/members.get.mjs +4 -1
  440. package/.output/server/chunks/routes/api/projects/_id/members.get.mjs.map +1 -1
  441. package/.output/server/chunks/routes/api/projects/_id/members.put.mjs +3 -1
  442. package/.output/server/chunks/routes/api/projects/_id/members.put.mjs.map +1 -1
  443. package/.output/server/chunks/routes/api/projects/_id/performance.get.mjs +4 -1
  444. package/.output/server/chunks/routes/api/projects/_id/performance.get.mjs.map +1 -1
  445. package/.output/server/chunks/routes/api/projects/_id/quarantine/_testCaseId_.delete.mjs +4 -1
  446. package/.output/server/chunks/routes/api/projects/_id/quarantine/_testCaseId_.delete.mjs.map +1 -1
  447. package/.output/server/chunks/routes/api/projects/_id/quarantine.get.mjs +4 -1
  448. package/.output/server/chunks/routes/api/projects/_id/quarantine.get.mjs.map +1 -1
  449. package/.output/server/chunks/routes/api/projects/_id/quarantine.post.mjs +4 -1
  450. package/.output/server/chunks/routes/api/projects/_id/quarantine.post.mjs.map +1 -1
  451. package/.output/server/chunks/routes/api/projects/_id/slow-tests.get.mjs +4 -1
  452. package/.output/server/chunks/routes/api/projects/_id/slow-tests.get.mjs.map +1 -1
  453. package/.output/server/chunks/routes/api/projects/_id/spec-health.get.mjs +4 -1
  454. package/.output/server/chunks/routes/api/projects/_id/spec-health.get.mjs.map +1 -1
  455. package/.output/server/chunks/routes/api/projects/_id/test-cases.get.mjs +4 -1
  456. package/.output/server/chunks/routes/api/projects/_id/test-cases.get.mjs.map +1 -1
  457. package/.output/server/chunks/routes/api/projects/_id/test-functions/extract.post.mjs +78 -0
  458. package/.output/server/chunks/routes/api/projects/_id/test-functions/extract.post.mjs.map +1 -0
  459. package/.output/server/chunks/routes/api/projects/_id/test-functions/validate-proposal.post.mjs +68 -0
  460. package/.output/server/chunks/routes/api/projects/_id/test-functions/validate-proposal.post.mjs.map +1 -0
  461. package/.output/server/chunks/routes/api/projects/_id/test-functions.get.mjs +55 -0
  462. package/.output/server/chunks/routes/api/projects/_id/test-functions.get.mjs.map +1 -0
  463. package/.output/server/chunks/routes/api/projects/_id/test-functions.post.mjs +69 -0
  464. package/.output/server/chunks/routes/api/projects/_id/test-functions.post.mjs.map +1 -0
  465. package/.output/server/chunks/routes/api/projects/_id/timeout-opportunities.get.mjs +4 -1
  466. package/.output/server/chunks/routes/api/projects/_id/timeout-opportunities.get.mjs.map +1 -1
  467. package/.output/server/chunks/routes/api/projects/_id_.delete.mjs +4 -1
  468. package/.output/server/chunks/routes/api/projects/_id_.delete.mjs.map +1 -1
  469. package/.output/server/chunks/routes/api/projects/_id_.get.mjs +4 -1
  470. package/.output/server/chunks/routes/api/projects/_id_.get.mjs.map +1 -1
  471. package/.output/server/chunks/routes/api/projects/_id_.put.mjs +3 -1
  472. package/.output/server/chunks/routes/api/projects/_id_.put.mjs.map +1 -1
  473. package/.output/server/chunks/routes/api/projects/menu.get.mjs +4 -1
  474. package/.output/server/chunks/routes/api/projects/menu.get.mjs.map +1 -1
  475. package/.output/server/chunks/routes/api/projects/overview.get.mjs +4 -1
  476. package/.output/server/chunks/routes/api/projects/overview.get.mjs.map +1 -1
  477. package/.output/server/chunks/routes/api/projects.get.mjs +4 -1
  478. package/.output/server/chunks/routes/api/projects.get.mjs.map +1 -1
  479. package/.output/server/chunks/routes/api/search.get.mjs +4 -1
  480. package/.output/server/chunks/routes/api/search.get.mjs.map +1 -1
  481. package/.output/server/chunks/routes/api/settings/ai/limits.get.mjs +4 -1
  482. package/.output/server/chunks/routes/api/settings/ai/limits.get.mjs.map +1 -1
  483. package/.output/server/chunks/routes/api/settings/ai/limits.put.mjs +4 -1
  484. package/.output/server/chunks/routes/api/settings/ai/limits.put.mjs.map +1 -1
  485. package/.output/server/chunks/routes/api/settings/ai/models.post.mjs +3 -0
  486. package/.output/server/chunks/routes/api/settings/ai/models.post.mjs.map +1 -1
  487. package/.output/server/chunks/routes/api/settings/ai/test.post.mjs +4 -1
  488. package/.output/server/chunks/routes/api/settings/ai/test.post.mjs.map +1 -1
  489. package/.output/server/chunks/routes/api/settings/ai/usage.get.mjs +4 -1
  490. package/.output/server/chunks/routes/api/settings/ai/usage.get.mjs.map +1 -1
  491. package/.output/server/chunks/routes/api/settings/ai.get.mjs +4 -1
  492. package/.output/server/chunks/routes/api/settings/ai.get.mjs.map +1 -1
  493. package/.output/server/chunks/routes/api/settings/ai.put.mjs +4 -1
  494. package/.output/server/chunks/routes/api/settings/ai.put.mjs.map +1 -1
  495. package/.output/server/chunks/routes/api/settings/pr-feedback.get.mjs +4 -1
  496. package/.output/server/chunks/routes/api/settings/pr-feedback.get.mjs.map +1 -1
  497. package/.output/server/chunks/routes/api/settings/pr-feedback.put.mjs +4 -1
  498. package/.output/server/chunks/routes/api/settings/pr-feedback.put.mjs.map +1 -1
  499. package/.output/server/chunks/routes/api/settings/smtp/test.post.mjs +3 -1
  500. package/.output/server/chunks/routes/api/settings/smtp/test.post.mjs.map +1 -1
  501. package/.output/server/chunks/routes/api/settings/smtp.get.mjs +4 -1
  502. package/.output/server/chunks/routes/api/settings/smtp.get.mjs.map +1 -1
  503. package/.output/server/chunks/routes/api/settings/timeout-hygiene.get.mjs +4 -1
  504. package/.output/server/chunks/routes/api/settings/timeout-hygiene.get.mjs.map +1 -1
  505. package/.output/server/chunks/routes/api/settings/timeout-hygiene.put.mjs +4 -1
  506. package/.output/server/chunks/routes/api/settings/timeout-hygiene.put.mjs.map +1 -1
  507. package/.output/server/chunks/routes/api/settings/wasted-waits.get.mjs +4 -1
  508. package/.output/server/chunks/routes/api/settings/wasted-waits.get.mjs.map +1 -1
  509. package/.output/server/chunks/routes/api/settings/wasted-waits.put.mjs +4 -1
  510. package/.output/server/chunks/routes/api/settings/wasted-waits.put.mjs.map +1 -1
  511. package/.output/server/chunks/routes/api/setup-status.get.mjs +101 -0
  512. package/.output/server/chunks/routes/api/setup-status.get.mjs.map +1 -0
  513. package/.output/server/chunks/routes/api/stream.get.mjs +8 -2
  514. package/.output/server/chunks/routes/api/stream.get.mjs.map +1 -1
  515. package/.output/server/chunks/routes/api/subscriptions/_id_.delete.mjs +4 -1
  516. package/.output/server/chunks/routes/api/subscriptions/_id_.delete.mjs.map +1 -1
  517. package/.output/server/chunks/routes/api/subscriptions/_id_.patch.mjs +3 -1
  518. package/.output/server/chunks/routes/api/subscriptions/_id_.patch.mjs.map +1 -1
  519. package/.output/server/chunks/routes/api/tags/_id_.delete.mjs +4 -1
  520. package/.output/server/chunks/routes/api/tags/_id_.delete.mjs.map +1 -1
  521. package/.output/server/chunks/routes/api/tags/_id_.put.mjs +3 -1
  522. package/.output/server/chunks/routes/api/tags/_id_.put.mjs.map +1 -1
  523. package/.output/server/chunks/routes/api/test-cases/_id/history.get.mjs +4 -1
  524. package/.output/server/chunks/routes/api/test-cases/_id/history.get.mjs.map +1 -1
  525. package/.output/server/chunks/routes/api/test-cases/_id/stability-trend.get.mjs +4 -1
  526. package/.output/server/chunks/routes/api/test-cases/_id/stability-trend.get.mjs.map +1 -1
  527. package/.output/server/chunks/routes/api/test-cases/_id_.get.mjs +4 -1
  528. package/.output/server/chunks/routes/api/test-cases/_id_.get.mjs.map +1 -1
  529. package/.output/server/chunks/routes/api/test-functions/_id_.delete.mjs +62 -0
  530. package/.output/server/chunks/routes/api/test-functions/_id_.delete.mjs.map +1 -0
  531. package/.output/server/chunks/routes/api/test-functions/_id_.put.mjs +71 -0
  532. package/.output/server/chunks/routes/api/test-functions/_id_.put.mjs.map +1 -0
  533. package/.output/server/chunks/routes/api/test-run-cases/_id/diagnose.post.mjs +4 -1
  534. package/.output/server/chunks/routes/api/test-run-cases/_id/diagnose.post.mjs.map +1 -1
  535. package/.output/server/chunks/routes/api/test-run-cases/_id/diagnosis-context.get.mjs +4 -1
  536. package/.output/server/chunks/routes/api/test-run-cases/_id/diagnosis-context.get.mjs.map +1 -1
  537. package/.output/server/chunks/routes/api/test-run-cases/_id/diagnosis.get.mjs +4 -1
  538. package/.output/server/chunks/routes/api/test-run-cases/_id/diagnosis.get.mjs.map +1 -1
  539. package/.output/server/chunks/routes/api/test-run-cases/_id/export.get.mjs +4 -1
  540. package/.output/server/chunks/routes/api/test-run-cases/_id/export.get.mjs.map +1 -1
  541. package/.output/server/chunks/routes/api/test-run-cases/_id/traces.get.mjs +4 -1
  542. package/.output/server/chunks/routes/api/test-run-cases/_id/traces.get.mjs.map +1 -1
  543. package/.output/server/chunks/routes/api/test-run-cases/_id_.get.mjs +4 -1
  544. package/.output/server/chunks/routes/api/test-run-cases/_id_.get.mjs.map +1 -1
  545. package/.output/server/chunks/routes/api/test-runs/_id/begin.post.mjs +7 -4
  546. package/.output/server/chunks/routes/api/test-runs/_id/begin.post.mjs.map +1 -1
  547. package/.output/server/chunks/routes/api/test-runs/_id/case-files.post.mjs +4 -1
  548. package/.output/server/chunks/routes/api/test-runs/_id/case-files.post.mjs.map +1 -1
  549. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/dom-snapshot.get.mjs +4 -1
  550. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/dom-snapshot.get.mjs.map +1 -1
  551. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/environment-diff.get.mjs +4 -1
  552. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/environment-diff.get.mjs.map +1 -1
  553. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/locator-healing.get.mjs +4 -1
  554. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/locator-healing.get.mjs.map +1 -1
  555. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/locator-pick.post.mjs +4 -1
  556. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/locator-pick.post.mjs.map +1 -1
  557. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-network-body.get.mjs +4 -1
  558. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-network-body.get.mjs.map +1 -1
  559. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-network.get.mjs +4 -1
  560. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-network.get.mjs.map +1 -1
  561. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-stacks.get.mjs +4 -1
  562. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-stacks.get.mjs.map +1 -1
  563. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/visual-diff.get.mjs +4 -1
  564. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/visual-diff.get.mjs.map +1 -1
  565. package/.output/server/chunks/routes/api/test-runs/_id/events.post.mjs +4 -1
  566. package/.output/server/chunks/routes/api/test-runs/_id/events.post.mjs.map +1 -1
  567. package/.output/server/chunks/routes/api/test-runs/_id/failure-groups.get.mjs +4 -1
  568. package/.output/server/chunks/routes/api/test-runs/_id/failure-groups.get.mjs.map +1 -1
  569. package/.output/server/chunks/routes/api/test-runs/_id/finish.post.mjs +4 -1
  570. package/.output/server/chunks/routes/api/test-runs/_id/finish.post.mjs.map +1 -1
  571. package/.output/server/chunks/routes/api/test-runs/_id/gate.post.mjs +4 -1
  572. package/.output/server/chunks/routes/api/test-runs/_id/gate.post.mjs.map +1 -1
  573. package/.output/server/chunks/routes/api/test-runs/_id/heartbeat.post.mjs +4 -1
  574. package/.output/server/chunks/routes/api/test-runs/_id/heartbeat.post.mjs.map +1 -1
  575. package/.output/server/chunks/routes/api/test-runs/_id/insights.get.mjs +4 -1
  576. package/.output/server/chunks/routes/api/test-runs/_id/insights.get.mjs.map +1 -1
  577. package/.output/server/chunks/routes/api/test-runs/_id/network-requests.get.mjs +4 -1
  578. package/.output/server/chunks/routes/api/test-runs/_id/network-requests.get.mjs.map +1 -1
  579. package/.output/server/chunks/routes/api/test-runs/_id/regression-context.get.mjs +4 -1
  580. package/.output/server/chunks/routes/api/test-runs/_id/regression-context.get.mjs.map +1 -1
  581. package/.output/server/chunks/routes/api/test-runs/_id/stream.get.mjs +4 -1
  582. package/.output/server/chunks/routes/api/test-runs/_id/stream.get.mjs.map +1 -1
  583. package/.output/server/chunks/routes/api/test-runs/_id/summary.get.mjs +4 -1
  584. package/.output/server/chunks/routes/api/test-runs/_id/summary.get.mjs.map +1 -1
  585. package/.output/server/chunks/routes/api/test-runs/_id_.delete.mjs +4 -1
  586. package/.output/server/chunks/routes/api/test-runs/_id_.delete.mjs.map +1 -1
  587. package/.output/server/chunks/routes/api/test-runs/_id_.get.mjs +4 -1
  588. package/.output/server/chunks/routes/api/test-runs/_id_.get.mjs.map +1 -1
  589. package/.output/server/chunks/routes/api/test-runs/_id_.patch.mjs +4 -1
  590. package/.output/server/chunks/routes/api/test-runs/_id_.patch.mjs.map +1 -1
  591. package/.output/server/chunks/routes/api/test-runs/import/check.post.mjs +4 -1
  592. package/.output/server/chunks/routes/api/test-runs/import/check.post.mjs.map +1 -1
  593. package/.output/server/chunks/routes/api/test-runs/import.post.mjs +4 -1
  594. package/.output/server/chunks/routes/api/test-runs/import.post.mjs.map +1 -1
  595. package/.output/server/chunks/routes/api/test-runs/recent.get.mjs +4 -1
  596. package/.output/server/chunks/routes/api/test-runs/recent.get.mjs.map +1 -1
  597. package/.output/server/chunks/routes/api/test-runs/setup.post.mjs +4 -1
  598. package/.output/server/chunks/routes/api/test-runs/setup.post.mjs.map +1 -1
  599. package/.output/server/chunks/routes/api/test-runs/start.post.mjs +4 -1
  600. package/.output/server/chunks/routes/api/test-runs/start.post.mjs.map +1 -1
  601. package/.output/server/chunks/routes/api/test-runs/submit.post.mjs +4 -1
  602. package/.output/server/chunks/routes/api/test-runs/submit.post.mjs.map +1 -1
  603. package/.output/server/chunks/routes/api/test-runs/upload.post.mjs +4 -1
  604. package/.output/server/chunks/routes/api/test-runs/upload.post.mjs.map +1 -1
  605. package/.output/server/chunks/routes/api/tests/cleanup.delete.mjs +4 -1
  606. package/.output/server/chunks/routes/api/tests/cleanup.delete.mjs.map +1 -1
  607. package/.output/server/chunks/routes/api/traces/check.post.mjs +6 -3
  608. package/.output/server/chunks/routes/api/traces/check.post.mjs.map +1 -1
  609. package/.output/server/chunks/routes/api/users/_id/api-keys/_keyId_.delete.mjs +4 -1
  610. package/.output/server/chunks/routes/api/users/_id/api-keys/_keyId_.delete.mjs.map +1 -1
  611. package/.output/server/chunks/routes/api/users/_id/index.get.mjs +4 -1
  612. package/.output/server/chunks/routes/api/users/_id/index.get.mjs.map +1 -1
  613. package/.output/server/chunks/routes/api/users/_id/index.post.mjs +3 -1
  614. package/.output/server/chunks/routes/api/users/_id/index.post.mjs.map +1 -1
  615. package/.output/server/chunks/routes/api/users/_id/invite.post.mjs +4 -1
  616. package/.output/server/chunks/routes/api/users/_id/invite.post.mjs.map +1 -1
  617. package/.output/server/chunks/routes/api/users/_id/projects.get.mjs +4 -1
  618. package/.output/server/chunks/routes/api/users/_id/projects.get.mjs.map +1 -1
  619. package/.output/server/chunks/routes/api/users/_id/projects.put.mjs +3 -1
  620. package/.output/server/chunks/routes/api/users/_id/projects.put.mjs.map +1 -1
  621. package/.output/server/chunks/routes/api/users/_id_.delete.mjs +4 -1
  622. package/.output/server/chunks/routes/api/users/_id_.delete.mjs.map +1 -1
  623. package/.output/server/chunks/routes/api/users/_id_.patch.mjs +7 -2
  624. package/.output/server/chunks/routes/api/users/_id_.patch.mjs.map +1 -1
  625. package/.output/server/chunks/routes/api/version.get.mjs +4 -1
  626. package/.output/server/chunks/routes/api/version.get.mjs.map +1 -1
  627. package/.output/server/chunks/routes/mcp.post.mjs +43 -11
  628. package/.output/server/chunks/routes/mcp.post.mjs.map +1 -1
  629. package/.output/server/chunks/routes/renderer.mjs +1 -1
  630. package/.output/server/chunks/routes/renderer.mjs.map +1 -1
  631. package/.output/server/chunks/tasks/sweep.mjs +3 -0
  632. package/.output/server/chunks/tasks/sweep.mjs.map +1 -1
  633. package/.output/server/chunks/tasks/sweep2.mjs +3 -0
  634. package/.output/server/chunks/tasks/sweep2.mjs.map +1 -1
  635. package/.output/server/database/migrations/0043_watery_dragon_lord.sql +22 -0
  636. package/.output/server/database/migrations/0044_panoramic_eddie_brock.sql +1 -0
  637. package/.output/server/database/migrations/meta/0043_snapshot.json +3764 -0
  638. package/.output/server/database/migrations/meta/0044_snapshot.json +3772 -0
  639. package/.output/server/database/migrations/meta/_journal.json +14 -0
  640. package/.output/server/database/migrations-pg/0044_dark_triathlon.sql +22 -0
  641. package/.output/server/database/migrations-pg/0045_loose_runaways.sql +1 -0
  642. package/.output/server/database/migrations-pg/meta/0044_snapshot.json +4473 -0
  643. package/.output/server/database/migrations-pg/meta/0045_snapshot.json +4480 -0
  644. package/.output/server/database/migrations-pg/meta/_journal.json +14 -0
  645. package/.output/server/index.mjs +4 -1
  646. package/.output/server/index.mjs.map +1 -1
  647. package/.output/server/package.json +1 -1
  648. package/bin/piwi-server.mjs +10 -0
  649. package/package.json +1 -1
  650. package/.output/public/_nuxt/8PUUncmO.js +0 -44
  651. package/.output/public/_nuxt/B7FTvFWq.js +0 -5
  652. package/.output/public/_nuxt/B8zkOmwo.js +0 -1
  653. package/.output/public/_nuxt/B96M2gdj.js +0 -1
  654. package/.output/public/_nuxt/B9OLmp0f.js +0 -1
  655. package/.output/public/_nuxt/BUa0V0Ly.js +0 -1
  656. package/.output/public/_nuxt/BUkim3TM.js +0 -1
  657. package/.output/public/_nuxt/BVc14Ncz.js +0 -4
  658. package/.output/public/_nuxt/BY0HxR3t.js +0 -17
  659. package/.output/public/_nuxt/B_xAMWQS.js +0 -2
  660. package/.output/public/_nuxt/BdQoBaOv.js +0 -1
  661. package/.output/public/_nuxt/BgRu_3tT.js +0 -1
  662. package/.output/public/_nuxt/BiO7RBWb.js +0 -6
  663. package/.output/public/_nuxt/CEfS4-oS.js +0 -64
  664. package/.output/public/_nuxt/CIoSMkpp.js +0 -1
  665. package/.output/public/_nuxt/CSJ-eOQM.js +0 -1
  666. package/.output/public/_nuxt/CahpB9Z2.js +0 -5
  667. package/.output/public/_nuxt/Cbh--1MW.js +0 -1
  668. package/.output/public/_nuxt/Cx6gc2VW.js +0 -1
  669. package/.output/public/_nuxt/D--H4jLI.js +0 -1
  670. package/.output/public/_nuxt/D1POo6S4.js +0 -10
  671. package/.output/public/_nuxt/D8nkF-OO.js +0 -3
  672. package/.output/public/_nuxt/DA25RkyK.js +0 -1
  673. package/.output/public/_nuxt/DIB-5fUJ.js +0 -1
  674. package/.output/public/_nuxt/DMec-OLo.js +0 -1
  675. package/.output/public/_nuxt/DSqHUrvO.js +0 -1
  676. package/.output/public/_nuxt/DmkUdSS4.js +0 -1
  677. package/.output/public/_nuxt/DoIREDVb.js +0 -1
  678. package/.output/public/_nuxt/DpZ1r1HA.js +0 -1
  679. package/.output/public/_nuxt/DqcKngf3.js +0 -1
  680. package/.output/public/_nuxt/DtHJgCS8.js +0 -1
  681. package/.output/public/_nuxt/Dtd4rC58.js +0 -9
  682. package/.output/public/_nuxt/Dy86h-7P.js +0 -1
  683. package/.output/public/_nuxt/HPNQD6v3.js +0 -1
  684. package/.output/public/_nuxt/HXadJrHu.js +0 -2
  685. package/.output/public/_nuxt/McL25vkx.js +0 -34
  686. package/.output/public/_nuxt/Nn93e_Mz.js +0 -1
  687. package/.output/public/_nuxt/UdR3DBPS.js +0 -1
  688. package/.output/public/_nuxt/_mj6CfPa.js +0 -1
  689. package/.output/public/_nuxt/builds/meta/e659b3e1-0e61-4971-940e-10063f9f4763.json +0 -1
  690. package/.output/public/_nuxt/entry.DmptwB51.css +0 -1
  691. package/.output/public/_nuxt/ryMzSDUj.js +0 -2
  692. package/.output/public/trace-viewer/assets/codeMirrorModule-LEHpjmcn.js +0 -32
  693. package/.output/public/trace-viewer/assets/defaultSettingsView-BNmKHKpQ.js +0 -264
  694. package/.output/public/trace-viewer/assets/urlMatch-BYQrIQwR.js +0 -1
  695. package/.output/public/trace-viewer/assets/xtermModule-CsJ4vdCR.js +0 -9
  696. package/.output/public/trace-viewer/codeMirrorModule.DYBRYzYX.css +0 -1
  697. package/.output/public/trace-viewer/codicon.DCmgc-ay.ttf +0 -0
  698. package/.output/public/trace-viewer/defaultSettingsView.CjdS-WJx.css +0 -1
  699. package/.output/public/trace-viewer/index.CzXZzn5A.css +0 -1
  700. package/.output/public/trace-viewer/index.DMMX1gXU.js +0 -2
  701. package/.output/public/trace-viewer/index.html +0 -44
  702. package/.output/public/trace-viewer/manifest.webmanifest +0 -16
  703. package/.output/public/trace-viewer/playwright-logo.svg +0 -9
  704. package/.output/public/trace-viewer/snapshot.html +0 -10
  705. package/.output/public/trace-viewer/snapshot.v8KI4P3m.js +0 -2
  706. package/.output/public/trace-viewer/sw.bundle.js +0 -5
  707. package/.output/public/trace-viewer/uiMode.BZQ54Kgt.css +0 -1
  708. package/.output/public/trace-viewer/uiMode.Ut8wwJNp.js +0 -6
  709. package/.output/public/trace-viewer/uiMode.html +0 -18
  710. package/.output/public/trace-viewer/xtermModule.DYP7pi_n.css +0 -32
  711. package/.output/server/chunks/build/Alert-C4xq8lao.mjs.map +0 -1
  712. package/.output/server/chunks/build/Breadcrumb-Ak2Lg3oM.mjs.map +0 -1
  713. package/.output/server/chunks/build/BreadcrumbNav-DO7I_z-n.mjs.map +0 -1
  714. package/.output/server/chunks/build/BrowserBadge-MFvBwxmD.mjs.map +0 -1
  715. package/.output/server/chunks/build/Card-BQP_oZkQ.mjs.map +0 -1
  716. package/.output/server/chunks/build/ChartCard-Y1UKwMsf.mjs.map +0 -1
  717. package/.output/server/chunks/build/ChartMarkerTooltip-0DcMfD_6.mjs.map +0 -1
  718. package/.output/server/chunks/build/Checkbox-4Q5d0fa0.mjs.map +0 -1
  719. package/.output/server/chunks/build/CiEnvCard-DB5DvBh1.mjs.map +0 -1
  720. package/.output/server/chunks/build/CodeBlock-BgE-NSmE.mjs.map +0 -1
  721. package/.output/server/chunks/build/DashboardNavbar-BHmMSPX7.mjs.map +0 -1
  722. package/.output/server/chunks/build/DashboardSidebarToggle-DCTnHiIv.mjs.map +0 -1
  723. package/.output/server/chunks/build/DataLocationCard-B_YHdzSz.mjs.map +0 -1
  724. package/.output/server/chunks/build/DiagnosisPanel-CALyEmcJ.mjs.map +0 -1
  725. package/.output/server/chunks/build/DurationValue-D20oGbnc.mjs.map +0 -1
  726. package/.output/server/chunks/build/EntityLinks-BBHWssHH.mjs.map +0 -1
  727. package/.output/server/chunks/build/EnvManagedBadge-UwD2b9v2.mjs.map +0 -1
  728. package/.output/server/chunks/build/FormField-B0HKsdMd.mjs.map +0 -1
  729. package/.output/server/chunks/build/HelpHint-DrcIv-Oj.mjs.map +0 -1
  730. package/.output/server/chunks/build/LoadingState-C3pBSuOO.mjs.map +0 -1
  731. package/.output/server/chunks/build/MarkerBadge-D7meXy4u.mjs.map +0 -1
  732. package/.output/server/chunks/build/MiniRunBars-CZMugDrh.mjs.map +0 -1
  733. package/.output/server/chunks/build/Modal-pSDlXzT3.mjs.map +0 -1
  734. package/.output/server/chunks/build/RunReports-DFLv51TX.mjs.map +0 -1
  735. package/.output/server/chunks/build/RunStatusBadge-FfGb6bkW.mjs.map +0 -1
  736. package/.output/server/chunks/build/SectionCard-CN-v0FZ_.mjs.map +0 -1
  737. package/.output/server/chunks/build/Select-5DK9frQ7.mjs.map +0 -1
  738. package/.output/server/chunks/build/Separator-CR4WcEKD.mjs.map +0 -1
  739. package/.output/server/chunks/build/SettingsField-BZfx4ma1.mjs.map +0 -1
  740. package/.output/server/chunks/build/Skeleton-CEHuuKVh.mjs.map +0 -1
  741. package/.output/server/chunks/build/Slideover-D270EZZD.mjs.map +0 -1
  742. package/.output/server/chunks/build/StatTile-D61Vzo6e.mjs.map +0 -1
  743. package/.output/server/chunks/build/Switch-B5Fp8ULt.mjs.map +0 -1
  744. package/.output/server/chunks/build/Table-BRk04Hd2.mjs.map +0 -1
  745. package/.output/server/chunks/build/Tabs-BkSOnbaB.mjs.map +0 -1
  746. package/.output/server/chunks/build/TestCaseHistoryChart-CSi64vVA.mjs.map +0 -1
  747. package/.output/server/chunks/build/TestMetaBadges-D5_yUtIP.mjs.map +0 -1
  748. package/.output/server/chunks/build/TestStatusBar-DX3EhlyP.mjs.map +0 -1
  749. package/.output/server/chunks/build/Textarea-Dv2-lOvW.mjs.map +0 -1
  750. package/.output/server/chunks/build/Tooltip-Dv4htNP6.mjs.map +0 -1
  751. package/.output/server/chunks/build/_id_-BdG37K7s.mjs.map +0 -1
  752. package/.output/server/chunks/build/_id_-BdJs7BJZ.mjs.map +0 -1
  753. package/.output/server/chunks/build/_id_-BxA6IgWr.mjs.map +0 -1
  754. package/.output/server/chunks/build/_id_-C_uSBiyU.mjs.map +0 -1
  755. package/.output/server/chunks/build/about-BE0UV-8-.mjs.map +0 -1
  756. package/.output/server/chunks/build/account-DAfvaD-F.mjs.map +0 -1
  757. package/.output/server/chunks/build/analytics-Bo_B_jko.mjs.map +0 -1
  758. package/.output/server/chunks/build/compare-RxHSOdsO.mjs.map +0 -1
  759. package/.output/server/chunks/build/db.client-CQoVTYB9.mjs.map +0 -1
  760. package/.output/server/chunks/build/edit-J0asTFg8.mjs.map +0 -1
  761. package/.output/server/chunks/build/fetch-B4FwBOzu.mjs.map +0 -1
  762. package/.output/server/chunks/build/forgot-password-CC__1OnV.mjs.map +0 -1
  763. package/.output/server/chunks/build/import-CS9oylTN.mjs.map +0 -1
  764. package/.output/server/chunks/build/index-CU2nZhAa.mjs.map +0 -1
  765. package/.output/server/chunks/build/index-DE45ycdZ.mjs.map +0 -1
  766. package/.output/server/chunks/build/index-e9skCi-V.mjs.map +0 -1
  767. package/.output/server/chunks/build/index-tR6owKzj.mjs +0 -167
  768. package/.output/server/chunks/build/index-tR6owKzj.mjs.map +0 -1
  769. package/.output/server/chunks/build/login-Da4u1IlW.mjs.map +0 -1
  770. package/.output/server/chunks/build/mcp-uhVCCwQM.mjs.map +0 -1
  771. package/.output/server/chunks/build/notifications-fx_qnKGA.mjs.map +0 -1
  772. package/.output/server/chunks/build/pr-feedback-X6-70iF0.mjs.map +0 -1
  773. package/.output/server/chunks/build/reset-password-BmrUS4ZD.mjs.map +0 -1
  774. package/.output/server/chunks/build/settings-CCYe7rsc.mjs.map +0 -1
  775. package/.output/server/chunks/build/settings-metadata-DrEqWcW-.mjs.map +0 -1
  776. package/.output/server/chunks/build/storage-CJEmviCD.mjs.map +0 -1
  777. package/.output/server/chunks/build/tags-DauTe_F-.mjs.map +0 -1
  778. package/.output/server/chunks/build/test-cases-thBbAykw.mjs.map +0 -1
  779. package/.output/server/chunks/build/timeout-hygiene-CbnSaVbK.mjs +0 -330
  780. package/.output/server/chunks/build/timeout-hygiene-CbnSaVbK.mjs.map +0 -1
  781. package/.output/server/chunks/build/useAiStatus-CxjMmDDY.mjs.map +0 -1
  782. package/.output/server/chunks/build/useChartMarkers-C89e_VLV.mjs.map +0 -1
  783. package/.output/server/chunks/build/useCopy-CeKWgHyT.mjs +0 -33
  784. package/.output/server/chunks/build/useCopy-CeKWgHyT.mjs.map +0 -1
  785. package/.output/server/chunks/build/useCopyRich-RJKhWoyj.mjs.map +0 -1
  786. package/.output/server/chunks/build/useDesktopDownload-BepjqxOt.mjs.map +0 -1
  787. package/.output/server/chunks/build/useOpenInIde-BbTnPhFA.mjs.map +0 -1
  788. package/.output/server/chunks/build/useSettingsNav-DnQKacz8.mjs.map +0 -1
  789. package/.output/server/chunks/build/users-CTUqXyGh.mjs.map +0 -1
  790. package/.output/server/chunks/build/wasted-time-BNTPIyrC.mjs +0 -301
  791. 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';
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';
1
+ import { _ as _sfc_main$1$1, a as _sfc_main$f } from './DashboardNavbar-DYtmVlhy.mjs';
2
+ import { _ as _sfc_main$1$2 } from './Breadcrumb-DJp5WvUM.mjs';
3
+ import { _ as __nuxt_component_3$2 } from './BreadcrumbNav-BrQwfL8G.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-CVFeYfkG.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-BBByVvpR.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-ujB5Lt2A.mjs';
9
+ import { _ as __nuxt_component_14$1 } from './DurationValue-UX9uajQJ.mjs';
10
+ import { _ as __nuxt_component_3$5 } from './BrowserBadge-Djw_e_I9.mjs';
11
+ import { _ as _sfc_main$i } from './Card--Ike7sYc.mjs';
12
+ import { _ as __nuxt_component_2$3 } from './TestMetaBadges-BlyKmfeP.mjs';
13
+ import { _ as __nuxt_component_1$1 } from './OpenInIdeLink-Crc8y0Yx.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-C5Ru8BCc.mjs';
17
+ import { _ as __nuxt_component_19$1 } from './EntityLinks-F8_kC-IH.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-ByWTzqF6.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';
19
- 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';
22
- 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';
25
- import { _ as _sfc_main$j } from './Slideover-D270EZZD.mjs';
26
- import { _ as __nuxt_component_5 } from './CodeBlock-BgE-NSmE.mjs';
21
+ import { _ as __nuxt_component_11 } from './SectionCard-C753B3Yo.mjs';
22
+ import { _ as _sfc_main$e } from './Tooltip-BRBnl4pE.mjs';
23
+ import { _ as _sfc_main$h } from './Textarea-Ohs6QTXf.mjs';
24
+ import { e4 as condenseErrorText, e5 as hasSlowMark, e1 as extractCitedSectionIds, ah as formatBytes } from '../nitro/nitro.mjs';
25
+ import { u as useAiStatus } from './useAiStatus-UR8x-feE.mjs';
26
+ import { _ as _sfc_main$g } from './Tabs-BCOhHEB9.mjs';
27
+ import { _ as __nuxt_component_13 } from './LoadingState-CwpfmI0W.mjs';
28
+ import { _ as __nuxt_component_4$2 } from './FeatureUnavailable-BMw4euTk.mjs';
29
+ import { _ as _sfc_main$j } from './Slideover-CNbGvbUF.mjs';
30
+ import { _ as __nuxt_component_5 } from './CodeBlock-CjnDrO3Y.mjs';
27
31
  import { _ as __nuxt_component_3$1 } from './TableScroller-DMcdCVrH.mjs';
28
- 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';
32
+ import { _ as _sfc_main$d } from './Table-CfDVAuUJ.mjs';
33
+ import { _ as __nuxt_component_4$1 } from './EmptyState-DC2q_7TD.mjs';
34
+ import { _ as __nuxt_component_39 } from './TestCaseHistoryChart-CKDXQ2GI.mjs';
35
+ import { b as buildRetryCommand } from './useOpenInIde--6Me0WlL.mjs';
36
+ import { u as useFetch, a as useCopy } from './fetch-Be-j7hF1.mjs';
37
+ import './DashboardSidebarToggle-BPNxODwj.mjs';
36
38
  import 'vue-router';
37
39
  import '@iconify/vue';
38
40
  import 'tailwindcss/colors';
@@ -65,10 +67,13 @@ 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';
71
74
  import 'nodemailer';
75
+ import 'node:dns/promises';
76
+ import 'node:net';
72
77
  import 'node:util';
73
78
  import 'rou3';
74
79
  import 'fs';
@@ -88,18 +93,18 @@ import 'node:zlib';
88
93
  import 'consola';
89
94
  import 'node:url';
90
95
  import '@iconify/utils';
91
- import './Separator-CR4WcEKD.mjs';
92
- import './useDesktopDownload-BepjqxOt.mjs';
96
+ import './Separator-BbgCfKKJ.mjs';
97
+ import './useDesktopDownload-Dyf0fR47.mjs';
93
98
  import './useIsDesktop-BS13spVj.mjs';
94
99
  import './useTauri-Kf3HE_42.mjs';
95
- import './Alert-C4xq8lao.mjs';
96
- import './Modal-pSDlXzT3.mjs';
97
- import './FormField-B0HKsdMd.mjs';
100
+ import './Alert-DAb8nKVs.mjs';
101
+ import './Modal-BacZmQCX.mjs';
102
+ import './FormField-QptK0rPg.mjs';
98
103
  import './Label-DYDR1Oeh.mjs';
99
- import './Select-5DK9frQ7.mjs';
104
+ import './Select-BAyYwPuo.mjs';
100
105
  import './useFormControl-CZ9So7iX.mjs';
101
106
  import './handleAndDispatchCustomEvent-Bk_AVSSo.mjs';
102
- import './Switch-B5Fp8ULt.mjs';
107
+ import './Switch-DdkA3Fii.mjs';
103
108
  import './useForwardScopeId-D0ameaSU.mjs';
104
109
  import './VisuallyHiddenInput-BHvzNumK.mjs';
105
110
  import './help-content-C876a9WD.mjs';
@@ -107,10 +112,10 @@ import 'date-fns';
107
112
  import './RovingFocusItem--OEHI2P3.mjs';
108
113
  import '@tanstack/vue-table';
109
114
  import '@tanstack/vue-virtual';
110
- import './ChartMarkerTooltip-0DcMfD_6.mjs';
111
- import './MarkerBadge-D7meXy4u.mjs';
115
+ import './ChartMarkerTooltip-u_1DUHh-.mjs';
116
+ import './MarkerBadge-Biz5--h2.mjs';
112
117
  import '../_/marker-categories.mjs';
113
- import './useChartMarkers-C89e_VLV.mjs';
118
+ import './useChartMarkers-C0wSO0xk.mjs';
114
119
  import '@unovis/vue';
115
120
  import '@unovis/ts';
116
121
  import '@vue/shared';
@@ -126,7 +131,9 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
126
131
  environment: {},
127
132
  stepsCount: {},
128
133
  historicalTiming: {},
129
- stableLinks: {}
134
+ stableLinks: {},
135
+ projectKey: {},
136
+ projectName: {}
130
137
  },
131
138
  emits: ["refresh"],
132
139
  setup(__props) {
@@ -150,32 +157,28 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
150
157
  () => (props.testCase?.testAnnotations ?? []).filter((ann) => !isPiwiAnnotation(ann.type))
151
158
  );
152
159
  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
- });
160
+ const showCiGroup = computed(() => !!(props.ciInfo || props.environment));
160
161
  return (_ctx, _push, _parent, _attrs) => {
161
162
  const _component_FoldableSummary = __nuxt_component_0;
162
- const _component_StatusBlock = __nuxt_component_1$5;
163
+ const _component_StatusChip = __nuxt_component_1$4;
163
164
  const _component_DurationValue = __nuxt_component_14$1;
164
165
  const _component_BrowserBadge = __nuxt_component_3$5;
165
166
  const _component_UCard = _sfc_main$i;
166
167
  const _component_UBadge = _sfc_main$7$1;
167
168
  const _component_TestMetaBadges = __nuxt_component_2$3;
169
+ const _component_OpenInIdeLink = __nuxt_component_1$1;
168
170
  const _component_ClientOnly = __nuxt_component_7;
171
+ const _component_StatTileGrid = __nuxt_component_1;
172
+ const _component_StatTile = __nuxt_component_2;
169
173
  const _component_UIcon = _sfc_main$p;
170
174
  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;
175
+ const _component_SummaryMetaStrip = __nuxt_component_16$1;
176
+ const _component_MetaStripGroup = __nuxt_component_17$1;
177
+ const _component_EntityLinks = __nuxt_component_19$1;
175
178
  _push(ssrRenderComponent(_component_FoldableSummary, mergeProps({ "storage-key": "test-case" }, _attrs), {
176
179
  folded: withCtx((_, _push2, _parent2, _scopeId) => {
177
180
  if (_push2) {
178
- _push2(ssrRenderComponent(_component_StatusBlock, {
181
+ _push2(ssrRenderComponent(_component_StatusChip, {
179
182
  status: __props.testCase?.status ?? "",
180
183
  size: "sm"
181
184
  }, null, _parent2, _scopeId));
@@ -202,7 +205,7 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
202
205
  }
203
206
  } else {
204
207
  return [
205
- createVNode(_component_StatusBlock, {
208
+ createVNode(_component_StatusChip, {
206
209
  status: __props.testCase?.status ?? "",
207
210
  size: "sm"
208
211
  }, null, 8, ["status"]),
@@ -246,16 +249,461 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
246
249
  }),
247
250
  default: withCtx((_, _push2, _parent2, _scopeId) => {
248
251
  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" }, {
252
+ _push2(`<div class="@container"${_scopeId}>`);
253
+ _push2(ssrRenderComponent(_component_UCard, {
254
+ class: "shadow-xs",
255
+ ui: { footer: "px-4 py-2.5 sm:px-4 bg-muted/30" }
256
+ }, {
257
+ footer: withCtx((_2, _push3, _parent3, _scopeId2) => {
258
+ if (_push3) {
259
+ _push3(ssrRenderComponent(_component_SummaryMetaStrip, null, {
260
+ default: withCtx((_3, _push4, _parent4, _scopeId3) => {
261
+ if (_push4) {
262
+ if (__props.scmInfo) {
263
+ _push4(ssrRenderComponent(_component_MetaStripGroup, {
264
+ label: "Source",
265
+ icon: "i-lucide-git-branch"
266
+ }, {
267
+ default: withCtx((_4, _push5, _parent5, _scopeId4) => {
268
+ if (_push5) {
269
+ if (__props.scmInfo.branch) {
270
+ _push5(`<span class="font-medium"${_scopeId4}>${ssrInterpolate(__props.scmInfo.branch)}</span>`);
271
+ } else {
272
+ _push5(`<!---->`);
273
+ }
274
+ if (__props.scmInfo.commit) {
275
+ _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>`);
276
+ } else {
277
+ _push5(`<!---->`);
278
+ }
279
+ if (__props.scmInfo.author) {
280
+ _push5(`<span class="text-muted"${_scopeId4}>${ssrInterpolate(__props.scmInfo.author)}</span>`);
281
+ } else {
282
+ _push5(`<!---->`);
283
+ }
284
+ if (__props.scmInfo.commitMessage) {
285
+ _push5(`<span class="text-xs text-dimmed truncate max-w-[40ch]"${ssrRenderAttr("title", __props.scmInfo.commitMessage)}${_scopeId4}>${ssrInterpolate(__props.scmInfo.commitMessage)}</span>`);
286
+ } else {
287
+ _push5(`<!---->`);
288
+ }
289
+ } else {
290
+ return [
291
+ __props.scmInfo.branch ? (openBlock(), createBlock("span", {
292
+ key: 0,
293
+ class: "font-medium"
294
+ }, toDisplayString(__props.scmInfo.branch), 1)) : createCommentVNode("", true),
295
+ __props.scmInfo.commit ? (openBlock(), createBlock("code", {
296
+ key: 1,
297
+ class: "text-xs font-mono bg-zinc-100 dark:bg-zinc-800 px-1 py-0.5 rounded",
298
+ title: __props.scmInfo.commit
299
+ }, toDisplayString(__props.scmInfo.commit.length >= 8 ? __props.scmInfo.commit.substring(0, 8) : __props.scmInfo.commit), 9, ["title"])) : createCommentVNode("", true),
300
+ __props.scmInfo.author ? (openBlock(), createBlock("span", {
301
+ key: 2,
302
+ class: "text-muted"
303
+ }, toDisplayString(__props.scmInfo.author), 1)) : createCommentVNode("", true),
304
+ __props.scmInfo.commitMessage ? (openBlock(), createBlock("span", {
305
+ key: 3,
306
+ class: "text-xs text-dimmed truncate max-w-[40ch]",
307
+ title: __props.scmInfo.commitMessage
308
+ }, toDisplayString(__props.scmInfo.commitMessage), 9, ["title"])) : createCommentVNode("", true)
309
+ ];
310
+ }
311
+ }),
312
+ _: 1
313
+ }, _parent4, _scopeId3));
314
+ } else {
315
+ _push4(`<!---->`);
316
+ }
317
+ if (unref(showCiGroup)) {
318
+ _push4(ssrRenderComponent(_component_MetaStripGroup, {
319
+ label: "CI & environment",
320
+ icon: "i-lucide-cloud",
321
+ help: "run.ci-env"
322
+ }, {
323
+ default: withCtx((_4, _push5, _parent5, _scopeId4) => {
324
+ if (_push5) {
325
+ if (__props.environment) {
326
+ _push5(`<span class="rounded-full border border-default px-2 py-0.5 text-xs bg-elevated/60"${_scopeId4}>${ssrInterpolate(__props.environment)}</span>`);
327
+ } else {
328
+ _push5(`<!---->`);
329
+ }
330
+ if (__props.ciInfo?.provider) {
331
+ _push5(`<span${_scopeId4}>${ssrInterpolate(__props.ciInfo.provider)}</span>`);
332
+ } else {
333
+ _push5(`<!---->`);
334
+ }
335
+ if (__props.ciInfo?.buildNumber || __props.ciInfo?.buildUrl) {
336
+ _push5(`<!--[--><span class="text-dimmed"${_scopeId4}>·</span>`);
337
+ if (__props.ciInfo?.buildUrl) {
338
+ _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>`);
339
+ } else {
340
+ _push5(`<span${_scopeId4}>Build #${ssrInterpolate(__props.ciInfo.buildNumber)}</span>`);
341
+ }
342
+ _push5(`<!--]-->`);
343
+ } else {
344
+ _push5(`<!---->`);
345
+ }
346
+ if (__props.ciInfo?.workflow || __props.ciInfo?.jobName) {
347
+ _push5(`<!--[--><span class="text-dimmed"${_scopeId4}>·</span><span class="text-muted"${_scopeId4}>`);
348
+ if (__props.ciInfo?.workflow) {
349
+ _push5(`<!--[-->${ssrInterpolate(__props.ciInfo.workflow)}<!--]-->`);
350
+ } else {
351
+ _push5(`<!---->`);
352
+ }
353
+ if (__props.ciInfo?.workflow && __props.ciInfo?.jobName) {
354
+ _push5(`<!--[--> · <!--]-->`);
355
+ } else {
356
+ _push5(`<!---->`);
357
+ }
358
+ if (__props.ciInfo?.jobName) {
359
+ _push5(`<!--[-->${ssrInterpolate(__props.ciInfo.jobName)}<!--]-->`);
360
+ } else {
361
+ _push5(`<!---->`);
362
+ }
363
+ _push5(`</span><!--]-->`);
364
+ } else {
365
+ _push5(`<!---->`);
366
+ }
367
+ } else {
368
+ return [
369
+ __props.environment ? (openBlock(), createBlock("span", {
370
+ key: 0,
371
+ class: "rounded-full border border-default px-2 py-0.5 text-xs bg-elevated/60"
372
+ }, toDisplayString(__props.environment), 1)) : createCommentVNode("", true),
373
+ __props.ciInfo?.provider ? (openBlock(), createBlock("span", { key: 1 }, toDisplayString(__props.ciInfo.provider), 1)) : createCommentVNode("", true),
374
+ __props.ciInfo?.buildNumber || __props.ciInfo?.buildUrl ? (openBlock(), createBlock(Fragment, { key: 2 }, [
375
+ createVNode("span", { class: "text-dimmed" }, "·"),
376
+ __props.ciInfo?.buildUrl ? (openBlock(), createBlock("a", {
377
+ key: 0,
378
+ href: __props.ciInfo.buildUrl,
379
+ target: "_blank",
380
+ class: "text-primary hover:underline"
381
+ }, toDisplayString(__props.ciInfo?.buildNumber ? `Build #${__props.ciInfo.buildNumber}` : "View build"), 9, ["href"])) : (openBlock(), createBlock("span", { key: 1 }, "Build #" + toDisplayString(__props.ciInfo.buildNumber), 1))
382
+ ], 64)) : createCommentVNode("", true),
383
+ __props.ciInfo?.workflow || __props.ciInfo?.jobName ? (openBlock(), createBlock(Fragment, { key: 3 }, [
384
+ createVNode("span", { class: "text-dimmed" }, "·"),
385
+ createVNode("span", { class: "text-muted" }, [
386
+ __props.ciInfo?.workflow ? (openBlock(), createBlock(Fragment, { key: 0 }, [
387
+ createTextVNode(toDisplayString(__props.ciInfo.workflow), 1)
388
+ ], 64)) : createCommentVNode("", true),
389
+ __props.ciInfo?.workflow && __props.ciInfo?.jobName ? (openBlock(), createBlock(Fragment, { key: 1 }, [
390
+ createTextVNode(" · ")
391
+ ], 64)) : createCommentVNode("", true),
392
+ __props.ciInfo?.jobName ? (openBlock(), createBlock(Fragment, { key: 2 }, [
393
+ createTextVNode(toDisplayString(__props.ciInfo.jobName), 1)
394
+ ], 64)) : createCommentVNode("", true)
395
+ ])
396
+ ], 64)) : createCommentVNode("", true)
397
+ ];
398
+ }
399
+ }),
400
+ _: 1
401
+ }, _parent4, _scopeId3));
402
+ } else {
403
+ _push4(`<!---->`);
404
+ }
405
+ if (__props.browser) {
406
+ _push4(ssrRenderComponent(_component_MetaStripGroup, { label: "Browser" }, {
407
+ default: withCtx((_4, _push5, _parent5, _scopeId4) => {
408
+ if (_push5) {
409
+ _push5(ssrRenderComponent(_component_BrowserBadge, {
410
+ browser: { ...__props.browser, viewport: void 0 },
411
+ size: "sm"
412
+ }, null, _parent5, _scopeId4));
413
+ if (__props.browser.viewport) {
414
+ _push5(`<span class="tabular-nums text-muted"${_scopeId4}>${ssrInterpolate(__props.browser.viewport.width)}×${ssrInterpolate(__props.browser.viewport.height)} `);
415
+ if (__props.browser.deviceScaleFactor && __props.browser.deviceScaleFactor !== 1) {
416
+ _push5(`<span class="text-dimmed"${_scopeId4}>@${ssrInterpolate(__props.browser.deviceScaleFactor)}x</span>`);
417
+ } else {
418
+ _push5(`<!---->`);
419
+ }
420
+ _push5(`</span>`);
421
+ } else {
422
+ _push5(`<!---->`);
423
+ }
424
+ } else {
425
+ return [
426
+ createVNode(_component_BrowserBadge, {
427
+ browser: { ...__props.browser, viewport: void 0 },
428
+ size: "sm"
429
+ }, null, 8, ["browser"]),
430
+ __props.browser.viewport ? (openBlock(), createBlock("span", {
431
+ key: 0,
432
+ class: "tabular-nums text-muted"
433
+ }, [
434
+ createTextVNode(toDisplayString(__props.browser.viewport.width) + "×" + toDisplayString(__props.browser.viewport.height) + " ", 1),
435
+ __props.browser.deviceScaleFactor && __props.browser.deviceScaleFactor !== 1 ? (openBlock(), createBlock("span", {
436
+ key: 0,
437
+ class: "text-dimmed"
438
+ }, "@" + toDisplayString(__props.browser.deviceScaleFactor) + "x", 1)) : createCommentVNode("", true)
439
+ ])) : createCommentVNode("", true)
440
+ ];
441
+ }
442
+ }),
443
+ _: 1
444
+ }, _parent4, _scopeId3));
445
+ } else {
446
+ _push4(`<!---->`);
447
+ }
448
+ _push4(ssrRenderComponent(_component_MetaStripGroup, {
449
+ label: "Links",
450
+ icon: "i-lucide-link"
451
+ }, {
452
+ default: withCtx((_4, _push5, _parent5, _scopeId4) => {
453
+ if (_push5) {
454
+ if (__props.testCase?.id) {
455
+ _push5(ssrRenderComponent(_component_EntityLinks, {
456
+ "entity-type": "test_case",
457
+ "entity-id": __props.testCase.id,
458
+ links: __props.stableLinks ?? null,
459
+ onUpdated: ($event) => _ctx.$emit("refresh")
460
+ }, null, _parent5, _scopeId4));
461
+ } else {
462
+ _push5(`<!---->`);
463
+ }
464
+ } else {
465
+ return [
466
+ __props.testCase?.id ? (openBlock(), createBlock(_component_EntityLinks, {
467
+ key: 0,
468
+ "entity-type": "test_case",
469
+ "entity-id": __props.testCase.id,
470
+ links: __props.stableLinks ?? null,
471
+ onUpdated: ($event) => _ctx.$emit("refresh")
472
+ }, null, 8, ["entity-id", "links", "onUpdated"])) : createCommentVNode("", true)
473
+ ];
474
+ }
475
+ }),
476
+ _: 1
477
+ }, _parent4, _scopeId3));
478
+ } else {
479
+ return [
480
+ __props.scmInfo ? (openBlock(), createBlock(_component_MetaStripGroup, {
481
+ key: 0,
482
+ label: "Source",
483
+ icon: "i-lucide-git-branch"
484
+ }, {
485
+ default: withCtx(() => [
486
+ __props.scmInfo.branch ? (openBlock(), createBlock("span", {
487
+ key: 0,
488
+ class: "font-medium"
489
+ }, toDisplayString(__props.scmInfo.branch), 1)) : createCommentVNode("", true),
490
+ __props.scmInfo.commit ? (openBlock(), createBlock("code", {
491
+ key: 1,
492
+ class: "text-xs font-mono bg-zinc-100 dark:bg-zinc-800 px-1 py-0.5 rounded",
493
+ title: __props.scmInfo.commit
494
+ }, toDisplayString(__props.scmInfo.commit.length >= 8 ? __props.scmInfo.commit.substring(0, 8) : __props.scmInfo.commit), 9, ["title"])) : createCommentVNode("", true),
495
+ __props.scmInfo.author ? (openBlock(), createBlock("span", {
496
+ key: 2,
497
+ class: "text-muted"
498
+ }, toDisplayString(__props.scmInfo.author), 1)) : createCommentVNode("", true),
499
+ __props.scmInfo.commitMessage ? (openBlock(), createBlock("span", {
500
+ key: 3,
501
+ class: "text-xs text-dimmed truncate max-w-[40ch]",
502
+ title: __props.scmInfo.commitMessage
503
+ }, toDisplayString(__props.scmInfo.commitMessage), 9, ["title"])) : createCommentVNode("", true)
504
+ ]),
505
+ _: 1
506
+ })) : createCommentVNode("", true),
507
+ unref(showCiGroup) ? (openBlock(), createBlock(_component_MetaStripGroup, {
508
+ key: 1,
509
+ label: "CI & environment",
510
+ icon: "i-lucide-cloud",
511
+ help: "run.ci-env"
512
+ }, {
513
+ default: withCtx(() => [
514
+ __props.environment ? (openBlock(), createBlock("span", {
515
+ key: 0,
516
+ class: "rounded-full border border-default px-2 py-0.5 text-xs bg-elevated/60"
517
+ }, toDisplayString(__props.environment), 1)) : createCommentVNode("", true),
518
+ __props.ciInfo?.provider ? (openBlock(), createBlock("span", { key: 1 }, toDisplayString(__props.ciInfo.provider), 1)) : createCommentVNode("", true),
519
+ __props.ciInfo?.buildNumber || __props.ciInfo?.buildUrl ? (openBlock(), createBlock(Fragment, { key: 2 }, [
520
+ createVNode("span", { class: "text-dimmed" }, "·"),
521
+ __props.ciInfo?.buildUrl ? (openBlock(), createBlock("a", {
522
+ key: 0,
523
+ href: __props.ciInfo.buildUrl,
524
+ target: "_blank",
525
+ class: "text-primary hover:underline"
526
+ }, toDisplayString(__props.ciInfo?.buildNumber ? `Build #${__props.ciInfo.buildNumber}` : "View build"), 9, ["href"])) : (openBlock(), createBlock("span", { key: 1 }, "Build #" + toDisplayString(__props.ciInfo.buildNumber), 1))
527
+ ], 64)) : createCommentVNode("", true),
528
+ __props.ciInfo?.workflow || __props.ciInfo?.jobName ? (openBlock(), createBlock(Fragment, { key: 3 }, [
529
+ createVNode("span", { class: "text-dimmed" }, "·"),
530
+ createVNode("span", { class: "text-muted" }, [
531
+ __props.ciInfo?.workflow ? (openBlock(), createBlock(Fragment, { key: 0 }, [
532
+ createTextVNode(toDisplayString(__props.ciInfo.workflow), 1)
533
+ ], 64)) : createCommentVNode("", true),
534
+ __props.ciInfo?.workflow && __props.ciInfo?.jobName ? (openBlock(), createBlock(Fragment, { key: 1 }, [
535
+ createTextVNode(" · ")
536
+ ], 64)) : createCommentVNode("", true),
537
+ __props.ciInfo?.jobName ? (openBlock(), createBlock(Fragment, { key: 2 }, [
538
+ createTextVNode(toDisplayString(__props.ciInfo.jobName), 1)
539
+ ], 64)) : createCommentVNode("", true)
540
+ ])
541
+ ], 64)) : createCommentVNode("", true)
542
+ ]),
543
+ _: 1
544
+ })) : createCommentVNode("", true),
545
+ __props.browser ? (openBlock(), createBlock(_component_MetaStripGroup, {
546
+ key: 2,
547
+ label: "Browser"
548
+ }, {
549
+ default: withCtx(() => [
550
+ createVNode(_component_BrowserBadge, {
551
+ browser: { ...__props.browser, viewport: void 0 },
552
+ size: "sm"
553
+ }, null, 8, ["browser"]),
554
+ __props.browser.viewport ? (openBlock(), createBlock("span", {
555
+ key: 0,
556
+ class: "tabular-nums text-muted"
557
+ }, [
558
+ createTextVNode(toDisplayString(__props.browser.viewport.width) + "×" + toDisplayString(__props.browser.viewport.height) + " ", 1),
559
+ __props.browser.deviceScaleFactor && __props.browser.deviceScaleFactor !== 1 ? (openBlock(), createBlock("span", {
560
+ key: 0,
561
+ class: "text-dimmed"
562
+ }, "@" + toDisplayString(__props.browser.deviceScaleFactor) + "x", 1)) : createCommentVNode("", true)
563
+ ])) : createCommentVNode("", true)
564
+ ]),
565
+ _: 1
566
+ })) : createCommentVNode("", true),
567
+ createVNode(_component_MetaStripGroup, {
568
+ label: "Links",
569
+ icon: "i-lucide-link"
570
+ }, {
571
+ default: withCtx(() => [
572
+ __props.testCase?.id ? (openBlock(), createBlock(_component_EntityLinks, {
573
+ key: 0,
574
+ "entity-type": "test_case",
575
+ "entity-id": __props.testCase.id,
576
+ links: __props.stableLinks ?? null,
577
+ onUpdated: ($event) => _ctx.$emit("refresh")
578
+ }, null, 8, ["entity-id", "links", "onUpdated"])) : createCommentVNode("", true)
579
+ ]),
580
+ _: 1
581
+ })
582
+ ];
583
+ }
584
+ }),
585
+ _: 1
586
+ }, _parent3, _scopeId2));
587
+ } else {
588
+ return [
589
+ createVNode(_component_SummaryMetaStrip, null, {
590
+ default: withCtx(() => [
591
+ __props.scmInfo ? (openBlock(), createBlock(_component_MetaStripGroup, {
592
+ key: 0,
593
+ label: "Source",
594
+ icon: "i-lucide-git-branch"
595
+ }, {
596
+ default: withCtx(() => [
597
+ __props.scmInfo.branch ? (openBlock(), createBlock("span", {
598
+ key: 0,
599
+ class: "font-medium"
600
+ }, toDisplayString(__props.scmInfo.branch), 1)) : createCommentVNode("", true),
601
+ __props.scmInfo.commit ? (openBlock(), createBlock("code", {
602
+ key: 1,
603
+ class: "text-xs font-mono bg-zinc-100 dark:bg-zinc-800 px-1 py-0.5 rounded",
604
+ title: __props.scmInfo.commit
605
+ }, toDisplayString(__props.scmInfo.commit.length >= 8 ? __props.scmInfo.commit.substring(0, 8) : __props.scmInfo.commit), 9, ["title"])) : createCommentVNode("", true),
606
+ __props.scmInfo.author ? (openBlock(), createBlock("span", {
607
+ key: 2,
608
+ class: "text-muted"
609
+ }, toDisplayString(__props.scmInfo.author), 1)) : createCommentVNode("", true),
610
+ __props.scmInfo.commitMessage ? (openBlock(), createBlock("span", {
611
+ key: 3,
612
+ class: "text-xs text-dimmed truncate max-w-[40ch]",
613
+ title: __props.scmInfo.commitMessage
614
+ }, toDisplayString(__props.scmInfo.commitMessage), 9, ["title"])) : createCommentVNode("", true)
615
+ ]),
616
+ _: 1
617
+ })) : createCommentVNode("", true),
618
+ unref(showCiGroup) ? (openBlock(), createBlock(_component_MetaStripGroup, {
619
+ key: 1,
620
+ label: "CI & environment",
621
+ icon: "i-lucide-cloud",
622
+ help: "run.ci-env"
623
+ }, {
624
+ default: withCtx(() => [
625
+ __props.environment ? (openBlock(), createBlock("span", {
626
+ key: 0,
627
+ class: "rounded-full border border-default px-2 py-0.5 text-xs bg-elevated/60"
628
+ }, toDisplayString(__props.environment), 1)) : createCommentVNode("", true),
629
+ __props.ciInfo?.provider ? (openBlock(), createBlock("span", { key: 1 }, toDisplayString(__props.ciInfo.provider), 1)) : createCommentVNode("", true),
630
+ __props.ciInfo?.buildNumber || __props.ciInfo?.buildUrl ? (openBlock(), createBlock(Fragment, { key: 2 }, [
631
+ createVNode("span", { class: "text-dimmed" }, "·"),
632
+ __props.ciInfo?.buildUrl ? (openBlock(), createBlock("a", {
633
+ key: 0,
634
+ href: __props.ciInfo.buildUrl,
635
+ target: "_blank",
636
+ class: "text-primary hover:underline"
637
+ }, toDisplayString(__props.ciInfo?.buildNumber ? `Build #${__props.ciInfo.buildNumber}` : "View build"), 9, ["href"])) : (openBlock(), createBlock("span", { key: 1 }, "Build #" + toDisplayString(__props.ciInfo.buildNumber), 1))
638
+ ], 64)) : createCommentVNode("", true),
639
+ __props.ciInfo?.workflow || __props.ciInfo?.jobName ? (openBlock(), createBlock(Fragment, { key: 3 }, [
640
+ createVNode("span", { class: "text-dimmed" }, "·"),
641
+ createVNode("span", { class: "text-muted" }, [
642
+ __props.ciInfo?.workflow ? (openBlock(), createBlock(Fragment, { key: 0 }, [
643
+ createTextVNode(toDisplayString(__props.ciInfo.workflow), 1)
644
+ ], 64)) : createCommentVNode("", true),
645
+ __props.ciInfo?.workflow && __props.ciInfo?.jobName ? (openBlock(), createBlock(Fragment, { key: 1 }, [
646
+ createTextVNode(" · ")
647
+ ], 64)) : createCommentVNode("", true),
648
+ __props.ciInfo?.jobName ? (openBlock(), createBlock(Fragment, { key: 2 }, [
649
+ createTextVNode(toDisplayString(__props.ciInfo.jobName), 1)
650
+ ], 64)) : createCommentVNode("", true)
651
+ ])
652
+ ], 64)) : createCommentVNode("", true)
653
+ ]),
654
+ _: 1
655
+ })) : createCommentVNode("", true),
656
+ __props.browser ? (openBlock(), createBlock(_component_MetaStripGroup, {
657
+ key: 2,
658
+ label: "Browser"
659
+ }, {
660
+ default: withCtx(() => [
661
+ createVNode(_component_BrowserBadge, {
662
+ browser: { ...__props.browser, viewport: void 0 },
663
+ size: "sm"
664
+ }, null, 8, ["browser"]),
665
+ __props.browser.viewport ? (openBlock(), createBlock("span", {
666
+ key: 0,
667
+ class: "tabular-nums text-muted"
668
+ }, [
669
+ createTextVNode(toDisplayString(__props.browser.viewport.width) + "×" + toDisplayString(__props.browser.viewport.height) + " ", 1),
670
+ __props.browser.deviceScaleFactor && __props.browser.deviceScaleFactor !== 1 ? (openBlock(), createBlock("span", {
671
+ key: 0,
672
+ class: "text-dimmed"
673
+ }, "@" + toDisplayString(__props.browser.deviceScaleFactor) + "x", 1)) : createCommentVNode("", true)
674
+ ])) : createCommentVNode("", true)
675
+ ]),
676
+ _: 1
677
+ })) : createCommentVNode("", true),
678
+ createVNode(_component_MetaStripGroup, {
679
+ label: "Links",
680
+ icon: "i-lucide-link"
681
+ }, {
682
+ default: withCtx(() => [
683
+ __props.testCase?.id ? (openBlock(), createBlock(_component_EntityLinks, {
684
+ key: 0,
685
+ "entity-type": "test_case",
686
+ "entity-id": __props.testCase.id,
687
+ links: __props.stableLinks ?? null,
688
+ onUpdated: ($event) => _ctx.$emit("refresh")
689
+ }, null, 8, ["entity-id", "links", "onUpdated"])) : createCommentVNode("", true)
690
+ ]),
691
+ _: 1
692
+ })
693
+ ]),
694
+ _: 1
695
+ })
696
+ ];
697
+ }
698
+ }),
251
699
  default: withCtx((_2, _push3, _parent3, _scopeId2) => {
252
700
  if (_push3) {
253
- _push3(`<div class="space-y-3"${_scopeId2}><div class="flex items-start gap-3"${_scopeId2}>`);
254
- _push3(ssrRenderComponent(_component_StatusBlock, {
701
+ _push3(`<div class="space-y-3"${_scopeId2}><div class="flex items-start gap-2.5 pr-8"${_scopeId2}>`);
702
+ _push3(ssrRenderComponent(_component_StatusChip, {
255
703
  status: __props.testCase?.status ?? "",
256
- size: "md"
704
+ class: "mt-0.5"
257
705
  }, 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><!--[-->`);
706
+ _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
707
  ssrRenderList(unref(signalBadges), (badge) => {
260
708
  _push3(ssrRenderComponent(_component_UBadge, {
261
709
  key: badge.label,
@@ -303,15 +751,19 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
303
751
  tags: __props.testCase?.tags,
304
752
  meta: __props.testCase?.testMeta
305
753
  }, null, _parent3, _scopeId2));
306
- _push3(`</div><p class="text-xs text-gray-500 mt-0.5"${_scopeId2}>`);
754
+ _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
755
  if (__props.testCase?.location) {
308
- _push3(`<span${_scopeId2}>${ssrInterpolate(__props.testCase.location)}</span>`);
756
+ _push3(ssrRenderComponent(_component_OpenInIdeLink, {
757
+ location: __props.testCase.location,
758
+ "project-key": __props.projectKey,
759
+ "project-name": __props.projectName
760
+ }, null, _parent3, _scopeId2));
309
761
  } else {
310
762
  _push3(`<!---->`);
311
763
  }
312
764
  _push3(ssrRenderComponent(_component_ClientOnly, null, {}, _parent3, _scopeId2));
313
765
  if (__props.historicalTiming) {
314
- _push3(`<span class="ml-2"${_scopeId2}> Avg `);
766
+ _push3(`<span${_scopeId2}> Avg `);
315
767
  _push3(ssrRenderComponent(_component_DurationValue, {
316
768
  ms: __props.historicalTiming.avg
317
769
  }, null, _parent3, _scopeId2));
@@ -319,11 +771,65 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
319
771
  } else {
320
772
  _push3(`<!---->`);
321
773
  }
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>`);
774
+ _push3(`</p></div></div>`);
775
+ _push3(ssrRenderComponent(_component_StatTileGrid, null, {
776
+ default: withCtx((_3, _push4, _parent4, _scopeId3) => {
777
+ if (_push4) {
778
+ _push4(ssrRenderComponent(_component_StatTile, { label: "Duration" }, {
779
+ default: withCtx((_4, _push5, _parent5, _scopeId4) => {
780
+ if (_push5) {
781
+ _push5(ssrRenderComponent(_component_DurationValue, {
782
+ ms: __props.testCase?.duration
783
+ }, null, _parent5, _scopeId4));
784
+ } else {
785
+ return [
786
+ createVNode(_component_DurationValue, {
787
+ ms: __props.testCase?.duration
788
+ }, null, 8, ["ms"])
789
+ ];
790
+ }
791
+ }),
792
+ _: 1
793
+ }, _parent4, _scopeId3));
794
+ _push4(ssrRenderComponent(_component_StatTile, {
795
+ label: "Retries",
796
+ value: __props.testCase?.retries ?? 0
797
+ }, null, _parent4, _scopeId3));
798
+ _push4(ssrRenderComponent(_component_StatTile, {
799
+ label: "Steps",
800
+ value: __props.stepsCount
801
+ }, null, _parent4, _scopeId3));
802
+ _push4(ssrRenderComponent(_component_StatTile, {
803
+ label: "Worker",
804
+ value: __props.testCase?.workerIndex ?? "—"
805
+ }, null, _parent4, _scopeId3));
806
+ } else {
807
+ return [
808
+ createVNode(_component_StatTile, { label: "Duration" }, {
809
+ default: withCtx(() => [
810
+ createVNode(_component_DurationValue, {
811
+ ms: __props.testCase?.duration
812
+ }, null, 8, ["ms"])
813
+ ]),
814
+ _: 1
815
+ }),
816
+ createVNode(_component_StatTile, {
817
+ label: "Retries",
818
+ value: __props.testCase?.retries ?? 0
819
+ }, null, 8, ["value"]),
820
+ createVNode(_component_StatTile, {
821
+ label: "Steps",
822
+ value: __props.stepsCount
823
+ }, null, 8, ["value"]),
824
+ createVNode(_component_StatTile, {
825
+ label: "Worker",
826
+ value: __props.testCase?.workerIndex ?? "—"
827
+ }, null, 8, ["value"])
828
+ ];
829
+ }
830
+ }),
831
+ _: 1
832
+ }, _parent3, _scopeId2));
327
833
  if (__props.testCase?.slowestStep) {
328
834
  _push3(`<div class="flex items-center gap-2 text-sm"${_scopeId2}>`);
329
835
  _push3(ssrRenderComponent(_component_UIcon, {
@@ -364,14 +870,14 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
364
870
  } else {
365
871
  return [
366
872
  createVNode("div", { class: "space-y-3" }, [
367
- createVNode("div", { class: "flex items-start gap-3" }, [
368
- createVNode(_component_StatusBlock, {
873
+ createVNode("div", { class: "flex items-start gap-2.5 pr-8" }, [
874
+ createVNode(_component_StatusChip, {
369
875
  status: __props.testCase?.status ?? "",
370
- size: "md"
876
+ class: "mt-0.5"
371
877
  }, null, 8, ["status"]),
372
878
  createVNode("div", { class: "min-w-0 flex-1" }, [
373
879
  createVNode("div", { class: "flex items-center gap-2 flex-wrap" }, [
374
- createVNode("h2", { class: "text-base font-bold truncate" }, toDisplayString(__props.testCase?.title), 1),
880
+ createVNode("h2", { class: "text-base font-bold truncate max-w-full" }, toDisplayString(__props.testCase?.title), 1),
375
881
  (openBlock(true), createBlock(Fragment, null, renderList(unref(signalBadges), (badge) => {
376
882
  return openBlock(), createBlock(_component_UBadge, {
377
883
  key: badge.label,
@@ -406,22 +912,24 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
406
912
  meta: __props.testCase?.testMeta
407
913
  }, null, 8, ["tags", "meta"])
408
914
  ]),
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),
915
+ createVNode("p", { class: "text-xs text-gray-500 mt-0.5 flex items-center gap-x-2 gap-y-0.5 flex-wrap" }, [
916
+ __props.testCase?.location ? (openBlock(), createBlock(_component_OpenInIdeLink, {
917
+ key: 0,
918
+ location: __props.testCase.location,
919
+ "project-key": __props.projectKey,
920
+ "project-name": __props.projectName
921
+ }, null, 8, ["location", "project-key", "project-name"])) : createCommentVNode("", true),
411
922
  createVNode(_component_ClientOnly, null, {
412
923
  default: withCtx(() => [
413
924
  unref(startedAtMs) ? (openBlock(), createBlock("span", {
414
925
  key: 0,
415
- class: "ml-2 text-gray-400",
926
+ class: "text-gray-400",
416
927
  title: new Date(unref(startedAtMs)).toLocaleString()
417
928
  }, " started " + toDisplayString(("formatRelativeTime" in _ctx ? _ctx.formatRelativeTime : unref(formatRelativeTime))(unref(startedAtMs))), 9, ["title"])) : createCommentVNode("", true)
418
929
  ]),
419
930
  _: 2
420
931
  }, 1024),
421
- __props.historicalTiming ? (openBlock(), createBlock("span", {
422
- key: 1,
423
- class: "ml-2"
424
- }, [
932
+ __props.historicalTiming ? (openBlock(), createBlock("span", { key: 1 }, [
425
933
  createTextVNode(" Avg "),
426
934
  createVNode(_component_DurationValue, {
427
935
  ms: __props.historicalTiming.avg
@@ -434,28 +942,31 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
434
942
  ])
435
943
  ])
436
944
  ]),
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)
945
+ createVNode(_component_StatTileGrid, null, {
946
+ default: withCtx(() => [
947
+ createVNode(_component_StatTile, { label: "Duration" }, {
948
+ default: withCtx(() => [
949
+ createVNode(_component_DurationValue, {
950
+ ms: __props.testCase?.duration
951
+ }, null, 8, ["ms"])
952
+ ]),
953
+ _: 1
954
+ }),
955
+ createVNode(_component_StatTile, {
956
+ label: "Retries",
957
+ value: __props.testCase?.retries ?? 0
958
+ }, null, 8, ["value"]),
959
+ createVNode(_component_StatTile, {
960
+ label: "Steps",
961
+ value: __props.stepsCount
962
+ }, null, 8, ["value"]),
963
+ createVNode(_component_StatTile, {
964
+ label: "Worker",
965
+ value: __props.testCase?.workerIndex ?? "—"
966
+ }, null, 8, ["value"])
453
967
  ]),
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
- ]),
968
+ _: 1
969
+ }),
459
970
  __props.testCase?.slowestStep ? (openBlock(), createBlock("div", {
460
971
  key: 0,
461
972
  class: "flex items-center gap-2 text-sm"
@@ -499,221 +1010,261 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
499
1010
  _: 1
500
1011
  }, _parent2, _scopeId));
501
1012
  _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
1013
  } else {
551
1014
  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, {
1015
+ createVNode("div", { class: "@container" }, [
1016
+ createVNode(_component_UCard, {
1017
+ class: "shadow-xs",
1018
+ ui: { footer: "px-4 py-2.5 sm:px-4 bg-muted/30" }
1019
+ }, {
1020
+ footer: withCtx(() => [
1021
+ createVNode(_component_SummaryMetaStrip, null, {
1022
+ default: withCtx(() => [
1023
+ __props.scmInfo ? (openBlock(), createBlock(_component_MetaStripGroup, {
1024
+ key: 0,
1025
+ label: "Source",
1026
+ icon: "i-lucide-git-branch"
1027
+ }, {
1028
+ default: withCtx(() => [
1029
+ __props.scmInfo.branch ? (openBlock(), createBlock("span", {
1030
+ key: 0,
1031
+ class: "font-medium"
1032
+ }, toDisplayString(__props.scmInfo.branch), 1)) : createCommentVNode("", true),
1033
+ __props.scmInfo.commit ? (openBlock(), createBlock("code", {
1034
+ key: 1,
1035
+ class: "text-xs font-mono bg-zinc-100 dark:bg-zinc-800 px-1 py-0.5 rounded",
1036
+ title: __props.scmInfo.commit
1037
+ }, toDisplayString(__props.scmInfo.commit.length >= 8 ? __props.scmInfo.commit.substring(0, 8) : __props.scmInfo.commit), 9, ["title"])) : createCommentVNode("", true),
1038
+ __props.scmInfo.author ? (openBlock(), createBlock("span", {
1039
+ key: 2,
1040
+ class: "text-muted"
1041
+ }, toDisplayString(__props.scmInfo.author), 1)) : createCommentVNode("", true),
1042
+ __props.scmInfo.commitMessage ? (openBlock(), createBlock("span", {
1043
+ key: 3,
1044
+ class: "text-xs text-dimmed truncate max-w-[40ch]",
1045
+ title: __props.scmInfo.commitMessage
1046
+ }, toDisplayString(__props.scmInfo.commitMessage), 9, ["title"])) : createCommentVNode("", true)
1047
+ ]),
1048
+ _: 1
1049
+ })) : createCommentVNode("", true),
1050
+ unref(showCiGroup) ? (openBlock(), createBlock(_component_MetaStripGroup, {
1051
+ key: 1,
1052
+ label: "CI & environment",
1053
+ icon: "i-lucide-cloud",
1054
+ help: "run.ci-env"
1055
+ }, {
1056
+ default: withCtx(() => [
1057
+ __props.environment ? (openBlock(), createBlock("span", {
1058
+ key: 0,
1059
+ class: "rounded-full border border-default px-2 py-0.5 text-xs bg-elevated/60"
1060
+ }, toDisplayString(__props.environment), 1)) : createCommentVNode("", true),
1061
+ __props.ciInfo?.provider ? (openBlock(), createBlock("span", { key: 1 }, toDisplayString(__props.ciInfo.provider), 1)) : createCommentVNode("", true),
1062
+ __props.ciInfo?.buildNumber || __props.ciInfo?.buildUrl ? (openBlock(), createBlock(Fragment, { key: 2 }, [
1063
+ createVNode("span", { class: "text-dimmed" }, "·"),
1064
+ __props.ciInfo?.buildUrl ? (openBlock(), createBlock("a", {
1065
+ key: 0,
1066
+ href: __props.ciInfo.buildUrl,
1067
+ target: "_blank",
1068
+ class: "text-primary hover:underline"
1069
+ }, toDisplayString(__props.ciInfo?.buildNumber ? `Build #${__props.ciInfo.buildNumber}` : "View build"), 9, ["href"])) : (openBlock(), createBlock("span", { key: 1 }, "Build #" + toDisplayString(__props.ciInfo.buildNumber), 1))
1070
+ ], 64)) : createCommentVNode("", true),
1071
+ __props.ciInfo?.workflow || __props.ciInfo?.jobName ? (openBlock(), createBlock(Fragment, { key: 3 }, [
1072
+ createVNode("span", { class: "text-dimmed" }, "·"),
1073
+ createVNode("span", { class: "text-muted" }, [
1074
+ __props.ciInfo?.workflow ? (openBlock(), createBlock(Fragment, { key: 0 }, [
1075
+ createTextVNode(toDisplayString(__props.ciInfo.workflow), 1)
1076
+ ], 64)) : createCommentVNode("", true),
1077
+ __props.ciInfo?.workflow && __props.ciInfo?.jobName ? (openBlock(), createBlock(Fragment, { key: 1 }, [
1078
+ createTextVNode(" · ")
1079
+ ], 64)) : createCommentVNode("", true),
1080
+ __props.ciInfo?.jobName ? (openBlock(), createBlock(Fragment, { key: 2 }, [
1081
+ createTextVNode(toDisplayString(__props.ciInfo.jobName), 1)
1082
+ ], 64)) : createCommentVNode("", true)
1083
+ ])
1084
+ ], 64)) : createCommentVNode("", true)
1085
+ ]),
1086
+ _: 1
1087
+ })) : createCommentVNode("", true),
1088
+ __props.browser ? (openBlock(), createBlock(_component_MetaStripGroup, {
1089
+ key: 2,
1090
+ label: "Browser"
1091
+ }, {
1092
+ default: withCtx(() => [
1093
+ createVNode(_component_BrowserBadge, {
1094
+ browser: { ...__props.browser, viewport: void 0 },
1095
+ size: "sm"
1096
+ }, null, 8, ["browser"]),
1097
+ __props.browser.viewport ? (openBlock(), createBlock("span", {
1098
+ key: 0,
1099
+ class: "tabular-nums text-muted"
1100
+ }, [
1101
+ createTextVNode(toDisplayString(__props.browser.viewport.width) + "×" + toDisplayString(__props.browser.viewport.height) + " ", 1),
1102
+ __props.browser.deviceScaleFactor && __props.browser.deviceScaleFactor !== 1 ? (openBlock(), createBlock("span", {
1103
+ key: 0,
1104
+ class: "text-dimmed"
1105
+ }, "@" + toDisplayString(__props.browser.deviceScaleFactor) + "x", 1)) : createCommentVNode("", true)
1106
+ ])) : createCommentVNode("", true)
1107
+ ]),
1108
+ _: 1
1109
+ })) : createCommentVNode("", true),
1110
+ createVNode(_component_MetaStripGroup, {
1111
+ label: "Links",
1112
+ icon: "i-lucide-link"
1113
+ }, {
1114
+ default: withCtx(() => [
1115
+ __props.testCase?.id ? (openBlock(), createBlock(_component_EntityLinks, {
1116
+ key: 0,
1117
+ "entity-type": "test_case",
1118
+ "entity-id": __props.testCase.id,
1119
+ links: __props.stableLinks ?? null,
1120
+ onUpdated: ($event) => _ctx.$emit("refresh")
1121
+ }, null, 8, ["entity-id", "links", "onUpdated"])) : createCommentVNode("", true)
1122
+ ]),
1123
+ _: 1
1124
+ })
1125
+ ]),
1126
+ _: 1
1127
+ })
1128
+ ]),
1129
+ default: withCtx(() => [
1130
+ createVNode("div", { class: "space-y-3" }, [
1131
+ createVNode("div", { class: "flex items-start gap-2.5 pr-8" }, [
1132
+ createVNode(_component_StatusChip, {
1133
+ status: __props.testCase?.status ?? "",
1134
+ class: "mt-0.5"
1135
+ }, null, 8, ["status"]),
1136
+ createVNode("div", { class: "min-w-0 flex-1" }, [
1137
+ createVNode("div", { class: "flex items-center gap-2 flex-wrap" }, [
1138
+ createVNode("h2", { class: "text-base font-bold truncate max-w-full" }, toDisplayString(__props.testCase?.title), 1),
1139
+ (openBlock(true), createBlock(Fragment, null, renderList(unref(signalBadges), (badge) => {
1140
+ return openBlock(), createBlock(_component_UBadge, {
1141
+ key: badge.label,
1142
+ color: badge.color,
1143
+ variant: "subtle",
1144
+ size: "xs",
1145
+ title: badge.title
1146
+ }, {
602
1147
  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)
1148
+ createTextVNode(toDisplayString(badge.label), 1)
608
1149
  ]),
609
1150
  _: 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
- ])
1151
+ }, 1032, ["color", "title"]);
1152
+ }), 128)),
1153
+ (openBlock(true), createBlock(Fragment, null, renderList(unref(annotations), (ann, i) => {
1154
+ return openBlock(), createBlock(_component_UBadge, {
1155
+ key: `ann-${i}`,
1156
+ color: "neutral",
1157
+ variant: "soft",
1158
+ size: "xs",
1159
+ class: "font-mono",
1160
+ title: ann.description || ann.type
1161
+ }, {
1162
+ default: withCtx(() => [
1163
+ createTextVNode(" @" + toDisplayString(ann.type), 1)
1164
+ ]),
1165
+ _: 2
1166
+ }, 1032, ["title"]);
1167
+ }), 128)),
1168
+ createVNode(_component_TestMetaBadges, {
1169
+ tags: __props.testCase?.tags,
1170
+ meta: __props.testCase?.testMeta
1171
+ }, null, 8, ["tags", "meta"])
1172
+ ]),
1173
+ createVNode("p", { class: "text-xs text-gray-500 mt-0.5 flex items-center gap-x-2 gap-y-0.5 flex-wrap" }, [
1174
+ __props.testCase?.location ? (openBlock(), createBlock(_component_OpenInIdeLink, {
1175
+ key: 0,
1176
+ location: __props.testCase.location,
1177
+ "project-key": __props.projectKey,
1178
+ "project-name": __props.projectName
1179
+ }, null, 8, ["location", "project-key", "project-name"])) : createCommentVNode("", true),
1180
+ createVNode(_component_ClientOnly, null, {
1181
+ default: withCtx(() => [
1182
+ unref(startedAtMs) ? (openBlock(), createBlock("span", {
1183
+ key: 0,
1184
+ class: "text-gray-400",
1185
+ title: new Date(unref(startedAtMs)).toLocaleString()
1186
+ }, " started " + toDisplayString(("formatRelativeTime" in _ctx ? _ctx.formatRelativeTime : unref(formatRelativeTime))(unref(startedAtMs))), 9, ["title"])) : createCommentVNode("", true)
1187
+ ]),
1188
+ _: 2
1189
+ }, 1024),
1190
+ __props.historicalTiming ? (openBlock(), createBlock("span", { key: 1 }, [
1191
+ createTextVNode(" Avg "),
1192
+ createVNode(_component_DurationValue, {
1193
+ ms: __props.historicalTiming.avg
1194
+ }, null, 8, ["ms"]),
1195
+ createTextVNode(" · "),
1196
+ createVNode("span", {
1197
+ class: __props.historicalTiming.diff > 0 ? "text-red-600" : "text-green-600"
1198
+ }, toDisplayString(__props.historicalTiming.diff > 0 ? "+" : "") + toDisplayString(__props.historicalTiming.pct) + "% ", 3)
1199
+ ])) : createCommentVNode("", true)
625
1200
  ])
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" }, [
1201
+ ])
1202
+ ]),
1203
+ createVNode(_component_StatTileGrid, null, {
1204
+ default: withCtx(() => [
1205
+ createVNode(_component_StatTile, { label: "Duration" }, {
1206
+ default: withCtx(() => [
631
1207
  createVNode(_component_DurationValue, {
632
1208
  ms: __props.testCase?.duration
633
1209
  }, 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
- ])
1210
+ ]),
1211
+ _: 1
1212
+ }),
1213
+ createVNode(_component_StatTile, {
1214
+ label: "Retries",
1215
+ value: __props.testCase?.retries ?? 0
1216
+ }, null, 8, ["value"]),
1217
+ createVNode(_component_StatTile, {
1218
+ label: "Steps",
1219
+ value: __props.stepsCount
1220
+ }, null, 8, ["value"]),
1221
+ createVNode(_component_StatTile, {
1222
+ label: "Worker",
1223
+ value: __props.testCase?.workerIndex ?? "—"
1224
+ }, null, 8, ["value"])
648
1225
  ]),
649
- __props.testCase?.slowestStep ? (openBlock(), createBlock("div", {
1226
+ _: 1
1227
+ }),
1228
+ __props.testCase?.slowestStep ? (openBlock(), createBlock("div", {
1229
+ key: 0,
1230
+ class: "flex items-center gap-2 text-sm"
1231
+ }, [
1232
+ createVNode(_component_UIcon, {
1233
+ name: "i-lucide-zap",
1234
+ class: "size-4 text-amber-500 shrink-0"
1235
+ }),
1236
+ createVNode("span", { class: "font-medium text-amber-700 dark:text-amber-300" }, "Slowest step:"),
1237
+ createVNode("span", { class: "text-gray-700 dark:text-gray-300 truncate" }, toDisplayString(__props.testCase.slowestStep), 1),
1238
+ __props.testCase.slowestStepDuration ? (openBlock(), createBlock("span", {
650
1239
  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"
1240
+ class: "text-gray-500 shrink-0"
673
1241
  }, [
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:"),
1242
+ createTextVNode("("),
679
1243
  createVNode(_component_DurationValue, {
680
- ms: __props.testCase?.wastedTimeMs,
681
- class: "text-gray-700 dark:text-gray-300"
1244
+ ms: __props.testCase.slowestStepDuration
682
1245
  }, null, 8, ["ms"]),
683
- createVNode(_component_HelpHint, { topic: "case.wasted-time" })
1246
+ createTextVNode(")")
684
1247
  ])) : 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)
1248
+ ])) : createCommentVNode("", true),
1249
+ (__props.testCase?.wastedTimeMs ?? 0) > 0 ? (openBlock(), createBlock("div", {
1250
+ key: 1,
1251
+ class: "flex items-center gap-1.5 text-sm"
1252
+ }, [
1253
+ createVNode(_component_UIcon, {
1254
+ name: "i-lucide-hourglass",
1255
+ class: "size-4 text-amber-500 shrink-0"
1256
+ }),
1257
+ createVNode("span", { class: "font-medium text-amber-700 dark:text-amber-300" }, "Wasted in fixed waits:"),
1258
+ createVNode(_component_DurationValue, {
1259
+ ms: __props.testCase?.wastedTimeMs,
1260
+ class: "text-gray-700 dark:text-gray-300"
1261
+ }, null, 8, ["ms"]),
1262
+ createVNode(_component_HelpHint, { topic: "case.wasted-time" })
1263
+ ])) : createCommentVNode("", true)
1264
+ ])
714
1265
  ]),
715
- _: 1
716
- }, 8, ["class"])
1266
+ _: 2
1267
+ }, 1024)
717
1268
  ])
718
1269
  ];
719
1270
  }
@@ -1401,12 +1952,12 @@ ${text}` : text;
1401
1952
  );
1402
1953
  return (_ctx, _push, _parent, _attrs) => {
1403
1954
  const _component_SectionCard = __nuxt_component_11;
1404
- const _component_CopyAiPromptButton = __nuxt_component_1$4;
1955
+ const _component_CopyAiPromptButton = __nuxt_component_1$3;
1405
1956
  const _component_UIcon = _sfc_main$p;
1406
1957
  const _component_DiagnosisCoverageStrip = __nuxt_component_3$3;
1407
1958
  const _component_UTextarea = _sfc_main$h;
1408
1959
  const _component_UButton = _sfc_main$k;
1409
- const _component_DiagnosisResult = __nuxt_component_6;
1960
+ const _component_DiagnosisResult = __nuxt_component_6$1;
1410
1961
  const _component_HelpHint = __nuxt_component_2$1;
1411
1962
  const _component_DiagnosisContextModal = __nuxt_component_8$1;
1412
1963
  const _component_NuxtLink = __nuxt_component_12;
@@ -1877,9 +2428,9 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
1877
2428
  const _component_UTabs = _sfc_main$g;
1878
2429
  const _component_UIcon = _sfc_main$p;
1879
2430
  const _component_TraceCallStack = __nuxt_component_3$4;
1880
- const _component_TestSourceStack = __nuxt_component_4$3;
2431
+ const _component_TestSourceStack = __nuxt_component_4$4;
1881
2432
  const _component_MarkdownPreview = __nuxt_component_26;
1882
- const _component_LoadingState = __nuxt_component_1$3;
2433
+ const _component_LoadingState = __nuxt_component_13;
1883
2434
  const _component_DocLink = __nuxt_component_9;
1884
2435
  _push(ssrRenderComponent(_component_CollapsibleSectionCard, mergeProps({
1885
2436
  ref_key: "card",
@@ -2125,7 +2676,7 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
2125
2676
  const _component_TestEvidenceSection = __nuxt_component_4$1$1;
2126
2677
  const _component_UIcon = _sfc_main$p;
2127
2678
  const _component_UButton = _sfc_main$k;
2128
- const _component_EmptyState = __nuxt_component_4$1;
2679
+ const _component_FeatureUnavailable = __nuxt_component_4$2;
2129
2680
  _push(ssrRenderComponent(_component_CollapsibleSectionCard, mergeProps({
2130
2681
  ref_key: "card",
2131
2682
  ref: card,
@@ -2225,9 +2776,11 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
2225
2776
  _push2(`<!---->`);
2226
2777
  }
2227
2778
  if (unref(totalCount) === 0) {
2228
- _push2(ssrRenderComponent(_component_EmptyState, {
2779
+ _push2(ssrRenderComponent(_component_FeatureUnavailable, {
2229
2780
  icon: "i-lucide-camera-off",
2230
- text: "No screenshots, video or traces captured"
2781
+ title: "No screenshots, video or traces captured",
2782
+ 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).",
2783
+ doc: "reporter"
2231
2784
  }, null, _parent2, _scopeId));
2232
2785
  } else {
2233
2786
  _push2(`<!---->`);
@@ -2279,10 +2832,12 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
2279
2832
  ]),
2280
2833
  _: 1
2281
2834
  }, 8, ["count"])) : createCommentVNode("", true),
2282
- unref(totalCount) === 0 ? (openBlock(), createBlock(_component_EmptyState, {
2835
+ unref(totalCount) === 0 ? (openBlock(), createBlock(_component_FeatureUnavailable, {
2283
2836
  key: 1,
2284
2837
  icon: "i-lucide-camera-off",
2285
- text: "No screenshots, video or traces captured"
2838
+ title: "No screenshots, video or traces captured",
2839
+ 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).",
2840
+ doc: "reporter"
2286
2841
  })) : createCommentVNode("", true)
2287
2842
  ])
2288
2843
  ];
@@ -2505,7 +3060,7 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
2505
3060
  const _component_UBadge = _sfc_main$7$1;
2506
3061
  const _component_DurationValue = __nuxt_component_14$1;
2507
3062
  const _component_CodeBlock = __nuxt_component_5;
2508
- const _component_LoadingState = __nuxt_component_1$3;
3063
+ const _component_LoadingState = __nuxt_component_13;
2509
3064
  _push(ssrRenderComponent(_component_USlideover, mergeProps({
2510
3065
  open: __props.open,
2511
3066
  title: "Request detail",
@@ -3224,7 +3779,7 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
3224
3779
  const _component_SectionCard = __nuxt_component_11;
3225
3780
  const _component_UIcon = _sfc_main$p;
3226
3781
  const _component_UTabs = _sfc_main$g;
3227
- const _component_LoadingState = __nuxt_component_1$3;
3782
+ const _component_LoadingState = __nuxt_component_13;
3228
3783
  const _component_TraceNetworkList = __nuxt_component_4;
3229
3784
  const _component_UBadge = _sfc_main$7$1;
3230
3785
  const _component_DurationValue = __nuxt_component_14$1;
@@ -4260,7 +4815,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
4260
4815
  const testCaseId = route.params.id;
4261
4816
  const { data: testCase, refresh } = ([__temp, __restore] = withAsyncContext(() => useFetch(
4262
4817
  `/api/test-run-cases/${testCaseId}`,
4263
- "$cViH4nbiGI"
4818
+ "$rX1OuZQOSq"
4264
4819
  /* nuxt-injected */
4265
4820
  )), __temp = await __temp, __restore(), __temp);
4266
4821
  const historyData = ref([]);
@@ -4281,13 +4836,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
4281
4836
  );
4282
4837
  const { data: traceData, refresh: refreshTraces } = ([__temp, __restore] = withAsyncContext(() => useFetch(
4283
4838
  `/api/test-run-cases/${testCaseId}/traces`,
4284
- "$GsSNbTq_Ec"
4839
+ "$bq3dlhiM5e"
4285
4840
  /* nuxt-injected */
4286
4841
  )), __temp = await __temp, __restore(), __temp);
4287
4842
  const hasTrace = computed(() => (traceData.value?.length ?? 0) > 0);
4288
4843
  useHead(
4289
4844
  computed(() => ({
4290
- title: `${testCase.value?.title || `Test run case #${testCaseId}`} — Piwi Dashboard`
4845
+ title: testCase.value?.title ? `${testCase.value.title} execution — Piwi Dashboard` : `Execution #${testCaseId} — Piwi Dashboard`
4291
4846
  }))
4292
4847
  );
4293
4848
  const hasError = computed(() => Boolean(testCase.value?.error));
@@ -4570,9 +5125,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
4570
5125
  const _component_BreadcrumbNav = __nuxt_component_3$2;
4571
5126
  const _component_NuxtLink = __nuxt_component_12;
4572
5127
  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;
5128
+ const _component_ExportMenu = __nuxt_component_6;
5129
+ const _component_DesktopRunLocallyButton = __nuxt_component_14$2;
5130
+ const _component_NavbarActions = __nuxt_component_4$3;
4576
5131
  const _component_DetailPageLayout = __nuxt_component_8;
4577
5132
  const _component_TestCaseSummary = __nuxt_component_10;
4578
5133
  const _component_SectionCard = __nuxt_component_11;
@@ -4602,7 +5157,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
4602
5157
  const _component_TestCaseAttachmentsCard = __nuxt_component_35;
4603
5158
  const _component_StatTileGrid = __nuxt_component_1;
4604
5159
  const _component_StatTile = __nuxt_component_2;
4605
- const _component_DocLink = __nuxt_component_9;
5160
+ const _component_FeatureUnavailable = __nuxt_component_4$2;
4606
5161
  const _component_TestCaseHistoryChart = __nuxt_component_39;
4607
5162
  _push(ssrRenderComponent(_component_UDashboardPanel, mergeProps({ id: "test-run-case-detail" }, _attrs), {
4608
5163
  header: withCtx((_, _push2, _parent2, _scopeId) => {
@@ -4627,7 +5182,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
4627
5182
  to: `/test-runs/${unref(testCase).testRun.id}`
4628
5183
  }
4629
5184
  ] : [{ label: "Test run" }],
4630
- { label: unref(testCase)?.title || `Test run case #${unref(testCaseId)}` }
5185
+ { label: unref(testCase)?.title || `Execution #${unref(testCaseId)}` }
4631
5186
  ]
4632
5187
  }, null, _parent3, _scopeId2));
4633
5188
  } else {
@@ -4649,7 +5204,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
4649
5204
  to: `/test-runs/${unref(testCase).testRun.id}`
4650
5205
  }
4651
5206
  ] : [{ label: "Test run" }],
4652
- { label: unref(testCase)?.title || `Test run case #${unref(testCaseId)}` }
5207
+ { label: unref(testCase)?.title || `Execution #${unref(testCaseId)}` }
4653
5208
  ]
4654
5209
  }, null, 8, ["items"])
4655
5210
  ];
@@ -4757,7 +5312,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
4757
5312
  to: `/test-runs/${unref(testCase).testRun.id}`
4758
5313
  }
4759
5314
  ] : [{ label: "Test run" }],
4760
- { label: unref(testCase)?.title || `Test run case #${unref(testCaseId)}` }
5315
+ { label: unref(testCase)?.title || `Execution #${unref(testCaseId)}` }
4761
5316
  ]
4762
5317
  }, null, 8, ["items"])
4763
5318
  ]),
@@ -4814,6 +5369,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
4814
5369
  "steps-count": unref(steps).length,
4815
5370
  "historical-timing": unref(historicalTiming),
4816
5371
  "stable-links": unref(testCase)?.stableLinks ?? null,
5372
+ "project-key": unref(testCase)?.testRun?.project?.id,
5373
+ "project-name": unref(testCase)?.testRun?.project?.name,
4817
5374
  onRefresh: ($event) => unref(refresh)()
4818
5375
  }, null, _parent3, _scopeId2));
4819
5376
  } else {
@@ -4827,8 +5384,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
4827
5384
  "steps-count": unref(steps).length,
4828
5385
  "historical-timing": unref(historicalTiming),
4829
5386
  "stable-links": unref(testCase)?.stableLinks ?? null,
5387
+ "project-key": unref(testCase)?.testRun?.project?.id,
5388
+ "project-name": unref(testCase)?.testRun?.project?.name,
4830
5389
  onRefresh: ($event) => unref(refresh)()
4831
- }, null, 8, ["test-case", "scm-info", "ci-info", "browser", "environment", "steps-count", "historical-timing", "stable-links", "onRefresh"])
5390
+ }, null, 8, ["test-case", "scm-info", "ci-info", "browser", "environment", "steps-count", "historical-timing", "stable-links", "project-key", "project-name", "onRefresh"])
4832
5391
  ];
4833
5392
  }
4834
5393
  }),
@@ -6296,43 +6855,12 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
6296
6855
  _push3(`<!---->`);
6297
6856
  }
6298
6857
  if (unref(performanceHints).length === 0 && !unref(webVitals)) {
6299
- _push3(ssrRenderComponent(_component_EmptyState, {
6858
+ _push3(ssrRenderComponent(_component_FeatureUnavailable, {
6300
6859
  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));
6860
+ title: "No performance hints or Web Vitals for this execution",
6861
+ text: "Web Vitals and step timing come from the Piwi capture fixtures — extend your Playwright test with piwiFixtures to collect them.",
6862
+ doc: "capture-fixtures"
6863
+ }, null, _parent3, _scopeId2));
6336
6864
  } else {
6337
6865
  _push3(`<!---->`);
6338
6866
  }
@@ -6517,24 +7045,12 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
6517
7045
  ]),
6518
7046
  _: 1
6519
7047
  })) : createCommentVNode("", true),
6520
- unref(performanceHints).length === 0 && !unref(webVitals) ? (openBlock(), createBlock(_component_EmptyState, {
7048
+ unref(performanceHints).length === 0 && !unref(webVitals) ? (openBlock(), createBlock(_component_FeatureUnavailable, {
6521
7049
  key: 2,
6522
7050
  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
7051
+ title: "No performance hints or Web Vitals for this execution",
7052
+ text: "Web Vitals and step timing come from the Piwi capture fixtures — extend your Playwright test with piwiFixtures to collect them.",
7053
+ doc: "capture-fixtures"
6538
7054
  })) : createCommentVNode("", true)
6539
7055
  ])
6540
7056
  ];
@@ -6938,8 +7454,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
6938
7454
  "steps-count": unref(steps).length,
6939
7455
  "historical-timing": unref(historicalTiming),
6940
7456
  "stable-links": unref(testCase)?.stableLinks ?? null,
7457
+ "project-key": unref(testCase)?.testRun?.project?.id,
7458
+ "project-name": unref(testCase)?.testRun?.project?.name,
6941
7459
  onRefresh: ($event) => unref(refresh)()
6942
- }, null, 8, ["test-case", "scm-info", "ci-info", "browser", "environment", "steps-count", "historical-timing", "stable-links", "onRefresh"])
7460
+ }, null, 8, ["test-case", "scm-info", "ci-info", "browser", "environment", "steps-count", "historical-timing", "stable-links", "project-key", "project-name", "onRefresh"])
6943
7461
  ]),
6944
7462
  "tab-diagnosis": withCtx(() => [
6945
7463
  createVNode("div", { class: "space-y-4" }, [
@@ -7459,24 +7977,12 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
7459
7977
  ]),
7460
7978
  _: 1
7461
7979
  })) : createCommentVNode("", true),
7462
- unref(performanceHints).length === 0 && !unref(webVitals) ? (openBlock(), createBlock(_component_EmptyState, {
7980
+ unref(performanceHints).length === 0 && !unref(webVitals) ? (openBlock(), createBlock(_component_FeatureUnavailable, {
7463
7981
  key: 2,
7464
7982
  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
7983
+ title: "No performance hints or Web Vitals for this execution",
7984
+ text: "Web Vitals and step timing come from the Piwi capture fixtures — extend your Playwright test with piwiFixtures to collect them.",
7985
+ doc: "capture-fixtures"
7480
7986
  })) : createCommentVNode("", true)
7481
7987
  ])
7482
7988
  ]),
@@ -7607,4 +8113,4 @@ _sfc_main.setup = (props, ctx) => {
7607
8113
  };
7608
8114
 
7609
8115
  export { _sfc_main as default };
7610
- //# sourceMappingURL=_id_-BxA6IgWr.mjs.map
8116
+ //# sourceMappingURL=_id_-BesWjK_d.mjs.map