peachsim 0.1.2198 → 0.1.2200

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 (135) hide show
  1. package/cli/commands/inspect/settling.ts +20 -20
  2. package/cli/outbound-endpoints.ts +12 -0
  3. package/dist-lib/agent-daemon-client.cjs +1 -1
  4. package/dist-lib/agent-events.cjs +1 -1
  5. package/dist-lib/attached-projects.cjs +1 -1
  6. package/dist-lib/auth/shared-session.cjs +1 -1
  7. package/dist-lib/backend-origin.cjs +1 -1
  8. package/dist-lib/beta.cjs +1 -1
  9. package/dist-lib/beta.mjs +1 -1
  10. package/dist-lib/bridge-constants.cjs +1 -1
  11. package/dist-lib/bridge-contract-input.cjs +1 -1
  12. package/dist-lib/bridge-contract-input.mjs +1 -1
  13. package/dist-lib/bridge-contract.cjs +1 -1
  14. package/dist-lib/bridge-contract.mjs +1 -1
  15. package/dist-lib/bundle-channel.cjs +1532 -1170
  16. package/dist-lib/capture-contract.cjs +1 -1
  17. package/dist-lib/capture-contract.mjs +1 -1
  18. package/dist-lib/cloud-contract.cjs +1 -1
  19. package/dist-lib/cloud-contract.mjs +1 -1
  20. package/dist-lib/cloud-test-args.cjs +1 -1
  21. package/dist-lib/cloud-test-args.mjs +1 -1
  22. package/dist-lib/cloud.cjs +1 -1
  23. package/dist-lib/cloud.mjs +1 -1
  24. package/dist-lib/config.cjs +1 -1
  25. package/dist-lib/config.mjs +1 -1
  26. package/dist-lib/detox/index.cjs +22 -22
  27. package/dist-lib/dev-bundle-resolution.cjs +1 -1
  28. package/dist-lib/expo-swift-bundle.cjs +45875 -39899
  29. package/dist-lib/expo-swift-metadata.cjs +1 -1
  30. package/dist-lib/expo-swift-metadata.mjs +1 -1
  31. package/dist-lib/home-paths.cjs +1 -1
  32. package/dist-lib/host/bridge-host.cjs +50942 -49780
  33. package/dist-lib/host/fetch-proxy-handler.cjs +16 -4
  34. package/dist-lib/host/fetch-proxy-overrides.cjs +1 -1
  35. package/dist-lib/host/fetch-proxy-overrides.mjs +1 -1
  36. package/dist-lib/host/replacement-module-handler.cjs +1 -1
  37. package/dist-lib/host/websocket-proxy.cjs +1 -1
  38. package/dist-lib/index.cjs +36 -24
  39. package/dist-lib/jump-to-source-babel.cjs +1 -1
  40. package/dist-lib/jump-to-source-native.cjs +1 -1
  41. package/dist-lib/kotlin-host.cjs +100 -10
  42. package/dist-lib/menu.cjs +1 -1
  43. package/dist-lib/menu.mjs +1 -1
  44. package/dist-lib/metro-fingerprint-registry.cjs +1 -1
  45. package/dist-lib/metro-fingerprint-registry.mjs +1 -1
  46. package/dist-lib/metro-production-bundle.cjs +1 -1
  47. package/dist-lib/metro-production-bundle.mjs +1 -1
  48. package/dist-lib/metro.cjs +16 -4
  49. package/dist-lib/native-app-identity-project.cjs +14 -2
  50. package/dist-lib/native-app-identity-project.mjs +14 -2
  51. package/dist-lib/native-app-identity.cjs +1 -1
  52. package/dist-lib/native-app-identity.mjs +1 -1
  53. package/dist-lib/native-firebase-metadata.cjs +1 -1
  54. package/dist-lib/native-firebase-metadata.mjs +1 -1
  55. package/dist-lib/pdfium-raster.cjs +1 -1
  56. package/dist-lib/pdfium-raster.mjs +1 -1
  57. package/dist-lib/plist.cjs +1 -1
  58. package/dist-lib/plist.mjs +1 -1
  59. package/dist-lib/profiles.cjs +1 -1
  60. package/dist-lib/public-brand.cjs +1 -1
  61. package/dist-lib/public-origins-lib-esm.json +24 -24
  62. package/dist-lib/public-origins-lib.json +302 -289
  63. package/dist-lib/react-native-host-modules.cjs +1 -1
  64. package/dist-lib/react-native-host-modules.mjs +1 -1
  65. package/dist-lib/reap-browser.cjs +1 -1
  66. package/dist-lib/scripts/dev-server-scanner.cjs +1 -1
  67. package/dist-lib/sdk.cjs +21 -21
  68. package/dist-lib/sdk.mjs +21 -21
  69. package/dist-lib/skills.cjs +3622 -2962
  70. package/dist-lib/swift-compile.cjs +34 -3
  71. package/dist-lib/swift-compile.mjs +34 -3
  72. package/dist-lib/swift-package.cjs +1 -1
  73. package/dist-lib/swift-package.mjs +1 -1
  74. package/dist-lib/swift-submit.cjs +1 -1
  75. package/dist-lib/swift-submit.mjs +1 -1
  76. package/dist-lib/swift-toolchain.cjs +1 -1
  77. package/dist-lib/swift.cjs +1 -1
  78. package/dist-lib/vite-swift.cjs +129 -43
  79. package/dist-lib/vite.cjs +16 -4
  80. package/dist-lib/worklet-executable.cjs +1 -1
  81. package/dist-lib/worklet-executable.mjs +1 -1
  82. package/dist-types/packages/peach-engine/src/engine/scene-table.d.ts +2 -0
  83. package/dist-types/packages/peach-engine/src/render-worker/app-prefetch-contract.d.ts +5 -0
  84. package/dist-types/packages/peach-engine/src/render-worker/protocol.d.ts +2 -0
  85. package/dist-types/packages/peach-engine/src/render-worker/tree-sync-port.d.ts +5 -0
  86. package/kotlin/sdk.tar.gz +0 -0
  87. package/package.json +1 -1
  88. package/runtime-companion.json +1 -1
  89. package/sdk/ios/System/Library/Frameworks/Foundation.framework/Headers/Foundation.h +2 -0
  90. package/sdk/ios/System/Library/Frameworks/Foundation.framework/Headers/NSBundle.h +1 -1
  91. package/sdk/ios/System/Library/Frameworks/Foundation.framework/Headers/NSByteCountFormatter.h +1 -1
  92. package/sdk/ios/System/Library/Frameworks/Foundation.framework/Headers/NSCharacterSet.h +1 -1
  93. package/sdk/ios/System/Library/Frameworks/Foundation.framework/Headers/NSCompoundPredicate.h +1 -1
  94. package/sdk/ios/System/Library/Frameworks/Foundation.framework/Headers/NSDateIntervalFormatter.h +1 -1
  95. package/sdk/ios/System/Library/Frameworks/Foundation.framework/Headers/NSDecimalNumber.h +1 -1
  96. package/sdk/ios/System/Library/Frameworks/Foundation.framework/Headers/NSEnergyFormatter.h +1 -1
  97. package/sdk/ios/System/Library/Frameworks/Foundation.framework/Headers/NSExpression.h +1 -1
  98. package/sdk/ios/System/Library/Frameworks/Foundation.framework/Headers/NSFileHandle.h +2 -2
  99. package/sdk/ios/System/Library/Frameworks/Foundation.framework/Headers/NSISO8601DateFormatter.h +1 -1
  100. package/sdk/ios/System/Library/Frameworks/Foundation.framework/Headers/NSIndexSet.h +1 -1
  101. package/sdk/ios/System/Library/Frameworks/Foundation.framework/Headers/NSLengthFormatter.h +1 -1
  102. package/sdk/ios/System/Library/Frameworks/Foundation.framework/Headers/NSLock.h +3 -3
  103. package/sdk/ios/System/Library/Frameworks/Foundation.framework/Headers/NSMassFormatter.h +1 -1
  104. package/sdk/ios/System/Library/Frameworks/Foundation.framework/Headers/NSMeasurementFormatter.h +1 -1
  105. package/sdk/ios/System/Library/Frameworks/Foundation.framework/Headers/NSNotification.h +1 -1
  106. package/sdk/ios/System/Library/Frameworks/Foundation.framework/Headers/NSNotificationQueue.h +1 -1
  107. package/sdk/ios/System/Library/Frameworks/Foundation.framework/Headers/NSObjCRuntime.h +4 -0
  108. package/sdk/ios/System/Library/Frameworks/Foundation.framework/Headers/NSOrthography.h +1 -1
  109. package/sdk/ios/System/Library/Frameworks/Foundation.framework/Headers/NSScanner.h +1 -1
  110. package/sdk/ios/System/Library/Frameworks/Foundation.framework/Headers/NSThread.h +1 -1
  111. package/sdk/ios/System/Library/Frameworks/Foundation.framework/Headers/NSUnit.h +25 -25
  112. package/sdk/ios/System/Library/Frameworks/QuartzCore.framework/Headers/CAValueFunction.h +1 -1
  113. package/sdk/ios/System/Library/Frameworks/QuartzCore.framework/Headers/CoreAnimation.h +1 -0
  114. package/sdk/ios/System/Library/Frameworks/QuartzCore.framework/Modules/module.modulemap +1 -0
  115. package/sdk/ios/System/Library/Frameworks/UIKitText.framework/Headers/UIKitText.apinotes +14 -0
  116. package/src/android-layout-ids.ts +50 -0
  117. package/src/android-view-classes.ts +41 -0
  118. package/src/expo-native-workspace.ts +2 -3
  119. package/src/expo-swift-host.ts +6 -1
  120. package/src/java-module-abi.ts +2 -0
  121. package/src/javaAbiContract.ts +2 -0
  122. package/src/kotlin-app.ts +33 -7
  123. package/src/kotlin-host.ts +83 -6
  124. package/src/kotlin-maven-sources.ts +248 -0
  125. package/src/native-prebuilt.ts +36 -2
  126. package/src/native-swift-slices.ts +43 -2
  127. package/src/react-native-bridge-modules.ts +7 -1
  128. package/src/react-native-core-build.ts +176 -0
  129. package/src/react-native-core-digest.ts +1 -1
  130. package/src/react-native-core.ts +24 -7
  131. package/src/swift-packages.ts +3 -0
  132. package/src/swift-standin-emit.ts +9 -1
  133. package/src/swift-standins.ts +5 -2
  134. package/src/swift-wasm-prune.ts +41 -3
  135. package/src/turbo-compile.ts +2 -1
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.2198 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2200 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = '', __sootsim_import_meta_filename = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; __sootsim_import_meta_filename = __filename; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.2198 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2200 | (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
- /*! peach v0.1.2198 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2200 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = '', __sootsim_import_meta_filename = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; __sootsim_import_meta_filename = __filename; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.2198 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2200 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
2
2
 
3
3
  // src/cloud-contract.ts
4
4
  var RNX_CLOUD_MAX_ARTIFACT_BYTES = 40761776;
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.2198 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2200 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = '', __sootsim_import_meta_filename = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; __sootsim_import_meta_filename = __filename; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.2198 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2200 | (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
- /*! peach v0.1.2198 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2200 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = '', __sootsim_import_meta_filename = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; __sootsim_import_meta_filename = __filename; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.2198 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2200 | (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
- /*! peach v0.1.2198 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2200 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = '', __sootsim_import_meta_filename = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; __sootsim_import_meta_filename = __filename; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.2198 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2200 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
2
2
 
3
3
  // ../contrast-runtime-delivery/src/version.ts
4
4
  function isValidRuntimeVersion(value) {
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.2198 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2200 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = '', __sootsim_import_meta_filename = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; __sootsim_import_meta_filename = __filename; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -1636,7 +1636,7 @@ function renderActivityIdleScript({
1636
1636
  const requiredStillMs = ${Math.max(1, Math.round(requiredStillMs))}
1637
1637
  let deadline = start + budgetMs
1638
1638
  // with no tenant running, nothing an app draws can move.
1639
- const host = window.__sootsimRenderHost ?? null
1639
+ const host = globalThis.__sootsimRenderHost ?? null
1640
1640
  // a runtime that predates the animating flag reports render work as busy.
1641
1641
  const moving = (activity) => activity.animating ?? activity.busy
1642
1642
  const initial = host ? host.getRenderActivity() : null
@@ -1664,10 +1664,10 @@ function renderActivityIdleScript({
1664
1664
  // budget proves the new screen. a loaded host runs a push past a tap's
1665
1665
  // budget, so the transition carries its own timeout.
1666
1666
  let transitionEndedAt = null
1667
- let transitionPending = budgetMs > 120 && typeof window.__sootsimTest?.waitForScreenTransitions === 'function'
1667
+ let transitionPending = budgetMs > 120 && typeof globalThis.__sootsimTest?.waitForScreenTransitions === 'function'
1668
1668
  if (transitionPending) {
1669
1669
  Promise.resolve()
1670
- .then(() => window.__sootsimTest.waitForScreenTransitions({
1670
+ .then(() => globalThis.__sootsimTest.waitForScreenTransitions({
1671
1671
  timeoutMs: ${Math.max(0, Math.round(transitionTimeoutMs))},
1672
1672
  settleMs: 64,
1673
1673
  startWindowMs: ${Math.max(0, Math.round(transitionStartWindowMs))},
@@ -1753,12 +1753,12 @@ async function waitForSootsimIdle({
1753
1753
  transitionTimeoutMs
1754
1754
  }) : `(async () => {
1755
1755
  const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms))
1756
- // tests inject a virtual clock as window.__sootsimIdleClock ({ now, sleep })
1756
+ // tests inject a virtual clock as globalThis.__sootsimIdleClock ({ now, sleep })
1757
1757
  // so the stillness window is proven in virtual time: real-timer polls under
1758
1758
  // load stretch past a tight budget on a still screen. the busy guards below
1759
1759
  // stay on the real setTimeout: virtual time advances only on poll sleeps,
1760
1760
  // never on a guard that loses its race to an instant read.
1761
- const idleClock = window.__sootsimIdleClock
1761
+ const idleClock = globalThis.__sootsimIdleClock
1762
1762
  const hasIdleClock =
1763
1763
  idleClock && typeof idleClock.now === 'function' && typeof idleClock.sleep === 'function'
1764
1764
  const clockNow = hasIdleClock ? () => idleClock.now() : () => Date.now()
@@ -1782,7 +1782,7 @@ async function waitForSootsimIdle({
1782
1782
  const fullGeometry = ${!maestro && maxMs >= 1e3 ? "true" : "false"}
1783
1783
  const requiredStillMs = paintStill ? 0 : ${Math.max(1, Math.round(stablePolls)) * Math.max(1, Math.round(pollMs))}
1784
1784
  const minimumStablePolls = paintStill ? 1 : ${Math.min(2, Math.max(1, Math.round(stablePolls)))}
1785
- const composite = paintStill ? window.SootSim?.bridges?.liveComposite : null
1785
+ const composite = paintStill ? globalThis.SootSim?.bridges?.liveComposite : null
1786
1786
  if (paintStill && !composite) {
1787
1787
  return { settled: false, elapsed: clockNow() - start, blockedBy: 'screen pixels unavailable' }
1788
1788
  }
@@ -1796,7 +1796,7 @@ async function waitForSootsimIdle({
1796
1796
  // it outlives this wait: a revision still current when a later wait
1797
1797
  // polls names the same geometry, so a step that follows a settled one
1798
1798
  // proves an unchanged screen without walking the tree again.
1799
- const geometry = (window.__peachSettleGeometry ??= { revision: null, hierarchy: null })
1799
+ const geometry = (globalThis.__peachSettleGeometry ??= { revision: null, hierarchy: null })
1800
1800
  try {
1801
1801
 
1802
1802
  // discover transitions while observing layout. when motion starts,
@@ -1806,7 +1806,7 @@ async function waitForSootsimIdle({
1806
1806
  // the budget restarts once it drains.
1807
1807
  let transitionWait = (async () => {
1808
1808
  try {
1809
- const wfst = window.__sootsimTest?.waitForScreenTransitions
1809
+ const wfst = globalThis.__sootsimTest?.waitForScreenTransitions
1810
1810
  if (typeof wfst === 'function' && budgetMs > 120) {
1811
1811
  const transition = await wfst({
1812
1812
  timeoutMs: ${Math.max(0, Math.round(transitionTimeoutMs))},
@@ -1862,19 +1862,19 @@ async function waitForSootsimIdle({
1862
1862
  // animations in both realms: a worklet can move the app while the
1863
1863
  // tenant's basic animation flag and last presented pixels read still.
1864
1864
  const accessibilityRead = maestro
1865
- ? answer(() => window.__sootsimTest.captureAccessibilityTree()).catch(() => null)
1865
+ ? answer(() => globalThis.__sootsimTest.captureAccessibilityTree()).catch(() => null)
1866
1866
  : null
1867
1867
  const motionRead = strict || paintStill
1868
- ? answer(() => window.__sootsimTest?.listAnimations?.()).catch(() => null)
1868
+ ? answer(() => globalThis.__sootsimTest?.listAnimations?.()).catch(() => null)
1869
1869
  : null
1870
- const statsRead = answer(() => window.__sootsimRenderHost?.queryStats?.()).catch(() => null)
1870
+ const statsRead = answer(() => globalThis.__sootsimRenderHost?.queryStats?.()).catch(() => null)
1871
1871
  // image preparation ends in the tenant before the compositor decodes
1872
1872
  // and realizes its pixels. both owners must finish before settling.
1873
1873
  // the compositor rejects a stats request it is too busy to answer.
1874
- const compositorRead = answer(() => window.__sootsimCompositor.getStats({ detail: 'readiness' })).catch(() => BUSY)
1875
- const countsRead = answer(() => window.__sootsimTest?.getRequestCounts?.()).catch(() => null)
1874
+ const compositorRead = answer(() => globalThis.__sootsimCompositor.getStats({ detail: 'readiness' })).catch(() => BUSY)
1875
+ const countsRead = answer(() => globalThis.__sootsimTest?.getRequestCounts?.()).catch(() => null)
1876
1876
  // the mounted hierarchy in render-worker mode comes from the test
1877
- // bridge: window.__sootsimRoot is an empty placeholder there, so a
1877
+ // bridge: globalThis.__sootsimRoot is an empty placeholder there, so a
1878
1878
  // walk over it hashes every screen to the same empty string while
1879
1879
  // it moves. listInspectable is the worker-backed read describe
1880
1880
  // uses; a worker too busy to answer it reads as unsettled. tight
@@ -1882,13 +1882,13 @@ async function waitForSootsimIdle({
1882
1882
  // it walks every node, so a poll whose geometry revision matches the
1883
1883
  // last read, in this wait or an earlier one, reuses that read.
1884
1884
  const hierarchyRead =
1885
- fullGeometry && typeof window.__sootsimTest?.listInspectable === 'function'
1886
- ? answer(() => window.__sootsimTest.getGeometryRevision?.())
1885
+ fullGeometry && typeof globalThis.__sootsimTest?.listInspectable === 'function'
1886
+ ? answer(() => globalThis.__sootsimTest.getGeometryRevision?.())
1887
1887
  .catch(() => null)
1888
1888
  .then((revision) => {
1889
1889
  if (revision === BUSY) return BUSY
1890
1890
  if (typeof revision === 'string' && geometry.revision === revision) return geometry.hierarchy
1891
- return answer(() => window.__sootsimTest.listInspectable({}))
1891
+ return answer(() => globalThis.__sootsimTest.listInspectable({}))
1892
1892
  .catch(() => null)
1893
1893
  .then((hierarchy) => {
1894
1894
  const kept = typeof revision === 'string' && Array.isArray(hierarchy)
@@ -1928,7 +1928,7 @@ async function waitForSootsimIdle({
1928
1928
  return {
1929
1929
  runtimeUnsupported: {
1930
1930
  error: 'runtime_readiness_unsupported',
1931
- runtimeVersion: window.__sootsimRuntimeVersion || 'unknown',
1931
+ runtimeVersion: globalThis.__sootsimRuntimeVersion || 'unknown',
1932
1932
  missingFields,
1933
1933
  },
1934
1934
  }
@@ -1974,7 +1974,7 @@ async function waitForSootsimIdle({
1974
1974
  // pre-motion baseline to compare against.
1975
1975
  const motionStill = !workerBusy && !animating && !layoutDirty && !shellAnimating
1976
1976
  const nodeCountRead = motionStill
1977
- ? answer(() => window.__sootsimTest?.getWindowNodeCount?.()).catch(() => null)
1977
+ ? answer(() => globalThis.__sootsimTest?.getWindowNodeCount?.()).catch(() => null)
1978
1978
  : null
1979
1979
  const compositor = await compositorRead
1980
1980
  if (compositor === BUSY) {
@@ -2046,7 +2046,7 @@ async function waitForSootsimIdle({
2046
2046
  )
2047
2047
  }
2048
2048
  } else {
2049
- const root = window.__sootsimRoot
2049
+ const root = globalThis.__sootsimRoot
2050
2050
  if (root) {
2051
2051
  const walk = (n) => {
2052
2052
  if (n.layout && n.layout.width > 0) {
@@ -2512,7 +2512,7 @@ function isValidRuntimeVersion(value) {
2512
2512
  }
2513
2513
 
2514
2514
  // runtime-companion.json
2515
- var runtime_companion_default = { abi: 1, sha256: "38d58f4713cbf87e8d4cde206f6a1fb9bf3898b6b885f45db610ad1fccde083a", file: "node/cli-38d58f4713cbf87e8d4cde206f6a1fb9bf3898b6b885f45db610ad1fccde083a.cjs" };
2515
+ var runtime_companion_default = { abi: 1, sha256: "5aec79ac0fcea933862e7e373e0d167401e0d891c835d195b7f48039c87add60", file: "node/cli-5aec79ac0fcea933862e7e373e0d167401e0d891c835d195b7f48039c87add60.cjs" };
2516
2516
 
2517
2517
  // src/answeredNativePackages.ts
2518
2518
  init_define_SWIFT_COVERAGE_SOURCE_DIGESTS();
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.2198 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2200 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = '', __sootsim_import_meta_filename = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; __sootsim_import_meta_filename = __filename; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;