rnxsim 0.1.335 → 0.1.337

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 (272) hide show
  1. package/README.md +104 -76
  2. package/cli/auth.ts +2 -2
  3. package/cli/bin.ts +7 -3
  4. package/cli/bridge-flow-runner.ts +2 -2
  5. package/cli/commands/agent-wrapper.ts +1 -1
  6. package/cli/commands/agent.ts +12 -12
  7. package/cli/commands/app-fonts.ts +1 -1
  8. package/cli/commands/assert.ts +7 -7
  9. package/cli/commands/auth.ts +4 -4
  10. package/cli/commands/camera.ts +13 -13
  11. package/cli/commands/cleanup.ts +6 -6
  12. package/cli/commands/compat.ts +4 -4
  13. package/cli/commands/config.ts +2 -2
  14. package/cli/commands/control.ts +37 -43
  15. package/cli/commands/cpu-profile.ts +2 -2
  16. package/cli/commands/daemon-mac-app.ts +2 -2
  17. package/cli/commands/daemon.ts +12 -12
  18. package/cli/commands/debug.ts +22 -22
  19. package/cli/commands/desktop.ts +3 -3
  20. package/cli/commands/detox.ts +17 -17
  21. package/cli/commands/device.ts +9 -9
  22. package/cli/commands/diagnose.ts +11 -11
  23. package/cli/commands/electron.ts +7 -7
  24. package/cli/commands/film.ts +6 -6
  25. package/cli/commands/inspect/core.ts +6 -7
  26. package/cli/commands/inspect/find.ts +2 -2
  27. package/cli/commands/inspect.ts +36 -36
  28. package/cli/commands/install-desktop.ts +8 -8
  29. package/cli/commands/login.ts +6 -6
  30. package/cli/commands/maestro-generate.ts +2 -2
  31. package/cli/commands/maestro.ts +23 -23
  32. package/cli/commands/mode.ts +4 -4
  33. package/cli/commands/no-bridge-hint.ts +9 -9
  34. package/cli/commands/perf.ts +11 -11
  35. package/cli/commands/permissions.ts +5 -5
  36. package/cli/commands/profile.ts +11 -11
  37. package/cli/commands/react.ts +15 -15
  38. package/cli/commands/record.ts +15 -15
  39. package/cli/commands/report-issue.ts +2 -2
  40. package/cli/commands/reset.ts +2 -2
  41. package/cli/commands/runtime.ts +18 -18
  42. package/cli/commands/screenshot-mode.ts +5 -5
  43. package/cli/commands/screenshot.ts +12 -12
  44. package/cli/commands/screenshots-capture.ts +7 -7
  45. package/cli/commands/screenshots.ts +6 -6
  46. package/cli/commands/serve.ts +6 -6
  47. package/cli/commands/setup.ts +13 -15
  48. package/cli/commands/skills.ts +14 -14
  49. package/cli/commands/slides.ts +19 -23
  50. package/cli/commands/state.ts +2 -2
  51. package/cli/commands/storage.ts +3 -3
  52. package/cli/commands/telemetry.ts +1 -1
  53. package/cli/commands/three-mode.ts +16 -16
  54. package/cli/commands/timeline.ts +4 -4
  55. package/cli/commands/upgrade.ts +1 -1
  56. package/cli/commands/upload.ts +11 -11
  57. package/cli/commands/version.ts +3 -5
  58. package/cli/commands/what-happened.ts +11 -11
  59. package/cli/drivers/electron.ts +3 -3
  60. package/cli/hints.ts +8 -8
  61. package/cli/recording-access.ts +1 -1
  62. package/cli/ws-bridge.ts +5 -5
  63. package/dist-cli/bin.js +5 -5
  64. package/dist-cli/chunks/{agent-XSJMAFVA.js → agent-QQ3RJNRY.js} +14 -14
  65. package/dist-cli/chunks/{agent-wrapper-NFLJ5K64.js → agent-wrapper-M6SQSMRY.js} +3 -3
  66. package/dist-cli/chunks/app-fonts-F6NDV3XC.js +4 -0
  67. package/dist-cli/chunks/{assert-ILAXIYB5.js → assert-5VB3KQNK.js} +12 -12
  68. package/dist-cli/chunks/auth-PFXODKFN.js +12 -0
  69. package/dist-cli/chunks/{beta-TDR6UKJU.js → beta-WUWYHT4F.js} +2 -2
  70. package/dist-cli/chunks/camera-V3MMTKP7.js +33 -0
  71. package/dist-cli/chunks/{chunk-INBPUR4T.js → chunk-2ANFH72P.js} +11 -11
  72. package/dist-cli/chunks/chunk-2GIA5T6B.js +74 -0
  73. package/dist-cli/chunks/{chunk-GP6QEBZA.js → chunk-4FRSEZ7Z.js} +1 -1
  74. package/dist-cli/chunks/{chunk-USGOQ3YJ.js → chunk-4GXBZHNA.js} +2 -2
  75. package/dist-cli/chunks/{chunk-R3CMECGC.js → chunk-4HESY5E7.js} +4 -4
  76. package/dist-cli/chunks/{chunk-WKT7YM5Q.js → chunk-4VJEXQGD.js} +1 -1
  77. package/dist-cli/chunks/{chunk-FE6ZHPKD.js → chunk-5LJNNHZH.js} +1 -1
  78. package/dist-cli/chunks/{chunk-I2HQB5NN.js → chunk-5QXGSTYI.js} +2 -2
  79. package/dist-cli/chunks/{chunk-FJSHIWAM.js → chunk-5SHAOQHJ.js} +2 -2
  80. package/dist-cli/chunks/{chunk-CGZWLSYD.js → chunk-5UPRBMIG.js} +1 -1
  81. package/dist-cli/chunks/{chunk-ZTM2MKNI.js → chunk-5ZEFRPCC.js} +1 -1
  82. package/dist-cli/chunks/{chunk-RTD3CPDQ.js → chunk-6ART4XVJ.js} +23 -23
  83. package/dist-cli/chunks/{chunk-MTD6IAEA.js → chunk-6CAUT2LH.js} +1 -1
  84. package/dist-cli/chunks/{chunk-ZYHCWCMM.js → chunk-7ATIH7OU.js} +1 -1
  85. package/dist-cli/chunks/{chunk-RVUGKXJD.js → chunk-7Q4QKHMA.js} +1 -1
  86. package/dist-cli/chunks/{chunk-MTNIDSOA.js → chunk-ABK2V2PR.js} +1 -1
  87. package/dist-cli/chunks/{chunk-TL4DNDDY.js → chunk-B53ILAHI.js} +2 -2
  88. package/dist-cli/chunks/{chunk-POC3QTA6.js → chunk-BSSVLFZR.js} +2 -2
  89. package/dist-cli/chunks/chunk-BVOBXTPN.js +30 -0
  90. package/dist-cli/chunks/{chunk-4KC35DMK.js → chunk-CPDEUWL5.js} +2 -2
  91. package/dist-cli/chunks/{chunk-HNQLZZJA.js → chunk-DINU267S.js} +2 -2
  92. package/dist-cli/chunks/{chunk-DCDKJ4NC.js → chunk-DQQ4CZVC.js} +2 -2
  93. package/dist-cli/chunks/{chunk-JWAY6DIH.js → chunk-EDWN2HOO.js} +18 -18
  94. package/dist-cli/chunks/{chunk-3CS4EUMG.js → chunk-EWVG4A3B.js} +2 -2
  95. package/dist-cli/chunks/{chunk-RTEJXUXN.js → chunk-F3NKCQHM.js} +6 -6
  96. package/dist-cli/chunks/{chunk-M7CBQ5I4.js → chunk-GEAGFYKP.js} +1 -1
  97. package/dist-cli/chunks/chunk-GGNH44PZ.js +5 -0
  98. package/dist-cli/chunks/{chunk-YSUIYK6B.js → chunk-HAHJJJUC.js} +2 -2
  99. package/dist-cli/chunks/chunk-HPJ5EKIZ.js +4 -0
  100. package/dist-cli/chunks/{chunk-IN2PZBQD.js → chunk-IBTHGFKE.js} +2 -2
  101. package/dist-cli/chunks/{chunk-ZZWO6Y7X.js → chunk-J6BYRRZQ.js} +2 -2
  102. package/dist-cli/chunks/{chunk-6Y3PVPTF.js → chunk-JK4OZ2TQ.js} +5 -5
  103. package/dist-cli/chunks/{chunk-PO3TOAED.js → chunk-KGQAO25M.js} +2 -2
  104. package/dist-cli/chunks/{chunk-J7XFINJG.js → chunk-L6UUIQE7.js} +2 -2
  105. package/dist-cli/chunks/{chunk-35XNGT5C.js → chunk-LXYLCETR.js} +1 -1
  106. package/dist-cli/chunks/{chunk-JWK5WD44.js → chunk-LZAL3DMP.js} +2 -2
  107. package/dist-cli/chunks/{chunk-3ZDOPKHE.js → chunk-M43UU7UG.js} +4 -4
  108. package/dist-cli/chunks/{chunk-ROPHZJ6P.js → chunk-M4LGUVBM.js} +2 -2
  109. package/dist-cli/chunks/{chunk-RELRA5VW.js → chunk-NCG6C5AH.js} +2 -2
  110. package/dist-cli/chunks/{chunk-42KDXJUD.js → chunk-NR5TSR2Y.js} +2 -2
  111. package/dist-cli/chunks/{chunk-R2UL5VFY.js → chunk-OCPWXT73.js} +3 -3
  112. package/dist-cli/chunks/{chunk-VV4MXLFR.js → chunk-ODKS6JUJ.js} +1 -1
  113. package/dist-cli/chunks/{chunk-F33DUJGG.js → chunk-R2WBREGQ.js} +1 -1
  114. package/dist-cli/chunks/chunk-RKY3ZNTA.js +5 -0
  115. package/dist-cli/chunks/{chunk-MGGRL2Z2.js → chunk-SW7BHOMO.js} +9 -9
  116. package/dist-cli/chunks/{chunk-GVKISFQ3.js → chunk-TJTLXG3R.js} +1 -1
  117. package/dist-cli/chunks/chunk-TNI4PW75.js +124 -0
  118. package/dist-cli/chunks/{chunk-CL3PREIE.js → chunk-UWEDNDND.js} +2 -2
  119. package/dist-cli/chunks/{chunk-IV36DY6M.js → chunk-WRID5SBV.js} +1 -1
  120. package/dist-cli/chunks/{chunk-42ALI64M.js → chunk-WUYI3XJ5.js} +2 -2
  121. package/dist-cli/chunks/{chunk-6VN5ULGQ.js → chunk-X7MHCEGG.js} +2 -2
  122. package/dist-cli/chunks/chunk-XIQFYLWD.js +15 -0
  123. package/dist-cli/chunks/{chunk-LCVUJCRJ.js → chunk-ZUK5ZQU7.js} +1 -1
  124. package/dist-cli/chunks/{cleanup-X6ZRPFDV.js → cleanup-6WBS3MUO.js} +10 -10
  125. package/dist-cli/chunks/cli-version-HUQCDGMA.js +4 -0
  126. package/dist-cli/chunks/{compat-VRXJ5J56.js → compat-2WOPKJYK.js} +9 -9
  127. package/dist-cli/chunks/{config-LHPPE4EP.js → config-FPD7WUYB.js} +5 -5
  128. package/dist-cli/chunks/{control-TVTNGSSF.js → control-B3XNER7I.js} +2 -2
  129. package/dist-cli/chunks/daemon-T4D4X2P5.js +4 -0
  130. package/dist-cli/chunks/{debug-EUHBBPGM.js → debug-LKV5CEAV.js} +17 -17
  131. package/dist-cli/chunks/desktop-EMDPOYQT.js +31 -0
  132. package/dist-cli/chunks/detox-4J4UTZE7.js +52 -0
  133. package/dist-cli/chunks/{device-PONITUZJ.js → device-PMZ7RPXQ.js} +11 -11
  134. package/dist-cli/chunks/{diagnose-2PN4K4L2.js → diagnose-MLEP727D.js} +12 -12
  135. package/dist-cli/chunks/{disk-cleanup-U2PQLOEW.js → disk-cleanup-CVEDIPEE.js} +2 -2
  136. package/dist-cli/chunks/drivers-NTUKJEL6.js +4 -0
  137. package/dist-cli/chunks/{film-XGZCFTQL.js → film-4RNECABF.js} +9 -9
  138. package/dist-cli/chunks/flow-5IOCAHVO.js +4 -0
  139. package/dist-cli/chunks/help-NUJUYEWP.js +4 -0
  140. package/dist-cli/chunks/{hidden-runtime-alias-I4MYF5CO.js → hidden-runtime-alias-YIF25W4F.js} +2 -2
  141. package/dist-cli/chunks/{home-paths-YRAPZ5LE.js → home-paths-WNJCCCCZ.js} +2 -2
  142. package/dist-cli/chunks/inspect-MFEIYUCN.js +4 -0
  143. package/dist-cli/chunks/install-desktop-NB65KI4D.js +4 -0
  144. package/dist-cli/chunks/{login-ZMAIAQ6F.js → login-VEHHGN42.js} +6 -6
  145. package/dist-cli/chunks/{logout-UQZ5JBJU.js → logout-VE7PNXL2.js} +2 -2
  146. package/dist-cli/chunks/{maestro-BQYKDUC4.js → maestro-ZXHTDEOI.js} +25 -25
  147. package/dist-cli/chunks/{maestro-generate-VQYMMQJ5.js → maestro-generate-TK33E2Z6.js} +3 -3
  148. package/dist-cli/chunks/mode-ZDKJ56NT.js +26 -0
  149. package/dist-cli/chunks/{optional-demo-registry-DUWHCLGD.js → optional-demo-registry-GBZ3WVDW.js} +2 -2
  150. package/dist-cli/chunks/{perf-7RAU7WRZ.js → perf-JXNZOUKW.js} +28 -28
  151. package/dist-cli/chunks/permissions-WQ62PW7Y.js +13 -0
  152. package/dist-cli/chunks/record-4S3ZMDIO.js +72 -0
  153. package/dist-cli/chunks/{report-issue-P376KFFU.js → report-issue-KKBADTWO.js} +4 -4
  154. package/dist-cli/chunks/reset-H5XIISJE.js +4 -0
  155. package/dist-cli/chunks/runtime-FK7EEMWA.js +4 -0
  156. package/dist-cli/chunks/{screenshot-command-NE7BKTQ2.js → screenshot-command-42U5MVQL.js} +34 -34
  157. package/dist-cli/chunks/{screenshot-layers-UE4R64PZ.js → screenshot-layers-4G42AHOX.js} +2 -2
  158. package/dist-cli/chunks/{screenshots-capture-ULXPLXMC.js → screenshots-capture-HMQ2OO3I.js} +11 -11
  159. package/dist-cli/chunks/{serve-P7BT4XHR.js → serve-S4V5EDW2.js} +16 -16
  160. package/dist-cli/chunks/setup-T43V7GA6.js +32 -0
  161. package/dist-cli/chunks/{skills-NTRYKJSF.js → skills-O426K26J.js} +16 -16
  162. package/dist-cli/chunks/{state-4D5YAM47.js → state-ZEEPDKJG.js} +5 -5
  163. package/dist-cli/chunks/storage-4GQLOFGG.js +37 -0
  164. package/dist-cli/chunks/store-RFMSNWLJ.js +4 -0
  165. package/dist-cli/chunks/telemetry-NFAAPSMN.js +4 -0
  166. package/dist-cli/chunks/{timeline-GZNFGD3Q.js → timeline-ONCYX7KW.js} +6 -6
  167. package/dist-cli/chunks/{upgrade-A46D6PEY.js → upgrade-A36T52AM.js} +2 -2
  168. package/dist-cli/chunks/upload-36O32DII.js +4 -0
  169. package/dist-cli/chunks/version-67HA253N.js +6 -0
  170. package/dist-cli/chunks/{web-H2IXO5SC.js → web-PWXQHQIE.js} +2 -2
  171. package/dist-cli/chunks/{what-happened-Z7UII5GH.js → what-happened-WNXE622R.js} +16 -16
  172. package/dist-lib/agent-daemon-client.cjs +5 -5
  173. package/dist-lib/agent-events.cjs +1 -1
  174. package/dist-lib/agent-identity.cjs +1 -1
  175. package/dist-lib/agent-sessions.cjs +4 -4
  176. package/dist-lib/attached-projects.cjs +1 -1
  177. package/dist-lib/auth/shared-session.cjs +1 -1
  178. package/dist-lib/backend-origin.cjs +1 -1
  179. package/dist-lib/beta.cjs +1 -1
  180. package/dist-lib/beta.mjs +1 -1
  181. package/dist-lib/bridge-constants.cjs +1 -1
  182. package/dist-lib/bridge-contract.cjs +1 -1
  183. package/dist-lib/cli-constants.cjs +1 -1
  184. package/dist-lib/config.cjs +1 -1
  185. package/dist-lib/detox/index.cjs +1 -1
  186. package/dist-lib/dev-bundle-resolution.cjs +1 -1
  187. package/dist-lib/home-paths.cjs +1 -1
  188. package/dist-lib/host/bridge-host.cjs +7 -7
  189. package/dist-lib/host/fetch-proxy-handler.cjs +1 -1
  190. package/dist-lib/host/fetch-proxy-overrides.cjs +1 -1
  191. package/dist-lib/host/fetch-proxy-overrides.mjs +1 -1
  192. package/dist-lib/host/websocket-proxy.cjs +1 -1
  193. package/dist-lib/index.cjs +248 -98
  194. package/dist-lib/jump-to-source-babel.cjs +1 -1
  195. package/dist-lib/menu.cjs +2 -2
  196. package/dist-lib/menu.mjs +2 -2
  197. package/dist-lib/metro-host-modules/react-dom.js +6 -0
  198. package/dist-lib/metro-host-modules/react-native-web.js +6 -0
  199. package/dist-lib/metro-host-modules/react-native.js +6 -0
  200. package/dist-lib/metro-host-modules/react.js +6 -0
  201. package/dist-lib/metro-host-modules/react__jsx-dev-runtime.js +6 -0
  202. package/dist-lib/metro-host-modules/react__jsx-runtime.js +6 -0
  203. package/dist-lib/metro-production-bundle.cjs +72 -0
  204. package/dist-lib/metro-production-bundle.mjs +44 -0
  205. package/dist-lib/metro.cjs +152 -8
  206. package/dist-lib/profiles.cjs +1 -1
  207. package/dist-lib/public-brand.cjs +2 -2
  208. package/dist-lib/react-native-host-modules.cjs +50 -0
  209. package/dist-lib/render-mode.cjs +1 -1
  210. package/dist-lib/scripts/dev-server-scanner.cjs +1 -1
  211. package/dist-lib/sdk.cjs +6 -7
  212. package/dist-lib/sdk.mjs +6 -7
  213. package/dist-lib/skills.cjs +71 -77
  214. package/dist-lib/vite.cjs +104 -85
  215. package/package.json +15 -2
  216. package/scripts/preuninstall.cjs +1 -1
  217. package/skills/contrast/SKILL.md +67 -75
  218. package/skills/rnx-debug/SKILL.md +84 -84
  219. package/skills/rnx-perf/SKILL.md +8 -8
  220. package/skills/rnx-setup/SKILL.md +54 -54
  221. package/skills/rnx-test/SKILL.md +35 -35
  222. package/skills/rnx-visual/SKILL.md +18 -18
  223. package/src/agent-daemon-client.ts +2 -2
  224. package/src/agent-sessions.ts +2 -2
  225. package/src/connect.ts +6 -6
  226. package/src/disk-cleanup.ts +1 -1
  227. package/src/home-paths.ts +1 -1
  228. package/src/host/bridge-host.ts +6 -6
  229. package/src/index.ts +1 -1
  230. package/src/metro-host-modules/react-dom.js +6 -0
  231. package/src/metro-host-modules/react-native-web.js +6 -0
  232. package/src/metro-host-modules/react-native.js +6 -0
  233. package/src/metro-host-modules/react.js +6 -0
  234. package/src/metro-host-modules/react__jsx-dev-runtime.js +6 -0
  235. package/src/metro-host-modules/react__jsx-runtime.js +6 -0
  236. package/src/metro-plugin.ts +249 -10
  237. package/src/metro-production-bundle.ts +51 -0
  238. package/src/public-brand.ts +1 -1
  239. package/src/react-native-host-modules.ts +25 -0
  240. package/src/runtime-assets.ts +1 -1
  241. package/src/sim-client.ts +1 -1
  242. package/src/vite-plugin-one.ts +171 -145
  243. package/dist-cli/chunks/app-fonts-L3UXFYVE.js +0 -4
  244. package/dist-cli/chunks/auth-ISX2EUQL.js +0 -12
  245. package/dist-cli/chunks/camera-4SWTNJUA.js +0 -33
  246. package/dist-cli/chunks/chunk-BRHZEZKN.js +0 -124
  247. package/dist-cli/chunks/chunk-EJPYPJWP.js +0 -5
  248. package/dist-cli/chunks/chunk-KWCD5MOK.js +0 -15
  249. package/dist-cli/chunks/chunk-MJ7QGY7Z.js +0 -4
  250. package/dist-cli/chunks/chunk-RSA4XWHN.js +0 -5
  251. package/dist-cli/chunks/chunk-S3EIOAWZ.js +0 -74
  252. package/dist-cli/chunks/chunk-TYANJQLO.js +0 -30
  253. package/dist-cli/chunks/cli-version-NZUSWKZR.js +0 -4
  254. package/dist-cli/chunks/daemon-XUEC47EC.js +0 -4
  255. package/dist-cli/chunks/desktop-LLHMP4A3.js +0 -31
  256. package/dist-cli/chunks/detox-QLNWLXA4.js +0 -52
  257. package/dist-cli/chunks/drivers-7IU37M2E.js +0 -4
  258. package/dist-cli/chunks/flow-NZZLR4BN.js +0 -4
  259. package/dist-cli/chunks/help-D7URIJRD.js +0 -4
  260. package/dist-cli/chunks/inspect-TJYWKY56.js +0 -4
  261. package/dist-cli/chunks/install-desktop-LD3W5RS7.js +0 -4
  262. package/dist-cli/chunks/mode-ZQ6H7KWM.js +0 -26
  263. package/dist-cli/chunks/permissions-DRZ3HCFL.js +0 -13
  264. package/dist-cli/chunks/record-J5JAYW4Y.js +0 -72
  265. package/dist-cli/chunks/reset-KXYRDEFU.js +0 -4
  266. package/dist-cli/chunks/runtime-66CEPOG6.js +0 -4
  267. package/dist-cli/chunks/setup-QO5KZAX3.js +0 -32
  268. package/dist-cli/chunks/storage-X2K2MDPX.js +0 -37
  269. package/dist-cli/chunks/store-TUJPIRTT.js +0 -4
  270. package/dist-cli/chunks/telemetry-CF5DVEKI.js +0 -4
  271. package/dist-cli/chunks/upload-UIQJIBEZ.js +0 -4
  272. package/dist-cli/chunks/version-CMBB3FXL.js +0 -6
