rnxsim 0.1.339 → 0.1.340

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 (167) hide show
  1. package/cli/app-config.ts +21 -1
  2. package/dist-cli/bin.js +5 -5
  3. package/dist-cli/chunks/{agent-HYXEA2DF.js → agent-DZRALHKK.js} +2 -2
  4. package/dist-cli/chunks/{agent-wrapper-XJKNKJGD.js → agent-wrapper-FFCII533.js} +2 -2
  5. package/dist-cli/chunks/{app-fonts-ECYIB477.js → app-fonts-P5TIE2BI.js} +2 -2
  6. package/dist-cli/chunks/{assert-XVYWL4OL.js → assert-L6YWZZH7.js} +2 -2
  7. package/dist-cli/chunks/{auth-RP5LJWFS.js → auth-2QUOSD3D.js} +2 -2
  8. package/dist-cli/chunks/{beta-VBVPDQZD.js → beta-DSQASQV7.js} +2 -2
  9. package/dist-cli/chunks/{camera-YVDG77OW.js → camera-KONNW6GF.js} +2 -2
  10. package/dist-cli/chunks/{chunk-37CF2HGR.js → chunk-2C7MJXES.js} +1 -1
  11. package/dist-cli/chunks/{chunk-44PQEV6X.js → chunk-2FT3GZ2P.js} +2 -2
  12. package/dist-cli/chunks/{chunk-PTDAFVH5.js → chunk-3KDMR5FE.js} +2 -2
  13. package/dist-cli/chunks/{chunk-2AZOL3UF.js → chunk-52LBSDBQ.js} +3 -3
  14. package/dist-cli/chunks/{chunk-VCYL5IR3.js → chunk-5JKZGU2L.js} +1 -1
  15. package/dist-cli/chunks/{chunk-ST4IRWA6.js → chunk-5ULMLFND.js} +1 -1
  16. package/dist-cli/chunks/{chunk-42UB5N4I.js → chunk-6HQ2CUG5.js} +1 -1
  17. package/dist-cli/chunks/{chunk-UMNOLET5.js → chunk-7IBTDBHW.js} +2 -2
  18. package/dist-cli/chunks/{chunk-VYMD42C2.js → chunk-AV323BT6.js} +2 -2
  19. package/dist-cli/chunks/{chunk-KTL2LUE5.js → chunk-AVGWPMGX.js} +1 -1
  20. package/dist-cli/chunks/{chunk-IWXDWYP4.js → chunk-AZWECMXO.js} +2 -2
  21. package/dist-cli/chunks/{chunk-3T22NM6B.js → chunk-BCGO3XWB.js} +2 -2
  22. package/dist-cli/chunks/{chunk-ZE44MQ4K.js → chunk-CA3D6BWR.js} +2 -2
  23. package/dist-cli/chunks/{chunk-XIEY6RUY.js → chunk-CKK6IEZD.js} +1 -1
  24. package/dist-cli/chunks/{chunk-QKMCPABX.js → chunk-CKKJUPAA.js} +1 -1
  25. package/dist-cli/chunks/{chunk-3R7KVPQ6.js → chunk-CYAEO7E3.js} +2 -2
  26. package/dist-cli/chunks/{chunk-Z2RU7GLW.js → chunk-DB4DBTM2.js} +2 -2
  27. package/dist-cli/chunks/{chunk-7WQGK44R.js → chunk-DEK47I44.js} +3 -3
  28. package/dist-cli/chunks/{chunk-CNFXAL6Z.js → chunk-DMAUBOZ2.js} +1 -1
  29. package/dist-cli/chunks/{chunk-76QEJTAT.js → chunk-EZ2WX6EK.js} +3 -3
  30. package/dist-cli/chunks/{chunk-KW3TVLRH.js → chunk-F4SGYRAP.js} +1 -1
  31. package/dist-cli/chunks/chunk-HWIUC6SX.js +4 -0
  32. package/dist-cli/chunks/{chunk-PRNSZ6B2.js → chunk-J2EHW26I.js} +2 -2
  33. package/dist-cli/chunks/{chunk-KAO5CST7.js → chunk-JJKRVEA6.js} +1 -1
  34. package/dist-cli/chunks/{chunk-NG7EAN4Z.js → chunk-JRJDACNV.js} +2 -2
  35. package/dist-cli/chunks/{chunk-GGDZMFEK.js → chunk-JX5LGYG2.js} +2 -2
  36. package/dist-cli/chunks/{chunk-FPQ4EECQ.js → chunk-L6FANSWV.js} +1 -1
  37. package/dist-cli/chunks/{chunk-5TECC5CJ.js → chunk-LQIMPJRD.js} +2 -2
  38. package/dist-cli/chunks/{chunk-VAR4NG7B.js → chunk-LXED7YNR.js} +1 -1
  39. package/dist-cli/chunks/{chunk-GESUHR5O.js → chunk-M76E72WP.js} +2 -2
  40. package/dist-cli/chunks/{chunk-7H5BVBSN.js → chunk-MKFOWHFO.js} +1 -1
  41. package/dist-cli/chunks/{chunk-IV4EVQFA.js → chunk-MXXR5IDW.js} +3 -3
  42. package/dist-cli/chunks/{chunk-AVK2JHMK.js → chunk-MYTUISZ3.js} +2 -2
  43. package/dist-cli/chunks/{chunk-NZ4MVNIE.js → chunk-NAG3Y5BF.js} +1 -1
  44. package/dist-cli/chunks/{chunk-OGSAZBRR.js → chunk-NZVA5ZGD.js} +1 -1
  45. package/dist-cli/chunks/{chunk-7F3ZRIVD.js → chunk-PH37P7G2.js} +2 -2
  46. package/dist-cli/chunks/{chunk-SS6FV24V.js → chunk-PYZHCZFD.js} +2 -2
  47. package/dist-cli/chunks/{chunk-RBB3BPRM.js → chunk-QRHLTYK7.js} +2 -2
  48. package/dist-cli/chunks/{chunk-FN3MYVOI.js → chunk-RYXIRFY2.js} +2 -2
  49. package/dist-cli/chunks/{chunk-KPN5X2PV.js → chunk-TAPZRN4C.js} +1 -1
  50. package/dist-cli/chunks/{chunk-ZVHDLFW6.js → chunk-TRGIXJN4.js} +2 -2
  51. package/dist-cli/chunks/{chunk-ROODJ6RF.js → chunk-U4ZHMDGL.js} +1 -1
  52. package/dist-cli/chunks/{chunk-QCDZI56P.js → chunk-UH2S5SLV.js} +2 -2
  53. package/dist-cli/chunks/{chunk-4NYMUV5O.js → chunk-UKKT5KM4.js} +2 -2
  54. package/dist-cli/chunks/{chunk-CIKEBWPF.js → chunk-UOK37RTL.js} +1 -1
  55. package/dist-cli/chunks/{chunk-M3SKRWFU.js → chunk-VP7D322G.js} +1 -1
  56. package/dist-cli/chunks/{chunk-WR3HAW34.js → chunk-W34ZT5MF.js} +2 -2
  57. package/dist-cli/chunks/{chunk-BISFMRD6.js → chunk-WRNCAZIB.js} +2 -2
  58. package/dist-cli/chunks/{chunk-HAPZCL5D.js → chunk-WRPLAFZP.js} +2 -2
  59. package/dist-cli/chunks/{chunk-76MUKN6C.js → chunk-X5C3SLYU.js} +1 -1
  60. package/dist-cli/chunks/{chunk-GFHGRBLQ.js → chunk-YNS55EN5.js} +2 -2
  61. package/dist-cli/chunks/{chunk-SWW36H42.js → chunk-Z7ILCEXG.js} +2 -2
  62. package/dist-cli/chunks/{chunk-QLIPEQVL.js → chunk-ZEU5RFAH.js} +2 -2
  63. package/dist-cli/chunks/{cleanup-4FUIYEXZ.js → cleanup-BPGPA6WN.js} +2 -2
  64. package/dist-cli/chunks/cli-version-GJ55D3JI.js +4 -0
  65. package/dist-cli/chunks/{compat-N6MLQSAE.js → compat-2L5FPDKU.js} +2 -2
  66. package/dist-cli/chunks/{config-VJQMQ2LP.js → config-NRXBYFB7.js} +2 -2
  67. package/dist-cli/chunks/{control-ONWYYQK6.js → control-G5SMCB2U.js} +2 -2
  68. package/dist-cli/chunks/daemon-HDNSS5A3.js +4 -0
  69. package/dist-cli/chunks/{debug-7WASIHHQ.js → debug-CTYLINPI.js} +3 -3
  70. package/dist-cli/chunks/{desktop-TAX4UBZU.js → desktop-JNYUDHX5.js} +3 -3
  71. package/dist-cli/chunks/{detox-GUWYLR7G.js → detox-ZWP5MUPJ.js} +2 -2
  72. package/dist-cli/chunks/{device-4CJWN2NQ.js → device-Y7ANIQJY.js} +2 -2
  73. package/dist-cli/chunks/{diagnose-PE6E6FIJ.js → diagnose-GFPN44ER.js} +2 -2
  74. package/dist-cli/chunks/{disk-cleanup-NCNDW6UG.js → disk-cleanup-OUHB2MKC.js} +2 -2
  75. package/dist-cli/chunks/drivers-3PUAZF6B.js +4 -0
  76. package/dist-cli/chunks/{film-3S5BWVCE.js → film-RNPYZHQA.js} +3 -3
  77. package/dist-cli/chunks/flow-XQUTMOQZ.js +4 -0
  78. package/dist-cli/chunks/help-C7Y5IENX.js +4 -0
  79. package/dist-cli/chunks/{hidden-runtime-alias-5NJA6RDT.js → hidden-runtime-alias-DGMIDDY6.js} +2 -2
  80. package/dist-cli/chunks/{home-paths-JEJ5BS23.js → home-paths-YEFW63N5.js} +2 -2
  81. package/dist-cli/chunks/inspect-4NF3PPRZ.js +4 -0
  82. package/dist-cli/chunks/install-desktop-66LPKLQI.js +4 -0
  83. package/dist-cli/chunks/{login-WXWIBQ5C.js → login-ASAFHSEL.js} +4 -4
  84. package/dist-cli/chunks/{logout-WYOZ64JT.js → logout-F3B5TUCU.js} +2 -2
  85. package/dist-cli/chunks/{maestro-VG64BSNR.js → maestro-MJD54Z7R.js} +3 -3
  86. package/dist-cli/chunks/{maestro-generate-7ILUVQKH.js → maestro-generate-PQZ33V42.js} +3 -3
  87. package/dist-cli/chunks/{mode-AWVXLR3D.js → mode-TKOOHJNS.js} +2 -2
  88. package/dist-cli/chunks/{optional-demo-registry-RRH3SRSJ.js → optional-demo-registry-VX3WVJXT.js} +2 -2
  89. package/dist-cli/chunks/{perf-IDLWGRFE.js → perf-JRREHJB6.js} +2 -2
  90. package/dist-cli/chunks/{permissions-YQOMEBOQ.js → permissions-RQZLGYVF.js} +2 -2
  91. package/dist-cli/chunks/{record-S76THKKB.js → record-LBNBJ6U4.js} +3 -3
  92. package/dist-cli/chunks/{report-issue-76TVGJYX.js → report-issue-O63Z4GXO.js} +2 -2
  93. package/dist-cli/chunks/reset-734HPURU.js +4 -0
  94. package/dist-cli/chunks/runtime-PRF4VZAB.js +4 -0
  95. package/dist-cli/chunks/{screenshot-command-LLEQWW3R.js → screenshot-command-OLZIGKZR.js} +3 -3
  96. package/dist-cli/chunks/{screenshot-layers-327WK2L3.js → screenshot-layers-ZCKD62ME.js} +2 -2
  97. package/dist-cli/chunks/{screenshots-capture-LHIBYR3R.js → screenshots-capture-CJFJACD7.js} +2 -2
  98. package/dist-cli/chunks/serve-L6QW4B55.js +118 -0
  99. package/dist-cli/chunks/{setup-H5EUUEOX.js → setup-CHUHRWKS.js} +2 -2
  100. package/dist-cli/chunks/{skills-3KH5KUN4.js → skills-J44O4CRY.js} +2 -2
  101. package/dist-cli/chunks/{state-RZCVH5FJ.js → state-MSTCUB5E.js} +2 -2
  102. package/dist-cli/chunks/{storage-RRCXZVON.js → storage-23Y5YSD3.js} +2 -2
  103. package/dist-cli/chunks/store-IK5DQZ2G.js +4 -0
  104. package/dist-cli/chunks/telemetry-SCC2A4KF.js +4 -0
  105. package/dist-cli/chunks/{timeline-KE7BJKM5.js → timeline-R7VNARZ5.js} +2 -2
  106. package/dist-cli/chunks/{upgrade-AE5U2CWH.js → upgrade-YUASBYYN.js} +2 -2
  107. package/dist-cli/chunks/upload-BFCTC54P.js +4 -0
  108. package/dist-cli/chunks/{version-C5QGOCDN.js → version-FSV3NQBN.js} +2 -2
  109. package/dist-cli/chunks/{web-GV7JJUAJ.js → web-LZH2QIJ5.js} +2 -2
  110. package/dist-cli/chunks/{what-happened-D6WMLM2M.js → what-happened-F45IZ34K.js} +2 -2
  111. package/dist-lib/agent-daemon-client.cjs +1 -1
  112. package/dist-lib/agent-events.cjs +1 -1
  113. package/dist-lib/agent-identity.cjs +1 -1
  114. package/dist-lib/agent-sessions.cjs +1 -1
  115. package/dist-lib/attached-projects.cjs +1 -1
  116. package/dist-lib/auth/shared-session.cjs +1 -1
  117. package/dist-lib/backend-origin.cjs +1 -1
  118. package/dist-lib/beta.cjs +1 -1
  119. package/dist-lib/beta.mjs +1 -1
  120. package/dist-lib/bridge-constants.cjs +1 -1
  121. package/dist-lib/bridge-contract.cjs +1 -1
  122. package/dist-lib/cli-constants.cjs +1 -1
  123. package/dist-lib/config.cjs +1 -1
  124. package/dist-lib/detox/index.cjs +1 -1
  125. package/dist-lib/dev-bundle-resolution.cjs +1 -1
  126. package/dist-lib/home-paths.cjs +1 -1
  127. package/dist-lib/host/bridge-host.cjs +203 -8
  128. package/dist-lib/host/fetch-proxy-handler.cjs +1 -1
  129. package/dist-lib/host/fetch-proxy-overrides.cjs +1 -1
  130. package/dist-lib/host/fetch-proxy-overrides.mjs +1 -1
  131. package/dist-lib/host/replacement-module-handler.cjs +236 -0
  132. package/dist-lib/host/websocket-proxy.cjs +1 -1
  133. package/dist-lib/index.cjs +195 -8
  134. package/dist-lib/jump-to-source-babel.cjs +1 -1
  135. package/dist-lib/menu.cjs +1 -1
  136. package/dist-lib/menu.mjs +1 -1
  137. package/dist-lib/metro-production-bundle.cjs +1 -1
  138. package/dist-lib/metro-production-bundle.mjs +1 -1
  139. package/dist-lib/metro.cjs +1 -1
  140. package/dist-lib/profiles.cjs +1 -1
  141. package/dist-lib/public-brand.cjs +1 -1
  142. package/dist-lib/react-native-host-modules.cjs +1 -1
  143. package/dist-lib/react-native-host-modules.mjs +1 -1
  144. package/dist-lib/render-mode.cjs +1 -1
  145. package/dist-lib/scripts/dev-server-scanner.cjs +1 -1
  146. package/dist-lib/sdk.cjs +1 -1
  147. package/dist-lib/sdk.mjs +1 -1
  148. package/dist-lib/skills.cjs +371 -155
  149. package/dist-lib/vite.cjs +188 -1
  150. package/package.json +6 -2
  151. package/src/host/bridge-host.ts +9 -0
  152. package/src/host/replacement-module-handler.ts +220 -0
  153. package/src/vite-plugin-one.ts +7 -0
  154. package/dist-cli/chunks/chunk-K3JRFYYJ.js +0 -4
  155. package/dist-cli/chunks/cli-version-KVDXKEHT.js +0 -4
  156. package/dist-cli/chunks/daemon-XG3O4723.js +0 -4
  157. package/dist-cli/chunks/drivers-F73P7O5K.js +0 -4
  158. package/dist-cli/chunks/flow-7EO3TWAY.js +0 -4
  159. package/dist-cli/chunks/help-3GA4GYV6.js +0 -4
  160. package/dist-cli/chunks/inspect-VUH3UOVP.js +0 -4
  161. package/dist-cli/chunks/install-desktop-YFWELRMN.js +0 -4
  162. package/dist-cli/chunks/reset-TTWH3EGL.js +0 -4
  163. package/dist-cli/chunks/runtime-R6XCSUO7.js +0 -4
  164. package/dist-cli/chunks/serve-AI6WHUKJ.js +0 -44
  165. package/dist-cli/chunks/store-N6YWP4XP.js +0 -4
  166. package/dist-cli/chunks/telemetry-MI5XEML5.js +0 -4
  167. package/dist-cli/chunks/upload-THUL2TQZ.js +0 -4
