@houwert/conductor 0.21.0 → 0.23.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/dist/commands/assert-not-visible.js +3 -1
- package/dist/commands/assert-visible.js +3 -1
- package/dist/commands/back.js +4 -0
- package/dist/commands/capture-ui.js +4 -2
- package/dist/commands/clipboard.js +9 -0
- package/dist/commands/crashes.js +5 -0
- package/dist/commands/delete-device.js +6 -1
- package/dist/commands/download-app.js +4 -0
- package/dist/commands/erase-text.js +2 -1
- package/dist/commands/focused.js +3 -1
- package/dist/commands/foreground-app.js +2 -1
- package/dist/commands/gestures.js +7 -0
- package/dist/commands/hide-keyboard.js +4 -0
- package/dist/commands/inspect.js +4 -3
- package/dist/commands/install-app.js +11 -0
- package/dist/commands/launch-app.js +6 -0
- package/dist/commands/list-apps.js +5 -0
- package/dist/commands/list-devices.js +16 -0
- package/dist/commands/memory.js +5 -0
- package/dist/commands/press-key.js +32 -4
- package/dist/commands/profile.js +5 -0
- package/dist/commands/screenshot.js +3 -1
- package/dist/commands/scroll-until-visible.js +3 -1
- package/dist/commands/scroll.js +2 -1
- package/dist/commands/start-device.js +60 -3
- package/dist/commands/stop-app.js +4 -0
- package/dist/commands/stop-device.js +8 -3
- package/dist/commands/swipe.js +2 -1
- package/dist/commands/tap.js +9 -6
- package/dist/commands/uninstall-app.js +4 -0
- package/dist/commands/web-targets.js +84 -0
- package/dist/commands/workspace.js +4 -1
- package/dist/daemon/log-collector.js +9 -1
- package/dist/daemon/server.js +70 -50
- package/dist/drivers/bootstrap.js +12 -0
- package/dist/drivers/flow-runner.js +38 -8
- package/dist/drivers/ios.js +5 -2
- package/dist/drivers/log-sources/metro-discovery.js +56 -2
- package/dist/drivers/log-sources/vega.js +77 -0
- package/dist/drivers/metro-cdp.js +11 -3
- package/dist/drivers/vega/automation-client.js +79 -0
- package/dist/drivers/vega/cli.js +199 -0
- package/dist/drivers/vega/connection.js +48 -0
- package/dist/drivers/vega/input.js +100 -0
- package/dist/drivers/vega/page-source-parser.js +229 -0
- package/dist/drivers/vega.js +165 -0
- package/dist/enum-options.js +15 -3
- package/dist/index.js +46 -2
- package/dist/runner.js +31 -0
- package/package.json +1 -1
- package/skills/conductor-device-interact/SKILL.md +4 -3
- package/skills/conductor-device-setup/SKILL.md +59 -28
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: conductor-device-setup
|
|
3
|
-
description: Boot, list, and manage devices and app installs for the conductor CLI — iOS simulators, Android emulators, tvOS simulators, and Playwright web browsers — plus sessions, the warm-driver daemon, and the parallel device pool. Use when starting or stopping a simulator/emulator/browser, installing or launching an app, setting up the web driver, keeping the driver warm, or coordinating multiple devices for parallel agents.
|
|
3
|
+
description: Boot, list, and manage devices and app installs for the conductor CLI — iOS simulators, Android emulators, tvOS simulators, Vega (Amazon Fire TV) virtual devices, and Playwright web browsers — plus sessions, the warm-driver daemon, and the parallel device pool. Use when starting or stopping a simulator/emulator/browser, attaching to a Vega VVD, installing or launching an app, setting up the web driver, attaching to an already-running browser over CDP (e.g. an Electron app / its webviews), keeping the driver warm, or coordinating multiple devices for parallel agents.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Conductor — device & app setup
|
|
@@ -19,27 +19,58 @@ conductor list-apps # installed app ids / package names
|
|
|
19
19
|
|
|
20
20
|
## Devices
|
|
21
21
|
|
|
22
|
-
| Command
|
|
23
|
-
|
|
24
|
-
| `conductor start-device --platform <ios\|android\|tvos\|web>`
|
|
25
|
-
| `conductor start-device --os-version <n> --device-type <name>`
|
|
26
|
-
| `conductor stop-device [<name-or-id>] [--all]`
|
|
27
|
-
| `conductor delete-device <name-or-id> [--all]`
|
|
28
|
-
| `conductor set-location --lat <n> --lng <n>`
|
|
29
|
-
| `conductor set-orientation <portrait\|landscape>`
|
|
30
|
-
| `conductor set-viewport [<w> <h>] [--preset mobile\|tablet\|desktop]` | Resize web viewport (web only)
|
|
31
|
-
| `conductor install-web [--check] [browser]`
|
|
22
|
+
| Command | Purpose |
|
|
23
|
+
| --------------------------------------------------------------------- | -------------------------------------------------------------------------- |
|
|
24
|
+
| `conductor start-device --platform <ios\|android\|tvos\|web\|vega>` | Boot a simulator/emulator, start the web driver, or attach to a Vega VVD |
|
|
25
|
+
| `conductor start-device --os-version <n> --device-type <name>` | Pick OS version + device type (creates if needed) |
|
|
26
|
+
| `conductor stop-device [<name-or-id>] [--all]` | Shut down device(s) |
|
|
27
|
+
| `conductor delete-device <name-or-id> [--all]` | Delete simulator(s)/AVD(s)/web session(s) |
|
|
28
|
+
| `conductor set-location --lat <n> --lng <n>` | Set GPS coordinates |
|
|
29
|
+
| `conductor set-orientation <portrait\|landscape>` | Set orientation |
|
|
30
|
+
| `conductor set-viewport [<w> <h>] [--preset mobile\|tablet\|desktop]` | Resize web viewport (web only) |
|
|
31
|
+
| `conductor install-web [--check] [browser]` | Install a Playwright browser (chromium/firefox/webkit); `--check` = status |
|
|
32
|
+
|
|
33
|
+
### Attach to an existing browser (CDP)
|
|
34
|
+
|
|
35
|
+
Instead of launching its own browser, the web driver can attach to one that's
|
|
36
|
+
already running and exposes CDP over a remote-debugging port — e.g. an Electron
|
|
37
|
+
app started with `--remote-debugging-port`, where each window / webview is a
|
|
38
|
+
separate page target you can drive independently.
|
|
39
|
+
|
|
40
|
+
| Command | Purpose |
|
|
41
|
+
| ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- |
|
|
42
|
+
| `conductor web-targets --cdp-url <url>` | List the controllable page targets the browser exposes (id, url, title) + a paste-ready bind command for each |
|
|
43
|
+
| `conductor --device web:<browser>:<label> --cdp-url <url> --cdp-target <id> <cmd>` | Bind a session to one target; the attachment persists so later commands for that `--device` don't need the flags |
|
|
44
|
+
|
|
45
|
+
Use a distinct fully-qualified `--device web:chromium:<label>` per target (a bare
|
|
46
|
+
`web` gets an auto-generated sub-id instead). Each target is its own session, so
|
|
47
|
+
several webviews can be driven concurrently. Only `type=page` targets are
|
|
48
|
+
controllable. See [Web testing → Attaching to an existing browser](../../../docs/web.md).
|
|
49
|
+
|
|
50
|
+
### Vega (Amazon Fire TV)
|
|
51
|
+
|
|
52
|
+
Vega is a React Native OS driven through Amazon's own `vega`/`kepler` CLI (not
|
|
53
|
+
adb/simctl) — install the Vega SDK and put the CLI on `PATH` (or set
|
|
54
|
+
`CONDUCTOR_VEGA_CLI`). `conductor start-device --platform vega` boots a Vega
|
|
55
|
+
Virtual Device (VVD) via `vega virtual-device start` (or attaches if one is
|
|
56
|
+
already running); pass `--name <vvd>` to pick a specific one. Devices show up in
|
|
57
|
+
`list-devices` as `vega:<serial>`. The VVD's
|
|
58
|
+
**developer mode** must be on for input, and the automation toolkit attaches at
|
|
59
|
+
app launch — so launch the app under test via conductor. Navigate with the D-pad
|
|
60
|
+
(`press-key "Remote Dpad …"` / `"Remote Dpad Center"`); coordinate `tap-on` also
|
|
61
|
+
works. Unsupported on Vega: deep links (`open-link`), `set-location`, gestures,
|
|
62
|
+
screen recording, clipboard, `clear-state`/`uninstall-app`.
|
|
32
63
|
|
|
33
64
|
## App lifecycle
|
|
34
65
|
|
|
35
|
-
| Command
|
|
36
|
-
|
|
37
|
-
| `conductor install-app <path>`
|
|
38
|
-
| `conductor launch-app <appId>`
|
|
39
|
-
| `conductor stop-app [<appId>]`
|
|
40
|
-
| `conductor uninstall-app <appId>`
|
|
41
|
-
| `conductor copy-app <bundleId> --from <id> --to <id>` | Copy an installed app between iOS simulators
|
|
42
|
-
| `conductor download-app <appId> --output <path>`
|
|
66
|
+
| Command | Purpose |
|
|
67
|
+
| ----------------------------------------------------- | ---------------------------------------------------------------------- |
|
|
68
|
+
| `conductor install-app <path>` | Install .app / .ipa / .apk |
|
|
69
|
+
| `conductor launch-app <appId>` | Launch app (saved to session); `--no-stop-app`, `--argument key=value` |
|
|
70
|
+
| `conductor stop-app [<appId>]` | Stop app |
|
|
71
|
+
| `conductor uninstall-app <appId>` | Uninstall app |
|
|
72
|
+
| `conductor copy-app <bundleId> --from <id> --to <id>` | Copy an installed app between iOS simulators |
|
|
73
|
+
| `conductor download-app <appId> --output <path>` | Download installed app binary |
|
|
43
74
|
|
|
44
75
|
### ⚠️ Destructive flags — ask the user first
|
|
45
76
|
|
|
@@ -54,15 +85,15 @@ you genuinely need one, ask the human first.
|
|
|
54
85
|
A **session** remembers the last device + app so you don't re-specify them.
|
|
55
86
|
Parallel agents each get their own `--session <name>` so they don't collide.
|
|
56
87
|
|
|
57
|
-
| Command
|
|
58
|
-
|
|
59
|
-
| `conductor session [--clear] [--list]` | Show, clear, or list sessions
|
|
60
|
-
| `conductor daemon-start`
|
|
61
|
-
| `conductor daemon-status`
|
|
62
|
-
| `conductor daemon-stop [--all]`
|
|
63
|
-
| `conductor device-pool --list`
|
|
64
|
-
| `conductor device-pool --acquire`
|
|
65
|
-
| `conductor device-pool --release <id>` | Release a device back to the pool
|
|
88
|
+
| Command | Purpose |
|
|
89
|
+
| -------------------------------------- | ---------------------------------------------------------------------------------------------------- |
|
|
90
|
+
| `conductor session [--clear] [--list]` | Show, clear, or list sessions |
|
|
91
|
+
| `conductor daemon-start` | Start the per-session background daemon (keeps the driver warm — do this for any multi-step session) |
|
|
92
|
+
| `conductor daemon-status` | Show daemon status |
|
|
93
|
+
| `conductor daemon-stop [--all]` | Stop this session's daemon (`--all` = every session) |
|
|
94
|
+
| `conductor device-pool --list` | List devices + pool status |
|
|
95
|
+
| `conductor device-pool --acquire` | Claim a free device (prints id) |
|
|
96
|
+
| `conductor device-pool --release <id>` | Release a device back to the pool |
|
|
66
97
|
|
|
67
98
|
Don't leave a daemon running when you're done — `daemon-stop` it.
|
|
68
99
|
|