rnxsim 0.1.381 → 0.1.382
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 +19 -6
- package/cli/app-fonts.ts +1 -1
- package/cli/bin.ts +118 -26
- package/cli/bridge-diagnostics.ts +1 -1
- package/cli/bridge-flow-runner.ts +9 -9
- package/cli/browser-evals.ts +3 -3
- package/cli/cli-update.ts +261 -0
- package/cli/cloud-client.ts +407 -0
- package/cli/cloud-dispatch.ts +165 -0
- package/cli/cloud-session.ts +156 -0
- package/cli/command-contract.ts +2 -2
- package/cli/command-registry.ts +9 -0
- package/cli/commands/agent-wrapper.ts +4 -4
- package/cli/commands/agent.ts +3 -3
- package/cli/commands/box/checkout-plane.ts +16 -8
- package/cli/commands/box/rnx-command.ts +2 -2
- package/cli/commands/box/search-command.ts +2 -2
- package/cli/commands/box.ts +123 -70
- package/cli/commands/config.ts +3 -2
- package/cli/commands/control.ts +6 -6
- package/cli/commands/cpu-profile.ts +2 -2
- package/cli/commands/daemon.ts +7 -7
- package/cli/commands/debug.ts +2 -2
- package/cli/commands/detox.ts +7 -7
- package/cli/commands/diagnose.ts +1 -1
- package/cli/commands/electron.ts +1 -1
- package/cli/commands/film.ts +1 -1
- package/cli/commands/flow.ts +4 -4
- package/cli/commands/inspect/core.ts +58 -7
- package/cli/commands/inspect/env.ts +5 -3
- package/cli/commands/inspect/shared.ts +2 -1
- package/cli/commands/inspect/wait-event.ts +1 -1
- package/cli/commands/inspect/wait-ready.ts +15 -5
- package/cli/commands/inspect.ts +31 -9
- package/cli/commands/install-desktop.ts +2 -2
- package/cli/commands/maestro.ts +3 -3
- package/cli/commands/permissions.ts +1 -1
- package/cli/commands/platform.ts +91 -0
- package/cli/commands/record.ts +3 -3
- package/cli/commands/report-issue.ts +1 -1
- package/cli/commands/runtime.ts +1 -1
- package/cli/commands/screenshot-mode.ts +1 -1
- package/cli/commands/screenshot.ts +25 -0
- package/cli/commands/serve.ts +1 -1
- package/cli/commands/skills.ts +1 -1
- package/cli/commands/timeline.ts +1 -1
- package/cli/commands/upgrade.ts +8 -34
- package/cli/commands/upload.ts +3 -3
- package/cli/commands/version.ts +14 -3
- package/cli/commands/what-happened.ts +2 -2
- package/cli/current-sim.ts +43 -30
- package/cli/desktop-companion.ts +1 -1
- package/cli/drivers/electron.ts +1 -1
- package/cli/drivers/playwright.ts +3 -3
- package/cli/drivers/types.ts +4 -4
- package/cli/flow-file.ts +3 -3
- package/cli/help-core.ts +18 -11
- package/cli/hidden-runtime-alias.ts +1 -1
- package/cli/hints.ts +2 -2
- package/cli/maestro-js.ts +2 -2
- package/cli/outbound-endpoints.ts +40 -6
- package/cli/parse-args.ts +1 -1
- package/cli/registry.ts +1 -1
- package/cli/resolve-assets.ts +2 -2
- package/cli/secure-file.ts +31 -0
- package/cli/shell-init.ts +98 -0
- package/cli/ws-bridge.ts +18 -8
- package/detox/expectations.ts +1 -1
- package/detox/gestures.ts +3 -3
- package/detox/index.ts +3 -3
- package/dist-lib/agent-daemon-client.cjs +1 -1
- package/dist-lib/agent-events.cjs +1 -1
- package/dist-lib/agent-identity.cjs +1 -1
- package/dist-lib/agent-sessions.cjs +1 -1
- 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-input.cjs +15 -8
- package/dist-lib/bridge-contract-input.mjs +15 -8
- package/dist-lib/bridge-contract.cjs +1 -1
- package/dist-lib/bridge-contract.mjs +1 -1
- package/dist-lib/capture-contract.cjs +107 -0
- package/dist-lib/capture-contract.mjs +80 -0
- package/dist-lib/cli-constants.cjs +1 -1
- package/dist-lib/cloud-contract.cjs +32 -0
- package/dist-lib/cloud-contract.mjs +7 -0
- package/dist-lib/config.cjs +1 -1
- package/dist-lib/detox/index.cjs +4 -4
- package/dist-lib/dev-bundle-resolution.cjs +1 -1
- package/dist-lib/home-paths.cjs +9 -1
- package/dist-lib/host/bridge-host.cjs +15 -10
- 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/replacement-module-handler.cjs +1 -1
- package/dist-lib/host/websocket-proxy.cjs +1 -1
- package/dist-lib/index.cjs +248 -73
- package/dist-lib/jump-to-source-babel.cjs +1 -1
- package/dist-lib/menu.cjs +1 -1
- package/dist-lib/menu.mjs +1 -1
- package/dist-lib/metro-production-bundle.cjs +1 -1
- package/dist-lib/metro-production-bundle.mjs +1 -1
- package/dist-lib/metro.cjs +1 -1
- package/dist-lib/profiles.cjs +1 -1
- package/dist-lib/public-brand.cjs +1 -1
- package/dist-lib/react-native-host-modules.cjs +1 -1
- package/dist-lib/react-native-host-modules.mjs +1 -1
- package/dist-lib/render-mode.cjs +1 -1
- package/dist-lib/scripts/dev-server-scanner.cjs +1 -1
- package/dist-lib/sdk.cjs +44 -6
- package/dist-lib/sdk.mjs +44 -6
- package/dist-lib/skills.cjs +435 -155
- package/dist-lib/vite.cjs +1 -1
- package/package.json +20 -4
- package/scripts/dev-server-scanner.ts +3 -3
- package/skills/contrast/SKILL.md +1 -1
- package/skills/rnx-perf/SKILL.md +68 -52
- package/src/app-url.ts +2 -3
- package/src/bridge-contract-input.ts +17 -6
- package/src/bridge-contract.ts +25 -4
- package/src/capture-contract.ts +423 -0
- package/src/cloud-contract.ts +15 -0
- package/src/home-paths.ts +9 -3
- package/src/host/agent-host.ts +1 -1
- package/src/host/bridge-host.ts +13 -11
- package/src/host/plane-host.ts +2 -2
- package/src/index.ts +21 -0
- package/src/native-dev-bundle-url.ts +2 -2
- package/src/screenshots/orchestrate.ts +1 -1
- package/src/screenshots/org-deck.ts +1 -1
- package/src/settings-bundle.ts +1 -1
- package/src/sim-client.ts +4 -0
- package/src/vite-plugin-one.ts +2 -2
- package/src/vite-plugin.ts +1 -1
- package/cli/commands/box/cloud-box.ts +0 -294
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.382 | (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 __defProp = Object.defineProperty;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.382 | (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 __defProp = Object.defineProperty;
|
package/dist-lib/render-mode.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.382 | (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 __defProp = Object.defineProperty;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.382 | (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;
|
package/dist-lib/sdk.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.382 | (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 __defProp = Object.defineProperty;
|
|
@@ -1428,7 +1428,10 @@ async function inspectWaitSelector(bridge, testId, timeoutMs = 5e3, opts = {}) {
|
|
|
1428
1428
|
{
|
|
1429
1429
|
type: "waitFor",
|
|
1430
1430
|
waitForOptions: {
|
|
1431
|
-
condition: {
|
|
1431
|
+
condition: {
|
|
1432
|
+
type: gone ? "absent" : "present",
|
|
1433
|
+
selector: { testID: testId }
|
|
1434
|
+
},
|
|
1432
1435
|
timeoutMs
|
|
1433
1436
|
}
|
|
1434
1437
|
},
|
|
@@ -1544,6 +1547,39 @@ async function inspectScrollStateAt(bridge, x, y) {
|
|
|
1544
1547
|
};
|
|
1545
1548
|
}
|
|
1546
1549
|
async function inspectLogs(bridge) {
|
|
1550
|
+
if (bridge.plane === "cloud") {
|
|
1551
|
+
const state = await bridge.send({
|
|
1552
|
+
type: "state",
|
|
1553
|
+
stateOptions: {
|
|
1554
|
+
screenshot: false,
|
|
1555
|
+
tree: false,
|
|
1556
|
+
route: false,
|
|
1557
|
+
errors: false,
|
|
1558
|
+
logs: true,
|
|
1559
|
+
logLimit: 100
|
|
1560
|
+
}
|
|
1561
|
+
});
|
|
1562
|
+
const recentLogs = state && typeof state === "object" && Array.isArray(Reflect.get(state, "recentLogs")) ? Reflect.get(state, "recentLogs") : [];
|
|
1563
|
+
return recentLogs.flatMap((entry, index) => {
|
|
1564
|
+
if (!entry || typeof entry !== "object") return [];
|
|
1565
|
+
const text = Reflect.get(entry, "text");
|
|
1566
|
+
const rawLevel = Reflect.get(entry, "level");
|
|
1567
|
+
if (typeof text !== "string") return [];
|
|
1568
|
+
const level = rawLevel === "log" || rawLevel === "info" || rawLevel === "warn" || rawLevel === "error" || rawLevel === "debug" ? rawLevel : "error";
|
|
1569
|
+
const at = Reflect.get(entry, "at");
|
|
1570
|
+
const ts = typeof at === "number" && Number.isFinite(at) ? at : 0;
|
|
1571
|
+
return [
|
|
1572
|
+
{
|
|
1573
|
+
id: `cloud-${ts}-${index}`,
|
|
1574
|
+
source: "rnx-cloud",
|
|
1575
|
+
level,
|
|
1576
|
+
ts,
|
|
1577
|
+
args: [text],
|
|
1578
|
+
stack: null
|
|
1579
|
+
}
|
|
1580
|
+
];
|
|
1581
|
+
});
|
|
1582
|
+
}
|
|
1547
1583
|
const res = await bridge.send({
|
|
1548
1584
|
type: "evaluate",
|
|
1549
1585
|
code: `(() => {
|
|
@@ -1584,7 +1620,7 @@ function filterLogEntries(entries, opts = {}) {
|
|
|
1584
1620
|
if (!opts.showInternal) {
|
|
1585
1621
|
out = out.filter((e) => {
|
|
1586
1622
|
const first = e.args[0];
|
|
1587
|
-
return !(typeof first === "string" &&
|
|
1623
|
+
return !(typeof first === "string" && /^\[(?:rnx|sootsim)(?:\s[^\]]*)?\]/.test(first));
|
|
1588
1624
|
});
|
|
1589
1625
|
}
|
|
1590
1626
|
if (opts.level) out = out.filter((e) => opts.level.has(e.level));
|
|
@@ -1946,9 +1982,8 @@ function normalizeAppUrlTarget(target) {
|
|
|
1946
1982
|
async function openAppUrl(bridge, target) {
|
|
1947
1983
|
const normalized = normalizeAppUrlTarget(target);
|
|
1948
1984
|
const result = await bridge.send({
|
|
1949
|
-
type: "
|
|
1950
|
-
|
|
1951
|
-
args: [normalized]
|
|
1985
|
+
type: "openUrl",
|
|
1986
|
+
url: normalized
|
|
1952
1987
|
});
|
|
1953
1988
|
if (result !== null && typeof result === "object" && Reflect.get(result, "ok") === false) {
|
|
1954
1989
|
const error = Reflect.get(result, "error");
|
|
@@ -2121,6 +2156,9 @@ var SimClient = class {
|
|
|
2121
2156
|
openUrl(target) {
|
|
2122
2157
|
return openAppUrl(this, target);
|
|
2123
2158
|
}
|
|
2159
|
+
async setAppearance(appearance) {
|
|
2160
|
+
await this.send({ type: "setAppearance", appearance });
|
|
2161
|
+
}
|
|
2124
2162
|
/**
|
|
2125
2163
|
* block until the guest app has mounted and painted real content.
|
|
2126
2164
|
* throws SimReadyTimeoutError (with the last probe status) on timeout.
|
package/dist-lib/sdk.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.382 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
var __defProp = Object.defineProperty;
|
|
3
3
|
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
4
4
|
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
@@ -1333,7 +1333,10 @@ async function inspectWaitSelector(bridge, testId, timeoutMs = 5e3, opts = {}) {
|
|
|
1333
1333
|
{
|
|
1334
1334
|
type: "waitFor",
|
|
1335
1335
|
waitForOptions: {
|
|
1336
|
-
condition: {
|
|
1336
|
+
condition: {
|
|
1337
|
+
type: gone ? "absent" : "present",
|
|
1338
|
+
selector: { testID: testId }
|
|
1339
|
+
},
|
|
1337
1340
|
timeoutMs
|
|
1338
1341
|
}
|
|
1339
1342
|
},
|
|
@@ -1449,6 +1452,39 @@ async function inspectScrollStateAt(bridge, x, y) {
|
|
|
1449
1452
|
};
|
|
1450
1453
|
}
|
|
1451
1454
|
async function inspectLogs(bridge) {
|
|
1455
|
+
if (bridge.plane === "cloud") {
|
|
1456
|
+
const state = await bridge.send({
|
|
1457
|
+
type: "state",
|
|
1458
|
+
stateOptions: {
|
|
1459
|
+
screenshot: false,
|
|
1460
|
+
tree: false,
|
|
1461
|
+
route: false,
|
|
1462
|
+
errors: false,
|
|
1463
|
+
logs: true,
|
|
1464
|
+
logLimit: 100
|
|
1465
|
+
}
|
|
1466
|
+
});
|
|
1467
|
+
const recentLogs = state && typeof state === "object" && Array.isArray(Reflect.get(state, "recentLogs")) ? Reflect.get(state, "recentLogs") : [];
|
|
1468
|
+
return recentLogs.flatMap((entry, index) => {
|
|
1469
|
+
if (!entry || typeof entry !== "object") return [];
|
|
1470
|
+
const text = Reflect.get(entry, "text");
|
|
1471
|
+
const rawLevel = Reflect.get(entry, "level");
|
|
1472
|
+
if (typeof text !== "string") return [];
|
|
1473
|
+
const level = rawLevel === "log" || rawLevel === "info" || rawLevel === "warn" || rawLevel === "error" || rawLevel === "debug" ? rawLevel : "error";
|
|
1474
|
+
const at = Reflect.get(entry, "at");
|
|
1475
|
+
const ts = typeof at === "number" && Number.isFinite(at) ? at : 0;
|
|
1476
|
+
return [
|
|
1477
|
+
{
|
|
1478
|
+
id: `cloud-${ts}-${index}`,
|
|
1479
|
+
source: "rnx-cloud",
|
|
1480
|
+
level,
|
|
1481
|
+
ts,
|
|
1482
|
+
args: [text],
|
|
1483
|
+
stack: null
|
|
1484
|
+
}
|
|
1485
|
+
];
|
|
1486
|
+
});
|
|
1487
|
+
}
|
|
1452
1488
|
const res = await bridge.send({
|
|
1453
1489
|
type: "evaluate",
|
|
1454
1490
|
code: `(() => {
|
|
@@ -1489,7 +1525,7 @@ function filterLogEntries(entries, opts = {}) {
|
|
|
1489
1525
|
if (!opts.showInternal) {
|
|
1490
1526
|
out = out.filter((e) => {
|
|
1491
1527
|
const first = e.args[0];
|
|
1492
|
-
return !(typeof first === "string" &&
|
|
1528
|
+
return !(typeof first === "string" && /^\[(?:rnx|sootsim)(?:\s[^\]]*)?\]/.test(first));
|
|
1493
1529
|
});
|
|
1494
1530
|
}
|
|
1495
1531
|
if (opts.level) out = out.filter((e) => opts.level.has(e.level));
|
|
@@ -1851,9 +1887,8 @@ function normalizeAppUrlTarget(target) {
|
|
|
1851
1887
|
async function openAppUrl(bridge, target) {
|
|
1852
1888
|
const normalized = normalizeAppUrlTarget(target);
|
|
1853
1889
|
const result = await bridge.send({
|
|
1854
|
-
type: "
|
|
1855
|
-
|
|
1856
|
-
args: [normalized]
|
|
1890
|
+
type: "openUrl",
|
|
1891
|
+
url: normalized
|
|
1857
1892
|
});
|
|
1858
1893
|
if (result !== null && typeof result === "object" && Reflect.get(result, "ok") === false) {
|
|
1859
1894
|
const error = Reflect.get(result, "error");
|
|
@@ -2026,6 +2061,9 @@ var SimClient = class {
|
|
|
2026
2061
|
openUrl(target) {
|
|
2027
2062
|
return openAppUrl(this, target);
|
|
2028
2063
|
}
|
|
2064
|
+
async setAppearance(appearance) {
|
|
2065
|
+
await this.send({ type: "setAppearance", appearance });
|
|
2066
|
+
}
|
|
2029
2067
|
/**
|
|
2030
2068
|
* block until the guest app has mounted and painted real content.
|
|
2031
2069
|
* throws SimReadyTimeoutError (with the last probe status) on timeout.
|