react-native-mcp-kit 4.1.0 → 4.2.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.
Files changed (85) hide show
  1. package/README.md +6 -6
  2. package/dist/babel/testIdPlugin.d.ts.map +1 -1
  3. package/dist/babel/testIdPlugin.js +60 -12
  4. package/dist/babel/testIdPlugin.js.map +1 -1
  5. package/dist/bin/ios-hid +0 -0
  6. package/dist/modules/alert/alert.d.ts.map +1 -1
  7. package/dist/modules/alert/alert.js +18 -3
  8. package/dist/modules/alert/alert.js.map +1 -1
  9. package/dist/modules/console/console.d.ts.map +1 -1
  10. package/dist/modules/console/console.js +38 -12
  11. package/dist/modules/console/console.js.map +1 -1
  12. package/dist/modules/console/types.d.ts +1 -1
  13. package/dist/modules/console/types.d.ts.map +1 -1
  14. package/dist/modules/device/device.d.ts.map +1 -1
  15. package/dist/modules/device/device.js +17 -4
  16. package/dist/modules/device/device.js.map +1 -1
  17. package/dist/modules/errors/errors.d.ts.map +1 -1
  18. package/dist/modules/errors/errors.js +3 -1
  19. package/dist/modules/errors/errors.js.map +1 -1
  20. package/dist/modules/fiberTree/fiberTree.d.ts.map +1 -1
  21. package/dist/modules/fiberTree/fiberTree.js +44 -7
  22. package/dist/modules/fiberTree/fiberTree.js.map +1 -1
  23. package/dist/modules/fiberTree/finder.d.ts +2 -0
  24. package/dist/modules/fiberTree/finder.d.ts.map +1 -1
  25. package/dist/modules/fiberTree/finder.js +3 -1
  26. package/dist/modules/fiberTree/finder.js.map +1 -1
  27. package/dist/modules/fiberTree/hooks.d.ts +17 -0
  28. package/dist/modules/fiberTree/hooks.d.ts.map +1 -1
  29. package/dist/modules/fiberTree/hooks.js +22 -4
  30. package/dist/modules/fiberTree/hooks.js.map +1 -1
  31. package/dist/modules/fiberTree/utils.d.ts.map +1 -1
  32. package/dist/modules/fiberTree/utils.js +29 -4
  33. package/dist/modules/fiberTree/utils.js.map +1 -1
  34. package/dist/modules/i18next/i18next.d.ts.map +1 -1
  35. package/dist/modules/i18next/i18next.js +27 -6
  36. package/dist/modules/i18next/i18next.js.map +1 -1
  37. package/dist/modules/logBox/logBox.d.ts.map +1 -1
  38. package/dist/modules/logBox/logBox.js +8 -4
  39. package/dist/modules/logBox/logBox.js.map +1 -1
  40. package/dist/modules/navigation/navigation.d.ts.map +1 -1
  41. package/dist/modules/navigation/navigation.js +19 -4
  42. package/dist/modules/navigation/navigation.js.map +1 -1
  43. package/dist/modules/network/network.js +1 -1
  44. package/dist/modules/network/network.js.map +1 -1
  45. package/dist/modules/reactQuery/reactQuery.d.ts.map +1 -1
  46. package/dist/modules/reactQuery/reactQuery.js +2 -1
  47. package/dist/modules/reactQuery/reactQuery.js.map +1 -1
  48. package/dist/modules/storage/storage.d.ts.map +1 -1
  49. package/dist/modules/storage/storage.js +23 -8
  50. package/dist/modules/storage/storage.js.map +1 -1
  51. package/dist/server/bridge.d.ts +2 -0
  52. package/dist/server/bridge.d.ts.map +1 -1
  53. package/dist/server/bridge.js +61 -5
  54. package/dist/server/bridge.js.map +1 -1
  55. package/dist/server/host/tools/capture.d.ts.map +1 -1
  56. package/dist/server/host/tools/capture.js +52 -22
  57. package/dist/server/host/tools/capture.js.map +1 -1
  58. package/dist/server/host/tools/devices.d.ts.map +1 -1
  59. package/dist/server/host/tools/devices.js +25 -4
  60. package/dist/server/host/tools/devices.js.map +1 -1
  61. package/dist/server/host/tools/input.d.ts.map +1 -1
  62. package/dist/server/host/tools/input.js +45 -20
  63. package/dist/server/host/tools/input.js.map +1 -1
  64. package/dist/server/host/tools/tapFiber.d.ts.map +1 -1
  65. package/dist/server/host/tools/tapFiber.js +2 -0
  66. package/dist/server/host/tools/tapFiber.js.map +1 -1
  67. package/dist/server/mcpServer.js +4 -4
  68. package/dist/server/metro/tools/events.d.ts.map +1 -1
  69. package/dist/server/metro/tools/events.js +1 -0
  70. package/dist/server/metro/tools/events.js.map +1 -1
  71. package/dist/server/metro/tools/openInEditor.d.ts.map +1 -1
  72. package/dist/server/metro/tools/openInEditor.js +4 -1
  73. package/dist/server/metro/tools/openInEditor.js.map +1 -1
  74. package/dist/server/metro/tools/symbolicate.d.ts.map +1 -1
  75. package/dist/server/metro/tools/symbolicate.js +41 -11
  76. package/dist/server/metro/tools/symbolicate.js.map +1 -1
  77. package/dist/shared/projection/projectValue.d.ts +12 -1
  78. package/dist/shared/projection/projectValue.d.ts.map +1 -1
  79. package/dist/shared/projection/projectValue.js +42 -12
  80. package/dist/shared/projection/projectValue.js.map +1 -1
  81. package/dist/shared/projection/resolvePath.d.ts +14 -2
  82. package/dist/shared/projection/resolvePath.d.ts.map +1 -1
  83. package/dist/shared/projection/resolvePath.js +25 -3
  84. package/dist/shared/projection/resolvePath.js.map +1 -1
  85. package/package.json +1 -1
