react-native-mcp-kit 4.1.0 → 4.2.1

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 (308) hide show
  1. package/README.md +6 -6
  2. package/dist/babel/testIdPlugin/collectHooks.d.ts +13 -0
  3. package/dist/babel/testIdPlugin/collectHooks.d.ts.map +1 -0
  4. package/dist/babel/testIdPlugin/collectHooks.js +112 -0
  5. package/dist/babel/testIdPlugin/collectHooks.js.map +1 -0
  6. package/dist/babel/testIdPlugin/constants.d.ts +6 -0
  7. package/dist/babel/testIdPlugin/constants.d.ts.map +1 -0
  8. package/dist/babel/testIdPlugin/constants.js +49 -0
  9. package/dist/babel/testIdPlugin/constants.js.map +1 -0
  10. package/dist/babel/testIdPlugin/helpers.d.ts +7 -0
  11. package/dist/babel/testIdPlugin/helpers.d.ts.map +1 -0
  12. package/dist/babel/testIdPlugin/helpers.js +77 -0
  13. package/dist/babel/testIdPlugin/helpers.js.map +1 -0
  14. package/dist/babel/testIdPlugin/hocUnwrap.d.ts +4 -0
  15. package/dist/babel/testIdPlugin/hocUnwrap.d.ts.map +1 -0
  16. package/dist/babel/testIdPlugin/hocUnwrap.js +94 -0
  17. package/dist/babel/testIdPlugin/hocUnwrap.js.map +1 -0
  18. package/dist/babel/{testIdPlugin.d.ts → testIdPlugin/index.d.ts} +1 -1
  19. package/dist/babel/testIdPlugin/index.d.ts.map +1 -0
  20. package/dist/babel/testIdPlugin/index.js +205 -0
  21. package/dist/babel/testIdPlugin/index.js.map +1 -0
  22. package/dist/babel/testIdPlugin/inject.d.ts +7 -0
  23. package/dist/babel/testIdPlugin/inject.d.ts.map +1 -0
  24. package/dist/babel/testIdPlugin/inject.js +86 -0
  25. package/dist/babel/testIdPlugin/inject.js.map +1 -0
  26. package/dist/babel/testIdPlugin/types.d.ts +59 -0
  27. package/dist/babel/testIdPlugin/types.d.ts.map +1 -0
  28. package/dist/babel/testIdPlugin/types.js +3 -0
  29. package/dist/babel/testIdPlugin/types.js.map +1 -0
  30. package/dist/bin/ios-hid +0 -0
  31. package/dist/index.d.ts +1 -1
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/index.js +2 -1
  34. package/dist/index.js.map +1 -1
  35. package/dist/modules/alert/alert.d.ts.map +1 -1
  36. package/dist/modules/alert/alert.js +18 -3
  37. package/dist/modules/alert/alert.js.map +1 -1
  38. package/dist/modules/console/console.d.ts.map +1 -1
  39. package/dist/modules/console/console.js +38 -12
  40. package/dist/modules/console/console.js.map +1 -1
  41. package/dist/modules/console/types.d.ts +1 -1
  42. package/dist/modules/console/types.d.ts.map +1 -1
  43. package/dist/modules/device/device.d.ts.map +1 -1
  44. package/dist/modules/device/device.js +17 -4
  45. package/dist/modules/device/device.js.map +1 -1
  46. package/dist/modules/errors/errors.d.ts.map +1 -1
  47. package/dist/modules/errors/errors.js +3 -1
  48. package/dist/modules/errors/errors.js.map +1 -1
  49. package/dist/modules/fiberTree/fiberTree.d.ts.map +1 -1
  50. package/dist/modules/fiberTree/fiberTree.js +44 -7
  51. package/dist/modules/fiberTree/fiberTree.js.map +1 -1
  52. package/dist/modules/fiberTree/finder.d.ts +2 -0
  53. package/dist/modules/fiberTree/finder.d.ts.map +1 -1
  54. package/dist/modules/fiberTree/finder.js +3 -1
  55. package/dist/modules/fiberTree/finder.js.map +1 -1
  56. package/dist/modules/fiberTree/hooks/extract.d.ts +6 -0
  57. package/dist/modules/fiberTree/hooks/extract.d.ts.map +1 -0
  58. package/dist/modules/fiberTree/hooks/extract.js +187 -0
  59. package/dist/modules/fiberTree/hooks/extract.js.map +1 -0
  60. package/dist/modules/fiberTree/hooks/flatten.d.ts +4 -0
  61. package/dist/modules/fiberTree/hooks/flatten.d.ts.map +1 -0
  62. package/dist/modules/fiberTree/hooks/flatten.js +81 -0
  63. package/dist/modules/fiberTree/hooks/flatten.js.map +1 -0
  64. package/dist/modules/fiberTree/hooks/index.d.ts +5 -0
  65. package/dist/modules/fiberTree/hooks/index.d.ts.map +1 -0
  66. package/dist/modules/fiberTree/hooks/index.js +10 -0
  67. package/dist/modules/fiberTree/hooks/index.js.map +1 -0
  68. package/dist/modules/fiberTree/hooks/options.d.ts +9 -0
  69. package/dist/modules/fiberTree/hooks/options.d.ts.map +1 -0
  70. package/dist/modules/fiberTree/hooks/options.js +27 -0
  71. package/dist/modules/fiberTree/hooks/options.js.map +1 -0
  72. package/dist/modules/fiberTree/hooks/patterns.d.ts +2 -0
  73. package/dist/modules/fiberTree/hooks/patterns.d.ts.map +1 -0
  74. package/dist/modules/fiberTree/hooks/patterns.js +26 -0
  75. package/dist/modules/fiberTree/hooks/patterns.js.map +1 -0
  76. package/dist/modules/fiberTree/hooks/shape.d.ts +3 -0
  77. package/dist/modules/fiberTree/hooks/shape.d.ts.map +1 -0
  78. package/dist/modules/fiberTree/hooks/shape.js +66 -0
  79. package/dist/modules/fiberTree/hooks/shape.js.map +1 -0
  80. package/dist/modules/fiberTree/hooks/slotCount.d.ts +2 -0
  81. package/dist/modules/fiberTree/hooks/slotCount.d.ts.map +1 -0
  82. package/dist/modules/fiberTree/hooks/slotCount.js +93 -0
  83. package/dist/modules/fiberTree/hooks/slotCount.js.map +1 -0
  84. package/dist/modules/fiberTree/{hooks.d.ts → hooks/types.d.ts} +18 -34
  85. package/dist/modules/fiberTree/hooks/types.d.ts.map +1 -0
  86. package/dist/modules/fiberTree/hooks/types.js +3 -0
  87. package/dist/modules/fiberTree/hooks/types.js.map +1 -0
  88. package/dist/modules/fiberTree/hooks/value.d.ts +2 -0
  89. package/dist/modules/fiberTree/hooks/value.d.ts.map +1 -0
  90. package/dist/modules/fiberTree/hooks/value.js +89 -0
  91. package/dist/modules/fiberTree/hooks/value.js.map +1 -0
  92. package/dist/modules/fiberTree/utils/constants.d.ts +8 -0
  93. package/dist/modules/fiberTree/utils/constants.d.ts.map +1 -0
  94. package/dist/modules/fiberTree/utils/constants.js +15 -0
  95. package/dist/modules/fiberTree/utils/constants.js.map +1 -0
  96. package/dist/modules/fiberTree/utils/index.d.ts +9 -0
  97. package/dist/modules/fiberTree/utils/index.d.ts.map +1 -0
  98. package/dist/modules/fiberTree/utils/index.js +34 -0
  99. package/dist/modules/fiberTree/utils/index.js.map +1 -0
  100. package/dist/modules/fiberTree/utils/match.d.ts +4 -0
  101. package/dist/modules/fiberTree/utils/match.d.ts.map +1 -0
  102. package/dist/modules/fiberTree/utils/match.js +169 -0
  103. package/dist/modules/fiberTree/utils/match.js.map +1 -0
  104. package/dist/modules/fiberTree/utils/naming.d.ts +4 -0
  105. package/dist/modules/fiberTree/utils/naming.d.ts.map +1 -0
  106. package/dist/modules/fiberTree/utils/naming.js +52 -0
  107. package/dist/modules/fiberTree/utils/naming.js.map +1 -0
  108. package/dist/modules/fiberTree/utils/native.d.ts +5 -0
  109. package/dist/modules/fiberTree/utils/native.d.ts.map +1 -0
  110. package/dist/modules/fiberTree/utils/native.js +101 -0
  111. package/dist/modules/fiberTree/utils/native.js.map +1 -0
  112. package/dist/modules/fiberTree/utils/projection.d.ts +9 -0
  113. package/dist/modules/fiberTree/utils/projection.d.ts.map +1 -0
  114. package/dist/modules/fiberTree/utils/projection.js +75 -0
  115. package/dist/modules/fiberTree/utils/projection.js.map +1 -0
  116. package/dist/modules/fiberTree/utils/root.d.ts +4 -0
  117. package/dist/modules/fiberTree/utils/root.d.ts.map +1 -0
  118. package/dist/modules/fiberTree/utils/root.js +30 -0
  119. package/dist/modules/fiberTree/utils/root.js.map +1 -0
  120. package/dist/modules/fiberTree/utils/screen.d.ts +10 -0
  121. package/dist/modules/fiberTree/utils/screen.d.ts.map +1 -0
  122. package/dist/modules/fiberTree/utils/screen.js +39 -0
  123. package/dist/modules/fiberTree/utils/screen.js.map +1 -0
  124. package/dist/modules/fiberTree/utils/serialize.d.ts +4 -0
  125. package/dist/modules/fiberTree/utils/serialize.d.ts.map +1 -0
  126. package/dist/modules/fiberTree/utils/serialize.js +102 -0
  127. package/dist/modules/fiberTree/utils/serialize.js.map +1 -0
  128. package/dist/modules/fiberTree/utils/traverse.d.ts +12 -0
  129. package/dist/modules/fiberTree/utils/traverse.d.ts.map +1 -0
  130. package/dist/modules/fiberTree/utils/traverse.js +107 -0
  131. package/dist/modules/fiberTree/utils/traverse.js.map +1 -0
  132. package/dist/modules/i18next/i18next.d.ts.map +1 -1
  133. package/dist/modules/i18next/i18next.js +27 -6
  134. package/dist/modules/i18next/i18next.js.map +1 -1
  135. package/dist/modules/logBox/logBox.d.ts.map +1 -1
  136. package/dist/modules/logBox/logBox.js +8 -4
  137. package/dist/modules/logBox/logBox.js.map +1 -1
  138. package/dist/modules/navigation/navigation.d.ts.map +1 -1
  139. package/dist/modules/navigation/navigation.js +19 -4
  140. package/dist/modules/navigation/navigation.js.map +1 -1
  141. package/dist/modules/network/network.js +1 -1
  142. package/dist/modules/network/network.js.map +1 -1
  143. package/dist/modules/reactQuery/reactQuery.d.ts.map +1 -1
  144. package/dist/modules/reactQuery/reactQuery.js +2 -1
  145. package/dist/modules/reactQuery/reactQuery.js.map +1 -1
  146. package/dist/modules/storage/storage.d.ts.map +1 -1
  147. package/dist/modules/storage/storage.js +23 -8
  148. package/dist/modules/storage/storage.js.map +1 -1
  149. package/dist/server/bridge.d.ts +2 -0
  150. package/dist/server/bridge.d.ts.map +1 -1
  151. package/dist/server/bridge.js +61 -5
  152. package/dist/server/bridge.js.map +1 -1
  153. package/dist/server/dispatch.d.ts +15 -0
  154. package/dist/server/dispatch.d.ts.map +1 -0
  155. package/dist/server/dispatch.js +121 -0
  156. package/dist/server/dispatch.js.map +1 -0
  157. package/dist/server/helpers.d.ts +97 -0
  158. package/dist/server/helpers.d.ts.map +1 -0
  159. package/dist/server/helpers.js +162 -0
  160. package/dist/server/helpers.js.map +1 -0
  161. package/dist/server/host/deviceResolver/byClient.d.ts +5 -0
  162. package/dist/server/host/deviceResolver/byClient.d.ts.map +1 -0
  163. package/dist/server/host/deviceResolver/byClient.js +171 -0
  164. package/dist/server/host/deviceResolver/byClient.js.map +1 -0
  165. package/dist/server/host/deviceResolver/byId.d.ts +5 -0
  166. package/dist/server/host/deviceResolver/byId.d.ts.map +1 -0
  167. package/dist/server/host/deviceResolver/byId.js +81 -0
  168. package/dist/server/host/deviceResolver/byId.js.map +1 -0
  169. package/dist/server/host/deviceResolver/enrich.d.ts +5 -0
  170. package/dist/server/host/deviceResolver/enrich.d.ts.map +1 -0
  171. package/dist/server/host/deviceResolver/enrich.js +123 -0
  172. package/dist/server/host/deviceResolver/enrich.js.map +1 -0
  173. package/dist/server/host/deviceResolver/index.d.ts +13 -0
  174. package/dist/server/host/deviceResolver/index.d.ts.map +1 -0
  175. package/dist/server/host/deviceResolver/index.js +65 -0
  176. package/dist/server/host/deviceResolver/index.js.map +1 -0
  177. package/dist/server/host/deviceResolver/list.d.ts +10 -0
  178. package/dist/server/host/deviceResolver/list.d.ts.map +1 -0
  179. package/dist/server/host/deviceResolver/list.js +119 -0
  180. package/dist/server/host/deviceResolver/list.js.map +1 -0
  181. package/dist/server/host/deviceResolver/scan.d.ts +4 -0
  182. package/dist/server/host/deviceResolver/scan.d.ts.map +1 -0
  183. package/dist/server/host/deviceResolver/scan.js +102 -0
  184. package/dist/server/host/deviceResolver/scan.js.map +1 -0
  185. package/dist/server/host/{deviceResolver.d.ts → deviceResolver/types.d.ts} +1 -16
  186. package/dist/server/host/deviceResolver/types.d.ts.map +1 -0
  187. package/dist/server/host/deviceResolver/types.js +3 -0
  188. package/dist/server/host/deviceResolver/types.js.map +1 -0
  189. package/dist/server/host/tools/capture.d.ts.map +1 -1
  190. package/dist/server/host/tools/capture.js +52 -22
  191. package/dist/server/host/tools/capture.js.map +1 -1
  192. package/dist/server/host/tools/devices.d.ts.map +1 -1
  193. package/dist/server/host/tools/devices.js +25 -4
  194. package/dist/server/host/tools/devices.js.map +1 -1
  195. package/dist/server/host/tools/input/android.d.ts +15 -0
  196. package/dist/server/host/tools/input/android.d.ts.map +1 -0
  197. package/dist/server/host/tools/input/android.js +88 -0
  198. package/dist/server/host/tools/input/android.js.map +1 -0
  199. package/dist/server/host/tools/input/constants.d.ts +14 -0
  200. package/dist/server/host/tools/input/constants.d.ts.map +1 -0
  201. package/dist/server/host/tools/input/constants.js +41 -0
  202. package/dist/server/host/tools/input/constants.js.map +1 -0
  203. package/dist/server/host/tools/input/drag.d.ts +4 -0
  204. package/dist/server/host/tools/input/drag.d.ts.map +1 -0
  205. package/dist/server/host/tools/input/drag.js +76 -0
  206. package/dist/server/host/tools/input/drag.js.map +1 -0
  207. package/dist/server/host/tools/input/index.d.ts +8 -0
  208. package/dist/server/host/tools/input/index.d.ts.map +1 -0
  209. package/dist/server/host/tools/input/index.js +18 -0
  210. package/dist/server/host/tools/input/index.js.map +1 -0
  211. package/dist/server/host/tools/input/longPress.d.ts +4 -0
  212. package/dist/server/host/tools/input/longPress.d.ts.map +1 -0
  213. package/dist/server/host/tools/input/longPress.js +49 -0
  214. package/dist/server/host/tools/input/longPress.js.map +1 -0
  215. package/dist/server/host/tools/input/pressKey.d.ts +4 -0
  216. package/dist/server/host/tools/input/pressKey.d.ts.map +1 -0
  217. package/dist/server/host/tools/input/pressKey.js +42 -0
  218. package/dist/server/host/tools/input/pressKey.js.map +1 -0
  219. package/dist/server/host/tools/input/swipe.d.ts +4 -0
  220. package/dist/server/host/tools/input/swipe.d.ts.map +1 -0
  221. package/dist/server/host/tools/input/swipe.js +71 -0
  222. package/dist/server/host/tools/input/swipe.js.map +1 -0
  223. package/dist/server/host/tools/input/tap.d.ts +4 -0
  224. package/dist/server/host/tools/input/tap.d.ts.map +1 -0
  225. package/dist/server/host/tools/input/tap.js +49 -0
  226. package/dist/server/host/tools/input/tap.js.map +1 -0
  227. package/dist/server/host/tools/input/typeText.d.ts +4 -0
  228. package/dist/server/host/tools/input/typeText.d.ts.map +1 -0
  229. package/dist/server/host/tools/input/typeText.js +52 -0
  230. package/dist/server/host/tools/input/typeText.js.map +1 -0
  231. package/dist/server/host/tools/input/typeTextBatch.d.ts +4 -0
  232. package/dist/server/host/tools/input/typeTextBatch.d.ts.map +1 -0
  233. package/dist/server/host/tools/input/typeTextBatch.js +106 -0
  234. package/dist/server/host/tools/input/typeTextBatch.js.map +1 -0
  235. package/dist/server/host/tools/tapFiber.d.ts.map +1 -1
  236. package/dist/server/host/tools/tapFiber.js +2 -0
  237. package/dist/server/host/tools/tapFiber.js.map +1 -1
  238. package/dist/server/instructions.d.ts +2 -0
  239. package/dist/server/instructions.d.ts.map +1 -0
  240. package/dist/server/instructions.js +74 -0
  241. package/dist/server/instructions.js.map +1 -0
  242. package/dist/server/mcpServer.d.ts +0 -12
  243. package/dist/server/mcpServer.d.ts.map +1 -1
  244. package/dist/server/mcpServer.js +26 -877
  245. package/dist/server/mcpServer.js.map +1 -1
  246. package/dist/server/metro/tools/events.d.ts.map +1 -1
  247. package/dist/server/metro/tools/events.js +1 -0
  248. package/dist/server/metro/tools/events.js.map +1 -1
  249. package/dist/server/metro/tools/openInEditor.d.ts.map +1 -1
  250. package/dist/server/metro/tools/openInEditor.js +4 -1
  251. package/dist/server/metro/tools/openInEditor.js.map +1 -1
  252. package/dist/server/metro/tools/symbolicate.d.ts.map +1 -1
  253. package/dist/server/metro/tools/symbolicate.js +41 -11
  254. package/dist/server/metro/tools/symbolicate.js.map +1 -1
  255. package/dist/server/predicate.d.ts +31 -0
  256. package/dist/server/predicate.d.ts.map +1 -0
  257. package/dist/server/predicate.js +104 -0
  258. package/dist/server/predicate.js.map +1 -0
  259. package/dist/server/tools/assert.d.ts +4 -0
  260. package/dist/server/tools/assert.d.ts.map +1 -0
  261. package/dist/server/tools/assert.js +79 -0
  262. package/dist/server/tools/assert.js.map +1 -0
  263. package/dist/server/tools/call.d.ts +4 -0
  264. package/dist/server/tools/call.d.ts.map +1 -0
  265. package/dist/server/tools/call.js +38 -0
  266. package/dist/server/tools/call.js.map +1 -0
  267. package/dist/server/tools/connectionStatus.d.ts +4 -0
  268. package/dist/server/tools/connectionStatus.d.ts.map +1 -0
  269. package/dist/server/tools/connectionStatus.js +41 -0
  270. package/dist/server/tools/connectionStatus.js.map +1 -0
  271. package/dist/server/tools/describeTool.d.ts +4 -0
  272. package/dist/server/tools/describeTool.d.ts.map +1 -0
  273. package/dist/server/tools/describeTool.js +130 -0
  274. package/dist/server/tools/describeTool.js.map +1 -0
  275. package/dist/server/tools/listTools.d.ts +4 -0
  276. package/dist/server/tools/listTools.d.ts.map +1 -0
  277. package/dist/server/tools/listTools.js +109 -0
  278. package/dist/server/tools/listTools.js.map +1 -0
  279. package/dist/server/tools/waitUntil.d.ts +4 -0
  280. package/dist/server/tools/waitUntil.d.ts.map +1 -0
  281. package/dist/server/tools/waitUntil.js +119 -0
  282. package/dist/server/tools/waitUntil.js.map +1 -0
  283. package/dist/shared/projection/projectValue.d.ts +12 -1
  284. package/dist/shared/projection/projectValue.d.ts.map +1 -1
  285. package/dist/shared/projection/projectValue.js +42 -12
  286. package/dist/shared/projection/projectValue.js.map +1 -1
  287. package/dist/shared/projection/resolvePath.d.ts +14 -2
  288. package/dist/shared/projection/resolvePath.d.ts.map +1 -1
  289. package/dist/shared/projection/resolvePath.js +25 -3
  290. package/dist/shared/projection/resolvePath.js.map +1 -1
  291. package/package.json +2 -2
  292. package/dist/babel/testIdPlugin.d.ts.map +0 -1
  293. package/dist/babel/testIdPlugin.js +0 -537
  294. package/dist/babel/testIdPlugin.js.map +0 -1
  295. package/dist/modules/fiberTree/hooks.d.ts.map +0 -1
  296. package/dist/modules/fiberTree/hooks.js +0 -532
  297. package/dist/modules/fiberTree/hooks.js.map +0 -1
  298. package/dist/modules/fiberTree/utils.d.ts +0 -39
  299. package/dist/modules/fiberTree/utils.d.ts.map +0 -1
  300. package/dist/modules/fiberTree/utils.js +0 -616
  301. package/dist/modules/fiberTree/utils.js.map +0 -1
  302. package/dist/server/host/deviceResolver.d.ts.map +0 -1
  303. package/dist/server/host/deviceResolver.js +0 -621
  304. package/dist/server/host/deviceResolver.js.map +0 -1
  305. package/dist/server/host/tools/input.d.ts +0 -10
  306. package/dist/server/host/tools/input.d.ts.map +0 -1
  307. package/dist/server/host/tools/input.js +0 -478
  308. package/dist/server/host/tools/input.js.map +0 -1
