execbro 0.0.1-reserve → 1.10.13

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 (475) hide show
  1. package/LICENSE +32 -0
  2. package/README.md +496 -0
  3. package/build/__tests__/helpers/fake-cdp-server.d.ts +56 -0
  4. package/build/__tests__/helpers/fake-cdp-server.d.ts.map +1 -0
  5. package/build/__tests__/helpers/fake-cdp-server.js +120 -0
  6. package/build/__tests__/helpers/fake-cdp-server.js.map +1 -0
  7. package/build/__tests__/helpers/tap-test-helpers.d.ts +36 -0
  8. package/build/__tests__/helpers/tap-test-helpers.d.ts.map +1 -0
  9. package/build/__tests__/helpers/tap-test-helpers.js +130 -0
  10. package/build/__tests__/helpers/tap-test-helpers.js.map +1 -0
  11. package/build/__tests__/integration/auto-reconnect.test.d.ts +2 -0
  12. package/build/__tests__/integration/auto-reconnect.test.d.ts.map +1 -0
  13. package/build/__tests__/integration/auto-reconnect.test.js +118 -0
  14. package/build/__tests__/integration/auto-reconnect.test.js.map +1 -0
  15. package/build/__tests__/integration/connection-health.test.d.ts +2 -0
  16. package/build/__tests__/integration/connection-health.test.d.ts.map +1 -0
  17. package/build/__tests__/integration/connection-health.test.js +157 -0
  18. package/build/__tests__/integration/connection-health.test.js.map +1 -0
  19. package/build/__tests__/integration/execute-in-app.test.d.ts +2 -0
  20. package/build/__tests__/integration/execute-in-app.test.d.ts.map +1 -0
  21. package/build/__tests__/integration/execute-in-app.test.js +124 -0
  22. package/build/__tests__/integration/execute-in-app.test.js.map +1 -0
  23. package/build/__tests__/integration/per-call-timeout.test.d.ts +2 -0
  24. package/build/__tests__/integration/per-call-timeout.test.d.ts.map +1 -0
  25. package/build/__tests__/integration/per-call-timeout.test.js +103 -0
  26. package/build/__tests__/integration/per-call-timeout.test.js.map +1 -0
  27. package/build/__tests__/integration/tap-strategies.test.d.ts +2 -0
  28. package/build/__tests__/integration/tap-strategies.test.d.ts.map +1 -0
  29. package/build/__tests__/integration/tap-strategies.test.js +330 -0
  30. package/build/__tests__/integration/tap-strategies.test.js.map +1 -0
  31. package/build/__tests__/integration/tools.test.d.ts +2 -0
  32. package/build/__tests__/integration/tools.test.d.ts.map +1 -0
  33. package/build/__tests__/integration/tools.test.js +227 -0
  34. package/build/__tests__/integration/tools.test.js.map +1 -0
  35. package/build/__tests__/setup.d.ts +2 -0
  36. package/build/__tests__/setup.d.ts.map +1 -0
  37. package/build/__tests__/setup.js +15 -0
  38. package/build/__tests__/setup.js.map +1 -0
  39. package/build/__tests__/unit/androidEmulatorAvds.test.d.ts +2 -0
  40. package/build/__tests__/unit/androidEmulatorAvds.test.d.ts.map +1 -0
  41. package/build/__tests__/unit/androidEmulatorAvds.test.js +98 -0
  42. package/build/__tests__/unit/androidEmulatorAvds.test.js.map +1 -0
  43. package/build/__tests__/unit/buildToken.test.d.ts +2 -0
  44. package/build/__tests__/unit/buildToken.test.d.ts.map +1 -0
  45. package/build/__tests__/unit/buildToken.test.js +22 -0
  46. package/build/__tests__/unit/buildToken.test.js.map +1 -0
  47. package/build/__tests__/unit/bundle.test.d.ts +2 -0
  48. package/build/__tests__/unit/bundle.test.d.ts.map +1 -0
  49. package/build/__tests__/unit/bundle.test.js +53 -0
  50. package/build/__tests__/unit/bundle.test.js.map +1 -0
  51. package/build/__tests__/unit/burst.test.d.ts +2 -0
  52. package/build/__tests__/unit/burst.test.d.ts.map +1 -0
  53. package/build/__tests__/unit/burst.test.js +54 -0
  54. package/build/__tests__/unit/burst.test.js.map +1 -0
  55. package/build/__tests__/unit/connection-health.test.d.ts +2 -0
  56. package/build/__tests__/unit/connection-health.test.d.ts.map +1 -0
  57. package/build/__tests__/unit/connection-health.test.js +38 -0
  58. package/build/__tests__/unit/connection-health.test.js.map +1 -0
  59. package/build/__tests__/unit/debugGlobals.test.d.ts +2 -0
  60. package/build/__tests__/unit/debugGlobals.test.d.ts.map +1 -0
  61. package/build/__tests__/unit/debugGlobals.test.js +14 -0
  62. package/build/__tests__/unit/debugGlobals.test.js.map +1 -0
  63. package/build/__tests__/unit/deviceDiscovery.test.d.ts +2 -0
  64. package/build/__tests__/unit/deviceDiscovery.test.d.ts.map +1 -0
  65. package/build/__tests__/unit/deviceDiscovery.test.js +119 -0
  66. package/build/__tests__/unit/deviceDiscovery.test.js.map +1 -0
  67. package/build/__tests__/unit/deviceResolver.test.d.ts +2 -0
  68. package/build/__tests__/unit/deviceResolver.test.d.ts.map +1 -0
  69. package/build/__tests__/unit/deviceResolver.test.js +261 -0
  70. package/build/__tests__/unit/deviceResolver.test.js.map +1 -0
  71. package/build/__tests__/unit/escapeNonAscii.test.d.ts +2 -0
  72. package/build/__tests__/unit/escapeNonAscii.test.d.ts.map +1 -0
  73. package/build/__tests__/unit/escapeNonAscii.test.js +76 -0
  74. package/build/__tests__/unit/escapeNonAscii.test.js.map +1 -0
  75. package/build/__tests__/unit/exec.test.d.ts +2 -0
  76. package/build/__tests__/unit/exec.test.d.ts.map +1 -0
  77. package/build/__tests__/unit/exec.test.js +54 -0
  78. package/build/__tests__/unit/exec.test.js.map +1 -0
  79. package/build/__tests__/unit/executor.test.d.ts +2 -0
  80. package/build/__tests__/unit/executor.test.d.ts.map +1 -0
  81. package/build/__tests__/unit/executor.test.js +220 -0
  82. package/build/__tests__/unit/executor.test.js.map +1 -0
  83. package/build/__tests__/unit/failureArtifact.test.d.ts +2 -0
  84. package/build/__tests__/unit/failureArtifact.test.d.ts.map +1 -0
  85. package/build/__tests__/unit/failureArtifact.test.js +207 -0
  86. package/build/__tests__/unit/failureArtifact.test.js.map +1 -0
  87. package/build/__tests__/unit/fastRefreshRecorder.test.d.ts +2 -0
  88. package/build/__tests__/unit/fastRefreshRecorder.test.d.ts.map +1 -0
  89. package/build/__tests__/unit/fastRefreshRecorder.test.js +68 -0
  90. package/build/__tests__/unit/fastRefreshRecorder.test.js.map +1 -0
  91. package/build/__tests__/unit/fastRefreshTools.test.d.ts +2 -0
  92. package/build/__tests__/unit/fastRefreshTools.test.d.ts.map +1 -0
  93. package/build/__tests__/unit/fastRefreshTools.test.js +112 -0
  94. package/build/__tests__/unit/fastRefreshTools.test.js.map +1 -0
  95. package/build/__tests__/unit/fiberMatch.test.d.ts +2 -0
  96. package/build/__tests__/unit/fiberMatch.test.d.ts.map +1 -0
  97. package/build/__tests__/unit/fiberMatch.test.js +114 -0
  98. package/build/__tests__/unit/fiberMatch.test.js.map +1 -0
  99. package/build/__tests__/unit/fingerprint.test.d.ts +2 -0
  100. package/build/__tests__/unit/fingerprint.test.d.ts.map +1 -0
  101. package/build/__tests__/unit/fingerprint.test.js +99 -0
  102. package/build/__tests__/unit/fingerprint.test.js.map +1 -0
  103. package/build/__tests__/unit/focusedInput.test.d.ts +2 -0
  104. package/build/__tests__/unit/focusedInput.test.d.ts.map +1 -0
  105. package/build/__tests__/unit/focusedInput.test.js +58 -0
  106. package/build/__tests__/unit/focusedInput.test.js.map +1 -0
  107. package/build/__tests__/unit/focusedInputTools.test.d.ts +2 -0
  108. package/build/__tests__/unit/focusedInputTools.test.d.ts.map +1 -0
  109. package/build/__tests__/unit/focusedInputTools.test.js +79 -0
  110. package/build/__tests__/unit/focusedInputTools.test.js.map +1 -0
  111. package/build/__tests__/unit/iconSemantics.test.d.ts +2 -0
  112. package/build/__tests__/unit/iconSemantics.test.d.ts.map +1 -0
  113. package/build/__tests__/unit/iconSemantics.test.js +80 -0
  114. package/build/__tests__/unit/iconSemantics.test.js.map +1 -0
  115. package/build/__tests__/unit/imageBuffer.test.d.ts +2 -0
  116. package/build/__tests__/unit/imageBuffer.test.d.ts.map +1 -0
  117. package/build/__tests__/unit/imageBuffer.test.js +128 -0
  118. package/build/__tests__/unit/imageBuffer.test.js.map +1 -0
  119. package/build/__tests__/unit/logs.test.d.ts +2 -0
  120. package/build/__tests__/unit/logs.test.d.ts.map +1 -0
  121. package/build/__tests__/unit/logs.test.js +90 -0
  122. package/build/__tests__/unit/logs.test.js.map +1 -0
  123. package/build/__tests__/unit/measureComponent.test.d.ts +2 -0
  124. package/build/__tests__/unit/measureComponent.test.d.ts.map +1 -0
  125. package/build/__tests__/unit/measureComponent.test.js +66 -0
  126. package/build/__tests__/unit/measureComponent.test.js.map +1 -0
  127. package/build/__tests__/unit/measureComponentTools.test.d.ts +2 -0
  128. package/build/__tests__/unit/measureComponentTools.test.d.ts.map +1 -0
  129. package/build/__tests__/unit/measureComponentTools.test.js +94 -0
  130. package/build/__tests__/unit/measureComponentTools.test.js.map +1 -0
  131. package/build/__tests__/unit/metro.test.d.ts +2 -0
  132. package/build/__tests__/unit/metro.test.d.ts.map +1 -0
  133. package/build/__tests__/unit/metro.test.js +61 -0
  134. package/build/__tests__/unit/metro.test.js.map +1 -0
  135. package/build/__tests__/unit/network.test.d.ts +2 -0
  136. package/build/__tests__/unit/network.test.d.ts.map +1 -0
  137. package/build/__tests__/unit/network.test.js +102 -0
  138. package/build/__tests__/unit/network.test.js.map +1 -0
  139. package/build/__tests__/unit/networkInterceptor.test.d.ts +2 -0
  140. package/build/__tests__/unit/networkInterceptor.test.d.ts.map +1 -0
  141. package/build/__tests__/unit/networkInterceptor.test.js +104 -0
  142. package/build/__tests__/unit/networkInterceptor.test.js.map +1 -0
  143. package/build/__tests__/unit/probe.test.d.ts +2 -0
  144. package/build/__tests__/unit/probe.test.d.ts.map +1 -0
  145. package/build/__tests__/unit/probe.test.js +62 -0
  146. package/build/__tests__/unit/probe.test.js.map +1 -0
  147. package/build/__tests__/unit/rnGlobalsBootstrap.test.d.ts +2 -0
  148. package/build/__tests__/unit/rnGlobalsBootstrap.test.d.ts.map +1 -0
  149. package/build/__tests__/unit/rnGlobalsBootstrap.test.js +29 -0
  150. package/build/__tests__/unit/rnGlobalsBootstrap.test.js.map +1 -0
  151. package/build/__tests__/unit/screenState.test.d.ts +2 -0
  152. package/build/__tests__/unit/screenState.test.d.ts.map +1 -0
  153. package/build/__tests__/unit/screenState.test.js +384 -0
  154. package/build/__tests__/unit/screenState.test.js.map +1 -0
  155. package/build/__tests__/unit/screenshot-diff.test.d.ts +2 -0
  156. package/build/__tests__/unit/screenshot-diff.test.d.ts.map +1 -0
  157. package/build/__tests__/unit/screenshot-diff.test.js +97 -0
  158. package/build/__tests__/unit/screenshot-diff.test.js.map +1 -0
  159. package/build/__tests__/unit/tap-evidence.test.d.ts +2 -0
  160. package/build/__tests__/unit/tap-evidence.test.d.ts.map +1 -0
  161. package/build/__tests__/unit/tap-evidence.test.js +89 -0
  162. package/build/__tests__/unit/tap-evidence.test.js.map +1 -0
  163. package/build/__tests__/unit/tap.test.d.ts +2 -0
  164. package/build/__tests__/unit/tap.test.d.ts.map +1 -0
  165. package/build/__tests__/unit/tap.test.js +767 -0
  166. package/build/__tests__/unit/tap.test.js.map +1 -0
  167. package/build/__tests__/unit/timeoutClamp.test.d.ts +2 -0
  168. package/build/__tests__/unit/timeoutClamp.test.d.ts.map +1 -0
  169. package/build/__tests__/unit/timeoutClamp.test.js +17 -0
  170. package/build/__tests__/unit/timeoutClamp.test.js.map +1 -0
  171. package/build/__tests__/unit/toolDescriptions.test.d.ts +2 -0
  172. package/build/__tests__/unit/toolDescriptions.test.d.ts.map +1 -0
  173. package/build/__tests__/unit/toolDescriptions.test.js +145 -0
  174. package/build/__tests__/unit/toolDescriptions.test.js.map +1 -0
  175. package/build/__tests__/unit/transportClassify.test.d.ts +2 -0
  176. package/build/__tests__/unit/transportClassify.test.d.ts.map +1 -0
  177. package/build/__tests__/unit/transportClassify.test.js +60 -0
  178. package/build/__tests__/unit/transportClassify.test.js.map +1 -0
  179. package/build/__tests__/unit/verifyAction.test.d.ts +2 -0
  180. package/build/__tests__/unit/verifyAction.test.d.ts.map +1 -0
  181. package/build/__tests__/unit/verifyAction.test.js +26 -0
  182. package/build/__tests__/unit/verifyAction.test.js.map +1 -0
  183. package/build/core/android.d.ts +299 -0
  184. package/build/core/android.d.ts.map +1 -0
  185. package/build/core/android.js +1582 -0
  186. package/build/core/android.js.map +1 -0
  187. package/build/core/appDetection.d.ts +20 -0
  188. package/build/core/appDetection.d.ts.map +1 -0
  189. package/build/core/appDetection.js +167 -0
  190. package/build/core/appDetection.js.map +1 -0
  191. package/build/core/bundle.d.ts +49 -0
  192. package/build/core/bundle.d.ts.map +1 -0
  193. package/build/core/bundle.js +356 -0
  194. package/build/core/bundle.js.map +1 -0
  195. package/build/core/componentSearch.d.ts +41 -0
  196. package/build/core/componentSearch.d.ts.map +1 -0
  197. package/build/core/componentSearch.js +588 -0
  198. package/build/core/componentSearch.js.map +1 -0
  199. package/build/core/componentTree.d.ts +13 -0
  200. package/build/core/componentTree.d.ts.map +1 -0
  201. package/build/core/componentTree.js +275 -0
  202. package/build/core/componentTree.js.map +1 -0
  203. package/build/core/config.d.ts +9 -0
  204. package/build/core/config.d.ts.map +1 -0
  205. package/build/core/config.js +28 -0
  206. package/build/core/config.js.map +1 -0
  207. package/build/core/connection.d.ts +102 -0
  208. package/build/core/connection.d.ts.map +1 -0
  209. package/build/core/connection.js +1710 -0
  210. package/build/core/connection.js.map +1 -0
  211. package/build/core/connectionState.d.ts +122 -0
  212. package/build/core/connectionState.d.ts.map +1 -0
  213. package/build/core/connectionState.js +313 -0
  214. package/build/core/connectionState.js.map +1 -0
  215. package/build/core/debugGlobals.d.ts +6 -0
  216. package/build/core/debugGlobals.d.ts.map +1 -0
  217. package/build/core/debugGlobals.js +370 -0
  218. package/build/core/debugGlobals.js.map +1 -0
  219. package/build/core/deviceDiscovery.d.ts +52 -0
  220. package/build/core/deviceDiscovery.d.ts.map +1 -0
  221. package/build/core/deviceDiscovery.js +74 -0
  222. package/build/core/deviceDiscovery.js.map +1 -0
  223. package/build/core/deviceResolver.d.ts +44 -0
  224. package/build/core/deviceResolver.d.ts.map +1 -0
  225. package/build/core/deviceResolver.js +225 -0
  226. package/build/core/deviceResolver.js.map +1 -0
  227. package/build/core/errorScreenParser.d.ts +30 -0
  228. package/build/core/errorScreenParser.d.ts.map +1 -0
  229. package/build/core/errorScreenParser.js +198 -0
  230. package/build/core/errorScreenParser.js.map +1 -0
  231. package/build/core/errors.d.ts +14 -0
  232. package/build/core/errors.d.ts.map +1 -0
  233. package/build/core/errors.js +17 -0
  234. package/build/core/errors.js.map +1 -0
  235. package/build/core/escapeNonAscii.d.ts +18 -0
  236. package/build/core/escapeNonAscii.d.ts.map +1 -0
  237. package/build/core/escapeNonAscii.js +352 -0
  238. package/build/core/escapeNonAscii.js.map +1 -0
  239. package/build/core/exec.d.ts +22 -0
  240. package/build/core/exec.d.ts.map +1 -0
  241. package/build/core/exec.js +54 -0
  242. package/build/core/exec.js.map +1 -0
  243. package/build/core/executor.d.ts +9 -0
  244. package/build/core/executor.d.ts.map +1 -0
  245. package/build/core/executor.js +12 -0
  246. package/build/core/executor.js.map +1 -0
  247. package/build/core/failureArtifact.d.ts +120 -0
  248. package/build/core/failureArtifact.d.ts.map +1 -0
  249. package/build/core/failureArtifact.js +113 -0
  250. package/build/core/failureArtifact.js.map +1 -0
  251. package/build/core/fastRefreshRecorder.d.ts +23 -0
  252. package/build/core/fastRefreshRecorder.d.ts.map +1 -0
  253. package/build/core/fastRefreshRecorder.js +83 -0
  254. package/build/core/fastRefreshRecorder.js.map +1 -0
  255. package/build/core/fastRefreshTools.d.ts +19 -0
  256. package/build/core/fastRefreshTools.d.ts.map +1 -0
  257. package/build/core/fastRefreshTools.js +71 -0
  258. package/build/core/fastRefreshTools.js.map +1 -0
  259. package/build/core/feedback.d.ts +18 -0
  260. package/build/core/feedback.d.ts.map +1 -0
  261. package/build/core/feedback.js +73 -0
  262. package/build/core/feedback.js.map +1 -0
  263. package/build/core/fiberMatch.d.ts +25 -0
  264. package/build/core/fiberMatch.d.ts.map +1 -0
  265. package/build/core/fiberMatch.js +35 -0
  266. package/build/core/fiberMatch.js.map +1 -0
  267. package/build/core/fingerprint.d.ts +4 -0
  268. package/build/core/fingerprint.d.ts.map +1 -0
  269. package/build/core/fingerprint.js +47 -0
  270. package/build/core/fingerprint.js.map +1 -0
  271. package/build/core/focusedInput.d.ts +27 -0
  272. package/build/core/focusedInput.d.ts.map +1 -0
  273. package/build/core/focusedInput.js +110 -0
  274. package/build/core/focusedInput.js.map +1 -0
  275. package/build/core/focusedInputTools.d.ts +21 -0
  276. package/build/core/focusedInputTools.d.ts.map +1 -0
  277. package/build/core/focusedInputTools.js +51 -0
  278. package/build/core/focusedInputTools.js.map +1 -0
  279. package/build/core/format.d.ts +8 -0
  280. package/build/core/format.d.ts.map +1 -0
  281. package/build/core/format.js +34 -0
  282. package/build/core/format.js.map +1 -0
  283. package/build/core/guides.d.ts +21 -0
  284. package/build/core/guides.d.ts.map +1 -0
  285. package/build/core/guides.js +397 -0
  286. package/build/core/guides.js.map +1 -0
  287. package/build/core/iconSemantics.d.ts +18 -0
  288. package/build/core/iconSemantics.d.ts.map +1 -0
  289. package/build/core/iconSemantics.js +114 -0
  290. package/build/core/iconSemantics.js.map +1 -0
  291. package/build/core/imageBuffer.d.ts +37 -0
  292. package/build/core/imageBuffer.d.ts.map +1 -0
  293. package/build/core/imageBuffer.js +58 -0
  294. package/build/core/imageBuffer.js.map +1 -0
  295. package/build/core/index.d.ts +37 -0
  296. package/build/core/index.d.ts.map +1 -0
  297. package/build/core/index.js +66 -0
  298. package/build/core/index.js.map +1 -0
  299. package/build/core/inspector.d.ts +55 -0
  300. package/build/core/inspector.d.ts.map +1 -0
  301. package/build/core/inspector.js +603 -0
  302. package/build/core/inspector.js.map +1 -0
  303. package/build/core/ios.d.ts +263 -0
  304. package/build/core/ios.d.ts.map +1 -0
  305. package/build/core/ios.js +1705 -0
  306. package/build/core/ios.js.map +1 -0
  307. package/build/core/jsExecute.d.ts +62 -0
  308. package/build/core/jsExecute.d.ts.map +1 -0
  309. package/build/core/jsExecute.js +696 -0
  310. package/build/core/jsExecute.js.map +1 -0
  311. package/build/core/license.d.ts +48 -0
  312. package/build/core/license.d.ts.map +1 -0
  313. package/build/core/license.js +267 -0
  314. package/build/core/license.js.map +1 -0
  315. package/build/core/logbox.d.ts +58 -0
  316. package/build/core/logbox.d.ts.map +1 -0
  317. package/build/core/logbox.js +330 -0
  318. package/build/core/logbox.js.map +1 -0
  319. package/build/core/logs.d.ts +44 -0
  320. package/build/core/logs.d.ts.map +1 -0
  321. package/build/core/logs.js +149 -0
  322. package/build/core/logs.js.map +1 -0
  323. package/build/core/measureComponent.d.ts +19 -0
  324. package/build/core/measureComponent.d.ts.map +1 -0
  325. package/build/core/measureComponent.js +94 -0
  326. package/build/core/measureComponent.js.map +1 -0
  327. package/build/core/measureComponentTools.d.ts +6 -0
  328. package/build/core/measureComponentTools.d.ts.map +1 -0
  329. package/build/core/measureComponentTools.js +43 -0
  330. package/build/core/measureComponentTools.js.map +1 -0
  331. package/build/core/metro.d.ts +31 -0
  332. package/build/core/metro.d.ts.map +1 -0
  333. package/build/core/metro.js +124 -0
  334. package/build/core/metro.js.map +1 -0
  335. package/build/core/nativeOnlyHints.d.ts +14 -0
  336. package/build/core/nativeOnlyHints.d.ts.map +1 -0
  337. package/build/core/nativeOnlyHints.js +58 -0
  338. package/build/core/nativeOnlyHints.js.map +1 -0
  339. package/build/core/network.d.ts +43 -0
  340. package/build/core/network.d.ts.map +1 -0
  341. package/build/core/network.js +217 -0
  342. package/build/core/network.js.map +1 -0
  343. package/build/core/networkInterceptor.d.ts +30 -0
  344. package/build/core/networkInterceptor.d.ts.map +1 -0
  345. package/build/core/networkInterceptor.js +211 -0
  346. package/build/core/networkInterceptor.js.map +1 -0
  347. package/build/core/ocr.d.ts +87 -0
  348. package/build/core/ocr.d.ts.map +1 -0
  349. package/build/core/ocr.js +335 -0
  350. package/build/core/ocr.js.map +1 -0
  351. package/build/core/paths.d.ts +2 -0
  352. package/build/core/paths.d.ts.map +1 -0
  353. package/build/core/paths.js +28 -0
  354. package/build/core/paths.js.map +1 -0
  355. package/build/core/posthog.d.ts +5 -0
  356. package/build/core/posthog.d.ts.map +1 -0
  357. package/build/core/posthog.js +52 -0
  358. package/build/core/posthog.js.map +1 -0
  359. package/build/core/pressables.d.ts +46 -0
  360. package/build/core/pressables.d.ts.map +1 -0
  361. package/build/core/pressables.js +1719 -0
  362. package/build/core/pressables.js.map +1 -0
  363. package/build/core/probe.d.ts +12 -0
  364. package/build/core/probe.d.ts.map +1 -0
  365. package/build/core/probe.js +56 -0
  366. package/build/core/probe.js.map +1 -0
  367. package/build/core/redux.d.ts +22 -0
  368. package/build/core/redux.d.ts.map +1 -0
  369. package/build/core/redux.js +116 -0
  370. package/build/core/redux.js.map +1 -0
  371. package/build/core/register.d.ts +8 -0
  372. package/build/core/register.d.ts.map +1 -0
  373. package/build/core/register.js +202 -0
  374. package/build/core/register.js.map +1 -0
  375. package/build/core/rnGlobalsBootstrap.d.ts +16 -0
  376. package/build/core/rnGlobalsBootstrap.d.ts.map +1 -0
  377. package/build/core/rnGlobalsBootstrap.js +116 -0
  378. package/build/core/rnGlobalsBootstrap.js.map +1 -0
  379. package/build/core/screenLayout.d.ts +53 -0
  380. package/build/core/screenLayout.d.ts.map +1 -0
  381. package/build/core/screenLayout.js +878 -0
  382. package/build/core/screenLayout.js.map +1 -0
  383. package/build/core/screenState.d.ts +166 -0
  384. package/build/core/screenState.d.ts.map +1 -0
  385. package/build/core/screenState.js +1352 -0
  386. package/build/core/screenState.js.map +1 -0
  387. package/build/core/sdkBridge.d.ts +67 -0
  388. package/build/core/sdkBridge.d.ts.map +1 -0
  389. package/build/core/sdkBridge.js +148 -0
  390. package/build/core/sdkBridge.js.map +1 -0
  391. package/build/core/state.d.ts +37 -0
  392. package/build/core/state.d.ts.map +1 -0
  393. package/build/core/state.js +124 -0
  394. package/build/core/state.js.map +1 -0
  395. package/build/core/telemetry.d.ts +50 -0
  396. package/build/core/telemetry.d.ts.map +1 -0
  397. package/build/core/telemetry.js +653 -0
  398. package/build/core/telemetry.js.map +1 -0
  399. package/build/core/toolHelpers.d.ts +24 -0
  400. package/build/core/toolHelpers.d.ts.map +1 -0
  401. package/build/core/toolHelpers.js +118 -0
  402. package/build/core/toolHelpers.js.map +1 -0
  403. package/build/core/types.d.ts +162 -0
  404. package/build/core/types.d.ts.map +1 -0
  405. package/build/core/types.js +2 -0
  406. package/build/core/types.js.map +1 -0
  407. package/build/index.d.ts +4 -0
  408. package/build/index.d.ts.map +1 -0
  409. package/build/index.js +132 -0
  410. package/build/index.js.map +1 -0
  411. package/build/pro/screenshot-diff.d.ts +10 -0
  412. package/build/pro/screenshot-diff.d.ts.map +1 -0
  413. package/build/pro/screenshot-diff.js +38 -0
  414. package/build/pro/screenshot-diff.js.map +1 -0
  415. package/build/pro/tap.d.ts +291 -0
  416. package/build/pro/tap.d.ts.map +1 -0
  417. package/build/pro/tap.js +1839 -0
  418. package/build/pro/tap.js.map +1 -0
  419. package/build/pro/verifyAction.d.ts +50 -0
  420. package/build/pro/verifyAction.d.ts.map +1 -0
  421. package/build/pro/verifyAction.js +285 -0
  422. package/build/pro/verifyAction.js.map +1 -0
  423. package/build/tools/_deviceArg.d.ts +45 -0
  424. package/build/tools/_deviceArg.d.ts.map +1 -0
  425. package/build/tools/_deviceArg.js +58 -0
  426. package/build/tools/_deviceArg.js.map +1 -0
  427. package/build/tools/accountTools.d.ts +46 -0
  428. package/build/tools/accountTools.d.ts.map +1 -0
  429. package/build/tools/accountTools.js +223 -0
  430. package/build/tools/accountTools.js.map +1 -0
  431. package/build/tools/bundleTools.d.ts +3 -0
  432. package/build/tools/bundleTools.d.ts.map +1 -0
  433. package/build/tools/bundleTools.js +375 -0
  434. package/build/tools/bundleTools.js.map +1 -0
  435. package/build/tools/componentTools.d.ts +3 -0
  436. package/build/tools/componentTools.d.ts.map +1 -0
  437. package/build/tools/componentTools.js +746 -0
  438. package/build/tools/componentTools.js.map +1 -0
  439. package/build/tools/connectionTools.d.ts +3 -0
  440. package/build/tools/connectionTools.d.ts.map +1 -0
  441. package/build/tools/connectionTools.js +625 -0
  442. package/build/tools/connectionTools.js.map +1 -0
  443. package/build/tools/deviceTools.d.ts +3 -0
  444. package/build/tools/deviceTools.d.ts.map +1 -0
  445. package/build/tools/deviceTools.js +423 -0
  446. package/build/tools/deviceTools.js.map +1 -0
  447. package/build/tools/executionTools.d.ts +3 -0
  448. package/build/tools/executionTools.d.ts.map +1 -0
  449. package/build/tools/executionTools.js +243 -0
  450. package/build/tools/executionTools.js.map +1 -0
  451. package/build/tools/interactionTools.d.ts +3 -0
  452. package/build/tools/interactionTools.d.ts.map +1 -0
  453. package/build/tools/interactionTools.js +539 -0
  454. package/build/tools/interactionTools.js.map +1 -0
  455. package/build/tools/logTools.d.ts +3 -0
  456. package/build/tools/logTools.d.ts.map +1 -0
  457. package/build/tools/logTools.js +371 -0
  458. package/build/tools/logTools.js.map +1 -0
  459. package/build/tools/metaTools.d.ts +7 -0
  460. package/build/tools/metaTools.d.ts.map +1 -0
  461. package/build/tools/metaTools.js +186 -0
  462. package/build/tools/metaTools.js.map +1 -0
  463. package/build/tools/networkTools.d.ts +3 -0
  464. package/build/tools/networkTools.d.ts.map +1 -0
  465. package/build/tools/networkTools.js +478 -0
  466. package/build/tools/networkTools.js.map +1 -0
  467. package/build/tools/reduxTools.d.ts +3 -0
  468. package/build/tools/reduxTools.d.ts.map +1 -0
  469. package/build/tools/reduxTools.js +83 -0
  470. package/build/tools/reduxTools.js.map +1 -0
  471. package/build/tools/screenshotTools.d.ts +3 -0
  472. package/build/tools/screenshotTools.d.ts.map +1 -0
  473. package/build/tools/screenshotTools.js +703 -0
  474. package/build/tools/screenshotTools.js.map +1 -0
  475. package/package.json +63 -2