@@ -5,10 +5,19 @@ const node_crypto_1 = require("node:crypto");
5
5
  const ws_1 = require("ws");
6
6
  const protocol_1 = require("../shared/protocol");
7
7
  const REQUEST_TIMEOUT = 10_000;
8
+ // When a client's WebSocket drops, we keep its ID slot reserved for this long
9
+ // so a reconnect from the same `(deviceId, bundleId, platform)` triple lands
10
+ // back on the same id (e.g. `ios-1`). 10 minutes covers the long tail —
11
+ // Metro fast-refresh bounces, app backgrounded during a coffee break,
12
+ // Xcode rebuild + relaunch, brief network blips, longer pauses while the
13
+ // agent thinks. Stale entries are still cheap (just a ClientEntry copy
14
+ // holding a dead socket reference), so a longer window costs little.
15
+ const RECONNECT_GRACE_MS = 10 * 60_000;
8
16
  class Bridge {
9
17
  port;
10
18
  wss = null;
11
19
  clients = new Map();
20
+ disconnectedClients = new Map();
12
21
  socketToClientId = new WeakMap();
13
22
  platformSequences = new Map();
14
23
  pendingRequests = new Map();
@@ -37,10 +46,24 @@ class Bridge {
37
46
  });
38
47
  ws.on('close', () => {
39
48
  const clientId = this.socketToClientId.get(ws);
40
- if (clientId) {
41
- this.clients.delete(clientId);
42
- this.socketToClientId.delete(ws);
43
- this.rejectPendingForClient(clientId, `Client '${clientId}' disconnected`);
49
+ if (!clientId)
50
+ return;
51
+ const entry = this.clients.get(clientId);
52
+ this.clients.delete(clientId);
53
+ this.socketToClientId.delete(ws);
54
+ this.rejectPendingForClient(clientId, `Client '${clientId}' disconnected`);
55
+ if (entry) {
56
+ // Reserve the ID for a reconnect from the same identity. While the
57
+ // ghost lives, the client is invisible to `listClients` /
58
+ // `getClient` (so tools fail with "not connected"), but a
59
+ // re-registering app matching this entry's `(platform, deviceId,
60
+ // bundleId)` will pick the slot back up.
61
+ const timer = setTimeout(() => {
62
+ this.disconnectedClients.delete(clientId);
63
+ }, RECONNECT_GRACE_MS);
64
+ // Don't keep the event loop alive solely for ghost expiry.
65
+ timer.unref?.();
66
+ this.disconnectedClients.set(clientId, { entry, timer });
44
67
  }
45
68
  });
46
69
  });
@@ -51,6 +74,10 @@ class Bridge {
51
74
  }
