rnxsim 0.1.505 → 0.1.506

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/cli/bridge-flow-runner.ts +7 -2
  2. package/cli/commands/agent-wrapper.ts +7 -3
  3. package/cli/commands/flow.ts +1 -0
  4. package/cli/commands/inspect.ts +2 -2
  5. package/cli/flow-live-status.ts +8 -2
  6. package/dist-lib/agent-daemon-client.cjs +1 -1
  7. package/dist-lib/agent-events.cjs +1 -1
  8. package/dist-lib/agent-identity.cjs +1 -1
  9. package/dist-lib/agent-sessions.cjs +1 -1
  10. package/dist-lib/attached-projects.cjs +1 -1
  11. package/dist-lib/auth/shared-session.cjs +1 -1
  12. package/dist-lib/backend-origin.cjs +1 -1
  13. package/dist-lib/beta.cjs +1 -1
  14. package/dist-lib/beta.mjs +1 -1
  15. package/dist-lib/bridge-constants.cjs +1 -1
  16. package/dist-lib/bridge-contract-input.cjs +1 -1
  17. package/dist-lib/bridge-contract-input.mjs +1 -1
  18. package/dist-lib/bridge-contract.cjs +1 -1
  19. package/dist-lib/bridge-contract.mjs +1 -1
  20. package/dist-lib/capture-contract.cjs +1 -1
  21. package/dist-lib/capture-contract.mjs +1 -1
  22. package/dist-lib/cli-constants.cjs +1 -1
  23. package/dist-lib/cloud-contract.cjs +1 -1
  24. package/dist-lib/cloud-contract.mjs +1 -1
  25. package/dist-lib/cloud.cjs +1 -1
  26. package/dist-lib/cloud.mjs +1 -1
  27. package/dist-lib/config.cjs +1 -1
  28. package/dist-lib/detox/index.cjs +1 -1
  29. package/dist-lib/dev-bundle-resolution.cjs +1 -1
  30. package/dist-lib/home-paths.cjs +1 -1
  31. package/dist-lib/host/bridge-host.cjs +142 -56
  32. package/dist-lib/host/fetch-proxy-handler.cjs +1 -1
  33. package/dist-lib/host/fetch-proxy-overrides.cjs +1 -1
  34. package/dist-lib/host/fetch-proxy-overrides.mjs +1 -1
  35. package/dist-lib/host/replacement-module-handler.cjs +1 -1
  36. package/dist-lib/host/websocket-proxy.cjs +1 -1
  37. package/dist-lib/index.cjs +1 -1
  38. package/dist-lib/jump-to-source-babel.cjs +1 -1
  39. package/dist-lib/jump-to-source-native.cjs +1 -1
  40. package/dist-lib/menu.cjs +1 -1
  41. package/dist-lib/menu.mjs +1 -1
  42. package/dist-lib/metro-fingerprint-registry.cjs +1 -1
  43. package/dist-lib/metro-fingerprint-registry.mjs +1 -1
  44. package/dist-lib/metro-production-bundle.cjs +1 -1
  45. package/dist-lib/metro-production-bundle.mjs +1 -1
  46. package/dist-lib/metro.cjs +1 -1
  47. package/dist-lib/profiles.cjs +1 -1
  48. package/dist-lib/public-brand.cjs +1 -1
  49. package/dist-lib/react-native-host-modules.cjs +1 -1
  50. package/dist-lib/react-native-host-modules.mjs +1 -1
  51. package/dist-lib/render-mode.cjs +1 -1
  52. package/dist-lib/scripts/dev-server-scanner.cjs +36 -18
  53. package/dist-lib/sdk.cjs +1 -1
  54. package/dist-lib/sdk.mjs +1 -1
  55. package/dist-lib/skills.cjs +189 -67
  56. package/dist-lib/vite.cjs +1 -1
  57. package/package.json +1 -1
  58. package/scripts/dev-server-scanner.ts +37 -20
  59. package/src/screenshots/frame-compose.ts +71 -11
