@piwitests/server 0.20.0 → 0.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (688) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/_nuxt/{CXEH9OPk.js → 9ti9eNH9.js} +1 -1
  3. package/.output/public/_nuxt/{oAClCn_h.js → B-zdP-D4.js} +1 -1
  4. package/.output/public/_nuxt/{DsesNydr.js → B1RmmOsM.js} +1 -1
  5. package/.output/public/_nuxt/{C0_yH0N7.js → B3Fsod9X.js} +1 -1
  6. package/.output/public/_nuxt/{Cnsmicv2.js → B3rirOqU.js} +34 -34
  7. package/.output/public/_nuxt/B3zmIJYb.js +1 -0
  8. package/.output/public/_nuxt/{DuwtTfO8.js → BAKUqW95.js} +2 -2
  9. package/.output/public/_nuxt/BG0KKQiT.js +7 -0
  10. package/.output/public/_nuxt/BGL_V7Y4.js +1 -0
  11. package/.output/public/_nuxt/{Dpd16JVI.js → BGusFAvZ.js} +1 -1
  12. package/.output/public/_nuxt/{l5WKbU4h.js → BNurUTla.js} +3 -3
  13. package/.output/public/_nuxt/BR5cR2Ot.js +1 -0
  14. package/.output/public/_nuxt/BTCh_0zN.js +1 -0
  15. package/.output/public/_nuxt/{C8e1EbJI.js → BTVqMsA3.js} +1 -1
  16. package/.output/public/_nuxt/{DabzhQB1.js → B_13C0GF.js} +1 -1
  17. package/.output/public/_nuxt/BeDIjhoR.js +44 -0
  18. package/.output/public/_nuxt/{D5tke0B5.js → BerCW7Ug.js} +1 -1
  19. package/.output/public/_nuxt/{BicAJ6U8.js → BfTNbVc_.js} +1 -1
  20. package/.output/public/_nuxt/BnbSEpXX.js +1 -0
  21. package/.output/public/_nuxt/Bo_dxehb.js +1 -0
  22. package/.output/public/_nuxt/{C2hkrSey.js → BpBHls4-.js} +1 -1
  23. package/.output/public/_nuxt/{Bm62iDV5.js → BpM6ZPIG.js} +1 -1
  24. package/.output/public/_nuxt/{GPNI1ffD.js → BqGumsDo.js} +2 -2
  25. package/.output/public/_nuxt/{A1pj0VnG.js → BrxtP_cN.js} +1 -1
  26. package/.output/public/_nuxt/{KyA_4Ks-.js → C2hNxjjz.js} +1 -1
  27. package/.output/public/_nuxt/C5PSqfKi.js +2 -0
  28. package/.output/public/_nuxt/C5vsaU4G.js +1 -0
  29. package/.output/public/_nuxt/C9sdHaXd.js +1 -0
  30. package/.output/public/_nuxt/{Und3xXFc.js → CAxgBYIt.js} +2 -2
  31. package/.output/public/_nuxt/{BmUfSNMV.js → CES2i5Pl.js} +1 -1
  32. package/.output/public/_nuxt/{CNyV9YpI.js → CFEdRqaj.js} +1 -1
  33. package/.output/public/_nuxt/{Dy-TJ0Mt.js → CFTZwazK.js} +1 -1
  34. package/.output/public/_nuxt/CIBS7ye6.js +1 -0
  35. package/.output/public/_nuxt/CIEceDOw.js +1 -0
  36. package/.output/public/_nuxt/{bLcjFslv.js → CJBhojV6.js} +1 -1
  37. package/.output/public/_nuxt/{b-GYfcrQ.js → CKYddHa6.js} +1 -1
  38. package/.output/public/_nuxt/{BKkF4pPD.js → CLVWiCds.js} +1 -1
  39. package/.output/public/_nuxt/{CwGWJbiy.js → CMYAryzi.js} +1 -1
  40. package/.output/public/_nuxt/{CjPfj7ya.js → COhdybDy.js} +1 -1
  41. package/.output/public/_nuxt/{B7FTvFWq.js → CRBXM2d6.js} +2 -2
  42. package/.output/public/_nuxt/CTD_pJ_v.js +1 -0
  43. package/.output/public/_nuxt/{Cus22Ud3.js → CTP8Pw0-.js} +2 -2
  44. package/.output/public/_nuxt/{CeW8v31b.js → CV8iF2kG.js} +1 -1
  45. package/.output/public/_nuxt/{H94BMf3L.js → CWKmbYlT.js} +1 -1
  46. package/.output/public/_nuxt/C_NfGMTd.js +9 -0
  47. package/.output/public/_nuxt/Cejoebel.js +6 -0
  48. package/.output/public/_nuxt/{FaFoMVKo.js → Chpah_7l.js} +1 -1
  49. package/.output/public/_nuxt/Ci9d8YVV.js +1 -0
  50. package/.output/public/_nuxt/{CIrFl3MW.js → CifRHVaR.js} +1 -1
  51. package/.output/public/_nuxt/{DrfE8IY0.js → Ckgsh9AT.js} +1 -1
  52. package/.output/public/_nuxt/{-f7BAm1H.js → Cpsq-kYE.js} +1 -1
  53. package/.output/public/_nuxt/Cqc-DSTF.js +1 -0
  54. package/.output/public/_nuxt/{CAAwCT7H.js → CsHulb12.js} +1 -1
  55. package/.output/public/_nuxt/Ctb2CqUf.js +5 -0
  56. package/.output/public/_nuxt/CtstIQSh.js +1 -0
  57. package/.output/public/_nuxt/{DJxlKFGb.js → CvMzDKvu.js} +1 -1
  58. package/.output/public/_nuxt/{CTU1mrhq.js → D2pBhsH8.js} +1 -1
  59. package/.output/public/_nuxt/{B3obW6cw.js → D8gX1Jde.js} +2 -2
  60. package/.output/public/_nuxt/D9knOn6D.js +1 -0
  61. package/.output/public/_nuxt/DAPTVdvA.js +1 -0
  62. package/.output/public/_nuxt/{Du2W7Jne.js → DCFbQvIN.js} +42 -42
  63. package/.output/public/_nuxt/DCoJlz_q.js +1 -0
  64. package/.output/public/_nuxt/DGnQ69wW.js +64 -0
  65. package/.output/public/_nuxt/{hNh4CIL0.js → DHzij16p.js} +1 -1
  66. package/.output/public/_nuxt/DJMCXRuW.js +5 -0
  67. package/.output/public/_nuxt/DJXcGkJP.js +2 -0
  68. package/.output/public/_nuxt/{DPCxhHri.js → DKFXZdWZ.js} +1 -1
  69. package/.output/public/_nuxt/{Bnxf8nbZ.js → DL24AjfW.js} +1 -1
  70. package/.output/public/_nuxt/DON74Yh6.js +1 -0
  71. package/.output/public/_nuxt/{5A6ITZXj.js → DQM62mxB.js} +1 -1
  72. package/.output/public/_nuxt/DSe8DxMl.js +1 -0
  73. package/.output/public/_nuxt/DWwiVTZX.js +24 -0
  74. package/.output/public/_nuxt/DX4tAP78.js +1 -0
  75. package/.output/public/_nuxt/{C1gTN4Q8.js → D_eDAIsT.js} +1 -1
  76. package/.output/public/_nuxt/Da8A92cF.js +1 -0
  77. package/.output/public/_nuxt/{CzAPFPpL.js → DdH3op4b.js} +1 -1
  78. package/.output/public/_nuxt/DepFDZO3.js +1 -0
  79. package/.output/public/_nuxt/{BzRRzmwm.js → DfSBKzrC.js} +1 -1
  80. package/.output/public/_nuxt/{BdfhYr-u.js → DfnKh3dZ.js} +1 -1
  81. package/.output/public/_nuxt/{Bow4tTR0.js → DhpTfeip.js} +1 -1
  82. package/.output/public/_nuxt/{CAvY22RE.js → Dk9nD32g.js} +1 -1
  83. package/.output/public/_nuxt/{BrQEE053.js → DkT2nCqn.js} +1 -1
  84. package/.output/public/_nuxt/DlW85lQq.js +4 -0
  85. package/.output/public/_nuxt/DnNio-ut.js +1 -0
  86. package/.output/public/_nuxt/{DdwHkKfV.js → DnQv_hst.js} +1 -1
  87. package/.output/public/_nuxt/{B99fbi73.js → DqEOMteW.js} +1 -1
  88. package/.output/public/_nuxt/{4gYNA-d4.js → Dsvu7YJT.js} +1 -1
  89. package/.output/public/_nuxt/DvhCDBrR.js +2 -0
  90. package/.output/public/_nuxt/DwQaVMZR.js +1 -0
  91. package/.output/public/_nuxt/E-_n_6vi.js +1 -0
  92. package/.output/public/_nuxt/{BT3wGCTI.js → Ebw5l7n8.js} +1 -1
  93. package/.output/public/_nuxt/{CA9B2HE5.js → IPePdbzl.js} +1 -1
  94. package/.output/public/_nuxt/{DJmoLeVt.js → LHoUGrfi.js} +1 -1
  95. package/.output/public/_nuxt/{L3kAWB2a.js → NERLHpOL.js} +1 -1
  96. package/.output/public/_nuxt/{CeG9pBAD.js → RAdNGxcF.js} +1 -1
  97. package/.output/public/_nuxt/Vxyo_mU9.js +1 -0
  98. package/.output/public/_nuxt/{pQqGiNch.js → YE1kAkU9.js} +1 -1
  99. package/.output/public/_nuxt/{CsLojMwR.js → YmT5WiN5.js} +1 -1
  100. package/.output/public/_nuxt/ZcAfCxWE.js +17 -0
  101. package/.output/public/_nuxt/{CxyAzHr3.js → _rglcvXN.js} +1 -1
  102. package/.output/public/_nuxt/bFU9Y1Vw.js +10 -0
  103. package/.output/public/_nuxt/bfecIH89.js +1 -0
  104. package/.output/public/_nuxt/builds/latest.json +1 -1
  105. package/.output/public/_nuxt/builds/meta/31ca2be4-a949-4df6-9818-773fc085557a.json +1 -0
  106. package/.output/public/_nuxt/entry.BAvBQY-h.css +1 -0
  107. package/.output/public/_nuxt/four-S1Y.js +1 -0
  108. package/.output/public/_nuxt/{CJFtzlQ4.js → gV2U_Gqd.js} +1 -1
  109. package/.output/public/_nuxt/{DeY2JkR2.js → lGC893pn.js} +1 -1
  110. package/.output/public/_nuxt/nOfj-ar8.js +1 -0
  111. package/.output/public/_nuxt/oKrbs1XK.js +1 -0
  112. package/.output/public/_nuxt/oSJFAC38.js +1 -0
  113. package/.output/public/_nuxt/rL4C0HV5.js +1 -0
  114. package/.output/public/_nuxt/{Dyeqn3aG.js → tQoyVPCE.js} +1 -1
  115. package/.output/public/_nuxt/{DfgOx_ou.js → uSPCvASp.js} +1 -1
  116. package/.output/public/_nuxt/{hC_z4G8p.js → wkz5-1SO.js} +1 -1
  117. package/.output/public/_nuxt/yYlVYKCz.js +34 -0
  118. package/.output/public/_nuxt/{AbmKWFQQ.js → zv8WdMx0.js} +1 -1
  119. package/.output/server/chunks/_/scope.mjs +43 -27
  120. package/.output/server/chunks/_/scope.mjs.map +1 -1
  121. package/.output/server/chunks/_/users.mjs +1 -1
  122. package/.output/server/chunks/build/{Breadcrumb-Ak2Lg3oM.mjs → Breadcrumb-3itRZ1uz.mjs} +2 -2
  123. package/.output/server/chunks/build/Breadcrumb-3itRZ1uz.mjs.map +1 -0
  124. package/.output/server/chunks/build/{BreadcrumbNav-DO7I_z-n.mjs → BreadcrumbNav-GnjBvXuT.mjs} +2 -2
  125. package/.output/server/chunks/build/BreadcrumbNav-GnjBvXuT.mjs.map +1 -0
  126. package/.output/server/chunks/build/{BrowserBadge-MFvBwxmD.mjs → BrowserBadge-DQqJS9CV.mjs} +2 -2
  127. package/.output/server/chunks/build/BrowserBadge-DQqJS9CV.mjs.map +1 -0
  128. package/.output/server/chunks/build/{ChartCard-Y1UKwMsf.mjs → ChartCard-D0rzMf-N.mjs} +2 -2
  129. package/.output/server/chunks/build/ChartCard-D0rzMf-N.mjs.map +1 -0
  130. package/.output/server/chunks/build/{Checkbox-4Q5d0fa0.mjs → Checkbox-DmRKG-0s.mjs} +3 -3
  131. package/.output/server/chunks/build/Checkbox-DmRKG-0s.mjs.map +1 -0
  132. package/.output/server/chunks/build/{CodeBlock-BgE-NSmE.mjs → CodeBlock-DGhKVFad.mjs} +4 -4
  133. package/.output/server/chunks/build/CodeBlock-DGhKVFad.mjs.map +1 -0
  134. package/.output/server/chunks/build/{DashboardNavbar-BHmMSPX7.mjs → DashboardNavbar-DCr10nxL.mjs} +2 -2
  135. package/.output/server/chunks/build/DashboardNavbar-DCr10nxL.mjs.map +1 -0
  136. package/.output/server/chunks/build/{DashboardSidebarToggle-DCTnHiIv.mjs → DashboardSidebarToggle-8EpBhX0R.mjs} +3 -3
  137. package/.output/server/chunks/build/DashboardSidebarToggle-8EpBhX0R.mjs.map +1 -0
  138. package/.output/server/chunks/build/{DataLocationCard-B_YHdzSz.mjs → DataLocationCard-rzS-pgCP.mjs} +5 -5
  139. package/.output/server/chunks/build/DataLocationCard-rzS-pgCP.mjs.map +1 -0
  140. package/.output/server/chunks/build/{DiagnosisPanel-CALyEmcJ.mjs → DiagnosisPanel-BWTpoCKy.mjs} +8 -7
  141. package/.output/server/chunks/build/DiagnosisPanel-BWTpoCKy.mjs.map +1 -0
  142. package/.output/server/chunks/build/{useAiStatus-CxjMmDDY.mjs → DiagnosisResult-Br3qBLXe.mjs} +10 -32
  143. package/.output/server/chunks/build/DiagnosisResult-Br3qBLXe.mjs.map +1 -0
  144. package/.output/server/chunks/build/{DurationValue-D20oGbnc.mjs → DurationValue-CWKfjIF2.mjs} +2 -2
  145. package/.output/server/chunks/build/DurationValue-CWKfjIF2.mjs.map +1 -0
  146. package/.output/server/chunks/build/{EntityLinks-BBHWssHH.mjs → EntityLinks-CF0xG3Y8.mjs} +6 -6
  147. package/.output/server/chunks/build/EntityLinks-CF0xG3Y8.mjs.map +1 -0
  148. package/.output/server/chunks/build/EnvManagedBadge-UwD2b9v2.mjs +1 -1
  149. package/.output/server/chunks/build/FeatureUnavailable-CwPms6X_.mjs +83 -0
  150. package/.output/server/chunks/build/FeatureUnavailable-CwPms6X_.mjs.map +1 -0
  151. package/.output/server/chunks/build/{FormField-B0HKsdMd.mjs → FormField-e7OnSKPM.mjs} +2 -2
  152. package/.output/server/chunks/build/FormField-e7OnSKPM.mjs.map +1 -0
  153. package/.output/server/chunks/build/GetStartedWizard-CB5v1Xzu.mjs +510 -0
  154. package/.output/server/chunks/build/GetStartedWizard-CB5v1Xzu.mjs.map +1 -0
  155. package/.output/server/chunks/build/{HelpHint-DrcIv-Oj.mjs → HelpHint-DjGrGFA7.mjs} +3 -3
  156. package/.output/server/chunks/build/HelpHint-DjGrGFA7.mjs.map +1 -0
  157. package/.output/server/chunks/build/{LoadingState-C3pBSuOO.mjs → LoadingState-B8v1nWJt.mjs} +3 -3
  158. package/.output/server/chunks/build/LoadingState-B8v1nWJt.mjs.map +1 -0
  159. package/.output/server/chunks/build/{CiEnvCard-DB5DvBh1.mjs → MetaStripGroup-dXXa_MzF.mjs} +242 -529
  160. package/.output/server/chunks/build/MetaStripGroup-dXXa_MzF.mjs.map +1 -0
  161. package/.output/server/chunks/build/{MiniRunBars-CZMugDrh.mjs → MiniRunBars-fgLMgRUp.mjs} +2 -2
  162. package/.output/server/chunks/build/MiniRunBars-fgLMgRUp.mjs.map +1 -0
  163. package/.output/server/chunks/build/{useSettingsNav-DnQKacz8.mjs → NavigationMenu-cqpt11Ce.mjs} +5 -28
  164. package/.output/server/chunks/build/NavigationMenu-cqpt11Ce.mjs.map +1 -0
  165. package/.output/server/chunks/build/{OpenInIdeLink-CQWKKChd.mjs → OpenInIdeLink-B9wvQkhy.mjs} +5 -5
  166. package/.output/server/chunks/build/{OpenInIdeLink-CQWKKChd.mjs.map → OpenInIdeLink-B9wvQkhy.mjs.map} +1 -1
  167. package/.output/server/chunks/build/{ProjectTestCasesTable-Bo61P5K1.mjs → ProjectTestCasesTable-BwHEtZTz.mjs} +15 -15
  168. package/.output/server/chunks/build/ProjectTestCasesTable-BwHEtZTz.mjs.map +1 -0
  169. package/.output/server/chunks/build/{RunReports-DFLv51TX.mjs → RunReports-BDRIWn3o.mjs} +2 -2
  170. package/.output/server/chunks/build/RunReports-BDRIWn3o.mjs.map +1 -0
  171. package/.output/server/chunks/build/{RunStatusBadge-FfGb6bkW.mjs → RunStatusBadge-CuTDknRJ.mjs} +2 -2
  172. package/.output/server/chunks/build/RunStatusBadge-CuTDknRJ.mjs.map +1 -0
  173. package/.output/server/chunks/build/{SectionCard-CN-v0FZ_.mjs → SectionCard-BW5Lynrr.mjs} +2 -2
  174. package/.output/server/chunks/build/SectionCard-BW5Lynrr.mjs.map +1 -0
  175. package/.output/server/chunks/build/{Select-5DK9frQ7.mjs → Select-CVctwpib.mjs} +3 -3
  176. package/.output/server/chunks/build/Select-CVctwpib.mjs.map +1 -0
  177. package/.output/server/chunks/build/{SelectMenu-D-2FSqBU.mjs → SelectMenu-XLVBEa11.mjs} +3 -3
  178. package/.output/server/chunks/build/{SelectMenu-D-2FSqBU.mjs.map → SelectMenu-XLVBEa11.mjs.map} +1 -1
  179. package/.output/server/chunks/build/{SettingsField-BZfx4ma1.mjs → SettingsField-DvtRvI6O.mjs} +3 -3
  180. package/.output/server/chunks/build/SettingsField-DvtRvI6O.mjs.map +1 -0
  181. package/.output/server/chunks/build/{StatTile-D61Vzo6e.mjs → StatTile-DpcVQFVI.mjs} +2 -26
  182. package/.output/server/chunks/build/StatTile-DpcVQFVI.mjs.map +1 -0
  183. package/.output/server/chunks/build/StatTileGrid-7zOFUQ6j.mjs +30 -0
  184. package/.output/server/chunks/build/StatTileGrid-7zOFUQ6j.mjs.map +1 -0
  185. package/.output/server/chunks/build/{Switch-B5Fp8ULt.mjs → Switch-8zWfwI5B.mjs} +2 -2
  186. package/.output/server/chunks/build/Switch-8zWfwI5B.mjs.map +1 -0
  187. package/.output/server/chunks/build/Table-BRk04Hd2.mjs +1 -1
  188. package/.output/server/chunks/build/{TestCaseHistoryChart-CSi64vVA.mjs → TestCaseHistoryChart-C6t5RrCG.mjs} +2 -2
  189. package/.output/server/chunks/build/TestCaseHistoryChart-C6t5RrCG.mjs.map +1 -0
  190. package/.output/server/chunks/build/{TestMetaBadges-D5_yUtIP.mjs → TestMetaBadges-BlyKmfeP.mjs} +1 -1
  191. package/.output/server/chunks/build/TestMetaBadges-BlyKmfeP.mjs.map +1 -0
  192. package/.output/server/chunks/build/{TestStatusBar-DX3EhlyP.mjs → TestStatusBar-DhbrM_rQ.mjs} +3 -3
  193. package/.output/server/chunks/build/TestStatusBar-DhbrM_rQ.mjs.map +1 -0
  194. package/.output/server/chunks/build/{Textarea-Dv2-lOvW.mjs → Textarea-vkMKVQTJ.mjs} +2 -2
  195. package/.output/server/chunks/build/Textarea-vkMKVQTJ.mjs.map +1 -0
  196. package/.output/server/chunks/build/Tooltip-Dv4htNP6.mjs +1 -1
  197. package/.output/server/chunks/build/{_id_-BdG37K7s.mjs → _id_-2PMH6rl8.mjs} +20 -19
  198. package/.output/server/chunks/build/_id_-2PMH6rl8.mjs.map +1 -0
  199. package/.output/server/chunks/build/{_id_-BdJs7BJZ.mjs → _id_-8cGIgeg6.mjs} +1903 -1113
  200. package/.output/server/chunks/build/_id_-8cGIgeg6.mjs.map +1 -0
  201. package/.output/server/chunks/build/{_id_-C_uSBiyU.mjs → _id_-CUZ5S6y5.mjs} +29 -29
  202. package/.output/server/chunks/build/_id_-CUZ5S6y5.mjs.map +1 -0
  203. package/.output/server/chunks/build/{_id_-BxA6IgWr.mjs → _id_-DMkgWSLZ.mjs} +885 -381
  204. package/.output/server/chunks/build/_id_-DMkgWSLZ.mjs.map +1 -0
  205. package/.output/server/chunks/build/{about-BE0UV-8-.mjs → about-D3WXTDro.mjs} +21 -453
  206. package/.output/server/chunks/build/about-D3WXTDro.mjs.map +1 -0
  207. package/.output/server/chunks/build/{account-DAfvaD-F.mjs → account-BslDNCoo.mjs} +6 -6
  208. package/.output/server/chunks/build/account-BslDNCoo.mjs.map +1 -0
  209. package/.output/server/chunks/build/{ai-Cn05ch0u.mjs → ai-C23R9l94.mjs} +14 -14
  210. package/.output/server/chunks/build/{ai-Cn05ch0u.mjs.map → ai-C23R9l94.mjs.map} +1 -1
  211. package/.output/server/chunks/build/{analytics-Bo_B_jko.mjs → analytics-DQHeToK0.mjs} +104 -77
  212. package/.output/server/chunks/build/analytics-DQHeToK0.mjs.map +1 -0
  213. package/.output/server/chunks/build/client.precomputed.mjs +1 -1
  214. package/.output/server/chunks/build/compare-RxHSOdsO.mjs +1 -0
  215. package/.output/server/chunks/build/{db.client-CQoVTYB9.mjs → db.client-D74DghqX.mjs} +38 -2
  216. package/.output/server/chunks/build/db.client-D74DghqX.mjs.map +1 -0
  217. package/.output/server/chunks/build/{default-CbNHaFsy.mjs → default-CeyePZ5I.mjs} +32 -19
  218. package/.output/server/chunks/build/{default-CbNHaFsy.mjs.map → default-CeyePZ5I.mjs.map} +1 -1
  219. package/.output/server/chunks/build/{docs-B_llWMxx.mjs → docs-f_bnC75q.mjs} +14 -14
  220. package/.output/server/chunks/build/{docs-B_llWMxx.mjs.map → docs-f_bnC75q.mjs.map} +1 -1
  221. package/.output/server/chunks/build/{edit-J0asTFg8.mjs → edit-BOC4zWuH.mjs} +11 -12
  222. package/.output/server/chunks/build/edit-BOC4zWuH.mjs.map +1 -0
  223. package/.output/server/chunks/build/{fetch-B4FwBOzu.mjs → fetch-BQg_fhX0.mjs} +32 -4
  224. package/.output/server/chunks/build/fetch-BQg_fhX0.mjs.map +1 -0
  225. package/.output/server/chunks/build/{forgot-password-CC__1OnV.mjs → forgot-password-CxuVbGWy.mjs} +4 -3
  226. package/.output/server/chunks/build/forgot-password-CxuVbGWy.mjs.map +1 -0
  227. package/.output/server/chunks/build/{import-CS9oylTN.mjs → import-CC27wEIu.mjs} +12 -12
  228. package/.output/server/chunks/build/import-CC27wEIu.mjs.map +1 -0
  229. package/.output/server/chunks/build/{index-e9skCi-V.mjs → index-B6PjfyTY.mjs} +39 -537
  230. package/.output/server/chunks/build/index-B6PjfyTY.mjs.map +1 -0
  231. package/.output/server/chunks/build/{index-CU2nZhAa.mjs → index-BOK1aJk9.mjs} +2 -1
  232. package/.output/server/chunks/build/index-BOK1aJk9.mjs.map +1 -0
  233. package/.output/server/chunks/build/{index-hGHlmyxj.mjs → index-BhS1DuCr.mjs} +117 -76
  234. package/.output/server/chunks/build/index-BhS1DuCr.mjs.map +1 -0
  235. package/.output/server/chunks/build/{index-DE45ycdZ.mjs → index-DUmjP3Gr.mjs} +12 -13
  236. package/.output/server/chunks/build/index-DUmjP3Gr.mjs.map +1 -0
  237. package/.output/server/chunks/build/index-jvF53f7_.mjs +91 -0
  238. package/.output/server/chunks/build/index-jvF53f7_.mjs.map +1 -0
  239. package/.output/server/chunks/build/isValueEqualOrExist-D2qw9YEr.mjs +1 -1
  240. package/.output/server/chunks/build/{login-Da4u1IlW.mjs → login-CdpOhiP8.mjs} +8 -7
  241. package/.output/server/chunks/build/login-CdpOhiP8.mjs.map +1 -0
  242. package/.output/server/chunks/build/{mcp-uhVCCwQM.mjs → mcp-WTeO5WRo.mjs} +193 -10
  243. package/.output/server/chunks/build/mcp-WTeO5WRo.mjs.map +1 -0
  244. package/.output/server/chunks/build/{notifications-fx_qnKGA.mjs → notifications-yY6ik-fi.mjs} +9 -9
  245. package/.output/server/chunks/build/notifications-yY6ik-fi.mjs.map +1 -0
  246. package/.output/server/chunks/build/{pr-feedback-X6-70iF0.mjs → pr-feedback-Hv2Ydh_6.mjs} +7 -7
  247. package/.output/server/chunks/build/pr-feedback-Hv2Ydh_6.mjs.map +1 -0
  248. package/.output/server/chunks/build/{reset-password-BmrUS4ZD.mjs → reset-password-CFtO8A6n.mjs} +4 -3
  249. package/.output/server/chunks/build/reset-password-CFtO8A6n.mjs.map +1 -0
  250. package/.output/server/chunks/build/server.mjs +51 -34
  251. package/.output/server/chunks/build/{settings-CCYe7rsc.mjs → settings-DIpvnY8_.mjs} +10 -8
  252. package/.output/server/chunks/build/settings-DIpvnY8_.mjs.map +1 -0
  253. package/.output/server/chunks/build/{settings-metadata-DrEqWcW-.mjs → settings-metadata-DRv9VveS.mjs} +32 -2
  254. package/.output/server/chunks/build/settings-metadata-DRv9VveS.mjs.map +1 -0
  255. package/.output/server/chunks/build/setup-Di0UMyWx.mjs +1116 -0
  256. package/.output/server/chunks/build/setup-Di0UMyWx.mjs.map +1 -0
  257. package/.output/server/chunks/build/{storage-CJEmviCD.mjs → storage-gAbY1KbQ.mjs} +10 -10
  258. package/.output/server/chunks/build/storage-gAbY1KbQ.mjs.map +1 -0
  259. package/.output/server/chunks/build/{tags-DauTe_F-.mjs → tags-DJ80wCqt.mjs} +6 -7
  260. package/.output/server/chunks/build/tags-DJ80wCqt.mjs.map +1 -0
  261. package/.output/server/chunks/build/{test-cases-thBbAykw.mjs → test-cases-YP83YlnL.mjs} +18 -18
  262. package/.output/server/chunks/build/test-cases-YP83YlnL.mjs.map +1 -0
  263. package/.output/server/chunks/build/test-functions-BwLTxGmM.mjs +550 -0
  264. package/.output/server/chunks/build/test-functions-BwLTxGmM.mjs.map +1 -0
  265. package/.output/server/chunks/build/{timeout-hygiene-CbnSaVbK.mjs → timeout-hygiene-RpXDjXTX.mjs} +6 -6
  266. package/.output/server/chunks/build/timeout-hygiene-RpXDjXTX.mjs.map +1 -0
  267. package/.output/server/chunks/build/useAiStatus-UR8x-feE.mjs +9 -0
  268. package/.output/server/chunks/build/useAiStatus-UR8x-feE.mjs.map +1 -0
  269. package/.output/server/chunks/build/{useCopyRich-RJKhWoyj.mjs → useCopyRich-Cd5Yj_Wy.mjs} +694 -242
  270. package/.output/server/chunks/build/useCopyRich-Cd5Yj_Wy.mjs.map +1 -0
  271. package/.output/server/chunks/build/{useDesktopDownload-BepjqxOt.mjs → useDesktopDownload-BmR6ouz2.mjs} +2 -2
  272. package/.output/server/chunks/build/useDesktopDownload-BmR6ouz2.mjs.map +1 -0
  273. package/.output/server/chunks/build/{useOpenInIde-BbTnPhFA.mjs → useOpenInIde-DolN3bZ5.mjs} +1 -1
  274. package/.output/server/chunks/build/useOpenInIde-DolN3bZ5.mjs.map +1 -0
  275. package/.output/server/chunks/build/useSettingsNav-DfnOFlR_.mjs +19 -0
  276. package/.output/server/chunks/build/useSettingsNav-DfnOFlR_.mjs.map +1 -0
  277. package/.output/server/chunks/build/{users-CTUqXyGh.mjs → users-I2K7HXS2.mjs} +6 -7
  278. package/.output/server/chunks/build/users-I2K7HXS2.mjs.map +1 -0
  279. package/.output/server/chunks/build/{wasted-time-BNTPIyrC.mjs → wasted-time-DyIk0olc.mjs} +9 -9
  280. package/.output/server/chunks/build/wasted-time-DyIk0olc.mjs.map +1 -0
  281. package/.output/server/chunks/nitro/nitro.mjs +1348 -675
  282. package/.output/server/chunks/nitro/nitro.mjs.map +1 -1
  283. package/.output/server/chunks/routes/__piwi/session.get.mjs +2 -1
  284. package/.output/server/chunks/routes/__piwi/session.get.mjs.map +1 -1
  285. package/.output/server/chunks/routes/api/admin/cleanup.delete.mjs +1 -0
  286. package/.output/server/chunks/routes/api/admin/cleanup.delete.mjs.map +1 -1
  287. package/.output/server/chunks/routes/api/admin/stats.get.mjs +1 -0
  288. package/.output/server/chunks/routes/api/admin/stats.get.mjs.map +1 -1
  289. package/.output/server/chunks/routes/api/ai/status.get.mjs +1 -0
  290. package/.output/server/chunks/routes/api/ai/status.get.mjs.map +1 -1
  291. package/.output/server/chunks/routes/api/analytics/_widget_.get.mjs +1 -0
  292. package/.output/server/chunks/routes/api/analytics/_widget_.get.mjs.map +1 -1
  293. package/.output/server/chunks/routes/api/auth/logout.post.mjs +1 -0
  294. package/.output/server/chunks/routes/api/auth/logout.post.mjs.map +1 -1
  295. package/.output/server/chunks/routes/api/auth/me.get.mjs +1 -0
  296. package/.output/server/chunks/routes/api/auth/me.get.mjs.map +1 -1
  297. package/.output/server/chunks/routes/api/auth/oauth/_provider/callback.get.mjs +1 -0
  298. package/.output/server/chunks/routes/api/auth/oauth/_provider/callback.get.mjs.map +1 -1
  299. package/.output/server/chunks/routes/api/auth/oauth/_provider/login.get.mjs +1 -0
  300. package/.output/server/chunks/routes/api/auth/oauth/_provider/login.get.mjs.map +1 -1
  301. package/.output/server/chunks/routes/api/auth/oauth/_provider/unlink.post.mjs +1 -0
  302. package/.output/server/chunks/routes/api/auth/oauth/_provider/unlink.post.mjs.map +1 -1
  303. package/.output/server/chunks/routes/api/auth/send-verify-email.post.mjs +1 -0
  304. package/.output/server/chunks/routes/api/auth/send-verify-email.post.mjs.map +1 -1
  305. package/.output/server/chunks/routes/api/auth/setup.get.mjs +1 -0
  306. package/.output/server/chunks/routes/api/auth/setup.get.mjs.map +1 -1
  307. package/.output/server/chunks/routes/api/auth/verify-email.get.mjs +1 -0
  308. package/.output/server/chunks/routes/api/auth/verify-email.get.mjs.map +1 -1
  309. package/.output/server/chunks/routes/api/channels/_id/test.post.mjs +1 -0
  310. package/.output/server/chunks/routes/api/channels/_id/test.post.mjs.map +1 -1
  311. package/.output/server/chunks/routes/api/channels/_id_.delete.mjs +1 -0
  312. package/.output/server/chunks/routes/api/channels/_id_.delete.mjs.map +1 -1
  313. package/.output/server/chunks/routes/api/cluster-merge-suggestions/_id/approve.post.mjs +1 -0
  314. package/.output/server/chunks/routes/api/cluster-merge-suggestions/_id/approve.post.mjs.map +1 -1
  315. package/.output/server/chunks/routes/api/cluster-merge-suggestions/_id/reject.post.mjs +1 -0
  316. package/.output/server/chunks/routes/api/cluster-merge-suggestions/_id/reject.post.mjs.map +1 -1
  317. package/.output/server/chunks/routes/api/desktop/import-local.post.mjs +1 -0
  318. package/.output/server/chunks/routes/api/desktop/import-local.post.mjs.map +1 -1
  319. package/.output/server/chunks/routes/api/desktop/reporter-config.get.mjs +1 -0
  320. package/.output/server/chunks/routes/api/desktop/reporter-config.get.mjs.map +1 -1
  321. package/.output/server/chunks/routes/api/failure-clusters/_id/base-commit.patch.mjs +1 -0
  322. package/.output/server/chunks/routes/api/failure-clusters/_id/base-commit.patch.mjs.map +1 -1
  323. package/.output/server/chunks/routes/api/failure-clusters/_id/branches.get.mjs +1 -0
  324. package/.output/server/chunks/routes/api/failure-clusters/_id/branches.get.mjs.map +1 -1
  325. package/.output/server/chunks/routes/api/failure-clusters/_id/commit-diff.get.mjs +1 -0
  326. package/.output/server/chunks/routes/api/failure-clusters/_id/commit-diff.get.mjs.map +1 -1
  327. package/.output/server/chunks/routes/api/failure-clusters/_id/commits.get.mjs +1 -0
  328. package/.output/server/chunks/routes/api/failure-clusters/_id/commits.get.mjs.map +1 -1
  329. package/.output/server/chunks/routes/api/failure-clusters/_id/context.get.mjs +1 -0
  330. package/.output/server/chunks/routes/api/failure-clusters/_id/context.get.mjs.map +1 -1
  331. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnose/stream.post.mjs +1 -0
  332. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnose/stream.post.mjs.map +1 -1
  333. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnose.post.mjs +1 -0
  334. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnose.post.mjs.map +1 -1
  335. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnoses.get.mjs +1 -0
  336. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnoses.get.mjs.map +1 -1
  337. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnosis.get.mjs +1 -0
  338. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnosis.get.mjs.map +1 -1
  339. package/.output/server/chunks/routes/api/failure-clusters/_id/export.get.mjs +1 -0
  340. package/.output/server/chunks/routes/api/failure-clusters/_id/export.get.mjs.map +1 -1
  341. package/.output/server/chunks/routes/api/failure-clusters/_id/extract-cases.post.mjs +1 -0
  342. package/.output/server/chunks/routes/api/failure-clusters/_id/extract-cases.post.mjs.map +1 -1
  343. package/.output/server/chunks/routes/api/failure-clusters/_id/fix-plan.get.mjs +1 -0
  344. package/.output/server/chunks/routes/api/failure-clusters/_id/fix-plan.get.mjs.map +1 -1
  345. package/.output/server/chunks/routes/api/failure-clusters/_id/status.patch.mjs +1 -0
  346. package/.output/server/chunks/routes/api/failure-clusters/_id/status.patch.mjs.map +1 -1
  347. package/.output/server/chunks/routes/api/failure-clusters/_id_.get.mjs +1 -0
  348. package/.output/server/chunks/routes/api/failure-clusters/_id_.get.mjs.map +1 -1
  349. package/.output/server/chunks/routes/api/failure-diagnoses/_id/feedback.patch.mjs +1 -0
  350. package/.output/server/chunks/routes/api/failure-diagnoses/_id/feedback.patch.mjs.map +1 -1
  351. package/.output/server/chunks/routes/api/files/_...path_.get.mjs +1 -0
  352. package/.output/server/chunks/routes/api/files/_...path_.get.mjs.map +1 -1
  353. package/.output/server/chunks/routes/api/health.get.mjs +1 -0
  354. package/.output/server/chunks/routes/api/health.get.mjs.map +1 -1
  355. package/.output/server/chunks/routes/api/index.get.mjs +1 -0
  356. package/.output/server/chunks/routes/api/index.get.mjs.map +1 -1
  357. package/.output/server/chunks/routes/api/index.get2.mjs +1 -0
  358. package/.output/server/chunks/routes/api/index.get2.mjs.map +1 -1
  359. package/.output/server/chunks/routes/api/index.get3.mjs +1 -0
  360. package/.output/server/chunks/routes/api/index.get3.mjs.map +1 -1
  361. package/.output/server/chunks/routes/api/index.get4.mjs +2 -1
  362. package/.output/server/chunks/routes/api/index.get4.mjs.map +1 -1
  363. package/.output/server/chunks/routes/api/index.get5.mjs +1 -0
  364. package/.output/server/chunks/routes/api/index.get5.mjs.map +1 -1
  365. package/.output/server/chunks/routes/api/index.post3.mjs +1 -1
  366. package/.output/server/chunks/routes/api/index.post4.mjs +1 -1
  367. package/.output/server/chunks/routes/api/index.post5.mjs +1 -1
  368. package/.output/server/chunks/routes/api/links/_id/refresh.post.mjs +1 -0
  369. package/.output/server/chunks/routes/api/links/_id/refresh.post.mjs.map +1 -1
  370. package/.output/server/chunks/routes/api/links/_id_.delete.mjs +1 -0
  371. package/.output/server/chunks/routes/api/links/_id_.delete.mjs.map +1 -1
  372. package/.output/server/chunks/routes/api/markers/_id_.delete.mjs +1 -0
  373. package/.output/server/chunks/routes/api/markers/_id_.delete.mjs.map +1 -1
  374. package/.output/server/chunks/routes/api/notifications/stream.get.mjs +1 -0
  375. package/.output/server/chunks/routes/api/notifications/stream.get.mjs.map +1 -1
  376. package/.output/server/chunks/routes/api/projects/_id/cluster-merge-suggestions.get.mjs +1 -0
  377. package/.output/server/chunks/routes/api/projects/_id/cluster-merge-suggestions.get.mjs.map +1 -1
  378. package/.output/server/chunks/routes/api/projects/_id/failure-clusters.get.mjs +1 -0
  379. package/.output/server/chunks/routes/api/projects/_id/failure-clusters.get.mjs.map +1 -1
  380. package/.output/server/chunks/routes/api/projects/_id/flaky-classify.post.mjs +1 -0
  381. package/.output/server/chunks/routes/api/projects/_id/flaky-classify.post.mjs.map +1 -1
  382. package/.output/server/chunks/routes/api/projects/_id/flaky-tests.get.mjs +1 -0
  383. package/.output/server/chunks/routes/api/projects/_id/flaky-tests.get.mjs.map +1 -1
  384. package/.output/server/chunks/routes/api/projects/_id/latest-run.get.mjs +1 -0
  385. package/.output/server/chunks/routes/api/projects/_id/latest-run.get.mjs.map +1 -1
  386. package/.output/server/chunks/routes/api/projects/_id/markers.get.mjs +1 -0
  387. package/.output/server/chunks/routes/api/projects/_id/markers.get.mjs.map +1 -1
  388. package/.output/server/chunks/routes/api/projects/_id/members.get.mjs +1 -0
  389. package/.output/server/chunks/routes/api/projects/_id/members.get.mjs.map +1 -1
  390. package/.output/server/chunks/routes/api/projects/_id/performance.get.mjs +1 -0
  391. package/.output/server/chunks/routes/api/projects/_id/performance.get.mjs.map +1 -1
  392. package/.output/server/chunks/routes/api/projects/_id/quarantine/_testCaseId_.delete.mjs +1 -0
  393. package/.output/server/chunks/routes/api/projects/_id/quarantine/_testCaseId_.delete.mjs.map +1 -1
  394. package/.output/server/chunks/routes/api/projects/_id/quarantine.get.mjs +1 -0
  395. package/.output/server/chunks/routes/api/projects/_id/quarantine.get.mjs.map +1 -1
  396. package/.output/server/chunks/routes/api/projects/_id/quarantine.post.mjs +1 -0
  397. package/.output/server/chunks/routes/api/projects/_id/quarantine.post.mjs.map +1 -1
  398. package/.output/server/chunks/routes/api/projects/_id/slow-tests.get.mjs +1 -0
  399. package/.output/server/chunks/routes/api/projects/_id/slow-tests.get.mjs.map +1 -1
  400. package/.output/server/chunks/routes/api/projects/_id/spec-health.get.mjs +1 -0
  401. package/.output/server/chunks/routes/api/projects/_id/spec-health.get.mjs.map +1 -1
  402. package/.output/server/chunks/routes/api/projects/_id/test-cases.get.mjs +1 -0
  403. package/.output/server/chunks/routes/api/projects/_id/test-cases.get.mjs.map +1 -1
  404. package/.output/server/chunks/routes/api/projects/_id/test-functions/extract.post.mjs +76 -0
  405. package/.output/server/chunks/routes/api/projects/_id/test-functions/extract.post.mjs.map +1 -0
  406. package/.output/server/chunks/routes/api/projects/_id/test-functions/validate-proposal.post.mjs +66 -0
  407. package/.output/server/chunks/routes/api/projects/_id/test-functions/validate-proposal.post.mjs.map +1 -0
  408. package/.output/server/chunks/routes/api/projects/_id/test-functions.get.mjs +53 -0
  409. package/.output/server/chunks/routes/api/projects/_id/test-functions.get.mjs.map +1 -0
  410. package/.output/server/chunks/routes/api/projects/_id/test-functions.post.mjs +67 -0
  411. package/.output/server/chunks/routes/api/projects/_id/test-functions.post.mjs.map +1 -0
  412. package/.output/server/chunks/routes/api/projects/_id/timeout-opportunities.get.mjs +2 -1
  413. package/.output/server/chunks/routes/api/projects/_id/timeout-opportunities.get.mjs.map +1 -1
  414. package/.output/server/chunks/routes/api/projects/_id_.delete.mjs +1 -0
  415. package/.output/server/chunks/routes/api/projects/_id_.delete.mjs.map +1 -1
  416. package/.output/server/chunks/routes/api/projects/_id_.get.mjs +1 -0
  417. package/.output/server/chunks/routes/api/projects/_id_.get.mjs.map +1 -1
  418. package/.output/server/chunks/routes/api/projects/menu.get.mjs +2 -1
  419. package/.output/server/chunks/routes/api/projects/menu.get.mjs.map +1 -1
  420. package/.output/server/chunks/routes/api/projects/overview.get.mjs +2 -1
  421. package/.output/server/chunks/routes/api/projects/overview.get.mjs.map +1 -1
  422. package/.output/server/chunks/routes/api/projects.get.mjs +1 -0
  423. package/.output/server/chunks/routes/api/projects.get.mjs.map +1 -1
  424. package/.output/server/chunks/routes/api/search.get.mjs +2 -1
  425. package/.output/server/chunks/routes/api/search.get.mjs.map +1 -1
  426. package/.output/server/chunks/routes/api/settings/ai/limits.get.mjs +2 -1
  427. package/.output/server/chunks/routes/api/settings/ai/limits.get.mjs.map +1 -1
  428. package/.output/server/chunks/routes/api/settings/ai/limits.put.mjs +2 -1
  429. package/.output/server/chunks/routes/api/settings/ai/limits.put.mjs.map +1 -1
  430. package/.output/server/chunks/routes/api/settings/ai/models.post.mjs +1 -0
  431. package/.output/server/chunks/routes/api/settings/ai/models.post.mjs.map +1 -1
  432. package/.output/server/chunks/routes/api/settings/ai/test.post.mjs +2 -1
  433. package/.output/server/chunks/routes/api/settings/ai/test.post.mjs.map +1 -1
  434. package/.output/server/chunks/routes/api/settings/ai/usage.get.mjs +1 -0
  435. package/.output/server/chunks/routes/api/settings/ai/usage.get.mjs.map +1 -1
  436. package/.output/server/chunks/routes/api/settings/ai.get.mjs +2 -1
  437. package/.output/server/chunks/routes/api/settings/ai.get.mjs.map +1 -1
  438. package/.output/server/chunks/routes/api/settings/ai.put.mjs +2 -1
  439. package/.output/server/chunks/routes/api/settings/ai.put.mjs.map +1 -1
  440. package/.output/server/chunks/routes/api/settings/pr-feedback.get.mjs +2 -1
  441. package/.output/server/chunks/routes/api/settings/pr-feedback.get.mjs.map +1 -1
  442. package/.output/server/chunks/routes/api/settings/pr-feedback.put.mjs +2 -1
  443. package/.output/server/chunks/routes/api/settings/pr-feedback.put.mjs.map +1 -1
  444. package/.output/server/chunks/routes/api/settings/smtp.get.mjs +2 -1
  445. package/.output/server/chunks/routes/api/settings/smtp.get.mjs.map +1 -1
  446. package/.output/server/chunks/routes/api/settings/timeout-hygiene.get.mjs +2 -1
  447. package/.output/server/chunks/routes/api/settings/timeout-hygiene.get.mjs.map +1 -1
  448. package/.output/server/chunks/routes/api/settings/timeout-hygiene.put.mjs +2 -1
  449. package/.output/server/chunks/routes/api/settings/timeout-hygiene.put.mjs.map +1 -1
  450. package/.output/server/chunks/routes/api/settings/wasted-waits.get.mjs +2 -1
  451. package/.output/server/chunks/routes/api/settings/wasted-waits.get.mjs.map +1 -1
  452. package/.output/server/chunks/routes/api/settings/wasted-waits.put.mjs +2 -1
  453. package/.output/server/chunks/routes/api/settings/wasted-waits.put.mjs.map +1 -1
  454. package/.output/server/chunks/routes/api/setup-status.get.mjs +99 -0
  455. package/.output/server/chunks/routes/api/setup-status.get.mjs.map +1 -0
  456. package/.output/server/chunks/routes/api/stream.get.mjs +1 -0
  457. package/.output/server/chunks/routes/api/stream.get.mjs.map +1 -1
  458. package/.output/server/chunks/routes/api/subscriptions/_id_.delete.mjs +1 -0
  459. package/.output/server/chunks/routes/api/subscriptions/_id_.delete.mjs.map +1 -1
  460. package/.output/server/chunks/routes/api/subscriptions/_id_.patch.mjs +1 -1
  461. package/.output/server/chunks/routes/api/tags/_id_.delete.mjs +2 -1
  462. package/.output/server/chunks/routes/api/tags/_id_.delete.mjs.map +1 -1
  463. package/.output/server/chunks/routes/api/tags/_id_.put.mjs +1 -1
  464. package/.output/server/chunks/routes/api/test-cases/_id/history.get.mjs +2 -1
  465. package/.output/server/chunks/routes/api/test-cases/_id/history.get.mjs.map +1 -1
  466. package/.output/server/chunks/routes/api/test-cases/_id/stability-trend.get.mjs +2 -1
  467. package/.output/server/chunks/routes/api/test-cases/_id/stability-trend.get.mjs.map +1 -1
  468. package/.output/server/chunks/routes/api/test-cases/_id_.get.mjs +2 -1
  469. package/.output/server/chunks/routes/api/test-cases/_id_.get.mjs.map +1 -1
  470. package/.output/server/chunks/routes/api/test-functions/_id_.delete.mjs +60 -0
  471. package/.output/server/chunks/routes/api/test-functions/_id_.delete.mjs.map +1 -0
  472. package/.output/server/chunks/routes/api/test-functions/_id_.put.mjs +69 -0
  473. package/.output/server/chunks/routes/api/test-functions/_id_.put.mjs.map +1 -0
  474. package/.output/server/chunks/routes/api/test-run-cases/_id/diagnose.post.mjs +2 -1
  475. package/.output/server/chunks/routes/api/test-run-cases/_id/diagnose.post.mjs.map +1 -1
  476. package/.output/server/chunks/routes/api/test-run-cases/_id/diagnosis-context.get.mjs +2 -1
  477. package/.output/server/chunks/routes/api/test-run-cases/_id/diagnosis-context.get.mjs.map +1 -1
  478. package/.output/server/chunks/routes/api/test-run-cases/_id/diagnosis.get.mjs +2 -1
  479. package/.output/server/chunks/routes/api/test-run-cases/_id/diagnosis.get.mjs.map +1 -1
  480. package/.output/server/chunks/routes/api/test-run-cases/_id/export.get.mjs +2 -1
  481. package/.output/server/chunks/routes/api/test-run-cases/_id/export.get.mjs.map +1 -1
  482. package/.output/server/chunks/routes/api/test-run-cases/_id/traces.get.mjs +2 -1
  483. package/.output/server/chunks/routes/api/test-run-cases/_id/traces.get.mjs.map +1 -1
  484. package/.output/server/chunks/routes/api/test-run-cases/_id_.get.mjs +2 -1
  485. package/.output/server/chunks/routes/api/test-run-cases/_id_.get.mjs.map +1 -1
  486. package/.output/server/chunks/routes/api/test-runs/_id/begin.post.mjs +2 -1
  487. package/.output/server/chunks/routes/api/test-runs/_id/begin.post.mjs.map +1 -1
  488. package/.output/server/chunks/routes/api/test-runs/_id/case-files.post.mjs +2 -1
  489. package/.output/server/chunks/routes/api/test-runs/_id/case-files.post.mjs.map +1 -1
  490. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/dom-snapshot.get.mjs +2 -1
  491. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/dom-snapshot.get.mjs.map +1 -1
  492. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/environment-diff.get.mjs +2 -1
  493. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/environment-diff.get.mjs.map +1 -1
  494. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/locator-healing.get.mjs +2 -1
  495. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/locator-healing.get.mjs.map +1 -1
  496. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/locator-pick.post.mjs +2 -1
  497. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/locator-pick.post.mjs.map +1 -1
  498. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-network-body.get.mjs +2 -1
  499. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-network-body.get.mjs.map +1 -1
  500. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-network.get.mjs +2 -1
  501. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-network.get.mjs.map +1 -1
  502. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-stacks.get.mjs +2 -1
  503. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-stacks.get.mjs.map +1 -1
  504. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/visual-diff.get.mjs +2 -1
  505. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/visual-diff.get.mjs.map +1 -1
  506. package/.output/server/chunks/routes/api/test-runs/_id/events.post.mjs +2 -1
  507. package/.output/server/chunks/routes/api/test-runs/_id/events.post.mjs.map +1 -1
  508. package/.output/server/chunks/routes/api/test-runs/_id/failure-groups.get.mjs +2 -1
  509. package/.output/server/chunks/routes/api/test-runs/_id/failure-groups.get.mjs.map +1 -1
  510. package/.output/server/chunks/routes/api/test-runs/_id/finish.post.mjs +2 -1
  511. package/.output/server/chunks/routes/api/test-runs/_id/finish.post.mjs.map +1 -1
  512. package/.output/server/chunks/routes/api/test-runs/_id/gate.post.mjs +2 -1
  513. package/.output/server/chunks/routes/api/test-runs/_id/gate.post.mjs.map +1 -1
  514. package/.output/server/chunks/routes/api/test-runs/_id/heartbeat.post.mjs +2 -1
  515. package/.output/server/chunks/routes/api/test-runs/_id/heartbeat.post.mjs.map +1 -1
  516. package/.output/server/chunks/routes/api/test-runs/_id/insights.get.mjs +2 -1
  517. package/.output/server/chunks/routes/api/test-runs/_id/insights.get.mjs.map +1 -1
  518. package/.output/server/chunks/routes/api/test-runs/_id/network-requests.get.mjs +2 -1
  519. package/.output/server/chunks/routes/api/test-runs/_id/network-requests.get.mjs.map +1 -1
  520. package/.output/server/chunks/routes/api/test-runs/_id/regression-context.get.mjs +2 -1
  521. package/.output/server/chunks/routes/api/test-runs/_id/regression-context.get.mjs.map +1 -1
  522. package/.output/server/chunks/routes/api/test-runs/_id/stream.get.mjs +2 -1
  523. package/.output/server/chunks/routes/api/test-runs/_id/stream.get.mjs.map +1 -1
  524. package/.output/server/chunks/routes/api/test-runs/_id/summary.get.mjs +2 -1
  525. package/.output/server/chunks/routes/api/test-runs/_id/summary.get.mjs.map +1 -1
  526. package/.output/server/chunks/routes/api/test-runs/_id_.delete.mjs +2 -1
  527. package/.output/server/chunks/routes/api/test-runs/_id_.delete.mjs.map +1 -1
  528. package/.output/server/chunks/routes/api/test-runs/_id_.get.mjs +2 -1
  529. package/.output/server/chunks/routes/api/test-runs/_id_.get.mjs.map +1 -1
  530. package/.output/server/chunks/routes/api/test-runs/_id_.patch.mjs +2 -1
  531. package/.output/server/chunks/routes/api/test-runs/_id_.patch.mjs.map +1 -1
  532. package/.output/server/chunks/routes/api/test-runs/import/check.post.mjs +2 -1
  533. package/.output/server/chunks/routes/api/test-runs/import/check.post.mjs.map +1 -1
  534. package/.output/server/chunks/routes/api/test-runs/import.post.mjs +2 -1
  535. package/.output/server/chunks/routes/api/test-runs/import.post.mjs.map +1 -1
  536. package/.output/server/chunks/routes/api/test-runs/recent.get.mjs +2 -1
  537. package/.output/server/chunks/routes/api/test-runs/recent.get.mjs.map +1 -1
  538. package/.output/server/chunks/routes/api/test-runs/setup.post.mjs +2 -1
  539. package/.output/server/chunks/routes/api/test-runs/setup.post.mjs.map +1 -1
  540. package/.output/server/chunks/routes/api/test-runs/start.post.mjs +2 -1
  541. package/.output/server/chunks/routes/api/test-runs/start.post.mjs.map +1 -1
  542. package/.output/server/chunks/routes/api/test-runs/submit.post.mjs +2 -1
  543. package/.output/server/chunks/routes/api/test-runs/submit.post.mjs.map +1 -1
  544. package/.output/server/chunks/routes/api/test-runs/upload.post.mjs +2 -1
  545. package/.output/server/chunks/routes/api/test-runs/upload.post.mjs.map +1 -1
  546. package/.output/server/chunks/routes/api/tests/cleanup.delete.mjs +1 -0
  547. package/.output/server/chunks/routes/api/tests/cleanup.delete.mjs.map +1 -1
  548. package/.output/server/chunks/routes/api/traces/check.post.mjs +2 -1
  549. package/.output/server/chunks/routes/api/traces/check.post.mjs.map +1 -1
  550. package/.output/server/chunks/routes/api/users/_id/api-keys/_keyId_.delete.mjs +1 -0
  551. package/.output/server/chunks/routes/api/users/_id/api-keys/_keyId_.delete.mjs.map +1 -1
  552. package/.output/server/chunks/routes/api/users/_id/index.get.mjs +1 -0
  553. package/.output/server/chunks/routes/api/users/_id/index.get.mjs.map +1 -1
  554. package/.output/server/chunks/routes/api/users/_id/index.post.mjs +1 -1
  555. package/.output/server/chunks/routes/api/users/_id/invite.post.mjs +2 -1
  556. package/.output/server/chunks/routes/api/users/_id/invite.post.mjs.map +1 -1
  557. package/.output/server/chunks/routes/api/users/_id/projects.get.mjs +2 -1
  558. package/.output/server/chunks/routes/api/users/_id/projects.get.mjs.map +1 -1
  559. package/.output/server/chunks/routes/api/users/_id/projects.put.mjs +1 -1
  560. package/.output/server/chunks/routes/api/users/_id_.delete.mjs +1 -0
  561. package/.output/server/chunks/routes/api/users/_id_.delete.mjs.map +1 -1
  562. package/.output/server/chunks/routes/api/version.get.mjs +2 -1
  563. package/.output/server/chunks/routes/api/version.get.mjs.map +1 -1
  564. package/.output/server/chunks/routes/mcp.post.mjs +41 -11
  565. package/.output/server/chunks/routes/mcp.post.mjs.map +1 -1
  566. package/.output/server/chunks/routes/renderer.mjs +1 -1
  567. package/.output/server/chunks/tasks/sweep.mjs +1 -0
  568. package/.output/server/chunks/tasks/sweep.mjs.map +1 -1
  569. package/.output/server/chunks/tasks/sweep2.mjs +1 -0
  570. package/.output/server/chunks/tasks/sweep2.mjs.map +1 -1
  571. package/.output/server/database/migrations/0043_watery_dragon_lord.sql +22 -0
  572. package/.output/server/database/migrations/meta/0043_snapshot.json +3764 -0
  573. package/.output/server/database/migrations/meta/_journal.json +7 -0
  574. package/.output/server/database/migrations-pg/0044_dark_triathlon.sql +22 -0
  575. package/.output/server/database/migrations-pg/meta/0044_snapshot.json +4473 -0
  576. package/.output/server/database/migrations-pg/meta/_journal.json +7 -0
  577. package/.output/server/index.mjs +2 -1
  578. package/.output/server/index.mjs.map +1 -1
  579. package/.output/server/package.json +1 -1
  580. package/package.json +1 -1
  581. package/.output/public/_nuxt/8PUUncmO.js +0 -44
  582. package/.output/public/_nuxt/B8zkOmwo.js +0 -1
  583. package/.output/public/_nuxt/B96M2gdj.js +0 -1
  584. package/.output/public/_nuxt/B9OLmp0f.js +0 -1
  585. package/.output/public/_nuxt/BUa0V0Ly.js +0 -1
  586. package/.output/public/_nuxt/BUkim3TM.js +0 -1
  587. package/.output/public/_nuxt/BVc14Ncz.js +0 -4
  588. package/.output/public/_nuxt/BY0HxR3t.js +0 -17
  589. package/.output/public/_nuxt/B_xAMWQS.js +0 -2
  590. package/.output/public/_nuxt/BdQoBaOv.js +0 -1
  591. package/.output/public/_nuxt/BgRu_3tT.js +0 -1
  592. package/.output/public/_nuxt/BiO7RBWb.js +0 -6
  593. package/.output/public/_nuxt/CEfS4-oS.js +0 -64
  594. package/.output/public/_nuxt/CIoSMkpp.js +0 -1
  595. package/.output/public/_nuxt/CSJ-eOQM.js +0 -1
  596. package/.output/public/_nuxt/CahpB9Z2.js +0 -5
  597. package/.output/public/_nuxt/Cbh--1MW.js +0 -1
  598. package/.output/public/_nuxt/Cx6gc2VW.js +0 -1
  599. package/.output/public/_nuxt/D--H4jLI.js +0 -1
  600. package/.output/public/_nuxt/D1POo6S4.js +0 -10
  601. package/.output/public/_nuxt/D8nkF-OO.js +0 -3
  602. package/.output/public/_nuxt/DA25RkyK.js +0 -1
  603. package/.output/public/_nuxt/DIB-5fUJ.js +0 -1
  604. package/.output/public/_nuxt/DMec-OLo.js +0 -1
  605. package/.output/public/_nuxt/DSqHUrvO.js +0 -1
  606. package/.output/public/_nuxt/DmkUdSS4.js +0 -1
  607. package/.output/public/_nuxt/DoIREDVb.js +0 -1
  608. package/.output/public/_nuxt/DpZ1r1HA.js +0 -1
  609. package/.output/public/_nuxt/DqcKngf3.js +0 -1
  610. package/.output/public/_nuxt/DtHJgCS8.js +0 -1
  611. package/.output/public/_nuxt/Dtd4rC58.js +0 -9
  612. package/.output/public/_nuxt/Dy86h-7P.js +0 -1
  613. package/.output/public/_nuxt/HPNQD6v3.js +0 -1
  614. package/.output/public/_nuxt/HXadJrHu.js +0 -2
  615. package/.output/public/_nuxt/McL25vkx.js +0 -34
  616. package/.output/public/_nuxt/Nn93e_Mz.js +0 -1
  617. package/.output/public/_nuxt/UdR3DBPS.js +0 -1
  618. package/.output/public/_nuxt/_mj6CfPa.js +0 -1
  619. package/.output/public/_nuxt/builds/meta/e659b3e1-0e61-4971-940e-10063f9f4763.json +0 -1
  620. package/.output/public/_nuxt/entry.DmptwB51.css +0 -1
  621. package/.output/public/_nuxt/ryMzSDUj.js +0 -2
  622. package/.output/server/chunks/build/Breadcrumb-Ak2Lg3oM.mjs.map +0 -1
  623. package/.output/server/chunks/build/BreadcrumbNav-DO7I_z-n.mjs.map +0 -1
  624. package/.output/server/chunks/build/BrowserBadge-MFvBwxmD.mjs.map +0 -1
  625. package/.output/server/chunks/build/ChartCard-Y1UKwMsf.mjs.map +0 -1
  626. package/.output/server/chunks/build/Checkbox-4Q5d0fa0.mjs.map +0 -1
  627. package/.output/server/chunks/build/CiEnvCard-DB5DvBh1.mjs.map +0 -1
  628. package/.output/server/chunks/build/CodeBlock-BgE-NSmE.mjs.map +0 -1
  629. package/.output/server/chunks/build/DashboardNavbar-BHmMSPX7.mjs.map +0 -1
  630. package/.output/server/chunks/build/DashboardSidebarToggle-DCTnHiIv.mjs.map +0 -1
  631. package/.output/server/chunks/build/DataLocationCard-B_YHdzSz.mjs.map +0 -1
  632. package/.output/server/chunks/build/DiagnosisPanel-CALyEmcJ.mjs.map +0 -1
  633. package/.output/server/chunks/build/DurationValue-D20oGbnc.mjs.map +0 -1
  634. package/.output/server/chunks/build/EntityLinks-BBHWssHH.mjs.map +0 -1
  635. package/.output/server/chunks/build/FormField-B0HKsdMd.mjs.map +0 -1
  636. package/.output/server/chunks/build/HelpHint-DrcIv-Oj.mjs.map +0 -1
  637. package/.output/server/chunks/build/LoadingState-C3pBSuOO.mjs.map +0 -1
  638. package/.output/server/chunks/build/MiniRunBars-CZMugDrh.mjs.map +0 -1
  639. package/.output/server/chunks/build/ProjectTestCasesTable-Bo61P5K1.mjs.map +0 -1
  640. package/.output/server/chunks/build/RunReports-DFLv51TX.mjs.map +0 -1
  641. package/.output/server/chunks/build/RunStatusBadge-FfGb6bkW.mjs.map +0 -1
  642. package/.output/server/chunks/build/SectionCard-CN-v0FZ_.mjs.map +0 -1
  643. package/.output/server/chunks/build/Select-5DK9frQ7.mjs.map +0 -1
  644. package/.output/server/chunks/build/SettingsField-BZfx4ma1.mjs.map +0 -1
  645. package/.output/server/chunks/build/StatTile-D61Vzo6e.mjs.map +0 -1
  646. package/.output/server/chunks/build/Switch-B5Fp8ULt.mjs.map +0 -1
  647. package/.output/server/chunks/build/TestCaseHistoryChart-CSi64vVA.mjs.map +0 -1
  648. package/.output/server/chunks/build/TestMetaBadges-D5_yUtIP.mjs.map +0 -1
  649. package/.output/server/chunks/build/TestStatusBar-DX3EhlyP.mjs.map +0 -1
  650. package/.output/server/chunks/build/Textarea-Dv2-lOvW.mjs.map +0 -1
  651. package/.output/server/chunks/build/_id_-BdG37K7s.mjs.map +0 -1
  652. package/.output/server/chunks/build/_id_-BdJs7BJZ.mjs.map +0 -1
  653. package/.output/server/chunks/build/_id_-BxA6IgWr.mjs.map +0 -1
  654. package/.output/server/chunks/build/_id_-C_uSBiyU.mjs.map +0 -1
  655. package/.output/server/chunks/build/about-BE0UV-8-.mjs.map +0 -1
  656. package/.output/server/chunks/build/account-DAfvaD-F.mjs.map +0 -1
  657. package/.output/server/chunks/build/analytics-Bo_B_jko.mjs.map +0 -1
  658. package/.output/server/chunks/build/db.client-CQoVTYB9.mjs.map +0 -1
  659. package/.output/server/chunks/build/edit-J0asTFg8.mjs.map +0 -1
  660. package/.output/server/chunks/build/fetch-B4FwBOzu.mjs.map +0 -1
  661. package/.output/server/chunks/build/forgot-password-CC__1OnV.mjs.map +0 -1
  662. package/.output/server/chunks/build/import-CS9oylTN.mjs.map +0 -1
  663. package/.output/server/chunks/build/index-CU2nZhAa.mjs.map +0 -1
  664. package/.output/server/chunks/build/index-DE45ycdZ.mjs.map +0 -1
  665. package/.output/server/chunks/build/index-e9skCi-V.mjs.map +0 -1
  666. package/.output/server/chunks/build/index-hGHlmyxj.mjs.map +0 -1
  667. package/.output/server/chunks/build/index-tR6owKzj.mjs +0 -167
  668. package/.output/server/chunks/build/index-tR6owKzj.mjs.map +0 -1
  669. package/.output/server/chunks/build/login-Da4u1IlW.mjs.map +0 -1
  670. package/.output/server/chunks/build/mcp-uhVCCwQM.mjs.map +0 -1
  671. package/.output/server/chunks/build/notifications-fx_qnKGA.mjs.map +0 -1
  672. package/.output/server/chunks/build/pr-feedback-X6-70iF0.mjs.map +0 -1
  673. package/.output/server/chunks/build/reset-password-BmrUS4ZD.mjs.map +0 -1
  674. package/.output/server/chunks/build/settings-CCYe7rsc.mjs.map +0 -1
  675. package/.output/server/chunks/build/settings-metadata-DrEqWcW-.mjs.map +0 -1
  676. package/.output/server/chunks/build/storage-CJEmviCD.mjs.map +0 -1
  677. package/.output/server/chunks/build/tags-DauTe_F-.mjs.map +0 -1
  678. package/.output/server/chunks/build/test-cases-thBbAykw.mjs.map +0 -1
  679. package/.output/server/chunks/build/timeout-hygiene-CbnSaVbK.mjs.map +0 -1
  680. package/.output/server/chunks/build/useAiStatus-CxjMmDDY.mjs.map +0 -1
  681. package/.output/server/chunks/build/useCopy-CeKWgHyT.mjs +0 -33
  682. package/.output/server/chunks/build/useCopy-CeKWgHyT.mjs.map +0 -1
  683. package/.output/server/chunks/build/useCopyRich-RJKhWoyj.mjs.map +0 -1
  684. package/.output/server/chunks/build/useDesktopDownload-BepjqxOt.mjs.map +0 -1
  685. package/.output/server/chunks/build/useOpenInIde-BbTnPhFA.mjs.map +0 -1
  686. package/.output/server/chunks/build/useSettingsNav-DnQKacz8.mjs.map +0 -1
  687. package/.output/server/chunks/build/users-CTUqXyGh.mjs.map +0 -1
  688. package/.output/server/chunks/build/wasted-time-BNTPIyrC.mjs.map +0 -1
