plum-e2e 2.9.17 → 2.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (705) hide show
  1. package/backend/constants/socketEvents.js +8 -14
  2. package/backend/lib/serverBootstrap.js +4 -4
  3. package/backend/mcp/server.js +3 -3
  4. package/backend/prisma/migrations/20260829000000_add_run_queue/migration.sql +29 -0
  5. package/backend/prisma/schema.prisma +30 -0
  6. package/backend/routes/active-runs.routes.js +10 -6
  7. package/backend/routes/node.routes.js +7 -0
  8. package/backend/routes/trigger.routes.js +8 -5
  9. package/backend/server.js +5 -1
  10. package/backend/services/cronService.js +15 -443
  11. package/backend/services/nodeExecutionService.js +13 -1
  12. package/backend/services/runExecutorService.js +423 -0
  13. package/backend/services/runQueueService.js +276 -0
  14. package/backend/services/runnerService.js +22 -4
  15. package/backend/services/triggerService.js +13 -231
  16. package/backend/websockets/socketHandler.js +32 -590
  17. package/frontend/.svelte-kit/adapter-node/.vite/manifest.json +35 -35
  18. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/BackLink.DRrgBGDC.css +6 -0
  19. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_layout.HkPnpRl9.css +6 -0
  20. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.B9H_IpSU.css +6 -0
  21. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.Be5c3USL.css +6 -0
  22. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.COwSGmmy.css +6 -0
  23. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.ClS4XkkN.css +6 -0
  24. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.Dp6vaGRc.css +6 -0
  25. package/frontend/.svelte-kit/adapter-node/chunks/BackLink.js +1 -1
  26. package/frontend/.svelte-kit/adapter-node/chunks/Badge.js +1 -1
  27. package/frontend/.svelte-kit/adapter-node/chunks/ConfirmModal.js +1 -1
  28. package/frontend/.svelte-kit/adapter-node/chunks/EmptyState.js +1 -1
  29. package/frontend/.svelte-kit/adapter-node/chunks/Modal.js +1 -1
  30. package/frontend/.svelte-kit/adapter-node/chunks/Toast.js +1 -1
  31. package/frontend/.svelte-kit/adapter-node/chunks/constants.js +6 -4
  32. package/frontend/.svelte-kit/adapter-node/chunks/format.js +3 -3
  33. package/frontend/.svelte-kit/adapter-node/chunks/index.js +4 -4
  34. package/frontend/.svelte-kit/adapter-node/chunks/internal.js +1 -1
  35. package/frontend/.svelte-kit/adapter-node/chunks/reports.js +1 -1
  36. package/frontend/.svelte-kit/adapter-node/chunks/reports2.js +38 -40
  37. package/frontend/.svelte-kit/adapter-node/chunks/repository.js +8 -0
  38. package/frontend/.svelte-kit/adapter-node/chunks/runner.js +10 -20
  39. package/frontend/.svelte-kit/adapter-node/entries/pages/live/_id_/_page.svelte.js +254 -0
  40. package/frontend/.svelte-kit/adapter-node/entries/pages/login/_page.svelte.js +1 -1
  41. package/frontend/.svelte-kit/adapter-node/entries/pages/reports/_id_/_page.svelte.js +29 -24
  42. package/frontend/.svelte-kit/adapter-node/entries/pages/reports/_page.svelte.js +23 -19
  43. package/frontend/.svelte-kit/adapter-node/entries/pages/scheduled-tests/_page.svelte.js +3 -3
  44. package/frontend/.svelte-kit/adapter-node/entries/pages/settings/_page.svelte.js +173 -51
  45. package/frontend/.svelte-kit/adapter-node/entries/pages/setup/_page.svelte.js +1 -1
  46. package/frontend/.svelte-kit/adapter-node/entries/pages/test-repository/runs/_id_/_page.svelte.js +1 -1
  47. package/frontend/.svelte-kit/adapter-node/entries/pages/test-repository/suites/_id_/_page.svelte.js +63 -11
  48. package/frontend/.svelte-kit/adapter-node/manifest-full.js +10 -10
  49. package/frontend/.svelte-kit/adapter-node/manifest.js +10 -10
  50. package/frontend/.svelte-kit/adapter-node/nodes/0.js +2 -2
  51. package/frontend/.svelte-kit/adapter-node/nodes/1.js +1 -1
  52. package/frontend/.svelte-kit/adapter-node/nodes/10.js +1 -1
  53. package/frontend/.svelte-kit/adapter-node/nodes/11.js +1 -1
  54. package/frontend/.svelte-kit/adapter-node/nodes/12.js +2 -2
  55. package/frontend/.svelte-kit/adapter-node/nodes/2.js +1 -1
  56. package/frontend/.svelte-kit/adapter-node/nodes/3.js +3 -3
  57. package/frontend/.svelte-kit/adapter-node/nodes/4.js +3 -3
  58. package/frontend/.svelte-kit/adapter-node/nodes/5.js +3 -3
  59. package/frontend/.svelte-kit/adapter-node/nodes/6.js +3 -3
  60. package/frontend/.svelte-kit/adapter-node/nodes/7.js +1 -1
  61. package/frontend/.svelte-kit/adapter-node/nodes/8.js +2 -2
  62. package/frontend/.svelte-kit/adapter-node/nodes/9.js +1 -1
  63. package/frontend/.svelte-kit/ambient.d.ts +28 -28
  64. package/frontend/.svelte-kit/generated/client/app.js +4 -4
  65. package/frontend/.svelte-kit/generated/client/nodes/13.js +6 -0
  66. package/frontend/.svelte-kit/generated/client/nodes/3.js +1 -1
  67. package/frontend/.svelte-kit/generated/client/nodes/4.js +1 -1
  68. package/frontend/.svelte-kit/generated/client/nodes/5.js +1 -1
  69. package/frontend/.svelte-kit/generated/client/nodes/6.js +1 -1
  70. package/frontend/.svelte-kit/generated/client-optimized/app.js +4 -4
  71. package/frontend/.svelte-kit/generated/client-optimized/nodes/3.js +1 -1
  72. package/frontend/.svelte-kit/generated/client-optimized/nodes/4.js +1 -1
  73. package/frontend/.svelte-kit/generated/client-optimized/nodes/5.js +1 -1
  74. package/frontend/.svelte-kit/generated/client-optimized/nodes/6.js +1 -1
  75. package/frontend/.svelte-kit/generated/server/internal.js +1 -1
  76. package/frontend/.svelte-kit/output/client/.vite/manifest.json +413 -401
  77. package/frontend/.svelte-kit/output/client/_app/immutable/assets/0.CmJTG5mP.css +6 -0
  78. package/frontend/.svelte-kit/output/client/_app/immutable/assets/12.B9H_IpSU.css +6 -0
  79. package/frontend/.svelte-kit/output/client/_app/immutable/assets/3.Be5c3USL.css +6 -0
  80. package/frontend/.svelte-kit/output/client/_app/immutable/assets/5.ClS4XkkN.css +6 -0
  81. package/frontend/.svelte-kit/output/client/_app/immutable/assets/6.BN5XbLUX.css +6 -0
  82. package/frontend/.svelte-kit/output/client/_app/immutable/assets/8.COwSGmmy.css +6 -0
  83. package/frontend/.svelte-kit/output/client/_app/immutable/assets/BackLink.DRrgBGDC.css +6 -0
  84. package/frontend/.svelte-kit/output/client/_app/immutable/assets/_layout.HkPnpRl9.css +6 -0
  85. package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.B9H_IpSU.css +6 -0
  86. package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.Be5c3USL.css +6 -0
  87. package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.COwSGmmy.css +6 -0
  88. package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.ClS4XkkN.css +6 -0
  89. package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.Dp6vaGRc.css +6 -0
  90. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/2-KCkWZO.js +6 -0
  91. package/frontend/{build/client/_app/immutable/chunks/CNdcuGR0.js → .svelte-kit/output/client/_app/immutable/chunks/B00vxw57.js} +1 -1
  92. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/B0_HKFXV.js +6 -0
  93. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/{t-La0hgu.js → BAvTKHxT.js} +1 -1
  94. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/BJ_ypKl3.js +6 -0
  95. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/BbYY_TzB.js +6 -0
  96. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/Beula-TH.js +11 -0
  97. package/frontend/{build/client/_app/immutable/chunks/CKDtmZUQ.js → .svelte-kit/output/client/_app/immutable/chunks/C00jnSU2.js} +1 -1
  98. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/C2_rQ4aY.js +175 -0
  99. package/frontend/{build/client/_app/immutable/chunks/DCgHuuvs.js → .svelte-kit/output/client/_app/immutable/chunks/C7uEQ-LH.js} +1 -1
  100. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/C8S7qQjQ.js +6 -0
  101. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/{CzlPaHY9.js → CZWchtW8.js} +1 -1
  102. package/frontend/{build/client/_app/immutable/chunks/2zMvi6fR.js → .svelte-kit/output/client/_app/immutable/chunks/CboYYxrf.js} +1 -1
  103. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/CeH-RgMb.js +6 -0
  104. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/{CgnwuKKO.js → CegSvdD-.js} +1 -1
  105. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/CfkUW1vA.js +6 -0
  106. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/Cfmt4_tJ.js +6 -0
  107. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/Cgw8TOOy.js +6 -0
  108. package/frontend/{build/client/_app/immutable/chunks/C1Vid6wz.js → .svelte-kit/output/client/_app/immutable/chunks/Ck6C3Fl0.js} +1 -1
  109. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/CoTEzvLa.js +6 -0
  110. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/{DMZwI8Cj.js → DAmOMhaf.js} +1 -1
  111. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/DB3YXVFP.js +6 -0
  112. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/{w0D4Uzlq.js → DWzEJYIF.js} +1 -1
  113. package/frontend/{build/client/_app/immutable/chunks/CMEtqUfQ.js → .svelte-kit/output/client/_app/immutable/chunks/DgQy0SB2.js} +1 -1
  114. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/{kkA1mrsH.js → DiVmSEJa.js} +2 -2
  115. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/Dl-F6VCo.js +6 -0
  116. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/DuAVKaL3.js +6 -0
  117. package/frontend/{build/client/_app/immutable/chunks/BmZ9upwL.js → .svelte-kit/output/client/_app/immutable/chunks/GDjpV3r7.js} +1 -1
  118. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/K1h4wprj.js +6 -0
  119. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/{DDZw0L0T.js → d2K3c8Kx.js} +1 -1
  120. package/frontend/.svelte-kit/output/client/_app/immutable/entry/app.DRjRA71t.js +7 -0
  121. package/frontend/{build/client/_app/immutable/entry/start.4qxHHAcl.js → .svelte-kit/output/client/_app/immutable/entry/start.BXOLyf9R.js} +1 -1
  122. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/0.CRb8Nyce.js +6 -0
  123. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/{1.Df9sLw8b.js → 1.BI97il3r.js} +1 -1
  124. package/frontend/{build/client/_app/immutable/nodes/10.DEbnxfND.js → .svelte-kit/output/client/_app/immutable/nodes/10.kyazROhw.js} +1 -1
  125. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/{11.BViaDK2m.js → 11.B3vMgT2v.js} +1 -1
  126. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/12.DkPcIrgW.js +6 -0
  127. package/frontend/{build/client/_app/immutable/nodes/2.BCPSg7H4.js → .svelte-kit/output/client/_app/immutable/nodes/2.Dr6yugXz.js} +1 -1
  128. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/3.DUiL7fb5.js +6 -0
  129. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/{3.8BFAJoHT.js → 4.DDADylfF.js} +1 -1
  130. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/5.N4CeDeoD.js +6 -0
  131. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/6.DWd93Bv5.js +10 -0
  132. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/7.c8d1cQQM.js +6 -0
  133. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/8.Cvd3MauU.js +9 -0
  134. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/{9.CvfGx3Hu.js → 9.BOK0GNF_.js} +1 -1
  135. package/frontend/.svelte-kit/output/client/_app/version.json +1 -1
  136. package/frontend/.svelte-kit/output/server/.vite/manifest.json +35 -35
  137. package/frontend/.svelte-kit/output/server/_app/immutable/assets/BackLink.DRrgBGDC.css +6 -0
  138. package/frontend/.svelte-kit/output/server/_app/immutable/assets/_layout.HkPnpRl9.css +6 -0
  139. package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.B9H_IpSU.css +6 -0
  140. package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.Be5c3USL.css +6 -0
  141. package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.COwSGmmy.css +6 -0
  142. package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.ClS4XkkN.css +6 -0
  143. package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.Dp6vaGRc.css +6 -0
  144. package/frontend/.svelte-kit/output/server/chunks/BackLink.js +1 -1
  145. package/frontend/.svelte-kit/output/server/chunks/Badge.js +1 -1
  146. package/frontend/.svelte-kit/output/server/chunks/ConfirmModal.js +1 -1
  147. package/frontend/.svelte-kit/output/server/chunks/EmptyState.js +1 -1
  148. package/frontend/.svelte-kit/output/server/chunks/Modal.js +1 -1
  149. package/frontend/.svelte-kit/output/server/chunks/Toast.js +1 -1
  150. package/frontend/.svelte-kit/output/server/chunks/constants.js +6 -4
  151. package/frontend/.svelte-kit/output/server/chunks/format.js +3 -3
  152. package/frontend/.svelte-kit/output/server/chunks/index.js +4 -4
  153. package/frontend/.svelte-kit/output/server/chunks/internal.js +1 -1
  154. package/frontend/.svelte-kit/output/server/chunks/reports.js +1 -1
  155. package/frontend/.svelte-kit/output/server/chunks/reports2.js +38 -40
  156. package/frontend/.svelte-kit/output/server/chunks/repository.js +8 -0
  157. package/frontend/.svelte-kit/output/server/chunks/runner.js +10 -20
  158. package/frontend/.svelte-kit/output/server/entries/pages/live/_id_/_page.svelte.js +254 -0
  159. package/frontend/.svelte-kit/output/server/entries/pages/login/_page.svelte.js +1 -1
  160. package/frontend/.svelte-kit/output/server/entries/pages/reports/_id_/_page.svelte.js +29 -24
  161. package/frontend/.svelte-kit/output/server/entries/pages/reports/_page.svelte.js +23 -19
  162. package/frontend/.svelte-kit/output/server/entries/pages/scheduled-tests/_page.svelte.js +3 -3
  163. package/frontend/.svelte-kit/output/server/entries/pages/settings/_page.svelte.js +173 -51
  164. package/frontend/.svelte-kit/output/server/entries/pages/setup/_page.svelte.js +1 -1
  165. package/frontend/.svelte-kit/output/server/entries/pages/test-repository/runs/_id_/_page.svelte.js +1 -1
  166. package/frontend/.svelte-kit/output/server/entries/pages/test-repository/suites/_id_/_page.svelte.js +63 -11
  167. package/frontend/.svelte-kit/output/server/manifest-full.js +10 -10
  168. package/frontend/.svelte-kit/output/server/manifest.js +10 -10
  169. package/frontend/.svelte-kit/output/server/nodes/0.js +2 -2
  170. package/frontend/.svelte-kit/output/server/nodes/1.js +1 -1
  171. package/frontend/.svelte-kit/output/server/nodes/10.js +1 -1
  172. package/frontend/.svelte-kit/output/server/nodes/11.js +1 -1
  173. package/frontend/.svelte-kit/output/server/nodes/12.js +2 -2
  174. package/frontend/.svelte-kit/output/server/nodes/2.js +1 -1
  175. package/frontend/.svelte-kit/output/server/nodes/3.js +3 -3
  176. package/frontend/.svelte-kit/output/server/nodes/4.js +3 -3
  177. package/frontend/.svelte-kit/output/server/nodes/5.js +3 -3
  178. package/frontend/.svelte-kit/output/server/nodes/6.js +3 -3
  179. package/frontend/.svelte-kit/output/server/nodes/7.js +1 -1
  180. package/frontend/.svelte-kit/output/server/nodes/8.js +2 -2
  181. package/frontend/.svelte-kit/output/server/nodes/9.js +1 -1
  182. package/frontend/build/client/_app/immutable/assets/0.CmJTG5mP.css +6 -0
  183. package/frontend/build/client/_app/immutable/assets/0.CmJTG5mP.css.br +0 -0
  184. package/frontend/build/client/_app/immutable/assets/0.CmJTG5mP.css.gz +0 -0
  185. package/frontend/build/client/_app/immutable/assets/12.B9H_IpSU.css +6 -0
  186. package/frontend/build/client/_app/immutable/assets/12.B9H_IpSU.css.br +0 -0
  187. package/frontend/build/client/_app/immutable/assets/12.B9H_IpSU.css.gz +0 -0
  188. package/frontend/build/client/_app/immutable/assets/3.Be5c3USL.css +6 -0
  189. package/frontend/build/client/_app/immutable/assets/3.Be5c3USL.css.br +0 -0
  190. package/frontend/build/client/_app/immutable/assets/3.Be5c3USL.css.gz +0 -0
  191. package/frontend/build/client/_app/immutable/assets/5.ClS4XkkN.css +6 -0
  192. package/frontend/build/client/_app/immutable/assets/5.ClS4XkkN.css.br +0 -0
  193. package/frontend/build/client/_app/immutable/assets/5.ClS4XkkN.css.gz +0 -0
  194. package/frontend/build/client/_app/immutable/assets/6.BN5XbLUX.css +6 -0
  195. package/frontend/build/client/_app/immutable/assets/6.BN5XbLUX.css.br +0 -0
  196. package/frontend/build/client/_app/immutable/assets/6.BN5XbLUX.css.gz +0 -0
  197. package/frontend/build/client/_app/immutable/assets/8.COwSGmmy.css +6 -0
  198. package/frontend/build/client/_app/immutable/assets/8.COwSGmmy.css.br +0 -0
  199. package/frontend/build/client/_app/immutable/assets/8.COwSGmmy.css.gz +0 -0
  200. package/frontend/build/client/_app/immutable/assets/BackLink.DRrgBGDC.css +6 -0
  201. package/frontend/build/client/_app/immutable/assets/BackLink.DRrgBGDC.css.br +0 -0
  202. package/frontend/build/client/_app/immutable/assets/BackLink.DRrgBGDC.css.gz +0 -0
  203. package/frontend/build/client/_app/immutable/assets/_layout.HkPnpRl9.css +6 -0
  204. package/frontend/build/client/_app/immutable/assets/_layout.HkPnpRl9.css.br +0 -0
  205. package/frontend/build/client/_app/immutable/assets/_layout.HkPnpRl9.css.gz +0 -0
  206. package/frontend/build/client/_app/immutable/assets/_page.B9H_IpSU.css +6 -0
  207. package/frontend/build/client/_app/immutable/assets/_page.B9H_IpSU.css.br +0 -0
  208. package/frontend/build/client/_app/immutable/assets/_page.B9H_IpSU.css.gz +0 -0
  209. package/frontend/build/client/_app/immutable/assets/_page.Be5c3USL.css +6 -0
  210. package/frontend/build/client/_app/immutable/assets/_page.Be5c3USL.css.br +0 -0
  211. package/frontend/build/client/_app/immutable/assets/_page.Be5c3USL.css.gz +0 -0
  212. package/frontend/build/client/_app/immutable/assets/_page.COwSGmmy.css +6 -0
  213. package/frontend/build/client/_app/immutable/assets/_page.COwSGmmy.css.br +0 -0
  214. package/frontend/build/client/_app/immutable/assets/_page.COwSGmmy.css.gz +0 -0
  215. package/frontend/build/client/_app/immutable/assets/_page.ClS4XkkN.css +6 -0
  216. package/frontend/build/client/_app/immutable/assets/_page.ClS4XkkN.css.br +0 -0
  217. package/frontend/build/client/_app/immutable/assets/_page.ClS4XkkN.css.gz +0 -0
  218. package/frontend/build/client/_app/immutable/assets/_page.Dp6vaGRc.css +6 -0
  219. package/frontend/build/client/_app/immutable/assets/_page.Dp6vaGRc.css.br +0 -0
  220. package/frontend/build/client/_app/immutable/assets/_page.Dp6vaGRc.css.gz +0 -0
  221. package/frontend/build/client/_app/immutable/chunks/2-KCkWZO.js +6 -0
  222. package/frontend/build/client/_app/immutable/chunks/2-KCkWZO.js.br +0 -0
  223. package/frontend/build/client/_app/immutable/chunks/2-KCkWZO.js.gz +0 -0
  224. package/frontend/{.svelte-kit/output/client/_app/immutable/chunks/CNdcuGR0.js → build/client/_app/immutable/chunks/B00vxw57.js} +1 -1
  225. package/frontend/build/client/_app/immutable/chunks/B00vxw57.js.br +0 -0
  226. package/frontend/build/client/_app/immutable/chunks/B00vxw57.js.gz +0 -0
  227. package/frontend/build/client/_app/immutable/chunks/B0_HKFXV.js +6 -0
  228. package/frontend/build/client/_app/immutable/chunks/B0_HKFXV.js.br +0 -0
  229. package/frontend/build/client/_app/immutable/chunks/B0_HKFXV.js.gz +0 -0
  230. package/frontend/build/client/_app/immutable/chunks/{t-La0hgu.js → BAvTKHxT.js} +1 -1
  231. package/frontend/build/client/_app/immutable/chunks/BAvTKHxT.js.br +0 -0
  232. package/frontend/build/client/_app/immutable/chunks/BAvTKHxT.js.gz +0 -0
  233. package/frontend/build/client/_app/immutable/chunks/BJ_ypKl3.js +6 -0
  234. package/frontend/build/client/_app/immutable/chunks/BJ_ypKl3.js.br +0 -0
  235. package/frontend/build/client/_app/immutable/chunks/BJ_ypKl3.js.gz +0 -0
  236. package/frontend/build/client/_app/immutable/chunks/BbYY_TzB.js +6 -0
  237. package/frontend/build/client/_app/immutable/chunks/BbYY_TzB.js.br +0 -0
  238. package/frontend/build/client/_app/immutable/chunks/BbYY_TzB.js.gz +0 -0
  239. package/frontend/build/client/_app/immutable/chunks/Beula-TH.js +11 -0
  240. package/frontend/build/client/_app/immutable/chunks/Beula-TH.js.br +0 -0
  241. package/frontend/build/client/_app/immutable/chunks/Beula-TH.js.gz +0 -0
  242. package/frontend/{.svelte-kit/output/client/_app/immutable/chunks/CKDtmZUQ.js → build/client/_app/immutable/chunks/C00jnSU2.js} +1 -1
  243. package/frontend/build/client/_app/immutable/chunks/C00jnSU2.js.br +0 -0
  244. package/frontend/build/client/_app/immutable/chunks/C00jnSU2.js.gz +0 -0
  245. package/frontend/build/client/_app/immutable/chunks/C2_rQ4aY.js +175 -0
  246. package/frontend/build/client/_app/immutable/chunks/C2_rQ4aY.js.br +0 -0
  247. package/frontend/build/client/_app/immutable/chunks/C2_rQ4aY.js.gz +0 -0
  248. package/frontend/{.svelte-kit/output/client/_app/immutable/chunks/DCgHuuvs.js → build/client/_app/immutable/chunks/C7uEQ-LH.js} +1 -1
  249. package/frontend/build/client/_app/immutable/chunks/C7uEQ-LH.js.br +0 -0
  250. package/frontend/build/client/_app/immutable/chunks/C7uEQ-LH.js.gz +0 -0
  251. package/frontend/build/client/_app/immutable/chunks/C8S7qQjQ.js +6 -0
  252. package/frontend/build/client/_app/immutable/chunks/C8S7qQjQ.js.br +0 -0
  253. package/frontend/build/client/_app/immutable/chunks/C8S7qQjQ.js.gz +0 -0
  254. package/frontend/build/client/_app/immutable/chunks/{CzlPaHY9.js → CZWchtW8.js} +1 -1
  255. package/frontend/build/client/_app/immutable/chunks/CZWchtW8.js.br +0 -0
  256. package/frontend/build/client/_app/immutable/chunks/CZWchtW8.js.gz +0 -0
  257. package/frontend/{.svelte-kit/output/client/_app/immutable/chunks/2zMvi6fR.js → build/client/_app/immutable/chunks/CboYYxrf.js} +1 -1
  258. package/frontend/build/client/_app/immutable/chunks/CboYYxrf.js.br +6 -0
  259. package/frontend/build/client/_app/immutable/chunks/CboYYxrf.js.gz +0 -0
  260. package/frontend/build/client/_app/immutable/chunks/CeH-RgMb.js +6 -0
  261. package/frontend/build/client/_app/immutable/chunks/CeH-RgMb.js.br +0 -0
  262. package/frontend/build/client/_app/immutable/chunks/CeH-RgMb.js.gz +0 -0
  263. package/frontend/build/client/_app/immutable/chunks/{CgnwuKKO.js → CegSvdD-.js} +1 -1
  264. package/frontend/build/client/_app/immutable/chunks/CegSvdD-.js.br +0 -0
  265. package/frontend/build/client/_app/immutable/chunks/CegSvdD-.js.gz +0 -0
  266. package/frontend/build/client/_app/immutable/chunks/CfkUW1vA.js +6 -0
  267. package/frontend/build/client/_app/immutable/chunks/CfkUW1vA.js.br +0 -0
  268. package/frontend/build/client/_app/immutable/chunks/CfkUW1vA.js.gz +0 -0
  269. package/frontend/build/client/_app/immutable/chunks/Cfmt4_tJ.js +6 -0
  270. package/frontend/build/client/_app/immutable/chunks/Cfmt4_tJ.js.br +0 -0
  271. package/frontend/build/client/_app/immutable/chunks/Cfmt4_tJ.js.gz +0 -0
  272. package/frontend/build/client/_app/immutable/chunks/Cgw8TOOy.js +6 -0
  273. package/frontend/build/client/_app/immutable/chunks/Cgw8TOOy.js.br +0 -0
  274. package/frontend/build/client/_app/immutable/chunks/Cgw8TOOy.js.gz +0 -0
  275. package/frontend/{.svelte-kit/output/client/_app/immutable/chunks/C1Vid6wz.js → build/client/_app/immutable/chunks/Ck6C3Fl0.js} +1 -1
  276. package/frontend/build/client/_app/immutable/chunks/Ck6C3Fl0.js.br +0 -0
  277. package/frontend/build/client/_app/immutable/chunks/Ck6C3Fl0.js.gz +0 -0
  278. package/frontend/build/client/_app/immutable/chunks/CoTEzvLa.js +6 -0
  279. package/frontend/build/client/_app/immutable/chunks/CoTEzvLa.js.br +0 -0
  280. package/frontend/build/client/_app/immutable/chunks/CoTEzvLa.js.gz +0 -0
  281. package/frontend/build/client/_app/immutable/chunks/{DMZwI8Cj.js → DAmOMhaf.js} +1 -1
  282. package/frontend/build/client/_app/immutable/chunks/DAmOMhaf.js.br +0 -0
  283. package/frontend/build/client/_app/immutable/chunks/DAmOMhaf.js.gz +0 -0
  284. package/frontend/build/client/_app/immutable/chunks/DB3YXVFP.js +6 -0
  285. package/frontend/build/client/_app/immutable/chunks/DB3YXVFP.js.br +0 -0
  286. package/frontend/build/client/_app/immutable/chunks/DB3YXVFP.js.gz +0 -0
  287. package/frontend/build/client/_app/immutable/chunks/{w0D4Uzlq.js → DWzEJYIF.js} +1 -1
  288. package/frontend/build/client/_app/immutable/chunks/DWzEJYIF.js.br +7 -0
  289. package/frontend/build/client/_app/immutable/chunks/DWzEJYIF.js.gz +0 -0
  290. package/frontend/{.svelte-kit/output/client/_app/immutable/chunks/CMEtqUfQ.js → build/client/_app/immutable/chunks/DgQy0SB2.js} +1 -1
  291. package/frontend/build/client/_app/immutable/chunks/DgQy0SB2.js.br +0 -0
  292. package/frontend/build/client/_app/immutable/chunks/DgQy0SB2.js.gz +0 -0
  293. package/frontend/build/client/_app/immutable/chunks/{kkA1mrsH.js → DiVmSEJa.js} +2 -2
  294. package/frontend/build/client/_app/immutable/chunks/DiVmSEJa.js.br +0 -0
  295. package/frontend/build/client/_app/immutable/chunks/DiVmSEJa.js.gz +0 -0
  296. package/frontend/build/client/_app/immutable/chunks/Dl-F6VCo.js +6 -0
  297. package/frontend/build/client/_app/immutable/chunks/Dl-F6VCo.js.br +0 -0
  298. package/frontend/build/client/_app/immutable/chunks/Dl-F6VCo.js.gz +0 -0
  299. package/frontend/build/client/_app/immutable/chunks/DuAVKaL3.js +6 -0
  300. package/frontend/build/client/_app/immutable/chunks/DuAVKaL3.js.br +0 -0
  301. package/frontend/build/client/_app/immutable/chunks/DuAVKaL3.js.gz +0 -0
  302. package/frontend/{.svelte-kit/output/client/_app/immutable/chunks/BmZ9upwL.js → build/client/_app/immutable/chunks/GDjpV3r7.js} +1 -1
  303. package/frontend/build/client/_app/immutable/chunks/GDjpV3r7.js.br +0 -0
  304. package/frontend/build/client/_app/immutable/chunks/GDjpV3r7.js.gz +0 -0
  305. package/frontend/build/client/_app/immutable/chunks/K1h4wprj.js +6 -0
  306. package/frontend/build/client/_app/immutable/chunks/K1h4wprj.js.br +0 -0
  307. package/frontend/build/client/_app/immutable/chunks/K1h4wprj.js.gz +0 -0
  308. package/frontend/build/client/_app/immutable/chunks/{DDZw0L0T.js → d2K3c8Kx.js} +1 -1
  309. package/frontend/build/client/_app/immutable/chunks/d2K3c8Kx.js.br +0 -0
  310. package/frontend/build/client/_app/immutable/chunks/d2K3c8Kx.js.gz +0 -0
  311. package/frontend/build/client/_app/immutable/entry/app.DRjRA71t.js +7 -0
  312. package/frontend/build/client/_app/immutable/entry/app.DRjRA71t.js.br +0 -0
  313. package/frontend/build/client/_app/immutable/entry/app.DRjRA71t.js.gz +0 -0
  314. package/frontend/{.svelte-kit/output/client/_app/immutable/entry/start.4qxHHAcl.js → build/client/_app/immutable/entry/start.BXOLyf9R.js} +1 -1
  315. package/frontend/build/client/_app/immutable/entry/{start.4qxHHAcl.js.br → start.BXOLyf9R.js.br} +1 -1
  316. package/frontend/build/client/_app/immutable/entry/{start.4qxHHAcl.js.gz → start.BXOLyf9R.js.gz} +0 -0
  317. package/frontend/build/client/_app/immutable/nodes/0.CRb8Nyce.js +6 -0
  318. package/frontend/build/client/_app/immutable/nodes/0.CRb8Nyce.js.br +0 -0
  319. package/frontend/build/client/_app/immutable/nodes/0.CRb8Nyce.js.gz +0 -0
  320. package/frontend/build/client/_app/immutable/nodes/{1.Df9sLw8b.js → 1.BI97il3r.js} +1 -1
  321. package/frontend/build/client/_app/immutable/nodes/1.BI97il3r.js.br +0 -0
  322. package/frontend/build/client/_app/immutable/nodes/1.BI97il3r.js.gz +0 -0
  323. package/frontend/{.svelte-kit/output/client/_app/immutable/nodes/10.DEbnxfND.js → build/client/_app/immutable/nodes/10.kyazROhw.js} +1 -1
  324. package/frontend/build/client/_app/immutable/nodes/10.kyazROhw.js.br +0 -0
  325. package/frontend/build/client/_app/immutable/nodes/10.kyazROhw.js.gz +0 -0
  326. package/frontend/build/client/_app/immutable/nodes/{11.BViaDK2m.js → 11.B3vMgT2v.js} +1 -1
  327. package/frontend/build/client/_app/immutable/nodes/11.B3vMgT2v.js.br +0 -0
  328. package/frontend/build/client/_app/immutable/nodes/11.B3vMgT2v.js.gz +0 -0
  329. package/frontend/build/client/_app/immutable/nodes/12.DkPcIrgW.js +6 -0
  330. package/frontend/build/client/_app/immutable/nodes/12.DkPcIrgW.js.br +0 -0
  331. package/frontend/build/client/_app/immutable/nodes/12.DkPcIrgW.js.gz +0 -0
  332. package/frontend/{.svelte-kit/output/client/_app/immutable/nodes/2.BCPSg7H4.js → build/client/_app/immutable/nodes/2.Dr6yugXz.js} +1 -1
  333. package/frontend/build/client/_app/immutable/nodes/2.Dr6yugXz.js.br +0 -0
  334. package/frontend/build/client/_app/immutable/nodes/2.Dr6yugXz.js.gz +0 -0
  335. package/frontend/build/client/_app/immutable/nodes/3.DUiL7fb5.js +6 -0
  336. package/frontend/build/client/_app/immutable/nodes/3.DUiL7fb5.js.br +0 -0
  337. package/frontend/build/client/_app/immutable/nodes/3.DUiL7fb5.js.gz +0 -0
  338. package/frontend/build/client/_app/immutable/nodes/{3.8BFAJoHT.js → 4.DDADylfF.js} +1 -1
  339. package/frontend/build/client/_app/immutable/nodes/4.DDADylfF.js.br +0 -0
  340. package/frontend/build/client/_app/immutable/nodes/4.DDADylfF.js.gz +0 -0
  341. package/frontend/build/client/_app/immutable/nodes/5.N4CeDeoD.js +6 -0
  342. package/frontend/build/client/_app/immutable/nodes/5.N4CeDeoD.js.br +0 -0
  343. package/frontend/build/client/_app/immutable/nodes/5.N4CeDeoD.js.gz +0 -0
  344. package/frontend/build/client/_app/immutable/nodes/6.DWd93Bv5.js +10 -0
  345. package/frontend/build/client/_app/immutable/nodes/6.DWd93Bv5.js.br +0 -0
  346. package/frontend/build/client/_app/immutable/nodes/6.DWd93Bv5.js.gz +0 -0
  347. package/frontend/build/client/_app/immutable/nodes/7.c8d1cQQM.js +6 -0
  348. package/frontend/build/client/_app/immutable/nodes/7.c8d1cQQM.js.br +0 -0
  349. package/frontend/build/client/_app/immutable/nodes/7.c8d1cQQM.js.gz +0 -0
  350. package/frontend/build/client/_app/immutable/nodes/8.Cvd3MauU.js +9 -0
  351. package/frontend/build/client/_app/immutable/nodes/8.Cvd3MauU.js.br +0 -0
  352. package/frontend/build/client/_app/immutable/nodes/8.Cvd3MauU.js.gz +0 -0
  353. package/frontend/build/client/_app/immutable/nodes/{9.CvfGx3Hu.js → 9.BOK0GNF_.js} +1 -1
  354. package/frontend/build/client/_app/immutable/nodes/9.BOK0GNF_.js.br +0 -0
  355. package/frontend/build/client/_app/immutable/nodes/9.BOK0GNF_.js.gz +0 -0
  356. package/frontend/build/client/_app/version.json +1 -1
  357. package/frontend/build/client/_app/version.json.br +0 -0
  358. package/frontend/build/client/_app/version.json.gz +0 -0
  359. package/frontend/build/server/chunks/0-_rljpEay.js +22 -0
  360. package/frontend/build/server/chunks/0-_rljpEay.js.map +5 -0
  361. package/frontend/build/server/chunks/{1-Kxn9d30Z.js → 1-B3HpigzL.js} +3 -3
  362. package/frontend/build/server/chunks/{1-Kxn9d30Z.js.map → 1-B3HpigzL.js.map} +1 -1
  363. package/frontend/build/server/chunks/10-BQBBYpxV.js +14 -0
  364. package/frontend/build/server/chunks/10-BQBBYpxV.js.map +5 -0
  365. package/frontend/build/server/chunks/11-10xw0TIP.js +14 -0
  366. package/frontend/build/server/chunks/11-10xw0TIP.js.map +5 -0
  367. package/frontend/build/server/chunks/12-CZ3_Uw3c.js +14 -0
  368. package/frontend/build/server/chunks/{12-De6Ol6pu.js.map → 12-CZ3_Uw3c.js.map} +1 -1
  369. package/frontend/build/server/chunks/2-DioMbKbC.js +14 -0
  370. package/frontend/build/server/chunks/{2-Dc_rKWoK.js.map → 2-DioMbKbC.js.map} +1 -1
  371. package/frontend/build/server/chunks/3-CgiZg_9v.js +14 -0
  372. package/frontend/build/server/chunks/3-CgiZg_9v.js.map +5 -0
  373. package/frontend/build/server/chunks/4-BM-49dbE.js +14 -0
  374. package/frontend/build/server/chunks/4-BM-49dbE.js.map +5 -0
  375. package/frontend/build/server/chunks/5-Brx_KOzy.js +14 -0
  376. package/frontend/build/server/chunks/5-Brx_KOzy.js.map +5 -0
  377. package/frontend/build/server/chunks/6-C5swINND.js +14 -0
  378. package/frontend/build/server/chunks/6-C5swINND.js.map +5 -0
  379. package/frontend/build/server/chunks/7-B8e4y3CB.js +14 -0
  380. package/frontend/build/server/chunks/{7-DiQJZEF_.js.map → 7-B8e4y3CB.js.map} +1 -1
  381. package/frontend/build/server/chunks/8-BZtkZMIZ.js +14 -0
  382. package/frontend/build/server/chunks/8-BZtkZMIZ.js.map +5 -0
  383. package/frontend/build/server/chunks/9-BMAKiAem.js +14 -0
  384. package/frontend/build/server/chunks/{9-DirZG_Lu.js.map → 9-BMAKiAem.js.map} +1 -1
  385. package/frontend/build/server/chunks/{BackLink-BJ8NaemM.js → BackLink-CMpNTYqE.js} +2 -2
  386. package/frontend/build/server/chunks/BackLink-CMpNTYqE.js.map +5 -0
  387. package/frontend/build/server/chunks/{Badge-44ZTDx0V.js → Badge-BTWnF9pA.js} +2 -2
  388. package/frontend/build/server/chunks/Badge-BTWnF9pA.js.map +5 -0
  389. package/frontend/build/server/chunks/{ConfirmModal-C0EAXcq_.js → ConfirmModal-CtGWHl0v.js} +3 -3
  390. package/frontend/build/server/chunks/ConfirmModal-CtGWHl0v.js.map +5 -0
  391. package/frontend/build/server/chunks/{EmptyState-BA_eXaeR.js → EmptyState-Zpm9tJe1.js} +2 -2
  392. package/frontend/build/server/chunks/EmptyState-Zpm9tJe1.js.map +5 -0
  393. package/frontend/build/server/chunks/{Modal-DChG187n.js → Modal-BJJMnfIg.js} +2 -2
  394. package/frontend/build/server/chunks/Modal-BJJMnfIg.js.map +5 -0
  395. package/frontend/build/server/chunks/{Toast-v-q4ZnYq.js → Toast-CHB87F8k.js} +2 -2
  396. package/frontend/build/server/chunks/Toast-CHB87F8k.js.map +5 -0
  397. package/frontend/build/server/chunks/{_layout.svelte-CHVI3Prt.js → _layout.svelte-C_6nsIpT.js} +7 -7
  398. package/frontend/build/server/chunks/{_layout.svelte-CHVI3Prt.js.map → _layout.svelte-C_6nsIpT.js.map} +1 -1
  399. package/frontend/build/server/chunks/{_page.svelte-1jo8MapI.js → _page.svelte-BNwU9zza.js} +11 -10
  400. package/frontend/build/server/chunks/_page.svelte-BNwU9zza.js.map +5 -0
  401. package/frontend/build/server/chunks/{_page.svelte-04WxjOuH.js → _page.svelte-Bamoq11m.js} +8 -8
  402. package/frontend/build/server/chunks/{_page.svelte-04WxjOuH.js.map → _page.svelte-Bamoq11m.js.map} +1 -1
  403. package/frontend/build/server/chunks/{_page.svelte-Kg69DDaM.js → _page.svelte-BrYksycU.js} +5 -5
  404. package/frontend/build/server/chunks/_page.svelte-BrYksycU.js.map +5 -0
  405. package/frontend/build/server/chunks/{_page.svelte-BuFusRK1.js → _page.svelte-CAlhaCzS.js} +12 -12
  406. package/frontend/build/server/chunks/_page.svelte-CAlhaCzS.js.map +5 -0
  407. package/frontend/build/server/chunks/_page.svelte-CTebwzwy.js +62 -0
  408. package/frontend/build/server/chunks/_page.svelte-CTebwzwy.js.map +5 -0
  409. package/frontend/build/server/chunks/{_page.svelte-1as75nPc.js → _page.svelte-CbTrCeeX.js} +32 -28
  410. package/frontend/build/server/chunks/_page.svelte-CbTrCeeX.js.map +5 -0
  411. package/frontend/build/server/chunks/{_page.svelte-D3E6Eojd.js → _page.svelte-Cf6bI1Y2.js} +5 -5
  412. package/frontend/build/server/chunks/_page.svelte-Cf6bI1Y2.js.map +5 -0
  413. package/frontend/build/server/chunks/{_page.svelte-CWWeZuid.js → _page.svelte-CmJKt3-H.js} +71 -19
  414. package/frontend/build/server/chunks/_page.svelte-CmJKt3-H.js.map +5 -0
  415. package/frontend/build/server/chunks/{_page.svelte-CB8-QBNg.js → _page.svelte-DHZhNTPg.js} +11 -10
  416. package/frontend/build/server/chunks/{_page.svelte-CB8-QBNg.js.map → _page.svelte-DHZhNTPg.js.map} +1 -1
  417. package/frontend/build/server/chunks/_page.svelte-DObTHQe2.js +257 -0
  418. package/frontend/build/server/chunks/_page.svelte-DObTHQe2.js.map +5 -0
  419. package/frontend/build/server/chunks/{_page.svelte-8gELc_B1.js → _page.svelte-ywHy9KCh.js} +182 -59
  420. package/frontend/build/server/chunks/_page.svelte-ywHy9KCh.js.map +5 -0
  421. package/frontend/build/server/chunks/{auth-Chw-wBpI.js → auth-DDPlushv.js} +2 -2
  422. package/frontend/build/server/chunks/{auth-Chw-wBpI.js.map → auth-DDPlushv.js.map} +1 -1
  423. package/frontend/build/server/chunks/{client-DEmxR_a-.js → client-CsTiGNZy.js} +2 -2
  424. package/frontend/build/server/chunks/{client-DEmxR_a-.js.map → client-CsTiGNZy.js.map} +1 -1
  425. package/frontend/build/server/chunks/{constants-CXTaQaB6.js → constants-BYVkTZ-O.js} +3 -2
  426. package/frontend/build/server/chunks/constants-BYVkTZ-O.js.map +5 -0
  427. package/frontend/build/server/chunks/{error.svelte-BD3xNemk.js → error.svelte-BXr4lXlB.js} +3 -3
  428. package/frontend/build/server/chunks/{error.svelte-BD3xNemk.js.map → error.svelte-BXr4lXlB.js.map} +1 -1
  429. package/frontend/build/server/chunks/{format-CiNRMfHu.js → format-2pqy61MU.js} +2 -2
  430. package/frontend/build/server/chunks/{format-CiNRMfHu.js.map → format-2pqy61MU.js.map} +1 -1
  431. package/frontend/build/server/chunks/{index-server-B3M9vyh2.js → index-server-53nOZg5X.js} +2 -2
  432. package/frontend/build/server/chunks/{index-server-B3M9vyh2.js.map → index-server-53nOZg5X.js.map} +1 -1
  433. package/frontend/build/server/chunks/{index2-5R1tbrep.js → index2-DGcbugKe.js} +2 -2
  434. package/frontend/build/server/chunks/{index2-5R1tbrep.js.map → index2-DGcbugKe.js.map} +1 -1
  435. package/frontend/build/server/chunks/{reports-D_ApeeNh.js → reports-WuXG6tj3.js} +2 -2
  436. package/frontend/build/server/chunks/{reports-D_ApeeNh.js.map → reports-WuXG6tj3.js.map} +1 -1
  437. package/frontend/build/server/chunks/{reports2-BtElN_53.js → reports2-CCpI0xkQ.js} +7 -8
  438. package/frontend/build/server/chunks/reports2-CCpI0xkQ.js.map +5 -0
  439. package/frontend/build/server/chunks/{repository-FYYV_vKE.js → repository-TYWcFuWP.js} +6 -2
  440. package/frontend/build/server/chunks/repository-TYWcFuWP.js.map +5 -0
  441. package/frontend/build/server/chunks/runner-D5yCWOsy.js +27 -0
  442. package/frontend/build/server/chunks/runner-D5yCWOsy.js.map +5 -0
  443. package/frontend/build/server/chunks/{stores-BLenR3c1.js → stores-C4ZkywTG.js} +3 -3
  444. package/frontend/build/server/chunks/{stores-BLenR3c1.js.map → stores-C4ZkywTG.js.map} +1 -1
  445. package/frontend/build/server/chunks/{theme-nAx-GvX_.js → theme-C81wSe5T.js} +2 -2
  446. package/frontend/build/server/chunks/{theme-nAx-GvX_.js.map → theme-C81wSe5T.js.map} +1 -1
  447. package/frontend/build/server/index.js +2 -2
  448. package/frontend/build/server/index.js.map +1 -1
  449. package/frontend/build/server/manifest.js +23 -23
  450. package/frontend/build/server/manifest.js.map +1 -1
  451. package/frontend/src/lib/components/layout/RunnerPanel.svelte +186 -266
  452. package/frontend/src/lib/copy/reports.js +9 -0
  453. package/frontend/src/lib/copy/runners.js +9 -6
  454. package/frontend/src/lib/socketEvents.js +3 -15
  455. package/frontend/src/lib/stores/runner.js +62 -46
  456. package/frontend/src/routes/{reports/live → live/[id]}/+page.svelte +112 -183
  457. package/frontend/src/routes/scheduled-tests/+page.svelte +2 -2
  458. package/package.json +1 -1
  459. package/backend/services/activeRunsService.js +0 -55
  460. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/BackLink.CvWWuO3h.css +0 -6
  461. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_layout.BuhMvMUj.css +0 -6
  462. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.0Eln51hV.css +0 -6
  463. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.BZfe6nWe.css +0 -6
  464. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.Bj_a_5lv.css +0 -6
  465. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.BwgOqeMo.css +0 -6
  466. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.CFnbmY-D.css +0 -6
  467. package/frontend/.svelte-kit/adapter-node/entries/pages/reports/live/_page.svelte.js +0 -247
  468. package/frontend/.svelte-kit/output/client/_app/immutable/assets/0.BhSG-jZH.css +0 -6
  469. package/frontend/.svelte-kit/output/client/_app/immutable/assets/12.Bj_a_5lv.css +0 -6
  470. package/frontend/.svelte-kit/output/client/_app/immutable/assets/4.0Eln51hV.css +0 -6
  471. package/frontend/.svelte-kit/output/client/_app/immutable/assets/5.DFV9OgAu.css +0 -6
  472. package/frontend/.svelte-kit/output/client/_app/immutable/assets/6.CFnbmY-D.css +0 -6
  473. package/frontend/.svelte-kit/output/client/_app/immutable/assets/8.BwgOqeMo.css +0 -6
  474. package/frontend/.svelte-kit/output/client/_app/immutable/assets/BackLink.CvWWuO3h.css +0 -6
  475. package/frontend/.svelte-kit/output/client/_app/immutable/assets/_layout.BuhMvMUj.css +0 -6
  476. package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.0Eln51hV.css +0 -6
  477. package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.BZfe6nWe.css +0 -6
  478. package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.Bj_a_5lv.css +0 -6
  479. package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.BwgOqeMo.css +0 -6
  480. package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.CFnbmY-D.css +0 -6
  481. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/3InFPLvE.js +0 -6
  482. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/BAACMRH5.js +0 -6
  483. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/BAMUGSh7.js +0 -6
  484. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/BKuh57WU.js +0 -6
  485. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/BUwxRmHf.js +0 -6
  486. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/C8OURRSs.js +0 -6
  487. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/CGeZlCaI.js +0 -6
  488. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/CMBQQ9RZ.js +0 -6
  489. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/CUC98kMZ.js +0 -6
  490. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/Co3xKhEp.js +0 -6
  491. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/CuqnZUex.js +0 -6
  492. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/DHM6H-es.js +0 -7
  493. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/DSLBMEpr.js +0 -6
  494. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/DbgD7JLa.js +0 -6
  495. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/TOCyHP97.js +0 -11
  496. package/frontend/.svelte-kit/output/client/_app/immutable/entry/app.KrtMZ3my.js +0 -7
  497. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/0.C8DodwXs.js +0 -11
  498. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/12.BMSCSd88.js +0 -6
  499. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/4.D-YT_JJe.js +0 -6
  500. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/5.DVeH2eQP.js +0 -6
  501. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/6.DI7-IJhN.js +0 -6
  502. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/7.C-pKvVZy.js +0 -6
  503. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/8.93Mb3ofT.js +0 -9
  504. package/frontend/.svelte-kit/output/server/_app/immutable/assets/BackLink.CvWWuO3h.css +0 -6
  505. package/frontend/.svelte-kit/output/server/_app/immutable/assets/_layout.BuhMvMUj.css +0 -6
  506. package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.0Eln51hV.css +0 -6
  507. package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.BZfe6nWe.css +0 -6
  508. package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.Bj_a_5lv.css +0 -6
  509. package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.BwgOqeMo.css +0 -6
  510. package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.CFnbmY-D.css +0 -6
  511. package/frontend/.svelte-kit/output/server/entries/pages/reports/live/_page.svelte.js +0 -247
  512. package/frontend/build/client/_app/immutable/assets/0.BhSG-jZH.css +0 -6
  513. package/frontend/build/client/_app/immutable/assets/0.BhSG-jZH.css.br +0 -0
  514. package/frontend/build/client/_app/immutable/assets/0.BhSG-jZH.css.gz +0 -0
  515. package/frontend/build/client/_app/immutable/assets/12.Bj_a_5lv.css +0 -6
  516. package/frontend/build/client/_app/immutable/assets/12.Bj_a_5lv.css.br +0 -0
  517. package/frontend/build/client/_app/immutable/assets/12.Bj_a_5lv.css.gz +0 -0
  518. package/frontend/build/client/_app/immutable/assets/4.0Eln51hV.css +0 -6
  519. package/frontend/build/client/_app/immutable/assets/4.0Eln51hV.css.br +0 -0
  520. package/frontend/build/client/_app/immutable/assets/4.0Eln51hV.css.gz +0 -0
  521. package/frontend/build/client/_app/immutable/assets/5.DFV9OgAu.css +0 -6
  522. package/frontend/build/client/_app/immutable/assets/5.DFV9OgAu.css.br +0 -0
  523. package/frontend/build/client/_app/immutable/assets/5.DFV9OgAu.css.gz +0 -0
  524. package/frontend/build/client/_app/immutable/assets/6.CFnbmY-D.css +0 -6
  525. package/frontend/build/client/_app/immutable/assets/6.CFnbmY-D.css.br +0 -0
  526. package/frontend/build/client/_app/immutable/assets/6.CFnbmY-D.css.gz +0 -0
  527. package/frontend/build/client/_app/immutable/assets/8.BwgOqeMo.css +0 -6
  528. package/frontend/build/client/_app/immutable/assets/8.BwgOqeMo.css.br +0 -0
  529. package/frontend/build/client/_app/immutable/assets/8.BwgOqeMo.css.gz +0 -0
  530. package/frontend/build/client/_app/immutable/assets/BackLink.CvWWuO3h.css +0 -6
  531. package/frontend/build/client/_app/immutable/assets/BackLink.CvWWuO3h.css.br +0 -0
  532. package/frontend/build/client/_app/immutable/assets/BackLink.CvWWuO3h.css.gz +0 -0
  533. package/frontend/build/client/_app/immutable/assets/_layout.BuhMvMUj.css +0 -6
  534. package/frontend/build/client/_app/immutable/assets/_layout.BuhMvMUj.css.br +0 -0
  535. package/frontend/build/client/_app/immutable/assets/_layout.BuhMvMUj.css.gz +0 -0
  536. package/frontend/build/client/_app/immutable/assets/_page.0Eln51hV.css +0 -6
  537. package/frontend/build/client/_app/immutable/assets/_page.0Eln51hV.css.br +0 -0
  538. package/frontend/build/client/_app/immutable/assets/_page.0Eln51hV.css.gz +0 -0
  539. package/frontend/build/client/_app/immutable/assets/_page.BZfe6nWe.css +0 -6
  540. package/frontend/build/client/_app/immutable/assets/_page.BZfe6nWe.css.br +0 -0
  541. package/frontend/build/client/_app/immutable/assets/_page.BZfe6nWe.css.gz +0 -0
  542. package/frontend/build/client/_app/immutable/assets/_page.Bj_a_5lv.css +0 -6
  543. package/frontend/build/client/_app/immutable/assets/_page.Bj_a_5lv.css.br +0 -0
  544. package/frontend/build/client/_app/immutable/assets/_page.Bj_a_5lv.css.gz +0 -0
  545. package/frontend/build/client/_app/immutable/assets/_page.BwgOqeMo.css +0 -6
  546. package/frontend/build/client/_app/immutable/assets/_page.BwgOqeMo.css.br +0 -0
  547. package/frontend/build/client/_app/immutable/assets/_page.BwgOqeMo.css.gz +0 -0
  548. package/frontend/build/client/_app/immutable/assets/_page.CFnbmY-D.css +0 -6
  549. package/frontend/build/client/_app/immutable/assets/_page.CFnbmY-D.css.br +0 -0
  550. package/frontend/build/client/_app/immutable/assets/_page.CFnbmY-D.css.gz +0 -0
  551. package/frontend/build/client/_app/immutable/chunks/2zMvi6fR.js.br +0 -0
  552. package/frontend/build/client/_app/immutable/chunks/2zMvi6fR.js.gz +0 -0
  553. package/frontend/build/client/_app/immutable/chunks/3InFPLvE.js +0 -6
  554. package/frontend/build/client/_app/immutable/chunks/3InFPLvE.js.br +0 -0
  555. package/frontend/build/client/_app/immutable/chunks/3InFPLvE.js.gz +0 -0
  556. package/frontend/build/client/_app/immutable/chunks/BAACMRH5.js +0 -6
  557. package/frontend/build/client/_app/immutable/chunks/BAACMRH5.js.br +0 -0
  558. package/frontend/build/client/_app/immutable/chunks/BAACMRH5.js.gz +0 -0
  559. package/frontend/build/client/_app/immutable/chunks/BAMUGSh7.js +0 -6
  560. package/frontend/build/client/_app/immutable/chunks/BAMUGSh7.js.br +0 -0
  561. package/frontend/build/client/_app/immutable/chunks/BAMUGSh7.js.gz +0 -0
  562. package/frontend/build/client/_app/immutable/chunks/BKuh57WU.js +0 -6
  563. package/frontend/build/client/_app/immutable/chunks/BKuh57WU.js.br +0 -0
  564. package/frontend/build/client/_app/immutable/chunks/BKuh57WU.js.gz +0 -0
  565. package/frontend/build/client/_app/immutable/chunks/BUwxRmHf.js +0 -6
  566. package/frontend/build/client/_app/immutable/chunks/BUwxRmHf.js.br +0 -0
  567. package/frontend/build/client/_app/immutable/chunks/BUwxRmHf.js.gz +0 -0
  568. package/frontend/build/client/_app/immutable/chunks/BmZ9upwL.js.br +0 -0
  569. package/frontend/build/client/_app/immutable/chunks/BmZ9upwL.js.gz +0 -0
  570. package/frontend/build/client/_app/immutable/chunks/C1Vid6wz.js.br +0 -0
  571. package/frontend/build/client/_app/immutable/chunks/C1Vid6wz.js.gz +0 -0
  572. package/frontend/build/client/_app/immutable/chunks/C8OURRSs.js +0 -6
  573. package/frontend/build/client/_app/immutable/chunks/C8OURRSs.js.br +0 -0
  574. package/frontend/build/client/_app/immutable/chunks/C8OURRSs.js.gz +0 -0
  575. package/frontend/build/client/_app/immutable/chunks/CGeZlCaI.js +0 -6
  576. package/frontend/build/client/_app/immutable/chunks/CGeZlCaI.js.br +0 -0
  577. package/frontend/build/client/_app/immutable/chunks/CGeZlCaI.js.gz +0 -0
  578. package/frontend/build/client/_app/immutable/chunks/CKDtmZUQ.js.br +0 -0
  579. package/frontend/build/client/_app/immutable/chunks/CKDtmZUQ.js.gz +0 -0
  580. package/frontend/build/client/_app/immutable/chunks/CMBQQ9RZ.js +0 -6
  581. package/frontend/build/client/_app/immutable/chunks/CMBQQ9RZ.js.br +0 -0
  582. package/frontend/build/client/_app/immutable/chunks/CMBQQ9RZ.js.gz +0 -0
  583. package/frontend/build/client/_app/immutable/chunks/CMEtqUfQ.js.br +0 -0
  584. package/frontend/build/client/_app/immutable/chunks/CMEtqUfQ.js.gz +0 -0
  585. package/frontend/build/client/_app/immutable/chunks/CNdcuGR0.js.br +0 -0
  586. package/frontend/build/client/_app/immutable/chunks/CNdcuGR0.js.gz +0 -0
  587. package/frontend/build/client/_app/immutable/chunks/CUC98kMZ.js +0 -6
  588. package/frontend/build/client/_app/immutable/chunks/CUC98kMZ.js.br +0 -0
  589. package/frontend/build/client/_app/immutable/chunks/CUC98kMZ.js.gz +0 -0
  590. package/frontend/build/client/_app/immutable/chunks/CgnwuKKO.js.br +0 -0
  591. package/frontend/build/client/_app/immutable/chunks/CgnwuKKO.js.gz +0 -0
  592. package/frontend/build/client/_app/immutable/chunks/Co3xKhEp.js +0 -6
  593. package/frontend/build/client/_app/immutable/chunks/Co3xKhEp.js.br +0 -0
  594. package/frontend/build/client/_app/immutable/chunks/Co3xKhEp.js.gz +0 -0
  595. package/frontend/build/client/_app/immutable/chunks/CuqnZUex.js +0 -6
  596. package/frontend/build/client/_app/immutable/chunks/CuqnZUex.js.br +0 -5
  597. package/frontend/build/client/_app/immutable/chunks/CuqnZUex.js.gz +0 -0
  598. package/frontend/build/client/_app/immutable/chunks/CzlPaHY9.js.br +0 -0
  599. package/frontend/build/client/_app/immutable/chunks/CzlPaHY9.js.gz +0 -0
  600. package/frontend/build/client/_app/immutable/chunks/DCgHuuvs.js.br +0 -0
  601. package/frontend/build/client/_app/immutable/chunks/DCgHuuvs.js.gz +0 -0
  602. package/frontend/build/client/_app/immutable/chunks/DDZw0L0T.js.br +0 -0
  603. package/frontend/build/client/_app/immutable/chunks/DDZw0L0T.js.gz +0 -0
  604. package/frontend/build/client/_app/immutable/chunks/DHM6H-es.js +0 -7
  605. package/frontend/build/client/_app/immutable/chunks/DHM6H-es.js.br +0 -0
  606. package/frontend/build/client/_app/immutable/chunks/DHM6H-es.js.gz +0 -0
  607. package/frontend/build/client/_app/immutable/chunks/DMZwI8Cj.js.br +0 -0
  608. package/frontend/build/client/_app/immutable/chunks/DMZwI8Cj.js.gz +0 -0
  609. package/frontend/build/client/_app/immutable/chunks/DSLBMEpr.js +0 -6
  610. package/frontend/build/client/_app/immutable/chunks/DSLBMEpr.js.br +0 -0
  611. package/frontend/build/client/_app/immutable/chunks/DSLBMEpr.js.gz +0 -0
  612. package/frontend/build/client/_app/immutable/chunks/DbgD7JLa.js +0 -6
  613. package/frontend/build/client/_app/immutable/chunks/DbgD7JLa.js.br +0 -0
  614. package/frontend/build/client/_app/immutable/chunks/DbgD7JLa.js.gz +0 -0
  615. package/frontend/build/client/_app/immutable/chunks/TOCyHP97.js +0 -11
  616. package/frontend/build/client/_app/immutable/chunks/TOCyHP97.js.br +0 -0
  617. package/frontend/build/client/_app/immutable/chunks/TOCyHP97.js.gz +0 -0
  618. package/frontend/build/client/_app/immutable/chunks/kkA1mrsH.js.br +0 -0
  619. package/frontend/build/client/_app/immutable/chunks/kkA1mrsH.js.gz +0 -0
  620. package/frontend/build/client/_app/immutable/chunks/t-La0hgu.js.br +0 -0
  621. package/frontend/build/client/_app/immutable/chunks/t-La0hgu.js.gz +0 -0
  622. package/frontend/build/client/_app/immutable/chunks/w0D4Uzlq.js.br +0 -0
  623. package/frontend/build/client/_app/immutable/chunks/w0D4Uzlq.js.gz +0 -0
  624. package/frontend/build/client/_app/immutable/entry/app.KrtMZ3my.js +0 -7
  625. package/frontend/build/client/_app/immutable/entry/app.KrtMZ3my.js.br +0 -0
  626. package/frontend/build/client/_app/immutable/entry/app.KrtMZ3my.js.gz +0 -0
  627. package/frontend/build/client/_app/immutable/nodes/0.C8DodwXs.js +0 -11
  628. package/frontend/build/client/_app/immutable/nodes/0.C8DodwXs.js.br +0 -0
  629. package/frontend/build/client/_app/immutable/nodes/0.C8DodwXs.js.gz +0 -0
  630. package/frontend/build/client/_app/immutable/nodes/1.Df9sLw8b.js.br +0 -0
  631. package/frontend/build/client/_app/immutable/nodes/1.Df9sLw8b.js.gz +0 -0
  632. package/frontend/build/client/_app/immutable/nodes/10.DEbnxfND.js.br +0 -0
  633. package/frontend/build/client/_app/immutable/nodes/10.DEbnxfND.js.gz +0 -0
  634. package/frontend/build/client/_app/immutable/nodes/11.BViaDK2m.js.br +0 -0
  635. package/frontend/build/client/_app/immutable/nodes/11.BViaDK2m.js.gz +0 -0
  636. package/frontend/build/client/_app/immutable/nodes/12.BMSCSd88.js +0 -6
  637. package/frontend/build/client/_app/immutable/nodes/12.BMSCSd88.js.br +0 -0
  638. package/frontend/build/client/_app/immutable/nodes/12.BMSCSd88.js.gz +0 -0
  639. package/frontend/build/client/_app/immutable/nodes/2.BCPSg7H4.js.br +0 -0
  640. package/frontend/build/client/_app/immutable/nodes/2.BCPSg7H4.js.gz +0 -0
  641. package/frontend/build/client/_app/immutable/nodes/3.8BFAJoHT.js.br +0 -0
  642. package/frontend/build/client/_app/immutable/nodes/3.8BFAJoHT.js.gz +0 -0
  643. package/frontend/build/client/_app/immutable/nodes/4.D-YT_JJe.js +0 -6
  644. package/frontend/build/client/_app/immutable/nodes/4.D-YT_JJe.js.br +0 -0
  645. package/frontend/build/client/_app/immutable/nodes/4.D-YT_JJe.js.gz +0 -0
  646. package/frontend/build/client/_app/immutable/nodes/5.DVeH2eQP.js +0 -6
  647. package/frontend/build/client/_app/immutable/nodes/5.DVeH2eQP.js.br +0 -0
  648. package/frontend/build/client/_app/immutable/nodes/5.DVeH2eQP.js.gz +0 -0
  649. package/frontend/build/client/_app/immutable/nodes/6.DI7-IJhN.js +0 -6
  650. package/frontend/build/client/_app/immutable/nodes/6.DI7-IJhN.js.br +0 -0
  651. package/frontend/build/client/_app/immutable/nodes/6.DI7-IJhN.js.gz +0 -0
  652. package/frontend/build/client/_app/immutable/nodes/7.C-pKvVZy.js +0 -6
  653. package/frontend/build/client/_app/immutable/nodes/7.C-pKvVZy.js.br +0 -0
  654. package/frontend/build/client/_app/immutable/nodes/7.C-pKvVZy.js.gz +0 -0
  655. package/frontend/build/client/_app/immutable/nodes/8.93Mb3ofT.js +0 -9
  656. package/frontend/build/client/_app/immutable/nodes/8.93Mb3ofT.js.br +0 -0
  657. package/frontend/build/client/_app/immutable/nodes/8.93Mb3ofT.js.gz +0 -0
  658. package/frontend/build/client/_app/immutable/nodes/9.CvfGx3Hu.js.br +0 -0
  659. package/frontend/build/client/_app/immutable/nodes/9.CvfGx3Hu.js.gz +0 -0
  660. package/frontend/build/server/chunks/0-D5YWFygh.js +0 -22
  661. package/frontend/build/server/chunks/0-D5YWFygh.js.map +0 -5
  662. package/frontend/build/server/chunks/10-l6_ikL_D.js +0 -14
  663. package/frontend/build/server/chunks/10-l6_ikL_D.js.map +0 -5
  664. package/frontend/build/server/chunks/11-CNLerze_.js +0 -14
  665. package/frontend/build/server/chunks/11-CNLerze_.js.map +0 -5
  666. package/frontend/build/server/chunks/12-De6Ol6pu.js +0 -14
  667. package/frontend/build/server/chunks/2-Dc_rKWoK.js +0 -14
  668. package/frontend/build/server/chunks/3-DrRqVrcX.js +0 -14
  669. package/frontend/build/server/chunks/3-DrRqVrcX.js.map +0 -5
  670. package/frontend/build/server/chunks/4-Bo04DC5Z.js +0 -14
  671. package/frontend/build/server/chunks/4-Bo04DC5Z.js.map +0 -5
  672. package/frontend/build/server/chunks/5-CFeE5dPZ.js +0 -14
  673. package/frontend/build/server/chunks/5-CFeE5dPZ.js.map +0 -5
  674. package/frontend/build/server/chunks/6-DZk37MZH.js +0 -14
  675. package/frontend/build/server/chunks/6-DZk37MZH.js.map +0 -5
  676. package/frontend/build/server/chunks/7-DiQJZEF_.js +0 -14
  677. package/frontend/build/server/chunks/8-CKPVFOqJ.js +0 -14
  678. package/frontend/build/server/chunks/8-CKPVFOqJ.js.map +0 -5
  679. package/frontend/build/server/chunks/9-DirZG_Lu.js +0 -14
  680. package/frontend/build/server/chunks/BackLink-BJ8NaemM.js.map +0 -5
  681. package/frontend/build/server/chunks/Badge-44ZTDx0V.js.map +0 -5
  682. package/frontend/build/server/chunks/ConfirmModal-C0EAXcq_.js.map +0 -5
  683. package/frontend/build/server/chunks/EmptyState-BA_eXaeR.js.map +0 -5
  684. package/frontend/build/server/chunks/Modal-DChG187n.js.map +0 -5
  685. package/frontend/build/server/chunks/Toast-v-q4ZnYq.js.map +0 -5
  686. package/frontend/build/server/chunks/_page.svelte-1as75nPc.js.map +0 -5
  687. package/frontend/build/server/chunks/_page.svelte-1jo8MapI.js.map +0 -5
  688. package/frontend/build/server/chunks/_page.svelte-8gELc_B1.js.map +0 -5
  689. package/frontend/build/server/chunks/_page.svelte-BuFusRK1.js.map +0 -5
  690. package/frontend/build/server/chunks/_page.svelte-CAVyp70V.js +0 -250
  691. package/frontend/build/server/chunks/_page.svelte-CAVyp70V.js.map +0 -5
  692. package/frontend/build/server/chunks/_page.svelte-CWWeZuid.js.map +0 -5
  693. package/frontend/build/server/chunks/_page.svelte-D3E6Eojd.js.map +0 -5
  694. package/frontend/build/server/chunks/_page.svelte-Kg69DDaM.js.map +0 -5
  695. package/frontend/build/server/chunks/_page.svelte-L9fuiN_q.js +0 -57
  696. package/frontend/build/server/chunks/_page.svelte-L9fuiN_q.js.map +0 -5
  697. package/frontend/build/server/chunks/constants-CXTaQaB6.js.map +0 -5
  698. package/frontend/build/server/chunks/reports2-BtElN_53.js.map +0 -5
  699. package/frontend/build/server/chunks/repository-FYYV_vKE.js.map +0 -5
  700. package/frontend/build/server/chunks/runner-DC7hXbnY.js +0 -37
  701. package/frontend/build/server/chunks/runner-DC7hXbnY.js.map +0 -5
  702. /package/frontend/.svelte-kit/output/client/_app/immutable/assets/{3.BR3wgXcZ.css → 4.BR3wgXcZ.css} +0 -0
  703. /package/frontend/build/client/_app/immutable/assets/{3.BR3wgXcZ.css → 4.BR3wgXcZ.css} +0 -0
  704. /package/frontend/build/client/_app/immutable/assets/{3.BR3wgXcZ.css.br → 4.BR3wgXcZ.css.br} +0 -0
  705. /package/frontend/build/client/_app/immutable/assets/{3.BR3wgXcZ.css.gz → 4.BR3wgXcZ.css.gz} +0 -0
