sootsim 0.1.224 → 0.1.225
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/dist-cli/bin.js +4 -4
- package/dist-cli/chunks/{agent-IXTIVO4B.js → agent-2QJNGCGQ.js} +2 -2
- package/dist-cli/chunks/{agent-wrapper-37QGL7LZ.js → agent-wrapper-JFTDMNBA.js} +2 -2
- package/dist-cli/chunks/{app-fonts-CMNA7ZLB.js → app-fonts-ZF73VQCZ.js} +2 -2
- package/dist-cli/chunks/{assert-VE7DZN64.js → assert-VOWVK5UT.js} +2 -2
- package/dist-cli/chunks/{auth-BEI6S5AK.js → auth-RAUKHPE3.js} +2 -2
- package/dist-cli/chunks/beta-7TBS7VDG.js +2 -0
- package/dist-cli/chunks/{camera-WGDO6BS4.js → camera-ZMQZISLH.js} +2 -2
- package/dist-cli/chunks/{chunk-FR2ZFWG2.js → chunk-347KANFK.js} +1 -1
- package/dist-cli/chunks/{chunk-CCW5EYIU.js → chunk-3LZ4N33H.js} +1 -1
- package/dist-cli/chunks/{chunk-NLTKRAPS.js → chunk-3QKH7HQL.js} +3 -3
- package/dist-cli/chunks/{chunk-SQ2QXZ4N.js → chunk-3W4H7IIQ.js} +2 -2
- package/dist-cli/chunks/{chunk-6UJEQVPW.js → chunk-6P4XXLDV.js} +2 -2
- package/dist-cli/chunks/{chunk-WZAF6VH6.js → chunk-AHQQF4W6.js} +2 -2
- package/dist-cli/chunks/{chunk-RQHZYDRX.js → chunk-AWY3D6YY.js} +2 -2
- package/dist-cli/chunks/{chunk-QS4PGGDS.js → chunk-B7IV5YY2.js} +1 -1
- package/dist-cli/chunks/{chunk-OYPMYSMY.js → chunk-BI4VCL6Q.js} +2 -2
- package/dist-cli/chunks/{chunk-HCA46V4W.js → chunk-CRSULHXN.js} +2 -2
- package/dist-cli/chunks/{chunk-X4623KU6.js → chunk-D74MZDQ5.js} +2 -2
- package/dist-cli/chunks/{chunk-CE7KFLTO.js → chunk-DOGQUNTS.js} +1 -1
- package/dist-cli/chunks/{chunk-2VBAA7XJ.js → chunk-DVK6PIUQ.js} +2 -2
- package/dist-cli/chunks/{chunk-FB4YNNHB.js → chunk-EH5ATUDN.js} +2 -2
- package/dist-cli/chunks/{chunk-MF4YHHL4.js → chunk-EWQMANOX.js} +1 -1
- package/dist-cli/chunks/{chunk-ZTYPCXG2.js → chunk-FCWI4FXZ.js} +2 -2
- package/dist-cli/chunks/{chunk-GVK4Q3BA.js → chunk-FHHD7KFS.js} +1 -1
- package/dist-cli/chunks/{chunk-2QIGZP7G.js → chunk-HS2NYELS.js} +1 -1
- package/dist-cli/chunks/{chunk-24QLCYJG.js → chunk-IP4QVK56.js} +2 -2
- package/dist-cli/chunks/chunk-JHAL2K27.js +1 -0
- package/dist-cli/chunks/{chunk-4CO7SKSJ.js → chunk-JI2BFZCM.js} +2 -2
- package/dist-cli/chunks/{chunk-NWLTJUCZ.js → chunk-KW72IOGD.js} +1 -1
- package/dist-cli/chunks/{chunk-K7FLRWXM.js → chunk-LHI6SSKZ.js} +1 -1
- package/dist-cli/chunks/{chunk-CEBMTKID.js → chunk-MOFL2C72.js} +2 -2
- package/dist-cli/chunks/{chunk-VR5W6I6B.js → chunk-NCJ6UORF.js} +2 -2
- package/dist-cli/chunks/{chunk-HYSKRSBW.js → chunk-NCJQISNJ.js} +1 -1
- package/dist-cli/chunks/{chunk-FVZQMYUJ.js → chunk-NT7DIPF6.js} +1 -1
- package/dist-cli/chunks/{chunk-ZVNBKS5H.js → chunk-OHEMKK3X.js} +2 -2
- package/dist-cli/chunks/{chunk-ZTCF4L5T.js → chunk-P73P4LEJ.js} +3 -3
- package/dist-cli/chunks/{chunk-S6LVSOND.js → chunk-PUXJ6MG3.js} +1 -1
- package/dist-cli/chunks/chunk-Q6HBPMI4.js +1 -0
- package/dist-cli/chunks/{chunk-KRZ5WWPA.js → chunk-QH5AHGSL.js} +2 -2
- package/dist-cli/chunks/{chunk-OPI6PLWA.js → chunk-TFNMU5WV.js} +1 -1
- package/dist-cli/chunks/{chunk-5FPSA6T3.js → chunk-TGRJ7ZJD.js} +2 -2
- package/dist-cli/chunks/{chunk-NWN2GQ36.js → chunk-UQKFXZT7.js} +1 -1
- package/dist-cli/chunks/{chunk-PFYMU6QF.js → chunk-UZM7EU4D.js} +3 -3
- package/dist-cli/chunks/{chunk-7KD7SO3A.js → chunk-UZWRZ3ND.js} +1 -1
- package/dist-cli/chunks/{chunk-HFTFALJY.js → chunk-V4M52O5I.js} +2 -2
- package/dist-cli/chunks/{chunk-KIZV52CA.js → chunk-VIHFW4WT.js} +3 -3
- package/dist-cli/chunks/{chunk-4WQ36IZO.js → chunk-W67AEQ3C.js} +3 -3
- package/dist-cli/chunks/{chunk-OOJ5OXYG.js → chunk-WDDOFF3W.js} +2 -2
- package/dist-cli/chunks/{chunk-AHA4PLGQ.js → chunk-XXDT7Q4C.js} +20 -31
- package/dist-cli/chunks/chunk-YWDWZW74.js +3 -0
- package/dist-cli/chunks/{chunk-QJ2UUEBC.js → chunk-ZPXGQH3V.js} +2 -2
- package/dist-cli/chunks/cli-version-I6MGYDFK.js +2 -0
- package/dist-cli/chunks/{compat-6R6UR3NV.js → compat-WQGSKB6D.js} +3 -3
- package/dist-cli/chunks/{config-IWITGWOX.js → config-24NABZH5.js} +2 -2
- package/dist-cli/chunks/{control-NN6KYHZ7.js → control-QN3OMNZB.js} +2 -2
- package/dist-cli/chunks/daemon-SCUUHMKS.js +2 -0
- package/dist-cli/chunks/{debug-AVD27HN2.js → debug-3AWVNHV2.js} +3 -3
- package/dist-cli/chunks/{desktop-ARRS4W7G.js → desktop-2Y7TM6YZ.js} +3 -3
- package/dist-cli/chunks/{detox-7ZVE4SEU.js → detox-I5LLQ7PW.js} +2 -2
- package/dist-cli/chunks/{device-KCAXPE2J.js → device-4OJVHSRG.js} +2 -2
- package/dist-cli/chunks/{diagnose-NN2P4YHG.js → diagnose-HUXZBMVI.js} +2 -2
- package/dist-cli/chunks/drivers-SQFPFW7V.js +2 -0
- package/dist-cli/chunks/{film-YYDHQCIK.js → film-MXZ444WR.js} +3 -3
- package/dist-cli/chunks/flow-P3IJ4VHB.js +2 -0
- package/dist-cli/chunks/help-GQY5VDRA.js +2 -0
- package/dist-cli/chunks/{home-paths-P5BF26CV.js → home-paths-RTMWY5WD.js} +2 -2
- package/dist-cli/chunks/inspect-DETXTJUP.js +2 -0
- package/dist-cli/chunks/install-desktop-CHYTPRFO.js +2 -0
- package/dist-cli/chunks/{login-3C6WS5WJ.js → login-YBPCBEPD.js} +4 -4
- package/dist-cli/chunks/{logout-N7NHSAJ6.js → logout-JR5ZSYLS.js} +2 -2
- package/dist-cli/chunks/{maestro-72YHMDN3.js → maestro-HHF4ISZI.js} +3 -3
- package/dist-cli/chunks/{maestro-generate-N6WRP4JB.js → maestro-generate-HFAYZHUF.js} +3 -3
- package/dist-cli/chunks/{mode-HTGZVPBB.js → mode-KI5E5FWJ.js} +2 -2
- package/dist-cli/chunks/optional-demo-registry-6VYITRX4.js +2 -0
- package/dist-cli/chunks/{perf-G3LOBGFB.js → perf-XJXFKHQ3.js} +2 -2
- package/dist-cli/chunks/{record-UCC52HPB.js → record-T7IKWLEV.js} +3 -3
- package/dist-cli/chunks/runtime-LXVX24LC.js +2 -0
- package/dist-cli/chunks/{screenshot-command-UERRRDTX.js → screenshot-command-VN42XKYN.js} +10 -10
- package/dist-cli/chunks/screenshots-capture-IJM5ZESL.js +40 -0
- package/dist-cli/chunks/{serve-YYYACL4G.js → serve-C4QC2HID.js} +2 -2
- package/dist-cli/chunks/{setup-DOQ3CNWU.js → setup-7GKAB4SB.js} +3 -3
- package/dist-cli/chunks/{skills-TY7JP5HL.js → skills-FHH2POMV.js} +2 -2
- package/dist-cli/chunks/{storage-5G6MYKIR.js → storage-ZJMSMGT4.js} +2 -2
- package/dist-cli/chunks/store-DU76KFTF.js +2 -0
- package/dist-cli/chunks/telemetry-PZGM7U27.js +2 -0
- package/dist-cli/chunks/{timeline-TEZJY6OI.js → timeline-NAMSRGWR.js} +2 -2
- package/dist-cli/chunks/{upgrade-2VHEHNNM.js → upgrade-E7WMFJYM.js} +2 -2
- package/dist-cli/chunks/upload-L2ZKQQMJ.js +2 -0
- package/dist-cli/chunks/{version-LPLQL5Y2.js → version-H54YADEJ.js} +2 -2
- package/dist-cli/chunks/{web-3O74TBQP.js → web-U5F5O7TY.js} +2 -2
- package/dist-cli/chunks/{what-happened-SHAO2WXX.js → what-happened-A42ORDPY.js} +2 -2
- 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/cli-constants.cjs +1 -1
- package/dist-lib/config.cjs +1 -1
- package/dist-lib/detox/index.cjs +8 -4
- package/dist-lib/dev-bundle-resolution.cjs +1 -1
- package/dist-lib/home-paths.cjs +1 -1
- package/dist-lib/host/bridge-host.cjs +1 -1
- 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/websocket-proxy.cjs +1 -1
- package/dist-lib/index.cjs +1 -1
- package/dist-lib/jump-to-source-babel.cjs +1 -1
- package/dist-lib/menu.cjs +1 -1
- package/dist-lib/menu.mjs +1 -1
- package/dist-lib/metro.cjs +1 -1
- package/dist-lib/profiles.cjs +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 +11 -7
- package/dist-lib/vite.cjs +1 -1
- package/package.json +1 -1
- package/dist-cli/chunks/beta-ZAFAH443.js +0 -2
- package/dist-cli/chunks/chunk-EVRV7ZEQ.js +0 -1
- package/dist-cli/chunks/chunk-FKMYICRL.js +0 -1
- package/dist-cli/chunks/cli-version-EEQU4RHG.js +0 -2
- package/dist-cli/chunks/daemon-OOS5GYH3.js +0 -2
- package/dist-cli/chunks/drivers-WKXM4KAQ.js +0 -2
- package/dist-cli/chunks/flow-RLO6T7NN.js +0 -2
- package/dist-cli/chunks/help-QGPISENF.js +0 -2
- package/dist-cli/chunks/inspect-CCH3ID2P.js +0 -2
- package/dist-cli/chunks/install-desktop-SD2XL3QE.js +0 -2
- package/dist-cli/chunks/optional-demo-registry-CUXZZ2PW.js +0 -2
- package/dist-cli/chunks/runtime-RCOICIJ4.js +0 -2
- package/dist-cli/chunks/screenshots-capture-RBBJE7EF.js +0 -41
- package/dist-cli/chunks/store-SVH7YFQP.js +0 -2
- package/dist-cli/chunks/telemetry-Z6SP2WSB.js +0 -2
- package/dist-cli/chunks/upload-WXQKH3QR.js +0 -2
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
2
|
-
import{C as N,D as F,F as y,Q as T,R as b,S}from"./chunk-
|
|
1
|
+
/*! sootsim v0.1.225 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
+
import{C as N,D as F,F as y,Q as T,R as b,S}from"./chunk-UZWRZ3ND.js";import{g as A,i as _}from"./chunk-AWY3D6YY.js";import"./chunk-347KANFK.js";import{b as k}from"./chunk-P73P4LEJ.js";import"./chunk-LHI6SSKZ.js";import"./chunk-NT7DIPF6.js";function O(n){let t=[];for(let e=0;e<n.length;e++)if(n[e]==="--since"&&e+1<n.length){t.push(e,e+1);let s=n[e+1].trim(),l=/^(\d+(?:\.\d+)?)(ms|s|m)?$/.exec(s);if(l){let r=Number(l[1]),u=l[2]??"ms",v=u==="s"?r*1e3:u==="m"?r*6e4:r;return{since:Date.now()-v,consumed:t}}let i=Number(s);if(Number.isFinite(i)&&i>1e12)return{since:i,consumed:t}}return{consumed:t}}function B(n){let t=[];for(let e=0;e<n.length;e++)if(n[e]==="--kinds"&&e+1<n.length)return t.push(e,e+1),{kinds:n[e+1].split(",").map(s=>s.trim()).filter(Boolean),consumed:t};return{consumed:t}}function D(n){let t=[];for(let e=0;e<n.length;e++)if(n[e]==="--limit"&&e+1<n.length){t.push(e,e+1);let s=Number(n[e+1]);if(Number.isFinite(s)&&s>0)return{limit:s,consumed:t}}return{consumed:t}}function x(n){let t=[],e={label:"initial state",events:[],startedAt:n[0]?.t??null};t.push(e);for(let s of n)if(e.events.push(s),s.kind==="screen"||s.kind==="route"){let l=s.data,i=l?.phase;if(!i||i==="enter"||i==="appear"||i==="active"){let r=l?.name||l?.activeName||l?.path||l?.pathname||s.kind;t.length===1&&e.events.length===1?e.label=`${s.kind}: ${r}`:(e={label:`${s.kind}: ${r}`,events:[],startedAt:s.t},t.push(e))}}return t}async function J(n,t){let e=A(n,{port:t.port,stripBooleanFlags:["--summary","--all","--json","--no-advance","--help","-h","--flow","--noisy"],stripValueFlags:["--since","--kinds","--limit"]});(n.includes("--help")||n.includes("-h"))&&(console.log(`
|
|
3
3
|
sootsim what-happened \u2014 show recent events from the semantic timeline
|
|
4
4
|
|
|
5
5
|
usage:
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.225 | (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
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.225 | (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
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.225 | (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
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.225 | (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
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.225 | (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
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.225 | (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
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.225 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
package/dist-lib/beta.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.225 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
package/dist-lib/beta.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.225 | (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
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.225 | (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/config.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.225 | (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/detox/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.225 | (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;
|
|
@@ -134,7 +134,11 @@ function gpuChromeLaunchOptions(opts = {}) {
|
|
|
134
134
|
const callerIgnored = Array.isArray(opts.ignoreDefaultArgs) ? opts.ignoreDefaultArgs : [];
|
|
135
135
|
return {
|
|
136
136
|
...opts,
|
|
137
|
-
channel
|
|
137
|
+
// playwright's `chromium` channel is the full Google Chrome for Testing
|
|
138
|
+
// app, not chromium_headless_shell. on macOS it has bundle id
|
|
139
|
+
// com.google.chrome.for.testing, so automation cannot become the target of
|
|
140
|
+
// Dock open/quit events intended for the user's com.google.Chrome browser.
|
|
141
|
+
channel: "chromium",
|
|
138
142
|
args: [...gpuChromeArgs(), ...callerArgs],
|
|
139
143
|
ignoreDefaultArgs: [...callerIgnored, "--enable-unsafe-swiftshader"]
|
|
140
144
|
};
|
|
@@ -159,13 +163,13 @@ function preferGpuChrome(launch, opts) {
|
|
|
159
163
|
if (!missing) throw err;
|
|
160
164
|
if (!allowSoftwareFallback) {
|
|
161
165
|
throw new Error(
|
|
162
|
-
"[reap-browser]
|
|
166
|
+
"[reap-browser] Playwright Chrome for Testing is required for local GPU browser work; chromium_headless_shell fallback is disabled. Run `bunx playwright install chromium`.",
|
|
163
167
|
{ cause: err }
|
|
164
168
|
);
|
|
165
169
|
}
|
|
166
170
|
gpuChromeMissing = true;
|
|
167
171
|
console.warn(
|
|
168
|
-
"[reap-browser] CI
|
|
172
|
+
"[reap-browser] CI Chrome for Testing not found, falling back to chromium_headless_shell software rendering."
|
|
169
173
|
);
|
|
170
174
|
}
|
|
171
175
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.225 | (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/home-paths.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.225 | (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
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.225 | (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
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.225 | (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
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.225 | (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
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.225 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
|
|
3
3
|
// src/host/fetch-proxy-overrides.ts
|
|
4
4
|
var FETCH_PROXY_BROWSER_USER_AGENT = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.225 | (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/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.225 | (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
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.225 | (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/menu.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.225 | (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/menu.mjs
CHANGED
package/dist-lib/metro.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.225 | (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/profiles.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.225 | (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/render-mode.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.225 | (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
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.225 | (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
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.225 | (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
package/dist-lib/skills.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.225 | (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;
|
|
@@ -15080,7 +15080,7 @@ function findTopAncestor(start, maxDepth = 20) {
|
|
|
15080
15080
|
if (!pid || pid <= 1) return null;
|
|
15081
15081
|
for (let i = 0; i < maxDepth; i++) {
|
|
15082
15082
|
const comm = getProcessComm(pid);
|
|
15083
|
-
if (comm &&
|
|
15083
|
+
if (comm && IMMORTAL_HOST_COMM_RE.test(comm)) return prev;
|
|
15084
15084
|
const parent = getParentPid(pid);
|
|
15085
15085
|
if (!parent || parent <= 1) return pid;
|
|
15086
15086
|
prev = pid;
|
|
@@ -15136,7 +15136,7 @@ function readCurrentSimId() {
|
|
|
15136
15136
|
function clearCurrentSimId() {
|
|
15137
15137
|
(0, import_fs6.rmSync)(getCurrentSimPath(), { force: true });
|
|
15138
15138
|
}
|
|
15139
|
-
var import_fs6, import_os2, import_path5, CURRENT_SIM_VERSION, CURRENT_SIM_PATH_ENV, IDENTITY_ENV_VARS,
|
|
15139
|
+
var import_fs6, import_os2, import_path5, CURRENT_SIM_VERSION, CURRENT_SIM_PATH_ENV, IDENTITY_ENV_VARS, IMMORTAL_HOST_COMM_RE;
|
|
15140
15140
|
var init_current_sim = __esm({
|
|
15141
15141
|
"cli/current-sim.ts"() {
|
|
15142
15142
|
"use strict";
|
|
@@ -15174,7 +15174,7 @@ var init_current_sim = __esm({
|
|
|
15174
15174
|
"VSCODE_INJECTION"
|
|
15175
15175
|
// vscode integrated terminal
|
|
15176
15176
|
];
|
|
15177
|
-
|
|
15177
|
+
IMMORTAL_HOST_COMM_RE = /^(tmux|screen|agentbus)/i;
|
|
15178
15178
|
}
|
|
15179
15179
|
});
|
|
15180
15180
|
|
|
@@ -18963,7 +18963,11 @@ function gpuChromeLaunchOptions(opts = {}) {
|
|
|
18963
18963
|
const callerIgnored = Array.isArray(opts.ignoreDefaultArgs) ? opts.ignoreDefaultArgs : [];
|
|
18964
18964
|
return {
|
|
18965
18965
|
...opts,
|
|
18966
|
-
channel
|
|
18966
|
+
// playwright's `chromium` channel is the full Google Chrome for Testing
|
|
18967
|
+
// app, not chromium_headless_shell. on macOS it has bundle id
|
|
18968
|
+
// com.google.chrome.for.testing, so automation cannot become the target of
|
|
18969
|
+
// Dock open/quit events intended for the user's com.google.Chrome browser.
|
|
18970
|
+
channel: "chromium",
|
|
18967
18971
|
args: [...gpuChromeArgs(), ...callerArgs],
|
|
18968
18972
|
ignoreDefaultArgs: [...callerIgnored, "--enable-unsafe-swiftshader"]
|
|
18969
18973
|
};
|
|
@@ -18988,13 +18992,13 @@ function preferGpuChrome(launch, opts) {
|
|
|
18988
18992
|
if (!missing) throw err;
|
|
18989
18993
|
if (!allowSoftwareFallback) {
|
|
18990
18994
|
throw new Error(
|
|
18991
|
-
"[reap-browser]
|
|
18995
|
+
"[reap-browser] Playwright Chrome for Testing is required for local GPU browser work; chromium_headless_shell fallback is disabled. Run `bunx playwright install chromium`.",
|
|
18992
18996
|
{ cause: err }
|
|
18993
18997
|
);
|
|
18994
18998
|
}
|
|
18995
18999
|
gpuChromeMissing = true;
|
|
18996
19000
|
console.warn(
|
|
18997
|
-
"[reap-browser] CI
|
|
19001
|
+
"[reap-browser] CI Chrome for Testing not found, falling back to chromium_headless_shell software rendering."
|
|
18998
19002
|
);
|
|
18999
19003
|
}
|
|
19000
19004
|
}
|
package/dist-lib/vite.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.225 | (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/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
/*! sootsim v0.1.224 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
/*! sootsim v0.1.224 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
/*! sootsim v0.1.224 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
-
import{a,b,c,d,e}from"./chunk-2VBAA7XJ.js";import"./chunk-VR5W6I6B.js";import"./chunk-X4623KU6.js";import"./chunk-WZAF6VH6.js";import"./chunk-6UJEQVPW.js";import"./chunk-CEBMTKID.js";import"./chunk-QJ2UUEBC.js";import"./chunk-FR2ZFWG2.js";import"./chunk-ZTCF4L5T.js";import"./chunk-K7FLRWXM.js";import"./chunk-2QIGZP7G.js";import"./chunk-S6LVSOND.js";import"./chunk-NWLTJUCZ.js";import"./chunk-FVZQMYUJ.js";export{c as daemonInstall,b as getDaemonServiceStatus,a as runDaemon,d as teardownDaemonService,e as teardownSootsimHome};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
/*! sootsim v0.1.224 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
-
import"./chunk-EVRV7ZEQ.js";import{f as a,g as b,h as c,i as d,j as e,k as f,l as g,m as h,n as i}from"./chunk-AHA4PLGQ.js";import"./chunk-GVK4Q3BA.js";import"./chunk-NWN2GQ36.js";import"./chunk-ZTCF4L5T.js";import"./chunk-K7FLRWXM.js";import"./chunk-FVZQMYUJ.js";export{e as ALL_DRIVERS,i as buildDriverListRows,a as chromiumDriver,b as electronDriver,f as getAllDrivers,g as getDriver,c as playwrightDriver,h as resolveDriver,d as systemDriver};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
/*! sootsim v0.1.224 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
-
import{c,d,e,f,g,h}from"./chunk-4WQ36IZO.js";import{c as a,d as b}from"./chunk-KIZV52CA.js";import"./chunk-FB4YNNHB.js";import"./chunk-4CO7SKSJ.js";import"./chunk-ZTYPCXG2.js";import"./chunk-ZVNBKS5H.js";import"./chunk-OYPMYSMY.js";import"./chunk-SQ2QXZ4N.js";import"./chunk-FKMYICRL.js";import"./chunk-HYSKRSBW.js";import"./chunk-CCW5EYIU.js";import"./chunk-QS4PGGDS.js";import"./chunk-OOJ5OXYG.js";import"./chunk-7KD7SO3A.js";import"./chunk-RQHZYDRX.js";import"./chunk-AHA4PLGQ.js";import"./chunk-GVK4Q3BA.js";import"./chunk-NWN2GQ36.js";import"./chunk-CE7KFLTO.js";import"./chunk-5FPSA6T3.js";import"./chunk-VR5W6I6B.js";import"./chunk-X4623KU6.js";import"./chunk-CEBMTKID.js";import"./chunk-QJ2UUEBC.js";import"./chunk-FR2ZFWG2.js";import"./chunk-ZTCF4L5T.js";import"./chunk-K7FLRWXM.js";import"./chunk-NWLTJUCZ.js";import"./chunk-FVZQMYUJ.js";export{e as discoverSootsimUrl,c as getLastFlowPreviewUploadResult,d as getLastFlowTraceSteps,g as hoistLeadingSimFlag,a as parseFlowFile,f as runFlowPlayback,h as runMaestroAuthoring,b as validateFlowFile};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
/*! sootsim v0.1.224 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
-
import{a,b,c}from"./chunk-WZAF6VH6.js";import"./chunk-6UJEQVPW.js";import"./chunk-CEBMTKID.js";import"./chunk-QJ2UUEBC.js";import"./chunk-FR2ZFWG2.js";import"./chunk-ZTCF4L5T.js";import"./chunk-K7FLRWXM.js";import"./chunk-2QIGZP7G.js";import"./chunk-S6LVSOND.js";import"./chunk-NWLTJUCZ.js";import"./chunk-FVZQMYUJ.js";export{c as printCommandHelp,b as printGroupHelp,a as printHelp};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
/*! sootsim v0.1.224 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
-
import{j as a,k as b}from"./chunk-KIZV52CA.js";import"./chunk-FB4YNNHB.js";import"./chunk-OYPMYSMY.js";import"./chunk-SQ2QXZ4N.js";import"./chunk-FKMYICRL.js";import"./chunk-HYSKRSBW.js";import"./chunk-CCW5EYIU.js";import"./chunk-QS4PGGDS.js";import"./chunk-OOJ5OXYG.js";import"./chunk-7KD7SO3A.js";import"./chunk-RQHZYDRX.js";import"./chunk-AHA4PLGQ.js";import"./chunk-GVK4Q3BA.js";import"./chunk-NWN2GQ36.js";import"./chunk-CE7KFLTO.js";import"./chunk-5FPSA6T3.js";import"./chunk-CEBMTKID.js";import"./chunk-QJ2UUEBC.js";import"./chunk-FR2ZFWG2.js";import"./chunk-ZTCF4L5T.js";import"./chunk-K7FLRWXM.js";import"./chunk-NWLTJUCZ.js";import"./chunk-FVZQMYUJ.js";export{a as printShellPerfReport,b as runInspect};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
/*! sootsim v0.1.224 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
-
import{a}from"./chunk-PFYMU6QF.js";import"./chunk-KRZ5WWPA.js";import"./chunk-RQHZYDRX.js";import"./chunk-FR2ZFWG2.js";import"./chunk-ZTCF4L5T.js";import"./chunk-K7FLRWXM.js";import"./chunk-FVZQMYUJ.js";export{a as runRuntime};
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
/*! sootsim v0.1.224 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
-
import{a as T}from"./chunk-ZVNBKS5H.js";import"./chunk-X4623KU6.js";import"./chunk-K7FLRWXM.js";import"./chunk-FVZQMYUJ.js";import{execSync as B}from"node:child_process";import{mkdirSync as L,mkdtempSync as q,rmSync as W,writeFileSync as z}from"node:fs";import{tmpdir as H}from"node:os";import{dirname as J,isAbsolute as K,join as U,resolve as V}from"node:path";import{chromium as Y}from"playwright-core";import{execSync as O}from"node:child_process";function N(r){let e=r;if(e&&typeof e.process=="function")try{let o=e.process();if(o&&typeof o.pid=="number"&&o.pid>0)return o.pid}catch{}if(e&&typeof e.browser=="function")try{let o=e.browser();if(o)return N(o)}catch{}return null}function x(r){let e=[];try{e=O(`pgrep -P ${r} || true`).toString().split(`
|
|
3
|
-
`).filter(Boolean)}catch{}for(let o of e)x(Number(o));try{process.kill(r,"SIGKILL")}catch{}}var $=new Set,A=!1;function j(){if(A)return;A=!0;let r=()=>{for(let e of $)x(e)};process.on("SIGTERM",()=>{r(),process.exit(0)}),process.on("SIGINT",()=>{r(),process.exit(0)}),process.on("exit",r)}async function M(r){let e=await r(),o=N(e),n=new Set;o!=null&&(n.add(o),$.add(o),j());let i=e;return typeof i.on=="function"&&i.on("disconnected",()=>{for(let c of n)$.delete(c)}),{browser:e,reapNow:()=>{for(let c of n)x(c),$.delete(c);n.clear()}}}var _=`
|
|
4
|
-
sootsim screenshot appstore capture \u2014 headlessly capture + upload App Store slides
|
|
5
|
-
|
|
6
|
-
usage:
|
|
7
|
-
sootsim screenshot appstore capture --org <org> --repo <repo> [options]
|
|
8
|
-
|
|
9
|
-
what it does:
|
|
10
|
-
boots the org-mode build shell in headless GPU Chrome (authed via your
|
|
11
|
-
\`sootsim login\` session), captures each slide through the live screenshot
|
|
12
|
-
composer so every slide gets editable layers (captureRef + cleanRef +
|
|
13
|
-
screenRef), and lets the shell auto-upload them to your org deck.
|
|
14
|
-
|
|
15
|
-
options:
|
|
16
|
-
--org <org> github org slug (required)
|
|
17
|
-
--repo <repo> repo name (required)
|
|
18
|
-
--branch <branch> build branch to boot (default: main)
|
|
19
|
-
--platform <p> ios | android (default: ios)
|
|
20
|
-
--slides <list> 1-based indices to capture, e.g. 1,3,5 (default: all)
|
|
21
|
-
--dry-run capture + report refs, do NOT upload (PUTs aborted)
|
|
22
|
-
--force allow overwriting a NON-EMPTY existing deck
|
|
23
|
-
--out <dir> also write composed App-Store PNGs locally
|
|
24
|
-
--shell-origin <url> origin serving /build (default: your session origin)
|
|
25
|
-
--api-origin <url> origin for deck/capture APIs (default: session origin)
|
|
26
|
-
--timeout <ms> per-step bridge timeout (default: 45000)
|
|
27
|
-
--json machine-readable summary
|
|
28
|
-
|
|
29
|
-
examples:
|
|
30
|
-
sootsim screenshot appstore capture --org acme --repo my-app --dry-run
|
|
31
|
-
sootsim screenshot appstore capture --org acme --repo my-app --branch main --force
|
|
32
|
-
`;function Q(r){let e=a=>{let c=r.indexOf(a);return c>=0?r[c+1]:void 0},o=a=>r.includes(a),n=e("--slides"),i=n?n.split(",").map(a=>Number(a.trim())).filter(a=>Number.isInteger(a)&&a>0):null;return{org:e("--org")??"",repo:e("--repo")??"",branch:e("--branch")??"main",platform:e("--platform")??"ios",slides:i&&i.length?i:null,dryRun:o("--dry-run"),force:o("--force"),out:e("--out")??null,shellOrigin:e("--shell-origin")??null,apiOrigin:e("--api-origin")??null,timeoutMs:Number(e("--timeout")??"45000")||45e3,json:o("--json")}}function X(){let r=T();if(r&&r.kind==="session")return{token:r.token,origin:r.origin};process.stderr.write(`
|
|
33
|
-
sootsim screenshot appstore capture needs a logged-in session.
|
|
34
|
-
run \`sootsim login\` first (the captured slides upload to that account).
|
|
35
|
-
|
|
36
|
-
`),process.exit(1)}function Z(r){let e=r.replace(/^\[|\]$/g,"").toLowerCase();return e==="localhost"||e.endsWith(".localhost")||e==="::1"||/^127(?:\.\d{1,3}){3}$/.test(e)}function ee(r){let e=new URL(r);if(Z(e.hostname)){let n=(Number(e.port)||3e3)-3e3;if(n>=0&&n<=1e3)return e.port=String(5173+n),e.origin}return e.hostname==="sootbean.com"||e.hostname.endsWith(".sootbean.com")?"https://sootsim.com":r}function re(){try{return Number(B("sysctl -n vm.loadavg").toString().trim().split(/\s+/)[1])||0}catch{return 0}}async function oe(r,e,o,n){let i=await fetch(`${r}/api/sootsim/screenshot-decks?org=${encodeURIComponent(o)}&repo=${encodeURIComponent(n)}`,{headers:{authorization:`Bearer ${e}`}});if(!i.ok)return[];let a=await i.json().catch(()=>null),c=[];for(let g of a?.decks??[])Array.isArray(g.config?.frames)&&c.push(...g.config.frames);return c}async function te(r,e,o,n){let i=await fetch(`${r}/api/sootsim/screenshot-capture?ref=${encodeURIComponent(n)}&org=${encodeURIComponent(o)}`,{headers:{authorization:`Bearer ${e}`}});return i.ok?`data:image/png;base64,${Buffer.from(await i.arrayBuffer()).toString("base64")}`:null}async function ne(r,e){let o=Date.now()+e;for(;Date.now()<o;){for(let n of r.frames())if(await n.evaluate(()=>!!globalThis.SootSim?.bridges?.screenshotControl).catch(()=>!1))return n;await r.waitForTimeout(250)}throw new Error("screenshot bridge never appeared \u2014 the build shell did not boot screenshot mode (check --branch/--platform has a ready build, and you are logged in)")}async function D(r){return r.evaluate(async()=>{let o=globalThis.SootSim?.bridges?.screenshotControl;if(!o)throw new Error("screenshotControl missing");return o.getState()})}async function se(r){await r.evaluate(async()=>{let e=globalThis.SootSim?.bridges?.settings,o=Date.now()+3e3;for(;Date.now()<o;){if(e?.get?.()?.screenshotMode)return;await new Promise(n=>setTimeout(n,50))}e&&!e.get().screenshotMode&&(e.set("screenshotMode",!0),e.get().showFrame||e.set("showFrame",!0))})}async function ie(r,e,o,n){await r.evaluate(async([i,a,c])=>{let g=globalThis.SootSim,h=g?.bridges?.screenshotControl;if(!h)throw new Error("screenshotControl missing");let w=b=>new Promise(d=>setTimeout(d,b));if(a){h.focusSlide(i);let b=Date.now()+3e4,d=g?.bridges?.threeMode;for(;Date.now()<b&&(d=g?.bridges?.threeMode,!(d?.setScreenImage&&d?.captureStage&&d?.getState?.()?.ready));)await w(150);await w(1e3);let l=a;d?.configure?.({colorway:l.colorway,background:l.background,...l.customGradient?{customGradient:l.customGradient}:{},setting:l.setting,focus:l.focus,environment:l.environmentActive?{pins:l.environmentPins??{},effects:l.environmentEffects??{}}:!1,pose:{phonePosition:l.phonePosition,phoneRotation:l.phoneRotation,cameraPosition:l.cameraPosition,target:l.target}}),await w(900),c&&d?.setScreenImage&&(d.setScreenImage(c),await w(1200))}await h.capture(i)},[e,o,n])}async function be(r){if(r.includes("--help")||r.includes("-h"))return console.log(_),0;let e=Q(r);if(!e.org||!e.repo)return process.stderr.write(` --org and --repo are required (see --help)
|
|
37
|
-
`),1;let{token:o,origin:n}=X(),i=(e.apiOrigin??n).replace(/\/$/,""),a=(e.shellOrigin??ee(i)).replace(/\/$/,""),c=await oe(i,o,e.org,e.repo);if(!e.dryRun&&!e.force&&c.length>0)return process.stderr.write(` refusing to overwrite the existing ${e.org}/${e.repo} deck (${c.length} slide(s)). re-run with --force to replace it, or --dry-run to preview.
|
|
38
|
-
`),1;let g=re(),h=Number(B("sysctl -n hw.ncpu").toString().trim())||8;if(g>h)return process.stderr.write(` load average ${g.toFixed(1)} exceeds ${h} cores \u2014 tear down other work first.
|
|
39
|
-
`),1;let w=`${a}/build/${encodeURIComponent(e.org)}/${encodeURIComponent(e.repo)}/${encodeURIComponent(e.branch)}?platform=${encodeURIComponent(e.platform)}&ssMode=1`,b=q(U(H(),"sootsim-capture-")),{browser:d,reapNow:l}=await M(()=>Y.launchPersistentContext(b,{headless:!0,channel:"chrome",viewport:{width:393,height:852},deviceScaleFactor:3,args:["--enable-unsafe-webgpu","--enable-features=Vulkan,WebGPU","--hide-scrollbars"]}));await d.addInitScript(s=>{try{localStorage.setItem("sootsim.session.token",s)}catch{}},o);let y=[],m=d.pages()[0]??await d.newPage();e.dryRun?await m.route(/\/api\/sootsim\/screenshot-(decks|capture)/,s=>s.request().method()==="PUT"?s.abort():s.continue()):m.on("response",s=>{let p=s.url();s.request().method()==="PUT"&&(p.includes("/api/sootsim/screenshot-decks")?y.push({kind:"deck",status:s.status()}):p.includes("/api/sootsim/screenshot-capture")&&y.push({kind:"capture",status:s.status()}))});let R=[];m.on("pageerror",s=>R.push(s.message));let E=m.waitForResponse(s=>s.url().includes("/api/sootsim/screenshot-decks")&&s.request().method()==="GET",{timeout:e.timeoutMs}).catch(()=>null);try{await m.goto(w,{waitUntil:"domcontentloaded",timeout:e.timeoutMs});let s=await ne(m,e.timeoutMs);await se(s),await E,await m.waitForTimeout(800);let p=await D(s);if(p.slides.length===0)return process.stderr.write(` the deck has no slides to capture \u2014 add slides in the composer first.
|
|
40
|
-
`),1;let v=e.slides?p.slides.filter(t=>e.slides.includes(t.index)):p.slides;console.log(` ${p.projectName} on ${p.deviceModel} \u2014 capturing ${v.length}/${p.slides.length} slide(s)${e.dryRun?" (dry-run, no upload)":""}`);for(let t of v)try{let u=c[t.index-1],f=u?.threeScene??null,C=f&&u?.screenRef?await te(i,o,e.org,u.screenRef):null;await ie(s,t.index,f,C),console.log(` \u2713 slide ${t.index} "${t.title.slice(0,40)}"`)}catch(u){console.log(` \u2717 slide ${t.index} "${t.title.slice(0,40)}" \u2014 ${u.message}`)}e.dryRun||await m.waitForTimeout(2500);let S=(await D(s)).slides.filter(t=>v.some(u=>u.id===t.id)),P=[];if(e.out){let t=K(e.out)?e.out:V(process.cwd(),e.out);for(let u of S){if(!u.captureRef)continue;let f=await s.evaluate(async k=>{let F=globalThis.SootSim?.bridges?.screenshotControl;if(!F)throw new Error("screenshotControl missing");return F.exportSlide(k)},u.index),C=f.dataUrl.match(/^data:[^;]+;base64,(.+)$/);if(C){let k=U(t,f.name);L(J(k),{recursive:!0}),z(k,Buffer.from(C[1],"base64")),P.push(k)}}}let I=S.filter(t=>t.captureRef&&t.cleanRef),G={org:e.org,repo:e.repo,branch:e.branch,dryRun:e.dryRun,slides:S.map(t=>({index:t.index,title:t.title,captureRef:!!t.captureRef,cleanRef:!!t.cleanRef,screenRef:!!t.screenRef,captureMode:t.captureMode})),editableCount:I.length,uploads:e.dryRun?"skipped (dry-run)":y,written:P,pageErrors:R.slice(0,5)};if(e.json)console.log(JSON.stringify(G,null,2));else{console.log(`
|
|
41
|
-
${I.length}/${S.length} slide(s) now have editable layers (captureRef + cleanRef)`);let t=S.filter(u=>u.captureRef&&!u.cleanRef);if(t.length&&console.log(` \u26A0 ${t.length} slide(s) baked a flat capture only (no cleanRef) \u2014 typically 3d slides whose scene didn't restore for a re-bake.`),!e.dryRun){let u=y.filter(f=>f.status>=200&&f.status<300).length;console.log(` uploads: ${u}/${y.length} PUT(s) succeeded`)}P.length&&console.log(` wrote ${P.length} local PNG(s) to ${e.out}`),R.length&&console.log(` \u26A0 ${R.length} page error(s) during capture`)}return 0}finally{await d.close().catch(()=>{}),l(),W(b,{recursive:!0,force:!0})}}export{be as runScreenshotsCapture};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
/*! sootsim v0.1.224 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
-
import{a,b,c}from"./chunk-ZTYPCXG2.js";import"./chunk-ZVNBKS5H.js";import"./chunk-HYSKRSBW.js";import"./chunk-CCW5EYIU.js";import"./chunk-RQHZYDRX.js";import"./chunk-NWN2GQ36.js";import"./chunk-VR5W6I6B.js";import"./chunk-X4623KU6.js";import"./chunk-FR2ZFWG2.js";import"./chunk-ZTCF4L5T.js";import"./chunk-K7FLRWXM.js";import"./chunk-FVZQMYUJ.js";export{a as resolveDefaultUploadOrigin,b as resolvePublicPreviewOrigin,c as runUpload};
|