@@ -30,17 +30,17 @@ const MAESTRO_DIRS = ['.maestro', 'maestro']
30
30
 
31
31
  function printHelp() {
32
32
  console.log(`
33
- rnxsim maestro — author and run Maestro YAML flows against rnx
33
+ rnx maestro — author and run Maestro YAML flows against rnx
34
34
 
35
35
  usage:
36
- rnxsim maestro # discover .maestro/ or maestro/ in cwd, run all
37
- rnxsim maestro test <flow-or-dir> # mirrors "maestro test"
38
- rnxsim maestro test .maestro/ # every *.yaml / *.yml in a directory
39
- rnxsim maestro generate "<goal>" # generate, run, and upload a Maestro flow
40
- rnxsim maestro start|keep|end # author a flow from live CLI actions
41
- rnxsim maestro validate <flow> # validate a Maestro YAML file
42
- rnxsim maestro init # scaffold .maestro/login.yaml
43
- rnxsim maestro --list-compat # print supported/unsupported verbs
36
+ rnx maestro # discover .maestro/ or maestro/ in cwd, run all
37
+ rnx maestro test <flow-or-dir> # mirrors "maestro test"
38
+ rnx maestro test .maestro/ # every *.yaml / *.yml in a directory
39
+ rnx maestro generate "<goal>" # generate, run, and upload a Maestro flow
40
+ rnx maestro start|keep|end # author a flow from live CLI actions
41
+ rnx maestro validate <flow> # validate a Maestro YAML file
42
+ rnx maestro init # scaffold .maestro/login.yaml
43
+ rnx maestro --list-compat # print supported/unsupported verbs
44
44
 
45
45
  options:
46
46
  --env KEY=VALUE set env vars for \${KEY} interpolation (repeatable)
@@ -58,19 +58,19 @@ options:
58
58
  --slow <ms> delay between steps for natural pacing
59
59
 
60
60
  examples:
61
- rnxsim maestro test .maestro/login.yaml
62
- rnxsim maestro test .maestro/
63
- rnxsim maestro generate "log in and verify the welcome screen"
64
- rnxsim maestro start
65
- rnxsim maestro end --output .maestro/login.yaml --validate
66
- rnxsim maestro --env USERNAME=alice test .maestro/login.yaml
67
- rnxsim maestro init
61
+ rnx maestro test .maestro/login.yaml
62
+ rnx maestro test .maestro/
63
+ rnx maestro generate "log in and verify the welcome screen"
64
+ rnx maestro start
65
+ rnx maestro end --output .maestro/login.yaml --validate
66
+ rnx maestro --env USERNAME=alice test .maestro/login.yaml
67
+ rnx maestro init
68
68
  `)
69
69
  }
