rnxsim 0.1.335 → 0.1.336

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-PZLF36FY.js} +14 -14
  65. package/dist-cli/chunks/{agent-wrapper-NFLJ5K64.js → agent-wrapper-6TA43SJ2.js} +3 -3
  66. package/dist-cli/chunks/app-fonts-MTZTCJUY.js +4 -0
  67. package/dist-cli/chunks/{assert-ILAXIYB5.js → assert-2CVO2TYX.js} +12 -12
  68. package/dist-cli/chunks/auth-LKXFRFOT.js +12 -0
  69. package/dist-cli/chunks/{beta-TDR6UKJU.js → beta-OATC5IPA.js} +2 -2
  70. package/dist-cli/chunks/camera-VX65VO5N.js +33 -0
  71. package/dist-cli/chunks/{chunk-DCDKJ4NC.js → chunk-262YA5CJ.js} +2 -2
  72. package/dist-cli/chunks/{chunk-JWAY6DIH.js → chunk-2J4OBR7W.js} +18 -18
  73. package/dist-cli/chunks/{chunk-VV4MXLFR.js → chunk-2PFDFGOG.js} +1 -1
  74. package/dist-cli/chunks/{chunk-R3CMECGC.js → chunk-2Q6S7X5O.js} +4 -4
  75. package/dist-cli/chunks/{chunk-MGGRL2Z2.js → chunk-2VOFUIKQ.js} +9 -9
  76. package/dist-cli/chunks/chunk-3QCSDI3B.js +5 -0
  77. package/dist-cli/chunks/{chunk-R2UL5VFY.js → chunk-4532OPNZ.js} +3 -3
  78. package/dist-cli/chunks/{chunk-RTD3CPDQ.js → chunk-5YCVNKD7.js} +23 -23
  79. package/dist-cli/chunks/{chunk-RTEJXUXN.js → chunk-6ALTVOXE.js} +6 -6
  80. package/dist-cli/chunks/chunk-6TN3YWA6.js +124 -0
  81. package/dist-cli/chunks/{chunk-ZZWO6Y7X.js → chunk-7FHAHI5V.js} +2 -2
  82. package/dist-cli/chunks/{chunk-3ZDOPKHE.js → chunk-7PMNRG53.js} +4 -4
  83. package/dist-cli/chunks/{chunk-GVKISFQ3.js → chunk-ARFQOYRO.js} +1 -1
  84. package/dist-cli/chunks/chunk-BHXQ7MUW.js +5 -0
  85. package/dist-cli/chunks/{chunk-WKT7YM5Q.js → chunk-BIZE6NBI.js} +1 -1
  86. package/dist-cli/chunks/{chunk-POC3QTA6.js → chunk-BOZARB6P.js} +2 -2
  87. package/dist-cli/chunks/chunk-BVGUTE2T.js +74 -0
  88. package/dist-cli/chunks/{chunk-IV36DY6M.js → chunk-BYOFHYKS.js} +1 -1
  89. package/dist-cli/chunks/{chunk-35XNGT5C.js → chunk-DMD24WAG.js} +1 -1
  90. package/dist-cli/chunks/{chunk-IN2PZBQD.js → chunk-EAPHUH2R.js} +2 -2
  91. package/dist-cli/chunks/{chunk-3CS4EUMG.js → chunk-FMWEQNK2.js} +2 -2
  92. package/dist-cli/chunks/{chunk-TL4DNDDY.js → chunk-FWGDP2J4.js} +2 -2
  93. package/dist-cli/chunks/{chunk-ROPHZJ6P.js → chunk-G3FVXFPF.js} +2 -2
  94. package/dist-cli/chunks/{chunk-MTNIDSOA.js → chunk-GI3GZ54J.js} +1 -1
  95. package/dist-cli/chunks/{chunk-42ALI64M.js → chunk-HDHHEWEA.js} +2 -2
  96. package/dist-cli/chunks/{chunk-MTD6IAEA.js → chunk-JIWE66VU.js} +1 -1
  97. package/dist-cli/chunks/{chunk-M7CBQ5I4.js → chunk-KDRDDPNN.js} +1 -1
  98. package/dist-cli/chunks/{chunk-USGOQ3YJ.js → chunk-KPL344LX.js} +2 -2
  99. package/dist-cli/chunks/{chunk-F33DUJGG.js → chunk-M2OWBYUG.js} +1 -1
  100. package/dist-cli/chunks/{chunk-ZTM2MKNI.js → chunk-M2XGXP7G.js} +1 -1
  101. package/dist-cli/chunks/{chunk-6VN5ULGQ.js → chunk-MARPC3GM.js} +2 -2
  102. package/dist-cli/chunks/{chunk-RELRA5VW.js → chunk-MQES3MTN.js} +2 -2
  103. package/dist-cli/chunks/{chunk-6Y3PVPTF.js → chunk-NDLRQH7U.js} +5 -5
  104. package/dist-cli/chunks/{chunk-JWK5WD44.js → chunk-NJMBQLAU.js} +2 -2
  105. package/dist-cli/chunks/{chunk-RVUGKXJD.js → chunk-NL2HXO7U.js} +1 -1
  106. package/dist-cli/chunks/{chunk-ZYHCWCMM.js → chunk-NVPZLIMW.js} +1 -1
  107. package/dist-cli/chunks/{chunk-42KDXJUD.js → chunk-NWVH2X7F.js} +2 -2
  108. package/dist-cli/chunks/{chunk-FJSHIWAM.js → chunk-OUAYBJ4G.js} +2 -2
  109. package/dist-cli/chunks/{chunk-I2HQB5NN.js → chunk-OXRDTNVL.js} +2 -2
  110. package/dist-cli/chunks/{chunk-CL3PREIE.js → chunk-QIVOOERS.js} +2 -2
  111. package/dist-cli/chunks/{chunk-INBPUR4T.js → chunk-RZ2PXHA7.js} +11 -11
  112. package/dist-cli/chunks/{chunk-YSUIYK6B.js → chunk-S33NCWJV.js} +2 -2
  113. package/dist-cli/chunks/{chunk-J7XFINJG.js → chunk-STMCT3G3.js} +2 -2
  114. package/dist-cli/chunks/{chunk-FE6ZHPKD.js → chunk-SV6NVD7P.js} +1 -1
  115. package/dist-cli/chunks/{chunk-HNQLZZJA.js → chunk-TA4GBBGC.js} +2 -2
  116. package/dist-cli/chunks/{chunk-4KC35DMK.js → chunk-TV457FWW.js} +2 -2
  117. package/dist-cli/chunks/chunk-UB3JHBDW.js +4 -0
  118. package/dist-cli/chunks/{chunk-LCVUJCRJ.js → chunk-UU2KMAIA.js} +1 -1
  119. package/dist-cli/chunks/chunk-UZCNKUSS.js +15 -0
  120. package/dist-cli/chunks/{chunk-GP6QEBZA.js → chunk-V4OZDPTA.js} +1 -1
  121. package/dist-cli/chunks/{chunk-CGZWLSYD.js → chunk-WBTT5WIO.js} +1 -1
  122. package/dist-cli/chunks/chunk-YYBC6VB2.js +30 -0
  123. package/dist-cli/chunks/{chunk-PO3TOAED.js → chunk-ZI6YQKD6.js} +2 -2
  124. package/dist-cli/chunks/{cleanup-X6ZRPFDV.js → cleanup-ZC5OVBIM.js} +10 -10
  125. package/dist-cli/chunks/cli-version-NOYHDN6P.js +4 -0
  126. package/dist-cli/chunks/{compat-VRXJ5J56.js → compat-BS2E7XDD.js} +9 -9
  127. package/dist-cli/chunks/{config-LHPPE4EP.js → config-VDCDUYMZ.js} +5 -5
  128. package/dist-cli/chunks/{control-TVTNGSSF.js → control-IKS3CUP4.js} +2 -2
  129. package/dist-cli/chunks/daemon-MM3C4O2B.js +4 -0
  130. package/dist-cli/chunks/{debug-EUHBBPGM.js → debug-BKMZ5SRR.js} +17 -17
  131. package/dist-cli/chunks/desktop-FZQHSNF7.js +31 -0
  132. package/dist-cli/chunks/detox-52AM3DKY.js +52 -0
  133. package/dist-cli/chunks/{device-PONITUZJ.js → device-7FL5Y542.js} +11 -11
  134. package/dist-cli/chunks/{diagnose-2PN4K4L2.js → diagnose-YT4BKJ7I.js} +12 -12
  135. package/dist-cli/chunks/{disk-cleanup-U2PQLOEW.js → disk-cleanup-O6ICYLAC.js} +2 -2
  136. package/dist-cli/chunks/drivers-YY3YRD2L.js +4 -0
  137. package/dist-cli/chunks/{film-XGZCFTQL.js → film-7YBOFSOZ.js} +9 -9
  138. package/dist-cli/chunks/flow-I4PVS52A.js +4 -0
  139. package/dist-cli/chunks/help-35ESSWJH.js +4 -0
  140. package/dist-cli/chunks/{hidden-runtime-alias-I4MYF5CO.js → hidden-runtime-alias-M3UFKZB6.js} +2 -2
  141. package/dist-cli/chunks/{home-paths-YRAPZ5LE.js → home-paths-VW7G7LVZ.js} +2 -2
  142. package/dist-cli/chunks/inspect-PCJ6C2BN.js +4 -0
  143. package/dist-cli/chunks/install-desktop-NGQWMGQO.js +4 -0
  144. package/dist-cli/chunks/{login-ZMAIAQ6F.js → login-5VAHTGHC.js} +6 -6
  145. package/dist-cli/chunks/{logout-UQZ5JBJU.js → logout-CXZFNMYF.js} +2 -2
  146. package/dist-cli/chunks/{maestro-BQYKDUC4.js → maestro-THMBR6L3.js} +25 -25
  147. package/dist-cli/chunks/{maestro-generate-VQYMMQJ5.js → maestro-generate-R73J53KE.js} +3 -3
  148. package/dist-cli/chunks/mode-5RJYFW76.js +26 -0
  149. package/dist-cli/chunks/{optional-demo-registry-DUWHCLGD.js → optional-demo-registry-U7SCVX5U.js} +2 -2
  150. package/dist-cli/chunks/{perf-7RAU7WRZ.js → perf-AW6LG6FW.js} +28 -28
  151. package/dist-cli/chunks/permissions-6JWNMXYT.js +13 -0
  152. package/dist-cli/chunks/record-LLPM3BJT.js +72 -0
  153. package/dist-cli/chunks/{report-issue-P376KFFU.js → report-issue-YO2NAMJS.js} +4 -4
  154. package/dist-cli/chunks/reset-5LDPRL3W.js +4 -0
  155. package/dist-cli/chunks/runtime-IAICY2UL.js +4 -0
  156. package/dist-cli/chunks/{screenshot-command-NE7BKTQ2.js → screenshot-command-X7ECU2SK.js} +34 -34
  157. package/dist-cli/chunks/{screenshot-layers-UE4R64PZ.js → screenshot-layers-E7GLIOHG.js} +2 -2
  158. package/dist-cli/chunks/{screenshots-capture-ULXPLXMC.js → screenshots-capture-TKR2YV6U.js} +11 -11
  159. package/dist-cli/chunks/{serve-P7BT4XHR.js → serve-HFNYO3YS.js} +16 -16
  160. package/dist-cli/chunks/setup-2HQHROP3.js +32 -0
  161. package/dist-cli/chunks/{skills-NTRYKJSF.js → skills-PFCCKOPW.js} +16 -16
  162. package/dist-cli/chunks/{state-4D5YAM47.js → state-NOCC6IGB.js} +5 -5
  163. package/dist-cli/chunks/storage-4SYN4ZWP.js +37 -0
  164. package/dist-cli/chunks/store-7QDSVAZ4.js +4 -0
  165. package/dist-cli/chunks/telemetry-LGTXJEJC.js +4 -0
  166. package/dist-cli/chunks/{timeline-GZNFGD3Q.js → timeline-E2SFUV76.js} +6 -6
  167. package/dist-cli/chunks/{upgrade-A46D6PEY.js → upgrade-KD76JQCK.js} +2 -2
  168. package/dist-cli/chunks/upload-FI2TS5S7.js +4 -0
  169. package/dist-cli/chunks/version-B23A4BFH.js +6 -0
  170. package/dist-cli/chunks/{web-H2IXO5SC.js → web-6OAWYV5Z.js} +2 -2
  171. package/dist-cli/chunks/{what-happened-Z7UII5GH.js → what-happened-IYXUFM72.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
@@ -27,14 +27,14 @@ import { rnxPublicBrand } from '../../src/public-brand'
27
27
  import { resolveCliAuth, type CliAuth } from '../auth'
28
28
 
29
29
  const HELP = `
30
- rnxsim screenshot appstore capture — headlessly capture + upload App Store slides
30
+ rnx screenshot appstore capture — headlessly capture + upload App Store slides
31
31
 
32
32
  usage:
33
- rnxsim screenshot appstore capture --org <org> --repo <repo> [options]
33
+ rnx screenshot appstore capture --org <org> --repo <repo> [options]
34
34
 
35
35
  what it does:
36
36
  boots the org-mode build shell in headless GPU Chrome (authed via your
37
- \`rnxsim login\` session), captures each slide through the live screenshot
37
+ \`rnx login\` session), captures each slide through the live screenshot
38
38
  composer so every slide gets editable layers (captureRef + cleanRef +
39
39
  screenRef), and lets the shell auto-upload them to your org deck.
40
40
 
@@ -53,8 +53,8 @@ options:
53
53
  --json machine-readable summary
54
54
 
55
55
  examples:
56
- rnxsim screenshot appstore capture --org acme --repo my-app --dry-run
57
- rnxsim screenshot appstore capture --org acme --repo my-app --branch main --force
56
+ rnx screenshot appstore capture --org acme --repo my-app --dry-run
57
+ rnx screenshot appstore capture --org acme --repo my-app --branch main --force
58
58
  `
59
59
 
60
60
  interface CaptureSlide {
@@ -125,8 +125,8 @@ function resolveSessionAuth(): { token: string; origin: string } {
125
125
  const auth: CliAuth | null = resolveCliAuth()
126
126
  if (auth && auth.kind === 'session') return { token: auth.token, origin: auth.origin }
127
127
  process.stderr.write(
128
- '\n rnxsim screenshot appstore capture needs a logged-in session.\n' +
129
- ' run `rnxsim login` first (the captured slides upload to that account).\n\n',
128
+ '\n rnx screenshot appstore capture needs a logged-in session.\n' +
129
+ ' run `rnx login` first (the captured slides upload to that account).\n\n',
130
130
  )
131
131
  process.exit(1)
132
132
  }
@@ -13,10 +13,10 @@ export async function runScreenshots(
13
13
  ): Promise<number> {
14
14
  if (args.includes('--help') || args.includes('-h')) {
15
15
  console.log(`
16
- rnxsim screenshot appstore — capture and compose app-store screenshot sets
16
+ rnx screenshot appstore — capture and compose app-store screenshot sets
17
17
 
18
18
  usage:
19
- rnxsim screenshot appstore --plan <plan.yaml> [options]
19
+ rnx screenshot appstore --plan <plan.yaml> [options]
20
20
 
21
21
  options:
22
22
  --plan <path> screenshot plan yaml
@@ -31,9 +31,9 @@ options:
31
31
  --compose-only skip flow capture, reuse existing raw screenshots
32
32
 
33
33
  examples:
34
- rnxsim screenshot appstore --plan app-store.yaml
35
- rnxsim screenshot appstore --plan app-store.yaml --sim a9
36
- rnxsim screenshot appstore --plan app-store.yaml --org acme --repo mobile
34
+ rnx screenshot appstore --plan app-store.yaml
35
+ rnx screenshot appstore --plan app-store.yaml --sim a9
36
+ rnx screenshot appstore --plan app-store.yaml --org acme --repo mobile
37
37
  `)
38
38
  return 0
39
39
  }
@@ -77,7 +77,7 @@ examples:
77
77
  const auth = resolveCliAuth()
78
78
  if (!auth) {
79
79
  console.error(
80
- ' error: --org/--repo needs auth — run `rnxsim login` or set RNX_API_KEY.',
80
+ ' error: --org/--repo needs auth — run `rnx login` or set RNX_API_KEY.',
81
81
  )
82
82
  return 1
83
83
  }
@@ -37,22 +37,22 @@ interface ServeOptions {
37
37
  export async function runServe(args: string[], opts: ServeOptions = {}) {
38
38
  if (args.includes('--help') || args.includes('-h')) {
39
39
  console.log(`
40
- rnxsim serve — run the rnx bridge in the foreground
40
+ rnx serve — run the rnx bridge in the foreground
41
41
 
42
42
  hosts the WS bridge that CLI commands talk to. once running, any rnx
43
43
  renderer (browser, electron, headless playwright) that connects to port 7668
44
- becomes drivable from 'rnxsim describe', 'rnxsim do tap', etc.
44
+ becomes drivable from 'rnx describe', 'rnx do tap', etc.
45
45
 
46
46
  usage:
47
- rnxsim serve [options]
47
+ rnx serve [options]
48
48
 
49
49
  options:
50
50
  --port <n> bridge port (defaults to ${DEFAULT_SOOTSIM_BRIDGE_PORT})
51
51
  --quiet suppress per-connection logging
52
52
 
53
53
  examples:
54
- rnxsim serve
55
- rnxsim serve --port 7668 --quiet
54
+ rnx serve
55
+ rnx serve --port 7668 --quiet
56
56
  `)
57
57
  process.exit(0)
58
58
  }
@@ -76,7 +76,7 @@ examples:
76
76
  console.error(
77
77
  ` an rnx bridge is already running (pid ${existingLock.pid}, port ${existingLock.bridgePort})`,
78
78
  )
79
- console.error(` stop it with 'rnxsim daemon stop' first`)
79
+ console.error(` stop it with 'rnx daemon stop' first`)
80
80
  process.exit(1)
81
81
  }
82
82
 
@@ -103,7 +103,7 @@ export async function runSetup(args: string[]): Promise<SetupResult | undefined>
103
103
  const runtimeVersion = resolvedRuntime.version
104
104
  const cliVersion = getCliVersion()
105
105
  if (cliVersion === '0.0.0') {
106
- throw new Error('could not resolve the installed rnxsim CLI version')
106
+ throw new Error('could not resolve the installed rnx CLI version')
107
107
  }
108
108
 
109
109
  let repositoryPlan: RepositorySetupPlan | null = null
@@ -416,7 +416,7 @@ function runtimeCacheMetadata(runtimeVersion: string) {
416
416
 
417
417
  function printIntro(options: SetupOptions): void {
418
418
  if (options.json) return
419
- console.log(`\n ${options.fromWelcome ? 'welcome to rnx' : 'rnxsim setup'}`)
419
+ console.log(`\n ${options.fromWelcome ? 'welcome to rnx' : 'rnx setup'}`)
420
420
  }
421
421
 
422
422
  function printMachineSection(
@@ -482,7 +482,7 @@ function printCompatibilitySection(
482
482
  if (options.json) return
483
483
  console.log(`\n 4. compatibility`)
484
484
  if (!scan) {
485
- console.log(` no package.json found; run \`rnxsim compat\` inside an app later`)
485
+ console.log(` no package.json found; run \`rnx compat\` inside an app later`)
486
486
  return
487
487
  }
488
488
  console.log(` ${formatScanCounts(scan)}`)
@@ -497,19 +497,17 @@ function printReadySection(repository: RepositorySetupPlan | null): void {
497
497
  const command =
498
498
  repository.packageManager === 'bun'
499
499
  ? 'bun run sootsim'
500
- : `${repository.packageManager} run rnxsim`
500
+ : `${repository.packageManager} run rnx`
501
501
  console.log(` start your app normally, then ${command} -- <port>`)
502
502
  } else {
503
- console.log(` start your app normally, then rnxsim open <port>`)
503
+ console.log(` start your app normally, then rnx open <port>`)
504
504
  }
505
+ console.log(` useful next commands: rnx describe; rnx get errors; rnx compat`)
505
506
  console.log(
506
- ` useful next commands: rnxsim describe; rnxsim get errors; rnxsim compat`,
507
+ ` install agent skills with \`rnx skill install\`, then start a new session`,
507
508
  )
508
509
  console.log(
509
- ` install agent skills with \`rnxsim skill install\`, then start a new session`,
510
- )
511
- console.log(
512
- ` if a concrete rnx seam is missing or broken, preview \`rnxsim report-issue\` and confirm separately`,
510
+ ` if a concrete rnx seam is missing or broken, preview \`rnx report-issue\` and confirm separately`,
513
511
  )
514
512
  }
515
513
 
@@ -520,13 +518,13 @@ function boundedMessage(error: unknown): string {
520
518
 
521
519
  function printHelp(): void {
522
520
  console.log(`
523
- rnxsim setup — configure a machine and optionally prepare the current repository
521
+ rnx setup — configure a machine and optionally prepare the current repository
524
522
 
525
523
  usage:
526
- rnxsim setup
527
- rnxsim setup --yes
528
- rnxsim setup --ci --yes --json
529
- rnxsim setup --dry-run --yes
524
+ rnx setup
525
+ rnx setup --yes
526
+ rnx setup --ci --yes --json
527
+ rnx setup --dry-run --yes
530
528
 
531
529
  decisions:
532
530
  --service | --no-service
@@ -37,14 +37,14 @@ interface InstallTarget {
37
37
  }
38
38
 
39
39
  function printSkillHelp() {
40
- console.log(`rnxsim skill
40
+ console.log(`rnx skill
41
41
 
42
42
  install and inspect bundled rnx agent skills.
43
43
 
44
44
  usage:
45
- rnxsim skill install [all|codex|claude] [skill-name...]
46
- rnxsim skill install --target <dir> [skill-name...]
47
- rnxsim skill show [skill-name]
45
+ rnx skill install [all|codex|claude] [skill-name...]
46
+ rnx skill install --target <dir> [skill-name...]
47
+ rnx skill show [skill-name]
48
48
 
49
49
  commands:
50
50
  install install skills; no target means all supported local agents
@@ -58,7 +58,7 @@ targets:
58
58
  }
59
59
 
60
60
  function printInstallHelp() {
61
- console.log(`rnxsim skill install
61
+ console.log(`rnx skill install
62
62
 
63
63
  install bundled rnx skills in the agent skill layout: <skill>/SKILL.md.
64
64
  each skill directory is symlinked back to its source, so edits stay live
@@ -66,17 +66,17 @@ without a re-install. an existing install from an older CLI is upgraded in
66
66
  place; an unrelated skill directory is left alone unless --force is passed.
67
67
 
68
68
  usage:
69
- rnxsim skill install [all|codex|claude] [skill-name...]
70
- rnxsim skill install --target <dir> [skill-name...]
69
+ rnx skill install [all|codex|claude] [skill-name...]
70
+ rnx skill install --target <dir> [skill-name...]
71
71
 
72
72
  options:
73
73
  --force, -f replace a conflicting existing skill with the symlink
74
74
 
75
75
  examples:
76
- rnxsim skill install
77
- rnxsim skill install codex
78
- rnxsim skill install codex rnx-debug
79
- rnxsim skill install --force rnx-debug
76
+ rnx skill install
77
+ rnx skill install codex
78
+ rnx skill install codex rnx-debug
79
+ rnx skill install --force rnx-debug
80
80
  `)
81
81
  }
82
82
 
@@ -330,8 +330,8 @@ function printSkillList(skills: SkillInfo[]) {
330
330
  console.log(` ${skill.name}`)
331
331
  console.log(` ${skill.description}\n`)
332
332
  }
333
- console.log(' usage: rnxsim skill install [all|codex|claude] [skill-name...]')
334
- console.log(' usage: rnxsim skill show [skill-name]\n')
333
+ console.log(' usage: rnx skill install [all|codex|claude] [skill-name...]')
334
+ console.log(' usage: rnx skill show [skill-name]\n')
335
335
  }
336
336
 
337
337
  function parseInstallArgs(args: string[]): {
@@ -385,7 +385,7 @@ function parseInstallArgs(args: string[]): {
385
385
  async function runInstall(args: string[]) {
386
386
  const skills = listSkills()
387
387
  if (skills.length === 0) {
388
- console.error(' no skills found in rnxsim package')
388
+ console.error(' no skills found in rnx package')
389
389
  process.exit(1)
390
390
  }
391
391
 
@@ -16,18 +16,18 @@ import {
16
16
  } from '../ws-bridge'
17
17
 
18
18
  const HELP = `
19
- rnxsim screenshot slides — compose App Store screenshots in the live sim
19
+ rnx screenshot slides — compose App Store screenshots in the live sim
20
20
 
21
21
  usage:
22
- rnxsim screenshot slides list slides (alias: slides list)
23
- rnxsim screenshot slides set <n> [fields] patch a slide's copy/colors
24
- rnxsim screenshot slides add append a blank slide (focuses it)
25
- rnxsim screenshot slides remove <n> delete a slide
26
- rnxsim screenshot slides move <n> <position> reorder a slide
27
- rnxsim screenshot slides focus <n> open a slide (device flips into it)
28
- rnxsim screenshot slides overview back to the gallery
29
- rnxsim screenshot slides capture [<n>] capture the live frame into a slide
30
- rnxsim screenshot slides export [<n>] [--out <dir>]
22
+ rnx screenshot slides list slides (alias: slides list)
23
+ rnx screenshot slides set <n> [fields] patch a slide's copy/colors
24
+ rnx screenshot slides add append a blank slide (focuses it)
25
+ rnx screenshot slides remove <n> delete a slide
26
+ rnx screenshot slides move <n> <position> reorder a slide
27
+ rnx screenshot slides focus <n> open a slide (device flips into it)
28
+ rnx screenshot slides overview back to the gallery
29
+ rnx screenshot slides capture [<n>] capture the live frame into a slide
30
+ rnx screenshot slides export [<n>] [--out <dir>]
31
31
  write composed App-Store PNG(s)
32
32
 
33
33
  set fields:
@@ -43,12 +43,12 @@ set fields:
43
43
  notes:
44
44
  slides are addressed by 1-based index. screenshot mode is auto-enabled.
45
45
  capture shoots whatever the sim currently shows — navigate the app first
46
- (rnxsim do tap-id …), then capture.
46
+ (rnx do tap-id …), then capture.
47
47
 
48
48
  examples:
49
- rnxsim screenshot slides set 1 --title "The ultimate MMA community." --bg-top cyan --bg-bottom black
50
- rnxsim screenshot slides capture 1
51
- rnxsim screenshot slides export --out ./exports
49
+ rnx screenshot slides set 1 --title "The ultimate MMA community." --bg-top cyan --bg-bottom black
50
+ rnx screenshot slides capture 1
51
+ rnx screenshot slides export --out ./exports
52
52
  `
53
53
 
54
54
  interface SlideRow {
@@ -220,9 +220,7 @@ export async function runSlides(
220
220
  }
221
221
  case 'set': {
222
222
  if (refArg == null)
223
- throw new Error(
224
- 'usage: rnxsim screenshot slides set <n> --title … (see --help)',
225
- )
223
+ throw new Error('usage: rnx screenshot slides set <n> --title … (see --help)')
226
224
  const patch: Record<string, string> = {}
227
225
  for (const key of [
228
226
  'title',
@@ -259,7 +257,7 @@ export async function runSlides(
259
257
  break
260
258
  }
261
259
  case 'remove': {
262
- if (refArg == null) throw new Error('usage: rnxsim screenshot slides remove <n>')
260
+ if (refArg == null) throw new Error('usage: rnx screenshot slides remove <n>')
263
261
  emit(
264
262
  await callInBridgeWrite<ControlState>(
265
263
  bridge,
@@ -271,7 +269,7 @@ export async function runSlides(
271
269
  }
272
270
  case 'move': {
273
271
  if (refArg == null || !Number.isInteger(positionArg) || positionArg < 1) {
274
- throw new Error('usage: rnxsim screenshot slides move <n> <position>')
272
+ throw new Error('usage: rnx screenshot slides move <n> <position>')
275
273
  }
276
274
  emit(
277
275
  await callInBridgeWrite<ControlState>(
@@ -284,7 +282,7 @@ export async function runSlides(
284
282
  break
285
283
  }
286
284
  case 'focus': {
287
- if (refArg == null) throw new Error('usage: rnxsim screenshot slides focus <n>')
285
+ if (refArg == null) throw new Error('usage: rnx screenshot slides focus <n>')
288
286
  emit(
289
287
  await callInBridgeWrite<ControlState>(
290
288
  bridge,
@@ -351,9 +349,7 @@ export async function runSlides(
351
349
  break
352
350
  }
353
351
  default:
354
- throw new Error(
355
- `unknown subcommand "${sub}" — see rnxsim screenshot slides --help`,
356
- )
352
+ throw new Error(`unknown subcommand "${sub}" — see rnx screenshot slides --help`)
357
353
  }
358
354
  } finally {
359
355
  bridge.close()
@@ -12,10 +12,10 @@ function isSimStateResult(value: unknown): value is SimStateResult {
12
12
 
13
13
  function printHelp(): void {
14
14
  console.log(`
15
- rnxsim state - capture the current app state in one call
15
+ rnx state - capture the current app state in one call
16
16
 
17
17
  usage:
18
- rnxsim state [--json] [--sim <id>]
18
+ rnx state [--json] [--sim <id>]
19
19
 
20
20
  options:
21
21
  --json print the complete structured result, including the screenshot
@@ -23,11 +23,11 @@ function findSubcommand(args: string[]): { name: string; index: number } | null
23
23
 
24
24
  function printHelp(): void {
25
25
  console.log(`
26
- rnxsim storage — manage sim and app storage
26
+ rnx storage — manage sim and app storage
27
27
 
28
28
  usage:
29
- rnxsim storage profile <subcommand>
30
- rnxsim storage clear [--full] [--sim <id>] [--json]
29
+ rnx storage profile <subcommand>
30
+ rnx storage clear [--full] [--sim <id>] [--json]
31
31
 
32
32
  subcommands:
33
33
  profile list
@@ -46,7 +46,7 @@ export async function runTelemetry(args: string[]): Promise<void> {
46
46
 
47
47
  default:
48
48
  console.error(` unknown telemetry action: ${sub}`)
49
- console.error(' usage: rnxsim config telemetry [on|off|status]')
49
+ console.error(' usage: rnx config telemetry [on|off|status]')
50
50
  process.exit(1)
51
51
  }
52
52
  }
@@ -30,16 +30,16 @@ const TIMELINE_ACTIONS = new Set(['load', 'seek', 'play', 'pause', 'render', 'me
30
30
  export async function runThreeMode(args: string[], opts: ShellBooleanModeOptions) {
31
31
  if (args.includes('--help') || args.includes('-h')) {
32
32
  console.log(`
33
- rnxsim mode three — toggle the 3d device stage
33
+ rnx mode three — toggle the 3d device stage
34
34
 
35
35
  usage:
36
- rnxsim mode three [on|off|toggle]
37
- rnxsim mode three configure [options]
38
- rnxsim mode three load <timeline.json>
39
- rnxsim mode three seek <time-ms>
40
- rnxsim mode three play|pause
41
- rnxsim mode three render <timeline.json> --output <dir> [options]
42
- rnxsim mode three measure <timeline.json> [options]
36
+ rnx mode three [on|off|toggle]
37
+ rnx mode three configure [options]
38
+ rnx mode three load <timeline.json>
39
+ rnx mode three seek <time-ms>
40
+ rnx mode three play|pause
41
+ rnx mode three render <timeline.json> --output <dir> [options]
42
+ rnx mode three measure <timeline.json> [options]
43
43
 
44
44
  arguments:
45
45
  on enable 3d mode
@@ -92,13 +92,13 @@ measure options (projected bounds only — no pixels rendered):
92
92
  --output <file.json> write the measurement JSON here instead of stdout
93
93
 
94
94
  examples:
95
- rnxsim mode three
96
- rnxsim mode three on
97
- rnxsim mode three configure --script hero-arc --background gradient-tide
98
- rnxsim mode three configure --environment on --env-shape pane --setting room
99
- rnxsim mode three render ./cinematic.json --output ./frames --fps 30
100
- rnxsim mode three measure ./cinematic.json --width 450 --height 900 --at 0,1200
101
- rnxsim mode three off
95
+ rnx mode three
96
+ rnx mode three on
97
+ rnx mode three configure --script hero-arc --background gradient-tide
98
+ rnx mode three configure --environment on --env-shape pane --setting room
99
+ rnx mode three render ./cinematic.json --output ./frames --fps 30
100
+ rnx mode three measure ./cinematic.json --width 450 --height 900 --at 0,1200
101
+ rnx mode three off
102
102
  `)
103
103
  process.exit(0)
104
104
  }
@@ -237,7 +237,7 @@ export async function waitForThreeModeRuntimeReadyOnBridge(bridge: WsBridge) {
237
237
 
238
238
  if (state?.ready === true) return state
239
239
  if (state?.disabled) {
240
- throw new Error('3d mode is off; run `rnxsim mode three on` before configure')
240
+ throw new Error('3d mode is off; run `rnx mode three on` before configure')
241
241
  }
242
242
  throw new Error('3d mode runtime did not become ready')
243
243
  }
@@ -25,10 +25,10 @@ interface TimelineOptions {
25
25
 
26
26
  function printHelp() {
27
27
  console.log(`
28
- rnxsim timeline — control the semantic event timeline
28
+ rnx timeline — control the semantic event timeline
29
29
 
30
30
  usage:
31
- rnxsim timeline <subcommand> [args]
31
+ rnx timeline <subcommand> [args]
32
32
 
33
33
  subcommands:
34
34
  status show enabled kinds and ring sizes
@@ -42,7 +42,7 @@ toast, notification, route, shell, actionsheet, picker) record at all times.
42
42
  start/stop enables opt-in kinds (react-commit, scroll, gesture, text-input,
43
43
  layout, reanimated, animation).
44
44
 
45
- read the timeline with: rnxsim what-happened
45
+ read the timeline with: rnx what-happened
46
46
  `)
47
47
  }
48
48
 
@@ -96,7 +96,7 @@ export async function runTimeline(args: string[], opts: TimelineOptions) {
96
96
  case 'dump': {
97
97
  const outPath = rest[0]
98
98
  if (!outPath) {
99
- console.error(' usage: rnxsim timeline dump <file>')
99
+ console.error(' usage: rnx timeline dump <file>')
100
100
  process.exit(1)
101
101
  }
102
102
  const result = await callInBridge<{ events: unknown[] }>(
@@ -43,7 +43,7 @@ export async function runUpgrade(args: string[]): Promise<void> {
43
43
  const channel =
44
44
  channelIdx >= 0 && args[channelIdx + 1] ? args[channelIdx + 1] : undefined
45
45
 
46
- console.log('rnxsim upgrade\n')
46
+ console.log('rnx upgrade\n')
47
47
 
48
48
  // --- 1. engine runtime --------------------------------------------------
49
49
  // runtime first, CLI last: the CLI self-update replaces this process's
@@ -182,10 +182,10 @@ export function resolvePublicPreviewOrigin(
182
182
 
183
183
  function printHelp() {
184
184
  console.log(`
185
- rnxsim record upload — publish the current recorded bundle as a /preview/<id> link
185
+ rnx record upload — publish the current recorded bundle as a /preview/<id> link
186
186
 
187
187
  usage:
188
- rnxsim record upload [--origin <url>] [--public-origin <url>] (--events <path> | --video <path>) [--screenshot <path>] [--owner <org> --repo <repo>] [--sim <sim>] [--open] [--assets-only]
188
+ rnx record upload [--origin <url>] [--public-origin <url>] (--events <path> | --video <path>) [--screenshot <path>] [--owner <org> --repo <repo>] [--sim <sim>] [--open] [--assets-only]
189
189
 
190
190
  options:
191
191
  --origin <url> upload target (default: auto)
@@ -222,7 +222,7 @@ options:
222
222
  to the local/org team that owns the link
223
223
  --billing-kind test_run
224
224
  meter this upload as a natural-language test run
225
- --sim <sim> target a specific sim (see: rnxsim list)
225
+ --sim <sim> target a specific sim (see: rnx list)
226
226
  --open open the resulting /preview/<id> url in the browser
227
227
  --assets-only drop API/JSON/HTML records before upload; keep images,
228
228
  fonts, css, js, and binary blobs. live-data demos hit
@@ -231,9 +231,9 @@ options:
231
231
  -h, --help
232
232
 
233
233
  examples:
234
- rnxsim record upload --events ./my-session.jsonl.gz
235
- rnxsim record upload --origin https://contrast.localhost:3000 --events ./my-session.jsonl.gz --open
236
- rnxsim record upload --video /tmp/sootsim-flow.mp4 --video-duration-ms 12000
234
+ rnx record upload --events ./my-session.jsonl.gz
235
+ rnx record upload --origin https://contrast.localhost:3000 --events ./my-session.jsonl.gz --open
236
+ rnx record upload --video /tmp/sootsim-flow.mp4 --video-duration-ms 12000
237
237
  `)
238
238
  }
239
239
 
@@ -493,8 +493,8 @@ export async function runUpload(
493
493
  if (!eventsPath && !videoPath) {
494
494
  console.error(
495
495
  ' preview uploads require playback data: pass --events or --video.\n' +
496
- ' for a normal local preview, use `rnxsim record --mode combined --open`\n' +
497
- ' or `rnxsim maestro test --preview` instead of uploading a bundle-only snapshot.',
496
+ ' for a normal local preview, use `rnx record --mode combined --open`\n' +
497
+ ' or `rnx maestro test --preview` instead of uploading a bundle-only snapshot.',
498
498
  )
499
499
  process.exit(1)
500
500
  }
@@ -701,7 +701,7 @@ export async function runUpload(
701
701
  if (!snapshot.bundleUrl) {
702
702
  console.error(
703
703
  ' no ?bundle= URL on the current rnx tab.\n' +
704
- ' open the app you want to share first (e.g. rnxsim open 8082), then run upload.',
704
+ ' open the app you want to share first (e.g. rnx open 8082), then run upload.',
705
705
  )
706
706
  process.exit(2)
707
707
  }
@@ -896,7 +896,7 @@ export async function runUpload(
896
896
  if (!cliAuth) {
897
897
  console.error(' preview uploads need auth.')
898
898
  console.error(
899
- ' set RNX_API_KEY=sk_rnx_..., run `rnxsim login`, or use the Contrast github runner.',
899
+ ' set RNX_API_KEY=sk_rnx_..., run `rnx login`, or use the Contrast github runner.',
900
900
  )
901
901
  await flushCliTelemetry()
902
902
  process.exit(1)
@@ -1193,7 +1193,7 @@ export async function runUpload(
1193
1193
  }
1194
1194
  if (e.phase === 'init' && e.status === 401) {
1195
1195
  console.error(' preview upload requires a valid login.')
1196
- console.error(' run `rnxsim login` and retry.')
1196
+ console.error(' run `rnx login` and retry.')
1197
1197
  await flushCliTelemetry()
1198
1198
  process.exit(1)
1199
1199
  }
@@ -17,7 +17,7 @@ import { getRuntimeSummary } from '../runtime-summary'
17
17
  export async function runVersion(_args: string[]): Promise<void> {
18
18
  const { IS_BETA, BETA_LABEL } = await import('../../src/beta')
19
19
  const suffix = IS_BETA ? ` · ${BETA_LABEL}` : ''
20
- console.log(`rnxsim v${getCliVersion()}${suffix}`)
20
+ console.log(`rnx v${getCliVersion()}${suffix}`)
21
21
 
22
22
  const runtime = getRuntimeSummary()
23
23
  const channel = sootsimRuntime.resolveChannel()
@@ -25,7 +25,7 @@ export async function runVersion(_args: string[]): Promise<void> {
25
25
  console.log(runtime.primary)
26
26
  if (runtime.installedRuntime) console.log(`${runtime.installedRuntime} · ${channel}`)
27
27
  } else if (runtime.primary === 'runtime not installed') {
28
- console.log(`runtime not installed — run \`rnxsim runtime install\``)
28
+ console.log(`runtime not installed — run \`rnx runtime install\``)
29
29
  } else {
30
30
  console.log(`${runtime.primary} · ${channel}`)
31
31
  }
@@ -45,9 +45,7 @@ export async function runVersion(_args: string[]): Promise<void> {
45
45
  // best-effort network check; never fail the command on a flaky network.
46
46
  const check = await sootsimRuntime.checkUpToDate({ channel })
47
47
  if (check.outdated && check.latest) {
48
- console.log(
49
- `\n ↑ default runtime v${check.latest} available; run \`rnxsim upgrade\``,
50
- )
48
+ console.log(`\n ↑ default runtime v${check.latest} available; run \`rnx upgrade\``)
51
49
  }
52
50
 
53
51
  console.log(`\n what's new: ${SOOTSIM_CHANGELOG_URL}`)
@@ -166,21 +166,21 @@ export async function runWhatHappened(args: string[], opts: WhatHappenedOptions)
166
166
 
167
167
  if (args.includes('--help') || args.includes('-h')) {
168
168
  console.log(`
169
- rnxsim what-happened — show recent events from the semantic timeline
169
+ rnx what-happened — show recent events from the semantic timeline
170
170
 
171
171
  usage:
172
- rnxsim what-happened # since last CLI call
173
- rnxsim what-happened --summary # one-line counts
174
- rnxsim what-happened --all # full ring (ignore cursor)
175
- rnxsim what-happened --since 5s # absolute window
176
- rnxsim what-happened --kinds toast,fetch
177
- rnxsim what-happened --noisy # include react-commit/layout/scroll
178
- rnxsim what-happened --limit 50
179
- rnxsim what-happened --json
180
- rnxsim what-happened --no-advance # don't advance cursor after read
172
+ rnx what-happened # since last CLI call
173
+ rnx what-happened --summary # one-line counts
174
+ rnx what-happened --all # full ring (ignore cursor)
175
+ rnx what-happened --since 5s # absolute window
176
+ rnx what-happened --kinds toast,fetch
177
+ rnx what-happened --noisy # include react-commit/layout/scroll
178
+ rnx what-happened --limit 50
179
+ rnx what-happened --json
180
+ rnx what-happened --no-advance # don't advance cursor after read
181
181
 
182
182
  note: react-commit, layout, and scroll are opt-in/noisy events. enable them
183
- with "rnxsim timeline start <kind>", then pass --noisy or include them in
183
+ with "rnx timeline start <kind>", then pass --noisy or include them in
184
184
  --kinds to see them.
185
185
  `)
186
186
  process.exit(0)
@@ -16,7 +16,7 @@ function probe(): DriverAvailability {
16
16
  if (!install) {
17
17
  return {
18
18
  available: false,
19
- reason: 'rnxsim desktop app not installed (run `rnxsim desktop install`)',
19
+ reason: 'rnx desktop app not installed (run `rnx desktop install`)',
20
20
  }
21
21
  }
22
22
  return {
@@ -31,7 +31,7 @@ async function launch(opts: DriverLaunchOptions): Promise<DriverLaunchResult> {
31
31
  if (!install) {
32
32
  return {
33
33
  launched: false,
34
- message: 'rnxsim desktop app not installed',
34
+ message: 'rnx desktop app not installed',
35
35
  }
36
36
  }
37
37
  try {
@@ -63,7 +63,7 @@ async function launch(opts: DriverLaunchOptions): Promise<DriverLaunchResult> {
63
63
  export const electronDriver: Driver = {
64
64
  id: 'electron',
65
65
  name: 'electron',
66
- description: 'rnxsim desktop companion app (native window, menu bar)',
66
+ description: 'rnx desktop companion app (native window, menu bar)',
67
67
  kind: 'native',
68
68
  availability: probe,
69
69
  launch,