@e2edev/e2e 0.10.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.
- package/README.md +11 -5
- package/dist/agent/act-validation.d.ts +2 -0
- package/dist/agent/act-validation.d.ts.map +1 -1
- package/dist/agent/act-validation.js +1 -1
- package/dist/agent/act-validation.js.map +1 -1
- package/dist/agent/act.d.ts.map +1 -1
- package/dist/agent/act.js +14 -0
- package/dist/agent/act.js.map +1 -1
- package/dist/agent/ai-sdk.d.ts +2 -2
- package/dist/agent/ai-sdk.d.ts.map +1 -1
- package/dist/agent/ai-sdk.js +3 -4
- package/dist/agent/ai-sdk.js.map +1 -1
- package/dist/agent/default-agent.d.ts +17 -2
- package/dist/agent/default-agent.d.ts.map +1 -1
- package/dist/agent/default-agent.js +17 -3
- package/dist/agent/default-agent.js.map +1 -1
- package/dist/agent/error.d.ts.map +1 -1
- package/dist/agent/error.js +1 -0
- package/dist/agent/error.js.map +1 -1
- package/dist/agent/executor.d.ts +13 -0
- package/dist/agent/executor.d.ts.map +1 -1
- package/dist/agent/executor.js.map +1 -1
- package/dist/agent/model/adapter.d.ts +3 -0
- package/dist/agent/model/adapter.d.ts.map +1 -1
- package/dist/agent/model/adapter.js.map +1 -1
- package/dist/agent/model/overflow.d.ts +20 -0
- package/dist/agent/model/overflow.d.ts.map +1 -0
- package/dist/agent/model/overflow.js +82 -0
- package/dist/agent/model/overflow.js.map +1 -0
- package/dist/agent/model/prompt-cache.d.ts +47 -0
- package/dist/agent/model/prompt-cache.d.ts.map +1 -0
- package/dist/agent/model/prompt-cache.js +78 -0
- package/dist/agent/model/prompt-cache.js.map +1 -0
- package/dist/agent/model/sdk.d.ts +41 -24
- package/dist/agent/model/sdk.d.ts.map +1 -1
- package/dist/agent/model/sdk.js +64 -91
- package/dist/agent/model/sdk.js.map +1 -1
- package/dist/agent/primitives.d.ts.map +1 -1
- package/dist/agent/primitives.js +2 -1
- package/dist/agent/primitives.js.map +1 -1
- package/dist/agent/public.d.ts +1 -1
- package/dist/agent/public.d.ts.map +1 -1
- package/dist/agent/public.js.map +1 -1
- package/dist/agent/screen-update.d.ts +8 -3
- package/dist/agent/screen-update.d.ts.map +1 -1
- package/dist/agent/screen-update.js +18 -5
- package/dist/agent/screen-update.js.map +1 -1
- package/dist/agent/tool-loop.d.ts.map +1 -1
- package/dist/agent/tool-loop.js +149 -33
- package/dist/agent/tool-loop.js.map +1 -1
- package/dist/agent/tool-output.d.ts +31 -0
- package/dist/agent/tool-output.d.ts.map +1 -0
- package/dist/agent/tool-output.js +60 -0
- package/dist/agent/tool-output.js.map +1 -0
- package/dist/agent/tool.d.ts +9 -3
- package/dist/agent/tool.d.ts.map +1 -1
- package/dist/agent/tool.js +2 -2
- package/dist/agent/tool.js.map +1 -1
- package/dist/agent/usage.d.ts +7 -0
- package/dist/agent/usage.d.ts.map +1 -1
- package/dist/agent/usage.js +11 -0
- package/dist/agent/usage.js.map +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +119 -34
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/init/engines.d.ts +2 -2
- package/dist/cli/init/engines.js +3 -3
- package/dist/cli/init/gateways.d.ts +22 -0
- package/dist/cli/init/gateways.d.ts.map +1 -0
- package/dist/cli/init/gateways.js +50 -0
- package/dist/cli/init/gateways.js.map +1 -0
- package/dist/cli/init/scaffold.d.ts +7 -1
- package/dist/cli/init/scaffold.d.ts.map +1 -1
- package/dist/cli/init/scaffold.js +21 -10
- package/dist/cli/init/scaffold.js.map +1 -1
- package/dist/cli/init.d.ts.map +1 -1
- package/dist/cli/init.js +51 -7
- package/dist/cli/init.js.map +1 -1
- package/dist/collect/collect.d.ts +7 -0
- package/dist/collect/collect.d.ts.map +1 -1
- package/dist/collect/collect.js +16 -0
- package/dist/collect/collect.js.map +1 -1
- package/dist/collect/registry.d.ts.map +1 -1
- package/dist/collect/registry.js +10 -4
- package/dist/collect/registry.js.map +1 -1
- package/dist/config/agent.d.ts +13 -32
- package/dist/config/agent.d.ts.map +1 -1
- package/dist/config/agent.js +32 -123
- package/dist/config/agent.js.map +1 -1
- package/dist/config/resolve.js +1 -1
- package/dist/explore/body.d.ts +36 -0
- package/dist/explore/body.d.ts.map +1 -0
- package/dist/explore/body.js +168 -0
- package/dist/explore/body.js.map +1 -0
- package/dist/explore/executor.d.ts +25 -0
- package/dist/explore/executor.d.ts.map +1 -0
- package/dist/explore/executor.js +86 -0
- package/dist/explore/executor.js.map +1 -0
- package/dist/explore/index.d.ts +64 -0
- package/dist/explore/index.d.ts.map +1 -0
- package/dist/explore/index.js +183 -0
- package/dist/explore/index.js.map +1 -0
- package/dist/explore/plan.d.ts +74 -0
- package/dist/explore/plan.d.ts.map +1 -0
- package/dist/explore/plan.js +149 -0
- package/dist/explore/plan.js.map +1 -0
- package/dist/explore/reporter.d.ts +11 -0
- package/dist/explore/reporter.d.ts.map +1 -0
- package/dist/explore/reporter.js +54 -0
- package/dist/explore/reporter.js.map +1 -0
- package/dist/explore/state.d.ts +58 -0
- package/dist/explore/state.d.ts.map +1 -0
- package/dist/explore/state.js +147 -0
- package/dist/explore/state.js.map +1 -0
- package/dist/report/build.d.ts +53 -0
- package/dist/report/build.d.ts.map +1 -1
- package/dist/report/build.js +10 -1
- package/dist/report/build.js.map +1 -1
- package/dist/report/debug-steps.d.ts.map +1 -1
- package/dist/report/debug-steps.js +15 -0
- package/dist/report/debug-steps.js.map +1 -1
- package/dist/report/format.d.ts +11 -1
- package/dist/report/format.d.ts.map +1 -1
- package/dist/report/format.js +15 -3
- package/dist/report/format.js.map +1 -1
- package/dist/run/events.d.ts +2 -2
- package/dist/run/events.d.ts.map +1 -1
- package/dist/run/in-process.d.ts +8 -0
- package/dist/run/in-process.d.ts.map +1 -1
- package/dist/run/in-process.js +3 -3
- package/dist/run/in-process.js.map +1 -1
- package/dist/run/runner.d.ts +20 -1
- package/dist/run/runner.d.ts.map +1 -1
- package/dist/run/runner.js +19 -14
- package/dist/run/runner.js.map +1 -1
- package/dist/run/steps.d.ts +7 -0
- package/dist/run/steps.d.ts.map +1 -1
- package/dist/run/steps.js.map +1 -1
- package/dist/run/worker-models.d.ts +4 -4
- package/dist/run/worker-models.js +6 -13
- package/dist/run/worker-models.js.map +1 -1
- package/dist/telemetry/events.d.ts.map +1 -1
- package/dist/telemetry/events.js +17 -2
- package/dist/telemetry/events.js.map +1 -1
- package/dist/types.d.ts +12 -16
- package/dist/types.d.ts.map +1 -1
- package/package.json +4 -2
- package/skills/e2e/SKILL.md +11 -4
- package/skills/e2e/references/agent.md +19 -14
- package/skills/e2e/references/debugging.md +2 -1
- package/skills/e2e/references/explore.md +83 -0
- package/skills/e2e/references/running.md +4 -3
- package/skills/e2e/references/setup.md +10 -7
|
@@ -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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"}
|
package/dist/agent/tool.d.ts
CHANGED
|
@@ -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
|
-
/**
|
|
30
|
-
|
|
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:
|
|
38
|
+
export declare function withToolContext(options: ToolExecutionOptions<unknown>, context: ToolContext): ToolExecutionOptions<unknown>;
|
|
33
39
|
//# sourceMappingURL=tool.d.ts.map
|
package/dist/agent/tool.d.ts.map
CHANGED
|
@@ -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
|
|
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"}
|
package/dist/agent/tool.js
CHANGED
|
@@ -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
|
-
/**
|
|
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. */
|
package/dist/agent/tool.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool.js","sourceRoot":"","sources":["../../src/agent/tool.ts"],"names":[],"mappings":"AAAA,mGAAmG;AAInG,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAGlD,qDAAqD;AACrD,MAAM,mBAAmB,GAAG,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;AAsB9D,qDAAqD;AACrD,MAAM,UAAU,UAAU,CAAC,IAAU,EAAE,WAA4B;IACjE,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;QACpF,MAAM,IAAI,SAAS,CAAC,kBAAkB,EAAE,6DAA6D,CAAC,CAAC;IACzG,CAAC;IACD,IAAI,WAAW,KAAK,SAAS,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;QACjE,MAAM,IAAI,SAAS,CAAC,kBAAkB,EAAE,8CAA8C,CAAC,CAAC;IAC1F,CAAC;IACD,IAAI,OAAO,WAAW,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAC7C,MAAM,IAAI,SAAS,CAAC,kBAAkB,EAAE,uCAAuC,CAAC,CAAC;IACnF,CAAC;IACD,IACE,WAAW,CAAC,SAAS,KAAK,SAAS;QACnC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC;YACpC,WAAW,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC;YAClC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,EAAE,CAAC,CAAC,EAC5F,CAAC;QACD,MAAM,IAAI,SAAS,CACjB,kBAAkB,EAClB,gFAAgF,CACjF,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAgB;QAC3B,IAAI;QACJ,WAAW,EAAE;YACX,OAAO,EAAE,WAAW,CAAC,OAAO;YAC5B,GAAG,CAAC,WAAW,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,GAAG,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;SAC1F;KACF,CAAC;IACF,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,mBAAmB,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACrE,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAChC,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU,aAAa,CAAC,OAAoB,EAAE,QAAkB;IACpE,OAAO,OAAO,CAAC,WAAW,CAAC,SAAS,KAAK,SAAS,IAAI,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACzG,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,mBAAmB,IAAI,KAAK,CAAC;AACrF,CAAC;
|
|
1
|
+
{"version":3,"file":"tool.js","sourceRoot":"","sources":["../../src/agent/tool.ts"],"names":[],"mappings":"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"}
|
package/dist/agent/usage.d.ts
CHANGED
|
@@ -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,
|
|
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"}
|
package/dist/agent/usage.js
CHANGED
|
@@ -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
|
}
|
package/dist/agent/usage.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usage.js","sourceRoot":"","sources":["../../src/agent/usage.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"usage.js","sourceRoot":"","sources":["../../src/agent/usage.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA,eAAe;
|
|
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',
|
|
@@ -192,47 +238,86 @@ function createProgram(version, telemetry) {
|
|
|
192
238
|
"e2e run 'tests/**/*.smoke.e2e.ts' --target web --tag smoke",
|
|
193
239
|
'e2e run --reporter list,junit --workers 4 --retries 2',
|
|
194
240
|
'e2e run --agent ux tests/onboarding.e2e.ts',
|
|
195
|
-
'
|
|
241
|
+
'AI_GATEWAY_API_KEY=... e2e run --no-cache',
|
|
196
242
|
]),
|
|
197
243
|
'',
|
|
198
|
-
|
|
244
|
+
exitCodesSection(EXIT_CODES),
|
|
199
245
|
'',
|
|
200
246
|
docsLine('/reference/cli#exit-codes'),
|
|
201
247
|
].join('\n'))
|
|
202
248
|
.action(async (files,
|
|
203
249
|
// Each value is what its parser returned, so a bad one never reaches here.
|
|
204
|
-
options, command) => {
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
}
|
|
235
|
-
|
|
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
|
+
})));
|
|
236
321
|
program
|
|
237
322
|
.command('list')
|
|
238
323
|
.summary('print the tests a run would select, without running them')
|
package/dist/cli/index.js.map
CHANGED
|
@@ -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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"}
|
|
@@ -44,7 +44,7 @@ test('app opens', async ({ app, web }) => {
|
|
|
44
44
|
});
|
|
45
45
|
`;
|
|
46
46
|
readonly aiExample: `
|
|
47
|
-
// Runs
|
|
47
|
+
// Runs once the key the model in e2e.config.ts reads is in the environment:
|
|
48
48
|
// test('the agent drives a flow', async ({ app, agent }) => {
|
|
49
49
|
// await app.open('/');
|
|
50
50
|
// await agent.act('one goal in plain language');
|
|
@@ -76,7 +76,7 @@ test('app responds', async () => {
|
|
|
76
76
|
readonly imports: readonly ["import { agentDevice } from '@e2edev/agent-device';"];
|
|
77
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,";
|
|
78
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";
|
|
79
|
-
readonly aiExample: "\n// Runs
|
|
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";
|
|
80
80
|
readonly runCommand: 'npx --no-install e2e run';
|
|
81
81
|
}];
|
|
82
82
|
export type EngineId = ReturnType<typeof getEnginePresets>[number]['id'];
|
package/dist/cli/init/engines.js
CHANGED
|
@@ -49,7 +49,7 @@ test('app opens', async ({ app, web }) => {
|
|
|
49
49
|
});
|
|
50
50
|
`,
|
|
51
51
|
aiExample: `
|
|
52
|
-
// Runs
|
|
52
|
+
// Runs once the key the model in e2e.config.ts reads is in the environment:
|
|
53
53
|
// test('the agent drives a flow', async ({ app, agent }) => {
|
|
54
54
|
// await app.open('/');
|
|
55
55
|
// await agent.act('one goal in plain language');
|
|
@@ -97,14 +97,14 @@ test('Settings opens', async ({ screen }) => {
|
|
|
97
97
|
`,
|
|
98
98
|
aiExample: ios
|
|
99
99
|
? `
|
|
100
|
-
// Runs
|
|
100
|
+
// Runs once the key the model in e2e.config.ts reads is in the environment:
|
|
101
101
|
// test('the agent opens General', async ({ agent, device }) => {
|
|
102
102
|
// await agent.act('open General settings');
|
|
103
103
|
// await expect(device.locator('role=NavigationBar id=General')).toBeVisible();
|
|
104
104
|
// });
|
|
105
105
|
`
|
|
106
106
|
: `
|
|
107
|
-
// Runs
|
|
107
|
+
// Runs once the key the model in e2e.config.ts reads is in the environment:
|
|
108
108
|
// test('the agent opens Network settings', async ({ agent, device }) => {
|
|
109
109
|
// await agent.act('open Network & internet settings');
|
|
110
110
|
// await expect(device.locator('id=com.android.settings:id/collapsing_toolbar')).toHaveText('Network & internet');
|
|
@@ -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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
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 const GATEWAYS = [
|
|
8
|
+
{
|
|
9
|
+
id: 'vercel',
|
|
10
|
+
label: 'Vercel AI Gateway',
|
|
11
|
+
hint: 'one key for every provider; reads AI_GATEWAY_API_KEY',
|
|
12
|
+
dependencies: {},
|
|
13
|
+
import: "import { gateway } from 'ai';",
|
|
14
|
+
comment: 'The Vercel AI Gateway serves the model id and reads AI_GATEWAY_API_KEY.',
|
|
15
|
+
model: () => "gateway('openai/gpt-5.4-mini')",
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
id: 'openrouter',
|
|
19
|
+
label: 'OpenRouter',
|
|
20
|
+
hint: 'one key for every provider; reads OPENROUTER_API_KEY',
|
|
21
|
+
dependencies: { '@openrouter/ai-sdk-provider': '^3.0.0' },
|
|
22
|
+
import: "import { openrouter } from '@openrouter/ai-sdk-provider';",
|
|
23
|
+
comment: 'OpenRouter serves the model id and reads OPENROUTER_API_KEY.',
|
|
24
|
+
model: () => "openrouter('openai/gpt-5.4-mini')",
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
id: 'openai-compatible',
|
|
28
|
+
label: 'OpenAI-compatible endpoint',
|
|
29
|
+
hint: 'any /v1 chat endpoint: Ollama, vLLM, LiteLLM, a vendor API',
|
|
30
|
+
dependencies: { '@ai-sdk/openai-compatible': '^3.0.0' },
|
|
31
|
+
import: "import { createOpenAICompatible } from '@ai-sdk/openai-compatible';",
|
|
32
|
+
comment: 'The endpoint serves the model id over the OpenAI chat API; pass apiKey when it needs one.',
|
|
33
|
+
model: (endpoint) => `createOpenAICompatible({
|
|
34
|
+
name: 'openai-compatible',
|
|
35
|
+
baseURL: ${quote(endpoint ?? 'http://127.0.0.1:11434/v1')},
|
|
36
|
+
// apiKey: process.env.LLM_API_KEY,
|
|
37
|
+
}).chatModel('gpt-5.4-mini')`,
|
|
38
|
+
},
|
|
39
|
+
];
|
|
40
|
+
export function getGatewayPreset(id) {
|
|
41
|
+
const preset = GATEWAYS.find((gateway) => gateway.id === id);
|
|
42
|
+
if (preset === undefined)
|
|
43
|
+
throw new Error(`unknown gateway: ${id}`);
|
|
44
|
+
return preset;
|
|
45
|
+
}
|
|
46
|
+
/** A single-quoted TypeScript string literal. */
|
|
47
|
+
function quote(value) {
|
|
48
|
+
return `'${value.replaceAll('\\', '\\\\').replaceAll("'", "\\'")}'`;
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=gateways.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gateways.js","sourceRoot":"","sources":["../../../src/cli/init/gateways.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAiBH,MAAM,CAAC,MAAM,QAAQ,GAA6B;IAChD;QACE,EAAE,EAAE,QAAQ;QACZ,KAAK,EAAE,mBAAmB;QAC1B,IAAI,EAAE,sDAAsD;QAC5D,YAAY,EAAE,EAAE;QAChB,MAAM,EAAE,+BAA+B;QACvC,OAAO,EAAE,yEAAyE;QAClF,KAAK,EAAE,GAAG,EAAE,CAAC,gCAAgC;KAC9C;IACD;QACE,EAAE,EAAE,YAAY;QAChB,KAAK,EAAE,YAAY;QACnB,IAAI,EAAE,sDAAsD;QAC5D,YAAY,EAAE,EAAE,6BAA6B,EAAE,QAAQ,EAAE;QACzD,MAAM,EAAE,2DAA2D;QACnE,OAAO,EAAE,8DAA8D;QACvE,KAAK,EAAE,GAAG,EAAE,CAAC,mCAAmC;KACjD;IACD;QACE,EAAE,EAAE,mBAAmB;QACvB,KAAK,EAAE,4BAA4B;QACnC,IAAI,EAAE,4DAA4D;QAClE,YAAY,EAAE,EAAE,2BAA2B,EAAE,QAAQ,EAAE;QACvD,MAAM,EAAE,qEAAqE;QAC7E,OAAO,EAAE,2FAA2F;QACpG,KAAK,EAAE,CAAC,QAAQ,EAAE,EAAE,CAClB;;mBAEa,KAAK,CAAC,QAAQ,IAAI,2BAA2B,CAAC;;mCAE9B;KAChC;CACF,CAAC;AAEF,MAAM,UAAU,gBAAgB,CAAC,EAAa;IAC5C,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAC7D,IAAI,MAAM,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;IACpE,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,iDAAiD;AACjD,SAAS,KAAK,CAAC,KAAa;IAC1B,OAAO,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC;AACtE,CAAC"}
|