peachsim 0.1.920 → 0.1.922

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 (88) hide show
  1. package/README.md +6 -1
  2. package/cli/commands/compat.ts +51 -9
  3. package/cli/commands/daemon.ts +35 -14
  4. package/cli/commands/flow.ts +7 -2
  5. package/cli/commands/maestro-generate.ts +292 -98
  6. package/cli/commands/maestro.ts +51 -29
  7. package/cli/commands/report-issue.ts +32 -16
  8. package/cli/commands/skills.ts +1 -1
  9. package/cli/commands/support.ts +3 -3
  10. package/cli/main.ts +5 -0
  11. package/cli/runtime-compat.ts +127 -0
  12. package/dist-lib/agent-daemon-client.cjs +1 -1
  13. package/dist-lib/agent-events.cjs +1 -1
  14. package/dist-lib/agent-identity.cjs +1 -1
  15. package/dist-lib/agent-sessions.cjs +1 -1
  16. package/dist-lib/attached-projects.cjs +1 -1
  17. package/dist-lib/auth/shared-session.cjs +1 -1
  18. package/dist-lib/backend-origin.cjs +1 -1
  19. package/dist-lib/beta.cjs +1 -1
  20. package/dist-lib/beta.mjs +1 -1
  21. package/dist-lib/bridge-constants.cjs +1 -1
  22. package/dist-lib/bridge-contract-input.cjs +1 -1
  23. package/dist-lib/bridge-contract-input.mjs +1 -1
  24. package/dist-lib/bridge-contract.cjs +1 -1
  25. package/dist-lib/bridge-contract.mjs +1 -1
  26. package/dist-lib/bundle-channel.cjs +1 -1
  27. package/dist-lib/capture-contract.cjs +1 -1
  28. package/dist-lib/capture-contract.mjs +1 -1
  29. package/dist-lib/cli-constants.cjs +1 -1
  30. package/dist-lib/cloud-contract.cjs +1 -1
  31. package/dist-lib/cloud-contract.mjs +1 -1
  32. package/dist-lib/cloud-test-args.cjs +1 -1
  33. package/dist-lib/cloud-test-args.mjs +1 -1
  34. package/dist-lib/cloud.cjs +1 -1
  35. package/dist-lib/cloud.mjs +1 -1
  36. package/dist-lib/config.cjs +1 -1
  37. package/dist-lib/detox/index.cjs +1 -1
  38. package/dist-lib/dev-bundle-resolution.cjs +1 -1
  39. package/dist-lib/expo-swift-bundle.cjs +1 -1
  40. package/dist-lib/expo-swift-metadata.cjs +1 -1
  41. package/dist-lib/expo-swift-metadata.mjs +1 -1
  42. package/dist-lib/home-paths.cjs +1 -1
  43. package/dist-lib/host/bridge-host.cjs +1 -1
  44. package/dist-lib/host/fetch-proxy-handler.cjs +1 -1
  45. package/dist-lib/host/fetch-proxy-overrides.cjs +1 -1
  46. package/dist-lib/host/fetch-proxy-overrides.mjs +1 -1
  47. package/dist-lib/host/replacement-module-handler.cjs +1 -1
  48. package/dist-lib/host/websocket-proxy.cjs +1 -1
  49. package/dist-lib/index.cjs +1 -1
  50. package/dist-lib/jump-to-source-babel.cjs +1 -1
  51. package/dist-lib/jump-to-source-native.cjs +1 -1
  52. package/dist-lib/kotlin-host.cjs +1 -1
  53. package/dist-lib/menu.cjs +1 -1
  54. package/dist-lib/menu.mjs +1 -1
  55. package/dist-lib/metro-fingerprint-registry.cjs +1 -1
  56. package/dist-lib/metro-fingerprint-registry.mjs +1 -1
  57. package/dist-lib/metro-production-bundle.cjs +1 -1
  58. package/dist-lib/metro-production-bundle.mjs +1 -1
  59. package/dist-lib/metro.cjs +1 -1
  60. package/dist-lib/native-app-identity.cjs +1 -1
  61. package/dist-lib/native-app-identity.mjs +1 -1
  62. package/dist-lib/native-firebase-metadata.cjs +1 -1
  63. package/dist-lib/native-firebase-metadata.mjs +1 -1
  64. package/dist-lib/plist.cjs +1 -1
  65. package/dist-lib/plist.mjs +1 -1
  66. package/dist-lib/profiles.cjs +1 -1
  67. package/dist-lib/public-brand.cjs +1 -1
  68. package/dist-lib/react-native-host-modules.cjs +1 -1
  69. package/dist-lib/react-native-host-modules.mjs +1 -1
  70. package/dist-lib/render-mode.cjs +1 -1
  71. package/dist-lib/scripts/dev-server-scanner.cjs +1 -1
  72. package/dist-lib/sdk.cjs +1 -1
  73. package/dist-lib/sdk.mjs +1 -1
  74. package/dist-lib/skills.cjs +16 -1
  75. package/dist-lib/swift-compile.cjs +1 -1
  76. package/dist-lib/swift-compile.mjs +1 -1
  77. package/dist-lib/swift-package.cjs +1 -1
  78. package/dist-lib/swift-package.mjs +1 -1
  79. package/dist-lib/swift-submit.cjs +1 -1
  80. package/dist-lib/swift-submit.mjs +1 -1
  81. package/dist-lib/swift-toolchain.cjs +1 -1
  82. package/dist-lib/swift.cjs +1 -1
  83. package/dist-lib/vite-swift.cjs +1 -1
  84. package/dist-lib/vite.cjs +1 -1
  85. package/dist-lib/worklet-executable.cjs +1 -1
  86. package/dist-lib/worklet-executable.mjs +1 -1
  87. package/package.json +1 -1
  88. package/skills/peach-test/SKILL.md +8 -1