@@ -0,0 +1,371 @@
1
+ import { z } from "zod";
2
+ import { registerToolWithTelemetry } from "../core/register.js";
3
+ import { getLogs, searchLogs, getLogSummary, getTotalLogCount, getConnectedAppByDevice, getFirstConnectedApp, formatLogsAsTonl, checkAndEnsureConnection, metroMissingHintIfAbsent, logBuffers, verifyLogPipeline, getPassiveConnectionStatus, connectedApps, getRecentGaps, formatDuration, getLogBuffer, } from "../core/index.js";
4
+ import { resolveLogBuffer } from "../core/toolHelpers.js";
5
+ import { UserInputError } from "../core/errors.js";
6
+ import { isSDKInstalled, querySDKConsole, clearSDKConsole, getSDKConsoleStats, } from "../core/sdkBridge.js";
7
+ export function registerLogTools(server) {
8
+ // Tool: Get console logs
9
+ registerToolWithTelemetry(server, "get_logs", {
10
+ description: "Retrieve console logs from connected React Native app. Tip: Use summary=true first for a quick overview (counts by level + last 5 messages), then fetch specific logs as needed.\n" +
11
+ "PURPOSE: Pull captured console output (log/warn/error/info/debug) from the in-memory buffer for the connected app.\n" +
12
+ "WHEN TO USE: Start of any log-driven investigation, verifying a code change picked up via Fast Refresh, or confirming a reported error actually fires.\n" +
13
+ "WORKFLOW: scan_metro -> get_logs(summary=true) -> narrow with search_logs(text=\"...\") or get_logs(level=\"error\") -> clear_logs between reproductions.\n" +
14
+ "LIMITATIONS: Circular buffer (~500 entries). Only captures logs emitted after the app connected; pre-connect logs are lost.\n" +
15
+ "GOOD: get_logs({ summary: true }) then get_logs({ level: \"error\", maxLogs: 20 })\n" +
16
+ "BAD: get_logs({ maxLogs: 500, verbose: true }) as a first call — floods context; start with summary=true.\n" +
17
+ "SEE ALSO: call get_usage_guide(topic=\"logs\") for the full console-debugging playbook.",
18
+ inputSchema: {
19
+ maxLogs: z.coerce
20
+ .number()
21
+ .optional()
22
+ .default(50)
23
+ .describe("Maximum number of logs to return (default: 50)"),
24
+ level: z
25
+ .enum(["all", "log", "warn", "error", "info", "debug"])
26
+ .optional()
27
+ .default("all")
28
+ .describe("Filter by log level (default: all)"),
29
+ startFromText: z.string().optional().describe("Start from the first log line containing this text"),
30
+ maxMessageLength: z.coerce
31
+ .number()
32
+ .optional()
33
+ .default(500)
34
+ .describe("Max characters per message (default: 500, set to 0 for unlimited). Tip: Use lower values for overview, higher when debugging specific data structures."),
35
+ verbose: z
36
+ .boolean()
37
+ .optional()
38
+ .default(false)
39
+ .describe("Disable all truncation and return full messages. Tip: Use with lower maxLogs (e.g., 10) to avoid token overload when inspecting large objects."),
40
+ format: z
41
+ .enum(["text", "tonl"])
42
+ .optional()
43
+ .default("tonl")
44
+ .describe("Output format: 'text' or 'tonl' (default, compact token-optimized format, ~30-50% smaller)"),
45
+ summary: z
46
+ .boolean()
47
+ .optional()
48
+ .default(false)
49
+ .describe("Return summary statistics instead of full logs (count by level + last 5 messages). Use for quick overview."),
50
+ device: z.string().optional().describe("Target device name (substring match). Omit for all devices. Run get_apps to see connected devices.")
51
+ }
52
+ }, async ({ maxLogs, level, startFromText, maxMessageLength, verbose, format, summary, device }) => {
53
+ // Check if SDK is installed — prefer SDK data for richer logs
54
+ const sdkAvailable = await isSDKInstalled();
55
+ if (sdkAvailable) {
56
+ if (summary) {
57
+ const sdkStats = await getSDKConsoleStats();
58
+ if (sdkStats.success) {
59
+ const s = sdkStats.data;
60
+ const lines = [];
61
+ lines.push(`Total logs: ${s.total}`);
62
+ if (s.byLevel && Object.keys(s.byLevel).length > 0) {
63
+ lines.push("\nBy Level:");
64
+ for (const [lvl, cnt] of Object.entries(s.byLevel))
65
+ lines.push(` ${lvl}: ${cnt}`);
66
+ }
67
+ return { content: [{ type: "text", text: `Log Summary (SDK):\n\n${lines.join("\n")}` }] };
68
+ }
69
+ }
70
+ const sdkResult = await querySDKConsole({ count: maxLogs, level, text: startFromText });
71
+ if (sdkResult.success) {
72
+ const entries = sdkResult.data;
73
+ if (entries.length === 0) {
74
+ return { content: [{ type: "text", text: "No console logs captured yet." }] };
75
+ }
76
+ if (format === "tonl") {
77
+ const tonlLines = entries.map((e) => {
78
+ const time = new Date(e.timestamp).toLocaleTimeString();
79
+ let msg = e.message;
80
+ if (!verbose && maxMessageLength > 0 && msg.length > maxMessageLength) {
81
+ msg = msg.slice(0, maxMessageLength) + "...";
82
+ }
83
+ return `${time} [${e.level}] ${msg}`;
84
+ });
85
+ return { content: [{ type: "text", text: `Console Logs (${entries.length} entries, SDK):\n\n${tonlLines.join("\n")}` }] };
86
+ }
87
+ const lines = entries.map((e) => {
88
+ const time = new Date(e.timestamp).toLocaleTimeString();
89
+ let msg = e.message;
90
+ if (!verbose && maxMessageLength > 0 && msg.length > maxMessageLength) {
91
+ msg = msg.slice(0, maxMessageLength) + "...";
92
+ }
93
+ return `[${time}] [${e.level.toUpperCase()}] ${msg}`;
94
+ });
95
+ return { content: [{ type: "text", text: `Console Logs (${entries.length} entries, SDK):\n\n${lines.join("\n")}` }] };
96
+ }
97
+ }
98
+ // Return summary if requested
99
+ if (summary) {
100
+ const summaryText = getLogSummary(resolveLogBuffer(device), { lastN: 5, maxMessageLength: 100 });
101
+ let connectionWarning = "";
102
+ if (getTotalLogCount() === 0) {
103
+ const status = await checkAndEnsureConnection(device);
104
+ connectionWarning = status.message ? `\n\n${status.message}` : "";
105
+ if (status.connected) {
106
+ const targetApp = device ? getConnectedAppByDevice(device) : getFirstConnectedApp();
107
+ if (targetApp) {
108
+ const pipeline = await verifyLogPipeline(targetApp);
109
+ if (pipeline.message) {
110
+ connectionWarning += `\n\n${pipeline.message}`;
111
+ }
112
+ }
113
+ }
114
+ connectionWarning += await metroMissingHintIfAbsent("get_logs");
115
+ }
116
+ return {
117
+ content: [
118
+ {
119
+ type: "text",
120
+ text: `Log Summary:\n\n${summaryText}${connectionWarning}`
121
+ }
122
+ ]
123
+ };
124
+ }
125
+ const { logs, count, formatted } = getLogs(resolveLogBuffer(device), {
126
+ maxLogs,
127
+ level,
128
+ startFromText,
129
+ maxMessageLength,
130
+ verbose
131
+ });
132
+ // Check connection health
133
+ let connectionWarning = "";
134
+ let emptyReason;
135
+ if (count === 0) {
136
+ const status = await checkAndEnsureConnection(device);
137
+ connectionWarning = status.message ? `\n\n${status.message}` : "";
138
+ // Track empty reason for telemetry
139
+ emptyReason = "no_logs";
140
+ if (!status.connected) {
141
+ emptyReason = "disconnected";
142
+ }
143
+ else if (status.wasReconnected) {
144
+ emptyReason = "post_reconnect";
145
+ }
146
+ // End-to-end log pipeline verification (with automatic recovery)
147
+ if (status.connected) {
148
+ const targetApp = device ? getConnectedAppByDevice(device) : getFirstConnectedApp();
149
+ if (targetApp) {
150
+ const pipeline = await verifyLogPipeline(targetApp);
151
+ if (pipeline.message) {
152
+ connectionWarning += `\n\n${pipeline.message}`;
153
+ }
154
+ if (!pipeline.ok) {
155
+ emptyReason = "pipeline_failed";
156
+ }
157
+ else if (pipeline.recovered) {
158
+ emptyReason = "pipeline_recovered";
159
+ }
160
+ // If pipeline recovered, re-read the buffer — new logs may have arrived
161
+ if (pipeline.recovered && pipeline.ok) {
162
+ const retryResult = getLogs(resolveLogBuffer(device), {
163
+ maxLogs, level, startFromText, maxMessageLength, verbose
164
+ });
165
+ if (retryResult.count > 0) {
166
+ // Return the recovered logs instead of empty
167
+ return {
168
+ _emptyReason: "pipeline_recovered",
169
+ content: [{
170
+ type: "text",
171
+ text: `React Native Console Logs (${retryResult.count} entries):\n\n${retryResult.formatted}${connectionWarning}`
172
+ }]
173
+ };
174
+ }
175
+ }
176
+ }
177
+ }
178
+ // Add diagnostic metadata for empty results (captured by telemetry via responsePreview)
179
+ if (count === 0) {
180
+ const diagParts = [
181
+ `empty_reason=${status?.wasReconnected ? "post_reconnect" : "no_logs"}`,
182
+ `connection=${getPassiveConnectionStatus().reason}`,
183
+ `device_count=${connectedApps.size}`,
184
+ `buffer_sizes=${JSON.stringify(Object.fromEntries([...logBuffers.entries()].map(([k, v]) => [k, v.size])))}`,
185
+ ];
186
+ connectionWarning += `\n\n[DIAG] ${diagParts.join(", ")}`;
187
+ }
188
+ connectionWarning += await metroMissingHintIfAbsent("get_logs");
189
+ }
190
+ else {
191
+ const passive = getPassiveConnectionStatus();
192
+ connectionWarning = !passive.connected
193
+ ? "\n\n[CONNECTION] Disconnected. Showing cached data. New data is not being captured."
194
+ : "";
195
+ }
196
+ // Check for recent connection gaps
197
+ const warningThresholdMs = 30000; // 30 seconds
198
+ const recentGaps = getRecentGaps(warningThresholdMs);
199
+ let gapWarning = "";
200
+ if (recentGaps.length > 0) {
201
+ const latestGap = recentGaps[recentGaps.length - 1];
202
+ const gapDuration = latestGap.durationMs || Date.now() - latestGap.disconnectedAt.getTime();
203
+ if (latestGap.reconnectedAt) {
204
+ const secAgo = Math.round((Date.now() - latestGap.reconnectedAt.getTime()) / 1000);
205
+ gapWarning = `\n\n[WARNING] Connection was restored ${secAgo}s ago. Some logs may have been missed during the ${formatDuration(gapDuration)} gap.`;
206
+ }
207
+ else {
208
+ gapWarning = `\n\n[WARNING] Connection is currently disconnected. Logs may be incomplete.`;
209
+ }
210
+ }
211
+ const startNote = startFromText ? ` (starting from "${startFromText}")` : "";
212
+ // Use TONL format if requested
213
+ if (format === "tonl") {
214
+ const tonlOutput = formatLogsAsTonl(logs, { maxMessageLength: verbose ? 0 : maxMessageLength });
215
+ return {
216
+ ...(emptyReason && { _emptyReason: emptyReason }),
217
+ content: [
218
+ {
219
+ type: "text",
220
+ text: `React Native Console Logs (${count} entries)${startNote}:\n\n${tonlOutput}${gapWarning}${connectionWarning}`
221
+ }
222
+ ]
223
+ };
224
+ }
225
+ return {
226
+ ...(emptyReason && { _emptyReason: emptyReason }),
227
+ content: [
228
+ {
229
+ type: "text",
230
+ text: `React Native Console Logs (${count} entries)${startNote}:\n\n${formatted}${gapWarning}${connectionWarning}`
231
+ }
232
+ ]
233
+ };
234
+ },
235
+ // Empty result detector: buffer has no entries at all
236
+ () => getTotalLogCount() === 0);
237
+ // Tool: Search logs
238
+ registerToolWithTelemetry(server, "search_logs", {
239
+ description: "Search console logs for text (case-insensitive).\n" +
240
+ "PURPOSE: Find log lines matching a substring across the connected app's console buffer.\n" +
241
+ "WHEN TO USE: User reports a known error/warning, or wants to trace a specific event (e.g., \"redux\", \"auth failed\"). For unfocused exploration, prefer get_logs.\n" +
242
+ "WORKFLOW: scan_metro -> search_logs(text=\"...\") -> if empty, get_logs to verify buffer populated.\n" +
243
+ "LIMITATIONS: Only matches text captured AFTER the app connected; won't find pre-connect logs.\n" +
244
+ "GOOD: search_logs({ text: \"TypeError\" })\n" +
245
+ "BAD: search_logs({ text: \"\" }) (use get_logs for a raw dump)\n" +
246
+ "SEE ALSO: call get_usage_guide(topic=\"logs\") for the full console-debugging playbook.",
247
+ inputSchema: {
248
+ text: z.string().describe("Text to search for in log messages"),
249
+ maxResults: z.coerce
250
+ .number()
251
+ .optional()
252
+ .default(50)
253
+ .describe("Maximum number of results to return (default: 50)"),
254
+ maxMessageLength: z.coerce
255
+ .number()
256
+ .optional()
257
+ .default(500)
258
+ .describe("Max characters per message (default: 500, set to 0 for unlimited)"),
259
+ verbose: z.boolean().optional().default(false).describe("Disable all truncation and return full messages"),
260
+ format: z
261
+ .enum(["text", "tonl"])
262
+ .optional()
263
+ .default("tonl")
264
+ .describe("Output format: 'text' or 'tonl' (default, compact token-optimized format)"),
265
+ device: z.string().optional().describe("Target device name (substring match). Omit for all devices. Run get_apps to see connected devices.")
266
+ }
267
+ }, async ({ text, maxResults, maxMessageLength, verbose, format, device }) => {
268
+ // Check if SDK is installed — prefer SDK data
269
+ const sdkAvailable = await isSDKInstalled();
270
+ if (sdkAvailable) {
271
+ const sdkResult = await querySDKConsole({ count: maxResults, text });
272
+ if (sdkResult.success) {
273
+ const entries = sdkResult.data;
274
+ if (entries.length === 0) {
275
+ return { content: [{ type: "text", text: `No logs matching "${text}" found.` }] };
276
+ }
277
+ if (format === "tonl") {
278
+ const tonlLines = entries.map((e) => {
279
+ const time = new Date(e.timestamp).toLocaleTimeString();
280
+ let msg = e.message;
281
+ if (!verbose && maxMessageLength > 0 && msg.length > maxMessageLength) {
282
+ msg = msg.slice(0, maxMessageLength) + "...";
283
+ }
284
+ return `${time} [${e.level}] ${msg}`;
285
+ });
286
+ return { content: [{ type: "text", text: `Search results for "${text}" (${entries.length} matches, SDK):\n\n${tonlLines.join("\n")}` }] };
287
+ }
288
+ const lines = entries.map((e) => {
289
+ const time = new Date(e.timestamp).toLocaleTimeString();
290
+ let msg = e.message;
291
+ if (!verbose && maxMessageLength > 0 && msg.length > maxMessageLength) {
292
+ msg = msg.slice(0, maxMessageLength) + "...";
293
+ }
294
+ return `[${time}] [${e.level.toUpperCase()}] ${msg}`;
295
+ });
296
+ return { content: [{ type: "text", text: `Search results for "${text}" (${entries.length} matches, SDK):\n\n${lines.join("\n")}` }] };
297
+ }
298
+ }
299
+ const { logs, count, formatted } = searchLogs(resolveLogBuffer(device), text, { maxResults, maxMessageLength, verbose });
300
+ // Check connection health
301
+ let connectionWarning = "";
302
+ if (count === 0) {
303
+ const status = await checkAndEnsureConnection(device);
304
+ connectionWarning = status.message ? `\n\n${status.message}` : "";
305
+ connectionWarning += await metroMissingHintIfAbsent("search_logs");
306
+ }
307
+ else {
308
+ const passive = getPassiveConnectionStatus();
309
+ connectionWarning = !passive.connected
310
+ ? "\n\n[CONNECTION] Disconnected. Showing cached data. New data is not being captured."
311
+ : "";
312
+ }
313
+ // Use TONL format if requested
314
+ if (format === "tonl") {
315
+ const tonlOutput = formatLogsAsTonl(logs, { maxMessageLength: verbose ? 0 : maxMessageLength });
316
+ return {
317
+ content: [
318
+ {
319
+ type: "text",
320
+ text: `Search results for "${text}" (${count} matches):\n\n${tonlOutput}${connectionWarning}`
321
+ }
322
+ ]
323
+ };
324
+ }
325
+ return {
326
+ content: [
327
+ {
328
+ type: "text",
329
+ text: `Search results for "${text}" (${count} matches):\n\n${formatted}${connectionWarning}`
330
+ }
331
+ ]
332
+ };
333
+ });
334
+ // Tool: Clear logs
335
+ registerToolWithTelemetry(server, "clear_logs", {
336
+ description: "Clear the log buffer.\n" +
337
+ "PURPOSE: Empty the in-memory console buffer (and the SDK buffer if installed) so the next get_logs / search_logs only sees fresh entries.\n" +
338
+ "WHEN TO USE: Before reproducing a bug so the resulting logs are isolated; between test iterations to avoid noise from earlier runs.\n" +
339
+ "WORKFLOW: clear_logs -> reproduce the issue (tap / navigate / reload_app) -> get_logs or search_logs.\n" +
340
+ "GOOD: clear_logs() right before tap(text=\"Submit\")\n" +
341
+ "BAD: clear_logs() AFTER the repro — you just deleted the evidence.\n" +
342
+ "SEE ALSO: call get_usage_guide(topic=\"logs\") for the full console-debugging playbook.",
343
+ inputSchema: {
344
+ device: z.string().optional().describe("Target device name (substring match). Omit to clear all devices. Run get_apps to see connected devices.")
345
+ }
346
+ }, async ({ device }) => {
347
+ if (device) {
348
+ const app = getConnectedAppByDevice(device);
349
+ if (!app)
350
+ throw new UserInputError(`No connected device matches "${device}"`);
351
+ const deviceName = app.deviceInfo.deviceName || app.deviceInfo.title || "unknown";
352
+ const count = getLogBuffer(deviceName).clear();
353
+ return { content: [{ type: "text", text: `Cleared ${count} log entries from ${deviceName}.` }] };
354
+ }
355
+ // Clear all
356
+ let total = 0;
357
+ for (const buffer of logBuffers.values()) {
358
+ total += buffer.clear();
359
+ }
360
+ // Also clear SDK buffer if available
361
+ const sdkAvailable = await isSDKInstalled();
362
+ if (sdkAvailable) {
363
+ const sdkResult = await clearSDKConsole();
364
+ if (sdkResult.success && sdkResult.count) {
365
+ total += sdkResult.count;
366
+ }
367
+ }
368
+ return { content: [{ type: "text", text: `Cleared ${total} log entries from all devices.` }] };
369
+ });
370
+ }
371
+ //# sourceMappingURL=logTools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logTools.js","sourceRoot":"","sources":["../../src/tools/logTools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ export interface MetaToolOptions {
3
+ devMode: boolean;
4
+ httpMode: boolean;
5
+ }
6
+ export declare function registerMetaTools(server: McpServer, opts: MetaToolOptions): void;
7
+ //# sourceMappingURL=metaTools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metaTools.d.ts","sourceRoot":"","sources":["../../src/tools/metaTools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAWzE,MAAM,WAAW,eAAe;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;CACrB;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,GAAG,IAAI,CAgOhF"}
@@ -0,0 +1,186 @@
1
+ import { z } from "zod";
2
+ import { existsSync, unlinkSync } from "fs";
3
+ import { registerToolWithTelemetry, toolRegistry } from "../core/register.js";
4
+ import { getGuideOverview, getGuideByTopic, getAvailableTopics } from "../core/guides.js";
5
+ import { getLicenseStatus, getDashboardUrl } from "../core/license.js";
6
+ import { getServerVersion, TELEMETRY_JSONL_PATH } from "../core/telemetry.js";
7
+ import { getTargetPlatform } from "../core/state.js";
8
+ import { formatIssueBody, buildGitHubUrl } from "../core/feedback.js";
9
+ export function registerMetaTools(server, opts) {
10
+ // Tool: Usage guide for agents
11
+ registerToolWithTelemetry(server, "get_usage_guide", {
12
+ description: "Get recommended workflows and best practices for using the debugging tools. Call without parameters to see all available topics with short descriptions. Call with a topic parameter to get the full guide for that topic.",
13
+ inputSchema: {
14
+ topic: z
15
+ .string()
16
+ .optional()
17
+ .describe("Topic to get the full guide for. Available topics: setup, inspect, layout, interact, logs, network, state, bundle. Omit to see the overview of all topics.")
18
+ }
19
+ }, async ({ topic }) => {
20
+ if (!topic) {
21
+ return {
22
+ content: [{ type: "text", text: getGuideOverview() }]
23
+ };
24
+ }
25
+ const guide = getGuideByTopic(topic);
26
+ if (!guide) {
27
+ const available = getAvailableTopics().join(", ");
28
+ return {
29
+ content: [
30
+ {
31
+ type: "text",
32
+ text: `Unknown topic: "${topic}". Available topics: ${available}`
33
+ }
34
+ ],
35
+ isError: true
36
+ };
37
+ }
38
+ return {
39
+ content: [{ type: "text", text: guide }]
40
+ };
41
+ });
42
+ // Tool: License status
43
+ registerToolWithTelemetry(server, "get_license_status", {
44
+ description: "Get your installation ID and account status. Shows your unique Installation ID (used to link your account for future hosted features), current tier, and cache validity. The local product is free and uncapped — there are no usage limits.",
45
+ inputSchema: {},
46
+ }, async () => {
47
+ const status = getLicenseStatus();
48
+ const lines = [];
49
+ lines.push(`Installation ID: ${status.installationId}`);
50
+ lines.push(`License: ${status.tier.charAt(0).toUpperCase() + status.tier.slice(1)}`);
51
+ if (status.plan) {
52
+ lines.push(`Plan expires: ${status.plan.expiresAt}`);
53
+ }
54
+ lines.push(`Cache valid until: ${status.cacheExpiresAt}`);
55
+ // Open-core: the local product is free and uncapped — no usage limits to display.
56
+ // License validation still runs (identity + dormant billing channel for the future
57
+ // hosted tier), but there is nothing to gate. See decisions/open-core-strategy.md.
58
+ if (status.tier === "free") {
59
+ const dashboardUrl = getDashboardUrl();
60
+ if (dashboardUrl) {
61
+ lines.push("");
62
+ lines.push(`Link your account: ${dashboardUrl}/link?id=${status.installationId}`);
63
+ }
64
+ }
65
+ return {
66
+ content: [{ type: "text", text: lines.join("\n") }],
67
+ };
68
+ });
69
+ // Tool: Send feedback / bug report / feature request
70
+ registerToolWithTelemetry(server, "send_feedback", {
71
+ description: "Report feedback about the ExecBro MCP tools THEMSELVES — a tool (tap, get_screen_layout, get_logs, etc.) that behaved incorrectly, was confusing, was missing, or could work better. " +
72
+ "This is EXCLUSIVELY about your experience operating ExecBro's debugging tools. It is NOT for bugs in the user's app under test, and NOT for the feature or task you were working on in this session — keep that out of the report entirely. " +
73
+ "Auto-collects environment info. Returns a pre-filled GitHub issue URL and formatted issue body. " +
74
+ "Ask the user to open the URL and paste the body to submit.",
75
+ inputSchema: {
76
+ type: z.enum(["feedback", "feature_request", "bug"]).describe('Type, scoped to ExecBro tooling: "bug" = an ExecBro tool malfunctioned, "feature_request" = a missing ExecBro capability, "feedback" = general notes on using the ExecBro tools'),
77
+ title: z.string().describe("Short summary of the ExecBro tooling issue (becomes the GitHub issue title)"),
78
+ description: z.string().describe("What about ExecBro's tools went wrong or could be better: which tool, what you expected it to do, what it actually did. Do NOT describe the app feature or task you were debugging — only the tool's behavior."),
79
+ workflow_context: z.string().optional().describe("Which ExecBro tools were in use when the issue surfaced (e.g. \"tap → get_screen_layout retry loop\"). Name the tools and the debugging step — not the user's app goal.")
80
+ }
81
+ }, async ({ type, title, description, workflow_context }) => {
82
+ // Collect environment info
83
+ const serverVersion = getServerVersion();
84
+ const platform = process.platform;
85
+ const deviceType = getTargetPlatform();
86
+ const licenseStatus = getLicenseStatus();
87
+ const env = {
88
+ serverVersion,
89
+ platform,
90
+ deviceType,
91
+ licenseTier: licenseStatus.tier
92
+ };
93
+ const input = { type, title, description, workflowContext: workflow_context };
94
+ const issueBody = formatIssueBody(input, env);
95
+ const githubUrl = buildGitHubUrl(title, type);
96
+ const output = [
97
+ "## Feedback Report Ready",
98
+ "",
99
+ `**GitHub Issue URL:** ${githubUrl}`,
100
+ "",
101
+ "**Issue body to paste:**",
102
+ "",
103
+ "```markdown",
104
+ issueBody,
105
+ "```",
106
+ "",
107
+ "Please ask the user to:",
108
+ "1. Open the GitHub URL above",
109
+ "2. Paste the issue body into the description field",
110
+ "3. Review and submit the issue"
111
+ ].join("\n");
112
+ return {
113
+ content: [{ type: "text", text: output }]
114
+ };
115
+ });
116
+ // Dev-only tool: reset local telemetry data
117
+ if (opts.devMode) {
118
+ registerToolWithTelemetry(server, "reset_telemetry", {
119
+ description: "Clear local telemetry data file (/tmp/rn-devtools-telemetry.jsonl). Only available in development mode.",
120
+ inputSchema: {},
121
+ }, async () => {
122
+ if (existsSync(TELEMETRY_JSONL_PATH)) {
123
+ unlinkSync(TELEMETRY_JSONL_PATH);
124
+ return {
125
+ content: [{ type: "text", text: "Local telemetry data cleared." }],
126
+ };
127
+ }
128
+ return {
129
+ content: [{ type: "text", text: "No local telemetry data file found." }],
130
+ };
131
+ });
132
+ }
133
+ // HTTP-only meta-tool: dev (proxies any tool from the latest in-process registry)
134
+ if (opts.httpMode) {
135
+ server.registerTool("dev", {
136
+ description: 'Development meta-tool for hot-reload testing. Use action="list" for a compact tool listing (name + first description line); pass filter to narrow by substring or verbose=true for full descriptions. ' +
137
+ 'Use action="call" with tool and args to invoke any tool using the latest code after hot-reload. ' +
138
+ "This tool always reflects the latest server code without needing a session restart.",
139
+ inputSchema: {
140
+ action: z.enum(["list", "call"]).describe('"list" to see all tools, "call" to invoke a tool'),
141
+ tool: z.string().optional().describe("Tool name to call (required when action is call)"),
142
+ args: z.record(z.any()).optional().describe("Arguments to pass to the tool (optional, default {})"),
143
+ filter: z.string().optional().describe("list only: case-insensitive substring filter on tool name"),
144
+ verbose: z.boolean().optional().describe("list only: include full multi-line descriptions (default: first line only)"),
145
+ },
146
+ }, async ({ action, tool, args, filter, verbose }) => {
147
+ if (action === "list") {
148
+ const needle = filter?.toLowerCase();
149
+ const tools = Array.from(toolRegistry.entries())
150
+ .filter(([name]) => !needle || name.toLowerCase().includes(needle))
151
+ .map(([name, { config }]) => {
152
+ const full = config.description || "";
153
+ return {
154
+ name,
155
+ description: verbose ? full : full.split("\n")[0],
156
+ };
157
+ });
158
+ return {
159
+ content: [{ type: "text", text: JSON.stringify(tools, null, 2) }],
160
+ };
161
+ }
162
+ if (action === "call") {
163
+ if (!tool) {
164
+ return {
165
+ content: [{ type: "text", text: 'Error: "tool" parameter is required when action is "call"' }],
166
+ isError: true,
167
+ };
168
+ }
169
+ const entry = toolRegistry.get(tool);
170
+ if (!entry) {
171
+ return {
172
+ content: [{ type: "text", text: `Error: Tool "${tool}" not found. Use action="list" to see available tools.` }],
173
+ isError: true,
174
+ };
175
+ }
176
+ return await entry.handler(args || {});
177
+ }
178
+ return {
179
+ content: [{ type: "text", text: 'Error: action must be "list" or "call"' }],
180
+ isError: true,
181
+ };
182
+ });
183
+ }
184
+ }
185
+ /* eslint-enable @typescript-eslint/no-explicit-any */
186
+ //# sourceMappingURL=metaTools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metaTools.js","sourceRoot":"","sources":["../../src/tools/metaTools.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAE5C,OAAO,EAAE,yBAAyB,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC1F,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAOtE,MAAM,UAAU,iBAAiB,CAAC,MAAiB,EAAE,IAAqB;IACtE,+BAA+B;IAC/B,yBAAyB,CACrB,MAAM,EACN,iBAAiB,EACjB;QACI,WAAW,EACP,4NAA4N;QAChO,WAAW,EAAE;YACT,KAAK,EAAE,CAAC;iBACH,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACL,4JAA4J,CAC/J;SACR;KACJ,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;QAChB,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,OAAO;gBACH,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,CAAC;aACxD,CAAC;QACN,CAAC;QAED,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,MAAM,SAAS,GAAG,kBAAkB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClD,OAAO;gBACH,OAAO,EAAE;oBACL;wBACI,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,mBAAmB,KAAK,wBAAwB,SAAS,EAAE;qBACpE;iBACJ;gBACD,OAAO,EAAE,IAAI;aAChB,CAAC;QACN,CAAC;QAED,OAAO;YACH,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;SAC3C,CAAC;IACN,CAAC,CACJ,CAAC;IAEF,uBAAuB;IACvB,yBAAyB,CACrB,MAAM,EACN,oBAAoB,EACpB;QACI,WAAW,EACP,8OAA8O;QAClP,WAAW,EAAE,EAAE;KAClB,EACD,KAAK,IAAI,EAAE;QACP,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;QAClC,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,KAAK,CAAC,IAAI,CAAC,oBAAoB,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;QACxD,KAAK,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAErF,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YACd,KAAK,CAAC,IAAI,CAAC,iBAAiB,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QACzD,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,sBAAsB,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;QAE1D,kFAAkF;QAClF,mFAAmF;QACnF,mFAAmF;QAEnF,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACzB,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;YACvC,IAAI,YAAY,EAAE,CAAC;gBACf,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACf,KAAK,CAAC,IAAI,CAAC,sBAAsB,YAAY,YAAY,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;YACtF,CAAC;QACL,CAAC;QAED,OAAO;YACH,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;SAC/D,CAAC;IACN,CAAC,CACJ,CAAC;IAEF,qDAAqD;IACrD,yBAAyB,CACrB,MAAM,EACN,eAAe,EACf;QACI,WAAW,EACP,uLAAuL;YACvL,8OAA8O;YAC9O,kGAAkG;YAClG,4DAA4D;QAChE,WAAW,EAAE;YACT,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,iBAAiB,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,iLAAiL,CAAC;YAChP,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6EAA6E,CAAC;YACzG,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gNAAgN,CAAC;YAClP,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yKAAyK,CAAC;SAC9N;KACJ,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,EAAE,EAAE;QACrD,2BAA2B;QAC3B,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;QACzC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QAClC,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAC;QACvC,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;QAEzC,MAAM,GAAG,GAAG;YACR,aAAa;YACb,QAAQ;YACR,UAAU;YACV,WAAW,EAAE,aAAa,CAAC,IAAI;SAClC,CAAC;QAEF,MAAM,KAAK,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,gBAAgB,EAAE,CAAC;QAC9E,MAAM,SAAS,GAAG,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC9C,MAAM,SAAS,GAAG,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAE9C,MAAM,MAAM,GAAG;YACX,0BAA0B;YAC1B,EAAE;YACF,yBAAyB,SAAS,EAAE;YACpC,EAAE;YACF,0BAA0B;YAC1B,EAAE;YACF,aAAa;YACb,SAAS;YACT,KAAK;YACL,EAAE;YACF,yBAAyB;YACzB,8BAA8B;YAC9B,oDAAoD;YACpD,gCAAgC;SACnC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEb,OAAO;YACH,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;SACrD,CAAC;IACN,CAAC,CACJ,CAAC;IAEF,4CAA4C;IAC5C,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,yBAAyB,CACrB,MAAM,EACN,iBAAiB,EACjB;YACI,WAAW,EACP,yGAAyG;YAC7G,WAAW,EAAE,EAAE;SAClB,EACD,KAAK,IAAI,EAAE;YACP,IAAI,UAAU,CAAC,oBAAoB,CAAC,EAAE,CAAC;gBACnC,UAAU,CAAC,oBAAoB,CAAC,CAAC;gBACjC,OAAO;oBACH,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,+BAA+B,EAAE,CAAC;iBAC9E,CAAC;YACN,CAAC;YACD,OAAO;gBACH,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,qCAAqC,EAAE,CAAC;aACpF,CAAC;QACN,CAAC,CACJ,CAAC;IACN,CAAC;IAED,kFAAkF;IAClF,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,MAAM,CAAC,YAAY,CACf,KAAK,EACL;YACI,WAAW,EACP,wMAAwM;gBACxM,kGAAkG;gBAClG,qFAAqF;YACzF,WAAW,EAAE;gBACT,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,kDAAkD,CAAC;gBAC7F,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC;gBACxF,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sDAAsD,CAAC;gBACnG,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2DAA2D,CAAC;gBACnG,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4EAA4E,CAAC;aACzH;SACJ,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAA8G,EAAE,EAAE;YAC1J,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;gBACpB,MAAM,MAAM,GAAG,MAAM,EAAE,WAAW,EAAE,CAAC;gBACrC,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;qBAC3C,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;qBAClE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;oBACxB,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC;oBACtC,OAAO;wBACH,IAAI;wBACJ,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;qBACpD,CAAC;gBACN,CAAC,CAAC,CAAC;gBACP,OAAO;oBACH,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;iBAC7E,CAAC;YACN,CAAC;YAED,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;gBACpB,IAAI,CAAC,IAAI,EAAE,CAAC;oBACR,OAAO;wBACH,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,2DAA2D,EAAE,CAAC;wBACvG,OAAO,EAAE,IAAI;qBAChB,CAAC;gBACN,CAAC;gBACD,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACrC,IAAI,CAAC,KAAK,EAAE,CAAC;oBACT,OAAO;wBACH,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,gBAAgB,IAAI,wDAAwD,EAAE,CAAC;wBACxH,OAAO,EAAE,IAAI;qBAChB,CAAC;gBACN,CAAC;gBACD,OAAO,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;YAC3C,CAAC;YAED,OAAO;gBACH,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,wCAAwC,EAAE,CAAC;gBACpF,OAAO,EAAE,IAAI;aAChB,CAAC;QACN,CAAC,CACJ,CAAC;IACN,CAAC;AACL,CAAC;AACD,sDAAsD"}
@@ -0,0 +1,3 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ export declare function registerNetworkTools(server: McpServer): void;
3
+ //# sourceMappingURL=networkTools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"networkTools.d.ts","sourceRoot":"","sources":["../../src/tools/networkTools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAsBzE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA2f5D"}