sootsim 0.1.52 → 0.1.54
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 +3 -3
- package/dist-cli/chunks/{agent-RUWGJCSS.js → agent-VZPUCYJ5.js} +2 -2
- package/dist-cli/chunks/{agent-wrapper-FBCGP5N7.js → agent-wrapper-V7ALP2GU.js} +2 -2
- package/dist-cli/chunks/{assert-IOU2NWE2.js → assert-7P4UILIO.js} +2 -2
- package/dist-cli/chunks/auto-bootstrap-45LPPN26.js +2 -0
- package/dist-cli/chunks/beta-YJTC67JV.js +2 -0
- package/dist-cli/chunks/{chunk-EXQJSXDF.js → chunk-3HYJL6GY.js} +1 -1
- package/dist-cli/chunks/{chunk-CTEXZ7BE.js → chunk-4PVSZ6GE.js} +1 -1
- package/dist-cli/chunks/{chunk-FVBSPGBR.js → chunk-5FQNBWBM.js} +2 -2
- package/dist-cli/chunks/{chunk-I5WEW3ES.js → chunk-5SWIBDHV.js} +1 -1
- package/dist-cli/chunks/chunk-76WUDRCG.js +2 -0
- package/dist-cli/chunks/{chunk-UCCSXQ2P.js → chunk-7FOK7RXF.js} +3 -3
- package/dist-cli/chunks/{chunk-MSKCUZ5B.js → chunk-A2BA2KJN.js} +3 -3
- package/dist-cli/chunks/{chunk-3DDSYQHM.js → chunk-ACSKJEJV.js} +2 -2
- package/dist-cli/chunks/chunk-ARLGT7VR.js +1 -0
- package/dist-cli/chunks/{chunk-T6RAXKVI.js → chunk-ATMCM62D.js} +2 -2
- package/dist-cli/chunks/chunk-BS3ITOUF.js +1 -0
- package/dist-cli/chunks/chunk-CKZ4LXSQ.js +1 -0
- package/dist-cli/chunks/{chunk-YDKXZS7D.js → chunk-DLINRAGW.js} +1 -1
- package/dist-cli/chunks/{chunk-PZJSYDQ7.js → chunk-DNTCQJWP.js} +3 -3
- package/dist-cli/chunks/{chunk-FPIJBBYW.js → chunk-E3P25GBM.js} +2 -2
- package/dist-cli/chunks/{chunk-7Y3FYPJH.js → chunk-EDU6E62D.js} +2 -2
- package/dist-cli/chunks/chunk-EE54B5YB.js +16 -0
- package/dist-cli/chunks/{chunk-DNKB2V2W.js → chunk-G33A5TWY.js} +2 -2
- package/dist-cli/chunks/{chunk-IXITVIJV.js → chunk-IGM4OHW6.js} +2 -2
- package/dist-cli/chunks/{chunk-EJYVXNQL.js → chunk-ISHA4IUC.js} +2 -2
- package/dist-cli/chunks/chunk-ISQUXL6J.js +3 -0
- package/dist-cli/chunks/chunk-J6CCM5BR.js +2 -0
- package/dist-cli/chunks/{chunk-HRIQRZX3.js → chunk-JBGQ23F4.js} +1 -1
- package/dist-cli/chunks/{chunk-MWGIKDXO.js → chunk-KK5EUVGJ.js} +2 -2
- package/dist-cli/chunks/chunk-LHDZ4VZV.js +305 -0
- package/dist-cli/chunks/{chunk-EQPRFEHH.js → chunk-LZ7CVJAO.js} +2 -2
- package/dist-cli/chunks/{chunk-Q2424XB2.js → chunk-M3KFUEUN.js} +1 -1
- package/dist-cli/chunks/{chunk-4TSGUAV3.js → chunk-MAKAGEKD.js} +2 -2
- package/dist-cli/chunks/{chunk-USGUHWUJ.js → chunk-MNGXYS2K.js} +2 -2
- package/dist-cli/chunks/{chunk-UXE5BFPK.js → chunk-NXR73Q5J.js} +2 -2
- package/dist-cli/chunks/{chunk-U3UHXJNE.js → chunk-NZNOUWTN.js} +1 -1
- package/dist-cli/chunks/{chunk-3MIWVHCX.js → chunk-QVCVU4DC.js} +1 -1
- package/dist-cli/chunks/{chunk-6QDFLMJL.js → chunk-TJMYDDAG.js} +1 -1
- package/dist-cli/chunks/{chunk-MBH3NFBC.js → chunk-TSXBCV5T.js} +2 -2
- package/dist-cli/chunks/{chunk-H4G7IRXG.js → chunk-UYCFIVX6.js} +2 -2
- package/dist-cli/chunks/{chunk-EYRQG47K.js → chunk-VHKFU4S2.js} +1 -1
- package/dist-cli/chunks/{chunk-IQU56D6C.js → chunk-VWCU546H.js} +1 -1
- package/dist-cli/chunks/{chunk-PDZ4JVAW.js → chunk-WYBVFDX7.js} +1 -1
- package/dist-cli/chunks/{chunk-BF7F45CZ.js → chunk-XFI4SBWQ.js} +2 -2
- package/dist-cli/chunks/chunk-XSZCYAXF.js +11 -0
- package/dist-cli/chunks/{chunk-MTE3DEWY.js → chunk-Y7ITI3X2.js} +1 -1
- package/dist-cli/chunks/{chunk-GNQSOQXZ.js → chunk-Z5YTYQHU.js} +2 -2
- package/dist-cli/chunks/{chunk-JPLTR6JM.js → chunk-ZBR6H6LW.js} +1 -1
- package/dist-cli/chunks/{chunk-JPX7OS7B.js → chunk-ZT6JZN2V.js} +2 -2
- package/dist-cli/chunks/cli-version-TG76CSHZ.js +2 -0
- package/dist-cli/chunks/{compat-ZBLH6EWV.js → compat-XQTJJGFN.js} +3 -3
- package/dist-cli/chunks/{config-DH2GG63H.js → config-SREAYZNH.js} +2 -2
- package/dist-cli/chunks/control-LZR3EEK6.js +2 -0
- package/dist-cli/chunks/{cpu-profile-3PRCXZMV.js → cpu-profile-CUXZKZ4Z.js} +2 -2
- package/dist-cli/chunks/{daemon-XSFKUDKZ.js → daemon-MCR7OR22.js} +2 -2
- package/dist-cli/chunks/{debug-VAWCOXQ3.js → debug-XZBCUV3A.js} +3 -3
- package/dist-cli/chunks/demo-app-registry-TTMQ5X4I.js +2 -0
- package/dist-cli/chunks/{detox-UABOFTDQ.js → detox-X3G5ASPP.js} +2 -2
- package/dist-cli/chunks/{device-LCB4N66D.js → device-BV3VJE3V.js} +2 -2
- package/dist-cli/chunks/{diagnose-MT3WMY4M.js → diagnose-F52LKBS6.js} +2 -2
- package/dist-cli/chunks/drivers-A75SQEWU.js +2 -0
- package/dist-cli/chunks/{electron-WVNFRA4S.js → electron-VFZMSSGO.js} +3 -3
- package/dist-cli/chunks/flow-5LTGWXWP.js +2 -0
- package/dist-cli/chunks/{hints-PFAKBGFX.js → hints-VANECRXI.js} +2 -2
- package/dist-cli/chunks/{home-paths-X6RB72PF.js → home-paths-J6PSRIMF.js} +2 -2
- package/dist-cli/chunks/{inspect-UFYXDO6B.js → inspect-SNFMIN2L.js} +96 -124
- package/dist-cli/chunks/install-NEFJEKEX.js +2 -0
- package/dist-cli/chunks/{install-desktop-W6QJX52Y.js → install-desktop-X53RE7IV.js} +3 -3
- package/dist-cli/chunks/{keys-ORDSAMP7.js → keys-TS7M56JL.js} +2 -2
- package/dist-cli/chunks/{launch-NQZTWTPY.js → launch-OW5YEDFK.js} +3 -3
- package/dist-cli/chunks/{login-J2NVLHK5.js → login-4TXQM3BF.js} +4 -4
- package/dist-cli/chunks/{logout-HI7A6PFH.js → logout-3C3FPCG7.js} +2 -2
- package/dist-cli/chunks/{maestro-KIOOFK5M.js → maestro-N74HJGTI.js} +2 -2
- package/dist-cli/chunks/{preview-QUJO4B4G.js → preview-FXVS46B5.js} +2 -2
- package/dist-cli/chunks/{profile-U6RWYQV2.js → profile-TPFRKRKJ.js} +2 -2
- package/dist-cli/chunks/{react-3V65RTQC.js → react-6Q34SQFO.js} +2 -2
- package/dist-cli/chunks/{record-476LFCQV.js → record-7F6XI6Z3.js} +2 -2
- package/dist-cli/chunks/runtime-UHC43LJI.js +2 -0
- package/dist-cli/chunks/{runtime-delivery-BSRHUXJQ.js → runtime-delivery-7TRQ44Z6.js} +2 -2
- package/dist-cli/chunks/{screenshot-2S3BCN35.js → screenshot-M2F3KS6M.js} +2 -2
- package/dist-cli/chunks/{screenshot-mode-SZCHOYZV.js → screenshot-mode-HZAPMY7V.js} +2 -2
- package/dist-cli/chunks/{screenshots-LGP7LA3M.js → screenshots-PKBYEBBM.js} +2 -2
- package/dist-cli/chunks/{server-G4BGS6GE.js → server-OU3NTCYI.js} +2 -2
- package/dist-cli/chunks/setup-repo-4WQXPADN.js +2 -0
- package/dist-cli/chunks/{skills-2YOLQVV6.js → skills-L5EPL5WL.js} +2 -2
- package/dist-cli/chunks/{start-SF3I4SLN.js → start-XLPRV6L7.js} +4 -4
- package/dist-cli/chunks/store-TUCLRZNK.js +2 -0
- package/dist-cli/chunks/telemetry-PHCMEH7N.js +2 -0
- package/dist-cli/chunks/{test-YYHXTVDI.js → test-W5YAIGGY.js} +3 -3
- package/dist-cli/chunks/three-mode-NXKHTAYK.js +54 -0
- package/dist-cli/chunks/{timeline-IOEIFEH2.js → timeline-5UL2A7L2.js} +2 -2
- package/dist-cli/chunks/{upgrade-YF2U5QJY.js → upgrade-K4WXKMQI.js} +2 -2
- package/dist-cli/chunks/upload-LVC4KCUG.js +2 -0
- package/dist-cli/chunks/{web-GAOXH77P.js → web-SLKO5KZU.js} +2 -2
- package/dist-cli/chunks/{what-happened-DBI2RQVE.js → what-happened-NYYYNWGO.js} +2 -2
- package/dist-cli/chunks/{whoami-YDAMLYNA.js → whoami-OUJMAWR7.js} +2 -2
- package/dist-lib/agent-daemon-client.cjs +1 -1
- package/dist-lib/agent-events.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/bridge-constants.cjs +1 -1
- package/dist-lib/cli-constants.cjs +1 -1
- package/dist-lib/config.cjs +1 -1
- 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/index.cjs +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/vite-base.cjs +1 -1
- package/dist-lib/vite.cjs +1 -1
- package/package.json +1 -1
- package/dist-cli/chunks/auto-bootstrap-OYBDYAZM.js +0 -2
- package/dist-cli/chunks/beta-D4OEPOSE.js +0 -2
- package/dist-cli/chunks/chunk-2QNHBNWB.js +0 -16
- package/dist-cli/chunks/chunk-A3YSGT76.js +0 -37
- package/dist-cli/chunks/chunk-ABEYZDD7.js +0 -11
- package/dist-cli/chunks/chunk-DSJ7PGU3.js +0 -2
- package/dist-cli/chunks/chunk-DVCE2KQL.js +0 -108
- package/dist-cli/chunks/chunk-KVQWMXDV.js +0 -2
- package/dist-cli/chunks/chunk-SEETW74F.js +0 -1
- package/dist-cli/chunks/chunk-ULHAQFCE.js +0 -1
- package/dist-cli/chunks/chunk-YVGHAT6Q.js +0 -1
- package/dist-cli/chunks/cli-version-2VO66OZ6.js +0 -2
- package/dist-cli/chunks/control-W3BOP6AT.js +0 -2
- package/dist-cli/chunks/demo-app-registry-7GNP7WE4.js +0 -2
- package/dist-cli/chunks/drivers-YGVUWGMB.js +0 -2
- package/dist-cli/chunks/flow-OUOMEOSC.js +0 -2
- package/dist-cli/chunks/install-NBUHIXEP.js +0 -2
- package/dist-cli/chunks/runtime-4TK5DY5R.js +0 -2
- package/dist-cli/chunks/setup-repo-5LUDPPSI.js +0 -2
- package/dist-cli/chunks/store-LLUQKQB7.js +0 -2
- package/dist-cli/chunks/telemetry-RDTORLS2.js +0 -2
- package/dist-cli/chunks/three-mode-5U3H4QDF.js +0 -39
- package/dist-cli/chunks/upload-3DFSK4NV.js +0 -2
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
2
|
-
import{
|
|
1
|
+
/*! sootsim v0.1.54 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
+
import{J as F,w as S,x as k,y as g}from"./chunk-LHDZ4VZV.js";import{c as b,e as y}from"./chunk-TSXBCV5T.js";import{b as w}from"./chunk-4PVSZ6GE.js";import"./chunk-J6CCM5BR.js";import"./chunk-ZBR6H6LW.js";import"./chunk-TJMYDDAG.js";function M(t){let e=[];for(let n=0;n<t.length;n++)if(t[n]==="--since"&&n+1<t.length){e.push(n,n+1);let s=t[n+1].trim(),a=/^(\d+(?:\.\d+)?)(ms|s|m)?$/.exec(s);if(a){let l=Number(a[1]),u=a[2]??"ms",r=u==="s"?l*1e3:u==="m"?l*6e4:l;return{since:Date.now()-r,consumed:e}}let o=Number(s);if(Number.isFinite(o)&&o>1e12)return{since:o,consumed:e}}return{consumed:e}}function E(t){let e=[];for(let n=0;n<t.length;n++)if(t[n]==="--kinds"&&n+1<t.length)return e.push(n,n+1),{kinds:t[n+1].split(",").map(s=>s.trim()).filter(Boolean),consumed:e};return{consumed:e}}function C(t){let e=[];for(let n=0;n<t.length;n++)if(t[n]==="--limit"&&n+1<t.length){e.push(n,n+1);let s=Number(t[n+1]);if(Number.isFinite(s)&&s>0)return{limit:s,consumed:e}}return{consumed:e}}function _(t,e){if(e===null)return new Date(t).toLocaleTimeString();let n=(t-e)/1e3;return`${n>=0?"+":""}${n.toFixed(2)}s`}function j(t,e){switch(t){case"app-launch":return e.phase==="launch"?`launch ${e.appName??e.toAppId??""}`:`dismiss ${e.appName??e.fromAppId??""} \u2192 ${e.toAppId??""}`;case"toast":return`"${e.text??""}"${e.durationMs?` (${e.durationMs}ms)`:""}`;case"keyboard":return`${e.phase??"?"}${e.heightPx?` h=${e.heightPx}`:""}${e.mode?` ${e.mode}`:""}`;case"screen":return`${e.phase??"?"} ${e.name??e.activeName??""}`;case"route":return`${e.phase??"?"} ${e.path??e.pathname??""}`;case"alert":case"actionsheet":case"picker":return`${e.phase??"?"} ${e.title??e.message??""}`;case"notification":return`${e.title??""}${e.body?` \u2014 ${e.body}`:""}`;case"fetch":return`${e.method??"GET"} ${e.url??""}${e.status?` -> ${e.status}`:""}`;case"console":return`${e.level??"log"}: ${(e.message??"").toString().slice(0,120)}`;case"shell":return`${e.event??e.type??e.phase??""}`;case"scroll":return`${e.phase??"?"} ${e.target??""}`;case"gesture":return`${e.phase??"?"} ${e.type??""}`;case"text-input":return`${e.phase??"?"}${e.value!==void 0?` "${String(e.value).slice(0,40)}"`:""}`;case"react-commit":{let n=e.slowest;return`${e.fiberCount??"?"} fibers ${e.durationMs??"?"}ms${n?.displayName?` \xB7 ${n.displayName} ${n.durationMs??"?"}ms`:""}`}case"reanimated":case"animation":return`${e.kind??""} ${e.target??""}${e.durationMs?` ${e.durationMs}ms`:""}`}}function N(t,e){let n=_(t.t,e).padStart(8),s=t.context.padEnd(6),a=`[${t.kind}]`.padEnd(15),o="",l=t.data;return l&&typeof l=="object"&&(o=j(t.kind,l)),` ${n} ${s} ${a} ${o}`}function T(t){let e=[],n={label:"initial state",events:[],startedAt:t[0]?.t??null};e.push(n);for(let s of t)if(n.events.push(s),s.kind==="screen"||s.kind==="route"){let a=s.data,o=a?.phase;if(!o||o==="enter"||o==="appear"||o==="active"){let l=a?.name||a?.activeName||a?.path||a?.pathname||s.kind;e.length===1&&n.events.length===1?n.label=`${s.kind}: ${l}`:(n={label:`${s.kind}: ${l}`,events:[],startedAt:s.t},e.push(n))}}return e}async function O(t,e){let n=b(t,{port:e.port,stripBooleanFlags:["--summary","--all","--json","--no-advance","--help","-h","--flow"],stripValueFlags:["--since","--kinds","--limit"]});(t.includes("--help")||t.includes("-h"))&&(console.log(`
|
|
3
3
|
sootsim what-happened \u2014 show recent events from the semantic timeline
|
|
4
4
|
|
|
5
5
|
usage:
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
2
|
-
import{d as i}from"./chunk-
|
|
1
|
+
/*! sootsim v0.1.54 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
+
import{d as i}from"./chunk-XFI4SBWQ.js";import{d as n}from"./chunk-G33A5TWY.js";import"./chunk-ZBR6H6LW.js";import"./chunk-TJMYDDAG.js";async function u(){let o=i();if(o||(console.log(" not signed in"),console.log(" set SOOTSIM_API_KEY=sk_sootsim_\u2026 or run `sootsim login`"),process.exit(1)),o.kind==="api-key"){let r=`${o.secret.slice(0,14)}\u2026`,t=o.source==="env"?"SOOTSIM_API_KEY env var":"saved key (~/.config/sootsim/credentials.json)";console.log(` api key ${r}`),console.log(` source: ${t}`);return}if(o.kind==="github"){console.log(` github token (${o.source})`),console.log(` repo: ${o.repoId}`);return}let e=await n(),s=e?.user;console.log(` ${s?.email||s?.name||s?.id||"signed in"}`),console.log(` origin: ${e?.origin??o.origin}`),e?.updatedAt&&console.log(` updated: ${e.updatedAt}`)}export{u as runWhoami};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.54 | (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.54 | (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.54 | (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.54 | (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.54 | (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.54 | (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.54 | (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.54 | (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.54 | (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.54 | (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.54 | (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.54 | (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.54 | (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/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.54 | (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/metro.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.54 | (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.54 | (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.54 | (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/vite-base.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.54 | (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/vite.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.54 | (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,2 +0,0 @@
|
|
|
1
|
-
/*! sootsim v0.1.52 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
-
import{a,b,c,d}from"./chunk-MSKCUZ5B.js";import"./chunk-MBH3NFBC.js";import"./chunk-CTEXZ7BE.js";import"./chunk-DSJ7PGU3.js";import"./chunk-JPLTR6JM.js";import"./chunk-6QDFLMJL.js";export{c as ensureDaemonRunning,a as ensureRuntimeInstalled,d as ensureSootsimReady,b as resolveBootstrapPort};
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/*! sootsim v0.1.52 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
-
import{c as l,e as d,h as c}from"./chunk-MBH3NFBC.js";function g(n){let e=n[0]?.toLowerCase()??"toggle";return e!=="on"&&e!=="off"&&e!=="toggle"&&(console.error(` unknown argument: "${e}" (expected on | off | toggle)`),process.exit(1)),e}async function u(n,e,o){let s=l(n,{port:e.port}),a=g(s.positional),r=d({...s,commandTimeoutMs:5e3});try{let i=!!(await c(r,"SootSim.bridges.settings.get"))?.[o.modeKey],t=a==="on"?!0:a==="off"?!1:!i;if(i===t){console.log(` ${o.displayName}: already ${t?"on":"off"}`);return}if(!await r.send({type:"evaluate",acquireLock:!0,code:`(async () => {
|
|
3
|
-
const modeKey = ${JSON.stringify(o.modeKey)}
|
|
4
|
-
const target = ${JSON.stringify(t)}
|
|
5
|
-
window.dispatchEvent(new CustomEvent('sootsim:shell-command', {
|
|
6
|
-
detail: { type: 'fire-action', id: ${JSON.stringify(o.actionId)} },
|
|
7
|
-
}))
|
|
8
|
-
const deadline = Date.now() + 1200
|
|
9
|
-
while (Date.now() < deadline) {
|
|
10
|
-
if (Boolean(window.SootSim?.bridges?.settings?.get?.()?.[modeKey]) === target) {
|
|
11
|
-
return true
|
|
12
|
-
}
|
|
13
|
-
await new Promise((resolve) => setTimeout(resolve, 40))
|
|
14
|
-
}
|
|
15
|
-
return false
|
|
16
|
-
})()`}))throw new Error(`${o.displayName} did not change to ${t?"on":"off"}; the live shell may not support this mode`);console.log(` ${o.displayName}: ${i?"on":"off"} -> ${t?"on":"off"}`)}finally{r.close()}}export{u as a};
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
/*! sootsim v0.1.52 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
-
import{v as p}from"./chunk-DVCE2KQL.js";import{d as u,h as m,i as w}from"./chunk-MBH3NFBC.js";var y={timeoutMs:1800,settleMs:48,startWindowMs:64};function c(e){return new Promise(t=>setTimeout(t,e))}function h(e){return e.includes("--json")}function S(e){process.stdout.write(`${JSON.stringify(e??null,null,2)}
|
|
3
|
-
`)}async function g(e,t,...r){return m(e,`__sootsimTest.${t}`,...r)}async function f(e,t,...r){return w(e,`SootSim.bridges.mainShell.${t}`,...r)}async function T(e,t={}){try{let r=await g(e,"waitForScreenTransitions",y);if(!t.verbose||!r?.started)return;if(r.timedOut){console.log(` screen transition still active after ${r.waitedMs}ms; continuing`);return}r.waitedMs>0&&console.log(` waited ${r.waitedMs}ms for screen transition settle`)}catch{}}async function v(e,t,r,...n){let o=Date.now()+Math.max(0,r);for(;;)try{return await f(e,t,...n)}catch(s){if(!p(s)||Date.now()>=o)throw s;await c(50)}}async function x(e,t,r,n={}){let o=n.attempts??30,s=n.intervalMs??500,i=n.minNodeCount??10;for(let a=0;a<o;a++){let l=u(e,{commandTimeoutMs:t,simId:r});try{let d=await l.send({type:"evaluate",code:"(async () => (await window.__sootsimTest?.getNodeCount()) || 0)()"});if(typeof d=="number"&&d>i)return{bridge:l,count:d}}catch{}l.close(),await c(s)}return null}async function _(e,t,r,n={}){let o=n.timeoutMs??8e3,s=n.intervalMs??250,i=Date.now()+o;for(;Date.now()<i;){let a=u(e,{commandTimeoutMs:t,simId:r});try{return await a.send({type:"evaluate",code:"1"}),a}catch{a.close()}await c(s)}return null}async function W(e,t={}){let r=t.timeoutMs??1e4,n=t.errorGraceMs??3e3,o=t.pollIntervalMs??200;return await e.send({type:"evaluate",code:`(async () => {
|
|
4
|
-
const start = Date.now()
|
|
5
|
-
const deadline = start + ${r}
|
|
6
|
-
const errorGraceAt = start + ${n}
|
|
7
|
-
const getNodes = async () => {
|
|
8
|
-
try { return (await window.__sootsimTest?.getNodeCount?.()) || 0 } catch { return 0 }
|
|
9
|
-
}
|
|
10
|
-
const getErrors = () => {
|
|
11
|
-
try { return window.__sootsimConsole?.count?.()?.errors ?? 0 } catch { return 0 }
|
|
12
|
-
}
|
|
13
|
-
let readyFired = window.__sootsimExternalAppReady === true
|
|
14
|
-
const onReady = () => { readyFired = true }
|
|
15
|
-
try { window.addEventListener('sootsim:externalAppReady', onReady, { once: true }) } catch {}
|
|
16
|
-
try {
|
|
17
|
-
while (Date.now() < deadline) {
|
|
18
|
-
if (readyFired || window.__sootsimExternalAppReady === true) {
|
|
19
|
-
return { ready: true, source: 'flag', elapsedMs: Date.now() - start, nodes: await getNodes(), errors: getErrors() }
|
|
20
|
-
}
|
|
21
|
-
if (Date.now() >= errorGraceAt) {
|
|
22
|
-
const errors = getErrors()
|
|
23
|
-
if (errors > 0 && window.__sootsimExternalAppReady !== true) {
|
|
24
|
-
return { ready: false, source: 'error-bail', elapsedMs: Date.now() - start, nodes: await getNodes(), errors }
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
await new Promise((r) => setTimeout(r, ${o}))
|
|
28
|
-
}
|
|
29
|
-
const nodes = await getNodes()
|
|
30
|
-
if (nodes > 50) {
|
|
31
|
-
return { ready: true, source: 'nodes-fallback', elapsedMs: Date.now() - start, nodes, errors: getErrors() }
|
|
32
|
-
}
|
|
33
|
-
return { ready: false, source: 'timeout', elapsedMs: Date.now() - start, nodes, errors: getErrors() }
|
|
34
|
-
} finally {
|
|
35
|
-
try { window.removeEventListener('sootsim:externalAppReady', onReady) } catch {}
|
|
36
|
-
}
|
|
37
|
-
})()`})??{ready:!1,source:"timeout",elapsedMs:0,nodes:0,errors:0}}export{c as a,h as b,S as c,g as d,T as e,v as f,x as g,_ as h,W as i};
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/*! sootsim v0.1.52 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
-
import{a as D,b as j,c as se}from"./chunk-3MIWVHCX.js";import{b as L}from"./chunk-HRIQRZX3.js";import{g as W}from"./chunk-H4G7IRXG.js";import{a as k,b as q}from"./chunk-I5WEW3ES.js";import{c as ie}from"./chunk-EQPRFEHH.js";import{d as ne}from"./chunk-MTE3DEWY.js";import{a as ee}from"./chunk-KVQWMXDV.js";import{b as re,c as x,d as b,e as C}from"./chunk-MBH3NFBC.js";import{c as I,d as g,e as E}from"./chunk-CTEXZ7BE.js";import{E as te,F as oe}from"./chunk-JPLTR6JM.js";import xe from"node:fs";import Ce from"node:os";import J from"node:path";function he(t){return t.replace(/^\[|\]$/g,"").toLowerCase()}function G(t){let o=he(t);return o==="localhost"||o.endsWith(".localhost")||o==="0.0.0.0"||o==="::1"||/^127(?:\.\d{1,3}){3}$/.test(o)}function ae(t){return new Error(`could not resolve a native bundle for ${t}. pass an explicit bundle URL or open Connect and choose the app there.`)}function we(t,o){return t?.includes("/one/metro-entry.bundle")?"one":typeof o=="string"&&o?"expo":"unknown"}function le(t,o,e){return`${t}//${o}:${e}`}function ye(t){if(typeof window>"u")return!1;try{let o=new URL(t);return G(o.hostname)&&G(window.location.hostname)&&o.origin!==window.location.origin}catch{return!1}}async function ce(t,o){let e={...o,cache:o?.cache??"no-store"};return ye(t)?fetch(`/__fetch-proxy?url=${encodeURIComponent(t)}`,e):fetch(t,e)}function be(t){return t==="https:"?443:80}function Se(t){let o=t.pathname||"/";return(o==="/"||o==="")&&!t.search&&!t.hash}async function me(t,o){let e=t.replace(/\/+$/,"");try{let n=await ce(`${e}/`,{headers:{"expo-platform":"ios"}});if(n.ok){let r=await n.json(),i=r?.extra?.expoClient||r?.extra||{},s=typeof r?.launchAsset?.url=="string"?r.launchAsset.url:void 0;if(s||i.name)return{bundleUrl:se(s||`${e}${j}`),port:o,framework:we(s,i.sdkVersion),projectName:i.name}}}catch{}try{let n=await ce(`${e}/status`);if(n.ok&&(await n.text()).includes("packager-status:running"))return{bundleUrl:`${e}${j}`,port:o,framework:"metro"}}catch{}return null}async function $e(t){return me(le("http:","localhost",t),t)}async function Q(t){let o=t.trim();if(/^\d+$/.test(o)){let a=parseInt(o,10),l=await $e(a);if(l)return l;throw ae(`localhost:${a}`)}let e=o.startsWith("http")?o:`http://${o}`,n;try{n=new URL(e)}catch{throw new Error(`could not parse "${t}". pass a dev-server port, a dev-server base URL, or a full bundle URL.`)}let r=n.protocol||"http:",i=n.port?parseInt(n.port,10):be(r),s=le(r,n.hostname,i);if(Se(n)){let a=await me(s,i);if(a)return a;throw ae(s)}return{bundleUrl:n.toString(),port:i,framework:"unknown"}}function qe(){console.error(" no sootsim desktop companion found."),console.error(""),console.error(" install the desktop app:"),console.error(" sootsim install-desktop"),console.error(""),console.error(" or wire sootsim into your own project so your dev server hosts the bridge:"),console.error(" sootsim setup-repo"),console.error("")}function de(t){let o=k();if(console.log(` note: no sootsim bridge detected on port ${t}`),o){console.log(" launch the installed companion with:"),console.log(" sootsim electron");return}console.log(""),console.log(" to get a bridge running, either:"),console.log(" sootsim install-desktop # download the electron app"),console.log(" sootsim setup-repo # wire sootsim into your own project")}function ve(t){console.error(""),console.error(` no sim is connected to the sootsim bridge on port ${t}.`),console.error(""),console.error(" start your app dev server, then open it in sootsim:"),console.error(" npx expo start --localhost --port 8081"),console.error(" sootsim open 8081"),console.error(""),console.error(" then inspect the live app:"),console.error(" sootsim describe")}async function We(t,o,e){let n=[];try{n=await t.listSims()}catch{}if(console.error(""),n.length===0){ve(o);return}console.error(` no sim with id "${e}" is connected to the bridge on port ${o}.`),console.error(""),console.error(" connected sims:");for(let r of n){let i=[r.isPrimary?"primary":null,r.readyState].filter(Boolean).join(", ");console.error(` ${r.id} (${i})`)}console.error(""),console.error(" pass a valid --sim id, or run `sootsim list` to see all sessions.")}var Pe={rn:"/rn",connectrn:"/rn","connect-rn":"/rn",clock:"/app/clock","native-ui":"/app/native-ui",tamagui:"/app/tamagui",settings:"/app/settings",photos:"/app/photos",camera:"/app/camera"};function P(t){return new Promise(o=>setTimeout(o,t))}function V(t){return t.trim()}function K(t){try{let o=new URL(t),e=o.pathname.replace(/\/+$/,"")||"/";return o.searchParams.has("open")||o.searchParams.has("port")||o.searchParams.has("bundle")||o.searchParams.has("demo")||o.pathname.includes("/sootsim/index.html")||e==="/sootsim"||o.pathname==="/__soot"||o.pathname==="/__soot/"||e==="/rn"||/^\/rn\/[^/]+$/i.test(e)||/^\/app\/[^/]+$/i.test(e)||e==="/__soot/rn"||/^\/__soot\/rn\/[^/]+$/i.test(e)||/^\/__soot\/app\/[^/]+$/i.test(e)}catch{return!1}}async function ct(t){let o=V(t);return(await Q(o)).bundleUrl}function X(t){let o=t.replace(/\/+$/,"")||"/";return o==="/__soot"||o.startsWith("/__soot/")?"/__soot":""}function Ie(t,o){let e=V(t),n=new URL(o),r=X(n.pathname);return n.pathname=`${r}/rn`,n.searchParams.delete("bundle"),n.searchParams.delete("demo"),n.searchParams.delete("app"),n.searchParams.delete("open"),n.searchParams.delete("port"),/^\d+$/.test(e)?n.pathname=`${r}/rn/${e}`:(n.pathname=`${r}/rn`,n.searchParams.set("open",e)),n.toString()}function ke(t){let o=V(t);return/^\d+$/.test(o)||/^https?:\/\//i.test(o)?!0:/^(localhost|127\.0\.0\.1|\[::1\]|[^/]+\.localhost):\d+(?:\/.*)?$/i.test(o)}async function Me(t,o){let e=await Q(t),n=new URL(o),r=X(n.pathname);return n.pathname=`${r}/rn`,n.searchParams.delete("open"),n.searchParams.delete("port"),n.searchParams.delete("demo"),n.searchParams.delete("app"),n.searchParams.set("bundle",e.bundleUrl),n.toString()}function Te(t){return t.startsWith("~/")?J.join(Ce.homedir(),t.slice(2)):J.isAbsolute(t)?t:J.resolve(process.cwd(),t)}function Ue(t){let o={};for(let e=0;e<t.length;e++){if(t[e]!=="--replace")continue;let n=t[e+1];n||(console.error(" sootsim open: --replace expects <module>=<file>"),process.exit(1));let r=n.indexOf("=");(r<=0||r===n.length-1)&&(console.error(" sootsim open: --replace expects <module>=<file>"),process.exit(1));let i=n.slice(0,r).trim(),s=Te(n.slice(r+1).trim());xe.existsSync(s)||(console.error(` sootsim open: replacement file not found: ${s}`),process.exit(1)),o[i]={file:s},e++}return Object.keys(o).length>0?{modules:o}:void 0}function pe(){let t=te();return oe(t)&&t.runtimePort>0?`http://localhost:${t.runtimePort}/`:ee}async function N(t,o=pe()){if(!t)return new URL(o).toString();if(K(t))return new URL(t).toString();let e=Pe[t.toLowerCase()];if(e){let n=new URL(o),r=X(n.pathname);return n.pathname=`${r}${e}`,n.toString()}return ke(t)?Me(t,o):Ie(t,o)}function ue(t,o){let e=t?.url||t?.origin||o;try{let n=new URL(e);return n.searchParams.delete("bundle"),n.searchParams.delete("demo"),n.searchParams.delete("app"),n.searchParams.delete("open"),n.searchParams.delete("port"),n.searchParams.delete("inspectOpen"),n.toString()}catch{return o}}async function Be(t,o,e){let n=new URL(await N(t,o));return n.searchParams.set("inspectOpen",e),n.toString()}async function Oe(t,o,e,n={}){let r=n.attempts??30,i=n.intervalMs??500,s=n.minNodeCount??10;for(let a=0;a<r;a++){let l=b(t,{commandTimeoutMs:o,simId:e,simIdSource:"flag"});try{let c=await l.send({type:"evaluate",code:"(async () => (await window.__sootsimTest?.getNodeCount()) || 0)()"});if(typeof c=="number"&&c>s)return{bridge:l,count:c}}catch{}l.close(),await P(i)}return null}function _e(t){if(!t)return null;try{let o=new URL(t);if(o.searchParams.has("bundle")){let e=o.searchParams.get("bundle")||"";try{let n=new URL(e),r=n.pathname.length>36?`...${n.pathname.slice(-36)}`:n.pathname;return`bundle ${n.host}${r}`}catch{return"bundle"}}return o.searchParams.has("port")?`connect :${o.searchParams.get("port")||""}`:o.searchParams.has("open")?`connect ${o.searchParams.get("open")||""}`:o.searchParams.has("demo")?`demo ${o.searchParams.get("demo")||"default"}`:o.pathname.includes("/sootsim/index.html")||o.pathname==="/sootsim/"||o.pathname==="/sootsim"?"embedded sootsim":null}catch{return null}}function Re(t,o){if(t.length===0){console.log(" no sims connected");return}console.log(` connected sims (${t.length}):
|
|
3
|
-
`);for(let e of t){let n=e.lockedBy&&e.lockExpiresAt?`locked by ${e.lockedBy} (${Math.max(0,Math.round((e.lockExpiresAt-Date.now())/1e3))}s)`:"",r=[e.isPrimary?"primary":"",e.id===o?"selected":"",e.readyState,e.attachedCliCount&&e.attachedCliCount>0?"in use":"",e.userFocused?"focused":"",n].filter(Boolean);console.log(` ${e.id}${r.length?` [${r.join(", ")}]`:""}`);let i=_e(e.url);if(i&&console.log(` loaded: ${i}`),e.url?console.log(` url: ${e.url}`):e.origin&&console.log(` origin: ${e.origin}`),e.title&&console.log(` title: ${e.title}`),console.log(` connected: ${new Date(e.connectedAt).toISOString()}`),e.lastActiveAt&&e.lastActiveAt>0){let s=Math.round((Date.now()-e.lastActiveAt)/1e3),a=s<60?`${s}s ago`:s<3600?`${Math.round(s/60)}m ago`:`${Math.round(s/3600)}h ago`;console.log(` last active: ${a}`)}}}async function A(t,o,e,n={}){let r=n.attempts??30,i=n.intervalMs??500;for(let s=0;s<r;s++){let a=b(t,{commandTimeoutMs:o});try{let c=(await a.listSims()).find(e);if(c)return c}catch{}finally{a.close()}await P(i)}return null}async function Ee(t,o,e,n={}){let r=n.attempts??20,i=n.intervalMs??250;for(let s=0;s<r;s++){let a=b(t,{commandTimeoutMs:o});try{let c=(await a.listSims()).find(f=>f.id===e);if(!c||c.readyState!=="open")return!0}catch{return!0}finally{a.close()}await P(i)}return!1}function U(t,o){if(o){let r=o.trim(),i=t.find(s=>s.id===r);if(!i)throw new Error(`no sim connected with id ${r}`);return i}let e=t.find(r=>r.isPrimary&&r.readyState==="open");if(e)return e;let n=t.find(r=>r.readyState==="open");if(n)return n;throw new Error("no sim connected")}function M(t,o,e){console.log(` ${e==="current sim"?"loaded":"opened"}: ${t} [${e}]`),console.log(` current sim: ${o.id}`),console.log(JSON.stringify({simId:o.id,url:o.url},null,2))}async function T(t,o,e){if(e.includes("--no-describe"))return;let n=process.env.SOOTSIM_QUIET_TARGET_NOTICE;process.env.SOOTSIM_QUIET_TARGET_NOTICE="1";try{await Le(t,o,{stableMs:150,maxMs:400});let r=b(t,{commandTimeoutMs:3e3,simId:o,cliLabel:"open --describe",simIdSource:"flag"});try{let s=`(async () => {
|
|
4
|
-
const t = window.__sootsimTest
|
|
5
|
-
const ms = window.SootSim?.bridges?.mainShell
|
|
6
|
-
if (!t) return null
|
|
7
|
-
let shell = null
|
|
8
|
-
try { shell = ms?.getState ? await ms.getState() : null } catch {}
|
|
9
|
-
const tree = await t.dumpTree(12, ${JSON.stringify({describe:!0,verbose:!1,filter:""})})
|
|
10
|
-
return { tree, shell }
|
|
11
|
-
})()`,a=await r.send({type:"evaluate",code:s});if(!a?.tree)return;if(console.log(""),a.shell?.state){let l=[`state=${a.shell.state}`,a.shell.activeApp?`app=${a.shell.activeApp}`:null].filter(Boolean);console.log(` shell: ${l.join(" ")}`)}console.log(a.tree)}finally{r.close()}}catch{}finally{n===void 0?delete process.env.SOOTSIM_QUIET_TARGET_NOTICE:process.env.SOOTSIM_QUIET_TARGET_NOTICE=n}}async function Le(t,o,e){let n=Date.now()+e.maxMs,r="(async () => (await window.__sootsimTest?.getNodeCount?.()) || 0)()",i=b(t,{commandTimeoutMs:2e3,simId:o,simIdSource:"flag"});try{let s=-1,a=0;for(;Date.now()<n;){let l=-1;try{let c=await i.send({type:"evaluate",code:r});typeof c=="number"&&(l=c)}catch{}if(l>=0&&l===s){if(Date.now()-a>=e.stableMs)return}else s=l,a=Date.now();await P(50)}}finally{i.close()}}async function lt(t,o={}){let e=x(t,{port:o.port,commandTimeoutMs:o.timeoutMs}),n=C(e);try{let r=await n.listSims();Re(r,e.simId)}finally{n.close()}}async function mt(t,o={}){let e=x(t,{port:o.port,commandTimeoutMs:o.timeoutMs,stripBooleanFlags:["--new","--headless","--ephemeral"],stripValueFlags:["--base-url","--replace","--driver","--profile"]}),n=t.find((m,d)=>t[d-1]==="--profile"),r=t.includes("--ephemeral");n&&r&&(console.error(" sootsim open: --profile cannot be combined with --ephemeral"),process.exit(1));let i=n?ie(n).id:void 0,s=!!i||r,a=t.includes("--new")||s,l=Ue(t);a&&e.simIdSource==="flag"&&(console.error(" sootsim open: --new, --profile, and --ephemeral cannot be combined with --sim"),process.exit(1));let c=e.positional[0]||"",f=t.find((m,d)=>t[d-1]==="--driver")||"",h=t.includes("--headless"),S=t.find((m,d)=>t[d-1]==="--base-url")||pe(),B=t.includes("--base-url"),$=I();if(!f&&!a&&(e.simIdSource==="flag"||e.simIdSource==="saved"&&!!$)){let m=C(e),d=e.simId?` --sim ${e.simId}`:"",u=!1;try{let p=null;try{let y=await m.listSims();if(e.simIdSource==="saved"?(p=y.find(v=>v.id===$&&v.readyState==="open")??null,p||E()):p=U(y,e.simId),!p)if(e.simIdSource==="saved")u=!0;else throw new Error("no sim connected");if(!u&&p){let v=B||K(c)?S:ue(p,S),R=await N(c,D(v,l));m.send({type:"evaluate",simId:p.id,code:`window.location.href = ${JSON.stringify(R)}`}).catch(()=>{})}}catch(y){console.error(` open failed: ${y instanceof Error?y.message:String(y)}`),await L(m,{errorsCommand:`sootsim get errors 5${d}`,warningsCommand:`sootsim get warnings 5${d}`,requestsCommand:`sootsim get requests 5${d}`}),process.exit(1)}if(!u&&p){await P(1500);let y=await Oe(e.wsPort,e.commandTimeoutMs,p.id);y||(console.error(" timed out waiting for current sim to load target"),process.exit(1)),y.bridge.close(),g(p.id);let v=B||K(c)?S:ue(p,S),R=await N(c,D(v,l));M(R,{...p,url:R},"current sim"),await T(e.wsPort,p.id,t);return}}finally{m.close()}}let Y=D(S,l),ge=await N(c,Y),Z=`cli-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`,w=await Be(c,Y,Z),F={newWindow:!0},O=m=>m.url?.includes(`inspectOpen=${Z}`)??!1;if(f){let m=W(f);m||(console.error(` unknown driver "${f}" \u2014 run \`sootsim list --drivers\``),process.exit(1));let d=await m.launch({url:w,headless:h,newWindow:F.newWindow,profileId:i,ephemeralProfile:r});d.launched||(console.error(` ${m.name} driver: ${d.message}`),process.exit(1));let u=await A(e.wsPort,e.commandTimeoutMs,O,{attempts:60,intervalMs:500});u||(console.error(" timed out waiting for opened sim to connect"),process.exit(1)),g(u.id),M(w,u,`${m.name} driver`),await T(e.wsPort,u.id,t);return}if(s){let m=k();m||(console.error(" profiles require electron or playwright; install the desktop companion or use `--driver playwright`"),process.exit(1));try{(await q(w,m,{profileId:i,ephemeralProfile:r})).launched||(console.error(" desktop companion failed to start"),process.exit(1))}catch(u){console.error(` desktop companion failed: ${u instanceof Error?u.message:String(u)}`),process.exit(1)}let d=await A(e.wsPort,e.commandTimeoutMs,O,{attempts:40,intervalMs:500});d||(console.error(" timed out waiting for profiled sim to connect"),process.exit(1)),g(d.id),M(w,d,"desktop companion"),await T(e.wsPort,d.id,t);return}let H=!1,z=!1;try{let m=b(e.wsPort,{commandTimeoutMs:2e3});try{await m.listSims(),H=!0}finally{m.close()}}catch{}if(H)try{let m=b(e.wsPort,{commandTimeoutMs:3e3});try{await m.openUrl(w,F),z=!0}finally{m.close()}}catch{}if(!z){let m=k();if(m)try{if((await q(w,m)).launched){let u=await A(e.wsPort,e.commandTimeoutMs,O,{attempts:20,intervalMs:500});if(u){g(u.id),M(w,u,"desktop companion"),await T(e.wsPort,u.id,t);return}}}catch{}try{await ne(w,F)}catch(d){console.error(` open failed: ${d instanceof Error?d.message:String(d)}`),W("playwright")?.availability().available?console.error(" no system browser found \u2014 retry with `sootsim open \u2026 --driver playwright` for a headless sim."):console.error(" run `sootsim list --drivers` to see available drivers."),process.exit(1)}if(!H){console.log(` opened: ${ge}`),de(e.wsPort);return}}let _=await A(e.wsPort,e.commandTimeoutMs,O,{attempts:30,intervalMs:500});_||(console.error(" timed out waiting for opened sim to connect"),process.exit(1)),g(_.id),M(w,_,z?"bridge":"direct shell open"),await T(e.wsPort,_.id,t)}async function fe(t,o={}){let e=x(t,{port:o.port,commandTimeoutMs:o.timeoutMs}),n=C(e),r=e.simId?` --sim ${e.simId}`:"";try{try{let i=await n.listSims(),s=U(i,e.positional[0]||e.simId);await n.focusSim(s.id),g(s.id),console.log(` using: ${s.id}`)}catch(i){console.error(` use failed: ${i instanceof Error?i.message:String(i)}`),await L(n,{errorsCommand:`sootsim get errors 5${r}`,warningsCommand:`sootsim get warnings 5${r}`,requestsCommand:`sootsim get requests 5${r}`}),process.exit(1)}}finally{n.close()}}async function dt(t,o={}){await fe(t,o)}async function ut(t,o={}){await fe(t,o)}async function pt(t,o={}){let e=x(t,{port:o.port,commandTimeoutMs:o.timeoutMs,stripBooleanFlags:["--force"]}),n=t.includes("--force"),r=C(e);try{try{let i=await r.listSims(),s=U(i,e.positional[0]||e.simId),a=n&&s.lockedBy&&s.lockedByKind!=="user-active"?s.lockedBy:null,l=await r.claim(s.id,{force:n});g(s.id);let c=Math.max(0,Math.round((l.lockExpiresAt-Date.now())/1e3)),f=l.bootedCount>0?` (booted ${l.bootedCount})`:"";console.log(` claimed: ${l.simId} [${c}s]${f}`),a&&console.log(` took over from: ${a}`)}catch(i){if(i instanceof re){let s=Math.max(0,Math.round(i.lock.expiresInMs/1e3));console.error(` claim failed: locked by ${i.lock.by} for ${s}s more`),console.error(" use --force to take it, or `sootsim open --new` for a fresh sim"),process.exit(1)}console.error(` claim failed: ${i instanceof Error?i.message:String(i)}`),process.exit(1)}}finally{r.close()}}async function De(t,o,e,n){if(n.length===0)return{closed:[],remaining:[]};await Promise.all(n.map(i=>t.closeSim(i).catch(()=>{})));let r=new Set(n);for(let i=0;i<40;i++){let s=[];try{let a=b(o,{commandTimeoutMs:e});try{s=(await a.listSims()).filter(c=>r.has(c.id)&&c.readyState==="open").map(c=>c.id)}finally{a.close()}}catch{s=[]}if(s.length===0)return{closed:[...r],remaining:[]};if(i===39)return{closed:[...r].filter(a=>!s.includes(a)),remaining:s};await P(250)}return{closed:[...r],remaining:[]}}async function ft(t,o={}){let e=x(t,{port:o.port,commandTimeoutMs:o.timeoutMs,stripBooleanFlags:["--all","--others"]}),n=C(e),r=e.simId?` --sim ${e.simId}`:"",i=t.includes("--all"),s=t.includes("--others");if(i||s){try{let a=await n.listSims(),l=a.filter($=>$.readyState==="open"),c=null;if(s)try{c=U(a,e.positional[0]||e.simId||I()||void 0).id}catch{c=null}let f=l.map($=>$.id).filter($=>$!==c);if(f.length===0){console.log(c?` nothing to close \u2014 only the kept sim ${c} is connected`:" nothing to close \u2014 no sims connected");return}let h=await De(n,e.wsPort,e.commandTimeoutMs,f),S=I();S&&h.closed.includes(S)&&(c?g(c):E());let B=` closed ${h.closed.length} sim(s)${c?` (kept ${c})`:""}`;console.log(B),h.remaining.length>0&&(console.error(` close failed: still connected: ${h.remaining.join(", ")}`),process.exit(1))}catch(a){console.error(` close failed: ${a instanceof Error?a.message:String(a)}`),process.exit(1)}finally{n.close()}return}try{try{let a=await n.listSims(),l=U(a,e.positional[0]||e.simId),c=a.find(h=>h.id!==l.id&&h.readyState==="open");await n.closeSim(l.id),await Ee(e.wsPort,e.commandTimeoutMs,l.id)||(console.error(` close failed: ${l.id} is still connected`),process.exit(1)),I()===l.id&&(c?g(c.id):E()),console.log(` closed: ${l.id}`)}catch(a){console.error(` close failed: ${a instanceof Error?a.message:String(a)}`),await L(n,{errorsCommand:`sootsim get errors 5${r}`,warningsCommand:`sootsim get warnings 5${r}`,requestsCommand:`sootsim get requests 5${r}`}),process.exit(1)}}finally{n.close()}}export{qe as a,ve as b,We as c,ct as d,pe as e,N as f,Be as g,_e as h,Re as i,A as j,lt as k,mt as l,dt as m,ut as n,pt as o,ft as p};
|
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
/*! sootsim v0.1.52 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
-
async function y(e){let t=await e.send({type:"evaluate",code:"(async () => await window.__sootsimTest.getNodeCount())()"});return{nodes:typeof t=="number"?t:0}}async function p(e,t=5){let n=await e.send({type:"evaluate",code:`(async () => await window.__sootsimTest.dumpTree(${t}))()`});return{depth:t,tree:n}}async function m(e){let t=await e.send({type:"evaluate",code:"window.location.href"});return{url:typeof t=="string"?t:""}}async function g(e,t){let n=`(async () => {
|
|
3
|
-
const t = window.__sootsimTest
|
|
4
|
-
const mainShell = window.SootSim?.bridges?.mainShell
|
|
5
|
-
const kb = window.__sootsimKeyboard
|
|
6
|
-
if (!t) return { error: 'no test bridge' }
|
|
7
|
-
|
|
8
|
-
let shell = null
|
|
9
|
-
try {
|
|
10
|
-
shell = typeof mainShell?.getState === 'function' ? await mainShell.getState() : null
|
|
11
|
-
} catch {}
|
|
12
|
-
|
|
13
|
-
const tree = await t.dumpTree(12, ${JSON.stringify(t)})
|
|
14
|
-
const nodeCount = (await t.getNodeCount?.()) || 0
|
|
15
|
-
const keyboard = kb && typeof kb.getLayout === 'function' ? kb.getLayout() : null
|
|
16
|
-
return { tree, shell, nodeCount, keyboard }
|
|
17
|
-
})()`;return await e.send({type:"evaluate",code:n})??{}}function l(e){return e.testId?{mode:"testid",code:`(async () => {
|
|
18
|
-
const t = window.__sootsimTest
|
|
19
|
-
return (await t.findByTestId(${JSON.stringify(e.testId)})) || (await t.findById(${JSON.stringify(e.testId)}))
|
|
20
|
-
})()`}:e.role?{mode:"role",code:`(async () => await window.__sootsimTest.queryAll({ hasRole: ${JSON.stringify(e.role)}, pruneHidden: true }))()`}:e.type?{mode:"type",code:`(async () => await window.__sootsimTest.queryAll({ type: ${JSON.stringify(e.type)}, pruneHidden: true }))()`}:e.pressable?{mode:"pressable",code:`(async () => {
|
|
21
|
-
const t = window.__sootsimTest
|
|
22
|
-
const all = await t.queryAll({ pruneHidden: true })
|
|
23
|
-
return all.filter(n => n.pressable)
|
|
24
|
-
})()`}:e.interactive?{mode:"interactive-targets",code:`(async () => {
|
|
25
|
-
const t = window.__sootsimTest
|
|
26
|
-
const all = await t.queryAll({ pruneHidden: true })
|
|
27
|
-
return all.filter(n => n.pressable && n.layout && n.layout.width > 0 && n.layout.height > 0)
|
|
28
|
-
})()`}:e.visible?{mode:"visible",code:`(async () => {
|
|
29
|
-
const all = await window.__sootsimTest.queryAll({ pruneHidden: true })
|
|
30
|
-
return all.filter(n => n.layout && n.layout.width > 0 && n.layout.height > 0)
|
|
31
|
-
})()`}:e.text?{mode:"text",code:`(async () => await window.__sootsimTest.findByText(${JSON.stringify(e.text)}))()`}:null}async function b(e,t){let n=l(t);if(!n)return null;let r=await e.send({type:"evaluate",code:n.code});return{mode:n.mode,result:r}}function f(e){return[...e].sort((t,n)=>i(n)-i(t))}function i(e){let t=0;e.testID&&(t+=100),typeof e.text=="string"&&e.text.trim().length>0&&(t+=60),typeof e.accessibilityLabel=="string"&&e.accessibilityLabel.trim().length>0&&(t+=30),e.accessibilityRole&&(t+=15);let n=e.layout?.width??0,r=e.layout?.height??0,o=n*r;return o>=400&&o<=6e4?t+=25:o>6e4&&(t-=20),(e.absolutePosition?.y??0)<0&&(t-=30),t}function w(e){if(e.testID)return`sootsim do tap-id ${a(e.testID)}`;let t=typeof e.text=="string"?e.text.trim():"";if(t.length>0&&t.length<=80)return`sootsim do tap-text ${a(t)}`;let n=Math.round(((e.absolutePosition?.x??0)+(e.layout?.width??0)/2)*10)/10,r=Math.round(((e.absolutePosition?.y??0)+(e.layout?.height??0)/2)*10)/10;return`sootsim do tap ${n} ${r}`}function a(e){return/^[A-Za-z0-9_./@:-]+$/.test(e)?e:`'${e.replace(/'/g,"'\\''")}'`}var u=`(async () => {
|
|
32
|
-
const t = window.__sootsimTest
|
|
33
|
-
let nodes = 0
|
|
34
|
-
try { nodes = (await t?.getNodeCount?.()) || 0 } catch {}
|
|
35
|
-
return {
|
|
36
|
-
flag: (window).__sootsimExternalAppReady,
|
|
37
|
-
at: (window).__sootsimExternalAppReadyAt || 0,
|
|
38
|
-
nodes,
|
|
39
|
-
}
|
|
40
|
-
})()`;async function S(e,t=2e4){let n=Date.now(),r=n+t,o={flag:void 0,at:0,nodes:0};for(;Date.now()<r;){try{o=await e.send({type:"evaluate",code:u})??o}catch{}if(o.flag===!0)return{ready:!0,elapsedMs:Date.now()-n,nodes:o.nodes};await new Promise(s=>setTimeout(s,150))}return{ready:!1,elapsedMs:Date.now()-n,nodes:o.nodes}}async function h(e,t,n=5e3){return await e.send({type:"evaluate",code:`(async () => {
|
|
41
|
-
const start = Date.now()
|
|
42
|
-
const deadline = start + ${n}
|
|
43
|
-
const t = window.__sootsimTest
|
|
44
|
-
const find = async () => {
|
|
45
|
-
try {
|
|
46
|
-
return (await t?.findByTestId?.(${JSON.stringify(t)})) ||
|
|
47
|
-
(await t?.findById?.(${JSON.stringify(t)})) || null
|
|
48
|
-
} catch {}
|
|
49
|
-
return null
|
|
50
|
-
}
|
|
51
|
-
while (Date.now() < deadline) {
|
|
52
|
-
const node = await find()
|
|
53
|
-
if (node && node.layout && node.layout.width > 0 && node.layout.height > 0) {
|
|
54
|
-
return { found: true, node, elapsed: Date.now() - start }
|
|
55
|
-
}
|
|
56
|
-
await new Promise((r) => setTimeout(r, 80))
|
|
57
|
-
}
|
|
58
|
-
return { found: false, elapsed: Date.now() - start }
|
|
59
|
-
})()`})??{found:!1,elapsed:n}}async function x(e,t=20){let n=await e.send({type:"evaluate",code:`window.__sootsimConsole?.getErrors(${t}) || []`});return Array.isArray(n)?n:[]}async function v(e,t=20){let n=await e.send({type:"evaluate",code:`window.__sootsimConsole?.getWarnings(${t}) || []`});return Array.isArray(n)?n:[]}async function _(e){await e.send({type:"evaluate",code:'window.__sootsimConsole?.clear(); "cleared"'})}async function k(e,t={}){let n=t.limit??20,r=t.failed===!1?"getRequests":"getFailedRequests",o=await e.send({type:"call",path:`__sootsimTest.${r}`,args:[n]});return Array.isArray(o)?o:[]}async function T(e){await e.send({type:"call",path:"__sootsimTest.clearRequests",args:[]})}async function I(e){let t=await e.send({type:"evaluate",code:`(() => {
|
|
60
|
-
const obs = window.__sootsimObservability;
|
|
61
|
-
if (!obs) return { ok: false };
|
|
62
|
-
return { ok: true, entries: obs.logs.getSnapshot() };
|
|
63
|
-
})()`});if(!t||!t.ok)throw new Error("observability bridge not installed \u2014 is the engine running?");return t.entries??[]}async function L(e){await e.send({type:"evaluate",code:'window.__sootsimObservability?.logs.clear(); "cleared"'})}function B(e,t={}){let n=e;if(t.showInternal||(n=n.filter(r=>{let o=r.args[0];return!(typeof o=="string"&&o.startsWith("[sootsim]"))})),t.level&&(n=n.filter(r=>t.level.has(r.level))),t.filter){let r=t.filter.toLowerCase();n=n.filter(o=>o.args.join(" ").toLowerCase().includes(r))}return n}async function P(e,t){return await e.send({type:"call",path:"SootSim.bridges.timeline.summary",args:[t]})}async function D(e,t){return await e.send({type:"call",path:"SootSim.bridges.timeline.recent",args:[t]})}async function R(e,t,n){await e.send({type:"call",path:"SootSim.bridges.timeline.cursorAdvance",args:[t,n]})}async function E(e){return await e.send({type:"evaluate",code:`(() => {
|
|
64
|
-
const kb = window.__sootsimKeyboard
|
|
65
|
-
if (!kb || typeof kb.getLayout !== 'function') {
|
|
66
|
-
return { error: 'keyboard bridge getLayout() not available' }
|
|
67
|
-
}
|
|
68
|
-
return kb.getLayout()
|
|
69
|
-
})()`})??{error:"keyboard bridge returned no result"}}function c(e){let t=e instanceof Error?e.message:String(e);return t.includes("call target not found: SootSim.bridges.mainShell")||t.includes("test bridge unavailable before app-in-worker boot")}async function d(e,t=0){let n=Date.now()+Math.max(0,t);for(;;)try{return await e.send({type:"call",path:"SootSim.bridges.mainShell.getState",args:[]})}catch(r){if(!c(r)||Date.now()>=n)throw r;await new Promise(o=>setTimeout(o,50))}}async function $(e){let t=await e.send({type:"evaluate",code:`(async () => {
|
|
70
|
-
const test = window.__sootsimTest
|
|
71
|
-
const kb = window.__sootsimKeyboard
|
|
72
|
-
const navSnap =
|
|
73
|
-
test && typeof test.getNavigationSnapshot === 'function'
|
|
74
|
-
? await test.getNavigationSnapshot()
|
|
75
|
-
: null
|
|
76
|
-
const keyboard =
|
|
77
|
-
kb && typeof kb.getLayout === 'function'
|
|
78
|
-
? (() => {
|
|
79
|
-
const layout = kb.getLayout()
|
|
80
|
-
return layout ? {
|
|
81
|
-
visible: layout.visible,
|
|
82
|
-
mode: layout.mode,
|
|
83
|
-
spec: layout.spec
|
|
84
|
-
? {
|
|
85
|
-
keyboardType: layout.spec.keyboardType,
|
|
86
|
-
returnKeyType: layout.spec.returnKeyType,
|
|
87
|
-
}
|
|
88
|
-
: null,
|
|
89
|
-
} : null
|
|
90
|
-
})()
|
|
91
|
-
: null
|
|
92
|
-
return { nav: navSnap, keyboard }
|
|
93
|
-
})()`});return{shell:await d(e,500).catch(()=>null),nav:t?.nav??null,keyboard:t?.keyboard??null}}async function H(e){return e.send({type:"evaluate",code:"window.__sootsimDebug.status()"})}async function C(e){return e.send({type:"evaluate",code:"window.__sootsimDebug.flags()"})}async function N(e,t){let n=t==="sheets"?"findSheets":"findPortals";return e.send({type:"evaluate",code:`window.__sootsimDebug.${n}()`})}async function A(e,t,n=50){let r=t&&t!=="all"?`window.__sootsimDebug.recent(${JSON.stringify(t)}, ${n})`:`window.__sootsimDebug.recent(undefined, ${n})`;return e.send({type:"evaluate",code:r})}async function O(e,t,n){let r=n.length>0?n.map(o=>JSON.stringify(o)).join(", "):t==="disable"?"'all'":"";return e.send({type:"evaluate",code:`window.__sootsimDebug.${t}(${r})`})}async function K(e){return await e.send({type:"evaluate",code:`(async () => {
|
|
94
|
-
const host = window.__sootsimRenderHost
|
|
95
|
-
const stats = host?.queryStats ? await host.queryStats() : null
|
|
96
|
-
const hostMem = performance.memory
|
|
97
|
-
? {
|
|
98
|
-
usedJSHeapSize: performance.memory.usedJSHeapSize,
|
|
99
|
-
totalJSHeapSize: performance.memory.totalJSHeapSize,
|
|
100
|
-
jsHeapSizeLimit: performance.memory.jsHeapSizeLimit,
|
|
101
|
-
}
|
|
102
|
-
: null
|
|
103
|
-
return {
|
|
104
|
-
imageLoader: stats?.memory?.imageLoader ?? null,
|
|
105
|
-
workerHeap: stats?.memory?.workerHeap ?? null,
|
|
106
|
-
hostHeap: hostMem,
|
|
107
|
-
}
|
|
108
|
-
})()`})??{imageLoader:null,workerHeap:null,hostHeap:null}}function F(e){if(e.total===0)return"nothing recorded";let t=[],n=["error","warning","console","fetch","toast","alert","actionsheet","picker","notification","screen","route","keyboard","app-launch","shell","scroll","gesture","text-input","react-commit","animation","reanimated"],r=new Set;for(let o of n){let s=e.byKind[o];s&&(t.push(`${s} ${o}${s===1?"":"s"}`),r.add(o))}for(let[o,s]of Object.entries(e.byKind))!r.has(o)&&s&&t.push(`${s} ${o}${s===1?"":"s"}`);return t.join(" \xB7 ")}export{y as a,p as b,m as c,g as d,b as e,f,w as g,S as h,h as i,x as j,v as k,_ as l,k as m,T as n,I as o,L as p,B as q,P as r,D as s,R as t,E as u,c as v,d as w,$ as x,H as y,C as z,N as A,A as B,O as C,K as D,F as E};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
/*! sootsim v0.1.52 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
/*! sootsim v0.1.52 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
/*! sootsim v0.1.52 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
/*! sootsim v0.1.52 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
-
import{d as a,e as b,f as c,g as d,h as e,i as f,j as g,k as h,l as i,m as j,n as k,o as l,p as m}from"./chunk-ABEYZDD7.js";import"./chunk-3MIWVHCX.js";import"./chunk-HRIQRZX3.js";import"./chunk-H4G7IRXG.js";import"./chunk-I5WEW3ES.js";import"./chunk-YVGHAT6Q.js";import"./chunk-EQPRFEHH.js";import"./chunk-MTE3DEWY.js";import"./chunk-KVQWMXDV.js";import"./chunk-MBH3NFBC.js";import"./chunk-CTEXZ7BE.js";import"./chunk-DSJ7PGU3.js";import"./chunk-JPLTR6JM.js";import"./chunk-6QDFLMJL.js";export{d as buildOpenUrl,c as buildShellUrl,f as printConnectedSims,a as resolveBundleTarget,b as resolveDefaultShellBaseUrl,l as runClaimCommand,m as runCloseCommand,k as runFocusCommand,h as runListCommand,i as runOpenCommand,j as runUseCommand,e as summarizeSimUrl,g as waitForSimMatch};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
/*! sootsim v0.1.52 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
-
import"./chunk-SEETW74F.js";import{a,b,c,d,e,f,g,h,i}from"./chunk-H4G7IRXG.js";import"./chunk-I5WEW3ES.js";import"./chunk-YVGHAT6Q.js";import"./chunk-EQPRFEHH.js";import"./chunk-MTE3DEWY.js";import"./chunk-JPLTR6JM.js";import"./chunk-6QDFLMJL.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.52 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
-
import{a as c,b as d,c as e,d as f}from"./chunk-UCCSXQ2P.js";import"./chunk-T6RAXKVI.js";import"./chunk-4TSGUAV3.js";import"./chunk-ULHAQFCE.js";import"./chunk-MWGIKDXO.js";import"./chunk-IXITVIJV.js";import"./chunk-BF7F45CZ.js";import{c as a,d as b}from"./chunk-FPIJBBYW.js";import"./chunk-ABEYZDD7.js";import"./chunk-3MIWVHCX.js";import"./chunk-HRIQRZX3.js";import"./chunk-H4G7IRXG.js";import"./chunk-I5WEW3ES.js";import"./chunk-YVGHAT6Q.js";import"./chunk-EQPRFEHH.js";import"./chunk-MTE3DEWY.js";import"./chunk-JPX7OS7B.js";import"./chunk-USGUHWUJ.js";import"./chunk-KVQWMXDV.js";import"./chunk-7Y3FYPJH.js";import"./chunk-DNKB2V2W.js";import"./chunk-GNQSOQXZ.js";import"./chunk-Q2424XB2.js";import"./chunk-MBH3NFBC.js";import"./chunk-CTEXZ7BE.js";import"./chunk-DSJ7PGU3.js";import"./chunk-JPLTR6JM.js";import"./chunk-6QDFLMJL.js";export{c as discoverSootsimUrl,e as hoistLeadingSimFlag,a as parseFlowFile,f as runFlow,d as runFlowPlayback,b as validateFlowFile};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
/*! sootsim v0.1.52 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
-
import{a as o}from"./chunk-FVBSPGBR.js";import"./chunk-YDKXZS7D.js";import"./chunk-MSKCUZ5B.js";import"./chunk-7Y3FYPJH.js";import"./chunk-DNKB2V2W.js";import"./chunk-MBH3NFBC.js";import"./chunk-CTEXZ7BE.js";import"./chunk-DSJ7PGU3.js";import"./chunk-JPLTR6JM.js";import"./chunk-6QDFLMJL.js";async function t(n){console.error(" note: `sootsim install` is now `sootsim setup-repo`. forwarding\u2026\n"),await o(n)}export{t as runInstall};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
/*! sootsim v0.1.52 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
-
import{a}from"./chunk-PZJSYDQ7.js";import"./chunk-MBH3NFBC.js";import"./chunk-CTEXZ7BE.js";import"./chunk-DSJ7PGU3.js";import"./chunk-UXE5BFPK.js";import"./chunk-JPLTR6JM.js";import"./chunk-6QDFLMJL.js";export{a as runRuntime};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
/*! sootsim v0.1.52 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
-
import{a}from"./chunk-FVBSPGBR.js";import"./chunk-YDKXZS7D.js";import"./chunk-MSKCUZ5B.js";import"./chunk-7Y3FYPJH.js";import"./chunk-DNKB2V2W.js";import"./chunk-MBH3NFBC.js";import"./chunk-CTEXZ7BE.js";import"./chunk-DSJ7PGU3.js";import"./chunk-JPLTR6JM.js";import"./chunk-6QDFLMJL.js";export{a as runSetupRepo};
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
/*! sootsim v0.1.52 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
-
import{a as k}from"./chunk-2QNHBNWB.js";import{c as b,e as v,i as w}from"./chunk-MBH3NFBC.js";import"./chunk-CTEXZ7BE.js";import"./chunk-DSJ7PGU3.js";import"./chunk-JPLTR6JM.js";import"./chunk-6QDFLMJL.js";async function z(e,o){if((e.includes("--help")||e.includes("-h"))&&(console.log(`
|
|
3
|
-
sootsim three-mode \u2014 toggle the 3d device stage
|
|
4
|
-
|
|
5
|
-
usage:
|
|
6
|
-
sootsim three-mode [on|off|toggle]
|
|
7
|
-
sootsim three-mode configure [options]
|
|
8
|
-
sootsim 3d-mode [on|off|toggle]
|
|
9
|
-
|
|
10
|
-
arguments:
|
|
11
|
-
on enable 3d mode
|
|
12
|
-
off disable 3d mode
|
|
13
|
-
toggle flip the current state (default)
|
|
14
|
-
|
|
15
|
-
configure options:
|
|
16
|
-
--background <id> set the 3d background
|
|
17
|
-
--colorway <id> set the phone colorway
|
|
18
|
-
--script <id> apply a camera preset pose
|
|
19
|
-
--progress <0..1> script progress to sample (default: 1)
|
|
20
|
-
--animate run the script instead of sampling one frame
|
|
21
|
-
--slow run the script slowly when --animate is set
|
|
22
|
-
--environment on|off enable or disable environment objects
|
|
23
|
-
--env-shape <id> orb | pill | diamond | pane
|
|
24
|
-
--env-spread <id> tight | medium | wide
|
|
25
|
-
--env-size <id> small | medium | large
|
|
26
|
-
--env-color <id> peach | gold | mint | sky | violet
|
|
27
|
-
--env-glow on|off enable or disable environment glow
|
|
28
|
-
--env-plastic on|off enable or disable environment plastic material
|
|
29
|
-
--room on|off enable or disable the room effect
|
|
30
|
-
--bokeh on|off enable or disable bokeh
|
|
31
|
-
--reset-pose return to the default hero pose before other changes
|
|
32
|
-
|
|
33
|
-
examples:
|
|
34
|
-
sootsim three-mode
|
|
35
|
-
sootsim three-mode on
|
|
36
|
-
sootsim three-mode configure --script hero-arc --background gradient-neon
|
|
37
|
-
sootsim three-mode configure --environment on --env-shape pane --room on
|
|
38
|
-
sootsim 3d-mode off
|
|
39
|
-
`),process.exit(0)),y(e)){await M(e,o);return}await k(e,o,{modeKey:"threeMode",displayName:"three-mode",actionId:"toggle-three-mode"})}function y(e){return e[0]==="configure"||e.some(o=>["--background","--colorway","--script","--progress","--animate","--slow","--environment","--env-shape","--env-spread","--env-size","--env-color","--env-glow","--env-plastic","--room","--bokeh","--reset-pose"].includes(o))}async function M(e,o){let n=b(e,{port:o.port,stripBooleanFlags:["--animate","--slow","--reset-pose"],stripValueFlags:["--background","--colorway","--script","--progress","--environment","--env-shape","--env-spread","--env-size","--env-color","--env-glow","--env-plastic","--room","--bokeh"]}),a=B(e),t=v({...n,commandTimeoutMs:8e3});try{let d=await w(t,"SootSim.bridges.threeMode.configure",a);console.log(` three-mode: configured (${$(d)})`)}finally{t.close()}}function B(e){let o=r=>e.find((i,c)=>e[c-1]===r),n={},a=o("--colorway");a&&(n.colorway=a);let t=o("--background");t&&(n.background=t);let d=s(o("--room"),"--room");d!==void 0&&(n.room=d);let m=s(o("--bokeh"),"--bokeh");m!==void 0&&(n.bokeh=m),e.includes("--reset-pose")&&(n.resetPose=!0);let p=s(o("--environment"),"--environment"),f={},l={};for(let[r,i]of[["--env-shape","shape"],["--env-spread","spread"],["--env-size","size"],["--env-color","color"]]){let c=o(r);c&&(f[i]=c)}let u=s(o("--env-glow"),"--env-glow");u!==void 0&&(l.glow=u);let g=s(o("--env-plastic"),"--env-plastic");g!==void 0&&(l.plastic=g),(p!==void 0||Object.keys(f).length>0||Object.keys(l).length>0)&&(n.environment=p===!1?!1:{pins:f,effects:l});let h=o("--script");if(h){let r=o("--progress"),i=r===void 0?1:Number.parseFloat(r);if(!Number.isFinite(i))throw new Error(`--progress expects a number from 0 to 1, got "${r}"`);n.script={id:h,progress:i,animate:e.includes("--animate"),slow:e.includes("--slow")}}return n}function s(e,o){if(e===void 0)return;let n=e.toLowerCase();if(["on","true","yes","1"].includes(n))return!0;if(["off","false","no","0"].includes(n))return!1;throw new Error(`${o} expects on or off, got "${e}"`)}function $(e){return[`ready=${!!e.ready}`,`background=${String(e.background??"unknown")}`,`colorway=${String(e.colorway??"unknown")}`,`environment=${e.environmentActive?"on":"off"}`,`room=${e.room?"on":"off"}`,`bokeh=${e.bokeh?"on":"off"}`].join(", ")}export{z as runThreeMode};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
/*! sootsim v0.1.52 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
-
import{a,b,c}from"./chunk-IXITVIJV.js";import"./chunk-BF7F45CZ.js";import"./chunk-YVGHAT6Q.js";import"./chunk-MTE3DEWY.js";import"./chunk-7Y3FYPJH.js";import"./chunk-DNKB2V2W.js";import"./chunk-MBH3NFBC.js";import"./chunk-CTEXZ7BE.js";import"./chunk-DSJ7PGU3.js";import"./chunk-JPLTR6JM.js";import"./chunk-6QDFLMJL.js";export{a as resolveDefaultUploadOrigin,b as resolvePublicPreviewOrigin,c as runUpload};
|