@e2edev/e2e 0.10.0 → 0.12.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 (269) hide show
  1. package/README.md +14 -8
  2. package/dist/agent/act-validation.d.ts +2 -0
  3. package/dist/agent/act-validation.d.ts.map +1 -1
  4. package/dist/agent/act-validation.js +1 -1
  5. package/dist/agent/act-validation.js.map +1 -1
  6. package/dist/agent/act.d.ts +30 -2
  7. package/dist/agent/act.d.ts.map +1 -1
  8. package/dist/agent/act.js +18 -4
  9. package/dist/agent/act.js.map +1 -1
  10. package/dist/agent/ai-sdk.d.ts +2 -2
  11. package/dist/agent/ai-sdk.d.ts.map +1 -1
  12. package/dist/agent/ai-sdk.js +3 -4
  13. package/dist/agent/ai-sdk.js.map +1 -1
  14. package/dist/agent/default-agent.d.ts +33 -9
  15. package/dist/agent/default-agent.d.ts.map +1 -1
  16. package/dist/agent/default-agent.js +46 -31
  17. package/dist/agent/default-agent.js.map +1 -1
  18. package/dist/agent/error.d.ts.map +1 -1
  19. package/dist/agent/error.js +1 -0
  20. package/dist/agent/error.js.map +1 -1
  21. package/dist/agent/executor.d.ts +13 -0
  22. package/dist/agent/executor.d.ts.map +1 -1
  23. package/dist/agent/executor.js.map +1 -1
  24. package/dist/agent/interactive-step.d.ts +38 -0
  25. package/dist/agent/interactive-step.d.ts.map +1 -0
  26. package/dist/agent/interactive-step.js +131 -0
  27. package/dist/agent/interactive-step.js.map +1 -0
  28. package/dist/agent/model/adapter.d.ts +3 -0
  29. package/dist/agent/model/adapter.d.ts.map +1 -1
  30. package/dist/agent/model/adapter.js.map +1 -1
  31. package/dist/agent/model/overflow.d.ts +20 -0
  32. package/dist/agent/model/overflow.d.ts.map +1 -0
  33. package/dist/agent/model/overflow.js +82 -0
  34. package/dist/agent/model/overflow.js.map +1 -0
  35. package/dist/agent/model/prompt-cache.d.ts +47 -0
  36. package/dist/agent/model/prompt-cache.d.ts.map +1 -0
  37. package/dist/agent/model/prompt-cache.js +78 -0
  38. package/dist/agent/model/prompt-cache.js.map +1 -0
  39. package/dist/agent/model/sdk.d.ts +41 -24
  40. package/dist/agent/model/sdk.d.ts.map +1 -1
  41. package/dist/agent/model/sdk.js +64 -91
  42. package/dist/agent/model/sdk.js.map +1 -1
  43. package/dist/agent/model/tool-choice.d.ts +21 -0
  44. package/dist/agent/model/tool-choice.d.ts.map +1 -0
  45. package/dist/agent/model/tool-choice.js +49 -0
  46. package/dist/agent/model/tool-choice.js.map +1 -0
  47. package/dist/agent/primitives.d.ts.map +1 -1
  48. package/dist/agent/primitives.js +2 -1
  49. package/dist/agent/primitives.js.map +1 -1
  50. package/dist/agent/public.d.ts +1 -1
  51. package/dist/agent/public.d.ts.map +1 -1
  52. package/dist/agent/public.js.map +1 -1
  53. package/dist/agent/screen-update.d.ts +8 -3
  54. package/dist/agent/screen-update.d.ts.map +1 -1
  55. package/dist/agent/screen-update.js +18 -5
  56. package/dist/agent/screen-update.js.map +1 -1
  57. package/dist/agent/tool-loop.d.ts +4 -4
  58. package/dist/agent/tool-loop.d.ts.map +1 -1
  59. package/dist/agent/tool-loop.js +241 -48
  60. package/dist/agent/tool-loop.js.map +1 -1
  61. package/dist/agent/tool-output.d.ts +31 -0
  62. package/dist/agent/tool-output.d.ts.map +1 -0
  63. package/dist/agent/tool-output.js +60 -0
  64. package/dist/agent/tool-output.js.map +1 -0
  65. package/dist/agent/tool.d.ts +9 -3
  66. package/dist/agent/tool.d.ts.map +1 -1
  67. package/dist/agent/tool.js +2 -2
  68. package/dist/agent/tool.js.map +1 -1
  69. package/dist/agent/usage.d.ts +7 -0
  70. package/dist/agent/usage.d.ts.map +1 -1
  71. package/dist/agent/usage.js +11 -0
  72. package/dist/agent/usage.js.map +1 -1
  73. package/dist/cli/docs-url.d.ts +1 -1
  74. package/dist/cli/docs-url.d.ts.map +1 -1
  75. package/dist/cli/docs-url.js +1 -1
  76. package/dist/cli/docs-url.js.map +1 -1
  77. package/dist/cli/index.d.ts.map +1 -1
  78. package/dist/cli/index.js +139 -35
  79. package/dist/cli/index.js.map +1 -1
  80. package/dist/cli/init/engine-versions.json +1 -1
  81. package/dist/cli/init/engines.d.ts +17 -16
  82. package/dist/cli/init/engines.d.ts.map +1 -1
  83. package/dist/cli/init/engines.js +26 -26
  84. package/dist/cli/init/engines.js.map +1 -1
  85. package/dist/cli/init/gateways.d.ts +22 -0
  86. package/dist/cli/init/gateways.d.ts.map +1 -0
  87. package/dist/cli/init/gateways.js +50 -0
  88. package/dist/cli/init/gateways.js.map +1 -0
  89. package/dist/cli/init/mcp-config.d.ts +31 -0
  90. package/dist/cli/init/mcp-config.d.ts.map +1 -0
  91. package/dist/cli/init/mcp-config.js +72 -0
  92. package/dist/cli/init/mcp-config.js.map +1 -0
  93. package/dist/cli/init/scaffold.d.ts +8 -2
  94. package/dist/cli/init/scaffold.d.ts.map +1 -1
  95. package/dist/cli/init/scaffold.js +22 -11
  96. package/dist/cli/init/scaffold.js.map +1 -1
  97. package/dist/cli/init.d.ts.map +1 -1
  98. package/dist/cli/init.js +109 -29
  99. package/dist/cli/init.js.map +1 -1
  100. package/dist/cli/mcp.d.ts +15 -0
  101. package/dist/cli/mcp.d.ts.map +1 -0
  102. package/dist/cli/mcp.js +63 -0
  103. package/dist/cli/mcp.js.map +1 -0
  104. package/dist/collect/collect.d.ts +7 -0
  105. package/dist/collect/collect.d.ts.map +1 -1
  106. package/dist/collect/collect.js +16 -0
  107. package/dist/collect/collect.js.map +1 -1
  108. package/dist/collect/registry.d.ts.map +1 -1
  109. package/dist/collect/registry.js +33 -6
  110. package/dist/collect/registry.js.map +1 -1
  111. package/dist/collect/select.d.ts +9 -2
  112. package/dist/collect/select.d.ts.map +1 -1
  113. package/dist/collect/select.js +57 -11
  114. package/dist/collect/select.js.map +1 -1
  115. package/dist/config/agent.d.ts +13 -32
  116. package/dist/config/agent.d.ts.map +1 -1
  117. package/dist/config/agent.js +32 -123
  118. package/dist/config/agent.js.map +1 -1
  119. package/dist/config/resolve.d.ts +8 -5
  120. package/dist/config/resolve.d.ts.map +1 -1
  121. package/dist/config/resolve.js +11 -9
  122. package/dist/config/resolve.js.map +1 -1
  123. package/dist/credentials.d.ts +6 -0
  124. package/dist/credentials.d.ts.map +1 -1
  125. package/dist/credentials.js +9 -0
  126. package/dist/credentials.js.map +1 -1
  127. package/dist/explore/body.d.ts +36 -0
  128. package/dist/explore/body.d.ts.map +1 -0
  129. package/dist/explore/body.js +168 -0
  130. package/dist/explore/body.js.map +1 -0
  131. package/dist/explore/executor.d.ts +25 -0
  132. package/dist/explore/executor.d.ts.map +1 -0
  133. package/dist/explore/executor.js +86 -0
  134. package/dist/explore/executor.js.map +1 -0
  135. package/dist/explore/index.d.ts +64 -0
  136. package/dist/explore/index.d.ts.map +1 -0
  137. package/dist/explore/index.js +185 -0
  138. package/dist/explore/index.js.map +1 -0
  139. package/dist/explore/plan.d.ts +74 -0
  140. package/dist/explore/plan.d.ts.map +1 -0
  141. package/dist/explore/plan.js +149 -0
  142. package/dist/explore/plan.js.map +1 -0
  143. package/dist/explore/reporter.d.ts +11 -0
  144. package/dist/explore/reporter.d.ts.map +1 -0
  145. package/dist/explore/reporter.js +54 -0
  146. package/dist/explore/reporter.js.map +1 -0
  147. package/dist/explore/state.d.ts +58 -0
  148. package/dist/explore/state.d.ts.map +1 -0
  149. package/dist/explore/state.js +147 -0
  150. package/dist/explore/state.js.map +1 -0
  151. package/dist/internal/ai-trace.d.ts +2 -0
  152. package/dist/internal/ai-trace.d.ts.map +1 -1
  153. package/dist/internal/ai-trace.js +3 -0
  154. package/dist/internal/ai-trace.js.map +1 -1
  155. package/dist/internal/ids.d.ts +2 -2
  156. package/dist/internal/ids.d.ts.map +1 -1
  157. package/dist/internal/ids.js +3 -3
  158. package/dist/internal/ids.js.map +1 -1
  159. package/dist/internal/package-manager.d.ts +4 -0
  160. package/dist/internal/package-manager.d.ts.map +1 -1
  161. package/dist/internal/package-manager.js +26 -0
  162. package/dist/internal/package-manager.js.map +1 -1
  163. package/dist/mcp/catalog.d.ts +50 -0
  164. package/dist/mcp/catalog.d.ts.map +1 -0
  165. package/dist/mcp/catalog.js +172 -0
  166. package/dist/mcp/catalog.js.map +1 -0
  167. package/dist/mcp/config.d.ts +11 -0
  168. package/dist/mcp/config.d.ts.map +1 -0
  169. package/dist/mcp/config.js +16 -0
  170. package/dist/mcp/config.js.map +1 -0
  171. package/dist/mcp/server.d.ts +29 -0
  172. package/dist/mcp/server.d.ts.map +1 -0
  173. package/dist/mcp/server.js +86 -0
  174. package/dist/mcp/server.js.map +1 -0
  175. package/dist/mcp/session.d.ts +68 -0
  176. package/dist/mcp/session.d.ts.map +1 -0
  177. package/dist/mcp/session.js +317 -0
  178. package/dist/mcp/session.js.map +1 -0
  179. package/dist/mcp/tools.d.ts +77 -0
  180. package/dist/mcp/tools.d.ts.map +1 -0
  181. package/dist/mcp/tools.js +179 -0
  182. package/dist/mcp/tools.js.map +1 -0
  183. package/dist/report/build.d.ts +61 -0
  184. package/dist/report/build.d.ts.map +1 -1
  185. package/dist/report/build.js +13 -2
  186. package/dist/report/build.js.map +1 -1
  187. package/dist/report/debug-steps.d.ts.map +1 -1
  188. package/dist/report/debug-steps.js +15 -0
  189. package/dist/report/debug-steps.js.map +1 -1
  190. package/dist/report/format.d.ts +30 -1
  191. package/dist/report/format.d.ts.map +1 -1
  192. package/dist/report/format.js +57 -3
  193. package/dist/report/format.js.map +1 -1
  194. package/dist/report/junit.d.ts.map +1 -1
  195. package/dist/report/junit.js +4 -1
  196. package/dist/report/junit.js.map +1 -1
  197. package/dist/report/list.d.ts +10 -1
  198. package/dist/report/list.d.ts.map +1 -1
  199. package/dist/report/list.js +35 -13
  200. package/dist/report/list.js.map +1 -1
  201. package/dist/run/events.d.ts +13 -4
  202. package/dist/run/events.d.ts.map +1 -1
  203. package/dist/run/events.js.map +1 -1
  204. package/dist/run/execute.d.ts +2 -2
  205. package/dist/run/execute.d.ts.map +1 -1
  206. package/dist/run/execute.js +19 -14
  207. package/dist/run/execute.js.map +1 -1
  208. package/dist/run/fixtures.d.ts +10 -4
  209. package/dist/run/fixtures.d.ts.map +1 -1
  210. package/dist/run/fixtures.js +23 -23
  211. package/dist/run/fixtures.js.map +1 -1
  212. package/dist/run/in-process.d.ts +8 -0
  213. package/dist/run/in-process.d.ts.map +1 -1
  214. package/dist/run/in-process.js +7 -6
  215. package/dist/run/in-process.js.map +1 -1
  216. package/dist/run/provision.d.ts +51 -0
  217. package/dist/run/provision.d.ts.map +1 -0
  218. package/dist/run/provision.js +94 -0
  219. package/dist/run/provision.js.map +1 -0
  220. package/dist/run/records.d.ts +4 -0
  221. package/dist/run/records.d.ts.map +1 -1
  222. package/dist/run/runner.d.ts +25 -3
  223. package/dist/run/runner.d.ts.map +1 -1
  224. package/dist/run/runner.js +38 -81
  225. package/dist/run/runner.js.map +1 -1
  226. package/dist/run/scheduler.d.ts +5 -2
  227. package/dist/run/scheduler.d.ts.map +1 -1
  228. package/dist/run/scheduler.js +13 -10
  229. package/dist/run/scheduler.js.map +1 -1
  230. package/dist/run/serial.d.ts +1 -1
  231. package/dist/run/serial.d.ts.map +1 -1
  232. package/dist/run/serial.js +7 -2
  233. package/dist/run/serial.js.map +1 -1
  234. package/dist/run/standalone.d.ts +63 -0
  235. package/dist/run/standalone.d.ts.map +1 -0
  236. package/dist/run/standalone.js +152 -0
  237. package/dist/run/standalone.js.map +1 -0
  238. package/dist/run/steps.d.ts +7 -0
  239. package/dist/run/steps.d.ts.map +1 -1
  240. package/dist/run/steps.js.map +1 -1
  241. package/dist/run/units.d.ts +6 -3
  242. package/dist/run/units.d.ts.map +1 -1
  243. package/dist/run/units.js +0 -0
  244. package/dist/run/units.js.map +1 -1
  245. package/dist/run/worker/entry.js +2 -2
  246. package/dist/run/worker/entry.js.map +1 -1
  247. package/dist/run/worker/protocol.d.ts +5 -0
  248. package/dist/run/worker/protocol.d.ts.map +1 -1
  249. package/dist/run/worker/protocol.js.map +1 -1
  250. package/dist/run/worker/session.d.ts +3 -4
  251. package/dist/run/worker/session.d.ts.map +1 -1
  252. package/dist/run/worker/session.js +5 -4
  253. package/dist/run/worker/session.js.map +1 -1
  254. package/dist/run/worker-models.d.ts +4 -4
  255. package/dist/run/worker-models.js +6 -13
  256. package/dist/run/worker-models.js.map +1 -1
  257. package/dist/telemetry/events.d.ts.map +1 -1
  258. package/dist/telemetry/events.js +17 -2
  259. package/dist/telemetry/events.js.map +1 -1
  260. package/dist/types.d.ts +20 -20
  261. package/dist/types.d.ts.map +1 -1
  262. package/package.json +9 -6
  263. package/skills/e2e/SKILL.md +16 -6
  264. package/skills/e2e/references/agent.md +21 -16
  265. package/skills/e2e/references/debugging.md +2 -1
  266. package/skills/e2e/references/explore.md +83 -0
  267. package/skills/e2e/references/mcp.md +88 -0
  268. package/skills/e2e/references/running.md +7 -5
  269. package/skills/e2e/references/setup.md +17 -13