@@ -1,7 +1,7 @@
1
- /*! rnx v0.1.339 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.340 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  import { createRequire as __sootsimCreateRequire } from 'node:module'
3
3
  var require = __sootsimCreateRequire(import.meta.url)
4
- import{a as k}from"./chunk-VAR4NG7B.js";import{a as $}from"./chunk-42UB5N4I.js";import{spawn as v,spawnSync as m}from"child_process";import{chmodSync as S,copyFileSync as T,createWriteStream as E,existsSync as w,mkdirSync as y,rmSync as g,statSync as P,unlinkSync as D}from"fs";import{tmpdir as M}from"os";import{dirname as A,join as f,resolve as b}from"path";var h="https://contrast.dev/api/electron-release";function O(){let r=process.arch;if(process.platform==="darwin"){let t=r==="arm64"?"mac-arm64":"mac-x64",e=`sootsim-latest-${t}.dmg`;return{platform:t,filename:e,url:`${h}/${e}`,install:L}}if(process.platform==="linux"){let t=r==="arm64"?"linux-arm64":"linux-x64",e=`sootsim-latest-${t}.AppImage`;return{platform:t,filename:e,url:`${h}/${e}`,install:C}}if(process.platform==="win32"){let t="sootsim-latest-win-x64.exe";return{platform:"win-x64",filename:t,url:`${h}/${t}`,install:B}}return null}async function I({url:r,dest:t,onProgress:e}){let s=await fetch(r,{redirect:"follow"});if(!s.ok)throw new Error(`${s.status} ${s.statusText} (${r})`);let o=s.headers.get("content-length"),a=o?Number(o):null;if(!s.body)throw new Error(`empty response body (${r})`);y(A(t),{recursive:!0});let i=E(t),d=s.body.getReader(),c=0;try{for(;;){let{done:l,value:p}=await d.read();if(l)break;i.write(Buffer.from(p)),c+=p.byteLength,e?.(c,a)}}finally{await new Promise((l,p)=>{i.end(n=>n?p(n):l())})}}function _(r,t){let e=(r/1048576).toFixed(1);if(!t)return` ${e} MB`;let s=Math.min(100,Math.round(r/t*100)),o=(t/(1024*1024)).toFixed(1),a=24,i=Math.round(s/100*a);return` ${"\u2588".repeat(i)+"\u2591".repeat(a-i)} ${s}% ${e} / ${o} MB`}async function L(r){let t=m("hdiutil",["attach","-nobrowse","-readonly",r],{encoding:"utf8"});if(t.status!==0)throw new Error(`hdiutil attach failed: ${t.stderr||t.stdout}`.trim());let e=t.stdout.trim().split(`
4
+ import{a as k}from"./chunk-LXED7YNR.js";import{a as $}from"./chunk-6HQ2CUG5.js";import{spawn as v,spawnSync as m}from"child_process";import{chmodSync as S,copyFileSync as T,createWriteStream as E,existsSync as w,mkdirSync as y,rmSync as g,statSync as P,unlinkSync as D}from"fs";import{tmpdir as M}from"os";import{dirname as A,join as f,resolve as b}from"path";var h="https://contrast.dev/api/electron-release";function O(){let r=process.arch;if(process.platform==="darwin"){let t=r==="arm64"?"mac-arm64":"mac-x64",e=`sootsim-latest-${t}.dmg`;return{platform:t,filename:e,url:`${h}/${e}`,install:L}}if(process.platform==="linux"){let t=r==="arm64"?"linux-arm64":"linux-x64",e=`sootsim-latest-${t}.AppImage`;return{platform:t,filename:e,url:`${h}/${e}`,install:C}}if(process.platform==="win32"){let t="sootsim-latest-win-x64.exe";return{platform:"win-x64",filename:t,url:`${h}/${t}`,install:B}}return null}async function I({url:r,dest:t,onProgress:e}){let s=await fetch(r,{redirect:"follow"});if(!s.ok)throw new Error(`${s.status} ${s.statusText} (${r})`);let o=s.headers.get("content-length"),a=o?Number(o):null;if(!s.body)throw new Error(`empty response body (${r})`);y(A(t),{recursive:!0});let i=E(t),d=s.body.getReader(),c=0;try{for(;;){let{done:l,value:p}=await d.read();if(l)break;i.write(Buffer.from(p)),c+=p.byteLength,e?.(c,a)}}finally{await new Promise((l,p)=>{i.end(n=>n?p(n):l())})}}function _(r,t){let e=(r/1048576).toFixed(1);if(!t)return` ${e} MB`;let s=Math.min(100,Math.round(r/t*100)),o=(t/(1024*1024)).toFixed(1),a=24,i=Math.round(s/100*a);return` ${"\u2588".repeat(i)+"\u2591".repeat(a-i)} ${s}% ${e} / ${o} MB`}async function L(r){let t=m("hdiutil",["attach","-nobrowse","-readonly",r],{encoding:"utf8"});if(t.status!==0)throw new Error(`hdiutil attach failed: ${t.stderr||t.stdout}`.trim());let e=t.stdout.trim().split(`
5
5
  `),o=e[e.length-1].split(" ").pop()?.trim();if(!o||!w(o))throw new Error(`could not determine dmg mount point (output: ${t.stdout})`);let a=f(o,"sootsim.app");if(!w(a))throw m("hdiutil",["detach","-force",o]),new Error(`sootsim.app not found inside ${o}`);let i="/Applications",d=b(process.env.HOME||"","Applications"),c=i;try{let u=f(i,`.sootsim-write-probe-${process.pid}`);m("touch",[u]),w(u)?g(u,{force:!0}):c=d}catch{c=d}c===d&&y(c,{recursive:!0});let l=f(c,"sootsim.app");w(l)&&g(l,{recursive:!0,force:!0});let p=m("cp",["-R",a,l]),n=m("hdiutil",["detach","-force",o]);if(p.status!==0)throw new Error(`copy to ${l} failed: ${p.stderr?.toString()||""}`.trim());return n.status!==0&&console.warn(` warning: failed to unmount ${o} (${n.stderr?.toString().trim()||"unknown error"})`),m("xattr",["-dr","com.apple.quarantine",l]),l}async function C(r){let t=b(process.env.HOME||"","Applications");y(t,{recursive:!0});let e=f(t,"sootsim.AppImage");return w(e)&&g(e,{force:!0}),T(r,e),D(r),S(e,493),e}async function B(r){return await new Promise((t,e)=>{let s=v("cmd",["/c","start",'""',"/wait",r],{stdio:"inherit"});s.once("error",e),s.once("exit",o=>{o===0?t():e(new Error(`installer exited with code ${o}`))})}),r}async function q(r){(r.includes("--help")||r.includes("-h"))&&(console.log(`
6
6
  rnx desktop install \u2014 download and install the optional desktop GUI
7
7
 
@@ -22,4 +22,4 @@ examples:
22
22
  `),process.exit(0));let t=r.includes("--yes")||r.includes("-y")||process.env.SOOTSIM_NO_PROMPT==="1"||process.env.CI==="1"||!process.stdin.isTTY,e=r.includes("--force"),s=k();if(s&&!e){console.log(` rnx desktop already installed at: ${s.path}`),console.log(" pass --force to reinstall.");return}let o=O();if(o||(console.error(` no desktop build available for ${process.platform}/${process.arch}.`),console.error(" supported: darwin-arm64, darwin-x64, linux-x64, linux-arm64, win32-x64"),process.exit(1)),console.log(` platform: ${o.platform}`),console.log(` download: ${o.url}`),console.log(),!t){if(!await $("download and install now?",!0)){console.log(" cancelled.");return}console.log()}let a=f(M(),`sootsim-install-${Date.now()}`),i=f(a,o.filename),d=0;process.stdout.write(` downloading ${o.filename}...
23
23
  `);try{await I({url:o.url,dest:i,onProgress:(n,u)=>{let x=Date.now();x-d<100&&n<(u??1/0)||(d=x,process.stdout.isTTY&&process.stdout.write(`\r\x1B[2K${_(n,u)}`))}})}catch(n){g(a,{recursive:!0,force:!0});let u=n instanceof Error?n.message:String(n);console.error(`
24
24
  download failed: ${u}`),console.error(` the ${o.platform} desktop build may not be published yet, or your`),console.error(" network blocked the request. check your connection and try again later;"),console.error(" the CLI + daemon work without the desktop app (run: rnx --help)."),process.exit(1)}process.stdout.isTTY&&process.stdout.write(`
25
- `);let c=P(i).size;console.log(` downloaded ${(c/(1024*1024)).toFixed(1)} MB`),console.log(),console.log(" installing...");let{trackCliEvent:l,flushCliTelemetry:p}=await import("./telemetry-MI5XEML5.js");try{let n=await o.install(i);l({event:"cli_install_desktop_succeeded",properties:{platform:o.platform,size_bytes:c}}),console.log(` installed: ${n}`)}catch(n){l({event:"cli_install_desktop_failed",properties:{platform:o.platform,error:n instanceof Error?n.message:String(n)}}),await p(),console.error(` install failed: ${n instanceof Error?n.message:String(n)}`),console.error(` keeping download at ${i} for manual install.`),process.exit(1)}finally{g(a,{recursive:!0,force:!0})}console.log(),console.log(" next steps:"),console.log(" rnx desktop launch the desktop app"),console.log(" rnx open <target> open a demo or bundle in it")}export{q as a};
25
+ `);let c=P(i).size;console.log(` downloaded ${(c/(1024*1024)).toFixed(1)} MB`),console.log(),console.log(" installing...");let{trackCliEvent:l,flushCliTelemetry:p}=await import("./telemetry-SCC2A4KF.js");try{let n=await o.install(i);l({event:"cli_install_desktop_succeeded",properties:{platform:o.platform,size_bytes:c}}),console.log(` installed: ${n}`)}catch(n){l({event:"cli_install_desktop_failed",properties:{platform:o.platform,error:n instanceof Error?n.message:String(n)}}),await p(),console.error(` install failed: ${n instanceof Error?n.message:String(n)}`),console.error(` keeping download at ${i} for manual install.`),process.exit(1)}finally{g(a,{recursive:!0,force:!0})}console.log(),console.log(" next steps:"),console.log(" rnx desktop launch the desktop app"),console.log(" rnx open <target> open a demo or bundle in it")}export{q as a};
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.339 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.340 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  import { createRequire as __sootsimCreateRequire } from 'node:module'
3
3
  var require = __sootsimCreateRequire(import.meta.url)
4
4
  import{randomUUID as R}from"node:crypto";import r from"node:fs";import{homedir as O}from"node:os";import o from"node:path";var j="SOOTSIM_HOME",N="active",E="daemon.json",_="dev-bridges",w="config.json",b=3e4;function s(){let e=process.env[j];return e&&e.length>0?o.resolve(e):o.join(O(),".sootsim")}function F(){if(process.env.SOOTSIM_FORCE_DAEMON_INSTALL==="1")return!1;let e=process.env.SOOTSIM_DEV;if(e==="1"||e==="true")return!0;if(e==="0"||e==="false")return!1;let t=process.argv[1];if(!t)return!1;try{return r.realpathSync(t).includes(`${o.sep}packages${o.sep}sootsim${o.sep}`)}catch{return!1}}function I(){return process.env.SOOTSIM_FORCE_DAEMON_INSTALL==="1"?!1:process.env.IS_TAMAGUI_DEV==="1"}function Y(){return F()||I()}function d(){return o.join(s(),"runtimes")}function B(e){return o.join(d(),e)}function h(){return o.join(d(),N)}function v(){return o.join(s(),"electron")}function q(){return o.join(v(),"userData")}function z(e){return o.join(v(),e)}function $(){return o.join(s(),"profiles")}function Q(){return o.join(s(),"camera-fixtures")}function C(){return o.join(s(),"daemon-app")}function M(){return o.join(C(),"SootSim Daemon.app")}function Z(){return o.join(M(),"Contents","MacOS","sootsim-daemon")}function T(){return o.join(s(),"cache")}function a(){return o.join(s(),E)}function f(){return o.join(s(),_)}function D(e){if(!Number.isInteger(e)||e<=0)throw new Error(`invalid development bridge port: ${e}`);return o.join(f(),`${e}.json`)}function y(){return o.join(s(),w)}function S(){try{let e=r.readFileSync(y(),"utf8"),t=JSON.parse(e);return t&&typeof t=="object"?t:{}}catch{return{}}}function x(e){m();let t=S(),n={...t,...e};e.settings&&typeof e.settings=="object"&&(n.settings={...t.settings&&typeof t.settings=="object"?t.settings:{},...e.settings});let c=`${y()}.tmp`;return r.writeFileSync(c,`${JSON.stringify(n,null,2)}
@@ -1,7 +1,7 @@
1
- /*! rnx v0.1.339 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.340 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  import { createRequire as __sootsimCreateRequire } from 'node:module'
3
3
  var require = __sootsimCreateRequire(import.meta.url)
4
- import{b as jt,c as qt}from"./chunk-FPQ4EECQ.js";import{a as Dt,b as Bt}from"./chunk-ROODJ6RF.js";import{a as de}from"./chunk-44PQEV6X.js";import{k as Ct}from"./chunk-FN3MYVOI.js";import{a as oe,b as C,c as B,d as Me,e as ae,f as X,g as pe,h as ye,i as Et,j as At,k as Ne,l as _t}from"./chunk-WR3HAW34.js";import{A as Mt,B as Nt,C as Ft,F as Ot,H as Pt,J as ue,K as Rt,Q as We,a as Ie,b as mt,c as ft,d as gt,e as yt,f as ht,g as bt,h as wt,i as xt,j as $t,k as Ce,l as je,r as qe,s as St,t as vt,u as ge,v as kt,w as Te,x as Le,y as It,z as Tt}from"./chunk-76MUKN6C.js";import{a as st}from"./chunk-37CF2HGR.js";import{a as Q}from"./chunk-3T22NM6B.js";import{e as it,j as at,o as lt,q as ct,s as dt,t as ut,u as pt,v as ce}from"./chunk-AVK2JHMK.js";import{c as nt,d as Be,f as rt}from"./chunk-KPN5X2PV.js";function Je(e){return`(async () => {
4
+ import{b as jt,c as qt}from"./chunk-L6FANSWV.js";import{a as Dt,b as Bt}from"./chunk-U4ZHMDGL.js";import{a as de}from"./chunk-2FT3GZ2P.js";import{k as Ct}from"./chunk-RYXIRFY2.js";import{a as oe,b as C,c as B,d as Me,e as ae,f as X,g as pe,h as ye,i as Et,j as At,k as Ne,l as _t}from"./chunk-W34ZT5MF.js";import{A as Mt,B as Nt,C as Ft,F as Ot,H as Pt,J as ue,K as Rt,Q as We,a as Ie,b as mt,c as ft,d as gt,e as yt,f as ht,g as bt,h as wt,i as xt,j as $t,k as Ce,l as je,r as qe,s as St,t as vt,u as ge,v as kt,w as Te,x as Le,y as It,z as Tt}from"./chunk-X5C3SLYU.js";import{a as st}from"./chunk-2C7MJXES.js";import{a as Q}from"./chunk-BCGO3XWB.js";import{e as it,j as at,o as lt,q as ct,s as dt,t as ut,u as pt,v as ce}from"./chunk-MYTUISZ3.js";import{c as nt,d as Be,f as rt}from"./chunk-TAPZRN4C.js";function Je(e){return`(async () => {
5
5
  const bridge = globalThis.SootSim && globalThis.SootSim.bridges && globalThis.SootSim.bridges.hotRemount
6
6
  if (!bridge || typeof bridge.reloadExternalApp !== 'function') return false
7
7
  await bridge.reloadExternalApp({ resetStorage: ${e?"true":"false"} })
@@ -552,7 +552,7 @@ import{b as jt,c as qt}from"./chunk-FPQ4EECQ.js";import{a as Dt,b as Bt}from"./c
552
552
  `),process.exit(0))}let o=["do","get","debug","wait"].map(n=>Be(n,S)).filter(n=>n!=null).join(`
553
553
 
554
554
  `);console.log(`${o}
555
- `),process.exit(0)}let M=d.wsPort,x=d.simId,_=d.simIdSource,O=d.commandTimeoutMs;if(b==="get"&&p==="diagnosis"){let S=i.indexOf("diagnosis"),o=S>=0?[...i.slice(0,S),...i.slice(S+1)]:i,{runDiagnose:n}=await import("./diagnose-PE6E6FIJ.js"),a=await n(["recent",...o],t);process.exitCode=a;return}if(b==="do"&&p==="scan"){let{runCamera:S}=await import("./camera-YVDG77OW.js");process.exitCode=await S(i,{port:t.port});return}if(p==="list"&&i.some(S=>S==="--drivers"||S==="-D")){let{buildDriverListRows:S}=await import("./drivers-F73P7O5K.js"),o=S();console.log(` available drivers (${o.length}):
555
+ `),process.exit(0)}let M=d.wsPort,x=d.simId,_=d.simIdSource,O=d.commandTimeoutMs;if(b==="get"&&p==="diagnosis"){let S=i.indexOf("diagnosis"),o=S>=0?[...i.slice(0,S),...i.slice(S+1)]:i,{runDiagnose:n}=await import("./diagnose-GFPN44ER.js"),a=await n(["recent",...o],t);process.exitCode=a;return}if(b==="do"&&p==="scan"){let{runCamera:S}=await import("./camera-KONNW6GF.js");process.exitCode=await S(i,{port:t.port});return}if(p==="list"&&i.some(S=>S==="--drivers"||S==="-D")){let{buildDriverListRows:S}=await import("./drivers-3PUAZF6B.js"),o=S();console.log(` available drivers (${o.length}):
556
556
  `);let n=Math.max(...o.map(l=>l.id.length),6),a=Math.max(...o.map(l=>l.kind.length),4);for(let l of o){let u=l.available?"\u2713":"\u2717",m=l.id.padEnd(n),f=l.kind.padEnd(a);console.log(` ${u} ${m} ${f} ${l.description}`),l.available&&l.detail?console.log(` ${l.detail}`):!l.available&&l.reason&&console.log(` unavailable: ${l.reason}`)}return}let c=dt(d),D=x||"default",R=new Set(["errors","warnings","requests","js","reload","globals","perf","storage-clear","list","wait","sleep"]),A=200;function J(S){let o=S.replace(/\s+/g," ").trim();if(!o)return"";if(/^<(!doctype html|html|\?xml)|<body[\s>]/i.test(o)){let a=/<title[^>]*>([^<]+)<\/title>/i.exec(S)?.[1]?.trim(),l=/<body[^>]*>([\s\S]*?)<\//i.exec(S)?.[1]?.replace(/<[^>]+>/g," ").replace(/\s+/g," ").trim().slice(0,80),u=a||l||"html error page";return`<html ${S.length}B> "${u}" (body elided \u2014 add --json for the full payload)`}return o.length<=A?o:`${o.slice(0,A)}\u2026 (+${o.length-A} more bytes)`}function U(S){let o=S.displayUrl||S.url;return S.status!=null?`${S.method} ${o} -> ${S.status}${S.statusText?` ${S.statusText}`:""}`:S.error?`${S.method} ${o} -> ${S.error}`:`${S.method} ${o}`}async function T(S){let o=fe()?400:200;try{let{settled:n,elapsed:a}=await se({bridge:S,maxMs:o,pollMs:32,stablePolls:2});n||process.stderr.write(` \u26A0 auto-wait timed out after ${a??o}ms \u2014 next command may see mid-animation state. use \`rnx do settle\` for a longer wait.
557
557
  `)}catch{}}function P(S,o){if(o.result?.reason==="offscreen"){let{x:n,y:a,screen:l}=o.result;console.error(` tap failed: ${S} resolved to (${Math.round(n)},${Math.round(a)}), outside the ${l?.width}x${l?.height} screen`),console.error(" the node exists but is scrolled out of view \u2014 scroll it on-screen first (rnx do scroll / swipe), then tap.");return}console.error(` tap failed: ${S} stayed visible but did not receive a hittable press after ${o.attempts} attempt${o.attempts===1?"":"s"}`),o.result&&console.error(` last result: ${JSON.stringify(o.result)}`)}async function H(){try{return await c.send({type:"evaluate",code:`(() => ({
558
558
  console: ${Te},