@@ -8,9 +8,9 @@
8
8
  "_internal.js"
9
9
  ]
10
10
  },
11
- "_BackLink.CvWWuO3h.css": {
12
- "file": "_app/immutable/assets/BackLink.CvWWuO3h.css",
13
- "src": "_BackLink.CvWWuO3h.css"
11
+ "_BackLink.DRrgBGDC.css": {
12
+ "file": "_app/immutable/assets/BackLink.DRrgBGDC.css",
13
+ "src": "_BackLink.DRrgBGDC.css"
14
14
  },
15
15
  "_BackLink.js": {
16
16
  "file": "chunks/BackLink.js",
@@ -21,7 +21,7 @@
21
21
  "_escaping.js"
22
22
  ],
23
23
  "css": [
24
- "_app/immutable/assets/BackLink.CvWWuO3h.css"
24
+ "_app/immutable/assets/BackLink.DRrgBGDC.css"
25
25
  ]
26
26
  },
27
27
  "_Badge.D1SV0Gv7.css": {
@@ -212,6 +212,7 @@
212
212
  "imports": [
213
213
  "_index2.js",
214
214
  "_constants.js",
215
+ "_format.js",
215
216
  "_auth.js"
216
217
  ]
217
218
  },
@@ -272,7 +273,7 @@
272
273
  "_format.js"
