@swmansion/argent 0.32.1-next.14 → 0.32.1-next.15

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.
Files changed (33) hide show
  1. package/README.md +1 -1
  2. package/bin/argent-android-devtools-0.3.0.apk +0 -0
  3. package/bin/darwin/argent-macos-helper +0 -0
  4. package/bin/darwin/ax-service +0 -0
  5. package/bin/darwin/tvos-ax-service +0 -0
  6. package/bin/darwin/tvos-hid-daemon +0 -0
  7. package/bin/network-inspector/network-inspector.jar +0 -0
  8. package/bin/tcp/ax-service +0 -0
  9. package/dist/cli-cmds.mjs +34 -3
  10. package/dist/client.js +30 -0
  11. package/dist/installer.mjs +29 -2
  12. package/dist/mcp-server.mjs +52 -11
  13. package/dist/tool-args.generated.d.ts +76 -42
  14. package/dist/tool-server.cjs +11475 -8333
  15. package/dylibs/libArgentInjectionBootstrap.dylib +0 -0
  16. package/dylibs/libKeyboardPatch.dylib +0 -0
  17. package/dylibs/libNativeDevtoolsIos.dylib +0 -0
  18. package/dylibs/macos/libArgentInjectionBootstrap.dylib +0 -0
  19. package/dylibs/macos/libNativeDevtoolsMacos.dylib +0 -0
  20. package/dylibs/tcp/libArgentInjectionBootstrap.dylib +0 -0
  21. package/dylibs/tcp/libKeyboardPatch.dylib +0 -0
  22. package/dylibs/tcp/libNativeDevtoolsIos.dylib +0 -0
  23. package/dylibs/tvos/libArgentInjectionBootstrap.dylib +0 -0
  24. package/dylibs/tvos/libKeyboardPatch.dylib +0 -0
  25. package/dylibs/tvos/libNativeDevtoolsIos.dylib +0 -0
  26. package/package.json +2 -2
  27. package/rules/argent.md +1 -1
  28. package/skills/argent-create-e2e/references/e2e-yaml.md +4 -4
  29. package/skills/argent-device-interact/SKILL.md +2 -1
  30. package/skills/argent-macos-app-interact/SKILL.md +44 -0
  31. package/skills/argent-macos-app-interact/references/e2e.md +6 -0
  32. package/skills/argent-qa-e2e/SKILL.md +1 -1
  33. package/skills/argent-react-native-app-workflow/SKILL.md +2 -0
