@swmansion/argent 0.14.1-next.0 → 0.14.1-next.10

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
@@ -9,18 +9,32 @@
9
9
  [![Ad](https://swm-delivery.com/www/images/zone-gh-argent-2?n=1)](https://swm-delivery.com/www/delivery/ck-slug.php?zoneid=zone-gh-argent-2&n=1)
10
10
  [![Ad](https://swm-delivery.com/www/images/zone-gh-argent-3?n=1)](https://swm-delivery.com/www/delivery/ck-slug.php?zoneid=zone-gh-argent-3&n=1)
11
11
 
12
- **[Argent](https://argent.swmansion.com)** is an **agentic toolkit** that gives your AI assistant direct access to iOS Simulators and Android Emulators. Ask it to tap a button, run a profiler or reproduce an issue manually - all from within your CLI, without switching context.
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
15
  npx @swmansion/argent init
16
16
  ```
17
17
 
18
+ ## Supported platforms
19
+
20
+ Argent drives a growing set of targets through a single toolkit, each with the right interaction model - touch, remote or mouse:
21
+
22
+ | Platform | Targets | Interaction |
23
+ | ----------------- | ----------------------------------------------------------------------- | ---------------- |
24
+ | **iOS** | Simulators | Touch / gesture |
25
+ | **Android** | Emulators (AVDs) and physical devices over adb | Touch / gesture |
26
+ | **TV** | Apple TV (tvOS), Android TV / Google TV, Amazon Fire TV (Vega) | D-pad / remote |
27
+ | **Desktop & web** | Electron and Chromium apps (incl. React Native Web / Expo web) over CDP | Mouse / keyboard |
28
+
18
29
  ## Capabilities
19
30
 
20
- - **Autonomous iOS and Android development** - Allow your agent to work with iOS and Android apps on its own - let it build, open, interact with the app and debug it. Ask for reproducing issues, testing features manually, profiling your app and much more, without ever interrupting your work.
21
- - **UI interaction** - Give your agent full control toolkit - tapping, swiping, pinching, typing, gestures, hardware buttons and all other gears included. Let it navigate your app exactly as a user would, without lifting a finger.
22
- - **Profiling with batteries included** - Argent can perform and analyze both React-Native and Xcode Instruments profiling sessions. Get comprehensive summaries and ask to optimise your app where you find fit.
23
- - **Debugging and diagnostics** - Let your agent inspect logs, capture crash reports, and reproduce failing states on the simulator, so you can jump straight to the fix.
31
+ - **Autonomous mobile, TV and desktop development** - Allow your agent to work with iOS, Android, TV and Electron/web apps on its own - let it build, open, interact with the app and debug it. Ask for reproducing issues, testing features manually, profiling your app and much more, without ever interrupting your work.
32
+ - **UI interaction** - Give your agent the full control toolkit - tapping, swiping, pinching, typing, gestures and hardware buttons on mobile; the directional remote on TV; mouse, scroll and drag on desktop/web. Let it navigate your app exactly as a user would, without lifting a finger.
33
+ - **Record & replay flows** - Capture a sequence of interactions once and let your agent replay it deterministically, so manual repros and smoke tests become repeatable.
34
+ - **Visual regression** - Diff two screenshots (or a saved baseline against a live capture) with OCR- and font-aware comparison to catch unintended UI changes.
35
+ - **Profiling with batteries included** - Argent can perform and analyze React Native (Hermes), React DevTools and native (Xcode Instruments / Android Perfetto) profiling sessions - down to fiber renders, CPU hotspots and cross-correlated commit-vs-hang reports. Get comprehensive summaries and ask to optimise your app where you find fit.
36
+ - **Debugging and diagnostics** - Let your agent inspect logs, capture network traffic (JS `fetch` and native), evaluate JS in the running app, walk the native UIKit and React component trees, and reproduce failing states - so you can jump straight to the fix.
37
+ - **Desktop & web control** - For Electron and Chromium apps your agent can drive tabs, read and write cookies and storage, walk the DOM and inspect network over the Chrome DevTools Protocol.
24
38
  - **React Native out of the box** - Argent works with React Native apps natively, so your agent can build, launch, and iterate on your RN project the same way it would any native app - no extra setup required.
25
39
 
26
40
  > **Tip:** Once installed, ask your assistant _"What can Argent do?"_ - it will walk you through all capabilities available.
@@ -37,8 +51,10 @@ npx @swmansion/argent init
37
51
  #### Prerequisites
38
52
 
39
53
  - **Node.js 20.11** or later
40
- - For iOS: macOS with **Xcode** installed
41
- - For Android: **Android SDK Platform Tools** (`adb`) on `PATH`, and the **Android Emulator** package if you want to boot AVDs from Argent. Create AVDs via Android Studio or `avdmanager`.
54
+ - For iOS / tvOS: macOS with **Xcode** installed (Apple TV uses tvOS simulators — Xcode downloads the tvOS runtime on demand)
55
+ - For Android / Android TV: **Android SDK Platform Tools** (`adb`) on `PATH`, and the **Android Emulator** package if you want to boot AVDs from Argent. Create AVDs via Android Studio or `avdmanager`.
56
+ - For Fire TV (Vega): the **Vega SDK** (`vega` CLI) on `PATH`
57
+ - For Electron / Chromium: nothing extra to control an already-running app - just launch it with `--remote-debugging-port`, or let Argent spawn your Electron app for you
42
58
 
43
59
  ##### Linux host: extra prerequisites for Android emulators
44
60
 
@@ -100,18 +116,24 @@ argent init
100
116
 
101
117
  ## CLI Reference
102
118
 
103
- | Command | Description |
104
- | ------------------ | ---------------------------------------------------------------------- |
105
- | `argent init` | Install globally and configure MCP in the current workspace |
106
- | `argent install` | Alias for `init` command |
107
- | `argent update` | Pull the latest version and refresh workspace configuration |
108
- | `argent remove` | Unregister the MCP server and uninstall the package |
109
- | `argent uninstall` | Alias for `remove` command |
110
- | `argent mcp` | Start MCP server instance, used internally by agent |
111
- | `argent enable` | Enable a predefined feature flag (`--scope project` for project-local) |
112
- | `argent disable` | Disable a feature flag (`--scope project` for project-local) |
113
- | `argent flags` | List available feature flags and their state |
114
- | `argent telemetry` | Manage anonymous telemetry: `status` / `enable` / `disable` |
119
+ | Command | Description |
120
+ | ------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
121
+ | `argent init` | Install globally and configure MCP in the current workspace |
122
+ | `argent install` | Alias for `init` command |
123
+ | `argent update` | Pull the latest version and refresh workspace configuration |
124
+ | `argent remove` | Unregister the MCP server and uninstall the package |
125
+ | `argent uninstall` | Alias for `remove` command |
126
+ | `argent mcp` | Start MCP server instance, used internally by agent |
127
+ | `argent tools` | List tools exposed by the tool-server (`describe <name>` for details) |
128
+ | `argent run` | Invoke a tool by name |
129
+ | `argent server` | Manage the shared tool-server: `start` / `status` / `stop` / `logs` |
130
+ | `argent lens` | Open Argent Lens bound to a fresh coding-agent session — Claude by default, `--agent` selects codex/gemini/opencode/cursor (macOS; behind the `argent-lens` flag — run `argent enable argent-lens` first) |
131
+ | `argent link` | Route client requests to a remote tool-server |
132
+ | `argent unlink` | Remove the persisted remote tool-server link |
133
+ | `argent enable` | Enable a predefined feature flag (`--scope project` for project-local) |
134
+ | `argent disable` | Disable a feature flag (`--scope project` for project-local) |
135
+ | `argent flags` | List available feature flags and their state |
136
+ | `argent telemetry` | Manage anonymous telemetry: `status` / `enable` / `disable` |
115
137
 
116
138
  ## Supported Editors
117
139
 
@@ -123,7 +145,7 @@ argent init
123
145
  | Cursor | `.cursor/mcp.json` (project) or `~/.cursor/mcp.json` (global) |
124
146
  | VS Code | `.vscode/mcp.json` |
125
147
  | Windsurf | `~/.codeium/windsurf/mcp_config.json` (global) |
126
- | Zed | `.zed/settings.json` |
148
+ | Zed | `.zed/settings.json` (project) or `~/.config/zed/settings.json` (global) |
127
149
  | Gemini CLI | `.gemini/settings.json` |
128
150
  | Codex CLI | `.codex/config.toml` (project) or `~/.codex/config.toml` (global) |
129
151
  | Hermes | `~/.hermes/config.yaml` (global) |
package/dist/cli-cmds.mjs CHANGED
@@ -5839,6 +5839,14 @@ var FAILURE_CODES = {
5839
5839
  UNINSTALL_UNCLASSIFIED_FAILED: "UNINSTALL_UNCLASSIFIED_FAILED",
5840
5840
  VEGA_CLI_COMMAND_FAILED: "VEGA_CLI_COMMAND_FAILED",
5841
5841
  VEGA_INPUT_UNAVAILABLE: "VEGA_INPUT_UNAVAILABLE",
5842
+ VEGA_DEVICE_NOT_FOUND: "VEGA_DEVICE_NOT_FOUND",
5843
+ VEGA_DEVICE_NOT_REGISTERED: "VEGA_DEVICE_NOT_REGISTERED",
5844
+ VEGA_MULTIPLE_DEVICES: "VEGA_MULTIPLE_DEVICES",
5845
+ VEGA_BOOT_TIMEOUT: "VEGA_BOOT_TIMEOUT",
5846
+ VEGA_IMAGE_NOT_FOUND: "VEGA_IMAGE_NOT_FOUND",
5847
+ VEGA_ALREADY_RUNNING: "VEGA_ALREADY_RUNNING",
5848
+ VEGA_SCREENSHOT_FAILED: "VEGA_SCREENSHOT_FAILED",
5849
+ VEGA_TEXT_INVALID: "VEGA_TEXT_INVALID",
5842
5850
  ANDROID_ADB_NOT_FOUND: "ANDROID_ADB_NOT_FOUND",
5843
5851
  ANDROID_EMULATOR_NOT_FOUND: "ANDROID_EMULATOR_NOT_FOUND",
5844
5852
  ANDROID_ADB_COMMAND_FAILED: "ANDROID_ADB_COMMAND_FAILED",
@@ -5851,6 +5859,7 @@ var FAILURE_CODES = {
5851
5859
  SIMULATOR_NON_JSON_RESPONSE: "SIMULATOR_NON_JSON_RESPONSE",
5852
5860
  SIMULATOR_HTTP_ERROR_RESPONSE: "SIMULATOR_HTTP_ERROR_RESPONSE",
5853
5861
  SIMULATOR_MISSING_RESPONSE_FIELDS: "SIMULATOR_MISSING_RESPONSE_FIELDS",
5862
+ SIMULATOR_SCREENSHOT_FAILED: "SIMULATOR_SCREENSHOT_FAILED",
5854
5863
  SIMULATOR_SERVER_FACTORY_OPTIONS_MISSING: "SIMULATOR_SERVER_FACTORY_OPTIONS_MISSING",
5855
5864
  SIMULATOR_SERVER_DEVICE_ID_INVALID: "SIMULATOR_SERVER_DEVICE_ID_INVALID",
5856
5865
  SIMULATOR_SERVER_READY_EXITED: "SIMULATOR_SERVER_READY_EXITED",
@@ -5904,6 +5913,7 @@ var FAILURE_CODES = {
5904
5913
  ANDROID_SCREEN_SIZE_PARSE_FAILED: "ANDROID_SCREEN_SIZE_PARSE_FAILED",
5905
5914
  ANDROID_SCREEN_SIZE_NON_POSITIVE: "ANDROID_SCREEN_SIZE_NON_POSITIVE",
5906
5915
  ANDROID_UIAUTOMATOR_PARSE_FAILED: "ANDROID_UIAUTOMATOR_PARSE_FAILED",
5916
+ ANDROID_UIAUTOMATOR_CAPTURE_FAILED: "ANDROID_UIAUTOMATOR_CAPTURE_FAILED",
5907
5917
  DEBUGGER_METRO_NOT_RUNNING: "DEBUGGER_METRO_NOT_RUNNING",
5908
5918
  DEBUGGER_METRO_PROJECT_ROOT_MISSING: "DEBUGGER_METRO_PROJECT_ROOT_MISSING",
5909
5919
  DEBUGGER_METRO_NO_TARGETS: "DEBUGGER_METRO_NO_TARGETS",
@@ -5948,8 +5958,19 @@ var FAILURE_CODES = {
5948
5958
  NATIVE_PROFILER_XCTRACE_READY_EXITED: "NATIVE_PROFILER_XCTRACE_READY_EXITED",
5949
5959
  NATIVE_PROFILER_XCTRACE_PROCESS_ERROR: "NATIVE_PROFILER_XCTRACE_PROCESS_ERROR",
5950
5960
  NATIVE_PROFILER_XCTRACE_READY_TIMEOUT: "NATIVE_PROFILER_XCTRACE_READY_TIMEOUT",
5961
+ NATIVE_PROFILER_TRACE_TEMPLATE_MISSING: "NATIVE_PROFILER_TRACE_TEMPLATE_MISSING",
5951
5962
  NATIVE_PROFILER_NO_ACTIVE_SESSION: "NATIVE_PROFILER_NO_ACTIVE_SESSION",
5963
+ NATIVE_PROFILER_APP_PROCESS_NOT_FOUND: "NATIVE_PROFILER_APP_PROCESS_NOT_FOUND",
5964
+ NATIVE_PROFILER_NO_EXPORTED_TRACE: "NATIVE_PROFILER_NO_EXPORTED_TRACE",
5965
+ // Android perfetto start-failure modes — mirror the iOS xctrace set so a
5966
+ // failed recording start is classified rather than falling through to the
5967
+ // generic tool-execution bucket.
5968
+ NATIVE_PROFILER_PERFETTO_PROCESS_ERROR: "NATIVE_PROFILER_PERFETTO_PROCESS_ERROR",
5969
+ NATIVE_PROFILER_PERFETTO_READY_TIMEOUT: "NATIVE_PROFILER_PERFETTO_READY_TIMEOUT",
5970
+ NATIVE_PROFILER_PERFETTO_READY_EXITED: "NATIVE_PROFILER_PERFETTO_READY_EXITED",
5952
5971
  FLOW_PROJECT_ROOT_REQUIRED: "FLOW_PROJECT_ROOT_REQUIRED",
5972
+ FLOW_PROJECT_ROOT_INVALID: "FLOW_PROJECT_ROOT_INVALID",
5973
+ FLOW_NAME_INVALID: "FLOW_NAME_INVALID",
5953
5974
  FLOW_NO_ACTIVE_RECORDING: "FLOW_NO_ACTIVE_RECORDING",
5954
5975
  FLOW_FILE_INVALID: "FLOW_FILE_INVALID",
5955
5976
  FLOW_ENTRY_UNRECOGNIZED: "FLOW_ENTRY_UNRECOGNIZED",
@@ -5957,6 +5978,27 @@ var FAILURE_CODES = {
5957
5978
  PROFILER_QUERY_REQUIRED_PARAM_MISSING: "PROFILER_QUERY_REQUIRED_PARAM_MISSING",
5958
5979
  PROFILER_DATA_NOT_LOADED: "PROFILER_DATA_NOT_LOADED",
5959
5980
  PROFILER_NATIVE_TRACE_MISSING: "PROFILER_NATIVE_TRACE_MISSING",
5981
+ PROFILER_NATIVE_METADATA_MISSING: "PROFILER_NATIVE_METADATA_MISSING",
5982
+ PROFILER_NATIVE_METADATA_INVALID: "PROFILER_NATIVE_METADATA_INVALID",
5983
+ CHROMIUM_CDP_UNREACHABLE: "CHROMIUM_CDP_UNREACHABLE",
5984
+ CHROMIUM_CDP_NO_PAGE_TARGET: "CHROMIUM_CDP_NO_PAGE_TARGET",
5985
+ CHROMIUM_CDP_INVALID_RESPONSE: "CHROMIUM_CDP_INVALID_RESPONSE",
5986
+ CHROMIUM_DEVICE_ID_INVALID: "CHROMIUM_DEVICE_ID_INVALID",
5987
+ CHROMIUM_PARAM_INVALID: "CHROMIUM_PARAM_INVALID",
5988
+ CHROMIUM_INPUT_INVALID: "CHROMIUM_INPUT_INVALID",
5989
+ CHROMIUM_VIEWPORT_READ_FAILED: "CHROMIUM_VIEWPORT_READ_FAILED",
5990
+ CHROMIUM_SCREENSHOT_FAILED: "CHROMIUM_SCREENSHOT_FAILED",
5991
+ CHROMIUM_STORAGE_EVAL_FAILED: "CHROMIUM_STORAGE_EVAL_FAILED",
5992
+ CHROMIUM_TAB_NOT_FOUND: "CHROMIUM_TAB_NOT_FOUND",
5993
+ CHROMIUM_TAB_OPEN_FAILED: "CHROMIUM_TAB_OPEN_FAILED",
5994
+ CHROMIUM_DESCRIBE_FAILED: "CHROMIUM_DESCRIBE_FAILED",
5995
+ CHROMIUM_ELECTRON_APP_PATH_INVALID: "CHROMIUM_ELECTRON_APP_PATH_INVALID",
5996
+ CHROMIUM_ELECTRON_SPAWN_FAILED: "CHROMIUM_ELECTRON_SPAWN_FAILED",
5997
+ CHROMIUM_ELECTRON_CDP_TIMEOUT: "CHROMIUM_ELECTRON_CDP_TIMEOUT",
5998
+ CHROMIUM_ELECTRON_EXITED_BEFORE_READY: "CHROMIUM_ELECTRON_EXITED_BEFORE_READY",
5999
+ KEYBOARD_KEY_UNSUPPORTED: "KEYBOARD_KEY_UNSUPPORTED",
6000
+ KEYBOARD_CHARACTER_UNSUPPORTED: "KEYBOARD_CHARACTER_UNSUPPORTED",
6001
+ SCREENSHOT_DIFF_INPUT_INVALID: "SCREENSHOT_DIFF_INPUT_INVALID",
5960
6002
  BOOT_DEVICE_TARGET_SELECTION_INVALID: "BOOT_DEVICE_TARGET_SELECTION_INVALID",
5961
6003
  BOOT_IOS_UNSUPPORTED_HOST: "BOOT_IOS_UNSUPPORTED_HOST",
5962
6004
  BOOT_ANDROID_NO_AVDS: "BOOT_ANDROID_NO_AVDS",
@@ -5995,6 +6037,7 @@ var FAILURE_COMMANDS = [
5995
6037
  "ax_service",
5996
6038
  "simulator_server",
5997
6039
  "cdp",
6040
+ "electron",
5998
6041
  "npm",
5999
6042
  "npx",
6000
6043
  "unknown"
@@ -7289,11 +7332,15 @@ function isScalarType(type) {
7289
7332
  }
7290
7333
  function coerceScalar(raw, type, field) {
7291
7334
  if (type === "number") {
7335
+ if (raw.trim() === "")
7336
+ throw new FlagParseException(`--${field} expected a number, got "${raw}"`);
7292
7337
  const n2 = Number(raw);
7293
7338
  if (Number.isNaN(n2)) throw new FlagParseException(`--${field} expected a number, got "${raw}"`);
7294
7339
  return n2;
7295
7340
  }
7296
7341
  if (type === "integer") {
7342
+ if (raw.trim() === "")
7343
+ throw new FlagParseException(`--${field} expected an integer, got "${raw}"`);
7297
7344
  const n2 = Number(raw);
7298
7345
  if (!Number.isInteger(n2))
7299
7346
  throw new FlagParseException(`--${field} expected an integer, got "${raw}"`);
@@ -7322,6 +7369,7 @@ function parseFlags(argv, schema) {
7322
7369
  let helpRequested = false;
7323
7370
  let rawArgs = null;
7324
7371
  const seenArrayFields = /* @__PURE__ */ new Set();
7372
+ const jsonFields = /* @__PURE__ */ new Set();
7325
7373
  function takeNext(i2, flag) {
7326
7374
  if (i2 + 1 >= argv.length) {
7327
7375
  throw new FlagParseException(`--${flag} requires a value`);
@@ -7360,7 +7408,13 @@ function parseFlags(argv, schema) {
7360
7408
  if (flag.endsWith("-json")) {
7361
7409
  const fieldName = flag.slice(0, -"-json".length);
7362
7410
  const { value: value2, nextIndex: nextIndex2 } = inlineValue !== void 0 ? { value: inlineValue, nextIndex: i2 } : takeNext(i2, flag);
7411
+ if (seenArrayFields.has(fieldName)) {
7412
+ throw new FlagParseException(
7413
+ `--${fieldName} and --${flag} cannot be mixed for the same field; pass it entirely as --${flag} '<json>' or --args '<json>'`
7414
+ );
7415
+ }
7363
7416
  args[fieldName] = parseJsonOrThrow(value2, `--${flag}`);
7417
+ jsonFields.add(fieldName);
7364
7418
  i2 = nextIndex2;
7365
7419
  continue;
7366
7420
  }
@@ -7392,6 +7446,11 @@ function parseFlags(argv, schema) {
7392
7446
  );
7393
7447
  }
7394
7448
  const { value: value2, nextIndex: nextIndex2 } = inlineValue !== void 0 ? { value: inlineValue, nextIndex: i2 } : takeNext(i2, flag);
7449
+ if (jsonFields.has(flag)) {
7450
+ throw new FlagParseException(
7451
+ `--${flag} and --${flag}-json cannot be mixed for the same field; pass it entirely as --${flag}-json '<json>' or --args '<json>'`
7452
+ );
7453
+ }
7395
7454
  const coerced = coerceScalar(value2, itemType, flag);
7396
7455
  if (!seenArrayFields.has(flag)) {
7397
7456
  args[flag] = [coerced];
package/dist/cli.d.ts CHANGED
@@ -19,7 +19,7 @@
19
19
  * argent run <tool> [flags] Invoke a tool by name
20
20
  * argent server start [flags] Spawn a long-lived tool-server (foreground by default)
21
21
  * argent server status|stop|logs Manage the shared tool-server
22
- * argent lens Open Argent Lens bound to a fresh claude session (macOS)
22
+ * argent lens Open Argent Lens bound to a fresh coding-agent session (macOS)
23
23
  * argent link [flags] Route client requests to a remote tool-server
24
24
  * argent unlink Remove the persisted remote link
25
25
  * argent enable <flag> Enable a feature flag (global by default)
package/dist/cli.js CHANGED
@@ -19,7 +19,7 @@
19
19
  * argent run <tool> [flags] Invoke a tool by name
20
20
  * argent server start [flags] Spawn a long-lived tool-server (foreground by default)
21
21
  * argent server status|stop|logs Manage the shared tool-server
22
- * argent lens Open Argent Lens bound to a fresh claude session (macOS)
22
+ * argent lens Open Argent Lens bound to a fresh coding-agent session (macOS)
23
23
  * argent link [flags] Route client requests to a remote tool-server
24
24
  * argent unlink Remove the persisted remote link
25
25
  * argent enable <flag> Enable a feature flag (global by default)
@@ -63,7 +63,7 @@ Commands:
63
63
  tools List tools exposed by the tool-server
64
64
  run Invoke a tool by name (use \`argent run <tool> --help\` for flags)
65
65
  server Manage the shared tool-server (start / status / stop / logs)
66
- lens Open Argent Lens bound to a fresh claude session (macOS)
66
+ lens Open Argent Lens bound to a fresh coding-agent session (macOS)
67
67
  link Route client requests to a remote tool-server
68
68
  unlink Remove the persisted remote tool-server link
69
69
  enable Enable a feature flag (global by default, --scope project for project)
@@ -16060,6 +16060,14 @@ var FAILURE_CODES = {
16060
16060
  UNINSTALL_UNCLASSIFIED_FAILED: "UNINSTALL_UNCLASSIFIED_FAILED",
16061
16061
  VEGA_CLI_COMMAND_FAILED: "VEGA_CLI_COMMAND_FAILED",
16062
16062
  VEGA_INPUT_UNAVAILABLE: "VEGA_INPUT_UNAVAILABLE",
16063
+ VEGA_DEVICE_NOT_FOUND: "VEGA_DEVICE_NOT_FOUND",
16064
+ VEGA_DEVICE_NOT_REGISTERED: "VEGA_DEVICE_NOT_REGISTERED",
16065
+ VEGA_MULTIPLE_DEVICES: "VEGA_MULTIPLE_DEVICES",
16066
+ VEGA_BOOT_TIMEOUT: "VEGA_BOOT_TIMEOUT",
16067
+ VEGA_IMAGE_NOT_FOUND: "VEGA_IMAGE_NOT_FOUND",
16068
+ VEGA_ALREADY_RUNNING: "VEGA_ALREADY_RUNNING",
16069
+ VEGA_SCREENSHOT_FAILED: "VEGA_SCREENSHOT_FAILED",
16070
+ VEGA_TEXT_INVALID: "VEGA_TEXT_INVALID",
16063
16071
  ANDROID_ADB_NOT_FOUND: "ANDROID_ADB_NOT_FOUND",
16064
16072
  ANDROID_EMULATOR_NOT_FOUND: "ANDROID_EMULATOR_NOT_FOUND",
16065
16073
  ANDROID_ADB_COMMAND_FAILED: "ANDROID_ADB_COMMAND_FAILED",
@@ -16072,6 +16080,7 @@ var FAILURE_CODES = {
16072
16080
  SIMULATOR_NON_JSON_RESPONSE: "SIMULATOR_NON_JSON_RESPONSE",
16073
16081
  SIMULATOR_HTTP_ERROR_RESPONSE: "SIMULATOR_HTTP_ERROR_RESPONSE",
16074
16082
  SIMULATOR_MISSING_RESPONSE_FIELDS: "SIMULATOR_MISSING_RESPONSE_FIELDS",
16083
+ SIMULATOR_SCREENSHOT_FAILED: "SIMULATOR_SCREENSHOT_FAILED",
16075
16084
  SIMULATOR_SERVER_FACTORY_OPTIONS_MISSING: "SIMULATOR_SERVER_FACTORY_OPTIONS_MISSING",
16076
16085
  SIMULATOR_SERVER_DEVICE_ID_INVALID: "SIMULATOR_SERVER_DEVICE_ID_INVALID",
16077
16086
  SIMULATOR_SERVER_READY_EXITED: "SIMULATOR_SERVER_READY_EXITED",
@@ -16125,6 +16134,7 @@ var FAILURE_CODES = {
16125
16134
  ANDROID_SCREEN_SIZE_PARSE_FAILED: "ANDROID_SCREEN_SIZE_PARSE_FAILED",
16126
16135
  ANDROID_SCREEN_SIZE_NON_POSITIVE: "ANDROID_SCREEN_SIZE_NON_POSITIVE",
16127
16136
  ANDROID_UIAUTOMATOR_PARSE_FAILED: "ANDROID_UIAUTOMATOR_PARSE_FAILED",
16137
+ ANDROID_UIAUTOMATOR_CAPTURE_FAILED: "ANDROID_UIAUTOMATOR_CAPTURE_FAILED",
16128
16138
  DEBUGGER_METRO_NOT_RUNNING: "DEBUGGER_METRO_NOT_RUNNING",
16129
16139
  DEBUGGER_METRO_PROJECT_ROOT_MISSING: "DEBUGGER_METRO_PROJECT_ROOT_MISSING",
16130
16140
  DEBUGGER_METRO_NO_TARGETS: "DEBUGGER_METRO_NO_TARGETS",
@@ -16169,8 +16179,19 @@ var FAILURE_CODES = {
16169
16179
  NATIVE_PROFILER_XCTRACE_READY_EXITED: "NATIVE_PROFILER_XCTRACE_READY_EXITED",
16170
16180
  NATIVE_PROFILER_XCTRACE_PROCESS_ERROR: "NATIVE_PROFILER_XCTRACE_PROCESS_ERROR",
16171
16181
  NATIVE_PROFILER_XCTRACE_READY_TIMEOUT: "NATIVE_PROFILER_XCTRACE_READY_TIMEOUT",
16182
+ NATIVE_PROFILER_TRACE_TEMPLATE_MISSING: "NATIVE_PROFILER_TRACE_TEMPLATE_MISSING",
16172
16183
  NATIVE_PROFILER_NO_ACTIVE_SESSION: "NATIVE_PROFILER_NO_ACTIVE_SESSION",
16184
+ NATIVE_PROFILER_APP_PROCESS_NOT_FOUND: "NATIVE_PROFILER_APP_PROCESS_NOT_FOUND",
16185
+ NATIVE_PROFILER_NO_EXPORTED_TRACE: "NATIVE_PROFILER_NO_EXPORTED_TRACE",
16186
+ // Android perfetto start-failure modes — mirror the iOS xctrace set so a
16187
+ // failed recording start is classified rather than falling through to the
16188
+ // generic tool-execution bucket.
16189
+ NATIVE_PROFILER_PERFETTO_PROCESS_ERROR: "NATIVE_PROFILER_PERFETTO_PROCESS_ERROR",
16190
+ NATIVE_PROFILER_PERFETTO_READY_TIMEOUT: "NATIVE_PROFILER_PERFETTO_READY_TIMEOUT",
16191
+ NATIVE_PROFILER_PERFETTO_READY_EXITED: "NATIVE_PROFILER_PERFETTO_READY_EXITED",
16173
16192
  FLOW_PROJECT_ROOT_REQUIRED: "FLOW_PROJECT_ROOT_REQUIRED",
16193
+ FLOW_PROJECT_ROOT_INVALID: "FLOW_PROJECT_ROOT_INVALID",
16194
+ FLOW_NAME_INVALID: "FLOW_NAME_INVALID",
16174
16195
  FLOW_NO_ACTIVE_RECORDING: "FLOW_NO_ACTIVE_RECORDING",
16175
16196
  FLOW_FILE_INVALID: "FLOW_FILE_INVALID",
16176
16197
  FLOW_ENTRY_UNRECOGNIZED: "FLOW_ENTRY_UNRECOGNIZED",
@@ -16178,6 +16199,27 @@ var FAILURE_CODES = {
16178
16199
  PROFILER_QUERY_REQUIRED_PARAM_MISSING: "PROFILER_QUERY_REQUIRED_PARAM_MISSING",
16179
16200
  PROFILER_DATA_NOT_LOADED: "PROFILER_DATA_NOT_LOADED",
16180
16201
  PROFILER_NATIVE_TRACE_MISSING: "PROFILER_NATIVE_TRACE_MISSING",
16202
+ PROFILER_NATIVE_METADATA_MISSING: "PROFILER_NATIVE_METADATA_MISSING",
16203
+ PROFILER_NATIVE_METADATA_INVALID: "PROFILER_NATIVE_METADATA_INVALID",
16204
+ CHROMIUM_CDP_UNREACHABLE: "CHROMIUM_CDP_UNREACHABLE",
16205
+ CHROMIUM_CDP_NO_PAGE_TARGET: "CHROMIUM_CDP_NO_PAGE_TARGET",
16206
+ CHROMIUM_CDP_INVALID_RESPONSE: "CHROMIUM_CDP_INVALID_RESPONSE",
16207
+ CHROMIUM_DEVICE_ID_INVALID: "CHROMIUM_DEVICE_ID_INVALID",
16208
+ CHROMIUM_PARAM_INVALID: "CHROMIUM_PARAM_INVALID",
16209
+ CHROMIUM_INPUT_INVALID: "CHROMIUM_INPUT_INVALID",
16210
+ CHROMIUM_VIEWPORT_READ_FAILED: "CHROMIUM_VIEWPORT_READ_FAILED",
16211
+ CHROMIUM_SCREENSHOT_FAILED: "CHROMIUM_SCREENSHOT_FAILED",
16212
+ CHROMIUM_STORAGE_EVAL_FAILED: "CHROMIUM_STORAGE_EVAL_FAILED",
16213
+ CHROMIUM_TAB_NOT_FOUND: "CHROMIUM_TAB_NOT_FOUND",
16214
+ CHROMIUM_TAB_OPEN_FAILED: "CHROMIUM_TAB_OPEN_FAILED",
16215
+ CHROMIUM_DESCRIBE_FAILED: "CHROMIUM_DESCRIBE_FAILED",
16216
+ CHROMIUM_ELECTRON_APP_PATH_INVALID: "CHROMIUM_ELECTRON_APP_PATH_INVALID",
16217
+ CHROMIUM_ELECTRON_SPAWN_FAILED: "CHROMIUM_ELECTRON_SPAWN_FAILED",
16218
+ CHROMIUM_ELECTRON_CDP_TIMEOUT: "CHROMIUM_ELECTRON_CDP_TIMEOUT",
16219
+ CHROMIUM_ELECTRON_EXITED_BEFORE_READY: "CHROMIUM_ELECTRON_EXITED_BEFORE_READY",
16220
+ KEYBOARD_KEY_UNSUPPORTED: "KEYBOARD_KEY_UNSUPPORTED",
16221
+ KEYBOARD_CHARACTER_UNSUPPORTED: "KEYBOARD_CHARACTER_UNSUPPORTED",
16222
+ SCREENSHOT_DIFF_INPUT_INVALID: "SCREENSHOT_DIFF_INPUT_INVALID",
16181
16223
  BOOT_DEVICE_TARGET_SELECTION_INVALID: "BOOT_DEVICE_TARGET_SELECTION_INVALID",
16182
16224
  BOOT_IOS_UNSUPPORTED_HOST: "BOOT_IOS_UNSUPPORTED_HOST",
16183
16225
  BOOT_ANDROID_NO_AVDS: "BOOT_ANDROID_NO_AVDS",
@@ -16216,6 +16258,7 @@ var FAILURE_COMMANDS = [
16216
16258
  "ax_service",
16217
16259
  "simulator_server",
16218
16260
  "cdp",
16261
+ "electron",
16219
16262
  "npm",
16220
16263
  "npx",
16221
16264
  "unknown"
@@ -17313,6 +17313,14 @@ var FAILURE_CODES = {
17313
17313
  UNINSTALL_UNCLASSIFIED_FAILED: "UNINSTALL_UNCLASSIFIED_FAILED",
17314
17314
  VEGA_CLI_COMMAND_FAILED: "VEGA_CLI_COMMAND_FAILED",
17315
17315
  VEGA_INPUT_UNAVAILABLE: "VEGA_INPUT_UNAVAILABLE",
17316
+ VEGA_DEVICE_NOT_FOUND: "VEGA_DEVICE_NOT_FOUND",
17317
+ VEGA_DEVICE_NOT_REGISTERED: "VEGA_DEVICE_NOT_REGISTERED",
17318
+ VEGA_MULTIPLE_DEVICES: "VEGA_MULTIPLE_DEVICES",
17319
+ VEGA_BOOT_TIMEOUT: "VEGA_BOOT_TIMEOUT",
17320
+ VEGA_IMAGE_NOT_FOUND: "VEGA_IMAGE_NOT_FOUND",
17321
+ VEGA_ALREADY_RUNNING: "VEGA_ALREADY_RUNNING",
17322
+ VEGA_SCREENSHOT_FAILED: "VEGA_SCREENSHOT_FAILED",
17323
+ VEGA_TEXT_INVALID: "VEGA_TEXT_INVALID",
17316
17324
  ANDROID_ADB_NOT_FOUND: "ANDROID_ADB_NOT_FOUND",
17317
17325
  ANDROID_EMULATOR_NOT_FOUND: "ANDROID_EMULATOR_NOT_FOUND",
17318
17326
  ANDROID_ADB_COMMAND_FAILED: "ANDROID_ADB_COMMAND_FAILED",
@@ -17325,6 +17333,7 @@ var FAILURE_CODES = {
17325
17333
  SIMULATOR_NON_JSON_RESPONSE: "SIMULATOR_NON_JSON_RESPONSE",
17326
17334
  SIMULATOR_HTTP_ERROR_RESPONSE: "SIMULATOR_HTTP_ERROR_RESPONSE",
17327
17335
  SIMULATOR_MISSING_RESPONSE_FIELDS: "SIMULATOR_MISSING_RESPONSE_FIELDS",
17336
+ SIMULATOR_SCREENSHOT_FAILED: "SIMULATOR_SCREENSHOT_FAILED",
17328
17337
  SIMULATOR_SERVER_FACTORY_OPTIONS_MISSING: "SIMULATOR_SERVER_FACTORY_OPTIONS_MISSING",
17329
17338
  SIMULATOR_SERVER_DEVICE_ID_INVALID: "SIMULATOR_SERVER_DEVICE_ID_INVALID",
17330
17339
  SIMULATOR_SERVER_READY_EXITED: "SIMULATOR_SERVER_READY_EXITED",
@@ -17378,6 +17387,7 @@ var FAILURE_CODES = {
17378
17387
  ANDROID_SCREEN_SIZE_PARSE_FAILED: "ANDROID_SCREEN_SIZE_PARSE_FAILED",
17379
17388
  ANDROID_SCREEN_SIZE_NON_POSITIVE: "ANDROID_SCREEN_SIZE_NON_POSITIVE",
17380
17389
  ANDROID_UIAUTOMATOR_PARSE_FAILED: "ANDROID_UIAUTOMATOR_PARSE_FAILED",
17390
+ ANDROID_UIAUTOMATOR_CAPTURE_FAILED: "ANDROID_UIAUTOMATOR_CAPTURE_FAILED",
17381
17391
  DEBUGGER_METRO_NOT_RUNNING: "DEBUGGER_METRO_NOT_RUNNING",
17382
17392
  DEBUGGER_METRO_PROJECT_ROOT_MISSING: "DEBUGGER_METRO_PROJECT_ROOT_MISSING",
17383
17393
  DEBUGGER_METRO_NO_TARGETS: "DEBUGGER_METRO_NO_TARGETS",
@@ -17422,8 +17432,19 @@ var FAILURE_CODES = {
17422
17432
  NATIVE_PROFILER_XCTRACE_READY_EXITED: "NATIVE_PROFILER_XCTRACE_READY_EXITED",
17423
17433
  NATIVE_PROFILER_XCTRACE_PROCESS_ERROR: "NATIVE_PROFILER_XCTRACE_PROCESS_ERROR",
17424
17434
  NATIVE_PROFILER_XCTRACE_READY_TIMEOUT: "NATIVE_PROFILER_XCTRACE_READY_TIMEOUT",
17435
+ NATIVE_PROFILER_TRACE_TEMPLATE_MISSING: "NATIVE_PROFILER_TRACE_TEMPLATE_MISSING",
17425
17436
  NATIVE_PROFILER_NO_ACTIVE_SESSION: "NATIVE_PROFILER_NO_ACTIVE_SESSION",
17437
+ NATIVE_PROFILER_APP_PROCESS_NOT_FOUND: "NATIVE_PROFILER_APP_PROCESS_NOT_FOUND",
17438
+ NATIVE_PROFILER_NO_EXPORTED_TRACE: "NATIVE_PROFILER_NO_EXPORTED_TRACE",
17439
+ // Android perfetto start-failure modes — mirror the iOS xctrace set so a
17440
+ // failed recording start is classified rather than falling through to the
17441
+ // generic tool-execution bucket.
17442
+ NATIVE_PROFILER_PERFETTO_PROCESS_ERROR: "NATIVE_PROFILER_PERFETTO_PROCESS_ERROR",
17443
+ NATIVE_PROFILER_PERFETTO_READY_TIMEOUT: "NATIVE_PROFILER_PERFETTO_READY_TIMEOUT",
17444
+ NATIVE_PROFILER_PERFETTO_READY_EXITED: "NATIVE_PROFILER_PERFETTO_READY_EXITED",
17426
17445
  FLOW_PROJECT_ROOT_REQUIRED: "FLOW_PROJECT_ROOT_REQUIRED",
17446
+ FLOW_PROJECT_ROOT_INVALID: "FLOW_PROJECT_ROOT_INVALID",
17447
+ FLOW_NAME_INVALID: "FLOW_NAME_INVALID",
17427
17448
  FLOW_NO_ACTIVE_RECORDING: "FLOW_NO_ACTIVE_RECORDING",
17428
17449
  FLOW_FILE_INVALID: "FLOW_FILE_INVALID",
17429
17450
  FLOW_ENTRY_UNRECOGNIZED: "FLOW_ENTRY_UNRECOGNIZED",
@@ -17431,6 +17452,27 @@ var FAILURE_CODES = {
17431
17452
  PROFILER_QUERY_REQUIRED_PARAM_MISSING: "PROFILER_QUERY_REQUIRED_PARAM_MISSING",
17432
17453
  PROFILER_DATA_NOT_LOADED: "PROFILER_DATA_NOT_LOADED",
17433
17454
  PROFILER_NATIVE_TRACE_MISSING: "PROFILER_NATIVE_TRACE_MISSING",
17455
+ PROFILER_NATIVE_METADATA_MISSING: "PROFILER_NATIVE_METADATA_MISSING",
17456
+ PROFILER_NATIVE_METADATA_INVALID: "PROFILER_NATIVE_METADATA_INVALID",
17457
+ CHROMIUM_CDP_UNREACHABLE: "CHROMIUM_CDP_UNREACHABLE",
17458
+ CHROMIUM_CDP_NO_PAGE_TARGET: "CHROMIUM_CDP_NO_PAGE_TARGET",
17459
+ CHROMIUM_CDP_INVALID_RESPONSE: "CHROMIUM_CDP_INVALID_RESPONSE",
17460
+ CHROMIUM_DEVICE_ID_INVALID: "CHROMIUM_DEVICE_ID_INVALID",
17461
+ CHROMIUM_PARAM_INVALID: "CHROMIUM_PARAM_INVALID",
17462
+ CHROMIUM_INPUT_INVALID: "CHROMIUM_INPUT_INVALID",
17463
+ CHROMIUM_VIEWPORT_READ_FAILED: "CHROMIUM_VIEWPORT_READ_FAILED",
17464
+ CHROMIUM_SCREENSHOT_FAILED: "CHROMIUM_SCREENSHOT_FAILED",
17465
+ CHROMIUM_STORAGE_EVAL_FAILED: "CHROMIUM_STORAGE_EVAL_FAILED",
17466
+ CHROMIUM_TAB_NOT_FOUND: "CHROMIUM_TAB_NOT_FOUND",
17467
+ CHROMIUM_TAB_OPEN_FAILED: "CHROMIUM_TAB_OPEN_FAILED",
17468
+ CHROMIUM_DESCRIBE_FAILED: "CHROMIUM_DESCRIBE_FAILED",
17469
+ CHROMIUM_ELECTRON_APP_PATH_INVALID: "CHROMIUM_ELECTRON_APP_PATH_INVALID",
17470
+ CHROMIUM_ELECTRON_SPAWN_FAILED: "CHROMIUM_ELECTRON_SPAWN_FAILED",
17471
+ CHROMIUM_ELECTRON_CDP_TIMEOUT: "CHROMIUM_ELECTRON_CDP_TIMEOUT",
17472
+ CHROMIUM_ELECTRON_EXITED_BEFORE_READY: "CHROMIUM_ELECTRON_EXITED_BEFORE_READY",
17473
+ KEYBOARD_KEY_UNSUPPORTED: "KEYBOARD_KEY_UNSUPPORTED",
17474
+ KEYBOARD_CHARACTER_UNSUPPORTED: "KEYBOARD_CHARACTER_UNSUPPORTED",
17475
+ SCREENSHOT_DIFF_INPUT_INVALID: "SCREENSHOT_DIFF_INPUT_INVALID",
17434
17476
  BOOT_DEVICE_TARGET_SELECTION_INVALID: "BOOT_DEVICE_TARGET_SELECTION_INVALID",
17435
17477
  BOOT_IOS_UNSUPPORTED_HOST: "BOOT_IOS_UNSUPPORTED_HOST",
17436
17478
  BOOT_ANDROID_NO_AVDS: "BOOT_ANDROID_NO_AVDS",
@@ -17469,6 +17511,7 @@ var FAILURE_COMMANDS = [
17469
17511
  "ax_service",
17470
17512
  "simulator_server",
17471
17513
  "cdp",
17514
+ "electron",
17472
17515
  "npm",
17473
17516
  "npx",
17474
17517
  "unknown"