@@ -0,0 +1,205 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = testIdPlugin;
4
+ const collectHooks_1 = require("./collectHooks");
5
+ const constants_1 = require("./constants");
6
+ const helpers_1 = require("./helpers");
7
+ const hocUnwrap_1 = require("./hocUnwrap");
8
+ const inject_1 = require("./inject");
9
+ function testIdPlugin({ types: t }) {
10
+ return {
11
+ name: 'react-native-mcp-test-id',
12
+ visitor: {
13
+ // === Part 2: attach __mcp_hooks metadata. ===
14
+ // Two candidate shapes per function declaration:
15
+ // 1. Component — capitalized name + JSX in body (React component).
16
+ // 2. Custom hook — name matches /^use[A-Z]/ + body contains hook calls.
17
+ // The VariableDeclarator visitor below covers the
18
+ // `const Foo = (...) => {...}` / `const useX = (...) => {...}` forms,
19
+ // plus HOC-wrapped components: `const Foo = anyHoc((props) => <JSX />)`
20
+ // and nested chains thereof.
21
+ FunctionDeclaration(path, state) {
22
+ const id = path.node.id;
23
+ if (!id)
24
+ return;
25
+ const bodyPath = path.get('body');
26
+ const pluginState = state;
27
+ const opts = (state.opts ?? {});
28
+ const separator = opts.separator ?? ':';
29
+ const shortFile = (0, helpers_1.getShortFile)(state.filename);
30
+ // Component: capitalized name + (JSX in body OR hook calls in body).
31
+ // The hook-call branch covers components that legitimately return
32
+ // null / non-JSX values — portal-like, context-only, or
33
+ // imperative-handle wrappers. Under the Rules of Hooks, only
34
+ // components and custom hooks may call hooks, so a capitalized
35
+ // function that calls them is unambiguously a component.
36
+ if ((0, helpers_1.isCapitalized)(id.name) && ((0, helpers_1.bodyUsesJSX)(bodyPath) || (0, helpers_1.bodyCallsHook)(bodyPath, t))) {
37
+ const hooks = (0, collectHooks_1.collectHooksInBody)(bodyPath, t, shortFile, separator);
38
+ (0, inject_1.queueHooksAssignment)(pluginState, path, id.name, hooks);
39
+ return;
40
+ }
41
+ // Custom hook: name matches use[A-Z] + body calls at least one hook.
42
+ if ((0, helpers_1.isCustomHookName)(id.name) && (0, helpers_1.bodyCallsHook)(bodyPath, t)) {
43
+ const hooks = (0, collectHooks_1.collectHooksInBody)(bodyPath, t, shortFile, separator);
44
+ (0, inject_1.queueHooksAssignment)(pluginState, path, id.name, hooks);
45
+ }
46
+ },
47
+ // === Part 1: stamp data-mcp-id on capitalized JSX elements. ===
48
+ JSXOpeningElement(path, state) {
49
+ const opts = (state.opts ?? {});
50
+ const attrName = opts.attr ?? constants_1.DEFAULT_ATTR;
51
+ const separator = opts.separator ?? ':';
52
+ const exclude = opts.exclude ?? constants_1.DEFAULT_EXCLUDE;
53
+ const include = opts.include;
54
+ const nameNode = path.node.name;
55
+ let componentName;
56
+ if (t.isJSXIdentifier(nameNode)) {
57
+ componentName = nameNode.name;
58
+ }
59
+ else if (t.isJSXMemberExpression(nameNode)) {
60
+ componentName = `${nameNode.object.name}.${nameNode.property.name}`;
61
+ }
62
+ else {
63
+ return;
64
+ }
65
+ if (componentName[0] === componentName[0]?.toLowerCase())
66
+ return;
67
+ if (include && !include.includes(componentName))
68
+ return;
69
+ if (exclude.includes(componentName))
70
+ return;
71
+ const shortFile = (0, helpers_1.getShortFile)(state.filename);
72
+ const line = path.node.loc?.start.line ?? 0;
73
+ const generatedId = `${componentName}${separator}${shortFile}${separator}${line}`;
74
+ const existingAttr = path.node.attributes.find((attr) => {
75
+ return t.isJSXAttribute(attr) && t.isJSXIdentifier(attr.name, { name: attrName });
76
+ });
77
+ if (existingAttr && t.isJSXAttribute(existingAttr)) {
78
+ if (t.isStringLiteral(existingAttr.value)) {
79
+ const existing = existingAttr.value.value;
80
+ existingAttr.value = t.stringLiteral(`${existing}${separator}${shortFile}${separator}${line}`);
81
+ }
82
+ return;
83
+ }
84
+ path.node.attributes.push(t.jsxAttribute(t.jsxIdentifier(attrName), t.stringLiteral(generatedId)));
85
+ },
86
+ // === Part 3: drain deferred-injection queue at module end. ===
87
+ // Runs after all other plugins' visitors (in particular react-refresh's
88
+ // replaceWith on HOC-wrapped components) have finished mutating the
89
+ // tree. We dedupe by `outer` name to defend against multiple visitor
90
+ // passes queuing the same component twice, then push every queued
91
+ // statement onto the END of the Program body. End-of-body is the only
92
+ // placement that's safe across react-compiler + worklets + unistyles:
93
+ // earlier plugins can rewrite a `const Foo = ...` declaration into a
94
+ // hoisted `var Foo = ...` and slip extracted helpers (`_worklet_..._init_data`,
95
+ // memoization scaffolding) BEFORE Foo's source line, leaving an
96
+ // insertAfter-target-position holding a stale `undefined` binding.
97
+ Program: {
98
+ exit(programPath, state) {
99
+ const pluginState = state;
100
+ const queue = pluginState.pendingInjects;
101
+ if (!queue || queue.length === 0)
102
+ return;
103
+ const seen = new Set();
104
+ for (const entry of queue) {
105
+ if (seen.has(entry.outer))
106
+ continue;
107
+ seen.add(entry.outer);
108
+ if (entry.kind === 'assignment') {
109
+ programPath.pushContainer('body', (0, inject_1.buildAssignmentStmt)(entry.outer, entry.hooks, t));
110
+ }
111
+ else {
112
+ programPath.pushContainer('body', (0, inject_1.buildHooksGetterStmt)(entry.outer, entry.inner, t));
113
+ }
114
+ }
115
+ pluginState.pendingInjects = [];
116
+ },
117
+ },
118
+ VariableDeclarator(path, state) {
119
+ const id = path.node.id;
120
+ if (!t.isIdentifier(id))
121
+ return;
122
+ let initNode = path.node.init;
123
+ if (!initNode)
124
+ return;
125
+ const pluginState = state;
126
+ // Unwrap TypeScript casts: `as Foo`, `as const`, `<Foo>x` (legacy
127
+ // angle-bracket assertion), and `x satisfies Foo`. Without this,
128
+ // `const Wrapped = memo(arrow) as { ... }` fails our HOC unwrap
129
+ // because we'd see TSAsExpression instead of the inner CallExpression.
130
+ // Pattern in the wild: 21vek's PageFlashListWithBanner /
131
+ // ListProductRow / RangeFilter use `as` to attach generic call
132
+ // signatures + displayName onto memo'd components.
133
+ let initPathForUnwrap = path.get('init');
134
+ for (let i = 0; i < 4; i++) {
135
+ if (t.isTSAsExpression(initNode) ||
136
+ t.isTSTypeAssertion(initNode) ||
137
+ t.isTSSatisfiesExpression(initNode) ||
138
+ t.isTSNonNullExpression(initNode)) {
139
+ initPathForUnwrap = initPathForUnwrap.get('expression');
140
+ initNode = initPathForUnwrap.node;
141
+ continue;
142
+ }
143
+ break;
144
+ }
145
+ const init = initNode;
146
+ // Resolve the function body to inspect. Three shapes:
147
+ // const Foo = (props) => <JSX /> — direct arrow / fn
148
+ // const Foo = memo((props) => <JSX />) — single-HOC wrap
149
+ // const Foo = memo(forwardRef((p, r) => ...)) — nested HOC chain
150
+ // For HOC wrappers, attaching `Foo.__mcp_hooks = [...]` on the outer
151
+ // binding works because `memo()` / `forwardRef()` return plain JS
152
+ // objects that React stores in `fiber.type` — the runtime read path
153
+ // is identical to the bare-component case. The unwrap is name-
154
+ // agnostic (any Identifier or import-namespaced MemberExpression
155
+ // callee qualifies), so custom HOCs like `withAuth(...)` work too.
156
+ let bodyPath = null;
157
+ if (t.isArrowFunctionExpression(init) || t.isFunctionExpression(init)) {
158
+ bodyPath = initPathForUnwrap.get('body');
159
+ }
160
+ else if (t.isCallExpression(init)) {
161
+ bodyPath = (0, hocUnwrap_1.findInnerFunctionBodyPath)(initPathForUnwrap, t);
162
+ // Identifier-ref HOC case: `const Foo = memo(InnerFn)`. The inner
163
+ // arg is a name, not an inline function — so we can't statically
164
+ // collect hooks here. Instead, install a getter on `Foo` that
165
+ // forwards to `Inner.__mcp_hooks` at read time.
166
+ if (!bodyPath && (0, helpers_1.isCapitalized)(id.name)) {
167
+ const inner = (0, hocUnwrap_1.findInnerIdentifier)(initPathForUnwrap, t);
168
+ if (inner && inner.scope.getBinding(inner.node.name)) {
169
+ const stmt = path.getStatementParent();
170
+ if (stmt) {
171
+ (0, inject_1.queueHooksGetter)(pluginState, stmt, id.name, inner.node.name);
172
+ }
173
+ }
174
+ }
175
+ }
176
+ if (!bodyPath || !bodyPath.node)
177
+ return;
178
+ const opts = (state.opts ?? {});
179
+ const separator = opts.separator ?? ':';
180
+ const shortFile = (0, helpers_1.getShortFile)(state.filename);
181
+ // Component: capitalized + (JSX in body OR hook calls). Same
182
+ // rationale as FunctionDeclaration above — Rules of Hooks pin a
183
+ // capitalized hook-calling function to "component", so JSX is
184
+ // sufficient but not necessary (covers `return null` portals).
185
+ if ((0, helpers_1.isCapitalized)(id.name) && ((0, helpers_1.bodyUsesJSX)(bodyPath) || (0, helpers_1.bodyCallsHook)(bodyPath, t))) {
186
+ const hooks = (0, collectHooks_1.collectHooksInBody)(bodyPath, t, shortFile, separator);
187
+ const statement = path.getStatementParent();
188
+ if (!statement)
189
+ return;
190
+ (0, inject_1.queueHooksAssignment)(pluginState, statement, id.name, hooks);
191
+ return;
192
+ }
193
+ // Custom hook: use[A-Z] + body calls hooks.
194
+ if ((0, helpers_1.isCustomHookName)(id.name) && (0, helpers_1.bodyCallsHook)(bodyPath, t)) {
195
+ const hooks = (0, collectHooks_1.collectHooksInBody)(bodyPath, t, shortFile, separator);
196
+ const statement = path.getStatementParent();
197
+ if (!statement)
198
+ return;
199
+ (0, inject_1.queueHooksAssignment)(pluginState, statement, id.name, hooks);
200
+ }
201
+ },
202
+ },
203
+ };
204
+ }
205
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/babel/testIdPlugin/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { type NodePath, type types as BabelTypes } from '@babel/core';
2
+ import { type CollectedHook, type PluginPassWithQueue } from './types';
3
+ export declare const buildHooksGetterStmt: (outer: string, inner: string, t: typeof BabelTypes) => BabelTypes.TryStatement;
4
+ export declare const buildAssignmentStmt: (componentName: string, hooks: CollectedHook[], t: typeof BabelTypes) => BabelTypes.TryStatement;
5
+ export declare const queueHooksAssignment: (state: PluginPassWithQueue, statementPath: NodePath<BabelTypes.Node>, componentName: string, hooks: CollectedHook[]) => void;
6
+ export declare const queueHooksGetter: (state: PluginPassWithQueue, statementPath: NodePath<BabelTypes.Node>, outer: string, inner: string) => void;
7
+ //# sourceMappingURL=inject.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inject.d.ts","sourceRoot":"","sources":["../../../src/babel/testIdPlugin/inject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,KAAK,IAAI,UAAU,EAAE,MAAM,aAAa,CAAC;AAEtE,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,mBAAmB,EAAE,MAAM,SAAS,CAAC;AA4CvE,eAAO,MAAM,oBAAoB,UACxB,MAAM,SACN,MAAM,KACV,OAAO,UAAU,KACnB,UAAU,CAAC,YAmBb,CAAC;AAWF,eAAO,MAAM,mBAAmB,kBACf,MAAM,SACd,aAAa,EAAE,KACnB,OAAO,UAAU,KACnB,UAAU,CAAC,YAUb,CAAC;AASF,eAAO,MAAM,oBAAoB,UACxB,mBAAmB,iBACX,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,iBACzB,MAAM,SACd,aAAa,EAAE,KACrB,IAIF,CAAC;AAEF,eAAO,MAAM,gBAAgB,UACpB,mBAAmB,iBACX,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,SACjC,MAAM,SACN,MAAM,KACZ,IAGF,CAAC"}
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.queueHooksGetter = exports.queueHooksAssignment = exports.buildAssignmentStmt = exports.buildHooksGetterStmt = void 0;
4
+ const buildHooksArrayExpr = (hooks, t) => {
5
+ return t.arrayExpression(hooks.map((h) => {
6
+ const props = [
7
+ t.objectProperty(t.identifier('name'), t.stringLiteral(h.name)),
8
+ t.objectProperty(t.identifier('kind'), t.stringLiteral(h.kind)),
9
+ t.objectProperty(t.identifier('hook'), t.stringLiteral(h.hook)),
10
+ ];
11
+ if (h.mcpId) {
12
+ props.push(t.objectProperty(t.identifier('mcpId'), t.stringLiteral(h.mcpId)));
13
+ }
14
+ if (h.fnIdent) {
15
+ // fn: useAuth (runtime reads .__mcp_hooks off this identifier)
16
+ props.push(t.objectProperty(t.identifier('fn'), t.identifier(h.fnIdent)));
17
+ }
18
+ return t.objectExpression(props);
19
+ }));
20
+ };
21
+ // Build:
22
+ // try {
23
+ // Object.defineProperty(Outer, '__mcp_hooks', {
24
+ // configurable: true,
25
+ // get: () => Inner.__mcp_hooks,
26
+ // });
27
+ // } catch {}
28
+ // Used for the identifier-ref HOC case (`const Outer = memo(Inner)`) where
29
+ // we can't statically collect hooks from the wrapped function. The getter
30
+ // forwards to the inner binding's metadata at read time, sidestepping
31
+ // declaration order, hoisting, scope, and custom-HOC return shape.
32
+ //
33
+ // The try/catch is mandatory: the HOC's return value is statically unknown
34
+ // — it could be a primitive (number / string), `null`/`undefined`, or a
35
+ // frozen / sealed object. Any of those make `Object.defineProperty` throw
36
+ // `TypeError` in strict mode (which ES modules always are). A throw at
37
+ // module-init kills the bundle. Swallowing here is harmless: the worst
38
+ // outcome is metadata not being attached to that one binding, exactly as
39
+ // if the plugin had skipped it.
40
+ const buildHooksGetterStmt = (outer, inner, t) => {
41
+ const defineCall = t.expressionStatement(t.callExpression(t.memberExpression(t.identifier('Object'), t.identifier('defineProperty')), [
42
+ t.identifier(outer),
43
+ t.stringLiteral('__mcp_hooks'),
44
+ t.objectExpression([
45
+ t.objectProperty(t.identifier('configurable'), t.booleanLiteral(true)),
46
+ t.objectProperty(t.identifier('get'), t.arrowFunctionExpression([], t.memberExpression(t.identifier(inner), t.identifier('__mcp_hooks')))),
47
+ ]),
48
+ ]));
49
+ // Optional-catch-binding (ES2019): `catch {}` — supported by Hermes.
50
+ return t.tryStatement(t.blockStatement([defineCall]), t.catchClause(null, t.blockStatement([])));
51
+ };
52
+ exports.buildHooksGetterStmt = buildHooksGetterStmt;
53
+ // Build the `ComponentName.__mcp_hooks = [...]` statement, wrapped in a
54
+ // `try { ... } catch {}` so a stale binding can't crash module-init. We
55
+ // place these at the END of the program body — by the time they run, every
56
+ // `var X = ...` in the file has been initialized. Without that placement,
57
+ // react-compiler + react-native preset rewrite `const Foo = ...` to a
58
+ // hoisted `var Foo = ...` whose binding is `undefined` until its source-line
59
+ // is reached, and a worklets-extracted `var _worklet_..._init_data` slips
60
+ // between our queued insertAfter target and the rebuilt declaration —
61
+ // `Foo.__mcp_hooks = [...]` then runs against `undefined` and throws.
62
+ const buildAssignmentStmt = (componentName, hooks, t) => {
63
+ const assignment = t.expressionStatement(t.assignmentExpression('=', t.memberExpression(t.identifier(componentName), t.identifier('__mcp_hooks')), buildHooksArrayExpr(hooks, t)));
64
+ return t.tryStatement(t.blockStatement([assignment]), t.catchClause(null, t.blockStatement([])));
65
+ };
66
+ exports.buildAssignmentStmt = buildAssignmentStmt;
67
+ // Queue a `ComponentName.__mcp_hooks = [...]` insertion for `Program:exit`.
68
+ // Inserting during the main traversal is unsafe: react-refresh's babel
69
+ // plugin replaces HOC-wrapped function expressions via `replaceWith`, which
70
+ // re-traverses the rebuilt subtree and (in our experience) drops sibling
71
+ // statements we'd inserted via `insertAfter` on the original declarator.
72
+ // Deferring to `Program:exit` keeps our writes visible to the final output
73
+ // without interfering with replaceWith semantics.
74
+ const queueHooksAssignment = (state, statementPath, componentName, hooks) => {
75
+ if (hooks.length === 0)
76
+ return;
77
+ const queue = (state.pendingInjects ??= []);
78
+ queue.push({ hooks, kind: 'assignment', outer: componentName, statementPath });
79
+ };
80
+ exports.queueHooksAssignment = queueHooksAssignment;
81
+ const queueHooksGetter = (state, statementPath, outer, inner) => {
82
+ const queue = (state.pendingInjects ??= []);
83
+ queue.push({ inner, kind: 'getter', outer, statementPath });
84
+ };
85
+ exports.queueHooksGetter = queueHooksGetter;
86
+ //# sourceMappingURL=inject.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inject.js","sourceRoot":"","sources":["../../../src/babel/testIdPlugin/inject.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ import { type NodePath, type PluginPass, type types as BabelTypes } from '@babel/core';
2
+ /**
3
+ * Per-file plugin state with deferred-injection queue. Babel instantiates
4
+ * `PluginPass` per file, so this naturally scopes the queue to a single
5
+ * transformation. We collect all the metadata assignments during the main
6
+ * traversal, then flush them at `Program:exit` — that runs AFTER other
7
+ * plugins' replaceWith calls (e.g. react-refresh wrapping HOC chains in
8
+ * `_s(...)` signature calls), so our injected statements aren't dropped by
9
+ * babel's re-traversal of the rebuilt subtrees.
10
+ */
11
+ export type DeferredInsert = {
12
+ hooks: CollectedHook[];
13
+ kind: 'assignment';
14
+ outer: string;
15
+ statementPath: NodePath<BabelTypes.Node>;
16
+ } | {
17
+ inner: string;
18
+ kind: 'getter';
19
+ outer: string;
20
+ statementPath: NodePath<BabelTypes.Node>;
21
+ };
22
+ export interface PluginPassWithQueue extends PluginPass {
23
+ pendingInjects?: DeferredInsert[];
24
+ }
25
+ export interface PluginOptions {
26
+ /** Attribute name to use. Default: "data-mcp-id" */
27
+ attr?: string;
28
+ /** Components to skip. Default: common wrappers */
29
+ exclude?: string[];
30
+ /** Components to add id to. Default: all capitalized JSX elements */
31
+ include?: string[];
32
+ /** Separator between parts. Default: ":" */
33
+ separator?: string;
34
+ }
35
+ export interface CollectedHook {
36
+ /** Source-level hook function name (`useState`, `useAnimatedStyle`, etc.).
37
+ * Surfaced to the agent alongside `name` (the consuming binding) so it
38
+ * can tell e.g. `count (useState)` from `count (useReducer)` without
39
+ * inferring from `kind`. For React.useXxx member-call form we still
40
+ * record just the property name (`useState`). */
41
+ hook: string;
42
+ kind: string;
43
+ name: string;
44
+ /**
45
+ * For Custom-kind entries: the source identifier of the hook function being
46
+ * called. Runtime reads `identifierRef.__mcp_hooks` to recursively expand
47
+ * sub-hooks, keeping slot alignment exact even when custom hooks span
48
+ * multiple built-in slots. Built-in hooks (State/Memo/...) don't need this.
49
+ */
50
+ fnIdent?: string;
51
+ /**
52
+ * Call-site identity in the same shape as JSX `data-mcp-id`:
53
+ * `<name>:<shortFile>:<line>`. Lets an agent `Read(<file>, <line>)`
54
+ * straight from a hook entry without grepping for the variable name.
55
+ * Empty when source location isn't available (synthetic AST nodes).
56
+ */
57
+ mcpId?: string;
58
+ }
59
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/babel/testIdPlugin/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,UAAU,EAAE,KAAK,KAAK,IAAI,UAAU,EAAE,MAAM,aAAa,CAAC;AAEvF;;;;;;;;GAQG;AACH,MAAM,MAAM,cAAc,GACtB;IACE,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,IAAI,EAAE,YAAY,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;CAC1C,GACD;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;CAAE,CAAC;AAE/F,MAAM,WAAW,mBAAoB,SAAQ,UAAU;IACrD,cAAc,CAAC,EAAE,cAAc,EAAE,CAAC;CACnC;AAED,MAAM,WAAW,aAAa;IAC5B,oDAAoD;IACpD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mDAAmD;IACnD,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B;;;;qDAIiD;IACjD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/babel/testIdPlugin/types.ts"],"names":[],"mappings":""}
package/dist/bin/ios-hid CHANGED
Binary file
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export { McpClient, McpContext, McpProvider, useMcpModule, useMcpTool } from './client/index';
2
2
  export { type McpContextValue, type McpModule, type McpProviderProps, type ToolHandler, } from './client/index';
