@e2edev/agent-device 0.2.1 → 0.3.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 +10 -10
- package/dist/device.d.ts +3 -3
- package/dist/device.d.ts.map +1 -1
- package/dist/device.js +1 -1
- package/dist/device.js.map +1 -1
- package/dist/engine.d.ts +16 -0
- package/dist/engine.d.ts.map +1 -0
- package/dist/{backend.js → engine.js} +25 -14
- package/dist/engine.js.map +1 -0
- package/dist/errors.d.ts +3 -3
- package/dist/errors.js +12 -12
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/locate.d.ts +1 -1
- package/dist/locate.d.ts.map +1 -1
- package/dist/locate.js +7 -4
- package/dist/locate.js.map +1 -1
- package/dist/nodes.d.ts +2 -2
- package/dist/nodes.d.ts.map +1 -1
- package/dist/selector.js +2 -2
- package/dist/selector.js.map +1 -1
- package/dist/support.d.ts +7 -7
- package/dist/support.d.ts.map +1 -1
- package/dist/support.js +7 -7
- package/dist/support.js.map +1 -1
- package/dist/surface.d.ts +15 -7
- package/dist/surface.d.ts.map +1 -1
- package/dist/surface.js +11 -11
- package/dist/surface.js.map +1 -1
- package/dist/tools.d.ts +8 -8
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +14 -14
- package/dist/tools.js.map +1 -1
- package/package.json +4 -4
- package/dist/backend.d.ts +0 -16
- package/dist/backend.d.ts.map +0 -1
- package/dist/backend.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# @e2edev/agent-device
|
|
2
2
|
|
|
3
|
-
The mobile
|
|
3
|
+
The mobile engine for [`e2e`](https://www.npmjs.com/package/e2e), built on
|
|
4
4
|
[agent-device](https://github.com/callstack/agent-device): iOS simulators and
|
|
5
|
-
Android emulators through the same `@e2edev/e2e/
|
|
5
|
+
Android emulators through the same `@e2edev/e2e/engine` contract the browser engine
|
|
6
6
|
implements. A test written against `screen`, `expect`, `app`, and `agent` runs
|
|
7
7
|
on a device target unchanged; nothing in `e2e` core knows this package exists.
|
|
8
8
|
|
|
@@ -32,8 +32,8 @@ const pixel = agentDevice({ platform: 'android', app: 'com.android.settings' });
|
|
|
32
32
|
|
|
33
33
|
export default defineConfig({
|
|
34
34
|
targets: [
|
|
35
|
-
{ name: 'iphone', platform: 'ios',
|
|
36
|
-
{ name: 'pixel', platform: 'android',
|
|
35
|
+
{ name: 'iphone', platform: 'ios', engine: iphone },
|
|
36
|
+
{ name: 'pixel', platform: 'android', engine: pixel },
|
|
37
37
|
],
|
|
38
38
|
workers: 1,
|
|
39
39
|
agent: { executor: createAgent({ tools: agentDeviceTools(iphone, pixel) }) },
|
|
@@ -56,7 +56,7 @@ Options:
|
|
|
56
56
|
| `session` | agent-device session name; defaults to `e2e-<target name>`. One run per session at a time. |
|
|
57
57
|
| `snapshot` | `'full'` (default, includes static text) or `'interactive'` (actionable nodes only). |
|
|
58
58
|
|
|
59
|
-
## What the
|
|
59
|
+
## What the engine declares
|
|
60
60
|
|
|
61
61
|
- **Observation**: the accessibility tree, projected onto the role vocabulary
|
|
62
62
|
(iOS `Button` becomes `button`, `TextField` becomes `textbox`, `Cell` becomes
|
|
@@ -80,7 +80,7 @@ Options:
|
|
|
80
80
|
## Trace cache
|
|
81
81
|
|
|
82
82
|
The runner caches `agent.act` steps by their location anchor, and a device has
|
|
83
|
-
no address bar. This
|
|
83
|
+
no address bar. This engine reports one anyway: `app://device/<bundle
|
|
84
84
|
id>/<screen title>`, with the title read off the navigation bar on iOS and the
|
|
85
85
|
collapsing toolbar on Android. The cache compares pathnames, so the app
|
|
86
86
|
identity is part of the path and two apps with a "General" screen never share
|
|
@@ -122,13 +122,13 @@ the bundle id or package to `openApp` the build by.
|
|
|
122
122
|
|
|
123
123
|
## Agent tools
|
|
124
124
|
|
|
125
|
-
`@e2edev/agent-device/tools` exports `agentDeviceTools(...
|
|
125
|
+
`@e2edev/agent-device/tools` exports `agentDeviceTools(...engines)`:
|
|
126
126
|
`open_app`, `swipe` (free-form, in logical pixels), `type_text` (into the
|
|
127
127
|
focused field, for editors that hide it from the tree), `alert`, and
|
|
128
|
-
`screenshot` (the model sees the image). Pass every device
|
|
128
|
+
`screenshot` (the model sees the image). Pass every device engine the config
|
|
129
129
|
declares: tool names are fixed, so two packs cannot be merged, and the pack
|
|
130
|
-
dispatches each call to the
|
|
131
|
-
to the platforms of those
|
|
130
|
+
dispatches each call to the engine whose attempt is running. Tools are scoped
|
|
131
|
+
to the platforms of those engines, so a suite that mixes web and device
|
|
132
132
|
targets can hand the pack to one `createAgent`.
|
|
133
133
|
|
|
134
134
|
## Secrets
|
package/dist/device.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The `device` fixture: deterministic device management this
|
|
2
|
+
* The `device` fixture: deterministic device management this engine
|
|
3
3
|
* contributes. Not an agent tool; a test calls these directly to arrange or
|
|
4
4
|
* assert device state, and the harness records each call as a
|
|
5
5
|
* `device.<method>` step bounded by the action timeout.
|
|
6
6
|
*/
|
|
7
|
-
import type {
|
|
7
|
+
import type { EngineFixtureContext, Locator } from '@e2edev/e2e/engine';
|
|
8
8
|
import type { AgentDeviceSurface, InstallAppOptions, InstalledApp } from './surface.ts';
|
|
9
9
|
/** Permissions agent-device can grant, deny, or reset on an open app. */
|
|
10
10
|
export type DevicePermission = 'camera' | 'microphone' | 'photos' | 'contacts' | 'notifications' | 'calendar' | 'location' | 'reminders' | 'motion' | 'siri' | 'media-library';
|
|
@@ -72,5 +72,5 @@ export interface Device {
|
|
|
72
72
|
setClipboard(text: string): Promise<void>;
|
|
73
73
|
}
|
|
74
74
|
/** Builds the device fixture for one attempt. */
|
|
75
|
-
export declare function createDeviceFixture(surface: AgentDeviceSurface, context:
|
|
75
|
+
export declare function createDeviceFixture(surface: AgentDeviceSurface, context: EngineFixtureContext): Device;
|
|
76
76
|
//# sourceMappingURL=device.d.ts.map
|
package/dist/device.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../src/device.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../src/device.ts"],"names":[],"mappings":"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"}
|
package/dist/device.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The `device` fixture: deterministic device management this
|
|
2
|
+
* The `device` fixture: deterministic device management this engine
|
|
3
3
|
* contributes. Not an agent tool; a test calls these directly to arrange or
|
|
4
4
|
* assert device state, and the harness records each call as a
|
|
5
5
|
* `device.<method>` step bounded by the action timeout.
|
package/dist/device.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"device.js","sourceRoot":"","sources":["../src/device.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAiFH,iDAAiD;AACjD,MAAM,UAAU,mBAAmB,CAAC,OAA2B,EAAE,
|
|
1
|
+
{"version":3,"file":"device.js","sourceRoot":"","sources":["../src/device.ts"],"names":[],"mappings":"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"}
|
package/dist/engine.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The agent-device engine for e2e (RFC0002): a mobile body built with the
|
|
3
|
+
* public `defineEngine`, validated by the same rules and graded by the same
|
|
4
|
+
* capabilities as any other engine. Core imports nothing from here; this
|
|
5
|
+
* package imports the contract from `@e2edev/e2e/engine` and contributes the
|
|
6
|
+
* `device` fixture the way the browser engine contributes `web`.
|
|
7
|
+
*/
|
|
8
|
+
import { type EngineHandle } from '@e2edev/e2e/engine';
|
|
9
|
+
import { AgentDeviceSurface, type AgentDeviceOptions } from './surface.ts';
|
|
10
|
+
/** Assembles the manifest for one surface. Exported for tests that script the client. */
|
|
11
|
+
export declare function buildEngine(surface: AgentDeviceSurface): EngineHandle;
|
|
12
|
+
/** Creates one agent-device engine: one device session per worker, one fresh app launch per attempt. */
|
|
13
|
+
export declare function agentDevice(options: AgentDeviceOptions): EngineHandle;
|
|
14
|
+
/** The surface behind a handle this package created; undefined for any other engine. */
|
|
15
|
+
export declare function surfaceOf(engine: EngineHandle): AgentDeviceSurface | undefined;
|
|
16
|
+
//# sourceMappingURL=engine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EAAgD,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAErG,OAAO,EAAE,kBAAkB,EAAE,KAAK,kBAAkB,EAAsB,MAAM,cAAc,CAAC;AAI/F,yFAAyF;AACzF,wBAAgB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,YAAY,CAiCrE;AAED,wGAAwG;AACxG,wBAAgB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,YAAY,CAGrE;AAaD,wFAAwF;AACxF,wBAAgB,SAAS,CAAC,MAAM,EAAE,YAAY,GAAG,kBAAkB,GAAG,SAAS,CAE9E"}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The agent-device
|
|
3
|
-
* public `
|
|
4
|
-
* capabilities as any other
|
|
5
|
-
* package imports the contract from `@e2edev/e2e/
|
|
6
|
-
* `device` fixture the way the browser
|
|
2
|
+
* The agent-device engine for e2e (RFC0002): a mobile body built with the
|
|
3
|
+
* public `defineEngine`, validated by the same rules and graded by the same
|
|
4
|
+
* capabilities as any other engine. Core imports nothing from here; this
|
|
5
|
+
* package imports the contract from `@e2edev/e2e/engine` and contributes the
|
|
6
|
+
* `device` fixture the way the browser engine contributes `web`.
|
|
7
7
|
*/
|
|
8
8
|
import { createRequire } from 'node:module';
|
|
9
9
|
import { createAgentDeviceClient } from 'agent-device';
|
|
10
|
-
import {
|
|
10
|
+
import { defineEngine, obj } from '@e2edev/e2e/engine';
|
|
11
11
|
import { createDeviceFixture } from './device.js';
|
|
12
12
|
import { AgentDeviceSurface } from './surface.js';
|
|
13
13
|
const surfaces = new WeakMap();
|
|
14
14
|
/** Assembles the manifest for one surface. Exported for tests that script the client. */
|
|
15
|
-
export function
|
|
16
|
-
const handle =
|
|
15
|
+
export function buildEngine(surface) {
|
|
16
|
+
const handle = defineEngine({
|
|
17
17
|
name: 'agent-device',
|
|
18
18
|
version: ownVersion(),
|
|
19
19
|
spiVersion: 1,
|
|
@@ -26,6 +26,7 @@ export function buildBackend(surface) {
|
|
|
26
26
|
perform: (ref, action, operation) => surface.perform(ref, action, operation),
|
|
27
27
|
swipe: (direction, momentum, operation) => surface.swipe(direction, momentum, operation),
|
|
28
28
|
app: {
|
|
29
|
+
...declaredApp(surface.options),
|
|
29
30
|
back: (operation) => surface.back(operation),
|
|
30
31
|
...(surface.managesApp
|
|
31
32
|
? {
|
|
@@ -45,14 +46,24 @@ export function buildBackend(surface) {
|
|
|
45
46
|
surfaces.set(handle, surface);
|
|
46
47
|
return handle;
|
|
47
48
|
}
|
|
48
|
-
/** Creates one agent-device
|
|
49
|
+
/** Creates one agent-device engine: one device session per worker, one fresh app launch per attempt. */
|
|
49
50
|
export function agentDevice(options) {
|
|
50
51
|
const factory = (session) => createAgentDeviceClient({ session });
|
|
51
|
-
return
|
|
52
|
+
return buildEngine(new AgentDeviceSurface(options, factory));
|
|
52
53
|
}
|
|
53
|
-
/**
|
|
54
|
-
|
|
55
|
-
|
|
54
|
+
/**
|
|
55
|
+
* What the device engine declares about its app: the pinned app (else the
|
|
56
|
+
* build it installs) is the identity cache and session entries key on.
|
|
57
|
+
*/
|
|
58
|
+
function declaredApp(options) {
|
|
59
|
+
return obj({
|
|
60
|
+
identity: options.identity ?? options.app ?? options.appPath,
|
|
61
|
+
environment: options.environment,
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
/** The surface behind a handle this package created; undefined for any other engine. */
|
|
65
|
+
export function surfaceOf(engine) {
|
|
66
|
+
return surfaces.get(engine);
|
|
56
67
|
}
|
|
57
68
|
/** This package's published version, read through require resolution. */
|
|
58
69
|
function ownVersion() {
|
|
@@ -63,4 +74,4 @@ function ownVersion() {
|
|
|
63
74
|
return 'unknown';
|
|
64
75
|
}
|
|
65
76
|
}
|
|
66
|
-
//# sourceMappingURL=
|
|
77
|
+
//# sourceMappingURL=engine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
|
package/dist/errors.d.ts
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Translation of agent-device failures onto the
|
|
2
|
+
* Translation of agent-device failures onto the engine error contract.
|
|
3
3
|
*
|
|
4
4
|
* | agent-device failure | Code |
|
|
5
5
|
* | ----------------------------------------------------------- | ---------------------------- |
|
|
6
|
-
* | already
|
|
6
|
+
* | already an EngineError / runner error | passed through untouched |
|
|
7
7
|
* | AbortError | CANCELLED |
|
|
8
8
|
* | no active session / session not found | INVALID_STATE |
|
|
9
9
|
* | UNSUPPORTED_OPERATION, NOT_IMPLEMENTED, UNSUPPORTED_PLATFORM | UNSUPPORTED_CAPABILITY |
|
|
10
10
|
* | "not supported on this device" under any code | UNSUPPORTED_CAPABILITY |
|
|
11
11
|
* | a ref the daemon no longer knows (action paths only) | NODE_STALE (retryable) |
|
|
12
12
|
* | timed out | OPERATION_TIMEOUT |
|
|
13
|
-
* | anything else |
|
|
13
|
+
* | anything else | ENGINE_FAILURE |
|
|
14
14
|
*/
|
|
15
15
|
/** A failure's message in agent-device's normalized form. */
|
|
16
16
|
export declare function message(cause: unknown): string;
|
package/dist/errors.js
CHANGED
|
@@ -1,31 +1,31 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Translation of agent-device failures onto the
|
|
2
|
+
* Translation of agent-device failures onto the engine error contract.
|
|
3
3
|
*
|
|
4
4
|
* | agent-device failure | Code |
|
|
5
5
|
* | ----------------------------------------------------------- | ---------------------------- |
|
|
6
|
-
* | already
|
|
6
|
+
* | already an EngineError / runner error | passed through untouched |
|
|
7
7
|
* | AbortError | CANCELLED |
|
|
8
8
|
* | no active session / session not found | INVALID_STATE |
|
|
9
9
|
* | UNSUPPORTED_OPERATION, NOT_IMPLEMENTED, UNSUPPORTED_PLATFORM | UNSUPPORTED_CAPABILITY |
|
|
10
10
|
* | "not supported on this device" under any code | UNSUPPORTED_CAPABILITY |
|
|
11
11
|
* | a ref the daemon no longer knows (action paths only) | NODE_STALE (retryable) |
|
|
12
12
|
* | timed out | OPERATION_TIMEOUT |
|
|
13
|
-
* | anything else |
|
|
13
|
+
* | anything else | ENGINE_FAILURE |
|
|
14
14
|
*/
|
|
15
15
|
import { normalizeAgentDeviceError } from 'agent-device';
|
|
16
|
-
import {
|
|
16
|
+
import { EngineError, ConfigurationError, InfrastructureError, TestError } from '@e2edev/e2e/engine';
|
|
17
17
|
import { cancelled } from './support.js';
|
|
18
18
|
/**
|
|
19
|
-
* True for an error that already carries its classification:
|
|
19
|
+
* True for an error that already carries its classification: an `EngineError`
|
|
20
20
|
* from any module copy, or a runner error. Those cross the boundary untouched;
|
|
21
21
|
* re-wrapping one would turn a `POLICY_DENIED` into an infrastructure failure.
|
|
22
22
|
*/
|
|
23
23
|
function isClassified(cause) {
|
|
24
|
-
if (cause instanceof
|
|
24
|
+
if (cause instanceof EngineError || cause instanceof TestError)
|
|
25
25
|
return true;
|
|
26
26
|
if (cause instanceof ConfigurationError || cause instanceof InfrastructureError)
|
|
27
27
|
return true;
|
|
28
|
-
return cause instanceof Error && cause.name === '
|
|
28
|
+
return cause instanceof Error && cause.name === 'EngineError';
|
|
29
29
|
}
|
|
30
30
|
/** A failure's message in agent-device's normalized form. */
|
|
31
31
|
export function message(cause) {
|
|
@@ -46,14 +46,14 @@ export function translateError(cause, operation) {
|
|
|
46
46
|
const text = `${operation} failed: ${normalized.message}`;
|
|
47
47
|
const options = { retryable: false, cause };
|
|
48
48
|
if (normalized.code === 'SESSION_NOT_FOUND' || NO_SESSION_PATTERN.test(normalized.message)) {
|
|
49
|
-
return new
|
|
49
|
+
return new EngineError('INVALID_STATE', text, options);
|
|
50
50
|
}
|
|
51
51
|
if (UNSUPPORTED_CODES.has(normalized.code) || UNSUPPORTED_PATTERN.test(normalized.message)) {
|
|
52
|
-
return new
|
|
52
|
+
return new EngineError('UNSUPPORTED_CAPABILITY', text, options);
|
|
53
53
|
}
|
|
54
54
|
if (TIMEOUT_PATTERN.test(normalized.message))
|
|
55
|
-
return new
|
|
56
|
-
return new
|
|
55
|
+
return new EngineError('OPERATION_TIMEOUT', text, options);
|
|
56
|
+
return new EngineError('ENGINE_FAILURE', text, options);
|
|
57
57
|
}
|
|
58
58
|
/**
|
|
59
59
|
* Like translateError, but a ref the daemon no longer binds becomes retryable
|
|
@@ -65,7 +65,7 @@ export function staleOr(cause, operation) {
|
|
|
65
65
|
return cause;
|
|
66
66
|
const normalized = normalizeAgentDeviceError(cause);
|
|
67
67
|
if (STALE_PATTERN.test(normalized.message)) {
|
|
68
|
-
return new
|
|
68
|
+
return new EngineError('NODE_STALE', `${operation}: ${normalized.message}`, { retryable: true, cause });
|
|
69
69
|
}
|
|
70
70
|
return translateError(cause, operation);
|
|
71
71
|
}
|
package/dist/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `@e2edev/agent-device` public surface: the `agentDevice()`
|
|
2
|
+
* `@e2edev/agent-device` public surface: the `agentDevice()` engine factory,
|
|
3
3
|
* the `device` fixture types, and a `test` typed with that fixture. `expect`
|
|
4
4
|
* and `credentials` still come from `e2e`; the agent-side tool pack lives on
|
|
5
5
|
* the `@e2edev/agent-device/tools` subpath so this entry never loads the AI SDK.
|
|
6
6
|
*/
|
|
7
7
|
import type { Device } from './device.ts';
|
|
8
|
-
export { agentDevice } from './
|
|
8
|
+
export { agentDevice } from './engine.ts';
|
|
9
9
|
export type { AgentDeviceOptions, AgentDevicePlatform, InstallAppOptions, InstalledApp } from './surface.ts';
|
|
10
10
|
export type { BiometricSensor, Device, DeviceOrientation, DevicePermission, ForegroundApp } from './device.ts';
|
|
11
11
|
/**
|
|
12
|
-
* `test` typed with this
|
|
12
|
+
* `test` typed with this engine's contributed `device` fixture. The same
|
|
13
13
|
* runtime `test` as `e2e`'s; only the fixture types differ.
|
|
14
14
|
*/
|
|
15
15
|
export declare const test: import("@e2edev/e2e").TestAPI<import("@e2edev/e2e").TestFixtures & {
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,EAAE,WAAW,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,YAAY,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC7G,YAAY,EAAE,eAAe,EAAE,MAAM,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE/G;;;GAGG;AACH,eAAO,MAAM,IAAI;YAAyB,MAAM;EAAK,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `@e2edev/agent-device` public surface: the `agentDevice()`
|
|
2
|
+
* `@e2edev/agent-device` public surface: the `agentDevice()` engine factory,
|
|
3
3
|
* the `device` fixture types, and a `test` typed with that fixture. `expect`
|
|
4
4
|
* and `credentials` still come from `e2e`; the agent-side tool pack lives on
|
|
5
5
|
* the `@e2edev/agent-device/tools` subpath so this entry never loads the AI SDK.
|
|
6
6
|
*/
|
|
7
7
|
import { test as base } from '@e2edev/e2e';
|
|
8
|
-
export { agentDevice } from './
|
|
8
|
+
export { agentDevice } from './engine.js';
|
|
9
9
|
/**
|
|
10
|
-
* `test` typed with this
|
|
10
|
+
* `test` typed with this engine's contributed `device` fixture. The same
|
|
11
11
|
* runtime `test` as `e2e`'s; only the fixture types differ.
|
|
12
12
|
*/
|
|
13
13
|
export const test = base.extend();
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,IAAI,IAAI,IAAI,EAAE,MAAM,aAAa,CAAC;AAG3C,OAAO,EAAE,WAAW,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,IAAI,IAAI,IAAI,EAAE,MAAM,aAAa,CAAC;AAG3C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAI1C;;;GAGG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAsB,CAAC"}
|
package/dist/locate.d.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* device just reported. One immediate pass, every match in document order;
|
|
5
5
|
* polling, strictness, and staleness stay with the runner.
|
|
6
6
|
*/
|
|
7
|
-
import { type LocatorExpression } from '@e2edev/e2e/
|
|
7
|
+
import { type LocatorExpression } from '@e2edev/e2e/engine';
|
|
8
8
|
import { type ProjectedNode } from './nodes.ts';
|
|
9
9
|
export interface LocateOptions {
|
|
10
10
|
readonly testIdAttribute: string;
|
package/dist/locate.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"locate.d.ts","sourceRoot":"","sources":["../src/locate.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"locate.d.ts","sourceRoot":"","sources":["../src/locate.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAA4B,KAAK,iBAAiB,EAAsB,MAAM,oBAAoB,CAAC;AAC1G,OAAO,EAAY,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAG1D,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CAClC;AAED,iEAAiE;AACjE,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,iBAAiB,EAC7B,KAAK,EAAE,SAAS,aAAa,EAAE,EAC/B,OAAO,EAAE,aAAa,GACrB,aAAa,EAAE,CAgCjB"}
|
package/dist/locate.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* device just reported. One immediate pass, every match in document order;
|
|
5
5
|
* polling, strictness, and staleness stay with the runner.
|
|
6
6
|
*/
|
|
7
|
-
import {
|
|
7
|
+
import { EngineError, matchesText } from '@e2edev/e2e/engine';
|
|
8
8
|
import { isWithin } from './nodes.js';
|
|
9
9
|
import { compileSelector } from './selector.js';
|
|
10
10
|
/** Resolves one expression to the nodes it currently matches. */
|
|
@@ -36,7 +36,7 @@ export function resolveExpression(expression, index, options) {
|
|
|
36
36
|
case 'selector':
|
|
37
37
|
return compileSelector(expression.selector)(index);
|
|
38
38
|
case 'frame':
|
|
39
|
-
throw new
|
|
39
|
+
throw new EngineError('FRAME_NOT_FOUND', 'a device surface has no nested documents to scope a query into', {
|
|
40
40
|
retryable: false,
|
|
41
41
|
});
|
|
42
42
|
}
|
|
@@ -57,14 +57,17 @@ const STATE_KEYS = ['checked', 'disabled', 'selected', 'expanded'];
|
|
|
57
57
|
/**
|
|
58
58
|
* One node against one semantic query. Role queries skip hidden nodes unless
|
|
59
59
|
* the query asks for them, as a browser's role query does; the other kinds
|
|
60
|
-
* answer with every node and leave visibility to the action or assertion
|
|
60
|
+
* answer with every node and leave visibility to the action or assertion,
|
|
61
|
+
* unless the query says `visible`, which drops hidden nodes for every kind.
|
|
61
62
|
*/
|
|
62
63
|
function matchesQuery(entry, query, options) {
|
|
63
64
|
const node = entry.node;
|
|
65
|
+
if (query.visible === true && node.states?.hidden === true)
|
|
66
|
+
return false;
|
|
64
67
|
switch (query.kind) {
|
|
65
68
|
case 'role': {
|
|
66
69
|
if (query.value.kind !== 'string') {
|
|
67
|
-
throw new
|
|
70
|
+
throw new EngineError('ENGINE_FAILURE', 'role query value must be a string', { retryable: false });
|
|
68
71
|
}
|
|
69
72
|
if ((node.role ?? '') !== query.value.value)
|
|
70
73
|
return false;
|
package/dist/locate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"locate.js","sourceRoot":"","sources":["../src/locate.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"locate.js","sourceRoot":"","sources":["../src/locate.ts"],"names":[],"mappings":"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"}
|
package/dist/nodes.d.ts
CHANGED
|
@@ -6,9 +6,9 @@
|
|
|
6
6
|
* vocabulary `screen.getByRole` and trace relocation speak, and mints the
|
|
7
7
|
* ids the surface owns.
|
|
8
8
|
*/
|
|
9
|
-
import type { SemanticNode } from '@e2edev/e2e/
|
|
9
|
+
import type { SemanticNode } from '@e2edev/e2e/engine';
|
|
10
10
|
import type { Rect } from './support.ts';
|
|
11
|
-
/** The subset of an agent-device snapshot node this
|
|
11
|
+
/** The subset of an agent-device snapshot node this engine reads. */
|
|
12
12
|
export interface RawNode {
|
|
13
13
|
readonly ref?: string;
|
|
14
14
|
readonly index?: number;
|
package/dist/nodes.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodes.d.ts","sourceRoot":"","sources":["../src/nodes.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"nodes.d.ts","sourceRoot":"","sources":["../src/nodes.ts"],"names":[],"mappings":"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"}
|
package/dist/selector.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* runs against the projected snapshot, one immediate pass, every match returned.
|
|
7
7
|
*/
|
|
8
8
|
import { parseSelectorChain } from 'agent-device/selectors';
|
|
9
|
-
import {
|
|
9
|
+
import { EngineError } from '@e2edev/e2e/engine';
|
|
10
10
|
import { normalizeKind } from './nodes.js';
|
|
11
11
|
import { message } from './errors.js';
|
|
12
12
|
/**
|
|
@@ -21,7 +21,7 @@ export function compileSelector(raw) {
|
|
|
21
21
|
chain = parseSelectorChain(raw);
|
|
22
22
|
}
|
|
23
23
|
catch (cause) {
|
|
24
|
-
throw new
|
|
24
|
+
throw new EngineError('ENGINE_FAILURE', `invalid agent-device selector ${JSON.stringify(raw)}: ${message(cause)}`, {
|
|
25
25
|
retryable: false,
|
|
26
26
|
cause,
|
|
27
27
|
});
|
package/dist/selector.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selector.js","sourceRoot":"","sources":["../src/selector.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"selector.js","sourceRoot":"","sources":["../src/selector.ts"],"names":[],"mappings":"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"}
|
package/dist/support.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/** Shared helpers for the agent-device
|
|
2
|
-
import {
|
|
1
|
+
/** Shared helpers for the agent-device engine: abort racing, filenames, PNG headers, gestures, path anchors. */
|
|
2
|
+
import { EngineError, type Momentum, type ScrollDirection } from '@e2edev/e2e/engine';
|
|
3
3
|
export interface Point {
|
|
4
4
|
readonly x: number;
|
|
5
5
|
readonly y: number;
|
|
@@ -10,10 +10,10 @@ export interface Rect {
|
|
|
10
10
|
readonly width: number;
|
|
11
11
|
readonly height: number;
|
|
12
12
|
}
|
|
13
|
-
export declare function cancelled(text: string):
|
|
14
|
-
export declare function invalidState(text: string):
|
|
15
|
-
export declare function notActionable(text: string):
|
|
16
|
-
export declare function unsupported(text: string):
|
|
13
|
+
export declare function cancelled(text: string): EngineError;
|
|
14
|
+
export declare function invalidState(text: string): EngineError;
|
|
15
|
+
export declare function notActionable(text: string): EngineError;
|
|
16
|
+
export declare function unsupported(text: string): EngineError;
|
|
17
17
|
/** Constrains a caller-supplied artifact label to a safe filename. */
|
|
18
18
|
export declare function sanitizeFilename(name: string): string;
|
|
19
19
|
/** Reads the dimensions out of a PNG's IHDR chunk; undefined for anything else. */
|
|
@@ -33,7 +33,7 @@ export declare function swipeWithin(rect: Rect, direction: ScrollDirection, mome
|
|
|
33
33
|
/**
|
|
34
34
|
* The location a device surface reports through `url`. A simulator has no
|
|
35
35
|
* address bar, but the trace cache anchors every recorded step on a path and
|
|
36
|
-
* refuses to write a trace for a surface without one, so the
|
|
36
|
+
* refuses to write a trace for a surface without one, so the engine mints
|
|
37
37
|
* one: `app://device/<app>/<screen title>`. The cache compares pathnames
|
|
38
38
|
* only, so the app identity lives in the path, not the host: two apps with a
|
|
39
39
|
* screen called "General" must not share an anchor. `new URL(...)` parses
|
package/dist/support.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"support.d.ts","sourceRoot":"","sources":["../src/support.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"support.d.ts","sourceRoot":"","sources":["../src/support.ts"],"names":[],"mappings":"AAAA,gHAAgH;AAEhH,OAAO,EAAE,WAAW,EAAE,KAAK,QAAQ,EAAE,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEtF,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,IAAI;IACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAEnD;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAEtD;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAEvD;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAErD;AAED,sEAAsE;AACtE,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAErD;AAID,mFAAmF;AACnF,wBAAgB,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAO3F;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,eAAe,EAC1B,QAAQ,EAAE,QAAQ,GAAG,SAAS,GAC7B;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,EAAE,EAAE,KAAK,CAAA;CAAE,CAe5B;AAED;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAIpF"}
|
package/dist/support.js
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
/** Shared helpers for the agent-device
|
|
2
|
-
import {
|
|
1
|
+
/** Shared helpers for the agent-device engine: abort racing, filenames, PNG headers, gestures, path anchors. */
|
|
2
|
+
import { EngineError } from '@e2edev/e2e/engine';
|
|
3
3
|
export function cancelled(text) {
|
|
4
|
-
return new
|
|
4
|
+
return new EngineError('CANCELLED', text, { retryable: false });
|
|
5
5
|
}
|
|
6
6
|
export function invalidState(text) {
|
|
7
|
-
return new
|
|
7
|
+
return new EngineError('INVALID_STATE', text, { retryable: false });
|
|
8
8
|
}
|
|
9
9
|
export function notActionable(text) {
|
|
10
|
-
return new
|
|
10
|
+
return new EngineError('NOT_ACTIONABLE', text, { retryable: false });
|
|
11
11
|
}
|
|
12
12
|
export function unsupported(text) {
|
|
13
|
-
return new
|
|
13
|
+
return new EngineError('UNSUPPORTED_CAPABILITY', text, { retryable: false });
|
|
14
14
|
}
|
|
15
15
|
/** Constrains a caller-supplied artifact label to a safe filename. */
|
|
16
16
|
export function sanitizeFilename(name) {
|
|
@@ -52,7 +52,7 @@ export function swipeWithin(rect, direction, momentum) {
|
|
|
52
52
|
/**
|
|
53
53
|
* The location a device surface reports through `url`. A simulator has no
|
|
54
54
|
* address bar, but the trace cache anchors every recorded step on a path and
|
|
55
|
-
* refuses to write a trace for a surface without one, so the
|
|
55
|
+
* refuses to write a trace for a surface without one, so the engine mints
|
|
56
56
|
* one: `app://device/<app>/<screen title>`. The cache compares pathnames
|
|
57
57
|
* only, so the app identity lives in the path, not the host: two apps with a
|
|
58
58
|
* screen called "General" must not share an anchor. `new URL(...)` parses
|
package/dist/support.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"support.js","sourceRoot":"","sources":["../src/support.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"support.js","sourceRoot":"","sources":["../src/support.ts"],"names":[],"mappings":"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"}
|
package/dist/surface.d.ts
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* agent-device's commands. The runner owns everything else.
|
|
8
8
|
*/
|
|
9
9
|
import type { createAgentDeviceClient } from 'agent-device';
|
|
10
|
-
import { type
|
|
10
|
+
import { type EngineAttemptContext, type EngineCleanupContext, type EngineInitInfo, type EngineObserveOptions, type EngineSnapshot, type LocatorAction, type LocatorExpression, type Momentum, type NodeRef, type OperationContext, type ScrollDirection, type SemanticNode } from '@e2edev/e2e/engine';
|
|
11
11
|
export type AgentDeviceClient = ReturnType<typeof createAgentDeviceClient>;
|
|
12
12
|
/** Mints the agent-device client for one session; the seam unit tests script. */
|
|
13
13
|
export type ClientFactory = (session: string) => AgentDeviceClient;
|
|
@@ -29,6 +29,14 @@ export interface AgentDeviceOptions {
|
|
|
29
29
|
* package becomes the app opened fresh at the start of every attempt.
|
|
30
30
|
*/
|
|
31
31
|
readonly appPath?: string;
|
|
32
|
+
/**
|
|
33
|
+
* Stable identity keying trace cache and session entries; defaults to `app`,
|
|
34
|
+
* else `appPath`. Declare one when the pinned app differs per run (a build
|
|
35
|
+
* path with a version in it) so entries survive the rename.
|
|
36
|
+
*/
|
|
37
|
+
readonly identity?: string;
|
|
38
|
+
/** Report label joining the cache identity; a simulator or emulator defaults to `test`. */
|
|
39
|
+
readonly environment?: 'test' | 'staging' | 'production';
|
|
32
40
|
/** Simulator or emulator to use, by name or id; agent-device picks a booted one otherwise. */
|
|
33
41
|
readonly device?: string;
|
|
34
42
|
/**
|
|
@@ -103,10 +111,10 @@ export declare class AgentDeviceSurface {
|
|
|
103
111
|
* racing it: the launch timeout is the honest bound on a stuck device.
|
|
104
112
|
*/
|
|
105
113
|
private settleInflight;
|
|
106
|
-
init(info:
|
|
107
|
-
startAttempt(context:
|
|
108
|
-
endAttempt(_context:
|
|
109
|
-
dispose(context:
|
|
114
|
+
init(info: EngineInitInfo): Promise<void>;
|
|
115
|
+
startAttempt(context: EngineAttemptContext): Promise<void>;
|
|
116
|
+
endAttempt(_context: EngineCleanupContext): Promise<void>;
|
|
117
|
+
dispose(context: EngineCleanupContext): Promise<void>;
|
|
110
118
|
/** Opens an app in the session, remembering its identity for the path anchor. */
|
|
111
119
|
openApp(app: string, relaunch: boolean, signal: AbortSignal): Promise<void>;
|
|
112
120
|
/**
|
|
@@ -123,7 +131,7 @@ export declare class AgentDeviceSurface {
|
|
|
123
131
|
*/
|
|
124
132
|
private snapshotOrEmpty;
|
|
125
133
|
private project;
|
|
126
|
-
observe(operation: OperationContext, options?:
|
|
134
|
+
observe(operation: OperationContext, options?: EngineObserveOptions): Promise<EngineSnapshot>;
|
|
127
135
|
/** Retains only action bindings for matches, independently of the observation generation. */
|
|
128
136
|
locate(expression: LocatorExpression, operation: OperationContext): Promise<readonly SemanticNode[]>;
|
|
129
137
|
private resolveRef;
|
|
@@ -165,7 +173,7 @@ export declare class AgentDeviceSurface {
|
|
|
165
173
|
* Screenshot with every secure node on the current screen painted over.
|
|
166
174
|
* Observes first so the regions describe the screen the pixels show;
|
|
167
175
|
* throws when a secure field cannot be covered, because an image that may
|
|
168
|
-
* hold a credential must not leave the
|
|
176
|
+
* hold a credential must not leave the engine.
|
|
169
177
|
*/
|
|
170
178
|
private maskedScreenshot;
|
|
171
179
|
/**
|
package/dist/surface.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"surface.d.ts","sourceRoot":"","sources":["../src/surface.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,EAIL,KAAK,
|
|
1
|
+
{"version":3,"file":"surface.d.ts","sourceRoot":"","sources":["../src/surface.ts"],"names":[],"mappings":"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"}
|
package/dist/surface.js
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
import { mkdirSync, readFileSync, rmSync, writeFileSync } from 'node:fs';
|
|
10
10
|
import { tmpdir } from 'node:os';
|
|
11
11
|
import path from 'node:path';
|
|
12
|
-
import {
|
|
12
|
+
import { EngineError, raceAbort, withinCleanupBudget, } from '@e2edev/e2e/engine';
|
|
13
13
|
import { staleOr, translateError } from './errors.js';
|
|
14
14
|
import { resolveExpression } from './locate.js';
|
|
15
15
|
import { isWithin, projectSnapshot, screenTitle } from './nodes.js';
|
|
@@ -83,7 +83,7 @@ export class AgentDeviceSurface {
|
|
|
83
83
|
/** The live client; INVALID_STATE before init or after dispose. */
|
|
84
84
|
requireClient() {
|
|
85
85
|
if (this.client === undefined)
|
|
86
|
-
throw invalidState('the agent-device
|
|
86
|
+
throw invalidState('the agent-device engine is not initialized');
|
|
87
87
|
return this.client;
|
|
88
88
|
}
|
|
89
89
|
/**
|
|
@@ -132,7 +132,7 @@ export class AgentDeviceSurface {
|
|
|
132
132
|
}
|
|
133
133
|
async startAttempt(context) {
|
|
134
134
|
if (this.attempt !== undefined) {
|
|
135
|
-
throw invalidState('an attempt is already running on this agent-device
|
|
135
|
+
throw invalidState('an attempt is already running on this agent-device engine');
|
|
136
136
|
}
|
|
137
137
|
await this.settleInflight(context.signal);
|
|
138
138
|
this.attempt = { artifactsDir: context.artifactsDir, screenshots: 0 };
|
|
@@ -185,7 +185,7 @@ export class AgentDeviceSurface {
|
|
|
185
185
|
};
|
|
186
186
|
const app = options.app ?? (options.reinstall === true ? this.pinnedApp : undefined);
|
|
187
187
|
if (options.reinstall === true && app === undefined) {
|
|
188
|
-
throw invalidState('reinstall needs an app: pass `app`, or pin one with the
|
|
188
|
+
throw invalidState('reinstall needs an app: pass `app`, or pin one with the engine option `app` or `appPath`');
|
|
189
189
|
}
|
|
190
190
|
const result = (await this.command(`install ${resolved}`, (client) => options.reinstall === true && app !== undefined
|
|
191
191
|
? client.apps.reinstall({ ...selection, app, appPath: resolved })
|
|
@@ -199,7 +199,7 @@ export class AgentDeviceSurface {
|
|
|
199
199
|
if (backoffMs > 0)
|
|
200
200
|
await sleep(backoffMs, operation.signal);
|
|
201
201
|
if (operation.signal.aborted)
|
|
202
|
-
throw new
|
|
202
|
+
throw new EngineError('CANCELLED', 'snapshot cancelled', { retryable: false });
|
|
203
203
|
last = (await this.command('snapshot', (client) => client.capture.snapshot({ interactiveOnly }), operation.signal));
|
|
204
204
|
if (last.appBundleId !== undefined || last.appName !== undefined) {
|
|
205
205
|
this.appIdentity = last.appBundleId ?? last.appName;
|
|
@@ -219,7 +219,7 @@ export class AgentDeviceSurface {
|
|
|
219
219
|
return await this.snapshot(operation, interactiveOnly);
|
|
220
220
|
}
|
|
221
221
|
catch (cause) {
|
|
222
|
-
if (!this.managesApp && cause instanceof
|
|
222
|
+
if (!this.managesApp && cause instanceof EngineError && cause.code === 'INVALID_STATE')
|
|
223
223
|
return { nodes: [] };
|
|
224
224
|
throw cause;
|
|
225
225
|
}
|
|
@@ -263,7 +263,7 @@ export class AgentDeviceSurface {
|
|
|
263
263
|
resolveRef(ref) {
|
|
264
264
|
const entry = this.located.get(ref.id) ?? this.generation.get(ref.id);
|
|
265
265
|
if (entry === undefined) {
|
|
266
|
-
throw new
|
|
266
|
+
throw new EngineError('NODE_STALE', `node ${ref.id} is not part of the newest observation`, { retryable: true });
|
|
267
267
|
}
|
|
268
268
|
return entry;
|
|
269
269
|
}
|
|
@@ -403,13 +403,13 @@ export class AgentDeviceSurface {
|
|
|
403
403
|
async restart(operation) {
|
|
404
404
|
const app = this.pinnedApp;
|
|
405
405
|
if (app === undefined)
|
|
406
|
-
throw unsupported('app.restart needs the
|
|
406
|
+
throw unsupported('app.restart needs the engine option `app` or `appPath`');
|
|
407
407
|
await this.openApp(app, true, operation.signal);
|
|
408
408
|
}
|
|
409
409
|
async clearState(operation) {
|
|
410
410
|
const app = this.pinnedApp;
|
|
411
411
|
if (app === undefined)
|
|
412
|
-
throw unsupported('app.clearState needs the
|
|
412
|
+
throw unsupported('app.clearState needs the engine option `app` or `appPath`');
|
|
413
413
|
await this.command('clear app state', (client) => client.settings.update({ setting: 'clear-app-state', state: 'clear', app }), operation.signal);
|
|
414
414
|
await this.openApp(app, true, operation.signal);
|
|
415
415
|
}
|
|
@@ -453,7 +453,7 @@ export class AgentDeviceSurface {
|
|
|
453
453
|
* Screenshot with every secure node on the current screen painted over.
|
|
454
454
|
* Observes first so the regions describe the screen the pixels show;
|
|
455
455
|
* throws when a secure field cannot be covered, because an image that may
|
|
456
|
-
* hold a credential must not leave the
|
|
456
|
+
* hold a credential must not leave the engine.
|
|
457
457
|
*/
|
|
458
458
|
async maskedScreenshot(signal) {
|
|
459
459
|
const operation = {
|
|
@@ -466,7 +466,7 @@ export class AgentDeviceSurface {
|
|
|
466
466
|
const data = await this.rawScreenshot(signal);
|
|
467
467
|
const masked = redactSecure(data, projected);
|
|
468
468
|
if (masked === undefined) {
|
|
469
|
-
throw new
|
|
469
|
+
throw new EngineError('ENGINE_FAILURE', 'a secure field on screen could not be masked; screenshot withheld', {
|
|
470
470
|
retryable: false,
|
|
471
471
|
});
|
|
472
472
|
}
|
package/dist/surface.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"surface.js","sourceRoot":"","sources":["../src/surface.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"surface.js","sourceRoot":"","sources":["../src/surface.ts"],"names":[],"mappings":"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"}
|
package/dist/tools.d.ts
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Agent-side tools for device targets. Everything a model plans through
|
|
3
|
-
* beyond the grammar verbs the
|
|
3
|
+
* beyond the grammar verbs the engine already unlocks (tap, type, scroll)
|
|
4
4
|
* lives here: opening another app, a free-form swipe, typing into the focused
|
|
5
5
|
* field, system alerts, and a look at the pixels when the accessibility tree
|
|
6
|
-
* is not enough. Each tool is scoped to the platforms of the
|
|
6
|
+
* is not enough. Each tool is scoped to the platforms of the engines it was
|
|
7
7
|
* built from, so a mixed suite never offers it on a browser.
|
|
8
8
|
*/
|
|
9
9
|
import { type DefinedTool } from '@e2edev/e2e/agent';
|
|
10
|
-
import { type
|
|
10
|
+
import { type EngineHandle } from '@e2edev/e2e/engine';
|
|
11
11
|
/**
|
|
12
|
-
* Builds the tool pack for one or more agent-device
|
|
13
|
-
* `createAgent({ tools })` expects. Pass every device
|
|
12
|
+
* Builds the tool pack for one or more agent-device engines, keyed the way
|
|
13
|
+
* `createAgent({ tools })` expects. Pass every device engine a config
|
|
14
14
|
* declares: tool names are fixed, so two packs cannot be merged, and each
|
|
15
|
-
* tool is offered only on the platforms those
|
|
15
|
+
* tool is offered only on the platforms those engines drive. A worker runs
|
|
16
16
|
* one attempt at a time, so at execution the pack dispatches to the surface
|
|
17
17
|
* whose attempt is running.
|
|
18
18
|
*
|
|
19
19
|
* Mutating tools are recorded as replay gaps by the trace cache; a step that
|
|
20
|
-
* stays within the grammar verbs replays zero-turn, so prefer the
|
|
20
|
+
* stays within the grammar verbs replays zero-turn, so prefer the engine's
|
|
21
21
|
* `app` option over `open_app` when a test always starts in the same app.
|
|
22
22
|
*/
|
|
23
|
-
export declare function agentDeviceTools(...
|
|
23
|
+
export declare function agentDeviceTools(...engines: readonly [EngineHandle, ...EngineHandle[]]): Readonly<Record<string, DefinedTool>>;
|
|
24
24
|
//# sourceMappingURL=tools.d.ts.map
|
package/dist/tools.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,EAA8B,KAAK,WAAW,EAAwB,MAAM,mBAAmB,CAAC;AACvG,OAAO,
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,EAA8B,KAAK,WAAW,EAAwB,MAAM,mBAAmB,CAAC;AACvG,OAAO,EAAe,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAmBpE;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,OAAO,EAAE,SAAS,CAAC,YAAY,EAAE,GAAG,YAAY,EAAE,CAAC,GACrD,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAiGvC"}
|
package/dist/tools.js
CHANGED
|
@@ -1,45 +1,45 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Agent-side tools for device targets. Everything a model plans through
|
|
3
|
-
* beyond the grammar verbs the
|
|
3
|
+
* beyond the grammar verbs the engine already unlocks (tap, type, scroll)
|
|
4
4
|
* lives here: opening another app, a free-form swipe, typing into the focused
|
|
5
5
|
* field, system alerts, and a look at the pixels when the accessibility tree
|
|
6
|
-
* is not enough. Each tool is scoped to the platforms of the
|
|
6
|
+
* is not enough. Each tool is scoped to the platforms of the engines it was
|
|
7
7
|
* built from, so a mixed suite never offers it on a browser.
|
|
8
8
|
*/
|
|
9
9
|
import { tool } from 'ai';
|
|
10
10
|
import { z } from 'zod';
|
|
11
11
|
import { defineTool, getToolContext } from '@e2edev/e2e/agent';
|
|
12
|
-
import {
|
|
13
|
-
import { surfaceOf } from './
|
|
14
|
-
function requireSurface(
|
|
15
|
-
const surface = surfaceOf(
|
|
12
|
+
import { EngineError } from '@e2edev/e2e/engine';
|
|
13
|
+
import { surfaceOf } from './engine.js';
|
|
14
|
+
function requireSurface(engine) {
|
|
15
|
+
const surface = surfaceOf(engine);
|
|
16
16
|
if (surface === undefined) {
|
|
17
|
-
throw new
|
|
17
|
+
throw new EngineError('INVALID_STATE', 'agentDeviceTools needs handles returned by agentDevice()', {
|
|
18
18
|
retryable: false,
|
|
19
19
|
});
|
|
20
20
|
}
|
|
21
21
|
return surface;
|
|
22
22
|
}
|
|
23
23
|
/**
|
|
24
|
-
* Builds the tool pack for one or more agent-device
|
|
25
|
-
* `createAgent({ tools })` expects. Pass every device
|
|
24
|
+
* Builds the tool pack for one or more agent-device engines, keyed the way
|
|
25
|
+
* `createAgent({ tools })` expects. Pass every device engine a config
|
|
26
26
|
* declares: tool names are fixed, so two packs cannot be merged, and each
|
|
27
|
-
* tool is offered only on the platforms those
|
|
27
|
+
* tool is offered only on the platforms those engines drive. A worker runs
|
|
28
28
|
* one attempt at a time, so at execution the pack dispatches to the surface
|
|
29
29
|
* whose attempt is running.
|
|
30
30
|
*
|
|
31
31
|
* Mutating tools are recorded as replay gaps by the trace cache; a step that
|
|
32
|
-
* stays within the grammar verbs replays zero-turn, so prefer the
|
|
32
|
+
* stays within the grammar verbs replays zero-turn, so prefer the engine's
|
|
33
33
|
* `app` option over `open_app` when a test always starts in the same app.
|
|
34
34
|
*/
|
|
35
|
-
export function agentDeviceTools(...
|
|
36
|
-
const surfaces =
|
|
35
|
+
export function agentDeviceTools(...engines) {
|
|
36
|
+
const surfaces = engines.map(requireSurface);
|
|
37
37
|
const platforms = [...new Set(surfaces.map((surface) => surface.options.platform))];
|
|
38
38
|
const active = () => {
|
|
39
39
|
const running = surfaces.filter((surface) => surface.attemptRunning);
|
|
40
40
|
const [surface] = running;
|
|
41
41
|
if (surface === undefined || running.length > 1) {
|
|
42
|
-
throw new
|
|
42
|
+
throw new EngineError('INVALID_STATE', running.length === 0
|
|
43
43
|
? 'no agent-device attempt is running; device tools act inside a test attempt only'
|
|
44
44
|
: 'several agent-device attempts are running in one worker; tools cannot pick a device', { retryable: false });
|
|
45
45
|
}
|
package/dist/tools.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC1B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,cAAc,EAA0C,MAAM,mBAAmB,CAAC;AACvG,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@e2edev/agent-device",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "agent-device mobile
|
|
3
|
+
"version": "0.3.0",
|
|
4
|
+
"description": "agent-device mobile engine (iOS and Android) for the e2e agentic end-to-end testing standard",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"e2e",
|
|
7
7
|
"testing",
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"agent-device",
|
|
11
11
|
"ios",
|
|
12
12
|
"android",
|
|
13
|
-
"
|
|
13
|
+
"engine"
|
|
14
14
|
],
|
|
15
15
|
"license": "MIT",
|
|
16
16
|
"contributors": [
|
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
"ai": "7.0.37",
|
|
67
67
|
"typescript": "7.0.2",
|
|
68
68
|
"vitest": "4.1.10",
|
|
69
|
-
"@e2edev/e2e": "0.
|
|
69
|
+
"@e2edev/e2e": "0.5.0"
|
|
70
70
|
},
|
|
71
71
|
"engines": {
|
|
72
72
|
"node": ">=22.12.0"
|
package/dist/backend.d.ts
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The agent-device backend for e2e (RFC0002): a mobile body built with the
|
|
3
|
-
* public `defineBackend`, validated by the same rules and graded by the same
|
|
4
|
-
* capabilities as any other backend. Core imports nothing from here; this
|
|
5
|
-
* package imports the contract from `@e2edev/e2e/backend` and contributes the
|
|
6
|
-
* `device` fixture the way the browser backend contributes `web`.
|
|
7
|
-
*/
|
|
8
|
-
import { type BackendHandle } from '@e2edev/e2e/backend';
|
|
9
|
-
import { AgentDeviceSurface, type AgentDeviceOptions } from './surface.ts';
|
|
10
|
-
/** Assembles the manifest for one surface. Exported for tests that script the client. */
|
|
11
|
-
export declare function buildBackend(surface: AgentDeviceSurface): BackendHandle;
|
|
12
|
-
/** Creates one agent-device backend: one device session per worker, one fresh app launch per attempt. */
|
|
13
|
-
export declare function agentDevice(options: AgentDeviceOptions): BackendHandle;
|
|
14
|
-
/** The surface behind a handle this package created; undefined for any other backend. */
|
|
15
|
-
export declare function surfaceOf(backend: BackendHandle): AgentDeviceSurface | undefined;
|
|
16
|
-
//# sourceMappingURL=backend.d.ts.map
|
package/dist/backend.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../src/backend.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EAAiB,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAExE,OAAO,EAAE,kBAAkB,EAAE,KAAK,kBAAkB,EAAsB,MAAM,cAAc,CAAC;AAI/F,yFAAyF;AACzF,wBAAgB,YAAY,CAAC,OAAO,EAAE,kBAAkB,GAAG,aAAa,CAgCvE;AAED,yGAAyG;AACzG,wBAAgB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,aAAa,CAGtE;AAED,yFAAyF;AACzF,wBAAgB,SAAS,CAAC,OAAO,EAAE,aAAa,GAAG,kBAAkB,GAAG,SAAS,CAEhF"}
|
package/dist/backend.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"backend.js","sourceRoot":"","sources":["../src/backend.ts"],"names":[],"mappings":"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"}
|