273
274
  ],
274
275
  "css": [
275
- "_app/immutable/assets/_layout.BuhMvMUj.css",
276
+ "_app/immutable/assets/_layout.HkPnpRl9.css",
276
277
  "_app/immutable/assets/Modal.BuaCfdLj.css",
277
278
  "_app/immutable/assets/ConfirmModal.Dd3uP-Sk.css",
278
279
  "_app/immutable/assets/Badge.D1SV0Gv7.css"
@@ -297,6 +298,31 @@
297
298
  "_app/immutable/assets/_page.C1TbMUws.css"
298
299
  ]
299
300
  },
301
+ "src/routes/live/[id]/+page.svelte": {
302
+ "file": "entries/pages/live/_id_/_page.svelte.js",
303
+ "name": "entries/pages/live/_id_/_page.svelte",
304
+ "src": "src/routes/live/[id]/+page.svelte",
305
+ "isEntry": true,
306
+ "imports": [
307
+ "_index.js",
308
+ "_index-server.js",
309
+ "_client.js",
310
+ "_stores.js",
311
+ "_runner.js",
312
+ "_constants.js",
313
+ "_auth.js",
314
+ "_reports.js",
315
+ "_BackLink.js",
316
+ "_common.js",
317
+ "_reports2.js",
318
+ "_Badge.js",
319
+ "_escaping.js",
320
+ "_attributes.js"
321
+ ],
322
+ "css": [
323
+ "_app/immutable/assets/_page.Be5c3USL.css"
324
+ ]
325
+ },
300
326
  "src/routes/login/+page.svelte": {
301
327
  "file": "entries/pages/login/_page.svelte.js",
302
328
  "name": "entries/pages/login/_page.svelte",
@@ -335,7 +361,7 @@
335
361
  "_reports2.js"
336
362
  ],
