@piwitests/server 0.23.0 → 0.24.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 (346) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/_nuxt/{Clg2Qx0r.js → -COcylA_.js} +1 -1
  3. package/.output/public/_nuxt/03FA4-rI.js +1 -0
  4. package/.output/public/_nuxt/{B7tiBVLW.js → 5a7jHE9s.js} +1 -1
  5. package/.output/public/_nuxt/{roaTZkYi.js → 6Z_ZwH8I.js} +1 -1
  6. package/.output/public/_nuxt/{xZQGtnVA.js → 7ZHq6PCI.js} +1 -1
  7. package/.output/public/_nuxt/{5SkLJHl8.js → 98sAB6Gu.js} +1 -1
  8. package/.output/public/_nuxt/{DnxrNGE_.js → B--J7VNt.js} +1 -1
  9. package/.output/public/_nuxt/{DJzFYrBt.js → B1LUinhp.js} +1 -1
  10. package/.output/public/_nuxt/{axj2iIDK.js → B33YjaHr.js} +1 -1
  11. package/.output/public/_nuxt/B69RP95P.js +1 -0
  12. package/.output/public/_nuxt/{DNKZmhbX.js → B8H4XydJ.js} +1 -1
  13. package/.output/public/_nuxt/{DmqCquDx.js → B8Xm4_S_.js} +1 -1
  14. package/.output/public/_nuxt/{Ya8ZzWuY.js → BBhrClA9.js} +1 -1
  15. package/.output/public/_nuxt/{BZFiz2UB.js → BCGljaM0.js} +1 -1
  16. package/.output/public/_nuxt/{oSLbl-p0.js → BFxvHlO9.js} +1 -1
  17. package/.output/public/_nuxt/{PDSNX4Te.js → BKrWWV14.js} +1 -1
  18. package/.output/public/_nuxt/BN1zZw5b.js +9 -0
  19. package/.output/public/_nuxt/{Dbf8eT28.js → BPXqL9vK.js} +1 -1
  20. package/.output/public/_nuxt/{DgEa6_av.js → BUnwEAjq.js} +1 -1
  21. package/.output/public/_nuxt/{CUOS6S13.js → BVLqydCr.js} +1 -1
  22. package/.output/public/_nuxt/{CvVbKrcH.js → BWMSVSNM.js} +1 -1
  23. package/.output/public/_nuxt/{Wk7ZKG4B.js → B_r0xHVS.js} +1 -1
  24. package/.output/public/_nuxt/{DAhv9aNg.js → BakMHV79.js} +1 -1
  25. package/.output/public/_nuxt/{BDUfBn3i.js → Bd8B-yeR.js} +1 -1
  26. package/.output/public/_nuxt/{sqqg4oXL.js → BevElZaK.js} +1 -1
  27. package/.output/public/_nuxt/{B0tmRAhY.js → BfA6lfg4.js} +1 -1
  28. package/.output/public/_nuxt/{D3SJGdl4.js → Bg93Rnts.js} +1 -1
  29. package/.output/public/_nuxt/{Ck_fTH5z.js → BgABj4Ty.js} +1 -1
  30. package/.output/public/_nuxt/{B2L0-Lzp.js → BkM2KXUo.js} +1 -1
  31. package/.output/public/_nuxt/{CBJFORiZ.js → BkxRbXIj.js} +1 -1
  32. package/.output/public/_nuxt/{Bsc11YIJ.js → Bme1UkOl.js} +1 -1
  33. package/.output/public/_nuxt/{BfcMJBTf.js → BmzxRbcg.js} +1 -1
  34. package/.output/public/_nuxt/{D7fxV-UA.js → Bn0jaRxI.js} +1 -1
  35. package/.output/public/_nuxt/{C77tM5Hz.js → BoNKdx5o.js} +1 -1
  36. package/.output/public/_nuxt/{Bb2mDqKr.js → Bp3FRuEm.js} +1 -1
  37. package/.output/public/_nuxt/{BjOFxi54.js → BrUBOQ0y.js} +1 -1
  38. package/.output/public/_nuxt/{DXkFgrsT.js → BtSGUY-7.js} +1 -1
  39. package/.output/public/_nuxt/{QZYo3ErV.js → BtbpLWDs.js} +1 -1
  40. package/.output/public/_nuxt/{Bag08cIY.js → BvAfKk6C.js} +1 -1
  41. package/.output/public/_nuxt/{BOvtXn3m.js → BwEN1fJ1.js} +1 -1
  42. package/.output/public/_nuxt/{DYjxDsYC.js → C-XjxjG5.js} +1 -1
  43. package/.output/public/_nuxt/{RkNtgoTD.js → C3W_wyr9.js} +1 -1
  44. package/.output/public/_nuxt/{CNu3kken.js → C5TrTuWv.js} +3 -3
  45. package/.output/public/_nuxt/{B4mZElvM.js → C7D5Wl7T.js} +1 -1
  46. package/.output/public/_nuxt/{ZLfZolDM.js → C7fq_rHE.js} +1 -1
  47. package/.output/public/_nuxt/{B_JSV0yG.js → C8Paf_V1.js} +1 -1
  48. package/.output/public/_nuxt/{C2_7XZo0.js → CD8ZzAFC.js} +1 -1
  49. package/.output/public/_nuxt/{CTTmX4gy.js → CDTeSrLO.js} +1 -1
  50. package/.output/public/_nuxt/{CLWMETf9.js → CGHV0Y2d.js} +1 -1
  51. package/.output/public/_nuxt/{AQ86C4c2.js → CIpF9l75.js} +1 -1
  52. package/.output/public/_nuxt/{jR2xm3_t.js → CJ1rmnk4.js} +1 -1
  53. package/.output/public/_nuxt/{7_9fts7T.js → CMuzkARi.js} +1 -1
  54. package/.output/public/_nuxt/{a8Z6VC7V.js → COuZu9FO.js} +1 -1
  55. package/.output/public/_nuxt/{D7t0Dn3h.js → CX5Q0dZ8.js} +1 -1
  56. package/.output/public/_nuxt/{9_aJhhcm.js → CX_G-FHC.js} +14 -14
  57. package/.output/public/_nuxt/{C9I1Dp3S.js → Ce5_Tq63.js} +1 -1
  58. package/.output/public/_nuxt/{BtZNYmZO.js → Cf4MFOuf.js} +1 -1
  59. package/.output/public/_nuxt/{mi22nGUC.js → CgkXEZMo.js} +1 -1
  60. package/.output/public/_nuxt/{Ce89VyHE.js → CjBktNrC.js} +1 -1
  61. package/.output/public/_nuxt/{Bj_v57Zu.js → CjtjQV60.js} +1 -1
  62. package/.output/public/_nuxt/{BuGAn4f7.js → CpcrljrH.js} +1 -1
  63. package/.output/public/_nuxt/{6vX5JdHr.js → Cq33x7yV.js} +1 -1
  64. package/.output/public/_nuxt/{jxc14CqP.js → CsV7pmcT.js} +1 -1
  65. package/.output/public/_nuxt/{DTrPCv7R.js → Cu2Q4iPh.js} +1 -1
  66. package/.output/public/_nuxt/{DylyATWU.js → CyLcEDg2.js} +1 -1
  67. package/.output/public/_nuxt/{Ce_j5NtN.js → D0Kop4bS.js} +1 -1
  68. package/.output/public/_nuxt/{DCE2_MKD.js → D1Y43xM1.js} +1 -1
  69. package/.output/public/_nuxt/{499RbBSX.js → D1vqYZsL.js} +1 -1
  70. package/.output/public/_nuxt/{BjMo2tKC.js → D2rZosKf.js} +1 -1
  71. package/.output/public/_nuxt/D7jpwkRG.js +5 -0
  72. package/.output/public/_nuxt/{BFYkWpPx.js → D8NAb7VE.js} +1 -1
  73. package/.output/public/_nuxt/{CIQeRUSy.js → D8vguZKg.js} +1 -1
  74. package/.output/public/_nuxt/{Bq4_kqIp.js → DEvYVl9M.js} +1 -1
  75. package/.output/public/_nuxt/{DBWM_xs-.js → DF6Mes5z.js} +1 -1
  76. package/.output/public/_nuxt/{CGDPUNcO.js → DGq4A2Pd.js} +1 -1
  77. package/.output/public/_nuxt/{CF_eDZHu.js → DH5H1DJh.js} +1 -1
  78. package/.output/public/_nuxt/{kWnH8yJq.js → DL8knjzi.js} +1 -1
  79. package/.output/public/_nuxt/{CC8wk-N0.js → DM3bDZC6.js} +1 -1
  80. package/.output/public/_nuxt/{Ce47NgZw.js → DMAiMrNr.js} +1 -1
  81. package/.output/public/_nuxt/{HbnAkiyK.js → DMWfVJCj.js} +1 -1
  82. package/.output/public/_nuxt/{B3AG2m76.js → DMsm-RGQ.js} +1 -1
  83. package/.output/public/_nuxt/{DeewM3Wg.js → DMtrFQqi.js} +1 -1
  84. package/.output/public/_nuxt/{D1Ucra3E.js → DPZBpFOX.js} +1 -1
  85. package/.output/public/_nuxt/{DiWxW-w3.js → DVEGfqtt.js} +1 -1
  86. package/.output/public/_nuxt/{DZ-KbUZi.js → D_y2VS8k.js} +1 -1
  87. package/.output/public/_nuxt/DaNC-xl1.js +1 -0
  88. package/.output/public/_nuxt/{DZECGgZm.js → DbmGeOus.js} +1 -1
  89. package/.output/public/_nuxt/{HIGGZ_c-.js → DcLbz6DV.js} +1 -1
  90. package/.output/public/_nuxt/{B_MVJP17.js → DcR0Mmdl.js} +1 -1
  91. package/.output/public/_nuxt/{DNqm5cWU.js → DhYznn-U.js} +1 -1
  92. package/.output/public/_nuxt/DhuRRlmK.js +1 -0
  93. package/.output/public/_nuxt/{pZbe82l5.js → Drw8yQg6.js} +1 -1
  94. package/.output/public/_nuxt/{CPQRQqXU.js → DuO5wfAC.js} +1 -1
  95. package/.output/public/_nuxt/{FJTsZ5Aa.js → DuOH5jcQ.js} +1 -1
  96. package/.output/public/_nuxt/{BM5BPKlc.js → DvEsAuE9.js} +1 -1
  97. package/.output/public/_nuxt/{dUPMBJ4f.js → Dz6g_QJT.js} +1 -1
  98. package/.output/public/_nuxt/{BAbrtVp3.js → DzZpIs4W.js} +1 -1
  99. package/.output/public/_nuxt/DzzNS-K1.js +1 -0
  100. package/.output/public/_nuxt/{BwwfasRt.js → Fsw2W4TA.js} +1 -1
  101. package/.output/public/_nuxt/{CdEzDaDI.js → LwoTUb-r.js} +1 -1
  102. package/.output/public/_nuxt/{DuBtaw3j.js → OfPjZaky.js} +1 -1
  103. package/.output/public/_nuxt/{LTMoFvEY.js → P5uOaRUZ.js} +1 -1
  104. package/.output/public/_nuxt/{B3G-TIoP.js → Qo6oszaF.js} +1 -1
  105. package/.output/public/_nuxt/{DprkT7rM.js → T5UuMUxA.js} +1 -1
  106. package/.output/public/_nuxt/UY8pjaZA.js +1 -0
  107. package/.output/public/_nuxt/{CmTzxoQt.js → V9p3z39z.js} +1 -1
  108. package/.output/public/_nuxt/{5QBnDbs_.js → VACXezo0.js} +1 -1
  109. package/.output/public/_nuxt/{6sA-GK37.js → YmCeJkZ2.js} +1 -1
  110. package/.output/public/_nuxt/builds/latest.json +1 -1
  111. package/.output/public/_nuxt/builds/meta/70224ee0-4d1f-45d2-b380-2ecb18064bf1.json +1 -0
  112. package/.output/public/_nuxt/entry.DzPSf_u5.css +1 -0
  113. package/.output/public/_nuxt/fXUwH_3d.js +1 -0
  114. package/.output/public/_nuxt/{CAoQUDI4.js → opwuUqHG.js} +1 -1
  115. package/.output/public/_nuxt/{2yLW7WU0.js → opyDpgSw.js} +1 -1
  116. package/.output/public/_nuxt/{B070fjS-.js → sVV8xB9f.js} +1 -1
  117. package/.output/public/_nuxt/{C6t4kxaa.js → xa5UHCot.js} +1 -1
  118. package/.output/server/chunks/_/collect.mjs +1 -1
  119. package/.output/server/chunks/_/markers.mjs +1 -1
  120. package/.output/server/chunks/_/quarantine.mjs +1 -1
  121. package/.output/server/chunks/_/users.mjs +1 -1
  122. package/.output/server/chunks/build/Checkbox-BisdHf8n.mjs +1 -1
  123. package/.output/server/chunks/build/CodeBlock-B8BNtZAe.mjs +1 -1
  124. package/.output/server/chunks/build/DashboardSidebarToggle-C3HdHvlE.mjs +1 -1
  125. package/.output/server/chunks/build/DiagnosisPanel-BVb2LgHu.mjs +1 -1
  126. package/.output/server/chunks/build/DiagnosisResult-xVgZlfKK.mjs +1 -1
  127. package/.output/server/chunks/build/EntityLinks-Dzn73fbq.mjs +1 -1
  128. package/.output/server/chunks/build/HelpHint-plioHKA0.mjs +27 -0
  129. package/.output/server/chunks/build/NavigationMenu-RfBOyS32.mjs +1 -1
  130. package/.output/server/chunks/build/OpenInIdeLink-Jp6SzEtD.mjs +1 -1
  131. package/.output/server/chunks/build/RunReports-nuLb-Nm3.mjs +1 -1
  132. package/.output/server/chunks/build/Select-CEyw7HGK.mjs +1 -1
  133. package/.output/server/chunks/build/SelectMenu-C02Hs2_F.mjs +1 -1
  134. package/.output/server/chunks/build/Table-qZdnm9t2.mjs +1 -1
  135. package/.output/server/chunks/build/Tooltip-BI3WQErw.mjs +1 -1
  136. package/.output/server/chunks/build/{_id_-D7UtAIPR.mjs → _id_-26komi8G.mjs} +15 -8
  137. package/.output/server/chunks/build/{_id_-D7UtAIPR.mjs.map → _id_-26komi8G.mjs.map} +1 -1
  138. package/.output/server/chunks/build/{_id_-CrGTZymJ.mjs → _id_-w7YCSiiy.mjs} +2 -2
  139. package/.output/server/chunks/build/{_id_-CrGTZymJ.mjs.map → _id_-w7YCSiiy.mjs.map} +1 -1
  140. package/.output/server/chunks/build/_id_-wiULjAVc.mjs +1 -1
  141. package/.output/server/chunks/build/ai-DYhpzbqp.mjs +1 -1
  142. package/.output/server/chunks/build/client.precomputed.mjs +1 -1
  143. package/.output/server/chunks/build/{db.client-Bdqk_eYQ.mjs → db.client-DijpEH6i.mjs} +3 -1
  144. package/.output/server/chunks/build/db.client-DijpEH6i.mjs.map +1 -0
  145. package/.output/server/chunks/build/{default-DO1izI2V.mjs → default-CQa_bmAf.mjs} +2 -2
  146. package/.output/server/chunks/build/{default-DO1izI2V.mjs.map → default-CQa_bmAf.mjs.map} +1 -1
  147. package/.output/server/chunks/build/fetch-tkz5_OA-.mjs +1 -1
  148. package/.output/server/chunks/build/import-B27Sv7h5.mjs +1 -1
  149. package/.output/server/chunks/build/{index-vRwzDXLs.mjs → index-Dq6nk6OB.mjs} +367 -87
  150. package/.output/server/chunks/build/index-Dq6nk6OB.mjs.map +1 -0
  151. package/.output/server/chunks/build/isValueEqualOrExist-D4lZ8uRY.mjs +1 -1
  152. package/.output/server/chunks/build/login-hxCF06JT.mjs +1 -1
  153. package/.output/server/chunks/build/mcp-BVW1llyW.mjs +1 -1
  154. package/.output/server/chunks/build/server.mjs +6 -6
  155. package/.output/server/chunks/build/settings-metadata-DnAK4Rzg.mjs +1 -1
  156. package/.output/server/chunks/build/storage-zN92cA9q.mjs +1 -1
  157. package/.output/server/chunks/build/test-functions-DVRJgiWo.mjs +1 -1
  158. package/.output/server/chunks/build/{useCopyRich-CZxJ7IY_.mjs → useCopyRich-BM9GTjJi.mjs} +64 -18
  159. package/.output/server/chunks/build/{useCopyRich-CZxJ7IY_.mjs.map → useCopyRich-BM9GTjJi.mjs.map} +1 -1
  160. package/.output/server/chunks/nitro/nitro.mjs +1037 -733
  161. package/.output/server/chunks/nitro/nitro.mjs.map +1 -1
  162. package/.output/server/chunks/routes/__piwi/session.get.mjs +1 -1
  163. package/.output/server/chunks/routes/api/ai/step-resolution.post.mjs +88 -0
  164. package/.output/server/chunks/routes/api/ai/step-resolution.post.mjs.map +1 -0
  165. package/.output/server/chunks/routes/api/analytics/_widget_.get.mjs +1 -1
  166. package/.output/server/chunks/routes/api/auth/change-password.post.mjs +1 -1
  167. package/.output/server/chunks/routes/api/auth/forgot-password.post.mjs +1 -1
  168. package/.output/server/chunks/routes/api/auth/login.post.mjs +1 -1
  169. package/.output/server/chunks/routes/api/auth/logout.post.mjs +1 -1
  170. package/.output/server/chunks/routes/api/auth/me.get.mjs +1 -1
  171. package/.output/server/chunks/routes/api/auth/oauth/_provider/callback.get.mjs +1 -1
  172. package/.output/server/chunks/routes/api/auth/oauth/_provider/login.get.mjs +1 -1
  173. package/.output/server/chunks/routes/api/auth/oauth/_provider/unlink.post.mjs +1 -1
  174. package/.output/server/chunks/routes/api/auth/reset-password.post.mjs +1 -1
  175. package/.output/server/chunks/routes/api/auth/send-verify-email.post.mjs +1 -1
  176. package/.output/server/chunks/routes/api/auth/setup.get.mjs +1 -1
  177. package/.output/server/chunks/routes/api/auth/setup.post.mjs +1 -1
  178. package/.output/server/chunks/routes/api/auth/verify-email.get.mjs +1 -1
  179. package/.output/server/chunks/routes/api/channels/_id/test.post.mjs +1 -1
  180. package/.output/server/chunks/routes/api/channels/_id_.delete.mjs +1 -1
  181. package/.output/server/chunks/routes/api/cluster-merge-suggestions/_id/approve.post.mjs +1 -1
  182. package/.output/server/chunks/routes/api/cluster-merge-suggestions/_id/reject.post.mjs +1 -1
  183. package/.output/server/chunks/routes/api/desktop/import-local.post.mjs +1 -1
  184. package/.output/server/chunks/routes/api/failure-clusters/_id/base-commit.patch.mjs +1 -1
  185. package/.output/server/chunks/routes/api/failure-clusters/_id/branches.get.mjs +1 -1
  186. package/.output/server/chunks/routes/api/failure-clusters/_id/commit-diff.get.mjs +1 -1
  187. package/.output/server/chunks/routes/api/failure-clusters/_id/commits.get.mjs +1 -1
  188. package/.output/server/chunks/routes/api/failure-clusters/_id/context.get.mjs +1 -1
  189. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnose/stream.post.mjs +1 -1
  190. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnose.post.mjs +1 -1
  191. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnoses.get.mjs +1 -1
  192. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnosis.get.mjs +1 -1
  193. package/.output/server/chunks/routes/api/failure-clusters/_id/export.get.mjs +1 -1
  194. package/.output/server/chunks/routes/api/failure-clusters/_id/extract-cases.post.mjs +1 -1
  195. package/.output/server/chunks/routes/api/failure-clusters/_id/fix-plan.get.mjs +1 -1
  196. package/.output/server/chunks/routes/api/failure-clusters/_id/status.patch.mjs +1 -1
  197. package/.output/server/chunks/routes/api/failure-clusters/_id_.get.mjs +1 -1
  198. package/.output/server/chunks/routes/api/failure-diagnoses/_id/feedback.patch.mjs +1 -1
  199. package/.output/server/chunks/routes/api/files/_...path_.get.mjs +1 -1
  200. package/.output/server/chunks/routes/api/health.get.mjs +1 -1
  201. package/.output/server/chunks/routes/api/index.get.mjs +1 -1
  202. package/.output/server/chunks/routes/api/index.get2.mjs +1 -1
  203. package/.output/server/chunks/routes/api/index.get3.mjs +1 -1
  204. package/.output/server/chunks/routes/api/index.get4.mjs +1 -1
  205. package/.output/server/chunks/routes/api/index.get5.mjs +1 -1
  206. package/.output/server/chunks/routes/api/index.post.mjs +1 -1
  207. package/.output/server/chunks/routes/api/index.post2.mjs +1 -1
  208. package/.output/server/chunks/routes/api/index.post3.mjs +1 -1
  209. package/.output/server/chunks/routes/api/index.post4.mjs +1 -1
  210. package/.output/server/chunks/routes/api/index.post5.mjs +1 -1
  211. package/.output/server/chunks/routes/api/index.post6.mjs +1 -1
  212. package/.output/server/chunks/routes/api/links/_id/refresh.post.mjs +1 -1
  213. package/.output/server/chunks/routes/api/links/_id_.delete.mjs +1 -1
  214. package/.output/server/chunks/routes/api/links/_id_.patch.mjs +1 -1
  215. package/.output/server/chunks/routes/api/markers/_id_.delete.mjs +1 -1
  216. package/.output/server/chunks/routes/api/markers/_id_.put.mjs +1 -1
  217. package/.output/server/chunks/routes/api/notifications/stream.get.mjs +1 -1
  218. package/.output/server/chunks/routes/api/projects/_id/ai-steps.get.mjs +63 -0
  219. package/.output/server/chunks/routes/api/projects/_id/ai-steps.get.mjs.map +1 -0
  220. package/.output/server/chunks/routes/api/projects/_id/cluster-merge-suggestions.get.mjs +1 -1
  221. package/.output/server/chunks/routes/api/projects/_id/failure-clusters.get.mjs +1 -1
  222. package/.output/server/chunks/routes/api/projects/_id/flaky-classify.post.mjs +1 -1
  223. package/.output/server/chunks/routes/api/projects/_id/flaky-tests.get.mjs +1 -1
  224. package/.output/server/chunks/routes/api/projects/_id/latest-run.get.mjs +1 -1
  225. package/.output/server/chunks/routes/api/projects/_id/markers.get.mjs +1 -1
  226. package/.output/server/chunks/routes/api/projects/_id/markers.post.mjs +1 -1
  227. package/.output/server/chunks/routes/api/projects/_id/members.get.mjs +1 -1
  228. package/.output/server/chunks/routes/api/projects/_id/members.put.mjs +1 -1
  229. package/.output/server/chunks/routes/api/projects/_id/performance.get.mjs +1 -1
  230. package/.output/server/chunks/routes/api/projects/_id/quarantine/_testCaseId_.delete.mjs +1 -1
  231. package/.output/server/chunks/routes/api/projects/_id/quarantine.get.mjs +1 -1
  232. package/.output/server/chunks/routes/api/projects/_id/quarantine.post.mjs +1 -1
  233. package/.output/server/chunks/routes/api/projects/_id/slow-tests.get.mjs +1 -1
  234. package/.output/server/chunks/routes/api/projects/_id/spec-health.get.mjs +1 -1
  235. package/.output/server/chunks/routes/api/projects/_id/test-cases.get.mjs +1 -1
  236. package/.output/server/chunks/routes/api/projects/_id/test-functions/extract.post.mjs +1 -1
  237. package/.output/server/chunks/routes/api/projects/_id/test-functions/validate-proposal.post.mjs +1 -1
  238. package/.output/server/chunks/routes/api/projects/_id/test-functions.get.mjs +1 -1
  239. package/.output/server/chunks/routes/api/projects/_id/test-functions.post.mjs +1 -1
  240. package/.output/server/chunks/routes/api/projects/_id/timeout-opportunities.get.mjs +1 -1
  241. package/.output/server/chunks/routes/api/projects/_id_.delete.mjs +1 -1
  242. package/.output/server/chunks/routes/api/projects/_id_.get.mjs +1 -1
  243. package/.output/server/chunks/routes/api/projects/_id_.put.mjs +1 -1
  244. package/.output/server/chunks/routes/api/projects/menu.get.mjs +1 -1
  245. package/.output/server/chunks/routes/api/projects/overview.get.mjs +1 -1
  246. package/.output/server/chunks/routes/api/projects.get.mjs +1 -1
  247. package/.output/server/chunks/routes/api/search.get.mjs +1 -1
  248. package/.output/server/chunks/routes/api/settings/ai/limits.get.mjs +1 -1
  249. package/.output/server/chunks/routes/api/settings/ai/limits.put.mjs +1 -1
  250. package/.output/server/chunks/routes/api/settings/ai/test.post.mjs +1 -1
  251. package/.output/server/chunks/routes/api/settings/ai/usage.get.mjs +1 -1
  252. package/.output/server/chunks/routes/api/settings/ai.get.mjs +1 -1
  253. package/.output/server/chunks/routes/api/settings/ai.put.mjs +1 -1
  254. package/.output/server/chunks/routes/api/settings/pr-feedback.get.mjs +1 -1
  255. package/.output/server/chunks/routes/api/settings/pr-feedback.put.mjs +1 -1
  256. package/.output/server/chunks/routes/api/settings/smtp/test.post.mjs +1 -1
  257. package/.output/server/chunks/routes/api/settings/smtp.get.mjs +1 -1
  258. package/.output/server/chunks/routes/api/settings/timeout-hygiene.get.mjs +1 -1
  259. package/.output/server/chunks/routes/api/settings/timeout-hygiene.put.mjs +1 -1
  260. package/.output/server/chunks/routes/api/settings/wasted-waits.get.mjs +1 -1
  261. package/.output/server/chunks/routes/api/settings/wasted-waits.put.mjs +1 -1
  262. package/.output/server/chunks/routes/api/setup-status.get.mjs +1 -1
  263. package/.output/server/chunks/routes/api/stream.get.mjs +1 -1
  264. package/.output/server/chunks/routes/api/subscriptions/_id_.delete.mjs +1 -1
  265. package/.output/server/chunks/routes/api/subscriptions/_id_.patch.mjs +1 -1
  266. package/.output/server/chunks/routes/api/tags/_id_.delete.mjs +1 -1
  267. package/.output/server/chunks/routes/api/tags/_id_.put.mjs +1 -1
  268. package/.output/server/chunks/routes/api/test-cases/_id/history.get.mjs +1 -1
  269. package/.output/server/chunks/routes/api/test-cases/_id/stability-trend.get.mjs +1 -1
  270. package/.output/server/chunks/routes/api/test-cases/_id_.get.mjs +1 -1
  271. package/.output/server/chunks/routes/api/test-functions/_id_.delete.mjs +1 -1
  272. package/.output/server/chunks/routes/api/test-functions/_id_.put.mjs +1 -1
  273. package/.output/server/chunks/routes/api/test-run-cases/_id/diagnose.post.mjs +1 -1
  274. package/.output/server/chunks/routes/api/test-run-cases/_id/diagnosis-context.get.mjs +1 -1
  275. package/.output/server/chunks/routes/api/test-run-cases/_id/diagnosis.get.mjs +1 -1
  276. package/.output/server/chunks/routes/api/test-run-cases/_id/export.get.mjs +1 -1
  277. package/.output/server/chunks/routes/api/test-run-cases/_id/traces.get.mjs +1 -1
  278. package/.output/server/chunks/routes/api/test-run-cases/_id_.get.mjs +1 -1
  279. package/.output/server/chunks/routes/api/test-runs/_id/begin.post.mjs +1 -1
  280. package/.output/server/chunks/routes/api/test-runs/_id/case-files.post.mjs +1 -1
  281. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/dom-snapshot.get.mjs +1 -1
  282. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/environment-diff.get.mjs +1 -1
  283. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/locator-healing.get.mjs +1 -1
  284. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/locator-pick.post.mjs +1 -1
  285. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-network-body.get.mjs +1 -1
  286. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-network.get.mjs +1 -1
  287. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-stacks.get.mjs +1 -1
  288. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/visual-diff.get.mjs +1 -1
  289. package/.output/server/chunks/routes/api/test-runs/_id/events.post.mjs +1 -1
  290. package/.output/server/chunks/routes/api/test-runs/_id/failure-groups.get.mjs +1 -1
  291. package/.output/server/chunks/routes/api/test-runs/_id/finish.post.mjs +1 -1
  292. package/.output/server/chunks/routes/api/test-runs/_id/gate.post.mjs +1 -1
  293. package/.output/server/chunks/routes/api/test-runs/_id/heartbeat.post.mjs +1 -1
  294. package/.output/server/chunks/routes/api/test-runs/_id/insights.get.mjs +1 -1
  295. package/.output/server/chunks/routes/api/test-runs/_id/network-requests.get.mjs +1 -1
  296. package/.output/server/chunks/routes/api/test-runs/_id/regression-context.get.mjs +1 -1
  297. package/.output/server/chunks/routes/api/test-runs/_id/stream.get.mjs +1 -1
  298. package/.output/server/chunks/routes/api/test-runs/_id/summary.get.mjs +1 -1
  299. package/.output/server/chunks/routes/api/test-runs/_id_.delete.mjs +1 -1
  300. package/.output/server/chunks/routes/api/test-runs/_id_.get.mjs +1 -1
  301. package/.output/server/chunks/routes/api/test-runs/_id_.patch.mjs +1 -1
  302. package/.output/server/chunks/routes/api/test-runs/import/check.post.mjs +1 -1
  303. package/.output/server/chunks/routes/api/test-runs/import.post.mjs +1 -1
  304. package/.output/server/chunks/routes/api/test-runs/recent.get.mjs +1 -1
  305. package/.output/server/chunks/routes/api/test-runs/setup.post.mjs +1 -1
  306. package/.output/server/chunks/routes/api/test-runs/start.post.mjs +1 -1
  307. package/.output/server/chunks/routes/api/test-runs/submit.post.mjs +3 -1
  308. package/.output/server/chunks/routes/api/test-runs/submit.post.mjs.map +1 -1
  309. package/.output/server/chunks/routes/api/test-runs/upload.post.mjs +2 -1
  310. package/.output/server/chunks/routes/api/test-runs/upload.post.mjs.map +1 -1
  311. package/.output/server/chunks/routes/api/tests/cleanup.delete.mjs +2 -1
  312. package/.output/server/chunks/routes/api/tests/cleanup.delete.mjs.map +1 -1
  313. package/.output/server/chunks/routes/api/traces/check.post.mjs +1 -1
  314. package/.output/server/chunks/routes/api/users/_id/api-keys/_keyId_.delete.mjs +1 -1
  315. package/.output/server/chunks/routes/api/users/_id/index.get.mjs +1 -1
  316. package/.output/server/chunks/routes/api/users/_id/index.post.mjs +1 -1
  317. package/.output/server/chunks/routes/api/users/_id/invite.post.mjs +1 -1
  318. package/.output/server/chunks/routes/api/users/_id/projects.get.mjs +1 -1
  319. package/.output/server/chunks/routes/api/users/_id/projects.put.mjs +1 -1
  320. package/.output/server/chunks/routes/api/users/_id_.delete.mjs +1 -1
  321. package/.output/server/chunks/routes/api/users/_id_.patch.mjs +1 -1
  322. package/.output/server/chunks/routes/api/version.get.mjs +1 -1
  323. package/.output/server/chunks/routes/mcp.post.mjs +1 -1
  324. package/.output/server/chunks/routes/renderer.mjs +1 -1
  325. package/.output/server/database/migrations/0045_productive_stingray.sql +1 -0
  326. package/.output/server/database/migrations/meta/0045_snapshot.json +3779 -0
  327. package/.output/server/database/migrations/meta/_journal.json +7 -0
  328. package/.output/server/database/migrations-pg/0046_gorgeous_hercules.sql +1 -0
  329. package/.output/server/database/migrations-pg/meta/0046_snapshot.json +4486 -0
  330. package/.output/server/database/migrations-pg/meta/_journal.json +7 -0
  331. package/.output/server/index.mjs +1 -1
  332. package/.output/server/package.json +1 -1
  333. package/package.json +1 -1
  334. package/.output/public/_nuxt/BNyTWIad.js +0 -9
  335. package/.output/public/_nuxt/BVyjw9Bi.js +0 -1
  336. package/.output/public/_nuxt/BZOykMLD.js +0 -1
  337. package/.output/public/_nuxt/CEai-PWF.js +0 -1
  338. package/.output/public/_nuxt/CYhm2FBS.js +0 -5
  339. package/.output/public/_nuxt/CfhOanaF.js +0 -1
  340. package/.output/public/_nuxt/Cz7SCzdW.js +0 -1
  341. package/.output/public/_nuxt/DFfqRQxk.js +0 -1
  342. package/.output/public/_nuxt/builds/meta/6d1766a0-0aba-46b8-9d97-7dd174130359.json +0 -1
  343. package/.output/public/_nuxt/eT2oObCh.js +0 -1
  344. package/.output/public/_nuxt/entry.D_eWXrnD.css +0 -1
  345. package/.output/server/chunks/build/db.client-Bdqk_eYQ.mjs.map +0 -1
  346. package/.output/server/chunks/build/index-vRwzDXLs.mjs.map +0 -1
