@e2edev/e2e 0.9.0 → 0.11.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 (230) hide show
  1. package/README.md +12 -6
  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 +2 -2
  5. package/dist/agent/act-validation.js.map +1 -1
  6. package/dist/agent/act.d.ts +1 -0
  7. package/dist/agent/act.d.ts.map +1 -1
  8. package/dist/agent/act.js +41 -18
  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 +17 -2
  15. package/dist/agent/default-agent.d.ts.map +1 -1
  16. package/dist/agent/default-agent.js +17 -3
  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/index.d.ts.map +1 -1
  25. package/dist/agent/index.js +17 -12
  26. package/dist/agent/index.js.map +1 -1
  27. package/dist/agent/invocation.d.ts +26 -6
  28. package/dist/agent/invocation.d.ts.map +1 -1
  29. package/dist/agent/invocation.js +9 -6
  30. package/dist/agent/invocation.js.map +1 -1
  31. package/dist/agent/model/adapter.d.ts +3 -0
  32. package/dist/agent/model/adapter.d.ts.map +1 -1
  33. package/dist/agent/model/adapter.js.map +1 -1
  34. package/dist/agent/model/overflow.d.ts +20 -0
  35. package/dist/agent/model/overflow.d.ts.map +1 -0
  36. package/dist/agent/model/overflow.js +82 -0
  37. package/dist/agent/model/overflow.js.map +1 -0
  38. package/dist/agent/model/prompt-cache.d.ts +47 -0
  39. package/dist/agent/model/prompt-cache.d.ts.map +1 -0
  40. package/dist/agent/model/prompt-cache.js +78 -0
  41. package/dist/agent/model/prompt-cache.js.map +1 -0
  42. package/dist/agent/model/sdk.d.ts +41 -24
  43. package/dist/agent/model/sdk.d.ts.map +1 -1
  44. package/dist/agent/model/sdk.js +64 -91
  45. package/dist/agent/model/sdk.js.map +1 -1
  46. package/dist/agent/primitives.d.ts.map +1 -1
  47. package/dist/agent/primitives.js +2 -1
  48. package/dist/agent/primitives.js.map +1 -1
  49. package/dist/agent/public.d.ts +1 -1
  50. package/dist/agent/public.d.ts.map +1 -1
  51. package/dist/agent/public.js.map +1 -1
  52. package/dist/agent/screen-update.d.ts +8 -3
  53. package/dist/agent/screen-update.d.ts.map +1 -1
  54. package/dist/agent/screen-update.js +18 -5
  55. package/dist/agent/screen-update.js.map +1 -1
  56. package/dist/agent/tool-loop.d.ts.map +1 -1
  57. package/dist/agent/tool-loop.js +149 -33
  58. package/dist/agent/tool-loop.js.map +1 -1
  59. package/dist/agent/tool-output.d.ts +31 -0
  60. package/dist/agent/tool-output.d.ts.map +1 -0
  61. package/dist/agent/tool-output.js +60 -0
  62. package/dist/agent/tool-output.js.map +1 -0
  63. package/dist/agent/tool.d.ts +9 -3
  64. package/dist/agent/tool.d.ts.map +1 -1
  65. package/dist/agent/tool.js +2 -2
  66. package/dist/agent/tool.js.map +1 -1
  67. package/dist/agent/usage.d.ts +7 -0
  68. package/dist/agent/usage.d.ts.map +1 -1
  69. package/dist/agent/usage.js +11 -0
  70. package/dist/agent/usage.js.map +1 -1
  71. package/dist/cli/index.d.ts.map +1 -1
  72. package/dist/cli/index.js +121 -33
  73. package/dist/cli/index.js.map +1 -1
  74. package/dist/cli/init/engine-versions.json +1 -0
  75. package/dist/cli/init/engines.d.ts +13 -8
  76. package/dist/cli/init/engines.d.ts.map +1 -1
  77. package/dist/cli/init/engines.js +26 -7
  78. package/dist/cli/init/engines.js.map +1 -1
  79. package/dist/cli/init/gateways.d.ts +22 -0
  80. package/dist/cli/init/gateways.d.ts.map +1 -0
  81. package/dist/cli/init/gateways.js +50 -0
  82. package/dist/cli/init/gateways.js.map +1 -0
  83. package/dist/cli/init/scaffold.d.ts +7 -1
  84. package/dist/cli/init/scaffold.d.ts.map +1 -1
  85. package/dist/cli/init/scaffold.js +26 -13
  86. package/dist/cli/init/scaffold.js.map +1 -1
  87. package/dist/cli/init.d.ts.map +1 -1
  88. package/dist/cli/init.js +51 -13
  89. package/dist/cli/init.js.map +1 -1
  90. package/dist/collect/collect.d.ts +7 -0
  91. package/dist/collect/collect.d.ts.map +1 -1
  92. package/dist/collect/collect.js +16 -0
  93. package/dist/collect/collect.js.map +1 -1
  94. package/dist/collect/registry.d.ts.map +1 -1
  95. package/dist/collect/registry.js +13 -4
  96. package/dist/collect/registry.js.map +1 -1
  97. package/dist/collect/select.d.ts +2 -0
  98. package/dist/collect/select.d.ts.map +1 -1
  99. package/dist/collect/select.js +9 -0
  100. package/dist/collect/select.js.map +1 -1
  101. package/dist/config/agent.d.ts +16 -33
  102. package/dist/config/agent.d.ts.map +1 -1
  103. package/dist/config/agent.js +50 -140
  104. package/dist/config/agent.js.map +1 -1
  105. package/dist/config/esm-hooks.d.ts +28 -0
  106. package/dist/config/esm-hooks.d.ts.map +1 -0
  107. package/dist/config/esm-hooks.js +35 -0
  108. package/dist/config/esm-hooks.js.map +1 -0
  109. package/dist/config/load.d.ts +6 -0
  110. package/dist/config/load.d.ts.map +1 -1
  111. package/dist/config/load.js +52 -5
  112. package/dist/config/load.js.map +1 -1
  113. package/dist/config/resolve.d.ts +7 -0
  114. package/dist/config/resolve.d.ts.map +1 -1
  115. package/dist/config/resolve.js +53 -13
  116. package/dist/config/resolve.js.map +1 -1
  117. package/dist/engine/index.d.ts +8 -2
  118. package/dist/engine/index.d.ts.map +1 -1
  119. package/dist/engine/index.js.map +1 -1
  120. package/dist/engine/surface.d.ts +2 -2
  121. package/dist/engine/surface.d.ts.map +1 -1
  122. package/dist/explore/body.d.ts +36 -0
  123. package/dist/explore/body.d.ts.map +1 -0
  124. package/dist/explore/body.js +168 -0
  125. package/dist/explore/body.js.map +1 -0
  126. package/dist/explore/executor.d.ts +25 -0
  127. package/dist/explore/executor.d.ts.map +1 -0
  128. package/dist/explore/executor.js +86 -0
  129. package/dist/explore/executor.js.map +1 -0
  130. package/dist/explore/index.d.ts +64 -0
  131. package/dist/explore/index.d.ts.map +1 -0
  132. package/dist/explore/index.js +183 -0
  133. package/dist/explore/index.js.map +1 -0
  134. package/dist/explore/plan.d.ts +74 -0
  135. package/dist/explore/plan.d.ts.map +1 -0
  136. package/dist/explore/plan.js +149 -0
  137. package/dist/explore/plan.js.map +1 -0
  138. package/dist/explore/reporter.d.ts +11 -0
  139. package/dist/explore/reporter.d.ts.map +1 -0
  140. package/dist/explore/reporter.js +54 -0
  141. package/dist/explore/reporter.js.map +1 -0
  142. package/dist/explore/state.d.ts +58 -0
  143. package/dist/explore/state.d.ts.map +1 -0
  144. package/dist/explore/state.js +147 -0
  145. package/dist/explore/state.js.map +1 -0
  146. package/dist/internal/atomic-write.d.ts +1 -1
  147. package/dist/internal/atomic-write.d.ts.map +1 -1
  148. package/dist/internal/atomic-write.js.map +1 -1
  149. package/dist/internal/package-version.d.ts +2 -0
  150. package/dist/internal/package-version.d.ts.map +1 -1
  151. package/dist/internal/package-version.js +9 -0
  152. package/dist/internal/package-version.js.map +1 -1
  153. package/dist/internal/redact.d.ts +12 -4
  154. package/dist/internal/redact.d.ts.map +1 -1
  155. package/dist/internal/redact.js +61 -12
  156. package/dist/internal/redact.js.map +1 -1
  157. package/dist/internal/zip.d.ts +32 -0
  158. package/dist/internal/zip.d.ts.map +1 -0
  159. package/dist/internal/zip.js +183 -0
  160. package/dist/internal/zip.js.map +1 -0
  161. package/dist/report/build.d.ts +55 -0
  162. package/dist/report/build.d.ts.map +1 -1
  163. package/dist/report/build.js +10 -1
  164. package/dist/report/build.js.map +1 -1
  165. package/dist/report/debug-steps.d.ts.map +1 -1
  166. package/dist/report/debug-steps.js +15 -0
  167. package/dist/report/debug-steps.js.map +1 -1
  168. package/dist/report/format.d.ts +11 -1
  169. package/dist/report/format.d.ts.map +1 -1
  170. package/dist/report/format.js +15 -3
  171. package/dist/report/format.js.map +1 -1
  172. package/dist/report/list.d.ts.map +1 -1
  173. package/dist/report/list.js +2 -0
  174. package/dist/report/list.js.map +1 -1
  175. package/dist/run/artifacts.d.ts.map +1 -1
  176. package/dist/run/artifacts.js +8 -6
  177. package/dist/run/artifacts.js.map +1 -1
  178. package/dist/run/events.d.ts +4 -2
  179. package/dist/run/events.d.ts.map +1 -1
  180. package/dist/run/events.js.map +1 -1
  181. package/dist/run/execute.d.ts.map +1 -1
  182. package/dist/run/execute.js +29 -2
  183. package/dist/run/execute.js.map +1 -1
  184. package/dist/run/fixtures.d.ts +10 -1
  185. package/dist/run/fixtures.d.ts.map +1 -1
  186. package/dist/run/fixtures.js +39 -22
  187. package/dist/run/fixtures.js.map +1 -1
  188. package/dist/run/in-process.d.ts +8 -0
  189. package/dist/run/in-process.d.ts.map +1 -1
  190. package/dist/run/in-process.js +3 -3
  191. package/dist/run/in-process.js.map +1 -1
  192. package/dist/run/records.d.ts +8 -6
  193. package/dist/run/records.d.ts.map +1 -1
  194. package/dist/run/runner.d.ts +22 -1
  195. package/dist/run/runner.d.ts.map +1 -1
  196. package/dist/run/runner.js +22 -14
  197. package/dist/run/runner.js.map +1 -1
  198. package/dist/run/secrecy.d.ts +23 -0
  199. package/dist/run/secrecy.d.ts.map +1 -0
  200. package/dist/run/secrecy.js +22 -0
  201. package/dist/run/secrecy.js.map +1 -0
  202. package/dist/run/steps.d.ts +11 -0
  203. package/dist/run/steps.d.ts.map +1 -1
  204. package/dist/run/steps.js +1 -0
  205. package/dist/run/steps.js.map +1 -1
  206. package/dist/run/trace-redaction.d.ts +17 -0
  207. package/dist/run/trace-redaction.d.ts.map +1 -0
  208. package/dist/run/trace-redaction.js +148 -0
  209. package/dist/run/trace-redaction.js.map +1 -0
  210. package/dist/run/worker-models.d.ts +14 -14
  211. package/dist/run/worker-models.d.ts.map +1 -1
  212. package/dist/run/worker-models.js +34 -26
  213. package/dist/run/worker-models.js.map +1 -1
  214. package/dist/telemetry/events.d.ts.map +1 -1
  215. package/dist/telemetry/events.js +17 -2
  216. package/dist/telemetry/events.js.map +1 -1
  217. package/dist/types.d.ts +32 -25
  218. package/dist/types.d.ts.map +1 -1
  219. package/package.json +6 -4
  220. package/skills/e2e/SKILL.md +12 -5
  221. package/skills/e2e/references/agent.md +22 -17
  222. package/skills/e2e/references/debugging.md +3 -2
  223. package/skills/e2e/references/explore.md +83 -0
  224. package/skills/e2e/references/running.md +8 -3
  225. package/skills/e2e/references/setup.md +17 -13
  226. package/skills/e2e/references/writing-tests.md +1 -0
  227. package/dist/config/esm.d.ts +0 -4
  228. package/dist/config/esm.d.ts.map +0 -1
  229. package/dist/config/esm.js +0 -35
  230. package/dist/config/esm.js.map +0 -1