@@ -3,9 +3,9 @@
3
3
  import { existsSync } from 'node:fs'
4
4
  import { resolve } from 'node:path'
5
5
  import { getCliVersion } from '../../src/cli-version'
6
- import { readActiveRuntime } from '../../src/home-paths'
7
6
  import { authHeaderValue, resolveCliAuth } from '../auth'
8
7
  import { confirm } from '../prompt'
8
+ import { readRuntimeCompatibility } from '../runtime-compat'
9
9
  import { installedManifest, readProjectManifest } from './detect'
10
10
  import {
11
11
  createProjectReport,
@@ -41,6 +41,7 @@ export type ReportIssuePayload = {
41
41
  platform: NodeJS.Platform
42
42
  arch: string
43
43
  compatibility: ScanResult | null
44
+ compatibilityUnavailable: string | null
44
45
  projectReport: ProjectReport
45
46
  }
46
47
  }
@@ -120,6 +121,7 @@ export function parseReportIssueOptions(
120
121
  export async function toolchainContext(appDir: string) {
121
122
  const manifest = readProjectManifest(appDir)
122
123
  const installed = manifest ? installedManifest(appDir, manifest) : null
124
+ const runtime = readRuntimeCompatibility()
123
125
  const safeVersions = (deps: Record<string, string> | undefined) =>
124
126
  deps &&
125
127
  Object.fromEntries(
@@ -128,17 +130,20 @@ export async function toolchainContext(appDir: string) {
128
130
  sanitizeProjectReportVersion(version),
129
131
  ]),
130
132
  )
131
- const compatibility = installed
132
- ? (await import('@peach/compat/web')).scanDeps({
133
- name: installed.name ? sanitizeProjectReportName(installed.name) : undefined,
134
- dependencies: safeVersions(installed.dependencies),
135
- devDependencies: safeVersions(installed.devDependencies),
136
- })
137
- : null
133
+ const compatibility =
134
+ installed && runtime.data
135
+ ? (await import('@peach/compat/web')).scanDepsWithData(
136
+ {
137
+ name: installed.name ? sanitizeProjectReportName(installed.name) : undefined,
138
+ dependencies: safeVersions(installed.dependencies),
139
+ devDependencies: safeVersions(installed.devDependencies),
140
+ },
141
+ runtime.data,
142
+ )
143
+ : null
138
144
  const cliVersion = sanitizeProjectReportVersion(getCliVersion())
139
- const activeRuntime = readActiveRuntime()
140
- const runtimeVersion = activeRuntime
141
- ? sanitizeProjectReportVersion(activeRuntime)
145
+ const runtimeVersion = runtime.runtimeVersion
146
+ ? sanitizeProjectReportVersion(runtime.runtimeVersion)
142
147
  : null
143
148
  return {
144
149
  activeApp:
@@ -151,6 +156,7 @@ export async function toolchainContext(appDir: string) {
151
156
  platform: process.platform,
152
157
  arch: process.arch,
153
158
  compatibility,
159
+ compatibilityUnavailable: runtime.reason,
154
160
  }
155
161
  }
156
162
 
@@ -174,7 +180,7 @@ export async function createReportIssuePayload(
174
180
 
175
181
  // where support requests go and who they come from: the login's origin and
176
182
  // bearer, and the account a `peach login --account` sign-in chose. a report
177
- // may go anonymously; an ask or a status read needs the sign-in.
183
+ // needs a sign-in so the account can read its replies later.
178
184
  export function supportEndpoint(): {
179
185
  origin: string
180
186
  headers: Record<string, string>
@@ -193,8 +199,11 @@ export function supportEndpoint(): {
193
199
  return { origin, headers, signedIn: true }
194
200
  }
195
201
 
196
- function compatibilitySummary(scan: ScanResult | null): string {
197
- if (!scan) return 'no package.json found; no compatibility scan attached'
202
+ function compatibilitySummary(
203
+ scan: ScanResult | null,
204
+ unavailable: string | null,
205
+ ): string {
206
+ if (!scan) return unavailable ?? 'no package.json found; no compatibility scan attached'
198
207
  const attention = scan.packages.filter(
199
208
  (item) => item.status !== 'full' && item.status !== 'not-relevant',
200
209
  ).length
@@ -227,6 +236,14 @@ export async function runReportIssue(
227
236
  return 1
228
237
  }
229
238
 
239
+ const endpoint = supportEndpoint()
240
+ if (!options.dryRun && !endpoint.signedIn) {
241
+ dependencies.stderr(
242
+ ' sign in first with `peach login`, or set PEACH_API_KEY. Nothing was sent.\n',
243
+ )
244
+ return 1
245
+ }
246
+
230
247
  let payload: ReportIssuePayload
231
248
  try {
232
249
  payload = await createReportIssuePayload(options, dependencies.now())
@@ -242,7 +259,7 @@ export async function runReportIssue(
242
259
  dependencies.stdout(
243
260
  `\n peach issue report preview\n\n` +
244
261
  ` description: ${payload.note}\n` +
245
- ` compatibility: ${compatibilitySummary(payload.bundle.compatibility)}\n` +
262
+ ` compatibility: ${compatibilitySummary(payload.bundle.compatibility, payload.bundle.compatibilityUnavailable)}\n` +
246
263
  ` environment: CLI ${payload.bundle.cliVersion}, runtime ${
247
264
  payload.bundle.runtimeVersion ?? 'not installed'
248
265
  }, ${payload.bundle.platform}/${payload.bundle.arch}\n\n` +
@@ -273,7 +290,6 @@ export async function runReportIssue(
273
290
  }
274
291
  }
275
292
 
276
- const endpoint = supportEndpoint()
277
293
  const headers = { ...endpoint.headers, 'content-type': 'application/json' }
278
294
 
279
295
  let response: Response
@@ -598,7 +598,7 @@ async function runInstall(args: string[]) {
598
598
  )
599
599
  rnxExit(1)
600
600
  }
601
- console.log(' done. restart the agent session to load newly installed skills.\n')
601
+ console.log(' done. skills are installed and available to your agent.\n')
602
602
  }
603
603
 
604
604
  function runShow(args: string[]) {
@@ -4,7 +4,7 @@
4
4
  //
5
5
  // peach support ask "<question>" [--no-wait] [--wait <minutes>] [--json]
6
6
  // peach support report [--app <dir>] [--dry-run] [--yes] "<description>"
7
- // peach support status [--new] [--json]
7
+ // peach support status [--id <id>] [--new] [--json]
8
8
  // peach support fund [--amount <usd>]
9
9
 
10
10
  import { resolve } from 'node:path'
@@ -41,7 +41,7 @@ const USAGE =
41
41
  ' usage:\n' +
42
42
  ' peach support ask "<question>" [--no-wait] [--wait <minutes>] [--json]\n' +
43
43
  ' peach support report [--app <dir>] [--dry-run] [--yes] "<description>"\n' +
44
- ' peach support status [--new] [--json]\n' +
44
+ ' peach support status [--id <id>] [--new] [--json]\n' +
45
45
  ' peach support fund [--amount <usd>]\n'
46
46
 
47
47
  function signInHint(): number {
@@ -341,7 +341,7 @@ async function runStatus(args: string[]): Promise<number> {
341
341
  if (!supportEndpoint().signedIn) return signInHint()
342
342
  let items: Item[]
343
343
  try {
344
- items = await fetchItems()
344
+ items = await fetchItems(flagValue(args, '--id') ?? undefined)
345
345
  } catch (error) {
346
346
  process.stderr.write(
347
347
  ` status failed: ${error instanceof Error ? error.message : error}\n`,
package/cli/main.ts CHANGED
@@ -556,6 +556,11 @@ try {
556
556
  }
557
557
 
558
558
  case 'remote': {
559
+ if (parsed.commandArgs.length === 0) {
560
+ const { printCommandHelp } = await import('./help')
561
+ printCommandHelp('remote')
562
+ await exitWithFlush(0)
563
+ }
559
564
  if (globalSimTarget) {
560
565
  console.error(
561
566
  ` ${rnxPublicBrand.commandName} remote creates a new simulator and cannot target --sim`,
@@ -0,0 +1,127 @@
1
+ import { readFileSync } from 'node:fs'
2
+ import { join } from 'node:path'
3
+ import { readActiveRuntime, runtimeDir } from '../src/home-paths'
4
+ import type { CompatScanData } from '@peach/compat/web'
5
+
6
+ type Outcomes = NonNullable<
7
+ CompatScanData['registry'][string]['versions'][number]['outcomes']
8
+ >
9
+
10
+ function record(value: unknown): value is Record<string, unknown> {
11
+ return value !== null && typeof value === 'object' && !Array.isArray(value)
12
+ }
13
+ function finite(value: unknown): value is number {
14
+ return typeof value === 'number' && Number.isFinite(value) && value >= 0
15
+ }
16
+ function measure(value: unknown): boolean {
17
+ return (
18
+ record(value) &&
19
+ [
20
+ 'passedWeight',
21
+ 'failedWeight',
22
+ 'unassessedWeight',
23
+ 'totalWeight',
24
+ 'assessedWeight',
25
+ 'assessed',
26
+ ].every((key) => finite(value[key])) &&
27
+ (value.compatibility === null ||
28
+ (finite(value.compatibility) && value.compatibility <= 1))
29
+ )
30
+ }
31
+ function platforms(value: unknown): boolean {
32
+ return record(value) && measure(value.ios) && measure(value.android)
33
+ }
34
+ function weightings(value: unknown): boolean {
35
+ return record(value) && platforms(value.strict) && platforms(value.usage)
36
+ }
37
+ function outcomes(value: unknown): value is Outcomes {
38
+ if (
39
+ !record(value) ||
40
+ typeof value.exactTestedVersion !== 'string' ||
41
+ typeof value.supportedVersionRange !== 'string' ||
42
+ !finite(value.unmatchedReferenceCount) ||
43
+ !platforms(value.byPlatform) ||
44
+ !weightings(value.byWeighting)
45
+ )
46
+ return false
47
+ const last = value.lastMeasured
48
+ return (
49
+ last === null ||
50
+ (record(last) &&
51
+ weightings(last.byWeighting) &&
52
+ (last.sourceCommit === null || typeof last.sourceCommit === 'string') &&
53
+ typeof last.capturedAt === 'string' &&
54
+ Array.isArray(last.receipts) &&
55
+ last.receipts.every((id) => typeof id === 'string'))
56
+ )
57
+ }
58
+ function scanData(value: unknown): value is CompatScanData {
59
+ if (
60
+ !record(value) ||
61
+ !record(value.registry) ||
62
+ !Array.isArray(value.unsupported) ||
63
+ !value.unsupported.every((name) => typeof name === 'string')
64
+ )
65
+ return false
66
+ return Object.values(value.registry).every(
67
+ (entry) =>
68
+ record(entry) &&
69
+ (entry.stubType === 'native' || entry.stubType === 'build-only') &&
70
+ Array.isArray(entry.versions) &&
71
+ entry.versions.every(
72
+ (version) =>
73
+ record(version) &&
74
+ typeof version.range === 'string' &&
75
+ typeof version.note === 'string' &&
76
+ (version.coverage === null ||
77
+ (finite(version.coverage) && version.coverage <= 1)) &&
78
+ (version.estimate === undefined ||
79
+ (finite(version.estimate) && version.estimate <= 1)) &&
80
+ (version.coverageSource === undefined ||
81
+ version.coverageSource === 'estimated' ||
82
+ (version.coverageSource === 'measured' && outcomes(version.outcomes))) &&
83
+ (version.outcomes === undefined || outcomes(version.outcomes)) &&
84
+ ['working', 'missing'].every(
85
+ (key) => version[key] === undefined || typeof version[key] === 'string',
86
+ ),
87
+ ),
88
+ )
89
+ }
90
+
91
+ // only the selected runtime can describe its compatibility. older runtimes
92
+ // without a snapshot remain explicitly unavailable rather than borrowing the CLI's data.
93
+ export function readRuntimeCompatibility(runtimeVersion = readActiveRuntime()): {
94
+ runtimeVersion: string | null
95
+ data: CompatScanData | null
96
+ reason: string | null
97
+ } {
98
+ if (!runtimeVersion)
99
+ return {
100
+ runtimeVersion,
101
+ data: null,
102
+ reason: 'no runtime selected; run `peach runtime install`',
103
+ }
104
+ try {
105
+ const snapshot: unknown = JSON.parse(
106
+ readFileSync(join(runtimeDir(runtimeVersion), 'compatibility.json'), 'utf8'),
107
+ )
108
+ if (
109
+ !record(snapshot) ||
110
+ snapshot.runtimeVersion !== runtimeVersion ||
111
+ !scanData(snapshot.data)
112
+ ) {
113
+ return {
114
+ runtimeVersion,
115
+ data: null,
116
+ reason: 'runtime compatibility snapshot is invalid or belongs to another runtime',
117
+ }
118
+ }
119
+ return { runtimeVersion, data: snapshot.data, reason: null }
120
+ } catch {
121
+ return {
122
+ runtimeVersion,
123
+ data: null,
124
+ reason: 'runtime compatibility snapshot is unavailable; run `peach upgrade`',
125
+ }
126
+ }
127
+ }
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.920 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.922 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.920 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.922 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.920 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.922 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.920 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.922 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.920 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.922 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.920 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.922 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.920 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.922 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } 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.920 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.922 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } 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.920 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.922 | (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.920 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.922 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.920 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.922 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.920 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.922 | (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.920 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.922 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.920 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.922 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/bridge-contract.ts
4
4
  var REFUSED_PERFORM_STEP_TYPES = [
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.920 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.922 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.920 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.922 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.920 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.922 | (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.920 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.922 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.920 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.922 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.920 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.922 | (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.920 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.922 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.920 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.922 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/cloud-test-args.ts
4
4
  var CLOUD_TEST_ARGS_MAX_COUNT = 32;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.920 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.922 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.920 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.922 | (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.920 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.922 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.920 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.922 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.920 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.922 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.920 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.922 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.920 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.922 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.920 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.922 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/expoSwiftContract.ts
4
4
  function record(value) {
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.920 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.922 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.920 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.922 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.920 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.922 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.920 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.922 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.920 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.922 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/host/fetch-proxy-overrides.ts
4
4
  var FETCH_PROXY_NATIVE_USER_AGENT_HEADER = "x-sootsim-native-user-agent";
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.920 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.922 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.920 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.922 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.920 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.922 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.920 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.922 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.920 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.922 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.920 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.922 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } 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.920 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.922 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } 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.920 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.922 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/public-brand.ts
4
4
  var name = "Peach";
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.920 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.922 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.920 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.922 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/is-record.ts
4
4
  function isRecord(value) {