@loadmill/droid-cua 2.0.0 → 2.0.4

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 CHANGED
@@ -38,7 +38,7 @@ Under the hood, `droid-cua` uses an AI agent to explore your app, execute action
38
38
 
39
39
  **1. Download the desktop app**
40
40
 
41
- Get the latest stable desktop build from [GitHub Releases](https://github.com/loadmill/droid-cua/releases).
41
+ Get the latest stable desktop build from [GitHub Releases](https://github.com/loadmill/droid-cua-release/releases/latest/download/Loadmill-Droid-CUA-arm64.dmg).
42
42
 
43
43
  **2. Launch the app**
44
44
 
@@ -54,6 +54,11 @@ function renderSelection(title, items) {
54
54
  * Get a unified Android list: connected ADB devices + launchable AVDs
55
55
  */
56
56
  async function getAndroidDevices() {
57
+ const normalizeAvdName = (value) => value
58
+ .split(/\r?\n/)
59
+ .map((line) => line.trim())
60
+ .filter(Boolean)
61
+ .filter((line) => line.toUpperCase() !== "OK")[0] ?? "";
57
62
  const connectedDevices = [];
58
63
  const availableAvds = [];
59
64
  const avdInventory = new Set();
@@ -82,7 +87,7 @@ async function getAndroidDevices() {
82
87
  if (id.startsWith("emulator-")) {
83
88
  try {
84
89
  const { stdout } = await execAsync(`adb -s "${id}" emu avd name`);
85
- avdName = stdout.trim();
90
+ avdName = normalizeAvdName(stdout);
86
91
  }
87
92
  catch { }
88
93
  }
@@ -101,7 +106,7 @@ async function getAndroidDevices() {
101
106
  const { stdout } = await execAsync("emulator -list-avds");
102
107
  const avds = stdout
103
108
  .split("\n")
104
- .map((line) => line.trim())
109
+ .map((line) => normalizeAvdName(line))
105
110
  .filter(Boolean);
106
111
  for (const avd of avds) {
107
112
  avdInventory.add(avd);
@@ -160,8 +160,20 @@ CRITICAL - Test Script Format Rules:
160
160
  - Merge duplicate or near-duplicate validation lines into one clear assertion
161
161
  - End with "exit"
162
162
  - Keep it simple and executable
163
+ - When you generate the final result, include a suggested test name before the script
164
+ - The suggested test name must be very short: prefer 2 to 4 words
165
+ - Focus on the main user goal, not every assertion or detail
166
+ - The suggested test name must be lowercase, kebab-case, and filename-safe
167
+ - Use this exact final format:
168
+ Suggested test name: short-kebab-case-name
169
+
170
+ \`\`\`
171
+ <test script here>
172
+ \`\`\`
163
173
 
164
174
  CORRECT Example:
175
+ Suggested test name: calculator-addition
176
+
165
177
  \`\`\`
166
178
  Open Calculator app
167
179
  assert: Calculator app is visible
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@loadmill/droid-cua",
3
- "version": "2.0.0",
3
+ "version": "2.0.4",
4
4
  "description": "AI-powered Android testing agent using OpenAI's computer-use model and ADB",
5
5
  "main": "build/index.js",
6
6
  "type": "module",