@@ -1 +1 @@
1
- {"version":3,"file":"tool-loop.js","sourceRoot":"","sources":["../../src/agent/tool-loop.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-loop.js","sourceRoot":"","sources":["../../src/agent/tool-loop.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * The bound on what a project tool may hand the model in one result. A tool
3
+ * that returns a whole log or API payload would otherwise put it in the
4
+ * transcript for every later turn of the step. Two limits apply, lines and
5
+ * bytes, whichever is reached first; the cut never splits a line, and the
6
+ * notice says exactly how much was left out, so the model can ask for a
7
+ * narrower result instead of guessing at what it did not see.
8
+ */
9
+ /** Lines a tool result keeps. */
10
+ export declare const MAX_TOOL_OUTPUT_LINES = 400;
11
+ /** Bytes a tool result keeps; screens are bounded separately by the observation budget. */
12
+ export declare const MAX_TOOL_OUTPUT_BYTES: number;
13
+ export interface BoundToolOutput {
14
+ readonly text: string;
15
+ readonly truncated: boolean;
16
+ /** Which limit cut the output; undefined when it fit. */
17
+ readonly by?: 'lines' | 'bytes';
18
+ readonly totalLines: number;
19
+ readonly totalBytes: number;
20
+ }
21
+ /**
22
+ * Cuts a tool result to the limits, with a notice naming what is missing. The
23
+ * cut lands on a line boundary, except for a first line that alone exceeds
24
+ * the byte budget, which keeps its head. The result, notice included, fits the
25
+ * limits it advertises.
26
+ */
27
+ export declare function boundToolOutput(text: string, limits?: {
28
+ maxLines: number;
29
+ maxBytes: number;
30
+ }): BoundToolOutput;
31
+ //# sourceMappingURL=tool-output.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-output.d.ts","sourceRoot":"","sources":["../../src/agent/tool-output.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,iCAAiC;AACjC,eAAO,MAAM,qBAAqB,MAAM,CAAC;AAEzC,2FAA2F;AAC3F,eAAO,MAAM,qBAAqB,QAAY,CAAC;AAE/C,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,yDAAyD;IACzD,QAAQ,CAAC,EAAE,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAMD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM;;;CAAuE,GAAG,eAAe,CA+B5I"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * The bound on what a project tool may hand the model in one result. A tool
3
+ * that returns a whole log or API payload would otherwise put it in the
4
+ * transcript for every later turn of the step. Two limits apply, lines and
5
+ * bytes, whichever is reached first; the cut never splits a line, and the
6
+ * notice says exactly how much was left out, so the model can ask for a
7
+ * narrower result instead of guessing at what it did not see.
8
+ */
9
+ /** Lines a tool result keeps. */
10
+ export const MAX_TOOL_OUTPUT_LINES = 400;
11
+ /** Bytes a tool result keeps; screens are bounded separately by the observation budget. */
12
+ export const MAX_TOOL_OUTPUT_BYTES = 16 * 1024;
13
+ /** Bytes and lines set aside for the notice, so the whole result stays inside the limits. */
14
+ const NOTICE_RESERVE_BYTES = 256;
15
+ const NOTICE_RESERVE_LINES = 1;
16
+ /**
17
+ * Cuts a tool result to the limits, with a notice naming what is missing. The
18
+ * cut lands on a line boundary, except for a first line that alone exceeds
19
+ * the byte budget, which keeps its head. The result, notice included, fits the
20
+ * limits it advertises.
21
+ */
22
+ export function boundToolOutput(text, limits = { maxLines: MAX_TOOL_OUTPUT_LINES, maxBytes: MAX_TOOL_OUTPUT_BYTES }) {
23
+ const totalBytes = Buffer.byteLength(text, 'utf8');
24
+ const lines = text.split('\n');
25
+ const totalLines = lines.length;
26
+ if (totalLines <= limits.maxLines && totalBytes <= limits.maxBytes) {
27
+ return { text, truncated: false, totalLines, totalBytes };
28
+ }
29
+ const lineBudget = Math.max(1, limits.maxLines - NOTICE_RESERVE_LINES);
30
+ const byteBudget = Math.max(64, limits.maxBytes - NOTICE_RESERVE_BYTES);
31
+ const kept = [];
32
+ let bytes = 0;
33
+ let by = 'lines';
34
+ for (const line of lines) {
35
+ if (kept.length >= lineBudget)
36
+ break;
37
+ const lineBytes = Buffer.byteLength(line, 'utf8') + (kept.length === 0 ? 0 : 1);
38
+ if (bytes + lineBytes > byteBudget) {
39
+ by = 'bytes';
40
+ break;
41
+ }
42
+ kept.push(line);
43
+ bytes += lineBytes;
44
+ }
45
+ // A first line longer than the whole byte budget keeps nothing of the text;
46
+ // its head is better than an empty result, and the notice still says so.
47
+ if (kept.length === 0) {
48
+ const head = Buffer.from(text, 'utf8').subarray(0, byteBudget).toString('utf8').replace(/�+$/u, '');
49
+ kept.push(head);
50
+ bytes = Buffer.byteLength(head, 'utf8');
51
+ }
52
+ const notice = `[tool output truncated: showing ${String(kept.length)} of ${String(totalLines)} lines, ${formatBytes(bytes)} of ${formatBytes(totalBytes)}; the ${by} limit was reached. Ask for a narrower result if you need the rest.]`;
53
+ return { text: `${kept.join('\n')}\n${notice}`, truncated: true, by, totalLines, totalBytes };
54
+ }
55
+ function formatBytes(bytes) {
56
+ if (bytes < 1024)
57
+ return `${String(bytes)} B`;
58
+ return `${(bytes / 1024).toFixed(1)} KB`;
59
+ }
60
+ //# sourceMappingURL=tool-output.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-output.js","sourceRoot":"","sources":["../../src/agent/tool-output.ts"],"names":[],"mappings":"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"}
@@ -26,8 +26,14 @@ export declare function defineTool(tool: Tool, annotations: ToolAnnotations): De
26
26
  export declare function toolAppliesTo(defined: DefinedTool, platform: Platform): boolean;
27
27
  /** True when a value came through `defineTool`, from this or another realm. */
28
28
  export declare function isDefinedTool(value: unknown): value is DefinedTool;
29
- /** Guarded observation capability supplied to read-only tools by createAgent. */
30
- export declare function getToolContext(options: object): Pick<StepExecutorContext, 'observe'>;
29
+ /**
30
+ * The harness capabilities a project tool reaches through `getToolContext`:
31
+ * observing the screen (read-only tools only) and keeping what it saw as a
32
+ * screenshot artifact of the step.
33
+ */
34
+ export type ToolContext = Pick<StepExecutorContext, 'observe' | 'attachScreenshot'>;
35
+ /** The capabilities createAgent supplied to the running tool. */
36
+ export declare function getToolContext(options: object): ToolContext;
31
37
  /** Carries harness capabilities alongside SDK options without replacing the project's SDK context. */
32
- export declare function withToolContext(options: ToolExecutionOptions<unknown>, context: Pick<StepExecutorContext, 'observe'>): ToolExecutionOptions<unknown>;
38
+ export declare function withToolContext(options: ToolExecutionOptions<unknown>, context: ToolContext): ToolExecutionOptions<unknown>;
33
39
  //# sourceMappingURL=tool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../../src/agent/tool.ts"],"names":[],"mappings":"AAAA,mGAAmG;AAEnG,OAAO,KAAK,EAAE,IAAI,EAAE,oBAAoB,EAAE,MAAM,IAAI,CAAC;AACrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAK5C,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B;;;;;OAKG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,QAAQ,EAAE,CAAC;CAC1C;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAC;CACvC;AAED,qDAAqD;AACrD,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,GAAG,WAAW,CA8BhF;AAED,iEAAiE;AACjE,wBAAgB,aAAa,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAE/E;AAED,+EAA+E;AAC/E,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,WAAW,CAElE;AAED,iFAAiF;AACjF,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC,mBAAmB,EAAE,SAAS,CAAC,CAMpF;AAID,sGAAsG;AACtG,wBAAgB,eAAe,CAC7B,OAAO,EAAE,oBAAoB,CAAC,OAAO,CAAC,EACtC,OAAO,EAAE,IAAI,CAAC,mBAAmB,EAAE,SAAS,CAAC,GAC5C,oBAAoB,CAAC,OAAO,CAAC,CAE/B"}
1
+ {"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../../src/agent/tool.ts"],"names":[],"mappings":"AAAA,mGAAmG;AAEnG,OAAO,KAAK,EAAE,IAAI,EAAE,oBAAoB,EAAE,MAAM,IAAI,CAAC;AACrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAK5C,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B;;;;;OAKG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,QAAQ,EAAE,CAAC;CAC1C;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAC;CACvC;AAED,qDAAqD;AACrD,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,GAAG,WAAW,CA8BhF;AAED,iEAAiE;AACjE,wBAAgB,aAAa,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAE/E;AAED,+EAA+E;AAC/E,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,WAAW,CAElE;AAED;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG,IAAI,CAAC,mBAAmB,EAAE,SAAS,GAAG,kBAAkB,CAAC,CAAC;AAEpF,iEAAiE;AACjE,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,CAM3D;AAID,sGAAsG;AACtG,wBAAgB,eAAe,CAAC,OAAO,EAAE,oBAAoB,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,WAAW,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAE3H"}
@@ -37,13 +37,13 @@ export function toolAppliesTo(defined, platform) {
37
37
  export function isDefinedTool(value) {
38
38
  return typeof value === 'object' && value !== null && DEFINED_TOOL_MARKER in value;
39
39
  }
40
- /** Guarded observation capability supplied to read-only tools by createAgent. */
40
+ /** The capabilities createAgent supplied to the running tool. */
41
41
  export function getToolContext(options) {
42
42
  const context = options[TOOL_CONTEXT];
43
43
  if (context === undefined || typeof context.observe !== 'function') {
44
44
  throw new TestError('INVALID_ARGUMENT', 'this tool needs the observation context supplied by createAgent');
45
45
  }
46
- return { observe: context.observe };
46
+ return { observe: context.observe, attachScreenshot: context.attachScreenshot };
47
47
  }
48
48
  const TOOL_CONTEXT = Symbol.for('e2e.tool-context.v1');
49
49
  /** Carries harness capabilities alongside SDK options without replacing the project's SDK context. */
@@ -1 +1 @@
1
- {"version":3,"file":"tool.js","sourceRoot":"","sources":["../../src/agent/tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool.js","sourceRoot":"","sources":["../../src/agent/tool.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,10 @@ type Provenance = Pick<StepModelInfo, 'provider' | 'model' | 'endpoint' | 'adapt
4
4
  interface Usage {
5
5
  readonly inputTokens?: number;
6
6
  readonly outputTokens?: number;
7
+ /** Input tokens the provider served from its prompt cache, when it reports the split. */
8
+ readonly cacheReadTokens?: number | undefined;
9
+ /** Input tokens the provider wrote to its prompt cache, when it reports the split. */
10
+ readonly cacheWriteTokens?: number | undefined;
7
11
  readonly accounting?: StepModelInfo['tokenAccounting'];
8
12
  readonly estimatedCostUsd?: number | undefined;
9
13
  }
@@ -13,6 +17,9 @@ export declare class ModelUsage {
13
17
  private inputTokens;
14
18
  private outputTokens;
15
19
  private peakTokensPerCall;
20
+ /** Undefined until a provider reports the cache split; a run that never does omits the fields. */
21
+ private cacheReadTokens;
22
+ private cacheWriteTokens;
16
23
  private accounting;
17
24
  /** Null means the total overflowed and must remain omitted for this step. */
18
25
  private estimatedCostUsd;
@@ -1 +1 @@
1
- {"version":3,"file":"usage.d.ts","sourceRoot":"","sources":["../../src/agent/usage.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhE,KAAK,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,UAAU,GAAG,OAAO,GAAG,UAAU,GAAG,gBAAgB,GAAG,eAAe,CAAC,CAAC;AAE9G,UAAU,KAAK;IACb,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,UAAU,CAAC,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;IACvD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAChD;AAED,wFAAwF;AACxF,qBAAa,UAAU;IACrB,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,UAAU,CAAgD;IAClE,6EAA6E;IAC7E,OAAO,CAAC,gBAAgB,CAA4B;IAEpD,8FAA8F;IAC9F,MAAM,CAAC,KAAK,GAAE,KAAU,GAAG,MAAM,CAiBhC;IAED,0FAA0F;IAC1F,OAAO,CAAC,SAAS;IAOjB,8FAA8F;IAC9F,MAAM,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,aAAa,CAU3D;CACF;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,GAAE,KAAU,GAAG,IAAI,CAAC,SAAS,EAAE,aAAa,GAAG,cAAc,CAAC,CAO9F"}
1
+ {"version":3,"file":"usage.d.ts","sourceRoot":"","sources":["../../src/agent/usage.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhE,KAAK,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,UAAU,GAAG,OAAO,GAAG,UAAU,GAAG,gBAAgB,GAAG,eAAe,CAAC,CAAC;AAE9G,UAAU,KAAK;IACb,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,yFAAyF;IACzF,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9C,sFAAsF;IACtF,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/C,QAAQ,CAAC,UAAU,CAAC,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;IACvD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAChD;AAED,wFAAwF;AACxF,qBAAa,UAAU;IACrB,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,iBAAiB,CAAK;IAC9B,kGAAkG;IAClG,OAAO,CAAC,eAAe,CAAqB;IAC5C,OAAO,CAAC,gBAAgB,CAAqB;IAC7C,OAAO,CAAC,UAAU,CAAgD;IAClE,6EAA6E;IAC7E,OAAO,CAAC,gBAAgB,CAA4B;IAEpD,8FAA8F;IAC9F,MAAM,CAAC,KAAK,GAAE,KAAU,GAAG,MAAM,CAqBhC;IAED,0FAA0F;IAC1F,OAAO,CAAC,SAAS;IAOjB,8FAA8F;IAC9F,MAAM,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,aAAa,CAY3D;CACF;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,GAAE,KAAU,GAAG,IAAI,CAAC,SAAS,EAAE,aAAa,GAAG,cAAc,CAAC,CAO9F"}
@@ -4,6 +4,9 @@ export class ModelUsage {
4
4
  inputTokens = 0;
5
5
  outputTokens = 0;
6
6
  peakTokensPerCall = 0;
7
+ /** Undefined until a provider reports the cache split; a run that never does omits the fields. */
8
+ cacheReadTokens;
9
+ cacheWriteTokens;
7
10
  accounting = 'provider';
8
11
  /** Null means the total overflowed and must remain omitted for this step. */
9
12
  estimatedCostUsd;
@@ -16,6 +19,12 @@ export class ModelUsage {
16
19
  this.outputTokens = this.addTokens(this.outputTokens, output ?? 0);
17
20
  const tokens = this.addTokens(input ?? 0, output ?? 0);
18
21
  this.peakTokensPerCall = Math.max(this.peakTokensPerCall, tokens);
22
+ const cacheRead = tokenCount(usage.cacheReadTokens);
23
+ if (cacheRead !== undefined)
24
+ this.cacheReadTokens = this.addTokens(this.cacheReadTokens ?? 0, cacheRead);
25
+ const cacheWrite = tokenCount(usage.cacheWriteTokens);
26
+ if (cacheWrite !== undefined)
27
+ this.cacheWriteTokens = this.addTokens(this.cacheWriteTokens ?? 0, cacheWrite);
19
28
  if (input === undefined || output === undefined || usage.accounting === 'adapter-upper-bound') {
20
29
  this.accounting = 'adapter-upper-bound';
21
30
  }
@@ -43,6 +52,8 @@ export class ModelUsage {
43
52
  inputTokens: this.inputTokens,
44
53
  outputTokens: this.outputTokens,
45
54
  peakTokensPerCall: this.peakTokensPerCall,
55
+ ...(this.cacheReadTokens === undefined ? {} : { cacheReadTokens: this.cacheReadTokens }),
56
+ ...(this.cacheWriteTokens === undefined ? {} : { cacheWriteTokens: this.cacheWriteTokens }),
46
57
  ...(typeof this.estimatedCostUsd === 'number' ? { estimatedCostUsd: this.estimatedCostUsd } : {}),
47
58
  };
48
59
  }
@@ -1 +1 @@
1
- {"version":3,"file":"usage.js","sourceRoot":"","sources":["../../src/agent/usage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"usage.js","sourceRoot":"","sources":["../../src/agent/usage.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  /** Root of the published documentation site. */
2
- export declare const DOCS_URL = "https://e2e-docs.vercel.app";
2
+ export declare const DOCS_URL = "https://e2e.mintlify.app";
3
3
  //# sourceMappingURL=docs-url.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"docs-url.d.ts","sourceRoot":"","sources":["../../src/cli/docs-url.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,eAAO,MAAM,QAAQ,gCAAgC,CAAC"}
1
+ {"version":3,"file":"docs-url.d.ts","sourceRoot":"","sources":["../../src/cli/docs-url.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,eAAO,MAAM,QAAQ,6BAA6B,CAAC"}
@@ -1,3 +1,3 @@
1
1
  /** Root of the published documentation site. */
2
- export const DOCS_URL = 'https://e2e-docs.vercel.app';
2
+ export const DOCS_URL = 'https://e2e.mintlify.app';
3
3
  //# sourceMappingURL=docs-url.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"docs-url.js","sourceRoot":"","sources":["../../src/cli/docs-url.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,MAAM,CAAC,MAAM,QAAQ,GAAG,6BAA6B,CAAC"}
1
+ {"version":3,"file":"docs-url.js","sourceRoot":"","sources":["../../src/cli/docs-url.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,MAAM,CAAC,MAAM,QAAQ,GAAG,0BAA0B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA,eAAe;AAuaf,4CAA4C;AAC5C,wBAAsB,IAAI,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAmBjE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA,eAAe;AAskBf,4CAA4C;AAC5C,wBAAsB,IAAI,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAmBjE"}
package/dist/cli/index.js CHANGED
@@ -5,12 +5,14 @@ import picocolors from 'picocolors';
5
5
  import { packageVersion } from '../internal/package-version.js';
6
6
  import { classifyError, exitCodeForCategory } from '../internal/errors.js';
7
7
  import { list, run } from '../run/runner.js';
8
+ import { explore, STEP_BOUNDS, TIMEOUT_BOUNDS } from '../explore/index.js';
8
9
  import { cliSessionEvent, runCompletedEvent } from '../telemetry/events.js';
9
10
  import { Telemetry } from '../telemetry/telemetry.js';
10
11
  import { cache } from './cache.js';
11
12
  import { DOCS_URL } from './docs-url.js';
12
13
  import { guide } from './guide.js';
13
14
  import { init } from './init.js';
15
+ import { mcp } from './mcp.js';
14
16
  import { SignalLadder } from './signals.js';
15
17
  import { skillTopics } from './skill.js';
16
18
  import { telemetry as telemetryCommand, TELEMETRY_ACTIONS } from './telemetry.js';
@@ -34,6 +36,16 @@ function parseList(value) {
34
36
  .map((item) => item.trim())
35
37
  .filter((item) => item !== '');
36
38
  }
39
+ /** An integer inside a closed range, for the explore budgets. */
40
+ function parseBoundedInt(bounds) {
41
+ return (value) => {
42
+ const parsed = Number(value);
43
+ if (!Number.isSafeInteger(parsed) || parsed < bounds.min || parsed > bounds.max) {
44
+ throw new InvalidArgumentError(`must be an integer from ${bounds.min} through ${bounds.max}`);
45
+ }
46
+ return parsed;
47
+ };
48
+ }
37
49
  const REPORTERS = ['list', 'json', 'junit'];
38
50
  function isReporter(value) {
39
51
  return REPORTERS.includes(value);
@@ -63,10 +75,19 @@ const EXIT_CODES = [
63
75
  ['4', 'internal runner error'],
64
76
  ['130', 'interrupted by Ctrl-C or a CI signal'],
65
77
  ];
78
+ /** `explore` exits as `run` does; only what a pass and a failure mean differs. */
79
+ const EXPLORE_EXIT_MEANINGS = {
80
+ '0': 'the exploration ran and reported no issue (warnings do not count)',
81
+ '1': 'at least one issue was reported, or nothing could be explored',
82
+ };
83
+ const EXPLORE_EXIT_CODES = EXIT_CODES.map(([code, meaning]) => [code, EXPLORE_EXIT_MEANINGS[code] ?? meaning]);
66
84
  /** A titled block indented like commander's own help sections. */
67
85
  function helpSection(title, lines) {
68
86
  return [pc.bold(title), ...lines.map((line) => ` ${line}`)].join('\n');
69
87
  }
88
+ function exitCodesSection(codes) {
89
+ return helpSection('Exit codes:', codes.map(([code, meaning]) => `${pc.cyan(code.padEnd(3))} ${meaning}`));
90
+ }
70
91
  function examples(commands) {
71
92
  return helpSection('Examples:', commands.map((command) => `${pc.dim('$')} ${command}`));
72
93
  }
@@ -87,6 +108,31 @@ function usedFlags(command) {
87
108
  .flatMap((option) => option.long !== undefined && command.getOptionValueSource(option.attributeName()) === 'cli' ? [option.long] : [])
88
109
  .toSorted();
89
110
  }
111
+ /**
112
+ * Runs a command that ends in a run outcome: under the Ctrl-C ladder, with the
113
+ * exit code the outcome carries, and the run recorded for telemetry. What
114
+ * throws before a run starts (a config that would not load, an unknown agent
115
+ * or target) prints as `CODE: message` with the code's exit status; the run's
116
+ * own failures are already in its report and its exit code.
117
+ */
118
+ async function runToOutcome(telemetry, command, start) {
119
+ const signals = new SignalLadder();
120
+ const release = signals.arm();
121
+ try {
122
+ const outcome = await start(signals);
123
+ process.exitCode = outcome.exitCode;
124
+ // The run event is the report's own numbers; every run has a report, even one that failed before its first test.
125
+ telemetry.record(runCompletedEvent(outcome.report, usedFlags(command)));
126
+ }
127
+ catch (cause) {
128
+ const error = classifyError(cause);
129
+ process.stderr.write(`${error.code}: ${error.message}\n`);
130
+ process.exitCode = exitCodeForCategory(error.category);
131
+ }
132
+ finally {
133
+ release();
134
+ }
135
+ }
90
136
  /** Builds the commander program. */
91
137
  function createProgram(version, telemetry) {
92
138
  const program = new Command('e2e');
@@ -113,9 +159,11 @@ function createProgram(version, telemetry) {
113
159
  'e2e run',
114
160
  'e2e run tests/signup.e2e.ts --headed',
115
161
  'e2e run --tag smoke --reporter list,junit',
162
+ "e2e explore 'Explore checkout like a first-time buyer and find bugs'",
116
163
  'e2e list --tag smoke',
117
164
  'e2e cache ls',
118
165
  'e2e guide',
166
+ 'e2e mcp',
119
167
  'e2e telemetry disable',
120
168
  ]),
121
169
  '',
@@ -158,6 +206,22 @@ function createProgram(version, telemetry) {
158
206
  .action((topic) => {
159
207
  process.exitCode = guide(topic);
160
208
  });
209
+ program
210
+ .command('mcp')
211
+ .summary('serve the project to a coding agent over MCP')
212
+ .description('Serve an MCP server over stdio for a coding agent such as Claude Code or Cursor: open_session opens a live session on one target of any config the agent names, call runs the session\'s tools (observe, tap, type, press, select, scroll, navigate, type_secret, locate, screenshot, and the project\'s own), tools describes them, close_session ends it. The agent explores the real app before writing a test. Register it with the client, e.g. claude mcp add e2e -- npx --no-install e2e mcp.')
213
+ .option('--config <path>', 'config file (default: the nearest e2e.config.ts)')
214
+ .option('--target <name>', 'target every session opens on (default: the only target, or the one open_session names)')
215
+ .option('--headless', 'hide the UI during live sessions (default: headed outside CI)')
216
+ .addHelpText('after', [
217
+ '',
218
+ examples(['e2e mcp', 'e2e mcp --target web --headless', 'claude mcp add e2e -- npx --no-install e2e mcp']),
219
+ '',
220
+ docsLine('/reference/mcp'),
221
+ ].join('\n'))
222
+ .action(async (options) => {
223
+ process.exitCode = await mcp(version, options);
224
+ });
161
225
  program
162
226
  .command('run')
163
227
  .summary('run the tests')
@@ -174,7 +238,7 @@ function createProgram(version, telemetry) {
174
238
  .option('--pass-with-no-tests', 'exit 0 on an empty selection instead of NO_TESTS')
175
239
  .optionsGroup('Execution:')
176
240
  .option('--headed', 'show the UI while tests run, when the engine supports it')
177
- .option('--agent <name>', 'the configured agent to run with (default: agents.default)')
241
+ .option('--agent <names>', 'the configured agent unpinned tests run with (default: agents.default); comma-separated or repeated names run each such test once per agent', (value, previous = []) => [...previous, ...parseList(value)])
178
242
  .option('--workers <n>', 'parallel workers (default: from the config)', parseNonNegativeInt)
179
243
  .option('--retries <n>', 'retries per failing test (default: from the config)', parseNonNegativeInt)
180
244
  .option('--no-cache', 'run with the trace cache off, whatever the config says')
@@ -192,47 +256,87 @@ function createProgram(version, telemetry) {
192
256
  "e2e run 'tests/**/*.smoke.e2e.ts' --target web --tag smoke",
193
257
  'e2e run --reporter list,junit --workers 4 --retries 2',
194
258
  'e2e run --agent ux tests/onboarding.e2e.ts',
195
- 'E2E_MODEL=provider/model-id E2E_MODEL_API_KEY=... e2e run --no-cache',
259
+ 'e2e run --agent buyer,admin tests/checkout.e2e.ts',
260
+ 'AI_GATEWAY_API_KEY=... e2e run --no-cache',
196
261
  ]),
197
262
  '',
198
- helpSection('Exit codes:', EXIT_CODES.map(([code, meaning]) => `${pc.cyan(code.padEnd(3))} ${meaning}`)),
263
+ exitCodesSection(EXIT_CODES),
199
264
  '',
200
265
  docsLine('/reference/cli#exit-codes'),
201
266
  ].join('\n'))
202
267
  .action(async (files,
203
268
  // Each value is what its parser returned, so a bad one never reaches here.
204
- options, command) => {
205
- const signals = new SignalLadder();
206
- const release = signals.arm();
207
- try {
208
- const outcome = await run({
209
- files,
210
- configPath: options.config,
211
- targetIds: options.target,
212
- tags: options.tag,
213
- tagMode: options.tagMode,
214
- headed: options.headed,
215
- agent: options.agent,
216
- retries: options.retries,
217
- workers: options.workers,
218
- reporters: options.reporter,
219
- artifactsDir: options.artifacts,
220
- noCache: options.cache === false,
221
- passWithNoTests: options.passWithNoTests,
222
- debug: options.debug,
223
- aiTrace: options.aiTrace,
224
- video: options.video,
225
- interruptSignal: signals.interruptSignal,
226
- forceSignal: signals.forceSignal,
227
- });
228
- process.exitCode = outcome.exitCode;
229
- // The run event is the report's own numbers; every run has a report, even one that failed before its first test.
230
- telemetry.record(runCompletedEvent(outcome.report, usedFlags(command)));
231
- }
232
- finally {
233
- release();
234
- }
235
- });
269
+ options, command) => runToOutcome(telemetry, command, (signals) => run({
270
+ files,
271
+ configPath: options.config,
272
+ targetIds: options.target,
273
+ tags: options.tag,
274
+ tagMode: options.tagMode,
275
+ headed: options.headed,
276
+ agent: options.agent,
277
+ retries: options.retries,
278
+ workers: options.workers,
279
+ reporters: options.reporter,
280
+ artifactsDir: options.artifacts,
281
+ noCache: options.cache === false,
282
+ passWithNoTests: options.passWithNoTests,
283
+ debug: options.debug,
284
+ aiTrace: options.aiTrace,
285
+ video: options.video,
286
+ interruptSignal: signals.interruptSignal,
287
+ forceSignal: signals.forceSignal,
288
+ })));
289
+ program
290
+ .command('explore')
291
+ .summary('explore the app toward a goal and report findings, without a test file')
292
+ .description('Run the agent against the app with a goal instead of a test: it plans one exploration step at a time, drives the app, reports every defect it has evidence of, and ends with an assessment. The run writes .e2e/report.json like e2e run, with the exploration record under run.explore. The model is the one the selected agent holds, as for e2e run.')
293
+ .argument('[goal]', 'what to explore, in a sentence (default: "Explore the app and find bugs")')
294
+ .optionsGroup('Selection:')
295
+ .option('--config <path>', 'config file (default: the nearest e2e.config.ts)')
296
+ .option('--target <id>', 'the target to explore (default: the first configured target)')
297
+ .option('--agent <name>', 'the configured agent to explore with (default: agents.default)')
298
+ .optionsGroup('Budgets:')
299
+ .option('--max-steps <n>', `exploration steps at most, ${STEP_BOUNDS.min} through ${STEP_BOUNDS.max} (default: ${STEP_BOUNDS.default})`, parseBoundedInt(STEP_BOUNDS))
300
+ .option('--timeout <ms>', `wall clock in milliseconds, ${TIMEOUT_BOUNDS.min} through ${TIMEOUT_BOUNDS.max} (default: ${TIMEOUT_BOUNDS.default})`, parseBoundedInt(TIMEOUT_BOUNDS))
301
+ .optionsGroup('Execution:')
302
+ .option('--headed', 'show the UI while the agent explores, when the engine supports it')
303
+ .optionsGroup('Output:')
304
+ .option('--reporter <ids>', 'comma-separated reporters: list, json, junit', parseReporters)
305
+ .option('--artifacts <dir>', 'artifact root (default: .e2e/artifacts)')
306
+ .option('--debug', 'print phase timings and the agent step table to stderr')
307
+ .option('--ai-trace', 'record every model call to .e2e/ai-trace.json (unbox-ai)')
308
+ .option('--video', 'record a video of the exploration, when the engine supports it')
309
+ .addHelpText('after', [
310
+ '',
311
+ examples([
312
+ 'e2e explore',
313
+ "e2e explore 'Explore the checkout flow like a first-time buyer and report anything off'",
314
+ 'e2e explore --target web --max-steps 4 --headed',
315
+ "e2e explore --agent ux 'Review onboarding as a first-time user'",
316
+ "e2e explore 'Hunt for broken forms and dead links' --video",
317
+ ]),
318
+ '',
319
+ exitCodesSection(EXPLORE_EXIT_CODES),
320
+ '',
321
+ docsLine('/explore'),
322
+ ].join('\n'))
323
+ .action(async (goal, options, command) => runToOutcome(telemetry, command, (signals) => explore({
324
+ goal,
325
+ configPath: options.config,
326
+ target: options.target,
327
+ agent: options.agent,
328
+ maxSteps: options.maxSteps,
329
+ timeoutMs: options.timeout,
330
+ headed: options.headed,
331
+ reporters: options.reporter,
332
+ artifactsDir: options.artifacts,
333
+ debug: options.debug,
334
+ aiTrace: options.aiTrace,
335
+ video: options.video,
336
+ interruptSignal: signals.interruptSignal,
337
+ forceSignal: signals.forceSignal,
338
+ notice: (message) => process.stderr.write(`e2e explore: ${message}\n`),
339
+ })));
236
340
  program
237
341
  .command('list')
238
342
  .summary('print the tests a run would select, without running them')