rnxsim 0.1.497 → 0.1.499
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/cli/bridge-flow-runner.ts +12 -26
- package/cli/commands/agent-wrapper.ts +5 -1
- package/cli/ws-bridge.ts +44 -26
- 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 +1 -1
- package/dist-lib/bridge-contract-input.mjs +1 -1
- package/dist-lib/bridge-contract.cjs +1 -1
- package/dist-lib/bridge-contract.mjs +1 -1
- package/dist-lib/capture-contract.cjs +1 -1
- package/dist-lib/capture-contract.mjs +1 -1
- package/dist-lib/cli-constants.cjs +1 -1
- package/dist-lib/cloud-contract.cjs +1 -1
- package/dist-lib/cloud-contract.mjs +1 -1
- package/dist-lib/cloud.cjs +1 -1
- package/dist-lib/cloud.mjs +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 +1 -1
- 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 +33 -19
- package/dist-lib/jump-to-source-babel.cjs +1 -1
- package/dist-lib/jump-to-source-native.cjs +1 -1
- package/dist-lib/menu.cjs +1 -1
- package/dist-lib/menu.mjs +1 -1
- package/dist-lib/metro-fingerprint-registry.cjs +1 -1
- package/dist-lib/metro-fingerprint-registry.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 +1 -1
- package/dist-lib/sdk.mjs +1 -1
- package/dist-lib/skills.cjs +45 -45
- package/dist-lib/vite.cjs +1 -1
- package/package.json +1 -1
|
@@ -750,25 +750,9 @@ export class SootSimBridgeFlowRunner {
|
|
|
750
750
|
if (!test) return null
|
|
751
751
|
let node = null
|
|
752
752
|
if (${JSON.stringify(!!opts.text)}) {
|
|
753
|
-
|
|
754
|
-
//
|
|
755
|
-
|
|
756
|
-
// "Pin to Home" / "Mute accounts" pin/menu controls) carry the label on
|
|
757
|
-
// accessibilityLabel with no visible text node, so findByText misses
|
|
758
|
-
// them. fall back to an exact a11y-label match, mirroring the real
|
|
759
|
-
// driver. findByLabel resolves a node, but its info shape omits nodeId/
|
|
760
|
-
// isTextInput; re-resolve through findByTestId/findById when it exposes
|
|
761
|
-
// an id so tapOn still gets a resolveTapTarget-able nodeId.
|
|
762
|
-
if (!node) {
|
|
763
|
-
const labelled = await test.findByLabel?.(${JSON.stringify(opts.text || '')})
|
|
764
|
-
if (labelled) {
|
|
765
|
-
const reId = labelled.testID || labelled.id
|
|
766
|
-
node =
|
|
767
|
-
(reId &&
|
|
768
|
-
((await test.findByTestId?.(reId)) || (await test.findById?.(reId)))) ||
|
|
769
|
-
labelled
|
|
770
|
-
}
|
|
771
|
-
}
|
|
753
|
+
// maestro text selectors match rendered text and exact accessibility
|
|
754
|
+
// labels. the engine resolves both in one visibility-aware tree pass.
|
|
755
|
+
node = await test.findByTextOrLabel(${JSON.stringify(opts.text || '')})
|
|
772
756
|
}
|
|
773
757
|
if (!node && ${JSON.stringify(!!opts.id)}) {
|
|
774
758
|
node = (await test.findByTestId(${JSON.stringify(opts.id || '')})) || (await test.findById(${JSON.stringify(opts.id || '')}))
|
|
@@ -1356,13 +1340,15 @@ export class SootSimBridgeFlowRunner {
|
|
|
1356
1340
|
}
|
|
1357
1341
|
|
|
1358
1342
|
async eraseText(count: number) {
|
|
1359
|
-
|
|
1360
|
-
|
|
1361
|
-
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
|
|
1365
|
-
|
|
1343
|
+
const steps = Array.from({ length: Math.max(0, Math.ceil(count)) }, () => ({
|
|
1344
|
+
type: 'key' as const,
|
|
1345
|
+
key: 'Backspace',
|
|
1346
|
+
}))
|
|
1347
|
+
if (steps.length > 0) {
|
|
1348
|
+
const result = await this.perform(steps)
|
|
1349
|
+
if (!result?.ok) {
|
|
1350
|
+
throw new Error(`eraseText failed: ${result?.error ?? 'backspace missed'}`)
|
|
1351
|
+
}
|
|
1366
1352
|
}
|
|
1367
1353
|
await sleep(100)
|
|
1368
1354
|
}
|
|
@@ -43,8 +43,9 @@ import type { AgentEvent } from '../../src/agent-events'
|
|
|
43
43
|
const CODEX_APPROVAL_POLICY = 'never'
|
|
44
44
|
const CODEX_THREAD_SANDBOX = 'danger-full-access'
|
|
45
45
|
const CODEX_TURN_SANDBOX_POLICY = { type: 'dangerFullAccess' } as const
|
|
46
|
+
const CODEX_MODEL = 'gpt-5.6-luna'
|
|
46
47
|
const CODEX_SERVICE_TIER = 'fast' as const
|
|
47
|
-
const CODEX_REASONING_EFFORT = '
|
|
48
|
+
const CODEX_REASONING_EFFORT = 'low' as const
|
|
48
49
|
const CODEX_READY_TIMEOUT_MS = 5_000
|
|
49
50
|
const CODEX_THREAD_SETUP_TIMEOUT_MS = 10_000
|
|
50
51
|
|
|
@@ -500,6 +501,7 @@ async function resolveCodexThread(
|
|
|
500
501
|
persistExtendedHistory: false,
|
|
501
502
|
approvalPolicy: CODEX_APPROVAL_POLICY,
|
|
502
503
|
sandbox: CODEX_THREAD_SANDBOX,
|
|
504
|
+
model: CODEX_MODEL,
|
|
503
505
|
serviceTier: CODEX_SERVICE_TIER,
|
|
504
506
|
})
|
|
505
507
|
return existing
|
|
@@ -520,6 +522,7 @@ async function resolveCodexThread(
|
|
|
520
522
|
persistExtendedHistory: false,
|
|
521
523
|
approvalPolicy: CODEX_APPROVAL_POLICY,
|
|
522
524
|
sandbox: CODEX_THREAD_SANDBOX,
|
|
525
|
+
model: CODEX_MODEL,
|
|
523
526
|
serviceTier: CODEX_SERVICE_TIER,
|
|
524
527
|
})) as { threadId?: string; thread?: { id?: string } } | undefined
|
|
525
528
|
const threadId = extractCodexThreadId(started)
|
|
@@ -742,6 +745,7 @@ function buildCodexTurnRunner(deps: CodexTurnDeps): TurnRunner {
|
|
|
742
745
|
input: [{ type: 'text', text, text_elements: [] }],
|
|
743
746
|
approvalPolicy: CODEX_APPROVAL_POLICY,
|
|
744
747
|
sandboxPolicy: CODEX_TURN_SANDBOX_POLICY,
|
|
748
|
+
model: CODEX_MODEL,
|
|
745
749
|
serviceTier: CODEX_SERVICE_TIER,
|
|
746
750
|
effort: CODEX_REASONING_EFFORT,
|
|
747
751
|
})) as { turn?: { id?: string } } | undefined
|
package/cli/ws-bridge.ts
CHANGED
|
@@ -616,23 +616,26 @@ export function createBridge(wsPort: number, opts: WsBridgeOptions = {}): WsBrid
|
|
|
616
616
|
|
|
617
617
|
let warnedAboutContention = false
|
|
618
618
|
let noticedTarget = false
|
|
619
|
-
// the browser host behind
|
|
620
|
-
//
|
|
621
|
-
|
|
622
|
-
|
|
619
|
+
// the browser host behind each target, learned while that sim is still
|
|
620
|
+
// connected. a reload changes the sim id but not the host.
|
|
621
|
+
const hostPidBySimId = new Map<string, number>()
|
|
622
|
+
const lineageLookupBySimId = new Map<string, Promise<void>>()
|
|
623
623
|
|
|
624
624
|
// a reload retires the sim id but keeps the browser host, so a successor
|
|
625
625
|
// sharing that host pid IS the same page lineage rather than a guess. only
|
|
626
626
|
// an unambiguous match counts; callers fail closed on null.
|
|
627
627
|
function pickReloadedSuccessor(sims: unknown, retiredSimId: string): string | null {
|
|
628
|
-
|
|
628
|
+
const pinnedHostPid = hostPidBySimId.get(retiredSimId)
|
|
629
|
+
if (pinnedHostPid === undefined) return null
|
|
629
630
|
const successors = (Array.isArray(sims) ? (sims as BridgeSimInfo[]) : []).filter(
|
|
630
631
|
(sim) =>
|
|
631
632
|
sim.id !== retiredSimId &&
|
|
632
633
|
sim.readyState === 'open' &&
|
|
633
634
|
sim.meta?.sootsimHostPid === pinnedHostPid,
|
|
634
635
|
)
|
|
635
|
-
|
|
636
|
+
if (successors.length !== 1) return null
|
|
637
|
+
hostPidBySimId.set(successors[0].id, pinnedHostPid)
|
|
638
|
+
return successors[0].id
|
|
636
639
|
}
|
|
637
640
|
|
|
638
641
|
// print a one-line notice on first sim-scoped command so agents/users see
|
|
@@ -736,7 +739,7 @@ export function createBridge(wsPort: number, opts: WsBridgeOptions = {}): WsBrid
|
|
|
736
739
|
if (payload.simId === undefined && defaultSimId) {
|
|
737
740
|
payload.simId = defaultSimId
|
|
738
741
|
}
|
|
739
|
-
maybeNoticeTarget(
|
|
742
|
+
maybeNoticeTarget(payload.type ?? '', payload.simId)
|
|
740
743
|
ws.send(JSON.stringify(payload))
|
|
741
744
|
})
|
|
742
745
|
}
|
|
@@ -750,27 +753,42 @@ export function createBridge(wsPort: number, opts: WsBridgeOptions = {}): WsBrid
|
|
|
750
753
|
// fail-closed saved-sim-gone path below when the pin file is cleared.
|
|
751
754
|
const sentSimId =
|
|
752
755
|
opts.simIdSource === 'flag' ? opts.simId : (readCurrentSimId() ?? opts.simId)
|
|
756
|
+
const targetedSimId =
|
|
757
|
+
typeof cmd.simId === 'string' && cmd.simId ? cmd.simId : sentSimId
|
|
753
758
|
try {
|
|
754
|
-
|
|
755
|
-
// the
|
|
756
|
-
// so
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
759
|
+
// a command can itself reload the page and retire its sim id. capture
|
|
760
|
+
// the browser-host lineage before dispatch, while the target still
|
|
761
|
+
// exists, so the caller can follow the replacement without guessing.
|
|
762
|
+
if (
|
|
763
|
+
targetedSimId &&
|
|
764
|
+
cmd.type !== 'bridge:list-sims' &&
|
|
765
|
+
!hostPidBySimId.has(targetedSimId)
|
|
766
|
+
) {
|
|
767
|
+
let lookup = lineageLookupBySimId.get(targetedSimId)
|
|
768
|
+
if (!lookup) {
|
|
769
|
+
lookup = (async () => {
|
|
770
|
+
try {
|
|
771
|
+
const sims = await sendOnce(undefined, { type: 'bridge:list-sims' })
|
|
772
|
+
if (!Array.isArray(sims)) return
|
|
773
|
+
const targeted = (sims as BridgeSimInfo[]).find(
|
|
774
|
+
(sim) => sim.id === targetedSimId,
|
|
775
|
+
)
|
|
776
|
+
const hostPid = targeted?.meta?.sootsimHostPid
|
|
777
|
+
if (typeof hostPid === 'number') {
|
|
778
|
+
hostPidBySimId.set(targetedSimId, hostPid)
|
|
779
|
+
}
|
|
780
|
+
} catch {
|
|
781
|
+
// lineage enables fail-closed reload following, but a failed
|
|
782
|
+
// observation must not replace the caller's command failure.
|
|
783
|
+
} finally {
|
|
784
|
+
lineageLookupBySimId.delete(targetedSimId)
|
|
785
|
+
}
|
|
786
|
+
})()
|
|
787
|
+
lineageLookupBySimId.set(targetedSimId, lookup)
|
|
788
|
+
}
|
|
789
|
+
await lookup
|
|
772
790
|
}
|
|
773
|
-
return
|
|
791
|
+
return await sendOnce(sentSimId)
|
|
774
792
|
} catch (error) {
|
|
775
793
|
const message = error instanceof Error ? error.message : String(error)
|
|
776
794
|
const missingSimMessage = `no sim connected with id ${sentSimId}`
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.499 | (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;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.499 | (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.499 | (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.499 | (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;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.499 | (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;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.499 | (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;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.499 | (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/beta.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.499 | (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/beta.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.499 | (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.499 | (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.499 | (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.499 | (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.499 | (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.499 | (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/cloud.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.499 | (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/cloud.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.499 | (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);
|
package/dist-lib/config.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.499 | (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/detox/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.499 | (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;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.499 | (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/home-paths.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.499 | (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;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.499 | (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;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.499 | (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;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.499 | (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.499 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
|
|
3
3
|
// src/host/fetch-proxy-overrides.ts
|
|
4
4
|
var FETCH_PROXY_BROWSER_USER_AGENT = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.499 | (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;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.499 | (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/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.499 | (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;
|
|
@@ -1063,14 +1063,17 @@ function createBridge(wsPort, opts = {}) {
|
|
|
1063
1063
|
});
|
|
1064
1064
|
let warnedAboutContention = false;
|
|
1065
1065
|
let noticedTarget = false;
|
|
1066
|
-
|
|
1067
|
-
|
|
1066
|
+
const hostPidBySimId = /* @__PURE__ */ new Map();
|
|
1067
|
+
const lineageLookupBySimId = /* @__PURE__ */ new Map();
|
|
1068
1068
|
function pickReloadedSuccessor(sims, retiredSimId) {
|
|
1069
|
-
|
|
1069
|
+
const pinnedHostPid = hostPidBySimId.get(retiredSimId);
|
|
1070
|
+
if (pinnedHostPid === void 0) return null;
|
|
1070
1071
|
const successors = (Array.isArray(sims) ? sims : []).filter(
|
|
1071
1072
|
(sim) => sim.id !== retiredSimId && sim.readyState === "open" && sim.meta?.sootsimHostPid === pinnedHostPid
|
|
1072
1073
|
);
|
|
1073
|
-
|
|
1074
|
+
if (successors.length !== 1) return null;
|
|
1075
|
+
hostPidBySimId.set(successors[0].id, pinnedHostPid);
|
|
1076
|
+
return successors[0].id;
|
|
1074
1077
|
}
|
|
1075
1078
|
function maybeNoticeTarget(cmdType, simId) {
|
|
1076
1079
|
if (noticedTarget) return;
|
|
@@ -1153,26 +1156,37 @@ function createBridge(wsPort, opts = {}) {
|
|
|
1153
1156
|
if (payload.simId === void 0 && defaultSimId) {
|
|
1154
1157
|
payload.simId = defaultSimId;
|
|
1155
1158
|
}
|
|
1156
|
-
maybeNoticeTarget(
|
|
1159
|
+
maybeNoticeTarget(payload.type ?? "", payload.simId);
|
|
1157
1160
|
ws.send(JSON.stringify(payload));
|
|
1158
1161
|
});
|
|
1159
1162
|
};
|
|
1160
1163
|
const sentSimId = opts.simIdSource === "flag" ? opts.simId : readCurrentSimId() ?? opts.simId;
|
|
1164
|
+
const targetedSimId = typeof cmd.simId === "string" && cmd.simId ? cmd.simId : sentSimId;
|
|
1161
1165
|
try {
|
|
1162
|
-
|
|
1163
|
-
|
|
1164
|
-
|
|
1165
|
-
|
|
1166
|
-
|
|
1167
|
-
|
|
1168
|
-
|
|
1169
|
-
|
|
1170
|
-
|
|
1171
|
-
|
|
1172
|
-
|
|
1173
|
-
|
|
1166
|
+
if (targetedSimId && cmd.type !== "bridge:list-sims" && !hostPidBySimId.has(targetedSimId)) {
|
|
1167
|
+
let lookup = lineageLookupBySimId.get(targetedSimId);
|
|
1168
|
+
if (!lookup) {
|
|
1169
|
+
lookup = (async () => {
|
|
1170
|
+
try {
|
|
1171
|
+
const sims = await sendOnce(void 0, { type: "bridge:list-sims" });
|
|
1172
|
+
if (!Array.isArray(sims)) return;
|
|
1173
|
+
const targeted = sims.find(
|
|
1174
|
+
(sim) => sim.id === targetedSimId
|
|
1175
|
+
);
|
|
1176
|
+
const hostPid = targeted?.meta?.sootsimHostPid;
|
|
1177
|
+
if (typeof hostPid === "number") {
|
|
1178
|
+
hostPidBySimId.set(targetedSimId, hostPid);
|
|
1179
|
+
}
|
|
1180
|
+
} catch {
|
|
1181
|
+
} finally {
|
|
1182
|
+
lineageLookupBySimId.delete(targetedSimId);
|
|
1183
|
+
}
|
|
1184
|
+
})();
|
|
1185
|
+
lineageLookupBySimId.set(targetedSimId, lookup);
|
|
1186
|
+
}
|
|
1187
|
+
await lookup;
|
|
1174
1188
|
}
|
|
1175
|
-
return
|
|
1189
|
+
return await sendOnce(sentSimId);
|
|
1176
1190
|
} catch (error) {
|
|
1177
1191
|
const message = error instanceof Error ? error.message : String(error);
|
|
1178
1192
|
const missingSimMessage = `no sim connected with id ${sentSimId}`;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.499 | (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.499 | (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/menu.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.499 | (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/menu.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.499 | (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.499 | (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/metro.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.499 | (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/profiles.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.499 | (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;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.499 | (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.499 | (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.499 | (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.499 | (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.499 | (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/sdk.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.499 | (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);
|
package/dist-lib/skills.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.499 | (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;
|
|
@@ -31101,14 +31101,17 @@ function createBridge(wsPort, opts = {}) {
|
|
|
31101
31101
|
});
|
|
31102
31102
|
let warnedAboutContention = false;
|
|
31103
31103
|
let noticedTarget = false;
|
|
31104
|
-
|
|
31105
|
-
|
|
31104
|
+
const hostPidBySimId = /* @__PURE__ */ new Map();
|
|
31105
|
+
const lineageLookupBySimId = /* @__PURE__ */ new Map();
|
|
31106
31106
|
function pickReloadedSuccessor(sims, retiredSimId) {
|
|
31107
|
-
|
|
31107
|
+
const pinnedHostPid = hostPidBySimId.get(retiredSimId);
|
|
31108
|
+
if (pinnedHostPid === void 0) return null;
|
|
31108
31109
|
const successors = (Array.isArray(sims) ? sims : []).filter(
|
|
31109
31110
|
(sim) => sim.id !== retiredSimId && sim.readyState === "open" && sim.meta?.sootsimHostPid === pinnedHostPid
|
|
31110
31111
|
);
|
|
31111
|
-
|
|
31112
|
+
if (successors.length !== 1) return null;
|
|
31113
|
+
hostPidBySimId.set(successors[0].id, pinnedHostPid);
|
|
31114
|
+
return successors[0].id;
|
|
31112
31115
|
}
|
|
31113
31116
|
function maybeNoticeTarget(cmdType, simId) {
|
|
31114
31117
|
if (noticedTarget) return;
|
|
@@ -31191,26 +31194,37 @@ function createBridge(wsPort, opts = {}) {
|
|
|
31191
31194
|
if (payload.simId === void 0 && defaultSimId) {
|
|
31192
31195
|
payload.simId = defaultSimId;
|
|
31193
31196
|
}
|
|
31194
|
-
maybeNoticeTarget(
|
|
31197
|
+
maybeNoticeTarget(payload.type ?? "", payload.simId);
|
|
31195
31198
|
ws.send(JSON.stringify(payload));
|
|
31196
31199
|
});
|
|
31197
31200
|
};
|
|
31198
31201
|
const sentSimId = opts.simIdSource === "flag" ? opts.simId : readCurrentSimId() ?? opts.simId;
|
|
31202
|
+
const targetedSimId = typeof cmd.simId === "string" && cmd.simId ? cmd.simId : sentSimId;
|
|
31199
31203
|
try {
|
|
31200
|
-
|
|
31201
|
-
|
|
31202
|
-
|
|
31203
|
-
|
|
31204
|
-
|
|
31205
|
-
|
|
31206
|
-
|
|
31207
|
-
|
|
31208
|
-
|
|
31209
|
-
|
|
31210
|
-
|
|
31211
|
-
|
|
31204
|
+
if (targetedSimId && cmd.type !== "bridge:list-sims" && !hostPidBySimId.has(targetedSimId)) {
|
|
31205
|
+
let lookup = lineageLookupBySimId.get(targetedSimId);
|
|
31206
|
+
if (!lookup) {
|
|
31207
|
+
lookup = (async () => {
|
|
31208
|
+
try {
|
|
31209
|
+
const sims = await sendOnce(void 0, { type: "bridge:list-sims" });
|
|
31210
|
+
if (!Array.isArray(sims)) return;
|
|
31211
|
+
const targeted = sims.find(
|
|
31212
|
+
(sim) => sim.id === targetedSimId
|
|
31213
|
+
);
|
|
31214
|
+
const hostPid = targeted?.meta?.sootsimHostPid;
|
|
31215
|
+
if (typeof hostPid === "number") {
|
|
31216
|
+
hostPidBySimId.set(targetedSimId, hostPid);
|
|
31217
|
+
}
|
|
31218
|
+
} catch {
|
|
31219
|
+
} finally {
|
|
31220
|
+
lineageLookupBySimId.delete(targetedSimId);
|
|
31221
|
+
}
|
|
31222
|
+
})();
|
|
31223
|
+
lineageLookupBySimId.set(targetedSimId, lookup);
|
|
31224
|
+
}
|
|
31225
|
+
await lookup;
|
|
31212
31226
|
}
|
|
31213
|
-
return
|
|
31227
|
+
return await sendOnce(sentSimId);
|
|
31214
31228
|
} catch (error) {
|
|
31215
31229
|
const message = error instanceof Error ? error.message : String(error);
|
|
31216
31230
|
const missingSimMessage = `no sim connected with id ${sentSimId}`;
|
|
@@ -36739,25 +36753,9 @@ var init_bridge_flow_runner = __esm({
|
|
|
36739
36753
|
if (!test) return null
|
|
36740
36754
|
let node = null
|
|
36741
36755
|
if (${JSON.stringify(!!opts.text)}) {
|
|
36742
|
-
|
|
36743
|
-
//
|
|
36744
|
-
|
|
36745
|
-
// "Pin to Home" / "Mute accounts" pin/menu controls) carry the label on
|
|
36746
|
-
// accessibilityLabel with no visible text node, so findByText misses
|
|
36747
|
-
// them. fall back to an exact a11y-label match, mirroring the real
|
|
36748
|
-
// driver. findByLabel resolves a node, but its info shape omits nodeId/
|
|
36749
|
-
// isTextInput; re-resolve through findByTestId/findById when it exposes
|
|
36750
|
-
// an id so tapOn still gets a resolveTapTarget-able nodeId.
|
|
36751
|
-
if (!node) {
|
|
36752
|
-
const labelled = await test.findByLabel?.(${JSON.stringify(opts.text || "")})
|
|
36753
|
-
if (labelled) {
|
|
36754
|
-
const reId = labelled.testID || labelled.id
|
|
36755
|
-
node =
|
|
36756
|
-
(reId &&
|
|
36757
|
-
((await test.findByTestId?.(reId)) || (await test.findById?.(reId)))) ||
|
|
36758
|
-
labelled
|
|
36759
|
-
}
|
|
36760
|
-
}
|
|
36756
|
+
// maestro text selectors match rendered text and exact accessibility
|
|
36757
|
+
// labels. the engine resolves both in one visibility-aware tree pass.
|
|
36758
|
+
node = await test.findByTextOrLabel(${JSON.stringify(opts.text || "")})
|
|
36761
36759
|
}
|
|
36762
36760
|
if (!node && ${JSON.stringify(!!opts.id)}) {
|
|
36763
36761
|
node = (await test.findByTestId(${JSON.stringify(opts.id || "")})) || (await test.findById(${JSON.stringify(opts.id || "")}))
|
|
@@ -37195,13 +37193,15 @@ var init_bridge_flow_runner = __esm({
|
|
|
37195
37193
|
}
|
|
37196
37194
|
}
|
|
37197
37195
|
async eraseText(count) {
|
|
37198
|
-
|
|
37199
|
-
|
|
37200
|
-
|
|
37201
|
-
|
|
37202
|
-
|
|
37203
|
-
|
|
37204
|
-
|
|
37196
|
+
const steps = Array.from({ length: Math.max(0, Math.ceil(count)) }, () => ({
|
|
37197
|
+
type: "key",
|
|
37198
|
+
key: "Backspace"
|
|
37199
|
+
}));
|
|
37200
|
+
if (steps.length > 0) {
|
|
37201
|
+
const result = await this.perform(steps);
|
|
37202
|
+
if (!result?.ok) {
|
|
37203
|
+
throw new Error(`eraseText failed: ${result?.error ?? "backspace missed"}`);
|
|
37204
|
+
}
|
|
37205
37205
|
}
|
|
37206
37206
|
await sleep3(100);
|
|
37207
37207
|
}
|
package/dist-lib/vite.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.499 | (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;
|