@@ -0,0 +1 @@
1
+ import{A as o}from"./C5TrTuWv.js";function n(){const t=o();return String(t.public.desktop)==="true"}export{n as u};
@@ -1,2 +1,2 @@
1
- import{r as f,h as l}from"./CNu3kken.js";const d="piwi-diagnosis-notifications";function I(){const i=f("default"),s=new Set,t=f(!0);"Notification"in window&&(i.value=Notification.permission),localStorage.getItem(d)==="false"&&(t.value=!1);const n=l(()=>"Notification"in window),c=l(()=>n.value&&i.value==="granted"&&t.value);async function m(){if(!n.value)return;const e=await Notification.requestPermission();i.value=e}function g(){t.value=!t.value,localStorage.setItem(d,String(t.value))}function v(e,o){r({clusterId:o,summary:e.summary,rootCause:e.rootCause,category:e.category,confidence:e.confidence})}function r(e){if(!c.value||s.has(e.clusterId))return;const o=[e.summary||e.rootCause];e.category&&o.push(`Category: ${e.category}`),e.confidence&&o.push(`Confidence: ${e.confidence}`);const u=o.join(`
1
+ import{r as f,h as l}from"./C5TrTuWv.js";const d="piwi-diagnosis-notifications";function I(){const i=f("default"),s=new Set,t=f(!0);"Notification"in window&&(i.value=Notification.permission),localStorage.getItem(d)==="false"&&(t.value=!1);const n=l(()=>"Notification"in window),c=l(()=>n.value&&i.value==="granted"&&t.value);async function m(){if(!n.value)return;const e=await Notification.requestPermission();i.value=e}function g(){t.value=!t.value,localStorage.setItem(d,String(t.value))}function v(e,o){r({clusterId:o,summary:e.summary,rootCause:e.rootCause,category:e.category,confidence:e.confidence})}function r(e){if(!c.value||s.has(e.clusterId))return;const o=[e.summary||e.rootCause];e.category&&o.push(`Category: ${e.category}`),e.confidence&&o.push(`Confidence: ${e.confidence}`);const u=o.join(`
2
2
  `);if(!u)return;const a=new Notification("Piwi diagnosis complete",{body:u,tag:`diagnosis-${e.clusterId}`,icon:"/logo.svg"});a.onclick=()=>{window.focus(),a.close()},s.add(e.clusterId)}return{permission:i,supported:n,active:c,requestPermission:m,toggleEnabled:g,notify:v,notifyFromPayload:r}}export{I as u};
@@ -1 +1 @@
1
- import{a2 as P,a3 as D,a5 as C,b8 as B,o as i,c as k,j as w,g as z,V as t,a0 as c,a1 as g,k as e,f as h,W as S,v as f,i as m,q as n,p as O,m as R,t as V,X as M,F as x,h as N,a8 as T,aU as A,b9 as U}from"./CNu3kken.js";import{a as j,_ as F,b as K,c as E}from"./BZFiz2UB.js";const I={slots:{root:"h-(--ui-header-height) shrink-0 flex items-center justify-between border-b border-default px-4 sm:px-6 gap-1.5",left:"flex items-center gap-1.5 min-w-0",icon:"shrink-0 size-5 self-center me-1.5",title:"flex items-center gap-1.5 font-semibold text-highlighted truncate",center:"hidden lg:flex",right:"flex items-center shrink-0 gap-1.5",toggle:""},variants:{toggleSide:{left:{toggle:""},right:{toggle:""}}}},L=Object.assign({inheritAttrs:!1},{__name:"UDashboardNavbar",props:{as:{type:null,required:!1},icon:{type:null,required:!1},title:{type:String,required:!1},toggle:{type:[Boolean,Object],required:!1,default:!0},toggleSide:{type:String,required:!1,default:"left"},class:{type:null,required:!1},ui:{type:Object,required:!1}},setup(b){const q=b,r=P(),s=D("dashboardNavbar",q),p=C(),o=j({}),[y,u]=B(),a=N(()=>T({extend:I,...p.ui?.dashboardNavbar||{}})());return(l,v)=>(i(),k(x,null,[w(e(y),null,{default:z(()=>[t(l.$slots,"toggle",c(g({...e(o),ui:a.value})),()=>[e(s).toggle?(i(),h(F,S({key:0},typeof e(s).toggle=="object"?e(s).toggle:{},{side:e(s).toggleSide,"data-slot":"toggle",class:a.value.toggle({class:e(s).ui?.toggle,toggleSide:e(s).toggleSide})}),null,16,["side","class"])):f("",!0)])]),_:3}),w(e(M),S({as:e(s).as,"data-slot":"root"},l.$attrs,{class:a.value.root({class:[e(s).ui?.root,e(s).class]})}),{default:z(()=>[m("div",{"data-slot":"left",class:n(a.value.left({class:e(s).ui?.left}))},[e(s).toggleSide==="left"?(i(),h(e(u),{key:0})):f("",!0),t(l.$slots,"left",c(g(e(o))),()=>[t(l.$slots,"leading",c(g({...e(o),ui:a.value})),()=>[e(s).icon?(i(),h(O,{key:0,name:e(s).icon,"data-slot":"icon",class:n(a.value.icon({class:e(s).ui?.icon}))},null,8,["name","class"])):f("",!0)]),m("h1",{"data-slot":"title",class:n(a.value.title({class:e(s).ui?.title}))},[t(l.$slots,"title",{},()=>[R(V(e(s).title),1)])],2),t(l.$slots,"trailing",c(g({...e(o),ui:a.value})))])],2),r.default?(i(),k("div",{key:0,"data-slot":"center",class:n(a.value.center({class:e(s).ui?.center}))},[t(l.$slots,"default",c(g(e(o))))],2)):f("",!0),m("div",{"data-slot":"right",class:n(a.value.right({class:e(s).ui?.right}))},[t(l.$slots,"right",c(g(e(o)))),e(s).toggleSide==="right"?(i(),h(e(u),{key:0})):f("",!0)],2)]),_:3},16,["as","class"])],64))}}),W={slots:{root:"relative flex flex-col min-w-0 min-h-svh lg:not-last:border-e lg:not-last:border-default shrink-0",body:"flex flex-col gap-4 sm:gap-6 flex-1 overflow-y-auto p-4 sm:p-6",handle:""},variants:{size:{true:{root:"w-full lg:w-(--width)"},false:{root:"flex-1"}}}},X=["data-dragging"],Q=Object.assign({inheritAttrs:!1},{__name:"UDashboardPanel",props:{class:{type:null,required:!1},ui:{type:Object,required:!1},id:{type:String,required:!1},minSize:{type:Number,required:!1,default:15},maxSize:{type:Number,required:!1},defaultSize:{type:Number,required:!1},resizable:{type:Boolean,required:!1,default:!1}},setup(b){const r=D("dashboardPanel",b),s=C(),p=j({storageKey:"dashboard",unit:"%"}),o=`${p.storageKey}-panel-${r.id||A()}`,{el:y,size:u,isDragging:a,onMouseDown:l,onTouchStart:v,onDoubleClick:_}=K(o,U(()=>({...p,...r}))),$=N(()=>T({extend:W,...s.ui?.dashboardPanel||{}})({size:!!u.value}));return(d,G)=>(i(),k(x,null,[m("div",S({id:o,ref_key:"el",ref:y,"data-slot":"root"},d.$attrs,{"data-dragging":e(a),class:$.value.root({class:[e(r).ui?.root,e(r).class]}),style:[e(u)?{"--width":`${e(u)}${e(p).unit}`}:void 0]}),[t(d.$slots,"default",{},()=>[t(d.$slots,"header"),m("div",{"data-slot":"body",class:n($.value.body({class:e(r).ui?.body}))},[t(d.$slots,"body")],2),t(d.$slots,"footer")])],16,X),t(d.$slots,"resize-handle",{onMouseDown:e(l),onTouchStart:e(v),onDoubleClick:e(_)},()=>[e(r).resizable?(i(),h(E,{key:0,"aria-controls":o,"data-slot":"handle",class:n($.value.handle({class:e(r).ui?.handle})),onMousedown:e(l),onTouchstart:e(v),onDblclick:e(_)},null,8,["class","onMousedown","onTouchstart","onDblclick"])):f("",!0)])],64))}});export{Q as _,L as a};
1
+ import{a2 as P,a3 as D,a5 as C,b8 as B,o as i,c as k,j as w,g as z,V as t,a0 as c,a1 as g,k as e,f as h,W as S,v as f,i as m,q as n,p as O,m as R,t as V,X as M,F as x,h as N,a8 as T,aU as A,b9 as U}from"./C5TrTuWv.js";import{a as j,_ as F,b as K,c as E}from"./BCGljaM0.js";const I={slots:{root:"h-(--ui-header-height) shrink-0 flex items-center justify-between border-b border-default px-4 sm:px-6 gap-1.5",left:"flex items-center gap-1.5 min-w-0",icon:"shrink-0 size-5 self-center me-1.5",title:"flex items-center gap-1.5 font-semibold text-highlighted truncate",center:"hidden lg:flex",right:"flex items-center shrink-0 gap-1.5",toggle:""},variants:{toggleSide:{left:{toggle:""},right:{toggle:""}}}},L=Object.assign({inheritAttrs:!1},{__name:"UDashboardNavbar",props:{as:{type:null,required:!1},icon:{type:null,required:!1},title:{type:String,required:!1},toggle:{type:[Boolean,Object],required:!1,default:!0},toggleSide:{type:String,required:!1,default:"left"},class:{type:null,required:!1},ui:{type:Object,required:!1}},setup(b){const q=b,r=P(),s=D("dashboardNavbar",q),p=C(),o=j({}),[y,u]=B(),a=N(()=>T({extend:I,...p.ui?.dashboardNavbar||{}})());return(l,v)=>(i(),k(x,null,[w(e(y),null,{default:z(()=>[t(l.$slots,"toggle",c(g({...e(o),ui:a.value})),()=>[e(s).toggle?(i(),h(F,S({key:0},typeof e(s).toggle=="object"?e(s).toggle:{},{side:e(s).toggleSide,"data-slot":"toggle",class:a.value.toggle({class:e(s).ui?.toggle,toggleSide:e(s).toggleSide})}),null,16,["side","class"])):f("",!0)])]),_:3}),w(e(M),S({as:e(s).as,"data-slot":"root"},l.$attrs,{class:a.value.root({class:[e(s).ui?.root,e(s).class]})}),{default:z(()=>[m("div",{"data-slot":"left",class:n(a.value.left({class:e(s).ui?.left}))},[e(s).toggleSide==="left"?(i(),h(e(u),{key:0})):f("",!0),t(l.$slots,"left",c(g(e(o))),()=>[t(l.$slots,"leading",c(g({...e(o),ui:a.value})),()=>[e(s).icon?(i(),h(O,{key:0,name:e(s).icon,"data-slot":"icon",class:n(a.value.icon({class:e(s).ui?.icon}))},null,8,["name","class"])):f("",!0)]),m("h1",{"data-slot":"title",class:n(a.value.title({class:e(s).ui?.title}))},[t(l.$slots,"title",{},()=>[R(V(e(s).title),1)])],2),t(l.$slots,"trailing",c(g({...e(o),ui:a.value})))])],2),r.default?(i(),k("div",{key:0,"data-slot":"center",class:n(a.value.center({class:e(s).ui?.center}))},[t(l.$slots,"default",c(g(e(o))))],2)):f("",!0),m("div",{"data-slot":"right",class:n(a.value.right({class:e(s).ui?.right}))},[t(l.$slots,"right",c(g(e(o)))),e(s).toggleSide==="right"?(i(),h(e(u),{key:0})):f("",!0)],2)]),_:3},16,["as","class"])],64))}}),W={slots:{root:"relative flex flex-col min-w-0 min-h-svh lg:not-last:border-e lg:not-last:border-default shrink-0",body:"flex flex-col gap-4 sm:gap-6 flex-1 overflow-y-auto p-4 sm:p-6",handle:""},variants:{size:{true:{root:"w-full lg:w-(--width)"},false:{root:"flex-1"}}}},X=["data-dragging"],Q=Object.assign({inheritAttrs:!1},{__name:"UDashboardPanel",props:{class:{type:null,required:!1},ui:{type:Object,required:!1},id:{type:String,required:!1},minSize:{type:Number,required:!1,default:15},maxSize:{type:Number,required:!1},defaultSize:{type:Number,required:!1},resizable:{type:Boolean,required:!1,default:!1}},setup(b){const r=D("dashboardPanel",b),s=C(),p=j({storageKey:"dashboard",unit:"%"}),o=`${p.storageKey}-panel-${r.id||A()}`,{el:y,size:u,isDragging:a,onMouseDown:l,onTouchStart:v,onDoubleClick:_}=K(o,U(()=>({...p,...r}))),$=N(()=>T({extend:W,...s.ui?.dashboardPanel||{}})({size:!!u.value}));return(d,G)=>(i(),k(x,null,[m("div",S({id:o,ref_key:"el",ref:y,"data-slot":"root"},d.$attrs,{"data-dragging":e(a),class:$.value.root({class:[e(r).ui?.root,e(r).class]}),style:[e(u)?{"--width":`${e(u)}${e(p).unit}`}:void 0]}),[t(d.$slots,"default",{},()=>[t(d.$slots,"header"),m("div",{"data-slot":"body",class:n($.value.body({class:e(r).ui?.body}))},[t(d.$slots,"body")],2),t(d.$slots,"footer")])],16,X),t(d.$slots,"resize-handle",{onMouseDown:e(l),onTouchStart:e(v),onDoubleClick:e(_)},()=>[e(r).resizable?(i(),h(E,{key:0,"aria-controls":o,"data-slot":"handle",class:n($.value.handle({class:e(r).ui?.handle})),onMousedown:e(l),onTouchstart:e(v),onDblclick:e(_)},null,8,["class","onMousedown","onTouchstart","onDblclick"])):f("",!0)])],64))}});export{Q as _,L as a};
@@ -1 +1 @@
1
- import{d as C,b as S,o as r,f as k,g as s,i as y,R as I,c as g,F as j,y as U,H as p,j as o,E as F,v,m as h,I as w}from"./CNu3kken.js";import{_ as $}from"./CF_eDZHu.js";import{_ as A}from"./B0tmRAhY.js";import{_ as B}from"./CfhOanaF.js";import{_ as E}from"./Ce89VyHE.js";import{_ as H}from"./BM5BPKlc.js";import{E as L}from"./DeewM3Wg.js";const P={key:0,class:"flex flex-wrap gap-1 py-0.5"},N={key:1,class:"text-[var(--ui-text-muted)]"},O=C({__name:"TagsSelect",props:{modelValue:{},allTags:{}},emits:["update:modelValue","tagCreated"],setup(t,{emit:V}){const u=t,d=V,b=S();async function _(f){const n=f.trim();if(!n)return;const i=u.allTags.find(a=>a.text.toLowerCase()===n.toLowerCase());if(i){u.modelValue.some(a=>a.id===i.id)||d("update:modelValue",[...u.modelValue,i]);return}try{const a=await $fetch("/api/tags",{method:"POST",body:{text:n,color:L()}});d("tagCreated",a.tag),d("update:modelValue",[...u.modelValue,a.tag])}catch(a){const e=a&&typeof a=="object"&&"data"in a?a.data?.message:void 0;b.add({title:"Failed to create tag",description:e||"An error occurred",color:"error"})}}return(f,n)=>{const i=E,a=H;return r(),k(a,{"model-value":t.modelValue,items:t.allTags,multiple:"","create-item":"always","label-key":"text",by:"id",placeholder:"Select or create tags…",class:"w-full","onUpdate:modelValue":n[0]||(n[0]=e=>d("update:modelValue",e)),onCreate:_},{default:s(({modelValue:e})=>[e.length?(r(),g("div",P,[(r(!0),g(j,null,U(e,m=>(r(),k(i,{key:m.id,text:m.text,color:m.color},null,8,["text","color"]))),128))])):(r(),g("span",N,"Select or create tags…"))]),"item-leading":s(({item:e})=>[y("span",{class:"inline-block size-2 rounded-full shrink-0",style:I({backgroundColor:e.color})},null,4)]),_:1},8,["model-value","items"])}}}),D=Object.assign(O,{__name:"TagsSelect"}),q={class:"space-y-5"},z={class:"inline-flex items-center gap-1"},G={class:"inline-flex items-center gap-1"},R=C({__name:"ProjectFormFields",props:w({mode:{},allTags:{},hasToken:{type:Boolean,default:!1}},{name:{default:""},nameModifiers:{},label:{default:""},labelModifiers:{},description:{default:""},descriptionModifiers:{},diagnosisInstructions:{default:""},diagnosisInstructionsModifiers:{},scmToken:{default:""},scmTokenModifiers:{},tags:{default:()=>[]},tagsModifiers:{}}),emits:w(["tag-created"],["update:name","update:label","update:description","update:diagnosisInstructions","update:scmToken","update:tags"]),setup(t,{emit:V}){const u=V,d=p(t,"name"),b=p(t,"label"),_=p(t,"description"),f=p(t,"diagnosisInstructions"),n=p(t,"scmToken"),i=p(t,"tags");return(a,e)=>{const m=F,c=$,x=A,T=B,M=D;return r(),g("div",q,[t.mode==="create"?(r(),k(c,{key:0,label:"Project name",name:"name",required:"",description:"A unique identifier used to match test results from the reporter."},{default:s(()=>[o(m,{modelValue:d.value,"onUpdate:modelValue":e[0]||(e[0]=l=>d.value=l),placeholder:"e.g. my-app",class:"w-full"},null,8,["modelValue"])]),_:1})):v("",!0),o(c,{label:"Display label",name:"label",description:"A friendly name shown in the UI (defaults to project name if not set)."},{default:s(()=>[o(m,{modelValue:b.value,"onUpdate:modelValue":e[1]||(e[1]=l=>b.value=l),placeholder:"e.g. My Application",class:"w-full"},null,8,["modelValue"])]),_:1}),o(c,{label:"Description",name:"description",description:"Optional description of this project."},{default:s(()=>[o(x,{modelValue:_.value,"onUpdate:modelValue":e[2]||(e[2]=l=>_.value=l),placeholder:"Enter project description",rows:3,class:"w-full"},null,8,["modelValue"])]),_:1}),t.mode==="edit"?(r(),g(j,{key:1},[o(c,{name:"diagnosisInstructions",description:"Combined with the global instructions from Settings → AI."},{label:s(()=>[y("span",z,[e[7]||(e[7]=h(" AI diagnosis instructions ",-1)),o(T,{topic:"project.ai-instructions"})])]),default:s(()=>[o(x,{modelValue:f.value,"onUpdate:modelValue":e[3]||(e[3]=l=>f.value=l),placeholder:"e.g. This project tests the payment checkout flow. The backend uses Stripe for payments and the payment API is at /api/v2/payments. Database errors are usually caused by connection pool exhaustion under load.",rows:5,class:"w-full font-mono text-sm"},null,8,["modelValue"])]),_:1}),o(c,{name:"scmToken",description:t.hasToken?"Leave empty to keep the stored token, enter a new value to replace it, or save empty to remove it":"For GitHub, GitLab, or Bitbucket. Falls back to the global SCM token if not set."},{label:s(()=>[y("span",G,[e[8]||(e[8]=h("SCM token ",-1)),o(T,{topic:"project.scm-token"})])]),default:s(()=>[o(m,{modelValue:n.value,"onUpdate:modelValue":e[4]||(e[4]=l=>n.value=l),type:"password",placeholder:t.hasToken?"•••••••• (unchanged)":"ghp_..., glpat-..., or bitbucket token",class:"w-full font-mono"},null,8,["modelValue","placeholder"])]),_:1},8,["description"])],64)):v("",!0),o(c,{label:"Tags",name:"tags",description:"Select existing tags or type a new name and press Enter to create one."},{default:s(()=>[o(M,{modelValue:i.value,"onUpdate:modelValue":e[5]||(e[5]=l=>i.value=l),"all-tags":t.allTags,class:"w-full",onTagCreated:e[6]||(e[6]=l=>u("tag-created"))},null,8,["modelValue","all-tags"])]),_:1})])}}}),ee=Object.assign(R,{__name:"ProjectFormFields"});export{ee as _};
1
+ import{d as C,b as S,o as r,f as k,g as s,i as y,R as I,c as g,F as j,y as U,H as p,j as o,E as F,v,m as h,I as w}from"./C5TrTuWv.js";import{_ as $}from"./DH5H1DJh.js";import{_ as A}from"./BfA6lfg4.js";import{_ as B}from"./B69RP95P.js";import{_ as E}from"./CjBktNrC.js";import{_ as H}from"./DvEsAuE9.js";import{E as L}from"./DMtrFQqi.js";const P={key:0,class:"flex flex-wrap gap-1 py-0.5"},N={key:1,class:"text-[var(--ui-text-muted)]"},O=C({__name:"TagsSelect",props:{modelValue:{},allTags:{}},emits:["update:modelValue","tagCreated"],setup(t,{emit:V}){const u=t,d=V,b=S();async function _(f){const n=f.trim();if(!n)return;const i=u.allTags.find(a=>a.text.toLowerCase()===n.toLowerCase());if(i){u.modelValue.some(a=>a.id===i.id)||d("update:modelValue",[...u.modelValue,i]);return}try{const a=await $fetch("/api/tags",{method:"POST",body:{text:n,color:L()}});d("tagCreated",a.tag),d("update:modelValue",[...u.modelValue,a.tag])}catch(a){const e=a&&typeof a=="object"&&"data"in a?a.data?.message:void 0;b.add({title:"Failed to create tag",description:e||"An error occurred",color:"error"})}}return(f,n)=>{const i=E,a=H;return r(),k(a,{"model-value":t.modelValue,items:t.allTags,multiple:"","create-item":"always","label-key":"text",by:"id",placeholder:"Select or create tags…",class:"w-full","onUpdate:modelValue":n[0]||(n[0]=e=>d("update:modelValue",e)),onCreate:_},{default:s(({modelValue:e})=>[e.length?(r(),g("div",P,[(r(!0),g(j,null,U(e,m=>(r(),k(i,{key:m.id,text:m.text,color:m.color},null,8,["text","color"]))),128))])):(r(),g("span",N,"Select or create tags…"))]),"item-leading":s(({item:e})=>[y("span",{class:"inline-block size-2 rounded-full shrink-0",style:I({backgroundColor:e.color})},null,4)]),_:1},8,["model-value","items"])}}}),D=Object.assign(O,{__name:"TagsSelect"}),q={class:"space-y-5"},z={class:"inline-flex items-center gap-1"},G={class:"inline-flex items-center gap-1"},R=C({__name:"ProjectFormFields",props:w({mode:{},allTags:{},hasToken:{type:Boolean,default:!1}},{name:{default:""},nameModifiers:{},label:{default:""},labelModifiers:{},description:{default:""},descriptionModifiers:{},diagnosisInstructions:{default:""},diagnosisInstructionsModifiers:{},scmToken:{default:""},scmTokenModifiers:{},tags:{default:()=>[]},tagsModifiers:{}}),emits:w(["tag-created"],["update:name","update:label","update:description","update:diagnosisInstructions","update:scmToken","update:tags"]),setup(t,{emit:V}){const u=V,d=p(t,"name"),b=p(t,"label"),_=p(t,"description"),f=p(t,"diagnosisInstructions"),n=p(t,"scmToken"),i=p(t,"tags");return(a,e)=>{const m=F,c=$,x=A,T=B,M=D;return r(),g("div",q,[t.mode==="create"?(r(),k(c,{key:0,label:"Project name",name:"name",required:"",description:"A unique identifier used to match test results from the reporter."},{default:s(()=>[o(m,{modelValue:d.value,"onUpdate:modelValue":e[0]||(e[0]=l=>d.value=l),placeholder:"e.g. my-app",class:"w-full"},null,8,["modelValue"])]),_:1})):v("",!0),o(c,{label:"Display label",name:"label",description:"A friendly name shown in the UI (defaults to project name if not set)."},{default:s(()=>[o(m,{modelValue:b.value,"onUpdate:modelValue":e[1]||(e[1]=l=>b.value=l),placeholder:"e.g. My Application",class:"w-full"},null,8,["modelValue"])]),_:1}),o(c,{label:"Description",name:"description",description:"Optional description of this project."},{default:s(()=>[o(x,{modelValue:_.value,"onUpdate:modelValue":e[2]||(e[2]=l=>_.value=l),placeholder:"Enter project description",rows:3,class:"w-full"},null,8,["modelValue"])]),_:1}),t.mode==="edit"?(r(),g(j,{key:1},[o(c,{name:"diagnosisInstructions",description:"Combined with the global instructions from Settings → AI."},{label:s(()=>[y("span",z,[e[7]||(e[7]=h(" AI diagnosis instructions ",-1)),o(T,{topic:"project.ai-instructions"})])]),default:s(()=>[o(x,{modelValue:f.value,"onUpdate:modelValue":e[3]||(e[3]=l=>f.value=l),placeholder:"e.g. This project tests the payment checkout flow. The backend uses Stripe for payments and the payment API is at /api/v2/payments. Database errors are usually caused by connection pool exhaustion under load.",rows:5,class:"w-full font-mono text-sm"},null,8,["modelValue"])]),_:1}),o(c,{name:"scmToken",description:t.hasToken?"Leave empty to keep the stored token, enter a new value to replace it, or save empty to remove it":"For GitHub, GitLab, or Bitbucket. Falls back to the global SCM token if not set."},{label:s(()=>[y("span",G,[e[8]||(e[8]=h("SCM token ",-1)),o(T,{topic:"project.scm-token"})])]),default:s(()=>[o(m,{modelValue:n.value,"onUpdate:modelValue":e[4]||(e[4]=l=>n.value=l),type:"password",placeholder:t.hasToken?"•••••••• (unchanged)":"ghp_..., glpat-..., or bitbucket token",class:"w-full font-mono"},null,8,["modelValue","placeholder"])]),_:1},8,["description"])],64)):v("",!0),o(c,{label:"Tags",name:"tags",description:"Select existing tags or type a new name and press Enter to create one."},{default:s(()=>[o(M,{modelValue:i.value,"onUpdate:modelValue":e[5]||(e[5]=l=>i.value=l),"all-tags":t.allTags,class:"w-full",onTagCreated:e[6]||(e[6]=l=>u("tag-created"))},null,8,["modelValue","all-tags"])]),_:1})])}}}),ee=Object.assign(R,{__name:"ProjectFormFields"});export{ee as _};
@@ -1 +1 @@
1
- import{d as g,o as s,c as a,F as l,y as o,f,G as p,q as b,k as y,R as k,h as _}from"./CNu3kken.js";const h=g({__name:"MiniRunBars",props:{runs:{},height:{default:28},maxBars:{default:20}},setup(n){const i=n;function u(t){return["running","initialising","finalizing"].includes(t.status)?"bg-blue-400 dark:bg-blue-500":t.flakyTests>0&&t.status==="passed"?"bg-amber-400 dark:bg-amber-400":t.status==="passed"?"bg-green-500":["failed","timedout","interrupted"].includes(t.status)?"bg-red-500":"bg-gray-300 dark:bg-gray-600"}function c(t){const r=[`Run #${t.id}`,`Status: ${t.status}`,`${t.passedTests}/${t.totalTests} passed`];return t.flakyTests>0&&r.push(`${t.flakyTests} flaky`),r.join(" · ")}const d=_(()=>Math.max(0,i.maxBars-i.runs.length));return(t,r)=>{const m=p;return s(),a("div",{class:"flex items-stretch gap-px",style:k({height:`${n.height}px`})},[(s(!0),a(l,null,o(n.runs,e=>(s(),f(m,{key:e.id,to:`/test-runs/${e.id}`,title:c(e),class:b(["flex-1 rounded-sm transition-opacity hover:opacity-70 min-w-0",u(e)])},null,8,["to","title","class"]))),128)),(s(!0),a(l,null,o(y(d),e=>(s(),a("div",{key:`empty-${e}`,class:"flex-1 rounded-sm bg-gray-100 dark:bg-gray-800 min-w-0"}))),128))],4)}}}),$=Object.assign(h,{__name:"MiniRunBars"});export{$ as _};
1
+ import{d as g,o as s,c as a,F as l,y as o,f,G as p,q as b,k as y,R as k,h as _}from"./C5TrTuWv.js";const h=g({__name:"MiniRunBars",props:{runs:{},height:{default:28},maxBars:{default:20}},setup(n){const i=n;function u(t){return["running","initialising","finalizing"].includes(t.status)?"bg-blue-400 dark:bg-blue-500":t.flakyTests>0&&t.status==="passed"?"bg-amber-400 dark:bg-amber-400":t.status==="passed"?"bg-green-500":["failed","timedout","interrupted"].includes(t.status)?"bg-red-500":"bg-gray-300 dark:bg-gray-600"}function c(t){const r=[`Run #${t.id}`,`Status: ${t.status}`,`${t.passedTests}/${t.totalTests} passed`];return t.flakyTests>0&&r.push(`${t.flakyTests} flaky`),r.join(" · ")}const d=_(()=>Math.max(0,i.maxBars-i.runs.length));return(t,r)=>{const m=p;return s(),a("div",{class:"flex items-stretch gap-px",style:k({height:`${n.height}px`})},[(s(!0),a(l,null,o(n.runs,e=>(s(),f(m,{key:e.id,to:`/test-runs/${e.id}`,title:c(e),class:b(["flex-1 rounded-sm transition-opacity hover:opacity-70 min-w-0",u(e)])},null,8,["to","title","class"]))),128)),(s(!0),a(l,null,o(y(d),e=>(s(),a("div",{key:`empty-${e}`,class:"flex-1 rounded-sm bg-gray-100 dark:bg-gray-800 min-w-0"}))),128))],4)}}}),$=Object.assign(h,{__name:"MiniRunBars"});export{$ as _};
@@ -1,4 +1,4 @@
1
- import { ak as getFailureCluster, aA as getClusterDiagnosis, aG as getTestRunCase, aH as getTestRunCaseTraces, aI as getExecutionDiagnosis, aJ as classifyEvidenceFile, aK as contentTypeForPath } from '../nitro/nitro.mjs';
1
+ import { al as getFailureCluster, aB as getClusterDiagnosis, aH as getTestRunCase, aI as getTestRunCaseTraces, aJ as getExecutionDiagnosis, aK as classifyEvidenceFile, aL as contentTypeForPath } from '../nitro/nitro.mjs';
2
2
 
3
3
  function caseSlug(title, executionId) {
4
4
  const base = title.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "").slice(0, 60);
@@ -1,4 +1,4 @@
1
- import { b3 as markers, t as testRuns } from '../nitro/nitro.mjs';
1
+ import { b4 as markers, t as testRuns } from '../nitro/nitro.mjs';
2
2
  import { eq, asc, and, lt, desc } from 'drizzle-orm';
3
3
  import { D as DEFAULT_MARKER_CATEGORY, M as MARKER_CATEGORY_IDS } from './marker-categories.mjs';
4
4
 
@@ -1,5 +1,5 @@
1
1
  import { eq, and, isNull, asc, desc, inArray, gt, sql } from 'drizzle-orm';
2
- import { be as testCases, bo as quarantinedTests, t as testRuns, w as testRunsCases } from '../nitro/nitro.mjs';
2
+ import { bg as testCases, bq as quarantinedTests, t as testRuns, x as testRunsCases } from '../nitro/nitro.mjs';
3
3
 
4
4
  const RELEASE_AFTER_CONSECUTIVE_PASSES = 5;
5
5
  const STREAK_SCAN_LIMIT = 30;
@@ -1,4 +1,4 @@
1
- import { D as users, d3 as apiKeys } from '../nitro/nitro.mjs';
1
+ import { E as users, d5 as apiKeys } from '../nitro/nitro.mjs';
2
2
  import { eq, and } from 'drizzle-orm';
3
3
 
4
4
  async function listUsers(db) {
@@ -7,7 +7,7 @@ import { u as useForwardScopeId } from './useForwardScopeId-D0ameaSU.mjs';
7
7
  import { V as VisuallyHiddenInput_default } from './VisuallyHiddenInput-D4E5aJCQ.mjs';
8
8
  import { R as RovingFocusItem_default } from './RovingFocusItem-BOSx1Z9Z.mjs';
9
9
  import { L as Label_default } from './Label-DYDR1Oeh.mjs';
10
- import { dz as isEqual } from '../nitro/nitro.mjs';
10
+ import { dB as isEqual } from '../nitro/nitro.mjs';
11
11
 
12
12
  const [injectCheckboxGroupRootContext] = /* @__PURE__ */ createContext("CheckboxGroupRoot");
13
13
  function isIndeterminate(checked) {
@@ -2,7 +2,7 @@ import { m as _sfc_main$k } from './server.mjs';
2
2
  import { c as copyPreview } from './index-ByWTzqF6.mjs';
3
3
  import { defineComponent, ref, computed, mergeProps, unref, useSSRContext } from 'vue';
4
4
  import { ssrRenderAttrs, ssrInterpolate, ssrRenderComponent } from 'vue/server-renderer';
5
- import { dV as highlightCode } from '../nitro/nitro.mjs';
5
+ import { dX as highlightCode } from '../nitro/nitro.mjs';
6
6
  import { a as useCopy } from './fetch-tkz5_OA-.mjs';
7
7
 
8
8
  const _sfc_main = /* @__PURE__ */ defineComponent({
@@ -1,6 +1,6 @@
1
1
  import { ref, computed, isRef, unref, watch, mergeProps, withCtx, renderSlot, customRef, useSSRContext } from 'vue';
2
2
  import { B as createContext, C as useLocale, ab as useStorage, a as useComponentProps, D as useForwardProps, a2 as reactiveOmit, b as useAppConfig, t as tv, m as _sfc_main$k, P as Primitive, aa as useNuxtApp, O as useRequestEvent } from './server.mjs';
3
- import { dA as klona, aR as getRequestHeader, dz as isEqual, d9 as setCookie, dR as getCookie, dS as deleteCookie } from '../nitro/nitro.mjs';
3
+ import { dC as klona, aS as getRequestHeader, dB as isEqual, db as setCookie, dT as getCookie, dU as deleteCookie } from '../nitro/nitro.mjs';
4
4
  import { ssrRenderComponent, ssrRenderSlot } from 'vue/server-renderer';
5
5
 
6
6
  function endIndex(str, min, len) {
@@ -6,7 +6,7 @@ import { provide, ref, computed, watch, onScopeDispose, defineComponent, nextTic
6
6
  import { ssrRenderAttrs, ssrRenderComponent, ssrInterpolate, ssrRenderClass, ssrRenderList, ssrRenderAttr } from 'vue/server-renderer';
7
7
  import { f as formatRelativeTime } from './index-ByWTzqF6.mjs';
8
8
  import { _ as _sfc_main$3 } from './Alert-He-UxEt6.mjs';
9
- import { e1 as extractCitedSectionIds, ah as formatBytes } from '../nitro/nitro.mjs';
9
+ import { e3 as extractCitedSectionIds, ai as formatBytes } from '../nitro/nitro.mjs';
10
10
  import { u as useAiStatus } from './useAiStatus-UR8x-feE.mjs';
11
11
 
12
12
  const intervalError = "[nuxt] `setInterval` should not be used on the server. Consider wrapping it with an `onNuxtReady`, `onBeforeMount` or `onMounted` lifecycle hook, or ensure you only call it in the browser by checking `false`.";
@@ -4,7 +4,7 @@ import { ssrRenderAttrs, ssrRenderComponent, ssrRenderStyle, ssrRenderList, ssrI
4
4
  import { a as useCopy } from './fetch-tkz5_OA-.mjs';
5
5
  import { f as formatRelativeTime, e as errorMessage } from './index-ByWTzqF6.mjs';
6
6
  import { _ as __nuxt_component_2 } from './HelpHint-plioHKA0.mjs';
7
- import { dV as highlightCode, dZ as DIAGNOSIS_SECTION_SHORT, d_ as DIAGNOSIS_SECTIONS, d$ as isKnownSectionId, e0 as escapeHtml } from '../nitro/nitro.mjs';
7
+ import { dX as highlightCode, d$ as DIAGNOSIS_SECTION_SHORT, e0 as DIAGNOSIS_SECTIONS, e1 as isKnownSectionId, e2 as escapeHtml } from '../nitro/nitro.mjs';
8
8
  import { _ as _sfc_main$6 } from './Modal-hKLvVFNp.mjs';
9
9
  import { _ as _sfc_main$7 } from './Alert-He-UxEt6.mjs';
10
10
  import { _ as __nuxt_component_1$1 } from './OpenInIdeLink-Jp6SzEtD.mjs';
@@ -1,7 +1,7 @@
1
1
  import { w as _sfc_main$8, m as _sfc_main$k, _ as _sfc_main$d, o as _sfc_main$p, n as _sfc_main$7 } from './server.mjs';
2
2
  import { defineComponent, ref, computed, watch, mergeProps, unref, isRef, withCtx, createVNode, createTextVNode, withModifiers, openBlock, createBlock, createCommentVNode, toDisplayString, useSSRContext } from 'vue';
3
3
  import { ssrRenderAttrs, ssrRenderList, ssrRenderComponent, ssrInterpolate, ssrRenderAttr } from 'vue/server-renderer';
4
- import { e2 as detectProvider, e3 as getProviderIcon } from '../nitro/nitro.mjs';
4
+ import { e4 as detectProvider, e5 as getProviderIcon } from '../nitro/nitro.mjs';
5
5
  import { a as useCopy } from './fetch-tkz5_OA-.mjs';
6
6
 
7
7
  const _sfc_main$1 = /* @__PURE__ */ defineComponent({
@@ -407,6 +407,33 @@ const PIWI_ENV_VARS = {
407
407
  max: 500,
408
408
  since: "0.16.0"
409
409
  },
410
+ PIWI_AI_MAX_STEP_INTENTS: {
411
+ description: "Max AI-step intent mappings (natural-language prompt \u2192 compiled locator) included in a diagnosis (0 disables the section).",
412
+ category: "ai-limits",
413
+ type: "number",
414
+ default: "20",
415
+ min: 0,
416
+ max: 100,
417
+ since: "0.24.0"
418
+ },
419
+ PIWI_AI_STEP_MAX_SNAPSHOT_CHARS: {
420
+ description: "Max characters of the page ARIA snapshot the reporter sends per AI-step authoring iteration.",
421
+ category: "ai-steps",
422
+ type: "number",
423
+ default: "24000",
424
+ min: 0,
425
+ max: 1e5,
426
+ since: "0.24.0"
427
+ },
428
+ PIWI_AI_STEP_MAX_OUTPUT_TOKENS: {
429
+ description: "Max output tokens the model may return per AI-step authoring iteration. Reasoning models count hidden chain-of-thought against this, so raise it (up to 8192) when authoring with one.",
430
+ category: "ai-steps",
431
+ type: "number",
432
+ default: "1024",
433
+ min: 256,
434
+ max: 8192,
435
+ since: "0.24.0"
436
+ },
410
437
  PIWI_AI_MAX_IMAGES: {
411
438
  description: "Max screenshots auto-included in the diagnosis context.",
412
439
  category: "ai-limits",
@@ -2,7 +2,7 @@ import { useSlots, computed, toRef, unref, withCtx, mergeProps, createVNode, res
2
2
  import { ssrRenderComponent, ssrRenderSlot, ssrRenderClass, ssrInterpolate, ssrRenderVNode, ssrRenderList } from 'vue/server-renderer';
3
3
  import { a as useComponentProps, b as useAppConfig, D as useForwardProps, E as reactivePick, a1 as createReusableTemplate, t as tv, aF as isArrayOfArray, X as _sfc_main$n, aH as _sfc_main$o, o as _sfc_main$p, W as get, n as _sfc_main$7, q as _sfc_main$l, a3 as pickLinkProps, w as _sfc_main$8, a4 as _sfc_main$m, R as useId, z as useForwardExpose, ae as useCollection, P as Primitive, aj as refAutoReset, aL as VisuallyHidden_default, aA as useForwardPropsEmits, a2 as reactiveOmit, b0 as isClient, S as Presence_default, Q as useDirection, A as useVModel, a_ as useEventListener, T as useResizeObserver, B as createContext, a$ as useArrowNavigation, an as getActiveElement, aK as unrefElement, ax as DismissableLayer_default, F as useDebounceFn } from './server.mjs';
4
4
  import { i as isValueEqualOrExist } from './isValueEqualOrExist-D4lZ8uRY.mjs';
5
- import { dy as defu, dz as isEqual } from '../nitro/nitro.mjs';
5
+ import { dA as defu, dB as isEqual } from '../nitro/nitro.mjs';
6
6
  import { _ as _sfc_main$1 } from './Tooltip-BI3WQErw.mjs';
7
7
 
8
8
  const [injectCollapsibleRootContext, provideCollapsibleRootContext] = /* @__PURE__ */ createContext("CollapsibleRoot");
@@ -2,7 +2,7 @@ import { o as _sfc_main$p, w as _sfc_main$8, m as _sfc_main$k } from './server.m
2
2
  import { _ as _sfc_main$1 } from './Separator-lrN70ODV.mjs';
3
3
  import { defineComponent, computed, ref, mergeProps, unref, isRef, withCtx, createVNode, createTextVNode, openBlock, createBlock, createCommentVNode, useSSRContext } from 'vue';
4
4
  import { ssrRenderAttrs, ssrRenderAttr, ssrRenderClass, ssrRenderSlot, ssrInterpolate, ssrRenderComponent } from 'vue/server-renderer';
5
- import { cu as parseLocation } from '../nitro/nitro.mjs';
5
+ import { cw as parseLocation } from '../nitro/nitro.mjs';
6
6
  import { u as useOpenInIde } from './useOpenInIde-D74FmDNg.mjs';
7
7
  import { a as useCopy } from './fetch-tkz5_OA-.mjs';
8
8
 
@@ -2,7 +2,7 @@ import { m as _sfc_main$k, r as useRuntimeConfig } from './server.mjs';
2
2
  import { z as reportIcon, n as fileApiUrl } from './index-ByWTzqF6.mjs';
3
3
  import { defineComponent, mergeProps, unref, withCtx, createTextVNode, toDisplayString, useSSRContext } from 'vue';
4
4
  import { ssrRenderAttrs, ssrRenderList, ssrRenderComponent, ssrInterpolate } from 'vue/server-renderer';
5
- import { ah as formatBytes } from '../nitro/nitro.mjs';
5
+ import { ai as formatBytes } from '../nitro/nitro.mjs';
6
6
 
7
7
  const _sfc_main = /* @__PURE__ */ defineComponent({
8
8
  __name: "RunReports",
@@ -3,7 +3,7 @@ import { ssrRenderComponent, ssrRenderClass, ssrRenderSlot, ssrRenderList, ssrIn
3
3
  import { a as useComponentProps, b as useAppConfig, D as useForwardProps, E as reactivePick, aD as usePortal, Z as useFormField, aE as useFieldGroup, $ as useComponentIcons, t as tv, aF as isArrayOfArray, o as _sfc_main$p, X as _sfc_main$n, aI as FieldGroupReset, W as get, aH as _sfc_main$o, A as useVModel, aN as isNullish, ae as useCollection, Q as useDirection, aq as PopperRoot_default, a0 as looseToNumber, z as useForwardExpose, R as useId, af as useTypeahead, ar as PopperAnchor_default, P as Primitive, aJ as getDisplayValue, aB as Teleport_default, aA as useForwardPropsEmits, S as Presence_default, az as PopperArrow_default, B as createContext, aL as VisuallyHidden_default, at as useFocusGuards, as as useBodyScrollLock, au as useHideOthers, av as useForwardProps$1, aw as FocusScope_default, ax as DismissableLayer_default, aK as unrefElement, aM as injectConfigProviderContext, an as getActiveElement, aO as focusFirst$1, ay as PopperContent_default, T as useResizeObserver } from './server.mjs';
4
4
  import { u as useFormControl } from './useFormControl-8skMOTIf.mjs';
5
5
  import { h as handleAndDispatchCustomEvent } from './handleAndDispatchCustomEvent-Bk_AVSSo.mjs';
6
- import { dy as defu, dz as isEqual } from '../nitro/nitro.mjs';
6
+ import { dA as defu, dB as isEqual } from '../nitro/nitro.mjs';
7
7
 
8
8
  function clamp(value, min = Number.NEGATIVE_INFINITY, max = Number.POSITIVE_INFINITY) {
9
9
  return Math.min(max, Math.max(min, value));
@@ -5,7 +5,7 @@ import { u as useFormControl } from './useFormControl-8skMOTIf.mjs';
5
5
  import { V as VisuallyHiddenInput_default } from './VisuallyHiddenInput-D4E5aJCQ.mjs';
6
6
  import { h as handleAndDispatchCustomEvent } from './handleAndDispatchCustomEvent-Bk_AVSSo.mjs';
7
7
  import { useVirtualizer } from '@tanstack/vue-virtual';
8
- import { dy as defu, dz as isEqual } from '../nitro/nitro.mjs';
8
+ import { dA as defu, dB as isEqual } from '../nitro/nitro.mjs';
9
9
 
10
10
  function findValuesBetween(array, start, end) {
11
11
  const startIndex = array.findIndex((i) => isEqual(i, start));
@@ -1,7 +1,7 @@
1
1
  import { useSlots, computed, useModel, useTemplateRef, toRef, watch, unref, withCtx, mergeProps, createVNode, openBlock, createBlock, Fragment, renderList, renderSlot, createCommentVNode, createTextVNode, toDisplayString, mergeModels, useSSRContext } from 'vue';
2
2
  import { ssrRenderComponent, ssrRenderAttr, ssrRenderClass, ssrRenderStyle, ssrRenderList, ssrRenderSlot, ssrInterpolate } from 'vue/server-renderer';
3
3
  import { a as useComponentProps, C as useLocale, b as useAppConfig, aP as createRef, t as tv, a1 as createReusableTemplate, D as useForwardProps, E as reactivePick, P as Primitive } from './server.mjs';
4
- import { dW as upperFirst, dy as defu } from '../nitro/nitro.mjs';
4
+ import { dY as upperFirst, dA as defu } from '../nitro/nitro.mjs';
5
5
  import { useVueTable, getExpandedRowModel, getSortedRowModel, getFilteredRowModel, getCoreRowModel, FlexRender } from '@tanstack/vue-table';
6
6
  import { useVirtualizer } from '@tanstack/vue-virtual';
7
7
 
@@ -1,6 +1,6 @@
1
1
  import { useSlots, toRef, computed, unref, mergeProps, withCtx, renderSlot, openBlock, createBlock, toDisplayString, createCommentVNode, Fragment, renderList, createVNode, defineComponent, watch, ref, toHandlers, normalizeProps, guardReactiveProps, resolveDynamicComponent, withModifiers, createTextVNode, useSSRContext } from 'vue';
2
2
  import { ssrRenderComponent, ssrRenderSlot, ssrRenderClass, ssrInterpolate, ssrRenderList } from 'vue/server-renderer';
3
- import { dy as defu } from '../nitro/nitro.mjs';
3
+ import { dA as defu } from '../nitro/nitro.mjs';
4
4
  import { a as useComponentProps, b as useAppConfig, aQ as injectTooltipProviderContext, D as useForwardProps, E as reactivePick, aD as usePortal, t as tv, aI as FieldGroupReset, aT as _sfc_main$c, z as useForwardExpose, A as useVModel, aR as useTimeoutFn, aq as PopperRoot_default, R as useId, ar as PopperAnchor_default, P as Primitive, aB as Teleport_default, aA as useForwardPropsEmits, S as Presence_default, az as PopperArrow_default, B as createContext, ax as DismissableLayer_default, ay as PopperContent_default, aL as VisuallyHidden_default, av as useForwardProps$1, aS as useGraceArea } from './server.mjs';
5
5
 
6
6
  var TooltipArrow_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
@@ -2,7 +2,7 @@ import { _ as _sfc_main$1$1, a as _sfc_main$f } from './DashboardNavbar-D7-3zBUU
2
2
  import { _ as _sfc_main$1$2 } from './Breadcrumb-DEP2dVCZ.mjs';
3
3
  import { _ as __nuxt_component_3$2 } from './BreadcrumbNav-y6nMDYcR.mjs';
4
4
  import { u as useRoute, k as useRouter, l as useHead, r as useRuntimeConfig, m as _sfc_main$k, v as __nuxt_component_12, n as _sfc_main$7$1, o as _sfc_main$p, s as __nuxt_component_7, j as useToast } from './server.mjs';
5
- import { u as useCopyRich, n as __nuxt_component_24, a as __nuxt_component_19, b as __nuxt_component_20, c as __nuxt_component_21, _ as __nuxt_component_25, d as __nuxt_component_27, e as __nuxt_component_6, p as __nuxt_component_1$2, i as isImageFile, f as isVideoFile, q as __nuxt_component_3$2$1, r as __nuxt_component_4$2$1, l as __nuxt_component_3$4, m as __nuxt_component_4$4, g as __nuxt_component_1$1$1, h as __nuxt_component_2$2, j as __nuxt_component_3$1$1, k as __nuxt_component_4$1$1 } from './useCopyRich-CZxJ7IY_.mjs';
5
+ import { u as useCopyRich, n as __nuxt_component_24, a as __nuxt_component_19, b as __nuxt_component_20, c as __nuxt_component_21, _ as __nuxt_component_25, d as __nuxt_component_27, e as __nuxt_component_6, p as __nuxt_component_1$2, i as isImageFile, f as isVideoFile, q as __nuxt_component_3$2$1, r as __nuxt_component_4$2$1, l as __nuxt_component_3$4, m as __nuxt_component_4$4, g as __nuxt_component_1$1$1, h as __nuxt_component_2$2, j as __nuxt_component_3$1$1, k as __nuxt_component_4$1$1 } from './useCopyRich-BM9GTjJi.mjs';
6
6
  import { _ as __nuxt_component_14$2 } from './DesktopRunLocallyButton-iNzrDsEs.mjs';
7
7
  import { _ as __nuxt_component_4$3 } from './NavbarActions-_YjrSUat.mjs';
8
8
  import { _ as __nuxt_component_8, a as __nuxt_component_1$4, b as __nuxt_component_16$1, c as __nuxt_component_17$1 } from './MetaStripGroup-A0a72vt5.mjs';
@@ -22,7 +22,7 @@ import { ssrRenderComponent, ssrRenderAttr, ssrInterpolate, ssrRenderList, ssrRe
22
22
  import { _ as __nuxt_component_11 } from './SectionCard-DHAFvJxm.mjs';
23
23
  import { _ as _sfc_main$e } from './Tooltip-BI3WQErw.mjs';
24
24
  import { _ as _sfc_main$h } from './Textarea-DpmpM-lN.mjs';
25
- import { e4 as condenseErrorText, e5 as hasSlowMark, e1 as extractCitedSectionIds, ah as formatBytes } from '../nitro/nitro.mjs';
25
+ import { e6 as condenseErrorText, e7 as hasSlowMark, e3 as extractCitedSectionIds, ai as formatBytes } from '../nitro/nitro.mjs';
26
26
  import { u as useAiStatus } from './useAiStatus-UR8x-feE.mjs';
27
27
  import { _ as _sfc_main$g } from './Tabs-BDP7MWl4.mjs';
28
28
  import { _ as __nuxt_component_13 } from './LoadingState-CwpfmI0W.mjs';
@@ -4860,6 +4860,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
4860
4860
  const webVitals = computed(() => {
4861
4861
  return testCase.value?.webVitals ?? null;
4862
4862
  });
4863
+ const aiIntents = computed(() => {
4864
+ const usage = testCase.value?.aiUsage;
4865
+ return usage?.intents ?? null;
4866
+ });
4863
4867
  const networkRequests = computed(() => {
4864
4868
  return testCase.value?.networkRequests ?? [];
4865
4869
  });
@@ -5509,7 +5513,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
5509
5513
  _push3(ssrRenderComponent(_component_LocatorHealingPanel, {
5510
5514
  "storage-key": "case-locators",
5511
5515
  "run-id": unref(testCase).testRun.id,
5512
- "test-runs-case-id": Number(unref(testCaseId))
5516
+ "test-runs-case-id": Number(unref(testCaseId)),
5517
+ "ai-intents": unref(aiIntents)
5513
5518
  }, null, _parent3, _scopeId2));
5514
5519
  } else {
5515
5520
  _push3(`<!---->`);
@@ -5698,8 +5703,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
5698
5703
  key: 1,
5699
5704
  "storage-key": "case-locators",
5700
5705
  "run-id": unref(testCase).testRun.id,
5701
- "test-runs-case-id": Number(unref(testCaseId))
5702
- }, null, 8, ["run-id", "test-runs-case-id"])) : createCommentVNode("", true),
5706
+ "test-runs-case-id": Number(unref(testCaseId)),
5707
+ "ai-intents": unref(aiIntents)
5708
+ }, null, 8, ["run-id", "test-runs-case-id", "ai-intents"])) : createCommentVNode("", true),
5703
5709
  unref(testCase)?.testRun?.id ? (openBlock(), createBlock(_component_EnvironmentDiffCard, {
5704
5710
  key: 2,
5705
5711
  ref_key: "envDiffCard",
@@ -7540,8 +7546,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
7540
7546
  key: 1,
7541
7547
  "storage-key": "case-locators",
7542
7548
  "run-id": unref(testCase).testRun.id,
7543
- "test-runs-case-id": Number(unref(testCaseId))
7544
- }, null, 8, ["run-id", "test-runs-case-id"])) : createCommentVNode("", true),
7549
+ "test-runs-case-id": Number(unref(testCaseId)),
7550
+ "ai-intents": unref(aiIntents)
7551
+ }, null, 8, ["run-id", "test-runs-case-id", "ai-intents"])) : createCommentVNode("", true),
7545
7552
  unref(testCase)?.testRun?.id ? (openBlock(), createBlock(_component_EnvironmentDiffCard, {
7546
7553
  key: 2,
7547
7554
  ref_key: "envDiffCard",
@@ -8116,4 +8123,4 @@ _sfc_main.setup = (props, ctx) => {
8116
8123
  };
8117
8124
 
8118
8125
  export { _sfc_main as default };
8119
- //# sourceMappingURL=_id_-D7UtAIPR.mjs.map
8126
+ //# sourceMappingURL=_id_-26komi8G.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"_id_-D7UtAIPR.mjs","sources":["../../../../node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/_id_-D7UtAIPR.js"],"names":["__nuxt_component_1","__nuxt_component_3$1","_sfc_main$d","_sfc_main$e","__nuxt_component_2","__nuxt_component_1$2","__nuxt_component_2$1","_sfc_main$f","__nuxt_component_2$2","__nuxt_component_19","_sfc_main$g","_sfc_main$h","__nuxt_component_3$2","_sfc_main$i","__nuxt_component_6","__nuxt_component_8","_sfc_main$j","__nuxt_component_3$3","__nuxt_component_4$1","__nuxt_component_1$4","__nuxt_component_2$3","__nuxt_component_3$4","__nuxt_component_4$2","__nuxt_component_4$3","_sfc_main$k","__nuxt_component_1$5","__nuxt_component_3$5","__nuxt_component_4$4","_sfc_main$l","_sfc_main$n","_sfc_main$o","__nuxt_component_3$7","__nuxt_component_6$1","__nuxt_component_4$6","__nuxt_component_8$1","__nuxt_component_19$1","__nuxt_component_3$6","_sfc_main$m","__nuxt_component_4$5"],"mappings":"","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"_id_-26komi8G.mjs","sources":["../../../../node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/_id_-26komi8G.js"],"names":["__nuxt_component_1","__nuxt_component_3$1","_sfc_main$d","_sfc_main$e","__nuxt_component_2","__nuxt_component_1$2","__nuxt_component_2$1","_sfc_main$f","__nuxt_component_2$2","__nuxt_component_19","_sfc_main$g","_sfc_main$h","__nuxt_component_3$2","_sfc_main$i","__nuxt_component_6","__nuxt_component_8","_sfc_main$j","__nuxt_component_3$3","__nuxt_component_4$1","__nuxt_component_1$4","__nuxt_component_2$3","__nuxt_component_3$4","__nuxt_component_4$2","__nuxt_component_4$3","_sfc_main$k","__nuxt_component_1$5","__nuxt_component_3$5","__nuxt_component_4$4","_sfc_main$l","_sfc_main$n","_sfc_main$o","__nuxt_component_3$7","__nuxt_component_6$1","__nuxt_component_4$6","__nuxt_component_8$1","__nuxt_component_19$1","__nuxt_component_3$6","_sfc_main$m","__nuxt_component_4$5"],"mappings":"","x_google_ignoreList":[0]}
@@ -1,7 +1,7 @@
1
1
  import { _ as _sfc_main$1$1, a as _sfc_main$b } from './DashboardNavbar-D7-3zBUU.mjs';
2
2
  import { _ as _sfc_main$1$2 } from './Breadcrumb-DEP2dVCZ.mjs';
3
3
  import { _ as __nuxt_component_3 } from './BreadcrumbNav-y6nMDYcR.mjs';
4
- import { u as useCopyRich, s as stripAnsi, _ as __nuxt_component_25, a as __nuxt_component_19, b as __nuxt_component_20$1, c as __nuxt_component_21, d as __nuxt_component_27, e as __nuxt_component_6$1, i as isImageFile, f as isVideoFile, g as __nuxt_component_1$1$1, h as __nuxt_component_2$1, j as __nuxt_component_3$1, k as __nuxt_component_4$1, l as __nuxt_component_3$2, m as __nuxt_component_4, n as __nuxt_component_24, o as __nuxt_component_1$2 } from './useCopyRich-CZxJ7IY_.mjs';
4
+ import { u as useCopyRich, s as stripAnsi, _ as __nuxt_component_25, a as __nuxt_component_19, b as __nuxt_component_20$1, c as __nuxt_component_21, d as __nuxt_component_27, e as __nuxt_component_6$1, i as isImageFile, f as isVideoFile, g as __nuxt_component_1$1$1, h as __nuxt_component_2$1, j as __nuxt_component_3$1, k as __nuxt_component_4$1, l as __nuxt_component_3$2, m as __nuxt_component_4, n as __nuxt_component_24, o as __nuxt_component_1$2 } from './useCopyRich-BM9GTjJi.mjs';
5
5
  import { _ as _sfc_main$a } from './Tooltip-BI3WQErw.mjs';
6
6
  import { u as useRoute, l as useHead, n as _sfc_main$7$1, m as _sfc_main$k, o as _sfc_main$p, v as __nuxt_component_12, j as useToast, w as _sfc_main$8$1, _ as _sfc_main$d$1 } from './server.mjs';
7
7
  import { c as clusterSectionLocatorKey, _ as __nuxt_component_0$1, a as __nuxt_component_26 } from './DiagnosisResult-xVgZlfKK.mjs';
@@ -4141,4 +4141,4 @@ _sfc_main.setup = (props, ctx) => {
4141
4141
  };
4142
4142
 
4143
4143
  export { _sfc_main as default };
4144
- //# sourceMappingURL=_id_-CrGTZymJ.mjs.map
4144
+ //# sourceMappingURL=_id_-w7YCSiiy.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"_id_-CrGTZymJ.mjs","sources":["../../../../node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/_id_-CrGTZymJ.js"],"names":["__nuxt_component_0","_sfc_main$a","_sfc_main$b","_sfc_main$c","_sfc_main$d","__nuxt_component_4","__nuxt_component_1$2","__nuxt_component_3","_sfc_main$e","__nuxt_component_3$1","__nuxt_component_4$1","_sfc_main$f","_sfc_main$g","_sfc_main$h","__nuxt_component_1$3","_sfc_main$i","_sfc_main$j","_sfc_main$k","_sfc_main$l","_sfc_main$m","__nuxt_component_3$2","__nuxt_component_0$1"],"mappings":"","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"_id_-w7YCSiiy.mjs","sources":["../../../../node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/_id_-w7YCSiiy.js"],"names":["__nuxt_component_0","_sfc_main$a","_sfc_main$b","_sfc_main$c","_sfc_main$d","__nuxt_component_4","__nuxt_component_1$2","__nuxt_component_3","_sfc_main$e","__nuxt_component_3$1","__nuxt_component_4$1","_sfc_main$f","_sfc_main$g","_sfc_main$h","__nuxt_component_1$3","_sfc_main$i","_sfc_main$j","_sfc_main$k","_sfc_main$l","_sfc_main$m","__nuxt_component_3$2","__nuxt_component_0$1"],"mappings":"","x_google_ignoreList":[0]}
@@ -14,7 +14,7 @@ import { _ as __nuxt_component_5 } from './MarkerBadge-Biz5--h2.mjs';
14
14
  import { _ as __nuxt_component_14$2 } from './DesktopRunLocallyButton-iNzrDsEs.mjs';
15
15
  import { _ as __nuxt_component_1$2 } from './StatTileGrid-7zOFUQ6j.mjs';
16
16
  import { p as prettyDateFormat, v as getStatusColor, f as formatRelativeTime, c as copyPreview, j as clusterStatusColor, i as clusterErrorTypeColor, z as reportIcon, n as fileApiUrl, w as createSortHeader, d as formatDuration, F as getStatusTextClass, E as getStatusIcon, a as formatStatusLabel, D as isStatusInFlight, C as isPiwiAnnotation } from './index-ByWTzqF6.mjs';
17
- import { ah as formatBytes, b$ as DEFAULT_WASTED_WAIT_PATTERNS, e6 as isWastedWait } from '../nitro/nitro.mjs';
17
+ import { ai as formatBytes, c1 as DEFAULT_WASTED_WAIT_PATTERNS, e8 as isWastedWait } from '../nitro/nitro.mjs';
18
18
  import { defineComponent, withAsyncContext, ref, computed, watch, withCtx, isRef, unref, createVNode, createTextVNode, openBlock, createBlock, createCommentVNode, toDisplayString, nextTick, mergeProps, Fragment, renderList, useModel, mergeModels, withDirectives, vModelText, useSSRContext } from 'vue';
19
19
  import { ssrRenderComponent, ssrInterpolate, ssrRenderAttrs, ssrRenderClass, ssrRenderList, ssrRenderStyle, ssrRenderAttr, ssrRenderTeleport, ssrIncludeBooleanAttr } from 'vue/server-renderer';
20
20
  import { _ as __nuxt_component_19 } from './EntityLinks-Dzn73fbq.mjs';
@@ -13,7 +13,7 @@ import { h as helpEnvVars } from './help-content-C876a9WD.mjs';
13
13
  import { _ as __nuxt_component_14 } from './DurationValue-UX9uajQJ.mjs';
14
14
  import { u as useFetch } from './fetch-tkz5_OA-.mjs';
15
15
  import { _ as _sfc_main$7 } from './Textarea-DpmpM-lN.mjs';
16
- import { bK as CONTEXT_LIMIT_FIELDS } from '../nitro/nitro.mjs';
16
+ import { bM as CONTEXT_LIMIT_FIELDS } from '../nitro/nitro.mjs';
17
17
  import { p as pageEnvVars, g as getSettingsPage } from './settings-metadata-DnAK4Rzg.mjs';
18
18
  import './Alert-He-UxEt6.mjs';
19
19
  import './Card--Ike7sYc.mjs';