peachsim 0.1.898 → 0.1.900

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 (83) hide show
  1. package/cli/app-fonts.ts +27 -2
  2. package/cli/commands/box/bundle-plane.ts +13 -4
  3. package/cli/commands/box.ts +22 -1
  4. package/cli/commands/platform.ts +15 -2
  5. package/cli/commands/skills.ts +125 -10
  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/bundle-channel.cjs +3 -3
  21. package/dist-lib/capture-contract.cjs +1 -1
  22. package/dist-lib/capture-contract.mjs +1 -1
  23. package/dist-lib/cli-constants.cjs +1 -1
  24. package/dist-lib/cloud-contract.cjs +1 -1
  25. package/dist-lib/cloud-contract.mjs +1 -1
  26. package/dist-lib/cloud-test-args.cjs +1 -1
  27. package/dist-lib/cloud-test-args.mjs +1 -1
  28. package/dist-lib/cloud.cjs +1 -1
  29. package/dist-lib/cloud.mjs +1 -1
  30. package/dist-lib/config.cjs +1 -1
  31. package/dist-lib/detox/index.cjs +1 -1
  32. package/dist-lib/dev-bundle-resolution.cjs +1 -1
  33. package/dist-lib/expo-swift-bundle.cjs +3 -3
  34. package/dist-lib/expo-swift-metadata.cjs +1 -1
  35. package/dist-lib/expo-swift-metadata.mjs +1 -1
  36. package/dist-lib/home-paths.cjs +1 -1
  37. package/dist-lib/host/bridge-host.cjs +3 -3
  38. package/dist-lib/host/fetch-proxy-handler.cjs +1 -1
  39. package/dist-lib/host/fetch-proxy-overrides.cjs +1 -1
  40. package/dist-lib/host/fetch-proxy-overrides.mjs +1 -1
  41. package/dist-lib/host/replacement-module-handler.cjs +1 -1
  42. package/dist-lib/host/websocket-proxy.cjs +1 -1
  43. package/dist-lib/index.cjs +1 -1
  44. package/dist-lib/jump-to-source-babel.cjs +1 -1
  45. package/dist-lib/jump-to-source-native.cjs +1 -1
  46. package/dist-lib/kotlin-host.cjs +1 -1
  47. package/dist-lib/menu.cjs +5 -4
  48. package/dist-lib/menu.mjs +5 -4
  49. package/dist-lib/metro-fingerprint-registry.cjs +1 -1
  50. package/dist-lib/metro-fingerprint-registry.mjs +1 -1
  51. package/dist-lib/metro-production-bundle.cjs +1 -1
  52. package/dist-lib/metro-production-bundle.mjs +1 -1
  53. package/dist-lib/metro.cjs +1 -1
  54. package/dist-lib/native-app-identity.cjs +1 -1
  55. package/dist-lib/native-app-identity.mjs +1 -1
  56. package/dist-lib/native-firebase-metadata.cjs +1 -1
  57. package/dist-lib/native-firebase-metadata.mjs +1 -1
  58. package/dist-lib/plist.cjs +1 -1
  59. package/dist-lib/plist.mjs +1 -1
  60. package/dist-lib/profiles.cjs +1 -1
  61. package/dist-lib/public-brand.cjs +1 -1
  62. package/dist-lib/react-native-host-modules.cjs +1 -1
  63. package/dist-lib/react-native-host-modules.mjs +1 -1
  64. package/dist-lib/render-mode.cjs +1 -1
  65. package/dist-lib/scripts/dev-server-scanner.cjs +1 -1
  66. package/dist-lib/sdk.cjs +1 -1
  67. package/dist-lib/sdk.mjs +1 -1
  68. package/dist-lib/skills.cjs +104 -9
  69. package/dist-lib/swift-compile.cjs +1 -1
  70. package/dist-lib/swift-compile.mjs +1 -1
  71. package/dist-lib/swift-package.cjs +1 -1
  72. package/dist-lib/swift-package.mjs +1 -1
  73. package/dist-lib/swift-submit.cjs +1 -1
  74. package/dist-lib/swift-submit.mjs +1 -1
  75. package/dist-lib/swift-toolchain.cjs +1 -1
  76. package/dist-lib/swift.cjs +1 -1
  77. package/dist-lib/vite-swift.cjs +1 -1
  78. package/dist-lib/vite.cjs +1 -1
  79. package/dist-lib/worklet-executable.cjs +1 -1
  80. package/dist-lib/worklet-executable.mjs +1 -1
  81. package/package.json +1 -1
  82. package/src/expo-swift-host.ts +10 -2
  83. package/src/menu.ts +10 -3
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.898 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.900 | (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;
@@ -17712,8 +17712,8 @@ async function collectExpoSwiftSources(appRoot) {
17712
17712
  const files2 = {};
17713
17713
  const classes = [];
17714
17714
  for (const module2 of modules) {
17715
- const className = module2 && typeof module2 === "object" ? Reflect.get(module2, "class") : null;
17716
- const name2 = module2 && typeof module2 === "object" ? Reflect.get(module2, "name") : null;
17715
+ const className = typeof module2 === "string" ? module2 : module2 && typeof module2 === "object" ? Reflect.get(module2, "class") : null;
17716
+ const name2 = typeof module2 === "string" ? null : module2 && typeof module2 === "object" ? Reflect.get(module2, "name") : null;
17717
17717
  if (typeof className !== "string" || !/^[A-Za-z_][A-Za-z0-9_]*(\.[A-Za-z_][A-Za-z0-9_]*)*$/.test(className) || name2 !== null && typeof name2 !== "string")
17718
17718
  throw new Error(`${sourceRoot}: invalid Expo Apple module descriptor`);
17719
17719
  classes.push({
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.898 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.900 | (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.898 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.900 | (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.898 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.900 | (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.898 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.900 | (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.898 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.900 | (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.898 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.900 | (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.898 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.900 | (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.898 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.900 | (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.898 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.900 | (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.898 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.900 | (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;
@@ -89,15 +89,16 @@ var SOOTSIM_RENDER_RESOLUTION_LABELS = {
89
89
  medium: "Medium",
90
90
  low: "Low"
91
91
  };
92
- var SOOTSIM_SCREEN_EFFECTS = ["none", "wireframe", "blueprint", "panel"];
92
+ var SOOTSIM_SCREEN_EFFECTS = ["none", "wireframe", "blueprint", "panel", "green"];
93
93
  function isSootSimScreenEffect(value) {
94
- return value === "none" || value === "wireframe" || value === "blueprint" || value === "panel";
94
+ return value === "none" || value === "wireframe" || value === "blueprint" || value === "panel" || value === "green";
95
95
  }
96
96
  var SOOTSIM_SCREEN_EFFECT_LABELS = {
97
97
  none: "None",
98
98
  wireframe: "Wireframe",
99
99
  blueprint: "Blueprint",
100
- panel: "Panel"
100
+ panel: "Panel",
101
+ green: "Green"
101
102
  };
102
103
  function buildSootSimMenuDefs(state, deviceChoices) {
103
104
  return [
package/dist-lib/menu.mjs CHANGED
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.898 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.900 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/public-brand.ts
4
4
  var name = "Peach";
@@ -42,15 +42,16 @@ var SOOTSIM_RENDER_RESOLUTION_LABELS = {
42
42
  medium: "Medium",
43
43
  low: "Low"
44
44
  };
45
- var SOOTSIM_SCREEN_EFFECTS = ["none", "wireframe", "blueprint", "panel"];
45
+ var SOOTSIM_SCREEN_EFFECTS = ["none", "wireframe", "blueprint", "panel", "green"];
46
46
  function isSootSimScreenEffect(value) {
47
- return value === "none" || value === "wireframe" || value === "blueprint" || value === "panel";
47
+ return value === "none" || value === "wireframe" || value === "blueprint" || value === "panel" || value === "green";
48
48
  }
49
49
  var SOOTSIM_SCREEN_EFFECT_LABELS = {
50
50
  none: "None",
51
51
  wireframe: "Wireframe",
52
52
  blueprint: "Blueprint",
53
- panel: "Panel"
53
+ panel: "Panel",
54
+ green: "Green"
54
55
  };
55
56
  function buildSootSimMenuDefs(state, deviceChoices) {
56
57
  return [
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.898 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.900 | (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.898 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.900 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/is-record.ts
4
4
  function isRecord(value) {
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.898 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.900 | (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.898 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.900 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/metro-production-bundle.ts
4
4
  var RNXSIM_METRO_MODULE_PATHS_PREFIX = "globalThis.__sootsimModulePaths=";
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.898 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.900 | (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.898 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.900 | (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.898 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.900 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/native-app-identity.ts
4
4
  var NATIVE_APP_IDENTITY_PREFIX = "globalThis.__sootsimNativeAppIdentity=";
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.898 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.900 | (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.898 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.900 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/native-firebase-metadata.ts
4
4
  var PREFIX = "globalThis.__peachNativeFirebaseConfig=";
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.898 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.900 | (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.898 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.900 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/plist.ts
4
4
  import plist from "plist";
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.898 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.900 | (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.898 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.900 | (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.898 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.900 | (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.898 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.900 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/react-native-host-modules.ts
4
4
  var REACT_NATIVE_PASSTHROUGH_SPECIFIERS = [
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.898 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.900 | (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.898 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.900 | (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/sdk.cjs CHANGED
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.898 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.900 | (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/sdk.mjs CHANGED
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.898 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.900 | (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.898 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.900 | (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;
@@ -4992,6 +4992,8 @@ var init_supported_native_packages = __esm({
4992
4992
  // coverage
4993
4993
  "react-native-launch-arguments",
4994
4994
  // coverage
4995
+ "react-native-legal",
4996
+ // seam
4995
4997
  "react-native-linear-gradient",
4996
4998
  // seam+coverage
4997
4999
  "react-native-linkedin-login",
@@ -11991,9 +11993,10 @@ var init_registry = __esm({
11991
11993
  versions: [
11992
11994
  {
11993
11995
  range: ">=1.0.0",
11994
- coverage: 0,
11995
- note: "the reference iOS simulator performs this package's behavior. Peach currently provides only this unsupported shape: launchLicenseList accepted; addLicense / setLibraryName accepted. imports and API shape receive no behavior credit",
11996
- missing: "no native UI; consumers should render licenses themselves on web"
11996
+ coverage: 0.75,
11997
+ note: "published ReactNativeLegal.js runs unchanged against a ReactNativeLegalModule seam that mirrors the native no-generated-data regime per platform",
11998
+ working: "getLibrariesAsync resolves {} on ios and rejects with the missing-resource error on android; launchLicenseListScreen is a no-op on ios, matching native without the LicensePlist bundle",
11999
+ missing: "generated-data regime (LicensePlist plist, aboutlibraries json); android launch activity path unverified"
11997
12000
  }
11998
12001
  ]
11999
12002
  },
@@ -37660,8 +37663,8 @@ async function collectExpoSwiftSources(appRoot) {
37660
37663
  const files2 = {};
37661
37664
  const classes = [];
37662
37665
  for (const module2 of modules) {
37663
- const className = module2 && typeof module2 === "object" ? Reflect.get(module2, "class") : null;
37664
- const name2 = module2 && typeof module2 === "object" ? Reflect.get(module2, "name") : null;
37666
+ const className = typeof module2 === "string" ? module2 : module2 && typeof module2 === "object" ? Reflect.get(module2, "class") : null;
37667
+ const name2 = typeof module2 === "string" ? null : module2 && typeof module2 === "object" ? Reflect.get(module2, "name") : null;
37665
37668
  if (typeof className !== "string" || !/^[A-Za-z_][A-Za-z0-9_]*(\.[A-Za-z_][A-Za-z0-9_]*)*$/.test(className) || name2 !== null && typeof name2 !== "string")
37666
37669
  throw new Error(`${sourceRoot}: invalid Expo Apple module descriptor`);
37667
37670
  classes.push({
@@ -49612,6 +49615,9 @@ var init_app_config = __esm({
49612
49615
  function discoverNativeLinkedAppFonts(opts) {
49613
49616
  const metroOrigin = loopbackOriginOf(opts.bundleUrl);
49614
49617
  if (!metroOrigin) return [];
49618
+ return (0, import_config_plugin_fonts.metroFontSpecsFromPaths)(discoverNativeLinkedAppFontPaths(opts), metroOrigin);
49619
+ }
49620
+ function discoverNativeLinkedAppFontPaths(opts) {
49615
49621
  const project = resolveAppProject(opts.projectDir);
49616
49622
  const selectedAppDir = project?.appDir ?? null;
49617
49623
  if (!selectedAppDir) return [];
@@ -49698,7 +49704,7 @@ function discoverNativeLinkedAppFonts(opts) {
49698
49704
  if (!relativeRoot.startsWith("..") && !import_node_path39.default.isAbsolute(relativeRoot)) {
49699
49705
  collectFontFiles(root, relativeRoot.split(import_node_path39.default.sep).join("/"));
49700
49706
  }
49701
- const bundleDir = import_node_path39.default.posix.dirname(new URL(opts.bundleUrl).pathname).replace(/^\/+/, "");
49707
+ const bundleDir = import_node_path39.default.posix.dirname(opts.bundleUrl ? new URL(opts.bundleUrl).pathname : "/").replace(/^\/+/, "");
49702
49708
  const appRelativeDir = bundleDir.split("/").join(import_node_path39.default.sep);
49703
49709
  const metroRootCandidates = [selectedAppDir];
49704
49710
  if (bundleDir && selectedAppDir.endsWith(import_node_path39.default.sep + appRelativeDir)) {
@@ -49789,7 +49795,7 @@ function discoverNativeLinkedAppFonts(opts) {
49789
49795
  } catch {
49790
49796
  }
49791
49797
  }
49792
- return (0, import_config_plugin_fonts.metroFontSpecsFromPaths)(fontPaths, metroOrigin);
49798
+ return [...new Set(fontPaths)];
49793
49799
  }
49794
49800
  async function resolveMetroProjectRoot(bundleUrl, opts) {
49795
49801
  const origin = loopbackOriginOf(bundleUrl);
@@ -53107,9 +53113,98 @@ function targetFromHome(envName, fallbackDir) {
53107
53113
  const home = process.env[envName] || path35.join(os9.homedir(), fallbackDir);
53108
53114
  return path35.join(home, "skills");
53109
53115
  }
53116
+ function codexTargets() {
53117
+ const homes = /* @__PURE__ */ new Map();
53118
+ const userHome = process.env.HOME || os9.homedir();
53119
+ const primaryCodexHome = process.env.CODEX_HOME || path35.join(userHome, ".codex");
53120
+ homes.set(path35.resolve(primaryCodexHome), "codex");
53121
+ const tmCodexHomes = process.env.TM_CODEX_HOMES;
53122
+ if (tmCodexHomes) {
53123
+ for (const h of tmCodexHomes.split(path35.delimiter)) {
53124
+ if (h.trim()) {
53125
+ const resolved = path35.resolve(h.trim());
53126
+ if (!homes.has(resolved)) {
53127
+ homes.set(resolved, path35.basename(resolved).replace(/^\./, ""));
53128
+ }
53129
+ }
53130
+ }
53131
+ }
53132
+ const tmHome = process.env.TM_HOME || path35.join(userHome, ".team-machine");
53133
+ const enginePath = path35.join(tmHome, "engine.yaml");
53134
+ if (fs30.existsSync(enginePath)) {
53135
+ try {
53136
+ const content = fs30.readFileSync(enginePath, "utf8");
53137
+ let inCodex = false;
53138
+ let inAccounts = false;
53139
+ let currentAccount = "";
53140
+ for (const line of content.split("\n")) {
53141
+ const indent = line.search(/\S/);
53142
+ const trimmed = line.trim();
53143
+ if (indent === -1) continue;
53144
+ if (indent === 4) {
53145
+ inCodex = trimmed === "codex:";
53146
+ inAccounts = false;
53147
+ currentAccount = "";
53148
+ continue;
53149
+ }
53150
+ if (!inCodex) continue;
53151
+ if (indent === 6 && trimmed === "accounts:") {
53152
+ inAccounts = true;
53153
+ currentAccount = "";
53154
+ continue;
53155
+ }
53156
+ if (!inAccounts) continue;
53157
+ if (indent === 8 && trimmed.endsWith(":")) {
53158
+ currentAccount = trimmed.slice(0, -1).trim();
53159
+ continue;
53160
+ }
53161
+ if (indent >= 10 && currentAccount) {
53162
+ const match = /^home:\s*(.+)$/.exec(trimmed);
53163
+ if (match) {
53164
+ let homeDir = match[1].trim();
53165
+ if (homeDir.startsWith("~")) {
53166
+ homeDir = path35.join(userHome, homeDir.slice(1));
53167
+ }
53168
+ const resolved = path35.resolve(homeDir);
53169
+ if (!homes.has(resolved)) {
53170
+ homes.set(resolved, `codex-${currentAccount}`);
53171
+ }
53172
+ }
53173
+ }
53174
+ }
53175
+ } catch {
53176
+ }
53177
+ }
53178
+ try {
53179
+ for (const entry of fs30.readdirSync(userHome)) {
53180
+ if (entry.startsWith(".codex-")) {
53181
+ const fullPath = path35.join(userHome, entry);
53182
+ try {
53183
+ const stat2 = fs30.statSync(fullPath);
53184
+ if (stat2.isDirectory()) {
53185
+ const resolved = path35.resolve(fullPath);
53186
+ if (!homes.has(resolved)) {
53187
+ homes.set(resolved, entry.replace(/^\./, ""));
53188
+ }
53189
+ }
53190
+ } catch {
53191
+ }
53192
+ }
53193
+ }
53194
+ } catch {
53195
+ }
53196
+ const targets = [];
53197
+ for (const [homePath, label] of homes) {
53198
+ targets.push({
53199
+ label,
53200
+ dir: path35.join(homePath, "skills")
53201
+ });
53202
+ }
53203
+ return targets;
53204
+ }
53110
53205
  function defaultAgentTargets() {
53111
53206
  return [
53112
- { label: "codex", dir: targetFromHome("CODEX_HOME", ".codex") },
53207
+ ...codexTargets(),
53113
53208
  { label: "claude", dir: targetFromHome("CLAUDE_CONFIG_DIR", ".claude") }
53114
53209
  ];
53115
53210
  }
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.898 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.900 | (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.898 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.900 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/swift-compile.ts
4
4
  import { execFile as execFile2, execFileSync } from "node:child_process";
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.898 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.900 | (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.898 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.900 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/swift-package.ts
4
4
  function isSwiftManifestFile(file) {
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.898 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.900 | (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.898 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.900 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/swift-submit.ts
4
4
  var SWIFT_COMPILE_PATH = "/api/swift-compile";
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.898 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.900 | (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.898 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.900 | (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.898 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.900 | (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/vite.cjs CHANGED
@@ -1,4 +1,4 @@
1
- /*! rnx v0.1.898 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.900 | (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.898 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.900 | (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.898 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! rnx v0.1.900 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/worklet-executable.ts
4
4
  import { parse } from "acorn";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "peachsim",
3
- "version": "0.1.898",
3
+ "version": "0.1.900",
4
4
  "description": "Vite and Metro plugins, testing drivers, and SDK exports for peach.",
5
5
  "author": "Tamagui LLC",
6
6
  "license": "SEE LICENSE IN LICENSE",
@@ -125,9 +125,17 @@ export async function collectExpoSwiftSources(
125
125
  const classes: { name: string; registration: string }[] = []
126
126
  for (const module of modules) {
127
127
  const className =
128
- module && typeof module === 'object' ? Reflect.get(module, 'class') : null
128
+ typeof module === 'string'
129
+ ? module
130
+ : module && typeof module === 'object'
131
+ ? Reflect.get(module, 'class')
132
+ : null
129
133
  const name =
130
- module && typeof module === 'object' ? Reflect.get(module, 'name') : null
134
+ typeof module === 'string'
135
+ ? null
136
+ : module && typeof module === 'object'
137
+ ? Reflect.get(module, 'name')
138
+ : null
131
139
  if (
132
140
  typeof className !== 'string' ||
133
141
  !/^[A-Za-z_][A-Za-z0-9_]*(\.[A-Za-z_][A-Za-z0-9_]*)*$/.test(className) ||
package/src/menu.ts CHANGED
@@ -70,11 +70,17 @@ export const SOOTSIM_RENDER_RESOLUTION_LABELS: Record<SootSimRenderResolution, s
70
70
  // screen effect: the real rendering, or one of the presentation looks the
71
71
  // engine's wireframe store draws. 'wireframe' is the clean structural sketch;
72
72
  // the others are its screen-space styles that ship as named effects.
73
- export type SootSimScreenEffect = 'none' | 'wireframe' | 'blueprint' | 'panel'
74
- export const SOOTSIM_SCREEN_EFFECTS = ['none', 'wireframe', 'blueprint', 'panel'] as const
73
+ export type SootSimScreenEffect = 'none' | 'wireframe' | 'blueprint' | 'panel' | 'green'
74
+ export const SOOTSIM_SCREEN_EFFECTS = ['none', 'wireframe', 'blueprint', 'panel', 'green'] as const
75
75
 
76
76
  export function isSootSimScreenEffect(value: unknown): value is SootSimScreenEffect {
77
- return value === 'none' || value === 'wireframe' || value === 'blueprint' || value === 'panel'
77
+ return (
78
+ value === 'none' ||
79
+ value === 'wireframe' ||
80
+ value === 'blueprint' ||
81
+ value === 'panel' ||
82
+ value === 'green'
83
+ )
78
84
  }
79
85
 
80
86
  export const SOOTSIM_SCREEN_EFFECT_LABELS: Record<SootSimScreenEffect, string> = {
@@ -82,6 +88,7 @@ export const SOOTSIM_SCREEN_EFFECT_LABELS: Record<SootSimScreenEffect, string> =
82
88
  wireframe: 'Wireframe',
83
89
  blueprint: 'Blueprint',
84
90
  panel: 'Panel',
91
+ green: 'Green',
85
92
  }
86
93
 
87
94
  export type SootSimMenuItemDef =