@@ -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 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA,eAAe;AAmaf,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;AAyiBf,4CAA4C;AAC5C,wBAAsB,IAAI,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAmBjE"}
package/dist/cli/index.js CHANGED
@@ -5,6 +5,7 @@ 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';
@@ -34,6 +35,16 @@ function parseList(value) {
34
35
  .map((item) => item.trim())
35
36
  .filter((item) => item !== '');
36
37
  }
38
+ /** An integer inside a closed range, for the explore budgets. */
39
+ function parseBoundedInt(bounds) {
40
+ return (value) => {
41
+ const parsed = Number(value);
42
+ if (!Number.isSafeInteger(parsed) || parsed < bounds.min || parsed > bounds.max) {
43
+ throw new InvalidArgumentError(`must be an integer from ${bounds.min} through ${bounds.max}`);
44
+ }
45
+ return parsed;
46
+ };
47
+ }
37
48
  const REPORTERS = ['list', 'json', 'junit'];
38
49
  function isReporter(value) {
39
50
  return REPORTERS.includes(value);
@@ -63,10 +74,19 @@ const EXIT_CODES = [
63
74
  ['4', 'internal runner error'],
64
75
  ['130', 'interrupted by Ctrl-C or a CI signal'],
65
76
  ];
77
+ /** `explore` exits as `run` does; only what a pass and a failure mean differs. */
78
+ const EXPLORE_EXIT_MEANINGS = {
79
+ '0': 'the exploration ran and reported no issue (warnings do not count)',
80
+ '1': 'at least one issue was reported, or nothing could be explored',
81
+ };
82
+ const EXPLORE_EXIT_CODES = EXIT_CODES.map(([code, meaning]) => [code, EXPLORE_EXIT_MEANINGS[code] ?? meaning]);
66
83
  /** A titled block indented like commander's own help sections. */
67
84
  function helpSection(title, lines) {
68
85
  return [pc.bold(title), ...lines.map((line) => ` ${line}`)].join('\n');
69
86
  }
87
+ function exitCodesSection(codes) {
88
+ return helpSection('Exit codes:', codes.map(([code, meaning]) => `${pc.cyan(code.padEnd(3))} ${meaning}`));
89
+ }
70
90
  function examples(commands) {
71
91
  return helpSection('Examples:', commands.map((command) => `${pc.dim('$')} ${command}`));
72
92
  }
@@ -87,6 +107,31 @@ function usedFlags(command) {
87
107
  .flatMap((option) => option.long !== undefined && command.getOptionValueSource(option.attributeName()) === 'cli' ? [option.long] : [])
88
108
  .toSorted();
89
109
  }
110
+ /**
111
+ * Runs a command that ends in a run outcome: under the Ctrl-C ladder, with the
112
+ * exit code the outcome carries, and the run recorded for telemetry. What
113
+ * throws before a run starts (a config that would not load, an unknown agent
114
+ * or target) prints as `CODE: message` with the code's exit status; the run's
115
+ * own failures are already in its report and its exit code.
116
+ */
117
+ async function runToOutcome(telemetry, command, start) {
118
+ const signals = new SignalLadder();
119
+ const release = signals.arm();
120
+ try {
121
+ const outcome = await start(signals);
122
+ process.exitCode = outcome.exitCode;
123
+ // The run event is the report's own numbers; every run has a report, even one that failed before its first test.
124
+ telemetry.record(runCompletedEvent(outcome.report, usedFlags(command)));
125
+ }
126
+ catch (cause) {
127
+ const error = classifyError(cause);
128
+ process.stderr.write(`${error.code}: ${error.message}\n`);
129
+ process.exitCode = exitCodeForCategory(error.category);
130
+ }
131
+ finally {
132
+ release();
133
+ }
134
+ }
90
135
  /** Builds the commander program. */
91
136
  function createProgram(version, telemetry) {
92
137
  const program = new Command('e2e');
@@ -113,6 +158,7 @@ function createProgram(version, telemetry) {
113
158
  'e2e run',
114
159
  'e2e run tests/signup.e2e.ts --headed',
115
160
  'e2e run --tag smoke --reporter list,junit',
161
+ "e2e explore 'Explore checkout like a first-time buyer and find bugs'",
116
162
  'e2e list --tag smoke',
117
163
  'e2e cache ls',
118
164
  'e2e guide',
@@ -174,6 +220,7 @@ function createProgram(version, telemetry) {
174
220
  .option('--pass-with-no-tests', 'exit 0 on an empty selection instead of NO_TESTS')
175
221
  .optionsGroup('Execution:')
176
222
  .option('--headed', 'show the UI while tests run, when the engine supports it')
223
+ .option('--agent <name>', 'the configured agent to run with (default: agents.default)')
177
224
  .option('--workers <n>', 'parallel workers (default: from the config)', parseNonNegativeInt)
178
225
  .option('--retries <n>', 'retries per failing test (default: from the config)', parseNonNegativeInt)
179
226
  .option('--no-cache', 'run with the trace cache off, whatever the config says')
@@ -190,46 +237,87 @@ function createProgram(version, telemetry) {
190
237
  'e2e run tests/signup.e2e.ts --headed',
191
238
  "e2e run 'tests/**/*.smoke.e2e.ts' --target web --tag smoke",
192
239
  'e2e run --reporter list,junit --workers 4 --retries 2',
193
- 'E2E_MODEL=provider/model-id E2E_MODEL_API_KEY=... e2e run --no-cache',
240
+ 'e2e run --agent ux tests/onboarding.e2e.ts',
241
+ 'AI_GATEWAY_API_KEY=... e2e run --no-cache',
194
242
  ]),
195
243
  '',
196
- helpSection('Exit codes:', EXIT_CODES.map(([code, meaning]) => `${pc.cyan(code.padEnd(3))} ${meaning}`)),
244
+ exitCodesSection(EXIT_CODES),
197
245
  '',
198
246
  docsLine('/reference/cli#exit-codes'),
199
247
  ].join('\n'))
200
248
  .action(async (files,
201
249
  // Each value is what its parser returned, so a bad one never reaches here.
202
- options, command) => {
203
- const signals = new SignalLadder();
204
- const release = signals.arm();
205
- try {
206
- const outcome = await run({
207
- files,
208
- configPath: options.config,
209
- targetIds: options.target,
210
- tags: options.tag,
211
- tagMode: options.tagMode,
212
- headed: options.headed,
213
- retries: options.retries,
214
- workers: options.workers,
215
- reporters: options.reporter,
216
- artifactsDir: options.artifacts,
217
- noCache: options.cache === false,
218
- passWithNoTests: options.passWithNoTests,
219
- debug: options.debug,
220
- aiTrace: options.aiTrace,
221
- video: options.video,
222
- interruptSignal: signals.interruptSignal,
223
- forceSignal: signals.forceSignal,
224
- });
225
- process.exitCode = outcome.exitCode;
226
- // The run event is the report's own numbers; every run has a report, even one that failed before its first test.
227
- telemetry.record(runCompletedEvent(outcome.report, usedFlags(command)));
228
- }
229
- finally {
230
- release();
231
- }
232
- });
250
+ options, command) => runToOutcome(telemetry, command, (signals) => run({
251
+ files,
252
+ configPath: options.config,
253
+ targetIds: options.target,
254
+ tags: options.tag,
255
+ tagMode: options.tagMode,
256
+ headed: options.headed,
257
+ agent: options.agent,
258
+ retries: options.retries,
259
+ workers: options.workers,
260
+ reporters: options.reporter,
261
+ artifactsDir: options.artifacts,
262
+ noCache: options.cache === false,
263
+ passWithNoTests: options.passWithNoTests,
264
+ debug: options.debug,
265
+ aiTrace: options.aiTrace,
266
+ video: options.video,
267
+ interruptSignal: signals.interruptSignal,
268
+ forceSignal: signals.forceSignal,
269
+ })));
270
+ program
271
+ .command('explore')
272
+ .summary('explore the app toward a goal and report findings, without a test file')
273
+ .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 comes from agent.model or E2E_MODEL.')
274
+ .argument('[goal]', 'what to explore, in a sentence (default: "Explore the app and find bugs")')
275
+ .optionsGroup('Selection:')
276
+ .option('--config <path>', 'config file (default: the nearest e2e.config.ts)')
277
+ .option('--target <id>', 'the target to explore (default: the first configured target)')
278
+ .option('--agent <name>', 'the configured agent to explore with (default: agents.default)')
279
+ .optionsGroup('Budgets:')
280
+ .option('--max-steps <n>', `exploration steps at most, ${STEP_BOUNDS.min} through ${STEP_BOUNDS.max} (default: ${STEP_BOUNDS.default})`, parseBoundedInt(STEP_BOUNDS))
281
+ .option('--timeout <ms>', `wall clock in milliseconds, ${TIMEOUT_BOUNDS.min} through ${TIMEOUT_BOUNDS.max} (default: ${TIMEOUT_BOUNDS.default})`, parseBoundedInt(TIMEOUT_BOUNDS))
282
+ .optionsGroup('Execution:')
283
+ .option('--headed', 'show the UI while the agent explores, when the engine supports it')
284
+ .optionsGroup('Output:')
285
+ .option('--reporter <ids>', 'comma-separated reporters: list, json, junit', parseReporters)
286
+ .option('--artifacts <dir>', 'artifact root (default: .e2e/artifacts)')
287
+ .option('--debug', 'print phase timings and the agent step table to stderr')
288
+ .option('--ai-trace', 'record every model call to .e2e/ai-trace.json (unbox-ai)')
289
+ .option('--video', 'record a video of the exploration, when the engine supports it')
290
+ .addHelpText('after', [
291
+ '',
292
+ examples([
293
+ 'e2e explore',
294
+ "e2e explore 'Explore the checkout flow like a first-time buyer and report anything off'",
295
+ 'e2e explore --target web --max-steps 4 --headed',
296
+ "e2e explore --agent ux 'Review onboarding as a first-time user'",
297
+ "E2E_MODEL=provider/model-id e2e explore 'Hunt for broken forms and dead links' --video",
298
+ ]),
299
+ '',
300
+ exitCodesSection(EXPLORE_EXIT_CODES),
301
+ '',
302
+ docsLine('/explore'),
303
+ ].join('\n'))
304
+ .action(async (goal, options, command) => runToOutcome(telemetry, command, (signals) => explore({
305
+ goal,
306
+ configPath: options.config,
307
+ target: options.target,
308
+ agent: options.agent,
309
+ maxSteps: options.maxSteps,
310
+ timeoutMs: options.timeout,
311
+ headed: options.headed,
312
+ reporters: options.reporter,
313
+ artifactsDir: options.artifacts,
314
+ debug: options.debug,
315
+ aiTrace: options.aiTrace,
316
+ video: options.video,
317
+ interruptSignal: signals.interruptSignal,
318
+ forceSignal: signals.forceSignal,
319
+ notice: (message) => process.stderr.write(`e2e explore: ${message}\n`),
320
+ })));
233
321
  program
