@houwert/conductor 0.29.3 → 0.30.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 +1 -1
- package/dist/commands/assert-not-visible.js +4 -1
- package/dist/commands/assert-visible.js +5 -2
- package/dist/commands/back.js +2 -1
- package/dist/commands/capture-ui.js +7 -3
- package/dist/commands/clipboard.js +9 -0
- package/dist/commands/copy-text-from.js +2 -1
- package/dist/commands/crashes.js +5 -0
- package/dist/commands/delete-device.js +5 -0
- package/dist/commands/download-app.js +4 -0
- package/dist/commands/erase-text.js +4 -1
- package/dist/commands/focused.js +5 -2
- package/dist/commands/foreground-app.js +4 -1
- package/dist/commands/gestures.js +7 -0
- package/dist/commands/hide-keyboard.js +5 -0
- package/dist/commands/inspect.js +10 -3
- package/dist/commands/install-app.js +5 -0
- package/dist/commands/launch-app.js +3 -2
- package/dist/commands/list-apps.js +5 -0
- package/dist/commands/list-devices.js +12 -0
- package/dist/commands/memory.js +5 -0
- package/dist/commands/press-key.js +15 -0
- package/dist/commands/profile.js +4 -0
- package/dist/commands/screenshot.js +5 -2
- package/dist/commands/scroll-until-visible.js +5 -2
- package/dist/commands/scroll.js +4 -1
- package/dist/commands/start-device.js +27 -3
- package/dist/commands/stop-app.js +2 -1
- package/dist/commands/stop-device.js +12 -1
- package/dist/commands/swipe.js +4 -1
- package/dist/commands/tap.js +3 -2
- package/dist/commands/uninstall-app.js +4 -0
- package/dist/daemon/server.js +14 -4
- package/dist/drivers/bootstrap.js +10 -0
- package/dist/drivers/flow-runner.js +16 -3
- package/dist/drivers/roku/app-ui-parser.js +122 -0
- package/dist/drivers/roku/discovery.js +136 -0
- package/dist/drivers/roku/ecp-client.js +396 -0
- package/dist/drivers/roku/key-mapping.js +67 -0
- package/dist/drivers/roku.js +237 -0
- package/dist/drivers/vega/page-source-parser.js +5 -118
- package/dist/drivers/xml.js +128 -0
- package/dist/enum-options.js +3 -1
- package/dist/index.js +1 -1
- package/dist/runner.js +32 -0
- package/package.json +1 -1
- package/skills/conductor-device-interact/SKILL.md +4 -3
- package/skills/conductor-device-setup/SKILL.md +35 -2
- package/skills/conductor-profiler/SKILL.md +1 -1
|
@@ -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, 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.
|
|
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, Roku 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 or a Roku device, 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
|
|
@@ -21,7 +21,7 @@ conductor list-apps # installed app ids / package names (--json adds ap
|
|
|
21
21
|
|
|
22
22
|
| Command | Purpose |
|
|
23
23
|
| --------------------------------------------------------------------- | -------------------------------------------------------------------------- |
|
|
24
|
-
| `conductor start-device --platform <ios\|android\|tvos\|web\|vega>`
|
|
24
|
+
| `conductor start-device --platform <ios\|android\|tvos\|web\|vega\|roku>` | Boot a simulator/emulator, start the web driver, attach to a Vega VVD, or check a Roku device |
|
|
25
25
|
| `conductor start-device --os-version <n> --device-type <name>` | Pick OS version + device type (creates if needed) |
|
|
26
26
|
| `conductor start-device --platform android --avd <name> --device-type <profile> --memory <mb>` | Create an Android AVD with a RAM floor (default 4096MB; only raises, creation-time only) |
|
|
27
27
|
| `conductor stop-device [<name-or-id>] [--all]` | Shut down device(s) |
|
|
@@ -69,6 +69,39 @@ app launch — so launch the app under test via conductor. Navigate with the D-p
|
|
|
69
69
|
works. Unsupported on Vega: deep links (`open-link`), `set-location`, gestures,
|
|
70
70
|
screen recording, clipboard, `clear-state`/`uninstall-app`.
|
|
71
71
|
|
|
72
|
+
### Roku
|
|
73
|
+
|
|
74
|
+
Roku is driven over the network with the **External Control Protocol** (ECP — an
|
|
75
|
+
HTTP REST API on device port 8060). There is no emulator and no driver process:
|
|
76
|
+
physical hardware only, and every command is a stateless ECP call.
|
|
77
|
+
|
|
78
|
+
Device setup, once per device:
|
|
79
|
+
|
|
80
|
+
1. Enable developer mode (Home ×3, Up ×2, Right, Left, Right, Left, Right) and
|
|
81
|
+
set a dev password.
|
|
82
|
+
2. Set **Settings > System > Advanced system settings > Control by mobile apps >
|
|
83
|
+
Network access** to **Permissive** — recent Roku OS versions answer `403` to
|
|
84
|
+
every keypress otherwise, while still serving the view hierarchy.
|
|
85
|
+
|
|
86
|
+
Environment:
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
export CONDUCTOR_ROKU_HOST=192.168.1.100 # pin a device by IP (primary)
|
|
90
|
+
export CONDUCTOR_ROKU_PASSWORD=devpwd # dev-mode password (screenshots only)
|
|
91
|
+
export CONDUCTOR_ROKU_DISCOVERY=true # optional: SSDP LAN scan (~1s per listing)
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
Devices show up in `list-devices` as `roku:<host>`;
|
|
95
|
+
`conductor start-device --platform roku [--name <host>]` checks reachability
|
|
96
|
+
rather than booting anything. The view hierarchy comes from `/query/app-ui`,
|
|
97
|
+
which **only reports sideloaded dev-mode channels** — a store channel inspects as
|
|
98
|
+
empty. A sideloaded channel's app id is `dev`. Screenshots need
|
|
99
|
+
`CONDUCTOR_ROKU_PASSWORD`.
|
|
100
|
+
|
|
101
|
+
Unsupported on Roku: `install-app`/`uninstall-app` (sideload via the device's dev
|
|
102
|
+
web server at `http://<device-ip>`), `list-apps`, `clear-state`, gestures,
|
|
103
|
+
screen recording, clipboard, `set-location`, memory/CPU profiling, and device logs.
|
|
104
|
+
|
|
72
105
|
## App lifecycle
|
|
73
106
|
|
|
74
107
|
| Command | Purpose |
|
|
@@ -48,7 +48,7 @@ navigation, prefer asking a human to drive the physical remote during the
|
|
|
48
48
|
window (the command announces the window on stderr for exactly this), and treat
|
|
49
49
|
a divergence between human-driven and automated numbers as the harness.
|
|
50
50
|
|
|
51
|
-
Not available on `vega` — but a **physical Fire TV Stick runs Fire OS
|
|
51
|
+
Not available on `roku` (ECP exposes no counters) or `vega` — but a **physical Fire TV Stick runs Fire OS
|
|
52
52
|
(Android)** over adb and works fine.
|
|
53
53
|
|
|
54
54
|
Attribute jank by comparing each phase's p95 against its p50: `vsyncDelay` means
|