peachsim 0.1.627 → 0.1.628
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/cli/bin.ts +6 -2
- package/cli/bridge-flow-runner.ts +79 -72
- package/cli/commands/cleanup.ts +6 -6
- package/cli/commands/control.ts +4 -5
- package/cli/commands/detox.ts +25 -11
- package/cli/commands/flow.ts +3 -2
- package/cli/commands/inspect.ts +22 -37
- package/cli/commands/mode.ts +11 -7
- package/cli/commands/report-issue.ts +1 -1
- package/cli/commands/setup.ts +16 -11
- package/cli/commands/show-touches-mode.ts +33 -0
- package/cli/commands/skills.ts +16 -0
- package/cli/commands/test.ts +8 -1
- package/cli/commands/welcome.ts +3 -3
- package/cli/drivers/playwright-sim-host.ts +6 -5
- package/cli/help-core.ts +9 -4
- package/cli/internal-child.ts +14 -2
- package/cli/levenshtein.ts +27 -0
- package/cli/main.ts +28 -18
- package/cli/ws-bridge.ts +3 -2
- package/detox/index.ts +234 -7
- package/dist-lib/agent-daemon-client.cjs +1 -1
- package/dist-lib/agent-events.cjs +1 -1
- package/dist-lib/agent-identity.cjs +1 -1
- package/dist-lib/agent-sessions.cjs +1 -1
- package/dist-lib/attached-projects.cjs +1 -1
- package/dist-lib/auth/shared-session.cjs +1 -1
- package/dist-lib/backend-origin.cjs +1 -1
- package/dist-lib/beta.cjs +1 -1
- package/dist-lib/beta.mjs +1 -1
- package/dist-lib/bridge-constants.cjs +1 -1
- package/dist-lib/bridge-contract-input.cjs +1 -1
- package/dist-lib/bridge-contract-input.mjs +1 -1
- package/dist-lib/bridge-contract.cjs +1 -1
- package/dist-lib/bridge-contract.mjs +1 -1
- package/dist-lib/capture-contract.cjs +1 -1
- package/dist-lib/capture-contract.mjs +1 -1
- package/dist-lib/cli-constants.cjs +1 -1
- package/dist-lib/cloud-contract.cjs +1 -1
- package/dist-lib/cloud-contract.mjs +1 -1
- package/dist-lib/cloud-test-args.cjs +1 -1
- package/dist-lib/cloud-test-args.mjs +1 -1
- package/dist-lib/cloud.cjs +1 -1
- package/dist-lib/cloud.mjs +1 -1
- package/dist-lib/config.cjs +1 -1
- package/dist-lib/detox/index.cjs +170 -13
- package/dist-lib/dev-bundle-resolution.cjs +2 -2
- package/dist-lib/home-paths.cjs +1 -1
- package/dist-lib/host/bridge-host.cjs +42 -37
- package/dist-lib/host/fetch-proxy-handler.cjs +1 -1
- package/dist-lib/host/fetch-proxy-overrides.cjs +1 -1
- package/dist-lib/host/fetch-proxy-overrides.mjs +1 -1
- package/dist-lib/host/replacement-module-handler.cjs +1 -1
- package/dist-lib/host/websocket-proxy.cjs +1 -1
- package/dist-lib/index.cjs +44 -5
- package/dist-lib/jump-to-source-babel.cjs +1 -1
- package/dist-lib/jump-to-source-native.cjs +1 -1
- package/dist-lib/menu.cjs +7 -1
- package/dist-lib/menu.mjs +7 -1
- package/dist-lib/metro-fingerprint-registry.cjs +1 -1
- package/dist-lib/metro-fingerprint-registry.mjs +1 -1
- package/dist-lib/metro-production-bundle.cjs +1 -1
- package/dist-lib/metro-production-bundle.mjs +1 -1
- package/dist-lib/metro.cjs +43 -4
- package/dist-lib/profiles.cjs +1 -1
- package/dist-lib/public-brand.cjs +1 -1
- package/dist-lib/react-native-host-modules.cjs +1 -1
- package/dist-lib/react-native-host-modules.mjs +1 -1
- package/dist-lib/render-mode.cjs +1 -1
- package/dist-lib/scripts/dev-server-scanner.cjs +1 -1
- package/dist-lib/sdk.cjs +1 -1
- package/dist-lib/sdk.mjs +1 -1
- package/dist-lib/skills.cjs +140 -149
- package/dist-lib/swift-compile.cjs +1 -1
- package/dist-lib/swift-compile.mjs +1 -1
- package/dist-lib/swift-package.cjs +1 -1
- package/dist-lib/swift-package.mjs +1 -1
- package/dist-lib/swift-submit.cjs +1 -1
- package/dist-lib/swift-submit.mjs +1 -1
- package/dist-lib/swift.cjs +7234 -7069
- package/dist-lib/vite-kotlin.cjs +1 -1
- package/dist-lib/vite-swift.cjs +1 -1
- package/dist-lib/vite.cjs +43 -4
- package/package.json +1 -1
- package/skills/contrast/SKILL.md +1 -1
- package/src/dev-bundle-resolution.ts +1 -1
- package/src/host/bridge-host.ts +2 -34
- package/src/menu.ts +7 -0
- package/src/native-seam-manifest.ts +4 -16
- package/src/runtime-assets.ts +59 -2
- package/src/vite-plugin.ts +723 -25
package/dist-lib/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.628 | (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;
|
|
@@ -1028,7 +1028,7 @@ function resolveDefaultDevBridgeLockfile() {
|
|
|
1028
1028
|
) ?? sameCheckout[0];
|
|
1029
1029
|
}
|
|
1030
1030
|
}
|
|
1031
|
-
return lockfiles.find((lockfile) => lockfile.bridgePort === DEFAULT_SOOTSIM_BRIDGE_PORT) ??
|
|
1031
|
+
return lockfiles.find((lockfile) => lockfile.bridgePort === DEFAULT_SOOTSIM_BRIDGE_PORT) ?? null;
|
|
1032
1032
|
}
|
|
1033
1033
|
function resolveBridgeWorld() {
|
|
1034
1034
|
const homeDir = rnxHomeDir();
|
|
@@ -4013,7 +4013,11 @@ var MIME_TYPES = {
|
|
|
4013
4013
|
".woff": "font/woff",
|
|
4014
4014
|
".woff2": "font/woff2",
|
|
4015
4015
|
".mp3": "audio/mpeg",
|
|
4016
|
-
".wav": "audio/wav"
|
|
4016
|
+
".wav": "audio/wav",
|
|
4017
|
+
".mp4": "video/mp4",
|
|
4018
|
+
".m4v": "video/mp4",
|
|
4019
|
+
".mov": "video/quicktime",
|
|
4020
|
+
".webm": "video/webm"
|
|
4017
4021
|
};
|
|
4018
4022
|
var ROOT_RUNTIME_PATHS = [
|
|
4019
4023
|
"/assets/",
|
|
@@ -4027,7 +4031,7 @@ var ROOT_RUNTIME_PATHS = [
|
|
|
4027
4031
|
"/spike/",
|
|
4028
4032
|
"/test-wallpaper.jpg",
|
|
4029
4033
|
"/preview-sw.js",
|
|
4030
|
-
"/
|
|
4034
|
+
"/peach.svg",
|
|
4031
4035
|
"/bedrock-sqlite.wasm",
|
|
4032
4036
|
"/bedrock-sqlite.js",
|
|
4033
4037
|
"/sootsim/"
|
|
@@ -4111,7 +4115,42 @@ function serveRuntimeFile(req, res, fullPath) {
|
|
|
4111
4115
|
res.end();
|
|
4112
4116
|
return;
|
|
4113
4117
|
}
|
|
4114
|
-
|
|
4118
|
+
sendFileWithRanges(req, res, fullPath, stat.size, {});
|
|
4119
|
+
}
|
|
4120
|
+
function sendFileWithRanges(req, res, filePath, total, headers) {
|
|
4121
|
+
const head = (req?.method || "GET").toUpperCase() === "HEAD";
|
|
4122
|
+
const range = /^bytes=(\d*)-(\d*)$/.exec(req?.headers?.range || "");
|
|
4123
|
+
const invalid = range && range[1] && range[2] && Number(range[2]) < Number(range[1]);
|
|
4124
|
+
if (range && (range[1] || range[2]) && !invalid) {
|
|
4125
|
+
const [, startRaw, endRaw] = range;
|
|
4126
|
+
const start = startRaw ? Number(startRaw) : Math.max(0, total - Number(endRaw));
|
|
4127
|
+
const end = startRaw && endRaw ? Math.min(Number(endRaw), total - 1) : total - 1;
|
|
4128
|
+
if (start > end || start >= total) {
|
|
4129
|
+
res.writeHead(416, { ...headers, "Content-Range": `bytes */${total}` });
|
|
4130
|
+
res.end();
|
|
4131
|
+
return;
|
|
4132
|
+
}
|
|
4133
|
+
res.writeHead(206, {
|
|
4134
|
+
...headers,
|
|
4135
|
+
"Content-Range": `bytes ${start}-${end}/${total}`,
|
|
4136
|
+
"Accept-Ranges": "bytes",
|
|
4137
|
+
"Content-Length": String(end - start + 1)
|
|
4138
|
+
});
|
|
4139
|
+
if (head) res.end();
|
|
4140
|
+
else streamFile(res, import_fs3.default.createReadStream(filePath, { start, end }));
|
|
4141
|
+
return;
|
|
4142
|
+
}
|
|
4143
|
+
res.writeHead(200, {
|
|
4144
|
+
...headers,
|
|
4145
|
+
"Accept-Ranges": "bytes",
|
|
4146
|
+
"Content-Length": String(total)
|
|
4147
|
+
});
|
|
4148
|
+
if (head || total === 0) res.end();
|
|
4149
|
+
else streamFile(res, import_fs3.default.createReadStream(filePath, { start: 0, end: total - 1 }));
|
|
4150
|
+
}
|
|
4151
|
+
function streamFile(res, stream) {
|
|
4152
|
+
stream.on("error", (error) => res.destroy(error));
|
|
4153
|
+
stream.pipe(res);
|
|
4115
4154
|
}
|
|
4116
4155
|
|
|
4117
4156
|
// src/vite-plugin-one.ts
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.628 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.628 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
package/dist-lib/menu.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.628 | (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;
|
|
@@ -404,6 +404,12 @@ function windowMenu(state) {
|
|
|
404
404
|
checked: state.showBezels,
|
|
405
405
|
action: "toggle-bezels"
|
|
406
406
|
},
|
|
407
|
+
{
|
|
408
|
+
label: "Show Touches",
|
|
409
|
+
type: "checkbox",
|
|
410
|
+
checked: state.showTouches,
|
|
411
|
+
action: "toggle-touches"
|
|
412
|
+
},
|
|
407
413
|
{
|
|
408
414
|
label: "Show Menu Bar",
|
|
409
415
|
type: "checkbox",
|
package/dist-lib/menu.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.628 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
|
|
3
3
|
// src/public-brand.ts
|
|
4
4
|
var name = "Peach";
|
|
@@ -363,6 +363,12 @@ function windowMenu(state) {
|
|
|
363
363
|
checked: state.showBezels,
|
|
364
364
|
action: "toggle-bezels"
|
|
365
365
|
},
|
|
366
|
+
{
|
|
367
|
+
label: "Show Touches",
|
|
368
|
+
type: "checkbox",
|
|
369
|
+
checked: state.showTouches,
|
|
370
|
+
action: "toggle-touches"
|
|
371
|
+
},
|
|
366
372
|
{
|
|
367
373
|
label: "Show Menu Bar",
|
|
368
374
|
type: "checkbox",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.628 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.628 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
package/dist-lib/metro.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.628 | (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;
|
|
@@ -612,7 +612,11 @@ var MIME_TYPES = {
|
|
|
612
612
|
".woff": "font/woff",
|
|
613
613
|
".woff2": "font/woff2",
|
|
614
614
|
".mp3": "audio/mpeg",
|
|
615
|
-
".wav": "audio/wav"
|
|
615
|
+
".wav": "audio/wav",
|
|
616
|
+
".mp4": "video/mp4",
|
|
617
|
+
".m4v": "video/mp4",
|
|
618
|
+
".mov": "video/quicktime",
|
|
619
|
+
".webm": "video/webm"
|
|
616
620
|
};
|
|
617
621
|
var ROOT_RUNTIME_PATHS = [
|
|
618
622
|
"/assets/",
|
|
@@ -626,7 +630,7 @@ var ROOT_RUNTIME_PATHS = [
|
|
|
626
630
|
"/spike/",
|
|
627
631
|
"/test-wallpaper.jpg",
|
|
628
632
|
"/preview-sw.js",
|
|
629
|
-
"/
|
|
633
|
+
"/peach.svg",
|
|
630
634
|
"/bedrock-sqlite.wasm",
|
|
631
635
|
"/bedrock-sqlite.js",
|
|
632
636
|
"/sootsim/"
|
|
@@ -710,7 +714,42 @@ function serveRuntimeFile(req, res, fullPath) {
|
|
|
710
714
|
res.end();
|
|
711
715
|
return;
|
|
712
716
|
}
|
|
713
|
-
|
|
717
|
+
sendFileWithRanges(req, res, fullPath, stat.size, {});
|
|
718
|
+
}
|
|
719
|
+
function sendFileWithRanges(req, res, filePath, total, headers) {
|
|
720
|
+
const head = (req?.method || "GET").toUpperCase() === "HEAD";
|
|
721
|
+
const range = /^bytes=(\d*)-(\d*)$/.exec(req?.headers?.range || "");
|
|
722
|
+
const invalid = range && range[1] && range[2] && Number(range[2]) < Number(range[1]);
|
|
723
|
+
if (range && (range[1] || range[2]) && !invalid) {
|
|
724
|
+
const [, startRaw, endRaw] = range;
|
|
725
|
+
const start = startRaw ? Number(startRaw) : Math.max(0, total - Number(endRaw));
|
|
726
|
+
const end = startRaw && endRaw ? Math.min(Number(endRaw), total - 1) : total - 1;
|
|
727
|
+
if (start > end || start >= total) {
|
|
728
|
+
res.writeHead(416, { ...headers, "Content-Range": `bytes */${total}` });
|
|
729
|
+
res.end();
|
|
730
|
+
return;
|
|
731
|
+
}
|
|
732
|
+
res.writeHead(206, {
|
|
733
|
+
...headers,
|
|
734
|
+
"Content-Range": `bytes ${start}-${end}/${total}`,
|
|
735
|
+
"Accept-Ranges": "bytes",
|
|
736
|
+
"Content-Length": String(end - start + 1)
|
|
737
|
+
});
|
|
738
|
+
if (head) res.end();
|
|
739
|
+
else streamFile(res, import_fs.default.createReadStream(filePath, { start, end }));
|
|
740
|
+
return;
|
|
741
|
+
}
|
|
742
|
+
res.writeHead(200, {
|
|
743
|
+
...headers,
|
|
744
|
+
"Accept-Ranges": "bytes",
|
|
745
|
+
"Content-Length": String(total)
|
|
746
|
+
});
|
|
747
|
+
if (head || total === 0) res.end();
|
|
748
|
+
else streamFile(res, import_fs.default.createReadStream(filePath, { start: 0, end: total - 1 }));
|
|
749
|
+
}
|
|
750
|
+
function streamFile(res, stream) {
|
|
751
|
+
stream.on("error", (error) => res.destroy(error));
|
|
752
|
+
stream.pipe(res);
|
|
714
753
|
}
|
|
715
754
|
|
|
716
755
|
// src/metro-plugin.ts
|
package/dist-lib/profiles.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.628 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.628 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.628 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
package/dist-lib/render-mode.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.628 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.628 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
package/dist-lib/sdk.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.628 | (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/sdk.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.628 | (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);
|