@e2edev/e2e 0.6.1 → 0.8.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 (283) hide show
  1. package/README.md +15 -11
  2. package/dist/agent/act-validation.d.ts +9 -3
  3. package/dist/agent/act-validation.d.ts.map +1 -1
  4. package/dist/agent/act-validation.js +23 -4
  5. package/dist/agent/act-validation.js.map +1 -1
  6. package/dist/agent/act.d.ts +2 -2
  7. package/dist/agent/act.d.ts.map +1 -1
  8. package/dist/agent/act.js +231 -41
  9. package/dist/agent/act.js.map +1 -1
  10. package/dist/agent/actions.d.ts +14 -14
  11. package/dist/agent/actions.d.ts.map +1 -1
  12. package/dist/agent/actions.js +12 -2
  13. package/dist/agent/actions.js.map +1 -1
  14. package/dist/agent/default-agent.d.ts +1 -1
  15. package/dist/agent/default-agent.d.ts.map +1 -1
  16. package/dist/agent/default-agent.js +19 -84
  17. package/dist/agent/default-agent.js.map +1 -1
  18. package/dist/agent/executor.d.ts +14 -0
  19. package/dist/agent/executor.d.ts.map +1 -1
  20. package/dist/agent/executor.js.map +1 -1
  21. package/dist/agent/index.d.ts.map +1 -1
  22. package/dist/agent/index.js +14 -6
  23. package/dist/agent/index.js.map +1 -1
  24. package/dist/agent/invocation.d.ts +1 -8
  25. package/dist/agent/invocation.d.ts.map +1 -1
  26. package/dist/agent/invocation.js +7 -51
  27. package/dist/agent/invocation.js.map +1 -1
  28. package/dist/agent/ledger.d.ts.map +1 -1
  29. package/dist/agent/ledger.js +10 -1
  30. package/dist/agent/ledger.js.map +1 -1
  31. package/dist/agent/loop-guards.d.ts +21 -0
  32. package/dist/agent/loop-guards.d.ts.map +1 -1
  33. package/dist/agent/loop-guards.js +48 -0
  34. package/dist/agent/loop-guards.js.map +1 -1
  35. package/dist/agent/model/sdk.d.ts +18 -0
  36. package/dist/agent/model/sdk.d.ts.map +1 -1
  37. package/dist/agent/model/sdk.js +10 -4
  38. package/dist/agent/model/sdk.js.map +1 -1
  39. package/dist/agent/observation-budget.d.ts +27 -0
  40. package/dist/agent/observation-budget.d.ts.map +1 -0
  41. package/dist/agent/observation-budget.js +43 -0
  42. package/dist/agent/observation-budget.js.map +1 -0
  43. package/dist/agent/observation.d.ts +40 -7
  44. package/dist/agent/observation.d.ts.map +1 -1
  45. package/dist/agent/observation.js +56 -11
  46. package/dist/agent/observation.js.map +1 -1
  47. package/dist/agent/phases.d.ts +1 -1
  48. package/dist/agent/phases.d.ts.map +1 -1
  49. package/dist/agent/phases.js +11 -13
  50. package/dist/agent/phases.js.map +1 -1
  51. package/dist/agent/primitives.d.ts +14 -2
  52. package/dist/agent/primitives.d.ts.map +1 -1
  53. package/dist/agent/primitives.js +98 -54
  54. package/dist/agent/primitives.js.map +1 -1
  55. package/dist/agent/screen-update.d.ts +47 -0
  56. package/dist/agent/screen-update.d.ts.map +1 -0
  57. package/dist/agent/screen-update.js +222 -0
  58. package/dist/agent/screen-update.js.map +1 -0
  59. package/dist/agent/step-cache.d.ts +46 -18
  60. package/dist/agent/step-cache.d.ts.map +1 -1
  61. package/dist/agent/step-cache.js +100 -60
  62. package/dist/agent/step-cache.js.map +1 -1
  63. package/dist/agent/tool-loop.d.ts.map +1 -1
  64. package/dist/agent/tool-loop.js +28 -4
  65. package/dist/agent/tool-loop.js.map +1 -1
  66. package/dist/cache/anchors.d.ts.map +1 -1
  67. package/dist/cache/anchors.js +21 -1
  68. package/dist/cache/anchors.js.map +1 -1
  69. package/dist/cache/decide.d.ts +13 -3
  70. package/dist/cache/decide.d.ts.map +1 -1
  71. package/dist/cache/decide.js +35 -0
  72. package/dist/cache/decide.js.map +1 -1
  73. package/dist/cache/relocate.d.ts +11 -1
  74. package/dist/cache/relocate.d.ts.map +1 -1
  75. package/dist/cache/relocate.js +48 -17
  76. package/dist/cache/relocate.js.map +1 -1
  77. package/dist/cache/store.d.ts.map +1 -1
  78. package/dist/cache/store.js +3 -14
  79. package/dist/cache/store.js.map +1 -1
  80. package/dist/cache/trace.d.ts +12 -0
  81. package/dist/cache/trace.d.ts.map +1 -1
  82. package/dist/cache/trace.js +21 -0
  83. package/dist/cache/trace.js.map +1 -1
  84. package/dist/cli/docs-url.d.ts +1 -1
  85. package/dist/cli/docs-url.d.ts.map +1 -1
  86. package/dist/cli/docs-url.js +1 -1
  87. package/dist/cli/docs-url.js.map +1 -1
  88. package/dist/cli/index.d.ts.map +1 -1
  89. package/dist/cli/index.js +60 -9
  90. package/dist/cli/index.js.map +1 -1
  91. package/dist/cli/init/engines.d.ts +2 -3
  92. package/dist/cli/init/engines.d.ts.map +1 -1
  93. package/dist/cli/init/engines.js +3 -4
  94. package/dist/cli/init/engines.js.map +1 -1
  95. package/dist/cli/init/scaffold.d.ts.map +1 -1
  96. package/dist/cli/init/scaffold.js +2 -0
  97. package/dist/cli/init/scaffold.js.map +1 -1
  98. package/dist/cli/signals.d.ts +3 -3
  99. package/dist/cli/signals.js +3 -3
  100. package/dist/cli/telemetry.d.ts +12 -0
  101. package/dist/cli/telemetry.d.ts.map +1 -0
  102. package/dist/cli/telemetry.js +40 -0
  103. package/dist/cli/telemetry.js.map +1 -0
  104. package/dist/collect/select.d.ts +2 -0
  105. package/dist/collect/select.d.ts.map +1 -1
  106. package/dist/collect/select.js +15 -11
  107. package/dist/collect/select.js.map +1 -1
  108. package/dist/config/agent.d.ts +6 -2
  109. package/dist/config/agent.d.ts.map +1 -1
  110. package/dist/config/agent.js +30 -3
  111. package/dist/config/agent.js.map +1 -1
  112. package/dist/config/diagnose.d.ts.map +1 -1
  113. package/dist/config/diagnose.js +1 -0
  114. package/dist/config/diagnose.js.map +1 -1
  115. package/dist/config/load.d.ts +2 -2
  116. package/dist/config/load.js +2 -2
  117. package/dist/config/resolve.d.ts +16 -4
  118. package/dist/config/resolve.d.ts.map +1 -1
  119. package/dist/config/resolve.js +107 -44
  120. package/dist/config/resolve.js.map +1 -1
  121. package/dist/engine/contract.d.ts +6 -1
  122. package/dist/engine/contract.d.ts.map +1 -1
  123. package/dist/engine/contract.js.map +1 -1
  124. package/dist/engine/index.d.ts +61 -6
  125. package/dist/engine/index.d.ts.map +1 -1
  126. package/dist/engine/index.js +25 -5
  127. package/dist/engine/index.js.map +1 -1
  128. package/dist/engine/session.d.ts.map +1 -1
  129. package/dist/engine/session.js +6 -0
  130. package/dist/engine/session.js.map +1 -1
  131. package/dist/engine/surface.d.ts +6 -2
  132. package/dist/engine/surface.d.ts.map +1 -1
  133. package/dist/index.d.ts +1 -1
  134. package/dist/index.d.ts.map +1 -1
  135. package/dist/index.js +1 -1
  136. package/dist/index.js.map +1 -1
  137. package/dist/internal/ai-trace.d.ts +1 -5
  138. package/dist/internal/ai-trace.d.ts.map +1 -1
  139. package/dist/internal/ai-trace.js +82 -11
  140. package/dist/internal/ai-trace.js.map +1 -1
  141. package/dist/internal/atomic-write.d.ts +17 -0
  142. package/dist/internal/atomic-write.d.ts.map +1 -0
  143. package/dist/internal/atomic-write.js +44 -0
  144. package/dist/internal/atomic-write.js.map +1 -0
  145. package/dist/internal/env.d.ts +6 -0
  146. package/dist/internal/env.d.ts.map +1 -0
  147. package/dist/internal/env.js +12 -0
  148. package/dist/internal/env.js.map +1 -0
  149. package/dist/internal/options.d.ts +9 -0
  150. package/dist/internal/options.d.ts.map +1 -0
  151. package/dist/internal/options.js +27 -0
  152. package/dist/internal/options.js.map +1 -0
  153. package/dist/locator/expression.js +1 -1
  154. package/dist/locator/expression.js.map +1 -1
  155. package/dist/locator/screen.d.ts.map +1 -1
  156. package/dist/locator/screen.js +4 -2
  157. package/dist/locator/screen.js.map +1 -1
  158. package/dist/report/build.d.ts +2 -1
  159. package/dist/report/build.d.ts.map +1 -1
  160. package/dist/report/build.js +11 -4
  161. package/dist/report/build.js.map +1 -1
  162. package/dist/report/list-model.d.ts +14 -5
  163. package/dist/report/list-model.d.ts.map +1 -1
  164. package/dist/report/list.d.ts +59 -5
  165. package/dist/report/list.d.ts.map +1 -1
  166. package/dist/report/list.js +171 -31
  167. package/dist/report/list.js.map +1 -1
  168. package/dist/report/running-tree.d.ts +7 -6
  169. package/dist/report/running-tree.d.ts.map +1 -1
  170. package/dist/report/running-tree.js +13 -8
  171. package/dist/report/running-tree.js.map +1 -1
  172. package/dist/report/write.d.ts +1 -1
  173. package/dist/report/write.d.ts.map +1 -1
  174. package/dist/report/write.js +3 -6
  175. package/dist/report/write.js.map +1 -1
  176. package/dist/run/artifacts.d.ts.map +1 -1
  177. package/dist/run/artifacts.js +20 -2
  178. package/dist/run/artifacts.js.map +1 -1
  179. package/dist/run/events.d.ts +73 -15
  180. package/dist/run/events.d.ts.map +1 -1
  181. package/dist/run/events.js +7 -7
  182. package/dist/run/events.js.map +1 -1
  183. package/dist/run/execute.d.ts +31 -5
  184. package/dist/run/execute.d.ts.map +1 -1
  185. package/dist/run/execute.js +73 -25
  186. package/dist/run/execute.js.map +1 -1
  187. package/dist/run/fixtures.d.ts +9 -1
  188. package/dist/run/fixtures.d.ts.map +1 -1
  189. package/dist/run/fixtures.js +5 -4
  190. package/dist/run/fixtures.js.map +1 -1
  191. package/dist/run/in-process.d.ts +1 -1
  192. package/dist/run/in-process.d.ts.map +1 -1
  193. package/dist/run/in-process.js +6 -3
  194. package/dist/run/in-process.js.map +1 -1
  195. package/dist/run/managed-process.d.ts +8 -2
  196. package/dist/run/managed-process.d.ts.map +1 -1
  197. package/dist/run/managed-process.js +12 -0
  198. package/dist/run/managed-process.js.map +1 -1
  199. package/dist/run/records.d.ts +15 -1
  200. package/dist/run/records.d.ts.map +1 -1
  201. package/dist/run/runner.d.ts +16 -7
  202. package/dist/run/runner.d.ts.map +1 -1
  203. package/dist/run/runner.js +182 -98
  204. package/dist/run/runner.js.map +1 -1
  205. package/dist/run/scheduler.d.ts +6 -6
  206. package/dist/run/scheduler.d.ts.map +1 -1
  207. package/dist/run/scheduler.js +54 -23
  208. package/dist/run/scheduler.js.map +1 -1
  209. package/dist/run/serial.d.ts +2 -4
  210. package/dist/run/serial.d.ts.map +1 -1
  211. package/dist/run/serial.js +4 -2
  212. package/dist/run/serial.js.map +1 -1
  213. package/dist/run/sessions.d.ts.map +1 -1
  214. package/dist/run/sessions.js +3 -4
  215. package/dist/run/sessions.js.map +1 -1
  216. package/dist/run/steps.d.ts +28 -1
  217. package/dist/run/steps.d.ts.map +1 -1
  218. package/dist/run/steps.js +14 -0
  219. package/dist/run/steps.js.map +1 -1
  220. package/dist/run/unit-runner.d.ts +7 -2
  221. package/dist/run/unit-runner.d.ts.map +1 -1
  222. package/dist/run/units.d.ts +8 -0
  223. package/dist/run/units.d.ts.map +1 -1
  224. package/dist/run/units.js +11 -0
  225. package/dist/run/units.js.map +1 -1
  226. package/dist/run/worker/entry.js +1 -0
  227. package/dist/run/worker/entry.js.map +1 -1
  228. package/dist/run/worker/handle.d.ts +1 -1
  229. package/dist/run/worker/handle.d.ts.map +1 -1
  230. package/dist/run/worker/handle.js +1 -1
  231. package/dist/run/worker/handle.js.map +1 -1
  232. package/dist/run/worker/protocol.d.ts +12 -1
  233. package/dist/run/worker/protocol.d.ts.map +1 -1
  234. package/dist/run/worker/protocol.js.map +1 -1
  235. package/dist/run/worker/session.d.ts +2 -0
  236. package/dist/run/worker/session.d.ts.map +1 -1
  237. package/dist/run/worker/session.js +5 -0
  238. package/dist/run/worker/session.js.map +1 -1
  239. package/dist/run/worker-models.d.ts +27 -0
  240. package/dist/run/worker-models.d.ts.map +1 -0
  241. package/dist/run/worker-models.js +49 -0
  242. package/dist/run/worker-models.js.map +1 -0
  243. package/dist/telemetry/environment.d.ts +33 -0
  244. package/dist/telemetry/environment.d.ts.map +1 -0
  245. package/dist/telemetry/environment.js +96 -0
  246. package/dist/telemetry/environment.js.map +1 -0
  247. package/dist/telemetry/events.d.ts +25 -0
  248. package/dist/telemetry/events.d.ts.map +1 -0
  249. package/dist/telemetry/events.js +107 -0
  250. package/dist/telemetry/events.js.map +1 -0
  251. package/dist/telemetry/posthog.d.ts +31 -0
  252. package/dist/telemetry/posthog.d.ts.map +1 -0
  253. package/dist/telemetry/posthog.js +29 -0
  254. package/dist/telemetry/posthog.js.map +1 -0
  255. package/dist/telemetry/project.d.ts +18 -0
  256. package/dist/telemetry/project.d.ts.map +1 -0
  257. package/dist/telemetry/project.js +55 -0
  258. package/dist/telemetry/project.js.map +1 -0
  259. package/dist/telemetry/store.d.ts +53 -0
  260. package/dist/telemetry/store.d.ts.map +1 -0
  261. package/dist/telemetry/store.js +153 -0
  262. package/dist/telemetry/store.js.map +1 -0
  263. package/dist/telemetry/telemetry.d.ts +89 -0
  264. package/dist/telemetry/telemetry.d.ts.map +1 -0
  265. package/dist/telemetry/telemetry.js +187 -0
  266. package/dist/telemetry/telemetry.js.map +1 -0
  267. package/dist/types.d.ts +103 -38
  268. package/dist/types.d.ts.map +1 -1
  269. package/package.json +2 -6
  270. package/skills/e2e/SKILL.md +0 -2
  271. package/skills/e2e/references/agent.md +33 -15
  272. package/skills/e2e/references/debugging.md +4 -2
  273. package/skills/e2e/references/running.md +7 -5
  274. package/skills/e2e/references/setup.md +16 -10
  275. package/skills/e2e/references/writing-tests.md +6 -5
  276. package/dist/internal/trace.d.ts +0 -18
  277. package/dist/internal/trace.d.ts.map +0 -1
  278. package/dist/internal/trace.js +0 -46
  279. package/dist/internal/trace.js.map +0 -1
  280. package/dist/run/public.d.ts +0 -19
  281. package/dist/run/public.d.ts.map +0 -1
  282. package/dist/run/public.js +0 -11
  283. package/dist/run/public.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/report/build.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/report/build.ts"],"names":[],"mappings":"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"}
