rnxsim 0.1.372 → 0.1.373

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 (190) hide show
  1. package/dist-cli/bin.js +5 -5
  2. package/dist-cli/chunks/{agent-RTAKJ5UM.js → agent-TJXK3LYQ.js} +2 -2
  3. package/dist-cli/chunks/{agent-wrapper-JWRDI26D.js → agent-wrapper-IBMSADYR.js} +2 -2
  4. package/dist-cli/chunks/{app-fonts-RKO3N4PB.js → app-fonts-PUXF6G6Y.js} +2 -2
  5. package/dist-cli/chunks/{assert-Y5LXPWC6.js → assert-RSPGS4CF.js} +2 -2
  6. package/dist-cli/chunks/{auth-4SPTRWTM.js → auth-P4RWMWAM.js} +2 -2
  7. package/dist-cli/chunks/{beta-KYS22QPY.js → beta-HNRJDCWK.js} +2 -2
  8. package/dist-cli/chunks/{box-7CK72ZPF.js → box-TBCAJ74I.js} +2 -2
  9. package/dist-cli/chunks/{camera-RUL426MQ.js → camera-2P7A65KA.js} +2 -2
  10. package/dist-cli/chunks/{chunk-YWTBN7SD.js → chunk-2272Y5HN.js} +1 -1
  11. package/dist-cli/chunks/{chunk-QA2PTSOC.js → chunk-2YNZ3GHI.js} +1 -1
  12. package/dist-cli/chunks/{chunk-R7HMFLXI.js → chunk-45MY5YQL.js} +2 -2
  13. package/dist-cli/chunks/{chunk-SZX6ARJX.js → chunk-4AGK7T3W.js} +3 -3
  14. package/dist-cli/chunks/{chunk-RXKZJAGY.js → chunk-4NBB7L3M.js} +1 -1
  15. package/dist-cli/chunks/{chunk-KXAE64HF.js → chunk-4RQFXEF2.js} +2 -2
  16. package/dist-cli/chunks/{chunk-L5BEWXQZ.js → chunk-4ULLSYFL.js} +2 -2
  17. package/dist-cli/chunks/{chunk-YEGWC2OY.js → chunk-52NWLXHO.js} +1 -1
  18. package/dist-cli/chunks/{chunk-SLTEYNAE.js → chunk-5BMF3MJN.js} +1 -1
  19. package/dist-cli/chunks/{chunk-U3XYGLXG.js → chunk-5H5N36NO.js} +2 -2
  20. package/dist-cli/chunks/{chunk-Q7JSU5DI.js → chunk-5UMNXXVL.js} +3 -3
  21. package/dist-cli/chunks/{chunk-UVKX6FQ4.js → chunk-676FU5M6.js} +1 -1
  22. package/dist-cli/chunks/{chunk-5Q6ZEZFF.js → chunk-6CYCKPTJ.js} +1 -1
  23. package/dist-cli/chunks/{chunk-CZ2FOZVC.js → chunk-7T3K66TV.js} +2 -2
  24. package/dist-cli/chunks/{chunk-CEQXZ3GA.js → chunk-ADP35DA3.js} +2 -2
  25. package/dist-cli/chunks/{chunk-HDGZAVH3.js → chunk-AQBARY5L.js} +2 -2
  26. package/dist-cli/chunks/{chunk-LWLHVF6Y.js → chunk-AYZLK7R4.js} +1 -1
  27. package/dist-cli/chunks/{chunk-G5G7PQKO.js → chunk-B7LYAWJU.js} +2 -2
  28. package/dist-cli/chunks/{chunk-DQOQQFMP.js → chunk-BHNWFDNX.js} +1 -1
  29. package/dist-cli/chunks/{chunk-2MA3Q44D.js → chunk-BLOJLKH7.js} +1 -1
  30. package/dist-cli/chunks/{chunk-K4TGUDY4.js → chunk-CVMYEPWT.js} +2 -2
  31. package/dist-cli/chunks/{chunk-PETP6LVI.js → chunk-EEBXLGGD.js} +1 -1
  32. package/dist-cli/chunks/{chunk-7FYOZQBM.js → chunk-EG4HCEKS.js} +1 -1
  33. package/dist-cli/chunks/{chunk-ZRQKEKHX.js → chunk-EUEQHXM2.js} +2 -2
  34. package/dist-cli/chunks/{chunk-4UMODU6C.js → chunk-GVIPHFFH.js} +2 -2
  35. package/dist-cli/chunks/{chunk-NBEOA72C.js → chunk-HIFJBR5S.js} +1 -1
  36. package/dist-cli/chunks/{chunk-FOW2LPM7.js → chunk-HSKW3YE2.js} +2 -2
  37. package/dist-cli/chunks/{chunk-H567W7JT.js → chunk-IGHXSJ54.js} +2 -2
  38. package/dist-cli/chunks/{chunk-I7LRVN5M.js → chunk-K6GGQQU5.js} +2 -2
  39. package/dist-cli/chunks/{chunk-PUH6RQBJ.js → chunk-LEX3XST4.js} +2 -2
  40. package/dist-cli/chunks/{chunk-D5AT7UT5.js → chunk-MTWJ3CNR.js} +2 -2
  41. package/dist-cli/chunks/{chunk-3C6LTIDV.js → chunk-MWXYYQMU.js} +2 -2
  42. package/dist-cli/chunks/{chunk-H2SKPUSI.js → chunk-NEJ3WA75.js} +2 -2
  43. package/dist-cli/chunks/{chunk-POR7R3TP.js → chunk-NHUVO3VC.js} +1 -1
  44. package/dist-cli/chunks/{chunk-MSM2E74F.js → chunk-NQDLJL63.js} +1 -1
  45. package/dist-cli/chunks/{chunk-SC7PGULZ.js → chunk-O5TKIMXX.js} +2 -2
  46. package/dist-cli/chunks/{chunk-XA4YU3A4.js → chunk-O6VJVWEA.js} +3 -3
  47. package/dist-cli/chunks/{chunk-WR7LRCYW.js → chunk-O7NKNTJ6.js} +1 -1
  48. package/dist-cli/chunks/{chunk-NT43X5LI.js → chunk-OCH4TAJF.js} +2 -2
  49. package/dist-cli/chunks/{chunk-P6K6XFWE.js → chunk-PGPD6XML.js} +2 -2
  50. package/dist-cli/chunks/{chunk-I37LRPZ3.js → chunk-POCPBDTJ.js} +1 -1
  51. package/dist-cli/chunks/chunk-QKX26L27.js +6 -0
  52. package/dist-cli/chunks/{chunk-J2TJRPDB.js → chunk-QPONDPPF.js} +2 -2
  53. package/dist-cli/chunks/{chunk-SSQCKJQZ.js → chunk-SDY5Y6EY.js} +2 -2
  54. package/dist-cli/chunks/{chunk-Q5WPPOFV.js → chunk-SK6RRDXP.js} +1 -1
  55. package/dist-cli/chunks/{chunk-KVVNCIJA.js → chunk-TIPRUSQQ.js} +1 -1
  56. package/dist-cli/chunks/{chunk-ZTZTRD5R.js → chunk-U55C6SUH.js} +1 -1
  57. package/dist-cli/chunks/{chunk-EKSSAC4L.js → chunk-UFR7WANF.js} +1 -1
  58. package/dist-cli/chunks/{chunk-KSE5XGYU.js → chunk-UHFVEMYL.js} +2 -2
  59. package/dist-cli/chunks/{chunk-LAQKTHRM.js → chunk-UL6JYYB3.js} +2 -2
  60. package/dist-cli/chunks/{chunk-UA5WQCBU.js → chunk-UL6KGGFA.js} +2 -2
  61. package/dist-cli/chunks/{chunk-BRRWRBW7.js → chunk-UMTP3PDW.js} +2 -2
  62. package/dist-cli/chunks/{chunk-MKHW3JNL.js → chunk-VBAUP3CK.js} +2 -2
  63. package/dist-cli/chunks/{chunk-KWLUOLYQ.js → chunk-VPWI7ZQM.js} +2 -2
  64. package/dist-cli/chunks/{chunk-JPRHJMUJ.js → chunk-VXZGJMFM.js} +1 -1
  65. package/dist-cli/chunks/{chunk-NWPYM54M.js → chunk-XHSYJMBV.js} +1 -1
  66. package/dist-cli/chunks/{chunk-GPYG2L7R.js → chunk-XOPJZBOT.js} +2 -2
  67. package/dist-cli/chunks/{chunk-PKY76S57.js → chunk-XUJ67CGZ.js} +1 -1
  68. package/dist-cli/chunks/{chunk-NLMDMNO6.js → chunk-Y47FOLM5.js} +2 -2
  69. package/dist-cli/chunks/{chunk-VQQXUXXF.js → chunk-YIH24FX4.js} +2 -2
  70. package/dist-cli/chunks/{chunk-EY5OHL2M.js → chunk-YPJJDEFE.js} +1 -1
  71. package/dist-cli/chunks/{chunk-OLHHB6LD.js → chunk-ZGOWBBWX.js} +2 -2
  72. package/dist-cli/chunks/{chunk-IX25FFF3.js → chunk-ZMXWHNCZ.js} +2 -2
  73. package/dist-cli/chunks/{cleanup-7ATBNZHC.js → cleanup-2DD3AX5G.js} +2 -2
  74. package/dist-cli/chunks/cli-version-Y4TNXT2D.js +4 -0
  75. package/dist-cli/chunks/{compat-4ZC6ZMMA.js → compat-U6VLKECZ.js} +2 -2
  76. package/dist-cli/chunks/{config-EOBODQ32.js → config-W7D7BANR.js} +2 -2
  77. package/dist-cli/chunks/{connect-ZQ72CZ7O.js → connect-CUQIG76A.js} +2 -2
  78. package/dist-cli/chunks/control-IMYDYX74.js +4 -0
  79. package/dist-cli/chunks/daemon-3ZSBIRII.js +4 -0
  80. package/dist-cli/chunks/{debug-7Z325GNU.js → debug-5VKWI2IY.js} +3 -3
  81. package/dist-cli/chunks/{desktop-CR7ALX7H.js → desktop-JUI2EFQV.js} +3 -3
  82. package/dist-cli/chunks/{detox-RZ37736M.js → detox-WWO5NMX5.js} +2 -2
  83. package/dist-cli/chunks/{device-TA3SQP6K.js → device-N54IMZI5.js} +2 -2
  84. package/dist-cli/chunks/{diagnose-JFKFKR3S.js → diagnose-RPMOVNDH.js} +2 -2
  85. package/dist-cli/chunks/{disk-cleanup-HZM7VM4S.js → disk-cleanup-LS4E6EN2.js} +2 -2
  86. package/dist-cli/chunks/{do-chain-MTT65YNX.js → do-chain-SKD3BNPJ.js} +2 -2
  87. package/dist-cli/chunks/drivers-RIZIUIBG.js +4 -0
  88. package/dist-cli/chunks/{env-SFI24PLS.js → env-4WPFRAKQ.js} +2 -2
  89. package/dist-cli/chunks/{film-GPHSJLIH.js → film-VLUYMYJC.js} +3 -3
  90. package/dist-cli/chunks/flow-JQFIL6QT.js +4 -0
  91. package/dist-cli/chunks/help-K4MMUKLT.js +4 -0
  92. package/dist-cli/chunks/{hidden-runtime-alias-7Z6PYH53.js → hidden-runtime-alias-TARNNZAO.js} +2 -2
  93. package/dist-cli/chunks/{home-paths-MEGVA6ET.js → home-paths-UBO2R6RQ.js} +2 -2
  94. package/dist-cli/chunks/inspect-2FYLUREA.js +4 -0
  95. package/dist-cli/chunks/install-desktop-5IK4MZ25.js +4 -0
  96. package/dist-cli/chunks/{login-EHUZYRAM.js → login-47BPRPSH.js} +2 -2
  97. package/dist-cli/chunks/{logout-WPGT62N6.js → logout-IKVBKUCK.js} +2 -2
  98. package/dist-cli/chunks/{maestro-4HVDLCTI.js → maestro-Q7MGCY72.js} +3 -3
  99. package/dist-cli/chunks/{maestro-generate-VBS2EZMM.js → maestro-generate-DLV3CE75.js} +3 -3
  100. package/dist-cli/chunks/{mode-MGTS4QTF.js → mode-EATOC6AC.js} +2 -2
  101. package/dist-cli/chunks/{optional-demo-registry-F3FQT5WT.js → optional-demo-registry-324IOW5Q.js} +2 -2
  102. package/dist-cli/chunks/{perf-47R3OEI7.js → perf-X5EKGPQJ.js} +2 -2
  103. package/dist-cli/chunks/{permissions-ZOLFZWR2.js → permissions-7PT2O3O2.js} +2 -2
  104. package/dist-cli/chunks/{platform-C4E26ZBZ.js → platform-Y3Q4V4JM.js} +3 -3
  105. package/dist-cli/chunks/privacy-34TQ2IOU.js +4 -0
  106. package/dist-cli/chunks/{record-OUXWCWUF.js → record-26GR6633.js} +3 -3
  107. package/dist-cli/chunks/{report-issue-LJJXONXQ.js → report-issue-FRUOURLU.js} +2 -2
  108. package/dist-cli/chunks/reset-MQGKFTRW.js +4 -0
  109. package/dist-cli/chunks/resolve-target-XSMC6QNY.js +4 -0
  110. package/dist-cli/chunks/runtime-ZAH42MO5.js +4 -0
  111. package/dist-cli/chunks/{screenshot-command-CUHDOS5D.js → screenshot-command-K35IU6HC.js} +3 -3
  112. package/dist-cli/chunks/{screenshot-layers-DVWQVKT6.js → screenshot-layers-VMQCTFSU.js} +2 -2
  113. package/dist-cli/chunks/{screenshots-capture-GWIUJ3A6.js → screenshots-capture-SXROGTCP.js} +2 -2
  114. package/dist-cli/chunks/{serve-TX5OKGJM.js → serve-I3YMZVYB.js} +2 -2
  115. package/dist-cli/chunks/setup-6BNCYKCA.js +4 -0
  116. package/dist-cli/chunks/{sim-client-W4WZOZ3P.js → sim-client-R3QBYUIC.js} +2 -2
  117. package/dist-cli/chunks/{skills-TDFQAZ6A.js → skills-LGJB4EOZ.js} +2 -2
  118. package/dist-cli/chunks/{state-P2Z25OLQ.js → state-2IXZ5JYX.js} +2 -2
  119. package/dist-cli/chunks/{storage-DWEOFXEB.js → storage-3PNQOCXW.js} +2 -2
  120. package/dist-cli/chunks/store-BV7S5W55.js +4 -0
  121. package/dist-cli/chunks/telemetry-UHKCD6GY.js +4 -0
  122. package/dist-cli/chunks/{timeline-55XNA4GX.js → timeline-FXYNSSJJ.js} +2 -2
  123. package/dist-cli/chunks/{upgrade-3XRCVDVC.js → upgrade-ZG4X4SPV.js} +2 -2
  124. package/dist-cli/chunks/upload-R4XZLOLQ.js +4 -0
  125. package/dist-cli/chunks/{version-WTYGLXBJ.js → version-AXPWANGE.js} +2 -2
  126. package/dist-cli/chunks/{web-ZWRY3VHM.js → web-YPFT4L4F.js} +2 -2
  127. package/dist-cli/chunks/welcome-SRGEEM4A.js +5 -0
  128. package/dist-cli/chunks/{what-happened-Q3IGIH4K.js → what-happened-XE32WD2W.js} +2 -2
  129. package/dist-cli/chunks/{ws-bridge-KCPZSBBX.js → ws-bridge-JW3MABK7.js} +2 -2
  130. package/dist-lib/agent-daemon-client.cjs +1 -1
  131. package/dist-lib/agent-events.cjs +1 -1
  132. package/dist-lib/agent-identity.cjs +1 -1
  133. package/dist-lib/agent-sessions.cjs +1 -1
  134. package/dist-lib/attached-projects.cjs +1 -1
  135. package/dist-lib/auth/shared-session.cjs +1 -1
  136. package/dist-lib/backend-origin.cjs +1 -1
  137. package/dist-lib/beta.cjs +1 -1
  138. package/dist-lib/beta.mjs +1 -1
  139. package/dist-lib/bridge-constants.cjs +1 -1
  140. package/dist-lib/bridge-contract-input.cjs +1 -1
  141. package/dist-lib/bridge-contract-input.mjs +1 -1
  142. package/dist-lib/bridge-contract.cjs +1 -1
  143. package/dist-lib/bridge-contract.mjs +1 -1
  144. package/dist-lib/cli-constants.cjs +1 -1
  145. package/dist-lib/config.cjs +1 -1
  146. package/dist-lib/detox/index.cjs +1 -1
  147. package/dist-lib/dev-bundle-resolution.cjs +1 -1
  148. package/dist-lib/home-paths.cjs +1 -1
  149. package/dist-lib/host/bridge-host.cjs +13 -4
  150. package/dist-lib/host/fetch-proxy-handler.cjs +1 -1
  151. package/dist-lib/host/fetch-proxy-overrides.cjs +1 -1
  152. package/dist-lib/host/fetch-proxy-overrides.mjs +1 -1
  153. package/dist-lib/host/replacement-module-handler.cjs +1 -1
  154. package/dist-lib/host/websocket-proxy.cjs +1 -1
  155. package/dist-lib/index.cjs +1 -1
  156. package/dist-lib/jump-to-source-babel.cjs +1 -1
  157. package/dist-lib/menu.cjs +1 -1
  158. package/dist-lib/menu.mjs +1 -1
  159. package/dist-lib/metro-production-bundle.cjs +1 -1
  160. package/dist-lib/metro-production-bundle.mjs +1 -1
  161. package/dist-lib/metro.cjs +1 -1
  162. package/dist-lib/profiles.cjs +1 -1
  163. package/dist-lib/public-brand.cjs +1 -1
  164. package/dist-lib/react-native-host-modules.cjs +1 -1
  165. package/dist-lib/react-native-host-modules.mjs +1 -1
  166. package/dist-lib/render-mode.cjs +1 -1
  167. package/dist-lib/scripts/dev-server-scanner.cjs +1 -1
  168. package/dist-lib/sdk.cjs +1 -1
  169. package/dist-lib/sdk.mjs +1 -1
  170. package/dist-lib/skills.cjs +13 -4
  171. package/dist-lib/vite.cjs +1 -1
  172. package/package.json +1 -1
  173. package/dist-cli/chunks/chunk-2OA2WE7G.js +0 -6
  174. package/dist-cli/chunks/cli-version-D2IDQO7X.js +0 -4
  175. package/dist-cli/chunks/control-FKPKLOE2.js +0 -4
  176. package/dist-cli/chunks/daemon-WFHWS3JU.js +0 -4
  177. package/dist-cli/chunks/drivers-BXEXWRVJ.js +0 -4
  178. package/dist-cli/chunks/flow-FBCU3TZN.js +0 -4
  179. package/dist-cli/chunks/help-6MLROWYO.js +0 -4
  180. package/dist-cli/chunks/inspect-EWT5SXBD.js +0 -4
  181. package/dist-cli/chunks/install-desktop-IFBUH7MH.js +0 -4
  182. package/dist-cli/chunks/privacy-WXGGG4ZI.js +0 -4
  183. package/dist-cli/chunks/reset-ZZYLPETS.js +0 -4
  184. package/dist-cli/chunks/resolve-target-MVZZR2JW.js +0 -4
  185. package/dist-cli/chunks/runtime-DEC5AF3M.js +0 -4
  186. package/dist-cli/chunks/setup-X7LLGW67.js +0 -4
  187. package/dist-cli/chunks/store-TKBLMYCV.js +0 -4
  188. package/dist-cli/chunks/telemetry-E3CBKJMD.js +0 -4
  189. package/dist-cli/chunks/upload-QB77GSMQ.js +0 -4
  190. package/dist-cli/chunks/welcome-7ATM5EGX.js +0 -5
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.372 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.373 | (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
  function X(t,e){let n=["--max-ms","--maxMs","--maxms","--max_ms"];for(let r of n){let s=t.indexOf(r);if(s>=0&&t[s+1]){let o=Number(t[s+1]);if(Number.isFinite(o))return Math.max(100,o)}}return e}var P=new Set(["tap","double-tap","tap-text","tap-id","long-press","touch"]);function _(t){return typeof t=="string"&&P.has(t)}async function A(t){return await t.send({type:"evaluate",code:"window.__sootsimEngineState?.inspectActive === true"})===!0}async function G(t,e){if(!_(e))return!1;try{return await A(t)}catch{return!1}}async function V(t){let e=await t.send({type:"query",query:{kind:"count"}});return{nodes:b(e)?e.total:0}}async function Z(t,e=5){let n=await t.send({type:"query",query:{kind:"tree",depth:e}}),r=b(n)?n.nodes:[];return{depth:e,tree:r}}async function ee(t){let e=await t.send({type:"evaluate",code:"window.location.href"});return{url:typeof e=="string"?e:""}}function C(t){return t!==null&&typeof t=="object"&&[Reflect.get(t,"x"),Reflect.get(t,"y"),Reflect.get(t,"width"),Reflect.get(t,"height")].every(e=>typeof e=="number"?Number.isFinite(e):!1)}function I(t){return Array.isArray(t)?t.every(e=>{if(e===null||typeof e!="object"||!Number.isInteger(Reflect.get(e,"nodeId"))||typeof Reflect.get(e,"type")!="string"||!C(Reflect.get(e,"geometry")))return!1;for(let s of["testID","text","role","label"]){let o=Reflect.get(e,s);if(o!==void 0&&typeof o!="string")return!1}let n=Reflect.get(e,"pressable");if(n!==void 0&&n!==!0)return!1;let r=Reflect.get(e,"children");return r===void 0||I(r)}):!1}function b(t){let e=t!==null&&typeof t=="object"?Reflect.get(t,"total"):void 0;return t!==null&&typeof t=="object"&&typeof e=="number"&&Number.isInteger(e)&&e>=0&&I(Reflect.get(t,"nodes"))}function N(t){let e=t.replace(/[.+^$(){}|[\]\\]/g,"\\$&");return new RegExp(`^${e.replace(/\*/g,".*").replace(/\?/g,".")}$`,"i")}function F(t,e={}){let n=e.filter?.toLowerCase()??"",r=e.testIdLike?N(e.testIdLike):null,s=e.onlyGlob?N(e.onlyGlob):null,o=[],i=(a,y)=>{let p=[a.role,a.label,a.text,a.testID].filter(d=>typeof d=="string").join(" ");if((!n||p.toLowerCase().includes(n))&&(!r||r.test(a.testID??""))&&(!s||s.test(p))){let d=[a.role?`[${a.role}]`:a.pressable?"[tap]":`<${a.type}>`];if(a.text){let g=e.fullText||a.text.length<=50?a.text:`${a.text.slice(0,49).trimEnd()}\u2026`;d.push(JSON.stringify(g))}if(a.testID&&d.push(`#${a.testID}`),a.label&&a.label!==a.text&&d.push(`label=${JSON.stringify(a.label)}`),!e.hideXy){let g=a.geometry;d.push(`@(${Math.round(g.x)},${Math.round(g.y)}) ${Math.round(g.width)}x${Math.round(g.height)}`)}a.pressable&&d.push("(tap)"),o.push(`${" ".repeat(y+1)}${d.join(" ")}`)}for(let d of a.children??[])i(d,y+1)},u=t;if(e.subtreeRoot){let a=[...t],y;for(;a.length>0&&!y;){let p=a.shift();p&&(p.testID===e.subtreeRoot?y=p:a.push(...p.children??[]))}if(!y)return`__SUBTREE_NOT_FOUND__:${e.subtreeRoot}`;u=[y]}for(let a of u)i(a,0);return o.join(`
@@ -0,0 +1,6 @@
1
+ /*! rnx v0.1.373 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
+ import { createRequire as __sootsimCreateRequire } from 'node:module'
3
+ var require = __sootsimCreateRequire(import.meta.url)
4
+ import{L as j,M as H,N as W,k as L,l as N,v as E,z as F}from"./chunk-2YNZ3GHI.js";import{a as U}from"./chunk-NQDLJL63.js";import Z from"node:fs";import B from"node:path";function _(e){return e.length<=100&&/^[0-9A-Za-z][0-9A-Za-z._+-]*$/.test(e)}function D(e){try{return Z.readdirSync(e.runtimesDir(),{withFileTypes:!0}).filter(c=>c.isDirectory()).map(c=>c.name).sort(k)}catch{return[]}}function $(e,c){return B.posix.basename(e.tarballPath(c))}function k(e,c){let l=h=>{let p=h.indexOf("-"),w=p>=0?h.slice(0,p):h,x=p>=0?h.slice(p+1):"",M=w.split(".").map(I=>Number.parseInt(I,10));return M.some(I=>!Number.isFinite(I))?[[Number.POSITIVE_INFINITY],h]:[M,x]},[m,u]=l(e),[v,b]=l(c);for(let h=0;h<Math.max(m.length,v.length);h++){let p=m[h]??0,w=v[h]??0;if(p!==w)return p-w}return u===b?0:u?b?u<b?-1:1:-1:1}import{spawn as J}from"node:child_process";import K from"node:crypto";import o from"node:fs";import Y from"node:os";import y from"node:path";import{Readable as q}from"node:stream";import{pipeline as Q}from"node:stream/promises";var X=2;function z(e){function c(){try{let n=JSON.parse(o.readFileSync(e.configFile(),"utf8"));return n&&typeof n=="object"?n:{}}catch{return{}}}function l(n){let t=c();return(n||process.env[e.env.cdnOrigin]||t.cdnOrigin||e.defaultCdnOrigin).replace(/\/+$/,"")}function m(n){let t=c();return n||process.env[e.env.channel]||t.runtimeChannel||"stable"}function u(){if(!e.env.pin)return null;let n=process.env[e.env.pin];if(n&&n.trim())return n.trim();let t=c();return typeof t.runtimeVersion=="string"&&t.runtimeVersion.trim()?t.runtimeVersion.trim():null}function v(n){let t=new URL(`${l(n)}${e.manifestPath}`);return t.searchParams.set("t",String(Date.now())),t.toString()}function b(n,t){return`${l(t)}${e.tarballPath(n)}`}let h=2e3;async function p(n,t){let r=v(n),i=await fetch(r,{headers:{Accept:"application/json"},...t?{signal:AbortSignal.timeout(t)}:{}});if(!i.ok)throw new Error(`manifest fetch failed: ${i.status} ${i.statusText} (${r})`);return await i.json()}function w(n,t={}){let r=m(t.channel),i=t.version||u()||n.channels[r]?.latest;if(!i)throw new Error(`no version specified and channel '${r}' has no latest entry in the manifest`);if(!_(i))throw new Error(`invalid runtime version: ${i}`);let g=n.versions[i];if(!g)throw new Error(`version ${i} not found in manifest; available: ${Object.keys(n.versions).slice(-10).join(", ")||"(none)"}`);return{version:i,channel:r,entry:g}}async function x(n={}){e.ensureHome();let t=l(n.cdnOrigin),r=await p(t),{version:i,channel:g,entry:a}=w(r,n),f=e.runtimeDir(i),d=n.setActive!==!1,O=[i,...n.protectVersions??[]];if(T({protectVersions:O}),!n.force&&o.existsSync(y.join(f,e.installedMarker)))return d&&e.writeActiveRuntime(i),T({protectVersions:O}),{version:i,channel:g,cdnOrigin:t,runtimeDir:f,installed:!1,activated:d,manifest:r};let P=a.tarball||b(i,t),S=o.mkdtempSync(y.join(Y.tmpdir(),`${e.id}-runtime-download-`)),V=y.join(S,$(e,i)),R=y.join(y.dirname(f),`.installing-${i}-${process.pid}`);o.rmSync(R,{recursive:!0,force:!0});try{process.stderr.write(`${e.id}: downloading runtime ${i}\u2026
5
+ `),await ee(P,V),process.stderr.write(`${e.id}: extracting runtime ${i}\u2026
6
+ `);let s=await ne(V);if(s!==a.sha256)throw new Error(`sha256 mismatch for runtime ${i}: expected ${a.sha256}, actual ${s}`);if(o.mkdirSync(R,{recursive:!0}),await te(V,R),!o.existsSync(y.join(R,e.installedMarker)))throw new Error(`extracted tarball for runtime ${i} is missing ${e.installedMarker}`);o.rmSync(f,{recursive:!0,force:!0}),o.renameSync(R,f)}catch(s){throw o.rmSync(R,{recursive:!0,force:!0}),s}finally{o.rmSync(S,{recursive:!0,force:!0})}return d&&e.writeActiveRuntime(i),T({protectVersions:O}),{version:i,channel:g,cdnOrigin:t,runtimeDir:f,installed:!0,activated:d,manifest:r}}async function M(n={}){e.ensureHome(),T({protectVersions:n.protectVersions});let t=l(n.cdnOrigin),r=m(n.channel),i=u();if(i){let R=e.readActiveRuntime(),s=o.existsSync(y.join(e.runtimeDir(i),e.installedMarker));if(R===i&&s)return{checked:!0,updated:!1,reason:`runtime is pinned to ${i}`,activeVersion:R,latestVersion:i};let C=await x({version:i,channel:r,cdnOrigin:t,setActive:!1,protectVersions:n.protectVersions});return{checked:!0,updated:!0,reason:`runtime is pinned to ${i}`,activeVersion:i,latestVersion:i,install:C}}let g=await p(t),a=g.channels[r]?.latest;if(!a)return{checked:!0,updated:!1,reason:`channel '${r}' has no latest runtime`,activeVersion:e.readActiveRuntime()};if(!g.versions[a])return{checked:!0,updated:!1,reason:`manifest is missing version ${a}`,activeVersion:e.readActiveRuntime(),latestVersion:a};let d=e.readActiveRuntime(),O=d?e.runtimeDir(d):null,P=O?o.existsSync(y.join(O,e.installedMarker)):!1;if(!(!d||!P||k(a,d)>0))return{checked:!0,updated:!1,reason:"active runtime is current",activeVersion:d,latestVersion:a};let V=await x({version:a,channel:r,cdnOrigin:t,setActive:!1,protectVersions:n.protectVersions});return{checked:!0,updated:!0,activeVersion:a,latestVersion:a,install:V}}async function I(n={}){let t=e.readActiveRuntime(),r=u();if(r)return{active:t,latest:r,pinned:r,outdated:t!==r};try{let i=await p(l(n.cdnOrigin),h),g=m(n.channel),a=i.channels[g]?.latest??null,f=!!(a&&(!t||k(a,t)>0));return{active:t,latest:a,pinned:null,outdated:f}}catch{return{active:t,latest:null,pinned:null,outdated:!1}}}function A(n={}){e.ensureHome();let t=Math.max(1,Math.floor(n.retainVersions??X)),r=D(e),i=new Set(r),g=e.readActiveRuntime(),a=u(),f=new Set;for(let s of[g,a,...n.protectVersions??[]])s&&i.has(s)&&f.add(s);for(let s of[...r].reverse()){if(f.size>=t)break;f.add(s)}let d="__RUNTIME_VERSION__",O=$(e,d),P=O.indexOf(d),S=O.slice(0,P),V=O.slice(P+d.length),R=[];if(P>=0)try{R=o.readdirSync(e.cacheDir(),{withFileTypes:!0}).filter(s=>{if(!s.isFile())return!1;let C=s.name.startsWith(S)&&s.name.endsWith(V),G=s.name.startsWith(S)&&s.name.endsWith(`${V}.partial`);return C||G}).map(s=>y.join(e.cacheDir(),s.name)).sort()}catch{}return{activeVersion:g,pinnedVersion:a,keepVersions:r.filter(s=>f.has(s)),removeVersions:r.filter(s=>!f.has(s)),removeCacheFiles:R}}function T(n={}){let t=A(n);for(let r of t.removeVersions)o.rmSync(e.runtimeDir(r),{recursive:!0,force:!0});for(let r of t.removeCacheFiles)o.rmSync(r,{force:!0});return t}return{product:e,resolveCdnOrigin:l,resolveChannel:m,resolvePin:u,manifestUrl:v,tarballUrl:b,fetchManifest:p,resolveVersion:w,install:x,updateToLatest:M,checkUpToDate:I,planLocalRetention:A,pruneLocalRetention:T,listInstalled:()=>D(e)}}async function ee(e,c){let l=await fetch(e);if(!l.ok||!l.body)throw new Error(`download failed: ${l.status} ${l.statusText} (${e})`);o.mkdirSync(y.dirname(c),{recursive:!0});let m=`${c}.partial`;try{await Q(q.fromWeb(l.body),o.createWriteStream(m)),o.renameSync(m,c)}catch(u){try{o.unlinkSync(m)}catch{}throw u}}function ne(e){return new Promise((c,l)=>{let m=K.createHash("sha256"),u=o.createReadStream(e);u.on("data",v=>m.update(v)),u.on("error",l),u.on("end",()=>c(m.digest("hex")))})}function te(e,c){return new Promise((l,m)=>{let u=J("tar",["-xzf",e,"-C",c],{stdio:["ignore","inherit","inherit"]});u.on("error",m),u.on("exit",v=>{v===0?l():m(new Error(`tar exited with code ${v}`))})})}var ie="https://contrast.dev",Ve=`${U.origin}/changelog`,we="https://contrast.dev/api/changelog/sootsim",re={id:"sootsim",defaultCdnOrigin:ie,manifestPath:"/runtimes/manifest.json",tarballPath:e=>`/runtimes/sootsim-runtime-${e}.tar.gz`,installedMarker:"index.html",env:{cdnOrigin:"SOOTSIM_CDN_ORIGIN",channel:"SOOTSIM_RUNTIME_CHANNEL"},ensureHome:j,configFile:F,runtimesDir:L,runtimeDir:N,cacheDir:E,readActiveRuntime:H,writeActiveRuntime:W},Pe=z(re);export{_ as a,k as b,ie as c,Ve as d,we as e,Pe as f};
@@ -1,7 +1,7 @@
1
- /*! rnx v0.1.372 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.373 | (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 G,b as V,c as W,d as v}from"./chunk-FOW2LPM7.js";import{a as L}from"./chunk-LAQKTHRM.js";import{q as F}from"./chunk-PUH6RQBJ.js";import{a as M}from"./chunk-EY5OHL2M.js";import{b as Y,c as g}from"./chunk-SSQCKJQZ.js";import{f as c}from"./chunk-2OA2WE7G.js";import{c as B}from"./chunk-KSE5XGYU.js";import{a as p,b as C,c as y,d as h,f as E,g as a,h as w,i as f,j as N}from"./chunk-YEGWC2OY.js";import{a as A}from"./chunk-LWLHVF6Y.js";import{D as O,E as j,F as $,G as T,M as I,l as P}from"./chunk-QA2PTSOC.js";import{a as q}from"./chunk-P6K6XFWE.js";import J from"node:os";import K from"node:path";async function Pe(e,n={}){if(e.includes("--help")||e.includes("-h")){ue();return}let r=ee(e),o=n.launchConnectRN??(!r.ci&&!r.yes&&!r.json&&!r.dryRun&&process.stdin.isTTY);try{ce(r);let t=G(r.appDir),i=Y(),z=$(),R=await te(r,i);!R&&!i.installed&&!r.json&&console.log(` ${y("Enable it later with")} ${p("rnx daemon install")}`);let u=await oe(r),Q=r.json?await c.fetchManifest():await w("Checking the rnx runtime",()=>c.fetchManifest()),l=c.resolveVersion(Q,{channel:"stable"}).version,b=q();if(b==="0.0.0")throw new Error("could not resolve the installed rnx CLI version");let S=!1;if(!r.dryRun){let d=I(),x=()=>c.install({version:l,channel:"stable",setActive:!0,protectVersions:d?[d]:[]});S=(r.json?await x():await w(`Preparing runtime ${l}`,x)).installed}let D=i.installed;R&&!i.installed&&!r.dryRun&&(r.json?await g({port:7668,force:!1}):(console.log(`
4
+ import{a as G,b as V,c as W,d as v}from"./chunk-HSKW3YE2.js";import{a as L}from"./chunk-UL6JYYB3.js";import{q as F}from"./chunk-LEX3XST4.js";import{a as M}from"./chunk-YPJJDEFE.js";import{b as Y,c as g}from"./chunk-SDY5Y6EY.js";import{f as c}from"./chunk-QKX26L27.js";import{c as B}from"./chunk-UHFVEMYL.js";import{a as p,b as C,c as y,d as h,f as E,g as a,h as w,i as f,j as N}from"./chunk-52NWLXHO.js";import{a as A}from"./chunk-AYZLK7R4.js";import{D as O,E as j,F as $,G as T,M as I,l as P}from"./chunk-2YNZ3GHI.js";import{a as q}from"./chunk-PGPD6XML.js";import J from"node:os";import K from"node:path";async function Pe(e,n={}){if(e.includes("--help")||e.includes("-h")){ue();return}let r=ee(e),o=n.launchConnectRN??(!r.ci&&!r.yes&&!r.json&&!r.dryRun&&process.stdin.isTTY);try{ce(r);let t=G(r.appDir),i=Y(),z=$(),R=await te(r,i);!R&&!i.installed&&!r.json&&console.log(` ${y("Enable it later with")} ${p("rnx daemon install")}`);let u=await oe(r),Q=r.json?await c.fetchManifest():await w("Checking the rnx runtime",()=>c.fetchManifest()),l=c.resolveVersion(Q,{channel:"stable"}).version,b=q();if(b==="0.0.0")throw new Error("could not resolve the installed rnx CLI version");let S=!1;if(!r.dryRun){let d=I(),x=()=>c.install({version:l,channel:"stable",setActive:!0,protectVersions:d?[d]:[]});S=(r.json?await x():await w(`Preparing runtime ${l}`,x)).installed}let D=i.installed;R&&!i.installed&&!r.dryRun&&(r.json?await g({port:7668,force:!1}):(console.log(`
5
5
  ${p("\u25C6")} ${C("Enabling the background service")}`),await g({port:7668,force:!1})),D=!0),u==="electron"&&!r.dryRun&&!M()&&await L(["--yes"]),o&&(console.log(`
6
6
  ${p("\u25C6")} Opening ConnectRN`),await F(["ConnectRN","--driver",u,"--no-describe","--quiet"]));let X=await ie(r,z),Z=!1,s=t?V({appDir:t,cliVersion:b}):null,m=await se(r,s);if(m&&s){if(!r.json)for(let d of v(s))console.log(` ${y(r.dryRun?"Would run":"Running")} ${d}`);await W(s,{dryRun:r.dryRun,json:r.json})}r.dryRun||(T({productAnalytics:X,crashReports:Z}),j(u));let k={runtimeVersion:l,serviceInstalled:D,repositoryPrepared:m,simulatorDriver:u};return r.json?console.log(JSON.stringify({...k,runtimeInstalled:S,dryRun:r.dryRun,cache:ae(l),repositoryOperations:m&&s?v(s):[]},null,2)):console.log(`
7
7
  ${h("\u2713")} ${o?"ConnectRN is open. ":""}rnx is ready.`),k}catch(t){throw B(t),t}}function ee(e){let n=e.indexOf("--app"),r=n>=0?e[n+1]:void 0;if(n>=0&&(!r||r.startsWith("-")))throw new Error("--app requires a directory");return{appDir:K.resolve(r??process.cwd()),ci:e.includes("--ci")||A(),dryRun:e.includes("--dry-run"),json:e.includes("--json"),yes:e.includes("--yes")||e.includes("-y"),service:H(e,"--service","--no-service"),repository:H(e,"--repo","--no-repo"),productAnalytics:ne(e,"--analytics"),simulatorDriver:re(e)}}function re(e){let n=e.includes("--desktop"),r=e.includes("--browser");if(n&&r)throw new Error("--desktop and --browser cannot be used together");if(n)return"electron";if(r)return"playwright"}function H(e,n,r){if(e.includes(n)&&e.includes(r))throw new Error(`${n} and ${r} cannot be used together`);if(e.includes(n))return!0;if(e.includes(r))return!1}function ne(e,n){let r=e.find(i=>i.startsWith(`${n}=`)),o=e.indexOf(n),t=r?.slice(n.length+1)??(o>=0?e[o+1]:void 0);if(t!==void 0){if(t==="on"||t==="yes"||t==="true")return!0;if(t==="off"||t==="no"||t==="false")return!1;throw new Error(`${n} must be on or off`)}}async function te(e,n){if(e.ci){if(e.service===!0)throw new Error("--ci cannot install a machine service");return!1}return n.supported?n.installed&&e.service===void 0?(e.json||console.log(` ${h("\u2713")} Background service is ready`),!0):e.service!==void 0?e.service:e.yes?!0:(U(e,"--service or --no-service"),a("Background service",["Keeps the local bridge and runtime ready between commands.","Agent inspection, interaction, and test commands start much faster."]),f("Enable the background service?",!0)):(e.json||a("Background service",["The persistent service is currently available on macOS and Linux.","rnx will start the bridge when needed on this platform."]),!1)}async function oe(e){if(e.simulatorDriver)return e.simulatorDriver;let n=O();if(n)return n;if(e.ci||e.yes)return"playwright";U(e,"--desktop or --browser");let r=process.platform==="darwin"?"Desktop downloads a DMG and installs rnx.app.":process.platform==="win32"?"Desktop downloads and runs the rnx installer.":"Desktop downloads the matching rnx AppImage.",o=process.platform==="darwin"?"Desktop app Installs rnx.app from a DMG":process.platform==="win32"?"Desktop app Runs the rnx installer":"Desktop app Installs the matching AppImage";return a("Simulator window",["Browser opens immediately in an isolated Chrome window.",r,"The Desktop app opens in a dedicated native window."]),await N("Where should rnx open?",["Browser (recommended) No additional download",o])===0?"playwright":"electron"}async function ie(e,n){return e.productAnalytics!==void 0?e.productAnalytics:n.configured?n.productAnalytics:e.yes||e.ci||!process.stdin.isTTY?!1:(a("Private by default",["Diagnostics stay off unless you opt in.","Reports can contain package compatibility or an error class.","They never contain your code or app data."]),f("Share bounded diagnostics to improve rnx?",!1))}async function se(e,n){if(!n){if(e.repository===!0)throw new Error("--repo requires a package.json inside a Git repository");return!1}return n.operations.length===0?!0:e.repository!==void 0?e.repository:e.yes||e.ci||!process.stdin.isTTY?!1:(a("Share rnx with your team",["rnx already works here with no project setup.","This only adds an exact rnxsim dev dependency and an rnx script for teammates."]),f(`Add rnx to ${K.basename(n.appDir)}?`,!1))}function U(e,n){if(!(process.stdin.isTTY&&!e.ci))throw new Error(`non-interactive setup requires ${n}, or --yes to accept defaults`)}function ae(e){let n=J.platform(),r=J.arch();return{path:P(e),key:`sootsim-runtime-${n}-${r}-${e}`,inputs:{platform:n,arch:r,runtimeVersion:e}}}function ce(e){e.json||E("Run any React Native app in a local simulator. No project setup required.")}function ue(){console.log(`
@@ -1,7 +1,7 @@
1
- /*! rnx v0.1.372 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.373 | (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{c as Y}from"./chunk-SC7PGULZ.js";import{c as u}from"./chunk-YWTBN7SD.js";import{P as M,R as H,g as U,j as A,s as O,t as L,u as j}from"./chunk-QA2PTSOC.js";import{a as V}from"./chunk-P6K6XFWE.js";import{a as S}from"./chunk-MSM2E74F.js";import{execFileSync as Z,spawnSync as a}from"child_process";import{existsSync as s,mkdirSync as E,readFileSync as le,realpathSync as ue,rmSync as y,writeFileSync as Q}from"fs";import{homedir as w}from"os";import{basename as de,dirname as B,resolve as d,sep as W}from"path";import{execFileSync as re}from"child_process";import{chmodSync as ne,mkdirSync as T,rmSync as oe,writeFileSync as _}from"fs";import{dirname as N}from"path";var se="dev.sootsim.daemon",G="SootSim Daemon",q="0.1.36";function X(e,t,r){let o=L(),n=j(),c=N(N(n)),l=N(n),p=`${c}/Resources`;oe(o,{recursive:!0,force:!0}),T(O(),{recursive:!0}),T(l,{recursive:!0}),T(p,{recursive:!0}),_(`${c}/Info.plist`,ie()),_(`${c}/PkgInfo`,"APPL????"),_(n,ae(e,t,r)),ne(n,493);try{re("codesign",["--force","--sign","-","--deep",o],{stdio:"pipe"})}catch(i){let h=i instanceof Error?i.message:String(i);console.warn(` warning: ad-hoc codesign of ${o} failed: ${h}
4
+ import{c as Y}from"./chunk-O5TKIMXX.js";import{c as u}from"./chunk-2272Y5HN.js";import{P as M,R as H,g as U,j as A,s as O,t as L,u as j}from"./chunk-2YNZ3GHI.js";import{a as V}from"./chunk-PGPD6XML.js";import{a as S}from"./chunk-NQDLJL63.js";import{execFileSync as Z,spawnSync as a}from"child_process";import{existsSync as s,mkdirSync as E,readFileSync as le,realpathSync as ue,rmSync as y,writeFileSync as Q}from"fs";import{homedir as w}from"os";import{basename as de,dirname as B,resolve as d,sep as W}from"path";import{execFileSync as re}from"child_process";import{chmodSync as ne,mkdirSync as T,rmSync as oe,writeFileSync as _}from"fs";import{dirname as N}from"path";var se="dev.sootsim.daemon",G="SootSim Daemon",q="0.1.36";function X(e,t,r){let o=L(),n=j(),c=N(N(n)),l=N(n),p=`${c}/Resources`;oe(o,{recursive:!0,force:!0}),T(O(),{recursive:!0}),T(l,{recursive:!0}),T(p,{recursive:!0}),_(`${c}/Info.plist`,ie()),_(`${c}/PkgInfo`,"APPL????"),_(n,ae(e,t,r)),ne(n,493);try{re("codesign",["--force","--sign","-","--deep",o],{stdio:"pipe"})}catch(i){let h=i instanceof Error?i.message:String(i);console.warn(` warning: ad-hoc codesign of ${o} failed: ${h}
5
5
  the daemon will still run, but Login Items may show a generic name.`)}return{bundlePath:o,launcherPath:n}}function ie(){return`<?xml version="1.0" encoding="UTF-8"?>
6
6
  <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
7
7
  <plist version="1.0">
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.372 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.373 | (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
  var o=!0,e="public beta",t=e,n="we send anonymous error and dependency data while you use it";export{o as a,e as b,t as c,n as d};
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.372 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.373 | (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{execFileSync as P}from"child_process";import{readFileSync as a}from"fs";import{createRequire as d}from"module";var s=null,p=null;function k(r){s||(s=w());try{return s(r)}catch{return null}}function x(r){p||(p=_());try{return p(r)}catch{return null}}function _(){if(process.platform==="linux")return r=>{try{return a(`/proc/${r}/comm`,"utf8").trim()||null}catch{return null}};if(process.platform==="darwin"){let r=B();return r||(t=>b().get(t)?.comm||null)}return()=>null}function w(){let r=Number(process.env.PPID);if(Number.isFinite(r)&&r>1&&r!==process.ppid)return()=>r;if(process.platform==="linux")return C();if(process.platform==="darwin"){let t=h();return t||(n=>{let o=b().get(n)?.ppid;return o!==void 0&&o>0?o:null})}return()=>null}var L=2e3,i={readAt:0,rows:new Map};function b(){let r=Date.now();if(i.readAt&&r-i.readAt<L)return i.rows;let t=new Map;try{let n=P("ps",["-eo","pid=,ppid=,comm="],{encoding:"utf8",timeout:5e3,maxBuffer:8388608,stdio:["ignore","pipe","ignore"]});for(let o of n.split(`
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.372 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.373 | (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{execFileSync as S,execSync as x}from"node:child_process";var g=new WeakMap,l=new Set,b=!1;function f(){return{platform:process.platform,env:process.env}}function A(e){return S("/bin/ps",["-p",String(e),"-o","command="],{encoding:"utf8"}).trim()}function w(e=f()){return e.platform==="linux"&&e.env.GITHUB_ACTIONS==="true"&&e.env.RUNNER_OS==="Linux"}function L(e){let r=String(e);return/^--disable-gpu(?:=.*)?$/i.test(r)||/^--enable-unsafe-swiftshader(?:=.*)?$/i.test(r)||/^--use-angle=(?:swiftshader|swiftshader-webgl)$/i.test(r)||/^--use-gl=swiftshader$/i.test(r)}function I(e){return e.match(/(?:^|\s)(--disable-gpu(?:=[^\s]+)?|--enable-unsafe-swiftshader(?:=[^\s]+)?|--use-angle=(?:swiftshader|swiftshader-webgl)|--use-gl=swiftshader)(?=\s|$)/i)?.[1]??null}function k(e){return e==="darwin"?"metal":e==="linux"?"vulkan":"default"}function y(e,r=f()){if(w(r))return;let n=I(e);if(n)throw new Error(`[reap-browser] refused software-rendering Chrome process argument ${n}`);let o=k(r.platform),t=e.split(/\s+/);if(!t.includes(`--use-angle=${o}`)||!t.includes("--enable-gpu"))throw new Error(`[reap-browser] Chrome process did not retain the required ${o} GPU arguments`);if(r.platform==="darwin"&&e.includes("/Applications/Google Chrome.app/"))throw new Error("[reap-browser] refused the user's installed Google Chrome; use Playwright channel chromium")}function E(e){if(!e||typeof e!="object")return[];let n=e.gpu;if(!n||typeof n!="object")return[];let o=n,t=[],a=o.auxAttributes;if(a&&typeof a=="object")for(let s of Object.values(a))typeof s=="string"&&t.push(s);let i=o.devices;if(Array.isArray(i)){for(let s of i)if(!(!s||typeof s!="object"))for(let u of Object.values(s))typeof u=="string"&&t.push(u)}return t}function B(e){if(!e||typeof e!="object")return null;let r=e;if(!Array.isArray(r.processInfo))return null;for(let n of r.processInfo){if(!n||typeof n!="object")continue;let o=n;if(o.type==="browser"&&typeof o.id=="number"&&Number.isInteger(o.id)&&o.id>0)return o.id}return null}function G(e,r=f()){if(w(r))return;let o=E(e).join(" | ");if(!o||/swiftshader|llvmpipe|software rasterizer/i.test(o))throw new Error(`[reap-browser] Chrome reported a software renderer${o?`: ${o}`:""}`);if(r.platform==="darwin"&&!/metal/i.test(o))throw new Error(`[reap-browser] Chrome did not report an ANGLE Metal renderer: ${o}`)}function p(e){if(e&&typeof e=="object"){let n=g.get(e);if(n!==void 0)return n}let r=e;if(r&&typeof r.process=="function")try{let n=r.process();if(n&&typeof n.pid=="number"&&n.pid>0)return n.pid}catch{}if(r&&typeof r.browser=="function")try{let n=r.browser();if(n)return p(n)}catch{}return null}function h(e){let r=[];try{r=x(`pgrep -P ${e} || true`).toString().split(`
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.372 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.373 | (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
  var t=Object.freeze({id:"ios",displayName:"iOS",isIOS:!0,isAndroid:!1,select:e=>e.ios}),r=Object.freeze({id:"android",displayName:"Android",isIOS:!1,isAndroid:!0,select:e=>e.android}),i=Object.freeze({ios:t,android:r});
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.372 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.373 | (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 r}from"./chunk-H2SKPUSI.js";function o(){if(!r())return null;let t=process.env.VITE_POSTHOG_API_KEY||"";if(!t)return null;let e=process.env.CONTRAST_POSTHOG_HOST||process.env.VITE_POSTHOG_HOST||"https://us.i.posthog.com";return{apiKey:t,host:e.replace(/\/+$/,"")}}function i(t,e){return t.trim().slice(0,e)}function s(t){let e=t.kind==="package_incompatibility"?{package_name:i(t.packageName,160),package_version:i(t.packageVersion,80),...t.unsupportedApi?{unsupported_api:i(t.unsupportedApi,160)}:{}}:{error_class:i(t.errorClass,160)};return{event:t.kind,distinct_id:"rnx-cli-diagnostic",properties:e}}var n=[];function a(t){r()&&n.push(t)}function c(t){let e=t instanceof Error?t.constructor.name:typeof t;a({kind:"error_shape",errorClass:e})}async function l(){if(n.length===0)return;let t=o();if(!t){n.length=0;return}let e=n.splice(0,n.length).map(s);try{await fetch(`${t.host}/batch/`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({api_key:t.apiKey,batch:e}),signal:AbortSignal.timeout(2e3)})}catch{}}export{s as a,a as b,c,l as d};
4
+ import{b as r}from"./chunk-NEJ3WA75.js";function o(){if(!r())return null;let t=process.env.VITE_POSTHOG_API_KEY||"";if(!t)return null;let e=process.env.CONTRAST_POSTHOG_HOST||process.env.VITE_POSTHOG_HOST||"https://us.i.posthog.com";return{apiKey:t,host:e.replace(/\/+$/,"")}}function i(t,e){return t.trim().slice(0,e)}function s(t){let e=t.kind==="package_incompatibility"?{package_name:i(t.packageName,160),package_version:i(t.packageVersion,80),...t.unsupportedApi?{unsupported_api:i(t.unsupportedApi,160)}:{}}:{error_class:i(t.errorClass,160)};return{event:t.kind,distinct_id:"rnx-cli-diagnostic",properties:e}}var n=[];function a(t){r()&&n.push(t)}function c(t){let e=t instanceof Error?t.constructor.name:typeof t;a({kind:"error_shape",errorClass:e})}async function l(){if(n.length===0)return;let t=o();if(!t){n.length=0;return}let e=n.splice(0,n.length).map(s);try{await fetch(`${t.host}/batch/`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({api_key:t.apiKey,batch:e}),signal:AbortSignal.timeout(2e3)})}catch{}}export{s as a,a as b,c,l as d};
@@ -1,7 +1,7 @@
1
- /*! rnx v0.1.372 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.373 | (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 b}from"./chunk-EY5OHL2M.js";import{c as h}from"./chunk-YWTBN7SD.js";import{a as P,b as k,c as x,d as v,e as y,h as O,i as A}from"./chunk-YEGWC2OY.js";import{spawn as I,spawnSync as p}from"child_process";import{chmodSync as L,copyFileSync as C,createWriteStream as R,existsSync as g,mkdirSync as S,rmSync as u,statSync as B,unlinkSync as F}from"fs";import{tmpdir as N}from"os";import{dirname as W,join as f,resolve as M}from"path";var D="https://contrast.dev/api/electron-release";function Y(){let n=process.arch;if(process.platform==="darwin"){let t=n==="arm64"?"mac-arm64":"mac-x64",r=`sootsim-latest-${t}.dmg`;return{platform:t,filename:r,url:`${D}/${r}`,install:z}}if(process.platform==="linux"){let t=n==="arm64"?"linux-arm64":"linux-x64",r=`sootsim-latest-${t}.AppImage`;return{platform:t,filename:r,url:`${D}/${r}`,install:H}}if(process.platform==="win32"){let t="sootsim-latest-win-x64.exe";return{platform:"win-x64",filename:t,url:`${D}/${t}`,install:K}}return null}async function _({url:n,dest:t,onProgress:r}){let s=await fetch(n,{redirect:"follow"});if(!s.ok)throw new Error(`${s.status} ${s.statusText} (${n})`);let o=s.headers.get("content-length"),a=o?Number(o):null;if(!s.body)throw new Error(`empty response body (${n})`);S(W(t),{recursive:!0});let l=R(t),d=s.body.getReader(),c=0;try{for(;;){let{done:e,value:i}=await d.read();if(e)break;l.write(Buffer.from(i)),c+=i.byteLength,r?.(c,a)}}finally{await new Promise((e,i)=>{l.end(m=>m?i(m):e())})}}function q(n,t){let r=(n/1048576).toFixed(1);if(!t)return` ${r} MB`;let s=Math.min(100,Math.round(n/t*100)),o=(t/(1024*1024)).toFixed(1),a=24,l=Math.round(s/100*a);return` ${P("\u2588".repeat(l))+x("\u2591".repeat(a-l))} ${s}% ${r} / ${o} MB`}async function z(n){let t=p("hdiutil",["attach","-nobrowse","-readonly",n],{encoding:"utf8"});if(t.status!==0)throw new Error(`hdiutil attach failed: ${t.stderr||t.stdout}`.trim());let r=t.stdout.trim().split(`
4
+ import{a as b}from"./chunk-YPJJDEFE.js";import{c as h}from"./chunk-2272Y5HN.js";import{a as P,b as k,c as x,d as v,e as y,h as O,i as A}from"./chunk-52NWLXHO.js";import{spawn as I,spawnSync as p}from"child_process";import{chmodSync as L,copyFileSync as C,createWriteStream as R,existsSync as g,mkdirSync as S,rmSync as u,statSync as B,unlinkSync as F}from"fs";import{tmpdir as N}from"os";import{dirname as W,join as f,resolve as M}from"path";var D="https://contrast.dev/api/electron-release";function Y(){let n=process.arch;if(process.platform==="darwin"){let t=n==="arm64"?"mac-arm64":"mac-x64",r=`sootsim-latest-${t}.dmg`;return{platform:t,filename:r,url:`${D}/${r}`,install:z}}if(process.platform==="linux"){let t=n==="arm64"?"linux-arm64":"linux-x64",r=`sootsim-latest-${t}.AppImage`;return{platform:t,filename:r,url:`${D}/${r}`,install:H}}if(process.platform==="win32"){let t="sootsim-latest-win-x64.exe";return{platform:"win-x64",filename:t,url:`${D}/${t}`,install:K}}return null}async function _({url:n,dest:t,onProgress:r}){let s=await fetch(n,{redirect:"follow"});if(!s.ok)throw new Error(`${s.status} ${s.statusText} (${n})`);let o=s.headers.get("content-length"),a=o?Number(o):null;if(!s.body)throw new Error(`empty response body (${n})`);S(W(t),{recursive:!0});let l=R(t),d=s.body.getReader(),c=0;try{for(;;){let{done:e,value:i}=await d.read();if(e)break;l.write(Buffer.from(i)),c+=i.byteLength,r?.(c,a)}}finally{await new Promise((e,i)=>{l.end(m=>m?i(m):e())})}}function q(n,t){let r=(n/1048576).toFixed(1);if(!t)return` ${r} MB`;let s=Math.min(100,Math.round(n/t*100)),o=(t/(1024*1024)).toFixed(1),a=24,l=Math.round(s/100*a);return` ${P("\u2588".repeat(l))+x("\u2591".repeat(a-l))} ${s}% ${r} / ${o} MB`}async function z(n){let t=p("hdiutil",["attach","-nobrowse","-readonly",n],{encoding:"utf8"});if(t.status!==0)throw new Error(`hdiutil attach failed: ${t.stderr||t.stdout}`.trim());let r=t.stdout.trim().split(`
5
5
  `),o=r[r.length-1].split(" ").pop()?.trim();if(!o||!g(o))throw new Error(`could not determine dmg mount point (output: ${t.stdout})`);let a=f(o,"rnx.app");if(!g(a))throw p("hdiutil",["detach","-force",o]),new Error(`rnx.app not found inside ${o}`);let l="/Applications",d=M(process.env.HOME||"","Applications"),c=l;try{let w=f(l,`.sootsim-write-probe-${process.pid}`);p("touch",[w]),g(w)?u(w,{force:!0}):c=d}catch{c=d}c===d&&S(c,{recursive:!0});let e=f(c,"rnx.app"),i=f(c,`.rnx-incoming-${process.pid}.app`);u(i,{recursive:!0,force:!0});let m=p("cp",["-R",a,i]);if(m.status!==0)throw p("hdiutil",["detach","-force",o]),u(i,{recursive:!0,force:!0}),new Error(`copy to ${c} failed: ${m.stderr?.toString()||""}`.trim());let T=p("hdiutil",["detach","-force",o]),$=f(c,`.rnx-previous-${process.pid}.app`);if(g(e)){let w=p("mv",[e,$]);if(w.status!==0)throw u(i,{recursive:!0,force:!0}),new Error(`could not replace ${e}: ${w.stderr?.toString()||""}`.trim())}let E=p("mv",[i,e]);if(E.status!==0)throw g($)&&p("mv",[$,e]),u(i,{recursive:!0,force:!0}),new Error(`could not move into ${e}: ${E.stderr?.toString()||""}`.trim());return u($,{recursive:!0,force:!0}),T.status!==0&&console.warn(` warning: failed to unmount ${o} (${T.stderr?.toString().trim()||"unknown error"})`),p("xattr",["-dr","com.apple.quarantine",e]),e}async function H(n){let t=M(process.env.HOME||"","Applications");S(t,{recursive:!0});let r=f(t,"rnx.AppImage");return g(r)&&u(r,{force:!0}),C(n,r),F(n),L(r,493),r}async function K(n){await new Promise((r,s)=>{let o=I("cmd",["/c","start",'""',"/wait",n],{stdio:"inherit"});o.once("error",s),o.once("exit",a=>{a===0?r():s(new Error(`installer exited with code ${a}`))})});let t=b();if(!t)throw new Error("the installer finished but the rnx application was not registered");return t.path}async function tt(n){(n.includes("--help")||n.includes("-h"))&&(console.log(`
6
6
  rnx desktop install
7
7
 
@@ -1,7 +1,7 @@
1
- /*! rnx v0.1.372 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.373 | (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 w}from"./chunk-RXKZJAGY.js";import{f as g}from"./chunk-2OA2WE7G.js";import{L as B,T as b,g as S}from"./chunk-QA2PTSOC.js";import a from"node:fs";import c from"node:path";var f=1,E=`automatic-cleanup-v${f}.json`,x=`automatic-cleanup-v${f}.lock`,P=360*60*1e3,A=`automatic-cleanup-v${f}.deferred.json`,T=1800*1e3;function v(){let s=c.join(S(),E);try{return JSON.parse(a.readFileSync(s,"utf8")).generation===f}catch{return!1}}function J(s=Date.now()){if(v())return!0;let e=c.join(S(),A);try{let n=JSON.parse(a.readFileSync(e,"utf8"));if(n.generation!==f||typeof n.attemptedAt!="number")return!1;let r=s-n.attemptedAt;return r>=0&&r<T}catch{return!1}}function K(s){if(s<1024)return`${s} B`;let e=["KiB","MiB","GiB","TiB"],n=s/1024,r=e[0];for(let i=1;i<e.length&&n>=1024;i++)n/=1024,r=e[i];return`${n.toFixed(n>=10?1:2)} ${r}`}function p(s){let e;try{e=a.lstatSync(s)}catch{return 0}let n=e.blocks>0?e.blocks*512:e.size;if(!e.isDirectory()||e.isSymbolicLink())return n;let r=n;try{for(let i of a.readdirSync(s))r+=p(c.join(s,i))}catch{}return r}function k(s){for(let e of["SingletonLock","SingletonSocket","lockfile"])try{if(a.lstatSync(c.join(s,e)))return!0}catch{}return!1}function C(s,e){let n;try{n=a.readdirSync(s,{withFileTypes:!0})}catch{return[]}let r=k(e),i=[];for(let t of n){if(!t.isDirectory()||t.isSymbolicLink())continue;let o=c.join(s,t.name);if(w(t.name)){i.push({path:o,bytes:p(o),kind:"browser-cache",state:r?"in-use":"safe",selected:!r,detail:r?"browser profile is open; close it before cleanup":"disposable browser HTTP, bytecode, or GPU cache"});continue}i.push(...C(o,e))}return i}function R(s){let e=c.join(s,"profiles","playwright"),n;try{n=a.readdirSync(e,{withFileTypes:!0})}catch{return[]}return n.flatMap(r=>{if(!r.isDirectory()||r.isSymbolicLink())return[];let i=c.join(e,r.name);return C(i,i)})}function D(s){let e=c.join(s,"electron","userData");return C(e,e)}function U(s,e){let n=c.join(s,"recordings"),r;try{r=a.readdirSync(n,{withFileTypes:!0})}catch{return[]}return r.map(i=>{let t=c.join(n,i.name);return{path:t,bytes:p(t),kind:"recording",state:"aggressive",selected:e,detail:"user-created recording or captured-frame output"}})}function L(s,e){let n=c.join(s,"camera-fixtures"),r;try{r=a.readdirSync(n,{withFileTypes:!0})}catch{return[]}return r.map(i=>{let t=c.join(n,i.name);return{path:t,bytes:p(t),kind:"camera-fixture",state:"aggressive",selected:e,detail:"staged camera fixture video"}})}function F(s){let e=new Set(b()),n=[...e],r=g.planLocalRetention({retainVersions:2,protectVersions:n}),i=g.planLocalRetention({retainVersions:1,protectVersions:n}),t=new Set(r.removeVersions),o=new Set(i.removeVersions),m=new Set([...r.keepVersions,...r.removeVersions,...i.keepVersions,...i.removeVersions]),u=[];for(let l of[...m].sort()){let y=g.product.runtimeDir(l),d="retained",h="retained runtime";e.has(l)&&l!==r.activeVersion?(d="in-use",h="runtime is serving a connected simulator"):t.has(l)?(d="safe",h="inactive runtime outside the two-version rollback window"):o.has(l)?(d="aggressive",h="most recent rollback runtime"):l===r.activeVersion&&(h="active runtime; always protected"),u.push({path:y,bytes:p(y),kind:"runtime-version",state:d,selected:d==="safe"||d==="aggressive"&&s,detail:h})}for(let l of r.removeCacheFiles)u.push({path:l,bytes:p(l),kind:"runtime-archive",state:"safe",selected:!0,detail:"downloaded archive is unnecessary after successful extraction"});return{activeRuntime:r.activeVersion,entries:u}}function I(s={}){let e=s.aggressive===!0,n=S(),r=F(e),i=[...r.entries,...R(n),...D(n),...U(n,e),...L(n,e)].sort((t,o)=>o.bytes-t.bytes||t.path.localeCompare(o.path));return{home:n,activeRuntime:r.activeRuntime,entries:i,reclaimableBytes:i.reduce((t,o)=>t+(o.selected?o.bytes:0),0),protectedBytes:i.reduce((t,o)=>t+(o.selected?0:o.bytes),0),totalBytes:p(n)}}function j(s,e){let n=c.relative(s,e);if(!n||n.startsWith("..")||c.isAbsolute(n))throw new Error(`refusing cleanup target outside the rnx data home: ${e}`)}function O(s={}){let e=I(s),n=s.aggressive===!0?1:2;g.pruneLocalRetention({retainVersions:n,protectVersions:b()});for(let t of e.entries)if(t.selected&&!(t.kind==="runtime-archive"||t.kind==="runtime-version")){if(t.kind==="browser-cache"){let m=c.relative(e.home,t.path).split(c.sep),u=m[0]==="profiles"&&m[1]==="playwright"&&m[2]?c.join(e.home,"profiles","playwright",m[2]):m[0]==="electron"&&m[1]==="userData"?c.join(e.home,"electron","userData"):null;if(u&&k(u)){t.state="in-use",t.selected=!1,t.detail="browser profile opened while cleanup was starting";continue}}j(e.home,t.path),a.rmSync(t.path,{recursive:!0,force:!0})}let r=e.entries.filter(t=>t.selected&&!a.existsSync(t.path)).map(t=>t.path),i=p(e.home);return{...e,removedPaths:r,reclaimedBytes:Math.max(0,e.totalBytes-i),remainingBytes:i}}function H(){B();let s=S(),e=c.join(s,E),n=c.join(s,A),r=c.join(s,x);if(v())return{status:"already-complete",reclaimedBytes:0,remainingBytes:0,deferredInUseBytes:0};let i=null;for(let t=0;t<2&&i===null;t++)try{let o=a.openSync(r,"wx");try{a.writeFileSync(o,`${JSON.stringify({pid:process.pid,startedAt:Date.now()})}
4
+ import{b as w}from"./chunk-4NBB7L3M.js";import{f as g}from"./chunk-QKX26L27.js";import{L as B,T as b,g as S}from"./chunk-2YNZ3GHI.js";import a from"node:fs";import c from"node:path";var f=1,E=`automatic-cleanup-v${f}.json`,x=`automatic-cleanup-v${f}.lock`,P=360*60*1e3,A=`automatic-cleanup-v${f}.deferred.json`,T=1800*1e3;function v(){let s=c.join(S(),E);try{return JSON.parse(a.readFileSync(s,"utf8")).generation===f}catch{return!1}}function J(s=Date.now()){if(v())return!0;let e=c.join(S(),A);try{let n=JSON.parse(a.readFileSync(e,"utf8"));if(n.generation!==f||typeof n.attemptedAt!="number")return!1;let r=s-n.attemptedAt;return r>=0&&r<T}catch{return!1}}function K(s){if(s<1024)return`${s} B`;let e=["KiB","MiB","GiB","TiB"],n=s/1024,r=e[0];for(let i=1;i<e.length&&n>=1024;i++)n/=1024,r=e[i];return`${n.toFixed(n>=10?1:2)} ${r}`}function p(s){let e;try{e=a.lstatSync(s)}catch{return 0}let n=e.blocks>0?e.blocks*512:e.size;if(!e.isDirectory()||e.isSymbolicLink())return n;let r=n;try{for(let i of a.readdirSync(s))r+=p(c.join(s,i))}catch{}return r}function k(s){for(let e of["SingletonLock","SingletonSocket","lockfile"])try{if(a.lstatSync(c.join(s,e)))return!0}catch{}return!1}function C(s,e){let n;try{n=a.readdirSync(s,{withFileTypes:!0})}catch{return[]}let r=k(e),i=[];for(let t of n){if(!t.isDirectory()||t.isSymbolicLink())continue;let o=c.join(s,t.name);if(w(t.name)){i.push({path:o,bytes:p(o),kind:"browser-cache",state:r?"in-use":"safe",selected:!r,detail:r?"browser profile is open; close it before cleanup":"disposable browser HTTP, bytecode, or GPU cache"});continue}i.push(...C(o,e))}return i}function R(s){let e=c.join(s,"profiles","playwright"),n;try{n=a.readdirSync(e,{withFileTypes:!0})}catch{return[]}return n.flatMap(r=>{if(!r.isDirectory()||r.isSymbolicLink())return[];let i=c.join(e,r.name);return C(i,i)})}function D(s){let e=c.join(s,"electron","userData");return C(e,e)}function U(s,e){let n=c.join(s,"recordings"),r;try{r=a.readdirSync(n,{withFileTypes:!0})}catch{return[]}return r.map(i=>{let t=c.join(n,i.name);return{path:t,bytes:p(t),kind:"recording",state:"aggressive",selected:e,detail:"user-created recording or captured-frame output"}})}function L(s,e){let n=c.join(s,"camera-fixtures"),r;try{r=a.readdirSync(n,{withFileTypes:!0})}catch{return[]}return r.map(i=>{let t=c.join(n,i.name);return{path:t,bytes:p(t),kind:"camera-fixture",state:"aggressive",selected:e,detail:"staged camera fixture video"}})}function F(s){let e=new Set(b()),n=[...e],r=g.planLocalRetention({retainVersions:2,protectVersions:n}),i=g.planLocalRetention({retainVersions:1,protectVersions:n}),t=new Set(r.removeVersions),o=new Set(i.removeVersions),m=new Set([...r.keepVersions,...r.removeVersions,...i.keepVersions,...i.removeVersions]),u=[];for(let l of[...m].sort()){let y=g.product.runtimeDir(l),d="retained",h="retained runtime";e.has(l)&&l!==r.activeVersion?(d="in-use",h="runtime is serving a connected simulator"):t.has(l)?(d="safe",h="inactive runtime outside the two-version rollback window"):o.has(l)?(d="aggressive",h="most recent rollback runtime"):l===r.activeVersion&&(h="active runtime; always protected"),u.push({path:y,bytes:p(y),kind:"runtime-version",state:d,selected:d==="safe"||d==="aggressive"&&s,detail:h})}for(let l of r.removeCacheFiles)u.push({path:l,bytes:p(l),kind:"runtime-archive",state:"safe",selected:!0,detail:"downloaded archive is unnecessary after successful extraction"});return{activeRuntime:r.activeVersion,entries:u}}function I(s={}){let e=s.aggressive===!0,n=S(),r=F(e),i=[...r.entries,...R(n),...D(n),...U(n,e),...L(n,e)].sort((t,o)=>o.bytes-t.bytes||t.path.localeCompare(o.path));return{home:n,activeRuntime:r.activeRuntime,entries:i,reclaimableBytes:i.reduce((t,o)=>t+(o.selected?o.bytes:0),0),protectedBytes:i.reduce((t,o)=>t+(o.selected?0:o.bytes),0),totalBytes:p(n)}}function j(s,e){let n=c.relative(s,e);if(!n||n.startsWith("..")||c.isAbsolute(n))throw new Error(`refusing cleanup target outside the rnx data home: ${e}`)}function O(s={}){let e=I(s),n=s.aggressive===!0?1:2;g.pruneLocalRetention({retainVersions:n,protectVersions:b()});for(let t of e.entries)if(t.selected&&!(t.kind==="runtime-archive"||t.kind==="runtime-version")){if(t.kind==="browser-cache"){let m=c.relative(e.home,t.path).split(c.sep),u=m[0]==="profiles"&&m[1]==="playwright"&&m[2]?c.join(e.home,"profiles","playwright",m[2]):m[0]==="electron"&&m[1]==="userData"?c.join(e.home,"electron","userData"):null;if(u&&k(u)){t.state="in-use",t.selected=!1,t.detail="browser profile opened while cleanup was starting";continue}}j(e.home,t.path),a.rmSync(t.path,{recursive:!0,force:!0})}let r=e.entries.filter(t=>t.selected&&!a.existsSync(t.path)).map(t=>t.path),i=p(e.home);return{...e,removedPaths:r,reclaimedBytes:Math.max(0,e.totalBytes-i),remainingBytes:i}}function H(){B();let s=S(),e=c.join(s,E),n=c.join(s,A),r=c.join(s,x);if(v())return{status:"already-complete",reclaimedBytes:0,remainingBytes:0,deferredInUseBytes:0};let i=null;for(let t=0;t<2&&i===null;t++)try{let o=a.openSync(r,"wx");try{a.writeFileSync(o,`${JSON.stringify({pid:process.pid,startedAt:Date.now()})}
5
5
  `,"utf8"),i=o}catch(m){a.closeSync(o);try{a.unlinkSync(r)}catch{}throw m}}catch(o){if((o instanceof Error&&"code"in o?o.code:null)!=="EEXIST")throw o;let u=0,l=0,y=null;try{y=a.lstatSync(r);let d=JSON.parse(a.readFileSync(r,"utf8"));u=typeof d.pid=="number"?d.pid:0,l=typeof d.startedAt=="number"?d.startedAt:0}catch{}if(u>0&&l>0&&Date.now()-l<P)try{return process.kill(u,0),{status:"busy",reclaimedBytes:0,remainingBytes:0,deferredInUseBytes:0}}catch{}if(!y)continue;try{let d=a.lstatSync(r);if(d.dev!==y.dev||d.ino!==y.ino)return{status:"busy",reclaimedBytes:0,remainingBytes:0,deferredInUseBytes:0};a.unlinkSync(r)}catch{}}if(i===null)return{status:"busy",reclaimedBytes:0,remainingBytes:0,deferredInUseBytes:0};try{if(v())return{status:"already-complete",reclaimedBytes:0,remainingBytes:0,deferredInUseBytes:0};let t=O(),o=t.entries.reduce((u,l)=>u+(l.state==="in-use"?l.bytes:0),0);if(o>0){let u=`${n}.${process.pid}.tmp`;return a.writeFileSync(u,`${JSON.stringify({generation:f,attemptedAt:Date.now(),deferredInUseBytes:o})}
6
6
  `,"utf8"),a.renameSync(u,n),{status:"deferred",reclaimedBytes:t.reclaimedBytes,remainingBytes:t.remainingBytes,deferredInUseBytes:o}}let m=`${e}.${process.pid}.tmp`;return a.writeFileSync(m,`${JSON.stringify({generation:f,completedAt:Date.now(),reclaimedBytes:t.reclaimedBytes})}
7
7
  `,"utf8"),a.renameSync(m,e),a.rmSync(n,{force:!0}),{status:"complete",reclaimedBytes:t.reclaimedBytes,remainingBytes:t.remainingBytes,deferredInUseBytes:0}}finally{a.closeSync(i);try{a.unlinkSync(r)}catch{}}}export{v as a,J as b,K as c,I as d,O as e,H as f};
@@ -1,7 +1,7 @@
1
- /*! rnx v0.1.372 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.373 | (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{c as ms}from"./chunk-WR7LRCYW.js";var hs={};ms(hs,{Alias:()=>ee,CST:()=>cs,Composer:()=>be,Document:()=>se,Lexer:()=>Be,LineCounter:()=>De,Pair:()=>v,Parser:()=>we,Scalar:()=>y,Schema:()=>ve,YAMLError:()=>_e,YAMLMap:()=>$,YAMLParseError:()=>R,YAMLSeq:()=>B,YAMLWarning:()=>Pe,isAlias:()=>F,isCollection:()=>L,isDocument:()=>x,isMap:()=>U,isNode:()=>I,isPair:()=>T,isScalar:()=>E,isSeq:()=>V,parse:()=>un,parseAllDocuments:()=>fn,parseDocument:()=>us,stringify:()=>hn,visit:()=>Q,visitAsync:()=>je});var tt=Symbol.for("yaml.alias"),st=Symbol.for("yaml.document"),Y=Symbol.for("yaml.map"),qt=Symbol.for("yaml.pair"),q=Symbol.for("yaml.scalar"),re=Symbol.for("yaml.seq"),K=Symbol.for("yaml.node.type"),F=s=>!!s&&typeof s=="object"&&s[K]===tt,x=s=>!!s&&typeof s=="object"&&s[K]===st,U=s=>!!s&&typeof s=="object"&&s[K]===Y,T=s=>!!s&&typeof s=="object"&&s[K]===qt,E=s=>!!s&&typeof s=="object"&&s[K]===q,V=s=>!!s&&typeof s=="object"&&s[K]===re;function L(s){if(s&&typeof s=="object")switch(s[K]){case Y:case re:return!0}return!1}function I(s){if(s&&typeof s=="object")switch(s[K]){case tt:case Y:case q:case re:return!0}return!1}var nt=s=>(E(s)||L(s))&&!!s.anchor;var j=Symbol("break visit"),ds=Symbol("skip children"),z=Symbol("remove node");function Q(s,e){let t=gs(e);x(s)?ke(null,s.contents,t,Object.freeze([s]))===z&&(s.contents=null):ke(null,s,t,Object.freeze([]))}Q.BREAK=j;Q.SKIP=ds;Q.REMOVE=z;function ke(s,e,t,n){let i=ys(s,e,t,n);if(I(i)||T(i))return bs(s,n,i),ke(s,i,t,n);if(typeof i!="symbol"){if(L(e)){n=Object.freeze(n.concat(e));for(let r=0;r<e.items.length;++r){let o=ke(r,e.items[r],t,n);if(typeof o=="number")r=o-1;else{if(o===j)return j;o===z&&(e.items.splice(r,1),r-=1)}}}else if(T(e)){n=Object.freeze(n.concat(e));let r=ke("key",e.key,t,n);if(r===j)return j;r===z&&(e.key=null);let o=ke("value",e.value,t,n);if(o===j)return j;o===z&&(e.value=null)}}return i}async function je(s,e){let t=gs(e);x(s)?await Ne(null,s.contents,t,Object.freeze([s]))===z&&(s.contents=null):await Ne(null,s,t,Object.freeze([]))}je.BREAK=j;je.SKIP=ds;je.REMOVE=z;async function Ne(s,e,t,n){let i=await ys(s,e,t,n);if(I(i)||T(i))return bs(s,n,i),Ne(s,i,t,n);if(typeof i!="symbol"){if(L(e)){n=Object.freeze(n.concat(e));for(let r=0;r<e.items.length;++r){let o=await Ne(r,e.items[r],t,n);if(typeof o=="number")r=o-1;else{if(o===j)return j;o===z&&(e.items.splice(r,1),r-=1)}}}else if(T(e)){n=Object.freeze(n.concat(e));let r=await Ne("key",e.key,t,n);if(r===j)return j;r===z&&(e.key=null);let o=await Ne("value",e.value,t,n);if(o===j)return j;o===z&&(e.value=null)}}return i}function gs(s){return typeof s=="object"&&(s.Collection||s.Node||s.Value)?Object.assign({Alias:s.Node,Map:s.Node,Scalar:s.Node,Seq:s.Node},s.Value&&{Map:s.Value,Scalar:s.Value,Seq:s.Value},s.Collection&&{Map:s.Collection,Seq:s.Collection},s):s}function ys(s,e,t,n){if(typeof t=="function")return t(s,e,n);if(U(e))return t.Map?.(s,e,n);if(V(e))return t.Seq?.(s,e,n);if(T(e))return t.Pair?.(s,e,n);if(E(e))return t.Scalar?.(s,e,n);if(F(e))return t.Alias?.(s,e,n)}function bs(s,e,t){let n=e[e.length-1];if(L(n))n.items[s]=t;else if(T(n))s==="key"?n.key=t:n.value=t;else if(x(n))n.contents=t;else{let i=F(n)?"alias":"scalar";throw new Error(`Cannot replace node with ${i} parent`)}}var pn={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"},mn=s=>s.replace(/[!,[\]{}]/g,e=>pn[e]),Z=class s{constructor(e,t){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},s.defaultYaml,e),this.tags=Object.assign({},s.defaultTags,t)}clone(){let e=new s(this.yaml,this.tags);return e.docStart=this.docStart,e}atDocument(){let e=new s(this.yaml,this.tags);switch(this.yaml.version){case"1.1":this.atNextDocument=!0;break;case"1.2":this.atNextDocument=!1,this.yaml={explicit:s.defaultYaml.explicit,version:"1.2"},this.tags=Object.assign({},s.defaultTags);break}return e}add(e,t){this.atNextDocument&&(this.yaml={explicit:s.defaultYaml.explicit,version:"1.1"},this.tags=Object.assign({},s.defaultTags),this.atNextDocument=!1);let n=e.trim().split(/[ \t]+/),i=n.shift();switch(i){case"%TAG":{if(n.length!==2&&(t(0,"%TAG directive should contain exactly two parts"),n.length<2))return!1;let[r,o]=n;return this.tags[r]=o,!0}case"%YAML":{if(this.yaml.explicit=!0,n.length!==1)return t(0,"%YAML directive should contain exactly one part"),!1;let[r]=n;if(r==="1.1"||r==="1.2")return this.yaml.version=r,!0;{let o=/^\d+\.\d+$/.test(r);return t(6,`Unsupported YAML version ${r}`,o),!1}}default:return t(0,`Unknown directive ${i}`,!0),!1}}tagName(e,t){if(e==="!")return"!";if(e[0]!=="!")return t(`Not a valid tag: ${e}`),null;if(e[1]==="<"){let o=e.slice(2,-1);return o==="!"||o==="!!"?(t(`Verbatim tags aren't resolved, so ${e} is invalid.`),null):(e[e.length-1]!==">"&&t("Verbatim tags must end with a >"),o)}let[,n,i]=e.match(/^(.*!)([^!]*)$/s);i||t(`The ${e} tag has no suffix`);let r=this.tags[n];if(r)try{return r+decodeURIComponent(i)}catch(o){return t(String(o)),null}return n==="!"?e:(t(`Could not resolve tag: ${e}`),null)}tagString(e){for(let[t,n]of Object.entries(this.tags))if(e.startsWith(n))return t+mn(e.substring(n.length));return e[0]==="!"?e:`!<${e}>`}toString(e){let t=this.yaml.explicit?[`%YAML ${this.yaml.version||"1.2"}`]:[],n=Object.entries(this.tags),i;if(e&&n.length>0&&I(e.contents)){let r={};Q(e.contents,(o,l)=>{I(l)&&l.tag&&(r[l.tag]=!0)}),i=Object.keys(r)}else i=[];for(let[r,o]of n)r==="!!"&&o==="tag:yaml.org,2002:"||(!e||i.some(l=>l.startsWith(o)))&&t.push(`%TAG ${r} ${o}`);return t.join(`
4
+ import{c as ms}from"./chunk-O7NKNTJ6.js";var hs={};ms(hs,{Alias:()=>ee,CST:()=>cs,Composer:()=>be,Document:()=>se,Lexer:()=>Be,LineCounter:()=>De,Pair:()=>v,Parser:()=>we,Scalar:()=>y,Schema:()=>ve,YAMLError:()=>_e,YAMLMap:()=>$,YAMLParseError:()=>R,YAMLSeq:()=>B,YAMLWarning:()=>Pe,isAlias:()=>F,isCollection:()=>L,isDocument:()=>x,isMap:()=>U,isNode:()=>I,isPair:()=>T,isScalar:()=>E,isSeq:()=>V,parse:()=>un,parseAllDocuments:()=>fn,parseDocument:()=>us,stringify:()=>hn,visit:()=>Q,visitAsync:()=>je});var tt=Symbol.for("yaml.alias"),st=Symbol.for("yaml.document"),Y=Symbol.for("yaml.map"),qt=Symbol.for("yaml.pair"),q=Symbol.for("yaml.scalar"),re=Symbol.for("yaml.seq"),K=Symbol.for("yaml.node.type"),F=s=>!!s&&typeof s=="object"&&s[K]===tt,x=s=>!!s&&typeof s=="object"&&s[K]===st,U=s=>!!s&&typeof s=="object"&&s[K]===Y,T=s=>!!s&&typeof s=="object"&&s[K]===qt,E=s=>!!s&&typeof s=="object"&&s[K]===q,V=s=>!!s&&typeof s=="object"&&s[K]===re;function L(s){if(s&&typeof s=="object")switch(s[K]){case Y:case re:return!0}return!1}function I(s){if(s&&typeof s=="object")switch(s[K]){case tt:case Y:case q:case re:return!0}return!1}var nt=s=>(E(s)||L(s))&&!!s.anchor;var j=Symbol("break visit"),ds=Symbol("skip children"),z=Symbol("remove node");function Q(s,e){let t=gs(e);x(s)?ke(null,s.contents,t,Object.freeze([s]))===z&&(s.contents=null):ke(null,s,t,Object.freeze([]))}Q.BREAK=j;Q.SKIP=ds;Q.REMOVE=z;function ke(s,e,t,n){let i=ys(s,e,t,n);if(I(i)||T(i))return bs(s,n,i),ke(s,i,t,n);if(typeof i!="symbol"){if(L(e)){n=Object.freeze(n.concat(e));for(let r=0;r<e.items.length;++r){let o=ke(r,e.items[r],t,n);if(typeof o=="number")r=o-1;else{if(o===j)return j;o===z&&(e.items.splice(r,1),r-=1)}}}else if(T(e)){n=Object.freeze(n.concat(e));let r=ke("key",e.key,t,n);if(r===j)return j;r===z&&(e.key=null);let o=ke("value",e.value,t,n);if(o===j)return j;o===z&&(e.value=null)}}return i}async function je(s,e){let t=gs(e);x(s)?await Ne(null,s.contents,t,Object.freeze([s]))===z&&(s.contents=null):await Ne(null,s,t,Object.freeze([]))}je.BREAK=j;je.SKIP=ds;je.REMOVE=z;async function Ne(s,e,t,n){let i=await ys(s,e,t,n);if(I(i)||T(i))return bs(s,n,i),Ne(s,i,t,n);if(typeof i!="symbol"){if(L(e)){n=Object.freeze(n.concat(e));for(let r=0;r<e.items.length;++r){let o=await Ne(r,e.items[r],t,n);if(typeof o=="number")r=o-1;else{if(o===j)return j;o===z&&(e.items.splice(r,1),r-=1)}}}else if(T(e)){n=Object.freeze(n.concat(e));let r=await Ne("key",e.key,t,n);if(r===j)return j;r===z&&(e.key=null);let o=await Ne("value",e.value,t,n);if(o===j)return j;o===z&&(e.value=null)}}return i}function gs(s){return typeof s=="object"&&(s.Collection||s.Node||s.Value)?Object.assign({Alias:s.Node,Map:s.Node,Scalar:s.Node,Seq:s.Node},s.Value&&{Map:s.Value,Scalar:s.Value,Seq:s.Value},s.Collection&&{Map:s.Collection,Seq:s.Collection},s):s}function ys(s,e,t,n){if(typeof t=="function")return t(s,e,n);if(U(e))return t.Map?.(s,e,n);if(V(e))return t.Seq?.(s,e,n);if(T(e))return t.Pair?.(s,e,n);if(E(e))return t.Scalar?.(s,e,n);if(F(e))return t.Alias?.(s,e,n)}function bs(s,e,t){let n=e[e.length-1];if(L(n))n.items[s]=t;else if(T(n))s==="key"?n.key=t:n.value=t;else if(x(n))n.contents=t;else{let i=F(n)?"alias":"scalar";throw new Error(`Cannot replace node with ${i} parent`)}}var pn={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"},mn=s=>s.replace(/[!,[\]{}]/g,e=>pn[e]),Z=class s{constructor(e,t){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},s.defaultYaml,e),this.tags=Object.assign({},s.defaultTags,t)}clone(){let e=new s(this.yaml,this.tags);return e.docStart=this.docStart,e}atDocument(){let e=new s(this.yaml,this.tags);switch(this.yaml.version){case"1.1":this.atNextDocument=!0;break;case"1.2":this.atNextDocument=!1,this.yaml={explicit:s.defaultYaml.explicit,version:"1.2"},this.tags=Object.assign({},s.defaultTags);break}return e}add(e,t){this.atNextDocument&&(this.yaml={explicit:s.defaultYaml.explicit,version:"1.1"},this.tags=Object.assign({},s.defaultTags),this.atNextDocument=!1);let n=e.trim().split(/[ \t]+/),i=n.shift();switch(i){case"%TAG":{if(n.length!==2&&(t(0,"%TAG directive should contain exactly two parts"),n.length<2))return!1;let[r,o]=n;return this.tags[r]=o,!0}case"%YAML":{if(this.yaml.explicit=!0,n.length!==1)return t(0,"%YAML directive should contain exactly one part"),!1;let[r]=n;if(r==="1.1"||r==="1.2")return this.yaml.version=r,!0;{let o=/^\d+\.\d+$/.test(r);return t(6,`Unsupported YAML version ${r}`,o),!1}}default:return t(0,`Unknown directive ${i}`,!0),!1}}tagName(e,t){if(e==="!")return"!";if(e[0]!=="!")return t(`Not a valid tag: ${e}`),null;if(e[1]==="<"){let o=e.slice(2,-1);return o==="!"||o==="!!"?(t(`Verbatim tags aren't resolved, so ${e} is invalid.`),null):(e[e.length-1]!==">"&&t("Verbatim tags must end with a >"),o)}let[,n,i]=e.match(/^(.*!)([^!]*)$/s);i||t(`The ${e} tag has no suffix`);let r=this.tags[n];if(r)try{return r+decodeURIComponent(i)}catch(o){return t(String(o)),null}return n==="!"?e:(t(`Could not resolve tag: ${e}`),null)}tagString(e){for(let[t,n]of Object.entries(this.tags))if(e.startsWith(n))return t+mn(e.substring(n.length));return e[0]==="!"?e:`!<${e}>`}toString(e){let t=this.yaml.explicit?[`%YAML ${this.yaml.version||"1.2"}`]:[],n=Object.entries(this.tags),i;if(e&&n.length>0&&I(e.contents)){let r={};Q(e.contents,(o,l)=>{I(l)&&l.tag&&(r[l.tag]=!0)}),i=Object.keys(r)}else i=[];for(let[r,o]of n)r==="!!"&&o==="tag:yaml.org,2002:"||(!e||i.some(l=>l.startsWith(o)))&&t.push(`%TAG ${r} ${o}`);return t.join(`
5
5
  `)}};Z.defaultYaml={explicit:!1,version:"1.2"};Z.defaultTags={"!!":"tag:yaml.org,2002:"};function it(s){if(/[\x00-\x19\s,[\]{}]/.test(s)){let t=`Anchor must not contain whitespace or control characters: ${JSON.stringify(s)}`;throw new Error(t)}return!0}function Rt(s){let e=new Set;return Q(s,{Value(t,n){n.anchor&&e.add(n.anchor)}}),e}function Ft(s,e){for(let t=1;;++t){let n=`${s}${t}`;if(!e.has(n))return n}}function ws(s,e){let t=[],n=new Map,i=null;return{onAnchor:r=>{t.push(r),i??(i=Rt(s));let o=Ft(e,i);return i.add(o),o},setAnchors:()=>{for(let r of t){let o=n.get(r);if(typeof o=="object"&&o.anchor&&(E(o.node)||L(o.node)))o.node.anchor=o.anchor;else{let l=new Error("Failed to resolve repeated object (this should not happen)");throw l.source=r,l}}},sourceObjects:n}}function fe(s,e,t,n){if(n&&typeof n=="object")if(Array.isArray(n))for(let i=0,r=n.length;i<r;++i){let o=n[i],l=fe(s,n,String(i),o);l===void 0?delete n[i]:l!==o&&(n[i]=l)}else if(n instanceof Map)for(let i of Array.from(n.keys())){let r=n.get(i),o=fe(s,n,i,r);o===void 0?n.delete(i):o!==r&&n.set(i,o)}else if(n instanceof Set)for(let i of Array.from(n)){let r=fe(s,n,i,i);r===void 0?n.delete(i):r!==i&&(n.delete(i),n.add(r))}else for(let[i,r]of Object.entries(n)){let o=fe(s,n,i,r);o===void 0?delete n[i]:o!==r&&(n[i]=o)}return s.call(e,t,n)}function M(s,e,t){if(Array.isArray(s))return s.map((n,i)=>M(n,String(i),t));if(s&&typeof s.toJSON=="function"){if(!t||!nt(s))return s.toJSON(e,t);let n={aliasCount:0,count:1,res:void 0};t.anchors.set(s,n),t.onCreate=r=>{n.res=r,delete t.onCreate};let i=s.toJSON(e,t);return t.onCreate&&t.onCreate(i),i}return typeof s=="bigint"&&!t?.keep?Number(s):s}var ue=class{constructor(e){Object.defineProperty(this,K,{value:e})}clone(){let e=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return this.range&&(e.range=this.range.slice()),e}toJS(e,{mapAsMap:t,maxAliasCount:n,onAnchor:i,reviver:r}={}){if(!x(e))throw new TypeError("A document argument is required");let o={anchors:new Map,doc:e,keep:!0,mapAsMap:t===!0,mapKeyWarned:!1,maxAliasCount:typeof n=="number"?n:100},l=M(this,"",o);if(typeof i=="function")for(let{count:a,res:c}of o.anchors.values())i(c,a);return typeof r=="function"?fe(r,{"":l},"",l):l}};var ee=class extends ue{constructor(e){super(tt),this.source=e,Object.defineProperty(this,"tag",{set(){throw new Error("Alias nodes cannot have tags")}})}resolve(e,t){if(t?.maxAliasCount===0)throw new ReferenceError("Alias resolution is disabled");let n;t?.aliasResolveCache?n=t.aliasResolveCache:(n=[],Q(e,{Node:(r,o)=>{(F(o)||nt(o))&&n.push(o)}}),t&&(t.aliasResolveCache=n));let i;for(let r of n){if(r===this)break;r.anchor===this.source&&(i=r)}return i}toJSON(e,t){if(!t)return{source:this.source};let{anchors:n,doc:i,maxAliasCount:r}=t,o=this.resolve(i,t);if(!o){let a=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new ReferenceError(a)}let l=n.get(o);if(l||(M(o,null,t),l=n.get(o)),l?.res===void 0){let a="This should not happen: Alias anchor was not resolved?";throw new ReferenceError(a)}if(r>=0&&(l.count+=1,l.aliasCount===0&&(l.aliasCount=rt(i,o,n)),l.count*l.aliasCount>r)){let a="Excessive alias count indicates a resource exhaustion attack";throw new ReferenceError(a)}return l.res}toString(e,t,n){let i=`*${this.source}`;if(e){if(it(this.source),e.options.verifyAliasOrder&&!e.anchors.has(this.source)){let r=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new Error(r)}if(e.implicitKey)return`${i} `}return i}};function rt(s,e,t){if(F(e)){let n=e.resolve(s),i=t&&n&&t.get(n);return i?i.count*i.aliasCount:0}else if(L(e)){let n=0;for(let i of e.items){let r=rt(s,i,t);r>n&&(n=r)}return n}else if(T(e)){let n=rt(s,e.key,t),i=rt(s,e.value,t);return Math.max(n,i)}return 1}var ot=s=>!s||typeof s!="function"&&typeof s!="object",y=class extends ue{constructor(e){super(q),this.value=e}toJSON(e,t){return t?.keep?this.value:M(this.value,e,t)}toString(){return String(this.value)}};y.BLOCK_FOLDED="BLOCK_FOLDED";y.BLOCK_LITERAL="BLOCK_LITERAL";y.PLAIN="PLAIN";y.QUOTE_DOUBLE="QUOTE_DOUBLE";y.QUOTE_SINGLE="QUOTE_SINGLE";var dn="tag:yaml.org,2002:";function gn(s,e,t){if(e){let n=t.filter(r=>r.tag===e),i=n.find(r=>!r.format)??n[0];if(!i)throw new Error(`Tag ${e} not found`);return i}return t.find(n=>n.identify?.(s)&&!n.format)}function oe(s,e,t){if(x(s)&&(s=s.contents),I(s))return s;if(T(s)){let f=t.schema[Y].createNode?.(t.schema,null,t);return f.items.push(s),f}(s instanceof String||s instanceof Number||s instanceof Boolean||typeof BigInt<"u"&&s instanceof BigInt)&&(s=s.valueOf());let{aliasDuplicateObjects:n,onAnchor:i,onTagObj:r,schema:o,sourceObjects:l}=t,a;if(n&&s&&typeof s=="object"){if(a=l.get(s),a)return a.anchor??(a.anchor=i(s)),new ee(a.anchor);a={anchor:null,node:null},l.set(s,a)}e?.startsWith("!!")&&(e=dn+e.slice(2));let c=gn(s,e,o.tags);if(!c){if(s&&typeof s.toJSON=="function"&&(s=s.toJSON()),!s||typeof s!="object"){let f=new y(s);return a&&(a.node=f),f}c=s instanceof Map?o[Y]:Symbol.iterator in Object(s)?o[re]:o[Y]}r&&(r(c),delete t.onTagObj);let p=c?.createNode?c.createNode(t.schema,s,t):typeof c?.nodeClass?.from=="function"?c.nodeClass.from(t.schema,s,t):new y(s);return e?p.tag=e:c.default||(p.tag=c.tag),a&&(a.node=p),p}function qe(s,e,t){let n=t;for(let i=e.length-1;i>=0;--i){let r=e[i];if(typeof r=="number"&&Number.isInteger(r)&&r>=0){let o=[];o[r]=n,n=o}else n=new Map([[r,n]])}return oe(n,void 0,{aliasDuplicateObjects:!1,keepUndefined:!1,onAnchor:()=>{throw new Error("This should not happen, please report a bug.")},schema:s,sourceObjects:new Map})}var Ae=s=>s==null||typeof s=="object"&&!!s[Symbol.iterator]().next().done,Oe=class extends ue{constructor(e,t){super(e),Object.defineProperty(this,"schema",{value:t,configurable:!0,enumerable:!1,writable:!0})}clone(e){let t=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return e&&(t.schema=e),t.items=t.items.map(n=>I(n)||T(n)?n.clone(e):n),this.range&&(t.range=this.range.slice()),t}addIn(e,t){if(Ae(e))this.add(t);else{let[n,...i]=e,r=this.get(n,!0);if(L(r))r.addIn(i,t);else if(r===void 0&&this.schema)this.set(n,qe(this.schema,i,t));else throw new Error(`Expected YAML collection at ${n}. Remaining path: ${i}`)}}deleteIn(e){let[t,...n]=e;if(n.length===0)return this.delete(t);let i=this.get(t,!0);if(L(i))return i.deleteIn(n);throw new Error(`Expected YAML collection at ${t}. Remaining path: ${n}`)}getIn(e,t){let[n,...i]=e,r=this.get(n,!0);return i.length===0?!t&&E(r)?r.value:r:L(r)?r.getIn(i,t):void 0}hasAllNullValues(e){return this.items.every(t=>{if(!T(t))return!1;let n=t.value;return n==null||e&&E(n)&&n.value==null&&!n.commentBefore&&!n.comment&&!n.tag})}hasIn(e){let[t,...n]=e;if(n.length===0)return this.has(t);let i=this.get(t,!0);return L(i)?i.hasIn(n):!1}setIn(e,t){let[n,...i]=e;if(i.length===0)this.set(n,t);else{let r=this.get(n,!0);if(L(r))r.setIn(i,t);else if(r===void 0&&this.schema)this.set(n,qe(this.schema,i,t));else throw new Error(`Expected YAML collection at ${n}. Remaining path: ${i}`)}}};var Ss=s=>s.replace(/^(?!$)(?: $)?/gm,"#");function J(s,e){return/^\n+$/.test(s)?s.substring(1):e?s.replace(/^(?! *$)/gm,e):s}var te=(s,e,t)=>s.endsWith(`
6
6
  `)?J(t,e):t.includes(`
7
7
  `)?`
@@ -1,7 +1,7 @@
1
- /*! rnx v0.1.372 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.373 | (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 w,b as E}from"./chunk-KVVNCIJA.js";import{P as T,Q as F,R as _,S as W,g as $}from"./chunk-QA2PTSOC.js";import ae from"node:fs";import S from"node:path";import{WebSocket as C}from"ws";var ye="http://localhost:7668/";function H(e){if(typeof e=="number")return Number.isInteger(e)&&e>0?e:null;if(typeof e!="string")return null;let t=e.trim();if(!t)return null;let r=Number(t);return Number.isInteger(r)&&r>0?r:null}function z(e){let t=H(e);return t===null?0:t}function V(e={}){let t=H(e.explicitPort);return t!==null?t:7668+z(e.portOffset)}var Q=5173;var Z=2e3;function Te(e){let t=e-7668;return t<0||t>Z?null:`http://localhost:${Q+t}/`}var _e=4001,Oe="sootsim close";var h="http://localhost:5173/";import{existsSync as ee,mkdirSync as te,readFileSync as re,rmSync as B,writeFileSync as ne}from"fs";import{tmpdir as ie}from"os";import{dirname as oe,join as se,resolve as le}from"path";var x=1,G="SOOTSIM_CLI_CURRENT_SIM_PATH",ce=["SOOTSIM_CLI_IDENTITY","TM_SESSION","CLAUDE_CODE_SESSION_ID","CODEX_THREAD_ID","TERM_SESSION_ID","ITERM_SESSION_ID","TMUX_PANE","STY","KITTY_WINDOW_ID","WEZTERM_PANE","ALACRITTY_WINDOW_ID","WINDOWID","VSCODE_INJECTION"],j=/^(?:tmux|screen)|^tm$/i;function q(e,t=20){let r=e,n=w(e);if(!n||n<=1){let o=E(e);return e>1&&o&&!j.test(o)?e:null}for(let o=0;o<t;o++){let s=E(n);if(s&&j.test(s))return r;let u=w(n);if(!u||u<=1)return s?n:r;r=n,n=u}return n}function v(){for(let t of ce){let r=process.env[t];if(r&&r.trim())return{key:`${t}:${r.trim()}`,source:t,stable:!0}}let e=q(process.ppid);return e&&e>1?{key:`gppid-${e}`,source:"grand-ppid",stable:!0}:{key:`pid-${process.ppid}`,source:"ppid",stable:!1}}function de(){return v().key}function ke(){return q(process.ppid)}function R(){if(process.env[G])return le(process.env[G]);let e=de();return se(ie(),`sootsim-current-sim-${e}.json`)}function ue(){let e=R();if(!ee(e))return null;try{let t=JSON.parse(re(e,"utf8"));return t.version!==x||typeof t.simId!="string"||!t.simId.trim()||typeof t.updatedAt!="string"?(B(e,{force:!0}),null):{version:x,simId:t.simId.trim(),updatedAt:t.updatedAt}}catch{return B(e,{force:!0}),null}}function k(){return ue()?.simId||null}function Ce(e){let t=e.trim();if(!t)return;let r=R();te(oe(r),{recursive:!0}),ne(r,JSON.stringify({version:x,simId:t,updatedAt:new Date().toISOString()},null,2)+`
4
+ import{a as w,b as E}from"./chunk-TIPRUSQQ.js";import{P as T,Q as F,R as _,S as W,g as $}from"./chunk-2YNZ3GHI.js";import ae from"node:fs";import S from"node:path";import{WebSocket as C}from"ws";var ye="http://localhost:7668/";function H(e){if(typeof e=="number")return Number.isInteger(e)&&e>0?e:null;if(typeof e!="string")return null;let t=e.trim();if(!t)return null;let r=Number(t);return Number.isInteger(r)&&r>0?r:null}function z(e){let t=H(e);return t===null?0:t}function V(e={}){let t=H(e.explicitPort);return t!==null?t:7668+z(e.portOffset)}var Q=5173;var Z=2e3;function Te(e){let t=e-7668;return t<0||t>Z?null:`http://localhost:${Q+t}/`}var _e=4001,Oe="sootsim close";var h="http://localhost:5173/";import{existsSync as ee,mkdirSync as te,readFileSync as re,rmSync as B,writeFileSync as ne}from"fs";import{tmpdir as ie}from"os";import{dirname as oe,join as se,resolve as le}from"path";var x=1,G="SOOTSIM_CLI_CURRENT_SIM_PATH",ce=["SOOTSIM_CLI_IDENTITY","TM_SESSION","CLAUDE_CODE_SESSION_ID","CODEX_THREAD_ID","TERM_SESSION_ID","ITERM_SESSION_ID","TMUX_PANE","STY","KITTY_WINDOW_ID","WEZTERM_PANE","ALACRITTY_WINDOW_ID","WINDOWID","VSCODE_INJECTION"],j=/^(?:tmux|screen)|^tm$/i;function q(e,t=20){let r=e,n=w(e);if(!n||n<=1){let o=E(e);return e>1&&o&&!j.test(o)?e:null}for(let o=0;o<t;o++){let s=E(n);if(s&&j.test(s))return r;let u=w(n);if(!u||u<=1)return s?n:r;r=n,n=u}return n}function v(){for(let t of ce){let r=process.env[t];if(r&&r.trim())return{key:`${t}:${r.trim()}`,source:t,stable:!0}}let e=q(process.ppid);return e&&e>1?{key:`gppid-${e}`,source:"grand-ppid",stable:!0}:{key:`pid-${process.ppid}`,source:"ppid",stable:!1}}function de(){return v().key}function ke(){return q(process.ppid)}function R(){if(process.env[G])return le(process.env[G]);let e=de();return se(ie(),`sootsim-current-sim-${e}.json`)}function ue(){let e=R();if(!ee(e))return null;try{let t=JSON.parse(re(e,"utf8"));return t.version!==x||typeof t.simId!="string"||!t.simId.trim()||typeof t.updatedAt!="string"?(B(e,{force:!0}),null):{version:x,simId:t.simId.trim(),updatedAt:t.updatedAt}}catch{return B(e,{force:!0}),null}}function k(){return ue()?.simId||null}function Ce(e){let t=e.trim();if(!t)return;let r=R();te(oe(r),{recursive:!0}),ne(r,JSON.stringify({version:x,simId:t,updatedAt:new Date().toISOString()},null,2)+`
5
5
  `)}function J(){B(R(),{force:!0})}var me="RNX_PLACEMENT";function We(){return process.env[me]==="local-box"?"local-box":"host"}function Y(e){return`ws://localhost:${e}`}var L=null;function M(){return F().filter(e=>W(e))}function X(e){let t=S.resolve(e);for(;;){if(ae.existsSync(S.join(t,".git")))return t;let r=S.dirname(t);if(r===t)return null;t=r}}function K(e,t){let r=S.relative(e,t);return r===""||r!==".."&&!r.startsWith(`..${S.sep}`)&&!S.isAbsolute(r)}function fe(){let e=M();if(e.length===0)return null;if(process.env.SOOTSIM_BRIDGE_PORT!==void 0||process.env.PORT_OFFSET!==void 0){let r=V({explicitPort:process.env.SOOTSIM_BRIDGE_PORT,portOffset:process.env.PORT_OFFSET}),n=e.find(o=>o.bridgePort===r);if(n)return n}let t=null;try{t=process.cwd()}catch{}if(t){let r=X(t),n=e.filter(o=>{let s=X(o.cwd);return r&&s?r===s:K(t,o.cwd)||K(o.cwd,t)});if(n.length>0)return n.find(o=>o.bridgePort===7668)??n[0]}return e.find(r=>r.bridgePort===7668)??e[0]}function ge(){let e=$();if(L?.homeDir===e)return L.world;let t=pe();return L={homeDir:e,world:t},t}function pe(){let e=fe();if(e)return{source:"dev-bridge",bridgePort:e.bridgePort,shellBaseUrl:e.shellPort?`http://localhost:${e.shellPort}/`:h};let t=T();return t&&_(t)?{source:"daemon",bridgePort:t.bridgePort,shellBaseUrl:t.runtimePort>0?`http://localhost:${t.runtimePort}/`:h}:{source:"default",bridgePort:7668,shellBaseUrl:h}}function he(e){let t=M().find(n=>n.bridgePort===e);if(t)return{source:"dev-bridge",shellBaseUrl:t.shellPort?`http://localhost:${t.shellPort}/`:h};let r=T();return r&&_(r)&&r.bridgePort===e?{source:"daemon",shellBaseUrl:r.runtimePort>0?`http://localhost:${r.runtimePort}/`:h}:null}function He(e){let t;try{let o=new URL(e);t=o.port?Number(o.port):o.protocol==="https:"?443:80}catch{return null}if(!Number.isFinite(t)||t<=0)return null;let r=M().find(o=>o.shellPort===t||o.runtimePort===t||o.bridgePort===t);if(r)return r.bridgePort;let n=T();return n&&_(n)&&(n.runtimePort===t||n.bridgePort===t)?n.bridgePort:null}function Se(){return ge().bridgePort}function Ve(e,t){let r=he(e),n=r?.source==="dev-bridge"?"dev bridge":r?.source==="daemon"?"daemon bridge":"bridge",o=r?.source==="dev-bridge"?`dev-bridges/${e}.json`:r?.source==="daemon"?"daemon.json":"no lockfile",s=t??r?.shellBaseUrl;process.stderr.write(` \u2192 ${n} :${e} (${s?`shell ${s}, `:""}${o})
6
6
  `)}var A=class extends Error{lock;constructor(t,r){super(t),this.name="BridgeSimLockedError",this.lock=r}};function be(e){return e==="flag"?"via --sim":e==="saved"?"saved via `rnx use`":"primary fallback \u2014 no sim pinned"}function Ge(e,t={}){let r=new Set,n=t.port??Se(),o=t.port!==void 0,s=t.commandTimeoutMs??15e3,u,a="none",I=new Set(t.stripBooleanFlags??[]),P=new Set(t.stripValueFlags??[]);for(let l=0;l<e.length;l++){let i=e[l];if(i==="--port"||i==="-p"){r.add(l),o=!0,l+1<e.length&&(r.add(l+1),n=Number(e[l+1])),l++;continue}if(i.startsWith("--port=")){r.add(l),o=!0,n=Number(i.slice(7));continue}if(i==="--timeout"){r.add(l),l+1<e.length&&(r.add(l+1),s=Number(e[l+1])),l++;continue}if(i==="--sim"||i==="--session"||i==="--tab"){r.add(l),l+1<e.length&&(r.add(l+1),u=e[l+1]?.trim()||void 0,a="flag"),l++;continue}let c=i.startsWith("--sim=")?i.slice(6):i.startsWith("--session=")?i.slice(10):i.startsWith("--tab=")?i.slice(6):void 0;if(c!==void 0){r.add(l),u=c.trim()||void 0,a="flag";continue}if(I.has(i)){r.add(l);continue}P.has(i)&&(r.add(l),l+1<e.length&&r.add(l+1),l++)}if(!u){let l=k();l&&(u=l.trim()||void 0,a="saved")}return{positional:e.filter((l,i)=>!r.has(i)),wsPort:n,explicitPort:o,simId:u,simIdSource:a,commandTimeoutMs:s}}function Ie(e,t={}){let r=1,n=t.commandTimeoutMs??15e3,o=new Map,s=new C(Y(e)),u=v(),a=new Promise((i,c)=>{s.on("open",()=>{try{s.send(JSON.stringify({type:"bridge:hello",id:0,cliIdentityKey:u.key,cliIdentitySource:u.source,cliLabel:t.cliLabel}))}catch{}i()}),s.on("error",d=>{let m=d.message?`: ${d.message}`:"";c(new Error(`could not connect to ${Y(e)}${m}`))})});a.catch(()=>{});let I=!1,P=!1;function l(i,c){if(P||process.env.SOOTSIM_QUIET_TARGET_NOTICE==="1"||i.startsWith("bridge:")||i==="focus"||i==="close")return;P=!0;let d=c??"primary",m=be(c?t.simIdSource:"none");process.stderr.write(` \u2192 ${d} (${m})
7
7
  `)}return s.on("message",i=>{let c;try{c=JSON.parse(i.toString())}catch{return}if(c.id===0)return;let d=o.get(c.id);d&&(o.delete(c.id),c._otherCliCount>0&&!I&&(I=!0,process.stderr.write(`
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.372 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.373 | (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 r}from"./chunk-JPRHJMUJ.js";var i=[{title:"Overview",route:"/docs/rnx/cli"},...r.slice().sort((o,t)=>o.order-t.order).map(o=>({title:o.navTitle,route:`/docs/rnx/cli/${o.slug}`}))];
4
+ import{a as r}from"./chunk-VXZGJMFM.js";var i=[{title:"Overview",route:"/docs/rnx/cli"},...r.slice().sort((o,t)=>o.order-t.order).map(o=>({title:o.navTitle,route:`/docs/rnx/cli/${o.slug}`}))];