@e2edev/agent-device 0.7.0 → 0.8.0-canary-20260914081513
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 +17 -17
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
# @e2edev/agent-device
|
|
2
2
|
|
|
3
|
-
The mobile engine for [
|
|
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
|
|
5
|
+
Android emulators through the same `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
|
|
|
9
9
|
## Install
|
|
10
10
|
|
|
11
|
-
Run `npx
|
|
11
|
+
Run `npx e2e init` and choose **agent-device** for a Settings
|
|
12
12
|
example with optional AI testing. Init defaults to iOS on macOS and Android
|
|
13
13
|
elsewhere; change the platform in `e2e.config.ts` when needed.
|
|
14
14
|
Or add the packages to an existing project:
|
|
15
15
|
|
|
16
16
|
```bash
|
|
17
|
-
npm install --save-dev
|
|
17
|
+
npm install --save-dev e2e @e2edev/agent-device
|
|
18
18
|
```
|
|
19
19
|
|
|
20
20
|
`agent-device` needs Xcode with an iOS simulator runtime, or the Android SDK
|
|
@@ -22,8 +22,8 @@ with an emulator. Run `npx agent-device doctor` once before handing the target
|
|
|
22
22
|
to the runner.
|
|
23
23
|
|
|
24
24
|
```ts title="e2e.config.ts"
|
|
25
|
-
import type { E2EConfig } from '
|
|
26
|
-
import { createAgent } from '
|
|
25
|
+
import type { E2EConfig } from 'e2e';
|
|
26
|
+
import { createAgent } from 'e2e/agent';
|
|
27
27
|
import { agentDevice } from '@e2edev/agent-device';
|
|
28
28
|
import { agentDeviceTools } from '@e2edev/agent-device/tools';
|
|
29
29
|
|
|
@@ -86,13 +86,13 @@ straight through, with no conditional spread.
|
|
|
86
86
|
## Trace cache
|
|
87
87
|
|
|
88
88
|
The runner caches `agent.act` steps by their location anchor, and a device has
|
|
89
|
-
no address bar. This engine reports one anyway:
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
89
|
+
no address bar. This engine reports one anyway: `<bundle id> / <screen
|
|
90
|
+
title>`, with the title read off the navigation bar on iOS and the collapsing
|
|
91
|
+
toolbar on Android. The app identity is part of the location, so two apps with
|
|
92
|
+
a "General" screen never share an anchor. A step recorded on
|
|
93
|
+
`com.apple.Preferences / General` replays only when that app is on that
|
|
94
|
+
screen again, and a flow that stays within tap, type, and scroll replays with
|
|
95
|
+
zero model calls. Pin `app` so every attempt starts on the same screen, and
|
|
96
96
|
prefer the grammar over the `open_app` tool inside a step: a tool call is a
|
|
97
97
|
replay gap.
|
|
98
98
|
|
|
@@ -103,7 +103,7 @@ Deterministic device management, recorded as `device.<method>` steps. Import
|
|
|
103
103
|
|
|
104
104
|
```ts
|
|
105
105
|
import { test } from '@e2edev/agent-device';
|
|
106
|
-
import { expect } from '
|
|
106
|
+
import { expect } from 'e2e';
|
|
107
107
|
|
|
108
108
|
test('shows the version offline in dark mode', async ({ agent, device, screen }) => {
|
|
109
109
|
await device.setAppearance('dark');
|
|
@@ -139,9 +139,9 @@ targets can hand the pack to one `createAgent`.
|
|
|
139
139
|
|
|
140
140
|
## Secrets
|
|
141
141
|
|
|
142
|
-
Secret fills need an origin the runner can check, and
|
|
143
|
-
|
|
144
|
-
device target before any plaintext reaches the device. Fill credentials
|
|
142
|
+
Secret fills need an origin the runner can check, and a device location is
|
|
143
|
+
not a URL, so it has no origin an allowlist can name: `type_secret` is denied
|
|
144
|
+
on a device target before any plaintext reaches the device. Fill credentials
|
|
145
145
|
through a deterministic `screen` action in a setup step instead.
|
|
146
146
|
|
|
147
147
|
## Documentation
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@e2edev/agent-device",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.0-canary-20260914081513",
|
|
4
4
|
"description": "agent-device mobile engine (iOS and Android) for e2e agentic end-to-end testing",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"e2e",
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"homepage": "https://github.com/tester-army/e2e/tree/main/packages/agent-device#readme",
|
|
29
29
|
"publishConfig": {
|
|
30
30
|
"registry": "https://registry.npmjs.org/",
|
|
31
|
-
"access": "
|
|
31
|
+
"access": "public",
|
|
32
32
|
"provenance": false,
|
|
33
33
|
"tag": "beta"
|
|
34
34
|
},
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
"peerDependencies": {
|
|
54
54
|
"agent-device": "0.21.x",
|
|
55
55
|
"ai": "^7.0.0",
|
|
56
|
-
"
|
|
56
|
+
"e2e": "0.15.0-canary-20260914081513"
|
|
57
57
|
},
|
|
58
58
|
"peerDependenciesMeta": {
|
|
59
59
|
"ai": {
|
|
@@ -65,7 +65,7 @@
|
|
|
65
65
|
"@types/pngjs": "6.0.5",
|
|
66
66
|
"agent-device": "0.21.1",
|
|
67
67
|
"ai": "7.0.97",
|
|
68
|
-
"
|
|
68
|
+
"e2e": "0.15.0-canary-20260914081513",
|
|
69
69
|
"typescript": "7.0.2",
|
|
70
70
|
"vitest": "5.0.0"
|
|
71
71
|
},
|