@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
@@ -0,0 +1,1065 @@
1
+ import { _ as _sfc_main$1$1, a as _sfc_main$4 } from './DashboardNavbar-DYtmVlhy.mjs';
2
+ import { _ as _sfc_main$1$2, a as _sfc_main$5 } from './Breadcrumb-DJp5WvUM.mjs';
3
+ import { _ as __nuxt_component_11 } from './SectionCard-C753B3Yo.mjs';
4
+ import { _ as __nuxt_component_5 } from './CodeBlock-CjnDrO3Y.mjs';
5
+ import { _ as _sfc_main$6 } from './Separator-BbgCfKKJ.mjs';
6
+ import { l as useHead, m as _sfc_main$k, o as _sfc_main$p, n as _sfc_main$7, j as useToast } from './server.mjs';
7
+ import { defineComponent, withAsyncContext, computed, mergeProps, withCtx, unref, createTextVNode, createVNode, toDisplayString, openBlock, createBlock, Fragment, renderList, createCommentVNode, ref, useSSRContext } from 'vue';
8
+ import { ssrRenderComponent, ssrRenderList, ssrRenderClass, ssrInterpolate } from 'vue/server-renderer';
9
+ import { u as useFetch, a as useCopy } from './fetch-Be-j7hF1.mjs';
10
+ import { _ as __nuxt_component_7 } from './DataLocationCard-2B-sVSMr.mjs';
11
+ import { _ as _sfc_main$8 } from './Switch-DdkA3Fii.mjs';
12
+ import { t as tauriCore } from './useTauri-Kf3HE_42.mjs';
13
+ import { _ as __nuxt_component_15 } from './GetStartedWizard-DxT8T14Y.mjs';
14
+ import { _ as _sfc_main$3 } from './Card--Ike7sYc.mjs';
15
+ import { _ as __nuxt_component_13 } from './LoadingState-CwpfmI0W.mjs';
16
+ import { a as __nuxt_component_9 } from './HelpHint-C5Ru8BCc.mjs';
17
+ import { u as useIsDesktop } from './useIsDesktop-BS13spVj.mjs';
18
+ import './DashboardSidebarToggle-BPNxODwj.mjs';
19
+ import '../nitro/nitro.mjs';
20
+ import 'node:crypto';
21
+ import 'drizzle-orm';
22
+ import 'path';
23
+ import 'fs/promises';
24
+ import 'zlib';
25
+ import 'util';
26
+ import 'marked';
27
+ import 'highlight.js/lib/core';
28
+ import 'highlight.js/lib/languages/bash';
29
+ import 'highlight.js/lib/languages/css';
30
+ import 'highlight.js/lib/languages/diff';
31
+ import 'highlight.js/lib/languages/javascript';
32
+ import 'highlight.js/lib/languages/json';
33
+ import 'highlight.js/lib/languages/python';
34
+ import 'highlight.js/lib/languages/typescript';
35
+ import 'highlight.js/lib/languages/xml';
36
+ import 'highlight.js/lib/languages/yaml';
37
+ import 'fflate';
38
+ import 'zod';
39
+ import 'pixelmatch';
40
+ import 'sharp';
41
+ import '@anthropic-ai/sdk';
42
+ import 'nodemailer';
43
+ import 'node:dns/promises';
44
+ import 'node:net';
45
+ import 'node:util';
46
+ import 'rou3';
47
+ import 'fs';
48
+ import '@aws-sdk/client-s3';
49
+ import 'node:http';
50
+ import 'node:https';
51
+ import 'node:events';
52
+ import 'node:buffer';
53
+ import 'node:fs';
54
+ import 'node:path';
55
+ import 'drizzle-orm/libsql/sqlite3';
56
+ import 'drizzle-orm/sqlite-core';
57
+ import 'drizzle-orm/pg-core';
58
+ import 'url';
59
+ import 'node:async_hooks';
60
+ import 'node:zlib';
61
+ import 'consola';
62
+ import 'node:url';
63
+ import '@iconify/utils';
64
+ import './index-ByWTzqF6.mjs';
65
+ import 'date-fns';
66
+ import 'vue-router';
67
+ import '@iconify/vue';
68
+ import 'tailwindcss/colors';
69
+ import 'tailwind-variants';
70
+ import '@iconify/utils/lib/css/icon';
71
+ import 'perfect-debounce';
72
+ import '@floating-ui/vue';
73
+ import 'aria-hidden';
74
+ import '../routes/renderer.mjs';
75
+ import 'vue-bundle-renderer/runtime';
76
+ import 'unhead/server';
77
+ import 'devalue';
78
+ import 'unhead/plugins';
79
+ import 'unhead/utils';
80
+ import '@vue/shared';
81
+ import './Label-DYDR1Oeh.mjs';
82
+ import './useFormControl-CZ9So7iX.mjs';
83
+ import './useForwardScopeId-D0ameaSU.mjs';
84
+ import './VisuallyHiddenInput-BHvzNumK.mjs';
85
+ import './help-content-C876a9WD.mjs';
86
+
87
+ const autoSnippet = `reporter: [
88
+ ['@piwitests/reporter', { projectName: 'my-project' }],
89
+ ],`;
90
+ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
91
+ __name: "DesktopReporterCard",
92
+ __ssrInlineRender: true,
93
+ props: {
94
+ url: {},
95
+ token: {}
96
+ },
97
+ setup(__props) {
98
+ const props = __props;
99
+ const { copy } = useCopy();
100
+ const manualSnippet = computed(
101
+ () => `reporter: [
102
+ ['@piwitests/reporter', {
103
+ serverUrl: '${props.url}',
104
+ projectName: 'my-project',
105
+ apiKey: '${props.token}',
106
+ }],
107
+ ],`
108
+ );
109
+ return (_ctx, _push, _parent, _attrs) => {
110
+ const _component_SectionCard = __nuxt_component_11;
111
+ const _component_CodeBlock = __nuxt_component_5;
112
+ const _component_USeparator = _sfc_main$6;
113
+ const _component_UButton = _sfc_main$k;
114
+ _push(ssrRenderComponent(_component_SectionCard, mergeProps({
115
+ icon: "i-lucide-upload",
116
+ title: "Send results to this app"
117
+ }, _attrs), {
118
+ subtitle: withCtx((_, _push2, _parent2, _scopeId) => {
119
+ if (_push2) {
120
+ _push2(` While this app is running, the Playwright reporter finds it on its own — no URL and no token in your config. `);
121
+ } else {
122
+ return [
123
+ createTextVNode(" While this app is running, the Playwright reporter finds it on its own — no URL and no token in your config. ")
124
+ ];
125
+ }
126
+ }),
127
+ default: withCtx((_, _push2, _parent2, _scopeId) => {
128
+ if (_push2) {
129
+ _push2(`<div class="space-y-4 text-sm"${_scopeId}><div class="space-y-1"${_scopeId}><div class="text-muted"${_scopeId}>playwright.config.ts</div>`);
130
+ _push2(ssrRenderComponent(_component_CodeBlock, {
131
+ code: autoSnippet,
132
+ lang: "typescript"
133
+ }, null, _parent2, _scopeId));
134
+ _push2(`<p class="text-muted text-xs"${_scopeId}> The app publishes its address and token to <code${_scopeId}>~/.piwi/desktop.json</code> while it runs. The reporter reads that file only when your config and environment set no <code${_scopeId}>serverUrl</code> and no <code${_scopeId}>apiKey</code>, so a project already pointed at another dashboard is never redirected here. </p></div>`);
135
+ _push2(ssrRenderComponent(_component_USeparator, null, null, _parent2, _scopeId));
136
+ _push2(`<div class="space-y-3"${_scopeId}><p class="text-muted"${_scopeId}> Configure it by hand when discovery cannot apply — tests running as another user, in a container, or with a config that already sets <code${_scopeId}>serverUrl</code>. The token is a local secret: prefer the <code${_scopeId}>PIWI_API_KEY</code> env var over committing it. </p><div class="space-y-1"${_scopeId}><div class="text-muted"${_scopeId}>Access token</div><div class="flex items-start gap-2"${_scopeId}><code class="text-xs break-all flex-1"${_scopeId}>${ssrInterpolate(__props.token)}</code>`);
137
+ _push2(ssrRenderComponent(_component_UButton, {
138
+ icon: "i-lucide-copy",
139
+ color: "neutral",
140
+ variant: "ghost",
141
+ size: "xs",
142
+ "aria-label": "Copy access token",
143
+ onClick: ($event) => unref(copy)(__props.token, { toast: true })
144
+ }, null, _parent2, _scopeId));
145
+ _push2(`</div></div><div class="space-y-1"${_scopeId}><div class="text-muted"${_scopeId}>playwright.config.ts</div>`);
146
+ _push2(ssrRenderComponent(_component_CodeBlock, {
147
+ code: unref(manualSnippet),
148
+ lang: "typescript"
149
+ }, null, _parent2, _scopeId));
150
+ _push2(`</div></div></div>`);
151
+ } else {
152
+ return [
153
+ createVNode("div", { class: "space-y-4 text-sm" }, [
154
+ createVNode("div", { class: "space-y-1" }, [
155
+ createVNode("div", { class: "text-muted" }, "playwright.config.ts"),
156
+ createVNode(_component_CodeBlock, {
157
+ code: autoSnippet,
158
+ lang: "typescript"
159
+ }),
160
+ createVNode("p", { class: "text-muted text-xs" }, [
161
+ createTextVNode(" The app publishes its address and token to "),
162
+ createVNode("code", null, "~/.piwi/desktop.json"),
163
+ createTextVNode(" while it runs. The reporter reads that file only when your config and environment set no "),
164
+ createVNode("code", null, "serverUrl"),
165
+ createTextVNode(" and no "),
166
+ createVNode("code", null, "apiKey"),
167
+ createTextVNode(", so a project already pointed at another dashboard is never redirected here. ")
168
+ ])
169
+ ]),
170
+ createVNode(_component_USeparator),
171
+ createVNode("div", { class: "space-y-3" }, [
172
+ createVNode("p", { class: "text-muted" }, [
173
+ createTextVNode(" Configure it by hand when discovery cannot apply — tests running as another user, in a container, or with a config that already sets "),
174
+ createVNode("code", null, "serverUrl"),
175
+ createTextVNode(". The token is a local secret: prefer the "),
176
+ createVNode("code", null, "PIWI_API_KEY"),
177
+ createTextVNode(" env var over committing it. ")
178
+ ]),
179
+ createVNode("div", { class: "space-y-1" }, [
180
+ createVNode("div", { class: "text-muted" }, "Access token"),
181
+ createVNode("div", { class: "flex items-start gap-2" }, [
182
+ createVNode("code", { class: "text-xs break-all flex-1" }, toDisplayString(__props.token), 1),
183
+ createVNode(_component_UButton, {
184
+ icon: "i-lucide-copy",
185
+ color: "neutral",
186
+ variant: "ghost",
187
+ size: "xs",
188
+ "aria-label": "Copy access token",
189
+ onClick: ($event) => unref(copy)(__props.token, { toast: true })
190
+ }, null, 8, ["onClick"])
191
+ ])
192
+ ]),
193
+ createVNode("div", { class: "space-y-1" }, [
194
+ createVNode("div", { class: "text-muted" }, "playwright.config.ts"),
195
+ createVNode(_component_CodeBlock, {
196
+ code: unref(manualSnippet),
197
+ lang: "typescript"
198
+ }, null, 8, ["code"])
199
+ ])
200
+ ])
201
+ ])
202
+ ];
203
+ }
204
+ }),
205
+ _: 1
206
+ }, _parent));
207
+ };
208
+ }
209
+ });
210
+ const _sfc_setup$2 = _sfc_main$2.setup;
211
+ _sfc_main$2.setup = (props, ctx) => {
212
+ const ssrContext = useSSRContext();
213
+ (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/desktop/DesktopReporterCard.vue");
214
+ return _sfc_setup$2 ? _sfc_setup$2(props, ctx) : void 0;
215
+ };
216
+ const __nuxt_component_4 = Object.assign(_sfc_main$2, { __name: "DesktopReporterCard" });
217
+ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
218
+ __name: "DesktopServiceCard",
219
+ __ssrInlineRender: true,
220
+ setup(__props) {
221
+ const toast = useToast();
222
+ const loading = ref(true);
223
+ const available = ref(false);
224
+ const busy = ref(false);
225
+ const runInBackground = ref(false);
226
+ const startOnLogin = ref(false);
227
+ async function setRunInBackground(value) {
228
+ const core = tauriCore();
229
+ if (!core) return;
230
+ busy.value = true;
231
+ try {
232
+ await core.invoke("desktop_set_run_in_background", { enabled: value });
233
+ runInBackground.value = value;
234
+ } catch {
235
+ toast.add({ title: 'Could not update "Run in background"', color: "error" });
236
+ } finally {
237
+ busy.value = false;
238
+ }
239
+ }
240
+ async function setStartOnLogin(value) {
241
+ const core = tauriCore();
242
+ if (!core) return;
243
+ busy.value = true;
244
+ try {
245
+ await core.invoke("desktop_set_start_on_login", { enabled: value });
246
+ startOnLogin.value = value;
247
+ } catch {
248
+ toast.add({ title: 'Could not update "Start on login"', color: "error" });
249
+ } finally {
250
+ busy.value = false;
251
+ }
252
+ }
253
+ return (_ctx, _push, _parent, _attrs) => {
254
+ const _component_SectionCard = __nuxt_component_11;
255
+ const _component_UIcon = _sfc_main$p;
256
+ const _component_USwitch = _sfc_main$8;
257
+ _push(ssrRenderComponent(_component_SectionCard, mergeProps({
258
+ icon: "i-lucide-monitor-cog",
259
+ title: "Desktop app"
260
+ }, _attrs), {
261
+ subtitle: withCtx((_, _push2, _parent2, _scopeId) => {
262
+ if (_push2) {
263
+ _push2(` Keep Piwi running in the background and start it automatically when you log in. `);
264
+ } else {
265
+ return [
266
+ createTextVNode(" Keep Piwi running in the background and start it automatically when you log in. ")
267
+ ];
268
+ }
269
+ }),
270
+ default: withCtx((_, _push2, _parent2, _scopeId) => {
271
+ if (_push2) {
272
+ if (unref(loading)) {
273
+ _push2(`<div class="flex items-center gap-2 text-sm text-muted"${_scopeId}>`);
274
+ _push2(ssrRenderComponent(_component_UIcon, {
275
+ name: "i-lucide-loader-2",
276
+ class: "size-4 animate-spin"
277
+ }, null, _parent2, _scopeId));
278
+ _push2(` Checking… </div>`);
279
+ } else if (unref(available)) {
280
+ _push2(`<div class="space-y-4"${_scopeId}><div class="flex items-start justify-between gap-4"${_scopeId}><div class="space-y-0.5"${_scopeId}><p class="text-sm font-medium"${_scopeId}>Run in background</p><p class="text-xs text-muted"${_scopeId}>Closing the window keeps the server running in the tray instead of quitting.</p></div>`);
281
+ _push2(ssrRenderComponent(_component_USwitch, {
282
+ "model-value": unref(runInBackground),
283
+ disabled: unref(busy),
284
+ "onUpdate:modelValue": setRunInBackground
285
+ }, null, _parent2, _scopeId));
286
+ _push2(`</div><div class="flex items-start justify-between gap-4"${_scopeId}><div class="space-y-0.5"${_scopeId}><p class="text-sm font-medium"${_scopeId}>Start on login</p><p class="text-xs text-muted"${_scopeId}> Launch Piwi automatically (hidden in the tray) when you sign in to your computer. </p></div>`);
287
+ _push2(ssrRenderComponent(_component_USwitch, {
288
+ "model-value": unref(startOnLogin),
289
+ disabled: unref(busy),
290
+ "onUpdate:modelValue": setStartOnLogin
291
+ }, null, _parent2, _scopeId));
292
+ _push2(`</div></div>`);
293
+ } else {
294
+ _push2(`<div class="space-y-1 text-sm text-muted"${_scopeId}><p${_scopeId}>Manage these from the Piwi tray icon:</p><p class="text-xs"${_scopeId}> Right-click the Piwi icon in your system tray for <strong${_scopeId}>Run in background</strong> and <strong${_scopeId}>Start on login</strong>. On Windows the icon may be hidden under the “show hidden icons” arrow (▲) next to the clock — drag it onto the taskbar to keep it in view. </p></div>`);
295
+ }
296
+ } else {
297
+ return [
298
+ unref(loading) ? (openBlock(), createBlock("div", {
299
+ key: 0,
300
+ class: "flex items-center gap-2 text-sm text-muted"
301
+ }, [
302
+ createVNode(_component_UIcon, {
303
+ name: "i-lucide-loader-2",
304
+ class: "size-4 animate-spin"
305
+ }),
306
+ createTextVNode(" Checking… ")
307
+ ])) : unref(available) ? (openBlock(), createBlock("div", {
308
+ key: 1,
309
+ class: "space-y-4"
310
+ }, [
311
+ createVNode("div", { class: "flex items-start justify-between gap-4" }, [
312
+ createVNode("div", { class: "space-y-0.5" }, [
313
+ createVNode("p", { class: "text-sm font-medium" }, "Run in background"),
314
+ createVNode("p", { class: "text-xs text-muted" }, "Closing the window keeps the server running in the tray instead of quitting.")
315
+ ]),
316
+ createVNode(_component_USwitch, {
317
+ "model-value": unref(runInBackground),
318
+ disabled: unref(busy),
319
+ "onUpdate:modelValue": setRunInBackground
320
+ }, null, 8, ["model-value", "disabled"])
321
+ ]),
322
+ createVNode("div", { class: "flex items-start justify-between gap-4" }, [
323
+ createVNode("div", { class: "space-y-0.5" }, [
324
+ createVNode("p", { class: "text-sm font-medium" }, "Start on login"),
325
+ createVNode("p", { class: "text-xs text-muted" }, " Launch Piwi automatically (hidden in the tray) when you sign in to your computer. ")
326
+ ]),
327
+ createVNode(_component_USwitch, {
328
+ "model-value": unref(startOnLogin),
329
+ disabled: unref(busy),
330
+ "onUpdate:modelValue": setStartOnLogin
331
+ }, null, 8, ["model-value", "disabled"])
332
+ ])
333
+ ])) : (openBlock(), createBlock("div", {
334
+ key: 2,
335
+ class: "space-y-1 text-sm text-muted"
336
+ }, [
337
+ createVNode("p", null, "Manage these from the Piwi tray icon:"),
338
+ createVNode("p", { class: "text-xs" }, [
339
+ createTextVNode(" Right-click the Piwi icon in your system tray for "),
340
+ createVNode("strong", null, "Run in background"),
341
+ createTextVNode(" and "),
342
+ createVNode("strong", null, "Start on login"),
343
+ createTextVNode(". On Windows the icon may be hidden under the “show hidden icons” arrow (▲) next to the clock — drag it onto the taskbar to keep it in view. ")
344
+ ])
345
+ ]))
346
+ ];
347
+ }
348
+ }),
349
+ _: 1
350
+ }, _parent));
351
+ };
352
+ }
353
+ });
354
+ const _sfc_setup$1 = _sfc_main$1.setup;
355
+ _sfc_main$1.setup = (props, ctx) => {
356
+ const ssrContext = useSSRContext();
357
+ (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/desktop/DesktopServiceCard.vue");
358
+ return _sfc_setup$1 ? _sfc_setup$1(props, ctx) : void 0;
359
+ };
360
+ const __nuxt_component_8 = Object.assign(_sfc_main$1, { __name: "DesktopServiceCard" });
361
+ const SETUP_CAPABILITIES = [
362
+ {
363
+ id: "reporter",
364
+ title: "Results arriving",
365
+ summary: "Your Playwright runs are reaching this dashboard and their history is being kept.",
366
+ how: "Follow the four steps above to add the reporter to your Playwright config.",
367
+ icon: "i-lucide-antenna",
368
+ doc: "reporter"
369
+ },
370
+ {
371
+ id: "fixtures",
372
+ title: "Capture fixtures",
373
+ summary: "Network timing, Web Vitals, console errors and ARIA snapshots, captured per test. Powers slow endpoints, performance trends and the richer AI diagnosis context.",
374
+ how: 'Extend your Playwright `test` with `piwiFixtures` — see "Go further" above.',
375
+ icon: "i-lucide-radio",
376
+ doc: "capture-fixtures"
377
+ },
378
+ {
379
+ id: "locator-healing",
380
+ title: "Locator healing",
381
+ summary: "When a selector breaks, ranked replacement locators captured from the last passing run — with a recommended fix.",
382
+ how: "Comes with the capture fixtures; enable those and healing data starts accumulating on passing runs.",
383
+ icon: "i-lucide-bandage",
384
+ doc: "capture-fixtures"
385
+ },
386
+ {
387
+ id: "clustering",
388
+ title: "Failure clustering",
389
+ summary: "Forty red tests collapsed into the three root causes behind them, each triaged once.",
390
+ how: "Automatic — clusters form as soon as failures with a shared error fingerprint arrive.",
391
+ icon: "i-lucide-layers",
392
+ doc: "ai-diagnosis"
393
+ },
394
+ {
395
+ id: "ai",
396
+ title: "AI diagnosis",
397
+ summary: "An LLM you configure explains a cluster against your actual git diff, with its suggested patch validated against your source before you see it.",
398
+ how: "Configure a provider in Settings — Anthropic, OpenAI, or any OpenAI-compatible endpoint including local models.",
399
+ icon: "i-lucide-sparkles",
400
+ doc: "ai-diagnosis",
401
+ to: "/settings/ai",
402
+ toLabel: "Configure AI",
403
+ optional: true
404
+ },
405
+ {
406
+ id: "scm",
407
+ title: "Source control",
408
+ summary: "The commits behind a failure, CODEOWNERS-derived ownership, and pull-request feedback on the branch that broke.",
409
+ how: "Add a repository access token on the project, or globally in Settings.",
410
+ icon: "i-lucide-git-branch",
411
+ doc: "ai-diagnosis",
412
+ to: "/settings/ai",
413
+ toLabel: "Add a token",
414
+ optional: true
415
+ },
416
+ {
417
+ id: "notifications",
418
+ title: "Notifications",
419
+ summary: "Email, Slack, webhook and browser channels, with per-project subscriptions and digests.",
420
+ how: "Add a channel in Settings, then subscribe the projects you care about.",
421
+ icon: "i-lucide-bell",
422
+ doc: "notifications",
423
+ to: "/settings/notifications",
424
+ toLabel: "Add a channel",
425
+ optional: true
426
+ },
427
+ {
428
+ id: "quarantine",
429
+ title: "Quarantine",
430
+ summary: "A known-bad test keeps running and reporting, but stops failing the CI gate — and earns its way out on a passing streak.",
431
+ how: "Quarantine a test from its test-case page, or from the project's Quarantine tab.",
432
+ icon: "i-lucide-shield-alert",
433
+ doc: "flaky-tests",
434
+ optional: true
435
+ },
436
+ {
437
+ id: "tags",
438
+ title: "Tags & ownership",
439
+ summary: "Playwright's own test tags plus `piwi:owner` / `priority` / `feature` annotations, filterable across the catalog and the flaky leaderboard.",
440
+ how: "Tag tests in your specs, or define project tags in Settings.",
441
+ icon: "i-lucide-tags",
442
+ doc: "reporter",
443
+ to: "/settings/tags",
444
+ toLabel: "Manage tags",
445
+ optional: true
446
+ },
447
+ {
448
+ id: "markers",
449
+ title: "Timeline markers",
450
+ summary: "Your deploys and infrastructure changes overlaid on the trend charts, so a step change has a cause.",
451
+ how: "Add a marker from a project's Timeline tab.",
452
+ icon: "i-lucide-git-commit-horizontal",
453
+ doc: "timeline-markers",
454
+ optional: true
455
+ }
456
+ ];
457
+ const _sfc_main = /* @__PURE__ */ defineComponent({
458
+ __name: "setup",
459
+ __ssrInlineRender: true,
460
+ async setup(__props) {
461
+ let __temp, __restore;
462
+ useHead({ title: "Setup — Piwi Dashboard" });
463
+ const isDesktop = useIsDesktop();
464
+ const { data: stats } = ([__temp, __restore] = withAsyncContext(() => useFetch(
465
+ "/api/admin/stats",
466
+ {
467
+ immediate: isDesktop,
468
+ default: () => null
469
+ },
470
+ "$euzZjV7JAx"
471
+ /* nuxt-injected */
472
+ )), __temp = await __temp, __restore(), __temp);
473
+ const { data: reporterConfig } = ([__temp, __restore] = withAsyncContext(() => useFetch(
474
+ "/api/desktop/reporter-config",
475
+ {
476
+ immediate: isDesktop,
477
+ default: () => null
478
+ },
479
+ "$8hZyiK3RAW"
480
+ /* nuxt-injected */
481
+ )), __temp = await __temp, __restore(), __temp);
482
+ const { data: status, status: fetchStatus } = ([__temp, __restore] = withAsyncContext(() => useFetch(
483
+ "/api/setup-status",
484
+ {
485
+ lazy: true,
486
+ default: () => ({ capabilities: [] })
487
+ },
488
+ "$f9suaFnWiV"
489
+ /* nuxt-injected */
490
+ )), __temp = await __temp, __restore(), __temp);
491
+ const activeById = computed(() => {
492
+ const map = /* @__PURE__ */ new Map();
493
+ for (const c of status.value?.capabilities ?? []) map.set(c.id, c.active);
494
+ return map;
495
+ });
496
+ const isLoading = computed(() => fetchStatus.value === "pending" && !status.value?.capabilities.length);
497
+ const rows = computed(
498
+ () => SETUP_CAPABILITIES.map((copy) => ({ ...copy, active: activeById.value.get(copy.id) ?? false }))
499
+ );
500
+ const activeCount = computed(() => rows.value.filter((r) => r.active).length);
501
+ return (_ctx, _push, _parent, _attrs) => {
502
+ const _component_UDashboardPanel = _sfc_main$1$1;
503
+ const _component_UDashboardNavbar = _sfc_main$4;
504
+ const _component_UDashboardSidebarCollapse = _sfc_main$1$2;
505
+ const _component_UBreadcrumb = _sfc_main$5;
506
+ const _component_DesktopReporterCard = __nuxt_component_4;
507
+ const _component_SectionCard = __nuxt_component_11;
508
+ const _component_UButton = _sfc_main$k;
509
+ const _component_DataLocationCard = __nuxt_component_7;
510
+ const _component_DesktopServiceCard = __nuxt_component_8;
511
+ const _component_GetStartedWizard = __nuxt_component_15;
512
+ const _component_UCard = _sfc_main$3;
513
+ const _component_UIcon = _sfc_main$p;
514
+ const _component_UBadge = _sfc_main$7;
515
+ const _component_LoadingState = __nuxt_component_13;
516
+ const _component_DocLink = __nuxt_component_9;
517
+ _push(ssrRenderComponent(_component_UDashboardPanel, mergeProps({ id: "setup" }, _attrs), {
518
+ header: withCtx((_, _push2, _parent2, _scopeId) => {
519
+ if (_push2) {
520
+ _push2(ssrRenderComponent(_component_UDashboardNavbar, null, {
521
+ leading: withCtx((_2, _push3, _parent3, _scopeId2) => {
522
+ if (_push3) {
523
+ _push3(ssrRenderComponent(_component_UDashboardSidebarCollapse, null, null, _parent3, _scopeId2));
524
+ _push3(ssrRenderComponent(_component_UBreadcrumb, { items: [{ label: "Setup", icon: "i-lucide-rocket", to: "/setup" }] }, null, _parent3, _scopeId2));
525
+ } else {
526
+ return [
527
+ createVNode(_component_UDashboardSidebarCollapse),
528
+ createVNode(_component_UBreadcrumb, { items: [{ label: "Setup", icon: "i-lucide-rocket", to: "/setup" }] })
529
+ ];
530
+ }
531
+ }),
532
+ _: 1
533
+ }, _parent2, _scopeId));
534
+ } else {
535
+ return [
536
+ createVNode(_component_UDashboardNavbar, null, {
537
+ leading: withCtx(() => [
538
+ createVNode(_component_UDashboardSidebarCollapse),
539
+ createVNode(_component_UBreadcrumb, { items: [{ label: "Setup", icon: "i-lucide-rocket", to: "/setup" }] })
540
+ ]),
541
+ _: 1
542
+ })
543
+ ];
544
+ }
545
+ }),
546
+ body: withCtx((_, _push2, _parent2, _scopeId) => {
547
+ if (_push2) {
548
+ _push2(`<div class="flex flex-col gap-6 w-full lg:max-w-4xl mx-auto"${_scopeId}>`);
549
+ if (unref(isDesktop)) {
550
+ _push2(`<!--[-->`);
551
+ if (unref(reporterConfig)) {
552
+ _push2(ssrRenderComponent(_component_DesktopReporterCard, {
553
+ url: unref(reporterConfig).url,
554
+ token: unref(reporterConfig).token
555
+ }, null, _parent2, _scopeId));
556
+ } else {
557
+ _push2(`<!---->`);
558
+ }
559
+ _push2(ssrRenderComponent(_component_SectionCard, {
560
+ icon: "i-lucide-plug",
561
+ title: "Connect an AI assistant (MCP)"
562
+ }, {
563
+ subtitle: withCtx((_2, _push3, _parent3, _scopeId2) => {
564
+ if (_push3) {
565
+ _push3(` This app exposes a local MCP endpoint so agents like Claude can query your test results. The MCP server page has the URL and access token for this instance already baked into one-click setup for every client. `);
566
+ } else {
567
+ return [
568
+ createTextVNode(" This app exposes a local MCP endpoint so agents like Claude can query your test results. The MCP server page has the URL and access token for this instance already baked into one-click setup for every client. ")
569
+ ];
570
+ }
571
+ }),
572
+ default: withCtx((_2, _push3, _parent3, _scopeId2) => {
573
+ if (_push3) {
574
+ _push3(ssrRenderComponent(_component_UButton, {
575
+ to: "/mcp",
576
+ color: "neutral",
577
+ variant: "soft",
578
+ "trailing-icon": "i-lucide-arrow-right"
579
+ }, {
580
+ default: withCtx((_3, _push4, _parent4, _scopeId3) => {
581
+ if (_push4) {
582
+ _push4(` Open MCP setup `);
583
+ } else {
584
+ return [
585
+ createTextVNode(" Open MCP setup ")
586
+ ];
587
+ }
588
+ }),
589
+ _: 1
590
+ }, _parent3, _scopeId2));
591
+ } else {
592
+ return [
593
+ createVNode(_component_UButton, {
594
+ to: "/mcp",
595
+ color: "neutral",
596
+ variant: "soft",
597
+ "trailing-icon": "i-lucide-arrow-right"
598
+ }, {
599
+ default: withCtx(() => [
600
+ createTextVNode(" Open MCP setup ")
601
+ ]),
602
+ _: 1
603
+ })
604
+ ];
605
+ }
606
+ }),
607
+ _: 1
608
+ }, _parent2, _scopeId));
609
+ if (unref(stats)) {
610
+ _push2(ssrRenderComponent(_component_DataLocationCard, {
611
+ database: unref(stats).databaseLocation,
612
+ storage: unref(stats).storageLocation
613
+ }, null, _parent2, _scopeId));
614
+ } else {
615
+ _push2(`<!---->`);
616
+ }
617
+ _push2(ssrRenderComponent(_component_DesktopServiceCard, null, null, _parent2, _scopeId));
618
+ _push2(`<!--]-->`);
619
+ } else {
620
+ _push2(`<!---->`);
621
+ }
622
+ _push2(ssrRenderComponent(_component_GetStartedWizard, null, null, _parent2, _scopeId));
623
+ _push2(ssrRenderComponent(_component_UCard, null, {
624
+ header: withCtx((_2, _push3, _parent3, _scopeId2) => {
625
+ if (_push3) {
626
+ _push3(`<div class="flex items-center justify-between gap-3"${_scopeId2}><div class="flex items-center gap-3"${_scopeId2}><div class="p-2 bg-primary/10 rounded-lg shrink-0"${_scopeId2}>`);
627
+ _push3(ssrRenderComponent(_component_UIcon, {
628
+ name: "i-lucide-list-checks",
629
+ class: "size-5 text-primary"
630
+ }, null, _parent3, _scopeId2));
631
+ _push3(`</div><div${_scopeId2}><h2 class="text-xl font-semibold"${_scopeId2}>What&#39;s switched on</h2><p class="text-sm text-gray-500 dark:text-gray-400"${_scopeId2}> Detected from your data, not your config — a capability reads as active once this instance has actually used it. </p></div></div>`);
632
+ if (!unref(isLoading)) {
633
+ _push3(ssrRenderComponent(_component_UBadge, {
634
+ color: "neutral",
635
+ variant: "subtle",
636
+ class: "shrink-0 max-sm:hidden"
637
+ }, {
638
+ default: withCtx((_3, _push4, _parent4, _scopeId3) => {
639
+ if (_push4) {
640
+ _push4(`${ssrInterpolate(unref(activeCount))} / ${ssrInterpolate(unref(rows).length)}`);
641
+ } else {
642
+ return [
643
+ createTextVNode(toDisplayString(unref(activeCount)) + " / " + toDisplayString(unref(rows).length), 1)
644
+ ];
645
+ }
646
+ }),
647
+ _: 1
648
+ }, _parent3, _scopeId2));
649
+ } else {
650
+ _push3(`<!---->`);
651
+ }
652
+ _push3(`</div>`);
653
+ } else {
654
+ return [
655
+ createVNode("div", { class: "flex items-center justify-between gap-3" }, [
656
+ createVNode("div", { class: "flex items-center gap-3" }, [
657
+ createVNode("div", { class: "p-2 bg-primary/10 rounded-lg shrink-0" }, [
658
+ createVNode(_component_UIcon, {
659
+ name: "i-lucide-list-checks",
660
+ class: "size-5 text-primary"
661
+ })
662
+ ]),
663
+ createVNode("div", null, [
664
+ createVNode("h2", { class: "text-xl font-semibold" }, "What's switched on"),
665
+ createVNode("p", { class: "text-sm text-gray-500 dark:text-gray-400" }, " Detected from your data, not your config — a capability reads as active once this instance has actually used it. ")
666
+ ])
667
+ ]),
668
+ !unref(isLoading) ? (openBlock(), createBlock(_component_UBadge, {
669
+ key: 0,
670
+ color: "neutral",
671
+ variant: "subtle",
672
+ class: "shrink-0 max-sm:hidden"
673
+ }, {
674
+ default: withCtx(() => [
675
+ createTextVNode(toDisplayString(unref(activeCount)) + " / " + toDisplayString(unref(rows).length), 1)
676
+ ]),
677
+ _: 1
678
+ })) : createCommentVNode("", true)
679
+ ])
680
+ ];
681
+ }
682
+ }),
683
+ default: withCtx((_2, _push3, _parent3, _scopeId2) => {
684
+ if (_push3) {
685
+ if (unref(isLoading)) {
686
+ _push3(ssrRenderComponent(_component_LoadingState, null, null, _parent3, _scopeId2));
687
+ } else {
688
+ _push3(`<ul class="divide-y divide-default"${_scopeId2}><!--[-->`);
689
+ ssrRenderList(unref(rows), (row) => {
690
+ _push3(`<li class="flex gap-4 py-4 first:pt-0 last:pb-0"${_scopeId2}><div class="${ssrRenderClass([row.active ? "bg-success/10 text-success" : "bg-elevated text-dimmed", "flex size-9 shrink-0 items-center justify-center rounded-lg"])}"${_scopeId2}>`);
691
+ _push3(ssrRenderComponent(_component_UIcon, {
692
+ name: row.icon,
693
+ class: "size-5"
694
+ }, null, _parent3, _scopeId2));
695
+ _push3(`</div><div class="flex-1 min-w-0"${_scopeId2}><div class="flex items-center gap-2 flex-wrap mb-1"${_scopeId2}><h3 class="font-medium"${_scopeId2}>${ssrInterpolate(row.title)}</h3>`);
696
+ if (row.active) {
697
+ _push3(ssrRenderComponent(_component_UBadge, {
698
+ color: "success",
699
+ variant: "subtle",
700
+ size: "xs"
701
+ }, {
702
+ default: withCtx((_3, _push4, _parent4, _scopeId3) => {
703
+ if (_push4) {
704
+ _push4(`Active`);
705
+ } else {
706
+ return [
707
+ createTextVNode("Active")
708
+ ];
709
+ }
710
+ }),
711
+ _: 2
712
+ }, _parent3, _scopeId2));
713
+ } else if (row.optional) {
714
+ _push3(ssrRenderComponent(_component_UBadge, {
715
+ color: "neutral",
716
+ variant: "subtle",
717
+ size: "xs"
718
+ }, {
719
+ default: withCtx((_3, _push4, _parent4, _scopeId3) => {
720
+ if (_push4) {
721
+ _push4(`Optional`);
722
+ } else {
723
+ return [
724
+ createTextVNode("Optional")
725
+ ];
726
+ }
727
+ }),
728
+ _: 2
729
+ }, _parent3, _scopeId2));
730
+ } else {
731
+ _push3(ssrRenderComponent(_component_UBadge, {
732
+ color: "warning",
733
+ variant: "subtle",
734
+ size: "xs"
735
+ }, {
736
+ default: withCtx((_3, _push4, _parent4, _scopeId3) => {
737
+ if (_push4) {
738
+ _push4(`Not set up`);
739
+ } else {
740
+ return [
741
+ createTextVNode("Not set up")
742
+ ];
743
+ }
744
+ }),
745
+ _: 2
746
+ }, _parent3, _scopeId2));
747
+ }
748
+ _push3(`</div><p class="text-sm text-gray-600 dark:text-gray-400"${_scopeId2}>${ssrInterpolate(row.summary)}</p>`);
749
+ if (!row.active) {
750
+ _push3(`<p class="text-sm text-dimmed mt-1"${_scopeId2}>${ssrInterpolate(row.how)}</p>`);
751
+ } else {
752
+ _push3(`<!---->`);
753
+ }
754
+ _push3(`<div class="flex items-center gap-3 mt-2 text-sm"${_scopeId2}>`);
755
+ if (row.to && !row.active) {
756
+ _push3(ssrRenderComponent(_component_UButton, {
757
+ to: row.to,
758
+ size: "xs",
759
+ variant: "soft",
760
+ icon: "i-lucide-settings"
761
+ }, {
762
+ default: withCtx((_3, _push4, _parent4, _scopeId3) => {
763
+ if (_push4) {
764
+ _push4(`${ssrInterpolate(row.toLabel ?? "Configure")}`);
765
+ } else {
766
+ return [
767
+ createTextVNode(toDisplayString(row.toLabel ?? "Configure"), 1)
768
+ ];
769
+ }
770
+ }),
771
+ _: 2
772
+ }, _parent3, _scopeId2));
773
+ } else {
774
+ _push3(`<!---->`);
775
+ }
776
+ if (row.doc) {
777
+ _push3(ssrRenderComponent(_component_DocLink, {
778
+ to: row.doc,
779
+ class: "text-sm"
780
+ }, {
781
+ default: withCtx((_3, _push4, _parent4, _scopeId3) => {
782
+ if (_push4) {
783
+ _push4(`Docs`);
784
+ } else {
785
+ return [
786
+ createTextVNode("Docs")
787
+ ];
788
+ }
789
+ }),
790
+ _: 2
791
+ }, _parent3, _scopeId2));
792
+ } else {
793
+ _push3(`<!---->`);
794
+ }
795
+ _push3(`</div></div></li>`);
796
+ });
797
+ _push3(`<!--]--></ul>`);
798
+ }
799
+ } else {
800
+ return [
801
+ unref(isLoading) ? (openBlock(), createBlock(_component_LoadingState, { key: 0 })) : (openBlock(), createBlock("ul", {
802
+ key: 1,
803
+ class: "divide-y divide-default"
804
+ }, [
805
+ (openBlock(true), createBlock(Fragment, null, renderList(unref(rows), (row) => {
806
+ return openBlock(), createBlock("li", {
807
+ key: row.id,
808
+ class: "flex gap-4 py-4 first:pt-0 last:pb-0"
809
+ }, [
810
+ createVNode("div", {
811
+ class: ["flex size-9 shrink-0 items-center justify-center rounded-lg", row.active ? "bg-success/10 text-success" : "bg-elevated text-dimmed"]
812
+ }, [
813
+ createVNode(_component_UIcon, {
814
+ name: row.icon,
815
+ class: "size-5"
816
+ }, null, 8, ["name"])
817
+ ], 2),
818
+ createVNode("div", { class: "flex-1 min-w-0" }, [
819
+ createVNode("div", { class: "flex items-center gap-2 flex-wrap mb-1" }, [
820
+ createVNode("h3", { class: "font-medium" }, toDisplayString(row.title), 1),
821
+ row.active ? (openBlock(), createBlock(_component_UBadge, {
822
+ key: 0,
823
+ color: "success",
824
+ variant: "subtle",
825
+ size: "xs"
826
+ }, {
827
+ default: withCtx(() => [
828
+ createTextVNode("Active")
829
+ ]),
830
+ _: 1
831
+ })) : row.optional ? (openBlock(), createBlock(_component_UBadge, {
832
+ key: 1,
833
+ color: "neutral",
834
+ variant: "subtle",
835
+ size: "xs"
836
+ }, {
837
+ default: withCtx(() => [
838
+ createTextVNode("Optional")
839
+ ]),
840
+ _: 1
841
+ })) : (openBlock(), createBlock(_component_UBadge, {
842
+ key: 2,
843
+ color: "warning",
844
+ variant: "subtle",
845
+ size: "xs"
846
+ }, {
847
+ default: withCtx(() => [
848
+ createTextVNode("Not set up")
849
+ ]),
850
+ _: 1
851
+ }))
852
+ ]),
853
+ createVNode("p", { class: "text-sm text-gray-600 dark:text-gray-400" }, toDisplayString(row.summary), 1),
854
+ !row.active ? (openBlock(), createBlock("p", {
855
+ key: 0,
856
+ class: "text-sm text-dimmed mt-1"
857
+ }, toDisplayString(row.how), 1)) : createCommentVNode("", true),
858
+ createVNode("div", { class: "flex items-center gap-3 mt-2 text-sm" }, [
859
+ row.to && !row.active ? (openBlock(), createBlock(_component_UButton, {
860
+ key: 0,
861
+ to: row.to,
862
+ size: "xs",
863
+ variant: "soft",
864
+ icon: "i-lucide-settings"
865
+ }, {
866
+ default: withCtx(() => [
867
+ createTextVNode(toDisplayString(row.toLabel ?? "Configure"), 1)
868
+ ]),
869
+ _: 2
870
+ }, 1032, ["to"])) : createCommentVNode("", true),
871
+ row.doc ? (openBlock(), createBlock(_component_DocLink, {
872
+ key: 1,
873
+ to: row.doc,
874
+ class: "text-sm"
875
+ }, {
876
+ default: withCtx(() => [
877
+ createTextVNode("Docs")
878
+ ]),
879
+ _: 1
880
+ }, 8, ["to"])) : createCommentVNode("", true)
881
+ ])
882
+ ])
883
+ ]);
884
+ }), 128))
885
+ ]))
886
+ ];
887
+ }
888
+ }),
889
+ _: 1
890
+ }, _parent2, _scopeId));
891
+ _push2(`</div>`);
892
+ } else {
893
+ return [
894
+ createVNode("div", { class: "flex flex-col gap-6 w-full lg:max-w-4xl mx-auto" }, [
895
+ unref(isDesktop) ? (openBlock(), createBlock(Fragment, { key: 0 }, [
896
+ unref(reporterConfig) ? (openBlock(), createBlock(_component_DesktopReporterCard, {
897
+ key: 0,
898
+ url: unref(reporterConfig).url,
899
+ token: unref(reporterConfig).token
900
+ }, null, 8, ["url", "token"])) : createCommentVNode("", true),
901
+ createVNode(_component_SectionCard, {
902
+ icon: "i-lucide-plug",
903
+ title: "Connect an AI assistant (MCP)"
904
+ }, {
905
+ subtitle: withCtx(() => [
906
+ createTextVNode(" This app exposes a local MCP endpoint so agents like Claude can query your test results. The MCP server page has the URL and access token for this instance already baked into one-click setup for every client. ")
907
+ ]),
908
+ default: withCtx(() => [
909
+ createVNode(_component_UButton, {
910
+ to: "/mcp",
911
+ color: "neutral",
912
+ variant: "soft",
913
+ "trailing-icon": "i-lucide-arrow-right"
914
+ }, {
915
+ default: withCtx(() => [
916
+ createTextVNode(" Open MCP setup ")
917
+ ]),
918
+ _: 1
919
+ })
920
+ ]),
921
+ _: 1
922
+ }),
923
+ unref(stats) ? (openBlock(), createBlock(_component_DataLocationCard, {
924
+ key: 1,
925
+ database: unref(stats).databaseLocation,
926
+ storage: unref(stats).storageLocation
927
+ }, null, 8, ["database", "storage"])) : createCommentVNode("", true),
928
+ createVNode(_component_DesktopServiceCard)
929
+ ], 64)) : createCommentVNode("", true),
930
+ createVNode(_component_GetStartedWizard),
931
+ createVNode(_component_UCard, null, {
932
+ header: withCtx(() => [
933
+ createVNode("div", { class: "flex items-center justify-between gap-3" }, [
934
+ createVNode("div", { class: "flex items-center gap-3" }, [
935
+ createVNode("div", { class: "p-2 bg-primary/10 rounded-lg shrink-0" }, [
936
+ createVNode(_component_UIcon, {
937
+ name: "i-lucide-list-checks",
938
+ class: "size-5 text-primary"
939
+ })
940
+ ]),
941
+ createVNode("div", null, [
942
+ createVNode("h2", { class: "text-xl font-semibold" }, "What's switched on"),
943
+ createVNode("p", { class: "text-sm text-gray-500 dark:text-gray-400" }, " Detected from your data, not your config — a capability reads as active once this instance has actually used it. ")
944
+ ])
945
+ ]),
946
+ !unref(isLoading) ? (openBlock(), createBlock(_component_UBadge, {
947
+ key: 0,
948
+ color: "neutral",
949
+ variant: "subtle",
950
+ class: "shrink-0 max-sm:hidden"
951
+ }, {
952
+ default: withCtx(() => [
953
+ createTextVNode(toDisplayString(unref(activeCount)) + " / " + toDisplayString(unref(rows).length), 1)
954
+ ]),
955
+ _: 1
956
+ })) : createCommentVNode("", true)
957
+ ])
958
+ ]),
959
+ default: withCtx(() => [
960
+ unref(isLoading) ? (openBlock(), createBlock(_component_LoadingState, { key: 0 })) : (openBlock(), createBlock("ul", {
961
+ key: 1,
962
+ class: "divide-y divide-default"
963
+ }, [
964
+ (openBlock(true), createBlock(Fragment, null, renderList(unref(rows), (row) => {
965
+ return openBlock(), createBlock("li", {
966
+ key: row.id,
967
+ class: "flex gap-4 py-4 first:pt-0 last:pb-0"
968
+ }, [
969
+ createVNode("div", {
970
+ class: ["flex size-9 shrink-0 items-center justify-center rounded-lg", row.active ? "bg-success/10 text-success" : "bg-elevated text-dimmed"]
971
+ }, [
972
+ createVNode(_component_UIcon, {
973
+ name: row.icon,
974
+ class: "size-5"
975
+ }, null, 8, ["name"])
976
+ ], 2),
977
+ createVNode("div", { class: "flex-1 min-w-0" }, [
978
+ createVNode("div", { class: "flex items-center gap-2 flex-wrap mb-1" }, [
979
+ createVNode("h3", { class: "font-medium" }, toDisplayString(row.title), 1),
980
+ row.active ? (openBlock(), createBlock(_component_UBadge, {
981
+ key: 0,
982
+ color: "success",
983
+ variant: "subtle",
984
+ size: "xs"
985
+ }, {
986
+ default: withCtx(() => [
987
+ createTextVNode("Active")
988
+ ]),
989
+ _: 1
990
+ })) : row.optional ? (openBlock(), createBlock(_component_UBadge, {
991
+ key: 1,
992
+ color: "neutral",
993
+ variant: "subtle",
994
+ size: "xs"
995
+ }, {
996
+ default: withCtx(() => [
997
+ createTextVNode("Optional")
998
+ ]),
999
+ _: 1
1000
+ })) : (openBlock(), createBlock(_component_UBadge, {
1001
+ key: 2,
1002
+ color: "warning",
1003
+ variant: "subtle",
1004
+ size: "xs"
1005
+ }, {
1006
+ default: withCtx(() => [
1007
+ createTextVNode("Not set up")
1008
+ ]),
1009
+ _: 1
1010
+ }))
1011
+ ]),
1012
+ createVNode("p", { class: "text-sm text-gray-600 dark:text-gray-400" }, toDisplayString(row.summary), 1),
1013
+ !row.active ? (openBlock(), createBlock("p", {
1014
+ key: 0,
1015
+ class: "text-sm text-dimmed mt-1"
1016
+ }, toDisplayString(row.how), 1)) : createCommentVNode("", true),
1017
+ createVNode("div", { class: "flex items-center gap-3 mt-2 text-sm" }, [
1018
+ row.to && !row.active ? (openBlock(), createBlock(_component_UButton, {
1019
+ key: 0,
1020
+ to: row.to,
1021
+ size: "xs",
1022
+ variant: "soft",
1023
+ icon: "i-lucide-settings"
1024
+ }, {
1025
+ default: withCtx(() => [
1026
+ createTextVNode(toDisplayString(row.toLabel ?? "Configure"), 1)
1027
+ ]),
1028
+ _: 2
1029
+ }, 1032, ["to"])) : createCommentVNode("", true),
1030
+ row.doc ? (openBlock(), createBlock(_component_DocLink, {
1031
+ key: 1,
1032
+ to: row.doc,
1033
+ class: "text-sm"
1034
+ }, {
1035
+ default: withCtx(() => [
1036
+ createTextVNode("Docs")
1037
+ ]),
1038
+ _: 1
1039
+ }, 8, ["to"])) : createCommentVNode("", true)
1040
+ ])
1041
+ ])
1042
+ ]);
1043
+ }), 128))
1044
+ ]))
1045
+ ]),
1046
+ _: 1
1047
+ })
1048
+ ])
1049
+ ];
1050
+ }
1051
+ }),
1052
+ _: 1
1053
+ }, _parent));
1054
+ };
1055
+ }
1056
+ });
1057
+ const _sfc_setup = _sfc_main.setup;
1058
+ _sfc_main.setup = (props, ctx) => {
1059
+ const ssrContext = useSSRContext();
1060
+ (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/setup.vue");
1061
+ return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
1062
+ };
1063
+
1064
+ export { _sfc_main as default };
1065
+ //# sourceMappingURL=setup-0-1O6Hjz.mjs.map