@@ -1324,7 +1324,12 @@ export class SootSimBridgeFlowRunner {
1324
1324
 
1325
1325
  const deadline = Date.now() + 3000
1326
1326
  while (Date.now() < deadline) {
1327
- const state = await this.evaluate<{ visible: boolean; focused: boolean }>(`(() => {
1327
+ // the host test bridge proxies the tenant, so isTextInputFocused
1328
+ // resolves a promise; reading it unawaited is always truthy.
1329
+ const state = await this.evaluate<{
1330
+ visible: boolean
1331
+ focused: boolean
1332
+ }>(`(async () => {
1328
1333
  const keyboard =
1329
1334
  window.__sootsimKeyboard ??
1330
1335
  window.SootSim?.bridges?.keyboard ??
@@ -1332,7 +1337,7 @@ export class SootSimBridgeFlowRunner {
1332
1337
  const test = window.__sootsimTest
1333
1338
  return {
1334
1339
  visible: !!keyboard?.isVisible?.(),
1335
- focused: !!test?.isTextInputFocused?.(),
1340
+ focused: !!(await test?.isTextInputFocused?.()),
1336
1341
  }
1337
1342
  })()`)
1338
1343
  if (!state?.visible && !state?.focused) {
@@ -46,7 +46,8 @@ const CODEX_THREAD_SANDBOX = 'danger-full-access'
46
46
  const CODEX_TURN_SANDBOX_POLICY = { type: 'dangerFullAccess' } as const
47
47
  const CODEX_MODEL = 'gpt-5.6-luna'
48
48
  const CODEX_SERVICE_TIER = 'fast' as const
49
- const CODEX_REASONING_EFFORT = 'low' as const
49
+ // prompt-bar turns are small targeted edits, so both providers think briefly.
50
+ const AGENT_REASONING_EFFORT = 'low' as const
50
51
  const CODEX_READY_TIMEOUT_MS = 5_000
51
52
  const CODEX_THREAD_SETUP_TIMEOUT_MS = 10_000
52
53
 
@@ -748,7 +749,7 @@ function buildCodexTurnRunner(deps: CodexTurnDeps): TurnRunner {
748
749
  sandboxPolicy: CODEX_TURN_SANDBOX_POLICY,
749
750
  model: CODEX_MODEL,
750
751
  serviceTier: CODEX_SERVICE_TIER,
751
- effort: CODEX_REASONING_EFFORT,
752
+ effort: AGENT_REASONING_EFFORT,
752
753
  })) as { turn?: { id?: string } } | undefined
753
754
  const actualTurnId = res?.turn?.id ?? latestTurnId
754
755
  if (actualTurnId && actualTurnId !== pendingId) {
@@ -795,7 +796,8 @@ function buildCodexTurnRunner(deps: CodexTurnDeps): TurnRunner {
795
796
  // --- claude per-turn spawn via --output-format stream-json ---
796
797
  //
797
798
  // each prompt spawns a fresh `claude --print --output-format stream-json
798
- // --verbose --permission-mode bypassPermissions --session-id <uuid>` process.
799
+ // --verbose --permission-mode bypassPermissions --effort low --session-id <uuid>`
800
+ // process.
799
801
  // stdout is a newline-delimited stream of well-typed objects; we translate
800
802
  // them into our AgentEvent wire format. the deterministic session uuid means
801
803
  // successive spawns all land in the same `~/.claude/projects/<cwd>/<uuid>.jsonl`
@@ -873,6 +875,8 @@ function buildClaudeTurnRunner(deps: ClaudeTurnDeps): TurnRunner {
873
875
  '--verbose',
874
876
  '--permission-mode',
875
877
  'bypassPermissions',
878
+ '--effort',
879
+ AGENT_REASONING_EFFORT,
876
880
  sessionFlag,
877
881
  claudeSessionUuid,
878
882
  text,
@@ -649,6 +649,7 @@ flow extension:
649
649
  driver.liveStatus = new FlowLiveStatusReporter(
650
650
  bridge,
651
651
  path.basename(flowPath),
652
+ flowContent,
652
653
  () => driver.simId,
653
654
  )
654
655
  // maestro default vars + flow-level `env:` frontmatter, defined into the
@@ -1370,9 +1370,9 @@ export async function runInspect(args: string[], opts: InspectOptions) {
1370
1370
  // console count merges the ws-bridge buffer + observability store (see
1371
1371
  // MERGED_CONSOLE_COUNT_EVAL) so the proactive notice agrees with what
1372
1372
  // `get errors` returns for forwarded render-worker failures.
1373
- code: `(() => ({
1373
+ code: `(async () => ({
1374
1374
  console: ${MERGED_CONSOLE_COUNT_EVAL},
1375
- requests: window.__sootsimTest?.getRequestCounts?.() || null,
1375
+ requests: (await window.__sootsimTest?.getRequestCounts?.()) || null,
1376
1376
  }))()`,
1377
1377
  })
1378
1378
  return (raw as SummaryCounts) || { console: null, requests: null }
@@ -40,6 +40,7 @@ export class FlowLiveStatusReporter {
40
40
  constructor(
41
41
  private bridge: WsBridge,
42
42
  private flowName: string | null,
43
+ private flowSource: string,
43
44
  private getSimId?: () => string | undefined,
44
45
  ) {}
45
46
 
@@ -63,7 +64,12 @@ export class FlowLiveStatusReporter {
63
64
  payload.phase !== 'plan'
64
65
  ) {
65
66
  await this.send(
66
- { phase: 'plan', state: 'running', steps: this.plannedSteps },
67
+ {
68
+ phase: 'plan',
69
+ state: 'running',
70
+ steps: this.plannedSteps,
71
+ source: this.flowSource,
72
+ },
67
73
  simId,
68
74
  )
69
75
  for (const step of this.completedSteps.values()) {
@@ -83,7 +89,7 @@ export class FlowLiveStatusReporter {
83
89
  async plan(steps: PlanStep[]): Promise<void> {
84
90
  this.plannedSteps = steps.map((step) => ({ ...step }))
85
91
  this.completedSteps.clear()
86
- await this.push({ phase: 'plan', state: 'running', steps })
92
+ await this.push({ phase: 'plan', state: 'running', steps, source: this.flowSource })
87
93
  }
88
94
 
89
95
  async step(
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.505 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.506 | (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.505 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.506 | (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.505 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.506 | (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.505 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.506 | (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.505 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.506 | (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.505 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.506 | (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.505 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.506 | (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.505 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.506 | (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.505 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.506 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/beta.ts
4
4
  var IS_BETA = true;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.505 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.506 | (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.505 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.506 | (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.505 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.506 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/bridge-contract.ts
4
4
  var SIM_LONG_PRESS_MAX_MS = 5e3;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.505 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.506 | (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.505 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.506 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/bridge-contract.ts
4
4
  var SIM_LONG_PRESS_DEFAULT_MS = 500;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.505 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.506 | (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.505 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.506 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/capture-contract.ts
4
4
  var RNX_SCREEN_CAPTURE_VERSION = 1;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.505 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.506 | (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.505 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.506 | (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.505 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.506 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/cloud-contract.ts
4
4
  var RNX_CLOUD_MAX_ARTIFACT_BYTES = 20 * 1024 * 1024;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.505 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.506 | (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.505 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.506 | (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);
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.505 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.506 | (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.505 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.506 | (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.505 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.506 | (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.505 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.506 | (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;