@piwitests/server 0.23.0 → 0.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (619) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/_nuxt/{DZECGgZm.js → 5nOoVJzL.js} +1 -1
  3. package/.output/public/_nuxt/6DSY_93j.js +1 -0
  4. package/.output/public/_nuxt/7vRR5W2L.js +1 -0
  5. package/.output/public/_nuxt/{CC8wk-N0.js → 9Dtlg-K4.js} +1 -1
  6. package/.output/public/_nuxt/9Yziijlb.js +1 -0
  7. package/.output/public/_nuxt/{DAhv9aNg.js → B-onBCAB.js} +1 -1
  8. package/.output/public/_nuxt/B2bK5uNR.js +1 -0
  9. package/.output/public/_nuxt/{B2L0-Lzp.js → B63B19Iv.js} +2 -2
  10. package/.output/public/_nuxt/{oSLbl-p0.js → B77w1Eib.js} +1 -1
  11. package/.output/public/_nuxt/{pZbe82l5.js → BC5bqlfM.js} +1 -1
  12. package/.output/public/_nuxt/{jR2xm3_t.js → BF5JDf9_.js} +1 -1
  13. package/.output/public/_nuxt/BFVrl1ss.js +1 -0
  14. package/.output/public/_nuxt/{Bj_v57Zu.js → BIHMeNW-.js} +1 -1
  15. package/.output/public/_nuxt/BKqOGcst.js +1 -0
  16. package/.output/public/_nuxt/{Bsc11YIJ.js → BLqooxh5.js} +1 -1
  17. package/.output/public/_nuxt/{Ce_j5NtN.js → BMfTUMYy.js} +1 -1
  18. package/.output/public/_nuxt/{CmTzxoQt.js → BOrnSpTA.js} +1 -1
  19. package/.output/public/_nuxt/{Bq4_kqIp.js → BPQNVV4M.js} +1 -1
  20. package/.output/public/_nuxt/{FJTsZ5Aa.js → BSKLNgre.js} +1 -1
  21. package/.output/public/_nuxt/BTCWUyBX.js +1 -0
  22. package/.output/public/_nuxt/BUYmGTVP.js +1 -0
  23. package/.output/public/_nuxt/{mi22nGUC.js → BWddBCom.js} +1 -1
  24. package/.output/public/_nuxt/{axj2iIDK.js → BYQ9lXQb.js} +1 -1
  25. package/.output/public/_nuxt/BYWQ47QQ.js +5 -0
  26. package/.output/public/_nuxt/{Bag08cIY.js → BYnqoVCE.js} +1 -1
  27. package/.output/public/_nuxt/{Clg2Qx0r.js → BaU2hm4B.js} +1 -1
  28. package/.output/public/_nuxt/{roaTZkYi.js → BbXvpkBp.js} +1 -1
  29. package/.output/public/_nuxt/Bb_925DD.js +1 -0
  30. package/.output/public/_nuxt/BcHU1KNK.js +1 -0
  31. package/.output/public/_nuxt/BdUGUwvE.js +1 -0
  32. package/.output/public/_nuxt/{D1Ucra3E.js → BeQq85yJ.js} +2 -2
  33. package/.output/public/_nuxt/Bg8yOdSf.js +1 -0
  34. package/.output/public/_nuxt/BhzfJaPC.js +1 -0
  35. package/.output/public/_nuxt/{499RbBSX.js → Bkb-0yS0.js} +4 -4
  36. package/.output/public/_nuxt/BmweLu9g.js +2 -0
  37. package/.output/public/_nuxt/Boyv6hLW.js +1 -0
  38. package/.output/public/_nuxt/{DXkFgrsT.js → Bq4xEWLF.js} +4 -4
  39. package/.output/public/_nuxt/{7_9fts7T.js → BraJd4EA.js} +1 -1
  40. package/.output/public/_nuxt/BvXrhZ8k.js +1 -0
  41. package/.output/public/_nuxt/{DNKZmhbX.js → Bw4oIhct.js} +1 -1
  42. package/.output/public/_nuxt/BxSrScjV.js +1 -0
  43. package/.output/public/_nuxt/Byqt8JHG.js +1 -0
  44. package/.output/public/_nuxt/{CNu3kken.js → BzBaMPgu.js} +4 -4
  45. package/.output/public/_nuxt/{PDSNX4Te.js → C1-8_6cB.js} +1 -1
  46. package/.output/public/_nuxt/{Ce89VyHE.js → C7SG50jD.js} +1 -1
  47. package/.output/public/_nuxt/{CBJFORiZ.js → C8WgBDU1.js} +1 -1
  48. package/.output/public/_nuxt/C8uZoJVq.js +1 -0
  49. package/.output/public/_nuxt/{D3SJGdl4.js → CBQXv4bU.js} +2 -2
  50. package/.output/public/_nuxt/CDEmotIt.js +1 -0
  51. package/.output/public/_nuxt/CIBOv3Ge.js +2 -0
  52. package/.output/public/_nuxt/CO7j4p5r.js +1 -0
  53. package/.output/public/_nuxt/COMhp7lz.js +1 -0
  54. package/.output/public/_nuxt/{jxc14CqP.js → CPiLUjjx.js} +1 -1
  55. package/.output/public/_nuxt/{DZ-KbUZi.js → CTYlay1H.js} +1 -1
  56. package/.output/public/_nuxt/{5QBnDbs_.js → CVEk4D8I.js} +1 -1
  57. package/.output/public/_nuxt/{LTMoFvEY.js → CbuK1HIv.js} +1 -1
  58. package/.output/public/_nuxt/{2yLW7WU0.js → CdLqOMvN.js} +1 -1
  59. package/.output/public/_nuxt/CdM2qNYM.js +2 -0
  60. package/.output/public/_nuxt/Ch8sGLqE.js +1 -0
  61. package/.output/public/_nuxt/CkdznmkX.js +1 -0
  62. package/.output/public/_nuxt/{DJzFYrBt.js → Cmuwgbf4.js} +1 -1
  63. package/.output/public/_nuxt/{C9I1Dp3S.js → CnRNwiuE.js} +1 -1
  64. package/.output/public/_nuxt/{Bb2mDqKr.js → CnsaoeEq.js} +1 -1
  65. package/.output/public/_nuxt/{DgEa6_av.js → Cp0V2FeW.js} +1 -1
  66. package/.output/public/_nuxt/Cvw4EFTy.js +17 -0
  67. package/.output/public/_nuxt/CwDej2Lz.js +1 -0
  68. package/.output/public/_nuxt/D-wlhH6J.js +1 -0
  69. package/.output/public/_nuxt/D5Mhpp98.js +1 -0
  70. package/.output/public/_nuxt/{CTTmX4gy.js → D8ixf-ZR.js} +5 -5
  71. package/.output/public/_nuxt/{HbnAkiyK.js → DBvdRbTA.js} +2 -2
  72. package/.output/public/_nuxt/DDho3MJD.js +1 -0
  73. package/.output/public/_nuxt/DEGHW4pO.js +1 -0
  74. package/.output/public/_nuxt/{C77tM5Hz.js → DHSYRMJp.js} +1 -1
  75. package/.output/public/_nuxt/DH_LEqhd.js +2 -0
  76. package/.output/public/_nuxt/{CUOS6S13.js → DIqik40e.js} +1 -1
  77. package/.output/public/_nuxt/DLwuL-qR.js +1 -0
  78. package/.output/public/_nuxt/{AQ86C4c2.js → DPDFGVb_.js} +2 -2
  79. package/.output/public/_nuxt/DRNHuVn4.js +2 -0
  80. package/.output/public/_nuxt/{B_MVJP17.js → DUtYU4Sb.js} +1 -1
  81. package/.output/public/_nuxt/{CAoQUDI4.js → DWl73MJR.js} +1 -1
  82. package/.output/public/_nuxt/{BZFiz2UB.js → DWz_bHNP.js} +1 -1
  83. package/.output/public/_nuxt/{CGDPUNcO.js → D_SCB-z2.js} +1 -1
  84. package/.output/public/_nuxt/{Ce47NgZw.js → D_j436ND.js} +1 -1
  85. package/.output/public/_nuxt/DamzjN7l.js +1 -0
  86. package/.output/public/_nuxt/Db5xe__T.js +1 -0
  87. package/.output/public/_nuxt/{BuGAn4f7.js → DcUBmKKE.js} +1 -1
  88. package/.output/public/_nuxt/DiP18sFE.js +1 -0
  89. package/.output/public/_nuxt/Die1200X.js +1 -0
  90. package/.output/public/_nuxt/DihSeDlY.js +9 -0
  91. package/.output/public/_nuxt/{BAbrtVp3.js → DkGXOZRW.js} +1 -1
  92. package/.output/public/_nuxt/{ZLfZolDM.js → DnOtRv65.js} +1 -1
  93. package/.output/public/_nuxt/DnV-BkUA.js +1 -0
  94. package/.output/public/_nuxt/DpeRrg68.js +1 -0
  95. package/.output/public/_nuxt/Dq6_-84R.js +1 -0
  96. package/.output/public/_nuxt/DqKFKS1b.js +1 -0
  97. package/.output/public/_nuxt/DrbO0dl5.js +6 -0
  98. package/.output/public/_nuxt/{B3G-TIoP.js → Ds8_6Fzl.js} +1 -1
  99. package/.output/public/_nuxt/{QZYo3ErV.js → DvewDI9t.js} +1 -1
  100. package/.output/public/_nuxt/E26Y1NWH.js +1 -0
  101. package/.output/public/_nuxt/Hp-_W7z4.js +1 -0
  102. package/.output/public/_nuxt/OanUGF_v.js +1 -0
  103. package/.output/public/_nuxt/{9_aJhhcm.js → RSS6R9Te.js} +12 -12
  104. package/.output/public/_nuxt/{BfcMJBTf.js → VqLetC2g.js} +1 -1
  105. package/.output/public/_nuxt/WCZdf9Ln.js +1 -0
  106. package/.output/public/_nuxt/{DBWM_xs-.js → Yl6iqHwK.js} +4 -4
  107. package/.output/public/_nuxt/builds/latest.json +1 -1
  108. package/.output/public/_nuxt/builds/meta/03f2d81b-8c58-4ea8-9a9d-7553c8ca4af6.json +1 -0
  109. package/.output/public/_nuxt/entry.DVKh2Fd6.css +1 -0
  110. package/.output/public/_nuxt/iUf7K_JR.js +1 -0
  111. package/.output/public/_nuxt/{B_JSV0yG.js → kDEwM7SQ.js} +1 -1
  112. package/.output/public/_nuxt/{BDUfBn3i.js → knaDbxMJ.js} +1 -1
  113. package/.output/public/_nuxt/lnpLc047.js +1 -0
  114. package/.output/public/_nuxt/{C2_7XZo0.js → mhvG7mu8.js} +1 -1
  115. package/.output/public/_nuxt/{Ck_fTH5z.js → qUaN2ZW8.js} +4 -4
  116. package/.output/public/_nuxt/qeqzb80l.js +1 -0
  117. package/.output/public/_nuxt/{BwwfasRt.js → uj92NYTx.js} +2 -2
  118. package/.output/public/_nuxt/vOZZ2cLi.js +1 -0
  119. package/.output/public/_nuxt/{CLWMETf9.js → zAFiz2Mg.js} +1 -1
  120. package/.output/public/demo/seed.version.json +2 -2
  121. package/.output/server/chunks/_/collect.mjs +1 -1
  122. package/.output/server/chunks/_/markers.mjs +1 -1
  123. package/.output/server/chunks/_/quarantine.mjs +1 -1
  124. package/.output/server/chunks/_/users.mjs +1 -1
  125. package/.output/server/chunks/build/{Alert-He-UxEt6.mjs → Alert-BhTWQzM5.mjs} +2 -2
  126. package/.output/server/chunks/build/Alert-BhTWQzM5.mjs.map +1 -0
  127. package/.output/server/chunks/build/{Breadcrumb-DEP2dVCZ.mjs → Breadcrumb-BJnPB2AW.mjs} +3 -3
  128. package/.output/server/chunks/build/Breadcrumb-BJnPB2AW.mjs.map +1 -0
  129. package/.output/server/chunks/build/{BreadcrumbNav-y6nMDYcR.mjs → BreadcrumbNav-C6Cun6tF.mjs} +3 -3
  130. package/.output/server/chunks/build/BreadcrumbNav-C6Cun6tF.mjs.map +1 -0
  131. package/.output/server/chunks/build/{BrowserBadge-DIASU8Gf.mjs → BrowserBadge-T1KRMIXA.mjs} +4 -4
  132. package/.output/server/chunks/build/BrowserBadge-T1KRMIXA.mjs.map +1 -0
  133. package/.output/server/chunks/build/{ChartCard-ZTsCvItQ.mjs → ChartCard-D_asI_WF.mjs} +2 -2
  134. package/.output/server/chunks/build/ChartCard-D_asI_WF.mjs.map +1 -0
  135. package/.output/server/chunks/build/{ChartMarkerTooltip-u_1DUHh-.mjs → ChartMarkerTooltip-DscESDg7.mjs} +3 -3
  136. package/.output/server/chunks/build/ChartMarkerTooltip-DscESDg7.mjs.map +1 -0
  137. package/.output/server/chunks/build/{Checkbox-BisdHf8n.mjs → Checkbox-Y9ZiIRkJ.mjs} +7 -7
  138. package/.output/server/chunks/build/Checkbox-Y9ZiIRkJ.mjs.map +1 -0
  139. package/.output/server/chunks/build/{CodeBlock-B8BNtZAe.mjs → CodeBlock-Bnn_ps9O.mjs} +5 -5
  140. package/.output/server/chunks/build/CodeBlock-Bnn_ps9O.mjs.map +1 -0
  141. package/.output/server/chunks/build/{DashboardNavbar-D7-3zBUU.mjs → DashboardNavbar-D37dPEtR.mjs} +3 -3
  142. package/.output/server/chunks/build/DashboardNavbar-D37dPEtR.mjs.map +1 -0
  143. package/.output/server/chunks/build/{DashboardSidebarToggle-C3HdHvlE.mjs → DashboardSidebarToggle-DzwsZHVx.mjs} +3 -3
  144. package/.output/server/chunks/build/DashboardSidebarToggle-DzwsZHVx.mjs.map +1 -0
  145. package/.output/server/chunks/build/{DataLocationCard-CC2-lHiP.mjs → DataLocationCard-CUXgZQEs.mjs} +4 -4
  146. package/.output/server/chunks/build/DataLocationCard-CUXgZQEs.mjs.map +1 -0
  147. package/.output/server/chunks/build/{DesktopRunLocallyButton-iNzrDsEs.mjs → DesktopRunLocallyButton-BCmQklj6.mjs} +15 -76
  148. package/.output/server/chunks/build/DesktopRunLocallyButton-BCmQklj6.mjs.map +1 -0
  149. package/.output/server/chunks/build/{DiagnosisPanel-BVb2LgHu.mjs → DiagnosisPanel-haHS2azn.mjs} +8 -8
  150. package/.output/server/chunks/build/DiagnosisPanel-haHS2azn.mjs.map +1 -0
  151. package/.output/server/chunks/build/{DiagnosisResult-xVgZlfKK.mjs → DiagnosisResult-DqTIOelM.mjs} +11 -11
  152. package/.output/server/chunks/build/DiagnosisResult-DqTIOelM.mjs.map +1 -0
  153. package/.output/server/chunks/build/{DurationValue-UX9uajQJ.mjs → DurationValue-D6fQEi5S.mjs} +2 -2
  154. package/.output/server/chunks/build/DurationValue-D6fQEi5S.mjs.map +1 -0
  155. package/.output/server/chunks/build/{EmptyState-DC2q_7TD.mjs → EmptyState-C-mCzGhO.mjs} +2 -2
  156. package/.output/server/chunks/build/EmptyState-C-mCzGhO.mjs.map +1 -0
  157. package/.output/server/chunks/build/{EntityLinks-Dzn73fbq.mjs → EntityLinks-CRJQM9Vy.mjs} +4 -4
  158. package/.output/server/chunks/build/EntityLinks-CRJQM9Vy.mjs.map +1 -0
  159. package/.output/server/chunks/build/{EnvManagedBadge-C-agmABK.mjs → EnvManagedBadge-hyelwXrw.mjs} +4 -4
  160. package/.output/server/chunks/build/EnvManagedBadge-hyelwXrw.mjs.map +1 -0
  161. package/.output/server/chunks/build/{ErrorState-CktYyeEZ.mjs → ErrorState-9UPssp7w.mjs} +2 -2
  162. package/.output/server/chunks/build/ErrorState-9UPssp7w.mjs.map +1 -0
  163. package/.output/server/chunks/build/{FeatureUnavailable-DHFkwI7t.mjs → FeatureUnavailable-CDw3__eq.mjs} +3 -3
  164. package/.output/server/chunks/build/FeatureUnavailable-CDw3__eq.mjs.map +1 -0
  165. package/.output/server/chunks/build/{FormField-GYHKiSI6.mjs → FormField-8vSc-3mb.mjs} +2 -2
  166. package/.output/server/chunks/build/FormField-8vSc-3mb.mjs.map +1 -0
  167. package/.output/server/chunks/build/{GetStartedWizard-BpcGYsm2.mjs → GetStartedWizard-Dp_tjhry.mjs} +4 -4
  168. package/.output/server/chunks/build/GetStartedWizard-Dp_tjhry.mjs.map +1 -0
  169. package/.output/server/chunks/build/{HelpHint-plioHKA0.mjs → HelpHint-Bfyo3ar6.mjs} +31 -4
  170. package/.output/server/chunks/build/HelpHint-Bfyo3ar6.mjs.map +1 -0
  171. package/.output/server/chunks/build/{LoadingState-CwpfmI0W.mjs → LoadingState-CxfFwac9.mjs} +2 -2
  172. package/.output/server/chunks/build/LoadingState-CxfFwac9.mjs.map +1 -0
  173. package/.output/server/chunks/build/{MarkerBadge-Biz5--h2.mjs → MarkerBadge-DmubzeuF.mjs} +2 -2
  174. package/.output/server/chunks/build/MarkerBadge-DmubzeuF.mjs.map +1 -0
  175. package/.output/server/chunks/build/{MetaStripGroup-A0a72vt5.mjs → MetaStripGroup-C-cNBfC9.mjs} +6 -6
  176. package/.output/server/chunks/build/MetaStripGroup-C-cNBfC9.mjs.map +1 -0
  177. package/.output/server/chunks/build/{Modal-hKLvVFNp.mjs → Modal-DcNzjvnm.mjs} +2 -2
  178. package/.output/server/chunks/build/Modal-DcNzjvnm.mjs.map +1 -0
  179. package/.output/server/chunks/build/{NavbarActions-_YjrSUat.mjs → NavbarActions-VCHW0u67.mjs} +2 -2
  180. package/.output/server/chunks/build/NavbarActions-VCHW0u67.mjs.map +1 -0
  181. package/.output/server/chunks/build/{NavigationMenu-RfBOyS32.mjs → NavigationMenu-DG6V0R9Y.mjs} +5 -5
  182. package/.output/server/chunks/build/NavigationMenu-DG6V0R9Y.mjs.map +1 -0
  183. package/.output/server/chunks/build/{OpenInIdeLink-Jp6SzEtD.mjs → OpenInIdeLink-CLj2cTkc.mjs} +6 -6
  184. package/.output/server/chunks/build/{OpenInIdeLink-Jp6SzEtD.mjs.map → OpenInIdeLink-CLj2cTkc.mjs.map} +1 -1
  185. package/.output/server/chunks/build/{ProjectTestCasesTable-DxOTfhi4.mjs → ProjectTestCasesTable-BNd5Fn_G.mjs} +15 -15
  186. package/.output/server/chunks/build/{ProjectTestCasesTable-DxOTfhi4.mjs.map → ProjectTestCasesTable-BNd5Fn_G.mjs.map} +1 -1
  187. package/.output/server/chunks/build/{RovingFocusItem-BOSx1Z9Z.mjs → RovingFocusItem-DkZadRuK.mjs} +2 -2
  188. package/.output/server/chunks/build/RovingFocusItem-DkZadRuK.mjs.map +1 -0
  189. package/.output/server/chunks/build/{RunReports-nuLb-Nm3.mjs → RunReports-CnyGcU8K.mjs} +4 -4
  190. package/.output/server/chunks/build/RunReports-CnyGcU8K.mjs.map +1 -0
  191. package/.output/server/chunks/build/{RunStatusBadge-CvWmcFYM.mjs → RunStatusBadge-DTqX18X-.mjs} +3 -3
  192. package/.output/server/chunks/build/RunStatusBadge-DTqX18X-.mjs.map +1 -0
  193. package/.output/server/chunks/build/{SectionCard-DHAFvJxm.mjs → SectionCard-taTpPtua.mjs} +3 -3
  194. package/.output/server/chunks/build/SectionCard-taTpPtua.mjs.map +1 -0
  195. package/.output/server/chunks/build/{Select-CEyw7HGK.mjs → Select-BChKOOsc.mjs} +4 -4
  196. package/.output/server/chunks/build/Select-BChKOOsc.mjs.map +1 -0
  197. package/.output/server/chunks/build/{SelectMenu-C02Hs2_F.mjs → SelectMenu-DLkMyBsW.mjs} +5 -5
  198. package/.output/server/chunks/build/{SelectMenu-C02Hs2_F.mjs.map → SelectMenu-DLkMyBsW.mjs.map} +1 -1
  199. package/.output/server/chunks/build/{Separator-lrN70ODV.mjs → Separator-Dn-4PN3P.mjs} +2 -2
  200. package/.output/server/chunks/build/Separator-Dn-4PN3P.mjs.map +1 -0
  201. package/.output/server/chunks/build/{SettingsField-tRmytcEJ.mjs → SettingsField-BLO1C7uY.mjs} +6 -6
  202. package/.output/server/chunks/build/SettingsField-BLO1C7uY.mjs.map +1 -0
  203. package/.output/server/chunks/build/{Slideover-D6cRIqch.mjs → Slideover-BiDJaQrt.mjs} +3 -3
  204. package/.output/server/chunks/build/Slideover-BiDJaQrt.mjs.map +1 -0
  205. package/.output/server/chunks/build/{Switch-R2n82ncQ.mjs → Switch-Ca3fYrSH.mjs} +4 -4
  206. package/.output/server/chunks/build/Switch-Ca3fYrSH.mjs.map +1 -0
  207. package/.output/server/chunks/build/{Table-qZdnm9t2.mjs → Table-DQb34a0A.mjs} +3 -3
  208. package/.output/server/chunks/build/Table-DQb34a0A.mjs.map +1 -0
  209. package/.output/server/chunks/build/{Tabs-BDP7MWl4.mjs → Tabs-_ALhm_oG.mjs} +3 -3
  210. package/.output/server/chunks/build/Tabs-_ALhm_oG.mjs.map +1 -0
  211. package/.output/server/chunks/build/{TestCaseHistoryChart-CKDXQ2GI.mjs → TestCaseHistoryChart-D-TEUsZ8.mjs} +3 -3
  212. package/.output/server/chunks/build/TestCaseHistoryChart-D-TEUsZ8.mjs.map +1 -0
  213. package/.output/server/chunks/build/{TestMetaBadges-BlyKmfeP.mjs → TestMetaBadges-G2dAHnT-.mjs} +2 -2
  214. package/.output/server/chunks/build/TestMetaBadges-G2dAHnT-.mjs.map +1 -0
  215. package/.output/server/chunks/build/{TestStatusBar-CvsmKJ4D.mjs → TestStatusBar-CseETAdn.mjs} +2 -2
  216. package/.output/server/chunks/build/TestStatusBar-CseETAdn.mjs.map +1 -0
  217. package/.output/server/chunks/build/{Textarea-DpmpM-lN.mjs → Textarea-CXOoRq7y.mjs} +2 -2
  218. package/.output/server/chunks/build/Textarea-CXOoRq7y.mjs.map +1 -0
  219. package/.output/server/chunks/build/{Tooltip-BI3WQErw.mjs → Tooltip-trltUr5c.mjs} +3 -3
  220. package/.output/server/chunks/build/Tooltip-trltUr5c.mjs.map +1 -0
  221. package/.output/server/chunks/build/{VisuallyHiddenInput-D4E5aJCQ.mjs → VisuallyHiddenInput-CGURvg3N.mjs} +2 -2
  222. package/.output/server/chunks/build/VisuallyHiddenInput-CGURvg3N.mjs.map +1 -0
  223. package/.output/server/chunks/build/{_id_-CrGTZymJ.mjs → _id_-B-G4eG5U.mjs} +40 -40
  224. package/.output/server/chunks/build/{_id_-CrGTZymJ.mjs.map → _id_-B-G4eG5U.mjs.map} +1 -1
  225. package/.output/server/chunks/build/{_id_-T965GKYC.mjs → _id_-Cnzg8n21.mjs} +41 -38
  226. package/.output/server/chunks/build/_id_-Cnzg8n21.mjs.map +1 -0
  227. package/.output/server/chunks/build/{_id_-wiULjAVc.mjs → _id_-Dp_d6gT7.mjs} +63 -55
  228. package/.output/server/chunks/build/{_id_-wiULjAVc.mjs.map → _id_-Dp_d6gT7.mjs.map} +1 -1
  229. package/.output/server/chunks/build/{_id_-D7UtAIPR.mjs → _id_-t2AWaYuK.mjs} +59 -52
  230. package/.output/server/chunks/build/{_id_-D7UtAIPR.mjs.map → _id_-t2AWaYuK.mjs.map} +1 -1
  231. package/.output/server/chunks/build/{about-B3V_OEiu.mjs → about-BFsHkJwE.mjs} +8 -8
  232. package/.output/server/chunks/build/about-BFsHkJwE.mjs.map +1 -0
  233. package/.output/server/chunks/build/{account-DpBdYE46.mjs → account-CZAq8kVg.mjs} +8 -8
  234. package/.output/server/chunks/build/account-CZAq8kVg.mjs.map +1 -0
  235. package/.output/server/chunks/build/{ai-DYhpzbqp.mjs → ai-BGP3GcCR.mjs} +21 -21
  236. package/.output/server/chunks/build/{ai-DYhpzbqp.mjs.map → ai-BGP3GcCR.mjs.map} +1 -1
  237. package/.output/server/chunks/build/{analytics-CZJEU0an.mjs → analytics-CXl5OWV-.mjs} +25 -25
  238. package/.output/server/chunks/build/{analytics-CZJEU0an.mjs.map → analytics-CXl5OWV-.mjs.map} +1 -1
  239. package/.output/server/chunks/build/client.precomputed.mjs +1 -1
  240. package/.output/server/chunks/build/{db.client-Bdqk_eYQ.mjs → db.client-DijpEH6i.mjs} +3 -1
  241. package/.output/server/chunks/build/db.client-DijpEH6i.mjs.map +1 -0
  242. package/.output/server/chunks/build/{default-DO1izI2V.mjs → default-4ixAePum.mjs} +209 -77
  243. package/.output/server/chunks/build/default-4ixAePum.mjs.map +1 -0
  244. package/.output/server/chunks/build/{docs-C8bndVXg.mjs → docs-Cgsd01H9.mjs} +16 -16
  245. package/.output/server/chunks/build/{docs-C8bndVXg.mjs.map → docs-Cgsd01H9.mjs.map} +1 -1
  246. package/.output/server/chunks/build/{edit-BdfF9er2.mjs → edit-BEQ-ozj9.mjs} +436 -40
  247. package/.output/server/chunks/build/edit-BEQ-ozj9.mjs.map +1 -0
  248. package/.output/server/chunks/build/{fetch-tkz5_OA-.mjs → fetch-B5TVXZ1s.mjs} +3 -3
  249. package/.output/server/chunks/build/fetch-B5TVXZ1s.mjs.map +1 -0
  250. package/.output/server/chunks/build/{forgot-password-swZRcvXE.mjs → forgot-password-mqE1mpDI.mjs} +4 -4
  251. package/.output/server/chunks/build/forgot-password-mqE1mpDI.mjs.map +1 -0
  252. package/.output/server/chunks/build/{help-content-C876a9WD.mjs → help-content-Bc99BajS.mjs} +6 -1
  253. package/.output/server/chunks/build/help-content-Bc99BajS.mjs.map +1 -0
  254. package/.output/server/chunks/build/{import-B27Sv7h5.mjs → import-DqDDTcSc.mjs} +15 -15
  255. package/.output/server/chunks/build/import-DqDDTcSc.mjs.map +1 -0
  256. package/.output/server/chunks/build/{index-ID913tUa.mjs → index-Bpdj6TXV.mjs} +5 -5
  257. package/.output/server/chunks/build/index-Bpdj6TXV.mjs.map +1 -0
  258. package/.output/server/chunks/build/{index-vRwzDXLs.mjs → index-DBFsIsjA.mjs} +534 -262
  259. package/.output/server/chunks/build/index-DBFsIsjA.mjs.map +1 -0
  260. package/.output/server/chunks/build/{index-C7m32bRI.mjs → index-DSufXCZq.mjs} +22 -18
  261. package/.output/server/chunks/build/index-DSufXCZq.mjs.map +1 -0
  262. package/.output/server/chunks/build/{index-BdZmxLtC.mjs → index-WXE60AXk.mjs} +24 -24
  263. package/.output/server/chunks/build/{index-BdZmxLtC.mjs.map → index-WXE60AXk.mjs.map} +1 -1
  264. package/.output/server/chunks/build/{index-ByWTzqF6.mjs → index-okKjrRhL.mjs} +15 -4
  265. package/.output/server/chunks/build/index-okKjrRhL.mjs.map +1 -0
  266. package/.output/server/chunks/build/{isValueEqualOrExist-D4lZ8uRY.mjs → isValueEqualOrExist-C-9DzL4K.mjs} +3 -3
  267. package/.output/server/chunks/build/isValueEqualOrExist-C-9DzL4K.mjs.map +1 -0
  268. package/.output/server/chunks/build/{login-hxCF06JT.mjs → login-eQ88UoBW.mjs} +7 -7
  269. package/.output/server/chunks/build/login-eQ88UoBW.mjs.map +1 -0
  270. package/.output/server/chunks/build/{mcp-BVW1llyW.mjs → mcp-frcSP2Zg.mjs} +14 -14
  271. package/.output/server/chunks/build/mcp-frcSP2Zg.mjs.map +1 -0
  272. package/.output/server/chunks/build/{notifications-Dn-evqXM.mjs → notifications-DAtRd5V6.mjs} +14 -14
  273. package/.output/server/chunks/build/notifications-DAtRd5V6.mjs.map +1 -0
  274. package/.output/server/chunks/build/{performance-CV8qm94u.mjs → performance-BcQzGXE7.mjs} +13 -13
  275. package/.output/server/chunks/build/performance-BcQzGXE7.mjs.map +1 -0
  276. package/.output/server/chunks/build/{pr-feedback-gKDz8LyA.mjs → pr-feedback-BHtgvegy.mjs} +11 -11
  277. package/.output/server/chunks/build/pr-feedback-BHtgvegy.mjs.map +1 -0
  278. package/.output/server/chunks/build/{reset-password-DtEISa1I.mjs → reset-password-DMHrp14-.mjs} +4 -4
  279. package/.output/server/chunks/build/reset-password-DMHrp14-.mjs.map +1 -0
  280. package/.output/server/chunks/build/server.mjs +34 -34
  281. package/.output/server/chunks/build/{settings-BJDnuLpc.mjs → settings-Bo5OETop.mjs} +11 -11
  282. package/.output/server/chunks/build/settings-Bo5OETop.mjs.map +1 -0
  283. package/.output/server/chunks/build/{settings-metadata-DnAK4Rzg.mjs → settings-metadata-BHbsWQ2g.mjs} +3 -3
  284. package/.output/server/chunks/build/settings-metadata-BHbsWQ2g.mjs.map +1 -0
  285. package/.output/server/chunks/build/{setup-BO9tXa_G.mjs → setup-DAXcxuNY.mjs} +18 -18
  286. package/.output/server/chunks/build/{setup-BO9tXa_G.mjs.map → setup-DAXcxuNY.mjs.map} +1 -1
  287. package/.output/server/chunks/build/{storage-zN92cA9q.mjs → storage-BPK0fVwx.mjs} +13 -13
  288. package/.output/server/chunks/build/storage-BPK0fVwx.mjs.map +1 -0
  289. package/.output/server/chunks/build/{tags-CJFnoyQc.mjs → tags-CoxErA5m.mjs} +8 -8
  290. package/.output/server/chunks/build/tags-CoxErA5m.mjs.map +1 -0
  291. package/.output/server/chunks/build/{test-cases-0Q6rT73d.mjs → test-cases-D8rn-0le.mjs} +27 -27
  292. package/.output/server/chunks/build/test-cases-D8rn-0le.mjs.map +1 -0
  293. package/.output/server/chunks/build/{test-functions-DVRJgiWo.mjs → test-functions-pWs9mhbJ.mjs} +13 -13
  294. package/.output/server/chunks/build/test-functions-pWs9mhbJ.mjs.map +1 -0
  295. package/.output/server/chunks/build/{useCopyRich-CZxJ7IY_.mjs → useCopyRich-BqVfhnoH.mjs} +90 -33
  296. package/.output/server/chunks/build/{useCopyRich-CZxJ7IY_.mjs.map → useCopyRich-BqVfhnoH.mjs.map} +1 -1
  297. package/.output/server/chunks/build/{useDesktopDownload-Dyf0fR47.mjs → useDesktopDownload-l80DQJ9e.mjs} +2 -2
  298. package/.output/server/chunks/build/useDesktopDownload-l80DQJ9e.mjs.map +1 -0
  299. package/.output/server/chunks/build/{useDesktopLocalRuns-k7Gw3Fv3.mjs → useDesktopLocalRuns-Dil3YzyU.mjs} +68 -6
  300. package/.output/server/chunks/build/useDesktopLocalRuns-Dil3YzyU.mjs.map +1 -0
  301. package/.output/server/chunks/build/{useDesktopProjectLink-WwLte59P.mjs → useDesktopProjectLink-BnIONB--.mjs} +21 -4
  302. package/.output/server/chunks/build/useDesktopProjectLink-BnIONB--.mjs.map +1 -0
  303. package/.output/server/chunks/build/{useFormControl-8skMOTIf.mjs → useFormControl-CXKztoWk.mjs} +2 -2
  304. package/.output/server/chunks/build/useFormControl-CXKztoWk.mjs.map +1 -0
  305. package/.output/server/chunks/build/{useOpenInIde-D74FmDNg.mjs → useOpenInIde-CbbYW3pd.mjs} +2 -2
  306. package/.output/server/chunks/build/useOpenInIde-CbbYW3pd.mjs.map +1 -0
  307. package/.output/server/chunks/build/{useSettingsNav-BLTHducV.mjs → useSettingsNav-C6NpD4Ab.mjs} +2 -2
  308. package/.output/server/chunks/build/useSettingsNav-C6NpD4Ab.mjs.map +1 -0
  309. package/.output/server/chunks/build/{users-C9bjOBde.mjs → users-C2MuCf5G.mjs} +9 -9
  310. package/.output/server/chunks/build/users-C2MuCf5G.mjs.map +1 -0
  311. package/.output/server/chunks/nitro/nitro.mjs +1032 -721
  312. package/.output/server/chunks/nitro/nitro.mjs.map +1 -1
  313. package/.output/server/chunks/routes/__piwi/session.get.mjs +1 -1
  314. package/.output/server/chunks/routes/api/ai/step-resolution.post.mjs +88 -0
  315. package/.output/server/chunks/routes/api/ai/step-resolution.post.mjs.map +1 -0
  316. package/.output/server/chunks/routes/api/analytics/_widget_.get.mjs +1 -1
  317. package/.output/server/chunks/routes/api/auth/change-password.post.mjs +1 -1
  318. package/.output/server/chunks/routes/api/auth/forgot-password.post.mjs +1 -1
  319. package/.output/server/chunks/routes/api/auth/login.post.mjs +1 -1
  320. package/.output/server/chunks/routes/api/auth/logout.post.mjs +1 -1
  321. package/.output/server/chunks/routes/api/auth/me.get.mjs +1 -1
  322. package/.output/server/chunks/routes/api/auth/oauth/_provider/callback.get.mjs +1 -1
  323. package/.output/server/chunks/routes/api/auth/oauth/_provider/login.get.mjs +1 -1
  324. package/.output/server/chunks/routes/api/auth/oauth/_provider/unlink.post.mjs +1 -1
  325. package/.output/server/chunks/routes/api/auth/reset-password.post.mjs +1 -1
  326. package/.output/server/chunks/routes/api/auth/send-verify-email.post.mjs +1 -1
  327. package/.output/server/chunks/routes/api/auth/setup.get.mjs +1 -1
  328. package/.output/server/chunks/routes/api/auth/setup.post.mjs +1 -1
  329. package/.output/server/chunks/routes/api/auth/verify-email.get.mjs +1 -1
  330. package/.output/server/chunks/routes/api/channels/_id/test.post.mjs +1 -1
  331. package/.output/server/chunks/routes/api/channels/_id_.delete.mjs +1 -1
  332. package/.output/server/chunks/routes/api/cluster-merge-suggestions/_id/approve.post.mjs +1 -1
  333. package/.output/server/chunks/routes/api/cluster-merge-suggestions/_id/reject.post.mjs +1 -1
  334. package/.output/server/chunks/routes/api/desktop/import-local.post.mjs +1 -1
  335. package/.output/server/chunks/routes/api/failure-clusters/_id/base-commit.patch.mjs +1 -1
  336. package/.output/server/chunks/routes/api/failure-clusters/_id/branches.get.mjs +1 -1
  337. package/.output/server/chunks/routes/api/failure-clusters/_id/commit-diff.get.mjs +1 -1
  338. package/.output/server/chunks/routes/api/failure-clusters/_id/commits.get.mjs +1 -1
  339. package/.output/server/chunks/routes/api/failure-clusters/_id/context.get.mjs +1 -1
  340. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnose/stream.post.mjs +1 -1
  341. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnose.post.mjs +1 -1
  342. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnoses.get.mjs +1 -1
  343. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnosis.get.mjs +1 -1
  344. package/.output/server/chunks/routes/api/failure-clusters/_id/export.get.mjs +1 -1
  345. package/.output/server/chunks/routes/api/failure-clusters/_id/extract-cases.post.mjs +1 -1
  346. package/.output/server/chunks/routes/api/failure-clusters/_id/fix-plan.get.mjs +1 -1
  347. package/.output/server/chunks/routes/api/failure-clusters/_id/status.patch.mjs +1 -1
  348. package/.output/server/chunks/routes/api/failure-clusters/_id_.get.mjs +1 -1
  349. package/.output/server/chunks/routes/api/failure-diagnoses/_id/feedback.patch.mjs +1 -1
  350. package/.output/server/chunks/routes/api/files/_...path_.get.mjs +1 -1
  351. package/.output/server/chunks/routes/api/health.get.mjs +1 -1
  352. package/.output/server/chunks/routes/api/index.get.mjs +1 -1
  353. package/.output/server/chunks/routes/api/index.get2.mjs +1 -1
  354. package/.output/server/chunks/routes/api/index.get3.mjs +1 -1
  355. package/.output/server/chunks/routes/api/index.get4.mjs +1 -1
  356. package/.output/server/chunks/routes/api/index.get5.mjs +1 -1
  357. package/.output/server/chunks/routes/api/index.post.mjs +1 -1
  358. package/.output/server/chunks/routes/api/index.post2.mjs +1 -1
  359. package/.output/server/chunks/routes/api/index.post3.mjs +1 -1
  360. package/.output/server/chunks/routes/api/index.post4.mjs +1 -1
  361. package/.output/server/chunks/routes/api/index.post5.mjs +1 -1
  362. package/.output/server/chunks/routes/api/index.post6.mjs +1 -1
  363. package/.output/server/chunks/routes/api/links/_id/refresh.post.mjs +1 -1
  364. package/.output/server/chunks/routes/api/links/_id_.delete.mjs +1 -1
  365. package/.output/server/chunks/routes/api/links/_id_.patch.mjs +1 -1
  366. package/.output/server/chunks/routes/api/markers/_id_.delete.mjs +1 -1
  367. package/.output/server/chunks/routes/api/markers/_id_.put.mjs +1 -1
  368. package/.output/server/chunks/routes/api/notifications/stream.get.mjs +1 -1
  369. package/.output/server/chunks/routes/api/projects/_id/ai-steps.get.mjs +63 -0
  370. package/.output/server/chunks/routes/api/projects/_id/ai-steps.get.mjs.map +1 -0
  371. package/.output/server/chunks/routes/api/projects/_id/cluster-merge-suggestions.get.mjs +1 -1
  372. package/.output/server/chunks/routes/api/projects/_id/failure-clusters.get.mjs +1 -1
  373. package/.output/server/chunks/routes/api/projects/_id/flaky-classify.post.mjs +1 -1
  374. package/.output/server/chunks/routes/api/projects/_id/flaky-tests.get.mjs +1 -1
  375. package/.output/server/chunks/routes/api/projects/_id/latest-run.get.mjs +1 -1
  376. package/.output/server/chunks/routes/api/projects/_id/markers.get.mjs +1 -1
  377. package/.output/server/chunks/routes/api/projects/_id/markers.post.mjs +1 -1
  378. package/.output/server/chunks/routes/api/projects/_id/members.get.mjs +1 -1
  379. package/.output/server/chunks/routes/api/projects/_id/members.put.mjs +1 -1
  380. package/.output/server/chunks/routes/api/projects/_id/performance.get.mjs +1 -1
  381. package/.output/server/chunks/routes/api/projects/_id/quarantine/_testCaseId_.delete.mjs +1 -1
  382. package/.output/server/chunks/routes/api/projects/_id/quarantine.get.mjs +1 -1
  383. package/.output/server/chunks/routes/api/projects/_id/quarantine.post.mjs +1 -1
  384. package/.output/server/chunks/routes/api/projects/_id/slow-tests.get.mjs +1 -1
  385. package/.output/server/chunks/routes/api/projects/_id/spec-health.get.mjs +1 -1
  386. package/.output/server/chunks/routes/api/projects/_id/test-cases.get.mjs +1 -1
  387. package/.output/server/chunks/routes/api/projects/_id/test-functions/extract.post.mjs +1 -1
  388. package/.output/server/chunks/routes/api/projects/_id/test-functions/validate-proposal.post.mjs +1 -1
  389. package/.output/server/chunks/routes/api/projects/_id/test-functions.get.mjs +1 -1
  390. package/.output/server/chunks/routes/api/projects/_id/test-functions.post.mjs +1 -1
  391. package/.output/server/chunks/routes/api/projects/_id/timeout-opportunities.get.mjs +1 -1
  392. package/.output/server/chunks/routes/api/projects/_id_.delete.mjs +1 -1
  393. package/.output/server/chunks/routes/api/projects/_id_.get.mjs +1 -1
  394. package/.output/server/chunks/routes/api/projects/_id_.put.mjs +1 -1
  395. package/.output/server/chunks/routes/api/projects/menu.get.mjs +1 -1
  396. package/.output/server/chunks/routes/api/projects/overview.get.mjs +1 -1
  397. package/.output/server/chunks/routes/api/projects.get.mjs +1 -1
  398. package/.output/server/chunks/routes/api/search.get.mjs +1 -1
  399. package/.output/server/chunks/routes/api/settings/ai/limits.get.mjs +1 -1
  400. package/.output/server/chunks/routes/api/settings/ai/limits.put.mjs +1 -1
  401. package/.output/server/chunks/routes/api/settings/ai/test.post.mjs +1 -1
  402. package/.output/server/chunks/routes/api/settings/ai/usage.get.mjs +1 -1
  403. package/.output/server/chunks/routes/api/settings/ai.get.mjs +1 -1
  404. package/.output/server/chunks/routes/api/settings/ai.put.mjs +1 -1
  405. package/.output/server/chunks/routes/api/settings/pr-feedback.get.mjs +1 -1
  406. package/.output/server/chunks/routes/api/settings/pr-feedback.put.mjs +1 -1
  407. package/.output/server/chunks/routes/api/settings/smtp/test.post.mjs +1 -1
  408. package/.output/server/chunks/routes/api/settings/smtp.get.mjs +1 -1
  409. package/.output/server/chunks/routes/api/settings/timeout-hygiene.get.mjs +1 -1
  410. package/.output/server/chunks/routes/api/settings/timeout-hygiene.put.mjs +1 -1
  411. package/.output/server/chunks/routes/api/settings/wasted-waits.get.mjs +1 -1
  412. package/.output/server/chunks/routes/api/settings/wasted-waits.put.mjs +1 -1
  413. package/.output/server/chunks/routes/api/setup-status.get.mjs +1 -1
  414. package/.output/server/chunks/routes/api/stream.get.mjs +1 -1
  415. package/.output/server/chunks/routes/api/subscriptions/_id_.delete.mjs +1 -1
  416. package/.output/server/chunks/routes/api/subscriptions/_id_.patch.mjs +1 -1
  417. package/.output/server/chunks/routes/api/tags/_id_.delete.mjs +1 -1
  418. package/.output/server/chunks/routes/api/tags/_id_.put.mjs +1 -1
  419. package/.output/server/chunks/routes/api/test-cases/_id/history.get.mjs +1 -1
  420. package/.output/server/chunks/routes/api/test-cases/_id/stability-trend.get.mjs +1 -1
  421. package/.output/server/chunks/routes/api/test-cases/_id_.get.mjs +1 -1
  422. package/.output/server/chunks/routes/api/test-functions/_id_.delete.mjs +1 -1
  423. package/.output/server/chunks/routes/api/test-functions/_id_.put.mjs +1 -1
  424. package/.output/server/chunks/routes/api/test-run-cases/_id/diagnose.post.mjs +1 -1
  425. package/.output/server/chunks/routes/api/test-run-cases/_id/diagnosis-context.get.mjs +1 -1
  426. package/.output/server/chunks/routes/api/test-run-cases/_id/diagnosis.get.mjs +1 -1
  427. package/.output/server/chunks/routes/api/test-run-cases/_id/export.get.mjs +1 -1
  428. package/.output/server/chunks/routes/api/test-run-cases/_id/traces.get.mjs +1 -1
  429. package/.output/server/chunks/routes/api/test-run-cases/_id_.get.mjs +1 -1
  430. package/.output/server/chunks/routes/api/test-runs/_id/begin.post.mjs +1 -1
  431. package/.output/server/chunks/routes/api/test-runs/_id/case-files.post.mjs +1 -1
  432. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/dom-snapshot.get.mjs +1 -1
  433. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/environment-diff.get.mjs +1 -1
  434. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/locator-healing.get.mjs +1 -1
  435. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/locator-pick.post.mjs +1 -1
  436. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-network-body.get.mjs +1 -1
  437. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-network.get.mjs +1 -1
  438. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-stacks.get.mjs +1 -1
  439. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/visual-diff.get.mjs +1 -1
  440. package/.output/server/chunks/routes/api/test-runs/_id/events.post.mjs +1 -1
  441. package/.output/server/chunks/routes/api/test-runs/_id/failure-groups.get.mjs +1 -1
  442. package/.output/server/chunks/routes/api/test-runs/_id/finish.post.mjs +1 -1
  443. package/.output/server/chunks/routes/api/test-runs/_id/gate.post.mjs +1 -1
  444. package/.output/server/chunks/routes/api/test-runs/_id/heartbeat.post.mjs +1 -1
  445. package/.output/server/chunks/routes/api/test-runs/_id/insights.get.mjs +1 -1
  446. package/.output/server/chunks/routes/api/test-runs/_id/network-requests.get.mjs +1 -1
  447. package/.output/server/chunks/routes/api/test-runs/_id/regression-context.get.mjs +1 -1
  448. package/.output/server/chunks/routes/api/test-runs/_id/stream.get.mjs +1 -1
  449. package/.output/server/chunks/routes/api/test-runs/_id/summary.get.mjs +1 -1
  450. package/.output/server/chunks/routes/api/test-runs/_id_.delete.mjs +1 -1
  451. package/.output/server/chunks/routes/api/test-runs/_id_.get.mjs +1 -1
  452. package/.output/server/chunks/routes/api/test-runs/_id_.patch.mjs +1 -1
  453. package/.output/server/chunks/routes/api/test-runs/import/check.post.mjs +1 -1
  454. package/.output/server/chunks/routes/api/test-runs/import.post.mjs +1 -1
  455. package/.output/server/chunks/routes/api/test-runs/recent.get.mjs +1 -1
  456. package/.output/server/chunks/routes/api/test-runs/setup.post.mjs +1 -1
  457. package/.output/server/chunks/routes/api/test-runs/start.post.mjs +1 -1
  458. package/.output/server/chunks/routes/api/test-runs/submit.post.mjs +3 -1
  459. package/.output/server/chunks/routes/api/test-runs/submit.post.mjs.map +1 -1
  460. package/.output/server/chunks/routes/api/test-runs/upload.post.mjs +2 -1
  461. package/.output/server/chunks/routes/api/test-runs/upload.post.mjs.map +1 -1
  462. package/.output/server/chunks/routes/api/tests/cleanup.delete.mjs +2 -1
  463. package/.output/server/chunks/routes/api/tests/cleanup.delete.mjs.map +1 -1
  464. package/.output/server/chunks/routes/api/traces/check.post.mjs +1 -1
  465. package/.output/server/chunks/routes/api/users/_id/api-keys/_keyId_.delete.mjs +1 -1
  466. package/.output/server/chunks/routes/api/users/_id/index.get.mjs +1 -1
  467. package/.output/server/chunks/routes/api/users/_id/index.post.mjs +1 -1
  468. package/.output/server/chunks/routes/api/users/_id/invite.post.mjs +1 -1
  469. package/.output/server/chunks/routes/api/users/_id/projects.get.mjs +1 -1
  470. package/.output/server/chunks/routes/api/users/_id/projects.put.mjs +1 -1
  471. package/.output/server/chunks/routes/api/users/_id_.delete.mjs +1 -1
  472. package/.output/server/chunks/routes/api/users/_id_.patch.mjs +1 -1
  473. package/.output/server/chunks/routes/api/version.get.mjs +1 -1
  474. package/.output/server/chunks/routes/mcp.post.mjs +1 -1
  475. package/.output/server/chunks/routes/renderer.mjs +1 -1
  476. package/.output/server/database/migrations/0045_productive_stingray.sql +1 -0
  477. package/.output/server/database/migrations/meta/0045_snapshot.json +3779 -0
  478. package/.output/server/database/migrations/meta/_journal.json +7 -0
  479. package/.output/server/database/migrations-pg/0046_gorgeous_hercules.sql +1 -0
  480. package/.output/server/database/migrations-pg/meta/0046_snapshot.json +4486 -0
  481. package/.output/server/database/migrations-pg/meta/_journal.json +7 -0
  482. package/.output/server/index.mjs +1 -1
  483. package/.output/server/package.json +1 -1
  484. package/package.json +1 -1
  485. package/.output/public/_nuxt/5SkLJHl8.js +0 -1
  486. package/.output/public/_nuxt/6sA-GK37.js +0 -1
  487. package/.output/public/_nuxt/6vX5JdHr.js +0 -1
  488. package/.output/public/_nuxt/B070fjS-.js +0 -1
  489. package/.output/public/_nuxt/B0tmRAhY.js +0 -1
  490. package/.output/public/_nuxt/B3AG2m76.js +0 -1
  491. package/.output/public/_nuxt/B4mZElvM.js +0 -1
  492. package/.output/public/_nuxt/B7tiBVLW.js +0 -1
  493. package/.output/public/_nuxt/BFYkWpPx.js +0 -1
  494. package/.output/public/_nuxt/BM5BPKlc.js +0 -1
  495. package/.output/public/_nuxt/BNyTWIad.js +0 -9
  496. package/.output/public/_nuxt/BOvtXn3m.js +0 -1
  497. package/.output/public/_nuxt/BVyjw9Bi.js +0 -1
  498. package/.output/public/_nuxt/BZOykMLD.js +0 -1
  499. package/.output/public/_nuxt/BjMo2tKC.js +0 -6
  500. package/.output/public/_nuxt/BjOFxi54.js +0 -1
  501. package/.output/public/_nuxt/BjaRappk.js +0 -1
  502. package/.output/public/_nuxt/BtZNYmZO.js +0 -1
  503. package/.output/public/_nuxt/C6t4kxaa.js +0 -1
  504. package/.output/public/_nuxt/CEai-PWF.js +0 -1
  505. package/.output/public/_nuxt/CF_eDZHu.js +0 -1
  506. package/.output/public/_nuxt/CIQeRUSy.js +0 -17
  507. package/.output/public/_nuxt/CPQRQqXU.js +0 -1
  508. package/.output/public/_nuxt/CYhm2FBS.js +0 -5
  509. package/.output/public/_nuxt/CdEzDaDI.js +0 -1
  510. package/.output/public/_nuxt/CfhOanaF.js +0 -1
  511. package/.output/public/_nuxt/CvVbKrcH.js +0 -1
  512. package/.output/public/_nuxt/Cz7SCzdW.js +0 -1
  513. package/.output/public/_nuxt/D7fxV-UA.js +0 -1
  514. package/.output/public/_nuxt/D7t0Dn3h.js +0 -1
  515. package/.output/public/_nuxt/DCE2_MKD.js +0 -2
  516. package/.output/public/_nuxt/DFfqRQxk.js +0 -1
  517. package/.output/public/_nuxt/DNqm5cWU.js +0 -1
  518. package/.output/public/_nuxt/DTrPCv7R.js +0 -1
  519. package/.output/public/_nuxt/DYjxDsYC.js +0 -1
  520. package/.output/public/_nuxt/Dbf8eT28.js +0 -1
  521. package/.output/public/_nuxt/DeewM3Wg.js +0 -2
  522. package/.output/public/_nuxt/DiWxW-w3.js +0 -2
  523. package/.output/public/_nuxt/DmqCquDx.js +0 -1
  524. package/.output/public/_nuxt/DnxrNGE_.js +0 -1
  525. package/.output/public/_nuxt/DprkT7rM.js +0 -1
  526. package/.output/public/_nuxt/DuBtaw3j.js +0 -1
  527. package/.output/public/_nuxt/DylyATWU.js +0 -2
  528. package/.output/public/_nuxt/HIGGZ_c-.js +0 -1
  529. package/.output/public/_nuxt/RkNtgoTD.js +0 -1
  530. package/.output/public/_nuxt/Wk7ZKG4B.js +0 -1
  531. package/.output/public/_nuxt/Ya8ZzWuY.js +0 -1
  532. package/.output/public/_nuxt/a8Z6VC7V.js +0 -2
  533. package/.output/public/_nuxt/builds/meta/6d1766a0-0aba-46b8-9d97-7dd174130359.json +0 -1
  534. package/.output/public/_nuxt/dUPMBJ4f.js +0 -1
  535. package/.output/public/_nuxt/eT2oObCh.js +0 -1
  536. package/.output/public/_nuxt/entry.D_eWXrnD.css +0 -1
  537. package/.output/public/_nuxt/kWnH8yJq.js +0 -1
  538. package/.output/public/_nuxt/sqqg4oXL.js +0 -1
  539. package/.output/public/_nuxt/xZQGtnVA.js +0 -1
  540. package/.output/server/chunks/build/Alert-He-UxEt6.mjs.map +0 -1
  541. package/.output/server/chunks/build/Breadcrumb-DEP2dVCZ.mjs.map +0 -1
  542. package/.output/server/chunks/build/BreadcrumbNav-y6nMDYcR.mjs.map +0 -1
  543. package/.output/server/chunks/build/BrowserBadge-DIASU8Gf.mjs.map +0 -1
  544. package/.output/server/chunks/build/ChartCard-ZTsCvItQ.mjs.map +0 -1
  545. package/.output/server/chunks/build/ChartMarkerTooltip-u_1DUHh-.mjs.map +0 -1
  546. package/.output/server/chunks/build/Checkbox-BisdHf8n.mjs.map +0 -1
  547. package/.output/server/chunks/build/CodeBlock-B8BNtZAe.mjs.map +0 -1
  548. package/.output/server/chunks/build/DashboardNavbar-D7-3zBUU.mjs.map +0 -1
  549. package/.output/server/chunks/build/DashboardSidebarToggle-C3HdHvlE.mjs.map +0 -1
  550. package/.output/server/chunks/build/DataLocationCard-CC2-lHiP.mjs.map +0 -1
  551. package/.output/server/chunks/build/DesktopRunLocallyButton-iNzrDsEs.mjs.map +0 -1
  552. package/.output/server/chunks/build/DiagnosisPanel-BVb2LgHu.mjs.map +0 -1
  553. package/.output/server/chunks/build/DiagnosisResult-xVgZlfKK.mjs.map +0 -1
  554. package/.output/server/chunks/build/DurationValue-UX9uajQJ.mjs.map +0 -1
  555. package/.output/server/chunks/build/EmptyState-DC2q_7TD.mjs.map +0 -1
  556. package/.output/server/chunks/build/EntityLinks-Dzn73fbq.mjs.map +0 -1
  557. package/.output/server/chunks/build/EnvManagedBadge-C-agmABK.mjs.map +0 -1
  558. package/.output/server/chunks/build/ErrorState-CktYyeEZ.mjs.map +0 -1
  559. package/.output/server/chunks/build/FeatureUnavailable-DHFkwI7t.mjs.map +0 -1
  560. package/.output/server/chunks/build/FormField-GYHKiSI6.mjs.map +0 -1
  561. package/.output/server/chunks/build/GetStartedWizard-BpcGYsm2.mjs.map +0 -1
  562. package/.output/server/chunks/build/HelpHint-plioHKA0.mjs.map +0 -1
  563. package/.output/server/chunks/build/LoadingState-CwpfmI0W.mjs.map +0 -1
  564. package/.output/server/chunks/build/MarkerBadge-Biz5--h2.mjs.map +0 -1
  565. package/.output/server/chunks/build/MetaStripGroup-A0a72vt5.mjs.map +0 -1
  566. package/.output/server/chunks/build/Modal-hKLvVFNp.mjs.map +0 -1
  567. package/.output/server/chunks/build/NavbarActions-_YjrSUat.mjs.map +0 -1
  568. package/.output/server/chunks/build/NavigationMenu-RfBOyS32.mjs.map +0 -1
  569. package/.output/server/chunks/build/RovingFocusItem-BOSx1Z9Z.mjs.map +0 -1
  570. package/.output/server/chunks/build/RunReports-nuLb-Nm3.mjs.map +0 -1
  571. package/.output/server/chunks/build/RunStatusBadge-CvWmcFYM.mjs.map +0 -1
  572. package/.output/server/chunks/build/SectionCard-DHAFvJxm.mjs.map +0 -1
  573. package/.output/server/chunks/build/Select-CEyw7HGK.mjs.map +0 -1
  574. package/.output/server/chunks/build/Separator-lrN70ODV.mjs.map +0 -1
  575. package/.output/server/chunks/build/SettingsField-tRmytcEJ.mjs.map +0 -1
  576. package/.output/server/chunks/build/Slideover-D6cRIqch.mjs.map +0 -1
  577. package/.output/server/chunks/build/Switch-R2n82ncQ.mjs.map +0 -1
  578. package/.output/server/chunks/build/Table-qZdnm9t2.mjs.map +0 -1
  579. package/.output/server/chunks/build/Tabs-BDP7MWl4.mjs.map +0 -1
  580. package/.output/server/chunks/build/TestCaseHistoryChart-CKDXQ2GI.mjs.map +0 -1
  581. package/.output/server/chunks/build/TestMetaBadges-BlyKmfeP.mjs.map +0 -1
  582. package/.output/server/chunks/build/TestStatusBar-CvsmKJ4D.mjs.map +0 -1
  583. package/.output/server/chunks/build/Textarea-DpmpM-lN.mjs.map +0 -1
  584. package/.output/server/chunks/build/Tooltip-BI3WQErw.mjs.map +0 -1
  585. package/.output/server/chunks/build/VisuallyHiddenInput-D4E5aJCQ.mjs.map +0 -1
  586. package/.output/server/chunks/build/_id_-T965GKYC.mjs.map +0 -1
  587. package/.output/server/chunks/build/about-B3V_OEiu.mjs.map +0 -1
  588. package/.output/server/chunks/build/account-DpBdYE46.mjs.map +0 -1
  589. package/.output/server/chunks/build/db.client-Bdqk_eYQ.mjs.map +0 -1
  590. package/.output/server/chunks/build/default-DO1izI2V.mjs.map +0 -1
  591. package/.output/server/chunks/build/edit-BdfF9er2.mjs.map +0 -1
  592. package/.output/server/chunks/build/fetch-tkz5_OA-.mjs.map +0 -1
  593. package/.output/server/chunks/build/forgot-password-swZRcvXE.mjs.map +0 -1
  594. package/.output/server/chunks/build/help-content-C876a9WD.mjs.map +0 -1
  595. package/.output/server/chunks/build/import-B27Sv7h5.mjs.map +0 -1
  596. package/.output/server/chunks/build/index-ByWTzqF6.mjs.map +0 -1
  597. package/.output/server/chunks/build/index-C7m32bRI.mjs.map +0 -1
  598. package/.output/server/chunks/build/index-ID913tUa.mjs.map +0 -1
  599. package/.output/server/chunks/build/index-vRwzDXLs.mjs.map +0 -1
  600. package/.output/server/chunks/build/isValueEqualOrExist-D4lZ8uRY.mjs.map +0 -1
  601. package/.output/server/chunks/build/login-hxCF06JT.mjs.map +0 -1
  602. package/.output/server/chunks/build/mcp-BVW1llyW.mjs.map +0 -1
  603. package/.output/server/chunks/build/notifications-Dn-evqXM.mjs.map +0 -1
  604. package/.output/server/chunks/build/performance-CV8qm94u.mjs.map +0 -1
  605. package/.output/server/chunks/build/pr-feedback-gKDz8LyA.mjs.map +0 -1
  606. package/.output/server/chunks/build/reset-password-DtEISa1I.mjs.map +0 -1
  607. package/.output/server/chunks/build/settings-BJDnuLpc.mjs.map +0 -1
  608. package/.output/server/chunks/build/settings-metadata-DnAK4Rzg.mjs.map +0 -1
  609. package/.output/server/chunks/build/storage-zN92cA9q.mjs.map +0 -1
  610. package/.output/server/chunks/build/tags-CJFnoyQc.mjs.map +0 -1
  611. package/.output/server/chunks/build/test-cases-0Q6rT73d.mjs.map +0 -1
  612. package/.output/server/chunks/build/test-functions-DVRJgiWo.mjs.map +0 -1
  613. package/.output/server/chunks/build/useDesktopDownload-Dyf0fR47.mjs.map +0 -1
  614. package/.output/server/chunks/build/useDesktopLocalRuns-k7Gw3Fv3.mjs.map +0 -1
  615. package/.output/server/chunks/build/useDesktopProjectLink-WwLte59P.mjs.map +0 -1
  616. package/.output/server/chunks/build/useFormControl-8skMOTIf.mjs.map +0 -1
  617. package/.output/server/chunks/build/useOpenInIde-D74FmDNg.mjs.map +0 -1
  618. package/.output/server/chunks/build/useSettingsNav-BLTHducV.mjs.map +0 -1
  619. package/.output/server/chunks/build/users-C9bjOBde.mjs.map +0 -1