52
75
  async stop() {
53
76
  this.rejectAllPending('Server stopping');
77
+ for (const ghost of this.disconnectedClients.values()) {
78
+ clearTimeout(ghost.timer);
79
+ }
80
+ this.disconnectedClients.clear();
54
81
  return new Promise((resolve) => {
55
82
  if (this.wss) {
56
83
  this.wss.close(() => {
@@ -151,7 +178,20 @@ class Bridge {
151
178
  }
152
179
  break;
153
180
  }
154
- const id = this.nextClientId(message.platform);
181
+ // If a recently-disconnected client matches this registration's
182
+ // identity triple, reuse its ID instead of allocating a fresh one —
183
+ // keeps `ios-1` stable across Fast Refresh reloads / WS blips.
184
+ const stickyId = this.findGhostMatch(message);
185
+ let id;
186
+ if (stickyId) {
187
+ const ghost = this.disconnectedClients.get(stickyId);
188
+ clearTimeout(ghost.timer);
189
+ this.disconnectedClients.delete(stickyId);
190
+ id = stickyId;
191
+ }
192
+ else {
193
+ id = this.nextClientId(message.platform);
194
+ }
155
195
  const entry = {
156
196
  appName: message.appName,
157
197
  appVersion: message.appVersion,
@@ -220,6 +260,22 @@ class Bridge {
220
260
  this.platformSequences.set(prefix, next);
221
261
  return `${prefix}-${next}`;
222
262
  }
263
+ // Look for a ghost ClientEntry whose identity triple (platform, deviceId,
264
+ // bundleId) matches this incoming registration. All three must be present
265
+ // and identical — partial matches are too risky (two apps on the same
266
+ // device, two devices of the same model with no deviceId set, …).
267
+ findGhostMatch(message) {
268
+ if (!message.deviceId || !message.bundleId || !message.platform)
269
+ return null;
270
+ for (const [id, ghost] of this.disconnectedClients) {
271
+ if (ghost.entry.platform === message.platform &&
272
+ ghost.entry.deviceId === message.deviceId &&
273
+ ghost.entry.bundleId === message.bundleId) {
274
+ return id;
275
+ }
276
+ }
277
+ return null;
278
+ }
223
279
  rejectPendingForClient(clientId, reason) {
224
280
  for (const [id, pending] of this.pendingRequests) {
225
281
  if (pending.clientId === clientId) {
@@ -1 +1 @@
1
- {"version":3,"file":"bridge.js","sourceRoot":"","sources":["../../src/server/bridge.ts"],"names":[],"mappings":";;;AAAA,6CAAyC;AAEzC,2BAAqC;AAGrC,gDAU2B;AAE3B,MAAM,eAAe,GAAG,MAAM,CAAC;AAiC/B,MAAa,MAAM;IAOY;IANrB,GAAG,GAA2B,IAAI,CAAC;IACnC,OAAO,GAAG,IAAI,GAAG,EAAuB,CAAC;IACzC,gBAAgB,GAAG,IAAI,OAAO,EAAqB,CAAC;IACpD,iBAAiB,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC9C,eAAe,GAAG,IAAI,GAAG,EAA0B,CAAC;IAE5D,YAA6B,IAAY;QAAZ,SAAI,GAAJ,IAAI,CAAQ;IAAG,CAAC;IAE7C,KAAK,CAAC,KAAK;QACT,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,IAAI,CAAC,GAAG,GAAG,IAAI,oBAAe,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YAEpD,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,EAAE,EAAE,EAAE;gBAC/B,qEAAqE;gBACrE,uEAAuE;gBACvE,MAAM,KAAK,GAAuB;oBAChC,eAAe,EAAE,2BAAgB;oBACjC,IAAI,EAAE,cAAc;iBACrB,CAAC;gBACF,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;gBAE/B,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE;oBACxB,IAAI,CAAC;wBACH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAkB,CAAC;wBAC1D,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;oBAClC,CAAC;oBAAC,MAAM,CAAC;wBACP,4BAA4B;oBAC9B,CAAC;gBACH,CAAC,CAAC,CAAC;gBAEH,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;oBAClB,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAC/C,IAAI,QAAQ,EAAE,CAAC;wBACb,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;wBAC9B,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;wBACjC,IAAI,CAAC,sBAAsB,CAAC,QAAQ,EAAE,WAAW,QAAQ,gBAAgB,CAAC,CAAC;oBAC7E,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE;gBAC5B,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;QACzC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE;oBAClB,OAAO,EAAE,CAAC;gBACZ,CAAC,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAAI,CACR,QAAgB,EAChB,MAAc,EACd,MAAc,EACd,IAA6B,EAC7B,OAAgB;QAEhB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,WAAW,QAAQ,iBAAiB,CAAC,CAAC;QACxD,CAAC;QAED,MAAM,EAAE,GAAG,IAAA,wBAAU,GAAE,CAAC;QACxB,MAAM,OAAO,GAAgB;YAC3B,IAAI;YACJ,EAAE;YACF,MAAM;YACN,MAAM;YACN,IAAI,EAAE,cAAc;SACrB,CAAC;QAEF,MAAM,SAAS,GAAG,OAAO,IAAI,eAAe,CAAC;QAE7C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC5B,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAChC,MAAM,CAAC,IAAI,KAAK,CAAC,WAAW,QAAQ,IAAI,MAAM,IAAI,MAAM,oBAAoB,SAAS,IAAI,CAAC,CAAC,CAAC;YAC9F,CAAC,EAAE,SAAS,CAAC,CAAC;YAEd,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;YACnE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;IACL,CAAC;IAED,oBAAoB;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED,WAAW;QACT,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACpC,CAAC;IAED,SAAS,CAAC,EAAU;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED,aAAa,CAAC,UAAmB;QAC/B,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC5C,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC;gBAClE,OAAO;oBACL,KAAK,EAAE,WAAW,UAAU,+BAA+B,SAAS,EAAE;oBACtE,EAAE,EAAE,KAAK;iBACV,CAAC;YACJ,CAAC;YACD,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;QAC9B,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,EAAE,KAAK,EAAE,mCAAmC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;QACnE,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAC5B,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACvC,OAAO,EAAE,MAAM,EAAE,MAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;QACvC,CAAC;QAED,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;aACtC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACT,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACjD,CAAC,CAAC;aACD,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,OAAO;YACL,KAAK,EAAE,+BAA+B,MAAM,qBAAqB;YACjE,EAAE,EAAE,KAAK;SACV,CAAC;IACJ,CAAC;IAEO,aAAa,CAAC,MAAiB,EAAE,OAAsB;QAC7D,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;YACrB,KAAK,cAAc,CAAC,CAAC,CAAC;gBACpB,MAAM,aAAa,GACjB,OAAO,OAAO,CAAC,eAAe,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC;gBACpF,IAAI,aAAa,KAAK,2BAAgB,EAAE,CAAC;oBACvC,MAAM,MAAM,GACV,aAAa,KAAK,SAAS;wBACzB,CAAC,CAAC,gGAAgG,2BAAgB,GAAG;wBACrH,CAAC,CAAC,oBAAoB,aAAa,2BAA2B,2BAAgB,iDAAiD,CAAC;oBACpI,MAAM,MAAM,GAA2B;wBACrC,aAAa;wBACb,MAAM;wBACN,aAAa,EAAE,2BAAgB;wBAC/B,IAAI,EAAE,kBAAkB;qBACzB,CAAC;oBACF,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;oBACpC,MAAM,CAAC,KAAK,CAAC,qCAA0B,EAAE,MAAM,CAAC,CAAC;oBACjD,MAAM;gBACR,CAAC;gBAED,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBACrD,IAAI,UAAU,EAAE,CAAC;oBACf,oEAAoE;oBACpE,iEAAiE;oBACjE,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;oBAC9C,IAAI,QAAQ,EAAE,CAAC;wBACb,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;oBACrC,CAAC;oBACD,MAAM;gBACR,CAAC;gBAED,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAC/C,MAAM,KAAK,GAAgB;oBACzB,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,UAAU,EAAE,OAAO,CAAC,UAAU;oBAC9B,QAAQ,EAAE,OAAO,CAAC,QAAQ;oBAC1B,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE;oBACvB,SAAS,EAAE,OAAO,CAAC,SAAS;oBAC5B,QAAQ,EAAE,OAAO,CAAC,QAAQ;oBAC1B,YAAY,EAAE,IAAI,GAAG,EAAE;oBACvB,EAAE;oBACF,WAAW,EAAE,OAAO,CAAC,WAAW;oBAChC,KAAK,EAAE,OAAO,CAAC,KAAK;oBACpB,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,QAAQ,EAAE,OAAO,CAAC,QAAQ;oBAC1B,MAAM;iBACP,CAAC;gBACF,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;gBAC5B,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;gBACtC,MAAM;YACR,CAAC;YACD,KAAK,eAAe,CAAC,CAAC,CAAC;gBACrB,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACrD,IAAI,OAAO,EAAE,CAAC;oBACZ,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;oBAC5B,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;oBACxC,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;wBAClB,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;oBAC3C,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;oBAClC,CAAC;gBACH,CAAC;gBACD,MAAM;YACR,CAAC;YACD,KAAK,eAAe,CAAC,CAAC,CAAC;gBACrB,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;gBAC5C,IAAI,MAAM,EAAE,CAAC;oBACX,MAAM,QAAQ,GAAG,GAAG,OAAO,CAAC,MAAM,GAAG,2BAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;oBAC5E,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE;wBAChC,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,WAAW;wBACrC,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,WAAW;wBACrC,MAAM,EAAE,OAAO,CAAC,MAAM;qBACvB,CAAC,CAAC;gBACL,CAAC;gBACD,MAAM;YACR,CAAC;YACD,KAAK,iBAAiB,CAAC,CAAC,CAAC;gBACvB,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;gBAC5C,IAAI,MAAM,EAAE,CAAC;oBACX,MAAM,QAAQ,GAAG,GAAG,OAAO,CAAC,MAAM,GAAG,2BAAgB,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;oBAC3E,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACvC,CAAC;gBACD,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IAEO,eAAe,CAAC,MAAiB;QACvC,MAAM,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC7C,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC;IAEO,YAAY,CAAC,QAAiB;QACpC,MAAM,MAAM,GAAG,QAAQ,IAAI,QAAQ,CAAC;QACpC,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAC3D,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACzC,OAAO,GAAG,MAAM,IAAI,IAAI,EAAE,CAAC;IAC7B,CAAC;IAEO,sBAAsB,CAAC,QAAgB,EAAE,MAAc;QAC7D,KAAK,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACjD,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBAClC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBAC5B,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;gBAClC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;IACH,CAAC;IAEO,gBAAgB,CAAC,MAAc;QACrC,KAAK,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACjD,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC5B,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;YAClC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;CACF;AAnQD,wBAmQC"}
1
+ {"version":3,"file":"bridge.js","sourceRoot":"","sources":["../../src/server/bridge.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"capture.d.ts","sourceRoot":"","sources":["../../../../src/server/host/tools/capture.ts"],"names":[],"mappings":"AAUA,OAAO,EAAwB,KAAK,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACvF,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D,QAAA,MAAM,qBAAqB,QAAS,CAAC;AAoRrC,eAAO,MAAM,cAAc,WAAY,aAAa,KAAG,eA4CtD,CAAC;AAEF,OAAO,EAAE,qBAAqB,EAAE,CAAC"}
1
+ {"version":3,"file":"capture.d.ts","sourceRoot":"","sources":["../../../../src/server/host/tools/capture.ts"],"names":[],"mappings":"AAUA,OAAO,EAAwB,KAAK,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACvF,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D,QAAA,MAAM,qBAAqB,QAAS,CAAC;AA6SrC,eAAO,MAAM,cAAc,WAAY,aAAa,KAAG,eAuDtD,CAAC;AAEF,OAAO,EAAE,qBAAqB,EAAE,CAAC"}
@@ -87,15 +87,16 @@ const resizeScreenshot = async (input, targetWidth, region) => {
87
87
  const hashBuffer = (buf) => {
88
88
  return (0, node_crypto_1.createHash)('sha256').update(buf).digest('hex');
89
89
  };
90
- // Per-device cache for screenshot diff
91
- const lastScreenshotHash = new Map();
92
- const buildResponse = (resized) => {
93
- // `scale` = image-to-source ratio. When a region was cropped it's the
94
- // image/region ratio; otherwise it's image/full-screen. Agents use it for
95
- // pixel-back-to-device math.
90
+ // Per-device cache for screenshot diff. Holds the meta of the last actually
91
+ // returned response so the `unchanged: true` reply can tell the agent what
92
+ // the still-on-the-wire image looked like (size, region, hash) without
93
+ // re-shipping the bytes.
94
+ const lastScreenshot = new Map();
95
+ const buildMeta = (resized, hash) => {
96
96
  const sourceWidth = resized.region?.width ?? resized.originalWidth;
97
- const meta = {
97
+ return {
98
98
  bytes: resized.buffer.length,
99
+ hash,
99
100
  height: resized.height,
100
101
  originalHeight: resized.originalHeight,
101
102
  originalWidth: resized.originalWidth,
@@ -103,6 +104,12 @@ const buildResponse = (resized) => {
103
104
  scale: sourceWidth ? Number((resized.width / sourceWidth).toFixed(3)) : undefined,
104
105
  width: resized.width,
105
106
  };
107
+ };
108
+ const buildResponse = (resized, hash) => {
109
+ // `scale` = image-to-source ratio. When a region was cropped it's the
110
+ // image/region ratio; otherwise it's image/full-screen. Agents use it for
111
+ // pixel-back-to-device math.
112
+ const meta = buildMeta(resized, hash);
106
113
  return [
107
114
  {
108
115
  data: resized.buffer.toString('base64'),
@@ -115,6 +122,13 @@ const buildResponse = (resized) => {
115
122
  },
116
123
  ];
117
124
  };
125
+ const unchangedResponse = (lastMeta) => {
126
+ return {
127
+ lastMeta,
128
+ message: 'Screenshot unchanged since last capture.',
129
+ unchanged: true,
130
+ };
131
+ };
118
132
  const captureIos = async (udid, runner, width, region) => {
119
133
  const tmpPath = (0, node_path_1.join)((0, node_os_1.tmpdir)(), `rnmcp-ios-${(0, node_crypto_1.randomUUID)()}.png`);
120
134
  try {
@@ -132,11 +146,13 @@ const captureIos = async (udid, runner, width, region) => {
132
146
  const raw = await (0, promises_1.readFile)(tmpPath);
133
147
  const resized = await resizeScreenshot(raw, width, region);
134
148
  const hash = hashBuffer(resized.buffer);
135
- if (lastScreenshotHash.get(udid) === hash) {
136
- return { message: 'Screenshot unchanged since last capture.', unchanged: true };
149
+ const last = lastScreenshot.get(udid);
150
+ if (last && last.hash === hash) {
151
+ return unchangedResponse(last);
137
152
  }
138
- lastScreenshotHash.set(udid, hash);
139
- return buildResponse(resized);
153
+ const meta = buildMeta(resized, hash);
154
+ lastScreenshot.set(udid, meta);
155
+ return buildResponse(resized, hash);
140
156
  }
141
157
  catch (err) {
142
158
  if (err instanceof processRunner_1.ProcessNotFoundError) {
@@ -162,11 +178,13 @@ const captureIosRealDevice = async (coreDeviceIdentifier, width, region) => {
162
178
  });
163
179
  const resized = await resizeScreenshot(raw, width, region);
164
180
  const hash = hashBuffer(resized.buffer);
165
- if (lastScreenshotHash.get(coreDeviceIdentifier) === hash) {
166
- return { message: 'Screenshot unchanged since last capture.', unchanged: true };
181
+ const last = lastScreenshot.get(coreDeviceIdentifier);
182
+ if (last && last.hash === hash) {
183
+ return unchangedResponse(last);
167
184
  }
168
- lastScreenshotHash.set(coreDeviceIdentifier, hash);
169
- return buildResponse(resized);
185
+ const meta = buildMeta(resized, hash);
186
+ lastScreenshot.set(coreDeviceIdentifier, meta);
187
+ return buildResponse(resized, hash);
170
188
  }
171
189
  catch (err) {
172
190
  return {
@@ -192,11 +210,13 @@ const captureAndroid = async (serial, runner, width, region) => {
192
210
  }
193
211
  const resized = await resizeScreenshot(proc.stdout, width, region);
194
212
  const hash = hashBuffer(resized.buffer);
195
- if (lastScreenshotHash.get(serial) === hash) {
196
- return { message: 'Screenshot unchanged since last capture.', unchanged: true };
213
+ const last = lastScreenshot.get(serial);
214
+ if (last && last.hash === hash) {
215
+ return unchangedResponse(last);
197
216
  }
198
- lastScreenshotHash.set(serial, hash);
199
- return buildResponse(resized);
217
+ const meta = buildMeta(resized, hash);
218
+ lastScreenshot.set(serial, meta);
219
+ return buildResponse(resized, hash);
200
220
  }
201
221
  catch (err) {
202
222
  if (err instanceof processRunner_1.ProcessNotFoundError) {
@@ -211,12 +231,12 @@ const captureAndroid = async (serial, runner, width, region) => {
211
231
  };
212
232
  const screenshotTool = (runner) => {
213
233
  return {
214
- description: `WebP screenshot, resized to save vision tokens. Response is [image, metadata] where metadata is JSON with { width, height, originalWidth, originalHeight, scale, bytes, region? }.
234
+ description: `WebP screenshot, resized to save vision tokens. Response is [image, metadata] where metadata is JSON with { width, height, originalWidth, originalHeight, scale, bytes, hash, region? }.
215
235
 
216
236
  TOKEN BUDGETING
217
237
  • Vision tokens are driven by image area. Default width ${SCREENSHOT_DEFAULT_WIDTH} gives a readable full-screen view at ~300 tokens. Bump only to read small text.
218
238
  • Pass \`region: { x, y, width, height }\` (physical device pixels) to crop to a single element — typical tap-target shrinks to ~20-60 vision tokens. Grab the rect from fiber_tree__query bounds.
219
- • { unchanged: true } is returned when the resized bytes are identical to the previous capture — cheap polling.
239
+ \`{ unchanged: true, lastMeta }\` is returned when the resized bytes are identical to the previous capture — cheap polling. \`lastMeta\` is the meta of the previously-returned image (same shape, including \`hash\`) so you don't need to re-query.
220
240
 
221
241
  Use fiber_tree bounds for tap targeting; screenshots are for visual verification of what the UI looks like right now.`,
222
242
  handler: async (args, ctx) => {
@@ -242,10 +262,20 @@ Use fiber_tree bounds for tap targeting; screenshots are for visual verification
242
262
  region: {
243
263
  description: 'Crop rectangle in original device pixels (top-left origin). Out-of-bounds values are clipped. Typical use: pass fiber_tree bounds ({ x, y, width, height }) to snapshot just one component. Omitted = full screen.',
244
264
  examples: [{ height: 128, width: 900, x: 60, y: 200 }],
265
+ properties: {
266
+ height: { exclusiveMinimum: 0, type: 'number' },
267
+ width: { exclusiveMinimum: 0, type: 'number' },
268
+ x: { minimum: 0, type: 'number' },
269
+ y: { minimum: 0, type: 'number' },
270
+ },
271
+ required: ['x', 'y', 'width', 'height'],
245
272
  type: 'object',
246
273
  },
247
274
  width: {
248
- description: `Output width in image pixels (aspect ratio preserved, applied AFTER cropping). Default ${SCREENSHOT_DEFAULT_WIDTH}, clamped ${SCREENSHOT_MIN_WIDTH}..${SCREENSHOT_MAX_WIDTH}. Bump up only if you need to read small text.`,
275
+ default: SCREENSHOT_DEFAULT_WIDTH,
276
+ description: 'Output width in px (aspect preserved, applied AFTER cropping). Default reads normal UI at ~300 vision tokens; bump only to read small text.',
277
+ maximum: SCREENSHOT_MAX_WIDTH,
278
+ minimum: SCREENSHOT_MIN_WIDTH,
249
279
  type: 'number',
250
280
  },
251
281
  ...helpers_1.NATIVE_ID_SCHEMA,
@@ -1 +1 @@
1
- {"version":3,"file":"capture.js","sourceRoot":"","sources":["../../../../src/server/host/tools/capture.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"capture.js","sourceRoot":"","sources":["../../../../src/server/host/tools/capture.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"devices.d.ts","sourceRoot":"","sources":["../../../../src/server/host/tools/devices.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAI3D,eAAO,MAAM,eAAe,WAAY,aAAa,KAAG,eAUvD,CAAC"}
1
+ {"version":3,"file":"devices.d.ts","sourceRoot":"","sources":["../../../../src/server/host/tools/devices.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAmB3D,eAAO,MAAM,eAAe,WAAY,aAAa,KAAG,eAkBvD,CAAC"}
@@ -3,13 +3,34 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.listDevicesTool = void 0;
4
4
  const deviceResolver_1 = require("../../../server/host/deviceResolver");
5
5
  const capture_1 = require("./capture");
6
+ const filterConnected = (devices) => {
7
+ const onlyConnectedIos = (item) => {
8
+ return item.connected;
9
+ };
10
+ const onlyConnectedAndroid = (item) => {
11
+ return item.connected;
12
+ };
13
+ return {
14
+ android: Array.isArray(devices.android)
15
+ ? devices.android.filter(onlyConnectedAndroid)
16
+ : devices.android,
17
+ ios: Array.isArray(devices.ios) ? devices.ios.filter(onlyConnectedIos) : devices.ios,
18
+ };
19
+ };
6
20
  const listDevicesTool = (runner) => {
7
21
  return {
8
- description: 'Enumerate visible iOS simulators + Android devices. Connected clients are annotated with their clientId; connected devices are listed first in each platform group.',
9
- handler: async (_args, ctx) => {
10
- return (0, deviceResolver_1.enrichDevicesWithClientStatus)(ctx.bridge, runner);
22
+ description: 'Enumerate visible iOS simulators + Android devices. Connected clients are annotated with their clientId; connected devices are listed first in each platform group. Pass `connected: true` to filter to only devices with a live MCP client attached.',
23
+ handler: async (args, ctx) => {
24
+ const all = await (0, deviceResolver_1.enrichDevicesWithClientStatus)(ctx.bridge, runner);
25
+ return args.connected === true ? filterConnected(all) : all;
26
+ },
27
+ inputSchema: {
28
+ connected: {
29
+ default: false,
30
+ description: 'When true, drop devices without an attached MCP client. Error envelopes for each platform are preserved.',
31
+ type: 'boolean',
32
+ },
11
33
  },
12
- inputSchema: {},
13
34
  timeout: capture_1.SCREENSHOT_TIMEOUT_MS,
14
35
  };
15
36
  };
@@ -1 +1 @@
1
- {"version":3,"file":"devices.js","sourceRoot":"","sources":["../../../../src/server/host/tools/devices.ts"],"names":[],"mappings":";;;AAAA,iEAA6E;AAI7E,uCAAkD;AAE3C,MAAM,eAAe,GAAG,CAAC,MAAqB,EAAmB,EAAE;IACxE,OAAO;QACL,WAAW,EACT,qKAAqK;QACvK,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YAC5B,OAAO,IAAA,8CAA6B,EAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC3D,CAAC;QACD,WAAW,EAAE,EAAE;QACf,OAAO,EAAE,+BAAqB;KAC/B,CAAC;AACJ,CAAC,CAAC;AAVW,QAAA,eAAe,mBAU1B"}
1
+ {"version":3,"file":"devices.js","sourceRoot":"","sources":["../../../../src/server/host/tools/devices.ts"],"names":[],"mappings":";;;AAAA,iEAKsC;AAItC,uCAAkD;AAElD,MAAM,eAAe,GAAG,CAAC,OAA2B,EAAsB,EAAE;IAC1E,MAAM,gBAAgB,GAAG,CAAC,IAAoB,EAAW,EAAE;QACzD,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC,CAAC;IACF,MAAM,oBAAoB,GAAG,CAAC,IAA2B,EAAW,EAAE;QACpE,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC,CAAC;IACF,OAAO;QACL,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC;YACrC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,oBAAoB,CAAC;YAC9C,CAAC,CAAC,OAAO,CAAC,OAAO;QACnB,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG;KACrF,CAAC;AACJ,CAAC,CAAC;AAEK,MAAM,eAAe,GAAG,CAAC,MAAqB,EAAmB,EAAE;IACxE,OAAO;QACL,WAAW,EACT,uPAAuP;QACzP,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;YAC3B,MAAM,GAAG,GAAG,MAAM,IAAA,8CAA6B,EAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACpE,OAAO,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QAC9D,CAAC;QACD,WAAW,EAAE;YACX,SAAS,EAAE;gBACT,OAAO,EAAE,KAAK;gBACd,WAAW,EACT,0GAA0G;gBAC5G,IAAI,EAAE,SAAS;aAChB;SACF;QACD,OAAO,EAAE,+BAAqB;KAC/B,CAAC;AACJ,CAAC,CAAC;AAlBW,QAAA,eAAe,mBAkB1B"}
@@ -1 +1 @@
1
- {"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../../../src/server/host/tools/input.ts"],"names":[],"mappings":"AAUA,OAAO,EAAwB,KAAK,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACvF,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,qBAAqB,CAAC;AA6J3D,eAAO,MAAM,OAAO,WAAY,aAAa,KAAG,eAoC/C,CAAC;AAEF,eAAO,MAAM,SAAS,WAAY,aAAa,KAAG,eA2EjD,CAAC;AAEF,eAAO,MAAM,YAAY,WAAY,aAAa,KAAG,eA2CpD,CAAC;AASF,eAAO,MAAM,aAAa,WAAY,aAAa,KAAG,eAmDrD,CAAC;AAEF,eAAO,MAAM,QAAQ,WAAY,aAAa,KAAG,eA0EhD,CAAC;AASF,eAAO,MAAM,iBAAiB,WAAY,aAAa,KAAG,eA2FzD,CAAC;AAEF,eAAO,MAAM,YAAY,WAAY,aAAa,KAAG,eAgCpD,CAAC"}
1
+ {"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../../../src/server/host/tools/input.ts"],"names":[],"mappings":"AAUA,OAAO,EAAwB,KAAK,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACvF,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,qBAAqB,CAAC;AA6J3D,eAAO,MAAM,OAAO,WAAY,aAAa,KAAG,eAsC/C,CAAC;AAEF,eAAO,MAAM,SAAS,WAAY,aAAa,KAAG,eA0EjD,CAAC;AAEF,eAAO,MAAM,YAAY,WAAY,aAAa,KAAG,eA4CpD,CAAC;AASF,eAAO,MAAM,aAAa,WAAY,aAAa,KAAG,eAsDrD,CAAC;AAEF,eAAO,MAAM,QAAQ,WAAY,aAAa,KAAG,eAgFhD,CAAC;AASF,eAAO,MAAM,iBAAiB,WAAY,aAAa,KAAG,eAyGzD,CAAC;AAEF,eAAO,MAAM,YAAY,WAAY,aAAa,KAAG,eAgCpD,CAAC"}
@@ -138,10 +138,12 @@ const tapTool = (runner) => {
138
138
  platform: helpers_1.PLATFORM_ARG_SCHEMA,
139
139
  x: {
140
140
  description: 'Absolute x pixel coordinate (top-left origin).',
141
+ minimum: 0,
141
142
  type: 'number',
142
143
  },
143
144
  y: {
144
145
  description: 'Absolute y pixel coordinate (top-left origin).',
146
+ minimum: 0,
145
147
  type: 'number',
146
148
  },
147
149
  ...helpers_1.NATIVE_ID_SCHEMA,
@@ -187,26 +189,25 @@ const swipeTool = (runner) => {
187
189
  },
188
190
  inputSchema: {
189
191
  durationMs: {
190
- description: `Total swipe duration in milliseconds. Default ${SWIPE_DURATION_DEFAULT_MS}. Clamped to ${SWIPE_DURATION_MIN_MS}..${SWIPE_DURATION_MAX_MS}.`,
192
+ default: SWIPE_DURATION_DEFAULT_MS,
193
+ description: 'Total swipe duration in milliseconds.',
194
+ maximum: SWIPE_DURATION_MAX_MS,
195
+ minimum: SWIPE_DURATION_MIN_MS,
191
196
  type: 'number',
192
197
  },
193
198
  platform: helpers_1.PLATFORM_ARG_SCHEMA,
194
199
  x1: {
195
200
  description: 'Start x pixel coordinate (top-left origin).',
201
+ minimum: 0,
196
202
  type: 'number',
197
203
  },
198
- x2: {
199
- description: 'End x pixel coordinate (top-left origin).',
200
- type: 'number',
201
- },
204
+ x2: { description: 'End x pixel coordinate (top-left origin).', minimum: 0, type: 'number' },
202
205
  y1: {
203
206
  description: 'Start y pixel coordinate (top-left origin).',
207
+ minimum: 0,
204
208
  type: 'number',
205
209
  },
206
- y2: {
207
- description: 'End y pixel coordinate (top-left origin).',
208
- type: 'number',
209
- },
210
+ y2: { description: 'End y pixel coordinate (top-left origin).', minimum: 0, type: 'number' },
210
211
  ...helpers_1.NATIVE_ID_SCHEMA,
211
212
  },
212
213
  timeout: INPUT_TIMEOUT_MS + SWIPE_DURATION_MAX_MS,
@@ -242,7 +243,8 @@ const typeTextTool = (runner) => {
242
243
  inputSchema: {
243
244
  platform: helpers_1.PLATFORM_ARG_SCHEMA,
244
245
  submit: {
245
- description: 'Press ENTER after typing (e.g. to submit a search). Default false.',
246
+ default: false,
247
+ description: 'Press ENTER after typing (e.g. to submit a search).',
246
248
  type: 'boolean',
247
249
  },
248
250
  text: {
@@ -286,12 +288,15 @@ const longPressTool = (runner) => {
286
288
  },
287
289
  inputSchema: {
288
290
  durationMs: {
289
- description: `Hold duration in milliseconds. Default ${LONG_PRESS_DURATION_DEFAULT_MS}. Clamped to ${SWIPE_DURATION_MIN_MS}..${SWIPE_DURATION_MAX_MS}.`,
291
+ default: LONG_PRESS_DURATION_DEFAULT_MS,
292
+ description: 'Hold duration in milliseconds.',
293
+ maximum: SWIPE_DURATION_MAX_MS,
294
+ minimum: SWIPE_DURATION_MIN_MS,
290
295
  type: 'number',
291
296
  },
292
297
  platform: helpers_1.PLATFORM_ARG_SCHEMA,
293
- x: { description: 'Absolute x pixel coordinate.', type: 'number' },
294
- y: { description: 'Absolute y pixel coordinate.', type: 'number' },
298
+ x: { description: 'Absolute x pixel coordinate.', minimum: 0, type: 'number' },
299
+ y: { description: 'Absolute y pixel coordinate.', minimum: 0, type: 'number' },
295
300
  ...helpers_1.NATIVE_ID_SCHEMA,
296
301
  },
297
302
  timeout: INPUT_TIMEOUT_MS + SWIPE_DURATION_MAX_MS,
@@ -341,18 +346,24 @@ const dragTool = (runner) => {
341
346
  },
342
347
  inputSchema: {
343
348
  durationMs: {
344
- description: `Move portion in milliseconds. Default ${DRAG_MOVE_DEFAULT_MS}. Clamped to ${SWIPE_DURATION_MIN_MS}..${SWIPE_DURATION_MAX_MS}.`,
349
+ default: DRAG_MOVE_DEFAULT_MS,
350
+ description: 'Move portion in milliseconds.',
351
+ maximum: SWIPE_DURATION_MAX_MS,
352
+ minimum: SWIPE_DURATION_MIN_MS,
345
353
  type: 'number',
346
354
  },
347
355
  holdMs: {
348
- description: `Hold time near start before the motion. Default ${DRAG_HOLD_DEFAULT_MS}. 0 to skip hold.`,
356
+ default: DRAG_HOLD_DEFAULT_MS,
357
+ description: 'Hold time near start before the motion. 0 to skip hold.',
358
+ maximum: SWIPE_DURATION_MAX_MS,
359
+ minimum: 0,
349
360
  type: 'number',
350
361
  },
351
362
  platform: helpers_1.PLATFORM_ARG_SCHEMA,
352
- x1: { description: 'Start x pixel coordinate.', type: 'number' },
353
- x2: { description: 'End x pixel coordinate.', type: 'number' },
354
- y1: { description: 'Start y pixel coordinate.', type: 'number' },
355
- y2: { description: 'End y pixel coordinate.', type: 'number' },
363
+ x1: { description: 'Start x pixel coordinate.', minimum: 0, type: 'number' },
364
+ x2: { description: 'End x pixel coordinate.', minimum: 0, type: 'number' },
365
+ y1: { description: 'Start y pixel coordinate.', minimum: 0, type: 'number' },
366
+ y2: { description: 'End y pixel coordinate.', minimum: 0, type: 'number' },
356
367
  ...helpers_1.NATIVE_ID_SCHEMA,
357
368
  },
358
369
  timeout: INPUT_TIMEOUT_MS + SWIPE_DURATION_MAX_MS,
@@ -429,10 +440,24 @@ focusDelayMs default is ${BATCH_FOCUS_DELAY_DEFAULT_MS}ms — tuned for in-place
429
440
  { submit: true, text: 'pa55word', x: 120, y: 520 },
430
441
  ],
431
442
  ],
443
+ items: {
444
+ properties: {
445
+ submit: { default: false, type: 'boolean' },
446
+ text: { type: 'string' },
447
+ x: { minimum: 0, type: 'number' },
448
+ y: { minimum: 0, type: 'number' },
449
+ },
450
+ required: ['x', 'y', 'text'],
451
+ type: 'object',
452
+ },
453
+ minItems: 1,
432
454
  type: 'array',
433
455
  },
434
456
  focusDelayMs: {
435
- description: `Delay between tap and type. Default ${BATCH_FOCUS_DELAY_DEFAULT_MS}. Clamped 0..${BATCH_FOCUS_DELAY_MAX_MS}. Use 0 to skip when the input is already focused.`,
457
+ default: BATCH_FOCUS_DELAY_DEFAULT_MS,
458
+ description: 'Delay between tap and type. Use 0 to skip when the input is already focused.',
459
+ maximum: BATCH_FOCUS_DELAY_MAX_MS,
460
+ minimum: 0,
436
461
  type: 'number',
437
462
  },
438
463
  platform: helpers_1.PLATFORM_ARG_SCHEMA,