337
363
  "css": [
338
- "_app/immutable/assets/_page.0Eln51hV.css",
364
+ "_app/immutable/assets/_page.ClS4XkkN.css",
339
365
  "_app/immutable/assets/Pagination.DZmi2Po-.css"
340
366
  ]
341
367
  },
@@ -347,42 +373,16 @@
347
373
  "imports": [
348
374
  "_index.js",
349
375
  "_stores.js",
350
- "_index-server.js",
351
376
  "_format.js",
352
377
  "_reports2.js",
353
378
  "_BackLink.js",
354
379
  "_escaping.js"
355
380
  ],
356
381
  "css": [
357
- "_app/immutable/assets/_page.BZfe6nWe.css",
382
+ "_app/immutable/assets/_page.Dp6vaGRc.css",
358
383
  "_app/immutable/assets/Badge.D1SV0Gv7.css"
359
384
  ]
360
385
  },
361
- "src/routes/reports/live/+page.svelte": {
362
- "file": "entries/pages/reports/live/_page.svelte.js",
363
- "name": "entries/pages/reports/live/_page.svelte",
364
- "src": "src/routes/reports/live/+page.svelte",
365
- "isEntry": true,
366
- "imports": [
367
- "_index.js",
368
- "_index-server.js",
369
- "_client.js",
370
- "_stores.js",
371
- "_runner.js",
372
- "_reports.js",
373
- "_constants.js",
374
- "_common.js",
375
- "_reports2.js",
376
- "_format.js",
377
- "_BackLink.js",
378
- "_Badge.js",
379
- "_escaping.js",
380
- "_attributes.js"
381
- ],
382
- "css": [
383
- "_app/immutable/assets/_page.CFnbmY-D.css"
384
- ]
385
- },
386
386
  "src/routes/scheduled-tests/+page.svelte": {
387
387
  "file": "entries/pages/scheduled-tests/_page.svelte.js",
388
388
  "name": "entries/pages/scheduled-tests/_page.svelte",
@@ -427,7 +427,7 @@
427
427
  "_attributes.js"
428
428
  ],
429
429
  "css": [
430
- "_app/immutable/assets/_page.BwgOqeMo.css"
430
+ "_app/immutable/assets/_page.COwSGmmy.css"
431
431
  ]
432
432
  },
433
433
  "src/routes/setup/+page.svelte": {
@@ -513,7 +513,7 @@
513
513
  "_attributes.js"
514
514
  ],
515
515
  "css": [
516
- "_app/immutable/assets/_page.Bj_a_5lv.css",
516
+ "_app/immutable/assets/_page.B9H_IpSU.css",
517
517
  "_app/immutable/assets/EmptyState.DUDM4P19.css",
518
518
  "_app/immutable/assets/Pagination.DZmi2Po-.css"
519
519
  ]