package/README.md CHANGED
@@ -7,7 +7,7 @@
7
7
  [![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)
8
8
  [![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)
9
9
 
10
- **[Argent](https://argent.swmansion.com)** gives your AI assistant direct control of iOS simulators, Android emulators and devices, TVs (Apple TV, Android TV, Fire TV) and Electron/Chromium apps. Tap a button, profile a screen, reproduce a bug - without leaving the CLI.
10
+ **[Argent](https://argent.swmansion.com)** gives your AI assistant direct control of iOS simulators, Android emulators and devices, TVs (Apple TV, Android TV, Fire TV), Electron/Chromium apps and native Mac apps. Tap a button, profile a screen, reproduce a bug - without leaving the CLI.
11
11
 
12
12
  ```bash
13
13
  npx @swmansion/argent@latest init # pnpm: pnpm dlx @swmansion/argent@latest init
Binary file
Binary file
Binary file
Binary file
Binary file
package/dist/cli-cmds.mjs CHANGED
@@ -9481,6 +9481,10 @@ var FLAG_REGISTRY = [
9481
9481
  name: "video-watermark",
9482
9482
  description: "Overlay the argent corner watermark on recorded screen videos. On by default; turn it off with `argent disable video-watermark`.",
9483
9483
  defaultEnabled: true
9484
+ },
9485
+ {
9486
+ name: "macos-apps",
9487
+ description: "Drive native Mac apps (AppKit, SwiftUI, react-native-macos) from inside the app. Adds the macos platform to list-devices and boot-device, and the file-panel and menu-bar tools. Off by default."
9484
9488
  }
9485
9489
  ];
9486
9490
  function getFlagDefinition(name, registry2 = FLAG_REGISTRY) {
@@ -10746,6 +10750,32 @@ var FAILURE_CODES = {
10746
10750
  CHROMIUM_ELECTRON_SPAWN_FAILED: "CHROMIUM_ELECTRON_SPAWN_FAILED",
10747
10751
  CHROMIUM_ELECTRON_CDP_TIMEOUT: "CHROMIUM_ELECTRON_CDP_TIMEOUT",
10748
10752
  CHROMIUM_ELECTRON_EXITED_BEFORE_READY: "CHROMIUM_ELECTRON_EXITED_BEFORE_READY",
10753
+ /**
10754
+ * Native Mac apps (the `macos-apps` flag)
10755
+ * @see [macos-app.ts](../../tool-server/src/blueprints/macos-app.ts)
10756
+ */
10757
+ MACOS_APP_UNSUPPORTED_HOST: "MACOS_APP_UNSUPPORTED_HOST",
10758
+ MACOS_APP_PATH_INVALID: "MACOS_APP_PATH_INVALID",
10759
+ MACOS_APP_BUNDLE_INVALID: "MACOS_APP_BUNDLE_INVALID",
10760
+ MACOS_APP_NOT_FOUND: "MACOS_APP_NOT_FOUND",
10761
+ MACOS_APP_HARDENED_RUNTIME: "MACOS_APP_HARDENED_RUNTIME",
10762
+ MACOS_APP_LIBRARY_MISSING: "MACOS_APP_LIBRARY_MISSING",
10763
+ MACOS_APP_LIBRARY_STAGE_FAILED: "MACOS_APP_LIBRARY_STAGE_FAILED",
10764
+ MACOS_APP_ALREADY_RUNNING: "MACOS_APP_ALREADY_RUNNING",
10765
+ MACOS_APP_SPAWN_FAILED: "MACOS_APP_SPAWN_FAILED",
10766
+ MACOS_APP_EXITED_BEFORE_READY: "MACOS_APP_EXITED_BEFORE_READY",
10767
+ MACOS_APP_HANDSHAKE_TIMEOUT: "MACOS_APP_HANDSHAKE_TIMEOUT",
10768
+ MACOS_APP_HANDSHAKE_INVALID: "MACOS_APP_HANDSHAKE_INVALID",
10769
+ MACOS_APP_NOT_RUNNING: "MACOS_APP_NOT_RUNNING",
10770
+ MACOS_APP_NOT_CONNECTED: "MACOS_APP_NOT_CONNECTED",
10771
+ MACOS_APP_CONNECTION_LOST: "MACOS_APP_CONNECTION_LOST",
10772
+ MACOS_APP_CONNECTION_CLOSED: "MACOS_APP_CONNECTION_CLOSED",
10773
+ MACOS_APP_RPC_TIMEOUT: "MACOS_APP_RPC_TIMEOUT",
10774
+ MACOS_APP_RPC_ERROR: "MACOS_APP_RPC_ERROR",
10775
+ MACOS_APP_TERMINATE_FAILED: "MACOS_APP_TERMINATE_FAILED",
10776
+ MACOS_APP_BUNDLE_ID_MISMATCH: "MACOS_APP_BUNDLE_ID_MISMATCH",
10777
+ MACOS_APP_OPEN_URL_FAILED: "MACOS_APP_OPEN_URL_FAILED",
10778
+ MACOS_APP_FILE_ACCESS_FAILED: "MACOS_APP_FILE_ACCESS_FAILED",
10749
10779
  KEYBOARD_KEY_UNSUPPORTED: "KEYBOARD_KEY_UNSUPPORTED",
10750
10780
  KEYBOARD_CHARACTER_UNSUPPORTED: "KEYBOARD_CHARACTER_UNSUPPORTED",
10751
10781
  KEYBOARD_TEXT_AND_KEY_COMBINED: "KEYBOARD_TEXT_AND_KEY_COMBINED",
@@ -35085,7 +35115,8 @@ var PLATFORMS = [
35085
35115
  "vega",
35086
35116
  "harmony",
35087
35117
  "tvos",
35088
- "android-tv"
35118
+ "android-tv",
35119
+ "macos"
35089
35120
  ];
35090
35121
  var DEVICE_KINDS = [
35091
35122
  "simulator",
@@ -35840,7 +35871,7 @@ var _CI_VENDOR_COUNT_FOR_TEST = vendors_default.length;
35840
35871
  var SESSION_ID2 = randomUUID5();
35841
35872
  function readCliVersion() {
35842
35873
  if (true) {
35843
- return "0.32.1-next.14";
35874
+ return "0.32.1-next.15";
35844
35875
  }
35845
35876
  return "0.0.0";
35846
35877
  }
@@ -36946,7 +36977,7 @@ Subcommands:
36946
36977
 
36947
36978
  Options (run):
36948
36979
  --device <id> Device id to run against (auto-detected when omitted)
36949
- --platform <p> ios | android | chromium | vega | ios-remote \u2014 narrow
36980
+ --platform <p> ios | android | chromium | vega |${isFlagEnabled("macos-apps") ? " macos |" : ""} ios-remote \u2014 narrow
36950
36981
  auto-detection (ios never picks a remote simulator)
36951
36982
  --update-baselines Write/refresh screenshot baselines instead of diffing,
36952
36983
  also those of tests that tool: e2e-execute steps run,
package/dist/client.js CHANGED
@@ -7802,6 +7802,10 @@ var FLAG_REGISTRY = [
7802
7802
  name: "video-watermark",
7803
7803
  description: "Overlay the argent corner watermark on recorded screen videos. On by default; turn it off with `argent disable video-watermark`.",
7804
7804
  defaultEnabled: true
7805
+ },
7806
+ {
7807
+ name: "macos-apps",
7808
+ description: "Drive native Mac apps (AppKit, SwiftUI, react-native-macos) from inside the app. Adds the macos platform to list-devices and boot-device, and the file-panel and menu-bar tools. Off by default."
7805
7809
  }
7806
7810
  ];
7807
7811
  function getFlagDefinition(name, registry = FLAG_REGISTRY) {
@@ -9319,6 +9323,32 @@ var FAILURE_CODES = {
9319
9323
  CHROMIUM_ELECTRON_SPAWN_FAILED: "CHROMIUM_ELECTRON_SPAWN_FAILED",
9320
9324
  CHROMIUM_ELECTRON_CDP_TIMEOUT: "CHROMIUM_ELECTRON_CDP_TIMEOUT",
9321
9325
  CHROMIUM_ELECTRON_EXITED_BEFORE_READY: "CHROMIUM_ELECTRON_EXITED_BEFORE_READY",
9326
+ /**
9327
+ * Native Mac apps (the `macos-apps` flag)
9328
+ * @see [macos-app.ts](../../tool-server/src/blueprints/macos-app.ts)
9329
+ */
9330
+ MACOS_APP_UNSUPPORTED_HOST: "MACOS_APP_UNSUPPORTED_HOST",
9331
+ MACOS_APP_PATH_INVALID: "MACOS_APP_PATH_INVALID",
9332
+ MACOS_APP_BUNDLE_INVALID: "MACOS_APP_BUNDLE_INVALID",
9333
+ MACOS_APP_NOT_FOUND: "MACOS_APP_NOT_FOUND",
9334
+ MACOS_APP_HARDENED_RUNTIME: "MACOS_APP_HARDENED_RUNTIME",
9335
+ MACOS_APP_LIBRARY_MISSING: "MACOS_APP_LIBRARY_MISSING",
9336
+ MACOS_APP_LIBRARY_STAGE_FAILED: "MACOS_APP_LIBRARY_STAGE_FAILED",
9337
+ MACOS_APP_ALREADY_RUNNING: "MACOS_APP_ALREADY_RUNNING",
9338
+ MACOS_APP_SPAWN_FAILED: "MACOS_APP_SPAWN_FAILED",
9339
+ MACOS_APP_EXITED_BEFORE_READY: "MACOS_APP_EXITED_BEFORE_READY",
9340
+ MACOS_APP_HANDSHAKE_TIMEOUT: "MACOS_APP_HANDSHAKE_TIMEOUT",
9341
+ MACOS_APP_HANDSHAKE_INVALID: "MACOS_APP_HANDSHAKE_INVALID",
9342
+ MACOS_APP_NOT_RUNNING: "MACOS_APP_NOT_RUNNING",
9343
+ MACOS_APP_NOT_CONNECTED: "MACOS_APP_NOT_CONNECTED",
9344
+ MACOS_APP_CONNECTION_LOST: "MACOS_APP_CONNECTION_LOST",
9345
+ MACOS_APP_CONNECTION_CLOSED: "MACOS_APP_CONNECTION_CLOSED",
9346
+ MACOS_APP_RPC_TIMEOUT: "MACOS_APP_RPC_TIMEOUT",
9347
+ MACOS_APP_RPC_ERROR: "MACOS_APP_RPC_ERROR",
9348
+ MACOS_APP_TERMINATE_FAILED: "MACOS_APP_TERMINATE_FAILED",
9349
+ MACOS_APP_BUNDLE_ID_MISMATCH: "MACOS_APP_BUNDLE_ID_MISMATCH",
9350
+ MACOS_APP_OPEN_URL_FAILED: "MACOS_APP_OPEN_URL_FAILED",
9351
+ MACOS_APP_FILE_ACCESS_FAILED: "MACOS_APP_FILE_ACCESS_FAILED",
9322
9352
  KEYBOARD_KEY_UNSUPPORTED: "KEYBOARD_KEY_UNSUPPORTED",
9323
9353
  KEYBOARD_CHARACTER_UNSUPPORTED: "KEYBOARD_CHARACTER_UNSUPPORTED",
9324
9354
  KEYBOARD_TEXT_AND_KEY_COMBINED: "KEYBOARD_TEXT_AND_KEY_COMBINED",
@@ -16083,6 +16083,32 @@ var FAILURE_CODES = {
16083
16083
  CHROMIUM_ELECTRON_SPAWN_FAILED: "CHROMIUM_ELECTRON_SPAWN_FAILED",
16084
16084
  CHROMIUM_ELECTRON_CDP_TIMEOUT: "CHROMIUM_ELECTRON_CDP_TIMEOUT",
16085
16085
  CHROMIUM_ELECTRON_EXITED_BEFORE_READY: "CHROMIUM_ELECTRON_EXITED_BEFORE_READY",
16086
+ /**
16087
+ * Native Mac apps (the `macos-apps` flag)
16088
+ * @see [macos-app.ts](../../tool-server/src/blueprints/macos-app.ts)
16089
+ */
16090
+ MACOS_APP_UNSUPPORTED_HOST: "MACOS_APP_UNSUPPORTED_HOST",
16091
+ MACOS_APP_PATH_INVALID: "MACOS_APP_PATH_INVALID",
16092
+ MACOS_APP_BUNDLE_INVALID: "MACOS_APP_BUNDLE_INVALID",
16093
+ MACOS_APP_NOT_FOUND: "MACOS_APP_NOT_FOUND",
16094
+ MACOS_APP_HARDENED_RUNTIME: "MACOS_APP_HARDENED_RUNTIME",
16095
+ MACOS_APP_LIBRARY_MISSING: "MACOS_APP_LIBRARY_MISSING",
16096
+ MACOS_APP_LIBRARY_STAGE_FAILED: "MACOS_APP_LIBRARY_STAGE_FAILED",
16097
+ MACOS_APP_ALREADY_RUNNING: "MACOS_APP_ALREADY_RUNNING",
16098
+ MACOS_APP_SPAWN_FAILED: "MACOS_APP_SPAWN_FAILED",
16099
+ MACOS_APP_EXITED_BEFORE_READY: "MACOS_APP_EXITED_BEFORE_READY",
16100
+ MACOS_APP_HANDSHAKE_TIMEOUT: "MACOS_APP_HANDSHAKE_TIMEOUT",
16101
+ MACOS_APP_HANDSHAKE_INVALID: "MACOS_APP_HANDSHAKE_INVALID",
16102
+ MACOS_APP_NOT_RUNNING: "MACOS_APP_NOT_RUNNING",
16103
+ MACOS_APP_NOT_CONNECTED: "MACOS_APP_NOT_CONNECTED",
16104
+ MACOS_APP_CONNECTION_LOST: "MACOS_APP_CONNECTION_LOST",
16105
+ MACOS_APP_CONNECTION_CLOSED: "MACOS_APP_CONNECTION_CLOSED",
16106
+ MACOS_APP_RPC_TIMEOUT: "MACOS_APP_RPC_TIMEOUT",
16107
+ MACOS_APP_RPC_ERROR: "MACOS_APP_RPC_ERROR",
16108
+ MACOS_APP_TERMINATE_FAILED: "MACOS_APP_TERMINATE_FAILED",
16109
+ MACOS_APP_BUNDLE_ID_MISMATCH: "MACOS_APP_BUNDLE_ID_MISMATCH",
16110
+ MACOS_APP_OPEN_URL_FAILED: "MACOS_APP_OPEN_URL_FAILED",
16111
+ MACOS_APP_FILE_ACCESS_FAILED: "MACOS_APP_FILE_ACCESS_FAILED",
16086
16112
  KEYBOARD_KEY_UNSUPPORTED: "KEYBOARD_KEY_UNSUPPORTED",
16087
16113
  KEYBOARD_CHARACTER_UNSUPPORTED: "KEYBOARD_CHARACTER_UNSUPPORTED",
16088
16114
  KEYBOARD_TEXT_AND_KEY_COMBINED: "KEYBOARD_TEXT_AND_KEY_COMBINED",
@@ -16199,7 +16225,8 @@ var PLATFORMS = [
16199
16225
  "vega",
16200
16226
  "harmony",
16201
16227
  "tvos",
16202
- "android-tv"
16228
+ "android-tv",
16229
+ "macos"
16203
16230
  ];
16204
16231
  var DEVICE_KINDS = [
16205
16232
  "simulator",
@@ -16954,7 +16981,7 @@ var _CI_VENDOR_COUNT_FOR_TEST = vendors_default.length;
16954
16981
  var SESSION_ID = randomUUID4();
16955
16982
  function readCliVersion() {
16956
16983
  if (true) {
16957
- return "0.32.1-next.14";
16984
+ return "0.32.1-next.15";
16958
16985
  }
16959
16986
  return "0.0.0";
16960
16987
  }
@@ -24943,6 +24943,10 @@ var FLAG_REGISTRY = [
24943
24943
  name: "video-watermark",
24944
24944
  description: "Overlay the argent corner watermark on recorded screen videos. On by default; turn it off with `argent disable video-watermark`.",
24945
24945
  defaultEnabled: true
24946
+ },
24947
+ {
24948
+ name: "macos-apps",
24949
+ description: "Drive native Mac apps (AppKit, SwiftUI, react-native-macos) from inside the app. Adds the macos platform to list-devices and boot-device, and the file-panel and menu-bar tools. Off by default."
24946
24950
  }
24947
24951
  ];
24948
24952
  function getFlagDefinition(name, registry2 = FLAG_REGISTRY) {
@@ -26029,6 +26033,32 @@ var FAILURE_CODES = {
26029
26033
  CHROMIUM_ELECTRON_SPAWN_FAILED: "CHROMIUM_ELECTRON_SPAWN_FAILED",
26030
26034
  CHROMIUM_ELECTRON_CDP_TIMEOUT: "CHROMIUM_ELECTRON_CDP_TIMEOUT",
26031
26035
  CHROMIUM_ELECTRON_EXITED_BEFORE_READY: "CHROMIUM_ELECTRON_EXITED_BEFORE_READY",
26036
+ /**
26037
+ * Native Mac apps (the `macos-apps` flag)
26038
+ * @see [macos-app.ts](../../tool-server/src/blueprints/macos-app.ts)
26039
+ */
26040
+ MACOS_APP_UNSUPPORTED_HOST: "MACOS_APP_UNSUPPORTED_HOST",
26041
+ MACOS_APP_PATH_INVALID: "MACOS_APP_PATH_INVALID",
26042
+ MACOS_APP_BUNDLE_INVALID: "MACOS_APP_BUNDLE_INVALID",
26043
+ MACOS_APP_NOT_FOUND: "MACOS_APP_NOT_FOUND",
26044
+ MACOS_APP_HARDENED_RUNTIME: "MACOS_APP_HARDENED_RUNTIME",
26045
+ MACOS_APP_LIBRARY_MISSING: "MACOS_APP_LIBRARY_MISSING",
26046
+ MACOS_APP_LIBRARY_STAGE_FAILED: "MACOS_APP_LIBRARY_STAGE_FAILED",
26047
+ MACOS_APP_ALREADY_RUNNING: "MACOS_APP_ALREADY_RUNNING",
26048
+ MACOS_APP_SPAWN_FAILED: "MACOS_APP_SPAWN_FAILED",
26049
+ MACOS_APP_EXITED_BEFORE_READY: "MACOS_APP_EXITED_BEFORE_READY",
26050
+ MACOS_APP_HANDSHAKE_TIMEOUT: "MACOS_APP_HANDSHAKE_TIMEOUT",
26051
+ MACOS_APP_HANDSHAKE_INVALID: "MACOS_APP_HANDSHAKE_INVALID",
26052
+ MACOS_APP_NOT_RUNNING: "MACOS_APP_NOT_RUNNING",
26053
+ MACOS_APP_NOT_CONNECTED: "MACOS_APP_NOT_CONNECTED",
26054
+ MACOS_APP_CONNECTION_LOST: "MACOS_APP_CONNECTION_LOST",
26055
+ MACOS_APP_CONNECTION_CLOSED: "MACOS_APP_CONNECTION_CLOSED",
26056
+ MACOS_APP_RPC_TIMEOUT: "MACOS_APP_RPC_TIMEOUT",
26057
+ MACOS_APP_RPC_ERROR: "MACOS_APP_RPC_ERROR",
26058
+ MACOS_APP_TERMINATE_FAILED: "MACOS_APP_TERMINATE_FAILED",
26059
+ MACOS_APP_BUNDLE_ID_MISMATCH: "MACOS_APP_BUNDLE_ID_MISMATCH",
26060
+ MACOS_APP_OPEN_URL_FAILED: "MACOS_APP_OPEN_URL_FAILED",
26061
+ MACOS_APP_FILE_ACCESS_FAILED: "MACOS_APP_FILE_ACCESS_FAILED",
26032
26062
  KEYBOARD_KEY_UNSUPPORTED: "KEYBOARD_KEY_UNSUPPORTED",
26033
26063
  KEYBOARD_CHARACTER_UNSUPPORTED: "KEYBOARD_CHARACTER_UNSUPPORTED",
26034
26064
  KEYBOARD_TEXT_AND_KEY_COMBINED: "KEYBOARD_TEXT_AND_KEY_COMBINED",
@@ -27814,7 +27844,8 @@ var PLATFORMS = [
27814
27844
  "vega",
27815
27845
  "harmony",
27816
27846
  "tvos",
27817
- "android-tv"
27847
+ "android-tv",
27848
+ "macos"
27818
27849
  ];
27819
27850
  var DEVICE_KINDS = [
27820
27851
  "simulator",
@@ -28875,7 +28906,9 @@ var AUTO_SCREENSHOT_TOOLS = /* @__PURE__ */ new Set([
28875
28906
  "describe",
28876
28907
  "run-sequence",
28877
28908
  // A wait is almost always followed by a look at the screen it waited for.
28878
- "await-ui-element"
28909
+ "await-ui-element",
28910
+ "file-panel",
28911
+ "menu-bar"
28879
28912
  ]);
28880
28913
  var AUTO_SCREENSHOT_DELAY_MS_BY_TOOL = {
28881
28914
  "launch-app": 3e3,
@@ -28923,15 +28956,18 @@ var AUTO_DESCRIBE_TOOLS = /* @__PURE__ */ new Set([
28923
28956
  "restart-app",
28924
28957
  "open-url",
28925
28958
  "run-sequence",
28926
- "await-ui-element"
28959
+ "await-ui-element",
28960
+ "file-panel",
28961
+ "menu-bar"
28927
28962
  ]);
28928
28963
  function autoDescribeEnabled(options) {
28929
28964
  return !isFlagEnabled("disable-auto-describe", options);
28930
28965
  }
28931
28966
  var PROFILING_CAPTURE_SKIPPED_NOTE = "Auto-screenshot and element tree skipped while a profiler is recording on this device. Call screenshot or describe if you need to see the screen.";
28932
28967
  var AUTO_DESCRIBE_HEADER = "--- Elements after action (describe) ---";
28933
- function shouldAutoDescribe(toolName) {
28934
- return AUTO_DESCRIBE_TOOLS.has(normalizeToolName(toolName));
28968
+ function shouldAutoDescribe(toolName, args) {
28969
+ const canonical = normalizeToolName(toolName);
28970
+ return AUTO_DESCRIBE_TOOLS.has(canonical) && !isListCall(canonical, args);
28935
28971
  }
28936
28972
  var SECRET_PLACEHOLDER_MARKER = "{{secret:";
28937
28973
  function containsSecretPlaceholder(args) {
@@ -28951,9 +28987,12 @@ function normalizeToolName(name) {
28951
28987
  const idx = name.lastIndexOf("__");
28952
28988
  return idx === -1 ? name : name.slice(idx + 2);
28953
28989
  }
28954
- function shouldAutoScreenshot(toolName) {
28990
+ function shouldAutoScreenshot(toolName, args) {
28955
28991
  const canonical = normalizeToolName(toolName);
28956
- return canonical !== "screenshot" && AUTO_SCREENSHOT_TOOLS.has(canonical);
28992
+ return canonical !== "screenshot" && AUTO_SCREENSHOT_TOOLS.has(canonical) && !isListCall(canonical, args);
28993
+ }
28994
+ function isListCall(canonical, args) {
28995
+ return (canonical === "menu-bar" || canonical === "file-panel") && args?.action === "list";
28957
28996
  }
28958
28997
  function getAutoScreenshotDelayMs(toolName) {
28959
28998
  const canonical = normalizeToolName(toolName);
@@ -29368,7 +29407,7 @@ async function startMcpServer(options) {
29368
29407
  const t1 = Date.now();
29369
29408
  try {
29370
29409
  const d = await callTool("describe", { udid }, { signal });
29371
- const desc = d.result?.description;
29410
+ const { description: desc, hint } = d.result ?? {};
29372
29411
  await spyLog({
29373
29412
  ts: (/* @__PURE__ */ new Date()).toISOString(),
29374
29413
  event: "auto_describe",
@@ -29377,8 +29416,10 @@ async function startMcpServer(options) {
29377
29416
  chars: typeof desc === "string" ? desc.length : 0
29378
29417
  });
29379
29418
  if (typeof desc !== "string" || desc.length === 0) return [];
29419
+ const hintLine = typeof hint === "string" && hint && !desc.includes(hint) ? `Hint: ${hint}
29420
+ ` : "";
29380
29421
  return [{ type: "text", text: `${AUTO_DESCRIBE_HEADER}
29381
- ${desc}` }];
29422
+ ${hintLine}${desc}` }];
29382
29423
  } catch (e) {
29383
29424
  await spyLog({
29384
29425
  ts: (/* @__PURE__ */ new Date()).toISOString(),
@@ -29448,8 +29489,8 @@ ${desc}` }];
29448
29489
  content = await toMcpContent(result, outputHint, ctx, params.arguments);
29449
29490
  }
29450
29491
  const udid = getUdidFromArgs(params.arguments);
29451
- const wantScreenshot = autoScreenshotOn && shouldAutoScreenshot(params.name);
29452
- const wantTree = autoDescribeOn && shouldAutoDescribe(params.name);
29492
+ const wantScreenshot = autoScreenshotOn && shouldAutoScreenshot(params.name, params.arguments);
29493
+ const wantTree = autoDescribeOn && shouldAutoDescribe(params.name, params.arguments);
29453
29494
  if (udid && (wantScreenshot || wantTree) && containsSecretPlaceholder(params.arguments)) {
29454
29495
  content = [
29455
29496
  ...content,