234
322
  .command('list')
235
323
  .summary('print the tests a run would select, without running them')
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"@e2edev/playwright":"0.8.0","@e2edev/agent-device":"0.5.1"}
@@ -10,14 +10,21 @@ export interface EnginePreset {
10
10
  readonly aiExample?: string;
11
11
  readonly runCommand: string;
12
12
  }
13
+ /**
14
+ * The range init writes for an engine. Engines version independently of the
15
+ * runner and pin it through their own peer range, so init asks for the minor
16
+ * of the engine released alongside this runner. Package managers resolve a
17
+ * range to the registry's `latest` tag whenever it satisfies, and `latest`
18
+ * can trail the tag the runner came from by several minors, so a bare `0.x`
19
+ * installed engines whose peer range rejected the runner.
20
+ */
21
+ export declare function engineRange(version: string | undefined): string;
13
22
  /** Builds prompt choices and scaffolds with defaults for the machine running init. */
14
23
  export declare function getEnginePresets(): readonly [{
15
24
  readonly id: 'playwright';
16
25
  readonly label: 'Playwright';
17
26
  readonly hint: 'browser testing';
18
- readonly dependencies: {
19
- readonly '@e2edev/playwright': "0.x";
20
- };
27
+ readonly dependencies: Readonly<Record<string, string>>;
21
28
  readonly imports: readonly ["import { playwright } from '@e2edev/playwright';"];
22
29
  readonly config: ` // The engine declares the app it drives; APP_URL overrides the default at run time.
23
30
  targets: [{
@@ -37,7 +44,7 @@ test('app opens', async ({ app, web }) => {
37
44
  });
38
45
  `;
39
46
  readonly aiExample: `
40
- // Runs when E2E_MODEL and E2E_MODEL_API_KEY are set:
47
+ // Runs once the key the model in e2e.config.ts reads is in the environment:
41
48
  // test('the agent drives a flow', async ({ app, agent }) => {
42
49
  // await app.open('/');
43
50
  // await agent.act('one goal in plain language');
@@ -65,13 +72,11 @@ test('app responds', async () => {
65
72
  readonly id: 'agent-device';
66
73
  readonly label: 'agent-device';
67
74
  readonly hint: 'mobile testing: iOS and Android';
68
- readonly dependencies: {
69
- readonly '@e2edev/agent-device': "0.x";
70
- };
75
+ readonly dependencies: Readonly<Record<string, string>>;
71
76
  readonly imports: readonly ["import { agentDevice } from '@e2edev/agent-device';"];
72
77
  readonly config: " // Requires Xcode and an iOS simulator. Replace Settings with your app's bundle ID.\n targets: [{ name: 'ios', engine: agentDevice({ platform: 'ios', app: 'Settings' }) }],\n workers: 1," | " // Requires the Android SDK and an emulator. Replace com.android.settings with your app's package.\n targets: [{ name: 'android', engine: agentDevice({ platform: 'android', app: 'com.android.settings' }) }],\n workers: 1,";
73
78
  readonly example: "import { test } from '@e2edev/agent-device';\nimport { expect } from '@e2edev/e2e';\n\ntest('Settings opens', async ({ screen }) => {\n await expect(screen.getByRole('button', { name: 'General' })).toBeVisible();\n});\n" | "import { test } from '@e2edev/agent-device';\nimport { expect } from '@e2edev/e2e';\n\ntest('Settings opens', async ({ screen }) => {\n await expect(screen.getByText('Network & internet')).toBeVisible();\n});\n";
74
- readonly aiExample: "\n// Runs when E2E_MODEL and E2E_MODEL_API_KEY are set:\n// test('the agent opens General', async ({ agent, device }) => {\n// await agent.act('open General settings');\n// await expect(device.locator('role=NavigationBar id=General')).toBeVisible();\n// });\n" | "\n// Runs when E2E_MODEL and E2E_MODEL_API_KEY are set:\n// test('the agent opens Network settings', async ({ agent, device }) => {\n// await agent.act('open Network & internet settings');\n// await expect(device.locator('id=com.android.settings:id/collapsing_toolbar')).toHaveText('Network & internet');\n// });\n";
79
+ readonly aiExample: "\n// Runs once the key the model in e2e.config.ts reads is in the environment:\n// test('the agent opens General', async ({ agent, device }) => {\n// await agent.act('open General settings');\n// await expect(device.locator('role=NavigationBar id=General')).toBeVisible();\n// });\n" | "\n// Runs once the key the model in e2e.config.ts reads is in the environment:\n// test('the agent opens Network settings', async ({ agent, device }) => {\n// await agent.act('open Network & internet settings');\n// await expect(device.locator('id=com.android.settings:id/collapsing_toolbar')).toHaveText('Network & internet');\n// });\n";
75
80
  readonly runCommand: 'npx --no-install e2e run';
76
81
  }];
77
82
  export type EngineId = ReturnType<typeof getEnginePresets>[number]['id'];
@@ -1 +1 @@
1
- {"version":3,"file":"engines.d.ts","sourceRoot":"","sources":["../../../src/cli/init/engines.ts"],"names":[],"mappings":"AAAA,gGAAgG;AAIhG,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACxD,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAKD,sFAAsF;AACtF,wBAAgB,gBAAgB;iBAItB,YAAY;oBACT,YAAY;mBACb,iBAAiB;;iBACP,oBAAoB;;;qBAE5B;;;;;;;;MAQR;sBACS;;;;;;;CAOd;wBACgB;;;;;;;CAOhB;yBACiB,wDAAwD;;iBAGhE,MAAM;oBACH,MAAM;mBACP,+BAA+B;;;qBAG7B;sDACwC;sBACvC;;;;;;CAMd;yBACiB,wDAAwD;;iBAGhE,cAAc;oBACX,cAAc;mBACf,iCAAiC;;iBACvB,sBAAsB;;;;;;yBA+B1B,0BAA0B;GAG3C;AAED,MAAM,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;AACzE,eAAO,MAAM,iBAAiB,eAAkC,CAAC;AAEjE,2EAA2E;AAC3E,wBAAgB,eAAe,CAAC,EAAE,EAAE,QAAQ,GAAG,YAAY,CAI1D"}
1
+ {"version":3,"file":"engines.d.ts","sourceRoot":"","sources":["../../../src/cli/init/engines.ts"],"names":[],"mappings":"AAAA,gGAAgG;AAKhG,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACxD,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AASD;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAE/D;AAMD,sFAAsF;AACtF,wBAAgB,gBAAgB;iBAItB,YAAY;oBACT,YAAY;mBACb,iBAAiB;;;qBAGf;;;;;;;;MAQR;sBACS;;;;;;;CAOd;wBACgB;;;;;;;CAOhB;yBACiB,wDAAwD;;iBAGhE,MAAM;oBACH,MAAM;mBACP,+BAA+B;;;qBAG7B;sDACwC;sBACvC;;;;;;CAMd;yBACiB,wDAAwD;;iBAGhE,cAAc;oBACX,cAAc;mBACf,iCAAiC;;;;;;yBAgC3B,0BAA0B;GAG3C;AAED,MAAM,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;AACzE,eAAO,MAAM,iBAAiB,eAAkC,CAAC;AAEjE,2EAA2E;AAC3E,wBAAgB,eAAe,CAAC,EAAE,EAAE,QAAQ,GAAG,YAAY,CAI1D"}
@@ -1,7 +1,26 @@
1
1
  /** CLI scaffold presets. Engine packages are referenced as generated source, never imported. */
2
2
  import os from 'node:os';
3
- /** Engines version independently of the runner and pin the runner through their own peer range. */
4
- const ENGINE_RANGE = '0.x';
3
+ import { readJson } from '../../internal/package-version.js';
4
+ /**
5
+ * Engine versions the build records next to this module, in
6
+ * `engine-versions.json`, from the sibling packages' manifests. Absent when
7
+ * running from source.
8
+ */
9
+ const ENGINE_VERSIONS = readJson(import.meta.url, './engine-versions.json');
10
+ /**
11
+ * The range init writes for an engine. Engines version independently of the
12
+ * runner and pin it through their own peer range, so init asks for the minor
13
+ * of the engine released alongside this runner. Package managers resolve a
14
+ * range to the registry's `latest` tag whenever it satisfies, and `latest`
15
+ * can trail the tag the runner came from by several minors, so a bare `0.x`
16
+ * installed engines whose peer range rejected the runner.
17
+ */
18
+ export function engineRange(version) {
19
+ return version === undefined ? '0.x' : `^${version}`;
20
+ }
21
+ function engineDependency(name) {
22
+ return { [name]: engineRange(ENGINE_VERSIONS?.[name]) };
23
+ }
5
24
  /** Builds prompt choices and scaffolds with defaults for the machine running init. */
6
25
  export function getEnginePresets() {
7
26
  const ios = os.platform() === 'darwin';
@@ -10,7 +29,7 @@ export function getEnginePresets() {
10
29
  id: 'playwright',
11
30
  label: 'Playwright',
12
31
  hint: 'browser testing',
13
- dependencies: { '@e2edev/playwright': ENGINE_RANGE },
32
+ dependencies: engineDependency('@e2edev/playwright'),
14
33
  imports: ["import { playwright } from '@e2edev/playwright';"],
15
34
  config: ` // The engine declares the app it drives; APP_URL overrides the default at run time.
16
35
  targets: [{
@@ -30,7 +49,7 @@ test('app opens', async ({ app, web }) => {
30
49
  });
31
50
  `,
32
51
  aiExample: `
33
- // Runs when E2E_MODEL and E2E_MODEL_API_KEY are set:
52
+ // Runs once the key the model in e2e.config.ts reads is in the environment:
34
53
  // test('the agent drives a flow', async ({ app, agent }) => {
35
54
  // await app.open('/');
36
55
  // await agent.act('one goal in plain language');
@@ -60,7 +79,7 @@ test('app responds', async () => {
60
79
  id: 'agent-device',
61
80
  label: 'agent-device',
62
81
  hint: 'mobile testing: iOS and Android',
63
- dependencies: { '@e2edev/agent-device': ENGINE_RANGE },
82
+ dependencies: engineDependency('@e2edev/agent-device'),
64
83
  imports: ["import { agentDevice } from '@e2edev/agent-device';"],
65
84
  config: ios
66
85
  ? ` // Requires Xcode and an iOS simulator. Replace Settings with your app's bundle ID.
@@ -78,14 +97,14 @@ test('Settings opens', async ({ screen }) => {
78
97
  `,
79
98
  aiExample: ios
80
99
  ? `
81
- // Runs when E2E_MODEL and E2E_MODEL_API_KEY are set:
100
+ // Runs once the key the model in e2e.config.ts reads is in the environment:
82
101
  // test('the agent opens General', async ({ agent, device }) => {
83
102
  // await agent.act('open General settings');
84
103
  // await expect(device.locator('role=NavigationBar id=General')).toBeVisible();
85
104
  // });
86
105
  `
87
106
  : `
88
- // Runs when E2E_MODEL and E2E_MODEL_API_KEY are set:
107
+ // Runs once the key the model in e2e.config.ts reads is in the environment:
89
108
  // test('the agent opens Network settings', async ({ agent, device }) => {
90
109
  // await agent.act('open Network & internet settings');
91
110
  // await expect(device.locator('id=com.android.settings:id/collapsing_toolbar')).toHaveText('Network & internet');
@@ -1 +1 @@
1
- {"version":3,"file":"engines.js","sourceRoot":"","sources":["../../../src/cli/init/engines.ts"],"names":[],"mappings":"AAAA,gGAAgG;AAEhG,OAAO,EAAE,MAAM,SAAS,CAAC;AAczB,mGAAmG;AACnG,MAAM,YAAY,GAAG,KAAK,CAAC;AAE3B,sFAAsF;AACtF,MAAM,UAAU,gBAAgB;IAC9B,MAAM,GAAG,GAAG,EAAE,CAAC,QAAQ,EAAE,KAAK,QAAQ,CAAC;IACvC,OAAO;QACL;YACE,EAAE,EAAE,YAAY;YAChB,KAAK,EAAE,YAAY;YACnB,IAAI,EAAE,iBAAiB;YACvB,YAAY,EAAE,EAAE,oBAAoB,EAAE,YAAY,EAAE;YACpD,OAAO,EAAE,CAAC,kDAAkD,CAAC;YAC7D,MAAM,EAAE;;;;;;;;MAQR;YACA,OAAO,EAAE;;;;;;;CAOd;YACK,SAAS,EAAE;;;;;;;CAOhB;YACK,UAAU,EAAE,wDAAwD;SACrE;QACD;YACE,EAAE,EAAE,MAAM;YACV,KAAK,EAAE,MAAM;YACb,IAAI,EAAE,+BAA+B;YACrC,YAAY,EAAE,EAAE;YAChB,OAAO,EAAE,EAAE;YACX,MAAM,EAAE;sDACwC;YAChD,OAAO,EAAE;;;;;;CAMd;YACK,UAAU,EAAE,wDAAwD;SACrE;QACD;YACE,EAAE,EAAE,cAAc;YAClB,KAAK,EAAE,cAAc;YACrB,IAAI,EAAE,iCAAiC;YACvC,YAAY,EAAE,EAAE,sBAAsB,EAAE,YAAY,EAAE;YACtD,OAAO,EAAE,CAAC,qDAAqD,CAAC;YAChE,MAAM,EAAE,GAAG;gBACT,CAAC,CAAC;;cAEI;gBACN,CAAC,CAAC;;cAEI;YACR,OAAO,EAAE;;;;iBAIE,GAAG,CAAC,CAAC,CAAC,iDAAiD,CAAC,CAAC,CAAC,wCAAwC;;CAElH;YACK,SAAS,EAAE,GAAG;gBACZ,CAAC,CAAC;;;;;;CAMT;gBACO,CAAC,CAAC;;;;;;CAMT;YACK,UAAU,EAAE,0BAA0B;SACvC;KACyC,CAAC;AAC/C,CAAC;AAGD,MAAM,CAAC,MAAM,iBAAiB,GAAG,YAA+B,CAAC;AAEjE,2EAA2E;AAC3E,MAAM,UAAU,eAAe,CAAC,EAAY;IAC1C,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IACnE,IAAI,MAAM,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;IACnE,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"engines.js","sourceRoot":"","sources":["../../../src/cli/init/engines.ts"],"names":[],"mappings":"AAAA,gGAAgG;AAEhG,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAc7D;;;;GAIG;AACH,MAAM,eAAe,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,GAAG,EAAE,wBAAwB,CAAiD,CAAC;AAE5H;;;;;;;GAOG;AACH,MAAM,UAAU,WAAW,CAAC,OAA2B;IACrD,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC;AACvD,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAY;IACpC,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;AAC1D,CAAC;AAED,sFAAsF;AACtF,MAAM,UAAU,gBAAgB;IAC9B,MAAM,GAAG,GAAG,EAAE,CAAC,QAAQ,EAAE,KAAK,QAAQ,CAAC;IACvC,OAAO;QACL;YACE,EAAE,EAAE,YAAY;YAChB,KAAK,EAAE,YAAY;YACnB,IAAI,EAAE,iBAAiB;YACvB,YAAY,EAAE,gBAAgB,CAAC,oBAAoB,CAAC;YACpD,OAAO,EAAE,CAAC,kDAAkD,CAAC;YAC7D,MAAM,EAAE;;;;;;;;MAQR;YACA,OAAO,EAAE;;;;;;;CAOd;YACK,SAAS,EAAE;;;;;;;CAOhB;YACK,UAAU,EAAE,wDAAwD;SACrE;QACD;YACE,EAAE,EAAE,MAAM;YACV,KAAK,EAAE,MAAM;YACb,IAAI,EAAE,+BAA+B;YACrC,YAAY,EAAE,EAAE;YAChB,OAAO,EAAE,EAAE;YACX,MAAM,EAAE;sDACwC;YAChD,OAAO,EAAE;;;;;;CAMd;YACK,UAAU,EAAE,wDAAwD;SACrE;QACD;YACE,EAAE,EAAE,cAAc;YAClB,KAAK,EAAE,cAAc;YACrB,IAAI,EAAE,iCAAiC;YACvC,YAAY,EAAE,gBAAgB,CAAC,sBAAsB,CAAC;YACtD,OAAO,EAAE,CAAC,qDAAqD,CAAC;YAChE,MAAM,EAAE,GAAG;gBACT,CAAC,CAAC;;cAEI;gBACN,CAAC,CAAC;;cAEI;YACR,OAAO,EAAE;;;;iBAIE,GAAG,CAAC,CAAC,CAAC,iDAAiD,CAAC,CAAC,CAAC,wCAAwC;;CAElH;YACK,SAAS,EAAE,GAAG;gBACZ,CAAC,CAAC;;;;;;CAMT;gBACO,CAAC,CAAC;;;;;;CAMT;YACK,UAAU,EAAE,0BAA0B;SACvC;KACyC,CAAC;AAC/C,CAAC;AAGD,MAAM,CAAC,MAAM,iBAAiB,GAAG,YAA+B,CAAC;AAEjE,2EAA2E;AAC3E,MAAM,UAAU,eAAe,CAAC,EAAY;IAC1C,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IACnE,IAAI,MAAM,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;IACnE,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * The model gateways `e2e init` offers. Each is one AI SDK provider package
3
+ * and the line that constructs a model with it; the runner itself knows none
4
+ * of them and takes the constructed instance. Adding a gateway is adding an
5
+ * entry here.
6
+ */
7
+ export type GatewayId = 'vercel' | 'openrouter' | 'openai-compatible';
8
+ export interface GatewayPreset {
9
+ readonly id: GatewayId;
10
+ readonly label: string;
11
+ readonly hint: string;
12
+ /** Packages besides `ai` the generated config imports from. */
13
+ readonly dependencies: Readonly<Record<string, string>>;
14
+ readonly import: string;
15
+ /** The comment line above the model, naming who serves it and which variable it reads. */
16
+ readonly comment: string;
17
+ /** The model expression, with the endpoint the user typed for an OpenAI-compatible one. */
18
+ model(endpoint: string | undefined): string;
19
+ }
20
+ export declare const GATEWAYS: readonly GatewayPreset[];
21
+ export declare function getGatewayPreset(id: GatewayId): GatewayPreset;
22
+ //# sourceMappingURL=gateways.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gateways.d.ts","sourceRoot":"","sources":["../../../src/cli/init/gateways.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,YAAY,GAAG,mBAAmB,CAAC;AAEtE,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,+DAA+D;IAC/D,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACxD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,0FAA0F;IAC1F,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,2FAA2F;IAC3F,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC;CAC7C;AAED,eAAO,MAAM,QAAQ,EAAE,SAAS,aAAa,EAiC5C,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,SAAS,GAAG,aAAa,CAI7D"}