70
70
 
71
71
  function printCompatMatrix() {
72
72
  console.log(`
73
- rnxsim maestro — compatibility matrix
73
+ rnx maestro — compatibility matrix
74
74
 
75
75
  supported verbs:
76
76
  launchApp, stopApp, clearState, clearKeychain (warn-only),
@@ -246,8 +246,8 @@ async function runInit(cwd: string): Promise<number> {
246
246
  console.error(` error: ${outPath} already exists`)
247
247
  return 1
248
248
  }
249
- const starter = `# rnxsim maestro starter flow — drop-in compatible with the maestro cli.
250
- # run: rnxsim maestro test .maestro/login.yaml
249
+ const starter = `# rnx maestro starter flow — drop-in compatible with the maestro cli.
250
+ # run: rnx maestro test .maestro/login.yaml
251
251
  appId: com.example.app
252
252
  ---
253
253
  - launchApp
@@ -262,7 +262,7 @@ appId: com.example.app
262
262
  `
263
263
  fs.writeFileSync(outPath, starter, 'utf8')
264
264
  console.log(` + wrote ${outPath}`)
265
- console.log(` next: rnxsim maestro test .maestro/login.yaml`)
265
+ console.log(` next: rnx maestro test .maestro/login.yaml`)
266
266
  return 0
267
267
  }
268
268
 
@@ -343,8 +343,8 @@ export async function runMaestro(
343
343
  console.error(`
344
344
  error: no maestro flows found.
345
345
  expected one of: ${MAESTRO_DIRS.map((d) => `./${d}/`).join(', ')}
346
- or pass a flow explicitly: rnxsim maestro test path/to/flow.yaml
347
- or scaffold a starter flow: rnxsim maestro init
346
+ or pass a flow explicitly: rnx maestro test path/to/flow.yaml
347
+ or scaffold a starter flow: rnx maestro init
348
348
  `)
349
349
  return 1
350
350
  }
@@ -368,7 +368,7 @@ export async function runMaestro(
368
368
  }
369
369
 
370
370
  console.log(`
371
- rnxsim maestro — ${files.length} flow${files.length === 1 ? '' : 's'}
371
+ rnx maestro — ${files.length} flow${files.length === 1 ? '' : 's'}
372
372
  root: ${path.relative(cwd, target) || '.'}
373
373
  `)
374
374
 
@@ -27,12 +27,12 @@ function withoutSubcommand(args: string[], index: number): string[] {
27
27
 
28
28
  function printHelp(): void {
29
29
  console.log(`
30
- rnxsim mode — toggle live display modes
30
+ rnx mode — toggle live display modes
31
31
 
32
32
  usage:
33
- rnxsim mode screenshot [on|off|toggle]
34
- rnxsim mode three [on|off|toggle]
35
- rnxsim mode three configure [options]
33
+ rnx mode screenshot [on|off|toggle]
34
+ rnx mode three [on|off|toggle]
35
+ rnx mode three configure [options]
36
36
  `)
37
37
  }
38
38
 
@@ -4,13 +4,13 @@ import { findDesktopCompanion } from '../desktop-companion'
4
4
  import type { BridgeSimInfo } from '../ws-bridge'
5
5
 
6
6
  export function printMissingCompanionHint() {
7
- console.error(' no rnxsim desktop companion found.')
7
+ console.error(' no rnx desktop companion found.')
8
8
  console.error('')
9
9
  console.error(' install the desktop app:')
10
- console.error(' rnxsim desktop install')
10
+ console.error(' rnx desktop install')
11
11
  console.error('')
12
12
  console.error(' or run setup to install the background daemon:')
13
- console.error(' rnxsim setup')
13
+ console.error(' rnx setup')
14
14
  console.error('')
15
15
  }
16
16
 
@@ -19,12 +19,12 @@ export function printMissingBridgeHint(port: number) {
19
19
  console.log(` note: no rnx bridge detected on port ${port}`)
20
20
  if (companion) {
21
21
  console.log(` launch the installed companion with:`)
22
- console.log(` rnxsim desktop`)
22
+ console.log(` rnx desktop`)
23
23
  return
24
24
  }
25
25
  console.log('')
26
- console.log(' run `rnxsim setup` to install the background daemon,')
27
- console.log(' or run `rnxsim serve` in another shell for a foreground bridge.')
26
+ console.log(' run `rnx setup` to install the background daemon,')
27
+ console.log(' or run `rnx serve` in another shell for a foreground bridge.')
28
28
  }
29
29
 
30
30
  export function printMissingSimHint(port: number) {
@@ -33,10 +33,10 @@ export function printMissingSimHint(port: number) {
33
33
  console.error('')
34
34
  console.error(' start your app dev server, then open it in rnx:')
35
35
  console.error(' npx expo start --localhost --port 8081')
36
- console.error(' rnxsim open 8081')
36
+ console.error(' rnx open 8081')
37
37
  console.error('')
38
38
  console.error(' then inspect the live app:')
39
- console.error(' rnxsim describe')
39
+ console.error(' rnx describe')
40
40
  }
41
41
 
42
42
  // printed when a command targeted a specific `--sim <id>` that the bridge
@@ -76,5 +76,5 @@ export async function printUnknownSimHint(
76
76
  console.error(` ${sim.id} (${flags})`)
77
77
  }
78
78
  console.error('')
79
- console.error(' pass a valid --sim id, or run `rnxsim list` to see all sessions.')
79
+ console.error(' pass a valid --sim id, or run `rnx list` to see all sessions.')
80
80
  }
@@ -28,21 +28,21 @@ function withoutSubcommand(args: string[], index: number): string[] {
28
28
 
29
29
  function printHelp(): void {
30
30
  console.log(`
31
- rnxsim perf — performance profiling tools
31
+ rnx perf — performance profiling tools
32
32
 
33
33
  usage:
34
- rnxsim perf cpu [options]
35
- rnxsim perf react <subcommand> [options]
36
- rnxsim perf shell <start|stop|transition> [options]
37
- rnxsim perf scroll <start|stop> [options]
34
+ rnx perf cpu [options]
35
+ rnx perf react <subcommand> [options]
36
+ rnx perf shell <start|stop|transition> [options]
37
+ rnx perf scroll <start|stop> [options]
38
38
 
39
39
  examples:
40
- rnxsim perf cpu --duration 5 --output /tmp/trace.cpuprofile
41
- rnxsim perf react summary --limit 10
42
- rnxsim perf shell start
43
- rnxsim perf shell stop --json
44
- rnxsim perf scroll start
45
- rnxsim perf scroll stop --json
40
+ rnx perf cpu --duration 5 --output /tmp/trace.cpuprofile
41
+ rnx perf react summary --limit 10
42
+ rnx perf shell start
43
+ rnx perf shell stop --json
44
+ rnx perf scroll start
45
+ rnx perf scroll stop --json
46
46
  `)
47
47
  }
48
48
 
@@ -51,13 +51,13 @@ const KINDS: readonly SystemPermissionKind[] = [
51
51
 
52
52
  function printHelp(): void {
53
53
  console.log(`
54
- rnxsim permissions — inspect and change simulated operating-system permissions
54
+ rnx permissions — inspect and change simulated operating-system permissions
55
55
 
56
56
  usage:
57
- rnxsim permissions list [--json]
58
- rnxsim permissions get <app-id> [--json]
59
- rnxsim permissions set <app-id> <kind> <status> [--once] [--accuracy full|reduced] [--json]
60
- rnxsim permissions reset <app-id> [kind] [--json]
57
+ rnx permissions list [--json]
58
+ rnx permissions get <app-id> [--json]
59
+ rnx permissions set <app-id> <kind> <status> [--once] [--accuracy full|reduced] [--json]
60
+ rnx permissions reset <app-id> [kind] [--json]
61
61
  `)
62
62
  }
63
63
 
@@ -15,25 +15,25 @@ interface ProfileOptions {
15
15
 
16
16
  function printHelp() {
17
17
  console.log(`
18
- rnxsim storage profile — manage isolated storage profiles
18
+ rnx storage profile — manage isolated storage profiles
19
19
 
20
20
  usage:
21
- rnxsim storage profile list
22
- rnxsim storage profile create <id>
23
- rnxsim storage profile clear <id>
24
- rnxsim storage profile delete <id>
21
+ rnx storage profile list
22
+ rnx storage profile create <id>
23
+ rnx storage profile clear <id>
24
+ rnx storage profile delete <id>
25
25
 
26
26
  profiles isolate cookies, localStorage, IndexedDB, cache, permissions, and
27
27
  service workers in Electron and Playwright launches. Plain browser-tab launches
28
28
  cannot honor profiles and will fail clearly if a profile is requested.
29
29
 
30
30
  examples:
31
- rnxsim storage profile list
32
- rnxsim storage profile create qa
33
- rnxsim open 8081 --profile qa
34
- rnxsim open 8081 --profile qa --driver playwright
35
- rnxsim storage profile clear qa
36
- rnxsim storage profile delete qa
31
+ rnx storage profile list
32
+ rnx storage profile create qa
33
+ rnx open 8081 --profile qa
34
+ rnx open 8081 --profile qa --driver playwright
35
+ rnx storage profile clear qa
36
+ rnx storage profile delete qa
37
37
  `)
38
38
  }
39
39
 
@@ -36,16 +36,16 @@ interface TreeRow {
36
36
 
37
37
  function printHelp() {
38
38
  console.log(`
39
- rnxsim perf react — inspect React component render cost in the tenant worker
39
+ rnx perf react — inspect React component render cost in the tenant worker
40
40
 
41
41
  usage:
42
- rnxsim perf react profile start [--include-props] [--max-commits N]
43
- rnxsim perf react profile stop
44
- rnxsim perf react summary [--limit 10] [--json]
45
- rnxsim perf react slow [--limit 5] [--json]
46
- rnxsim perf react rerenders [--limit 5] [--json]
47
- rnxsim perf react tree [--depth 3] [--find <name>] [--json]
48
- rnxsim perf react why <fiber-id> [--json]
42
+ rnx perf react profile start [--include-props] [--max-commits N]
43
+ rnx perf react profile stop
44
+ rnx perf react summary [--limit 10] [--json]
45
+ rnx perf react slow [--limit 5] [--json]
46
+ rnx perf react rerenders [--limit 5] [--json]
47
+ rnx perf react tree [--depth 3] [--find <name>] [--json]
48
+ rnx perf react why <fiber-id> [--json]
49
49
 
50
50
  \`react summary\` is the demo-friendly shortcut: it runs both slow and
51
51
  rerenders in one round-trip, prints them as a single table per side,
@@ -53,12 +53,12 @@ and surfaces the duration-zero warning prominently when the bundle is
53
53
  running without React profiler timers.
54
54
 
55
55
  examples:
56
- rnxsim perf react profile start
57
- rnxsim do tap-text Inbox
58
- rnxsim perf react profile stop
59
- rnxsim perf react summary --limit 10
60
- rnxsim perf react slow --limit 10
61
- rnxsim perf react rerenders --json
56
+ rnx perf react profile start
57
+ rnx do tap-text Inbox
58
+ rnx perf react profile stop
59
+ rnx perf react summary --limit 10
60
+ rnx perf react slow --limit 10
61
+ rnx perf react rerenders --json
62
62
  `)
63
63
  }
64
64
 
@@ -332,7 +332,7 @@ export async function runReact(args: string[], opts: ReactOptions): Promise<numb
332
332
  if (first === 'why') {
333
333
  const fiberId = Number(second)
334
334
  if (!Number.isFinite(fiberId) || fiberId <= 0) {
335
- console.error(' usage: rnxsim perf react why <fiber-id>')
335
+ console.error(' usage: rnx perf react why <fiber-id>')
336
336
  return 1
337
337
  }
338
338
  const result = (await callInBridge(
@@ -84,7 +84,7 @@ async function evalCaptureStep<T>(
84
84
  ` ${step} stalled — the render host did not finish within ` +
85
85
  `${Math.round(timeoutMs / 1000)}s; it is likely contended or wedged.\n` +
86
86
  ` the capture lock auto-releases, so simply retry the recording.\n` +
87
- ` if it persists, recover the sim with \`rnxsim close --sim <id>\`.`,
87
+ ` if it persists, recover the sim with \`rnx close --sim <id>\`.`,
88
88
  )
89
89
  process.exit(1)
90
90
  }
@@ -105,7 +105,7 @@ async function evalCaptureStep<T>(
105
105
  ` releasing. the lock self-heals in ~${Math.round(
106
106
  (durationMs + 20_000) / 1000,
107
107
  )}s — retry then, or recover now with\n` +
108
- ` \`rnxsim close --sim <id>\` and reopen the sim.`,
108
+ ` \`rnx close --sim <id>\` and reopen the sim.`,
109
109
  )
110
110
  process.exit(1)
111
111
  }
@@ -500,7 +500,7 @@ export async function runRecord(args: string[], opts: RecordOptions) {
500
500
  console.error(
501
501
  ' a prior recording was abandoned and its capture is still\n' +
502
502
  ' releasing. retry in ~20s, or recover now with\n' +
503
- ' `rnxsim close --sim <id>` then reopen the sim.',
503
+ ' `rnx close --sim <id>` then reopen the sim.',
504
504
  )
505
505
  }
506
506
  process.exit(1)
@@ -561,7 +561,7 @@ async function probeSim(bridge: WsBridge, code: string): Promise<boolean> {
561
561
  if (/^command timed out after \d+s$/.test(msg)) {
562
562
  console.error(
563
563
  ' sim did not respond — it is connected to the bridge but has not\n' +
564
- ' loaded an app (or its page is unresponsive). run `rnxsim list`\n' +
564
+ ' loaded an app (or its page is unresponsive). run `rnx list`\n' +
565
565
  ' and target a sim with a loaded app via --sim <id>.',
566
566
  )
567
567
  process.exit(1)
@@ -743,7 +743,7 @@ async function recordStart(args: string[], opts: RecordOptions) {
743
743
  const existing = readRecordingState()
744
744
  if (existing) {
745
745
  console.error(
746
- ` recording already in progress (started ${existing.startedAt}, sim ${existing.simId ?? '?'}). run \`rnxsim record stop\` first, or \`rnxsim record cancel\` to discard.`,
746
+ ` recording already in progress (started ${existing.startedAt}, sim ${existing.simId ?? '?'}). run \`rnx record stop\` first, or \`rnx record cancel\` to discard.`,
747
747
  )
748
748
  process.exit(1)
749
749
  }
@@ -771,7 +771,7 @@ async function recordStart(args: string[], opts: RecordOptions) {
771
771
  const format = formatArg === 'mp4' ? 'mp4' : 'webm'
772
772
  if (formatArg && format !== formatArg) {
773
773
  console.error(
774
- ` record start only supports webm or mp4 (got: ${formatArg}). for gif/png use atomic mode: rnxsim record --format ${formatArg} --duration <s>`,
774
+ ` record start only supports webm or mp4 (got: ${formatArg}). for gif/png use atomic mode: rnx record --format ${formatArg} --duration <s>`,
775
775
  )
776
776
  process.exit(1)
777
777
  }
@@ -854,11 +854,11 @@ async function recordStart(args: string[], opts: RecordOptions) {
854
854
  })
855
855
  if (mode === 'video') {
856
856
  console.log(
857
- ` recording ${format} @ ${fps}fps${layers ? ` (${layers})` : ''} — run \`rnxsim record stop --output <path>\` when done`,
857
+ ` recording ${format} @ ${fps}fps${layers ? ` (${layers})` : ''} — run \`rnx record stop --output <path>\` when done`,
858
858
  )
859
859
  } else {
860
860
  console.log(
861
- ` recording ${mode} — run \`rnxsim record stop\` when done (add --open to launch the preview URL)`,
861
+ ` recording ${mode} — run \`rnx record stop\` when done (add --open to launch the preview URL)`,
862
862
  )
863
863
  }
864
864
  } finally {
@@ -870,7 +870,7 @@ async function recordPreludeStart(args: string[], opts: RecordOptions) {
870
870
  const existing = readRecordingState()
871
871
  if (existing) {
872
872
  console.error(
873
- ` recording already in progress (started ${existing.startedAt}, sim ${existing.simId ?? '?'}). run \`rnxsim record stop\` first, or \`rnxsim record cancel\` to discard.`,
873
+ ` recording already in progress (started ${existing.startedAt}, sim ${existing.simId ?? '?'}). run \`rnx record stop\` first, or \`rnx record cancel\` to discard.`,
874
874
  )
875
875
  process.exit(1)
876
876
  }
@@ -910,7 +910,7 @@ async function recordPreludeStart(args: string[], opts: RecordOptions) {
910
910
  process.exit(1)
911
911
  }
912
912
  console.log(
913
- ' recording preview prelude — run `rnxsim record start --mode combined` when the visible proof segment is ready',
913
+ ' recording preview prelude — run `rnx record start --mode combined` when the visible proof segment is ready',
914
914
  )
915
915
  } finally {
916
916
  bridge.close()
@@ -1026,8 +1026,8 @@ async function recordStatus(args: string[], opts: RecordOptions) {
1026
1026
  console.log(
1027
1027
  ' a recording preview prelude is active. hidden setup is being\n' +
1028
1028
  ' captured for the next live/combined preview recording. finish\n' +
1029
- ' it with `rnxsim record start --mode combined`, or discard it\n' +
1030
- ' with `rnxsim record cancel`.',
1029
+ ' it with `rnx record start --mode combined`, or discard it\n' +
1030
+ ' with `rnx record cancel`.',
1031
1031
  )
1032
1032
  return
1033
1033
  }
@@ -1039,7 +1039,7 @@ async function recordStatus(args: string[], opts: RecordOptions) {
1039
1039
  ' (atomic `--mode video/gif/png` writes a local file from that\n' +
1040
1040
  ' process; live/combined upload to /preview/<id>). if the run was\n' +
1041
1041
  ' killed, the recording is abandoned and will NOT finish — reclaim\n' +
1042
- ' it now with `rnxsim record cancel`, or it auto-reclaims when the\n' +
1042
+ ' it now with `rnx record cancel`, or it auto-reclaims when the\n' +
1043
1043
  " abandoned capture's deadline lapses.",
1044
1044
  )
1045
1045
  } else {
@@ -1132,7 +1132,7 @@ async function recordCancel(args: string[], opts: RecordOptions) {
1132
1132
  async function recordStop(args: string[], opts: RecordOptions) {
1133
1133
  const state = readRecordingState()
1134
1134
  if (!state) {
1135
- console.error(' no recording in progress. start one with `rnxsim record start`.')
1135
+ console.error(' no recording in progress. start one with `rnx record start`.')
1136
1136
  process.exit(1)
1137
1137
  }
1138
1138
 
@@ -1307,7 +1307,7 @@ async function injectPreviewSessionAuth(
1307
1307
  console.error(
1308
1308
  ' SootSim.bridges.setSession missing — this sim is running an engine\n' +
1309
1309
  ' build without CLI-injected preview auth. reload the sim or open a\n' +
1310
- ' fresh one (`rnxsim open --new`); if it persists, update rnx.',
1310
+ ' fresh one (`rnx open --new`); if it persists, update rnx.',
1311
1311
  )
1312
1312
  process.exit(1)
1313
1313
  }
@@ -214,7 +214,7 @@ export async function runReportIssue(
214
214
  } catch (error) {
215
215
  dependencies.stderr(
216
216
  ` ${error instanceof Error ? error.message : String(error)}\n` +
217
- ` usage: rnxsim report-issue [--app <dir>] [--dry-run] [--yes] "<description>"\n`,
217
+ ` usage: rnx report-issue [--app <dir>] [--dry-run] [--yes] "<description>"\n`,
218
218
  )
219
219
  return 1
220
220
  }
@@ -237,7 +237,7 @@ export async function runReportIssue(
237
237
  }
238
238
 
239
239
  dependencies.stdout(
240
- `\n rnxsim issue report preview\n\n` +
240
+ `\n rnx issue report preview\n\n` +
241
241
  ` description: ${payload.note}\n` +
242
242
  ` compatibility: ${compatibilitySummary(payload.bundle.compatibility)}\n` +
243
243
  ` environment: CLI ${payload.bundle.cliVersion}, runtime ${
@@ -15,10 +15,10 @@ function isResetResult(value: unknown): value is ResetResult {
15
15
 
16
16
  function printHelp(): void {
17
17
  console.log(`
18
- rnxsim reset - clear the current guest app and relaunch it
18
+ rnx reset - clear the current guest app and relaunch it
19
19
 
20
20
  usage:
21
- rnxsim reset [--full] [--json] [--sim <id>]
21
+ rnx reset [--full] [--json] [--sim <id>]
22
22
 
23
23
  options:
24
24
  --full also clear keychain, user defaults, and permissions
@@ -62,15 +62,15 @@ export async function runRuntime(args: string[], opts: RuntimeOptions = {}) {
62
62
 
63
63
  function printHelp() {
64
64
  console.log(`
65
- rnxsim runtime — manage engine runtimes under ~/.sootsim/runtimes/
65
+ rnx runtime — manage engine runtimes under ~/.sootsim/runtimes/
66
66
 
67
67
  usage:
68
- rnxsim runtime install [version] install a version (default: channel latest)
69
- rnxsim runtime list show installed + available versions
70
- rnxsim runtime use <version> switch active runtime
71
- rnxsim runtime remove <version> delete an installed runtime
72
- rnxsim runtime which print active runtime version
73
- rnxsim runtime notes print repo or default engine release notes
68
+ rnx runtime install [version] install a version (default: channel latest)
69
+ rnx runtime list show installed + available versions
70
+ rnx runtime use <version> switch active runtime
71
+ rnx runtime remove <version> delete an installed runtime
72
+ rnx runtime which print active runtime version
73
+ rnx runtime notes print repo or default engine release notes
74
74
 
75
75
  flags:
76
76
  --channel <name> channel to resolve 'latest' from (default: stable)
@@ -81,11 +81,11 @@ environment:
81
81
  SOOTSIM_CDN_ORIGIN override the CDN base URL (default: ${DEFAULT_RUNTIME_CDN_ORIGIN})
82
82
 
83
83
  examples:
84
- rnxsim runtime install
85
- rnxsim runtime install 1.2.3
86
- rnxsim runtime install --channel beta
87
- rnxsim runtime use 1.2.3
88
- rnxsim runtime notes
84
+ rnx runtime install
85
+ rnx runtime install 1.2.3
86
+ rnx runtime install --channel beta
87
+ rnx runtime use 1.2.3
88
+ rnx runtime notes
89
89
  `)
90
90
  }
91
91
 
@@ -99,7 +99,7 @@ async function runtimeInstall(args: string[], opts: RuntimeOptions) {
99
99
 
100
100
  ensureSootsimHome()
101
101
 
102
- console.log(`rnxsim runtime install`)
102
+ console.log(`rnx runtime install`)
103
103
  console.log(` cdn: ${sootsimRuntime.resolveCdnOrigin()}`)
104
104
 
105
105
  try {
@@ -233,14 +233,14 @@ async function runtimeList(_args: string[]) {
233
233
  async function runtimeUse(args: string[]) {
234
234
  const version = args[0]
235
235
  if (!version) {
236
- console.error(` usage: rnxsim runtime use <version>`)
236
+ console.error(` usage: rnx runtime use <version>`)
237
237
  process.exit(1)
238
238
  }
239
239
  const installed = sootsimRuntime.listInstalled()
240
240
  if (!installed.includes(version)) {
241
241
  console.error(` version ${version} is not installed`)
242
242
  console.error(` installed: ${installed.join(', ') || '(none)'}`)
243
- console.error(` run \`rnxsim runtime install ${version}\` first`)
243
+ console.error(` run \`rnx runtime install ${version}\` first`)
244
244
  process.exit(1)
245
245
  }
246
246
  await activateVersion(version)
@@ -251,14 +251,14 @@ async function runtimeUse(args: string[]) {
251
251
  async function runtimeRemove(args: string[]) {
252
252
  const version = args[0]
253
253
  if (!version) {
254
- console.error(` usage: rnxsim runtime remove <version>`)
254
+ console.error(` usage: rnx runtime remove <version>`)
255
255
  process.exit(1)
256
256
  }
257
257
  const active = readActiveRuntime()
258
258
  if (active === version) {
259
259
  console.error(` cannot remove active runtime ${version}`)
260
260
  console.error(
261
- ` switch with \`rnxsim runtime use <other>\` first, or install another version`,
261
+ ` switch with \`rnx runtime use <other>\` first, or install another version`,
262
262
  )
263
263
  process.exit(1)
264
264
  }
@@ -290,7 +290,7 @@ async function runtimeWhich() {
290
290
 
291
291
  async function runtimeNotes(args: string[]) {
292
292
  if (args.length > 0) {
293
- console.error(` usage: rnxsim runtime notes`)
293
+ console.error(` usage: rnx runtime notes`)
294
294
  process.exit(1)
295
295
  }
296
296
  const { config } = await resolveSootSimAppConfig()
@@ -11,10 +11,10 @@ import { runShellBooleanMode, type ShellBooleanModeOptions } from './shell-boole
11
11
  export async function runScreenshotMode(args: string[], opts: ShellBooleanModeOptions) {
12
12
  if (args.includes('--help') || args.includes('-h')) {
13
13
  console.log(`
14
- rnxsim mode screenshot — toggle the screenshot-mode chrome overlay
14
+ rnx mode screenshot — toggle the screenshot-mode chrome overlay
15
15
 
16
16
  usage:
17
- rnxsim mode screenshot [on|off|toggle]
17
+ rnx mode screenshot [on|off|toggle]
18
18
 
19
19
  arguments:
20
20
  on enable screenshot mode (enables showFrame if needed)
@@ -22,9 +22,9 @@ arguments:
22
22
  toggle flip the current state (default)
23
23
 
24
24
  examples:
25
- rnxsim mode screenshot
26
- rnxsim mode screenshot on
27
- rnxsim mode screenshot off
25
+ rnx mode screenshot
26
+ rnx mode screenshot on
27
+ rnx mode screenshot off
28
28
  `)
29
29
  process.exit(0)
30
30
  }
@@ -34,11 +34,11 @@ export async function runScreenshot(rawArgs: string[], opts: ScreenshotOptions)
34
34
  const args = normalizeAliasFlags(rawArgs)
35
35
  if (args.includes('--help') || args.includes('-h')) {
36
36
  console.log(`
37
- rnxsim screenshot — capture the canvas as a PNG
37
+ rnx screenshot — capture the canvas as a PNG
38
38
 
39
39
  usage:
40
- rnxsim screenshot [output] [options]
41
- rnxsim screenshot [options] --output <path>
40
+ rnx screenshot [output] [options]
41
+ rnx screenshot [options] --output <path>
42
42
 
43
43
  options:
44
44
  --output <path> output file path (default: /tmp/sootsim-inspect.png)
@@ -58,11 +58,11 @@ options:
58
58
  --themes capture light and dark variants
59
59
 
60
60
  examples:
61
- rnxsim screenshot
62
- rnxsim screenshot --no-shell --output app.png
63
- rnxsim screenshot --with-frame --output framed.png
64
- rnxsim screenshot --area 0,200,393,400 --output hero.png
65
- rnxsim screenshot --id loginButton --output button.png
61
+ rnx screenshot
62
+ rnx screenshot --no-shell --output app.png
63
+ rnx screenshot --with-frame --output framed.png
64
+ rnx screenshot --area 0,200,393,400 --output hero.png
65
+ rnx screenshot --id loginButton --output button.png
66
66
  `)
67
67
  process.exit(0)
68
68
  }
@@ -76,7 +76,7 @@ examples:
76
76
  : ` unknown flag: ${flag}`,
77
77
  )
78
78
  }
79
- console.error(' run `rnxsim screenshot --help` for the list of supported flags')
79
+ console.error(' run `rnx screenshot --help` for the list of supported flags')
80
80
  process.exit(1)
81
81
  }
82
82
 
@@ -146,7 +146,7 @@ examples:
146
146
  if (rect) {
147
147
  console.error(' --area / --id / --text require a running rnx bridge')
148
148
  console.error(
149
- ' start one with `rnxsim serve`, `rnxsim desktop`, or your project dev server',
149
+ ' start one with `rnx serve`, `rnx desktop`, or your project dev server',
150
150
  )
151
151
  process.exit(1)
152
152
  }
@@ -216,7 +216,7 @@ async function captureViaBridge(
216
216
  process.stderr.write(
217
217
  ' ⚠ screenshot will capture the LAST PAINTED canvas — likely stale.\n' +
218
218
  ' navigation/`shell` commands sent before this screenshot may not\n' +
219
- ' have repainted yet. focus the tab manually or `rnxsim --sim <id>`\n' +
219
+ ' have repainted yet. focus the tab manually or `rnx --sim <id>`\n' +
220
220
  ' to target a visible sim before capturing.\n\n',
221
221
  )
222
222
  }
@@ -288,7 +288,7 @@ async function captureViaBridge(
288
288
  // the sim may be alive but not painting (check `sootsim get errors`)
289
289
  if (typeof dataUrl !== 'string' || dataUrl.length <= pngPrefix.length) {
290
290
  throw new Error(
291
- 'screenshot capture returned no image data — the sim is connected but not painting; check `rnxsim get errors`',
291
+ 'screenshot capture returned no image data — the sim is connected but not painting; check `rnx get errors`',
292
292
  )
293
293
  }
294
294
  const base64 = dataUrl.replace(/^data:image\/png;base64,/, '')