@piwitests/server 0.20.0 → 0.22.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.output/nitro.json +1 -1
- package/.output/public/_nuxt/2VtBYkNh.js +1 -0
- package/.output/public/_nuxt/{BmUfSNMV.js → 3xlGO1qT.js} +1 -1
- package/.output/public/_nuxt/{DeY2JkR2.js → 4yvOL9PC.js} +1 -1
- package/.output/public/_nuxt/6-ivqM_I.js +17 -0
- package/.output/public/_nuxt/{BrQEE053.js → 9N6hSApy.js} +1 -1
- package/.output/public/_nuxt/{hC_z4G8p.js → 9P8iHISX.js} +1 -1
- package/.output/public/_nuxt/B-6GGrhr.js +1 -0
- package/.output/public/_nuxt/B09ddw9C.js +1 -0
- package/.output/public/_nuxt/{Dpd16JVI.js → B0hK-xDF.js} +1 -1
- package/.output/public/_nuxt/{BdfhYr-u.js → B2a-Phk3.js} +1 -1
- package/.output/public/_nuxt/{B99fbi73.js → B6s20NbT.js} +1 -1
- package/.output/public/_nuxt/B9FSuKdA.js +1 -0
- package/.output/public/_nuxt/B9kt7ySS.js +5 -0
- package/.output/public/_nuxt/BDQCwxpX.js +1 -0
- package/.output/public/_nuxt/{oAClCn_h.js → BFcdtAzg.js} +1 -1
- package/.output/public/_nuxt/{CeG9pBAD.js → BH-ym1CI.js} +1 -1
- package/.output/public/_nuxt/{AbmKWFQQ.js → BKJetfRH.js} +1 -1
- package/.output/public/_nuxt/BNAHBHbY.js +1 -0
- package/.output/public/_nuxt/BQOWm9mQ.js +1 -0
- package/.output/public/_nuxt/{DJxlKFGb.js → BQzG26t0.js} +1 -1
- package/.output/public/_nuxt/{DabzhQB1.js → BTvE9qca.js} +1 -1
- package/.output/public/_nuxt/{C2hkrSey.js → BUMoU50-.js} +1 -1
- package/.output/public/_nuxt/{C1gTN4Q8.js → BVN50jIb.js} +1 -1
- package/.output/public/_nuxt/BYB8NVJZ.js +1 -0
- package/.output/public/_nuxt/{BicAJ6U8.js → BZnfiR67.js} +1 -1
- package/.output/public/_nuxt/{5A6ITZXj.js → B_mN5eMV.js} +1 -1
- package/.output/public/_nuxt/BaDhDBCV.js +1 -0
- package/.output/public/_nuxt/Bb7Uckln.js +5 -0
- package/.output/public/_nuxt/Be4c943G.js +2 -0
- package/.output/public/_nuxt/{CsLojMwR.js → BfS8BZTO.js} +1 -1
- package/.output/public/_nuxt/{KyA_4Ks-.js → BhH0TNTi.js} +1 -1
- package/.output/public/_nuxt/BjU3HZuS.js +1 -0
- package/.output/public/_nuxt/{DrfE8IY0.js → BlRWlfdD.js} +1 -1
- package/.output/public/_nuxt/BmJUhCIO.js +6 -0
- package/.output/public/_nuxt/BpUXqOVj.js +2 -0
- package/.output/public/_nuxt/BqCiYSVY.js +1 -0
- package/.output/public/_nuxt/Bt4FLbe0.js +1 -0
- package/.output/public/_nuxt/{Bm62iDV5.js → BtSJxOdh.js} +1 -1
- package/.output/public/_nuxt/{Und3xXFc.js → BtaTvcz6.js} +2 -2
- package/.output/public/_nuxt/{hNh4CIL0.js → By5qkOq8.js} +1 -1
- package/.output/public/_nuxt/{Bnxf8nbZ.js → C0v6l4pr.js} +1 -1
- package/.output/public/_nuxt/{CXEH9OPk.js → C9p0YCAi.js} +1 -1
- package/.output/public/_nuxt/{Dyeqn3aG.js → CAZpjzvB.js} +1 -1
- package/.output/public/_nuxt/{CjPfj7ya.js → CBZD8ym8.js} +1 -1
- package/.output/public/_nuxt/CCP6Tyle.js +1 -0
- package/.output/public/_nuxt/{DuwtTfO8.js → CD3R-ggS.js} +2 -2
- package/.output/public/_nuxt/{CxyAzHr3.js → CDh_Qt7h.js} +1 -1
- package/.output/public/_nuxt/CI_q0F1O.js +9 -0
- package/.output/public/_nuxt/CJEp4i0N.js +1 -0
- package/.output/public/_nuxt/{l5WKbU4h.js → CMhK1PvI.js} +3 -3
- package/.output/public/_nuxt/{H94BMf3L.js → CNcu4khZ.js} +1 -1
- package/.output/public/_nuxt/COP3KBCA.js +9 -0
- package/.output/public/_nuxt/{BT3wGCTI.js → CRPt9SfB.js} +1 -1
- package/.output/public/_nuxt/{DsesNydr.js → CScusXhF.js} +1 -1
- package/.output/public/_nuxt/{-f7BAm1H.js → CWoSSKhQ.js} +1 -1
- package/.output/public/_nuxt/{CAvY22RE.js → CWw9WGlv.js} +1 -1
- package/.output/public/_nuxt/{DdwHkKfV.js → CZ9ThISn.js} +1 -1
- package/.output/public/_nuxt/Cd8r0xk5.js +1 -0
- package/.output/public/_nuxt/Cf52zHyB.js +1 -0
- package/.output/public/_nuxt/{GPNI1ffD.js → CkKCKAYp.js} +2 -2
- package/.output/public/_nuxt/CkyMZI-0.js +1 -0
- package/.output/public/_nuxt/CoPntblj.js +1 -0
- package/.output/public/_nuxt/CobveFaj.js +1 -0
- package/.output/public/_nuxt/Cot8fIp5.js +2 -0
- package/.output/public/_nuxt/{D5tke0B5.js → CrOA9onF.js} +1 -1
- package/.output/public/_nuxt/{FaFoMVKo.js → Cwwe5bRS.js} +1 -1
- package/.output/public/_nuxt/D0ROfwV0.js +1 -0
- package/.output/public/_nuxt/{L3kAWB2a.js → D4UlSVir.js} +1 -1
- package/.output/public/_nuxt/D4oheDIm.js +4 -0
- package/.output/public/_nuxt/{CAAwCT7H.js → D6Mo5HeX.js} +1 -1
- package/.output/public/_nuxt/{Cnsmicv2.js → DBhdObsO.js} +34 -34
- package/.output/public/_nuxt/{A1pj0VnG.js → DDN2tt0a.js} +1 -1
- package/.output/public/_nuxt/DGnQ69wW.js +64 -0
- package/.output/public/_nuxt/{Cus22Ud3.js → DGyGmFem.js} +2 -2
- package/.output/public/_nuxt/{CzAPFPpL.js → DHUT-BKj.js} +1 -1
- package/.output/public/_nuxt/DK7xciFW.js +7 -0
- package/.output/public/_nuxt/{C0_yH0N7.js → DLNNAYfu.js} +1 -1
- package/.output/public/_nuxt/DLn-VPtK.js +34 -0
- package/.output/public/_nuxt/{CA9B2HE5.js → DOBSrxzY.js} +1 -1
- package/.output/public/_nuxt/{Dy-TJ0Mt.js → DOLeth7M.js} +1 -1
- package/.output/public/_nuxt/{CNyV9YpI.js → DQnsFoJn.js} +1 -1
- package/.output/public/_nuxt/DS2ANCQh.js +1 -0
- package/.output/public/_nuxt/{bLcjFslv.js → DSvBQHzW.js} +1 -1
- package/.output/public/_nuxt/{BzRRzmwm.js → DWEkQ7bl.js} +1 -1
- package/.output/public/_nuxt/DWwiVTZX.js +24 -0
- package/.output/public/_nuxt/DXXnDejN.js +1 -0
- package/.output/public/_nuxt/{B3obW6cw.js → Dj-TetcW.js} +2 -2
- package/.output/public/_nuxt/DpalT0nH.js +1 -0
- package/.output/public/_nuxt/{Bow4tTR0.js → DsX5CCb5.js} +1 -1
- package/.output/public/_nuxt/DslnXfcH.js +1 -0
- package/.output/public/_nuxt/DtSn2Q9-.js +1 -0
- package/.output/public/_nuxt/DwyFnMoY.js +44 -0
- package/.output/public/_nuxt/{CJFtzlQ4.js → DzM9oeLa.js} +1 -1
- package/.output/public/_nuxt/{BKkF4pPD.js → Gik813Ek.js} +1 -1
- package/.output/public/_nuxt/{pQqGiNch.js → Hot1UcKY.js} +1 -1
- package/.output/public/_nuxt/{DPCxhHri.js → HwFFbACq.js} +1 -1
- package/.output/public/_nuxt/{DJmoLeVt.js → PdEEuEsg.js} +1 -1
- package/.output/public/_nuxt/SBmMTKQb.js +1 -0
- package/.output/public/_nuxt/{C8e1EbJI.js → Sgis3xif.js} +1 -1
- package/.output/public/_nuxt/{CTU1mrhq.js → _VzR8bwc.js} +1 -1
- package/.output/public/_nuxt/{CeW8v31b.js → b_yFgp5S.js} +1 -1
- package/.output/public/_nuxt/builds/latest.json +1 -1
- package/.output/public/_nuxt/builds/meta/5f1ebc7c-d690-4f02-847f-a3249653f75f.json +1 -0
- package/.output/public/_nuxt/{b-GYfcrQ.js → cSeAgciy.js} +1 -1
- package/.output/public/_nuxt/{CwGWJbiy.js → czXrP7NB.js} +1 -1
- package/.output/public/_nuxt/entry.BAvBQY-h.css +1 -0
- package/.output/public/_nuxt/{Du2W7Jne.js → h49q_GXF.js} +42 -42
- package/.output/public/_nuxt/hzsG6cAc.js +1 -0
- package/.output/public/_nuxt/iubpj2qv.js +1 -0
- package/.output/public/_nuxt/jjOqY9Tv.js +1 -0
- package/.output/public/_nuxt/kfFeu9tK.js +1 -0
- package/.output/public/_nuxt/nANaAHCd.js +5 -0
- package/.output/public/_nuxt/{CIrFl3MW.js → t-juTK3X.js} +1 -1
- package/.output/public/_nuxt/{4gYNA-d4.js → x8YSyy4c.js} +1 -1
- package/.output/public/_nuxt/{DfgOx_ou.js → x8w_1_rn.js} +1 -1
- package/.output/public/_nuxt/xbO0VmDX.js +1 -0
- package/.output/server/chunks/_/collect.mjs +1 -1
- package/.output/server/chunks/_/error-500.mjs.map +1 -1
- package/.output/server/chunks/_/markers.mjs +1 -1
- package/.output/server/chunks/_/quarantine.mjs +1 -1
- package/.output/server/chunks/_/scope.mjs +43 -27
- package/.output/server/chunks/_/scope.mjs.map +1 -1
- package/.output/server/chunks/_/users.mjs +1 -1
- package/.output/server/chunks/build/{Alert-C4xq8lao.mjs → Alert-DAb8nKVs.mjs} +2 -2
- package/.output/server/chunks/build/Alert-DAb8nKVs.mjs.map +1 -0
- package/.output/server/chunks/build/{Breadcrumb-Ak2Lg3oM.mjs → Breadcrumb-DJp5WvUM.mjs} +5 -5
- package/.output/server/chunks/build/Breadcrumb-DJp5WvUM.mjs.map +1 -0
- package/.output/server/chunks/build/{BreadcrumbNav-DO7I_z-n.mjs → BreadcrumbNav-BrQwfL8G.mjs} +2 -2
- package/.output/server/chunks/build/BreadcrumbNav-BrQwfL8G.mjs.map +1 -0
- package/.output/server/chunks/build/{BrowserBadge-MFvBwxmD.mjs → BrowserBadge-Djw_e_I9.mjs} +3 -3
- package/.output/server/chunks/build/BrowserBadge-Djw_e_I9.mjs.map +1 -0
- package/.output/server/chunks/build/{Card-BQP_oZkQ.mjs → Card--Ike7sYc.mjs} +2 -2
- package/.output/server/chunks/build/Card--Ike7sYc.mjs.map +1 -0
- package/.output/server/chunks/build/{ChartCard-Y1UKwMsf.mjs → ChartCard-B2gd_8HP.mjs} +2 -2
- package/.output/server/chunks/build/ChartCard-B2gd_8HP.mjs.map +1 -0
- package/.output/server/chunks/build/{ChartMarkerTooltip-0DcMfD_6.mjs → ChartMarkerTooltip-u_1DUHh-.mjs} +2 -2
- package/.output/server/chunks/build/ChartMarkerTooltip-u_1DUHh-.mjs.map +1 -0
- package/.output/server/chunks/build/{Checkbox-4Q5d0fa0.mjs → Checkbox-C1khEdTh.mjs} +4 -4
- package/.output/server/chunks/build/Checkbox-C1khEdTh.mjs.map +1 -0
- package/.output/server/chunks/build/{CodeBlock-BgE-NSmE.mjs → CodeBlock-CjnDrO3Y.mjs} +4 -4
- package/.output/server/chunks/build/CodeBlock-CjnDrO3Y.mjs.map +1 -0
- package/.output/server/chunks/build/{DashboardNavbar-BHmMSPX7.mjs → DashboardNavbar-DYtmVlhy.mjs} +5 -5
- package/.output/server/chunks/build/DashboardNavbar-DYtmVlhy.mjs.map +1 -0
- package/.output/server/chunks/build/{DashboardSidebarToggle-DCTnHiIv.mjs → DashboardSidebarToggle-BPNxODwj.mjs} +5 -5
- package/.output/server/chunks/build/DashboardSidebarToggle-BPNxODwj.mjs.map +1 -0
- package/.output/server/chunks/build/{DataLocationCard-B_YHdzSz.mjs → DataLocationCard-2B-sVSMr.mjs} +5 -5
- package/.output/server/chunks/build/DataLocationCard-2B-sVSMr.mjs.map +1 -0
- package/.output/server/chunks/build/{DiagnosisPanel-CALyEmcJ.mjs → DiagnosisPanel-D6QO30FQ.mjs} +9 -8
- package/.output/server/chunks/build/DiagnosisPanel-D6QO30FQ.mjs.map +1 -0
- package/.output/server/chunks/build/{useAiStatus-CxjMmDDY.mjs → DiagnosisResult-ujB5Lt2A.mjs} +12 -34
- package/.output/server/chunks/build/DiagnosisResult-ujB5Lt2A.mjs.map +1 -0
- package/.output/server/chunks/build/{DurationValue-D20oGbnc.mjs → DurationValue-UX9uajQJ.mjs} +2 -2
- package/.output/server/chunks/build/DurationValue-UX9uajQJ.mjs.map +1 -0
- package/.output/server/chunks/build/{EntityLinks-BBHWssHH.mjs → EntityLinks-F8_kC-IH.mjs} +6 -6
- package/.output/server/chunks/build/EntityLinks-F8_kC-IH.mjs.map +1 -0
- package/.output/server/chunks/build/{EnvManagedBadge-UwD2b9v2.mjs → EnvManagedBadge-D6e-10M9.mjs} +3 -3
- package/.output/server/chunks/build/EnvManagedBadge-D6e-10M9.mjs.map +1 -0
- package/.output/server/chunks/build/FeatureUnavailable-BMw4euTk.mjs +83 -0
- package/.output/server/chunks/build/FeatureUnavailable-BMw4euTk.mjs.map +1 -0
- package/.output/server/chunks/build/{FormField-B0HKsdMd.mjs → FormField-QptK0rPg.mjs} +3 -3
- package/.output/server/chunks/build/FormField-QptK0rPg.mjs.map +1 -0
- package/.output/server/chunks/build/GetStartedWizard-DxT8T14Y.mjs +510 -0
- package/.output/server/chunks/build/GetStartedWizard-DxT8T14Y.mjs.map +1 -0
- package/.output/server/chunks/build/{HelpHint-DrcIv-Oj.mjs → HelpHint-C5Ru8BCc.mjs} +3 -3
- package/.output/server/chunks/build/HelpHint-C5Ru8BCc.mjs.map +1 -0
- package/.output/server/chunks/build/{LoadingState-C3pBSuOO.mjs → LoadingState-CwpfmI0W.mjs} +3 -3
- package/.output/server/chunks/build/LoadingState-CwpfmI0W.mjs.map +1 -0
- package/.output/server/chunks/build/{MarkerBadge-D7meXy4u.mjs → MarkerBadge-Biz5--h2.mjs} +1 -1
- package/.output/server/chunks/build/MarkerBadge-Biz5--h2.mjs.map +1 -0
- package/.output/server/chunks/build/{CiEnvCard-DB5DvBh1.mjs → MetaStripGroup-BBByVvpR.mjs} +242 -529
- package/.output/server/chunks/build/MetaStripGroup-BBByVvpR.mjs.map +1 -0
- package/.output/server/chunks/build/{MiniRunBars-CZMugDrh.mjs → MiniRunBars-fgLMgRUp.mjs} +2 -2
- package/.output/server/chunks/build/MiniRunBars-fgLMgRUp.mjs.map +1 -0
- package/.output/server/chunks/build/{Modal-pSDlXzT3.mjs → Modal-BacZmQCX.mjs} +3 -3
- package/.output/server/chunks/build/Modal-BacZmQCX.mjs.map +1 -0
- package/.output/server/chunks/build/{useSettingsNav-DnQKacz8.mjs → NavigationMenu-sTiKSWDm.mjs} +7 -30
- package/.output/server/chunks/build/NavigationMenu-sTiKSWDm.mjs.map +1 -0
- package/.output/server/chunks/build/{OpenInIdeLink-CQWKKChd.mjs → OpenInIdeLink-Crc8y0Yx.mjs} +6 -6
- package/.output/server/chunks/build/{OpenInIdeLink-CQWKKChd.mjs.map → OpenInIdeLink-Crc8y0Yx.mjs.map} +1 -1
- package/.output/server/chunks/build/{ProjectTestCasesTable-Bo61P5K1.mjs → ProjectTestCasesTable-DwjqZ2i5.mjs} +17 -17
- package/.output/server/chunks/build/{ProjectTestCasesTable-Bo61P5K1.mjs.map → ProjectTestCasesTable-DwjqZ2i5.mjs.map} +1 -1
- package/.output/server/chunks/build/{RunReports-DFLv51TX.mjs → RunReports-nuLb-Nm3.mjs} +3 -3
- package/.output/server/chunks/build/RunReports-nuLb-Nm3.mjs.map +1 -0
- package/.output/server/chunks/build/{RunStatusBadge-FfGb6bkW.mjs → RunStatusBadge-CvWmcFYM.mjs} +2 -2
- package/.output/server/chunks/build/RunStatusBadge-CvWmcFYM.mjs.map +1 -0
- package/.output/server/chunks/build/{SectionCard-CN-v0FZ_.mjs → SectionCard-C753B3Yo.mjs} +3 -3
- package/.output/server/chunks/build/SectionCard-C753B3Yo.mjs.map +1 -0
- package/.output/server/chunks/build/{Select-5DK9frQ7.mjs → Select-BAyYwPuo.mjs} +4 -4
- package/.output/server/chunks/build/Select-BAyYwPuo.mjs.map +1 -0
- package/.output/server/chunks/build/{SelectMenu-D-2FSqBU.mjs → SelectMenu-zE_AhMX8.mjs} +4 -4
- package/.output/server/chunks/build/{SelectMenu-D-2FSqBU.mjs.map → SelectMenu-zE_AhMX8.mjs.map} +1 -1
- package/.output/server/chunks/build/{Separator-CR4WcEKD.mjs → Separator-BbgCfKKJ.mjs} +3 -3
- package/.output/server/chunks/build/Separator-BbgCfKKJ.mjs.map +1 -0
- package/.output/server/chunks/build/{SettingsField-BZfx4ma1.mjs → SettingsField-D-VriK9X.mjs} +5 -5
- package/.output/server/chunks/build/SettingsField-D-VriK9X.mjs.map +1 -0
- package/.output/server/chunks/build/{Skeleton-CEHuuKVh.mjs → Skeleton-DAp_WMEe.mjs} +2 -2
- package/.output/server/chunks/build/Skeleton-DAp_WMEe.mjs.map +1 -0
- package/.output/server/chunks/build/{Slideover-D270EZZD.mjs → Slideover-CNbGvbUF.mjs} +3 -3
- package/.output/server/chunks/build/Slideover-CNbGvbUF.mjs.map +1 -0
- package/.output/server/chunks/build/{StatTile-D61Vzo6e.mjs → StatTile-DpcVQFVI.mjs} +2 -26
- package/.output/server/chunks/build/StatTile-DpcVQFVI.mjs.map +1 -0
- package/.output/server/chunks/build/StatTileGrid-7zOFUQ6j.mjs +30 -0
- package/.output/server/chunks/build/StatTileGrid-7zOFUQ6j.mjs.map +1 -0
- package/.output/server/chunks/build/{Switch-B5Fp8ULt.mjs → Switch-DdkA3Fii.mjs} +3 -3
- package/.output/server/chunks/build/Switch-DdkA3Fii.mjs.map +1 -0
- package/.output/server/chunks/build/{Table-BRk04Hd2.mjs → Table-CfDVAuUJ.mjs} +4 -4
- package/.output/server/chunks/build/Table-CfDVAuUJ.mjs.map +1 -0
- package/.output/server/chunks/build/{Tabs-BkSOnbaB.mjs → Tabs-BCOhHEB9.mjs} +2 -2
- package/.output/server/chunks/build/Tabs-BCOhHEB9.mjs.map +1 -0
- package/.output/server/chunks/build/{TestCaseHistoryChart-CSi64vVA.mjs → TestCaseHistoryChart-CKDXQ2GI.mjs} +4 -4
- package/.output/server/chunks/build/TestCaseHistoryChart-CKDXQ2GI.mjs.map +1 -0
- package/.output/server/chunks/build/{TestMetaBadges-D5_yUtIP.mjs → TestMetaBadges-BlyKmfeP.mjs} +1 -1
- package/.output/server/chunks/build/TestMetaBadges-BlyKmfeP.mjs.map +1 -0
- package/.output/server/chunks/build/{TestStatusBar-DX3EhlyP.mjs → TestStatusBar-wquHQqtp.mjs} +4 -4
- package/.output/server/chunks/build/TestStatusBar-wquHQqtp.mjs.map +1 -0
- package/.output/server/chunks/build/{Textarea-Dv2-lOvW.mjs → Textarea-Ohs6QTXf.mjs} +3 -3
- package/.output/server/chunks/build/Textarea-Ohs6QTXf.mjs.map +1 -0
- package/.output/server/chunks/build/{Tooltip-Dv4htNP6.mjs → Tooltip-BRBnl4pE.mjs} +3 -3
- package/.output/server/chunks/build/Tooltip-BRBnl4pE.mjs.map +1 -0
- package/.output/server/chunks/build/{_id_-BxA6IgWr.mjs → _id_-BesWjK_d.mjs} +900 -394
- package/.output/server/chunks/build/_id_-BesWjK_d.mjs.map +1 -0
- package/.output/server/chunks/build/{_id_-C_uSBiyU.mjs → _id_-CGs0u8Fr.mjs} +38 -36
- package/.output/server/chunks/build/_id_-CGs0u8Fr.mjs.map +1 -0
- package/.output/server/chunks/build/{_id_-BdG37K7s.mjs → _id_-CQ0lolEK.mjs} +31 -28
- package/.output/server/chunks/build/_id_-CQ0lolEK.mjs.map +1 -0
- package/.output/server/chunks/build/{_id_-BdJs7BJZ.mjs → _id_-D1-06Fcl.mjs} +1913 -1121
- package/.output/server/chunks/build/_id_-D1-06Fcl.mjs.map +1 -0
- package/.output/server/chunks/build/{about-BE0UV-8-.mjs → about-DdyOj-dj.mjs} +25 -455
- package/.output/server/chunks/build/about-DdyOj-dj.mjs.map +1 -0
- package/.output/server/chunks/build/{account-DAfvaD-F.mjs → account-7aVMKekZ.mjs} +11 -9
- package/.output/server/chunks/build/account-7aVMKekZ.mjs.map +1 -0
- package/.output/server/chunks/build/{ai-Cn05ch0u.mjs → ai-zw3T9b5u.mjs} +24 -22
- package/.output/server/chunks/build/{ai-Cn05ch0u.mjs.map → ai-zw3T9b5u.mjs.map} +1 -1
- package/.output/server/chunks/build/{analytics-Bo_B_jko.mjs → analytics-CeCzKwEX.mjs} +105 -76
- package/.output/server/chunks/build/analytics-CeCzKwEX.mjs.map +1 -0
- package/.output/server/chunks/build/client.precomputed.mjs +1 -1
- package/.output/server/chunks/build/{compare-RxHSOdsO.mjs → compare-B2OB3zdd.mjs} +4 -1
- package/.output/server/chunks/build/compare-B2OB3zdd.mjs.map +1 -0
- package/.output/server/chunks/build/{db.client-CQoVTYB9.mjs → db.client-Bdqk_eYQ.mjs} +40 -2
- package/.output/server/chunks/build/db.client-Bdqk_eYQ.mjs.map +1 -0
- package/.output/server/chunks/build/{default-CbNHaFsy.mjs → default-CkyAx_Mu.mjs} +48 -33
- package/.output/server/chunks/build/{default-CbNHaFsy.mjs.map → default-CkyAx_Mu.mjs.map} +1 -1
- package/.output/server/chunks/build/{docs-B_llWMxx.mjs → docs-Dhj-wEks.mjs} +18 -16
- package/.output/server/chunks/build/{docs-B_llWMxx.mjs.map → docs-Dhj-wEks.mjs.map} +1 -1
- package/.output/server/chunks/build/{edit-J0asTFg8.mjs → edit-CVz_gdoe.mjs} +17 -16
- package/.output/server/chunks/build/edit-CVz_gdoe.mjs.map +1 -0
- package/.output/server/chunks/build/{fetch-B4FwBOzu.mjs → fetch-Be-j7hF1.mjs} +32 -4
- package/.output/server/chunks/build/fetch-Be-j7hF1.mjs.map +1 -0
- package/.output/server/chunks/build/{forgot-password-CC__1OnV.mjs → forgot-password-CwdjL7BO.mjs} +8 -5
- package/.output/server/chunks/build/forgot-password-CwdjL7BO.mjs.map +1 -0
- package/.output/server/chunks/build/{import-CS9oylTN.mjs → import-DyQEw4V3.mjs} +17 -15
- package/.output/server/chunks/build/import-DyQEw4V3.mjs.map +1 -0
- package/.output/server/chunks/build/{index-CU2nZhAa.mjs → index-ByWTzqF6.mjs} +2 -1
- package/.output/server/chunks/build/index-ByWTzqF6.mjs.map +1 -0
- package/.output/server/chunks/build/{index-DE45ycdZ.mjs → index-D7Bmj6bq.mjs} +19 -18
- package/.output/server/chunks/build/index-D7Bmj6bq.mjs.map +1 -0
- package/.output/server/chunks/build/{index-e9skCi-V.mjs → index-DcnICCZU.mjs} +43 -539
- package/.output/server/chunks/build/index-DcnICCZU.mjs.map +1 -0
- package/.output/server/chunks/build/{index-hGHlmyxj.mjs → index-DghAFpNR.mjs} +132 -89
- package/.output/server/chunks/build/{index-hGHlmyxj.mjs.map → index-DghAFpNR.mjs.map} +1 -1
- package/.output/server/chunks/build/index-ID913tUa.mjs +93 -0
- package/.output/server/chunks/build/index-ID913tUa.mjs.map +1 -0
- package/.output/server/chunks/build/isValueEqualOrExist-D2qw9YEr.mjs +1 -1
- package/.output/server/chunks/build/{login-Da4u1IlW.mjs → login-rXKF63j6.mjs} +12 -9
- package/.output/server/chunks/build/login-rXKF63j6.mjs.map +1 -0
- package/.output/server/chunks/build/{mcp-uhVCCwQM.mjs → mcp-ByNvFy4o.mjs} +254 -22
- package/.output/server/chunks/build/mcp-ByNvFy4o.mjs.map +1 -0
- package/.output/server/chunks/build/{notifications-fx_qnKGA.mjs → notifications-CbLAZnKJ.mjs} +18 -16
- package/.output/server/chunks/build/notifications-CbLAZnKJ.mjs.map +1 -0
- package/.output/server/chunks/build/performance-C93MEPaZ.mjs +581 -0
- package/.output/server/chunks/build/performance-C93MEPaZ.mjs.map +1 -0
- package/.output/server/chunks/build/{pr-feedback-X6-70iF0.mjs → pr-feedback-DKCB0bDE.mjs} +12 -10
- package/.output/server/chunks/build/pr-feedback-DKCB0bDE.mjs.map +1 -0
- package/.output/server/chunks/build/{reset-password-BmrUS4ZD.mjs → reset-password-BBoHKMqD.mjs} +8 -5
- package/.output/server/chunks/build/reset-password-BBoHKMqD.mjs.map +1 -0
- package/.output/server/chunks/build/server.mjs +86 -72
- package/.output/server/chunks/build/server.mjs.map +1 -1
- package/.output/server/chunks/build/{settings-CCYe7rsc.mjs → settings-DiG0JjzC.mjs} +18 -26
- package/.output/server/chunks/build/settings-DiG0JjzC.mjs.map +1 -0
- package/.output/server/chunks/build/{settings-metadata-DrEqWcW-.mjs → settings-metadata-DnAK4Rzg.mjs} +40 -18
- package/.output/server/chunks/build/settings-metadata-DnAK4Rzg.mjs.map +1 -0
- package/.output/server/chunks/build/setup-0-1O6Hjz.mjs +1065 -0
- package/.output/server/chunks/build/setup-0-1O6Hjz.mjs.map +1 -0
- package/.output/server/chunks/build/{storage-CJEmviCD.mjs → storage-3JiFJ843.mjs} +18 -16
- package/.output/server/chunks/build/storage-3JiFJ843.mjs.map +1 -0
- package/.output/server/chunks/build/{tags-DauTe_F-.mjs → tags-CqYcp7js.mjs} +11 -10
- package/.output/server/chunks/build/tags-CqYcp7js.mjs.map +1 -0
- package/.output/server/chunks/build/{test-cases-thBbAykw.mjs → test-cases-y1HSgPX2.mjs} +26 -24
- package/.output/server/chunks/build/test-cases-y1HSgPX2.mjs.map +1 -0
- package/.output/server/chunks/build/test-functions-D2ju95Ly.mjs +552 -0
- package/.output/server/chunks/build/test-functions-D2ju95Ly.mjs.map +1 -0
- package/.output/server/chunks/build/useAiStatus-UR8x-feE.mjs +9 -0
- package/.output/server/chunks/build/useAiStatus-UR8x-feE.mjs.map +1 -0
- package/.output/server/chunks/build/{useChartMarkers-C89e_VLV.mjs → useChartMarkers-C0wSO0xk.mjs} +1 -1
- package/.output/server/chunks/build/useChartMarkers-C0wSO0xk.mjs.map +1 -0
- package/.output/server/chunks/build/{useCopyRich-RJKhWoyj.mjs → useCopyRich-CVFeYfkG.mjs} +699 -247
- package/.output/server/chunks/build/useCopyRich-CVFeYfkG.mjs.map +1 -0
- package/.output/server/chunks/build/{useDesktopDownload-BepjqxOt.mjs → useDesktopDownload-Dyf0fR47.mjs} +2 -2
- package/.output/server/chunks/build/useDesktopDownload-Dyf0fR47.mjs.map +1 -0
- package/.output/server/chunks/build/{useOpenInIde-BbTnPhFA.mjs → useOpenInIde--6Me0WlL.mjs} +1 -1
- package/.output/server/chunks/build/useOpenInIde--6Me0WlL.mjs.map +1 -0
- package/.output/server/chunks/build/useSettingsNav-BLTHducV.mjs +19 -0
- package/.output/server/chunks/build/useSettingsNav-BLTHducV.mjs.map +1 -0
- package/.output/server/chunks/build/{users-CTUqXyGh.mjs → users-IdmY9JZV.mjs} +12 -11
- package/.output/server/chunks/build/users-IdmY9JZV.mjs.map +1 -0
- package/.output/server/chunks/nitro/nitro.mjs +2336 -1581
- package/.output/server/chunks/nitro/nitro.mjs.map +1 -1
- package/.output/server/chunks/routes/__piwi/session.get.mjs +4 -1
- package/.output/server/chunks/routes/__piwi/session.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/admin/cleanup.delete.mjs +3 -0
- package/.output/server/chunks/routes/api/admin/cleanup.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/admin/stats.get.mjs +3 -0
- package/.output/server/chunks/routes/api/admin/stats.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/ai/status.get.mjs +3 -0
- package/.output/server/chunks/routes/api/ai/status.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/analytics/_widget_.get.mjs +3 -0
- package/.output/server/chunks/routes/api/analytics/_widget_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/auth/change-password.post.mjs +10 -1
- package/.output/server/chunks/routes/api/auth/change-password.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/auth/forgot-password.post.mjs +3 -1
- package/.output/server/chunks/routes/api/auth/forgot-password.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/auth/login.post.mjs +16 -2
- package/.output/server/chunks/routes/api/auth/login.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/auth/logout.post.mjs +4 -1
- package/.output/server/chunks/routes/api/auth/logout.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/auth/me.get.mjs +4 -1
- package/.output/server/chunks/routes/api/auth/me.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/auth/oauth/_provider/callback.get.mjs +4 -1
- package/.output/server/chunks/routes/api/auth/oauth/_provider/callback.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/auth/oauth/_provider/login.get.mjs +4 -1
- package/.output/server/chunks/routes/api/auth/oauth/_provider/login.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/auth/oauth/_provider/unlink.post.mjs +11 -1
- package/.output/server/chunks/routes/api/auth/oauth/_provider/unlink.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/auth/reset-password.post.mjs +9 -1
- package/.output/server/chunks/routes/api/auth/reset-password.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/auth/send-verify-email.post.mjs +7 -1
- package/.output/server/chunks/routes/api/auth/send-verify-email.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/auth/setup.get.mjs +4 -1
- package/.output/server/chunks/routes/api/auth/setup.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/auth/setup.post.mjs +30 -12
- package/.output/server/chunks/routes/api/auth/setup.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/auth/verify-email.get.mjs +4 -1
- package/.output/server/chunks/routes/api/auth/verify-email.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/channels/_id/test.post.mjs +6 -3
- package/.output/server/chunks/routes/api/channels/_id/test.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/channels/_id_.delete.mjs +4 -1
- package/.output/server/chunks/routes/api/channels/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/cluster-merge-suggestions/_id/approve.post.mjs +4 -1
- package/.output/server/chunks/routes/api/cluster-merge-suggestions/_id/approve.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/cluster-merge-suggestions/_id/reject.post.mjs +4 -1
- package/.output/server/chunks/routes/api/cluster-merge-suggestions/_id/reject.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/desktop/import-local.post.mjs +4 -1
- package/.output/server/chunks/routes/api/desktop/import-local.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/desktop/reporter-config.get.mjs +3 -0
- package/.output/server/chunks/routes/api/desktop/reporter-config.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/base-commit.patch.mjs +4 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/base-commit.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/branches.get.mjs +4 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/branches.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/commit-diff.get.mjs +4 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/commit-diff.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/commits.get.mjs +4 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/commits.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/context.get.mjs +4 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/context.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/diagnose/stream.post.mjs +4 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/diagnose/stream.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/diagnose.post.mjs +4 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/diagnose.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/diagnoses.get.mjs +4 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/diagnoses.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/diagnosis.get.mjs +4 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/diagnosis.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/export.get.mjs +4 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/export.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/extract-cases.post.mjs +4 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/extract-cases.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/fix-plan.get.mjs +4 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/fix-plan.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/status.patch.mjs +4 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/status.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id_.get.mjs +4 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/failure-diagnoses/_id/feedback.patch.mjs +4 -1
- package/.output/server/chunks/routes/api/failure-diagnoses/_id/feedback.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/files/_...path_.get.mjs +23 -4
- package/.output/server/chunks/routes/api/files/_...path_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/health.get.mjs +4 -1
- package/.output/server/chunks/routes/api/health.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.get.mjs +12 -5
- package/.output/server/chunks/routes/api/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.get2.mjs +9 -3
- package/.output/server/chunks/routes/api/index.get2.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.get3.mjs +4 -1
- package/.output/server/chunks/routes/api/index.get3.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.get4.mjs +4 -1
- package/.output/server/chunks/routes/api/index.get4.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.get5.mjs +4 -1
- package/.output/server/chunks/routes/api/index.get5.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.post.mjs +3 -1
- package/.output/server/chunks/routes/api/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.post2.mjs +6 -2
- package/.output/server/chunks/routes/api/index.post2.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.post3.mjs +3 -1
- package/.output/server/chunks/routes/api/index.post3.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.post4.mjs +14 -1
- package/.output/server/chunks/routes/api/index.post4.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.post5.mjs +3 -1
- package/.output/server/chunks/routes/api/index.post5.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.post6.mjs +3 -1
- package/.output/server/chunks/routes/api/index.post6.mjs.map +1 -1
- package/.output/server/chunks/routes/api/links/_id/refresh.post.mjs +5 -3
- package/.output/server/chunks/routes/api/links/_id/refresh.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/links/_id_.delete.mjs +5 -3
- package/.output/server/chunks/routes/api/links/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/links/_id_.patch.mjs +4 -3
- package/.output/server/chunks/routes/api/links/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/markers/_id_.delete.mjs +4 -1
- package/.output/server/chunks/routes/api/markers/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/markers/_id_.put.mjs +3 -1
- package/.output/server/chunks/routes/api/markers/_id_.put.mjs.map +1 -1
- package/.output/server/chunks/routes/api/notifications/stream.get.mjs +33 -16
- package/.output/server/chunks/routes/api/notifications/stream.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/projects/_id/cluster-merge-suggestions.get.mjs +4 -1
- package/.output/server/chunks/routes/api/projects/_id/cluster-merge-suggestions.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/projects/_id/failure-clusters.get.mjs +4 -1
- package/.output/server/chunks/routes/api/projects/_id/failure-clusters.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/projects/_id/flaky-classify.post.mjs +4 -1
- package/.output/server/chunks/routes/api/projects/_id/flaky-classify.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/projects/_id/flaky-tests.get.mjs +4 -1
- package/.output/server/chunks/routes/api/projects/_id/flaky-tests.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/projects/_id/latest-run.get.mjs +4 -1
- package/.output/server/chunks/routes/api/projects/_id/latest-run.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/projects/_id/markers.get.mjs +4 -1
- package/.output/server/chunks/routes/api/projects/_id/markers.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/projects/_id/markers.post.mjs +3 -1
- package/.output/server/chunks/routes/api/projects/_id/markers.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/projects/_id/members.get.mjs +4 -1
- package/.output/server/chunks/routes/api/projects/_id/members.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/projects/_id/members.put.mjs +3 -1
- package/.output/server/chunks/routes/api/projects/_id/members.put.mjs.map +1 -1
- package/.output/server/chunks/routes/api/projects/_id/performance.get.mjs +4 -1
- package/.output/server/chunks/routes/api/projects/_id/performance.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/projects/_id/quarantine/_testCaseId_.delete.mjs +4 -1
- package/.output/server/chunks/routes/api/projects/_id/quarantine/_testCaseId_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/projects/_id/quarantine.get.mjs +4 -1
- package/.output/server/chunks/routes/api/projects/_id/quarantine.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/projects/_id/quarantine.post.mjs +4 -1
- package/.output/server/chunks/routes/api/projects/_id/quarantine.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/projects/_id/slow-tests.get.mjs +4 -1
- package/.output/server/chunks/routes/api/projects/_id/slow-tests.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/projects/_id/spec-health.get.mjs +4 -1
- package/.output/server/chunks/routes/api/projects/_id/spec-health.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/projects/_id/test-cases.get.mjs +4 -1
- package/.output/server/chunks/routes/api/projects/_id/test-cases.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/projects/_id/test-functions/extract.post.mjs +78 -0
- package/.output/server/chunks/routes/api/projects/_id/test-functions/extract.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/projects/_id/test-functions/validate-proposal.post.mjs +68 -0
- package/.output/server/chunks/routes/api/projects/_id/test-functions/validate-proposal.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/projects/_id/test-functions.get.mjs +55 -0
- package/.output/server/chunks/routes/api/projects/_id/test-functions.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/projects/_id/test-functions.post.mjs +69 -0
- package/.output/server/chunks/routes/api/projects/_id/test-functions.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/projects/_id/timeout-opportunities.get.mjs +4 -1
- package/.output/server/chunks/routes/api/projects/_id/timeout-opportunities.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/projects/_id_.delete.mjs +4 -1
- package/.output/server/chunks/routes/api/projects/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/projects/_id_.get.mjs +4 -1
- package/.output/server/chunks/routes/api/projects/_id_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/projects/_id_.put.mjs +3 -1
- package/.output/server/chunks/routes/api/projects/_id_.put.mjs.map +1 -1
- package/.output/server/chunks/routes/api/projects/menu.get.mjs +4 -1
- package/.output/server/chunks/routes/api/projects/menu.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/projects/overview.get.mjs +4 -1
- package/.output/server/chunks/routes/api/projects/overview.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/projects.get.mjs +4 -1
- package/.output/server/chunks/routes/api/projects.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/search.get.mjs +4 -1
- package/.output/server/chunks/routes/api/search.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/settings/ai/limits.get.mjs +4 -1
- package/.output/server/chunks/routes/api/settings/ai/limits.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/settings/ai/limits.put.mjs +4 -1
- package/.output/server/chunks/routes/api/settings/ai/limits.put.mjs.map +1 -1
- package/.output/server/chunks/routes/api/settings/ai/models.post.mjs +3 -0
- package/.output/server/chunks/routes/api/settings/ai/models.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/settings/ai/test.post.mjs +4 -1
- package/.output/server/chunks/routes/api/settings/ai/test.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/settings/ai/usage.get.mjs +4 -1
- package/.output/server/chunks/routes/api/settings/ai/usage.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/settings/ai.get.mjs +4 -1
- package/.output/server/chunks/routes/api/settings/ai.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/settings/ai.put.mjs +4 -1
- package/.output/server/chunks/routes/api/settings/ai.put.mjs.map +1 -1
- package/.output/server/chunks/routes/api/settings/pr-feedback.get.mjs +4 -1
- package/.output/server/chunks/routes/api/settings/pr-feedback.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/settings/pr-feedback.put.mjs +4 -1
- package/.output/server/chunks/routes/api/settings/pr-feedback.put.mjs.map +1 -1
- package/.output/server/chunks/routes/api/settings/smtp/test.post.mjs +3 -1
- package/.output/server/chunks/routes/api/settings/smtp/test.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/settings/smtp.get.mjs +4 -1
- package/.output/server/chunks/routes/api/settings/smtp.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/settings/timeout-hygiene.get.mjs +4 -1
- package/.output/server/chunks/routes/api/settings/timeout-hygiene.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/settings/timeout-hygiene.put.mjs +4 -1
- package/.output/server/chunks/routes/api/settings/timeout-hygiene.put.mjs.map +1 -1
- package/.output/server/chunks/routes/api/settings/wasted-waits.get.mjs +4 -1
- package/.output/server/chunks/routes/api/settings/wasted-waits.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/settings/wasted-waits.put.mjs +4 -1
- package/.output/server/chunks/routes/api/settings/wasted-waits.put.mjs.map +1 -1
- package/.output/server/chunks/routes/api/setup-status.get.mjs +101 -0
- package/.output/server/chunks/routes/api/setup-status.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/stream.get.mjs +8 -2
- package/.output/server/chunks/routes/api/stream.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/subscriptions/_id_.delete.mjs +4 -1
- package/.output/server/chunks/routes/api/subscriptions/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/subscriptions/_id_.patch.mjs +3 -1
- package/.output/server/chunks/routes/api/subscriptions/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/tags/_id_.delete.mjs +4 -1
- package/.output/server/chunks/routes/api/tags/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/tags/_id_.put.mjs +3 -1
- package/.output/server/chunks/routes/api/tags/_id_.put.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-cases/_id/history.get.mjs +4 -1
- package/.output/server/chunks/routes/api/test-cases/_id/history.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-cases/_id/stability-trend.get.mjs +4 -1
- package/.output/server/chunks/routes/api/test-cases/_id/stability-trend.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-cases/_id_.get.mjs +4 -1
- package/.output/server/chunks/routes/api/test-cases/_id_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-functions/_id_.delete.mjs +62 -0
- package/.output/server/chunks/routes/api/test-functions/_id_.delete.mjs.map +1 -0
- package/.output/server/chunks/routes/api/test-functions/_id_.put.mjs +71 -0
- package/.output/server/chunks/routes/api/test-functions/_id_.put.mjs.map +1 -0
- package/.output/server/chunks/routes/api/test-run-cases/_id/diagnose.post.mjs +4 -1
- package/.output/server/chunks/routes/api/test-run-cases/_id/diagnose.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-run-cases/_id/diagnosis-context.get.mjs +4 -1
- package/.output/server/chunks/routes/api/test-run-cases/_id/diagnosis-context.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-run-cases/_id/diagnosis.get.mjs +4 -1
- package/.output/server/chunks/routes/api/test-run-cases/_id/diagnosis.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-run-cases/_id/export.get.mjs +4 -1
- package/.output/server/chunks/routes/api/test-run-cases/_id/export.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-run-cases/_id/traces.get.mjs +4 -1
- package/.output/server/chunks/routes/api/test-run-cases/_id/traces.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-run-cases/_id_.get.mjs +4 -1
- package/.output/server/chunks/routes/api/test-run-cases/_id_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/begin.post.mjs +7 -4
- package/.output/server/chunks/routes/api/test-runs/_id/begin.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/case-files.post.mjs +4 -1
- package/.output/server/chunks/routes/api/test-runs/_id/case-files.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/dom-snapshot.get.mjs +4 -1
- package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/dom-snapshot.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/environment-diff.get.mjs +4 -1
- package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/environment-diff.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/locator-healing.get.mjs +4 -1
- package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/locator-healing.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/locator-pick.post.mjs +4 -1
- package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/locator-pick.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-network-body.get.mjs +4 -1
- package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-network-body.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-network.get.mjs +4 -1
- package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-network.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-stacks.get.mjs +4 -1
- package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-stacks.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/visual-diff.get.mjs +4 -1
- package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/visual-diff.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/events.post.mjs +4 -1
- package/.output/server/chunks/routes/api/test-runs/_id/events.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/failure-groups.get.mjs +4 -1
- package/.output/server/chunks/routes/api/test-runs/_id/failure-groups.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/finish.post.mjs +4 -1
- package/.output/server/chunks/routes/api/test-runs/_id/finish.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/gate.post.mjs +4 -1
- package/.output/server/chunks/routes/api/test-runs/_id/gate.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/heartbeat.post.mjs +4 -1
- package/.output/server/chunks/routes/api/test-runs/_id/heartbeat.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/insights.get.mjs +4 -1
- package/.output/server/chunks/routes/api/test-runs/_id/insights.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/network-requests.get.mjs +4 -1
- package/.output/server/chunks/routes/api/test-runs/_id/network-requests.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/regression-context.get.mjs +4 -1
- package/.output/server/chunks/routes/api/test-runs/_id/regression-context.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/stream.get.mjs +4 -1
- package/.output/server/chunks/routes/api/test-runs/_id/stream.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/summary.get.mjs +4 -1
- package/.output/server/chunks/routes/api/test-runs/_id/summary.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id_.delete.mjs +4 -1
- package/.output/server/chunks/routes/api/test-runs/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id_.get.mjs +4 -1
- package/.output/server/chunks/routes/api/test-runs/_id_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id_.patch.mjs +4 -1
- package/.output/server/chunks/routes/api/test-runs/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/import/check.post.mjs +4 -1
- package/.output/server/chunks/routes/api/test-runs/import/check.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/import.post.mjs +4 -1
- package/.output/server/chunks/routes/api/test-runs/import.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/recent.get.mjs +4 -1
- package/.output/server/chunks/routes/api/test-runs/recent.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/setup.post.mjs +4 -1
- package/.output/server/chunks/routes/api/test-runs/setup.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/start.post.mjs +4 -1
- package/.output/server/chunks/routes/api/test-runs/start.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/submit.post.mjs +4 -1
- package/.output/server/chunks/routes/api/test-runs/submit.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/upload.post.mjs +4 -1
- package/.output/server/chunks/routes/api/test-runs/upload.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/tests/cleanup.delete.mjs +4 -1
- package/.output/server/chunks/routes/api/tests/cleanup.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/traces/check.post.mjs +6 -3
- package/.output/server/chunks/routes/api/traces/check.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/_id/api-keys/_keyId_.delete.mjs +4 -1
- package/.output/server/chunks/routes/api/users/_id/api-keys/_keyId_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/_id/index.get.mjs +4 -1
- package/.output/server/chunks/routes/api/users/_id/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/_id/index.post.mjs +3 -1
- package/.output/server/chunks/routes/api/users/_id/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/_id/invite.post.mjs +4 -1
- package/.output/server/chunks/routes/api/users/_id/invite.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/_id/projects.get.mjs +4 -1
- package/.output/server/chunks/routes/api/users/_id/projects.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/_id/projects.put.mjs +3 -1
- package/.output/server/chunks/routes/api/users/_id/projects.put.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/_id_.delete.mjs +4 -1
- package/.output/server/chunks/routes/api/users/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/_id_.patch.mjs +7 -2
- package/.output/server/chunks/routes/api/users/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/version.get.mjs +4 -1
- package/.output/server/chunks/routes/api/version.get.mjs.map +1 -1
- package/.output/server/chunks/routes/mcp.post.mjs +43 -11
- package/.output/server/chunks/routes/mcp.post.mjs.map +1 -1
- package/.output/server/chunks/routes/renderer.mjs +1 -1
- package/.output/server/chunks/routes/renderer.mjs.map +1 -1
- package/.output/server/chunks/tasks/sweep.mjs +3 -0
- package/.output/server/chunks/tasks/sweep.mjs.map +1 -1
- package/.output/server/chunks/tasks/sweep2.mjs +3 -0
- package/.output/server/chunks/tasks/sweep2.mjs.map +1 -1
- package/.output/server/database/migrations/0043_watery_dragon_lord.sql +22 -0
- package/.output/server/database/migrations/0044_panoramic_eddie_brock.sql +1 -0
- package/.output/server/database/migrations/meta/0043_snapshot.json +3764 -0
- package/.output/server/database/migrations/meta/0044_snapshot.json +3772 -0
- package/.output/server/database/migrations/meta/_journal.json +14 -0
- package/.output/server/database/migrations-pg/0044_dark_triathlon.sql +22 -0
- package/.output/server/database/migrations-pg/0045_loose_runaways.sql +1 -0
- package/.output/server/database/migrations-pg/meta/0044_snapshot.json +4473 -0
- package/.output/server/database/migrations-pg/meta/0045_snapshot.json +4480 -0
- package/.output/server/database/migrations-pg/meta/_journal.json +14 -0
- package/.output/server/index.mjs +4 -1
- package/.output/server/index.mjs.map +1 -1
- package/.output/server/package.json +1 -1
- package/bin/piwi-server.mjs +10 -0
- package/package.json +1 -1
- package/.output/public/_nuxt/8PUUncmO.js +0 -44
- package/.output/public/_nuxt/B7FTvFWq.js +0 -5
- package/.output/public/_nuxt/B8zkOmwo.js +0 -1
- package/.output/public/_nuxt/B96M2gdj.js +0 -1
- package/.output/public/_nuxt/B9OLmp0f.js +0 -1
- package/.output/public/_nuxt/BUa0V0Ly.js +0 -1
- package/.output/public/_nuxt/BUkim3TM.js +0 -1
- package/.output/public/_nuxt/BVc14Ncz.js +0 -4
- package/.output/public/_nuxt/BY0HxR3t.js +0 -17
- package/.output/public/_nuxt/B_xAMWQS.js +0 -2
- package/.output/public/_nuxt/BdQoBaOv.js +0 -1
- package/.output/public/_nuxt/BgRu_3tT.js +0 -1
- package/.output/public/_nuxt/BiO7RBWb.js +0 -6
- package/.output/public/_nuxt/CEfS4-oS.js +0 -64
- package/.output/public/_nuxt/CIoSMkpp.js +0 -1
- package/.output/public/_nuxt/CSJ-eOQM.js +0 -1
- package/.output/public/_nuxt/CahpB9Z2.js +0 -5
- package/.output/public/_nuxt/Cbh--1MW.js +0 -1
- package/.output/public/_nuxt/Cx6gc2VW.js +0 -1
- package/.output/public/_nuxt/D--H4jLI.js +0 -1
- package/.output/public/_nuxt/D1POo6S4.js +0 -10
- package/.output/public/_nuxt/D8nkF-OO.js +0 -3
- package/.output/public/_nuxt/DA25RkyK.js +0 -1
- package/.output/public/_nuxt/DIB-5fUJ.js +0 -1
- package/.output/public/_nuxt/DMec-OLo.js +0 -1
- package/.output/public/_nuxt/DSqHUrvO.js +0 -1
- package/.output/public/_nuxt/DmkUdSS4.js +0 -1
- package/.output/public/_nuxt/DoIREDVb.js +0 -1
- package/.output/public/_nuxt/DpZ1r1HA.js +0 -1
- package/.output/public/_nuxt/DqcKngf3.js +0 -1
- package/.output/public/_nuxt/DtHJgCS8.js +0 -1
- package/.output/public/_nuxt/Dtd4rC58.js +0 -9
- package/.output/public/_nuxt/Dy86h-7P.js +0 -1
- package/.output/public/_nuxt/HPNQD6v3.js +0 -1
- package/.output/public/_nuxt/HXadJrHu.js +0 -2
- package/.output/public/_nuxt/McL25vkx.js +0 -34
- package/.output/public/_nuxt/Nn93e_Mz.js +0 -1
- package/.output/public/_nuxt/UdR3DBPS.js +0 -1
- package/.output/public/_nuxt/_mj6CfPa.js +0 -1
- package/.output/public/_nuxt/builds/meta/e659b3e1-0e61-4971-940e-10063f9f4763.json +0 -1
- package/.output/public/_nuxt/entry.DmptwB51.css +0 -1
- package/.output/public/_nuxt/ryMzSDUj.js +0 -2
- package/.output/public/trace-viewer/assets/codeMirrorModule-LEHpjmcn.js +0 -32
- package/.output/public/trace-viewer/assets/defaultSettingsView-BNmKHKpQ.js +0 -264
- package/.output/public/trace-viewer/assets/urlMatch-BYQrIQwR.js +0 -1
- package/.output/public/trace-viewer/assets/xtermModule-CsJ4vdCR.js +0 -9
- package/.output/public/trace-viewer/codeMirrorModule.DYBRYzYX.css +0 -1
- package/.output/public/trace-viewer/codicon.DCmgc-ay.ttf +0 -0
- package/.output/public/trace-viewer/defaultSettingsView.CjdS-WJx.css +0 -1
- package/.output/public/trace-viewer/index.CzXZzn5A.css +0 -1
- package/.output/public/trace-viewer/index.DMMX1gXU.js +0 -2
- package/.output/public/trace-viewer/index.html +0 -44
- package/.output/public/trace-viewer/manifest.webmanifest +0 -16
- package/.output/public/trace-viewer/playwright-logo.svg +0 -9
- package/.output/public/trace-viewer/snapshot.html +0 -10
- package/.output/public/trace-viewer/snapshot.v8KI4P3m.js +0 -2
- package/.output/public/trace-viewer/sw.bundle.js +0 -5
- package/.output/public/trace-viewer/uiMode.BZQ54Kgt.css +0 -1
- package/.output/public/trace-viewer/uiMode.Ut8wwJNp.js +0 -6
- package/.output/public/trace-viewer/uiMode.html +0 -18
- package/.output/public/trace-viewer/xtermModule.DYP7pi_n.css +0 -32
- package/.output/server/chunks/build/Alert-C4xq8lao.mjs.map +0 -1
- package/.output/server/chunks/build/Breadcrumb-Ak2Lg3oM.mjs.map +0 -1
- package/.output/server/chunks/build/BreadcrumbNav-DO7I_z-n.mjs.map +0 -1
- package/.output/server/chunks/build/BrowserBadge-MFvBwxmD.mjs.map +0 -1
- package/.output/server/chunks/build/Card-BQP_oZkQ.mjs.map +0 -1
- package/.output/server/chunks/build/ChartCard-Y1UKwMsf.mjs.map +0 -1
- package/.output/server/chunks/build/ChartMarkerTooltip-0DcMfD_6.mjs.map +0 -1
- package/.output/server/chunks/build/Checkbox-4Q5d0fa0.mjs.map +0 -1
- package/.output/server/chunks/build/CiEnvCard-DB5DvBh1.mjs.map +0 -1
- package/.output/server/chunks/build/CodeBlock-BgE-NSmE.mjs.map +0 -1
- package/.output/server/chunks/build/DashboardNavbar-BHmMSPX7.mjs.map +0 -1
- package/.output/server/chunks/build/DashboardSidebarToggle-DCTnHiIv.mjs.map +0 -1
- package/.output/server/chunks/build/DataLocationCard-B_YHdzSz.mjs.map +0 -1
- package/.output/server/chunks/build/DiagnosisPanel-CALyEmcJ.mjs.map +0 -1
- package/.output/server/chunks/build/DurationValue-D20oGbnc.mjs.map +0 -1
- package/.output/server/chunks/build/EntityLinks-BBHWssHH.mjs.map +0 -1
- package/.output/server/chunks/build/EnvManagedBadge-UwD2b9v2.mjs.map +0 -1
- package/.output/server/chunks/build/FormField-B0HKsdMd.mjs.map +0 -1
- package/.output/server/chunks/build/HelpHint-DrcIv-Oj.mjs.map +0 -1
- package/.output/server/chunks/build/LoadingState-C3pBSuOO.mjs.map +0 -1
- package/.output/server/chunks/build/MarkerBadge-D7meXy4u.mjs.map +0 -1
- package/.output/server/chunks/build/MiniRunBars-CZMugDrh.mjs.map +0 -1
- package/.output/server/chunks/build/Modal-pSDlXzT3.mjs.map +0 -1
- package/.output/server/chunks/build/RunReports-DFLv51TX.mjs.map +0 -1
- package/.output/server/chunks/build/RunStatusBadge-FfGb6bkW.mjs.map +0 -1
- package/.output/server/chunks/build/SectionCard-CN-v0FZ_.mjs.map +0 -1
- package/.output/server/chunks/build/Select-5DK9frQ7.mjs.map +0 -1
- package/.output/server/chunks/build/Separator-CR4WcEKD.mjs.map +0 -1
- package/.output/server/chunks/build/SettingsField-BZfx4ma1.mjs.map +0 -1
- package/.output/server/chunks/build/Skeleton-CEHuuKVh.mjs.map +0 -1
- package/.output/server/chunks/build/Slideover-D270EZZD.mjs.map +0 -1
- package/.output/server/chunks/build/StatTile-D61Vzo6e.mjs.map +0 -1
- package/.output/server/chunks/build/Switch-B5Fp8ULt.mjs.map +0 -1
- package/.output/server/chunks/build/Table-BRk04Hd2.mjs.map +0 -1
- package/.output/server/chunks/build/Tabs-BkSOnbaB.mjs.map +0 -1
- package/.output/server/chunks/build/TestCaseHistoryChart-CSi64vVA.mjs.map +0 -1
- package/.output/server/chunks/build/TestMetaBadges-D5_yUtIP.mjs.map +0 -1
- package/.output/server/chunks/build/TestStatusBar-DX3EhlyP.mjs.map +0 -1
- package/.output/server/chunks/build/Textarea-Dv2-lOvW.mjs.map +0 -1
- package/.output/server/chunks/build/Tooltip-Dv4htNP6.mjs.map +0 -1
- package/.output/server/chunks/build/_id_-BdG37K7s.mjs.map +0 -1
- package/.output/server/chunks/build/_id_-BdJs7BJZ.mjs.map +0 -1
- package/.output/server/chunks/build/_id_-BxA6IgWr.mjs.map +0 -1
- package/.output/server/chunks/build/_id_-C_uSBiyU.mjs.map +0 -1
- package/.output/server/chunks/build/about-BE0UV-8-.mjs.map +0 -1
- package/.output/server/chunks/build/account-DAfvaD-F.mjs.map +0 -1
- package/.output/server/chunks/build/analytics-Bo_B_jko.mjs.map +0 -1
- package/.output/server/chunks/build/compare-RxHSOdsO.mjs.map +0 -1
- package/.output/server/chunks/build/db.client-CQoVTYB9.mjs.map +0 -1
- package/.output/server/chunks/build/edit-J0asTFg8.mjs.map +0 -1
- package/.output/server/chunks/build/fetch-B4FwBOzu.mjs.map +0 -1
- package/.output/server/chunks/build/forgot-password-CC__1OnV.mjs.map +0 -1
- package/.output/server/chunks/build/import-CS9oylTN.mjs.map +0 -1
- package/.output/server/chunks/build/index-CU2nZhAa.mjs.map +0 -1
- package/.output/server/chunks/build/index-DE45ycdZ.mjs.map +0 -1
- package/.output/server/chunks/build/index-e9skCi-V.mjs.map +0 -1
- package/.output/server/chunks/build/index-tR6owKzj.mjs +0 -167
- package/.output/server/chunks/build/index-tR6owKzj.mjs.map +0 -1
- package/.output/server/chunks/build/login-Da4u1IlW.mjs.map +0 -1
- package/.output/server/chunks/build/mcp-uhVCCwQM.mjs.map +0 -1
- package/.output/server/chunks/build/notifications-fx_qnKGA.mjs.map +0 -1
- package/.output/server/chunks/build/pr-feedback-X6-70iF0.mjs.map +0 -1
- package/.output/server/chunks/build/reset-password-BmrUS4ZD.mjs.map +0 -1
- package/.output/server/chunks/build/settings-CCYe7rsc.mjs.map +0 -1
- package/.output/server/chunks/build/settings-metadata-DrEqWcW-.mjs.map +0 -1
- package/.output/server/chunks/build/storage-CJEmviCD.mjs.map +0 -1
- package/.output/server/chunks/build/tags-DauTe_F-.mjs.map +0 -1
- package/.output/server/chunks/build/test-cases-thBbAykw.mjs.map +0 -1
- package/.output/server/chunks/build/timeout-hygiene-CbnSaVbK.mjs +0 -330
- package/.output/server/chunks/build/timeout-hygiene-CbnSaVbK.mjs.map +0 -1
- package/.output/server/chunks/build/useAiStatus-CxjMmDDY.mjs.map +0 -1
- package/.output/server/chunks/build/useChartMarkers-C89e_VLV.mjs.map +0 -1
- package/.output/server/chunks/build/useCopy-CeKWgHyT.mjs +0 -33
- package/.output/server/chunks/build/useCopy-CeKWgHyT.mjs.map +0 -1
- package/.output/server/chunks/build/useCopyRich-RJKhWoyj.mjs.map +0 -1
- package/.output/server/chunks/build/useDesktopDownload-BepjqxOt.mjs.map +0 -1
- package/.output/server/chunks/build/useOpenInIde-BbTnPhFA.mjs.map +0 -1
- package/.output/server/chunks/build/useSettingsNav-DnQKacz8.mjs.map +0 -1
- package/.output/server/chunks/build/users-CTUqXyGh.mjs.map +0 -1
- package/.output/server/chunks/build/wasted-time-BNTPIyrC.mjs +0 -301
- package/.output/server/chunks/build/wasted-time-BNTPIyrC.mjs.map +0 -1
|
@@ -1,34 +1,34 @@
|
|
|
1
|
-
import{r as ne,d as ce,o as p,c as f,k as c,i as x,V as
|
|
2
|
-
`))if(!i)d.startsWith("```")?(i=!0,l=d.slice(3).trim(),
|
|
3
|
-
`);if(
|
|
4
|
-
`),l);a.push({kind:"code-start",lang:l||"code"}),a.push({kind:"code-block",html:d}),a.push({kind:"code-end"})}return a}const r=E(()=>e.text?s(e.text):[]);return(n,a)=>{const i=ke;return p(),f("div",ts,[t.loading?(p(),f("div",ss,[S(i,{name:"i-lucide-loader-2",class:"size-4 animate-spin"}),a[0]||(a[0]=x("span",null,"Fetching context… (includes SCM diff lookup)",-1))])):c(r).length?(p(),f("div",{key:1,class:"overflow-auto p-3 text-xs font-mono leading-relaxed",style:it({maxHeight:t.maxHeight??"45vh"})},[(p(!0),f(M,null,Y(c(r),(l,o)=>(p(),f(M,{key:o},[l.kind==="h2"?(p(),f("div",ns,w(l.text),1)):l.kind==="h3"?(p(),f("div",rs,w(l.text),1)):l.kind==="note"?(p(),f("div",is,w(l.text),1)):l.kind==="bullet"?(p(),f("div",as,[a[1]||(a[1]=x("span",{class:"text-gray-400 shrink-0"},"·",-1)),x("span",null,w(l.text),1)])):l.kind==="text"?(p(),f("div",os,w(l.text),1)):l.kind==="blank"?(p(),f("div",ls)):l.kind==="code-start"?(p(),f("div",cs,w(l.lang||"code"),1)):l.kind==="code-block"?(p(),f("div",us,[x("pre",{class:"hljs px-2 py-1 !bg-transparent whitespace-pre-wrap",innerHTML:l.html},null,8,ps)])):l.kind==="code-end"?(p(),f("div",ds)):$("",!0)],64))),128))],4)):(p(),f("div",hs,"No context loaded"))])}}}),ot=Object.assign(gs,{__name:"MarkdownPreview"}),fs=ce({__name:"CopyAiPromptButton",props:{contextEndpoint:{}},setup(t){const e=t,{copy:s,copied:r}=De(),n=at(),a=ne(!1),i=E(()=>(zt().app?.baseURL??"/").replace(/\/$/,""));async function l(){a.value=!0;try{const o=await fetch(`${i.value}${e.contextEndpoint}?format=prompt`);if(!o.ok)throw new Error(`Request failed (${o.status})`);s(await o.text(),{toast:"AI prompt copied"})}catch(o){n.add({title:"Could not copy the prompt",description:qt(o),color:"error"})}finally{a.value=!1}}return(o,d)=>{const h=_e;return p(),j(h,{icon:c(r)?"i-lucide-check":"i-lucide-clipboard-copy",size:"xs",color:"neutral",variant:"outline",loading:c(a),title:"Copy the exact request Piwi would send to the model — to reuse it elsewhere, or to check what it contains",onClick:l},{default:Q(()=>[R(w(c(r)?"Copied":"Copy prompt"),1)]),_:1},8,["icon","loading"])}}}),qr=Object.assign(fs,{__name:"CopyAiPromptButton"}),Se=[{id:"clusterSummary",label:"Failure cluster summary",short:"Cluster"},{id:"sampleError",label:"Raw error message",short:"Error"},{id:"representativeExecution",label:"Representative execution overview",short:"Execution"},{id:"executionError",label:"Representative execution error",short:"Error"},{id:"runContext",label:"Run context (partial run, parallelism, flaky class)",short:"Run context"},{id:"testAnnotations",label:"Test annotations (@fixme/@flaky …)",short:"Annotations"},{id:"affectedTests",label:"Affected tests",short:"Tests"},{id:"testSource",label:"Test source code",short:"Source"},{id:"sourceFiles",label:"Full source files (suspect + imports)",short:"Files"},{id:"steps",label:"Test steps",short:"Steps"},{id:"failingSteps",label:"Failing steps",short:"Steps"},{id:"console",label:"Browser console logs",short:"Console"},{id:"networkRequests",label:"Network requests",short:"Network"},{id:"serverLogs",label:"Backend server logs",short:"Server logs"},{id:"serverTraces",label:"Server traces (spans)",short:"Traces"},{id:"webVitals",label:"Web vitals",short:"Web vitals"},{id:"appState",label:"App state at test end (URL/storage/cookies)",short:"App state"},{id:"ariaSnapshot",label:"ARIA snapshot",short:"ARIA"},{id:"domSnapshot",label:"DOM snapshot from trace (failure time)",short:"DOM"},{id:"screenshots",label:"Screenshots (attached as images)",short:"Screenshots"},{id:"visualDiff",label:"Visual diff vs last passing screenshot",short:"Visual diff"},{id:"browserDistribution",label:"Browser distribution",short:"Browsers"},{id:"recurrenceFlakiness",label:"Recurrence & flakiness",short:"Flakiness"},{id:"baselineComparison",label:"Compared to last pass (duration/vitals/steps)",short:"Baseline"},{id:"environmentDiff",label:"Environment diff vs last pass",short:"Env diff"},{id:"retryProgression",label:"Retry progression (per-attempt errors)",short:"Retries"},{id:"passedPeers",label:"Passing peers in same file",short:"Peers"},{id:"scmInvestigation",label:"SCM diff since last green",short:"SCM diff"},{id:"selectedCommits",label:"Manually selected commits",short:"Commits"},{id:"priorDiagnosis",label:"Prior diagnosis & triage",short:"Prior"},{id:"tracePointers",label:"Trace files",short:"Traces"},{id:"artifacts",label:"Attachments & artifacts (video, HAR)",short:"Artifacts"},{id:"nearestAriaNames",label:"Nearest matching ARIA names from snapshot",short:"Nearest ARIA"},{id:"alreadyGreen",label:"Baseline freshness / already-green check",short:"Already green"},{id:"topSuspectedCommit",label:"Top suspected commit",short:"Top commit"},{id:"failingAction",label:"Failing action from trace parsing",short:"Trace"},{id:"traceCallStack",label:"Full call stack with source (from trace)",short:"Call stack"},{id:"traceNetwork",label:"Network activity from trace (all requests)",short:"Trace net"},{id:"locatorHealing",label:"Alternative locators from prior success",short:"Alt locators"}],lt=new Set(Se.map(t=>t.id)),ct=Object.fromEntries(Se.map(t=>[t.id,t.short]));function ks(t){return lt.has(t)}function Fr(t){const e=new Set;for(const s of t)if(s)for(const r of String(s).matchAll(/\[([a-zA-Z][a-zA-Z0-9]*)]/g))lt.has(r[1])&&e.add(r[1]);return[...e]}const xs={class:"rounded-lg border border-default bg-elevated/30 px-2.5 py-2"},ms={key:0,class:"flex items-center gap-2 text-xs text-gray-400"},bs={key:1,class:"flex flex-wrap items-center gap-1.5"},ys={class:"text-xs font-medium text-gray-500 inline-flex items-center gap-1"},ws=["title","onClick"],vs={key:0,class:"text-xs text-gray-400"},$s=ce({__name:"DiagnosisCoverageStrip",props:{sections:{},notApplicable:{},tokenEstimate:{},loading:{type:Boolean}},emits:["view-section","open"],setup(t,{emit:e}){const s=t,r=e,n=E(()=>s.sections.map(l=>({id:l.id,short:ct[l.id]??l.title??l.id,truncated:l.truncated}))),a=E(()=>Math.max(0,Se.length-s.sections.length)),i=E(()=>{const l=s.tokenEstimate;return l?l>=1e3?`${(l/1e3).toFixed(1)}k`:String(l):""});return(l,o)=>{const d=ke,h=qe;return p(),f("div",xs,[t.loading&&!t.sections.length?(p(),f("div",ms,[S(d,{name:"i-lucide-loader-circle",class:"size-3.5 animate-spin"}),o[1]||(o[1]=R(" Building context… ",-1))])):(p(),f("div",bs,[x("span",ys,[S(d,{name:"i-lucide-layers",class:"size-3.5"}),o[2]||(o[2]=R(" Context ",-1)),S(h,{topic:"cluster.coverage"})]),(p(!0),f(M,null,Y(c(n),m=>(p(),f("button",{key:m.id,type:"button",class:"inline-flex items-center gap-1 rounded-full border border-default bg-default px-2 py-0.5 text-xs hover:border-primary/50 transition-colors",title:m.truncated?`${m.short} (truncated)`:m.short,onClick:b=>r("view-section",m.id)},[S(d,{name:m.truncated?"i-lucide-scissors":"i-lucide-check",class:J(["size-3",m.truncated?"text-warning":"text-success"])},null,8,["name","class"]),R(" "+w(m.short),1)],8,ws))),128)),c(n).length?$("",!0):(p(),f("span",vs,"No evidence sections yet")),x("button",{type:"button",class:"ml-auto text-xs text-gray-400 hover:text-primary transition-colors whitespace-nowrap",onClick:o[0]||(o[0]=m=>r("open"))},[c(a)?(p(),f(M,{key:0},[R(w(c(a))+" not included · ",1)],64)):$("",!0),c(i)?(p(),f(M,{key:1},[R("~"+w(c(i))+" tokens",1)],64)):$("",!0),S(d,{name:"i-lucide-arrow-right",class:"size-3 inline align-text-bottom"})])]))])}}}),Nr=Object.assign($s,{__name:"DiagnosisCoverageStrip"}),_s={class:"flex items-center justify-between w-full"},Ss={class:"flex items-center gap-2"},Cs={class:"font-semibold inline-flex items-center gap-1"},As={class:"text-xs text-gray-400"},Rs={class:"flex items-center gap-1"},Ts={class:"rounded-lg border border-default bg-elevated/30 p-3 mb-4"},zs={class:"flex items-center justify-between gap-2 mb-2"},Is={class:"text-xs font-medium text-gray-500 uppercase tracking-wide inline-flex items-center gap-1"},Es={class:"text-xs text-gray-400"},Ps={class:"flex flex-wrap gap-1.5"},Ls=["title"],Bs={class:"text-xs text-gray-400 mt-2"},Ds={class:"space-y-4"},qs={class:"text-xs font-medium text-gray-500 uppercase tracking-wide mb-2"},Fs={class:"space-y-2"},Ns=["data-section-id"],js={key:0,class:"text-center text-gray-400 py-8 text-sm"},Ms=ce({__name:"DiagnosisContextModal",props:{open:{type:Boolean},sections:{},tokenEstimate:{},imageTokenEstimate:{},loading:{type:Boolean},focusSection:{},citedSections:{},notApplicableSections:{}},emits:["update:open","refresh"],setup(t,{emit:e}){const s=t,r=E(()=>{const v=new Map;for(const y of s.sections)v.has(y.id)||v.set(y.id,y);return v}),n=E(()=>new Set(Object.keys(s.notApplicableSections??{}))),a=E(()=>new Set(s.citedSections??[])),i=E(()=>Se.map(v=>{if(n.value.has(v.id))return{id:v.id,short:v.short,label:v.label,state:"notApplicable",cited:a.value.has(v.id)};const y=r.value.get(v.id),L=y?y.truncated?"truncated":"present":"absent";return{id:v.id,short:v.short,label:v.label,state:L,cited:a.value.has(v.id)}})),l=E(()=>{const v={present:0,truncated:0,absent:0,notApplicable:0};for(const y of i.value)v[y.state]++;return v}),o={present:"bg-emerald-500",truncated:"bg-amber-500",absent:"bg-gray-300 dark:bg-gray-600",notApplicable:"bg-purple-400"};function d(v){if(v.state==="notApplicable"){const y=s.notApplicableSections?.[v.id];return`${v.label}: not applicable${y?` — ${y}`:""}`}return`${v.label}: ${v.state}${v.cited?" · cited by the diagnosis":""}`}const h=e,{copy:m,copied:b}=De(),z=E(()=>{const v=[],y=["clusterSummary","sampleError","representativeExecution","executionError","runContext"],L=["testAnnotations","testSource","steps","failingSteps","console","networkRequests","serverLogs","serverTraces","webVitals","ariaSnapshot"],ee=["recurrenceFlakiness","baselineComparison","retryProgression","passedPeers","browserDistribution","affectedTests"],re=["scmInvestigation","selectedCommits"],te=["priorDiagnosis","tracePointers","artifacts"],q=(P,F)=>{const le=s.sections.filter(Re=>P.includes(Re.id));le.length>0&&v.push({label:F,items:le})};return q(y,"Primary"),q(L,"Test Evidence"),q(ee,"Analysis"),q(re,"SCM"),q(te,"Other"),v}),_=ne(null);ye(()=>[s.open,s.focusSection],async([v,y])=>{if(!v||!y)return;await It();const L=document.querySelector(`[data-section-id="${y}"]`);L&&(L.scrollIntoView({behavior:"smooth",block:"start"}),_.value=y,setTimeout(()=>{_.value===y&&(_.value=null)},2500))});function H(v){let y=`## ${v.title}`;const L=[];return L.push(`${v.chars} chars`),v.truncated&&L.push("truncated"),v.items!=null&&L.push(`${v.items} items`),L.length&&(y+=` — ${L.join(", ")}`),y}return(v,y)=>{const L=qe,ee=_e,re=ke,te=ot,q=Nt;return p(),j(q,{open:t.open,title:"Context sent to AI",ui:{content:"max-w-5xl"},"onUpdate:open":y[2]||(y[2]=P=>h("update:open",P))},{header:Q(()=>[x("div",_s,[x("div",Ss,[x("span",Cs,[y[3]||(y[3]=R(" Context sent to AI ",-1)),S(L,{topic:"cluster.context-preview"})]),x("span",As,[R(" ~"+w(t.tokenEstimate)+" tokens",1),t.imageTokenEstimate?(p(),f(M,{key:0},[R(" ("+w(t.tokenEstimate-t.imageTokenEstimate)+" text + "+w(t.imageTokenEstimate)+" image)",1)],64)):$("",!0)])]),x("div",Rs,[S(ee,{icon:"i-lucide-refresh-cw",size:"xs",color:"neutral",variant:"ghost",loading:t.loading,onClick:y[0]||(y[0]=P=>h("refresh"))},null,8,["loading"]),S(ee,{icon:"i-lucide-x",size:"xs",color:"neutral",variant:"ghost",onClick:y[1]||(y[1]=P=>h("update:open",!1))})])])]),body:Q(()=>[y[7]||(y[7]=x("p",{class:"text-xs text-gray-500 dark:text-gray-400 mb-3"},"Copy individual sections or the full context below.",-1)),x("div",Ts,[x("div",zs,[x("p",Is,[y[4]||(y[4]=R(" Data coverage ",-1)),S(L,{topic:"cluster.coverage"})]),x("p",Es,w(c(l).present)+" present · "+w(c(l).truncated)+" truncated · "+w(c(l).absent)+" absent"+w(c(l).notApplicable?` · ${c(l).notApplicable} n/a`:""),1)]),x("div",Ps,[(p(!0),f(M,null,Y(c(i),P=>(p(),f("span",{key:P.id,class:J(["inline-flex items-center gap-1 rounded border px-1.5 py-0.5 text-xs",[P.cited?"border-primary text-primary":"border-default",P.state==="absent"?"text-gray-400 opacity-70":"",P.state==="notApplicable"?"text-purple-500 border-purple-300 dark:border-purple-700":""]]),title:d(P)},[x("span",{class:J(["size-1.5 rounded-full shrink-0",o[P.state]])},null,2),R(" "+w(P.short)+" ",1),P.cited?(p(),j(re,{key:0,name:"i-lucide-quote",class:"size-2.5 shrink-0"})):$("",!0)],10,Ls))),128))]),x("p",Bs,[y[5]||(y[5]=R(" Absent or truncated evidence lowers the diagnosis confidence. ",-1)),S(re,{name:"i-lucide-quote",class:"size-2.5 inline"}),y[6]||(y[6]=R(" marks sections the diagnosis cited. ",-1))])]),x("div",Ds,[(p(!0),f(M,null,Y(c(z),P=>(p(),f("div",{key:P.label},[x("p",qs,w(P.label),1),x("div",Fs,[(p(!0),f(M,null,Y(P.items,F=>(p(),f("div",{key:F.id,"data-section-id":F.id,class:J(["relative rounded-lg transition-shadow",c(_)===F.id?"ring-2 ring-primary":c(a).has(F.id)?"ring-1 ring-primary/40":""])},[S(te,{text:H(F)+`
|
|
1
|
+
import{r as ne,d as ce,o as p,c as f,k as c,i as x,V as We,j as S,p as ke,_ as _e,R as rt,F as j,y as Y,t as w,v as $,h as P,b as it,f as N,g as Q,m as A,A as Tt,q as J,J as ye,L as zt,an as It,l as Et,M as Pt,s as Lt}from"./h49q_GXF.js";import{a as Be}from"./Cd8r0xk5.js";import{e as Bt,f as Dt}from"./CD3R-ggS.js";import{_ as De}from"./BtSJxOdh.js";import{_ as qt}from"./jjOqY9Tv.js";import{_ as Ft}from"./9N6hSApy.js";import{_ as Mt}from"./PdEEuEsg.js";import{h as Xe,_ as Nt}from"./Dj-TetcW.js";import{_ as jt}from"./CScusXhF.js";function Ot(t,e=!1){const s=ne(e);try{const i=document.cookie.match(new RegExp(`(?:^|;\\s*)${t}=([^;]*)`));i&&(s.value=i[1]==="true")}catch{}function r(){document.cookie=`${t}=${s.value}; path=/; max-age=31536000; sameSite=lax`}function n(){s.value=!s.value,r()}function o(i){s.value=i,r()}return{folded:s,toggle:n,setFolded:o}}function Ht(t){return Ot(`piwi-summary-fold-${t}`,!1)}const Zt={class:"flex items-center gap-3"},Ut={class:"ml-auto shrink-0"},Vt={key:1,class:"relative"},Qt={class:"absolute top-1 right-1 z-10"},Gt=ce({__name:"FoldableSummary",props:{storageKey:{}},setup(t){const e=t,{folded:s,toggle:r}=Ht(e.storageKey);return(n,o)=>{const i=ke,l=_e;return p(),f("div",null,[c(s)?(p(),f("div",{key:0,class:"border border-gray-200 dark:border-gray-800 rounded-xl p-2.5 shadow-xs cursor-pointer select-none",onClick:o[0]||(o[0]=(...a)=>c(r)&&c(r)(...a))},[x("div",Zt,[We(n.$slots,"folded"),x("div",Ut,[S(i,{name:"i-lucide-chevron-down",class:"size-4 text-gray-400"})])])])):(p(),f("div",Vt,[x("div",Qt,[S(l,{icon:"i-lucide-chevron-up",size:"xs",color:"neutral",variant:"ghost",onClick:c(r),title:"Collapse summary"},null,8,["onClick"])]),We(n.$slots,"default")]))])}}}),zr=Object.assign(Gt,{__name:"FoldableSummary"}),Wt=new Set([".png",".jpg",".jpeg",".gif",".svg",".webp"]),Xt=new Set(["image/png","image/jpeg","image/gif","image/svg+xml","image/webp"]),Kt=new Set([".webm",".mp4",".ogg",".mov"]),Jt=new Set(["video/webm","video/mp4","video/ogg","video/quicktime"]);function Ir(t,e){const s="."+(t.toLowerCase().split(".").pop()||"");return!!(Wt.has(s)||e&&Xt.has(e.toLowerCase()))}function Er(t,e){const s="."+(t.toLowerCase().split(".").pop()||"");return!!(Kt.has(s)||e&&Jt.has(e.toLowerCase()))}function Pr(t){return t.replace(/\x1b\[[0-9;]*[a-zA-Z]/g,"")}const Yt={class:"rounded-lg border border-default overflow-hidden bg-muted min-h-16"},es={key:0,class:"flex items-center gap-2 p-4 text-sm text-gray-500"},ts={key:0,class:"text-sm font-bold text-gray-900 dark:text-white mt-4 mb-0.5 first:mt-0"},ss={key:1,class:"font-semibold text-gray-700 dark:text-gray-200 mt-2 mb-0.5"},ns={key:2,class:"my-1 px-2 py-0.5 rounded bg-yellow-50 dark:bg-yellow-900/20 text-yellow-800 dark:text-yellow-300 italic"},rs={key:3,class:"text-gray-600 dark:text-gray-400 flex gap-1.5"},is={key:4,class:"text-gray-600 dark:text-gray-400"},os={key:5,class:"h-2"},as={key:6,class:"mt-2 px-2 py-0.5 bg-gray-200 dark:bg-gray-700 text-gray-500 dark:text-gray-400 rounded-t text-[10px] uppercase tracking-wide"},ls={key:7,class:"overflow-x-auto bg-gray-50 dark:bg-gray-900/40"},cs=["innerHTML"],us={key:8,class:"h-1 bg-gray-100 dark:bg-gray-800/50 rounded-b mb-2"},ps={key:2,class:"p-3 text-xs text-gray-400 italic"},ds=ce({__name:"MarkdownPreview",props:{text:{},loading:{type:Boolean},maxHeight:{}},setup(t){const e=t;function s(n){const o=[];let i=!1,l="",a=[];for(const d of n.split(`
|
|
2
|
+
`))if(!i)d.startsWith("```")?(i=!0,l=d.slice(3).trim(),a=[]):d.startsWith("## ")?o.push({kind:"h2",text:d.slice(3)}):d.startsWith("### ")?o.push({kind:"h3",text:d.slice(4)}):d.startsWith("> ")?o.push({kind:"note",text:d.slice(2)}):d.startsWith("- ")?o.push({kind:"bullet",text:d.slice(2)}):d.trim()===""?o.push({kind:"blank"}):o.push({kind:"text",text:d});else if(d==="```"){const h=a.join(`
|
|
3
|
+
`);if(a.length){const{html:m}=Xe(h,l);o.push({kind:"code-start",lang:l||"code"}),o.push({kind:"code-block",html:m}),o.push({kind:"code-end"})}i=!1}else a.push(d);if(i&&a.length){const{html:d}=Xe(a.join(`
|
|
4
|
+
`),l);o.push({kind:"code-start",lang:l||"code"}),o.push({kind:"code-block",html:d}),o.push({kind:"code-end"})}return o}const r=P(()=>e.text?s(e.text):[]);return(n,o)=>{const i=ke;return p(),f("div",Yt,[t.loading?(p(),f("div",es,[S(i,{name:"i-lucide-loader-2",class:"size-4 animate-spin"}),o[0]||(o[0]=x("span",null,"Fetching context… (includes SCM diff lookup)",-1))])):c(r).length?(p(),f("div",{key:1,class:"overflow-auto p-3 text-xs font-mono leading-relaxed",style:rt({maxHeight:t.maxHeight??"45vh"})},[(p(!0),f(j,null,Y(c(r),(l,a)=>(p(),f(j,{key:a},[l.kind==="h2"?(p(),f("div",ts,w(l.text),1)):l.kind==="h3"?(p(),f("div",ss,w(l.text),1)):l.kind==="note"?(p(),f("div",ns,w(l.text),1)):l.kind==="bullet"?(p(),f("div",rs,[o[1]||(o[1]=x("span",{class:"text-gray-400 shrink-0"},"·",-1)),x("span",null,w(l.text),1)])):l.kind==="text"?(p(),f("div",is,w(l.text),1)):l.kind==="blank"?(p(),f("div",os)):l.kind==="code-start"?(p(),f("div",as,w(l.lang||"code"),1)):l.kind==="code-block"?(p(),f("div",ls,[x("pre",{class:"hljs px-2 py-1 !bg-transparent whitespace-pre-wrap",innerHTML:l.html},null,8,cs)])):l.kind==="code-end"?(p(),f("div",us)):$("",!0)],64))),128))],4)):(p(),f("div",ps,"No context loaded"))])}}}),ot=Object.assign(ds,{__name:"MarkdownPreview"}),hs=ce({__name:"CopyAiPromptButton",props:{contextEndpoint:{}},setup(t){const e=t,{copy:s,copied:r}=Be(),n=it(),o=ne(!1),i=P(()=>(Tt().app?.baseURL??"/").replace(/\/$/,""));async function l(){o.value=!0;try{const a=await fetch(`${i.value}${e.contextEndpoint}?format=prompt`);if(!a.ok)throw new Error(`Request failed (${a.status})`);s(await a.text(),{toast:"AI prompt copied"})}catch(a){n.add({title:"Could not copy the prompt",description:Bt(a),color:"error"})}finally{o.value=!1}}return(a,d)=>{const h=_e;return p(),N(h,{icon:c(r)?"i-lucide-check":"i-lucide-clipboard-copy",size:"xs",color:"neutral",variant:"outline",loading:c(o),title:"Copy the exact request Piwi would send to the model — to reuse it elsewhere, or to check what it contains",onClick:l},{default:Q(()=>[A(w(c(r)?"Copied":"Copy prompt"),1)]),_:1},8,["icon","loading"])}}}),Lr=Object.assign(hs,{__name:"CopyAiPromptButton"}),Se=[{id:"clusterSummary",label:"Failure cluster summary",short:"Cluster"},{id:"sampleError",label:"Raw error message",short:"Error"},{id:"representativeExecution",label:"Representative execution overview",short:"Execution"},{id:"executionError",label:"Representative execution error",short:"Error"},{id:"runContext",label:"Run context (partial run, parallelism, flaky class)",short:"Run context"},{id:"testAnnotations",label:"Test annotations (@fixme/@flaky …)",short:"Annotations"},{id:"affectedTests",label:"Affected tests",short:"Tests"},{id:"testSource",label:"Test source code",short:"Source"},{id:"sourceFiles",label:"Full source files (suspect + imports)",short:"Files"},{id:"steps",label:"Test steps",short:"Steps"},{id:"failingSteps",label:"Failing steps",short:"Steps"},{id:"console",label:"Browser console logs",short:"Console"},{id:"networkRequests",label:"Network requests",short:"Network"},{id:"serverLogs",label:"Backend server logs",short:"Server logs"},{id:"serverTraces",label:"Server traces (spans)",short:"Traces"},{id:"webVitals",label:"Web vitals",short:"Web vitals"},{id:"appState",label:"App state at test end (URL/storage/cookies)",short:"App state"},{id:"ariaSnapshot",label:"ARIA snapshot",short:"ARIA"},{id:"domSnapshot",label:"DOM snapshot from trace (failure time)",short:"DOM"},{id:"screenshots",label:"Screenshots (attached as images)",short:"Screenshots"},{id:"visualDiff",label:"Visual diff vs last passing screenshot",short:"Visual diff"},{id:"browserDistribution",label:"Browser distribution",short:"Browsers"},{id:"recurrenceFlakiness",label:"Recurrence & flakiness",short:"Flakiness"},{id:"baselineComparison",label:"Compared to last pass (duration/vitals/steps)",short:"Baseline"},{id:"environmentDiff",label:"Environment diff vs last pass",short:"Env diff"},{id:"retryProgression",label:"Retry progression (per-attempt errors)",short:"Retries"},{id:"passedPeers",label:"Passing peers in same file",short:"Peers"},{id:"scmInvestigation",label:"SCM diff since last green",short:"SCM diff"},{id:"selectedCommits",label:"Manually selected commits",short:"Commits"},{id:"priorDiagnosis",label:"Prior diagnosis & triage",short:"Prior"},{id:"tracePointers",label:"Trace files",short:"Traces"},{id:"artifacts",label:"Attachments & artifacts (video, HAR)",short:"Artifacts"},{id:"nearestAriaNames",label:"Nearest matching ARIA names from snapshot",short:"Nearest ARIA"},{id:"alreadyGreen",label:"Baseline freshness / already-green check",short:"Already green"},{id:"topSuspectedCommit",label:"Top suspected commit",short:"Top commit"},{id:"failingAction",label:"Failing action from trace parsing",short:"Trace"},{id:"traceCallStack",label:"Full call stack with source (from trace)",short:"Call stack"},{id:"traceNetwork",label:"Network activity from trace (all requests)",short:"Trace net"},{id:"locatorHealing",label:"Alternative locators from prior success",short:"Alt locators"}],at=new Set(Se.map(t=>t.id)),lt=Object.fromEntries(Se.map(t=>[t.id,t.short]));function gs(t){return at.has(t)}function Br(t){const e=new Set;for(const s of t)if(s)for(const r of String(s).matchAll(/\[([a-zA-Z][a-zA-Z0-9]*)]/g))at.has(r[1])&&e.add(r[1]);return[...e]}const fs={class:"rounded-lg border border-default bg-elevated/30 px-2.5 py-2"},ks={key:0,class:"flex items-center gap-2 text-xs text-gray-400"},xs={key:1,class:"flex flex-wrap items-center gap-1.5"},ms={class:"text-xs font-medium text-gray-500 inline-flex items-center gap-1"},bs=["title","onClick"],ys={key:0,class:"text-xs text-gray-400"},ws=ce({__name:"DiagnosisCoverageStrip",props:{sections:{},notApplicable:{},tokenEstimate:{},loading:{type:Boolean}},emits:["view-section","open"],setup(t,{emit:e}){const s=t,r=e,n=P(()=>s.sections.map(l=>({id:l.id,short:lt[l.id]??l.title??l.id,truncated:l.truncated}))),o=P(()=>Math.max(0,Se.length-s.sections.length)),i=P(()=>{const l=s.tokenEstimate;return l?l>=1e3?`${(l/1e3).toFixed(1)}k`:String(l):""});return(l,a)=>{const d=ke,h=De;return p(),f("div",fs,[t.loading&&!t.sections.length?(p(),f("div",ks,[S(d,{name:"i-lucide-loader-circle",class:"size-3.5 animate-spin"}),a[1]||(a[1]=A(" Building context… ",-1))])):(p(),f("div",xs,[x("span",ms,[S(d,{name:"i-lucide-layers",class:"size-3.5"}),a[2]||(a[2]=A(" Context ",-1)),S(h,{topic:"cluster.coverage"})]),(p(!0),f(j,null,Y(c(n),m=>(p(),f("button",{key:m.id,type:"button",class:"inline-flex items-center gap-1 rounded-full border border-default bg-default px-2 py-0.5 text-xs hover:border-primary/50 transition-colors",title:m.truncated?`${m.short} (truncated)`:m.short,onClick:b=>r("view-section",m.id)},[S(d,{name:m.truncated?"i-lucide-scissors":"i-lucide-check",class:J(["size-3",m.truncated?"text-warning":"text-success"])},null,8,["name","class"]),A(" "+w(m.short),1)],8,bs))),128)),c(n).length?$("",!0):(p(),f("span",ys,"No evidence sections yet")),x("button",{type:"button",class:"ml-auto text-xs text-gray-400 hover:text-primary transition-colors whitespace-nowrap",onClick:a[0]||(a[0]=m=>r("open"))},[c(o)?(p(),f(j,{key:0},[A(w(c(o))+" not included · ",1)],64)):$("",!0),c(i)?(p(),f(j,{key:1},[A("~"+w(c(i))+" tokens",1)],64)):$("",!0),S(d,{name:"i-lucide-arrow-right",class:"size-3 inline align-text-bottom"})])]))])}}}),Dr=Object.assign(ws,{__name:"DiagnosisCoverageStrip"}),vs={class:"flex items-center justify-between w-full"},$s={class:"flex items-center gap-2"},_s={class:"font-semibold inline-flex items-center gap-1"},Ss={class:"text-xs text-gray-400"},Rs={class:"flex items-center gap-1"},Cs={class:"rounded-lg border border-default bg-elevated/30 p-3 mb-4"},As={class:"flex items-center justify-between gap-2 mb-2"},Ts={class:"text-xs font-medium text-gray-500 uppercase tracking-wide inline-flex items-center gap-1"},zs={class:"text-xs text-gray-400"},Is={class:"flex flex-wrap gap-1.5"},Es=["title"],Ps={class:"text-xs text-gray-400 mt-2"},Ls={class:"space-y-4"},Bs={class:"text-xs font-medium text-gray-500 uppercase tracking-wide mb-2"},Ds={class:"space-y-2"},qs=["data-section-id"],Fs={key:0,class:"text-center text-gray-400 py-8 text-sm"},Ms=ce({__name:"DiagnosisContextModal",props:{open:{type:Boolean},sections:{},tokenEstimate:{},imageTokenEstimate:{},loading:{type:Boolean},focusSection:{},citedSections:{},notApplicableSections:{}},emits:["update:open","refresh"],setup(t,{emit:e}){const s=t,r=P(()=>{const v=new Map;for(const y of s.sections)v.has(y.id)||v.set(y.id,y);return v}),n=P(()=>new Set(Object.keys(s.notApplicableSections??{}))),o=P(()=>new Set(s.citedSections??[])),i=P(()=>Se.map(v=>{if(n.value.has(v.id))return{id:v.id,short:v.short,label:v.label,state:"notApplicable",cited:o.value.has(v.id)};const y=r.value.get(v.id),L=y?y.truncated?"truncated":"present":"absent";return{id:v.id,short:v.short,label:v.label,state:L,cited:o.value.has(v.id)}})),l=P(()=>{const v={present:0,truncated:0,absent:0,notApplicable:0};for(const y of i.value)v[y.state]++;return v}),a={present:"bg-emerald-500",truncated:"bg-amber-500",absent:"bg-gray-300 dark:bg-gray-600",notApplicable:"bg-purple-400"};function d(v){if(v.state==="notApplicable"){const y=s.notApplicableSections?.[v.id];return`${v.label}: not applicable${y?` — ${y}`:""}`}return`${v.label}: ${v.state}${v.cited?" · cited by the diagnosis":""}`}const h=e,{copy:m,copied:b}=Be(),z=P(()=>{const v=[],y=["clusterSummary","sampleError","representativeExecution","executionError","runContext"],L=["testAnnotations","testSource","steps","failingSteps","console","networkRequests","serverLogs","serverTraces","webVitals","ariaSnapshot"],ee=["recurrenceFlakiness","baselineComparison","retryProgression","passedPeers","browserDistribution","affectedTests"],re=["scmInvestigation","selectedCommits"],te=["priorDiagnosis","tracePointers","artifacts"],q=(E,F)=>{const le=s.sections.filter(Ae=>E.includes(Ae.id));le.length>0&&v.push({label:F,items:le})};return q(y,"Primary"),q(L,"Test Evidence"),q(ee,"Analysis"),q(re,"SCM"),q(te,"Other"),v}),_=ne(null);ye(()=>[s.open,s.focusSection],async([v,y])=>{if(!v||!y)return;await zt();const L=document.querySelector(`[data-section-id="${y}"]`);L&&(L.scrollIntoView({behavior:"smooth",block:"start"}),_.value=y,setTimeout(()=>{_.value===y&&(_.value=null)},2500))});function H(v){let y=`## ${v.title}`;const L=[];return L.push(`${v.chars} chars`),v.truncated&&L.push("truncated"),v.items!=null&&L.push(`${v.items} items`),L.length&&(y+=` — ${L.join(", ")}`),y}return(v,y)=>{const L=De,ee=_e,re=ke,te=ot,q=qt;return p(),N(q,{open:t.open,title:"Context sent to AI",ui:{content:"max-w-5xl"},"onUpdate:open":y[2]||(y[2]=E=>h("update:open",E))},{header:Q(()=>[x("div",vs,[x("div",$s,[x("span",_s,[y[3]||(y[3]=A(" Context sent to AI ",-1)),S(L,{topic:"cluster.context-preview"})]),x("span",Ss,[A(" ~"+w(t.tokenEstimate)+" tokens",1),t.imageTokenEstimate?(p(),f(j,{key:0},[A(" ("+w(t.tokenEstimate-t.imageTokenEstimate)+" text + "+w(t.imageTokenEstimate)+" image)",1)],64)):$("",!0)])]),x("div",Rs,[S(ee,{icon:"i-lucide-refresh-cw",size:"xs",color:"neutral",variant:"ghost",loading:t.loading,onClick:y[0]||(y[0]=E=>h("refresh"))},null,8,["loading"]),S(ee,{icon:"i-lucide-x",size:"xs",color:"neutral",variant:"ghost",onClick:y[1]||(y[1]=E=>h("update:open",!1))})])])]),body:Q(()=>[y[7]||(y[7]=x("p",{class:"text-xs text-gray-500 dark:text-gray-400 mb-3"},"Copy individual sections or the full context below.",-1)),x("div",Cs,[x("div",As,[x("p",Ts,[y[4]||(y[4]=A(" Data coverage ",-1)),S(L,{topic:"cluster.coverage"})]),x("p",zs,w(c(l).present)+" present · "+w(c(l).truncated)+" truncated · "+w(c(l).absent)+" absent"+w(c(l).notApplicable?` · ${c(l).notApplicable} n/a`:""),1)]),x("div",Is,[(p(!0),f(j,null,Y(c(i),E=>(p(),f("span",{key:E.id,class:J(["inline-flex items-center gap-1 rounded border px-1.5 py-0.5 text-xs",[E.cited?"border-primary text-primary":"border-default",E.state==="absent"?"text-gray-400 opacity-70":"",E.state==="notApplicable"?"text-purple-500 border-purple-300 dark:border-purple-700":""]]),title:d(E)},[x("span",{class:J(["size-1.5 rounded-full shrink-0",a[E.state]])},null,2),A(" "+w(E.short)+" ",1),E.cited?(p(),N(re,{key:0,name:"i-lucide-quote",class:"size-2.5 shrink-0"})):$("",!0)],10,Es))),128))]),x("p",Ps,[y[5]||(y[5]=A(" Absent or truncated evidence lowers the diagnosis confidence. ",-1)),S(re,{name:"i-lucide-quote",class:"size-2.5 inline"}),y[6]||(y[6]=A(" marks sections the diagnosis cited. ",-1))])]),x("div",Ls,[(p(!0),f(j,null,Y(c(z),E=>(p(),f("div",{key:E.label},[x("p",Bs,w(E.label),1),x("div",Ds,[(p(!0),f(j,null,Y(E.items,F=>(p(),f("div",{key:F.id,"data-section-id":F.id,class:J(["relative rounded-lg transition-shadow",c(_)===F.id?"ring-2 ring-primary":c(o).has(F.id)?"ring-1 ring-primary/40":""])},[S(te,{text:H(F)+`
|
|
5
5
|
|
|
6
|
-
`+F.markdown},null,8,["text"]),S(ee,{icon:c(b)?"i-lucide-check":"i-lucide-clipboard",size:"xs",color:"neutral",variant:"ghost",class:"absolute top-1 right-1",onClick:le=>c(m)(F.markdown)},null,8,["icon","onClick"])],10,
|
|
7
|
-
]`).replace("lheading",
|
|
8
|
-
`).map(
|
|
9
|
-
`)}var ve=class{options;rules;lexer;constructor(t){this.options=t||
|
|
6
|
+
`+F.markdown},null,8,["text"]),S(ee,{icon:c(b)?"i-lucide-check":"i-lucide-clipboard",size:"xs",color:"neutral",variant:"ghost",class:"absolute top-1 right-1",onClick:le=>c(m)(F.markdown)},null,8,["icon","onClick"])],10,qs))),128))])]))),128)),t.sections.length===0&&!t.loading?(p(),f("div",Fs," No context sections available. ")):$("",!0)])]),_:1},8,["open"])}}}),qr=Object.assign(Ms,{__name:"DiagnosisContextModal"});function qe(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var ae=qe();function ct(t){ae=t}var ie={exec:()=>null};function R(t,e=""){let s=typeof t=="string"?t:t.source,r={replace:(n,o)=>{let i=typeof o=="string"?o:o.source;return i=i.replace(O.caret,"$1"),s=s.replace(n,i),r},getRegex:()=>new RegExp(s,e)};return r}var Ns=(()=>{try{return!!new RegExp("(?<=1)(?<!1)")}catch{return!1}})(),O={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] +\S/,listReplaceTask:/^\[[ xX]\] +/,listTaskCheckbox:/\[[ xX]\]/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:t=>new RegExp(`^( {0,3}${t})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}#`),htmlBeginRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}<(?:[a-z].*>|!--)`,"i"),blockquoteBeginRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}>`)},js=/^(?:[ \t]*(?:\n|$))+/,Os=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,Hs=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,xe=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,Zs=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,Fe=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,ut=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,pt=R(ut).replace(/bull/g,Fe).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),Us=R(ut).replace(/bull/g,Fe).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),Me=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,Vs=/^[^\n]+/,Ne=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,Qs=R(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",Ne).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),Gs=R(/^(bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,Fe).getRegex(),Re="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",je=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,Ws=R("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",je).replace("tag",Re).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),dt=R(Me).replace("hr",xe).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Re).getRegex(),Xs=R(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",dt).getRegex(),Oe={blockquote:Xs,code:Os,def:Qs,fences:Hs,heading:Zs,hr:xe,html:Ws,lheading:pt,list:Gs,newline:js,paragraph:dt,table:ie,text:Vs},Ke=R("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",xe).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Re).getRegex(),Ks={...Oe,lheading:Us,table:Ke,paragraph:R(Me).replace("hr",xe).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",Ke).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Re).getRegex()},Js={...Oe,html:R(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",je).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:ie,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:R(Me).replace("hr",xe).replace("heading",` *#{1,6} *[^
|
|
7
|
+
]`).replace("lheading",pt).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},Ys=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,en=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,ht=/^( {2,}|\\)\n(?!\s*$)/,tn=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,ue=/[\p{P}\p{S}]/u,Ce=/[\s\p{P}\p{S}]/u,He=/[^\s\p{P}\p{S}]/u,sn=R(/^((?![*_])punctSpace)/,"u").replace(/punctSpace/g,Ce).getRegex(),gt=/(?!~)[\p{P}\p{S}]/u,nn=/(?!~)[\s\p{P}\p{S}]/u,rn=/(?:[^\s\p{P}\p{S}]|~)/u,on=R(/link|precode-code|html/,"g").replace("link",/\[(?:[^\[\]`]|(?<a>`+)[^`]+\k<a>(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace("precode-",Ns?"(?<!`)()":"(^^|[^`])").replace("code",/(?<b>`+)[^`]+\k<b>(?!`)/).replace("html",/<(?! )[^<>]*?>/).getRegex(),ft=/^(?:\*+(?:((?!\*)punct)|([^\s*]))?)|^_+(?:((?!_)punct)|([^\s_]))?/,an=R(ft,"u").replace(/punct/g,ue).getRegex(),ln=R(ft,"u").replace(/punct/g,gt).getRegex(),kt="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",cn=R(kt,"gu").replace(/notPunctSpace/g,He).replace(/punctSpace/g,Ce).replace(/punct/g,ue).getRegex(),un=R(kt,"gu").replace(/notPunctSpace/g,rn).replace(/punctSpace/g,nn).replace(/punct/g,gt).getRegex(),pn=R("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,He).replace(/punctSpace/g,Ce).replace(/punct/g,ue).getRegex(),dn=R(/^~~?(?:((?!~)punct)|[^\s~])/,"u").replace(/punct/g,ue).getRegex(),hn="^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)",gn=R(hn,"gu").replace(/notPunctSpace/g,He).replace(/punctSpace/g,Ce).replace(/punct/g,ue).getRegex(),fn=R(/\\(punct)/,"gu").replace(/punct/g,ue).getRegex(),kn=R(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),xn=R(je).replace("(?:-->|$)","-->").getRegex(),mn=R("^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>").replace("comment",xn).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),we=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\])|[^\[\]\\`])*?/,bn=R(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]+(?:\n[ \t]*)?|\n[ \t]*)(title))?\s*\)/).replace("label",we).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),xt=R(/^!?\[(label)\]\[(ref)\]/).replace("label",we).replace("ref",Ne).getRegex(),mt=R(/^!?\[(ref)\](?:\[\])?/).replace("ref",Ne).getRegex(),yn=R("reflink|nolink(?!\\()","g").replace("reflink",xt).replace("nolink",mt).getRegex(),Je=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,Ze={_backpedal:ie,anyPunctuation:fn,autolink:kn,blockSkip:on,br:ht,code:en,del:ie,delLDelim:ie,delRDelim:ie,emStrongLDelim:an,emStrongRDelimAst:cn,emStrongRDelimUnd:pn,escape:Ys,link:bn,nolink:mt,punctuation:sn,reflink:xt,reflinkSearch:yn,tag:mn,text:tn,url:ie},wn={...Ze,link:R(/^!?\[(label)\]\((.*?)\)/).replace("label",we).getRegex(),reflink:R(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",we).getRegex()},Ee={...Ze,emStrongRDelimAst:un,emStrongLDelim:ln,delLDelim:dn,delRDelim:gn,url:R(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("protocol",Je).replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:R(/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|protocol:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/).replace("protocol",Je).getRegex()},vn={...Ee,br:R(ht).replace("{2,}","*").getRegex(),text:R(Ee.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()},be={normal:Oe,gfm:Ks,pedantic:Js},he={normal:Ze,gfm:Ee,breaks:vn,pedantic:wn},$n={"&":"&","<":"<",">":">",'"':""","'":"'"},Ye=t=>$n[t];function K(t,e){if(e){if(O.escapeTest.test(t))return t.replace(O.escapeReplace,Ye)}else if(O.escapeTestNoEncode.test(t))return t.replace(O.escapeReplaceNoEncode,Ye);return t}function et(t){try{t=encodeURI(t).replace(O.percentDecode,"%")}catch{return null}return t}function tt(t,e){let s=t.replace(O.findPipe,(o,i,l)=>{let a=!1,d=i;for(;--d>=0&&l[d]==="\\";)a=!a;return a?"|":" |"}),r=s.split(O.splitPipe),n=0;if(r[0].trim()||r.shift(),r.length>0&&!r.at(-1)?.trim()&&r.pop(),e)if(r.length>e)r.splice(e);else for(;r.length<e;)r.push("");for(;n<r.length;n++)r[n]=r[n].trim().replace(O.slashPipe,"|");return r}function ge(t,e,s){let r=t.length;if(r===0)return"";let n=0;for(;n<r&&t.charAt(r-n-1)===e;)n++;return t.slice(0,r-n)}function _n(t,e){if(t.indexOf(e[1])===-1)return-1;let s=0;for(let r=0;r<t.length;r++)if(t[r]==="\\")r++;else if(t[r]===e[0])s++;else if(t[r]===e[1]&&(s--,s<0))return r;return s>0?-2:-1}function Sn(t,e=0){let s=e,r="";for(let n of t)if(n===" "){let o=4-s%4;r+=" ".repeat(o),s+=o}else r+=n,s++;return r}function st(t,e,s,r,n){let o=e.href,i=e.title||null,l=t[1].replace(n.other.outputLinkReplace,"$1");r.state.inLink=!0;let a={type:t[0].charAt(0)==="!"?"image":"link",raw:s,href:o,title:i,text:l,tokens:r.inlineTokens(l)};return r.state.inLink=!1,a}function Rn(t,e,s){let r=t.match(s.other.indentCodeCompensation);if(r===null)return e;let n=r[1];return e.split(`
|
|
8
|
+
`).map(o=>{let i=o.match(s.other.beginningSpace);if(i===null)return o;let[l]=i;return l.length>=n.length?o.slice(n.length):o}).join(`
|
|
9
|
+
`)}var ve=class{options;rules;lexer;constructor(t){this.options=t||ae}space(t){let e=this.rules.block.newline.exec(t);if(e&&e[0].length>0)return{type:"space",raw:e[0]}}code(t){let e=this.rules.block.code.exec(t);if(e){let s=e[0].replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:e[0],codeBlockStyle:"indented",text:this.options.pedantic?s:ge(s,`
|
|
10
10
|
`)}}}fences(t){let e=this.rules.block.fences.exec(t);if(e){let s=e[0],r=Rn(s,e[3]||"",this.rules);return{type:"code",raw:s,lang:e[2]?e[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):e[2],text:r}}}heading(t){let e=this.rules.block.heading.exec(t);if(e){let s=e[2].trim();if(this.rules.other.endingHash.test(s)){let r=ge(s,"#");(this.options.pedantic||!r||this.rules.other.endingSpaceChar.test(r))&&(s=r.trim())}return{type:"heading",raw:e[0],depth:e[1].length,text:s,tokens:this.lexer.inline(s)}}}hr(t){let e=this.rules.block.hr.exec(t);if(e)return{type:"hr",raw:ge(e[0],`
|
|
11
11
|
`)}}blockquote(t){let e=this.rules.block.blockquote.exec(t);if(e){let s=ge(e[0],`
|
|
12
12
|
`).split(`
|
|
13
|
-
`),r="",n="",
|
|
13
|
+
`),r="",n="",o=[];for(;s.length>0;){let i=!1,l=[],a;for(a=0;a<s.length;a++)if(this.rules.other.blockquoteStart.test(s[a]))l.push(s[a]),i=!0;else if(!i)l.push(s[a]);else break;s=s.slice(a);let d=l.join(`
|
|
14
14
|
`),h=d.replace(this.rules.other.blockquoteSetextReplace,`
|
|
15
15
|
$1`).replace(this.rules.other.blockquoteSetextReplace2,"");r=r?`${r}
|
|
16
16
|
${d}`:d,n=n?`${n}
|
|
17
|
-
${h}`:h;let m=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(h,
|
|
17
|
+
${h}`:h;let m=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(h,o,!0),this.lexer.state.top=m,s.length===0)break;let b=o.at(-1);if(b?.type==="code")break;if(b?.type==="blockquote"){let z=b,_=z.raw+`
|
|
18
18
|
`+s.join(`
|
|
19
|
-
`),H=this.blockquote(_);
|
|
19
|
+
`),H=this.blockquote(_);o[o.length-1]=H,r=r.substring(0,r.length-z.raw.length)+H.raw,n=n.substring(0,n.length-z.text.length)+H.text;break}else if(b?.type==="list"){let z=b,_=z.raw+`
|
|
20
20
|
`+s.join(`
|
|
21
|
-
`),H=this.list(_);
|
|
22
|
-
`);continue}}return{type:"blockquote",raw:r,tokens:
|
|
21
|
+
`),H=this.list(_);o[o.length-1]=H,r=r.substring(0,r.length-b.raw.length)+H.raw,n=n.substring(0,n.length-z.raw.length)+H.raw,s=_.substring(o.at(-1).raw.length).split(`
|
|
22
|
+
`);continue}}return{type:"blockquote",raw:r,tokens:o,text:n}}}list(t){let e=this.rules.block.list.exec(t);if(e){let s=e[1].trim(),r=s.length>1,n={type:"list",raw:"",ordered:r,start:r?+s.slice(0,-1):"",loose:!1,items:[]};s=r?`\\d{1,9}\\${s.slice(-1)}`:`\\${s}`,this.options.pedantic&&(s=r?s:"[*+-]");let o=this.rules.other.listItemRegex(s),i=!1;for(;t;){let a=!1,d="",h="";if(!(e=o.exec(t))||this.rules.block.hr.test(t))break;d=e[0],t=t.substring(d.length);let m=Sn(e[2].split(`
|
|
23
23
|
`,1)[0],e[1].length),b=t.split(`
|
|
24
24
|
`,1)[0],z=!m.trim(),_=0;if(this.options.pedantic?(_=2,h=m.trimStart()):z?_=e[1].length+1:(_=m.search(this.rules.other.nonSpaceChar),_=_>4?1:_,h=m.slice(_),_+=e[1].length),z&&this.rules.other.blankLine.test(b)&&(d+=b+`
|
|
25
|
-
`,t=t.substring(b.length+1),
|
|
25
|
+
`,t=t.substring(b.length+1),a=!0),!a){let H=this.rules.other.nextBulletRegex(_),v=this.rules.other.hrRegex(_),y=this.rules.other.fencesBeginRegex(_),L=this.rules.other.headingBeginRegex(_),ee=this.rules.other.htmlBeginRegex(_),re=this.rules.other.blockquoteBeginRegex(_);for(;t;){let te=t.split(`
|
|
26
26
|
`,1)[0],q;if(b=te,this.options.pedantic?(b=b.replace(this.rules.other.listReplaceNesting," "),q=b):q=b.replace(this.rules.other.tabCharGlobal," "),y.test(b)||L.test(b)||ee.test(b)||re.test(b)||H.test(b)||v.test(b))break;if(q.search(this.rules.other.nonSpaceChar)>=_||!b.trim())h+=`
|
|
27
27
|
`+q.slice(_);else{if(z||m.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4||y.test(m)||L.test(m)||v.test(m))break;h+=`
|
|
28
28
|
`+b}z=!b.trim(),d+=te+`
|
|
29
|
-
`,t=t.substring(te.length+1),m=q.slice(_)}}n.loose||(i?n.loose=!0:this.rules.other.doubleBlankLine.test(d)&&(i=!0)),n.items.push({type:"list_item",raw:d,task:!!this.options.gfm&&this.rules.other.listIsTask.test(h),loose:!1,text:h,tokens:[]}),n.raw+=d}let l=n.items.at(-1);if(l)l.raw=l.raw.trimEnd(),l.text=l.text.trimEnd();else return;n.raw=n.raw.trimEnd();for(let
|
|
30
|
-
`):[],
|
|
31
|
-
`?e[1].slice(0,-1):e[1];return{type:"paragraph",raw:e[0],text:s,tokens:this.lexer.inline(s)}}}text(t){let e=this.rules.block.text.exec(t);if(e)return{type:"text",raw:e[0],text:e[0],tokens:this.lexer.inline(e[0])}}escape(t){let e=this.rules.inline.escape.exec(t);if(e)return{type:"escape",raw:e[0],text:e[1]}}tag(t){let e=this.rules.inline.tag.exec(t);if(e)return!this.lexer.state.inLink&&this.rules.other.startATag.test(e[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(e[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(e[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(e[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:e[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:e[0]}}link(t){let e=this.rules.inline.link.exec(t);if(e){let s=e[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(s)){if(!this.rules.other.endAngleBracket.test(s))return;let
|
|
29
|
+
`,t=t.substring(te.length+1),m=q.slice(_)}}n.loose||(i?n.loose=!0:this.rules.other.doubleBlankLine.test(d)&&(i=!0)),n.items.push({type:"list_item",raw:d,task:!!this.options.gfm&&this.rules.other.listIsTask.test(h),loose:!1,text:h,tokens:[]}),n.raw+=d}let l=n.items.at(-1);if(l)l.raw=l.raw.trimEnd(),l.text=l.text.trimEnd();else return;n.raw=n.raw.trimEnd();for(let a of n.items){if(this.lexer.state.top=!1,a.tokens=this.lexer.blockTokens(a.text,[]),a.task){if(a.text=a.text.replace(this.rules.other.listReplaceTask,""),a.tokens[0]?.type==="text"||a.tokens[0]?.type==="paragraph"){a.tokens[0].raw=a.tokens[0].raw.replace(this.rules.other.listReplaceTask,""),a.tokens[0].text=a.tokens[0].text.replace(this.rules.other.listReplaceTask,"");for(let h=this.lexer.inlineQueue.length-1;h>=0;h--)if(this.rules.other.listIsTask.test(this.lexer.inlineQueue[h].src)){this.lexer.inlineQueue[h].src=this.lexer.inlineQueue[h].src.replace(this.rules.other.listReplaceTask,"");break}}let d=this.rules.other.listTaskCheckbox.exec(a.raw);if(d){let h={type:"checkbox",raw:d[0]+" ",checked:d[0]!=="[ ]"};a.checked=h.checked,n.loose?a.tokens[0]&&["paragraph","text"].includes(a.tokens[0].type)&&"tokens"in a.tokens[0]&&a.tokens[0].tokens?(a.tokens[0].raw=h.raw+a.tokens[0].raw,a.tokens[0].text=h.raw+a.tokens[0].text,a.tokens[0].tokens.unshift(h)):a.tokens.unshift({type:"paragraph",raw:h.raw,text:h.raw,tokens:[h]}):a.tokens.unshift(h)}}if(!n.loose){let d=a.tokens.filter(m=>m.type==="space"),h=d.length>0&&d.some(m=>this.rules.other.anyLine.test(m.raw));n.loose=h}}if(n.loose)for(let a of n.items){a.loose=!0;for(let d of a.tokens)d.type==="text"&&(d.type="paragraph")}return n}}html(t){let e=this.rules.block.html.exec(t);if(e)return{type:"html",block:!0,raw:e[0],pre:e[1]==="pre"||e[1]==="script"||e[1]==="style",text:e[0]}}def(t){let e=this.rules.block.def.exec(t);if(e){let s=e[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal," "),r=e[2]?e[2].replace(this.rules.other.hrefBrackets,"$1").replace(this.rules.inline.anyPunctuation,"$1"):"",n=e[3]?e[3].substring(1,e[3].length-1).replace(this.rules.inline.anyPunctuation,"$1"):e[3];return{type:"def",tag:s,raw:e[0],href:r,title:n}}}table(t){let e=this.rules.block.table.exec(t);if(!e||!this.rules.other.tableDelimiter.test(e[2]))return;let s=tt(e[1]),r=e[2].replace(this.rules.other.tableAlignChars,"").split("|"),n=e[3]?.trim()?e[3].replace(this.rules.other.tableRowBlankLine,"").split(`
|
|
30
|
+
`):[],o={type:"table",raw:e[0],header:[],align:[],rows:[]};if(s.length===r.length){for(let i of r)this.rules.other.tableAlignRight.test(i)?o.align.push("right"):this.rules.other.tableAlignCenter.test(i)?o.align.push("center"):this.rules.other.tableAlignLeft.test(i)?o.align.push("left"):o.align.push(null);for(let i=0;i<s.length;i++)o.header.push({text:s[i],tokens:this.lexer.inline(s[i]),header:!0,align:o.align[i]});for(let i of n)o.rows.push(tt(i,o.header.length).map((l,a)=>({text:l,tokens:this.lexer.inline(l),header:!1,align:o.align[a]})));return o}}lheading(t){let e=this.rules.block.lheading.exec(t);if(e){let s=e[1].trim();return{type:"heading",raw:e[0],depth:e[2].charAt(0)==="="?1:2,text:s,tokens:this.lexer.inline(s)}}}paragraph(t){let e=this.rules.block.paragraph.exec(t);if(e){let s=e[1].charAt(e[1].length-1)===`
|
|
31
|
+
`?e[1].slice(0,-1):e[1];return{type:"paragraph",raw:e[0],text:s,tokens:this.lexer.inline(s)}}}text(t){let e=this.rules.block.text.exec(t);if(e)return{type:"text",raw:e[0],text:e[0],tokens:this.lexer.inline(e[0])}}escape(t){let e=this.rules.inline.escape.exec(t);if(e)return{type:"escape",raw:e[0],text:e[1]}}tag(t){let e=this.rules.inline.tag.exec(t);if(e)return!this.lexer.state.inLink&&this.rules.other.startATag.test(e[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(e[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(e[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(e[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:e[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:e[0]}}link(t){let e=this.rules.inline.link.exec(t);if(e){let s=e[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(s)){if(!this.rules.other.endAngleBracket.test(s))return;let o=ge(s.slice(0,-1),"\\");if((s.length-o.length)%2===0)return}else{let o=_n(e[2],"()");if(o===-2)return;if(o>-1){let i=(e[0].indexOf("!")===0?5:4)+e[1].length+o;e[2]=e[2].substring(0,o),e[0]=e[0].substring(0,i).trim(),e[3]=""}}let r=e[2],n="";if(this.options.pedantic){let o=this.rules.other.pedanticHrefTitle.exec(r);o&&(r=o[1],n=o[3])}else n=e[3]?e[3].slice(1,-1):"";return r=r.trim(),this.rules.other.startAngleBracket.test(r)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(s)?r=r.slice(1):r=r.slice(1,-1)),st(e,{href:r&&r.replace(this.rules.inline.anyPunctuation,"$1"),title:n&&n.replace(this.rules.inline.anyPunctuation,"$1")},e[0],this.lexer,this.rules)}}reflink(t,e){let s;if((s=this.rules.inline.reflink.exec(t))||(s=this.rules.inline.nolink.exec(t))){let r=(s[2]||s[1]).replace(this.rules.other.multipleSpaceGlobal," "),n=e[r.toLowerCase()];if(!n){let o=s[0].charAt(0);return{type:"text",raw:o,text:o}}return st(s,n,s[0],this.lexer,this.rules)}}emStrong(t,e,s=""){let r=this.rules.inline.emStrongLDelim.exec(t);if(!(!r||!r[1]&&!r[2]&&!r[3]&&!r[4]||r[4]&&s.match(this.rules.other.unicodeAlphaNumeric))&&(!(r[1]||r[3])||!s||this.rules.inline.punctuation.exec(s))){let n=[...r[0]].length-1,o,i,l=n,a=0,d=r[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(d.lastIndex=0,e=e.slice(-1*t.length+n);(r=d.exec(e))!==null;){if(o=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!o)continue;if(i=[...o].length,r[3]||r[4]){l+=i;continue}else if((r[5]||r[6])&&n%3&&!((n+i)%3)){a+=i;continue}if(l-=i,l>0)continue;i=Math.min(i,i+l+a);let h=[...r[0]][0].length,m=t.slice(0,n+r.index+h+i);if(Math.min(n,i)%2){let z=m.slice(1,-1);return{type:"em",raw:m,text:z,tokens:this.lexer.inlineTokens(z)}}let b=m.slice(2,-2);return{type:"strong",raw:m,text:b,tokens:this.lexer.inlineTokens(b)}}}}codespan(t){let e=this.rules.inline.code.exec(t);if(e){let s=e[2].replace(this.rules.other.newLineCharGlobal," "),r=this.rules.other.nonSpaceChar.test(s),n=this.rules.other.startingSpaceChar.test(s)&&this.rules.other.endingSpaceChar.test(s);return r&&n&&(s=s.substring(1,s.length-1)),{type:"codespan",raw:e[0],text:s}}}br(t){let e=this.rules.inline.br.exec(t);if(e)return{type:"br",raw:e[0]}}del(t,e,s=""){let r=this.rules.inline.delLDelim.exec(t);if(r&&(!r[1]||!s||this.rules.inline.punctuation.exec(s))){let n=[...r[0]].length-1,o,i,l=n,a=this.rules.inline.delRDelim;for(a.lastIndex=0,e=e.slice(-1*t.length+n);(r=a.exec(e))!==null;){if(o=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!o||(i=[...o].length,i!==n))continue;if(r[3]||r[4]){l+=i;continue}if(l-=i,l>0)continue;i=Math.min(i,i+l);let d=[...r[0]][0].length,h=t.slice(0,n+r.index+d+i),m=h.slice(n,-n);return{type:"del",raw:h,text:m,tokens:this.lexer.inlineTokens(m)}}}}autolink(t){let e=this.rules.inline.autolink.exec(t);if(e){let s,r;return e[2]==="@"?(s=e[1],r="mailto:"+s):(s=e[1],r=s),{type:"link",raw:e[0],text:s,href:r,tokens:[{type:"text",raw:s,text:s}]}}}url(t){let e;if(e=this.rules.inline.url.exec(t)){let s,r;if(e[2]==="@")s=e[0],r="mailto:"+s;else{let n;do n=e[0],e[0]=this.rules.inline._backpedal.exec(e[0])?.[0]??"";while(n!==e[0]);s=e[0],e[1]==="www."?r="http://"+e[0]:r=e[0]}return{type:"link",raw:e[0],text:s,href:r,tokens:[{type:"text",raw:s,text:s}]}}}inlineText(t){let e=this.rules.inline.text.exec(t);if(e){let s=this.lexer.state.inRawBlock;return{type:"text",raw:e[0],text:e[0],escaped:s}}}},G=class Pe{tokens;options;state;inlineQueue;tokenizer;constructor(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||ae,this.options.tokenizer=this.options.tokenizer||new ve,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let s={other:O,block:be.normal,inline:he.normal};this.options.pedantic?(s.block=be.pedantic,s.inline=he.pedantic):this.options.gfm&&(s.block=be.gfm,this.options.breaks?s.inline=he.breaks:s.inline=he.gfm),this.tokenizer.rules=s}static get rules(){return{block:be,inline:he}}static lex(e,s){return new Pe(s).lex(e)}static lexInline(e,s){return new Pe(s).inlineTokens(e)}lex(e){e=e.replace(O.carriageReturn,`
|
|
32
32
|
`),this.blockTokens(e,this.tokens);for(let s=0;s<this.inlineQueue.length;s++){let r=this.inlineQueue[s];this.inlineTokens(r.src,r.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(e,s=[],r=!1){for(this.tokenizer.lexer=this,this.options.pedantic&&(e=e.replace(O.tabCharGlobal," ").replace(O.spaceLine,""));e;){let n;if(this.options.extensions?.block?.some(i=>(n=i.call({lexer:this},e,s))?(e=e.substring(n.raw.length),s.push(n),!0):!1))continue;if(n=this.tokenizer.space(e)){e=e.substring(n.raw.length);let i=s.at(-1);n.raw.length===1&&i!==void 0?i.raw+=`
|
|
33
33
|
`:s.push(n);continue}if(n=this.tokenizer.code(e)){e=e.substring(n.raw.length);let i=s.at(-1);i?.type==="paragraph"||i?.type==="text"?(i.raw+=(i.raw.endsWith(`
|
|
34
34
|
`)?"":`
|
|
@@ -36,44 +36,44 @@ ${h}`:h;let m=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTo
|
|
|
36
36
|
`+n.text,this.inlineQueue.at(-1).src=i.text):s.push(n);continue}if(n=this.tokenizer.fences(e)){e=e.substring(n.raw.length),s.push(n);continue}if(n=this.tokenizer.heading(e)){e=e.substring(n.raw.length),s.push(n);continue}if(n=this.tokenizer.hr(e)){e=e.substring(n.raw.length),s.push(n);continue}if(n=this.tokenizer.blockquote(e)){e=e.substring(n.raw.length),s.push(n);continue}if(n=this.tokenizer.list(e)){e=e.substring(n.raw.length),s.push(n);continue}if(n=this.tokenizer.html(e)){e=e.substring(n.raw.length),s.push(n);continue}if(n=this.tokenizer.def(e)){e=e.substring(n.raw.length);let i=s.at(-1);i?.type==="paragraph"||i?.type==="text"?(i.raw+=(i.raw.endsWith(`
|
|
37
37
|
`)?"":`
|
|
38
38
|
`)+n.raw,i.text+=`
|
|
39
|
-
`+n.raw,this.inlineQueue.at(-1).src=i.text):this.tokens.links[n.tag]||(this.tokens.links[n.tag]={href:n.href,title:n.title},s.push(n));continue}if(n=this.tokenizer.table(e)){e=e.substring(n.raw.length),s.push(n);continue}if(n=this.tokenizer.lheading(e)){e=e.substring(n.raw.length),s.push(n);continue}let
|
|
39
|
+
`+n.raw,this.inlineQueue.at(-1).src=i.text):this.tokens.links[n.tag]||(this.tokens.links[n.tag]={href:n.href,title:n.title},s.push(n));continue}if(n=this.tokenizer.table(e)){e=e.substring(n.raw.length),s.push(n);continue}if(n=this.tokenizer.lheading(e)){e=e.substring(n.raw.length),s.push(n);continue}let o=e;if(this.options.extensions?.startBlock){let i=1/0,l=e.slice(1),a;this.options.extensions.startBlock.forEach(d=>{a=d.call({lexer:this},l),typeof a=="number"&&a>=0&&(i=Math.min(i,a))}),i<1/0&&i>=0&&(o=e.substring(0,i+1))}if(this.state.top&&(n=this.tokenizer.paragraph(o))){let i=s.at(-1);r&&i?.type==="paragraph"?(i.raw+=(i.raw.endsWith(`
|
|
40
40
|
`)?"":`
|
|
41
41
|
`)+n.raw,i.text+=`
|
|
42
|
-
`+n.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=i.text):s.push(n),r=
|
|
42
|
+
`+n.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=i.text):s.push(n),r=o.length!==e.length,e=e.substring(n.raw.length);continue}if(n=this.tokenizer.text(e)){e=e.substring(n.raw.length);let i=s.at(-1);i?.type==="text"?(i.raw+=(i.raw.endsWith(`
|
|
43
43
|
`)?"":`
|
|
44
44
|
`)+n.raw,i.text+=`
|
|
45
|
-
`+n.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=i.text):s.push(n);continue}if(e){let i="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(i);break}else throw new Error(i)}}return this.state.top=!0,s}inline(e,s=[]){return this.inlineQueue.push({src:e,tokens:s}),s}inlineTokens(e,s=[]){this.tokenizer.lexer=this;let r=e,n=null;if(this.tokens.links){let
|
|
45
|
+
`+n.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=i.text):s.push(n);continue}if(e){let i="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(i);break}else throw new Error(i)}}return this.state.top=!0,s}inline(e,s=[]){return this.inlineQueue.push({src:e,tokens:s}),s}inlineTokens(e,s=[]){this.tokenizer.lexer=this;let r=e,n=null;if(this.tokens.links){let a=Object.keys(this.tokens.links);if(a.length>0)for(;(n=this.tokenizer.rules.inline.reflinkSearch.exec(r))!==null;)a.includes(n[0].slice(n[0].lastIndexOf("[")+1,-1))&&(r=r.slice(0,n.index)+"["+"a".repeat(n[0].length-2)+"]"+r.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(n=this.tokenizer.rules.inline.anyPunctuation.exec(r))!==null;)r=r.slice(0,n.index)+"++"+r.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);let o;for(;(n=this.tokenizer.rules.inline.blockSkip.exec(r))!==null;)o=n[2]?n[2].length:0,r=r.slice(0,n.index+o)+"["+"a".repeat(n[0].length-o-2)+"]"+r.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);r=this.options.hooks?.emStrongMask?.call({lexer:this},r)??r;let i=!1,l="";for(;e;){i||(l=""),i=!1;let a;if(this.options.extensions?.inline?.some(h=>(a=h.call({lexer:this},e,s))?(e=e.substring(a.raw.length),s.push(a),!0):!1))continue;if(a=this.tokenizer.escape(e)){e=e.substring(a.raw.length),s.push(a);continue}if(a=this.tokenizer.tag(e)){e=e.substring(a.raw.length),s.push(a);continue}if(a=this.tokenizer.link(e)){e=e.substring(a.raw.length),s.push(a);continue}if(a=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(a.raw.length);let h=s.at(-1);a.type==="text"&&h?.type==="text"?(h.raw+=a.raw,h.text+=a.text):s.push(a);continue}if(a=this.tokenizer.emStrong(e,r,l)){e=e.substring(a.raw.length),s.push(a);continue}if(a=this.tokenizer.codespan(e)){e=e.substring(a.raw.length),s.push(a);continue}if(a=this.tokenizer.br(e)){e=e.substring(a.raw.length),s.push(a);continue}if(a=this.tokenizer.del(e,r,l)){e=e.substring(a.raw.length),s.push(a);continue}if(a=this.tokenizer.autolink(e)){e=e.substring(a.raw.length),s.push(a);continue}if(!this.state.inLink&&(a=this.tokenizer.url(e))){e=e.substring(a.raw.length),s.push(a);continue}let d=e;if(this.options.extensions?.startInline){let h=1/0,m=e.slice(1),b;this.options.extensions.startInline.forEach(z=>{b=z.call({lexer:this},m),typeof b=="number"&&b>=0&&(h=Math.min(h,b))}),h<1/0&&h>=0&&(d=e.substring(0,h+1))}if(a=this.tokenizer.inlineText(d)){e=e.substring(a.raw.length),a.raw.slice(-1)!=="_"&&(l=a.raw.slice(-1)),i=!0;let h=s.at(-1);h?.type==="text"?(h.raw+=a.raw,h.text+=a.text):s.push(a);continue}if(e){let h="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(h);break}else throw new Error(h)}}return s}},$e=class{options;parser;constructor(t){this.options=t||ae}space(t){return""}code({text:t,lang:e,escaped:s}){let r=(e||"").match(O.notSpaceStart)?.[0],n=t.replace(O.endingNewline,"")+`
|
|
46
46
|
`;return r?'<pre><code class="language-'+K(r)+'">'+(s?n:K(n,!0))+`</code></pre>
|
|
47
47
|
`:"<pre><code>"+(s?n:K(n,!0))+`</code></pre>
|
|
48
48
|
`}blockquote({tokens:t}){return`<blockquote>
|
|
49
49
|
${this.parser.parse(t)}</blockquote>
|
|
50
50
|
`}html({text:t}){return t}def(t){return""}heading({tokens:t,depth:e}){return`<h${e}>${this.parser.parseInline(t)}</h${e}>
|
|
51
51
|
`}hr(t){return`<hr>
|
|
52
|
-
`}list(t){let e=t.ordered,s=t.start,r="";for(let i=0;i<t.items.length;i++){let l=t.items[i];r+=this.listitem(l)}let n=e?"ol":"ul",
|
|
52
|
+
`}list(t){let e=t.ordered,s=t.start,r="";for(let i=0;i<t.items.length;i++){let l=t.items[i];r+=this.listitem(l)}let n=e?"ol":"ul",o=e&&s!==1?' start="'+s+'"':"";return"<"+n+o+`>
|
|
53
53
|
`+r+"</"+n+`>
|
|
54
54
|
`}listitem(t){return`<li>${this.parser.parse(t.tokens)}</li>
|
|
55
55
|
`}checkbox({checked:t}){return"<input "+(t?'checked="" ':"")+'disabled="" type="checkbox"> '}paragraph({tokens:t}){return`<p>${this.parser.parseInline(t)}</p>
|
|
56
|
-
`}table(t){let e="",s="";for(let n=0;n<t.header.length;n++)s+=this.tablecell(t.header[n]);e+=this.tablerow({text:s});let r="";for(let n=0;n<t.rows.length;n++){let
|
|
56
|
+
`}table(t){let e="",s="";for(let n=0;n<t.header.length;n++)s+=this.tablecell(t.header[n]);e+=this.tablerow({text:s});let r="";for(let n=0;n<t.rows.length;n++){let o=t.rows[n];s="";for(let i=0;i<o.length;i++)s+=this.tablecell(o[i]);r+=this.tablerow({text:s})}return r&&(r=`<tbody>${r}</tbody>`),`<table>
|
|
57
57
|
<thead>
|
|
58
58
|
`+e+`</thead>
|
|
59
59
|
`+r+`</table>
|
|
60
60
|
`}tablerow({text:t}){return`<tr>
|
|
61
61
|
${t}</tr>
|
|
62
62
|
`}tablecell(t){let e=this.parser.parseInline(t.tokens),s=t.header?"th":"td";return(t.align?`<${s} align="${t.align}">`:`<${s}>`)+e+`</${s}>
|
|
63
|
-
`}strong({tokens:t}){return`<strong>${this.parser.parseInline(t)}</strong>`}em({tokens:t}){return`<em>${this.parser.parseInline(t)}</em>`}codespan({text:t}){return`<code>${K(t,!0)}</code>`}br(t){return"<br>"}del({tokens:t}){return`<del>${this.parser.parseInline(t)}</del>`}link({href:t,title:e,tokens:s}){let r=this.parser.parseInline(s),n=
|
|
64
|
-
Please report this to https://github.com/markedjs/marked.`,t){let r="<p>An error occurred:</p><pre>"+K(s.message+"",!0)+"</pre>";return e?Promise.resolve(r):r}if(e)return Promise.reject(s);throw s}}},
|
|
63
|
+
`}strong({tokens:t}){return`<strong>${this.parser.parseInline(t)}</strong>`}em({tokens:t}){return`<em>${this.parser.parseInline(t)}</em>`}codespan({text:t}){return`<code>${K(t,!0)}</code>`}br(t){return"<br>"}del({tokens:t}){return`<del>${this.parser.parseInline(t)}</del>`}link({href:t,title:e,tokens:s}){let r=this.parser.parseInline(s),n=et(t);if(n===null)return r;t=n;let o='<a href="'+t+'"';return e&&(o+=' title="'+K(e)+'"'),o+=">"+r+"</a>",o}image({href:t,title:e,text:s,tokens:r}){r&&(s=this.parser.parseInline(r,this.parser.textRenderer));let n=et(t);if(n===null)return K(s);t=n;let o=`<img src="${t}" alt="${K(s)}"`;return e&&(o+=` title="${K(e)}"`),o+=">",o}text(t){return"tokens"in t&&t.tokens?this.parser.parseInline(t.tokens):"escaped"in t&&t.escaped?t.text:K(t.text)}},Ue=class{strong({text:t}){return t}em({text:t}){return t}codespan({text:t}){return t}del({text:t}){return t}html({text:t}){return t}text({text:t}){return t}link({text:t}){return""+t}image({text:t}){return""+t}br(){return""}checkbox({raw:t}){return t}},W=class Le{options;renderer;textRenderer;constructor(e){this.options=e||ae,this.options.renderer=this.options.renderer||new $e,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new Ue}static parse(e,s){return new Le(s).parse(e)}static parseInline(e,s){return new Le(s).parseInline(e)}parse(e){this.renderer.parser=this;let s="";for(let r=0;r<e.length;r++){let n=e[r];if(this.options.extensions?.renderers?.[n.type]){let i=n,l=this.options.extensions.renderers[i.type].call({parser:this},i);if(l!==!1||!["space","hr","heading","code","table","blockquote","list","html","def","paragraph","text"].includes(i.type)){s+=l||"";continue}}let o=n;switch(o.type){case"space":{s+=this.renderer.space(o);break}case"hr":{s+=this.renderer.hr(o);break}case"heading":{s+=this.renderer.heading(o);break}case"code":{s+=this.renderer.code(o);break}case"table":{s+=this.renderer.table(o);break}case"blockquote":{s+=this.renderer.blockquote(o);break}case"list":{s+=this.renderer.list(o);break}case"checkbox":{s+=this.renderer.checkbox(o);break}case"html":{s+=this.renderer.html(o);break}case"def":{s+=this.renderer.def(o);break}case"paragraph":{s+=this.renderer.paragraph(o);break}case"text":{s+=this.renderer.text(o);break}default:{let i='Token with "'+o.type+'" type was not found.';if(this.options.silent)return console.error(i),"";throw new Error(i)}}}return s}parseInline(e,s=this.renderer){this.renderer.parser=this;let r="";for(let n=0;n<e.length;n++){let o=e[n];if(this.options.extensions?.renderers?.[o.type]){let l=this.options.extensions.renderers[o.type].call({parser:this},o);if(l!==!1||!["escape","html","link","image","strong","em","codespan","br","del","text"].includes(o.type)){r+=l||"";continue}}let i=o;switch(i.type){case"escape":{r+=s.text(i);break}case"html":{r+=s.html(i);break}case"link":{r+=s.link(i);break}case"image":{r+=s.image(i);break}case"checkbox":{r+=s.checkbox(i);break}case"strong":{r+=s.strong(i);break}case"em":{r+=s.em(i);break}case"codespan":{r+=s.codespan(i);break}case"br":{r+=s.br(i);break}case"del":{r+=s.del(i);break}case"text":{r+=s.text(i);break}default:{let l='Token with "'+i.type+'" type was not found.';if(this.options.silent)return console.error(l),"";throw new Error(l)}}}return r}},fe=class{options;block;constructor(t){this.options=t||ae}static passThroughHooks=new Set(["preprocess","postprocess","processAllTokens","emStrongMask"]);static passThroughHooksRespectAsync=new Set(["preprocess","postprocess","processAllTokens"]);preprocess(t){return t}postprocess(t){return t}processAllTokens(t){return t}emStrongMask(t){return t}provideLexer(t=this.block){return t?G.lex:G.lexInline}provideParser(t=this.block){return t?W.parse:W.parseInline}},bt=class{defaults=qe();options=this.setOptions;parse=this.parseMarkdown(!0);parseInline=this.parseMarkdown(!1);Parser=W;Renderer=$e;TextRenderer=Ue;Lexer=G;Tokenizer=ve;Hooks=fe;constructor(...t){this.use(...t)}walkTokens(t,e){let s=[];for(let r of t)switch(s=s.concat(e.call(this,r)),r.type){case"table":{let n=r;for(let o of n.header)s=s.concat(this.walkTokens(o.tokens,e));for(let o of n.rows)for(let i of o)s=s.concat(this.walkTokens(i.tokens,e));break}case"list":{let n=r;s=s.concat(this.walkTokens(n.items,e));break}default:{let n=r;this.defaults.extensions?.childTokens?.[n.type]?this.defaults.extensions.childTokens[n.type].forEach(o=>{let i=n[o].flat(1/0);s=s.concat(this.walkTokens(i,e))}):n.tokens&&(s=s.concat(this.walkTokens(n.tokens,e)))}}return s}use(...t){let e=this.defaults.extensions||{renderers:{},childTokens:{}};return t.forEach(s=>{let r={...s};if(r.async=this.defaults.async||r.async||!1,s.extensions&&(s.extensions.forEach(n=>{if(!n.name)throw new Error("extension name required");if("renderer"in n){let o=e.renderers[n.name];o?e.renderers[n.name]=function(...i){let l=n.renderer.apply(this,i);return l===!1&&(l=o.apply(this,i)),l}:e.renderers[n.name]=n.renderer}if("tokenizer"in n){if(!n.level||n.level!=="block"&&n.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let o=e[n.level];o?o.unshift(n.tokenizer):e[n.level]=[n.tokenizer],n.start&&(n.level==="block"?e.startBlock?e.startBlock.push(n.start):e.startBlock=[n.start]:n.level==="inline"&&(e.startInline?e.startInline.push(n.start):e.startInline=[n.start]))}"childTokens"in n&&n.childTokens&&(e.childTokens[n.name]=n.childTokens)}),r.extensions=e),s.renderer){let n=this.defaults.renderer||new $e(this.defaults);for(let o in s.renderer){if(!(o in n))throw new Error(`renderer '${o}' does not exist`);if(["options","parser"].includes(o))continue;let i=o,l=s.renderer[i],a=n[i];n[i]=(...d)=>{let h=l.apply(n,d);return h===!1&&(h=a.apply(n,d)),h||""}}r.renderer=n}if(s.tokenizer){let n=this.defaults.tokenizer||new ve(this.defaults);for(let o in s.tokenizer){if(!(o in n))throw new Error(`tokenizer '${o}' does not exist`);if(["options","rules","lexer"].includes(o))continue;let i=o,l=s.tokenizer[i],a=n[i];n[i]=(...d)=>{let h=l.apply(n,d);return h===!1&&(h=a.apply(n,d)),h}}r.tokenizer=n}if(s.hooks){let n=this.defaults.hooks||new fe;for(let o in s.hooks){if(!(o in n))throw new Error(`hook '${o}' does not exist`);if(["options","block"].includes(o))continue;let i=o,l=s.hooks[i],a=n[i];fe.passThroughHooks.has(o)?n[i]=d=>{if(this.defaults.async&&fe.passThroughHooksRespectAsync.has(o))return(async()=>{let m=await l.call(n,d);return a.call(n,m)})();let h=l.call(n,d);return a.call(n,h)}:n[i]=(...d)=>{if(this.defaults.async)return(async()=>{let m=await l.apply(n,d);return m===!1&&(m=await a.apply(n,d)),m})();let h=l.apply(n,d);return h===!1&&(h=a.apply(n,d)),h}}r.hooks=n}if(s.walkTokens){let n=this.defaults.walkTokens,o=s.walkTokens;r.walkTokens=function(i){let l=[];return l.push(o.call(this,i)),n&&(l=l.concat(n.call(this,i))),l}}this.defaults={...this.defaults,...r}}),this}setOptions(t){return this.defaults={...this.defaults,...t},this}lexer(t,e){return G.lex(t,e??this.defaults)}parser(t,e){return W.parse(t,e??this.defaults)}parseMarkdown(t){return(e,s)=>{let r={...s},n={...this.defaults,...r},o=this.onError(!!n.silent,!!n.async);if(this.defaults.async===!0&&r.async===!1)return o(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof e>"u"||e===null)return o(new Error("marked(): input parameter is undefined or null"));if(typeof e!="string")return o(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(e)+", string expected"));if(n.hooks&&(n.hooks.options=n,n.hooks.block=t),n.async)return(async()=>{let i=n.hooks?await n.hooks.preprocess(e):e,l=await(n.hooks?await n.hooks.provideLexer(t):t?G.lex:G.lexInline)(i,n),a=n.hooks?await n.hooks.processAllTokens(l):l;n.walkTokens&&await Promise.all(this.walkTokens(a,n.walkTokens));let d=await(n.hooks?await n.hooks.provideParser(t):t?W.parse:W.parseInline)(a,n);return n.hooks?await n.hooks.postprocess(d):d})().catch(o);try{n.hooks&&(e=n.hooks.preprocess(e));let i=(n.hooks?n.hooks.provideLexer(t):t?G.lex:G.lexInline)(e,n);n.hooks&&(i=n.hooks.processAllTokens(i)),n.walkTokens&&this.walkTokens(i,n.walkTokens);let l=(n.hooks?n.hooks.provideParser(t):t?W.parse:W.parseInline)(i,n);return n.hooks&&(l=n.hooks.postprocess(l)),l}catch(i){return o(i)}}}onError(t,e){return s=>{if(s.message+=`
|
|
64
|
+
Please report this to https://github.com/markedjs/marked.`,t){let r="<p>An error occurred:</p><pre>"+K(s.message+"",!0)+"</pre>";return e?Promise.resolve(r):r}if(e)return Promise.reject(s);throw s}}},oe=new bt;function T(t,e){return oe.parse(t,e)}T.options=T.setOptions=function(t){return oe.setOptions(t),T.defaults=oe.defaults,ct(T.defaults),T};T.getDefaults=qe;T.defaults=ae;T.use=function(...t){return oe.use(...t),T.defaults=oe.defaults,ct(T.defaults),T};T.walkTokens=function(t,e){return oe.walkTokens(t,e)};T.parseInline=oe.parseInline;T.Parser=W;T.parser=W.parse;T.Renderer=$e;T.TextRenderer=Ue;T.Lexer=G;T.lexer=G.lex;T.Tokenizer=ve;T.Hooks=fe;T.parse=T;T.options;T.setOptions;T.use;T.walkTokens;T.parseInline;W.parse;G.lex;function B(t){return t.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}const Cn=/^(?:https?:|mailto:|tel:|[/#?]|[^a-z0-9+.-]|$)/i;function nt(t){return Cn.test(t.trim().replace(/[-]/g,""))}function yt(t){return new bt({renderer:{html:e=>B(typeof e=="string"?e:e.text),link:e=>{const s=B(e.text||e.href);return t==="text"||!nt(e.href)?e.text&&e.text!==e.href?`${s} (${B(e.href)})`:s:`<a href="${B(e.href)}">${s}</a>`},image:e=>t==="text"||!nt(e.href)?B(e.text||e.href):`<img src="${B(e.href)}" alt="${B(e.text??"")}">`}})}yt("anchor");yt("text");const An=Symbol("clusterSectionLocator");function Tn(){return It(An,{canLocate:()=>!1,open:()=>{}})}const zn={class:"space-y-3"},In={key:2,class:"space-y-3 rounded-lg border border-default p-4 bg-elevated/30"},En={class:"flex items-start gap-3"},Pn=["title"],Ln={class:"relative size-12"},Bn={viewBox:"0 0 36 36",class:"size-12 -rotate-90"},Dn=["stroke-dasharray"],qn={class:"absolute inset-0 flex items-center justify-center text-xs font-semibold"},Fn={class:"flex-1 min-w-0"},Mn={class:"flex items-start justify-between gap-2"},Nn={class:"flex flex-wrap items-center gap-1.5"},jn={key:4,class:"text-xs text-gray-500 inline-flex items-center gap-1"},On={class:"flex items-center gap-1 shrink-0"},Hn={key:0,class:"text-sm font-medium mt-1.5"},Zn={key:0,class:"text-sm text-gray-600 dark:text-gray-400"},Un={key:1,class:"space-y-1"},Vn={class:"flex flex-wrap items-baseline gap-x-1.5 gap-y-1"},Qn=["title","onClick"],Gn=["title","onClick"],Wn={key:2},Xn={class:"text-sm text-gray-600 dark:text-gray-400"},Kn={key:1,class:"mt-2"},Jn={class:"flex items-center justify-between mb-1"},Yn={class:"flex items-center gap-1.5"},er={class:"flex items-center gap-1"},tr={key:0,class:"text-xs text-rose-600 dark:text-rose-400 mt-1"},sr={key:2,class:"mt-2"},nr={key:3,class:"space-y-1.5"},rr={class:"flex items-center gap-1"},ir={key:0,class:"space-y-1.5"},or={class:"flex items-center gap-1.5"},ar={key:1,class:"flex items-center gap-1.5 flex-1 min-w-0"},lr={class:"h-1.5 flex-1 max-w-24 rounded-full bg-gray-200 dark:bg-gray-700 overflow-hidden"},cr={class:"text-xs text-gray-400 shrink-0"},ur={key:0,class:"text-sm text-gray-600 dark:text-gray-400 mt-1"},pr={class:"space-y-1"},dr=["onClick"],hr={key:5,class:"space-y-1"},gr={class:"flex items-start justify-between gap-3 pt-1 border-t border-default"},fr={class:"flex items-start gap-2"},kr={class:"flex items-center gap-1 shrink-0 pt-0.5"},xr={key:0,class:"flex items-start gap-1.5"},mr={class:"flex items-center gap-1.5 text-xs text-gray-400 shrink-0 pt-0.5"},br={key:3,class:"flex flex-col items-center justify-center p-8 text-center text-gray-400 border border-dashed border-default rounded-lg"},yr=ce({__name:"DiagnosisResult",props:{diagnosis:{},lastSeenRunId:{}},emits:["view-section","prefill-context"],setup(t,{emit:e}){const s=t,{copy:r,copied:n}=Be(),o=Tn(),i=P(()=>s.diagnosis?.details);function l(u,g){return u==null&&g==null?"":`${u??0} in / ${g??0} out tokens`}function a(u){return u.status==="running"&&Date.now()-new Date(u.updatedAt).getTime()>300*1e3}const d=ne(!1),h=ne(!1),m=ne(!1),b=ne(null),z=ne(void 0),_=Pt(new Set);ye(()=>s.diagnosis?.id,()=>_.clear()),ye(()=>s.diagnosis?.feedback,u=>{b.value=u??null},{immediate:!0}),ye(()=>s.diagnosis?.feedbackNote,u=>{z.value=u??void 0},{immediate:!0});async function H(u){if(!s.diagnosis)return;const g=b.value===u?null:u;b.value=g,g||(m.value=!1),d.value=!0;try{await $fetch(`/api/failure-diagnoses/${s.diagnosis.id}/feedback`,{method:"PATCH",body:{feedback:g,feedbackNote:z.value||null}})}catch{b.value=s.diagnosis.feedback??null}finally{d.value=!1}}async function v(){if(s.diagnosis){h.value=!0;try{await $fetch(`/api/failure-diagnoses/${s.diagnosis.id}/feedback`,{method:"PATCH",body:{feedback:b.value,feedbackNote:z.value||null}}),m.value=!1}catch{}finally{h.value=!1}}}const y=P(()=>{const u=s.diagnosis;return!u||u.status!=="completed"||s.lastSeenRunId==null?!1:new Date(u.updatedAt).getTime()<Date.now()-300*1e3});function L(){if(!s.diagnosis||s.diagnosis.status!=="completed")return"";const u=s.diagnosis,g=i.value,k=[];u.category&&k.push(`**Category:** ${u.category}`),u.confidence&&k.push(`**Confidence:** ${u.confidence}${g?.confidenceScore!=null?` (${g.confidenceScore}/100)`:""}`),g?.severity&&k.push(`**Severity:** ${g.severity}`),g?.affectedArea&&k.push(`**Affected area:** ${g.affectedArea}`),k.push(""),u.summary&&k.push(`${u.summary}
|
|
65
65
|
`),u.rootCause&&k.push(`**Root cause:** ${u.rootCause}
|
|
66
|
-
`);const D=g?.evidence??[];D.length&&(k.push("**Evidence:**"),D.forEach(V=>k.push(`- ${V}`)),k.push(""));const
|
|
67
|
-
${
|
|
68
|
-
\`\`\``):
|
|
69
|
-
${
|
|
70
|
-
\`\`\``),k.push(""));const
|
|
71
|
-
`)}function ee(){if(!s.diagnosis||s.diagnosis.status!=="completed")return"";const u=s.diagnosis,g=i.value,k=["<dl>"];u.category&&k.push(`<dt>Category</dt><dd>${B(u.category)}</dd>`),u.confidence&&k.push(`<dt>Confidence</dt><dd>${B(u.confidence)}${g?.confidenceScore!=null?` (${g.confidenceScore}/100)`:""}</dd>`),g?.severity&&k.push(`<dt>Severity</dt><dd>${B(String(g.severity))}</dd>`),g?.affectedArea&&k.push(`<dt>Affected area</dt><dd>${B(String(g.affectedArea))}</dd>`),k.push("</dl>"),u.summary&&k.push(`<p><strong>${B(u.summary)}</strong></p>`),u.rootCause&&k.push(`<p><strong>Root cause:</strong> ${B(u.rootCause)}</p>`);const D=g?.evidence??[];D.length&&(k.push("<p><strong>Evidence:</strong></p><ul>"),D.forEach(X=>k.push(`<li>${B(X)}</li>`)),k.push("</ul>"));const
|
|
72
|
-
`)}async function re(){const u=L(),g=ee();if(!(!u&&!g))try{await navigator.clipboard.write([new ClipboardItem({"text/plain":new Blob([u],{type:"text/plain"}),"text/html":new Blob([g],{type:"text/html"})})]),
|
|
66
|
+
`);const D=g?.evidence??[];D.length&&(k.push("**Evidence:**"),D.forEach(V=>k.push(`- ${V}`)),k.push(""));const C=g?.suggestedFix;C&&(k.push("**Suggested fix:**"),C.description&&k.push(`${C.description}`),C.file&&k.push(`\`${C.file}\``),C.patch?k.push(`\`\`\`diff
|
|
67
|
+
${C.patch}
|
|
68
|
+
\`\`\``):C.code&&k.push(`\`\`\`
|
|
69
|
+
${C.code}
|
|
70
|
+
\`\`\``),k.push(""));const M=g?.hypotheses?.slice(1)??[];M.length&&(k.push("**Other hypotheses considered:**"),M.forEach(V=>k.push(`- (${V.category??"unknown"}, ${V.likelihood??"?"}/100) ${V.rootCause??""}`)),k.push(""));const Z=g?.investigationSteps??[];Z.length&&(k.push("**To confirm this diagnosis:**"),Z.forEach(V=>k.push(`- ${V}`)),k.push(""));const X=g?.preventionTips??[];return X.length&&(k.push("**Prevention tips:**"),X.forEach(V=>k.push(`- ${V}`)),k.push("")),u.model&&k.push(`_${u.model}_`),k.join(`
|
|
71
|
+
`)}function ee(){if(!s.diagnosis||s.diagnosis.status!=="completed")return"";const u=s.diagnosis,g=i.value,k=["<dl>"];u.category&&k.push(`<dt>Category</dt><dd>${B(u.category)}</dd>`),u.confidence&&k.push(`<dt>Confidence</dt><dd>${B(u.confidence)}${g?.confidenceScore!=null?` (${g.confidenceScore}/100)`:""}</dd>`),g?.severity&&k.push(`<dt>Severity</dt><dd>${B(String(g.severity))}</dd>`),g?.affectedArea&&k.push(`<dt>Affected area</dt><dd>${B(String(g.affectedArea))}</dd>`),k.push("</dl>"),u.summary&&k.push(`<p><strong>${B(u.summary)}</strong></p>`),u.rootCause&&k.push(`<p><strong>Root cause:</strong> ${B(u.rootCause)}</p>`);const D=g?.evidence??[];D.length&&(k.push("<p><strong>Evidence:</strong></p><ul>"),D.forEach(X=>k.push(`<li>${B(X)}</li>`)),k.push("</ul>"));const C=g?.suggestedFix;C&&(k.push("<p><strong>Suggested fix:</strong></p>"),C.description&&k.push(`<p>${B(String(C.description))}</p>`),C.file&&k.push(`<code>${B(String(C.file))}</code>`),C.patch?k.push(`<pre>${B(String(C.patch))}</pre>`):C.code&&k.push(`<pre>${B(String(C.code))}</pre>`));const M=g?.investigationSteps??[];M.length&&(k.push("<p><strong>To confirm this diagnosis:</strong></p><ul>"),M.forEach(X=>k.push(`<li>${B(X)}</li>`)),k.push("</ul>"));const Z=g?.preventionTips??[];return Z.length&&(k.push("<p><strong>Prevention tips:</strong></p><ul>"),Z.forEach(X=>k.push(`<li>${B(X)}</li>`)),k.push("</ul>")),k.join(`
|
|
72
|
+
`)}async function re(){const u=L(),g=ee();if(!(!u&&!g))try{await navigator.clipboard.write([new ClipboardItem({"text/plain":new Blob([u],{type:"text/plain"}),"text/html":new Blob([g],{type:"text/html"})})]),it().add({title:"Diagnosis copied",icon:"i-lucide-check",color:"success",duration:2e3})}catch{r(u,{toast:"Diagnosis copied"})}}function te(){const u=s.diagnosis;if(!u)return;const g=u.details?.suggestedFix?.patch;if(!g)return;const k=`git apply <<'EOF'
|
|
73
73
|
${g}
|
|
74
74
|
EOF`;r(k,{toast:"git apply command copied"})}function q(){const u=i.value?.suggestedFix?.patch;if(!u)return;const g=u.endsWith(`
|
|
75
75
|
`)?u:u+`
|
|
76
|
-
`,k=new Blob([g],{type:"text/x-patch"}),D=URL.createObjectURL(k),
|
|
76
|
+
`,k=new Blob([g],{type:"text/x-patch"}),D=URL.createObjectURL(k),C=document.createElement("a");C.href=D,C.download=`piwi-diagnosis-${s.diagnosis?.id??"fix"}.patch`,document.body.appendChild(C),C.click(),setTimeout(()=>{C.remove(),URL.revokeObjectURL(D)},1e3)}const E=P(()=>{const u=i.value?.patchValidation;return u&&typeof u=="object"?u:null}),F=P(()=>{const u=E.value;if(!u)return null;switch(u.status){case"applies":return{color:"success",icon:"i-lucide-badge-check",label:"Applies cleanly",title:"Verified against the real file at the failing commit"};case"applies-with-offset":return{color:"warning",icon:"i-lucide-badge-check",label:"Applies with offset",title:"Context matched at a shifted line — apply should still succeed"};case"stale-file":return{color:"error",icon:"i-lucide-badge-alert",label:"Does not apply",title:u.errors.join(`
|
|
77
77
|
`)||"The file changed since — patch context did not match"};case"invalid":return{color:"error",icon:"i-lucide-badge-alert",label:"Invalid diff",title:u.errors.join(`
|
|
78
|
-
`)||"Could not parse the patch as a unified diff"};default:return{color:"neutral",icon:"i-lucide-badge-help",label:"Unverified",title:"The source file was not in context, so the patch could not be validated"}}}),le={"app-bug":"error","test-bug":"warning","flaky-test":"warning",infrastructure:"info",environment:"secondary",unknown:"neutral"},
|
|
79
|
-
`);Qe("prefill-context",g)}const pe=E(()=>{const u=i.value?.confidenceScore;return typeof u=="number"?u:null}),de=E(()=>{const u=pe.value;return u!==null?u<50:s.diagnosis?.confidence==="low"||s.diagnosis?.category==="unknown"}),_t={"app-bug":"i-lucide-bug","test-bug":"i-lucide-flask-conical","flaky-test":"i-lucide-dice-5",infrastructure:"i-lucide-server",environment:"i-lucide-settings-2",unknown:"i-lucide-circle-help"},St=E(()=>{const u=s.diagnosis?.confidence;return u==="high"?"text-emerald-500":u==="medium"?"text-amber-500":"text-rose-500"});function Te(u){return ct[u]??u}function Ct(u){const g=[];return{text:u.replace(/\[([a-zA-Z][a-zA-Z0-9]*)\]/g,(D,A)=>ks(A)?(g.push(A),""):D).replace(/\s{2,}/g," ").trim(),citations:g}}const Ge=E(()=>{const u=i.value?.evidence;return Array.isArray(u)?u.map(Ct):[]}),ze=E(()=>{const u=i.value?.hypotheses;return Array.isArray(u)?u.slice(1):[]}),me=ne(!1),Ie=E(()=>{const u=i.value?.pipeline;return Array.isArray(u)?u:[]}),We=E(()=>Ie.value.reduce((u,g)=>u+(g.cacheReadInputTokens??0),0));return(u,g)=>{const k=jt,D=Bt,A=qe,N=ke,Z=_e,X=Mt,V=ot,At=Ot,Rt=Ht;return p(),f("div",En,[t.diagnosis&&(t.diagnosis.status==="failed"||o(t.diagnosis))?(p(),j(k,{key:0,color:"error",title:"Diagnosis failed",description:t.diagnosis.error||"Unknown error"},null,8,["description"])):$("",!0),c(y)?(p(),j(k,{key:1,color:"warning",icon:"i-lucide-clock",title:"Diagnosis may be stale",description:"New evidence may have appeared since this diagnosis was made. Consider re-running."})):$("",!0),t.diagnosis&&t.diagnosis.status==="completed"?(p(),f("div",Pn,[x("div",Ln,[c(pe)!==null?(p(),f("div",{key:0,class:"shrink-0",title:`Confidence ${c(pe)}/100`},[x("div",Dn,[(p(),f("svg",qn,[g[6]||(g[6]=x("circle",{cx:"18",cy:"18",r:"15.9155",fill:"none",class:"text-gray-200 dark:text-gray-700",stroke:"currentColor","stroke-width":"3"},null,-1)),x("circle",{cx:"18",cy:"18",r:"15.9155",fill:"none",class:J(c(St)),stroke:"currentColor","stroke-width":"3","stroke-linecap":"round","stroke-dasharray":`${c(pe)} 100`},null,10,Fn)])),x("span",Nn,w(c(pe)),1)])],8,Bn)):$("",!0),x("div",jn,[x("div",Mn,[x("div",On,[t.diagnosis.category?(p(),j(D,{key:0,color:le[t.diagnosis.category]||"neutral",variant:"subtle",size:"sm",icon:_t[t.diagnosis.category]},{default:Q(()=>[R(w(t.diagnosis.category),1)]),_:1},8,["color","icon"])):$("",!0),t.diagnosis.confidence?(p(),j(D,{key:1,color:Re[t.diagnosis.confidence]||"neutral",variant:"outline",size:"sm"},{default:Q(()=>[R(w(t.diagnosis.confidence)+" confidence ",1)]),_:1},8,["color"])):$("",!0),t.diagnosis.confidence?(p(),j(A,{key:2,topic:"cluster.confidence"})):$("",!0),c(i)?.severity?(p(),j(D,{key:3,color:vt[c(i).severity]||"neutral",variant:"soft",size:"sm"},{default:Q(()=>[R(w(c(i).severity)+" severity ",1)]),_:1},8,["color"])):$("",!0),c(i)?.affectedArea?(p(),f("span",Hn,[S(N,{name:"i-lucide-crosshair",class:"size-3 shrink-0"}),R(" "+w(c(i).affectedArea),1)])):$("",!0)]),x("div",Zn,[S(A,{topic:"cluster.result"}),S(Z,{icon:c(n)?"i-lucide-check":"i-lucide-clipboard",size:"xs",color:"neutral",variant:"ghost",title:"Copy full diagnosis (Markdown + HTML)",onClick:re},null,8,["icon"])])]),t.diagnosis.summary?(p(),f("p",Un,w(t.diagnosis.summary),1)):$("",!0)])]),t.diagnosis.rootCause?(p(),f("p",Vn,w(t.diagnosis.rootCause),1)):$("",!0),c(Ge).length?(p(),f("ul",Qn,[(p(!0),f(M,null,Y(c(Ge),(I,U)=>(p(),f("li",{key:U,class:"text-sm text-gray-600 dark:text-gray-400 flex gap-1.5"},[g[7]||(g[7]=x("span",{class:"text-gray-400 shrink-0 leading-5"},"•",-1)),x("span",Gn,[x("span",null,w(I.text),1),(p(!0),f(M,null,Y(I.citations,se=>(p(),f("span",{key:se,class:"inline-flex items-center"},[x("button",{class:J(["inline-flex items-center gap-0.5 border border-default px-1.5 text-xs text-gray-500 hover:text-primary hover:border-primary transition-colors",c(a).canLocate(se)?"rounded-l bg-elevated":"rounded bg-elevated"]),title:`View ${Te(se)} in the AI context`,onClick:Tt=>Qe("view-section",se)},[S(N,{name:"i-lucide-link",class:"size-2.5"}),R(" "+w(Te(se)),1)],10,Wn),c(a).canLocate(se)?(p(),f("button",{key:0,class:"inline-flex items-center rounded-r border border-l-0 border-default bg-elevated px-1 text-xs text-gray-500 hover:text-primary hover:border-primary transition-colors",title:`Show ${Te(se)} on the page`,onClick:Tt=>c(a).open(se)},[S(N,{name:"i-lucide-map-pin",class:"size-2.5"})],8,Xn)):$("",!0)]))),128))])]))),128))])):$("",!0),c(i)?.suggestedFix?(p(),f("div",Kn,[g[9]||(g[9]=x("p",{class:"text-sm font-medium text-gray-700 dark:text-gray-300 mb-1"},"Suggested fix",-1)),x("p",Jn,w(c(i).suggestedFix.description),1),c(i).suggestedFix.file&&!c(i).suggestedFix.patch?(p(),j(X,{key:0,"file-path":c(i).suggestedFix.file,class:"text-xs mt-1"},null,8,["file-path"])):$("",!0),c(i).suggestedFix.patch?(p(),f("div",Yn,[x("div",er,[x("div",tr,[g[8]||(g[8]=x("span",{class:"text-xs text-gray-500 font-mono"},"patch",-1)),c(F)?(p(),j(D,{key:0,color:c(F).color,variant:"subtle",size:"sm",icon:c(F).icon,title:c(F).title},{default:Q(()=>[R(w(c(F).label),1)]),_:1},8,["color","icon","title"])):$("",!0)]),x("div",sr,[S(Z,{size:"xs",color:"neutral",variant:"ghost",icon:"i-lucide-download",title:"Download .patch file",onClick:q}),S(Z,{size:"xs",color:"neutral",variant:"ghost",icon:"i-lucide-terminal",title:"Copy git apply command",onClick:te}),S(Z,{icon:c(n)?"i-lucide-check":"i-lucide-clipboard",size:"xs",color:"neutral",variant:"ghost",title:"Copy patch",onClick:g[0]||(g[0]=I=>c(r)(c(i).suggestedFix.patch))},null,8,["icon"])])]),S(V,{text:"```diff\n"+c(i).suggestedFix.patch+"\n```"},null,8,["text"]),c(P)&&(c(P).status==="stale-file"||c(P).status==="invalid")?(p(),f("p",nr,w(c(P).errors[0]||"This patch could not be verified against the source."),1)):$("",!0)])):c(i).suggestedFix.code?(p(),f("div",rr,[S(At,{code:c(i).suggestedFix.code},null,8,["code"])])):$("",!0)])):$("",!0),c(ze).length?(p(),f("div",ir,[x("div",ar,[x("button",{class:"flex items-center gap-1.5 text-xs font-medium text-gray-500 uppercase tracking-wide hover:text-gray-700 dark:hover:text-gray-300",onClick:g[1]||(g[1]=I=>me.value=!c(me))},[S(N,{name:c(me)?"i-lucide-chevron-down":"i-lucide-chevron-right",class:"size-3.5"},null,8,["name"]),R(" Other hypotheses considered ("+w(c(ze).length)+") ",1)]),S(A,{topic:"cluster.hypotheses"})]),c(me)?(p(),f("div",or,[(p(!0),f(M,null,Y(c(ze),(I,U)=>(p(),f("div",{key:U,class:"rounded-md border border-default bg-elevated/40 px-2.5 py-1.5"},[x("div",lr,[I.category?(p(),j(D,{key:0,color:le[I.category]||"neutral",variant:"subtle",size:"sm"},{default:Q(()=>[R(w(I.category),1)]),_:2},1032,["color"])):$("",!0),typeof I.likelihood=="number"?(p(),f("div",cr,[x("div",ur,[x("div",{class:"h-full rounded-full bg-gray-400 dark:bg-gray-500",style:it({width:`${I.likelihood}%`})},null,4)]),x("span",pr,w(I.likelihood)+"/100",1)])):$("",!0)]),I.rootCause?(p(),f("p",dr,w(I.rootCause),1)):$("",!0)]))),128))])):$("",!0)])):$("",!0),c(i)?.investigationSteps?.length?(p(),f("div",{key:4,class:J(["space-y-1.5",c(de)?"rounded-lg border border-amber-300/60 dark:border-amber-500/30 bg-amber-50/60 dark:bg-amber-500/10 p-3":""])},[x("p",{class:J(["text-xs font-medium uppercase tracking-wide flex items-center gap-1.5",c(de)?"text-amber-700 dark:text-amber-400":"text-gray-500"])},[c(de)?(p(),j(N,{key:0,name:"i-lucide-flask-conical",class:"size-3.5 shrink-0"})):$("",!0),R(" "+w(c(de)?"Low confidence — gather more evidence":"To confirm this diagnosis"),1)],2),x("ul",hr,[(p(!0),f(M,null,Y(c(i).investigationSteps,(I,U)=>(p(),f("li",{key:U,class:J(["text-sm flex gap-2 items-start cursor-pointer select-none",c(_).has(Number(U))?"text-gray-400 dark:text-gray-500 line-through":"text-gray-600 dark:text-gray-400"]),onClick:se=>c(_).has(Number(U))?c(_).delete(Number(U)):c(_).add(Number(U))},[S(N,{name:c(_).has(Number(U))?"i-lucide-check-square":"i-lucide-square",class:J(["size-4 shrink-0 mt-0.5",c(_).has(Number(U))?"text-primary":"text-gray-400"])},null,8,["name","class"]),R(" "+w(I),1)],10,gr))),128))]),c(de)?(p(),j(Z,{key:0,size:"xs",color:"warning",variant:"soft",icon:"i-lucide-clipboard-pen",class:"mt-1",title:"Pre-fill the additional-context box with these checks, then re-diagnose",onClick:$t},{default:Q(()=>[...g[10]||(g[10]=[R(" Add to context & refine ",-1)])]),_:1})):$("",!0)],2)):$("",!0),c(i)?.preventionTips?.length?(p(),f("ul",fr,[g[11]||(g[11]=x("li",{class:"text-xs font-medium text-gray-500 uppercase tracking-wide"},"Prevention tips",-1)),(p(!0),f(M,null,Y(c(i).preventionTips,(I,U)=>(p(),f("li",{key:U,class:"text-sm text-gray-600 dark:text-gray-400 flex gap-1.5"},[S(N,{name:"i-lucide-lightbulb",class:"size-3.5 shrink-0 mt-0.5 text-yellow-500"}),R(" "+w(I),1)]))),128))])):$("",!0),x("div",kr,[x("div",xr,[x("div",mr,[S(Z,{icon:(c(b)==="up","i-lucide-thumbs-up"),color:c(b)==="up"?"success":"neutral",variant:"ghost",size:"xs",loading:c(d),onClick:g[2]||(g[2]=I=>H("up"))},null,8,["icon","color","loading"]),S(Z,{icon:(c(b)==="down","i-lucide-thumbs-down"),color:c(b)==="down"?"error":"neutral",variant:"ghost",size:"xs",loading:c(d),onClick:g[3]||(g[3]=I=>H("down"))},null,8,["icon","color","loading"]),c(b)?(p(),f("button",{key:0,class:"text-xs text-gray-400 hover:text-gray-600 dark:hover:text-gray-300 ml-1 transition-colors",onClick:g[4]||(g[4]=I=>m.value=!c(m))},[S(N,{name:c(m)?"i-lucide-chevron-up":"i-lucide-chevron-down",class:"size-3"},null,8,["name"]),R(" "+w(c(z)?"Edit note":"Note"),1)])):$("",!0)]),c(m)?(p(),f("div",br,[S(Rt,{modelValue:c(z),"onUpdate:modelValue":g[5]||(g[5]=I=>Pt(z)?z.value=I:null),size:"xs",placeholder:"Add a note about this feedback…",class:"max-w-64",ui:{base:"text-xs"},rows:2},null,8,["modelValue"]),S(Z,{size:"xs",color:"primary",variant:"solid",loading:c(h),onClick:v},{default:Q(()=>[...g[12]||(g[12]=[R(" Save ",-1)])]),_:1},8,["loading"])])):$("",!0)]),x("div",yr,[c(Ie).length>1?(p(),j(D,{key:0,color:"neutral",variant:"subtle",size:"sm",icon:"i-lucide-workflow",title:c(Ie).map(I=>`${I.role}: ${I.model}`).join(" → ")},{default:Q(()=>[...g[13]||(g[13]=[R(" 2-stage ",-1)])]),_:1},8,["title"])):$("",!0),x("span",null,[R(w(t.diagnosis.model)+" · "+w(l(t.diagnosis.inputTokens,t.diagnosis.outputTokens)),1),c(We)>0?(p(),f(M,{key:0},[R(" ("+w(c(We))+" cached)",1)],64)):$("",!0),R(" · "+w(c(Ft)(t.diagnosis.updatedAt)),1)])])])])):$("",!0),t.diagnosis?$("",!0):(p(),f("div",wr,[S(N,{name:"i-lucide-sparkles",class:"size-8 mb-2 opacity-30"}),g[14]||(g[14]=x("p",{class:"text-sm"},"Diagnosis will appear here",-1))]))])}}}),Mr=Object.assign(vr,{__name:"DiagnosisResult"});let Ee=null;function Or(){const t=Dt("ai-status",()=>null);async function e(){t.value===null&&(Ee||(Ee=$fetch("/api/ai/status").catch(()=>({configured:!1}))),t.value=await Ee)}return e(),{aiStatus:t}}export{Er as _,ot as a,Br as b,zn as c,Or as d,Nr as e,Mr as f,jr as g,qr as h,Lr as i,Fr as j,Zt as k,Dr as s,Pr as u};
|
|
78
|
+
`)||"Could not parse the patch as a unified diff"};default:return{color:"neutral",icon:"i-lucide-badge-help",label:"Unverified",title:"The source file was not in context, so the patch could not be validated"}}}),le={"app-bug":"error","test-bug":"warning","flaky-test":"warning",infrastructure:"info",environment:"secondary",unknown:"neutral"},Ae={high:"success",medium:"warning",low:"neutral"},wt={blocker:"error",high:"warning",medium:"info",low:"neutral"},Ve=e;function vt(){const u=i.value?.investigationSteps??[];if(!u.length)return;const g=["Investigation findings (fill in the results, then re-diagnose):",...u.map(k=>`- ${k}: `)].join(`
|
|
79
|
+
`);Ve("prefill-context",g)}const pe=P(()=>{const u=i.value?.confidenceScore;return typeof u=="number"?u:null}),de=P(()=>{const u=pe.value;return u!==null?u<50:s.diagnosis?.confidence==="low"||s.diagnosis?.category==="unknown"}),$t={"app-bug":"i-lucide-bug","test-bug":"i-lucide-flask-conical","flaky-test":"i-lucide-dice-5",infrastructure:"i-lucide-server",environment:"i-lucide-settings-2",unknown:"i-lucide-circle-help"},_t=P(()=>{const u=s.diagnosis?.confidence;return u==="high"?"text-emerald-500":u==="medium"?"text-amber-500":"text-rose-500"});function Te(u){return lt[u]??u}function St(u){const g=[];return{text:u.replace(/\[([a-zA-Z][a-zA-Z0-9]*)\]/g,(D,C)=>gs(C)?(g.push(C),""):D).replace(/\s{2,}/g," ").trim(),citations:g}}const Qe=P(()=>{const u=i.value?.evidence;return Array.isArray(u)?u.map(St):[]}),ze=P(()=>{const u=i.value?.hypotheses;return Array.isArray(u)?u.slice(1):[]}),me=ne(!1),Ie=P(()=>{const u=i.value?.pipeline;return Array.isArray(u)?u:[]}),Ge=P(()=>Ie.value.reduce((u,g)=>u+(g.cacheReadInputTokens??0),0));return(u,g)=>{const k=Ft,D=Lt,C=De,M=ke,Z=_e,X=Mt,V=ot,Rt=Nt,Ct=jt;return p(),f("div",zn,[t.diagnosis&&(t.diagnosis.status==="failed"||a(t.diagnosis))?(p(),N(k,{key:0,color:"error",title:"Diagnosis failed",description:t.diagnosis.error||"Unknown error"},null,8,["description"])):$("",!0),c(y)?(p(),N(k,{key:1,color:"warning",icon:"i-lucide-clock",title:"Diagnosis may be stale",description:"New evidence may have appeared since this diagnosis was made. Consider re-running."})):$("",!0),t.diagnosis&&t.diagnosis.status==="completed"?(p(),f("div",In,[x("div",En,[c(pe)!==null?(p(),f("div",{key:0,class:"shrink-0",title:`Confidence ${c(pe)}/100`},[x("div",Ln,[(p(),f("svg",Bn,[g[6]||(g[6]=x("circle",{cx:"18",cy:"18",r:"15.9155",fill:"none",class:"text-gray-200 dark:text-gray-700",stroke:"currentColor","stroke-width":"3"},null,-1)),x("circle",{cx:"18",cy:"18",r:"15.9155",fill:"none",class:J(c(_t)),stroke:"currentColor","stroke-width":"3","stroke-linecap":"round","stroke-dasharray":`${c(pe)} 100`},null,10,Dn)])),x("span",qn,w(c(pe)),1)])],8,Pn)):$("",!0),x("div",Fn,[x("div",Mn,[x("div",Nn,[t.diagnosis.category?(p(),N(D,{key:0,color:le[t.diagnosis.category]||"neutral",variant:"subtle",size:"sm",icon:$t[t.diagnosis.category]},{default:Q(()=>[A(w(t.diagnosis.category),1)]),_:1},8,["color","icon"])):$("",!0),t.diagnosis.confidence?(p(),N(D,{key:1,color:Ae[t.diagnosis.confidence]||"neutral",variant:"outline",size:"sm"},{default:Q(()=>[A(w(t.diagnosis.confidence)+" confidence ",1)]),_:1},8,["color"])):$("",!0),t.diagnosis.confidence?(p(),N(C,{key:2,topic:"cluster.confidence"})):$("",!0),c(i)?.severity?(p(),N(D,{key:3,color:wt[c(i).severity]||"neutral",variant:"soft",size:"sm"},{default:Q(()=>[A(w(c(i).severity)+" severity ",1)]),_:1},8,["color"])):$("",!0),c(i)?.affectedArea?(p(),f("span",jn,[S(M,{name:"i-lucide-crosshair",class:"size-3 shrink-0"}),A(" "+w(c(i).affectedArea),1)])):$("",!0)]),x("div",On,[S(C,{topic:"cluster.result"}),S(Z,{icon:c(n)?"i-lucide-check":"i-lucide-clipboard",size:"xs",color:"neutral",variant:"ghost",title:"Copy full diagnosis (Markdown + HTML)",onClick:re},null,8,["icon"])])]),t.diagnosis.summary?(p(),f("p",Hn,w(t.diagnosis.summary),1)):$("",!0)])]),t.diagnosis.rootCause?(p(),f("p",Zn,w(t.diagnosis.rootCause),1)):$("",!0),c(Qe).length?(p(),f("ul",Un,[(p(!0),f(j,null,Y(c(Qe),(I,U)=>(p(),f("li",{key:U,class:"text-sm text-gray-600 dark:text-gray-400 flex gap-1.5"},[g[7]||(g[7]=x("span",{class:"text-gray-400 shrink-0 leading-5"},"•",-1)),x("span",Vn,[x("span",null,w(I.text),1),(p(!0),f(j,null,Y(I.citations,se=>(p(),f("span",{key:se,class:"inline-flex items-center"},[x("button",{class:J(["inline-flex items-center gap-0.5 border border-default px-1.5 text-xs text-gray-500 hover:text-primary hover:border-primary transition-colors",c(o).canLocate(se)?"rounded-l bg-elevated":"rounded bg-elevated"]),title:`View ${Te(se)} in the AI context`,onClick:At=>Ve("view-section",se)},[S(M,{name:"i-lucide-link",class:"size-2.5"}),A(" "+w(Te(se)),1)],10,Qn),c(o).canLocate(se)?(p(),f("button",{key:0,class:"inline-flex items-center rounded-r border border-l-0 border-default bg-elevated px-1 text-xs text-gray-500 hover:text-primary hover:border-primary transition-colors",title:`Show ${Te(se)} on the page`,onClick:At=>c(o).open(se)},[S(M,{name:"i-lucide-map-pin",class:"size-2.5"})],8,Gn)):$("",!0)]))),128))])]))),128))])):$("",!0),c(i)?.suggestedFix?(p(),f("div",Wn,[g[9]||(g[9]=x("p",{class:"text-sm font-medium text-gray-700 dark:text-gray-300 mb-1"},"Suggested fix",-1)),x("p",Xn,w(c(i).suggestedFix.description),1),c(i).suggestedFix.file&&!c(i).suggestedFix.patch?(p(),N(X,{key:0,"file-path":c(i).suggestedFix.file,class:"text-xs mt-1"},null,8,["file-path"])):$("",!0),c(i).suggestedFix.patch?(p(),f("div",Kn,[x("div",Jn,[x("div",Yn,[g[8]||(g[8]=x("span",{class:"text-xs text-gray-500 font-mono"},"patch",-1)),c(F)?(p(),N(D,{key:0,color:c(F).color,variant:"subtle",size:"sm",icon:c(F).icon,title:c(F).title},{default:Q(()=>[A(w(c(F).label),1)]),_:1},8,["color","icon","title"])):$("",!0)]),x("div",er,[S(Z,{size:"xs",color:"neutral",variant:"ghost",icon:"i-lucide-download",title:"Download .patch file",onClick:q}),S(Z,{size:"xs",color:"neutral",variant:"ghost",icon:"i-lucide-terminal",title:"Copy git apply command",onClick:te}),S(Z,{icon:c(n)?"i-lucide-check":"i-lucide-clipboard",size:"xs",color:"neutral",variant:"ghost",title:"Copy patch",onClick:g[0]||(g[0]=I=>c(r)(c(i).suggestedFix.patch))},null,8,["icon"])])]),S(V,{text:"```diff\n"+c(i).suggestedFix.patch+"\n```"},null,8,["text"]),c(E)&&(c(E).status==="stale-file"||c(E).status==="invalid")?(p(),f("p",tr,w(c(E).errors[0]||"This patch could not be verified against the source."),1)):$("",!0)])):c(i).suggestedFix.code?(p(),f("div",sr,[S(Rt,{code:c(i).suggestedFix.code},null,8,["code"])])):$("",!0)])):$("",!0),c(ze).length?(p(),f("div",nr,[x("div",rr,[x("button",{class:"flex items-center gap-1.5 text-xs font-medium text-gray-500 uppercase tracking-wide hover:text-gray-700 dark:hover:text-gray-300",onClick:g[1]||(g[1]=I=>me.value=!c(me))},[S(M,{name:c(me)?"i-lucide-chevron-down":"i-lucide-chevron-right",class:"size-3.5"},null,8,["name"]),A(" Other hypotheses considered ("+w(c(ze).length)+") ",1)]),S(C,{topic:"cluster.hypotheses"})]),c(me)?(p(),f("div",ir,[(p(!0),f(j,null,Y(c(ze),(I,U)=>(p(),f("div",{key:U,class:"rounded-md border border-default bg-elevated/40 px-2.5 py-1.5"},[x("div",or,[I.category?(p(),N(D,{key:0,color:le[I.category]||"neutral",variant:"subtle",size:"sm"},{default:Q(()=>[A(w(I.category),1)]),_:2},1032,["color"])):$("",!0),typeof I.likelihood=="number"?(p(),f("div",ar,[x("div",lr,[x("div",{class:"h-full rounded-full bg-gray-400 dark:bg-gray-500",style:rt({width:`${I.likelihood}%`})},null,4)]),x("span",cr,w(I.likelihood)+"/100",1)])):$("",!0)]),I.rootCause?(p(),f("p",ur,w(I.rootCause),1)):$("",!0)]))),128))])):$("",!0)])):$("",!0),c(i)?.investigationSteps?.length?(p(),f("div",{key:4,class:J(["space-y-1.5",c(de)?"rounded-lg border border-amber-300/60 dark:border-amber-500/30 bg-amber-50/60 dark:bg-amber-500/10 p-3":""])},[x("p",{class:J(["text-xs font-medium uppercase tracking-wide flex items-center gap-1.5",c(de)?"text-amber-700 dark:text-amber-400":"text-gray-500"])},[c(de)?(p(),N(M,{key:0,name:"i-lucide-flask-conical",class:"size-3.5 shrink-0"})):$("",!0),A(" "+w(c(de)?"Low confidence — gather more evidence":"To confirm this diagnosis"),1)],2),x("ul",pr,[(p(!0),f(j,null,Y(c(i).investigationSteps,(I,U)=>(p(),f("li",{key:U,class:J(["text-sm flex gap-2 items-start cursor-pointer select-none",c(_).has(Number(U))?"text-gray-400 dark:text-gray-500 line-through":"text-gray-600 dark:text-gray-400"]),onClick:se=>c(_).has(Number(U))?c(_).delete(Number(U)):c(_).add(Number(U))},[S(M,{name:c(_).has(Number(U))?"i-lucide-check-square":"i-lucide-square",class:J(["size-4 shrink-0 mt-0.5",c(_).has(Number(U))?"text-primary":"text-gray-400"])},null,8,["name","class"]),A(" "+w(I),1)],10,dr))),128))]),c(de)?(p(),N(Z,{key:0,size:"xs",color:"warning",variant:"soft",icon:"i-lucide-clipboard-pen",class:"mt-1",title:"Pre-fill the additional-context box with these checks, then re-diagnose",onClick:vt},{default:Q(()=>[...g[10]||(g[10]=[A(" Add to context & refine ",-1)])]),_:1})):$("",!0)],2)):$("",!0),c(i)?.preventionTips?.length?(p(),f("ul",hr,[g[11]||(g[11]=x("li",{class:"text-xs font-medium text-gray-500 uppercase tracking-wide"},"Prevention tips",-1)),(p(!0),f(j,null,Y(c(i).preventionTips,(I,U)=>(p(),f("li",{key:U,class:"text-sm text-gray-600 dark:text-gray-400 flex gap-1.5"},[S(M,{name:"i-lucide-lightbulb",class:"size-3.5 shrink-0 mt-0.5 text-yellow-500"}),A(" "+w(I),1)]))),128))])):$("",!0),x("div",gr,[x("div",fr,[x("div",kr,[S(Z,{icon:(c(b)==="up","i-lucide-thumbs-up"),color:c(b)==="up"?"success":"neutral",variant:"ghost",size:"xs",loading:c(d),onClick:g[2]||(g[2]=I=>H("up"))},null,8,["icon","color","loading"]),S(Z,{icon:(c(b)==="down","i-lucide-thumbs-down"),color:c(b)==="down"?"error":"neutral",variant:"ghost",size:"xs",loading:c(d),onClick:g[3]||(g[3]=I=>H("down"))},null,8,["icon","color","loading"]),c(b)?(p(),f("button",{key:0,class:"text-xs text-gray-400 hover:text-gray-600 dark:hover:text-gray-300 ml-1 transition-colors",onClick:g[4]||(g[4]=I=>m.value=!c(m))},[S(M,{name:c(m)?"i-lucide-chevron-up":"i-lucide-chevron-down",class:"size-3"},null,8,["name"]),A(" "+w(c(z)?"Edit note":"Note"),1)])):$("",!0)]),c(m)?(p(),f("div",xr,[S(Ct,{modelValue:c(z),"onUpdate:modelValue":g[5]||(g[5]=I=>Et(z)?z.value=I:null),size:"xs",placeholder:"Add a note about this feedback…",class:"max-w-64",ui:{base:"text-xs"},rows:2},null,8,["modelValue"]),S(Z,{size:"xs",color:"primary",variant:"solid",loading:c(h),onClick:v},{default:Q(()=>[...g[12]||(g[12]=[A(" Save ",-1)])]),_:1},8,["loading"])])):$("",!0)]),x("div",mr,[c(Ie).length>1?(p(),N(D,{key:0,color:"neutral",variant:"subtle",size:"sm",icon:"i-lucide-workflow",title:c(Ie).map(I=>`${I.role}: ${I.model}`).join(" → ")},{default:Q(()=>[...g[13]||(g[13]=[A(" 2-stage ",-1)])]),_:1},8,["title"])):$("",!0),x("span",null,[A(w(t.diagnosis.model)+" · "+w(l(t.diagnosis.inputTokens,t.diagnosis.outputTokens)),1),c(Ge)>0?(p(),f(j,{key:0},[A(" ("+w(c(Ge))+" cached)",1)],64)):$("",!0),A(" · "+w(c(Dt)(t.diagnosis.updatedAt)),1)])])])])):$("",!0),t.diagnosis?$("",!0):(p(),f("div",br,[S(M,{name:"i-lucide-sparkles",class:"size-8 mb-2 opacity-30"}),g[14]||(g[14]=x("p",{class:"text-sm"},"Diagnosis will appear here",-1))]))])}}}),Fr=Object.assign(yr,{__name:"DiagnosisResult"});export{zr as _,ot as a,Er as b,An as c,Dr as d,Fr as e,qr as f,Lr as g,Br as h,Ir as i,Pr as s,Ot as u};
|