3
- export { alertModule, fiberTreeModule, consoleModule, deviceModule, errorsModule, i18nextModule, navigationModule, networkModule, reactQueryModule, storageModule, } from './modules/index';
3
+ export { alertModule, fiberTreeModule, consoleModule, deviceModule, errorsModule, i18nextModule, logBoxModule, navigationModule, networkModule, reactQueryModule, storageModule, } from './modules/index';
4
4
  export { type ClientMessage, type ModuleDescriptor, type ModuleToolDescriptor, type RegistrationMessage, type ServerMessage, type ToolRegisterMessage, type ToolRequest, type ToolResponse, type ToolUnregisterMessage, } from './shared/protocol';
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC9F,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,gBAAgB,EACrB,KAAK,WAAW,GACjB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,WAAW,EACX,eAAe,EACf,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAChB,aAAa,GACd,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACxB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,qBAAqB,GAC3B,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC9F,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,gBAAgB,EACrB,KAAK,WAAW,GACjB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,WAAW,EACX,eAAe,EACf,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAChB,aAAa,GACd,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACxB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,qBAAqB,GAC3B,MAAM,mBAAmB,CAAC"}
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.storageModule = exports.reactQueryModule = exports.networkModule = exports.navigationModule = exports.i18nextModule = exports.errorsModule = exports.deviceModule = exports.consoleModule = exports.fiberTreeModule = exports.alertModule = exports.useMcpTool = exports.useMcpModule = exports.McpProvider = exports.McpContext = exports.McpClient = void 0;
3
+ exports.storageModule = exports.reactQueryModule = exports.networkModule = exports.navigationModule = exports.logBoxModule = exports.i18nextModule = exports.errorsModule = exports.deviceModule = exports.consoleModule = exports.fiberTreeModule = exports.alertModule = exports.useMcpTool = exports.useMcpModule = exports.McpProvider = exports.McpContext = exports.McpClient = void 0;
4
4
  // Client (safe for React Native)
