@swmansion/argent 0.15.1-next.1 → 0.15.1-next.11
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 +12 -3
- package/bin/darwin/simulator-server +0 -0
- package/bin/linux/simulator-server +0 -0
- package/bin/linux-arm64/simulator-server +0 -0
- package/dist/bundled-paths.js +3 -2
- package/dist/bundled-paths.js.map +1 -1
- package/dist/cli-cmds.mjs +41 -5
- package/dist/installer.mjs +418 -33
- package/dist/mcp-server.mjs +38 -3
- package/dist/tool-server.cjs +1119 -401
- package/package.json +3 -5
- package/rules/argent.md +7 -2
- package/skills/argent-create-flow/SKILL.md +22 -16
- package/skills/argent-device-interact/SKILL.md +14 -0
- package/skills/argent-metro-debugger/SKILL.md +11 -8
- package/skills/argent-metro-debugger/references/failure-scenarios.md +6 -6
- package/skills/argent-settings-permissions/SKILL.md +131 -0
- package/skills/argent-test-ui-flow/SKILL.md +4 -2
- package/skills/argent-tv-interact/SKILL.md +11 -1
- package/scripts/postinstall.cjs +0 -105
package/README.md
CHANGED
|
@@ -12,7 +12,9 @@
|
|
|
12
12
|
**[Argent](https://argent.swmansion.com)** is an **agentic toolkit** that gives your AI assistant direct access to iOS Simulators, Android emulators and physical devices, TVs (Apple TV, Android TV, Fire TV) and Electron/Chromium desktop and web apps. Ask it to tap a button, run a profiler or reproduce an issue manually - all from within your CLI, without switching context.
|
|
13
13
|
|
|
14
14
|
```bash
|
|
15
|
-
npx @swmansion/argent init
|
|
15
|
+
npx @swmansion/argent@latest init
|
|
16
|
+
# or, in a pnpm project (where npm's devEngines check may refuse to run npx):
|
|
17
|
+
pnpm dlx @swmansion/argent@latest init
|
|
16
18
|
```
|
|
17
19
|
|
|
18
20
|
## Supported platforms
|
|
@@ -98,7 +100,9 @@ Argent runs Android emulators on Linux but the default install can be slow if a
|
|
|
98
100
|
From your project root:
|
|
99
101
|
|
|
100
102
|
```bash
|
|
101
|
-
npx @swmansion/argent init
|
|
103
|
+
npx @swmansion/argent@latest init
|
|
104
|
+
# or, in a pnpm project (where npm's devEngines check may refuse to run npx):
|
|
105
|
+
pnpm dlx @swmansion/argent@latest init
|
|
102
106
|
```
|
|
103
107
|
|
|
104
108
|
This command triggers an installation wizard which:
|
|
@@ -121,9 +125,14 @@ teammate gets the same setup on `npm install` — no per-developer global instal
|
|
|
121
125
|
`argent init` — choose the local mode:
|
|
122
126
|
|
|
123
127
|
```bash
|
|
124
|
-
npx @swmansion/argent init --local
|
|
128
|
+
npx @swmansion/argent@latest init --local
|
|
129
|
+
# or, in a pnpm project:
|
|
130
|
+
pnpm dlx @swmansion/argent@latest init --local
|
|
125
131
|
```
|
|
126
132
|
|
|
133
|
+
> Note: in a freshly `pnpm init`-ed project, `npx` itself may refuse to run
|
|
134
|
+
> (npm's `devEngines` check) — use the `pnpm dlx` form there.
|
|
135
|
+
|
|
127
136
|
This adds `@swmansion/argent` to your project's `devDependencies` and writes MCP
|
|
128
137
|
configs that launch the project-local copy (`node node_modules/@swmansion/argent/dist/cli.js mcp`).
|
|
129
138
|
Commit `package.json` + your lockfile, the generated MCP config (`.mcp.json`,
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/dist/bundled-paths.js
CHANGED
|
@@ -3,8 +3,9 @@ import * as path from "node:path";
|
|
|
3
3
|
// Installed package version, read from the shipped package.json. Lets the
|
|
4
4
|
// launcher detect a stale tool-server after an in-place version bump (a local
|
|
5
5
|
// devDependency update rewrites tool-server.cjs at the same path) and respawn
|
|
6
|
-
// it —
|
|
7
|
-
// (--ignore-scripts, pnpm
|
|
6
|
+
// it — with no install-time hook: install scripts are frequently disabled
|
|
7
|
+
// (--ignore-scripts, pnpm's build gate, Yarn PnP, locked-down CI), which is
|
|
8
|
+
// why argent ships no postinstall script at all.
|
|
8
9
|
function readPackageVersion() {
|
|
9
10
|
try {
|
|
10
11
|
const pkg = JSON.parse(fs.readFileSync(path.join(import.meta.dirname, "..", "package.json"), "utf8"));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bundled-paths.js","sourceRoot":"","sources":["../src/bundled-paths.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAGlC,0EAA0E;AAC1E,8EAA8E;AAC9E,8EAA8E;AAC9E
|
|
1
|
+
{"version":3,"file":"bundled-paths.js","sourceRoot":"","sources":["../src/bundled-paths.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAGlC,0EAA0E;AAC1E,8EAA8E;AAC9E,8EAA8E;AAC9E,0EAA0E;AAC1E,4EAA4E;AAC5E,iDAAiD;AACjD,SAAS,kBAAkB;IACzB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CACpB,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CACtD,CAAC;QAC1B,OAAO,GAAG,CAAC,OAAO,CAAC;IACrB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,MAAM,YAAY,GAAG,mBAAmB,CAAC;AAEzC,2EAA2E;AAC3E,uEAAuE;AACvE,4EAA4E;AAC5E,sEAAsE;AACtE,wEAAwE;AACxE,SAAS,iBAAiB,CAAC,QAAgB;IACzC,IAAI,GAAG,GAAG,QAAQ,CAAC;IACnB,SAAS,CAAC;QACR,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;YAAE,OAAO,GAAG,CAAC;QACzE,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAIlF,CAAC;YACF,IACE,QAAQ,CAAC,eAAe,EAAE,CAAC,YAAY,CAAC;gBACxC,QAAQ,CAAC,YAAY,EAAE,CAAC,YAAY,CAAC;gBACrC,QAAQ,CAAC,oBAAoB,EAAE,CAAC,YAAY,CAAC,EAC7C,CAAC;gBACD,OAAO,GAAG,CAAC;YACb,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,yDAAyD;QAC3D,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,MAAM,KAAK,GAAG;YAAE,OAAO,IAAI,CAAC;QAChC,GAAG,GAAG,MAAM,CAAC;IACf,CAAC;AACH,CAAC;AAED,4EAA4E;AAC5E,sEAAsE;AACtE,8EAA8E;AAC9E,2EAA2E;AAC3E,8EAA8E;AAC9E,2EAA2E;AAC3E,yEAAyE;AACzE,4EAA4E;AAC5E,kEAAkE;AAClE,MAAM,UAAU,oBAAoB,CAAC,QAAgB,EAAE,WAAmB;IACxE,IAAI,GAAG,GAAG,QAAQ,CAAC;IACnB,SAAS,CAAC;QACR,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC;QAC/D,IAAI,CAAC;YACH,IAAI,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,WAAW;gBAAE,OAAO,SAAS,CAAC;QACnE,CAAC;QAAC,MAAM,CAAC;YACP,6CAA6C;QAC/C,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,MAAM,KAAK,GAAG;YAAE,OAAO,SAAS,CAAC;QACrC,GAAG,GAAG,MAAM,CAAC;IACf,CAAC;AACH,CAAC;AAED,4EAA4E;AAC5E,2EAA2E;AAC3E,6EAA6E;AAC7E,2EAA2E;AAC3E,wEAAwE;AACxE,8EAA8E;AAC9E,qDAAqD;AACrD,SAAS,eAAe;IAKtB,IAAI,WAAmB,CAAC;IACxB,IAAI,GAAW,CAAC;IAChB,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACH,WAAW,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;QACpE,2EAA2E;QAC3E,gEAAgE;QAChE,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QACpB,GAAG,GAAG,GAAG,CAAC;IACZ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC5B,CAAC;IACD,SAAS,CAAC;QACR,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC;YAC/D,IAAI,WAAW,KAAK,MAAM,IAAI,WAAW,CAAC,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxE,oEAAoE;gBACpE,kEAAkE;gBAClE,mEAAmE;gBACnE,qEAAqE;gBACrE,qEAAqE;gBACrE,OAAO;oBACL,IAAI,EAAE,OAAO;oBACb,WAAW,EAAE,iBAAiB,CAAC,GAAG,CAAC,IAAI,GAAG;oBAC1C,gBAAgB,EAAE,oBAAoB,CAAC,GAAG,EAAE,WAAW,CAAC;iBACzD,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,kDAAkD;QACpD,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,MAAM,KAAK,GAAG;YAAE,MAAM;QAC1B,GAAG,GAAG,MAAM,CAAC;IACf,CAAC;IACD,0EAA0E;IAC1E,qEAAqE;IACrE,yEAAyE;IACzE,8BAA8B;IAC9B,IAAI,WAAW,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,GAAG,QAAQ,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC;QACxD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,QAAQ;YAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC;IAChE,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AAC5B,CAAC;AAED,MAAM,iBAAiB,GAAG,eAAe,EAAE,CAAC;AAE5C,2EAA2E;AAC3E,4EAA4E;AAC5E,sDAAsD;AACtD,MAAM,UAAU,GAAG,iBAAiB,CAAC,gBAAgB,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAE9F,MAAM,CAAC,MAAM,qBAAqB,GAAqB;IACrD,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,iBAAiB,CAAC;IAC5D,kBAAkB,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC;IAChD,iBAAiB,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC;IAClD,OAAO,EAAE,kBAAkB,EAAE;IAC7B,WAAW,EAAE,iBAAiB,CAAC,IAAI;IACnC,kBAAkB,EAAE,iBAAiB,CAAC,WAAW;CAClD,CAAC"}
|
package/dist/cli-cmds.mjs
CHANGED
|
@@ -451,8 +451,21 @@ async function sweepDeadStateFiles() {
|
|
|
451
451
|
for (const { file } of await readAllToolsServerStates()) {
|
|
452
452
|
if (file === STATE_FILE) continue;
|
|
453
453
|
const fresh = await readStateFile(file);
|
|
454
|
-
if (
|
|
454
|
+
if (!fresh) continue;
|
|
455
|
+
if (!isProcessAlive(fresh.pid)) {
|
|
456
|
+
await unlink(file).catch(() => {
|
|
457
|
+
});
|
|
458
|
+
continue;
|
|
459
|
+
}
|
|
460
|
+
if (fs.existsSync(fresh.bundlePath)) continue;
|
|
461
|
+
const guarded = process.platform !== "win32";
|
|
462
|
+
if (guarded && !processCommandMatches(fresh.pid, fresh.bundlePath)) continue;
|
|
463
|
+
await unlink(file).catch(() => {
|
|
455
464
|
});
|
|
465
|
+
void terminatePid(
|
|
466
|
+
fresh.pid,
|
|
467
|
+
guarded ? () => processCommandMatches(fresh.pid, fresh.bundlePath) : void 0
|
|
468
|
+
);
|
|
456
469
|
}
|
|
457
470
|
}
|
|
458
471
|
var readState = readToolsServerState;
|
|
@@ -6195,10 +6208,13 @@ var FAILURE_CODES = {
|
|
|
6195
6208
|
ANDROID_OPEN_URL_FAILED: "ANDROID_OPEN_URL_FAILED",
|
|
6196
6209
|
ANDROID_REINSTALL_INSTALL_FAILED: "ANDROID_REINSTALL_INSTALL_FAILED",
|
|
6197
6210
|
ANDROID_RESTART_FAILED: "ANDROID_RESTART_FAILED",
|
|
6211
|
+
ANDROID_SETTINGS_PERMISSION_FAILED: "ANDROID_SETTINGS_PERMISSION_FAILED",
|
|
6198
6212
|
IOS_LAUNCH_SIMCTL_FAILED: "IOS_LAUNCH_SIMCTL_FAILED",
|
|
6199
6213
|
IOS_OPEN_URL_FAILED: "IOS_OPEN_URL_FAILED",
|
|
6200
6214
|
IOS_REINSTALL_INSTALL_FAILED: "IOS_REINSTALL_INSTALL_FAILED",
|
|
6201
6215
|
IOS_RESTART_LAUNCH_FAILED: "IOS_RESTART_LAUNCH_FAILED",
|
|
6216
|
+
IOS_SETTINGS_PERMISSION_FAILED: "IOS_SETTINGS_PERMISSION_FAILED",
|
|
6217
|
+
SETTINGS_PERMISSION_UNSUPPORTED: "SETTINGS_PERMISSION_UNSUPPORTED",
|
|
6202
6218
|
NATIVE_DEVTOOLS_DESCRIBE_ERROR: "NATIVE_DEVTOOLS_DESCRIBE_ERROR",
|
|
6203
6219
|
NATIVE_DEVTOOLS_VIEW_AT_POINT_ERROR: "NATIVE_DEVTOOLS_VIEW_AT_POINT_ERROR",
|
|
6204
6220
|
NATIVE_DEVTOOLS_USER_INTERACTABLE_VIEW_AT_POINT_ERROR: "NATIVE_DEVTOOLS_USER_INTERACTABLE_VIEW_AT_POINT_ERROR",
|
|
@@ -6231,10 +6247,10 @@ var FAILURE_CODES = {
|
|
|
6231
6247
|
ANDROID_UIAUTOMATOR_PARSE_FAILED: "ANDROID_UIAUTOMATOR_PARSE_FAILED",
|
|
6232
6248
|
ANDROID_UIAUTOMATOR_CAPTURE_FAILED: "ANDROID_UIAUTOMATOR_CAPTURE_FAILED",
|
|
6233
6249
|
DEBUGGER_METRO_NOT_RUNNING: "DEBUGGER_METRO_NOT_RUNNING",
|
|
6234
|
-
DEBUGGER_METRO_PROJECT_ROOT_MISSING: "DEBUGGER_METRO_PROJECT_ROOT_MISSING",
|
|
6235
6250
|
DEBUGGER_METRO_NO_TARGETS: "DEBUGGER_METRO_NO_TARGETS",
|
|
6236
6251
|
DEBUGGER_CDP_RUNTIME_EXCEPTION: "DEBUGGER_CDP_RUNTIME_EXCEPTION",
|
|
6237
6252
|
DEBUGGER_CDP_BINDING_TIMEOUT: "DEBUGGER_CDP_BINDING_TIMEOUT",
|
|
6253
|
+
DEBUGGER_CDP_BINDING_UNAVAILABLE: "DEBUGGER_CDP_BINDING_UNAVAILABLE",
|
|
6238
6254
|
DEBUGGER_CDP_PROTOCOL_ERROR: "DEBUGGER_CDP_PROTOCOL_ERROR",
|
|
6239
6255
|
DEBUGGER_RELOAD_FAILED: "DEBUGGER_RELOAD_FAILED",
|
|
6240
6256
|
JS_RUNTIME_CONSOLE_SERVER_BIND_FAILED: "JS_RUNTIME_CONSOLE_SERVER_BIND_FAILED",
|
|
@@ -6321,6 +6337,7 @@ var FAILURE_CODES = {
|
|
|
6321
6337
|
CHROMIUM_ELECTRON_EXITED_BEFORE_READY: "CHROMIUM_ELECTRON_EXITED_BEFORE_READY",
|
|
6322
6338
|
KEYBOARD_KEY_UNSUPPORTED: "KEYBOARD_KEY_UNSUPPORTED",
|
|
6323
6339
|
KEYBOARD_CHARACTER_UNSUPPORTED: "KEYBOARD_CHARACTER_UNSUPPORTED",
|
|
6340
|
+
SECRET_PLACEHOLDER_UNKNOWN: "SECRET_PLACEHOLDER_UNKNOWN",
|
|
6324
6341
|
SCREENSHOT_DIFF_INPUT_INVALID: "SCREENSHOT_DIFF_INPUT_INVALID",
|
|
6325
6342
|
BOOT_DEVICE_TARGET_SELECTION_INVALID: "BOOT_DEVICE_TARGET_SELECTION_INVALID",
|
|
6326
6343
|
BOOT_IOS_UNSUPPORTED_HOST: "BOOT_IOS_UNSUPPORTED_HOST",
|
|
@@ -6553,6 +6570,8 @@ var ALLOWED = {
|
|
|
6553
6570
|
action: PACKAGE_ACTION,
|
|
6554
6571
|
is_success: bool,
|
|
6555
6572
|
duration_ms: DURATION_MS,
|
|
6573
|
+
retry_count: COUNT,
|
|
6574
|
+
last_attempt_duration_ms: DURATION_MS,
|
|
6556
6575
|
...FAILURE_SIGNAL
|
|
6557
6576
|
},
|
|
6558
6577
|
"installation:cli_update_start": {},
|
|
@@ -9386,12 +9405,29 @@ function isSessionAlive(session) {
|
|
|
9386
9405
|
}
|
|
9387
9406
|
|
|
9388
9407
|
// ../argent-cli/src/lens-pty.ts
|
|
9408
|
+
import { chmodSync as chmodSync2, readdirSync as readdirSync2 } from "node:fs";
|
|
9389
9409
|
import { createRequire } from "node:module";
|
|
9410
|
+
import { dirname as dirname7, join as join14 } from "node:path";
|
|
9390
9411
|
var nodeRequire = createRequire(import.meta.url);
|
|
9412
|
+
function ensureSpawnHelperExecutable(req = nodeRequire) {
|
|
9413
|
+
if (process.platform !== "darwin") return;
|
|
9414
|
+
try {
|
|
9415
|
+
const prebuilds = join14(dirname7(req.resolve("node-pty/package.json")), "prebuilds");
|
|
9416
|
+
for (const entry of readdirSync2(prebuilds)) {
|
|
9417
|
+
try {
|
|
9418
|
+
chmodSync2(join14(prebuilds, entry, "spawn-helper"), 493);
|
|
9419
|
+
} catch {
|
|
9420
|
+
}
|
|
9421
|
+
}
|
|
9422
|
+
} catch {
|
|
9423
|
+
}
|
|
9424
|
+
}
|
|
9391
9425
|
function loadNodePty(req = nodeRequire) {
|
|
9392
9426
|
try {
|
|
9393
9427
|
const mod = req("node-pty");
|
|
9394
|
-
|
|
9428
|
+
if (!mod || typeof mod.spawn !== "function") return null;
|
|
9429
|
+
ensureSpawnHelperExecutable(req);
|
|
9430
|
+
return mod;
|
|
9395
9431
|
} catch {
|
|
9396
9432
|
return null;
|
|
9397
9433
|
}
|
|
@@ -11014,8 +11050,8 @@ var n = class extends V {
|
|
|
11014
11050
|
import { styleText as styleText2, stripVTControlCharacters } from "node:util";
|
|
11015
11051
|
import process$1 from "node:process";
|
|
11016
11052
|
var import_sisteransi2 = __toESM(require_src(), 1);
|
|
11017
|
-
import { existsSync as existsSync7, lstatSync as lstatSync3, readdirSync as
|
|
11018
|
-
import { dirname as
|
|
11053
|
+
import { existsSync as existsSync7, lstatSync as lstatSync3, readdirSync as readdirSync3 } from "node:fs";
|
|
11054
|
+
import { dirname as dirname8, join as join16 } from "node:path";
|
|
11019
11055
|
function isUnicodeSupported() {
|
|
11020
11056
|
if (process$1.platform !== "win32") {
|
|
11021
11057
|
return process$1.env.TERM !== "linux";
|