@@ -19,13 +19,16 @@ export interface CurrentStep {
19
19
  /** Only an agent step has model turns to wait on. */
20
20
  readonly kind: StepKind;
21
21
  /**
22
- * Model turns and tool calls in causal order: each turn before the tool
23
- * calls it made. The executor reports a turn only after its tools ran, so
24
- * the turn is inserted ahead of them.
22
+ * Model turns and tool calls in stream order. A tool-using executor
23
+ * reports a turn once its tools ran, so the turn follows them here; its
24
+ * `startedAt` still carries the moment the request went out.
25
25
  */
26
26
  readonly events: ShownEvent[];
27
- /** Index in `events` where the tool calls of the turn still in flight begin. */
28
- turnStart: number;
27
+ /**
28
+ * True while the trace cache has the step, replaying its recorded actions:
29
+ * no model is in the loop, so the wait between events is on the app.
30
+ */
31
+ replaying: boolean;
29
32
  }
30
33
  /** One finished agent step of a pair, as the `end` progress reported it. */
31
34
  export type FinishedStep = Pick<Extract<StepProgress, {
@@ -76,4 +79,10 @@ export interface FileGroup {
76
79
  readonly lines: TestLine[];
77
80
  printed: boolean;
78
81
  }
82
+ /** The setup step in flight, ticking in the live window: `starting service "postgres"`, `preparing playwright engine for target "web"`. */
83
+ export interface SetupInFlight {
84
+ readonly verb: string;
85
+ readonly subject: string;
86
+ readonly startedMs: number;
87
+ }
79
88
  //# sourceMappingURL=list-model.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"list-model.d.ts","sourceRoot":"","sources":["../../src/report/list-model.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C,4FAA4F;AAC5F,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAA;CAAE,CAAC;AAE3E,qDAAqD;AACrD,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,GAAG,KAAK,IAAI,UAAU,CAElE;AAED,sDAAsD;AACtD,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,qDAAqD;IACrD,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC;IAC9B,gFAAgF;IAChF,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,4EAA4E;AAC5E,MAAM,MAAM,YAAY,GAAG,IAAI,CAC7B,OAAO,CAAC,YAAY,EAAE;IAAE,KAAK,EAAE,KAAK,CAAA;CAAE,CAAC,EACvC,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,YAAY,GAAG,YAAY,CACzD,CAAC;AAEF,iEAAiE;AACjE,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,uDAAuD;IACvD,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B;;;OAGG;IACH,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,WAAW,GAAG,SAAS,CAAC;IACjC;;;;OAIG;IACH,QAAQ,CAAC,KAAK,EAAE,YAAY,EAAE,CAAC;CAChC;AAED,6DAA6D;AAC7D,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,oFAAoF;IACpF,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5C,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,CAAC;CACzC;AAED;;;;GAIG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,6EAA6E;IAC7E,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;CAClB"}
1
+ {"version":3,"file":"list-model.d.ts","sourceRoot":"","sources":["../../src/report/list-model.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C,4FAA4F;AAC5F,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAA;CAAE,CAAC;AAE3E,qDAAqD;AACrD,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,GAAG,KAAK,IAAI,UAAU,CAElE;AAED,sDAAsD;AACtD,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,qDAAqD;IACrD,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC;IAC9B;;;OAGG;IACH,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,4EAA4E;AAC5E,MAAM,MAAM,YAAY,GAAG,IAAI,CAC7B,OAAO,CAAC,YAAY,EAAE;IAAE,KAAK,EAAE,KAAK,CAAA;CAAE,CAAC,EACvC,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,YAAY,GAAG,YAAY,CACzD,CAAC;AAEF,iEAAiE;AACjE,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,uDAAuD;IACvD,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B;;;OAGG;IACH,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,WAAW,GAAG,SAAS,CAAC;IACjC;;;;OAIG;IACH,QAAQ,CAAC,KAAK,EAAE,YAAY,EAAE,CAAC;CAChC;AAED,6DAA6D;AAC7D,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,oFAAoF;IACpF,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5C,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,CAAC;CACzC;AAED;;;;GAIG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,6EAA6E;IAC7E,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,2IAA2I;AAC3I,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B"}
@@ -19,8 +19,8 @@ export interface ListReporterOptions {
19
19
  }
20
20
  /**
21
21
  * Renders the run's event stream as the CLI's human-readable output. The
22
- * reporter is one sink on the run's single event spine, beside a host's
23
- * `onEvent`, so the CLI shows exactly what a host receives.
22
+ * reporter is one sink on the run's single event spine, so it can only show
23
+ * what every other sink receives.
24
24
  */
25
25
  export declare class ListReporter {
26
26
  private readonly output;
@@ -29,9 +29,16 @@ export declare class ListReporter {
29
29
  private readonly tree;
30
30
  private readonly separator;
31
31
  private projectRoot;
32
+ private artifactsRoot;
32
33
  /** Selected targets in declaration order; decides each badge's color. */
33
34
  private targets;
34
- /** When the run began: the summary's `Start at` and the origin of `Duration`. */
35
+ /** When the run was launched (`run-started`): what a run that never reached `plan` reports. */
36
+ private launchedAt;
37
+ /**
38
+ * When the run began executing (`plan`): the summary's `Start at` and the
39
+ * origin of `Duration`. Undefined until then, so the clock never ticks
40
+ * while a first-run download narrates above the live window.
41
+ */
35
42
  private startedAt;
36
43
  /** File groups keyed `${target}\u0000${file}`, in first-seen order. */
37
44
  private readonly groups;
@@ -48,8 +55,29 @@ export declare class ListReporter {
48
55
  private readonly pendingSerial;
49
56
  /** Run-level errors, printed once at the end; the stream carries them as they happen. */
50
57
  private readonly errors;
58
+ /**
59
+ * Whether the run was cut short. An interrupt during service or app startup
60
+ * lands before discovery, so the counters stay at zero; the summary must not
61
+ * read that as "no test files".
62
+ */
63
+ private interrupted;
64
+ /**
65
+ * The setup step in flight, ticking in the live window. `narrated` once a
66
+ * notice printed under it: a step that said something (a browser download)
67
+ * prints its total when done, a silent one (an instant `prepare`) does not.
68
+ */
69
+ private inFlight;
70
+ /** Time spent starting services and app commands, split out of the summary's `Duration`. */
71
+ private startupMs;
51
72
  /** Run-wide model usage, summed from every reported result and serial group. */
52
73
  private readonly runUsage;
74
+ /**
75
+ * The configured models as the summary names them, `provider/id` plus
76
+ * `vision provider/id` when pixels go to a separate model: `runUsage` sums
77
+ * both, so the row names both. Repeated in the summary because the header
78
+ * has scrolled away by the time a long run ends.
79
+ */
80
+ private models;
53
81
  constructor(output?: ListReporterOutput, options?: ListReporterOptions);
54
82
  /**
55
83
  * The reporter as an event sink: one dispatch per fact. Bound, so it can be
@@ -64,8 +92,27 @@ export declare class ListReporter {
64
92
  private displayPath;
65
93
  private group;
66
94
  private runStarted;
95
+ /**
96
+ * The plan is settled once collection and every target's `prepare` are
97
+ * done, so its arrival is when the run starts executing and the clock
98
+ * starts: a browser downloaded moments earlier is not on it.
99
+ */
67
100
  private plan;
68
- /** Acknowledged immediately, so a bounded teardown is not mistaken for a hang. */
101
+ /**
102
+ * The setup stretch before any test: collection, each target's `prepare`,
103
+ * then the services and app commands. Without this the window showed only
104
+ * zero counters while a database booted or a browser downloaded. The step
105
+ * in flight ticks in the live window; a finished process prints once with
106
+ * its wait, a finished collection or provisioning only when it narrated;
107
+ * the process waits sum into the summary's startup split.
108
+ */
109
+ private setupStep;
110
+ /**
111
+ * Acknowledged immediately, so a bounded teardown is not mistaken for a
112
+ * hang. An interrupt that lands during setup names the step it cut short
113
+ * (`interrupted while starting service "postgres"`), since no test was
114
+ * running to stop.
115
+ */
69
116
  private runInterrupted;
70
117
  /**
71
118
  * A worker began one test-target pair: show it in the live window. A serial
@@ -111,15 +158,22 @@ export declare class ListReporter {
111
158
  private testLine;
112
159
  /**
113
160
  * vitest's padded summary, shared by the live window and the final report:
114
- * files, tests, model usage, run errors, start time, and elapsed time.
161
+ * files, tests, model usage, run errors, start time, and elapsed time. The
162
+ * clock rows wait for `plan`; the final summary of a run that never got
163
+ * there (a config or collection failure, a failed download) counts from
164
+ * the launch instead, so the time it took to fail is still on record.
115
165
  */
116
166
  private summaryRows;
167
+ /** A zero counter's label: the plain text, or the interrupt when that is why nothing is counted. */
168
+ private emptyState;
117
169
  /** The live window: the running tree, then the summary. */
118
170
  private renderWindow;
119
171
  /** vitest's `Failed Tests` section: a banner, then each failure with its code frame. */
120
172
  private printFailures;
121
173
  /** A full-width red rule with a centered `FAIL`-style label. */
122
174
  private errorBanner;
175
+ /** Where to watch a failed attempt: one line per recording it kept. */
176
+ private printVideos;
123
177
  /** Names the user's failing line and renders a code frame around it. */
124
178
  private printFailureLocation;
125
179
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/report/list.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,OAAO,KAAK,EAAE,YAAY,EAA8B,MAAM,kBAAkB,CAAC;AAoDjF,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,uEAAuE;IACvE,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,mBAAmB;IAClC,kEAAkE;IAClE,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,kFAAkF;IAClF,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AA0DD;;;;GAIG;AACH,qBAAa,YAAY;IA6BrB,OAAO,CAAC,QAAQ,CAAC,MAAM;IA5BzB,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IACpC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAc;IACnC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,WAAW,CAAqB;IACxC,yEAAyE;IACzE,OAAO,CAAC,OAAO,CAAyB;IACxC,iFAAiF;IACjF,OAAO,CAAC,SAAS,CAAc;IAC/B,uEAAuE;IACvE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgC;IACvD,gGAAgG;IAChG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAkC;IACxD,oFAAoF;IACpF,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAU;IAC/B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiB;IAC1C;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAsE;IACpG,yFAAyF;IACzF,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyB;IAChD,gFAAgF;IAChF,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgB;IAEzC,YACmB,MAAM,GAAE,kBAAmC,EAC5D,OAAO,GAAE,mBAAwB,EAQlC;IAED;;;OAGG;IACH,QAAQ,CAAC,MAAM,UAAW,YAAY,KAAG,IAAI,CAiC3C;IAEF,oEAAoE;IACpE,OAAO,CAAC,KAAK;IAMb,mFAAmF;IACnF,OAAO,CAAC,KAAK;IAQb,yEAAyE;IACzE,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,KAAK;IAUb,OAAO,CAAC,UAAU;IAoBlB,OAAO,CAAC,IAAI;IAOZ,kFAAkF;IAClF,OAAO,CAAC,cAAc;IAUtB;;;;;;;OAOG;IACH,OAAO,CAAC,WAAW;IAmBnB;;;;;;;OAOG;IACH,OAAO,CAAC,IAAI;IA2CZ,oFAAoF;IACpF,OAAO,CAAC,WAAW;IAInB;;;;OAIG;IACH,OAAO,CAAC,SAAS;IASjB,OAAO,CAAC,YAAY;IA6BpB,wFAAwF;IACxF,OAAO,CAAC,YAAY;IAOpB,uFAAuF;IACvF,OAAO,CAAC,YAAY;IASpB;;;;;;;OAOG;IACH,OAAO,CAAC,UAAU;IA2ClB,iFAAiF;IACjF,OAAO,CAAC,QAAQ;IA+BhB;;;OAGG;IACH,OAAO,CAAC,WAAW;IAmBnB,2DAA2D;IAC3D,OAAO,CAAC,YAAY;IAKpB,wFAAwF;IACxF,OAAO,CAAC,aAAa;IA0BrB,gEAAgE;IAChE,OAAO,CAAC,WAAW;IAOnB,wEAAwE;IACxE,OAAO,CAAC,oBAAoB;IAU5B;;;;OAIG;IACH,OAAO,CAAC,WAAW;IAgBnB,OAAO,CAAC,WAAW;CAyBpB"}
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/report/list.ts"],"names":[],"mappings":"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"}
@@ -40,8 +40,20 @@ function attemptDetails(attempts) {
40
40
  durationMs: attempts.reduce((total, attempt) => total + attempt.durationMs, 0),
41
41
  usage: stepsUsage(attempts.map((attempt) => attempt.steps)),
42
42
  error: attempts[attempts.length - 1]?.error,
43
+ videos: videoPaths(attempts),
43
44
  };
44
45
  }
46
+ /** Report-relative paths of the video artifacts these attempts kept, in order. */
47
+ function videoPaths(attempts) {
48
+ const paths = [];
49
+ for (const attempt of attempts) {
50
+ for (const artifact of attempt.artifacts) {
51
+ if (artifact.kind === 'video' && artifact.path !== undefined)
52
+ paths.push(artifact.path);
53
+ }
54
+ }
55
+ return paths;
56
+ }
45
57
  /**
46
58
  * Details of one serial member, read from its group: member results carry no
47
59
  * attempts of their own. Duration and usage sum over every group attempt the
@@ -61,6 +73,8 @@ function serialMemberDetails(group, testId) {
61
73
  durationMs: runs.reduce((total, run) => total + (run.member?.durationMs ?? 0), 0),
62
74
  usage: stepsUsage(runs.map((run) => run.member?.steps ?? [])),
63
75
  error: own?.error ?? (neverRan ? last?.attempt.error : undefined),
76
+ // The group's recording covers every member, so a failed member points at it.
77
+ videos: videoPaths(group.attempts),
64
78
  };
65
79
  }
66
80
  const DEFAULT_OUTPUT = {
@@ -69,8 +83,8 @@ const DEFAULT_OUTPUT = {
69
83
  };
70
84
  /**
71
85
  * Renders the run's event stream as the CLI's human-readable output. The
72
- * reporter is one sink on the run's single event spine, beside a host's
73
- * `onEvent`, so the CLI shows exactly what a host receives.
86
+ * reporter is one sink on the run's single event spine, so it can only show
87
+ * what every other sink receives.
74
88
  */
75
89
  export class ListReporter {
76
90
  output;
@@ -79,10 +93,17 @@ export class ListReporter {
79
93
  tree;
80
94
  separator;
81
95
  projectRoot;
96
+ artifactsRoot;
82
97
  /** Selected targets in declaration order; decides each badge's color. */
83
98
  targets = [];
84
- /** When the run began: the summary's `Start at` and the origin of `Duration`. */
85
- startedAt = new Date();
99
+ /** When the run was launched (`run-started`): what a run that never reached `plan` reports. */
100
+ launchedAt = new Date();
101
+ /**
102
+ * When the run began executing (`plan`): the summary's `Start at` and the
103
+ * origin of `Duration`. Undefined until then, so the clock never ticks
104
+ * while a first-run download narrates above the live window.
105
+ */
106
+ startedAt;
86
107
  /** File groups keyed `${target}\u0000${file}`, in first-seen order. */
87
108
  groups = new Map();
88
109
  /** Pairs that started and whose result is still to come, keyed by `pairKey`, in start order. */
@@ -98,8 +119,29 @@ export class ListReporter {
98
119
  pendingSerial = new Map();
99
120
  /** Run-level errors, printed once at the end; the stream carries them as they happen. */
100
121
  errors = [];
122
+ /**
123
+ * Whether the run was cut short. An interrupt during service or app startup
124
+ * lands before discovery, so the counters stay at zero; the summary must not
125
+ * read that as "no test files".
126
+ */
127
+ interrupted = false;
128
+ /**
129
+ * The setup step in flight, ticking in the live window. `narrated` once a
130
+ * notice printed under it: a step that said something (a browser download)
131
+ * prints its total when done, a silent one (an instant `prepare`) does not.
132
+ */
133
+ inFlight;
134
+ /** Time spent starting services and app commands, split out of the summary's `Duration`. */
135
+ startupMs = 0;
101
136
  /** Run-wide model usage, summed from every reported result and serial group. */
102
137
  runUsage = emptyUsage();
138
+ /**
139
+ * The configured models as the summary names them, `provider/id` plus
140
+ * `vision provider/id` when pixels go to a separate model: `runUsage` sums
141
+ * both, so the row names both. Repeated in the summary because the header
142
+ * has scrolled away by the time a long run ends.
143
+ */
144
+ models;
103
145
  constructor(output = DEFAULT_OUTPUT, options = {}) {
104
146
  this.output = output;
105
147
  const live = (options.live ?? process.stdout.isTTY === true) && output.raw !== undefined;
@@ -122,8 +164,13 @@ export class ListReporter {
122
164
  this.plan(event);
123
165
  break;
124
166
  case 'notice':
167
+ if (this.inFlight !== undefined)
168
+ this.inFlight.narrated = true;
125
169
  this.print(`${this.pc.dim('ℹ')} ${bounded(event.message)}`);
126
170
  break;
171
+ case 'setup':
172
+ this.setupStep(event);
173
+ break;
127
174
  case 'test-started':
128
175
  this.testStarted(event);
129
176
  break;
@@ -179,8 +226,9 @@ export class ListReporter {
179
226
  runStarted(event) {
180
227
  const { pc } = this;
181
228
  this.projectRoot = event.projectRoot;
229
+ this.artifactsRoot = event.artifactsRoot;
182
230
  this.targets = event.targets;
183
- this.startedAt = new Date();
231
+ this.launchedAt = new Date();
184
232
  const version = packageVersion(import.meta.url, '../../package.json', '0.0.0');
185
233
  this.output.write('');
186
234
  this.output.write(`${pc.bold(pc.black(pc.bgCyan(' RUN ')))} ${pc.cyan(`e2e v${version}`)} ${pc.gray(event.projectRoot)}`);
@@ -189,22 +237,67 @@ export class ListReporter {
189
237
  details.push('CI');
190
238
  this.output.write(BADGE_PADDING + pc.dim(details.join(' · ')));
191
239
  if (event.model !== undefined) {
192
- this.output.write(BADGE_PADDING + pc.dim(`model ${bounded(event.model)}`));
240
+ const vision = event.visionModel === undefined ? '' : ` · vision ${bounded(event.visionModel)}`;
241
+ this.models = `${bounded(event.model)}${vision}`;
242
+ this.output.write(BADGE_PADDING + pc.dim(`model ${this.models}`));
193
243
  }
194
244
  this.output.write('');
195
245
  this.window.start();
196
246
  }
247
+ /**
248
+ * The plan is settled once collection and every target's `prepare` are
249
+ * done, so its arrival is when the run starts executing and the clock
250
+ * starts: a browser downloaded moments earlier is not on it.
251
+ */
197
252
  plan(event) {
253
+ this.startedAt = new Date();
198
254
  for (const planned of event.files) {
199
255
  this.group(planned.file, planned.target).planned = planned.tests;
200
256
  }
201
257
  this.window.redraw();
202
258
  }
203
- /** Acknowledged immediately, so a bounded teardown is not mistaken for a hang. */
259
+ /**
260
+ * The setup stretch before any test: collection, each target's `prepare`,
261
+ * then the services and app commands. Without this the window showed only
262
+ * zero counters while a database booted or a browser downloaded. The step
263
+ * in flight ticks in the live window; a finished process prints once with
264
+ * its wait, a finished collection or provisioning only when it narrated;
265
+ * the process waits sum into the summary's startup split.
266
+ */
267
+ setupStep(event) {
268
+ const { pc } = this;
269
+ const { verb, subject, done } = setupWording(event.step);
270
+ if (event.state === 'started') {
271
+ this.inFlight = { step: event.step, verb, subject, startedMs: Date.now(), narrated: false };
272
+ this.window.redraw();
273
+ return;
274
+ }
275
+ const narrated = this.inFlight?.narrated ?? false;
276
+ this.inFlight = undefined;
277
+ const process = event.step.kind === 'service' || event.step.kind === 'app';
278
+ if (process)
279
+ this.startupMs += event.durationMs;
280
+ if (!process && !narrated) {
281
+ this.window.redraw();
282
+ return;
283
+ }
284
+ const outcome = event.outcome ?? done;
285
+ this.print(` ${pc.green(F_CHECK)} ${subject} ${pc.dim(`${outcome} ${formatTime(event.durationMs)}`)}`);
286
+ }
287
+ /**
288
+ * Acknowledged immediately, so a bounded teardown is not mistaken for a
289
+ * hang. An interrupt that lands during setup names the step it cut short
290
+ * (`interrupted while starting service "postgres"`), since no test was
291
+ * running to stop.
292
+ */
204
293
  runInterrupted(event) {
205
- this.print(this.pc.yellow(event.mode === 'graceful'
206
- ? 'interrupted: stopping the running test and tearing down (interrupt again to force)'
207
- : 'interrupted again: tearing every worker down now'));
294
+ this.interrupted = true;
295
+ const during = this.inFlight === undefined ? undefined : `${this.inFlight.verb} ${this.inFlight.subject}`;
296
+ this.print(this.pc.yellow(event.mode === 'forced'
297
+ ? 'interrupted again: tearing every worker down now'
298
+ : during === undefined
299
+ ? 'interrupted: stopping the running test and tearing down (interrupt again to force)'
300
+ : `interrupted while ${during}: tearing down (interrupt again to force)`));
208
301
  }
209
302
  /**
210
303
  * A worker began one test-target pair: show it in the live window. A serial
@@ -249,7 +342,7 @@ export class ListReporter {
249
342
  switch (progress.phase) {
250
343
  case 'start': {
251
344
  const { api, label, kind } = progress;
252
- running.current = { api, label, kind, events: [], turnStart: 0 };
345
+ running.current = { api, label, kind, events: [], replaying: false };
253
346
  this.window.redraw();
254
347
  break;
255
348
  }
@@ -257,13 +350,15 @@ export class ListReporter {
257
350
  const { current } = running;
258
351
  if (current === undefined || !isShownEvent(progress.event))
259
352
  break;
260
- if (progress.event.kind === 'model') {
261
- current.events.splice(current.turnStart, 0, progress.event);
262
- current.turnStart = current.events.length;
263
- }
264
- else {
265
- current.events.push(progress.event);
266
- }
353
+ current.events.push(progress.event);
354
+ this.window.redraw();
355
+ break;
356
+ }
357
+ case 'replay': {
358
+ const { current } = running;
359
+ if (current === undefined)
360
+ break;
361
+ current.replaying = progress.active;
267
362
  this.window.redraw();
268
363
  break;
269
364
  }
@@ -316,7 +411,7 @@ export class ListReporter {
316
411
  const steps = this.pairs.get(key)?.steps ?? [];
317
412
  this.pairs.delete(key);
318
413
  const group = this.group(result.test.file, result.target.name);
319
- const { durationMs, usage, error } = this.detailsOf(result);
414
+ const { durationMs, usage, error, videos } = this.detailsOf(result);
320
415
  addUsage(this.runUsage, usage);
321
416
  const title = bounded(result.test.titlePath.join(' > '));
322
417
  const line = {
@@ -331,7 +426,7 @@ export class ListReporter {
331
426
  };
332
427
  group.lines.push(line);
333
428
  if (statusBucket(result.status) === 'failed') {
334
- this.failures.push({ group, title, status: result.status, error });
429
+ this.failures.push({ group, title, status: result.status, error, videos });
335
430
  }
336
431
  if (group.planned !== undefined && group.lines.length >= group.planned)
337
432
  this.printGroup(group);
@@ -441,31 +536,45 @@ export class ListReporter {
441
536
  }
442
537
  /**
443
538
  * vitest's padded summary, shared by the live window and the final report:
444
- * files, tests, model usage, run errors, start time, and elapsed time.
539
+ * files, tests, model usage, run errors, start time, and elapsed time. The
540
+ * clock rows wait for `plan`; the final summary of a run that never got
541
+ * there (a config or collection failure, a failed download) counts from
542
+ * the launch instead, so the time it took to fail is still on record.
445
543
  */
446
- summaryRows() {
544
+ summaryRows(final) {
447
545
  const { pc } = this;
448
546
  const files = this.fileCounters();
449
547
  const tests = this.testCounters();
450
548
  const rows = [
451
- padTitle(pc, 'Test Files') + (files.total === 0 ? pc.dim('no test files') : stateString(pc, files)),
452
- padTitle(pc, 'Tests') + (tests.total === 0 ? pc.dim('no tests executed') : stateString(pc, tests)),
549
+ padTitle(pc, 'Test Files') + (files.total === 0 ? this.emptyState('no test files', 'none started') : stateString(pc, files)),
550
+ padTitle(pc, 'Tests') + (tests.total === 0 ? this.emptyState('no tests executed', 'none executed') : stateString(pc, tests)),
453
551
  ];
454
552
  const ai = usageText(this.runUsage);
455
- if (ai !== undefined)
456
- rows.push(padTitle(pc, 'AI') + `${ai} · ${this.runUsage.calls} model calls`);
553
+ if (ai !== undefined) {
554
+ const models = this.models === undefined ? '' : ` · ${this.models}`;
555
+ rows.push(padTitle(pc, 'AI') + `${ai} · ${this.runUsage.calls} model calls${models}`);
556
+ }
457
557
  if (this.errors.length > 0) {
458
558
  const count = this.errors.length;
459
559
  rows.push(padTitle(pc, 'Errors') + pc.bold(pc.red(`${count} error${count === 1 ? '' : 's'}`)));
460
560
  }
461
- rows.push(padTitle(pc, 'Start at') + formatClock(this.startedAt));
462
- rows.push(padTitle(pc, 'Duration') + formatTime(Date.now() - this.startedAt.getTime()));
561
+ const startedAt = this.startedAt ?? (final ? this.launchedAt : undefined);
562
+ if (startedAt !== undefined) {
563
+ rows.push(padTitle(pc, 'Start at') + formatClock(startedAt));
564
+ const startup = this.startupMs > 0 ? pc.dim(` (startup ${formatTime(this.startupMs)})`) : '';
565
+ rows.push(padTitle(pc, 'Duration') + formatTime(Date.now() - startedAt.getTime()) + startup);
566
+ }
463
567
  return rows;
464
568
  }
569
+ /** A zero counter's label: the plain text, or the interrupt when that is why nothing is counted. */
570
+ emptyState(none, cut) {
571
+ const { pc } = this;
572
+ return this.interrupted ? pc.yellow(`${cut} (interrupted)`) : pc.dim(none);
573
+ }
465
574
  /** The live window: the running tree, then the summary. */
466
575
  renderWindow() {
467
576
  const running = [...this.pairs.values()].filter((test) => test.executing);
468
- return this.tree.render(running, this.summaryRows(), Date.now());
577
+ return this.tree.render(running, this.summaryRows(false), Date.now(), this.inFlight);
469
578
  }
470
579
  /** vitest's `Failed Tests` section: a banner, then each failure with its code frame. */
471
580
  printFailures() {
@@ -475,7 +584,7 @@ export class ListReporter {
475
584
  this.print('');
476
585
  this.print(this.errorBanner(`Failed Tests ${this.failures.length}`));
477
586
  this.print('');
478
- this.failures.forEach(({ group, title, status, error }, index) => {
587
+ this.failures.forEach(({ group, title, status, error, videos }, index) => {
479
588
  this.print(`${pc.bold(pc.bgRed(' FAIL '))} ${this.badge(group.target)} ${bounded(group.file)}${this.separator}${title}`);
480
589
  if (error === undefined) {
481
590
  this.print(pc.red(`${pc.bold(status)}: no error was recorded`));
@@ -487,6 +596,7 @@ export class ListReporter {
487
596
  this.print(pc.red(line));
488
597
  this.printFailureLocation(error.stack);
489
598
  }
599
+ this.printVideos(videos);
490
600
  const marker = `[${index + 1}/${this.failures.length}]`;
491
601
  const { before, after } = rule(marker, 'right');
492
602
  this.print('');
@@ -501,6 +611,14 @@ export class ListReporter {
501
611
  const { before, after } = rule(label, 'center');
502
612
  return `${pc.red(before)}${label}${pc.red(after)}`;
503
613
  }
614
+ /** Where to watch a failed attempt: one line per recording it kept. */
615
+ printVideos(videos) {
616
+ const { pc } = this;
617
+ for (const video of videos) {
618
+ const target = this.artifactsRoot === undefined ? video : path.join(this.artifactsRoot, video);
619
+ this.print(pc.cyan(` ${pc.dim(F_POINTER)} ${pc.dim('video')} ${this.displayPath(target)}`));
620
+ }
621
+ }
504
622
  /** Names the user's failing line and renders a code frame around it. */
505
623
  printFailureLocation(stack) {
506
624
  const { pc } = this;
@@ -533,6 +651,8 @@ export class ListReporter {
533
651
  }
534
652
  runFinished(event) {
535
653
  const { pc } = this;
654
+ if (event.status === 'interrupted')
655
+ this.interrupted = true;
536
656
  this.window.stop();
537
657
  // An interrupted or crashed run leaves files without their full result
538
658
  // set; print what they have so nothing that ran goes unreported.
@@ -543,7 +663,7 @@ export class ListReporter {
543
663
  this.printFailures();
544
664
  this.printErrors();
545
665
  this.print('');
546
- for (const row of this.summaryRows())
666
+ for (const row of this.summaryRows(true))
547
667
  this.print(row);
548
668
  this.print(padTitle(pc, 'Report') +
549
669
  (event.reportPath === undefined ? pc.dim('(not written)') : this.displayPath(event.reportPath)));
@@ -557,4 +677,24 @@ export class ListReporter {
557
677
  this.print('');
558
678
  }
559
679
  }
680
+ /**
681
+ * How the reporter phrases one setup step: the verb and subject while it
682
+ * runs (`starting service "postgres"`), and the word for its completion
683
+ * (`ready`); a reused process says `reused` instead.
684
+ */
685
+ function setupWording(step) {
686
+ switch (step.kind) {
687
+ case 'collect':
688
+ return { verb: 'collecting', subject: 'tests', done: 'collected' };
689
+ case 'prepare':
690
+ return {
691
+ verb: 'preparing',
692
+ subject: `${bounded(step.engine)} engine for target "${bounded(step.target)}"`,
693
+ done: 'prepared',
694
+ };
695
+ case 'service':
696
+ case 'app':
697
+ return { verb: 'starting', subject: bounded(step.label), done: 'ready' };
698
+ }
699
+ }
560
700
  //# sourceMappingURL=list.js.map