rnxsim 0.1.335 → 0.1.337
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +104 -76
- package/cli/auth.ts +2 -2
- package/cli/bin.ts +7 -3
- package/cli/bridge-flow-runner.ts +2 -2
- package/cli/commands/agent-wrapper.ts +1 -1
- package/cli/commands/agent.ts +12 -12
- package/cli/commands/app-fonts.ts +1 -1
- package/cli/commands/assert.ts +7 -7
- package/cli/commands/auth.ts +4 -4
- package/cli/commands/camera.ts +13 -13
- package/cli/commands/cleanup.ts +6 -6
- package/cli/commands/compat.ts +4 -4
- package/cli/commands/config.ts +2 -2
- package/cli/commands/control.ts +37 -43
- package/cli/commands/cpu-profile.ts +2 -2
- package/cli/commands/daemon-mac-app.ts +2 -2
- package/cli/commands/daemon.ts +12 -12
- package/cli/commands/debug.ts +22 -22
- package/cli/commands/desktop.ts +3 -3
- package/cli/commands/detox.ts +17 -17
- package/cli/commands/device.ts +9 -9
- package/cli/commands/diagnose.ts +11 -11
- package/cli/commands/electron.ts +7 -7
- package/cli/commands/film.ts +6 -6
- package/cli/commands/inspect/core.ts +6 -7
- package/cli/commands/inspect/find.ts +2 -2
- package/cli/commands/inspect.ts +36 -36
- package/cli/commands/install-desktop.ts +8 -8
- package/cli/commands/login.ts +6 -6
- package/cli/commands/maestro-generate.ts +2 -2
- package/cli/commands/maestro.ts +23 -23
- package/cli/commands/mode.ts +4 -4
- package/cli/commands/no-bridge-hint.ts +9 -9
- package/cli/commands/perf.ts +11 -11
- package/cli/commands/permissions.ts +5 -5
- package/cli/commands/profile.ts +11 -11
- package/cli/commands/react.ts +15 -15
- package/cli/commands/record.ts +15 -15
- package/cli/commands/report-issue.ts +2 -2
- package/cli/commands/reset.ts +2 -2
- package/cli/commands/runtime.ts +18 -18
- package/cli/commands/screenshot-mode.ts +5 -5
- package/cli/commands/screenshot.ts +12 -12
- package/cli/commands/screenshots-capture.ts +7 -7
- package/cli/commands/screenshots.ts +6 -6
- package/cli/commands/serve.ts +6 -6
- package/cli/commands/setup.ts +13 -15
- package/cli/commands/skills.ts +14 -14
- package/cli/commands/slides.ts +19 -23
- package/cli/commands/state.ts +2 -2
- package/cli/commands/storage.ts +3 -3
- package/cli/commands/telemetry.ts +1 -1
- package/cli/commands/three-mode.ts +16 -16
- package/cli/commands/timeline.ts +4 -4
- package/cli/commands/upgrade.ts +1 -1
- package/cli/commands/upload.ts +11 -11
- package/cli/commands/version.ts +3 -5
- package/cli/commands/what-happened.ts +11 -11
- package/cli/drivers/electron.ts +3 -3
- package/cli/hints.ts +8 -8
- package/cli/recording-access.ts +1 -1
- package/cli/ws-bridge.ts +5 -5
- package/dist-cli/bin.js +5 -5
- package/dist-cli/chunks/{agent-XSJMAFVA.js → agent-QQ3RJNRY.js} +14 -14
- package/dist-cli/chunks/{agent-wrapper-NFLJ5K64.js → agent-wrapper-M6SQSMRY.js} +3 -3
- package/dist-cli/chunks/app-fonts-F6NDV3XC.js +4 -0
- package/dist-cli/chunks/{assert-ILAXIYB5.js → assert-5VB3KQNK.js} +12 -12
- package/dist-cli/chunks/auth-PFXODKFN.js +12 -0
- package/dist-cli/chunks/{beta-TDR6UKJU.js → beta-WUWYHT4F.js} +2 -2
- package/dist-cli/chunks/camera-V3MMTKP7.js +33 -0
- package/dist-cli/chunks/{chunk-INBPUR4T.js → chunk-2ANFH72P.js} +11 -11
- package/dist-cli/chunks/chunk-2GIA5T6B.js +74 -0
- package/dist-cli/chunks/{chunk-GP6QEBZA.js → chunk-4FRSEZ7Z.js} +1 -1
- package/dist-cli/chunks/{chunk-USGOQ3YJ.js → chunk-4GXBZHNA.js} +2 -2
- package/dist-cli/chunks/{chunk-R3CMECGC.js → chunk-4HESY5E7.js} +4 -4
- package/dist-cli/chunks/{chunk-WKT7YM5Q.js → chunk-4VJEXQGD.js} +1 -1
- package/dist-cli/chunks/{chunk-FE6ZHPKD.js → chunk-5LJNNHZH.js} +1 -1
- package/dist-cli/chunks/{chunk-I2HQB5NN.js → chunk-5QXGSTYI.js} +2 -2
- package/dist-cli/chunks/{chunk-FJSHIWAM.js → chunk-5SHAOQHJ.js} +2 -2
- package/dist-cli/chunks/{chunk-CGZWLSYD.js → chunk-5UPRBMIG.js} +1 -1
- package/dist-cli/chunks/{chunk-ZTM2MKNI.js → chunk-5ZEFRPCC.js} +1 -1
- package/dist-cli/chunks/{chunk-RTD3CPDQ.js → chunk-6ART4XVJ.js} +23 -23
- package/dist-cli/chunks/{chunk-MTD6IAEA.js → chunk-6CAUT2LH.js} +1 -1
- package/dist-cli/chunks/{chunk-ZYHCWCMM.js → chunk-7ATIH7OU.js} +1 -1
- package/dist-cli/chunks/{chunk-RVUGKXJD.js → chunk-7Q4QKHMA.js} +1 -1
- package/dist-cli/chunks/{chunk-MTNIDSOA.js → chunk-ABK2V2PR.js} +1 -1
- package/dist-cli/chunks/{chunk-TL4DNDDY.js → chunk-B53ILAHI.js} +2 -2
- package/dist-cli/chunks/{chunk-POC3QTA6.js → chunk-BSSVLFZR.js} +2 -2
- package/dist-cli/chunks/chunk-BVOBXTPN.js +30 -0
- package/dist-cli/chunks/{chunk-4KC35DMK.js → chunk-CPDEUWL5.js} +2 -2
- package/dist-cli/chunks/{chunk-HNQLZZJA.js → chunk-DINU267S.js} +2 -2
- package/dist-cli/chunks/{chunk-DCDKJ4NC.js → chunk-DQQ4CZVC.js} +2 -2
- package/dist-cli/chunks/{chunk-JWAY6DIH.js → chunk-EDWN2HOO.js} +18 -18
- package/dist-cli/chunks/{chunk-3CS4EUMG.js → chunk-EWVG4A3B.js} +2 -2
- package/dist-cli/chunks/{chunk-RTEJXUXN.js → chunk-F3NKCQHM.js} +6 -6
- package/dist-cli/chunks/{chunk-M7CBQ5I4.js → chunk-GEAGFYKP.js} +1 -1
- package/dist-cli/chunks/chunk-GGNH44PZ.js +5 -0
- package/dist-cli/chunks/{chunk-YSUIYK6B.js → chunk-HAHJJJUC.js} +2 -2
- package/dist-cli/chunks/chunk-HPJ5EKIZ.js +4 -0
- package/dist-cli/chunks/{chunk-IN2PZBQD.js → chunk-IBTHGFKE.js} +2 -2
- package/dist-cli/chunks/{chunk-ZZWO6Y7X.js → chunk-J6BYRRZQ.js} +2 -2
- package/dist-cli/chunks/{chunk-6Y3PVPTF.js → chunk-JK4OZ2TQ.js} +5 -5
- package/dist-cli/chunks/{chunk-PO3TOAED.js → chunk-KGQAO25M.js} +2 -2
- package/dist-cli/chunks/{chunk-J7XFINJG.js → chunk-L6UUIQE7.js} +2 -2
- package/dist-cli/chunks/{chunk-35XNGT5C.js → chunk-LXYLCETR.js} +1 -1
- package/dist-cli/chunks/{chunk-JWK5WD44.js → chunk-LZAL3DMP.js} +2 -2
- package/dist-cli/chunks/{chunk-3ZDOPKHE.js → chunk-M43UU7UG.js} +4 -4
- package/dist-cli/chunks/{chunk-ROPHZJ6P.js → chunk-M4LGUVBM.js} +2 -2
- package/dist-cli/chunks/{chunk-RELRA5VW.js → chunk-NCG6C5AH.js} +2 -2
- package/dist-cli/chunks/{chunk-42KDXJUD.js → chunk-NR5TSR2Y.js} +2 -2
- package/dist-cli/chunks/{chunk-R2UL5VFY.js → chunk-OCPWXT73.js} +3 -3
- package/dist-cli/chunks/{chunk-VV4MXLFR.js → chunk-ODKS6JUJ.js} +1 -1
- package/dist-cli/chunks/{chunk-F33DUJGG.js → chunk-R2WBREGQ.js} +1 -1
- package/dist-cli/chunks/chunk-RKY3ZNTA.js +5 -0
- package/dist-cli/chunks/{chunk-MGGRL2Z2.js → chunk-SW7BHOMO.js} +9 -9
- package/dist-cli/chunks/{chunk-GVKISFQ3.js → chunk-TJTLXG3R.js} +1 -1
- package/dist-cli/chunks/chunk-TNI4PW75.js +124 -0
- package/dist-cli/chunks/{chunk-CL3PREIE.js → chunk-UWEDNDND.js} +2 -2
- package/dist-cli/chunks/{chunk-IV36DY6M.js → chunk-WRID5SBV.js} +1 -1
- package/dist-cli/chunks/{chunk-42ALI64M.js → chunk-WUYI3XJ5.js} +2 -2
- package/dist-cli/chunks/{chunk-6VN5ULGQ.js → chunk-X7MHCEGG.js} +2 -2
- package/dist-cli/chunks/chunk-XIQFYLWD.js +15 -0
- package/dist-cli/chunks/{chunk-LCVUJCRJ.js → chunk-ZUK5ZQU7.js} +1 -1
- package/dist-cli/chunks/{cleanup-X6ZRPFDV.js → cleanup-6WBS3MUO.js} +10 -10
- package/dist-cli/chunks/cli-version-HUQCDGMA.js +4 -0
- package/dist-cli/chunks/{compat-VRXJ5J56.js → compat-2WOPKJYK.js} +9 -9
- package/dist-cli/chunks/{config-LHPPE4EP.js → config-FPD7WUYB.js} +5 -5
- package/dist-cli/chunks/{control-TVTNGSSF.js → control-B3XNER7I.js} +2 -2
- package/dist-cli/chunks/daemon-T4D4X2P5.js +4 -0
- package/dist-cli/chunks/{debug-EUHBBPGM.js → debug-LKV5CEAV.js} +17 -17
- package/dist-cli/chunks/desktop-EMDPOYQT.js +31 -0
- package/dist-cli/chunks/detox-4J4UTZE7.js +52 -0
- package/dist-cli/chunks/{device-PONITUZJ.js → device-PMZ7RPXQ.js} +11 -11
- package/dist-cli/chunks/{diagnose-2PN4K4L2.js → diagnose-MLEP727D.js} +12 -12
- package/dist-cli/chunks/{disk-cleanup-U2PQLOEW.js → disk-cleanup-CVEDIPEE.js} +2 -2
- package/dist-cli/chunks/drivers-NTUKJEL6.js +4 -0
- package/dist-cli/chunks/{film-XGZCFTQL.js → film-4RNECABF.js} +9 -9
- package/dist-cli/chunks/flow-5IOCAHVO.js +4 -0
- package/dist-cli/chunks/help-NUJUYEWP.js +4 -0
- package/dist-cli/chunks/{hidden-runtime-alias-I4MYF5CO.js → hidden-runtime-alias-YIF25W4F.js} +2 -2
- package/dist-cli/chunks/{home-paths-YRAPZ5LE.js → home-paths-WNJCCCCZ.js} +2 -2
- package/dist-cli/chunks/inspect-MFEIYUCN.js +4 -0
- package/dist-cli/chunks/install-desktop-NB65KI4D.js +4 -0
- package/dist-cli/chunks/{login-ZMAIAQ6F.js → login-VEHHGN42.js} +6 -6
- package/dist-cli/chunks/{logout-UQZ5JBJU.js → logout-VE7PNXL2.js} +2 -2
- package/dist-cli/chunks/{maestro-BQYKDUC4.js → maestro-ZXHTDEOI.js} +25 -25
- package/dist-cli/chunks/{maestro-generate-VQYMMQJ5.js → maestro-generate-TK33E2Z6.js} +3 -3
- package/dist-cli/chunks/mode-ZDKJ56NT.js +26 -0
- package/dist-cli/chunks/{optional-demo-registry-DUWHCLGD.js → optional-demo-registry-GBZ3WVDW.js} +2 -2
- package/dist-cli/chunks/{perf-7RAU7WRZ.js → perf-JXNZOUKW.js} +28 -28
- package/dist-cli/chunks/permissions-WQ62PW7Y.js +13 -0
- package/dist-cli/chunks/record-4S3ZMDIO.js +72 -0
- package/dist-cli/chunks/{report-issue-P376KFFU.js → report-issue-KKBADTWO.js} +4 -4
- package/dist-cli/chunks/reset-H5XIISJE.js +4 -0
- package/dist-cli/chunks/runtime-FK7EEMWA.js +4 -0
- package/dist-cli/chunks/{screenshot-command-NE7BKTQ2.js → screenshot-command-42U5MVQL.js} +34 -34
- package/dist-cli/chunks/{screenshot-layers-UE4R64PZ.js → screenshot-layers-4G42AHOX.js} +2 -2
- package/dist-cli/chunks/{screenshots-capture-ULXPLXMC.js → screenshots-capture-HMQ2OO3I.js} +11 -11
- package/dist-cli/chunks/{serve-P7BT4XHR.js → serve-S4V5EDW2.js} +16 -16
- package/dist-cli/chunks/setup-T43V7GA6.js +32 -0
- package/dist-cli/chunks/{skills-NTRYKJSF.js → skills-O426K26J.js} +16 -16
- package/dist-cli/chunks/{state-4D5YAM47.js → state-ZEEPDKJG.js} +5 -5
- package/dist-cli/chunks/storage-4GQLOFGG.js +37 -0
- package/dist-cli/chunks/store-RFMSNWLJ.js +4 -0
- package/dist-cli/chunks/telemetry-NFAAPSMN.js +4 -0
- package/dist-cli/chunks/{timeline-GZNFGD3Q.js → timeline-ONCYX7KW.js} +6 -6
- package/dist-cli/chunks/{upgrade-A46D6PEY.js → upgrade-A36T52AM.js} +2 -2
- package/dist-cli/chunks/upload-36O32DII.js +4 -0
- package/dist-cli/chunks/version-67HA253N.js +6 -0
- package/dist-cli/chunks/{web-H2IXO5SC.js → web-PWXQHQIE.js} +2 -2
- package/dist-cli/chunks/{what-happened-Z7UII5GH.js → what-happened-WNXE622R.js} +16 -16
- package/dist-lib/agent-daemon-client.cjs +5 -5
- package/dist-lib/agent-events.cjs +1 -1
- package/dist-lib/agent-identity.cjs +1 -1
- package/dist-lib/agent-sessions.cjs +4 -4
- package/dist-lib/attached-projects.cjs +1 -1
- package/dist-lib/auth/shared-session.cjs +1 -1
- package/dist-lib/backend-origin.cjs +1 -1
- package/dist-lib/beta.cjs +1 -1
- package/dist-lib/beta.mjs +1 -1
- package/dist-lib/bridge-constants.cjs +1 -1
- package/dist-lib/bridge-contract.cjs +1 -1
- package/dist-lib/cli-constants.cjs +1 -1
- package/dist-lib/config.cjs +1 -1
- package/dist-lib/detox/index.cjs +1 -1
- package/dist-lib/dev-bundle-resolution.cjs +1 -1
- package/dist-lib/home-paths.cjs +1 -1
- package/dist-lib/host/bridge-host.cjs +7 -7
- package/dist-lib/host/fetch-proxy-handler.cjs +1 -1
- package/dist-lib/host/fetch-proxy-overrides.cjs +1 -1
- package/dist-lib/host/fetch-proxy-overrides.mjs +1 -1
- package/dist-lib/host/websocket-proxy.cjs +1 -1
- package/dist-lib/index.cjs +248 -98
- package/dist-lib/jump-to-source-babel.cjs +1 -1
- package/dist-lib/menu.cjs +2 -2
- package/dist-lib/menu.mjs +2 -2
- package/dist-lib/metro-host-modules/react-dom.js +6 -0
- package/dist-lib/metro-host-modules/react-native-web.js +6 -0
- package/dist-lib/metro-host-modules/react-native.js +6 -0
- package/dist-lib/metro-host-modules/react.js +6 -0
- package/dist-lib/metro-host-modules/react__jsx-dev-runtime.js +6 -0
- package/dist-lib/metro-host-modules/react__jsx-runtime.js +6 -0
- package/dist-lib/metro-production-bundle.cjs +72 -0
- package/dist-lib/metro-production-bundle.mjs +44 -0
- package/dist-lib/metro.cjs +152 -8
- package/dist-lib/profiles.cjs +1 -1
- package/dist-lib/public-brand.cjs +2 -2
- package/dist-lib/react-native-host-modules.cjs +50 -0
- package/dist-lib/render-mode.cjs +1 -1
- package/dist-lib/scripts/dev-server-scanner.cjs +1 -1
- package/dist-lib/sdk.cjs +6 -7
- package/dist-lib/sdk.mjs +6 -7
- package/dist-lib/skills.cjs +71 -77
- package/dist-lib/vite.cjs +104 -85
- package/package.json +15 -2
- package/scripts/preuninstall.cjs +1 -1
- package/skills/contrast/SKILL.md +67 -75
- package/skills/rnx-debug/SKILL.md +84 -84
- package/skills/rnx-perf/SKILL.md +8 -8
- package/skills/rnx-setup/SKILL.md +54 -54
- package/skills/rnx-test/SKILL.md +35 -35
- package/skills/rnx-visual/SKILL.md +18 -18
- package/src/agent-daemon-client.ts +2 -2
- package/src/agent-sessions.ts +2 -2
- package/src/connect.ts +6 -6
- package/src/disk-cleanup.ts +1 -1
- package/src/home-paths.ts +1 -1
- package/src/host/bridge-host.ts +6 -6
- package/src/index.ts +1 -1
- package/src/metro-host-modules/react-dom.js +6 -0
- package/src/metro-host-modules/react-native-web.js +6 -0
- package/src/metro-host-modules/react-native.js +6 -0
- package/src/metro-host-modules/react.js +6 -0
- package/src/metro-host-modules/react__jsx-dev-runtime.js +6 -0
- package/src/metro-host-modules/react__jsx-runtime.js +6 -0
- package/src/metro-plugin.ts +249 -10
- package/src/metro-production-bundle.ts +51 -0
- package/src/public-brand.ts +1 -1
- package/src/react-native-host-modules.ts +25 -0
- package/src/runtime-assets.ts +1 -1
- package/src/sim-client.ts +1 -1
- package/src/vite-plugin-one.ts +171 -145
- package/dist-cli/chunks/app-fonts-L3UXFYVE.js +0 -4
- package/dist-cli/chunks/auth-ISX2EUQL.js +0 -12
- package/dist-cli/chunks/camera-4SWTNJUA.js +0 -33
- package/dist-cli/chunks/chunk-BRHZEZKN.js +0 -124
- package/dist-cli/chunks/chunk-EJPYPJWP.js +0 -5
- package/dist-cli/chunks/chunk-KWCD5MOK.js +0 -15
- package/dist-cli/chunks/chunk-MJ7QGY7Z.js +0 -4
- package/dist-cli/chunks/chunk-RSA4XWHN.js +0 -5
- package/dist-cli/chunks/chunk-S3EIOAWZ.js +0 -74
- package/dist-cli/chunks/chunk-TYANJQLO.js +0 -30
- package/dist-cli/chunks/cli-version-NZUSWKZR.js +0 -4
- package/dist-cli/chunks/daemon-XUEC47EC.js +0 -4
- package/dist-cli/chunks/desktop-LLHMP4A3.js +0 -31
- package/dist-cli/chunks/detox-QLNWLXA4.js +0 -52
- package/dist-cli/chunks/drivers-7IU37M2E.js +0 -4
- package/dist-cli/chunks/flow-NZZLR4BN.js +0 -4
- package/dist-cli/chunks/help-D7URIJRD.js +0 -4
- package/dist-cli/chunks/inspect-TJYWKY56.js +0 -4
- package/dist-cli/chunks/install-desktop-LD3W5RS7.js +0 -4
- package/dist-cli/chunks/mode-ZQ6H7KWM.js +0 -26
- package/dist-cli/chunks/permissions-DRZ3HCFL.js +0 -13
- package/dist-cli/chunks/record-J5JAYW4Y.js +0 -72
- package/dist-cli/chunks/reset-KXYRDEFU.js +0 -4
- package/dist-cli/chunks/runtime-66CEPOG6.js +0 -4
- package/dist-cli/chunks/setup-QO5KZAX3.js +0 -32
- package/dist-cli/chunks/storage-X2K2MDPX.js +0 -37
- package/dist-cli/chunks/store-TUJPIRTT.js +0 -4
- package/dist-cli/chunks/telemetry-CF5DVEKI.js +0 -4
- package/dist-cli/chunks/upload-UIQJIBEZ.js +0 -4
- package/dist-cli/chunks/version-CMBB3FXL.js +0 -6
package/dist-lib/skills.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.337 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
|
@@ -10322,7 +10322,7 @@ var init_public_brand = __esm({
|
|
|
10322
10322
|
rnxPublicBrand = Object.freeze({
|
|
10323
10323
|
name,
|
|
10324
10324
|
packageName: "rnxsim",
|
|
10325
|
-
commandName: "
|
|
10325
|
+
commandName: "rnx",
|
|
10326
10326
|
domain: "rnxsim.com",
|
|
10327
10327
|
origin: "https://rnxsim.com"
|
|
10328
10328
|
});
|
|
@@ -11662,7 +11662,7 @@ function resolveSootsimInvocation() {
|
|
|
11662
11662
|
}
|
|
11663
11663
|
if (!argv1 || argv1.includes("/.bin/")) {
|
|
11664
11664
|
throw new Error(
|
|
11665
|
-
"
|
|
11665
|
+
"rnx CLI not found. set SOOTSIM_BIN to the path of the rnx binary, or build the workspace CLI via `bun run --cwd packages/sootsim build:cli`."
|
|
11666
11666
|
);
|
|
11667
11667
|
}
|
|
11668
11668
|
return { cmd: argv0, prefixArgs: [] };
|
|
@@ -11828,7 +11828,7 @@ async function startSession(opts) {
|
|
|
11828
11828
|
if (existingLive) {
|
|
11829
11829
|
throw new AgentSessionError(
|
|
11830
11830
|
"ALREADY_RUNNING",
|
|
11831
|
-
`session already running for project=${project.id} provider=${provider} (session ${existingLive.id}, pid ${existingLive.wrapperPid}). end it first with \`
|
|
11831
|
+
`session already running for project=${project.id} provider=${provider} (session ${existingLive.id}, pid ${existingLive.wrapperPid}). end it first with \`rnx agent end <sessionId>\`.`
|
|
11832
11832
|
);
|
|
11833
11833
|
}
|
|
11834
11834
|
const claudeSessionUuid = provider === "claude" ? (0, import_node_crypto4.randomUUID)() : void 0;
|
|
@@ -13870,7 +13870,7 @@ var init_bridge_host = __esm({
|
|
|
13870
13870
|
ws.send(
|
|
13871
13871
|
JSON.stringify({
|
|
13872
13872
|
id: msg.id,
|
|
13873
|
-
error: `sim ${targetSim.id} is locked by another cli \u2014 use \`
|
|
13873
|
+
error: `sim ${targetSim.id} is locked by another cli \u2014 use \`rnx claim ${targetSim.id} --force\` or \`rnx open --new\``,
|
|
13874
13874
|
_locked: outcome.lock
|
|
13875
13875
|
})
|
|
13876
13876
|
);
|
|
@@ -14505,7 +14505,7 @@ var init_bridge_host = __esm({
|
|
|
14505
14505
|
if (!baseDir) {
|
|
14506
14506
|
res.writeHead(503, { "Content-Type": "text/plain; charset=utf-8" });
|
|
14507
14507
|
res.end(
|
|
14508
|
-
versionedRuntimeRequest ? `rnx: runtime ${requestedRuntime ?? "(invalid version origin)"} is not installed. run \`
|
|
14508
|
+
versionedRuntimeRequest ? `rnx: runtime ${requestedRuntime ?? "(invalid version origin)"} is not installed. run \`rnx open\` from that app again.` : "rnx: no active runtime installed. run `rnx runtime install` to fetch one."
|
|
14509
14509
|
);
|
|
14510
14510
|
return;
|
|
14511
14511
|
}
|
|
@@ -15078,7 +15078,7 @@ var init_bridge_host = __esm({
|
|
|
15078
15078
|
const candidates = this.getDefaultSimCandidates();
|
|
15079
15079
|
if (candidates.length > 1) {
|
|
15080
15080
|
throw new Error(
|
|
15081
|
-
`multiple sims are connected: ${candidates.map((sim) => sim.id).join(", ")}; run \`
|
|
15081
|
+
`multiple sims are connected: ${candidates.map((sim) => sim.id).join(", ")}; run \`rnx use <sim>\` or pass \`--sim <sim>\``
|
|
15082
15082
|
);
|
|
15083
15083
|
}
|
|
15084
15084
|
const candidate = candidates[0];
|
|
@@ -15776,7 +15776,7 @@ function printBridgeWorldNotice(bridgePort, shellBaseUrl) {
|
|
|
15776
15776
|
}
|
|
15777
15777
|
function describeSimIdSource(source) {
|
|
15778
15778
|
if (source === "flag") return "via --sim";
|
|
15779
|
-
if (source === "saved") return "saved via `
|
|
15779
|
+
if (source === "saved") return "saved via `rnx use`";
|
|
15780
15780
|
return "primary fallback \u2014 no sim pinned";
|
|
15781
15781
|
}
|
|
15782
15782
|
function parseBridgeCliArgs(args, opts = {}) {
|
|
@@ -15920,7 +15920,7 @@ function createBridge(wsPort, opts = {}) {
|
|
|
15920
15920
|
\u26A0 ${msg._otherCliCount} other CLI identity/identities are driving this sim
|
|
15921
15921
|
taps, scrolls, and keyboard input from multiple agents will collide on
|
|
15922
15922
|
the same screen state (this is not a bridge throughput limit).
|
|
15923
|
-
use \`
|
|
15923
|
+
use \`rnx open --new\` for an isolated sim per agent.
|
|
15924
15924
|
|
|
15925
15925
|
`
|
|
15926
15926
|
);
|
|
@@ -15984,7 +15984,7 @@ function createBridge(wsPort, opts = {}) {
|
|
|
15984
15984
|
if (opts.simIdSource !== "flag" && sentSimId && cmd.simId === void 0 && (message === missingSimMessage || message.startsWith(`${missingSimMessage};`))) {
|
|
15985
15985
|
clearCurrentSimId();
|
|
15986
15986
|
throw new Error(
|
|
15987
|
-
`saved sim ${sentSimId} is gone${message.slice(missingSimMessage.length)}; run \`
|
|
15987
|
+
`saved sim ${sentSimId} is gone${message.slice(missingSimMessage.length)}; run \`rnx list\` and \`rnx use <sim>\`, or open a fresh sim`
|
|
15988
15988
|
);
|
|
15989
15989
|
}
|
|
15990
15990
|
throw error;
|
|
@@ -16067,7 +16067,7 @@ async function checkSimHealth(bridge) {
|
|
|
16067
16067
|
\u26A0 target sim${health.simId ? ` ${health.simId}` : ""} is hidden (document.hidden = true)
|
|
16068
16068
|
` + (health.visibilityState ? ` visibility: ${health.visibilityState}
|
|
16069
16069
|
` : "") + " animations and rAF callbacks are throttled \u2014 coordinates may be wrong\n and launch/transition animations will not complete.\n" + (candidate ? ` another open sim looks usable: ${candidate}; target it with --sim.
|
|
16070
|
-
` : " run `
|
|
16070
|
+
` : " run `rnx list` to find the visible sim and target it with --sim.\n") + " page-level window.focus() cannot unhide a browser tab.\n\n"
|
|
16071
16071
|
);
|
|
16072
16072
|
return { hidden: true, warned: true, simId: health.simId };
|
|
16073
16073
|
}
|
|
@@ -17289,7 +17289,7 @@ var init_core = __esm({
|
|
|
17289
17289
|
const loadingSignal = (value) => {
|
|
17290
17290
|
const text = cleanText(value)
|
|
17291
17291
|
if (!text) return ''
|
|
17292
|
-
return /^(opening app\\b|looking for your app\\b|building bundle\\b|preparing
|
|
17292
|
+
return /^(opening app\\b|looking for your app\\b|building bundle\\b|preparing rnx runtime\\b|loading native bundle\\b|loading rnx stubs\\b|loading bundle loader\\b|loading native stubs\\b|loading compat bridge\\b|loading react-native shim\\b|loading react bridge\\b|loading reconciler\\b|loading replacement modules\\b|injecting rnx modules\\b|warming sqlite engine\\b|capturing root component\\b|reloading app\\b|loading(?:[.!\u2026]*)?$|connecting(?:[.!\u2026]*)?$)/i.test(text)
|
|
17293
17293
|
? text
|
|
17294
17294
|
: ''
|
|
17295
17295
|
}
|
|
@@ -17849,7 +17849,7 @@ function probe() {
|
|
|
17849
17849
|
if (!install) {
|
|
17850
17850
|
return {
|
|
17851
17851
|
available: false,
|
|
17852
|
-
reason: "
|
|
17852
|
+
reason: "rnx desktop app not installed (run `rnx desktop install`)"
|
|
17853
17853
|
};
|
|
17854
17854
|
}
|
|
17855
17855
|
return {
|
|
@@ -17863,7 +17863,7 @@ async function launch(opts) {
|
|
|
17863
17863
|
if (!install) {
|
|
17864
17864
|
return {
|
|
17865
17865
|
launched: false,
|
|
17866
|
-
message: "
|
|
17866
|
+
message: "rnx desktop app not installed"
|
|
17867
17867
|
};
|
|
17868
17868
|
}
|
|
17869
17869
|
try {
|
|
@@ -17897,7 +17897,7 @@ var init_electron = __esm({
|
|
|
17897
17897
|
electronDriver = {
|
|
17898
17898
|
id: "electron",
|
|
17899
17899
|
name: "electron",
|
|
17900
|
-
description: "
|
|
17900
|
+
description: "rnx desktop companion app (native window, menu bar)",
|
|
17901
17901
|
kind: "native",
|
|
17902
17902
|
availability: probe,
|
|
17903
17903
|
launch
|
|
@@ -18794,15 +18794,15 @@ async function runRuntime(args, opts = {}) {
|
|
|
18794
18794
|
}
|
|
18795
18795
|
function printHelp() {
|
|
18796
18796
|
console.log(`
|
|
18797
|
-
|
|
18797
|
+
rnx runtime \u2014 manage engine runtimes under ~/.sootsim/runtimes/
|
|
18798
18798
|
|
|
18799
18799
|
usage:
|
|
18800
|
-
|
|
18801
|
-
|
|
18802
|
-
|
|
18803
|
-
|
|
18804
|
-
|
|
18805
|
-
|
|
18800
|
+
rnx runtime install [version] install a version (default: channel latest)
|
|
18801
|
+
rnx runtime list show installed + available versions
|
|
18802
|
+
rnx runtime use <version> switch active runtime
|
|
18803
|
+
rnx runtime remove <version> delete an installed runtime
|
|
18804
|
+
rnx runtime which print active runtime version
|
|
18805
|
+
rnx runtime notes print repo or default engine release notes
|
|
18806
18806
|
|
|
18807
18807
|
flags:
|
|
18808
18808
|
--channel <name> channel to resolve 'latest' from (default: stable)
|
|
@@ -18813,11 +18813,11 @@ environment:
|
|
|
18813
18813
|
SOOTSIM_CDN_ORIGIN override the CDN base URL (default: ${DEFAULT_RUNTIME_CDN_ORIGIN})
|
|
18814
18814
|
|
|
18815
18815
|
examples:
|
|
18816
|
-
|
|
18817
|
-
|
|
18818
|
-
|
|
18819
|
-
|
|
18820
|
-
|
|
18816
|
+
rnx runtime install
|
|
18817
|
+
rnx runtime install 1.2.3
|
|
18818
|
+
rnx runtime install --channel beta
|
|
18819
|
+
rnx runtime use 1.2.3
|
|
18820
|
+
rnx runtime notes
|
|
18821
18821
|
`);
|
|
18822
18822
|
}
|
|
18823
18823
|
async function runtimeInstall(args, opts) {
|
|
@@ -18826,7 +18826,7 @@ async function runtimeInstall(args, opts) {
|
|
|
18826
18826
|
const force = flags.force === true;
|
|
18827
18827
|
const setActive = flags.setActive !== false;
|
|
18828
18828
|
ensureSootsimHome();
|
|
18829
|
-
console.log(`
|
|
18829
|
+
console.log(`rnx runtime install`);
|
|
18830
18830
|
console.log(` cdn: ${sootsimRuntime.resolveCdnOrigin()}`);
|
|
18831
18831
|
try {
|
|
18832
18832
|
const result = await sootsimRuntime.install({
|
|
@@ -18936,14 +18936,14 @@ async function runtimeList(_args) {
|
|
|
18936
18936
|
async function runtimeUse(args) {
|
|
18937
18937
|
const version = args[0];
|
|
18938
18938
|
if (!version) {
|
|
18939
|
-
console.error(` usage:
|
|
18939
|
+
console.error(` usage: rnx runtime use <version>`);
|
|
18940
18940
|
process.exit(1);
|
|
18941
18941
|
}
|
|
18942
18942
|
const installed2 = sootsimRuntime.listInstalled();
|
|
18943
18943
|
if (!installed2.includes(version)) {
|
|
18944
18944
|
console.error(` version ${version} is not installed`);
|
|
18945
18945
|
console.error(` installed: ${installed2.join(", ") || "(none)"}`);
|
|
18946
|
-
console.error(` run \`
|
|
18946
|
+
console.error(` run \`rnx runtime install ${version}\` first`);
|
|
18947
18947
|
process.exit(1);
|
|
18948
18948
|
}
|
|
18949
18949
|
await activateVersion(version);
|
|
@@ -18951,14 +18951,14 @@ async function runtimeUse(args) {
|
|
|
18951
18951
|
async function runtimeRemove(args) {
|
|
18952
18952
|
const version = args[0];
|
|
18953
18953
|
if (!version) {
|
|
18954
|
-
console.error(` usage:
|
|
18954
|
+
console.error(` usage: rnx runtime remove <version>`);
|
|
18955
18955
|
process.exit(1);
|
|
18956
18956
|
}
|
|
18957
18957
|
const active = readActiveRuntime();
|
|
18958
18958
|
if (active === version) {
|
|
18959
18959
|
console.error(` cannot remove active runtime ${version}`);
|
|
18960
18960
|
console.error(
|
|
18961
|
-
` switch with \`
|
|
18961
|
+
` switch with \`rnx runtime use <other>\` first, or install another version`
|
|
18962
18962
|
);
|
|
18963
18963
|
process.exit(1);
|
|
18964
18964
|
}
|
|
@@ -18984,7 +18984,7 @@ async function runtimeWhich() {
|
|
|
18984
18984
|
}
|
|
18985
18985
|
async function runtimeNotes(args) {
|
|
18986
18986
|
if (args.length > 0) {
|
|
18987
|
-
console.error(` usage:
|
|
18987
|
+
console.error(` usage: rnx runtime notes`);
|
|
18988
18988
|
process.exit(1);
|
|
18989
18989
|
}
|
|
18990
18990
|
const { config } = await resolveSootSimAppConfig();
|
|
@@ -19139,7 +19139,7 @@ async function ensureBridgeForOpen(preferredPort, explicitPort = false) {
|
|
|
19139
19139
|
}
|
|
19140
19140
|
if (lock && isDaemonLockfileFresh(lock)) {
|
|
19141
19141
|
throw new Error(
|
|
19142
|
-
`rnx bridge lockfile is fresh (port ${lock.bridgePort}) but the bridge is not reachable. run \`
|
|
19142
|
+
`rnx bridge lockfile is fresh (port ${lock.bridgePort}) but the bridge is not reachable. run \`rnx daemon restart\` or \`rnx daemon uninstall\`.`
|
|
19143
19143
|
);
|
|
19144
19144
|
}
|
|
19145
19145
|
await ensureRuntimeForOpen();
|
|
@@ -19350,18 +19350,18 @@ function parseOpenRuntimeConfig(args) {
|
|
|
19350
19350
|
if (args[i] === "--replace") {
|
|
19351
19351
|
const raw = args[i + 1];
|
|
19352
19352
|
if (!raw) {
|
|
19353
|
-
console.error("
|
|
19353
|
+
console.error(" rnx open: --replace expects <module>=<file>");
|
|
19354
19354
|
process.exit(1);
|
|
19355
19355
|
}
|
|
19356
19356
|
const eqIndex = raw.indexOf("=");
|
|
19357
19357
|
if (eqIndex <= 0 || eqIndex === raw.length - 1) {
|
|
19358
|
-
console.error("
|
|
19358
|
+
console.error(" rnx open: --replace expects <module>=<file>");
|
|
19359
19359
|
process.exit(1);
|
|
19360
19360
|
}
|
|
19361
19361
|
const moduleName = raw.slice(0, eqIndex).trim();
|
|
19362
19362
|
const filePath = normalizeReplacementPath(raw.slice(eqIndex + 1).trim());
|
|
19363
19363
|
if (!import_node_fs14.default.existsSync(filePath)) {
|
|
19364
|
-
console.error(`
|
|
19364
|
+
console.error(` rnx open: replacement file not found: ${filePath}`);
|
|
19365
19365
|
process.exit(1);
|
|
19366
19366
|
}
|
|
19367
19367
|
modules[moduleName] = { file: filePath };
|
|
@@ -19372,7 +19372,7 @@ function parseOpenRuntimeConfig(args) {
|
|
|
19372
19372
|
const raw = args[i + 1];
|
|
19373
19373
|
const eqIndex = raw ? raw.indexOf("=") : -1;
|
|
19374
19374
|
if (!raw || eqIndex <= 0 || eqIndex === raw.length - 1) {
|
|
19375
|
-
console.error("
|
|
19375
|
+
console.error(" rnx open: --remap expects <host:port>=<host:port>");
|
|
19376
19376
|
process.exit(1);
|
|
19377
19377
|
}
|
|
19378
19378
|
remap[raw.slice(0, eqIndex).trim()] = raw.slice(eqIndex + 1).trim();
|
|
@@ -19910,7 +19910,7 @@ async function maybeDescribeAfterOpen(wsPort, simId, args) {
|
|
|
19910
19910
|
console.log(
|
|
19911
19911
|
` app still loading: ${reason} (nodes: ${readyProbe.nodes}, targets: ${readyProbe.targets})`
|
|
19912
19912
|
);
|
|
19913
|
-
console.log(" before interacting, run:
|
|
19913
|
+
console.log(" before interacting, run: rnx wait ready --max-ms 120000");
|
|
19914
19914
|
}
|
|
19915
19915
|
}
|
|
19916
19916
|
const dumpOpts = { describe: true, verbose: false, filter: "" };
|
|
@@ -19982,15 +19982,15 @@ async function runLinkCommand(args, opts = {}) {
|
|
|
19982
19982
|
commandTimeoutMs: opts.timeoutMs
|
|
19983
19983
|
});
|
|
19984
19984
|
if (parsed.positional.length !== 1) {
|
|
19985
|
-
console.error("
|
|
19986
|
-
console.error(" examples:
|
|
19985
|
+
console.error(" rnx open: expected exactly one <url-or-route>");
|
|
19986
|
+
console.error(" examples: rnx open /settings | rnx open myapp://settings");
|
|
19987
19987
|
process.exit(1);
|
|
19988
19988
|
}
|
|
19989
19989
|
let target;
|
|
19990
19990
|
try {
|
|
19991
19991
|
target = normalizeDeepLinkTarget(parsed.positional[0] ?? "");
|
|
19992
19992
|
} catch (err) {
|
|
19993
|
-
console.error(`
|
|
19993
|
+
console.error(` rnx open: ${err instanceof Error ? err.message : String(err)}`);
|
|
19994
19994
|
process.exit(1);
|
|
19995
19995
|
}
|
|
19996
19996
|
const bridge = createBridgeFromParsed(parsed);
|
|
@@ -20010,9 +20010,9 @@ async function runLinkCommand(args, opts = {}) {
|
|
|
20010
20010
|
} catch (err) {
|
|
20011
20011
|
console.error(` link failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
20012
20012
|
await printBridgeFailureDiagnostics(bridge, {
|
|
20013
|
-
errorsCommand: `
|
|
20014
|
-
warningsCommand: `
|
|
20015
|
-
requestsCommand: `
|
|
20013
|
+
errorsCommand: `rnx get errors 5${simHint}`,
|
|
20014
|
+
warningsCommand: `rnx get warnings 5${simHint}`,
|
|
20015
|
+
requestsCommand: `rnx get requests 5${simHint}`
|
|
20016
20016
|
});
|
|
20017
20017
|
process.exit(1);
|
|
20018
20018
|
} finally {
|
|
@@ -20048,12 +20048,12 @@ async function runOpenCommand(args, opts = {}) {
|
|
|
20048
20048
|
const cdpPort = cdpPortArg ? Number(cdpPortArg) : void 0;
|
|
20049
20049
|
if (cdpPortArg && (!Number.isFinite(cdpPort) || cdpPort <= 0)) {
|
|
20050
20050
|
console.error(
|
|
20051
|
-
`
|
|
20051
|
+
` rnx open: --cdp-port must be a positive port number, got "${cdpPortArg}"`
|
|
20052
20052
|
);
|
|
20053
20053
|
process.exit(1);
|
|
20054
20054
|
}
|
|
20055
20055
|
if (requestedProfileId && ephemeralProfile) {
|
|
20056
|
-
console.error("
|
|
20056
|
+
console.error(" rnx open: --profile cannot be combined with --ephemeral");
|
|
20057
20057
|
process.exit(1);
|
|
20058
20058
|
}
|
|
20059
20059
|
const profileId = requestedProfileId ? ensureProfile(requestedProfileId).id : void 0;
|
|
@@ -20061,7 +20061,7 @@ async function runOpenCommand(args, opts = {}) {
|
|
|
20061
20061
|
const commandConfig = parseOpenRuntimeConfig(args);
|
|
20062
20062
|
if (openInNewSim && parsed.simIdSource === "flag") {
|
|
20063
20063
|
console.error(
|
|
20064
|
-
"
|
|
20064
|
+
" rnx open: --new, --profile, and --ephemeral cannot be combined with --sim"
|
|
20065
20065
|
);
|
|
20066
20066
|
process.exit(1);
|
|
20067
20067
|
}
|
|
@@ -20069,7 +20069,7 @@ async function runOpenCommand(args, opts = {}) {
|
|
|
20069
20069
|
if (shouldOpenAsDeepLink(target)) {
|
|
20070
20070
|
if (openInNewSim) {
|
|
20071
20071
|
console.error(
|
|
20072
|
-
"
|
|
20072
|
+
" rnx open: deep links target the current app; remove --new, --profile, or --ephemeral"
|
|
20073
20073
|
);
|
|
20074
20074
|
process.exit(1);
|
|
20075
20075
|
}
|
|
@@ -20085,7 +20085,7 @@ async function runOpenCommand(args, opts = {}) {
|
|
|
20085
20085
|
}
|
|
20086
20086
|
})();
|
|
20087
20087
|
console.log(
|
|
20088
|
-
" that\u2019s an
|
|
20088
|
+
" that\u2019s an rnx preview/build link \u2014 a full player page, not a driveable sim."
|
|
20089
20089
|
);
|
|
20090
20090
|
console.log(" opening it in your browser for viewing\u2026");
|
|
20091
20091
|
try {
|
|
@@ -20098,7 +20098,7 @@ async function runOpenCommand(args, opts = {}) {
|
|
|
20098
20098
|
process.exit(1);
|
|
20099
20099
|
}
|
|
20100
20100
|
console.log(
|
|
20101
|
-
isLocal ? " to drive it under the CLI, point `
|
|
20101
|
+
isLocal ? " to drive it under the CLI, point `rnx open` at the app\u2019s dev port instead (e.g. `rnx open 8081`)." : " the CLI can\u2019t drive a remote preview (the engine only attaches to the local bridge from localhost). to drive the app, run it locally and `rnx open <port>`."
|
|
20102
20102
|
);
|
|
20103
20103
|
return;
|
|
20104
20104
|
}
|
|
@@ -20124,27 +20124,25 @@ async function runOpenCommand(args, opts = {}) {
|
|
|
20124
20124
|
parsed.wsPort = await ensureBridgeForOpen(parsed.wsPort, parsed.explicitPort);
|
|
20125
20125
|
const requestedDriverId = args.find((_, i) => args[i - 1] === "--driver") || "";
|
|
20126
20126
|
if (requestedDriverId && !isDriverId(requestedDriverId)) {
|
|
20127
|
-
console.error(
|
|
20128
|
-
` unknown driver "${requestedDriverId}" \u2014 run \`rnxsim list --drivers\``
|
|
20129
|
-
);
|
|
20127
|
+
console.error(` unknown driver "${requestedDriverId}" \u2014 run \`rnx list --drivers\``);
|
|
20130
20128
|
process.exit(1);
|
|
20131
20129
|
}
|
|
20132
20130
|
const driverId = isDriverId(requestedDriverId) ? requestedDriverId : "playwright";
|
|
20133
20131
|
const driverHeadless = resolveDriverHeadless(args, driverId);
|
|
20134
20132
|
if (cdpPort && driverId !== "playwright") {
|
|
20135
|
-
console.error("
|
|
20133
|
+
console.error(" rnx open: --cdp-port is only honored by the playwright driver");
|
|
20136
20134
|
process.exit(1);
|
|
20137
20135
|
}
|
|
20138
20136
|
const hotFlag = args.includes("--hot");
|
|
20139
20137
|
const noHmrFlag = args.includes("--no-hmr");
|
|
20140
20138
|
if (hotFlag && noHmrFlag) {
|
|
20141
|
-
console.error("
|
|
20139
|
+
console.error(" rnx open: --hot and --no-hmr cannot be combined");
|
|
20142
20140
|
process.exit(1);
|
|
20143
20141
|
}
|
|
20144
20142
|
const hotMode = hotFlag ? true : noHmrFlag ? false : requestedDriverId !== "playwright";
|
|
20145
20143
|
const deviceArg = args.find((_, i) => args[i - 1] === "--device");
|
|
20146
20144
|
if (deviceArg && !(deviceArg in import_settings.devices)) {
|
|
20147
|
-
console.error(`
|
|
20145
|
+
console.error(` rnx open: unknown device "${deviceArg}"`);
|
|
20148
20146
|
console.error(` known devices: ${(0, import_settings.listSelectableDeviceModels)().join(", ")}`);
|
|
20149
20147
|
process.exit(1);
|
|
20150
20148
|
}
|
|
@@ -20152,9 +20150,7 @@ async function runOpenCommand(args, opts = {}) {
|
|
|
20152
20150
|
const viewportArg = args.find((_, i) => args[i - 1] === "--viewport");
|
|
20153
20151
|
const viewportMatch = viewportArg ? /^(\d+)x(\d+)$/.exec(viewportArg) : null;
|
|
20154
20152
|
if (viewportArg && !viewportMatch) {
|
|
20155
|
-
console.error(
|
|
20156
|
-
` rnxsim open: --viewport must be <width>x<height>, got "${viewportArg}"`
|
|
20157
|
-
);
|
|
20153
|
+
console.error(` rnx open: --viewport must be <width>x<height>, got "${viewportArg}"`);
|
|
20158
20154
|
process.exit(1);
|
|
20159
20155
|
}
|
|
20160
20156
|
const explicitViewport = viewportMatch ? { width: Number(viewportMatch[1]), height: Number(viewportMatch[2]) } : void 0;
|
|
@@ -20244,9 +20240,9 @@ async function runOpenCommand(args, opts = {}) {
|
|
|
20244
20240
|
` open failed: ${err instanceof Error ? err.message : String(err)}`
|
|
20245
20241
|
);
|
|
20246
20242
|
await printBridgeFailureDiagnostics(bridge, {
|
|
20247
|
-
errorsCommand: `
|
|
20248
|
-
warningsCommand: `
|
|
20249
|
-
requestsCommand: `
|
|
20243
|
+
errorsCommand: `rnx get errors 5${simHint}`,
|
|
20244
|
+
warningsCommand: `rnx get warnings 5${simHint}`,
|
|
20245
|
+
requestsCommand: `rnx get requests 5${simHint}`
|
|
20250
20246
|
});
|
|
20251
20247
|
process.exit(1);
|
|
20252
20248
|
}
|
|
@@ -20290,7 +20286,7 @@ async function runOpenCommand(args, opts = {}) {
|
|
|
20290
20286
|
const simMatchesToken = (sim) => sim.url?.includes(`inspectOpen=${token}`) ?? false;
|
|
20291
20287
|
const driver = getDriver(driverId);
|
|
20292
20288
|
if (!driver) {
|
|
20293
|
-
console.error(` unknown driver "${driverId}" \u2014 run \`
|
|
20289
|
+
console.error(` unknown driver "${driverId}" \u2014 run \`rnx list --drivers\``);
|
|
20294
20290
|
process.exit(1);
|
|
20295
20291
|
}
|
|
20296
20292
|
const connectWait = resolveDriverConnectWaitOptions();
|
|
@@ -20364,7 +20360,7 @@ async function runUseLikeCommand(args, opts = {}) {
|
|
|
20364
20360
|
console.error(
|
|
20365
20361
|
` refused: ${target.id} is locked by the active user (${secs}s) \u2014 that's a live human tab`
|
|
20366
20362
|
);
|
|
20367
|
-
console.error(` run \`
|
|
20363
|
+
console.error(` run \`rnx open --new\` for a fresh investigation sim`);
|
|
20368
20364
|
process.exit(1);
|
|
20369
20365
|
}
|
|
20370
20366
|
if (!force) {
|
|
@@ -20372,7 +20368,7 @@ async function runUseLikeCommand(args, opts = {}) {
|
|
|
20372
20368
|
` refused: ${target.id} is leased by ${target.lockedBy} (${secs}s)`
|
|
20373
20369
|
);
|
|
20374
20370
|
console.error(
|
|
20375
|
-
` \`sootsim use ${target.id} --force\` to take it, or \`
|
|
20371
|
+
` \`sootsim use ${target.id} --force\` to take it, or \`rnx open --new\` for a fresh sim`
|
|
20376
20372
|
);
|
|
20377
20373
|
process.exit(1);
|
|
20378
20374
|
}
|
|
@@ -20383,9 +20379,9 @@ async function runUseLikeCommand(args, opts = {}) {
|
|
|
20383
20379
|
} catch (err) {
|
|
20384
20380
|
console.error(` use failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
20385
20381
|
await printBridgeFailureDiagnostics(bridge, {
|
|
20386
|
-
errorsCommand: `
|
|
20387
|
-
warningsCommand: `
|
|
20388
|
-
requestsCommand: `
|
|
20382
|
+
errorsCommand: `rnx get errors 5${simHint}`,
|
|
20383
|
+
warningsCommand: `rnx get warnings 5${simHint}`,
|
|
20384
|
+
requestsCommand: `rnx get requests 5${simHint}`
|
|
20389
20385
|
});
|
|
20390
20386
|
process.exit(1);
|
|
20391
20387
|
}
|
|
@@ -20424,9 +20420,7 @@ async function runClaimCommand(args, opts = {}) {
|
|
|
20424
20420
|
if (err instanceof BridgeSimLockedError) {
|
|
20425
20421
|
const secs = Math.max(0, Math.round(err.lock.expiresInMs / 1e3));
|
|
20426
20422
|
console.error(` claim failed: locked by ${err.lock.by} for ${secs}s more`);
|
|
20427
|
-
console.error(
|
|
20428
|
-
` use --force to take it, or \`rnxsim open --new\` for a fresh sim`
|
|
20429
|
-
);
|
|
20423
|
+
console.error(` use --force to take it, or \`rnx open --new\` for a fresh sim`);
|
|
20430
20424
|
process.exit(1);
|
|
20431
20425
|
}
|
|
20432
20426
|
console.error(` claim failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
@@ -20598,9 +20592,9 @@ async function runCloseCommand(args, opts = {}) {
|
|
|
20598
20592
|
} catch (err) {
|
|
20599
20593
|
console.error(` close failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
20600
20594
|
await printBridgeFailureDiagnostics(bridge, {
|
|
20601
|
-
errorsCommand: `
|
|
20602
|
-
warningsCommand: `
|
|
20603
|
-
requestsCommand: `
|
|
20595
|
+
errorsCommand: `rnx get errors 5${simHint}`,
|
|
20596
|
+
warningsCommand: `rnx get warnings 5${simHint}`,
|
|
20597
|
+
requestsCommand: `rnx get requests 5${simHint}`
|
|
20604
20598
|
});
|
|
20605
20599
|
process.exit(1);
|
|
20606
20600
|
}
|
|
@@ -21623,7 +21617,7 @@ async function ensureCliRecordingEntitlement(commandLabel, opts = {}) {
|
|
|
21623
21617
|
rnx ${commandLabel} needs auth before it can check recording access.
|
|
21624
21618
|
|
|
21625
21619
|
pick one:
|
|
21626
|
-
\u2022 run \`
|
|
21620
|
+
\u2022 run \`rnx login\`
|
|
21627
21621
|
\u2022 set RNX_API_KEY=sk_rnx_... (recommended for CI)
|
|
21628
21622
|
|
|
21629
21623
|
`
|
|
@@ -21964,7 +21958,7 @@ var init_bridge_flow_runner = __esm({
|
|
|
21964
21958
|
consecutiveBridgeFailures++;
|
|
21965
21959
|
if (consecutiveBridgeFailures >= 4) {
|
|
21966
21960
|
throw new Error(
|
|
21967
|
-
`target sim is not responding to the bridge (${lastError.message}). it is likely a stale orphan \u2014 run \`
|
|
21961
|
+
`target sim is not responding to the bridge (${lastError.message}). it is likely a stale orphan \u2014 run \`rnx list\`, then close it with \`rnx close <id>\` or start a fresh one with \`rnx open --new <port>\`.`
|
|
21968
21962
|
);
|
|
21969
21963
|
}
|
|
21970
21964
|
await this.refreshSimId();
|