@@ -1 +0,0 @@
1
- import{a2 as $,a3 as S,a4 as C,a5 as V,o as a,f as l,g as B,V as c,k as r,aK as j,W as d,p as A,q as s,v as o,i as N,c as u,m,t as x,F as b,y as h,_ as p,X as O,h as P,a8 as F}from"./CNu3kken.js";const I={slots:{root:"relative overflow-hidden w-full rounded-lg p-4 flex gap-2.5",wrapper:"min-w-0 flex-1 flex flex-col",title:"text-sm font-medium",description:"text-sm opacity-90",icon:"shrink-0 size-5",avatar:"shrink-0",avatarSize:"2xl",actions:"flex flex-wrap gap-1.5 shrink-0",close:"p-0"},variants:{color:{primary:"",secondary:"",success:"",info:"",warning:"",error:"",neutral:""},variant:{solid:"",outline:"",soft:"",subtle:""},orientation:{horizontal:{root:"items-center",actions:"items-center"},vertical:{root:"items-start",actions:"items-start mt-2.5"}},title:{true:{description:"mt-1"}}},compoundVariants:[{color:"primary",variant:"solid",class:{root:"bg-primary text-inverted"}},{color:"secondary",variant:"solid",class:{root:"bg-secondary text-inverted"}},{color:"success",variant:"solid",class:{root:"bg-success text-inverted"}},{color:"info",variant:"solid",class:{root:"bg-info text-inverted"}},{color:"warning",variant:"solid",class:{root:"bg-warning text-inverted"}},{color:"error",variant:"solid",class:{root:"bg-error text-inverted"}},{color:"primary",variant:"outline",class:{root:"text-primary ring ring-inset ring-primary/25"}},{color:"secondary",variant:"outline",class:{root:"text-secondary ring ring-inset ring-secondary/25"}},{color:"success",variant:"outline",class:{root:"text-success ring ring-inset ring-success/25"}},{color:"info",variant:"outline",class:{root:"text-info ring ring-inset ring-info/25"}},{color:"warning",variant:"outline",class:{root:"text-warning ring ring-inset ring-warning/25"}},{color:"error",variant:"outline",class:{root:"text-error ring ring-inset ring-error/25"}},{color:"primary",variant:"soft",class:{root:"bg-primary/10 text-primary"}},{color:"secondary",variant:"soft",class:{root:"bg-secondary/10 text-secondary"}},{color:"success",variant:"soft",class:{root:"bg-success/10 text-success"}},{color:"info",variant:"soft",class:{root:"bg-info/10 text-info"}},{color:"warning",variant:"soft",class:{root:"bg-warning/10 text-warning"}},{color:"error",variant:"soft",class:{root:"bg-error/10 text-error"}},{color:"primary",variant:"subtle",class:{root:"bg-primary/10 text-primary ring ring-inset ring-primary/25"}},{color:"secondary",variant:"subtle",class:{root:"bg-secondary/10 text-secondary ring ring-inset ring-secondary/25"}},{color:"success",variant:"subtle",class:{root:"bg-success/10 text-success ring ring-inset ring-success/25"}},{color:"info",variant:"subtle",class:{root:"bg-info/10 text-info ring ring-inset ring-info/25"}},{color:"warning",variant:"subtle",class:{root:"bg-warning/10 text-warning ring ring-inset ring-warning/25"}},{color:"error",variant:"subtle",class:{root:"bg-error/10 text-error ring ring-inset ring-error/25"}},{color:"neutral",variant:"solid",class:{root:"text-inverted bg-inverted"}},{color:"neutral",variant:"outline",class:{root:"text-highlighted bg-default ring ring-inset ring-default"}},{color:"neutral",variant:"soft",class:{root:"text-highlighted bg-elevated/50"}},{color:"neutral",variant:"subtle",class:{root:"text-highlighted bg-elevated/50 ring ring-inset ring-accented"}}],defaultVariants:{color:"primary",variant:"solid"}},D={__name:"UAlert",props:{as:{type:null,required:!1},title:{type:String,required:!1},description:{type:String,required:!1},icon:{type:null,required:!1},avatar:{type:Object,required:!1},color:{type:null,required:!1},variant:{type:null,required:!1},orientation:{type:null,required:!1,default:"vertical"},actions:{type:Array,required:!1},close:{type:[Boolean,Object],required:!1},closeIcon:{type:null,required:!1},class:{type:null,required:!1},ui:{type:Object,required:!1}},emits:["update:open"],setup(w,{emit:k}){const q=w,z=k,i=$(),t=S("alert",q),{t:_}=C(),f=V(),e=P(()=>F({extend:I,...f.ui?.alert||{}})({color:t.color,variant:t.variant,orientation:t.orientation,title:!!t.title||!!i.title}));return(n,y)=>(a(),l(r(O),{as:r(t).as,"data-orientation":r(t).orientation,"data-slot":"root",class:s(e.value.root({class:[r(t).ui?.root,r(t).class]}))},{default:B(()=>[c(n.$slots,"leading",{ui:e.value},()=>[r(t).avatar?(a(),l(j,d({key:0,size:r(t).ui?.avatarSize||e.value.avatarSize()},r(t).avatar,{"data-slot":"avatar",class:e.value.avatar({class:r(t).ui?.avatar})}),null,16,["size","class"])):r(t).icon?(a(),l(A,{key:1,name:r(t).icon,"data-slot":"icon",class:s(e.value.icon({class:r(t).ui?.icon}))},null,8,["name","class"])):o("",!0)]),N("div",{"data-slot":"wrapper",class:s(e.value.wrapper({class:r(t).ui?.wrapper}))},[r(t).title||i.title?(a(),u("div",{key:0,"data-slot":"title",class:s(e.value.title({class:r(t).ui?.title}))},[c(n.$slots,"title",{},()=>[m(x(r(t).title),1)])],2)):o("",!0),r(t).description||i.description?(a(),u("div",{key:1,"data-slot":"description",class:s(e.value.description({class:r(t).ui?.description}))},[c(n.$slots,"description",{},()=>[m(x(r(t).description),1)])],2)):o("",!0),r(t).orientation==="vertical"&&(r(t).actions?.length||i.actions)?(a(),u("div",{key:2,"data-slot":"actions",class:s(e.value.actions({class:r(t).ui?.actions}))},[c(n.$slots,"actions",{},()=>[(a(!0),u(b,null,h(r(t).actions,(g,v)=>(a(),l(p,d({key:v,size:"xs"},{ref_for:!0},g),null,16))),128))])],2)):o("",!0)],2),r(t).orientation==="horizontal"&&(r(t).actions?.length||i.actions)||r(t).close?(a(),u("div",{key:0,"data-slot":"actions",class:s(e.value.actions({class:r(t).ui?.actions,orientation:"horizontal"}))},[r(t).orientation==="horizontal"&&(r(t).actions?.length||i.actions)?c(n.$slots,"actions",{key:0},()=>[(a(!0),u(b,null,h(r(t).actions,(g,v)=>(a(),l(p,d({key:v,size:"xs"},{ref_for:!0},g),null,16))),128))]):o("",!0),c(n.$slots,"close",{ui:e.value},()=>[r(t).close?(a(),l(p,d({key:0,icon:r(t).closeIcon||r(f).ui.icons.close,color:"neutral",variant:"link","aria-label":r(_)("alert.close")},typeof r(t).close=="object"?r(t).close:{},{"data-slot":"close",class:e.value.close({class:r(t).ui?.close}),onClick:y[0]||(y[0]=g=>z("update:open",!1))}),null,16,["icon","aria-label","class"])):o("",!0)])],2)):o("",!0)]),_:3},8,["as","data-orientation","class"]))}};export{D as _};
@@ -1,2 +0,0 @@
1
- import{d as _,o as l,f as p,g as u,j as d,p as f,q as g,k as a,h as o}from"./CNu3kken.js";import{_ as v}from"./FJTsZ5Aa.js";import{g as x}from"./CfhOanaF.js";const h=_({__name:"EnvManagedBadge",props:{envVars:{},size:{default:"sm"}},setup(r){const s=r,c=o(()=>{switch(s.size){case"xs":return"size-3";case"md":return"size-4";default:return"size-3.5"}}),i=o(()=>{if(!s.envVars?.length)return"Managed by environment variable";const e=s.envVars.map(n=>{const t=x(n).description;return t?`${n} — ${t}`:n});return e.length===1?`Set via ${e[0]}`:["Set via environment variables:",...e].join(`
2
- `)});return(e,n)=>{const t=f,m=v;return l(),p(m,{text:a(i),ui:{content:"whitespace-pre-line max-w-sm"}},{default:u(()=>[d(t,{name:"i-lucide-lock",class:g(["text-gray-400",a(c)])},null,8,["class"])]),_:1},8,["text"])}}}),b=Object.assign(h,{__name:"EnvManagedBadge"});export{b as _};
@@ -1 +0,0 @@
1
- {"id":"6d1766a0-0aba-46b8-9d97-7dd174130359","timestamp":1785501947748,"prerendered":[]}
@@ -1 +0,0 @@
1
- import{d as f,o as a,f as g,s as w,k as l,g as C,j as c,q as v,p as b,m as x,t as y,c as u,v as d,V as p,H as V,i as _,F as h,y as z,I as U,r as j,h as M}from"./CNu3kken.js";import{j as B,B as L,A as F,k as H}from"./DeewM3Wg.js";import{_ as N}from"./CfhOanaF.js";import{_ as O}from"./C9I1Dp3S.js";import{_ as P}from"./DNqm5cWU.js";const T=f({__name:"StatusChip",props:{status:{},size:{}},setup(e){return(t,n)=>{const o=b,r=w;return a(),g(r,{color:("getStatusColor"in t?t.getStatusColor:l(B))(e.status),size:e.size,variant:"subtle",class:"capitalize gap-1 items-center font-semibold shrink-0"},{default:C(()=>[c(o,{name:("getStatusIcon"in t?t.getStatusIcon:l(F))(e.status),class:v(["size-3.5 shrink-0",{"animate-spin":("isStatusInFlight"in t?t.isStatusInFlight:l(L))(e.status)}])},null,8,["name","class"]),x(" "+y(("formatStatusLabel"in t?t.formatStatusLabel:l(H))(e.status)),1)]),_:1},8,["color","size"])}}}),ee=Object.assign(T,{__name:"StatusChip"}),D=["title"],q=f({__name:"MetaStripGroup",props:{label:{},icon:{},help:{}},setup(e){return(t,n)=>{const o=b,r=N;return a(),u("div",{class:"inline-flex items-center flex-wrap gap-x-1.5 gap-y-1 min-w-0 py-0.5 mr-3 [&:not(:first-child)]:border-l [&:not(:first-child)]:border-default [&:not(:first-child)]:pl-3",title:e.label},[e.icon?(a(),g(o,{key:0,name:e.icon,class:"w-3.5 h-3.5 text-dimmed shrink-0"},null,8,["name"])):d("",!0),p(t.$slots,"default"),e.help?(a(),g(r,{key:1,topic:e.help},null,8,["topic"])):d("",!0)],8,D)}}}),te=Object.assign(q,{__name:"MetaStripGroup"}),G={class:"flex flex-wrap items-center gap-y-1 text-sm min-w-0"},A=f({__name:"SummaryMetaStrip",setup(e){return(t,n)=>(a(),u("div",G,[p(t.$slots,"default")]))}}),se=Object.assign(A,{__name:"SummaryMetaStrip"}),E={class:"flex flex-col h-full gap-4 p-1 max-lg:overflow-y-auto lg:overflow-hidden"},J={key:0,class:"lg:shrink-0"},K={class:"lg:shrink-0 max-lg:sticky max-lg:top-0 max-lg:z-10 max-lg:-mx-1 max-lg:bg-(--ui-bg-canvas) max-lg:px-1 max-lg:py-1.5"},Q=f({__name:"DetailPageLayout",props:U({tabItems:{},tabPanelClass:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(e){const t=e,n=V(e,"modelValue"),o=j(!1),r=M(()=>t.tabItems.find(i=>i.value===n.value)?.icon);function S(i){return["min-h-0","lg:flex-1",t.tabPanelClass?.[i]??"overflow-y-auto","max-lg:!block","max-lg:!overflow-visible"]}return(i,m)=>{const k=b,$=O,I=P;return a(),u("div",E,[i.$slots.summary?(a(),u("div",J,[_("div",{class:v(l(o)?"max-lg:hidden":"")},[p(i.$slots,"summary")],2),_("button",{type:"button",class:"lg:hidden mt-2 w-full flex items-center justify-center gap-1 rounded-md border border-default py-1.5 text-xs font-medium text-muted hover:bg-elevated/60 transition-colors",onClick:m[0]||(m[0]=s=>o.value=!l(o))},[c(k,{name:l(o)?"i-lucide-chevron-down":"i-lucide-chevron-up",class:"size-3.5"},null,8,["name"]),x(" "+y(l(o)?"Show summary":"Hide summary"),1)])])):d("",!0),_("div",K,[c($,{modelValue:n.value,"onUpdate:modelValue":m[1]||(m[1]=s=>n.value=s),items:e.tabItems,icon:l(r),size:"md",class:"w-full sm:hidden"},null,8,["modelValue","items","icon"]),c(I,{modelValue:n.value,"onUpdate:modelValue":m[2]||(m[2]=s=>n.value=s),items:e.tabItems,size:"sm",class:"hidden sm:flex",ui:{list:"overflow-x-auto",trigger:"shrink-0"}},null,8,["modelValue","items"])]),(a(!0),u(h,null,z(e.tabItems,s=>(a(),u(h,{key:s.value},[n.value===s.value?(a(),u("div",{key:0,class:v(S(s.value))},[p(i.$slots,`tab-${s.slot??s.value}`)],2)):d("",!0)],64))),128))])}}}),ae=Object.assign(Q,{__name:"DetailPageLayout"});export{ee as _,se as a,te as b,ae as c};
@@ -1 +0,0 @@
1
- import{_ as Ee,a as Re}from"./QZYo3ErV.js";import{d as H,H as le,J as se,o as l,f as T,g as c,i as s,j as r,E as G,l as W,k as a,c as m,p as ne,F as U,y as F,q as ie,m as I,t as w,v as x,I as q,r as R,h as D,L as $e,_ as re,w as oe,b as Oe,ac as Le,M as z}from"./CNu3kken.js";import{_ as Be}from"./CfhOanaF.js";import{_ as pe}from"./DYjxDsYC.js";import{_ as fe}from"./C9I1Dp3S.js";import{_ as ve}from"./CF_eDZHu.js";import{_ as ge}from"./a8Z6VC7V.js";import{_ as Fe}from"./roaTZkYi.js";import{h as We}from"./BjaRappk.js";import{_ as ye}from"./Ce47NgZw.js";import{_ as Ne}from"./CdEzDaDI.js";import{u as ae}from"./DprkT7rM.js";import{_ as De}from"./B0tmRAhY.js";import{p as qe,g as Xe}from"./BfcMJBTf.js";import"./Ya8ZzWuY.js";import"./DZ-KbUZi.js";import"./BVyjw9Bi.js";import"./BZOykMLD.js";import"./B3AG2m76.js";import"./FJTsZ5Aa.js";import"./B_JSV0yG.js";import"./DeewM3Wg.js";const je={class:"space-y-3"},Ke={key:0,class:"flex items-center justify-center gap-2 py-8 text-gray-400"},ze={key:1,class:"py-8 text-center text-sm text-gray-400"},He={key:2,class:"max-h-96 overflow-y-auto space-y-px"},Ge=["onClick"],Qe={class:"flex-1 min-w-0"},Ye={class:"text-sm font-medium leading-snug truncate"},Ze={key:0,class:"text-gray-500 font-normal"},Je={class:"text-xs text-gray-400 leading-snug mt-0.5"},et={key:3,class:"italic text-gray-500"},tt={key:0,class:"flex items-center gap-1 shrink-0 pt-0.5"},st=["title"],ot=["title"],at={key:0,class:"py-8 text-center text-sm text-gray-400"},lt=H({__name:"ModelPickerModal",props:q({models:{},selected:{},loading:{type:Boolean}},{open:{type:Boolean,required:!0},openModifiers:{}}),emits:q(["select"],["update:open"]),setup(o,{emit:M}){function C(y){return y?y>=1e6?`${(y/1e6).toFixed(1)}M`:y>=1e3?`${Math.round(y/1e3)}K`:String(y):""}const v=o,i=M,A=le(o,"open"),_=R(null),d=R("");se(A,y=>{y&&$e(()=>_.value?.focus())});const n=D(()=>{const y=d.value.toLowerCase();return y?v.models.filter(h=>h.id.toLowerCase().includes(y)||(h.label?.toLowerCase()??"").includes(y)):v.models}),k={image:{icon:"i-lucide-image",label:"Image input"},pdf:{icon:"i-lucide-file-text",label:"PDF input"},code:{icon:"i-lucide-code",label:"Code execution"},thinking:{icon:"i-lucide-brain",label:"Extended thinking"},json:{icon:"i-lucide-braces",label:"Structured output"},text:{icon:"i-lucide-type",label:"Text"},audio:{icon:"i-lucide-music",label:"Audio"}};function V(y){return y.map(h=>{const g=h.indexOf("→");if(g!==-1){const E=h.slice(0,g),O=h.slice(g+1);return{inputs:E.split("+").filter(Boolean),outputs:O.split("+").filter(Boolean)}}return{inputs:[h],outputs:[]}})}function $(y){i("select",y),A.value=!1,d.value=""}return(y,h)=>{const g=G,E=ne,O=Fe;return l(),T(O,{open:A.value,"onUpdate:open":h[1]||(h[1]=f=>A.value=f),title:"Select a model",ui:{content:"max-w-2xl"}},{body:c(()=>[s("div",je,[r(g,{ref_key:"searchInput",ref:_,modelValue:a(d),"onUpdate:modelValue":h[0]||(h[0]=f=>W(d)?d.value=f:null),placeholder:"Search models…",icon:"i-lucide-search",size:"sm"},null,8,["modelValue"]),o.models.length===0&&o.loading?(l(),m("div",Ke,[r(E,{name:"i-lucide-loader-2",class:"size-4 animate-spin"}),h[2]||(h[2]=s("span",{class:"text-sm"},"Loading models…",-1))])):o.models.length===0?(l(),m("div",ze," No models available — check your provider configuration ")):(l(),m("div",He,[(l(!0),m(U,null,F(a(n),f=>(l(),m("button",{key:f.id,class:ie(["w-full text-left px-4 py-3 rounded-lg hover:bg-elevated transition-colors border border-transparent hover:border-default flex items-start gap-4",o.selected===f.id?"bg-primary/10 ring-1 ring-inset ring-primary/30 border-primary/30":""]),onClick:b=>$(f.id)},[s("div",Qe,[s("p",Ye,[I(w(f.id)+" ",1),f.label&&f.label!==f.id?(l(),m("span",Ze," — "+w(f.label),1)):x("",!0)]),s("p",Je,[f.contextLength?(l(),m(U,{key:0},[I(w(C(f.contextLength))+" ctx",1)],64)):x("",!0),f.maxTokens?(l(),m(U,{key:1},[I(" · up to "+w(C(f.maxTokens))+" out",1)],64)):x("",!0),f.pricing?.prompt?(l(),m(U,{key:2},[I(" · $"+w(f.pricing.prompt)+" / $"+w(f.pricing.completion??"?")+" per 1M",1)],64)):x("",!0),!f.contextLength&&!f.maxTokens&&!f.pricing?.prompt?(l(),m("span",et,"No additional info")):x("",!0)])]),f.modalities?.length?(l(),m("div",tt,[(l(!0),m(U,null,F(V(f.modalities),b=>(l(),m(U,{key:b.inputs.join()+"→"+b.outputs.join()},[(l(!0),m(U,null,F(b.inputs,P=>(l(),m("span",{key:"in-"+P,title:k[P]?.label??P,class:"inline-flex items-center justify-center size-6 rounded-md bg-gray-100 dark:bg-gray-800 text-gray-500 hover:text-primary transition-colors"},[r(E,{name:k[P]?.icon??"i-lucide-cpu",class:"size-3.5"},null,8,["name"])],8,st))),128)),b.outputs.length?(l(),T(E,{key:0,name:"i-lucide-arrow-right",class:"size-3 text-gray-400 shrink-0"})):x("",!0),(l(!0),m(U,null,F(b.outputs,P=>(l(),m("span",{key:"out-"+P,title:k[P]?.label??P,class:"inline-flex items-center justify-center size-6 rounded-md bg-gray-100 dark:bg-gray-800 text-gray-500 hover:text-primary transition-colors"},[r(E,{name:k[P]?.icon??"i-lucide-cpu",class:"size-3.5"},null,8,["name"])],8,ot))),128))],64))),128))])):x("",!0)],10,Ge))),128)),a(n).length===0?(l(),m("div",at,' No models match "'+w(a(d))+'" ',1)):x("",!0)]))])]),_:1},8,["open"])}}}),nt=Object.assign(lt,{__name:"ModelPickerModal"}),it={class:"flex gap-2"},rt=H({__name:"ModelFieldInput",props:q({provider:{},providerResolved:{},reuse:{type:Boolean},models:{},loadingModels:{type:Boolean},placeholderAnthropic:{},placeholderOpenai:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:q(["loadModels"],["update:modelValue"]),setup(o,{emit:M}){const C=M,v=le(o,"modelValue"),i=R(!1);return(A,_)=>{const d=G,n=re,k=nt;return l(),m(U,null,[s("div",it,[r(d,{modelValue:v.value,"onUpdate:modelValue":_[0]||(_[0]=V=>v.value=V),placeholder:o.providerResolved==="anthropic"?o.placeholderAnthropic:o.placeholderOpenai,class:"flex-1"},null,8,["modelValue","placeholder"]),o.providerResolved?(l(),T(n,{key:0,size:"sm",variant:"soft",onClick:_[1]||(_[1]=V=>{C("loadModels"),i.value=!0})},{default:c(()=>[..._[4]||(_[4]=[I(" Choose model… ",-1)])]),_:1})):x("",!0)]),r(k,{open:a(i),"onUpdate:open":_[2]||(_[2]=V=>W(i)?i.value=V:null),models:o.models,selected:v.value,loading:o.loadingModels,onSelect:_[3]||(_[3]=V=>v.value=V)},null,8,["open","models","selected","loading"])],64)}}}),dt=Object.assign(rt,{__name:"ModelFieldInput"}),ct={class:"flex items-start justify-between gap-3"},ut={class:"flex items-start gap-2"},mt={class:"font-medium inline-flex items-center gap-1"},pt={class:"text-sm text-gray-500"},ft={class:"inline-flex items-center gap-1"},vt={class:"inline-flex items-center gap-1"},gt={class:"inline-flex items-center gap-1"},yt={key:3,class:"flex justify-end"},ht=H({__name:"AiRoleConfigForm",props:q({meta:{},hasApiKey:{type:Boolean},reuseOptions:{},providerOptions:{},presetOptions:{},disabled:{type:Boolean},envManaged:{type:Boolean},models:{},loadingModels:{type:Boolean},providerResolved:{},testing:{type:Boolean}},{modelValue:{required:!0},modelModifiers:{}}),emits:q(["applyPreset","loadModels","test"],["update:modelValue"]),setup(o,{emit:M}){const C=o,v=M,i=le(o,"modelValue"),A=D({get:()=>i.value.reuse??"own",set:d=>i.value.reuse=d==="own"?null:d}),_=D(()=>We(C.meta.help));return(d,n)=>{const k=ne,V=Be,$=pe,y=fe,h=ve,g=ge,E=G,O=dt,f=re;return l(),m("div",{class:ie(["rounded-lg border border-default p-4 space-y-4",o.meta.optional&&!i.value.enabled?"opacity-80":""])},[s("div",ct,[s("div",ut,[r(k,{name:o.meta.icon,class:"size-5 mt-0.5 text-primary"},null,8,["name"]),s("div",null,[s("p",mt,[I(w(o.meta.title)+" ",1),r(V,{topic:o.meta.help},null,8,["topic"])]),s("p",pt,w(o.meta.blurb),1)])]),o.meta.optional?(l(),T($,{key:0,modelValue:i.value.enabled,"onUpdate:modelValue":n[0]||(n[0]=b=>i.value.enabled=b),disabled:o.disabled&&!o.envManaged,"aria-label":o.meta.enableLabel},null,8,["modelValue","disabled","aria-label"])):x("",!0)]),!o.meta.optional||i.value.enabled?(l(),m(U,{key:0},[o.meta.reuseTargets.length?(l(),T(h,{key:0,label:"Provider source"},{default:c(()=>[r(y,{modelValue:a(A),"onUpdate:modelValue":n[1]||(n[1]=b=>W(A)?A.value=b:null),items:o.reuseOptions,disabled:o.disabled&&!o.envManaged,class:"w-full"},null,8,["modelValue","items","disabled"])]),_:1})):x("",!0),i.value.reuse?x("",!0):(l(),m(U,{key:1},[r(h,{label:"Provider"},{label:c(()=>[s("span",ft,[n[9]||(n[9]=I(" Provider ",-1)),o.disabled?(l(),T(g,{key:0,"env-vars":a(_)},null,8,["env-vars"])):x("",!0)])]),default:c(()=>[r(y,{modelValue:i.value.provider,"onUpdate:modelValue":n[2]||(n[2]=b=>i.value.provider=b),items:o.providerOptions,disabled:o.disabled,placeholder:"Choose a provider…",class:"w-full"},null,8,["modelValue","items","disabled"])]),_:1}),i.value.provider==="openai"?(l(),T(h,{key:0,label:"Preset",description:"Pick a known provider to auto-fill the URL and model, then adjust as needed"},{default:c(()=>[r(y,{items:o.presetOptions,placeholder:"Choose a preset…",disabled:o.disabled,class:"w-full","onUpdate:modelValue":n[3]||(n[3]=b=>v("applyPreset",b))},null,8,["items","disabled"])]),_:1})):x("",!0),i.value.provider?(l(),T(h,{key:1,label:"API key",description:o.hasApiKey?"Leave empty to keep the stored key, clear and save to remove it":"Required for Anthropic; optional for local OpenAI-compatible servers"},{label:c(()=>[s("span",vt,[n[10]||(n[10]=I(" API key ",-1)),o.disabled?(l(),T(g,{key:0,"env-vars":a(_)},null,8,["env-vars"])):x("",!0)])]),default:c(()=>[r(E,{modelValue:i.value.apiKey,"onUpdate:modelValue":n[4]||(n[4]=b=>i.value.apiKey=b),type:"password",placeholder:o.hasApiKey?"•••••••• (unchanged)":"sk-…",disabled:o.disabled,class:"w-full font-mono"},null,8,["modelValue","placeholder","disabled"])]),_:1},8,["description"])):x("",!0),i.value.provider==="openai"?(l(),T(h,{key:2,label:"Base URL",description:"Required, e.g. http://localhost:11434/v1"},{label:c(()=>[s("span",gt,[n[11]||(n[11]=I(" Base URL ",-1)),o.disabled?(l(),T(g,{key:0,"env-vars":a(_)},null,8,["env-vars"])):x("",!0)])]),default:c(()=>[r(E,{modelValue:i.value.baseUrl,"onUpdate:modelValue":n[5]||(n[5]=b=>i.value.baseUrl=b),placeholder:"http://localhost:11434/v1",disabled:o.disabled,class:"w-full"},null,8,["modelValue","disabled"])]),_:1})):x("",!0)],64)),i.value.reuse||i.value.provider?(l(),T(h,{key:2,label:"Model",description:i.value.reuse?"Leave empty to use the reused role's model":void 0},{default:c(()=>[r(O,{modelValue:i.value.model,"onUpdate:modelValue":n[6]||(n[6]=b=>i.value.model=b),provider:i.value.provider,"provider-resolved":o.providerResolved,reuse:!!i.value.reuse,models:o.models,"loading-models":o.loadingModels,"placeholder-anthropic":o.meta.modelPlaceholderAnthropic,"placeholder-openai":o.meta.modelPlaceholderOpenai,onLoadModels:n[7]||(n[7]=b=>v("loadModels"))},null,8,["modelValue","provider","provider-resolved","reuse","models","loading-models","placeholder-anthropic","placeholder-openai"])]),_:1},8,["description"])):x("",!0),o.providerResolved?(l(),m("div",yt,[r(f,{size:"xs",color:"neutral",variant:"soft",icon:"i-lucide-plug",loading:o.testing,onClick:n[8]||(n[8]=b=>v("test"))},{default:c(()=>[...n[12]||(n[12]=[I(" Test connection ",-1)])]),_:1},8,["loading"])])):x("",!0)],64)):x("",!0)],2)}}}),bt=Object.assign(ht,{__name:"AiRoleConfigForm"}),_t={key:0,class:"space-y-3"},xt={class:"text-sm text-gray-500"},kt={key:0,class:"text-sm text-gray-500"},At={key:1,class:"overflow-x-auto"},It={class:"w-full text-sm"},Mt={class:"px-2 py-2"},St={class:"font-mono text-xs"},Vt={class:"text-xs text-gray-400"},wt={class:"text-right px-2 py-2"},Pt=["title"],Tt=["title"],Ct={class:"text-right px-2 py-2"},Ut={key:1,class:"flex items-center gap-2 py-4 text-muted"},Et=H({__name:"AiUsagePanel",async setup(o){let M,C;const v=R(30),i=[{label:"Last 7 days",value:7},{label:"Last 30 days",value:30},{label:"Last 90 days",value:90}],{data:A,pending:_}=([M,C]=oe(()=>ae("/api/settings/ai/usage",{query:{days:v}},"$Q4bVv0_V0W")),M=await M,C(),M);function d(n){return n>=1e6?`${(n/1e6).toFixed(1)}M`:n>=1e3?`${(n/1e3).toFixed(1)}k`:String(n)}return(n,k)=>{const V=fe,$=Ne,y=ne,h=ye;return l(),T(h,{icon:"i-lucide-activity",title:"AI usage"},{actions:c(()=>[r(V,{modelValue:a(v),"onUpdate:modelValue":k[0]||(k[0]=g=>W(v)?v.value=g:null),items:i,size:"sm",class:"w-36"},null,8,["modelValue"])]),default:c(()=>[a(A)?(l(),m("div",_t,[s("p",xt,w(d(a(A).totals.diagnoses))+" diagnoses · "+w(d(a(A).totals.inputTokens))+" input tokens · "+w(d(a(A).totals.outputTokens))+" output tokens ",1),a(A).byModel.length===0?(l(),m("p",kt,"No AI calls recorded in this period.")):(l(),m("div",At,[s("table",It,[k[1]||(k[1]=s("thead",null,[s("tr",{class:"text-xs text-gray-500 uppercase tracking-wider border-b border-default"},[s("th",{class:"text-left px-2 py-2 font-medium"},"Model"),s("th",{class:"text-right px-2 py-2 font-medium"},"Diagnoses"),s("th",{class:"text-right px-2 py-2 font-medium"},"Failed"),s("th",{class:"text-right px-2 py-2 font-medium"},"Input tokens"),s("th",{class:"text-right px-2 py-2 font-medium"},"Output tokens"),s("th",{class:"text-right px-2 py-2 font-medium"},"Avg duration")])],-1)),s("tbody",null,[(l(!0),m(U,null,F(a(A).byModel,g=>(l(),m("tr",{key:`${g.provider??"unknown"}/${g.model}`,class:"border-b last:border-b-0 border-default"},[s("td",Mt,[s("span",St,w(g.model),1),s("span",Vt," · "+w(g.provider??"unknown"),1)]),s("td",wt,w(g.diagnoses),1),s("td",{class:ie(["text-right px-2 py-2",g.failed>0?"text-red-600 dark:text-red-400":""])},w(g.failed),3),s("td",{class:"text-right px-2 py-2",title:g.inputTokens.toLocaleString()},w(d(g.inputTokens)),9,Pt),s("td",{class:"text-right px-2 py-2",title:g.outputTokens.toLocaleString()},w(d(g.outputTokens)),9,Tt),s("td",Ct,[r($,{ms:g.avgDurationMs},null,8,["ms"])])]))),128))])])]))])):a(_)?(l(),m("div",Ut,[r(y,{name:"i-lucide-loader-circle",class:"size-4 animate-spin"}),k[2]||(k[2]=s("span",{class:"text-sm"},"Loading usage…",-1))])):x("",!0)]),_:1})}}}),Rt=Object.assign(Et,{__name:"AiUsagePanel"}),$t=[{key:"sampleErrorChars",label:"Error text characters",envVar:"PIWI_AI_MAX_SAMPLE_ERROR_CHARS",description:"Max characters of raw error text (per error block).",min:200,max:5e4},{key:"scmPatchBudget",label:"SCM patch budget",envVar:"PIWI_AI_MAX_SCM_PATCH_BUDGET",description:"Total characters of diff patches across changed files.",min:0,max:5e4},{key:"affectedTests",label:"Affected tests",envVar:"PIWI_AI_MAX_AFFECTED_TESTS",description:"Max affected tests listed.",min:1,max:200},{key:"steps",label:"Test steps",envVar:"PIWI_AI_MAX_STEPS",description:"Max recent test steps included.",min:1,max:200},{key:"consoleEntries",label:"Console entries",envVar:"PIWI_AI_MAX_CONSOLE_ENTRIES",description:"Max console error/warning entries included.",min:0,max:200},{key:"consoleEntryChars",label:"Console entry characters",envVar:"PIWI_AI_MAX_CONSOLE_ENTRY_CHARS",description:"Max characters per console entry.",min:50,max:5e3},{key:"networkRequests",label:"Network requests",envVar:"PIWI_AI_MAX_NETWORK_REQUESTS",description:"Max failed network requests included.",min:0,max:200},{key:"ariaSnapshotChars",label:"ARIA snapshot characters",envVar:"PIWI_AI_MAX_ARIA_SNAPSHOT_CHARS",description:"Max characters of the page ARIA snapshot.",min:0,max:5e4},{key:"testSourceChars",label:"Test source characters",envVar:"PIWI_AI_MAX_TEST_SOURCE_CHARS",description:"Max characters of the test source snippet.",min:0,max:5e4},{key:"maxSourceFiles",label:"Full source files",envVar:"PIWI_AI_MAX_SOURCE_FILES",description:"Max full source files fetched from SCM to ground patches (0 disables).",min:0,max:20},{key:"sourceFileChars",label:"Source file characters",envVar:"PIWI_AI_MAX_SOURCE_FILE_CHARS",description:"Max characters per fetched full source file.",min:0,max:5e4},{key:"serverLogEntries",label:"Server log entries",envVar:"PIWI_AI_MAX_SERVER_LOG_ENTRIES",description:"Max backend server log entries (from X-Piwi-Logs header) included.",min:0,max:200},{key:"serverLogEntryChars",label:"Server log entry characters",envVar:"PIWI_AI_MAX_SERVER_LOG_ENTRY_CHARS",description:"Max characters per backend server log entry.",min:50,max:5e3},{key:"serverTraceSpans",label:"Server trace spans",envVar:"PIWI_AI_MAX_SERVER_TRACE_SPANS",description:"Max backend server spans (from X-Piwi-Trace header) included (0 disables).",min:0,max:500},{key:"maxImages",label:"Max screenshots",envVar:"PIWI_AI_MAX_IMAGES",description:"Max screenshots auto-included in the diagnosis context.",min:0,max:20},{key:"maxPassedPeers",label:"Max passed peers",envVar:"PIWI_AI_MAX_PASSED_PEERS",description:"Max peer tests in the same file listed when they passed.",min:0,max:100},{key:"maxConsoleWindow",label:"Console window entries",envVar:"PIWI_AI_MAX_CONSOLE_WINDOW",description:"Max console entries of any type in the window before failure.",min:0,max:200},{key:"slowRequestMs",label:"Slow request threshold (ms)",envVar:"PIWI_AI_SLOW_REQUEST_MS",description:"Network request duration threshold for flagging as slow.",min:100,max:3e4},{key:"maxTraceActions",label:"Trace actions",envVar:"PIWI_AI_MAX_TRACE_ACTIONS",description:"Max actions extracted from trace ZIP for failing-action context (0 disables).",min:0,max:50},{key:"traceDomChars",label:"Trace DOM excerpt characters",envVar:"PIWI_AI_TRACE_DOM_CHARS",description:"Max characters for the trace-derived DOM/ARIA excerpt in failing-action context.",min:0,max:2e4},{key:"traceStackFrames",label:"Trace stack frames",envVar:"PIWI_AI_MAX_TRACE_STACK_FRAMES",description:"Max call-stack frames (with source windows) from the trace (0 disables).",min:0,max:50},{key:"traceNetworkRequests",label:"Trace network requests",envVar:"PIWI_AI_MAX_TRACE_NETWORK_REQUESTS",description:"Max requests from the trace network stream (0 disables).",min:0,max:200},{key:"domSnapshotChars",label:"DOM snapshot characters",envVar:"PIWI_AI_MAX_DOM_SNAPSHOT_CHARS",description:"Max characters of the failure-time DOM snapshot rendered from the trace (0 disables).",min:0,max:5e4},{key:"imageMaxEdge",label:"Screenshot max edge (px)",envVar:"PIWI_AI_IMAGE_MAX_EDGE",description:"Screenshots are downscaled to at most this many pixels on the long edge before being sent.",min:512,max:8192}],Ot={class:"space-y-6"},Lt={class:"space-y-5"},Bt={class:"flex items-center gap-3"},Ft={class:"flex items-center gap-2 justify-end"},Wt={class:"flex justify-end"},Nt={class:"flex justify-end"},Dt={class:"grid grid-cols-1 sm:grid-cols-2 gap-x-4 gap-y-3"},qt={class:"flex justify-end gap-2"},ms=H({__name:"ai",async setup(o){let M,C;const v=Oe(),{data:i,refresh:A}=([M,C]=oe(()=>ae("/api/settings/ai","$5FSQHzGDZ4")),M=await M,C(),M);function _(){return{enabled:!1,reuse:null,provider:"",model:"",baseUrl:"",apiKey:""}}const d=z({diagnosis:_(),research:_(),embedding:_()}),n=R(!1),k=R(""),V=R(""),$=R(!1),y=R(!1),h=R(!1),g=z({diagnosis:!1,research:!1,embedding:!1}),E=z({diagnosis:[],research:[],embedding:[]}),O=z({diagnosis:!1,research:!1,embedding:!1});function f(t){const e=d[t];return e.reuse?d[e.reuse]?.provider||"":e.provider}async function b(t){const e=d[t],p=f(t),S=e.reuse?d[e.reuse]:e,ee=S.apiKey||void 0;O[t]=!0;try{const te=await $fetch("/api/settings/ai/models",{method:"POST",body:{role:t,provider:p,baseUrl:S.baseUrl||void 0,apiKey:ee}});E[t]=te.models}catch{E[t]=[]}finally{O[t]=!1}}const P=[{key:"diagnosis",title:"Diagnosis model",icon:"i-lucide-stethoscope",help:"settings.ai-provider",optional:!1,enableLabel:"",blurb:"The main model that writes the final diagnosis. Required to enable AI features.",reuseTargets:[],modelPlaceholderAnthropic:"claude-opus-4-8",modelPlaceholderOpenai:"e.g. gpt-4o, llama3.1"},{key:"research",title:"Research model",icon:"i-lucide-search",help:"settings.ai-research",optional:!0,enableLabel:"Two-stage diagnosis",blurb:"A cheaper/faster model that pre-analyzes the failure before the diagnosis model writes the final answer. Also used for cluster naming and merge adjudication.",reuseTargets:["diagnosis"],modelPlaceholderAnthropic:"e.g. claude-haiku-4-5",modelPlaceholderOpenai:"e.g. llama-3.1-8b-instant"},{key:"embedding",title:"Embedding model",icon:"i-lucide-vector-square",help:"settings.embedding-model",optional:!0,enableLabel:"Semantic clustering",blurb:"Embeds failures so semantically-similar errors group together (used by failure clustering).",reuseTargets:["diagnosis","research"],modelPlaceholderAnthropic:"— Anthropic has no embeddings API —",modelPlaceholderOpenai:"e.g. text-embedding-3-small"}],de=[{label:"Anthropic API",value:"anthropic"},{label:"OpenAI-compatible",value:"openai"}],he=de.filter(t=>t.value!=="anthropic"),be=D(()=>{const t={};for(const e of P)t[e.key]=[{label:"Configure its own provider",value:"own"},...e.reuseTargets.filter(p=>d[p].enabled||p==="diagnosis").filter(p=>e.key!=="embedding"||d[p].provider==="openai").map(p=>({label:`Reuse ${P.find(S=>S.key===p).title.toLowerCase()}`,value:p}))];return t}),N=D(()=>!!i.value?.envManaged),_e=qe(Xe("ai"));se(i,t=>{if(t){for(const e of P){const p=t.roles[e.key],S=d[e.key];S.enabled=!!p,S.reuse=p?.reuse??null,S.provider=p?.provider??"",S.model=p?.model??"",S.baseUrl=p?.baseUrl??"",S.apiKey=""}n.value=t.autoDiagnose,k.value=t.customInstructions||""}},{immediate:!0});function xe(t){return!!i.value?.roles[t]?.hasApiKey}const ce=[{label:"ollama (local)",baseUrl:"http://localhost:11434/v1",model:"llama3.1"},{label:"LM Studio (local)",baseUrl:"http://localhost:1234/v1",model:""},{label:"OpenRouter",baseUrl:"https://openrouter.ai/api/v1",model:"meta-llama/llama-3.1-8b-instruct"},{label:"Groq",baseUrl:"https://api.groq.com/openai/v1",model:"llama-3.1-8b-instant"},{label:"OpenAI",baseUrl:"https://api.openai.com/v1",model:"gpt-4o"},{label:"Mistral AI",baseUrl:"https://api.mistral.ai/v1",model:"mistral-small-latest"},{label:"Custom",baseUrl:"",model:""}],ke=ce.map(t=>({label:t.label,value:t.label}));function Ae(t,e){const p=ce.find(S=>S.label===e);!p||p.label==="Custom"||(d[t].baseUrl=p.baseUrl,d[t].model=p.model)}function Q(t){const e=d[t];if(!e.enabled)return null;if(e.reuse)return{reuse:e.reuse,model:e.model||void 0};const p={provider:e.provider,model:e.model||void 0,baseUrl:e.baseUrl||void 0};return e.apiKey!==""&&(p.apiKey=e.apiKey),p}async function Ie(){$.value=!0;try{!N&&(!d.diagnosis.enabled||!d.diagnosis.provider)?await $fetch("/api/settings/ai",{method:"PUT",body:{roles:null,autoDiagnose:n.value}}):await $fetch("/api/settings/ai",{method:"PUT",body:{roles:{diagnosis:Q("diagnosis"),research:Q("research"),embedding:Q("embedding")},autoDiagnose:n.value}}),await A();for(const t of P)d[t.key].apiKey="";v.add({title:"Settings saved",color:"success"})}catch(t){v.add({title:"Save failed",description:String(t?.message??t),color:"error"})}finally{$.value=!1}}async function Me(){h.value=!0;try{await $fetch("/api/settings/ai",{method:"PUT",body:{scmToken:V.value||null}}),await A(),V.value="",v.add({title:"SCM token saved",color:"success"})}catch(t){v.add({title:"Save failed",description:String(t?.message??t),color:"error"})}finally{h.value=!1}}async function Se(){y.value=!0;try{await $fetch("/api/settings/ai",{method:"PUT",body:{customInstructions:k.value||null}}),await A(),v.add({title:"Instructions saved",color:"success"})}catch(t){v.add({title:"Save failed",description:String(t?.message??t),color:"error"})}finally{y.value=!1}}async function Ve(t){g[t]=!0;try{const e=d[t],p=e.reuse?d[e.reuse]:e,S=await $fetch("/api/settings/ai/test",{method:"POST",body:{role:t,provider:p.provider||void 0,apiKey:p.apiKey||void 0,model:e.model||(e.reuse?p.model:"")||void 0,baseUrl:p.baseUrl||void 0}});S.success?v.add({title:"Connection successful",description:`Model: ${S.model}`,color:"success"}):v.add({title:"Connection failed",description:S.error||"Unknown error",color:"error"})}catch(e){v.add({title:"Connection failed",description:String(e?.message??e),color:"error"})}finally{g[t]=!1}}const{data:L}=([M,C]=oe(()=>ae("/api/settings/ai/limits","$qHhpP8mBYb")),M=await M,C(),M),Y=$t,X=z({}),Z=R(!1),J=D(()=>new Set(L.value?.envManaged??[]));se(L,t=>{if(t)for(const e of Y)X[e.key]=t.limits[e.key]},{immediate:!0});async function we(){Z.value=!0;try{L.value=await $fetch("/api/settings/ai/limits",{method:"PUT",body:{limits:X}}),v.add({title:"Context limits saved",color:"success"})}catch(t){v.add({title:"Failed to save context limits",description:String(t?.message??t),color:"error"})}finally{Z.value=!1}}function Pe(){if(L.value)for(const t of Y)J.value.has(t.key)||(X[t.key]=L.value.defaults[t.key])}return(t,e)=>{const p=Ee,S=bt,ee=pe,te=Re,j=re,K=ye,Te=Rt,ue=G,me=ve,Ce=De,Ue=ge;return l(),m("div",Ot,[a(N)?(l(),T(p,{key:0,"env-vars":a(_e)},null,8,["env-vars"])):x("",!0),r(K,{icon:"i-lucide-sparkles",title:"Model providers",help:"settings.ai-provider"},{subtitle:c(()=>[...e[3]||(e[3]=[I(" Configure a complete provider for each model role. Optional roles can reuse another role's provider so you don't re-enter credentials. ",-1)])]),footer:c(()=>[s("div",Ft,[r(j,{color:"primary",loading:a($),icon:"i-lucide-save",onClick:Ie},{default:c(()=>[...e[5]||(e[5]=[I(" Save ",-1)])]),_:1},8,["loading"])])]),default:c(()=>[s("div",Lt,[(l(),m(U,null,F(P,u=>r(S,{key:u.key,modelValue:a(d)[u.key],"onUpdate:modelValue":B=>a(d)[u.key]=B,meta:u,"has-api-key":xe(u.key),"reuse-options":a(be)[u.key],"provider-options":u.key==="embedding"?a(he):de,"preset-options":a(ke),disabled:a(N),"env-managed":a(N),"provider-resolved":f(u.key),models:a(E)[u.key],"loading-models":a(O)[u.key],testing:a(g)[u.key],onApplyPreset:B=>Ae(u.key,B),onLoadModels:B=>b(u.key),onTest:B=>Ve(u.key)},null,8,["modelValue","onUpdate:modelValue","meta","has-api-key","reuse-options","provider-options","preset-options","disabled","env-managed","provider-resolved","models","loading-models","testing","onApplyPreset","onLoadModels","onTest"])),64)),r(te,{label:"Auto-diagnose",help:"settings.auto-diagnose","env-managed":a(N)},{default:c(()=>[s("div",Bt,[r(ee,{modelValue:a(n),"onUpdate:modelValue":e[0]||(e[0]=u=>W(n)?n.value=u:null),disabled:a(N)||!a(d).diagnosis.enabled},null,8,["modelValue","disabled"]),e[4]||(e[4]=s("span",{class:"text-sm text-gray-500"}," Automatically diagnose new failure clusters when a run finishes — up to 3 clusters per run (research + diagnosis call each), plus one batched call to title new clusters ",-1))])]),_:1},8,["env-managed"])])]),_:1}),r(Te),r(K,{title:"Repository access",help:"project.scm-token"},{subtitle:c(()=>[...e[6]||(e[6]=[I(" Optional — required for private repositories. Per-project tokens override this. ",-1)])]),footer:c(()=>[s("div",Wt,[r(j,{color:"primary",loading:a(h),icon:"i-lucide-save",onClick:Me},{default:c(()=>[...e[7]||(e[7]=[I(" Save token ",-1)])]),_:1},8,["loading"])])]),default:c(()=>[r(me,{label:"SCM token",description:a(i)?.hasScmToken?"Leave empty to keep the stored token, enter a new value to replace it, or save empty to remove it":"Personal access token with read access to repository contents. Supports GitHub (ghp_), GitLab (glpat-), and Bitbucket tokens."},{default:c(()=>[r(ue,{modelValue:a(V),"onUpdate:modelValue":e[1]||(e[1]=u=>W(V)?V.value=u:null),type:"password",placeholder:a(i)?.hasScmToken?"•••••••• (unchanged)":"ghp_..., glpat-..., or Bitbucket token",class:"w-full font-mono"},null,8,["modelValue","placeholder"])]),_:1},8,["description"])]),_:1}),r(K,{title:"Global analysis instructions",help:"settings.ai-instructions"},{footer:c(()=>[s("div",Nt,[r(j,{color:"primary",loading:a(y),icon:"i-lucide-save",onClick:Se},{default:c(()=>[...e[8]||(e[8]=[I(" Save instructions ",-1)])]),_:1},8,["loading"])])]),default:c(()=>[r(Ce,{modelValue:a(k),"onUpdate:modelValue":e[2]||(e[2]=u=>W(k)?k.value=u:null),rows:6,placeholder:"e.g. Always suggest running failing tests with --repeat-each 5 to confirm flakiness. Prefer network-level evidence over ARIA snapshots. Recommend git bisect when a commit range is available.",class:"w-full font-mono text-sm"},null,8,["modelValue"]),e[9]||(e[9]=s("p",{class:"text-xs text-gray-400 mt-2"}," These instructions are appended to the base system prompt. They shape how the AI analyzes failures but cannot override the response schema or confidence requirement. ",-1))]),_:1}),r(K,{title:"Diagnosis context limits",help:"settings.ai-limits"},{subtitle:c(()=>[...e[10]||(e[10]=[I(" Leave a field empty to use its default; env-managed fields are read-only. ",-1)])]),footer:c(()=>[s("div",qt,[r(j,{color:"neutral",variant:"ghost",size:"sm",onClick:Pe},{default:c(()=>[...e[11]||(e[11]=[I("Reset to defaults",-1)])]),_:1}),r(j,{color:"primary",loading:a(Z),icon:"i-lucide-save",size:"sm",onClick:we},{default:c(()=>[...e[12]||(e[12]=[I(" Save limits ",-1)])]),_:1},8,["loading"])])]),default:c(()=>[s("div",Dt,[(l(!0),m(U,null,F(a(Y),u=>(l(),T(me,{key:u.key,label:u.label,description:u.description,hint:`default ${a(L)?.defaults[u.key]??""}`},{default:c(()=>[r(ue,{modelValue:a(X)[u.key],"onUpdate:modelValue":B=>a(X)[u.key]=B,modelModifiers:{number:!0},type:"number",min:u.min,max:u.max,disabled:a(J).has(u.key),placeholder:`default ${a(L)?.defaults[u.key]??""}`,class:"w-full"},Le({_:2},[a(J).has(u.key)?{name:"trailing",fn:c(()=>[r(Ue,{"env-vars":[u.envVar]},null,8,["env-vars"])]),key:"0"}:void 0]),1032,["modelValue","onUpdate:modelValue","min","max","disabled","placeholder"])]),_:2},1032,["label","description","hint"]))),128))])]),_:1}),r(K,{icon:"i-lucide-shield-check",title:"Privacy notice",help:"settings.privacy"},{default:c(()=>[...e[13]||(e[13]=[s("div",{class:"space-y-2 text-sm text-gray-600 dark:text-gray-400"},[s("p",null,"When diagnosing a failure cluster, the following data is sent to the configured LLM provider:"),s("ul",{class:"list-disc list-inside space-y-1 ml-2"},[s("li",null,"Normalized error signature and sample raw error text"),s("li",null,"Test titles and file paths for affected tests"),s("li",null,"Browser info, test steps, console error/warning entries (excerpts)"),s("li",null,"Failed network request URLs and status codes"),s("li",null,"ARIA page snapshot (if collected)"),s("li",null," Commit SHA range since last passing run, plus changed file names and diff patches fetched from GitHub/GitLab/Bitbucket (if a repository token is configured or the repo is public) ")]),s("p",{class:"mt-2"},[I(" API keys are stored encrypted in the application database (admin-only access). For stricter setups, use the "),s("code",{class:"font-mono text-xs"},"PIWI_AI_*"),I(" environment variables instead of the UI. ")])],-1)])]),_:1})])}}});export{ms as default};