@@ -0,0 +1,1116 @@
1
+ import { _ as _sfc_main$1$1, a as _sfc_main$5 } from './DashboardNavbar-DCr10nxL.mjs';
2
+ import { _ as _sfc_main$1$2, a as _sfc_main$6 } from './Breadcrumb-3itRZ1uz.mjs';
3
+ import { _ as __nuxt_component_11 } from './SectionCard-BW5Lynrr.mjs';
4
+ import { _ as __nuxt_component_5$1 } from './CodeBlock-DGhKVFad.mjs';
5
+ import { _ as _sfc_main$8 } from './Separator-CR4WcEKD.mjs';
6
+ import { l as useHead, o as _sfc_main$p, n as _sfc_main$7, m as _sfc_main$k, j as useToast } from './server.mjs';
7
+ import { defineComponent, withAsyncContext, computed, mergeProps, withCtx, unref, createTextVNode, toDisplayString, openBlock, createBlock, Fragment, renderList, createVNode, 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-BQg_fhX0.mjs';
10
+ import { _ as __nuxt_component_6 } from './DataLocationCard-rzS-pgCP.mjs';
11
+ import { _ as _sfc_main$9 } from './Switch-8zWfwI5B.mjs';
12
+ import { t as tauriCore } from './useTauri-Kf3HE_42.mjs';
13
+ import { _ as __nuxt_component_15 } from './GetStartedWizard-CB5v1Xzu.mjs';
14
+ import { _ as _sfc_main$4 } from './Card-BQP_oZkQ.mjs';
15
+ import { _ as __nuxt_component_12 } from './LoadingState-B8v1nWJt.mjs';
16
+ import { a as __nuxt_component_9 } from './HelpHint-DjGrGFA7.mjs';
17
+ import { u as useIsDesktop } from './useIsDesktop-BS13spVj.mjs';
18
+ import './DashboardSidebarToggle-8EpBhX0R.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:util';
44
+ import 'rou3';
45
+ import 'fs';
46
+ import '@aws-sdk/client-s3';
47
+ import 'node:http';
48
+ import 'node:https';
49
+ import 'node:events';
50
+ import 'node:buffer';
51
+ import 'node:fs';
52
+ import 'node:path';
53
+ import 'drizzle-orm/libsql/sqlite3';
54
+ import 'drizzle-orm/sqlite-core';
55
+ import 'drizzle-orm/pg-core';
56
+ import 'url';
57
+ import 'node:async_hooks';
58
+ import 'node:zlib';
59
+ import 'consola';
60
+ import 'node:url';
61
+ import '@iconify/utils';
62
+ import './index-BOK1aJk9.mjs';
63
+ import 'date-fns';
64
+ import 'vue-router';
65
+ import '@iconify/vue';
66
+ import 'tailwindcss/colors';
67
+ import 'tailwind-variants';
68
+ import '@iconify/utils/lib/css/icon';
69
+ import 'perfect-debounce';
70
+ import '@floating-ui/vue';
71
+ import 'aria-hidden';
72
+ import '../routes/renderer.mjs';
73
+ import 'vue-bundle-renderer/runtime';
74
+ import 'unhead/server';
75
+ import 'devalue';
76
+ import 'unhead/plugins';
77
+ import 'unhead/utils';
78
+ import '@vue/shared';
79
+ import './Label-DYDR1Oeh.mjs';
80
+ import './useFormControl-CZ9So7iX.mjs';
81
+ import './useForwardScopeId-D0ameaSU.mjs';
82
+ import './VisuallyHiddenInput-BHvzNumK.mjs';
83
+ import './help-content-C876a9WD.mjs';
84
+
85
+ const autoSnippet = `reporter: [
86
+ ['@piwitests/reporter', { projectName: 'my-project' }],
87
+ ],`;
88
+ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
89
+ __name: "DesktopReporterCard",
90
+ __ssrInlineRender: true,
91
+ props: {
92
+ url: {},
93
+ token: {}
94
+ },
95
+ setup(__props) {
96
+ const props = __props;
97
+ const { copy } = useCopy();
98
+ const manualSnippet = computed(
99
+ () => `reporter: [
100
+ ['@piwitests/reporter', {
101
+ serverUrl: '${props.url}',
102
+ projectName: 'my-project',
103
+ apiKey: '${props.token}',
104
+ }],
105
+ ],`
106
+ );
107
+ return (_ctx, _push, _parent, _attrs) => {
108
+ const _component_SectionCard = __nuxt_component_11;
109
+ const _component_CodeBlock = __nuxt_component_5$1;
110
+ const _component_USeparator = _sfc_main$8;
111
+ const _component_UButton = _sfc_main$k;
112
+ _push(ssrRenderComponent(_component_SectionCard, mergeProps({
113
+ icon: "i-lucide-upload",
114
+ title: "Send results to this app"
115
+ }, _attrs), {
116
+ subtitle: withCtx((_, _push2, _parent2, _scopeId) => {
117
+ if (_push2) {
118
+ _push2(` While this app is running, the Playwright reporter finds it on its own — no URL and no token in your config. `);
119
+ } else {
120
+ return [
121
+ createTextVNode(" While this app is running, the Playwright reporter finds it on its own — no URL and no token in your config. ")
122
+ ];
123
+ }
124
+ }),
125
+ default: withCtx((_, _push2, _parent2, _scopeId) => {
126
+ if (_push2) {
127
+ _push2(`<div class="space-y-4 text-sm"${_scopeId}><div class="space-y-1"${_scopeId}><div class="text-muted"${_scopeId}>playwright.config.ts</div>`);
128
+ _push2(ssrRenderComponent(_component_CodeBlock, {
129
+ code: autoSnippet,
130
+ lang: "typescript"
131
+ }, null, _parent2, _scopeId));
132
+ _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>`);
133
+ _push2(ssrRenderComponent(_component_USeparator, null, null, _parent2, _scopeId));
134
+ _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>`);
135
+ _push2(ssrRenderComponent(_component_UButton, {
136
+ icon: "i-lucide-copy",
137
+ color: "neutral",
138
+ variant: "ghost",
139
+ size: "xs",
140
+ "aria-label": "Copy access token",
141
+ onClick: ($event) => unref(copy)(__props.token, { toast: true })
142
+ }, null, _parent2, _scopeId));
143
+ _push2(`</div></div><div class="space-y-1"${_scopeId}><div class="text-muted"${_scopeId}>playwright.config.ts</div>`);
144
+ _push2(ssrRenderComponent(_component_CodeBlock, {
145
+ code: unref(manualSnippet),
146
+ lang: "typescript"
147
+ }, null, _parent2, _scopeId));
148
+ _push2(`</div></div></div>`);
149
+ } else {
150
+ return [
151
+ createVNode("div", { class: "space-y-4 text-sm" }, [
152
+ createVNode("div", { class: "space-y-1" }, [
153
+ createVNode("div", { class: "text-muted" }, "playwright.config.ts"),
154
+ createVNode(_component_CodeBlock, {
155
+ code: autoSnippet,
156
+ lang: "typescript"
157
+ }),
158
+ createVNode("p", { class: "text-muted text-xs" }, [
159
+ createTextVNode(" The app publishes its address and token to "),
160
+ createVNode("code", null, "~/.piwi/desktop.json"),
161
+ createTextVNode(" while it runs. The reporter reads that file only when your config and environment set no "),
162
+ createVNode("code", null, "serverUrl"),
163
+ createTextVNode(" and no "),
164
+ createVNode("code", null, "apiKey"),
165
+ createTextVNode(", so a project already pointed at another dashboard is never redirected here. ")
166
+ ])
167
+ ]),
168
+ createVNode(_component_USeparator),
169
+ createVNode("div", { class: "space-y-3" }, [
170
+ createVNode("p", { class: "text-muted" }, [
171
+ createTextVNode(" Configure it by hand when discovery cannot apply — tests running as another user, in a container, or with a config that already sets "),
172
+ createVNode("code", null, "serverUrl"),
173
+ createTextVNode(". The token is a local secret: prefer the "),
174
+ createVNode("code", null, "PIWI_API_KEY"),
175
+ createTextVNode(" env var over committing it. ")
176
+ ]),
177
+ createVNode("div", { class: "space-y-1" }, [
178
+ createVNode("div", { class: "text-muted" }, "Access token"),
179
+ createVNode("div", { class: "flex items-start gap-2" }, [
180
+ createVNode("code", { class: "text-xs break-all flex-1" }, toDisplayString(__props.token), 1),
181
+ createVNode(_component_UButton, {
182
+ icon: "i-lucide-copy",
183
+ color: "neutral",
184
+ variant: "ghost",
185
+ size: "xs",
186
+ "aria-label": "Copy access token",
187
+ onClick: ($event) => unref(copy)(__props.token, { toast: true })
188
+ }, null, 8, ["onClick"])
189
+ ])
190
+ ]),
191
+ createVNode("div", { class: "space-y-1" }, [
192
+ createVNode("div", { class: "text-muted" }, "playwright.config.ts"),
193
+ createVNode(_component_CodeBlock, {
194
+ code: unref(manualSnippet),
195
+ lang: "typescript"
196
+ }, null, 8, ["code"])
197
+ ])
198
+ ])
199
+ ])
200
+ ];
201
+ }
202
+ }),
203
+ _: 1
204
+ }, _parent));
205
+ };
206
+ }
207
+ });
208
+ const _sfc_setup$3 = _sfc_main$3.setup;
209
+ _sfc_main$3.setup = (props, ctx) => {
210
+ const ssrContext = useSSRContext();
211
+ (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/desktop/DesktopReporterCard.vue");
212
+ return _sfc_setup$3 ? _sfc_setup$3(props, ctx) : void 0;
213
+ };
214
+ const __nuxt_component_4 = Object.assign(_sfc_main$3, { __name: "DesktopReporterCard" });
215
+ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
216
+ __name: "DesktopMcpCard",
217
+ __ssrInlineRender: true,
218
+ props: {
219
+ url: {},
220
+ token: {}
221
+ },
222
+ setup(__props) {
223
+ const props = __props;
224
+ const { copy } = useCopy();
225
+ const mcpUrl = computed(() => `${props.url}/mcp`);
226
+ const claudeCodeSnippet = computed(
227
+ () => `claude mcp add --transport http piwi ${mcpUrl.value} \\
228
+ --header "Authorization: Bearer ${props.token}"`
229
+ );
230
+ return (_ctx, _push, _parent, _attrs) => {
231
+ const _component_SectionCard = __nuxt_component_11;
232
+ const _component_UButton = _sfc_main$k;
233
+ const _component_CodeBlock = __nuxt_component_5$1;
234
+ _push(ssrRenderComponent(_component_SectionCard, mergeProps({
235
+ icon: "i-lucide-plug",
236
+ title: "Connect an AI assistant (MCP)"
237
+ }, _attrs), {
238
+ subtitle: withCtx((_, _push2, _parent2, _scopeId) => {
239
+ if (_push2) {
240
+ _push2(` This app exposes a local MCP endpoint. Point your client at the URL below and authenticate with the access token — it is the Bearer token, even though sign-in is off. `);
241
+ } else {
242
+ return [
243
+ createTextVNode(" This app exposes a local MCP endpoint. Point your client at the URL below and authenticate with the access token — it is the Bearer token, even though sign-in is off. ")
244
+ ];
245
+ }
246
+ }),
247
+ default: withCtx((_, _push2, _parent2, _scopeId) => {
248
+ if (_push2) {
249
+ _push2(`<div class="space-y-3 text-sm"${_scopeId}><div class="space-y-1"${_scopeId}><div class="text-muted"${_scopeId}>MCP URL</div><div class="flex items-start gap-2"${_scopeId}><code class="text-xs break-all flex-1"${_scopeId}>${ssrInterpolate(unref(mcpUrl))}</code>`);
250
+ _push2(ssrRenderComponent(_component_UButton, {
251
+ icon: "i-lucide-copy",
252
+ color: "neutral",
253
+ variant: "ghost",
254
+ size: "xs",
255
+ "aria-label": "Copy MCP URL",
256
+ onClick: ($event) => unref(copy)(unref(mcpUrl), { toast: true })
257
+ }, null, _parent2, _scopeId));
258
+ _push2(`</div></div><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>`);
259
+ _push2(ssrRenderComponent(_component_UButton, {
260
+ icon: "i-lucide-copy",
261
+ color: "neutral",
262
+ variant: "ghost",
263
+ size: "xs",
264
+ "aria-label": "Copy access token",
265
+ onClick: ($event) => unref(copy)(__props.token, { toast: true })
266
+ }, null, _parent2, _scopeId));
267
+ _push2(`</div></div><div class="space-y-1"${_scopeId}><div class="text-muted"${_scopeId}>Claude Code</div>`);
268
+ _push2(ssrRenderComponent(_component_CodeBlock, {
269
+ code: unref(claudeCodeSnippet),
270
+ lang: "sh"
271
+ }, null, _parent2, _scopeId));
272
+ _push2(`</div></div>`);
273
+ } else {
274
+ return [
275
+ createVNode("div", { class: "space-y-3 text-sm" }, [
276
+ createVNode("div", { class: "space-y-1" }, [
277
+ createVNode("div", { class: "text-muted" }, "MCP URL"),
278
+ createVNode("div", { class: "flex items-start gap-2" }, [
279
+ createVNode("code", { class: "text-xs break-all flex-1" }, toDisplayString(unref(mcpUrl)), 1),
280
+ createVNode(_component_UButton, {
281
+ icon: "i-lucide-copy",
282
+ color: "neutral",
283
+ variant: "ghost",
284
+ size: "xs",
285
+ "aria-label": "Copy MCP URL",
286
+ onClick: ($event) => unref(copy)(unref(mcpUrl), { toast: true })
287
+ }, null, 8, ["onClick"])
288
+ ])
289
+ ]),
290
+ createVNode("div", { class: "space-y-1" }, [
291
+ createVNode("div", { class: "text-muted" }, "Access token"),
292
+ createVNode("div", { class: "flex items-start gap-2" }, [
293
+ createVNode("code", { class: "text-xs break-all flex-1" }, toDisplayString(__props.token), 1),
294
+ createVNode(_component_UButton, {
295
+ icon: "i-lucide-copy",
296
+ color: "neutral",
297
+ variant: "ghost",
298
+ size: "xs",
299
+ "aria-label": "Copy access token",
300
+ onClick: ($event) => unref(copy)(__props.token, { toast: true })
301
+ }, null, 8, ["onClick"])
302
+ ])
303
+ ]),
304
+ createVNode("div", { class: "space-y-1" }, [
305
+ createVNode("div", { class: "text-muted" }, "Claude Code"),
306
+ createVNode(_component_CodeBlock, {
307
+ code: unref(claudeCodeSnippet),
308
+ lang: "sh"
309
+ }, null, 8, ["code"])
310
+ ])
311
+ ])
312
+ ];
313
+ }
314
+ }),
315
+ _: 1
316
+ }, _parent));
317
+ };
318
+ }
319
+ });
320
+ const _sfc_setup$2 = _sfc_main$2.setup;
321
+ _sfc_main$2.setup = (props, ctx) => {
322
+ const ssrContext = useSSRContext();
323
+ (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/desktop/DesktopMcpCard.vue");
324
+ return _sfc_setup$2 ? _sfc_setup$2(props, ctx) : void 0;
325
+ };
326
+ const __nuxt_component_5 = Object.assign(_sfc_main$2, { __name: "DesktopMcpCard" });
327
+ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
328
+ __name: "DesktopServiceCard",
329
+ __ssrInlineRender: true,
330
+ setup(__props) {
331
+ const toast = useToast();
332
+ const loading = ref(true);
333
+ const available = ref(false);
334
+ const busy = ref(false);
335
+ const runInBackground = ref(false);
336
+ const startOnLogin = ref(false);
337
+ async function setRunInBackground(value) {
338
+ const core = tauriCore();
339
+ if (!core) return;
340
+ busy.value = true;
341
+ try {
342
+ await core.invoke("desktop_set_run_in_background", { enabled: value });
343
+ runInBackground.value = value;
344
+ } catch {
345
+ toast.add({ title: 'Could not update "Run in background"', color: "error" });
346
+ } finally {
347
+ busy.value = false;
348
+ }
349
+ }
350
+ async function setStartOnLogin(value) {
351
+ const core = tauriCore();
352
+ if (!core) return;
353
+ busy.value = true;
354
+ try {
355
+ await core.invoke("desktop_set_start_on_login", { enabled: value });
356
+ startOnLogin.value = value;
357
+ } catch {
358
+ toast.add({ title: 'Could not update "Start on login"', color: "error" });
359
+ } finally {
360
+ busy.value = false;
361
+ }
362
+ }
363
+ return (_ctx, _push, _parent, _attrs) => {
364
+ const _component_SectionCard = __nuxt_component_11;
365
+ const _component_UIcon = _sfc_main$p;
366
+ const _component_USwitch = _sfc_main$9;
367
+ _push(ssrRenderComponent(_component_SectionCard, mergeProps({
368
+ icon: "i-lucide-monitor-cog",
369
+ title: "Desktop app"
370
+ }, _attrs), {
371
+ subtitle: withCtx((_, _push2, _parent2, _scopeId) => {
372
+ if (_push2) {
373
+ _push2(` Keep Piwi running in the background and start it automatically when you log in. `);
374
+ } else {
375
+ return [
376
+ createTextVNode(" Keep Piwi running in the background and start it automatically when you log in. ")
377
+ ];
378
+ }
379
+ }),
380
+ default: withCtx((_, _push2, _parent2, _scopeId) => {
381
+ if (_push2) {
382
+ if (unref(loading)) {
383
+ _push2(`<div class="flex items-center gap-2 text-sm text-muted"${_scopeId}>`);
384
+ _push2(ssrRenderComponent(_component_UIcon, {
385
+ name: "i-lucide-loader-2",
386
+ class: "size-4 animate-spin"
387
+ }, null, _parent2, _scopeId));
388
+ _push2(` Checking… </div>`);
389
+ } else if (unref(available)) {
390
+ _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>`);
391
+ _push2(ssrRenderComponent(_component_USwitch, {
392
+ "model-value": unref(runInBackground),
393
+ disabled: unref(busy),
394
+ "onUpdate:modelValue": setRunInBackground
395
+ }, null, _parent2, _scopeId));
396
+ _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>`);
397
+ _push2(ssrRenderComponent(_component_USwitch, {
398
+ "model-value": unref(startOnLogin),
399
+ disabled: unref(busy),
400
+ "onUpdate:modelValue": setStartOnLogin
401
+ }, null, _parent2, _scopeId));
402
+ _push2(`</div></div>`);
403
+ } else {
404
+ _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>`);
405
+ }
406
+ } else {
407
+ return [
408
+ unref(loading) ? (openBlock(), createBlock("div", {
409
+ key: 0,
410
+ class: "flex items-center gap-2 text-sm text-muted"
411
+ }, [
412
+ createVNode(_component_UIcon, {
413
+ name: "i-lucide-loader-2",
414
+ class: "size-4 animate-spin"
415
+ }),
416
+ createTextVNode(" Checking… ")
417
+ ])) : unref(available) ? (openBlock(), createBlock("div", {
418
+ key: 1,
419
+ class: "space-y-4"
420
+ }, [
421
+ createVNode("div", { class: "flex items-start justify-between gap-4" }, [
422
+ createVNode("div", { class: "space-y-0.5" }, [
423
+ createVNode("p", { class: "text-sm font-medium" }, "Run in background"),
424
+ createVNode("p", { class: "text-xs text-muted" }, "Closing the window keeps the server running in the tray instead of quitting.")
425
+ ]),
426
+ createVNode(_component_USwitch, {
427
+ "model-value": unref(runInBackground),
428
+ disabled: unref(busy),
429
+ "onUpdate:modelValue": setRunInBackground
430
+ }, null, 8, ["model-value", "disabled"])
431
+ ]),
432
+ createVNode("div", { class: "flex items-start justify-between gap-4" }, [
433
+ createVNode("div", { class: "space-y-0.5" }, [
434
+ createVNode("p", { class: "text-sm font-medium" }, "Start on login"),
435
+ createVNode("p", { class: "text-xs text-muted" }, " Launch Piwi automatically (hidden in the tray) when you sign in to your computer. ")
436
+ ]),
437
+ createVNode(_component_USwitch, {
438
+ "model-value": unref(startOnLogin),
439
+ disabled: unref(busy),
440
+ "onUpdate:modelValue": setStartOnLogin
441
+ }, null, 8, ["model-value", "disabled"])
442
+ ])
443
+ ])) : (openBlock(), createBlock("div", {
444
+ key: 2,
445
+ class: "space-y-1 text-sm text-muted"
446
+ }, [
447
+ createVNode("p", null, "Manage these from the Piwi tray icon:"),
448
+ createVNode("p", { class: "text-xs" }, [
449
+ createTextVNode(" Right-click the Piwi icon in your system tray for "),
450
+ createVNode("strong", null, "Run in background"),
451
+ createTextVNode(" and "),
452
+ createVNode("strong", null, "Start on login"),
453
+ 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. ")
454
+ ])
455
+ ]))
456
+ ];
457
+ }
458
+ }),
459
+ _: 1
460
+ }, _parent));
461
+ };
462
+ }
463
+ });
464
+ const _sfc_setup$1 = _sfc_main$1.setup;
465
+ _sfc_main$1.setup = (props, ctx) => {
466
+ const ssrContext = useSSRContext();
467
+ (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/desktop/DesktopServiceCard.vue");
468
+ return _sfc_setup$1 ? _sfc_setup$1(props, ctx) : void 0;
469
+ };
470
+ const __nuxt_component_7 = Object.assign(_sfc_main$1, { __name: "DesktopServiceCard" });
471
+ const SETUP_CAPABILITIES = [
472
+ {
473
+ id: "reporter",
474
+ title: "Results arriving",
475
+ summary: "Your Playwright runs are reaching this dashboard and their history is being kept.",
476
+ how: "Follow the four steps above to add the reporter to your Playwright config.",
477
+ icon: "i-lucide-antenna",
478
+ doc: "reporter"
479
+ },
480
+ {
481
+ id: "fixtures",
482
+ title: "Capture fixtures",
483
+ summary: "Network timing, Web Vitals, console errors and ARIA snapshots, captured per test. Powers slow endpoints, performance trends and the richer AI diagnosis context.",
484
+ how: 'Extend your Playwright `test` with `piwiFixtures` — see "Go further" above.',
485
+ icon: "i-lucide-radio",
486
+ doc: "capture-fixtures"
487
+ },
488
+ {
489
+ id: "locator-healing",
490
+ title: "Locator healing",
491
+ summary: "When a selector breaks, ranked replacement locators captured from the last passing run — with a recommended fix.",
492
+ how: "Comes with the capture fixtures; enable those and healing data starts accumulating on passing runs.",
493
+ icon: "i-lucide-bandage",
494
+ doc: "capture-fixtures"
495
+ },
496
+ {
497
+ id: "clustering",
498
+ title: "Failure clustering",
499
+ summary: "Forty red tests collapsed into the three root causes behind them, each triaged once.",
500
+ how: "Automatic — clusters form as soon as failures with a shared error fingerprint arrive.",
501
+ icon: "i-lucide-layers",
502
+ doc: "ai-diagnosis"
503
+ },
504
+ {
505
+ id: "ai",
506
+ title: "AI diagnosis",
507
+ 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.",
508
+ how: "Configure a provider in Settings — Anthropic, OpenAI, or any OpenAI-compatible endpoint including local models.",
509
+ icon: "i-lucide-sparkles",
510
+ doc: "ai-diagnosis",
511
+ to: "/settings/ai",
512
+ toLabel: "Configure AI",
513
+ optional: true
514
+ },
515
+ {
516
+ id: "scm",
517
+ title: "Source control",
518
+ summary: "The commits behind a failure, CODEOWNERS-derived ownership, and pull-request feedback on the branch that broke.",
519
+ how: "Add a repository access token on the project, or globally in Settings.",
520
+ icon: "i-lucide-git-branch",
521
+ doc: "ai-diagnosis",
522
+ to: "/settings/ai",
523
+ toLabel: "Add a token",
524
+ optional: true
525
+ },
526
+ {
527
+ id: "notifications",
528
+ title: "Notifications",
529
+ summary: "Email, Slack, webhook and browser channels, with per-project subscriptions and digests.",
530
+ how: "Add a channel in Settings, then subscribe the projects you care about.",
531
+ icon: "i-lucide-bell",
532
+ doc: "notifications",
533
+ to: "/settings/notifications",
534
+ toLabel: "Add a channel",
535
+ optional: true
536
+ },
537
+ {
538
+ id: "quarantine",
539
+ title: "Quarantine",
540
+ summary: "A known-bad test keeps running and reporting, but stops failing the CI gate — and earns its way out on a passing streak.",
541
+ how: "Quarantine a test from its test-case page, or from the project's Quarantine tab.",
542
+ icon: "i-lucide-shield-alert",
543
+ doc: "flaky-tests",
544
+ optional: true
545
+ },
546
+ {
547
+ id: "tags",
548
+ title: "Tags & ownership",
549
+ summary: "Playwright's own test tags plus `piwi:owner` / `priority` / `feature` annotations, filterable across the catalog and the flaky leaderboard.",
550
+ how: "Tag tests in your specs, or define project tags in Settings.",
551
+ icon: "i-lucide-tags",
552
+ doc: "reporter",
553
+ to: "/settings/tags",
554
+ toLabel: "Manage tags",
555
+ optional: true
556
+ },
557
+ {
558
+ id: "markers",
559
+ title: "Timeline markers",
560
+ summary: "Your deploys and infrastructure changes overlaid on the trend charts, so a step change has a cause.",
561
+ how: "Add a marker from a project's Timeline tab.",
562
+ icon: "i-lucide-git-commit-horizontal",
563
+ doc: "timeline-markers",
564
+ optional: true
565
+ }
566
+ ];
567
+ const _sfc_main = /* @__PURE__ */ defineComponent({
568
+ __name: "setup",
569
+ __ssrInlineRender: true,
570
+ async setup(__props) {
571
+ let __temp, __restore;
572
+ useHead({ title: "Setup — Piwi Dashboard" });
573
+ const isDesktop = useIsDesktop();
574
+ const { data: stats } = ([__temp, __restore] = withAsyncContext(() => useFetch(
575
+ "/api/admin/stats",
576
+ {
577
+ immediate: isDesktop,
578
+ default: () => null
579
+ },
580
+ "$uGO1Abiiv0"
581
+ /* nuxt-injected */
582
+ )), __temp = await __temp, __restore(), __temp);
583
+ const { data: reporterConfig } = ([__temp, __restore] = withAsyncContext(() => useFetch(
584
+ "/api/desktop/reporter-config",
585
+ {
586
+ immediate: isDesktop,
587
+ default: () => null
588
+ },
589
+ "$NI7jk56Ugg"
590
+ /* nuxt-injected */
591
+ )), __temp = await __temp, __restore(), __temp);
592
+ const { data: status, status: fetchStatus } = ([__temp, __restore] = withAsyncContext(() => useFetch(
593
+ "/api/setup-status",
594
+ {
595
+ lazy: true,
596
+ default: () => ({ capabilities: [] })
597
+ },
598
+ "$PNW3Dj2UfP"
599
+ /* nuxt-injected */
600
+ )), __temp = await __temp, __restore(), __temp);
601
+ const activeById = computed(() => {
602
+ const map = /* @__PURE__ */ new Map();
603
+ for (const c of status.value?.capabilities ?? []) map.set(c.id, c.active);
604
+ return map;
605
+ });
606
+ const isLoading = computed(() => fetchStatus.value === "pending" && !status.value?.capabilities.length);
607
+ const rows = computed(
608
+ () => SETUP_CAPABILITIES.map((copy) => ({ ...copy, active: activeById.value.get(copy.id) ?? false }))
609
+ );
610
+ const activeCount = computed(() => rows.value.filter((r) => r.active).length);
611
+ return (_ctx, _push, _parent, _attrs) => {
612
+ const _component_UDashboardPanel = _sfc_main$1$1;
613
+ const _component_UDashboardNavbar = _sfc_main$5;
614
+ const _component_UDashboardSidebarCollapse = _sfc_main$1$2;
615
+ const _component_UBreadcrumb = _sfc_main$6;
616
+ const _component_DesktopReporterCard = __nuxt_component_4;
617
+ const _component_DesktopMcpCard = __nuxt_component_5;
618
+ const _component_DataLocationCard = __nuxt_component_6;
619
+ const _component_DesktopServiceCard = __nuxt_component_7;
620
+ const _component_GetStartedWizard = __nuxt_component_15;
621
+ const _component_UCard = _sfc_main$4;
622
+ const _component_UIcon = _sfc_main$p;
623
+ const _component_UBadge = _sfc_main$7;
624
+ const _component_LoadingState = __nuxt_component_12;
625
+ const _component_UButton = _sfc_main$k;
626
+ const _component_DocLink = __nuxt_component_9;
627
+ _push(ssrRenderComponent(_component_UDashboardPanel, mergeProps({ id: "setup" }, _attrs), {
628
+ header: withCtx((_, _push2, _parent2, _scopeId) => {
629
+ if (_push2) {
630
+ _push2(ssrRenderComponent(_component_UDashboardNavbar, null, {
631
+ leading: withCtx((_2, _push3, _parent3, _scopeId2) => {
632
+ if (_push3) {
633
+ _push3(ssrRenderComponent(_component_UDashboardSidebarCollapse, null, null, _parent3, _scopeId2));
634
+ _push3(ssrRenderComponent(_component_UBreadcrumb, { items: [{ label: "Setup", icon: "i-lucide-rocket", to: "/setup" }] }, null, _parent3, _scopeId2));
635
+ } else {
636
+ return [
637
+ createVNode(_component_UDashboardSidebarCollapse),
638
+ createVNode(_component_UBreadcrumb, { items: [{ label: "Setup", icon: "i-lucide-rocket", to: "/setup" }] })
639
+ ];
640
+ }
641
+ }),
642
+ _: 1
643
+ }, _parent2, _scopeId));
644
+ } else {
645
+ return [
646
+ createVNode(_component_UDashboardNavbar, null, {
647
+ leading: withCtx(() => [
648
+ createVNode(_component_UDashboardSidebarCollapse),
649
+ createVNode(_component_UBreadcrumb, { items: [{ label: "Setup", icon: "i-lucide-rocket", to: "/setup" }] })
650
+ ]),
651
+ _: 1
652
+ })
653
+ ];
654
+ }
655
+ }),
656
+ body: withCtx((_, _push2, _parent2, _scopeId) => {
657
+ if (_push2) {
658
+ _push2(`<div class="flex flex-col gap-6 w-full lg:max-w-4xl mx-auto"${_scopeId}>`);
659
+ if (unref(isDesktop)) {
660
+ _push2(`<!--[-->`);
661
+ if (unref(reporterConfig)) {
662
+ _push2(ssrRenderComponent(_component_DesktopReporterCard, {
663
+ url: unref(reporterConfig).url,
664
+ token: unref(reporterConfig).token
665
+ }, null, _parent2, _scopeId));
666
+ } else {
667
+ _push2(`<!---->`);
668
+ }
669
+ if (unref(reporterConfig)) {
670
+ _push2(ssrRenderComponent(_component_DesktopMcpCard, {
671
+ url: unref(reporterConfig).url,
672
+ token: unref(reporterConfig).token
673
+ }, null, _parent2, _scopeId));
674
+ } else {
675
+ _push2(`<!---->`);
676
+ }
677
+ if (unref(stats)) {
678
+ _push2(ssrRenderComponent(_component_DataLocationCard, {
679
+ database: unref(stats).databaseLocation,
680
+ storage: unref(stats).storageLocation
681
+ }, null, _parent2, _scopeId));
682
+ } else {
683
+ _push2(`<!---->`);
684
+ }
685
+ _push2(ssrRenderComponent(_component_DesktopServiceCard, null, null, _parent2, _scopeId));
686
+ _push2(`<!--]-->`);
687
+ } else {
688
+ _push2(`<!---->`);
689
+ }
690
+ _push2(ssrRenderComponent(_component_GetStartedWizard, null, null, _parent2, _scopeId));
691
+ _push2(ssrRenderComponent(_component_UCard, null, {
692
+ header: withCtx((_2, _push3, _parent3, _scopeId2) => {
693
+ if (_push3) {
694
+ _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}>`);
695
+ _push3(ssrRenderComponent(_component_UIcon, {
696
+ name: "i-lucide-list-checks",
697
+ class: "size-5 text-primary"
698
+ }, null, _parent3, _scopeId2));
699
+ _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>`);
700
+ if (!unref(isLoading)) {
701
+ _push3(ssrRenderComponent(_component_UBadge, {
702
+ color: "neutral",
703
+ variant: "subtle",
704
+ class: "shrink-0 max-sm:hidden"
705
+ }, {
706
+ default: withCtx((_3, _push4, _parent4, _scopeId3) => {
707
+ if (_push4) {
708
+ _push4(`${ssrInterpolate(unref(activeCount))} / ${ssrInterpolate(unref(rows).length)}`);
709
+ } else {
710
+ return [
711
+ createTextVNode(toDisplayString(unref(activeCount)) + " / " + toDisplayString(unref(rows).length), 1)
712
+ ];
713
+ }
714
+ }),
715
+ _: 1
716
+ }, _parent3, _scopeId2));
717
+ } else {
718
+ _push3(`<!---->`);
719
+ }
720
+ _push3(`</div>`);
721
+ } else {
722
+ return [
723
+ createVNode("div", { class: "flex items-center justify-between gap-3" }, [
724
+ createVNode("div", { class: "flex items-center gap-3" }, [
725
+ createVNode("div", { class: "p-2 bg-primary/10 rounded-lg shrink-0" }, [
726
+ createVNode(_component_UIcon, {
727
+ name: "i-lucide-list-checks",
728
+ class: "size-5 text-primary"
729
+ })
730
+ ]),
731
+ createVNode("div", null, [
732
+ createVNode("h2", { class: "text-xl font-semibold" }, "What's switched on"),
733
+ 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. ")
734
+ ])
735
+ ]),
736
+ !unref(isLoading) ? (openBlock(), createBlock(_component_UBadge, {
737
+ key: 0,
738
+ color: "neutral",
739
+ variant: "subtle",
740
+ class: "shrink-0 max-sm:hidden"
741
+ }, {
742
+ default: withCtx(() => [
743
+ createTextVNode(toDisplayString(unref(activeCount)) + " / " + toDisplayString(unref(rows).length), 1)
744
+ ]),
745
+ _: 1
746
+ })) : createCommentVNode("", true)
747
+ ])
748
+ ];
749
+ }
750
+ }),
751
+ default: withCtx((_2, _push3, _parent3, _scopeId2) => {
752
+ if (_push3) {
753
+ if (unref(isLoading)) {
754
+ _push3(ssrRenderComponent(_component_LoadingState, null, null, _parent3, _scopeId2));
755
+ } else {
756
+ _push3(`<ul class="divide-y divide-default"${_scopeId2}><!--[-->`);
757
+ ssrRenderList(unref(rows), (row) => {
758
+ _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}>`);
759
+ _push3(ssrRenderComponent(_component_UIcon, {
760
+ name: row.icon,
761
+ class: "size-5"
762
+ }, null, _parent3, _scopeId2));
763
+ _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>`);
764
+ if (row.active) {
765
+ _push3(ssrRenderComponent(_component_UBadge, {
766
+ color: "success",
767
+ variant: "subtle",
768
+ size: "xs"
769
+ }, {
770
+ default: withCtx((_3, _push4, _parent4, _scopeId3) => {
771
+ if (_push4) {
772
+ _push4(`Active`);
773
+ } else {
774
+ return [
775
+ createTextVNode("Active")
776
+ ];
777
+ }
778
+ }),
779
+ _: 2
780
+ }, _parent3, _scopeId2));
781
+ } else if (row.optional) {
782
+ _push3(ssrRenderComponent(_component_UBadge, {
783
+ color: "neutral",
784
+ variant: "subtle",
785
+ size: "xs"
786
+ }, {
787
+ default: withCtx((_3, _push4, _parent4, _scopeId3) => {
788
+ if (_push4) {
789
+ _push4(`Optional`);
790
+ } else {
791
+ return [
792
+ createTextVNode("Optional")
793
+ ];
794
+ }
795
+ }),
796
+ _: 2
797
+ }, _parent3, _scopeId2));
798
+ } else {
799
+ _push3(ssrRenderComponent(_component_UBadge, {
800
+ color: "warning",
801
+ variant: "subtle",
802
+ size: "xs"
803
+ }, {
804
+ default: withCtx((_3, _push4, _parent4, _scopeId3) => {
805
+ if (_push4) {
806
+ _push4(`Not set up`);
807
+ } else {
808
+ return [
809
+ createTextVNode("Not set up")
810
+ ];
811
+ }
812
+ }),
813
+ _: 2
814
+ }, _parent3, _scopeId2));
815
+ }
816
+ _push3(`</div><p class="text-sm text-gray-600 dark:text-gray-400"${_scopeId2}>${ssrInterpolate(row.summary)}</p>`);
817
+ if (!row.active) {
818
+ _push3(`<p class="text-sm text-dimmed mt-1"${_scopeId2}>${ssrInterpolate(row.how)}</p>`);
819
+ } else {
820
+ _push3(`<!---->`);
821
+ }
822
+ _push3(`<div class="flex items-center gap-3 mt-2 text-sm"${_scopeId2}>`);
823
+ if (row.to && !row.active) {
824
+ _push3(ssrRenderComponent(_component_UButton, {
825
+ to: row.to,
826
+ size: "xs",
827
+ variant: "soft",
828
+ icon: "i-lucide-settings"
829
+ }, {
830
+ default: withCtx((_3, _push4, _parent4, _scopeId3) => {
831
+ if (_push4) {
832
+ _push4(`${ssrInterpolate(row.toLabel ?? "Configure")}`);
833
+ } else {
834
+ return [
835
+ createTextVNode(toDisplayString(row.toLabel ?? "Configure"), 1)
836
+ ];
837
+ }
838
+ }),
839
+ _: 2
840
+ }, _parent3, _scopeId2));
841
+ } else {
842
+ _push3(`<!---->`);
843
+ }
844
+ if (row.doc) {
845
+ _push3(ssrRenderComponent(_component_DocLink, {
846
+ to: row.doc,
847
+ class: "text-sm"
848
+ }, {
849
+ default: withCtx((_3, _push4, _parent4, _scopeId3) => {
850
+ if (_push4) {
851
+ _push4(`Docs`);
852
+ } else {
853
+ return [
854
+ createTextVNode("Docs")
855
+ ];
856
+ }
857
+ }),
858
+ _: 2
859
+ }, _parent3, _scopeId2));
860
+ } else {
861
+ _push3(`<!---->`);
862
+ }
863
+ _push3(`</div></div></li>`);
864
+ });
865
+ _push3(`<!--]--></ul>`);
866
+ }
867
+ } else {
868
+ return [
869
+ unref(isLoading) ? (openBlock(), createBlock(_component_LoadingState, { key: 0 })) : (openBlock(), createBlock("ul", {
870
+ key: 1,
871
+ class: "divide-y divide-default"
872
+ }, [
873
+ (openBlock(true), createBlock(Fragment, null, renderList(unref(rows), (row) => {
874
+ return openBlock(), createBlock("li", {
875
+ key: row.id,
876
+ class: "flex gap-4 py-4 first:pt-0 last:pb-0"
877
+ }, [
878
+ createVNode("div", {
879
+ class: ["flex size-9 shrink-0 items-center justify-center rounded-lg", row.active ? "bg-success/10 text-success" : "bg-elevated text-dimmed"]
880
+ }, [
881
+ createVNode(_component_UIcon, {
882
+ name: row.icon,
883
+ class: "size-5"
884
+ }, null, 8, ["name"])
885
+ ], 2),
886
+ createVNode("div", { class: "flex-1 min-w-0" }, [
887
+ createVNode("div", { class: "flex items-center gap-2 flex-wrap mb-1" }, [
888
+ createVNode("h3", { class: "font-medium" }, toDisplayString(row.title), 1),
889
+ row.active ? (openBlock(), createBlock(_component_UBadge, {
890
+ key: 0,
891
+ color: "success",
892
+ variant: "subtle",
893
+ size: "xs"
894
+ }, {
895
+ default: withCtx(() => [
896
+ createTextVNode("Active")
897
+ ]),
898
+ _: 1
899
+ })) : row.optional ? (openBlock(), createBlock(_component_UBadge, {
900
+ key: 1,
901
+ color: "neutral",
902
+ variant: "subtle",
903
+ size: "xs"
904
+ }, {
905
+ default: withCtx(() => [
906
+ createTextVNode("Optional")
907
+ ]),
908
+ _: 1
909
+ })) : (openBlock(), createBlock(_component_UBadge, {
910
+ key: 2,
911
+ color: "warning",
912
+ variant: "subtle",
913
+ size: "xs"
914
+ }, {
915
+ default: withCtx(() => [
916
+ createTextVNode("Not set up")
917
+ ]),
918
+ _: 1
919
+ }))
920
+ ]),
921
+ createVNode("p", { class: "text-sm text-gray-600 dark:text-gray-400" }, toDisplayString(row.summary), 1),
922
+ !row.active ? (openBlock(), createBlock("p", {
923
+ key: 0,
924
+ class: "text-sm text-dimmed mt-1"
925
+ }, toDisplayString(row.how), 1)) : createCommentVNode("", true),
926
+ createVNode("div", { class: "flex items-center gap-3 mt-2 text-sm" }, [
927
+ row.to && !row.active ? (openBlock(), createBlock(_component_UButton, {
928
+ key: 0,
929
+ to: row.to,
930
+ size: "xs",
931
+ variant: "soft",
932
+ icon: "i-lucide-settings"
933
+ }, {
934
+ default: withCtx(() => [
935
+ createTextVNode(toDisplayString(row.toLabel ?? "Configure"), 1)
936
+ ]),
937
+ _: 2
938
+ }, 1032, ["to"])) : createCommentVNode("", true),
939
+ row.doc ? (openBlock(), createBlock(_component_DocLink, {
940
+ key: 1,
941
+ to: row.doc,
942
+ class: "text-sm"
943
+ }, {
944
+ default: withCtx(() => [
945
+ createTextVNode("Docs")
946
+ ]),
947
+ _: 1
948
+ }, 8, ["to"])) : createCommentVNode("", true)
949
+ ])
950
+ ])
951
+ ]);
952
+ }), 128))
953
+ ]))
954
+ ];
955
+ }
956
+ }),
957
+ _: 1
958
+ }, _parent2, _scopeId));
959
+ _push2(`</div>`);
960
+ } else {
961
+ return [
962
+ createVNode("div", { class: "flex flex-col gap-6 w-full lg:max-w-4xl mx-auto" }, [
963
+ unref(isDesktop) ? (openBlock(), createBlock(Fragment, { key: 0 }, [
964
+ unref(reporterConfig) ? (openBlock(), createBlock(_component_DesktopReporterCard, {
965
+ key: 0,
966
+ url: unref(reporterConfig).url,
967
+ token: unref(reporterConfig).token
968
+ }, null, 8, ["url", "token"])) : createCommentVNode("", true),
969
+ unref(reporterConfig) ? (openBlock(), createBlock(_component_DesktopMcpCard, {
970
+ key: 1,
971
+ url: unref(reporterConfig).url,
972
+ token: unref(reporterConfig).token
973
+ }, null, 8, ["url", "token"])) : createCommentVNode("", true),
974
+ unref(stats) ? (openBlock(), createBlock(_component_DataLocationCard, {
975
+ key: 2,
976
+ database: unref(stats).databaseLocation,
977
+ storage: unref(stats).storageLocation
978
+ }, null, 8, ["database", "storage"])) : createCommentVNode("", true),
979
+ createVNode(_component_DesktopServiceCard)
980
+ ], 64)) : createCommentVNode("", true),
981
+ createVNode(_component_GetStartedWizard),
982
+ createVNode(_component_UCard, null, {
983
+ header: withCtx(() => [
984
+ createVNode("div", { class: "flex items-center justify-between gap-3" }, [
985
+ createVNode("div", { class: "flex items-center gap-3" }, [
986
+ createVNode("div", { class: "p-2 bg-primary/10 rounded-lg shrink-0" }, [
987
+ createVNode(_component_UIcon, {
988
+ name: "i-lucide-list-checks",
989
+ class: "size-5 text-primary"
990
+ })
991
+ ]),
992
+ createVNode("div", null, [
993
+ createVNode("h2", { class: "text-xl font-semibold" }, "What's switched on"),
994
+ 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. ")
995
+ ])
996
+ ]),
997
+ !unref(isLoading) ? (openBlock(), createBlock(_component_UBadge, {
998
+ key: 0,
999
+ color: "neutral",
1000
+ variant: "subtle",
1001
+ class: "shrink-0 max-sm:hidden"
1002
+ }, {
1003
+ default: withCtx(() => [
1004
+ createTextVNode(toDisplayString(unref(activeCount)) + " / " + toDisplayString(unref(rows).length), 1)
1005
+ ]),
1006
+ _: 1
1007
+ })) : createCommentVNode("", true)
1008
+ ])
1009
+ ]),
1010
+ default: withCtx(() => [
1011
+ unref(isLoading) ? (openBlock(), createBlock(_component_LoadingState, { key: 0 })) : (openBlock(), createBlock("ul", {
1012
+ key: 1,
1013
+ class: "divide-y divide-default"
1014
+ }, [
1015
+ (openBlock(true), createBlock(Fragment, null, renderList(unref(rows), (row) => {
1016
+ return openBlock(), createBlock("li", {
1017
+ key: row.id,
1018
+ class: "flex gap-4 py-4 first:pt-0 last:pb-0"
1019
+ }, [
1020
+ createVNode("div", {
1021
+ class: ["flex size-9 shrink-0 items-center justify-center rounded-lg", row.active ? "bg-success/10 text-success" : "bg-elevated text-dimmed"]
1022
+ }, [
1023
+ createVNode(_component_UIcon, {
1024
+ name: row.icon,
1025
+ class: "size-5"
1026
+ }, null, 8, ["name"])
1027
+ ], 2),
1028
+ createVNode("div", { class: "flex-1 min-w-0" }, [
1029
+ createVNode("div", { class: "flex items-center gap-2 flex-wrap mb-1" }, [
1030
+ createVNode("h3", { class: "font-medium" }, toDisplayString(row.title), 1),
1031
+ row.active ? (openBlock(), createBlock(_component_UBadge, {
1032
+ key: 0,
1033
+ color: "success",
1034
+ variant: "subtle",
1035
+ size: "xs"
1036
+ }, {
1037
+ default: withCtx(() => [
1038
+ createTextVNode("Active")
1039
+ ]),
1040
+ _: 1
1041
+ })) : row.optional ? (openBlock(), createBlock(_component_UBadge, {
1042
+ key: 1,
1043
+ color: "neutral",
1044
+ variant: "subtle",
1045
+ size: "xs"
1046
+ }, {
1047
+ default: withCtx(() => [
1048
+ createTextVNode("Optional")
1049
+ ]),
1050
+ _: 1
1051
+ })) : (openBlock(), createBlock(_component_UBadge, {
1052
+ key: 2,
1053
+ color: "warning",
1054
+ variant: "subtle",
1055
+ size: "xs"
1056
+ }, {
1057
+ default: withCtx(() => [
1058
+ createTextVNode("Not set up")
1059
+ ]),
1060
+ _: 1
1061
+ }))
1062
+ ]),
1063
+ createVNode("p", { class: "text-sm text-gray-600 dark:text-gray-400" }, toDisplayString(row.summary), 1),
1064
+ !row.active ? (openBlock(), createBlock("p", {
1065
+ key: 0,
1066
+ class: "text-sm text-dimmed mt-1"
1067
+ }, toDisplayString(row.how), 1)) : createCommentVNode("", true),
1068
+ createVNode("div", { class: "flex items-center gap-3 mt-2 text-sm" }, [
1069
+ row.to && !row.active ? (openBlock(), createBlock(_component_UButton, {
1070
+ key: 0,
1071
+ to: row.to,
1072
+ size: "xs",
1073
+ variant: "soft",
1074
+ icon: "i-lucide-settings"
1075
+ }, {
1076
+ default: withCtx(() => [
1077
+ createTextVNode(toDisplayString(row.toLabel ?? "Configure"), 1)
1078
+ ]),
1079
+ _: 2
1080
+ }, 1032, ["to"])) : createCommentVNode("", true),
1081
+ row.doc ? (openBlock(), createBlock(_component_DocLink, {
1082
+ key: 1,
1083
+ to: row.doc,
1084
+ class: "text-sm"
1085
+ }, {
1086
+ default: withCtx(() => [
1087
+ createTextVNode("Docs")
1088
+ ]),
1089
+ _: 1
1090
+ }, 8, ["to"])) : createCommentVNode("", true)
1091
+ ])
1092
+ ])
1093
+ ]);
1094
+ }), 128))
1095
+ ]))
1096
+ ]),
1097
+ _: 1
1098
+ })
1099
+ ])
1100
+ ];
1101
+ }
1102
+ }),
1103
+ _: 1
1104
+ }, _parent));
1105
+ };
1106
+ }
1107
+ });
1108
+ const _sfc_setup = _sfc_main.setup;
1109
+ _sfc_main.setup = (props, ctx) => {
1110
+ const ssrContext = useSSRContext();
1111
+ (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/setup.vue");
1112
+ return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
1113
+ };
1114
+
1115
+ export { _sfc_main as default };
1116
+ //# sourceMappingURL=setup-Di0UMyWx.mjs.map