@@ -0,0 +1,6 @@
1
+ /*
2
+ * This file is part of Plum.
3
+ * Licensed under the MIT License. See LICENSE file in the project root for details.
4
+ */
5
+
6
+ .switch.svelte-a6h7w7.svelte-a6h7w7.svelte-a6h7w7{height:1em;display:flex;align-items:center}.switch.disabled.svelte-a6h7w7.svelte-a6h7w7.svelte-a6h7w7{opacity:.5}.label.svelte-a6h7w7.svelte-a6h7w7.svelte-a6h7w7{margin:0 8px}.switch.svelte-a6h7w7 input[type=checkbox].svelte-a6h7w7.svelte-a6h7w7{position:absolute;opacity:0}.switch.svelte-a6h7w7 label.svelte-a6h7w7.svelte-a6h7w7{width:2em;height:1em;position:relative;cursor:pointer;display:block}.switch.disabled.svelte-a6h7w7 label.svelte-a6h7w7.svelte-a6h7w7{cursor:not-allowed}.switch.svelte-a6h7w7 label.svelte-a6h7w7.svelte-a6h7w7:before{content:"";position:absolute;width:2em;height:1em;left:.1em;transition:background .1s ease;background:#4950f680;border-radius:50px}.switch.svelte-a6h7w7 label.svelte-a6h7w7.svelte-a6h7w7:after{content:"";position:absolute;width:1em;height:1em;border-radius:50px;left:0;transition:all .2s ease;box-shadow:0 2px 5px #0000004d;background:#fcfff4;animation:switch-off .2s ease-out;z-index:2}.switch.svelte-a6h7w7 input[type=checkbox].svelte-a6h7w7:checked+label.svelte-a6h7w7:before{background:#4950f6}.switch.svelte-a6h7w7 input[type=checkbox].svelte-a6h7w7:checked+label.svelte-a6h7w7:after{animation:switch-on .2s ease-out;left:1.1em}.rr-controller.svelte-189zk2r.svelte-189zk2r{width:100%;height:80px;background:#fff;display:flex;flex-direction:column;justify-content:space-around;align-items:center;border-radius:0 0 5px 5px}.rr-timeline.svelte-189zk2r.svelte-189zk2r{width:80%;display:flex;align-items:center}.rr-timeline__time.svelte-189zk2r.svelte-189zk2r{display:inline-block;width:100px;text-align:center;color:#11103e}.rr-progress.svelte-189zk2r.svelte-189zk2r{flex:1;height:12px;background:#eee;position:relative;border-radius:3px;cursor:pointer;box-sizing:border-box;border-top:solid 4px #fff;border-bottom:solid 4px #fff}.rr-progress.disabled.svelte-189zk2r.svelte-189zk2r{cursor:not-allowed}.rr-progress__step.svelte-189zk2r.svelte-189zk2r{height:100%;position:absolute;left:0;top:0;background:#e0e1fe}.rr-progress__handler.svelte-189zk2r.svelte-189zk2r{width:20px;height:20px;border-radius:10px;position:absolute;top:2px;transform:translate(-50%,-50%);background:#4950f6}.rr-controller__btns.svelte-189zk2r.svelte-189zk2r{display:flex;align-items:center;justify-content:center;font-size:13px}.rr-controller__btns.svelte-189zk2r button.svelte-189zk2r{width:32px;height:32px;display:flex;padding:0;align-items:center;justify-content:center;background:none;border:none;border-radius:50%;cursor:pointer}.rr-controller__btns.svelte-189zk2r button.svelte-189zk2r:active{background:#e0e1fe}.rr-controller__btns.svelte-189zk2r button.active.svelte-189zk2r{color:#fff;background:#4950f6}.rr-controller__btns.svelte-189zk2r button.svelte-189zk2r:disabled{cursor:not-allowed}.replayer-wrapper{position:relative}.replayer-mouse{position:absolute;width:20px;height:20px;transition:left .05s linear,top .05s linear;background-size:contain;background-position:center center;background-repeat:no-repeat;background-image:url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzMwMHB4JyB3aWR0aD0nMzAwcHgnICBmaWxsPSIjMDAwMDAwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGRhdGEtbmFtZT0iTGF5ZXIgMSIgdmlld0JveD0iMCAwIDUwIDUwIiB4PSIwcHgiIHk9IjBweCI+PHRpdGxlPkRlc2lnbl90bnA8L3RpdGxlPjxwYXRoIGQ9Ik00OC43MSw0Mi45MUwzNC4wOCwyOC4yOSw0NC4zMywxOEExLDEsMCwwLDAsNDQsMTYuMzlMMi4zNSwxLjA2QTEsMSwwLDAsMCwxLjA2LDIuMzVMMTYuMzksNDRhMSwxLDAsMCwwLDEuNjUuMzZMMjguMjksMzQuMDgsNDIuOTEsNDguNzFhMSwxLDAsMCwwLDEuNDEsMGw0LjM4LTQuMzhBMSwxLDAsMCwwLDQ4LjcxLDQyLjkxWm0tNS4wOSwzLjY3TDI5LDMyYTEsMSwwLDAsMC0xLjQxLDBsLTkuODUsOS44NUwzLjY5LDMuNjlsMzguMTIsMTRMMzIsMjcuNThBMSwxLDAsMCwwLDMyLDI5TDQ2LjU5LDQzLjYyWiI+PC9wYXRoPjwvc3ZnPg==);border-color:transparent}.replayer-mouse:after{content:"";display:inline-block;width:20px;height:20px;background:#4950f6;border-radius:100%;transform:translate(-50%,-50%);opacity:.3}.replayer-mouse.active:after{animation:click .2s ease-in-out 1}.replayer-mouse.touch-device{background-image:none;width:70px;height:70px;border-width:4px;border-style:solid;border-radius:100%;margin-left:-37px;margin-top:-37px;border-color:#4950f600;transition:left 0s linear,top 0s linear,border-color .2s ease-in-out}.replayer-mouse.touch-device.touch-active{border-color:#4950f6;transition:left .25s linear,top .25s linear,border-color .2s ease-in-out}.replayer-mouse.touch-device:after{opacity:0}.replayer-mouse.touch-device.active:after{animation:touch-click .2s ease-in-out 1}.replayer-mouse-tail{position:absolute;pointer-events:none}@keyframes click{0%{opacity:.3;width:20px;height:20px}50%{opacity:.5;width:10px;height:10px}}@keyframes touch-click{0%{opacity:0;width:20px;height:20px}50%{opacity:.5;width:10px;height:10px}}.rr-player{position:relative;background:#fff;float:left;border-radius:5px;box-shadow:0 24px 48px #11103e1f}.rr-player__frame{overflow:hidden}.replayer-wrapper{float:left;clear:both;transform-origin:top left;left:50%;top:50%}.replayer-wrapper>iframe{border:none}.back-row.svelte-1qfuc04{margin-bottom:1.5rem}.back-link.svelte-1qfuc04{display:inline-flex;align-items:center;gap:.35rem;font-size:.8125rem;color:var(--text-muted);text-decoration:none;transition:color var(--duration-fast)}.back-link.svelte-1qfuc04:hover{color:var(--text)}
@@ -0,0 +1,6 @@
1
+ /*
2
+ * This file is part of Plum.
3
+ * Licensed under the MIT License. See LICENSE file in the project root for details.
4
+ */
5
+
6
+ :root{--bg: #fdfcfb;--bg-subtle: #f7f6f4;--bg-elevated: #ffffff;--border: #e9e5df;--text: #18160f;--text-muted: #9c9185;--accent: #5c1b87;--accent-soft: #f3eaff;--pass: #16a34a;--pass-soft: #dcfce7;--fail: #dc2626;--fail-soft: #fee2e2;--warn: #d97706;--warn-soft: #fef3c7;--node: #0284c7;--node-soft: #e0f2fe;--external: #0d9488;--external-soft: #ccfbf1;--terminal-bg: #0d0c08;--terminal-text: #d6d0c8;--code-tag: #7dd3fc;--code-attr: #fbbf24;--code-string: #86efac;--code-comment: #9ca3af;--font-display: "Playfair Display", Georgia, serif;--font-body: "DM Sans", system-ui, -apple-system, sans-serif;--ease-out: cubic-bezier(.16, 1, .3, 1);--duration-fast: .14s;--duration-base: .24s;--duration-slow: .4s;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-pill: 100px;--white: #ffffff;--bottom-bar-height: 55px}@keyframes fadeUp{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes dotPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.65)}}[data-theme=dark]{--bg: #101009;--bg-subtle: #1a1910;--bg-elevated: #201f14;--border: #2e2c1e;--text: #f0ede6;--text-muted: #706a5e;--accent: #d0a5f5;--accent-soft: #1b0d30;--pass: #22c55e;--pass-soft: #0d2118;--fail: #f87171;--fail-soft: #2d1010;--warn: #fbbf24;--warn-soft: #2a1f06;--node: #38bdf8;--node-soft: #082032;--external: #2dd4bf;--external-soft: #0f2e2b;--terminal-bg: #080807;--terminal-text: #cbc5bd}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-body);font-weight:300;font-size:1rem;line-height:1.65;background-color:var(--bg);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)' opacity='0.07'/%3E%3C/svg%3E");background-size:200px 200px;color:var(--text);-webkit-font-smoothing:antialiased;transition:background-color var(--duration-base) var(--ease-out),color var(--duration-base) var(--ease-out)}h1{font-family:var(--font-display);font-weight:400;line-height:1.1;letter-spacing:-.015em;color:var(--text)}h2,h3{font-family:var(--font-display);font-weight:400;line-height:1.2;color:var(--text)}a{color:inherit;text-decoration:none}button{font-family:var(--font-body)}.field{display:flex;flex-direction:column;gap:.375rem}.field-label{display:flex;justify-content:space-between;font-size:.8125rem;font-weight:400;color:var(--text-muted)}.field-hint{font-size:.75rem;color:var(--text-muted)}.field-input{width:100%;padding:.6rem .875rem;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-subtle);color:var(--text);font-family:var(--font-body);font-size:.875rem;font-weight:300;outline:none;appearance:none;transition:border-color var(--duration-fast),box-shadow var(--duration-fast)}.field-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.field-input:disabled{opacity:.5;cursor:not-allowed}.field-input::placeholder{color:var(--text-muted)}.data-table{width:100%;border-collapse:collapse;font-size:.875rem}.data-table th{text-align:left;padding:.5rem 1rem;font-family:var(--font-body);font-weight:500;font-size:.7rem;letter-spacing:.07em;text-transform:uppercase;color:var(--text-muted);border-bottom:1px solid var(--border)}.data-table td{padding:.875rem 1rem;border-bottom:1px solid var(--border);color:var(--text);vertical-align:middle}.data-table tbody tr:last-child td{border-bottom:none}.card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.5rem;transition:background var(--duration-base) var(--ease-out),border-color var(--duration-base) var(--ease-out)}.card-title{font-family:var(--font-display);font-size:1.25rem;font-weight:400;color:var(--text);margin-bottom:.25rem}.card-subtitle{font-size:.8125rem;color:var(--text-muted);margin-bottom:1.25rem}.alert{display:flex;align-items:center;gap:.625rem;padding:.75rem 1rem;border-radius:var(--radius-md);font-size:.875rem;font-weight:400}.alert-success{background:var(--pass-soft);color:var(--pass)}.alert-error{background:var(--fail-soft);color:var(--fail)}@keyframes fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.nav.svelte-10t98u4{position:sticky;top:0;z-index:40;background:var(--bg);border-bottom:1px solid var(--border);transition:background var(--duration-base) var(--ease-out),border-color var(--duration-base) var(--ease-out)}.inner.svelte-10t98u4{max-width:1200px;margin:0 auto;padding:0 1.5rem;height:56px;display:flex;align-items:center;gap:2rem}.brand.svelte-10t98u4{font-size:1.2rem;letter-spacing:-.02em;flex-shrink:0;text-decoration:none}.brand-serif.svelte-10t98u4{font-family:var(--font-display);font-weight:400;color:var(--accent)}.brand-sans.svelte-10t98u4{font-family:var(--font-body);font-weight:400;color:var(--text)}.project-card.svelte-10t98u4{display:flex;align-items:center;gap:.4rem;padding:.25rem .6rem .25rem .5rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-elevated);flex-shrink:0}.project-logo.svelte-10t98u4{width:16px;height:16px;object-fit:contain;border-radius:2px;flex-shrink:0}.project-name.svelte-10t98u4{font-size:.78rem;font-weight:500;color:var(--text);max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.links.svelte-10t98u4{display:flex;gap:.125rem;flex:1}.link.svelte-10t98u4{font-size:.875rem;font-weight:400;color:var(--text-muted);text-decoration:none;padding:.35rem .75rem;border-radius:var(--radius-sm);transition:color var(--duration-fast),background var(--duration-fast)}.link.svelte-10t98u4:hover{color:var(--text);background:var(--bg-subtle)}.link.active.svelte-10t98u4{color:var(--accent);background:var(--accent-soft)}.nav-sep.svelte-10t98u4{display:block;width:1px;height:18px;background:var(--border);margin:0 .375rem;flex-shrink:0;align-self:center}.link.repo.svelte-10t98u4{border:1px solid var(--border);padding:.3rem .75rem}.link.repo.svelte-10t98u4:hover{border-color:var(--text-muted)}.link.repo.active.svelte-10t98u4{border-color:var(--accent)}.actions.svelte-10t98u4{display:flex;align-items:center;gap:.5rem;margin-left:auto}.nav-user.svelte-10t98u4{font-size:.8125rem;color:var(--text-muted);max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 640px){.nav-user.svelte-10t98u4{display:none}}.settings-btn.svelte-10t98u4{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:var(--radius-sm);border:1px solid var(--border);background:transparent;color:var(--text-muted);text-decoration:none;transition:background var(--duration-fast),color var(--duration-fast),border-color var(--duration-fast)}.settings-btn.svelte-10t98u4:hover{background:var(--bg-subtle);color:var(--text);border-color:var(--text-muted)}.settings-btn.active.svelte-10t98u4{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}.hamburger.svelte-10t98u4{display:none;flex-direction:column;justify-content:center;gap:4px;width:34px;height:34px;background:none;border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;padding:0 8px}.hamburger.svelte-10t98u4 span:where(.svelte-10t98u4){display:block;width:100%;height:1.5px;background:var(--text-muted);border-radius:2px;transform-origin:center;transition:transform var(--duration-base) var(--ease-out),opacity var(--duration-fast)}.hamburger.svelte-10t98u4 span.rotated:where(.svelte-10t98u4){transform:translateY(5.5px) rotate(45deg)}.hamburger.svelte-10t98u4 span.hidden:where(.svelte-10t98u4){opacity:0}.hamburger.svelte-10t98u4 span.rotated-reverse:where(.svelte-10t98u4){transform:translateY(-5.5px) rotate(-45deg)}.mobile-menu.svelte-10t98u4{border-top:1px solid var(--border);padding:.75rem 1.5rem 1rem;display:flex;flex-direction:column;gap:.125rem}.mobile-link.svelte-10t98u4{color:var(--text-muted);text-decoration:none;font-size:.9375rem;font-weight:400;padding:.5rem .75rem;border-radius:var(--radius-sm);transition:background var(--duration-fast),color var(--duration-fast)}.mobile-link.svelte-10t98u4:hover,.mobile-link.active.svelte-10t98u4{background:var(--bg-subtle);color:var(--text)}.mobile-link.active.svelte-10t98u4{color:var(--accent);background:var(--accent-soft)}.mobile-sep.svelte-10t98u4{border:none;border-top:1px solid var(--border);margin:.375rem .75rem}@media (max-width: 640px){.links.svelte-10t98u4{display:none}.hamburger.svelte-10t98u4{display:flex}}.shell.svelte-28zx1m{max-width:1200px;margin:0 auto;padding:2.5rem 1.5rem 5rem}.panel.svelte-1pcdei1{position:fixed;bottom:0;left:0;right:0;z-index:200;background:var(--bg-elevated);border-top:1px solid var(--border);box-shadow:0 -4px 32px #00000012}.scan-line.svelte-1pcdei1{height:2px;background:var(--border);transition:background .5s ease;overflow:hidden;position:relative}.scan-line.scanning.svelte-1pcdei1{background:color-mix(in srgb,var(--accent) 30%,var(--border))}.scan-line.scanning.svelte-1pcdei1:after{content:"";position:absolute;inset:0;width:35%;background:linear-gradient(90deg,transparent,var(--accent),transparent);animation:svelte-1pcdei1-scan 1.8s ease-in-out infinite}.scan-line.line-pass.svelte-1pcdei1{background:var(--pass)}.scan-line.line-fail.svelte-1pcdei1{background:var(--fail)}@keyframes svelte-1pcdei1-scan{0%{transform:translate(-100%)}to{transform:translate(400%)}}.bar.svelte-1pcdei1{display:flex;align-items:center;height:52px;padding:0 1rem 0 1.25rem;gap:.75rem}.flex-gap.svelte-1pcdei1{flex:1}.flex-gap-sm.svelte-1pcdei1{width:.5rem}.bar-left.svelte-1pcdei1{display:flex;align-items:center;gap:.75rem;flex-shrink:0}.bar-status.svelte-1pcdei1{display:flex;align-items:center;gap:.5rem}.status-dot.svelte-1pcdei1{width:7px;height:7px;border-radius:50%;flex-shrink:0;transition:background .4s ease}.status-dot.pulse.svelte-1pcdei1{animation:dotPulse 1.6s ease-in-out infinite}.status-word.svelte-1pcdei1{font-size:.72rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;transition:color .4s ease;white-space:nowrap}.view-report-btn.svelte-1pcdei1{display:inline-flex;align-items:center;gap:.3rem;font-size:.75rem;font-weight:500;color:var(--accent);text-decoration:none;white-space:nowrap;border:1px solid var(--accent);border-radius:var(--radius-sm);padding:.2rem .6rem;background:var(--accent-soft);transition:background var(--duration-fast),color var(--duration-fast)}.view-report-btn.svelte-1pcdei1:hover{background:var(--accent);color:var(--white)}.bar-center.svelte-1pcdei1{display:flex;align-items:center;gap:.625rem}.input-wrap.svelte-1pcdei1{position:relative;display:flex;align-items:center}.input-icon.svelte-1pcdei1{position:absolute;left:.6rem;color:var(--text-muted);pointer-events:none;opacity:.6}.tag-input.svelte-1pcdei1{height:28px;padding:0 .75rem 0 2rem;font-size:.8rem;font-family:JetBrains Mono,monospace;background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);outline:none;transition:border-color var(--duration-fast);width:200px}.tag-input.svelte-1pcdei1:focus{border-color:var(--accent)}.tag-input.svelte-1pcdei1::placeholder{color:var(--text-muted);opacity:.45}.tag-input.svelte-1pcdei1:disabled{opacity:.45}.ctrl-divider.svelte-1pcdei1{width:1px;height:24px;background:var(--border);flex-shrink:0}.ctrl-group.svelte-1pcdei1{display:flex;flex-direction:column;gap:2px}.ctrl-label.svelte-1pcdei1{font-size:.555rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--text-muted);opacity:.65;line-height:1}.stepper.svelte-1pcdei1{display:flex;align-items:center;background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.step-btn.svelte-1pcdei1{width:20px;height:24px;display:flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--text-muted);cursor:pointer;font-size:.875rem;font-weight:400;line-height:1;transition:color var(--duration-fast),background var(--duration-fast)}.step-btn.svelte-1pcdei1:hover:not(:disabled){color:var(--text);background:var(--bg-elevated)}.step-btn.svelte-1pcdei1:disabled{opacity:.3;cursor:default}.step-val.svelte-1pcdei1{min-width:20px;text-align:center;font-size:.78rem;font-weight:500;color:var(--text);font-family:JetBrains Mono,monospace;line-height:24px;border-left:1px solid var(--border);border-right:1px solid var(--border)}.dropdown-wrap.svelte-1pcdei1{position:relative}.dropdown-trigger.svelte-1pcdei1{display:inline-flex;align-items:center;gap:.3rem;height:24px;padding:0 .5rem;background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--radius-sm);font-family:var(--font-body);font-size:.78rem;color:var(--text);cursor:pointer;transition:border-color var(--duration-fast),background var(--duration-fast),color var(--duration-fast);white-space:nowrap}.dropdown-trigger.svelte-1pcdei1:hover:not(:disabled){border-color:color-mix(in srgb,var(--text-muted) 50%,var(--border))}.dropdown-trigger.open.svelte-1pcdei1{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.dropdown-trigger.has-remote.svelte-1pcdei1{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.dropdown-trigger.svelte-1pcdei1:disabled{opacity:.45;cursor:default}.trigger-chevron.svelte-1pcdei1{transition:transform .18s var(--ease-out);flex-shrink:0}.trigger-chevron.open.svelte-1pcdei1{transform:rotate(180deg)}.dropdown-menu.svelte-1pcdei1{position:absolute;bottom:calc(100% + 8px);left:0;min-width:130px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:0 8px 28px #00000021;padding:.3rem;z-index:300;display:flex;flex-direction:column;gap:1px}.dropdown-item.svelte-1pcdei1{display:flex;align-items:center;gap:.5rem;width:100%;padding:.35rem .5rem;border:none;border-radius:var(--radius-sm);background:transparent;font-family:var(--font-body);font-size:.8125rem;color:var(--text);cursor:pointer;text-align:left;transition:background var(--duration-fast)}.dropdown-item.svelte-1pcdei1:hover{background:var(--bg-subtle)}.dropdown-item.active.svelte-1pcdei1{color:var(--accent)}.runners-menu.svelte-1pcdei1{min-width:160px}.runner-option.svelte-1pcdei1{display:flex;align-items:center;gap:.5rem;padding:.35rem .5rem;border-radius:var(--radius-sm);cursor:pointer;font-size:.8125rem;color:var(--text);transition:background var(--duration-fast)}.runner-option.svelte-1pcdei1:hover{background:var(--bg-subtle)}.runner-option.svelte-1pcdei1 input[type=checkbox]:where(.svelte-1pcdei1){accent-color:var(--accent);width:13px;height:13px;cursor:pointer;flex-shrink:0}.runner-dot.svelte-1pcdei1{width:6px;height:6px;border-radius:50%;flex-shrink:0}.runner-dot.built-in.svelte-1pcdei1{background:var(--accent)}.runner-dot.remote.svelte-1pcdei1{background:var(--pass)}.run-btn.svelte-1pcdei1{display:inline-flex;align-items:center;gap:.4rem;height:30px;padding:0 .875rem;background:var(--accent);color:var(--white);border:none;border-radius:var(--radius-sm);font-family:var(--font-body);font-size:.8125rem;font-weight:500;cursor:pointer;transition:opacity var(--duration-fast);flex-shrink:0}.run-btn.svelte-1pcdei1:hover:not(:disabled){opacity:.88}.run-btn.svelte-1pcdei1:disabled{opacity:.6;cursor:default}@keyframes svelte-1pcdei1-spin{to{transform:rotate(360deg)}}.notify-toggles.svelte-1pcdei1{display:flex;gap:.25rem}.notify-btn.svelte-1pcdei1{height:26px;padding:0 .5rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:transparent;color:var(--text-muted);font-size:.75rem;font-family:inherit;cursor:pointer;transition:background var(--duration-fast),color var(--duration-fast),border-color var(--duration-fast)}.notify-btn.svelte-1pcdei1:hover:not(:disabled){color:var(--text);border-color:var(--text-muted)}.notify-btn.active.svelte-1pcdei1{background:var(--accent);border-color:var(--accent);color:var(--white)}.notify-btn.svelte-1pcdei1:disabled{opacity:.4;cursor:default}.expand-btn.svelte-1pcdei1{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid var(--border);border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);cursor:pointer;transition:background var(--duration-fast),color var(--duration-fast),border-color var(--duration-fast);flex-shrink:0}.expand-btn.svelte-1pcdei1:hover{background:var(--bg-subtle);color:var(--text);border-color:var(--text-muted)}.expand-btn.svelte-1pcdei1 svg:where(.svelte-1pcdei1){transition:transform .2s var(--ease-out)}.expand-btn.svelte-1pcdei1 svg.flipped:where(.svelte-1pcdei1){transform:rotate(180deg)}.body.svelte-1pcdei1{border-top:1px solid var(--border);padding:.625rem 1.25rem;display:flex;flex-direction:column;gap:.375rem;min-height:72px}.run-card.svelte-1pcdei1{display:flex;align-items:center;gap:.75rem;padding:.625rem .875rem;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-subtle);color:inherit;transition:background var(--duration-fast),border-color var(--duration-fast)}.run-card.svelte-1pcdei1:hover{background:var(--bg-elevated);border-color:var(--accent)}.run-card.active-run.svelte-1pcdei1{border-left:3px solid var(--accent)}.run-card.queued-run.svelte-1pcdei1{border-left:3px solid var(--warn)}.run-card-main.svelte-1pcdei1{display:flex;align-items:center;gap:.75rem;flex:1;min-width:0;text-decoration:none;color:inherit}.run-card-cancel.svelte-1pcdei1{display:flex;align-items:center;justify-content:center;width:22px;height:22px;flex-shrink:0;border:1px solid var(--border);border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);cursor:pointer;transition:color var(--duration-fast),border-color var(--duration-fast)}.run-card-cancel.svelte-1pcdei1:hover{color:var(--fail);border-color:var(--fail)}.run-card-dot.svelte-1pcdei1{width:8px;height:8px;border-radius:50%;flex-shrink:0;background:var(--border)}.pulse-accent.svelte-1pcdei1{background:var(--accent);animation:dotPulse 1.6s ease-in-out infinite}.queued-dot.svelte-1pcdei1{background:var(--warn)}.run-card-info.svelte-1pcdei1{display:flex;flex-direction:column;gap:.1rem;flex:1;min-width:0}.run-card-label.svelte-1pcdei1{font-size:.8125rem;font-weight:500;color:var(--text)}.run-card-meta.svelte-1pcdei1{font-size:.72rem;font-family:JetBrains Mono,monospace;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.meta-dot.svelte-1pcdei1{opacity:.4;margin:0 .15rem}.run-card-arrow.svelte-1pcdei1{color:var(--text-muted);flex-shrink:0;transition:transform var(--duration-fast) var(--ease-out),color var(--duration-fast)}.run-card.svelte-1pcdei1:hover .run-card-arrow:where(.svelte-1pcdei1){transform:translate(3px);color:var(--accent)}.empty-runs.svelte-1pcdei1{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.5rem 0;color:var(--text-muted);font-size:.8125rem}.empty-icon.svelte-1pcdei1{opacity:.4}.run-chip.svelte-1pcdei1{display:inline-flex;align-items:center;gap:.4rem;height:28px;padding:0 .5rem 0 .625rem;background:var(--accent-soft);border:1px solid var(--accent);border-radius:var(--radius-sm);color:var(--accent);font-size:.78rem;white-space:nowrap;max-width:200px}.run-chip-title.svelte-1pcdei1{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.run-chip-count.svelte-1pcdei1{font-size:.65rem;font-weight:600;letter-spacing:.04em;opacity:.75;white-space:nowrap;flex-shrink:0}.run-chip-count.none.svelte-1pcdei1{color:var(--fail);opacity:1}.run-chip-spinner.svelte-1pcdei1{width:9px;height:9px;border:1.5px solid color-mix(in srgb,var(--accent) 35%,transparent);border-top-color:var(--accent);border-radius:50%;animation:svelte-1pcdei1-spin .65s linear infinite;flex-shrink:0}.run-chip-clear.svelte-1pcdei1{display:flex;align-items:center;justify-content:center;width:16px;height:16px;border:none;background:transparent;color:var(--accent);cursor:pointer;border-radius:2px;opacity:.7;padding:0;flex-shrink:0;transition:opacity var(--duration-fast)}.run-chip-clear.svelte-1pcdei1:hover{opacity:1}.run-pick-menu.svelte-1pcdei1{min-width:180px;max-height:240px;overflow-y:auto}.dropdown-divider.svelte-1pcdei1{height:1px;background:var(--border);margin:.25rem 0}.dropdown-empty.svelte-1pcdei1{font-size:.8125rem;color:var(--text-muted);padding:.35rem .5rem;text-align:center;opacity:.7}.boot-loading.svelte-3qbr79{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg);color:var(--text-muted);font-size:.875rem}
@@ -0,0 +1,6 @@
1
+ /*
2
+ * This file is part of Plum.
3
+ * Licensed under the MIT License. See LICENSE file in the project root for details.
4
+ */
5
+
6
+ .loading-state.svelte-1x8emxr{font-size:.875rem;color:var(--text-muted);padding:3rem 0}.breadcrumb.svelte-1x8emxr{display:flex;align-items:center;gap:.5rem;font-size:.8125rem;color:var(--text-muted);margin-bottom:1.5rem}.bc-link.svelte-1x8emxr{color:var(--accent);text-decoration:none}.bc-link.svelte-1x8emxr:hover{text-decoration:underline}.bc-sep.svelte-1x8emxr{color:var(--border)}.bc-current.svelte-1x8emxr{color:var(--text-muted)}.suite-header.svelte-1x8emxr{margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border)}.suite-title-row.svelte-1x8emxr{display:flex;align-items:center;gap:.625rem;margin-bottom:.5rem;flex-wrap:wrap}.suite-title.svelte-1x8emxr{font-size:1.75rem;font-weight:600;color:var(--text)}.suite-desc.svelte-1x8emxr{font-size:.875rem;color:var(--text-muted);margin-bottom:.5rem;line-height:1.5}.suite-meta.svelte-1x8emxr{display:flex;align-items:center;gap:.5rem;font-size:.8125rem;color:var(--text-muted)}.meta-sep.svelte-1x8emxr{color:var(--border)}.workspace.svelte-1x8emxr{display:grid;grid-template-columns:1fr;gap:1.5rem;align-items:start}.workspace.split.svelte-1x8emxr{grid-template-columns:320px 1fr}.panel-toolbar.svelte-1x8emxr{display:flex;align-items:center;justify-content:space-between;margin-bottom:.875rem}.panel-title.svelte-1x8emxr{font-size:.9375rem;font-weight:500;color:var(--text)}.case-search.svelte-1x8emxr{position:relative;display:flex;align-items:center;margin-bottom:.625rem}.case-search-icon.svelte-1x8emxr{position:absolute;left:.6rem;color:var(--text-muted);pointer-events:none}.case-search-input.svelte-1x8emxr{width:100%;height:30px;padding:0 1.75rem 0 2rem;font-family:var(--font-body);font-size:.8125rem;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);outline:none;transition:border-color var(--duration-fast)}.case-search-input.svelte-1x8emxr::placeholder{color:var(--text-muted)}.case-search-input.svelte-1x8emxr:focus{border-color:var(--accent)}.case-search-input.svelte-1x8emxr::-webkit-search-cancel-button{display:none}.case-search-clear.svelte-1x8emxr{position:absolute;right:.5rem;display:flex;align-items:center;justify-content:center;width:18px;height:18px;background:none;border:none;cursor:pointer;color:var(--text-muted);padding:0}.case-search-clear.svelte-1x8emxr:hover{color:var(--text)}.case-no-results.svelte-1x8emxr{font-size:.8125rem;color:var(--text-muted);padding:1rem .25rem}.case-list.svelte-1x8emxr{display:flex;flex-direction:column;gap:.375rem}.cases-pagination.svelte-1x8emxr{margin-top:.875rem}.case-sort-bar.svelte-1x8emxr{display:flex;align-items:center;gap:.3rem;margin-bottom:.625rem;flex-wrap:wrap}.case-sort-chip.svelte-1x8emxr{display:flex;align-items:center;gap:.2rem;height:24px;padding:0 .5rem;font-family:var(--font-body);font-size:.75rem;color:var(--text-muted);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-pill);cursor:pointer;transition:color var(--duration-fast),border-color var(--duration-fast),background var(--duration-fast)}.case-sort-chip.svelte-1x8emxr:hover{color:var(--text);border-color:var(--accent)}.case-sort-chip.active.svelte-1x8emxr{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}.case-sort-dir.svelte-1x8emxr{font-size:.65rem}.case-row.svelte-1x8emxr{display:flex;flex-direction:column;gap:.25rem;width:100%;text-align:left;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);padding:.75rem;cursor:pointer;transition:border-color var(--duration-fast),background var(--duration-fast)}.case-row.svelte-1x8emxr:hover{border-color:var(--accent)}.case-row.selected.svelte-1x8emxr{border-color:var(--accent);background:var(--accent-soft)}.case-row-top.svelte-1x8emxr{display:flex;align-items:center;gap:.375rem}.case-row-actions.svelte-1x8emxr{margin-left:auto;opacity:0;transition:opacity var(--duration-fast)}.case-row.svelte-1x8emxr:hover .case-row-actions:where(.svelte-1x8emxr){opacity:1}.case-title.svelte-1x8emxr{font-size:.875rem;color:var(--text);line-height:1.4}.case-steps.svelte-1x8emxr{font-size:.7rem;color:var(--text-muted)}.detail-panel.svelte-1x8emxr{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);overflow-y:auto;position:sticky;top:calc(56px + 1.5rem);max-height:calc(100vh - 56px - 3rem);padding-bottom:1.5rem}.detail-loading.svelte-1x8emxr{padding:2rem;font-size:.875rem;color:var(--text-muted)}.detail-header.svelte-1x8emxr{padding:1.25rem;border-bottom:1px solid var(--border)}.detail-title-row.svelte-1x8emxr{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-bottom:.75rem}.detail-header-actions.svelte-1x8emxr{margin-left:auto;display:flex;align-items:center;gap:.25rem}.detail-case-title.svelte-1x8emxr{font-size:1rem;font-weight:500;color:var(--text);margin-bottom:.375rem}.detail-case-desc.svelte-1x8emxr{font-size:.8125rem;color:var(--text-muted);line-height:1.5;margin-bottom:.375rem}.detail-meta.svelte-1x8emxr{font-size:.75rem;color:var(--text-muted)}.case-history-bars.svelte-1x8emxr{display:flex;align-items:flex-end;gap:2px;height:16px;margin-top:.5rem}.history-bar.svelte-1x8emxr{width:4px;height:100%;border-radius:1px;background:var(--border)}.history-bar.pass.svelte-1x8emxr{background:var(--pass)}.history-bar.fail.svelte-1x8emxr{background:var(--fail)}.history-bar.warn.svelte-1x8emxr{background:var(--warn)}.history-bar.muted.svelte-1x8emxr{background:var(--text-muted)}.detail-tabs.svelte-1x8emxr{display:flex;border-bottom:1px solid var(--border)}.detail-tab.svelte-1x8emxr{padding:.625rem 1rem;font-family:var(--font-body);font-size:.8125rem;font-weight:400;color:var(--text-muted);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;transition:color var(--duration-fast),border-color var(--duration-fast);margin-bottom:-1px}.detail-tab.svelte-1x8emxr:hover{color:var(--text)}.detail-tab.active.svelte-1x8emxr{color:var(--accent);border-bottom-color:var(--accent)}.steps-section.svelte-1x8emxr,.history-section.svelte-1x8emxr{padding:1rem 1.25rem}.steps-toolbar.svelte-1x8emxr{display:flex;align-items:center;gap:.5rem;margin-bottom:.875rem}.add-step-btn.svelte-1x8emxr{margin-left:auto;font-size:.8125rem;color:var(--accent);background:none;border:none;cursor:pointer;padding:.25rem .5rem;border-radius:var(--radius-sm);transition:background var(--duration-fast)}.add-step-btn.svelte-1x8emxr:hover{background:var(--accent-soft)}.no-steps.svelte-1x8emxr{font-size:.8125rem;color:var(--text-muted);padding:1rem 0}.steps-table.svelte-1x8emxr{font-size:.8125rem;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.steps-table-head.svelte-1x8emxr,.steps-table-row.svelte-1x8emxr{display:grid;grid-template-columns:28px 1fr 1fr 1fr;gap:.5rem;padding:.5rem .75rem;align-items:start}.steps-table-head.svelte-1x8emxr{background:var(--bg-subtle);font-size:.7rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.steps-table-row.svelte-1x8emxr{border-top:1px solid var(--border);color:var(--text);line-height:1.5}.col-num.svelte-1x8emxr{color:var(--text-muted)}.steps-editor.svelte-1x8emxr{display:flex;flex-direction:column;gap:.5rem}.step-editor-row.svelte-1x8emxr{display:flex;align-items:flex-end;gap:.5rem}.step-num.svelte-1x8emxr{font-size:.75rem;color:var(--text-muted);min-width:20px;padding-bottom:.5rem}.step-editor-fields.svelte-1x8emxr{flex:1;display:grid;grid-template-columns:1fr 1fr 1fr;gap:.5rem}.step-field.svelte-1x8emxr{display:flex;flex-direction:column;gap:.25rem}.step-field-label.svelte-1x8emxr{font-size:.7rem;font-weight:500;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.edit-case-form.svelte-1x8emxr{display:flex;flex-direction:column;gap:.75rem;margin-top:.5rem}.history-list.svelte-1x8emxr{display:flex;flex-direction:column;gap:.5rem}.history-row.svelte-1x8emxr{display:flex;flex-direction:column;gap:.25rem;padding:.75rem;background:var(--bg-subtle);border-radius:var(--radius-sm);border:1px solid var(--border)}.history-info.svelte-1x8emxr{display:flex;align-items:center;gap:.625rem;flex-wrap:wrap}.history-source.svelte-1x8emxr{font-size:.8125rem;font-weight:500;color:var(--text)}.history-link.svelte-1x8emxr{color:var(--accent);text-decoration:none}.history-link.svelte-1x8emxr:hover{text-decoration:underline}.history-missing.svelte-1x8emxr{font-style:italic;color:var(--text-muted)}.history-by.svelte-1x8emxr,.history-date.svelte-1x8emxr{font-size:.75rem;color:var(--text-muted)}.history-notes.svelte-1x8emxr{font-size:.75rem;color:var(--text-muted);font-style:italic}.result-badge.svelte-1x8emxr{font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:.15rem .5rem;border-radius:var(--radius-pill);align-self:flex-start}.result-badge.pass.svelte-1x8emxr{background:var(--pass-soft);color:var(--pass)}.result-badge.fail.svelte-1x8emxr{background:var(--fail-soft);color:var(--fail)}.result-badge.warn.svelte-1x8emxr{background:var(--warn-soft);color:var(--warn)}.result-badge.muted.svelte-1x8emxr{background:var(--bg-subtle);color:var(--text-muted)}.id-chip.svelte-1x8emxr{font-family:JetBrains Mono,monospace;font-weight:600;color:var(--accent);background:var(--accent-soft);border-radius:4px;letter-spacing:.02em}.id-chip.large.svelte-1x8emxr{font-size:.75rem;padding:.1rem .45rem}.id-chip.small.svelte-1x8emxr{font-size:.65rem;padding:.08rem .35rem}.priority-badge.svelte-1x8emxr{font-size:.68rem;font-weight:500;border-radius:var(--radius-pill);padding:.15rem .5rem}.priority-badge.small.svelte-1x8emxr{font-size:.62rem}.priority-badge.critical.svelte-1x8emxr{background:var(--fail-soft);color:var(--fail)}.priority-badge.high.svelte-1x8emxr{background:var(--warn-soft);color:var(--warn)}.priority-badge.medium.svelte-1x8emxr{background:var(--node-soft);color:var(--node)}.priority-badge.low.svelte-1x8emxr{background:var(--bg-subtle);color:var(--text-muted)}.auto-badge.svelte-1x8emxr{font-size:.62rem;font-weight:500;background:var(--pass-soft);color:var(--pass);border-radius:var(--radius-pill);padding:.15rem .5rem}.tag-chip.svelte-1x8emxr{font-family:JetBrains Mono,monospace;font-size:.68rem;color:var(--text-muted);background:var(--bg-subtle);border:1px solid var(--border);border-radius:4px;padding:.08rem .4rem}.icon-btn.svelte-1x8emxr{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:var(--radius-sm);background:transparent;cursor:pointer;color:var(--text-muted);transition:background var(--duration-fast),color var(--duration-fast)}.icon-btn.small.svelte-1x8emxr{width:24px;height:24px}.icon-btn.svelte-1x8emxr:hover{background:var(--bg-subtle);color:var(--text)}.icon-btn.danger.svelte-1x8emxr:hover{background:var(--fail-soft);color:var(--fail)}.form-fields.svelte-1x8emxr{display:flex;flex-direction:column;gap:.875rem}.field.svelte-1x8emxr{display:flex;flex-direction:column;gap:.375rem}.field-row.svelte-1x8emxr{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.field-label.svelte-1x8emxr{font-size:.8125rem;font-weight:500;color:var(--text);display:flex;align-items:baseline;gap:.5rem}.field-hint.svelte-1x8emxr{font-size:.75rem;font-weight:400;color:var(--text-muted)}.field-textarea.svelte-1x8emxr{height:auto;resize:vertical}.mono.svelte-1x8emxr{font-family:JetBrains Mono,monospace;font-size:.8125rem!important}.form-error.svelte-1x8emxr{font-size:.8125rem;color:var(--fail)}.move-case-subtitle.svelte-1x8emxr{font-size:.8125rem;color:var(--text-muted)}.modal-actions.svelte-1x8emxr{display:flex;gap:.5rem;padding-top:.25rem}@media (max-width: 768px){.workspace.split.svelte-1x8emxr{grid-template-columns:1fr}}
@@ -0,0 +1,6 @@
1
+ /*
2
+ * This file is part of Plum.
3
+ * Licensed under the MIT License. See LICENSE file in the project root for details.
4
+ */
5
+
6
+ .live-viewport.svelte-1wgcx8r{flex:1;width:100%;height:100%;min-width:0;min-height:0;display:flex;align-items:flex-start;justify-content:center;overflow:hidden}.live-stage.svelte-1wgcx8r{position:relative;overflow:hidden}.live-mount.svelte-1wgcx8r{position:absolute;top:0;left:0}.live-mount.svelte-1wgcx8r .rr-player{border-radius:0!important;box-shadow:none!important}.live-mount.svelte-1wgcx8r iframe{pointer-events:auto!important}.notice-state.svelte-13l3gen{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:5rem 1rem;text-align:center;gap:.75rem}.notice-state.svelte-13l3gen h2:where(.svelte-13l3gen){font-size:1.5rem;font-weight:400}.notice-state.svelte-13l3gen p:where(.svelte-13l3gen){font-size:.9375rem;color:var(--text-muted);max-width:360px}.queue-pos.svelte-13l3gen{font-family:JetBrains Mono,monospace;font-size:.85rem;color:var(--text)}.notice-link.svelte-13l3gen{font-size:.875rem;color:var(--accent);text-decoration:none;margin-top:.5rem}.notice-link.svelte-13l3gen:hover{text-decoration:underline}.pulse-dot.svelte-13l3gen{width:18px;height:18px;border-radius:50%;background:var(--accent);animation:svelte-13l3gen-pulse-dot 1.4s ease-in-out infinite}.pulse-dot.warn.svelte-13l3gen{background:var(--warn)}@keyframes svelte-13l3gen-pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.8)}}.live-fullscreen.svelte-13l3gen{width:100vw;position:relative;left:50%;margin-left:-50vw;margin-top:-2.5rem;margin-bottom:-5rem;padding-bottom:5rem;height:calc(100vh - 56px);box-sizing:border-box;display:flex;flex-direction:column}.run-header.svelte-13l3gen{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem clamp(1rem,3vw,2rem);background:var(--bg-elevated);border-bottom:1px solid var(--border);animation:fadeUp .3s var(--ease-out) both;flex-shrink:0}.run-header.header-pass.svelte-13l3gen{border-top:3px solid var(--pass)}.run-header.header-fail.svelte-13l3gen{border-top:3px solid var(--fail)}.header-left.svelte-13l3gen{display:flex;align-items:center;gap:.875rem;flex-wrap:wrap}.header-back.svelte-13l3gen{display:flex;align-items:center;padding-right:.875rem;border-right:1px solid var(--border)}.header-back.svelte-13l3gen .back-row{margin-bottom:0}.live-badge.svelte-13l3gen{display:inline-flex;align-items:center;gap:.4rem;font-size:.7rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--white);background:var(--accent);padding:.2rem .6rem;border-radius:var(--radius-pill)}.live-dot.svelte-13l3gen{width:6px;height:6px;border-radius:50%;background:#fffc;animation:dotPulse 1.2s ease-in-out infinite}.run-info.svelte-13l3gen{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap}.run-title-label.svelte-13l3gen{font-size:.875rem;font-weight:500;color:var(--accent);background:var(--accent-soft);border:1px solid color-mix(in srgb,var(--accent) 20%,transparent);border-radius:var(--radius-pill);padding:.15rem .6rem;white-space:nowrap}.run-tag-label.svelte-13l3gen{font-family:JetBrains Mono,monospace;font-size:.8125rem;font-weight:500;color:var(--text)}.run-sep.svelte-13l3gen{color:var(--text-muted);opacity:.4;font-size:.75rem}.run-detail.svelte-13l3gen{font-size:.8rem;color:var(--text-muted);font-family:JetBrains Mono,monospace}.cancel-btn.svelte-13l3gen{display:inline-flex;align-items:center;gap:.4rem;font-family:var(--font-body);font-size:.8rem;font-weight:500;color:var(--fail);background:var(--fail-soft);border:1px solid var(--fail);border-radius:var(--radius-sm);padding:.35rem .75rem;cursor:pointer;transition:background var(--duration-fast),color var(--duration-fast);flex-shrink:0}.cancel-btn.svelte-13l3gen:hover{background:var(--fail);color:var(--white)}.completion-bar.svelte-13l3gen{display:flex;align-items:center;justify-content:space-between;padding:.75rem clamp(1rem,3vw,2rem);gap:1rem;border-bottom:1px solid var(--border);flex-shrink:0}.completion-bar.pass-bar.svelte-13l3gen{background:var(--pass-soft);border-bottom-color:color-mix(in srgb,var(--pass) 30%,var(--border));color:var(--pass)}.completion-bar.fail-bar.svelte-13l3gen{background:var(--fail-soft);border-bottom-color:color-mix(in srgb,var(--fail) 30%,var(--border));color:var(--fail)}.completion-left.svelte-13l3gen{display:flex;align-items:center;gap:.5rem;font-size:.9rem;font-weight:500}.completion-right.svelte-13l3gen{display:flex;align-items:center;gap:.875rem}.redirect-hint.svelte-13l3gen{font-size:.8rem;opacity:.7;font-family:JetBrains Mono,monospace;color:inherit}.view-now-btn.svelte-13l3gen{display:inline-flex;align-items:center;gap:.35rem;font-family:var(--font-body);font-size:.8125rem;font-weight:600;color:inherit;background:transparent;border:1.5px solid currentColor;border-radius:var(--radius-sm);padding:.3rem .75rem;cursor:pointer;transition:background var(--duration-fast)}.view-now-btn.svelte-13l3gen:hover{background:#0000000f}.lane-tabs.svelte-13l3gen{display:flex;gap:2px;padding:.5rem clamp(1rem,3vw,2rem) 0;background:var(--bg-elevated);border-bottom:1px solid var(--border);flex-shrink:0}.lane-tab.svelte-13l3gen{display:inline-flex;align-items:center;gap:.4rem;padding:.375rem .875rem;border:1px solid transparent;border-bottom:none;border-radius:var(--radius-sm) var(--radius-sm) 0 0;background:transparent;font-family:var(--font-body);font-size:.8rem;color:var(--text-muted);cursor:pointer;transition:color var(--duration-fast),background var(--duration-fast),border-color var(--duration-fast);white-space:nowrap}.lane-tab.svelte-13l3gen:hover{color:var(--text);background:var(--bg-subtle)}.lane-tab.active.svelte-13l3gen{color:var(--text);background:var(--bg-elevated);border-color:var(--border);border-bottom-color:var(--bg-elevated)}.tab-dot.svelte-13l3gen{width:6px;height:6px;border-radius:50%;flex-shrink:0;background:var(--accent)}.tab-dot-running.svelte-13l3gen{background:var(--accent);animation:dotPulse 1.6s ease-in-out infinite}.tab-dot-done.svelte-13l3gen{background:var(--pass)}.tab-dot-error.svelte-13l3gen{background:var(--fail)}.tab-count.svelte-13l3gen{font-size:.65rem;font-weight:600;font-family:JetBrains Mono,monospace;opacity:.55}.run-view.svelte-13l3gen{display:grid;grid-template-columns:1fr 340px;flex:1;min-height:0;overflow:hidden;animation:fadeUp .35s var(--ease-out) .05s both}.stream-panel.svelte-13l3gen{position:relative;background:var(--terminal-bg);display:flex;align-items:center;justify-content:center;overflow:hidden;border-right:1px solid var(--border)}.awaiting-state.svelte-13l3gen{display:flex;flex-direction:column;align-items:center;gap:.625rem;color:#fff3;font-size:.8rem;font-family:JetBrains Mono,monospace}.terminal-panel.svelte-13l3gen{display:flex;flex-direction:column;overflow:hidden}.terminal-bar.svelte-13l3gen{display:flex;align-items:center;gap:6px;padding:.6rem .875rem;background:#00000059;flex-shrink:0}.dot.svelte-13l3gen{display:block;width:10px;height:10px;border-radius:50%}.dot.red.svelte-13l3gen{background:#ff5f57}.dot.yellow.svelte-13l3gen{background:#febc2e}.dot.green.svelte-13l3gen{background:#28c840}.terminal-label.svelte-13l3gen{margin-left:auto;font-size:.68rem;font-family:JetBrains Mono,monospace;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:#ffffff4d}.terminal.svelte-13l3gen{font-family:JetBrains Mono,Fira Code,Cascadia Code,Courier New,monospace;font-size:.8rem;line-height:1.75;background:var(--terminal-bg);color:var(--terminal-text);padding:1rem 1.25rem;flex:1;overflow-y:auto;white-space:pre-wrap;word-break:break-word;margin:0}.terminal.svelte-13l3gen::-webkit-scrollbar{width:4px}.terminal.svelte-13l3gen::-webkit-scrollbar-track{background:transparent}.terminal.svelte-13l3gen::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:2px}
@@ -0,0 +1,6 @@
1
+ /*
2
+ * This file is part of Plum.
3
+ * Licensed under the MIT License. See LICENSE file in the project root for details.
4
+ */
5
+
6
+ .page-header.svelte-1b139ls{margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border)}.page-header.svelte-1b139ls h1:where(.svelte-1b139ls){font-size:2.5rem}.settings-layout.svelte-1b139ls{display:grid;grid-template-columns:200px 1fr;gap:3rem;align-items:start}.settings-sidebar.svelte-1b139ls{position:sticky;top:72px}.settings-sidebar.svelte-1b139ls nav:where(.svelte-1b139ls){display:flex;flex-direction:column;gap:.125rem}.sidebar-item.svelte-1b139ls{display:block;width:100%;text-align:left;padding:.45rem .75rem;font-family:var(--font-body);font-size:.875rem;font-weight:400;color:var(--text-muted);background:transparent;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:background var(--duration-fast),color var(--duration-fast)}.sidebar-item.svelte-1b139ls:hover{background:var(--bg-subtle);color:var(--text)}.sidebar-item.active.svelte-1b139ls{background:var(--accent-soft);color:var(--accent);font-weight:500}.settings-content.svelte-1b139ls{min-width:0}.content-section.svelte-1b139ls{display:flex;flex-direction:column;gap:1.25rem}.content-header.svelte-1b139ls{margin-bottom:.25rem}.content-header.svelte-1b139ls h2:where(.svelte-1b139ls){font-size:1.1rem;font-weight:500;font-family:var(--font-body);color:var(--text);margin-bottom:.25rem}.content-desc.svelte-1b139ls{font-size:.875rem;color:var(--text-muted);line-height:1.5}.settings-card.svelte-1b139ls{display:flex;flex-direction:column;gap:1.25rem}.field-label.svelte-1b139ls{display:flex;align-items:baseline;gap:.5rem;font-size:.8125rem;font-weight:500;color:var(--text)}.field-hint.svelte-1b139ls{font-size:.75rem;font-weight:400;color:var(--text-muted)}.logo-preview.svelte-1b139ls{display:flex;flex-direction:column;gap:.5rem}.preview-label.svelte-1b139ls{font-size:.75rem;color:var(--text-muted);font-weight:500;text-transform:uppercase;letter-spacing:.06em}.logo-img.svelte-1b139ls{max-height:56px;max-width:200px;object-fit:contain;border-radius:var(--radius-sm)}.card-footer.svelte-1b139ls{padding-top:.125rem}.toggle-row.svelte-1b139ls{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:.875rem 1rem;background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--radius-sm)}.toggle-info.svelte-1b139ls{display:flex;flex-direction:column;gap:.2rem}.toggle-label.svelte-1b139ls{font-size:.875rem;font-weight:500;color:var(--text)}.toggle-desc.svelte-1b139ls{font-size:.78rem;color:var(--text-muted);line-height:1.4}.toggle-switch.svelte-1b139ls{flex-shrink:0;width:40px;height:22px;border-radius:var(--radius-pill);border:none;background:var(--border);cursor:pointer;position:relative;transition:background .2s var(--ease-out)}.toggle-switch.on.svelte-1b139ls{background:var(--accent)}.toggle-thumb.svelte-1b139ls{position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .2s var(--ease-out);box-shadow:0 1px 3px #0003}.toggle-switch.on.svelte-1b139ls .toggle-thumb:where(.svelte-1b139ls){transform:translate(18px)}.runner-cards.svelte-1b139ls{display:flex;flex-direction:column;gap:.625rem}.runner-card.svelte-1b139ls{border:1px solid var(--border);border-radius:var(--radius-sm);padding:.75rem 1rem;display:flex;flex-direction:column;gap:.375rem;transition:border-color var(--duration-fast)}.runner-card.svelte-1b139ls:hover{border-color:color-mix(in srgb,var(--text-muted) 40%,var(--border))}.runner-card.editing.svelte-1b139ls{border-color:var(--accent);background:var(--accent-soft);gap:.875rem;padding:1rem}.runner-card-header.svelte-1b139ls{display:flex;align-items:center;gap:.5rem}.runner-card-icon.svelte-1b139ls{color:var(--node);flex-shrink:0}.runner-card-name.svelte-1b139ls{font-size:.875rem;font-weight:500;color:var(--text);flex:1}.runner-browser-pill.svelte-1b139ls{font-size:.65rem;font-family:JetBrains Mono,monospace;color:var(--text-muted);background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--radius-pill);padding:.1rem .45rem;flex-shrink:0}.runner-card-url.svelte-1b139ls{font-size:.75rem;font-family:JetBrains Mono,monospace;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-left:calc(13px + .5rem)}.runner-card-actions.svelte-1b139ls{display:flex;align-items:center;flex-wrap:wrap;gap:.375rem;padding-left:calc(13px + .5rem);margin-top:.125rem}.ping-badge.svelte-1b139ls{font-size:.7rem;font-weight:500;padding:.15rem .5rem;border-radius:var(--radius-pill);flex-shrink:0}.ping-badge.ok.svelte-1b139ls{background:var(--pass-soft);color:var(--pass)}.ping-badge.fail.svelte-1b139ls{background:var(--fail-soft);color:var(--fail)}.ping-badge.pinging.svelte-1b139ls{color:var(--text-muted)}.runner-form.svelte-1b139ls{border:1px solid var(--border);border-radius:var(--radius-sm);padding:1rem;display:flex;flex-direction:column;gap:.875rem;background:var(--bg-subtle)}.runner-form-title.svelte-1b139ls{font-size:.8125rem;font-weight:500;color:var(--text)}.runner-form-fields.svelte-1b139ls{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.runner-form-actions.svelte-1b139ls{display:flex;gap:.5rem}.card-disabled.svelte-1b139ls{opacity:.5;pointer-events:none}.backup-row.svelte-1b139ls{display:flex;gap:2rem}.backup-block.svelte-1b139ls{flex:1;display:flex;flex-direction:column;gap:.875rem}.backup-divider.svelte-1b139ls{width:1px;background:var(--border);flex-shrink:0}.backup-block-title.svelte-1b139ls{font-size:.875rem;font-weight:500;color:var(--text)}.backup-block-desc.svelte-1b139ls{font-size:.8125rem;color:var(--text-muted);line-height:1.6}.backup-block-desc.svelte-1b139ls code:where(.svelte-1b139ls){font-family:JetBrains Mono,monospace;font-size:.78rem;background:var(--bg-subtle);padding:.1em .3em;border-radius:3px}.include-reports-row.svelte-1b139ls{display:flex;align-items:center;gap:1.25rem;margin-top:1.25rem;padding-top:1.25rem;border-top:1px solid var(--border)}.include-reports-row.svelte-1b139ls .backup-toggle-label:where(.svelte-1b139ls){flex:1}.include-reports-row.svelte-1b139ls .field-label:where(.svelte-1b139ls)>span:where(.svelte-1b139ls){display:flex;flex-direction:column;gap:.15rem}.backup-disclaimer.svelte-1b139ls{margin-top:1rem;padding:.625rem .875rem;background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.8125rem;color:var(--text-muted);line-height:1.5}.backup-actions.svelte-1b139ls{display:flex;gap:.625rem;margin-top:.25rem;flex-wrap:wrap}.s3-test-result.svelte-1b139ls{margin-top:.625rem;font-size:.8125rem;font-weight:500}.s3-test-success.svelte-1b139ls{color:var(--pass)}.s3-test-error.svelte-1b139ls{color:var(--fail)}.card-title-row.svelte-1b139ls{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.75rem}.card-title-row.svelte-1b139ls .card-title:where(.svelte-1b139ls){margin-bottom:0}.s3-backup-list.svelte-1b139ls{display:flex;flex-direction:column;gap:.5rem;list-style:none;margin:0;padding:0}.s3-backup-row.svelte-1b139ls{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.625rem .875rem;background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--radius-sm)}.s3-backup-info.svelte-1b139ls{display:flex;flex-direction:column;gap:.2rem;min-width:0}.s3-backup-key.svelte-1b139ls{font-family:JetBrains Mono,monospace;font-size:.8125rem;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.s3-backup-meta.svelte-1b139ls{font-size:.75rem;color:var(--text-muted)}.backup-last-run.svelte-1b139ls{font-size:.8125rem;color:var(--text-muted);margin-top:.25rem}.status-success.svelte-1b139ls{color:var(--pass)}.status-error.svelte-1b139ls{color:var(--fail)}.backup-toggle-label.svelte-1b139ls{display:flex;align-items:center;justify-content:space-between;cursor:default}.toggle-btn.svelte-1b139ls{flex-shrink:0;width:40px;height:22px;border-radius:var(--radius-pill);border:none;background:var(--border);cursor:pointer;position:relative;transition:background .2s var(--ease-out)}.toggle-btn.active.svelte-1b139ls{background:var(--accent)}.toggle-btn.svelte-1b139ls .toggle-thumb:where(.svelte-1b139ls){position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .2s var(--ease-out);box-shadow:0 1px 3px #0003}.toggle-btn.active.svelte-1b139ls .toggle-thumb:where(.svelte-1b139ls){transform:translate(18px)}.field-input-mono.svelte-1b139ls{font-family:JetBrains Mono,monospace;font-size:.8125rem}.import-row.svelte-1b139ls{display:flex;align-items:center;gap:.625rem}.file-label.svelte-1b139ls{cursor:pointer}.file-input-hidden.svelte-1b139ls{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.file-btn.svelte-1b139ls{display:inline-flex;align-items:center;height:34px;padding:0 .875rem;font-size:.8125rem;font-family:inherit;color:var(--text-muted);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;max-width:180px;overflow:hidden;text-overflow:ellipsis;transition:background var(--duration-fast),border-color var(--duration-fast)}.file-label.svelte-1b139ls:hover .file-btn:where(.svelte-1b139ls){border-color:var(--text-muted);background:var(--bg-subtle)}.field-row.svelte-1b139ls{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.mono.svelte-1b139ls{font-family:JetBrains Mono,monospace!important;font-size:.8125rem!important}.code-sample.svelte-1b139ls{font-family:JetBrains Mono,monospace;font-size:.78rem;background:var(--bg-subtle);padding:.1em .3em;border-radius:3px}.link-btn.svelte-1b139ls{font:inherit;color:var(--accent);background:none;border:none;padding:0;cursor:pointer;text-decoration:underline}.account-info.svelte-1b139ls{display:flex;flex-direction:column;gap:.2rem}.account-name.svelte-1b139ls{font-size:.9375rem;font-weight:500;color:var(--text)}.account-email.svelte-1b139ls{font-size:.8125rem;color:var(--text-muted)}.form-error.svelte-1b139ls{font-size:.8125rem;color:var(--fail)}@media (max-width: 640px){.settings-layout.svelte-1b139ls{grid-template-columns:1fr;gap:1.5rem}.settings-sidebar.svelte-1b139ls{position:static}.settings-sidebar.svelte-1b139ls nav:where(.svelte-1b139ls){flex-direction:row;flex-wrap:wrap}.backup-row.svelte-1b139ls{flex-direction:column}.backup-divider.svelte-1b139ls{width:100%;height:1px}.runner-form-fields.svelte-1b139ls,.field-row.svelte-1b139ls{grid-template-columns:1fr}}.users-table.svelte-1b139ls{display:flex;flex-direction:column;gap:.5rem;margin-top:1rem}.user-row.svelte-1b139ls{display:flex;align-items:center;gap:.75rem;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);padding:.75rem 1rem}.user-info.svelte-1b139ls{flex:1;min-width:0;display:flex;flex-direction:column;gap:.15rem}.user-name.svelte-1b139ls{font-size:.9rem;font-weight:500;color:var(--text)}.user-email.svelte-1b139ls{font-size:.8rem;color:var(--text-muted)}.role-chip.svelte-1b139ls{font-size:.7rem;font-weight:500;border-radius:var(--radius-pill);padding:.15rem .55rem;flex-shrink:0}.role-chip.admin.svelte-1b139ls{background:var(--accent-soft);color:var(--accent)}.role-chip.user.svelte-1b139ls{background:var(--bg-subtle);color:var(--text-muted);border:1px solid var(--border)}.you-chip.svelte-1b139ls{font-size:.7rem;color:var(--text-muted);background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--radius-pill);padding:.15rem .55rem;flex-shrink:0}.mcp-key-row.svelte-1b139ls{display:flex;align-items:center;gap:.375rem}.mcp-key-input.svelte-1b139ls{flex:1;font-family:JetBrains Mono,monospace;font-size:.8125rem;min-width:0}.mcp-regen-note.svelte-1b139ls{font-size:.78rem;color:var(--text-muted)}.mcp-snippet.svelte-1b139ls{font-family:JetBrains Mono,monospace;font-size:.78rem;background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.875rem 1rem;white-space:pre;overflow-x:auto;color:var(--text);line-height:1.6;margin:0}.icon-btn.svelte-1b139ls{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:var(--radius-sm);background:transparent;cursor:pointer;color:var(--text-muted);transition:background var(--duration-fast),color var(--duration-fast);flex-shrink:0}.icon-btn.danger.svelte-1b139ls:hover{background:var(--fail-soft);color:var(--fail)}
@@ -0,0 +1,6 @@
1
+ /*
2
+ * This file is part of Plum.
3
+ * Licensed under the MIT License. See LICENSE file in the project root for details.
4
+ */
5
+
6
+ .legacy-notice.svelte-1xtj9lg{display:flex;align-items:flex-start;gap:.75rem;background:var(--accent-soft);border:1px solid color-mix(in srgb,var(--accent) 20%,transparent);border-radius:var(--radius-sm);padding:.75rem .875rem;margin-bottom:1.5rem}.legacy-notice.svelte-1xtj9lg p:where(.svelte-1xtj9lg){flex:1;margin:0;font-size:.85rem;line-height:1.5;color:var(--text)}.legacy-notice-dismiss.svelte-1xtj9lg{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;background:none;border:none;color:var(--text-muted);cursor:pointer;padding:.125rem;border-radius:var(--radius-sm);transition:color var(--duration-fast)}.legacy-notice-dismiss.svelte-1xtj9lg:hover{color:var(--text)}.page-header.svelte-1xtj9lg{margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border)}.header-top.svelte-1xtj9lg{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}h1.svelte-1xtj9lg{font-size:2.5rem;margin-bottom:.25rem}.subtitle.svelte-1xtj9lg{color:var(--text-muted);font-size:.875rem}.rate-display.svelte-1xtj9lg{display:flex;flex-direction:column;align-items:flex-end;gap:.1rem}.rate-number.svelte-1xtj9lg{font-family:var(--font-display);font-size:2.75rem;line-height:1;font-weight:400}.rate-number.pass.svelte-1xtj9lg{color:var(--pass)}.rate-number.warn.svelte-1xtj9lg{color:var(--warn)}.rate-number.fail.svelte-1xtj9lg{color:var(--fail)}.rate-label.svelte-1xtj9lg{font-size:.75rem;color:var(--text-muted);letter-spacing:.05em;text-transform:uppercase}.stats-bar.svelte-1xtj9lg{margin-bottom:1rem}.pass-bar-track.svelte-1xtj9lg{height:3px;background:var(--fail-soft);border-radius:var(--radius-pill);overflow:hidden;margin-bottom:.5rem}.pass-bar-fill.svelte-1xtj9lg{height:100%;background:var(--pass);border-radius:var(--radius-pill);transition:width .9s var(--ease-out) .1s}.bar-legend.svelte-1xtj9lg{display:flex;gap:1rem}.legend-pass.svelte-1xtj9lg{font-size:.75rem;color:var(--pass);font-weight:500}.legend-fail.svelte-1xtj9lg{font-size:.75rem;color:var(--fail);font-weight:500}.trend-row.svelte-1xtj9lg{display:flex;align-items:center;gap:.75rem}.trend-label.svelte-1xtj9lg{font-size:.7rem;font-weight:500;letter-spacing:.07em;text-transform:uppercase;color:var(--text-muted);flex-shrink:0}.trend-dots.svelte-1xtj9lg{display:flex;align-items:center;gap:5px}.trend-dot.svelte-1xtj9lg{width:9px;height:9px;border-radius:50%;transition:transform var(--duration-fast);animation:fadeUp .3s var(--ease-out) both}.trend-dot.svelte-1xtj9lg:hover{transform:scale(1.4)}.trend-dot.pass.svelte-1xtj9lg{background:var(--pass)}.trend-dot.fail.svelte-1xtj9lg{background:var(--fail)}.trend-hint.svelte-1xtj9lg{font-size:.68rem;color:var(--text-muted);opacity:.6}.list-header.svelte-1xtj9lg{display:flex;align-items:center;justify-content:space-between;padding:0 .5rem .375rem}.select-all-wrap.svelte-1xtj9lg{display:flex;align-items:center;cursor:pointer;padding:.25rem}.btn-delete-selected.svelte-1xtj9lg{height:30px;padding:0 .75rem;font-size:.78rem;font-family:inherit;font-weight:500;color:var(--fail);background:var(--fail-soft, rgba(239, 68, 68, .08));border:1px solid var(--fail);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--duration-fast),opacity var(--duration-fast)}.btn-delete-selected.svelte-1xtj9lg:hover{background:var(--fail);color:var(--white)}.report-list.svelte-1xtj9lg{display:flex;flex-direction:column;gap:.5rem}.report-row.svelte-1xtj9lg{display:flex;align-items:center;gap:.5rem;animation:fadeUp .32s var(--ease-out) both}.row-check-wrap.svelte-1xtj9lg{flex-shrink:0;display:flex;align-items:center;cursor:pointer;padding:.25rem}.checkbox.svelte-1xtj9lg{width:15px;height:15px;accent-color:var(--accent, #7c3aed);cursor:pointer}.report-item.svelte-1xtj9lg{flex:1;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.875rem 1.25rem;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-elevated);text-decoration:none;color:inherit;border-left-width:3px;transition:background var(--duration-fast),transform var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast);min-width:0}.report-item.svelte-1xtj9lg:hover{background:var(--bg-subtle);transform:translate(2px);box-shadow:0 2px 12px #0000000a}.report-item.is-pass.svelte-1xtj9lg{border-left-color:var(--pass)}.report-item.is-fail.svelte-1xtj9lg{border-left-color:var(--fail)}.report-row.is-selected.svelte-1xtj9lg .report-item:where(.svelte-1xtj9lg){background:var(--bg-subtle);border-color:var(--accent, #7c3aed)}.item-left.svelte-1xtj9lg{display:flex;align-items:center;gap:.875rem;min-width:0}.status-mark.svelte-1xtj9lg{font-size:.875rem;font-weight:600;flex-shrink:0;width:20px;text-align:center}.status-mark.pass.svelte-1xtj9lg{color:var(--pass)}.status-mark.fail.svelte-1xtj9lg{color:var(--fail)}.item-meta.svelte-1xtj9lg{display:flex;align-items:center;gap:.625rem;min-width:0}.item-tags.svelte-1xtj9lg{font-family:JetBrains Mono,monospace;font-size:.8rem;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.item-badges.svelte-1xtj9lg{flex-shrink:0}.item-right.svelte-1xtj9lg{display:flex;align-items:center;gap:.75rem;flex-shrink:0}.item-date.svelte-1xtj9lg{font-size:.8rem;color:var(--text-muted);white-space:nowrap}.item-arrow.svelte-1xtj9lg{color:var(--text-muted);transition:transform var(--duration-fast) var(--ease-out),color var(--duration-fast)}.report-item.svelte-1xtj9lg:hover .item-arrow:where(.svelte-1xtj9lg){transform:translate(3px);color:var(--text)}.row-delete-btn.svelte-1xtj9lg{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:30px;height:30px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);cursor:pointer;opacity:0;transition:opacity var(--duration-fast),color var(--duration-fast),background var(--duration-fast)}.report-row.svelte-1xtj9lg:hover .row-delete-btn:where(.svelte-1xtj9lg){opacity:1}.row-delete-btn.svelte-1xtj9lg:hover{color:var(--fail);background:var(--fail-soft, rgba(239, 68, 68, .08))}.pagination-wrap.svelte-1xtj9lg{margin-top:1.25rem}
@@ -0,0 +1,6 @@
1
+ /*
2
+ * This file is part of Plum.
3
+ * Licensed under the MIT License. See LICENSE file in the project root for details.
4
+ */
5
+
6
+ .status-dot.svelte-eg9xrn{display:inline-block;width:8px;height:8px;border-radius:50%;flex-shrink:0}.pass.svelte-eg9xrn{background:var(--pass)}.fail.svelte-eg9xrn{background:var(--fail)}.skip.svelte-eg9xrn{background:var(--text-muted)}.tag-chip.svelte-foe7v9{font-size:.65rem;font-family:JetBrains Mono,monospace;background:var(--accent-soft);color:var(--accent);padding:.1rem .4rem;border-radius:var(--radius-pill);white-space:nowrap}.kw.svelte-3mvi7i{font-size:.72rem;font-weight:500;letter-spacing:.04em;flex-shrink:0;padding:.05rem .4rem;border-radius:3px;font-family:JetBrains Mono,monospace}.kw-given.svelte-3mvi7i{background:var(--accent-soft);color:var(--accent)}.kw-when.svelte-3mvi7i{background:var(--warn-soft);color:var(--warn)}.kw-then.svelte-3mvi7i{background:var(--pass-soft);color:var(--pass)}.kw-and.svelte-3mvi7i{background:var(--bg-elevated);color:var(--text-muted);border:1px solid var(--border)}.step-status-icon.svelte-9zpq1y{font-size:.75rem;font-weight:600;width:14px;flex-shrink:0;text-align:center}.icon-pass.svelte-9zpq1y{color:var(--pass)}.icon-fail.svelte-9zpq1y{color:var(--fail)}.icon-skip.svelte-9zpq1y{color:var(--text-muted)}.steps-rail.svelte-q7af2t{flex-shrink:0;width:240px;display:flex;flex-direction:column;background:var(--bg-elevated);overflow-y:auto}.steps-rail-header.svelte-q7af2t{flex-shrink:0;padding:.7rem .9rem .5rem;font-family:JetBrains Mono,monospace;font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.steps-list.svelte-q7af2t{list-style:none;margin:0;padding:0 .5rem .5rem;display:flex;flex-direction:column;gap:.1rem}.rail-step.svelte-q7af2t{width:100%;display:flex;align-items:flex-start;gap:.5rem;padding:.4rem .5rem;background:none;border:none;border-radius:var(--radius-sm);font:inherit;font-size:.78rem;line-height:1.35;text-align:left;color:var(--text-muted);cursor:pointer;transition:background var(--duration-fast) var(--ease-out)}.rail-step.svelte-q7af2t:hover:not(:disabled){background:var(--bg-subtle)}.rail-step.svelte-q7af2t:disabled{cursor:default}.rail-step-text.svelte-q7af2t{display:inline-flex;flex-wrap:wrap;align-items:baseline;gap:.35rem;min-width:0;word-break:break-word}.rail-step-active.svelte-q7af2t{background:var(--accent-soft);color:var(--text);font-weight:500}.combined-timeline.svelte-5daecg{position:absolute;left:0;right:0;bottom:38px;width:80%;margin:0 auto;display:flex;align-items:center}.combined-timeline-time.svelte-5daecg{flex-shrink:0;display:inline-block;width:100px;text-align:center;color:#11103e}.combined-timeline-track.svelte-5daecg{position:relative;flex:1;height:12px;background:#eee;border-radius:3px;cursor:pointer;box-sizing:border-box;border-top:solid 4px #fff;border-bottom:solid 4px #fff}.combined-timeline-fill.svelte-5daecg{position:absolute;left:0;top:0;height:100%;background:#e0e1fe}.combined-timeline-tick.svelte-5daecg{position:absolute;top:2px;width:10px;height:5px;transform:translate(-50%,-50%);background:#4950f6;pointer-events:none}.combined-timeline-handle.svelte-5daecg{position:absolute;top:2px;width:20px;height:20px;border-radius:10px;transform:translate(-50%,-50%);background:#4950f6;pointer-events:none}.code-viewer.svelte-mer6ic{margin:0;padding:.75rem 1rem;background:var(--terminal-bg);color:var(--terminal-text);font-family:JetBrains Mono,monospace;font-size:.78rem;line-height:1.5;border-radius:var(--radius-md);overflow-x:auto;white-space:pre-wrap;word-break:break-word}.code-viewer .tok-tag{color:var(--code-tag)}.code-viewer .tok-attr{color:var(--code-attr)}.code-viewer .tok-value{color:var(--code-string)}.code-viewer .tok-comment{color:var(--code-comment);font-style:italic}.inspector-panel.svelte-mmh4st{flex-shrink:0;width:280px;display:flex;flex-direction:column;gap:.65rem;padding:.75rem .9rem .9rem;background:var(--bg-elevated);overflow-y:auto}.inspector-panel.svelte-mmh4st>:where(.svelte-mmh4st){flex-shrink:0}.inspector-panel.svelte-mmh4st .code-viewer{flex-shrink:0}.inspector-header.svelte-mmh4st{display:flex;align-items:center;gap:.4rem;padding-bottom:.5rem;margin-bottom:.1rem;border-bottom:1px solid var(--border);font-family:JetBrains Mono,monospace;font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.inspector-empty.svelte-mmh4st{color:var(--text-muted);font-size:.8rem;padding:1rem .1rem;line-height:1.5}.inspector-section.svelte-mmh4st{display:flex;align-items:baseline;gap:.5rem}.inspector-section-label.svelte-mmh4st{font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.inspector-size.svelte-mmh4st{font-family:JetBrains Mono,monospace;font-size:.75rem;color:var(--text)}.inspector-attrs.svelte-mmh4st{margin:0;display:flex;flex-direction:column}.inspector-attr-row.svelte-mmh4st{display:flex;flex-direction:column;gap:.1rem;padding:.35rem 0;border-top:1px solid var(--border)}.inspector-attr-row.svelte-mmh4st dt:where(.svelte-mmh4st){font-family:JetBrains Mono,monospace;font-size:.7rem;color:var(--accent)}.inspector-attr-row.svelte-mmh4st dd:where(.svelte-mmh4st){margin:0;font-family:JetBrains Mono,monospace;font-size:.72rem;color:var(--text-muted);word-break:break-all}.recording-player.svelte-jcqbbs{flex:1;min-height:0;display:flex;gap:1px;background:var(--border);overflow:hidden}.player-stage.svelte-jcqbbs{position:relative;flex:1;min-width:0;min-height:0;display:flex;align-items:center;justify-content:center;background:var(--bg-elevated)}.player-column.svelte-jcqbbs{position:relative;display:inline-flex}.player-mount.svelte-jcqbbs{display:flex}.player-mount.svelte-jcqbbs .rr-player{border-radius:0!important;box-shadow:none!important}.player-mount.svelte-jcqbbs .rr-controller{border-radius:0!important}.player-mount.svelte-jcqbbs iframe{pointer-events:auto!important}.player-mount.svelte-jcqbbs .switch{display:none!important}.player-mount.svelte-jcqbbs .rr-controller__btns{gap:.5rem}.player-mount-multi.svelte-jcqbbs .rr-timeline{visibility:hidden!important;pointer-events:none!important}.player-status.svelte-jcqbbs{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:.85rem}.loading-dots.svelte-jcqbbs{display:flex;gap:.3rem}.loading-dots.svelte-jcqbbs span:where(.svelte-jcqbbs){width:6px;height:6px;border-radius:50%;background:var(--text-muted);animation:dotPulse 1.1s ease-in-out infinite}.loading-dots.svelte-jcqbbs span:where(.svelte-jcqbbs):nth-child(2){animation-delay:.15s}.loading-dots.svelte-jcqbbs span:where(.svelte-jcqbbs):nth-child(3){animation-delay:.3s}.active-tab-badge.svelte-jcqbbs{position:absolute;top:.75rem;left:.75rem;padding:.3rem .6rem;background:#0000008c;backdrop-filter:blur(6px);border-radius:var(--radius-pill);color:#fff;font-family:JetBrains Mono,monospace;font-size:.7rem}.inspect-highlight.svelte-jcqbbs{position:absolute;pointer-events:none;background:color-mix(in srgb,var(--accent) 18%,transparent);border:1.5px solid var(--accent);border-radius:2px;z-index:10000}.restart-overlay-btn.svelte-jcqbbs{position:absolute;display:flex;align-items:center;justify-content:center;background:#fff;border:none;border-radius:50%;color:#11103e;cursor:pointer;z-index:10001}.restart-overlay-btn.svelte-jcqbbs:hover{background:#f0f0f5}.inspect-fab.svelte-jcqbbs{position:absolute;top:.75rem;right:.75rem;display:flex;align-items:center;justify-content:center;width:30px;height:30px;background:#0000008c;backdrop-filter:blur(6px);border:none;border-radius:50%;color:#fff;cursor:pointer;opacity:.7;transition:opacity var(--duration-fast) var(--ease-out),background var(--duration-fast) var(--ease-out)}.inspect-fab.svelte-jcqbbs:hover:not(:disabled){opacity:1}.inspect-fab.svelte-jcqbbs:disabled{opacity:.3;cursor:default}.inspect-fab-active.svelte-jcqbbs{background:var(--accent);opacity:1}.report-header.svelte-ggy6pw{border-radius:var(--radius-lg);border:1px solid var(--border);border-top-width:3px;padding:1.5rem;margin-bottom:2rem;background:var(--bg-elevated);animation:fadeUp .35s var(--ease-out) both}.report-header.pass.svelte-ggy6pw{border-top-color:var(--pass)}.report-header.fail.svelte-ggy6pw{border-top-color:var(--fail)}.header-main.svelte-ggy6pw{display:flex;align-items:flex-start;justify-content:space-between;gap:1.5rem;flex-wrap:wrap}.header-status.svelte-ggy6pw{display:flex;align-items:center;gap:1rem}.status-icon-wrap.svelte-ggy6pw{width:52px;height:52px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.status-icon-wrap.pass-bg.svelte-ggy6pw{background:var(--pass-soft);color:var(--pass)}.status-icon-wrap.fail-bg.svelte-ggy6pw{background:var(--fail-soft);color:var(--fail)}.h1-row.svelte-ggy6pw{display:flex;align-items:center;gap:.75rem;margin-bottom:.2rem}.run-name-badge.svelte-ggy6pw{display:inline-flex;align-items:center;font-size:.75rem;font-weight:500;color:var(--accent);background:var(--accent-soft);border:1px solid color-mix(in srgb,var(--accent) 20%,transparent);border-radius:var(--radius-pill);padding:.25rem .7rem;white-space:nowrap;max-width:240px;overflow:hidden;text-overflow:ellipsis;margin-top:3px}h1.svelte-ggy6pw{font-size:2rem;margin-bottom:0}.header-meta.svelte-ggy6pw{font-size:.8125rem;color:var(--text-muted);display:flex;align-items:center;flex-wrap:wrap;gap:.35rem}.meta-sep.svelte-ggy6pw{opacity:.4}.mono.svelte-ggy6pw{font-family:JetBrains Mono,monospace;font-size:.78rem}.browser-pill.svelte-ggy6pw{display:inline-flex;align-items:center;gap:.3rem;font-family:JetBrains Mono,monospace;font-size:.68rem;font-weight:500;background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--radius-pill);padding:.1rem .45rem}.header-stats.svelte-ggy6pw{display:flex;gap:1.5rem;align-items:flex-start;flex-shrink:0}.stat.svelte-ggy6pw{display:flex;flex-direction:column;align-items:center;gap:.15rem}.stat-num.svelte-ggy6pw{font-family:var(--font-display);font-size:1.75rem;line-height:1;font-weight:400;color:var(--text)}.stat-label.svelte-ggy6pw{display:inline-flex;align-items:center;gap:.25rem;font-size:.68rem;color:var(--text-muted);letter-spacing:.06em;text-transform:uppercase}.pass-color.svelte-ggy6pw{color:var(--pass)}.fail-color.svelte-ggy6pw{color:var(--fail)}.muted-color.svelte-ggy6pw{color:var(--text-muted)}.group-header.svelte-ggy6pw{display:flex;align-items:center;gap:.4rem;padding-bottom:.4rem;margin-top:1.75rem;margin-bottom:.75rem;font-family:JetBrains Mono,monospace;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border)}.group-header.svelte-ggy6pw:first-child{margin-top:0}.group-icon.svelte-ggy6pw{flex-shrink:0;opacity:.7}.runner-group-header.svelte-ggy6pw{font-size:.78rem;font-weight:600;color:var(--text)}.worker-group-header.svelte-ggy6pw{font-size:.7rem;font-weight:500;color:var(--text-muted)}.feature.svelte-ggy6pw{margin-bottom:1.25rem;background:var(--bg-elevated);border:1px solid var(--border);border-top-width:3px;border-radius:var(--radius-lg);overflow:hidden;animation:fadeUp .35s var(--ease-out) both}.feature-pass.svelte-ggy6pw{border-top-color:var(--pass)}.feature-fail.svelte-ggy6pw{border-top-color:var(--fail)}.feature-header.svelte-ggy6pw{display:flex;align-items:center;gap:.75rem;padding:.875rem 1.25rem;border-bottom:1px solid var(--border);background:var(--bg-subtle)}.feature-icon.svelte-ggy6pw{flex-shrink:0;color:var(--text-muted);opacity:.7}.feature-name.svelte-ggy6pw{display:flex;align-items:center;gap:.5rem;font-size:.9375rem;font-family:var(--font-display);font-weight:400;flex:1;min-width:0}.feature-right.svelte-ggy6pw{display:flex;align-items:center;gap:.75rem;flex-shrink:0}.feature-file.svelte-ggy6pw{font-family:JetBrains Mono,monospace;font-size:.72rem;color:var(--text-muted)}.suite-tag.svelte-ggy6pw{font-size:.65rem;font-family:JetBrains Mono,monospace;background:var(--accent-soft);color:var(--accent);padding:.1rem .4rem;border-radius:var(--radius-pill);font-weight:500}.scenarios.svelte-ggy6pw{display:flex;flex-direction:column;padding:.5rem;gap:.25rem}.scenario.svelte-ggy6pw{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-elevated);overflow:hidden;animation:fadeUp .3s var(--ease-out) both}.scenario.scenario-fail.svelte-ggy6pw{border-left-width:3px;border-left-color:var(--fail)}.scenario-row.svelte-ggy6pw{display:flex;align-items:stretch}.scenario-header.svelte-ggy6pw{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;flex:1;min-width:0;background:transparent;border:none;cursor:pointer;text-align:left;font-family:var(--font-body);transition:background var(--duration-fast)}.scenario-header.svelte-ggy6pw:hover{background:var(--bg-subtle)}.replay-btn.svelte-ggy6pw{display:inline-flex;align-items:center;gap:.3rem;padding:0 .875rem;font-family:var(--font-body);font-size:.72rem;font-weight:500;color:var(--accent);background:transparent;border:none;border-left:1px solid var(--border);cursor:pointer;flex-shrink:0;transition:background var(--duration-fast);white-space:nowrap}.replay-btn.svelte-ggy6pw:hover{background:var(--accent-soft)}.replay-btn-sm.svelte-ggy6pw{margin-left:auto;padding:.15rem .5rem;border:1px solid color-mix(in srgb,var(--accent) 30%,transparent);border-radius:var(--radius-sm);font-size:.68rem}.scenario-name.svelte-ggy6pw{flex:1;font-size:.875rem;color:var(--text);font-weight:400;text-align:left;display:inline-flex;align-items:center;gap:.4rem;min-width:0}.scenario-count.svelte-ggy6pw{font-size:.65rem;font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--radius-pill);padding:.05rem .4rem;white-space:nowrap}.scenario-tags.svelte-ggy6pw{display:flex;gap:.25rem;flex-shrink:0}.scenario-duration.svelte-ggy6pw{font-size:.75rem;color:var(--text-muted);font-family:JetBrains Mono,monospace;flex-shrink:0}.chevron.svelte-ggy6pw{color:var(--text-muted);flex-shrink:0;transition:transform var(--duration-fast) var(--ease-out)}.chevron.rotated.svelte-ggy6pw{transform:rotate(90deg)}.steps.svelte-ggy6pw{border-top:1px solid var(--border);background:var(--bg-subtle);padding:.5rem 0}.example-header.svelte-ggy6pw{display:flex;align-items:center;gap:.5rem;padding:.625rem 1rem .25rem 1.25rem;color:var(--text-muted);font-size:.72rem;font-weight:500;letter-spacing:.05em;text-transform:uppercase}.example-header.svelte-ggy6pw:not(:first-child){margin-top:.375rem;border-top:1px dashed var(--border)}.example-header.svelte-ggy6pw .scenario-duration:where(.svelte-ggy6pw){margin-left:auto}.step.svelte-ggy6pw{padding:.375rem 1rem .375rem 1.25rem}.step-fail.svelte-ggy6pw{background:color-mix(in srgb,var(--fail-soft) 40%,transparent)}.step-skip.svelte-ggy6pw{opacity:.5}.step-row.svelte-ggy6pw{display:flex;align-items:baseline;gap:.5rem}.step-name.svelte-ggy6pw{flex:1;font-size:.8125rem;color:var(--text);font-family:JetBrains Mono,monospace}.step-duration.svelte-ggy6pw{font-size:.7rem;color:var(--text-muted);font-family:JetBrains Mono,monospace;flex-shrink:0}.step-error.svelte-ggy6pw{margin:.375rem 0 .25rem 1.75rem;padding:.625rem .875rem;background:var(--fail-soft);color:var(--fail);border-radius:var(--radius-sm);font-family:JetBrains Mono,monospace;font-size:.75rem;line-height:1.6;white-space:pre-wrap;word-break:break-word;border-left:2px solid var(--fail)}.step-datatable.svelte-ggy6pw{margin:.375rem 0 .25rem 1.75rem;border-collapse:collapse;font-family:JetBrains Mono,monospace;font-size:.75rem}.step-datatable.svelte-ggy6pw td:where(.svelte-ggy6pw){padding:.35rem .7rem;border:1px solid var(--border);color:var(--text)}.step-datatable-header.svelte-ggy6pw td:where(.svelte-ggy6pw){background:var(--bg-subtle);color:var(--text-muted);font-weight:600}.loading-state.svelte-ggy6pw{display:flex;justify-content:center;padding:4rem 0}.loading-dots.svelte-ggy6pw{display:flex;gap:6px;align-items:center}.loading-dots.svelte-ggy6pw span:where(.svelte-ggy6pw){width:8px;height:8px;border-radius:50%;background:var(--accent);animation:svelte-ggy6pw-dotBeat 1.2s ease-in-out infinite}.loading-dots.svelte-ggy6pw span:where(.svelte-ggy6pw):nth-child(2){animation-delay:.2s}.loading-dots.svelte-ggy6pw span:where(.svelte-ggy6pw):nth-child(3){animation-delay:.4s}@keyframes svelte-ggy6pw-dotBeat{0%,to{opacity:1;transform:scale(1)}50%{opacity:.3;transform:scale(.6)}}.error-state.svelte-ggy6pw{padding:3rem 0;color:var(--fail);text-align:center;font-size:.9375rem}.logs-section.svelte-ggy6pw{margin-bottom:1.25rem;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;animation:fadeUp .35s var(--ease-out) both}.logs-summary.svelte-ggy6pw{display:flex;align-items:center;gap:.5rem;padding:.875rem 1.25rem;font-size:.875rem;font-weight:500;color:var(--text);cursor:pointer;user-select:none;list-style:none}.logs-summary.svelte-ggy6pw::-webkit-details-marker{display:none}.logs-summary.svelte-ggy6pw:hover{background:var(--bg-subtle)}.log-runner-count.svelte-ggy6pw{margin-left:auto;font-size:.7rem;font-weight:500;color:var(--text-muted);background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--radius-pill);padding:.1rem .5rem}.log-tabs.svelte-ggy6pw{display:flex;gap:0;border-bottom:1px solid var(--border);background:var(--bg-subtle);overflow-x:auto}.log-tab.svelte-ggy6pw{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem 1rem;font-size:.78rem;font-weight:500;font-family:var(--font-body);color:var(--text-muted);background:transparent;border:none;border-bottom:2px solid transparent;cursor:pointer;white-space:nowrap;transition:color var(--duration-fast)}.log-tab.svelte-ggy6pw:hover{color:var(--text)}.log-tab-active.svelte-ggy6pw{color:var(--text);border-bottom-color:var(--accent)}.logs-body.svelte-ggy6pw{font-family:JetBrains Mono,Fira Code,Cascadia Code,Courier New,monospace;font-size:.775rem;line-height:1.7;background:var(--terminal-bg);color:var(--terminal-text);padding:1rem 1.25rem;max-height:480px;overflow-y:auto;white-space:pre-wrap;word-break:break-word;margin:0;border-top:1px solid var(--border)}.logs-body.svelte-ggy6pw::-webkit-scrollbar{width:4px}.logs-body.svelte-ggy6pw::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:2px}.replay-overlay.svelte-ggy6pw{position:fixed;inset:0;background:var(--bg-elevated);display:flex;z-index:500}.replay-modal.svelte-ggy6pw{background:var(--bg-elevated);width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden auto;box-shadow:0 24px 64px #00000080}.replay-modal-header.svelte-ggy6pw{display:flex;align-items:center;justify-content:space-between;padding:.875rem 1.25rem;border-bottom:1px solid var(--border);gap:1rem;flex-shrink:0}.replay-modal-title.svelte-ggy6pw{font-size:.875rem;font-weight:500;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.replay-close.svelte-ggy6pw{background:transparent;border:none;color:var(--text-muted);cursor:pointer;padding:.25rem;display:flex;align-items:center;border-radius:var(--radius-sm);flex-shrink:0;transition:color var(--duration-fast)}.replay-close.svelte-ggy6pw:hover{color:var(--text)}.replay-body.svelte-ggy6pw{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column}
@@ -3,7 +3,7 @@
3
3
  * Licensed under the MIT License. See LICENSE file in the project root for details.
4
4
  */
5
5
 
6
- import { a0 as fallback, a1 as bind_props } from "./index.js";
6
+ import { _ as fallback, $ as bind_props } from "./index.js";
7
7
  import { a as attr } from "./attributes.js";
8
8
  import { e as escape_html } from "./escaping.js";
9
9
  function BackLink($$payload, $$props) {
@@ -3,7 +3,7 @@
3
3
  * Licensed under the MIT License. See LICENSE file in the project root for details.
4
4
  */
5
5
 
6
- import { a0 as fallback, a5 as slot, a1 as bind_props, Z as stringify } from "./index.js";
6
+ import { _ as fallback, a5 as slot, $ as bind_props, Z as stringify } from "./index.js";
7
7
  /* empty css */
8
8
  import { a as attr } from "./attributes.js";
9
9
  function Badge($$payload, $$props) {
@@ -3,7 +3,7 @@
3
3
  * Licensed under the MIT License. See LICENSE file in the project root for details.
4
4
  */
5
5
 
6
- import { a as push, a0 as fallback, a2 as copy_payload, a3 as assign_payload, a1 as bind_props, p as pop, a5 as slot } from "./index.js";
6
+ import { a as push, _ as fallback, a2 as copy_payload, a3 as assign_payload, $ as bind_props, p as pop, a5 as slot } from "./index.js";
7
7
  import { M as Modal } from "./Modal.js";
8
8
  import { f as CONFIRM_TITLE, g as CONFIRM_LABEL, W as WORKING_LABEL, b as CANCEL_LABEL } from "./common.js";
9
9
  /* empty css */
@@ -3,7 +3,7 @@
3
3
  * Licensed under the MIT License. See LICENSE file in the project root for details.
4
4
  */
5
5
 
6
- import { a0 as fallback, a5 as slot, a1 as bind_props, Z as stringify } from "./index.js";
6
+ import { _ as fallback, a5 as slot, $ as bind_props, Z as stringify } from "./index.js";
7
7
  import { e as EMPTY_STATE_MESSAGE } from "./common.js";
8
8
  /* empty css */
9
9
  import { a as attr } from "./attributes.js";
@@ -3,7 +3,7 @@
3
3
  * Licensed under the MIT License. See LICENSE file in the project root for details.
4
4
  */
5
5
 
6
- import { a0 as fallback, a5 as slot, a1 as bind_props } from "./index.js";
6
+ import { _ as fallback, a5 as slot, $ as bind_props } from "./index.js";
7
7
  /* empty css */
8
8
  import { a as attr } from "./attributes.js";
9
9
  import { e as escape_html } from "./escaping.js";
@@ -3,7 +3,7 @@
3
3
  * Licensed under the MIT License. See LICENSE file in the project root for details.
4
4
  */
5
5
 
6
- import { a0 as fallback, Z as stringify, a5 as slot, a1 as bind_props, a as push, p as pop } from "./index.js";
6
+ import { _ as fallback, Z as stringify, a5 as slot, $ as bind_props, a as push, p as pop } from "./index.js";
7
7
  import { a as attr } from "./attributes.js";
8
8
  import { e as escape_html } from "./escaping.js";
9
9
  function Button($$payload, $$props) {
@@ -19,6 +19,7 @@ const TRIGGER_TYPES = Object.freeze({
19
19
  });
20
20
  const REPORTS_PER_PAGE = 15;
21
21
  const SUITE_CASES_PER_PAGE = 20;
22
+ const TOAST_TIMEOUT_MS = 4e3;
22
23
  const REDIRECT_DELAY_MS = 3e3;
23
24
  const MAX_TEST_RETRIES = 5;
24
25
  const BUILTIN_RUNNER_ID = "built-in";
@@ -26,9 +27,10 @@ export {
26
27
  API_BASE as A,
27
28
  BROWSERS as B,
28
29
  MAX_TEST_RETRIES as M,
29
- REPORTS_PER_PAGE as R,
30
+ REDIRECT_DELAY_MS as R,
30
31
  SUITE_CASES_PER_PAGE as S,
31
- TRIGGER_TYPES as T,
32
- REDIRECT_DELAY_MS as a,
33
- BUILTIN_RUNNER_ID as b
32
+ TOAST_TIMEOUT_MS as T,
33
+ REPORTS_PER_PAGE as a,
34
+ BUILTIN_RUNNER_ID as b,
35
+ TRIGGER_TYPES as c
34
36
  };
@@ -3,7 +3,7 @@
3
3
  * Licensed under the MIT License. See LICENSE file in the project root for details.
4
4
  */
5
5
 
6
- import { T as TRIGGER_TYPES } from "./constants.js";
6
+ import { c as TRIGGER_TYPES } from "./constants.js";
7
7
  const NON_SCHEDULED = /* @__PURE__ */ new Set([
8
8
  TRIGGER_TYPES.MANUAL,
9
9
  TRIGGER_TYPES.CLI,
@@ -32,8 +32,8 @@ function stagger(i, stepMs = 45) {
32
32
  return `animation-delay: ${i * stepMs}ms`;
33
33
  }
34
34
  export {
35
- triggerLabel as a,
35
+ triggerVariant as a,
36
36
  isScheduled as i,
37
37
  stagger as s,
38
- triggerVariant as t
38
+ triggerLabel as t
39
39
  };
@@ -1079,7 +1079,7 @@ function ensure_array_like(array_like_or_iterator) {
1079
1079
  return [];
1080
1080
  }
1081
1081
  export {
1082
- unsubscribe_stores as $,
1082
+ bind_props as $,
1083
1083
  HYDRATION_START as A,
1084
1084
  BLOCK_EFFECT as B,
1085
1085
  CLEAN as C,
@@ -1106,10 +1106,10 @@ export {
1106
1106
  head as X,
1107
1107
  ensure_array_like as Y,
1108
1108
  stringify as Z,
1109
- store_get as _,
1109
+ fallback as _,
1110
1110
  push as a,
1111
- fallback as a0,
1112
- bind_props as a1,
1111
+ store_get as a0,
1112
+ unsubscribe_stores as a1,
1113
1113
  copy_payload as a2,
1114
1114
  assign_payload as a3,
1115
1115
  current_component as a4,
@@ -641,7 +641,7 @@ const options = {
641
641
  <div class="error">
642
642
  <span class="status">` + status + '</span>\n <div class="message">\n <h1>' + message + "</h1>\n </div>\n </div>\n </body>\n</html>\n"
643
643
  },
644
- version_hash: "1cz1h1z"
644
+ version_hash: "1td29w7"
645
645
  };
646
646
  async function get_hooks() {
647
647
  let handle;
@@ -3,7 +3,7 @@
3
3
  * Licensed under the MIT License. See LICENSE file in the project root for details.
4
4
  */
5
5
 
6
- import { R as REPORTS_PER_PAGE, A as API_BASE } from "./constants.js";
6
+ import { a as REPORTS_PER_PAGE, A as API_BASE } from "./constants.js";
7
7
  function withDate(r) {
8
8
  return { ...r, date: new Date(r.createdAt).toLocaleString() };
9
9
  }
@@ -26,67 +26,65 @@ const deleteSelectedLabel = (count) => `Delete (${count})`;
26
26
  const DETAIL_PAGE_TITLE = "Report — Plum";
27
27
  const runnersBadge = (count) => `${count} runners`;
28
28
  const LIVE_PAGE_TITLE = "Live Run — Plum";
29
- const NO_TESTS_RUNNING_HEADING = "No tests currently running";
30
- const NO_TESTS_RUNNING_BODY = "Start a test from the panel below, then come back here to watch it live.";
31
29
  const VIEW_PAST_REPORTS_LINK = "View past reports →";
32
- const SELECT_RUN_HINT = "Select a run above, or wait — the report opens automatically when it finishes.";
33
30
  const LIVE_BADGE_LABEL = "Live";
34
31
  const CANCEL_RUN_LABEL = "Cancel run";
35
32
  const ALL_TESTS_PASSED = "All tests passed";
36
33
  const SOME_TESTS_FAILED = "Some tests failed";
37
34
  const VIEW_REPORT_NOW_LABEL = "View Report Now";
38
- const LIVE_STEP_LABEL = "Step";
39
- const LIVE_BROWSER_VIEW_ALT = "Live browser view";
40
35
  const AWAITING_STREAM_LABEL = "Awaiting stream...";
41
36
  const NO_STREAM_LABEL = "No stream...";
42
37
  const RUNNER_LABEL = "Runner";
43
38
  const RUNNING_LABEL = "Running…";
44
39
  const FINISHED_LABEL = "Finished";
45
40
  const WAITING_FOR_OUTPUT = "(waiting for output…)";
46
- const runsInProgressHeading = (count) => count === 1 ? "A run in progress" : `${count} runs in progress`;
41
+ const workerLabel = (id) => `Worker ${id}`;
47
42
  const workersCountLabel = (count) => `${count} ${pluralize(count, "worker")}`;
48
43
  const redirectingIn = (seconds) => `Redirecting in ${seconds}s…`;
44
+ const QUEUED_HEADING = "Waiting for a runner";
45
+ const QUEUED_BODY = "This run starts as soon as every runner it needs is free.";
46
+ const RUN_SKIPPED_HEADING = "Run skipped";
47
+ const queuePositionLine = (n) => "Next up";
49
48
  export {
50
- AWAITING_STREAM_LABEL as A,
51
- redirectingIn as B,
49
+ ALL_TESTS_PASSED as A,
50
+ DETAIL_PAGE_TITLE as B,
52
51
  CANCEL_RUN_LABEL as C,
53
52
  DELETE_REPORT_TITLE as D,
54
- VIEW_REPORT_NOW_LABEL as E,
55
- FINISHED_LABEL as F,
56
- LIVE_STEP_LABEL as G,
53
+ FAILED_LABEL as F,
57
54
  HEADING as H,
58
- LIST_PAGE_TITLE as L,
59
- NO_REPORTS_MESSAGE as N,
60
- PASSING_LABEL as P,
61
- RECENT_LABEL as R,
62
- SELECT_ALL_TITLE as S,
55
+ LIVE_PAGE_TITLE as L,
56
+ NO_STREAM_LABEL as N,
57
+ PASSED_LABEL as P,
58
+ QUEUED_HEADING as Q,
59
+ RUN_SKIPPED_HEADING as R,
60
+ SOME_TESTS_FAILED as S,
63
61
  TREND_HINT as T,
64
62
  VIEW_PAST_REPORTS_LINK as V,
65
63
  WAITING_FOR_OUTPUT as W,
66
- deleteSelectedLabel as a,
67
- SELECT_ROW_TITLE as b,
68
- deleteReportsBody as c,
69
- deleteReportsTitle as d,
70
- DETAIL_PAGE_TITLE as e,
71
- failedCountLabel as f,
72
- REPORTS_BACK_LABEL as g,
73
- runsInProgressHeading as h,
74
- runnersBadge as i,
75
- NO_STREAM_LABEL as j,
76
- RUNNER_LABEL as k,
77
- RUNNING_LABEL as l,
78
- LIVE_BROWSER_VIEW_ALT as m,
79
- LIVE_PAGE_TITLE as n,
80
- NO_TESTS_RUNNING_HEADING as o,
81
- passedCountLabel as p,
82
- NO_TESTS_RUNNING_BODY as q,
83
- runsRecorded as r,
84
- SELECT_RUN_HINT as s,
64
+ RUNNER_LABEL as a,
65
+ REPORTS_BACK_LABEL as b,
66
+ QUEUED_BODY as c,
67
+ LIVE_BADGE_LABEL as d,
68
+ redirectingIn as e,
69
+ VIEW_REPORT_NOW_LABEL as f,
70
+ workerLabel as g,
71
+ AWAITING_STREAM_LABEL as h,
72
+ RUNNING_LABEL as i,
73
+ FINISHED_LABEL as j,
74
+ deleteReportsTitle as k,
75
+ SELECT_ALL_TITLE as l,
76
+ deleteSelectedLabel as m,
77
+ SELECT_ROW_TITLE as n,
78
+ LIST_PAGE_TITLE as o,
79
+ deleteReportsBody as p,
80
+ queuePositionLine as q,
81
+ runnersBadge as r,
82
+ runsRecorded as s,
85
83
  trendDotTitle as t,
86
- LIVE_BADGE_LABEL as u,
87
- PASSED_LABEL as v,
84
+ PASSING_LABEL as u,
85
+ passedCountLabel as v,
88
86
  workersCountLabel as w,
89
- FAILED_LABEL as x,
90
- ALL_TESTS_PASSED as y,
91
- SOME_TESTS_FAILED as z
87
+ failedCountLabel as x,
88
+ RECENT_LABEL as y,
89
+ NO_REPORTS_MESSAGE as z
92
90
  };