5
5
  var index_1 = require("./client/index");
6
6
  Object.defineProperty(exports, "McpClient", { enumerable: true, get: function () { return index_1.McpClient; } });
@@ -16,6 +16,7 @@ Object.defineProperty(exports, "consoleModule", { enumerable: true, get: functio
16
16
  Object.defineProperty(exports, "deviceModule", { enumerable: true, get: function () { return index_2.deviceModule; } });
17
17
  Object.defineProperty(exports, "errorsModule", { enumerable: true, get: function () { return index_2.errorsModule; } });
18
18
  Object.defineProperty(exports, "i18nextModule", { enumerable: true, get: function () { return index_2.i18nextModule; } });
19
+ Object.defineProperty(exports, "logBoxModule", { enumerable: true, get: function () { return index_2.logBoxModule; } });
19
20
  Object.defineProperty(exports, "navigationModule", { enumerable: true, get: function () { return index_2.navigationModule; } });
20
21
  Object.defineProperty(exports, "networkModule", { enumerable: true, get: function () { return index_2.networkModule; } });
21
22
  Object.defineProperty(exports, "reactQueryModule", { enumerable: true, get: function () { return index_2.reactQueryModule; } });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,iCAAiC;AACjC,wCAA8F;AAArF,kGAAA,SAAS,OAAA;AAAE,mGAAA,UAAU,OAAA;AAAE,oGAAA,WAAW,OAAA;AAAE,qGAAA,YAAY,OAAA;AAAE,mGAAA,UAAU,OAAA;AAQrE,kCAAkC;AAClC,yCAWyB;AAVvB,oGAAA,WAAW,OAAA;AACX,wGAAA,eAAe,OAAA;AACf,sGAAA,aAAa,OAAA;AACb,qGAAA,YAAY,OAAA;AACZ,qGAAA,YAAY,OAAA;AACZ,sGAAA,aAAa,OAAA;AACb,yGAAA,gBAAgB,OAAA;AAChB,sGAAA,aAAa,OAAA;AACb,yGAAA,gBAAgB,OAAA;AAChB,sGAAA,aAAa,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,iCAAiC;AACjC,wCAA8F;AAArF,kGAAA,SAAS,OAAA;AAAE,mGAAA,UAAU,OAAA;AAAE,oGAAA,WAAW,OAAA;AAAE,qGAAA,YAAY,OAAA;AAAE,mGAAA,UAAU,OAAA;AAQrE,kCAAkC;AAClC,yCAYyB;AAXvB,oGAAA,WAAW,OAAA;AACX,wGAAA,eAAe,OAAA;AACf,sGAAA,aAAa,OAAA;AACb,qGAAA,YAAY,OAAA;AACZ,qGAAA,YAAY,OAAA;AACZ,sGAAA,aAAa,OAAA;AACb,qGAAA,YAAY,OAAA;AACZ,yGAAA,gBAAgB,OAAA;AAChB,sGAAA,aAAa,OAAA;AACb,yGAAA,gBAAgB,OAAA;AAChB,sGAAA,aAAa,OAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"alert.d.ts","sourceRoot":"","sources":["../../../src/modules/alert/alert.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAYvD,eAAO,MAAM,WAAW,QAAO,SA6C9B,CAAC"}
1
+ {"version":3,"file":"alert.d.ts","sourceRoot":"","sources":["../../../src/modules/alert/alert.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAYvD,eAAO,MAAM,WAAW,QAAO,SA4D9B,CAAC"}
@@ -32,12 +32,27 @@ const alertModule = () => {
32
32
  },
33
33
  inputSchema: {
34
34
  buttons: {
35
- description: 'Buttons — string or { text, style? }. style: default|cancel|destructive.',
35
+ default: [{ text: 'OK' }],
36
+ description: 'Buttons — string or { text, style? }.',
36
37
  examples: [['OK'], ['Cancel', 'OK'], [{ style: 'destructive', text: 'Delete' }]],
38
+ items: {
39
+ oneOf: [
40
+ { type: 'string' },
41
+ {
42
+ properties: {
43
+ style: { enum: ['default', 'cancel', 'destructive'], type: 'string' },
44
+ text: { type: 'string' },
45
+ },
46
+ required: ['text'],
47
+ type: 'object',
48
+ },
49
+ ],
50
+ },
51
+ minItems: 1,
37
52
  type: 'array',
38
53
  },
39
- message: { description: 'Alert body.', type: 'string' },
40
- title: { description: 'Alert title.', type: 'string' },
54
+ message: { default: '', description: 'Alert body.', type: 'string' },
55
+ title: { default: 'Alert', description: 'Alert title.', type: 'string' },
41
56
  },
42
57
  timeout: ALERT_TIMEOUT,
43
58
  },
@@ -1 +1 @@
1
- {"version":3,"file":"alert.js","sourceRoot":"","sources":["../../../src/modules/alert/alert.ts"],"names":[],"mappings":";;;AACA,2CAAyC;AAEzC,MAAM,aAAa,GAAG,MAAM,CAAC;AAStB,MAAM,WAAW,GAAG,GAAc,EAAE;IACzC,OAAO;QACL,WAAW,EAAE,wEAAwE;QACrF,IAAI,EAAE,OAAO;QACb,KAAK,EAAE;YACL,IAAI,EAAE;gBACJ,WAAW,EAAE,kDAAkD;gBAC/D,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;oBAChB,MAAM,EAAE,KAAK,EAAE,GAAG,IAAA,YAAK,GAAE,CAAC;oBAC1B,MAAM,UAAU,GAAG,IAAI,CAAC,OAAkD,CAAC;oBAC3E,MAAM,OAAO,GAAkB,UAAU;wBACvC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;4BACnB,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;wBACjD,CAAC,CAAC;wBACJ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;oBAErB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;wBAC7B,KAAK,CAAC,KAAK,CACR,IAAI,CAAC,KAAgB,IAAI,OAAO,EAChC,IAAI,CAAC,OAAkB,IAAI,EAAE,EAC9B,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;4BACzB,OAAO;gCACL,OAAO,EAAE,GAAG,EAAE;oCACZ,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;gCACvC,CAAC;gCACD,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,SAAS;gCAC7B,IAAI,EAAE,GAAG,CAAC,IAAI;6BACf,CAAC;wBACJ,CAAC,CAAC,CACH,CAAC;oBACJ,CAAC,CAAC,CAAC;gBACL,CAAC;gBACD,WAAW,EAAE;oBACX,OAAO,EAAE;wBACP,WAAW,EAAE,0EAA0E;wBACvF,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;wBAChF,IAAI,EAAE,OAAO;qBACd;oBACD,OAAO,EAAE,EAAE,WAAW,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACvD,KAAK,EAAE,EAAE,WAAW,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE;iBACvD;gBACD,OAAO,EAAE,aAAa;aACvB;SACF;KACF,CAAC;AACJ,CAAC,CAAC;AA7CW,QAAA,WAAW,eA6CtB"}
1
+ {"version":3,"file":"alert.js","sourceRoot":"","sources":["../../../src/modules/alert/alert.ts"],"names":[],"mappings":";;;AACA,2CAAyC;AAEzC,MAAM,aAAa,GAAG,MAAM,CAAC;AAStB,MAAM,WAAW,GAAG,GAAc,EAAE;IACzC,OAAO;QACL,WAAW,EAAE,wEAAwE;QACrF,IAAI,EAAE,OAAO;QACb,KAAK,EAAE;YACL,IAAI,EAAE;gBACJ,WAAW,EAAE,kDAAkD;gBAC/D,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;oBAChB,MAAM,EAAE,KAAK,EAAE,GAAG,IAAA,YAAK,GAAE,CAAC;oBAC1B,MAAM,UAAU,GAAG,IAAI,CAAC,OAAkD,CAAC;oBAC3E,MAAM,OAAO,GAAkB,UAAU;wBACvC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;4BACnB,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;wBACjD,CAAC,CAAC;wBACJ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;oBAErB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;wBAC7B,KAAK,CAAC,KAAK,CACR,IAAI,CAAC,KAAgB,IAAI,OAAO,EAChC,IAAI,CAAC,OAAkB,IAAI,EAAE,EAC9B,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;4BACzB,OAAO;gCACL,OAAO,EAAE,GAAG,EAAE;oCACZ,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;gCACvC,CAAC;gCACD,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,SAAS;gCAC7B,IAAI,EAAE,GAAG,CAAC,IAAI;6BACf,CAAC;wBACJ,CAAC,CAAC,CACH,CAAC;oBACJ,CAAC,CAAC,CAAC;gBACL,CAAC;gBACD,WAAW,EAAE;oBACX,OAAO,EAAE;wBACP,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;wBACzB,WAAW,EAAE,uCAAuC;wBACpD,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;wBAChF,KAAK,EAAE;4BACL,KAAK,EAAE;gCACL,EAAE,IAAI,EAAE,QAAQ,EAAE;gCAClB;oCACE,UAAU,EAAE;wCACV,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,aAAa,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE;wCACrE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;qCACzB;oCACD,QAAQ,EAAE,CAAC,MAAM,CAAC;oCAClB,IAAI,EAAE,QAAQ;iCACf;6BACF;yBACF;wBACD,QAAQ,EAAE,CAAC;wBACX,IAAI,EAAE,OAAO;qBACd;oBACD,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACpE,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE;iBACzE;gBACD,OAAO,EAAE,aAAa;aACvB;SACF;KACF,CAAC;AACJ,CAAC,CAAC;AA5DW,QAAA,WAAW,eA4DtB"}
@@ -1 +1 @@
1
- {"version":3,"file":"console.d.ts","sourceRoot":"","sources":["../../../src/modules/console/console.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAQvD,OAAO,EAAE,KAAK,oBAAoB,EAAgC,MAAM,SAAS,CAAC;AAkFlF,eAAO,MAAM,aAAa,aAAc,oBAAoB,KAAG,SAuD9D,CAAC"}
1
+ {"version":3,"file":"console.d.ts","sourceRoot":"","sources":["../../../src/modules/console/console.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAQvD,OAAO,EAAE,KAAK,oBAAoB,EAAgC,MAAM,SAAS,CAAC;AAwGlF,eAAO,MAAM,aAAa,aAAc,oBAAoB,KAAG,SA0D9D,CAAC"}
@@ -2,9 +2,21 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.consoleModule = void 0;
4
4
  const projectValue_1 = require("../../shared/projection/projectValue");
5
- const ALL_LEVELS = ['debug', 'error', 'info', 'log', 'warn'];
5
+ const ALL_LEVELS = [
6
+ 'debug',
7
+ 'error',
8
+ 'group',
9
+ 'groupCollapsed',
10
+ 'groupEnd',
11
+ 'info',
12
+ 'log',
13
+ 'trace',
14
+ 'warn',
15
+ ];
6
16
  const DEFAULT_MAX_ENTRIES = 100;
7
- const DEFAULT_STACK_LEVELS = ['error', 'warn'];
17
+ // `trace` always carries a stack — that's the point of trace. Errors/warns
18
+ // get one too by default so noisy assertions are debuggable.
19
+ const DEFAULT_STACK_LEVELS = ['error', 'trace', 'warn'];
8
20
  // Default depth 3 — top level is array of entries, level 2 expands each
9
21
  // entry (id/level/timestamp inline, args/stack still markers), level 3
10
22
  // opens the args array (primitive args inline, nested objects → ${obj}
@@ -59,10 +71,21 @@ const installPatches = () => {
59
71
  patchesInstalled = true;
60
72
  for (const level of ALL_LEVELS) {
61
73
  const original = console[level];
62
- console[level] = (...args) => {
63
- addEntry(level, args);
64
- original.apply(console, args);
65
- };
74
+ // trace / group / groupCollapsed / groupEnd may be missing on the RN
75
+ // console (depends on RN version / debugger). Patch only when present;
76
+ // otherwise we install our own implementation that just records the
77
+ // call so the agent still sees the structure.
78
+ if (typeof original === 'function') {
79
+ console[level] = (...args) => {
80
+ addEntry(level, args);
81
+ original.apply(console, args);
82
+ };
83
+ }
84
+ else {
85
+ console[level] = (...args) => {
86
+ addEntry(level, args);
87
+ };
88
+ }
66
89
  }
67
90
  };
68
91
  installPatches();
@@ -95,14 +118,17 @@ const consoleModule = (options) => {
95
118
  stackLevels = new Set(options.stackTrace);
96
119
  }
97
120
  return {
98
- description: `Ring buffer of console.log/warn/error/info/debug.
121
+ description: `Ring buffer of console.{log,warn,error,info,debug,trace,group,groupCollapsed,groupEnd}.
99
122
 
100
123
  Each entry carries a monotonic numeric \`id\`. Args are stored raw; the
101
124
  shared projection runs at query time. Stack traces captured per level
102
- (default error+warn). Listing tools accept path / depth / maxBytes
103
- (default depth ${CONSOLE_DEFAULT_DEPTH}). Capture starts at module-import time so cold-start
104
- logs are not lost. Buffer size and captured levels are configurable via
105
- consoleModule options.`,
125
+ (default error+warn+trace). \`trace\` always carries a stack; \`group\` /
126
+ \`groupCollapsed\` / \`groupEnd\` are recorded structurally so the agent
127
+ sees nesting context (RN console may not surface these natively they
128
+ still land in the buffer). Listing tools accept path / depth / maxBytes
129
+ (default depth ${CONSOLE_DEFAULT_DEPTH}). Capture starts at module-import time
130
+ so cold-start logs are not lost. Buffer size and captured levels are
131
+ configurable via consoleModule options.`,
106
132
  name: 'console',
107
133
  tools: {
108
134
  clear_logs: {
@@ -123,7 +149,7 @@ consoleModule options.`,
123
149
  ...PROJECTION_SCHEMA,
124
150
  level: {
125
151
  description: 'Filter by level. Omit for all levels.',
126
- examples: ['log', 'warn', 'error', 'info', 'debug'],
152
+ enum: ALL_LEVELS,
127
153
  type: 'string',
128
154
  },
129
155
  },
@@ -1 +1 @@
1
- {"version":3,"file":"console.js","sourceRoot":"","sources":["../../../src/modules/console/console.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"console.js","sourceRoot":"","sources":["../../../src/modules/console/console.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export type LogLevel = 'debug' | 'error' | 'info' | 'log' | 'warn';
1
+ export type LogLevel = 'debug' | 'error' | 'group' | 'groupCollapsed' | 'groupEnd' | 'info' | 'log' | 'trace' | 'warn';
2
2
  export interface LogEntry {
3
3
  args: unknown[];
4
4
  id: number;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/modules/console/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;AAEnE,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,QAAQ,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,GAAG,QAAQ,EAAE,CAAC;CACnC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/modules/console/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAChB,OAAO,GACP,OAAO,GACP,OAAO,GACP,gBAAgB,GAChB,UAAU,GACV,MAAM,GACN,KAAK,GACL,OAAO,GACP,MAAM,CAAC;AAEX,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,QAAQ,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,GAAG,QAAQ,EAAE,CAAC;CACnC"}