rnxsim 0.1.498 → 0.1.500
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 +18 -28
- package/cli/commands/agent-wrapper.ts +5 -1
- package/cli/commands/inspect/core.ts +2 -0
- package/cli/ws-bridge.ts +18 -19
- 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 +14 -11
- 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 +2 -1
- package/dist-lib/sdk.mjs +2 -1
- package/dist-lib/skills.cjs +32 -39
- package/dist-lib/vite.cjs +1 -1
- package/package.json +1 -1
|
@@ -483,7 +483,9 @@ export class SootSimBridgeFlowRunner {
|
|
|
483
483
|
}
|
|
484
484
|
|
|
485
485
|
async waitForTree(timeout: number = DEFAULT_TIMEOUT) {
|
|
486
|
-
let status = await inspectWaitReady(this.bridge, scaledTimeout(timeout)
|
|
486
|
+
let status = await inspectWaitReady(this.bridge, scaledTimeout(timeout), {
|
|
487
|
+
simId: this.opts.simId,
|
|
488
|
+
})
|
|
487
489
|
if (status.ready) return
|
|
488
490
|
if (status.externalError) {
|
|
489
491
|
throw new Error(`app failed to load: ${status.externalError}`)
|
|
@@ -512,7 +514,9 @@ export class SootSimBridgeFlowRunner {
|
|
|
512
514
|
)
|
|
513
515
|
this.opts.simId = successor
|
|
514
516
|
saveCurrentSimId(successor)
|
|
515
|
-
status = await inspectWaitReady(this.bridge, scaledTimeout(timeout)
|
|
517
|
+
status = await inspectWaitReady(this.bridge, scaledTimeout(timeout), {
|
|
518
|
+
simId: this.opts.simId,
|
|
519
|
+
})
|
|
516
520
|
if (status.ready) return
|
|
517
521
|
}
|
|
518
522
|
}
|
|
@@ -750,25 +754,9 @@ export class SootSimBridgeFlowRunner {
|
|
|
750
754
|
if (!test) return null
|
|
751
755
|
let node = null
|
|
752
756
|
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
|
-
}
|
|
757
|
+
// maestro text selectors match rendered text and exact accessibility
|
|
758
|
+
// labels. the engine resolves both in one visibility-aware tree pass.
|
|
759
|
+
node = await test.findByTextOrLabel(${JSON.stringify(opts.text || '')})
|
|
772
760
|
}
|
|
773
761
|
if (!node && ${JSON.stringify(!!opts.id)}) {
|
|
774
762
|
node = (await test.findByTestId(${JSON.stringify(opts.id || '')})) || (await test.findById(${JSON.stringify(opts.id || '')}))
|
|
@@ -1356,13 +1344,15 @@ export class SootSimBridgeFlowRunner {
|
|
|
1356
1344
|
}
|
|
1357
1345
|
|
|
1358
1346
|
async eraseText(count: number) {
|
|
1359
|
-
|
|
1360
|
-
|
|
1361
|
-
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
|
|
1365
|
-
|
|
1347
|
+
const steps = Array.from({ length: Math.max(0, Math.ceil(count)) }, () => ({
|
|
1348
|
+
type: 'key' as const,
|
|
1349
|
+
key: 'Backspace',
|
|
1350
|
+
}))
|
|
1351
|
+
if (steps.length > 0) {
|
|
1352
|
+
const result = await this.perform(steps)
|
|
1353
|
+
if (!result?.ok) {
|
|
1354
|
+
throw new Error(`eraseText failed: ${result?.error ?? 'backspace missed'}`)
|
|
1355
|
+
}
|
|
1366
1356
|
}
|
|
1367
1357
|
await sleep(100)
|
|
1368
1358
|
}
|
|
@@ -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
|
|
@@ -1025,6 +1025,7 @@ export interface WaitReadyStatus {
|
|
|
1025
1025
|
export interface WaitReadyOptions {
|
|
1026
1026
|
progressIntervalMs?: number
|
|
1027
1027
|
onProgress?: (status: WaitReadyStatus) => void
|
|
1028
|
+
simId?: string
|
|
1028
1029
|
}
|
|
1029
1030
|
|
|
1030
1031
|
export function waitReadyReason(
|
|
@@ -1091,6 +1092,7 @@ export async function inspectWaitReady(
|
|
|
1091
1092
|
result = await bridge.send(
|
|
1092
1093
|
{
|
|
1093
1094
|
type: 'waitFor',
|
|
1095
|
+
...(options.simId ? { simId: options.simId } : {}),
|
|
1094
1096
|
waitForOptions: { condition: { type: 'ready' }, timeoutMs },
|
|
1095
1097
|
},
|
|
1096
1098
|
{ timeoutMs: timeoutMs + 1_000 },
|
package/cli/ws-bridge.ts
CHANGED
|
@@ -324,9 +324,9 @@ export interface WsBridge {
|
|
|
324
324
|
opts?: { timeoutMs?: number },
|
|
325
325
|
): Promise<any>
|
|
326
326
|
listSims(): Promise<BridgeSimInfo[]>
|
|
327
|
-
// a guest reload retires the
|
|
328
|
-
//
|
|
329
|
-
// nothing proves what replaced it.
|
|
327
|
+
// a guest reload retires the socket and the same page reconnects under a new
|
|
328
|
+
// or restored id. a caller that pins an id resolves that target here; null
|
|
329
|
+
// means nothing proves what replaced it.
|
|
330
330
|
resolveReloadedSim(retiredSimId: string): Promise<string | null>
|
|
331
331
|
focusSim(simId?: string): Promise<any>
|
|
332
332
|
closeSim(simId?: string): Promise<any>
|
|
@@ -621,21 +621,20 @@ export function createBridge(wsPort: number, opts: WsBridgeOptions = {}): WsBrid
|
|
|
621
621
|
const hostPidBySimId = new Map<string, number>()
|
|
622
622
|
const lineageLookupBySimId = new Map<string, Promise<void>>()
|
|
623
623
|
|
|
624
|
-
// a reload retires the
|
|
625
|
-
//
|
|
626
|
-
//
|
|
627
|
-
function
|
|
624
|
+
// a reload retires the socket but keeps the browser host. the replacement
|
|
625
|
+
// can receive a new sim id or restore the prior one from session storage.
|
|
626
|
+
// the restored id is definitive; a new id must be the only same-host match.
|
|
627
|
+
function pickReloadedTarget(sims: unknown, retiredSimId: string): string | null {
|
|
628
628
|
const pinnedHostPid = hostPidBySimId.get(retiredSimId)
|
|
629
629
|
if (pinnedHostPid === undefined) return null
|
|
630
|
-
const
|
|
631
|
-
(sim) =>
|
|
632
|
-
sim.id !== retiredSimId &&
|
|
633
|
-
sim.readyState === 'open' &&
|
|
634
|
-
sim.meta?.sootsimHostPid === pinnedHostPid,
|
|
630
|
+
const matches = (Array.isArray(sims) ? (sims as BridgeSimInfo[]) : []).filter(
|
|
631
|
+
(sim) => sim.readyState === 'open' && sim.meta?.sootsimHostPid === pinnedHostPid,
|
|
635
632
|
)
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
return
|
|
633
|
+
const restored = matches.find((sim) => sim.id === retiredSimId)
|
|
634
|
+
if (restored) return restored.id
|
|
635
|
+
if (matches.length !== 1) return null
|
|
636
|
+
hostPidBySimId.set(matches[0].id, pinnedHostPid)
|
|
637
|
+
return matches[0].id
|
|
639
638
|
}
|
|
640
639
|
|
|
641
640
|
// print a one-line notice on first sim-scoped command so agents/users see
|
|
@@ -801,7 +800,7 @@ export function createBridge(wsPort: number, opts: WsBridgeOptions = {}): WsBrid
|
|
|
801
800
|
// a reload retires the sim id but keeps the browser host, so the
|
|
802
801
|
// successor with the same host pid IS the same page lineage — not a
|
|
803
802
|
// guess. adopt only that, and only when it is unambiguous.
|
|
804
|
-
const successor =
|
|
803
|
+
const successor = pickReloadedTarget(
|
|
805
804
|
await sendOnce(undefined, { type: 'bridge:list-sims' }),
|
|
806
805
|
sentSimId,
|
|
807
806
|
)
|
|
@@ -831,10 +830,10 @@ export function createBridge(wsPort: number, opts: WsBridgeOptions = {}): WsBrid
|
|
|
831
830
|
},
|
|
832
831
|
// a caller holding its own pinned sim id (a flow runner sets simId on every
|
|
833
832
|
// command, so it never reaches the pin-following path in send) asks here
|
|
834
|
-
// after a reload retires
|
|
835
|
-
//
|
|
833
|
+
// after a reload retires its socket. the page can reconnect under a new id
|
|
834
|
+
// or restore the old id; null means no unique same-host target exists.
|
|
836
835
|
async resolveReloadedSim(retiredSimId: string) {
|
|
837
|
-
return
|
|
836
|
+
return pickReloadedTarget(await this.listSims(), retiredSimId)
|
|
838
837
|
},
|
|
839
838
|
async focusSim(simId?: string) {
|
|
840
839
|
return this.send({ type: 'focus', simId })
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.500 | (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.500 | (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.500 | (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.500 | (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.500 | (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.500 | (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.500 | (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.500 | (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.500 | (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.500 | (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.500 | (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.500 | (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.500 | (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.500 | (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.500 | (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.500 | (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.500 | (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.500 | (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.500 | (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.500 | (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.500 | (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.500 | (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.500 | (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.500 | (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.500 | (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.500 | (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.500 | (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;
|
|
@@ -1065,15 +1065,17 @@ function createBridge(wsPort, opts = {}) {
|
|
|
1065
1065
|
let noticedTarget = false;
|
|
1066
1066
|
const hostPidBySimId = /* @__PURE__ */ new Map();
|
|
1067
1067
|
const lineageLookupBySimId = /* @__PURE__ */ new Map();
|
|
1068
|
-
function
|
|
1068
|
+
function pickReloadedTarget(sims, retiredSimId) {
|
|
1069
1069
|
const pinnedHostPid = hostPidBySimId.get(retiredSimId);
|
|
1070
1070
|
if (pinnedHostPid === void 0) return null;
|
|
1071
|
-
const
|
|
1072
|
-
(sim) => sim.
|
|
1071
|
+
const matches = (Array.isArray(sims) ? sims : []).filter(
|
|
1072
|
+
(sim) => sim.readyState === "open" && sim.meta?.sootsimHostPid === pinnedHostPid
|
|
1073
1073
|
);
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
return
|
|
1074
|
+
const restored = matches.find((sim) => sim.id === retiredSimId);
|
|
1075
|
+
if (restored) return restored.id;
|
|
1076
|
+
if (matches.length !== 1) return null;
|
|
1077
|
+
hostPidBySimId.set(matches[0].id, pinnedHostPid);
|
|
1078
|
+
return matches[0].id;
|
|
1077
1079
|
}
|
|
1078
1080
|
function maybeNoticeTarget(cmdType, simId) {
|
|
1079
1081
|
if (noticedTarget) return;
|
|
@@ -1191,7 +1193,7 @@ function createBridge(wsPort, opts = {}) {
|
|
|
1191
1193
|
const message = error instanceof Error ? error.message : String(error);
|
|
1192
1194
|
const missingSimMessage = `no sim connected with id ${sentSimId}`;
|
|
1193
1195
|
if (opts.simIdSource !== "flag" && sentSimId && cmd.simId === void 0 && (message === missingSimMessage || message.startsWith(`${missingSimMessage};`))) {
|
|
1194
|
-
const successor =
|
|
1196
|
+
const successor = pickReloadedTarget(
|
|
1195
1197
|
await sendOnce(void 0, { type: "bridge:list-sims" }),
|
|
1196
1198
|
sentSimId
|
|
1197
1199
|
);
|
|
@@ -1217,10 +1219,10 @@ function createBridge(wsPort, opts = {}) {
|
|
|
1217
1219
|
},
|
|
1218
1220
|
// a caller holding its own pinned sim id (a flow runner sets simId on every
|
|
1219
1221
|
// command, so it never reaches the pin-following path in send) asks here
|
|
1220
|
-
// after a reload retires
|
|
1221
|
-
//
|
|
1222
|
+
// after a reload retires its socket. the page can reconnect under a new id
|
|
1223
|
+
// or restore the old id; null means no unique same-host target exists.
|
|
1222
1224
|
async resolveReloadedSim(retiredSimId) {
|
|
1223
|
-
return
|
|
1225
|
+
return pickReloadedTarget(await this.listSims(), retiredSimId);
|
|
1224
1226
|
},
|
|
1225
1227
|
async focusSim(simId) {
|
|
1226
1228
|
return this.send({ type: "focus", simId });
|
|
@@ -1739,6 +1741,7 @@ async function inspectWaitReady(bridge, timeoutMs = 2e4, options = {}) {
|
|
|
1739
1741
|
result = await bridge.send(
|
|
1740
1742
|
{
|
|
1741
1743
|
type: "waitFor",
|
|
1744
|
+
...options.simId ? { simId: options.simId } : {},
|
|
1742
1745
|
waitForOptions: { condition: { type: "ready" }, timeoutMs }
|
|
1743
1746
|
},
|
|
1744
1747
|
{ timeoutMs: timeoutMs + 1e3 }
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.500 | (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.500 | (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.500 | (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.500 | (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.500 | (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.500 | (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.500 | (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.500 | (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.500 | (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.500 | (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.500 | (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.500 | (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;
|
|
@@ -742,6 +742,7 @@ async function inspectWaitReady(bridge, timeoutMs = 2e4, options = {}) {
|
|
|
742
742
|
result = await bridge.send(
|
|
743
743
|
{
|
|
744
744
|
type: "waitFor",
|
|
745
|
+
...options.simId ? { simId: options.simId } : {},
|
|
745
746
|
waitForOptions: { condition: { type: "ready" }, timeoutMs }
|
|
746
747
|
},
|
|
747
748
|
{ timeoutMs: timeoutMs + 1e3 }
|
package/dist-lib/sdk.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.500 | (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);
|
|
@@ -646,6 +646,7 @@ async function inspectWaitReady(bridge, timeoutMs = 2e4, options = {}) {
|
|
|
646
646
|
result = await bridge.send(
|
|
647
647
|
{
|
|
648
648
|
type: "waitFor",
|
|
649
|
+
...options.simId ? { simId: options.simId } : {},
|
|
649
650
|
waitForOptions: { condition: { type: "ready" }, timeoutMs }
|
|
650
651
|
},
|
|
651
652
|
{ timeoutMs: timeoutMs + 1e3 }
|
package/dist-lib/skills.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.500 | (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;
|
|
@@ -31103,15 +31103,17 @@ function createBridge(wsPort, opts = {}) {
|
|
|
31103
31103
|
let noticedTarget = false;
|
|
31104
31104
|
const hostPidBySimId = /* @__PURE__ */ new Map();
|
|
31105
31105
|
const lineageLookupBySimId = /* @__PURE__ */ new Map();
|
|
31106
|
-
function
|
|
31106
|
+
function pickReloadedTarget(sims, retiredSimId) {
|
|
31107
31107
|
const pinnedHostPid = hostPidBySimId.get(retiredSimId);
|
|
31108
31108
|
if (pinnedHostPid === void 0) return null;
|
|
31109
|
-
const
|
|
31110
|
-
(sim) => sim.
|
|
31109
|
+
const matches = (Array.isArray(sims) ? sims : []).filter(
|
|
31110
|
+
(sim) => sim.readyState === "open" && sim.meta?.sootsimHostPid === pinnedHostPid
|
|
31111
31111
|
);
|
|
31112
|
-
|
|
31113
|
-
|
|
31114
|
-
return
|
|
31112
|
+
const restored = matches.find((sim) => sim.id === retiredSimId);
|
|
31113
|
+
if (restored) return restored.id;
|
|
31114
|
+
if (matches.length !== 1) return null;
|
|
31115
|
+
hostPidBySimId.set(matches[0].id, pinnedHostPid);
|
|
31116
|
+
return matches[0].id;
|
|
31115
31117
|
}
|
|
31116
31118
|
function maybeNoticeTarget(cmdType, simId) {
|
|
31117
31119
|
if (noticedTarget) return;
|
|
@@ -31229,7 +31231,7 @@ function createBridge(wsPort, opts = {}) {
|
|
|
31229
31231
|
const message = error instanceof Error ? error.message : String(error);
|
|
31230
31232
|
const missingSimMessage = `no sim connected with id ${sentSimId}`;
|
|
31231
31233
|
if (opts.simIdSource !== "flag" && sentSimId && cmd.simId === void 0 && (message === missingSimMessage || message.startsWith(`${missingSimMessage};`))) {
|
|
31232
|
-
const successor =
|
|
31234
|
+
const successor = pickReloadedTarget(
|
|
31233
31235
|
await sendOnce(void 0, { type: "bridge:list-sims" }),
|
|
31234
31236
|
sentSimId
|
|
31235
31237
|
);
|
|
@@ -31255,10 +31257,10 @@ function createBridge(wsPort, opts = {}) {
|
|
|
31255
31257
|
},
|
|
31256
31258
|
// a caller holding its own pinned sim id (a flow runner sets simId on every
|
|
31257
31259
|
// command, so it never reaches the pin-following path in send) asks here
|
|
31258
|
-
// after a reload retires
|
|
31259
|
-
//
|
|
31260
|
+
// after a reload retires its socket. the page can reconnect under a new id
|
|
31261
|
+
// or restore the old id; null means no unique same-host target exists.
|
|
31260
31262
|
async resolveReloadedSim(retiredSimId) {
|
|
31261
|
-
return
|
|
31263
|
+
return pickReloadedTarget(await this.listSims(), retiredSimId);
|
|
31262
31264
|
},
|
|
31263
31265
|
async focusSim(simId) {
|
|
31264
31266
|
return this.send({ type: "focus", simId });
|
|
@@ -32574,6 +32576,7 @@ async function inspectWaitReady(bridge, timeoutMs = 2e4, options = {}) {
|
|
|
32574
32576
|
result = await bridge.send(
|
|
32575
32577
|
{
|
|
32576
32578
|
type: "waitFor",
|
|
32579
|
+
...options.simId ? { simId: options.simId } : {},
|
|
32577
32580
|
waitForOptions: { condition: { type: "ready" }, timeoutMs }
|
|
32578
32581
|
},
|
|
32579
32582
|
{ timeoutMs: timeoutMs + 1e3 }
|
|
@@ -36562,7 +36565,9 @@ var init_bridge_flow_runner = __esm({
|
|
|
36562
36565
|
});
|
|
36563
36566
|
}
|
|
36564
36567
|
async waitForTree(timeout = DEFAULT_TIMEOUT) {
|
|
36565
|
-
let status = await inspectWaitReady(this.bridge, scaledTimeout(timeout)
|
|
36568
|
+
let status = await inspectWaitReady(this.bridge, scaledTimeout(timeout), {
|
|
36569
|
+
simId: this.opts.simId
|
|
36570
|
+
});
|
|
36566
36571
|
if (status.ready) return;
|
|
36567
36572
|
if (status.externalError) {
|
|
36568
36573
|
throw new Error(`app failed to load: ${status.externalError}`);
|
|
@@ -36584,7 +36589,9 @@ var init_bridge_flow_runner = __esm({
|
|
|
36584
36589
|
);
|
|
36585
36590
|
this.opts.simId = successor;
|
|
36586
36591
|
saveCurrentSimId(successor);
|
|
36587
|
-
status = await inspectWaitReady(this.bridge, scaledTimeout(timeout)
|
|
36592
|
+
status = await inspectWaitReady(this.bridge, scaledTimeout(timeout), {
|
|
36593
|
+
simId: this.opts.simId
|
|
36594
|
+
});
|
|
36588
36595
|
if (status.ready) return;
|
|
36589
36596
|
}
|
|
36590
36597
|
}
|
|
@@ -36753,25 +36760,9 @@ var init_bridge_flow_runner = __esm({
|
|
|
36753
36760
|
if (!test) return null
|
|
36754
36761
|
let node = null
|
|
36755
36762
|
if (${JSON.stringify(!!opts.text)}) {
|
|
36756
|
-
|
|
36757
|
-
//
|
|
36758
|
-
|
|
36759
|
-
// "Pin to Home" / "Mute accounts" pin/menu controls) carry the label on
|
|
36760
|
-
// accessibilityLabel with no visible text node, so findByText misses
|
|
36761
|
-
// them. fall back to an exact a11y-label match, mirroring the real
|
|
36762
|
-
// driver. findByLabel resolves a node, but its info shape omits nodeId/
|
|
36763
|
-
// isTextInput; re-resolve through findByTestId/findById when it exposes
|
|
36764
|
-
// an id so tapOn still gets a resolveTapTarget-able nodeId.
|
|
36765
|
-
if (!node) {
|
|
36766
|
-
const labelled = await test.findByLabel?.(${JSON.stringify(opts.text || "")})
|
|
36767
|
-
if (labelled) {
|
|
36768
|
-
const reId = labelled.testID || labelled.id
|
|
36769
|
-
node =
|
|
36770
|
-
(reId &&
|
|
36771
|
-
((await test.findByTestId?.(reId)) || (await test.findById?.(reId)))) ||
|
|
36772
|
-
labelled
|
|
36773
|
-
}
|
|
36774
|
-
}
|
|
36763
|
+
// maestro text selectors match rendered text and exact accessibility
|
|
36764
|
+
// labels. the engine resolves both in one visibility-aware tree pass.
|
|
36765
|
+
node = await test.findByTextOrLabel(${JSON.stringify(opts.text || "")})
|
|
36775
36766
|
}
|
|
36776
36767
|
if (!node && ${JSON.stringify(!!opts.id)}) {
|
|
36777
36768
|
node = (await test.findByTestId(${JSON.stringify(opts.id || "")})) || (await test.findById(${JSON.stringify(opts.id || "")}))
|
|
@@ -37209,13 +37200,15 @@ var init_bridge_flow_runner = __esm({
|
|
|
37209
37200
|
}
|
|
37210
37201
|
}
|
|
37211
37202
|
async eraseText(count) {
|
|
37212
|
-
|
|
37213
|
-
|
|
37214
|
-
|
|
37215
|
-
|
|
37216
|
-
|
|
37217
|
-
|
|
37218
|
-
|
|
37203
|
+
const steps = Array.from({ length: Math.max(0, Math.ceil(count)) }, () => ({
|
|
37204
|
+
type: "key",
|
|
37205
|
+
key: "Backspace"
|
|
37206
|
+
}));
|
|
37207
|
+
if (steps.length > 0) {
|
|
37208
|
+
const result = await this.perform(steps);
|
|
37209
|
+
if (!result?.ok) {
|
|
37210
|
+
throw new Error(`eraseText failed: ${result?.error ?? "backspace missed"}`);
|
|
37211
|
+
}
|
|
37219
37212
|
}
|
|
37220
37213
|
await sleep3(100);
|
|
37221
37214
|
}
|
package/dist-lib/vite.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.500 | (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;
|