sootsim 0.1.144 → 0.1.146
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-2OYPRNUE.js → agent-PNNXV6F3.js} +2 -2
- package/dist-cli/chunks/{agent-wrapper-LPKFMZBN.js → agent-wrapper-JTYAONCG.js} +2 -2
- package/dist-cli/chunks/{app-fonts-3F2X43ER.js → app-fonts-YGTRUUJT.js} +2 -2
- package/dist-cli/chunks/{assert-MUUX2DJC.js → assert-HDFDQLHK.js} +2 -2
- package/dist-cli/chunks/auto-bootstrap-S7SSJMD3.js +2 -0
- package/dist-cli/chunks/beta-E3MSUPWU.js +2 -0
- package/dist-cli/chunks/{camera-TBW2MKRE.js → camera-4B7OAHRD.js} +2 -2
- package/dist-cli/chunks/{chunk-IAWQFSZ2.js → chunk-2FYSNCRJ.js} +2 -2
- package/dist-cli/chunks/{chunk-AKHWKREF.js → chunk-2PYDOYIS.js} +1 -1
- package/dist-cli/chunks/{chunk-KF7TXHAG.js → chunk-35QJJ4MM.js} +3 -3
- package/dist-cli/chunks/chunk-3RPHEE3K.js +2 -0
- package/dist-cli/chunks/{chunk-73DPWPZU.js → chunk-4KNMAGC4.js} +1 -1
- package/dist-cli/chunks/{chunk-A3E5QVUN.js → chunk-A7JX3OQC.js} +1 -1
- package/dist-cli/chunks/chunk-AOPFT3S4.js +119 -0
- package/dist-cli/chunks/{chunk-UZO6PMW3.js → chunk-ATJRNMNA.js} +2 -2
- package/dist-cli/chunks/{chunk-2OWIXUFA.js → chunk-BBIN2U26.js} +2 -2
- package/dist-cli/chunks/{chunk-ZRVCZZCT.js → chunk-BE2ZDRIJ.js} +2 -2
- package/dist-cli/chunks/{chunk-S6OUYII6.js → chunk-C44OZFHJ.js} +2 -2
- package/dist-cli/chunks/{chunk-QHCI5TZ6.js → chunk-DP5FSZHW.js} +2 -2
- package/dist-cli/chunks/chunk-DRCRPS2N.js +1 -0
- package/dist-cli/chunks/{chunk-KABTL7PQ.js → chunk-ERAE4LJT.js} +36 -56
- package/dist-cli/chunks/{chunk-LEWUJGFD.js → chunk-FK2YXBKR.js} +1 -1
- package/dist-cli/chunks/{chunk-TJXJCYCS.js → chunk-G7JMTSF6.js} +1 -1
- package/dist-cli/chunks/{chunk-BBPSMK2D.js → chunk-GD473DHN.js} +2 -2
- package/dist-cli/chunks/{chunk-T5SF5UGY.js → chunk-H2EIYIRP.js} +1 -1
- package/dist-cli/chunks/{chunk-VFXS73Q6.js → chunk-H6LFGGJW.js} +2 -2
- package/dist-cli/chunks/{chunk-FQBF5HG6.js → chunk-HWB7DPXH.js} +1 -1
- package/dist-cli/chunks/{chunk-W4KCLE5O.js → chunk-HZHZY7N5.js} +2 -2
- package/dist-cli/chunks/{chunk-MX66P64S.js → chunk-IADMCPLZ.js} +1 -1
- package/dist-cli/chunks/{chunk-FZXVYC4D.js → chunk-IAO27BWC.js} +2 -2
- package/dist-cli/chunks/{chunk-YV6RWCPO.js → chunk-JFQXWAWN.js} +2 -2
- package/dist-cli/chunks/{chunk-AV2DSEYZ.js → chunk-JZW2R5D7.js} +2 -2
- package/dist-cli/chunks/{chunk-7R3BK6IY.js → chunk-K6X7LUFG.js} +1 -1
- package/dist-cli/chunks/{chunk-TONLJPNX.js → chunk-MIIAYBFL.js} +1 -1
- package/dist-cli/chunks/{chunk-TKMTONCA.js → chunk-MSQUL5BU.js} +3 -3
- package/dist-cli/chunks/{chunk-QMTPTQHG.js → chunk-MVLNHZMU.js} +2 -2
- package/dist-cli/chunks/chunk-OU42HTKN.js +1 -0
- package/dist-cli/chunks/{chunk-PN4QXNKU.js → chunk-PCW4TKI2.js} +2 -2
- package/dist-cli/chunks/{chunk-ZODKBHVK.js → chunk-Q6BHESL2.js} +2 -2
- package/dist-cli/chunks/{chunk-6KI36NXX.js → chunk-R7CMXY5T.js} +2 -2
- package/dist-cli/chunks/{chunk-A72YS45Y.js → chunk-RTD4RNZV.js} +2 -2
- package/dist-cli/chunks/{chunk-HVB4FNBH.js → chunk-SZNVNYEP.js} +2 -2
- package/dist-cli/chunks/{chunk-TE2SHQPT.js → chunk-TLFNO2L4.js} +1 -1
- package/dist-cli/chunks/{chunk-UGRHYJUA.js → chunk-TZXKFPBJ.js} +2 -2
- package/dist-cli/chunks/{chunk-HC43FXK7.js → chunk-UD4SYXDQ.js} +2 -2
- package/dist-cli/chunks/chunk-VKKWYLIZ.js +2 -0
- package/dist-cli/chunks/{chunk-BCIZZLCX.js → chunk-VZSXOG4N.js} +1 -1
- package/dist-cli/chunks/{chunk-XJVBNNIB.js → chunk-WFXLVOUA.js} +2 -2
- package/dist-cli/chunks/chunk-XO4VQYFP.js +2 -0
- package/dist-cli/chunks/{chunk-AJKVXCHV.js → chunk-XRQDMB2J.js} +2 -2
- package/dist-cli/chunks/chunk-Y76W7GZV.js +1 -0
- package/dist-cli/chunks/{chunk-4CPUNUJC.js → chunk-YBSNSFBX.js} +1 -1
- package/dist-cli/chunks/cli-version-AJWPSNS4.js +2 -0
- package/dist-cli/chunks/{compat-P64DATYR.js → compat-F4WAO62Y.js} +3 -3
- package/dist-cli/chunks/{config-TDDQXUS5.js → config-WAIORJNJ.js} +2 -2
- package/dist-cli/chunks/{control-SNZMPDL7.js → control-M54456XG.js} +2 -2
- package/dist-cli/chunks/{cpu-profile-FR47V42J.js → cpu-profile-NNMDXCWI.js} +2 -2
- package/dist-cli/chunks/{daemon-LHJUCC7B.js → daemon-UXSN6QDY.js} +2 -2
- package/dist-cli/chunks/{debug-26NR6JCY.js → debug-JAQVYKQG.js} +3 -3
- package/dist-cli/chunks/{detox-F2KTINZX.js → detox-QOL7PD62.js} +2 -2
- package/dist-cli/chunks/{device-O5COOPDN.js → device-WPAQY2ZH.js} +2 -2
- package/dist-cli/chunks/{diagnose-PQMLUCBO.js → diagnose-FKN4ALSH.js} +2 -2
- package/dist-cli/chunks/drivers-FTOUKVJ5.js +2 -0
- package/dist-cli/chunks/{electron-ZBL3TH2F.js → electron-YQKH55P6.js} +3 -3
- package/dist-cli/chunks/flow-EJXOH72E.js +2 -0
- package/dist-cli/chunks/help-ID6MSA6T.js +2 -0
- package/dist-cli/chunks/{hints-DWE4FKYR.js → hints-GIJN25JB.js} +2 -2
- package/dist-cli/chunks/{home-paths-N2S32DRH.js → home-paths-KIR4SAL4.js} +2 -2
- package/dist-cli/chunks/{inspect-J3BLUHGJ.js → inspect-YRP3UFG4.js} +3 -3
- package/dist-cli/chunks/install-S4YF4O3O.js +2 -0
- package/dist-cli/chunks/{install-desktop-73H4DAAH.js → install-desktop-INHP4VUQ.js} +3 -3
- package/dist-cli/chunks/{keys-R42T6X3W.js → keys-CBKA6IB7.js} +2 -2
- package/dist-cli/chunks/{launch-QGDSUNDW.js → launch-JZ463USO.js} +3 -3
- package/dist-cli/chunks/{login-BYCX25K6.js → login-VHP4DNC2.js} +4 -4
- package/dist-cli/chunks/{logout-TZJXACIH.js → logout-NRG4U6Z7.js} +2 -2
- package/dist-cli/chunks/{maestro-VPK6R5NN.js → maestro-KPNXHCFR.js} +2 -2
- package/dist-cli/chunks/optional-demo-registry-VXBG2NEH.js +2 -0
- package/dist-cli/chunks/{preview-GJ7MVSHM.js → preview-O44G7W2U.js} +2 -2
- package/dist-cli/chunks/{profile-2RAV3UZS.js → profile-RMYP6I2J.js} +2 -2
- package/dist-cli/chunks/{react-QE7UHEFS.js → react-CFUB2U76.js} +2 -2
- package/dist-cli/chunks/{record-YYL4A7DO.js → record-YSLIYV2X.js} +2 -2
- package/dist-cli/chunks/runtime-YVV2FMMD.js +2 -0
- package/dist-cli/chunks/{runtime-delivery-2G4PGXGK.js → runtime-delivery-DDUSKKTU.js} +2 -2
- package/dist-cli/chunks/{screenshot-BIVF76SC.js → screenshot-MH7JQVO7.js} +2 -2
- package/dist-cli/chunks/{screenshot-mode-OKAH3ZLK.js → screenshot-mode-JRRQPP37.js} +2 -2
- package/dist-cli/chunks/screenshots-32GEAUAF.js +74 -0
- package/dist-cli/chunks/{server-6SFAUUGK.js → server-ROXPXSIK.js} +3 -3
- package/dist-cli/chunks/setup-repo-E2IJJBCE.js +2 -0
- package/dist-cli/chunks/{skills-7APKWTBO.js → skills-T74U4JC7.js} +2 -2
- package/dist-cli/chunks/slides-OM25OBW3.js +46 -0
- package/dist-cli/chunks/{start-2GETTWND.js → start-NLHWSRC7.js} +4 -4
- package/dist-cli/chunks/store-EISWHA6H.js +2 -0
- package/dist-cli/chunks/telemetry-7AXVZMQT.js +2 -0
- package/dist-cli/chunks/{test-V5HHXSKL.js → test-RYMENNXC.js} +3 -3
- package/dist-cli/chunks/{three-mode-UVIEP3CE.js → three-mode-MK242N4J.js} +2 -2
- package/dist-cli/chunks/{timeline-HVEKSWHF.js → timeline-ANKR37NA.js} +2 -2
- package/dist-cli/chunks/{upgrade-FRHXNAYO.js → upgrade-ZANSK5HX.js} +2 -2
- package/dist-cli/chunks/upload-DWWZQMVH.js +2 -0
- package/dist-cli/chunks/{version-CBDBUHCC.js → version-DYXEOGY7.js} +2 -2
- package/dist-cli/chunks/{web-DMUBG5QR.js → web-LUMZCTLY.js} +2 -2
- package/dist-cli/chunks/{what-happened-3J4DEIRJ.js → what-happened-SIQGZLHO.js} +2 -2
- package/dist-cli/chunks/{whoami-BSPU6JP4.js → whoami-YI5RAQBT.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/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 +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/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/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 +244 -26
- package/dist-lib/vite.cjs +1 -1
- package/package.json +1 -1
- package/src/screenshots/orchestrate.ts +7 -0
- package/src/screenshots/org-deck.ts +91 -0
- package/dist-cli/chunks/auto-bootstrap-EYENX7BT.js +0 -2
- package/dist-cli/chunks/beta-2JIATCYM.js +0 -2
- package/dist-cli/chunks/chunk-2WPNYDSO.js +0 -2
- package/dist-cli/chunks/chunk-3FFDAVGT.js +0 -119
- package/dist-cli/chunks/chunk-3LW4V4ZM.js +0 -2
- package/dist-cli/chunks/chunk-3ZNPJADG.js +0 -1
- package/dist-cli/chunks/chunk-GJR32NCU.js +0 -1
- package/dist-cli/chunks/chunk-TVLQMXWV.js +0 -1
- package/dist-cli/chunks/chunk-Z52XC4UA.js +0 -2
- package/dist-cli/chunks/cli-version-YEX2XZ7G.js +0 -2
- package/dist-cli/chunks/drivers-W4SBNM4V.js +0 -2
- package/dist-cli/chunks/flow-QREXGRFN.js +0 -2
- package/dist-cli/chunks/help-RE6HG3KD.js +0 -2
- package/dist-cli/chunks/install-NLKZNPCO.js +0 -2
- package/dist-cli/chunks/optional-demo-registry-UH3YM447.js +0 -2
- package/dist-cli/chunks/runtime-C4CLOL7U.js +0 -2
- package/dist-cli/chunks/screenshots-AVJANXAQ.js +0 -70
- package/dist-cli/chunks/setup-repo-CRCQPW3Y.js +0 -2
- package/dist-cli/chunks/store-YFAIUHAS.js +0 -2
- package/dist-cli/chunks/telemetry-LUP4L5RW.js +0 -2
- package/dist-cli/chunks/upload-NWHZULFU.js +0 -2
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
2
|
-
import{
|
|
1
|
+
/*! sootsim v0.1.146 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
+
import{C as T,D as A,E as y,P as _,Q as b,R as S}from"./chunk-DP5FSZHW.js";import{c as N,e as F}from"./chunk-BBIN2U26.js";import{b as k}from"./chunk-YBSNSFBX.js";import"./chunk-FK2YXBKR.js";import"./chunk-IADMCPLZ.js";import"./chunk-TLFNO2L4.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=N(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,2 +1,2 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
2
|
-
import{d as i}from"./chunk-
|
|
1
|
+
/*! sootsim v0.1.146 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
+
import{d as i}from"./chunk-HZHZY7N5.js";import{d as n}from"./chunk-R7CMXY5T.js";import"./chunk-IADMCPLZ.js";import"./chunk-TLFNO2L4.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.146 | (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.146 | (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.146 | (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.146 | (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.146 | (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.146 | (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.146 | (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.146 | (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.146 | (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.146 | (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.146 | (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.146 | (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.146 | (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.146 | (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.146 | (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.146 | (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.146 | (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.146 | (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.146 | (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.146 | (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.146 | (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.146 | (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.146 | (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.146 | (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.146 | (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;
|
|
@@ -15342,6 +15342,231 @@ var init_app_state_reset = __esm({
|
|
|
15342
15342
|
}
|
|
15343
15343
|
});
|
|
15344
15344
|
|
|
15345
|
+
// cli/commands/inspect/core.ts
|
|
15346
|
+
function layoutGetNativeEval(opts = {}) {
|
|
15347
|
+
const includeStyle = opts.styling === true;
|
|
15348
|
+
return `(async () => {
|
|
15349
|
+
const t = window.__sootsimTest
|
|
15350
|
+
if (!t || typeof t.listInspectable !== 'function') return []
|
|
15351
|
+
const list = await t.listInspectable({})
|
|
15352
|
+
if (!Array.isArray(list)) return []
|
|
15353
|
+
const includeStyle = ${JSON.stringify(includeStyle)}
|
|
15354
|
+
|
|
15355
|
+
const num = (v) => (typeof v === 'number' && Number.isFinite(v) ? v : 0)
|
|
15356
|
+
const round = (v) => Math.round(num(v))
|
|
15357
|
+
|
|
15358
|
+
// borderRadius can be authored as a string ("12px") or split per-corner;
|
|
15359
|
+
// prefer the uniform borderRadius, else the largest corner radius present.
|
|
15360
|
+
const radiusOf = (style) => {
|
|
15361
|
+
if (!style) return 0
|
|
15362
|
+
const keys = ['borderRadius','borderTopLeftRadius','borderTopRightRadius','borderBottomLeftRadius','borderBottomRightRadius']
|
|
15363
|
+
let max = 0
|
|
15364
|
+
for (const k of keys) {
|
|
15365
|
+
const raw = style[k]
|
|
15366
|
+
const n = typeof raw === 'number' ? raw : (typeof raw === 'string' ? parseFloat(raw) : NaN)
|
|
15367
|
+
if (Number.isFinite(n)) max = Math.max(max, n)
|
|
15368
|
+
}
|
|
15369
|
+
return Math.round(max)
|
|
15370
|
+
}
|
|
15371
|
+
const fontSizeOf = (style) => {
|
|
15372
|
+
if (!style) return 0
|
|
15373
|
+
const raw = style.fontSize
|
|
15374
|
+
const n = typeof raw === 'number' ? raw : (typeof raw === 'string' ? parseFloat(raw) : NaN)
|
|
15375
|
+
return Number.isFinite(n) ? Math.round(n) : 0
|
|
15376
|
+
}
|
|
15377
|
+
// styling extractors \u2014 omit boring defaults so the agent only sees notable
|
|
15378
|
+
// styling (low opacity, struck text, clipping, a real border/color).
|
|
15379
|
+
const colorStr = (v) => {
|
|
15380
|
+
if (v == null) return undefined
|
|
15381
|
+
const s = String(v).split(' ').join('')
|
|
15382
|
+
return s && s !== 'transparent' && s !== 'rgba(0,0,0,0)' ? s : undefined
|
|
15383
|
+
}
|
|
15384
|
+
const opacityOf = (style) => {
|
|
15385
|
+
const o = style && style.opacity
|
|
15386
|
+
const n = typeof o === 'number' ? o : (typeof o === 'string' ? parseFloat(o) : NaN)
|
|
15387
|
+
return Number.isFinite(n) && n < 1 ? Math.round(n * 100) / 100 : undefined
|
|
15388
|
+
}
|
|
15389
|
+
const weightOf = (style) => {
|
|
15390
|
+
const w = style && style.fontWeight
|
|
15391
|
+
const n = typeof w === 'number' ? w : (typeof w === 'string' ? parseInt(w, 10) : NaN)
|
|
15392
|
+
return Number.isFinite(n) && n >= 600 ? n : undefined
|
|
15393
|
+
}
|
|
15394
|
+
const decoOf = (style) => {
|
|
15395
|
+
const d = style && (style.textDecorationLine || style.textDecoration)
|
|
15396
|
+
return d && d !== 'none' && d !== 'normal' ? String(d).split(' ')[0] : undefined
|
|
15397
|
+
}
|
|
15398
|
+
const overflowOf = (style) => (style && style.overflow === 'hidden' ? 'hidden' : undefined)
|
|
15399
|
+
const borderWOf = (style) => {
|
|
15400
|
+
if (!style) return undefined
|
|
15401
|
+
const keys = ['borderWidth','borderTopWidth','borderBottomWidth','borderLeftWidth','borderRightWidth']
|
|
15402
|
+
let max = 0
|
|
15403
|
+
for (const k of keys) {
|
|
15404
|
+
const r = style[k]
|
|
15405
|
+
const n = typeof r === 'number' ? r : (typeof r === 'string' ? parseFloat(r) : NaN)
|
|
15406
|
+
if (Number.isFinite(n)) max = Math.max(max, n)
|
|
15407
|
+
}
|
|
15408
|
+
return max > 0 ? Math.round(max) : undefined
|
|
15409
|
+
}
|
|
15410
|
+
|
|
15411
|
+
const isVisible = (n) => {
|
|
15412
|
+
const layout = n && n.layout
|
|
15413
|
+
if (!layout || layout.width <= 0 || layout.height <= 0) return false
|
|
15414
|
+
const abs = (n && (n.absolute || n.absolutePosition)) || null
|
|
15415
|
+
if (!abs) return true
|
|
15416
|
+
const device = (n && n.device) || {}
|
|
15417
|
+
const screenW = Number(device.width) || window.innerWidth || 0
|
|
15418
|
+
const screenH = Number(device.height) || window.innerHeight || 0
|
|
15419
|
+
if (!screenW || !screenH) return true
|
|
15420
|
+
return abs.x + layout.width > 0 && abs.y + layout.height > 0 && abs.x < screenW && abs.y < screenH
|
|
15421
|
+
}
|
|
15422
|
+
|
|
15423
|
+
return list.filter(isVisible).map((n) => {
|
|
15424
|
+
const layout = n.layout || { x: 0, y: 0, width: 0, height: 0 }
|
|
15425
|
+
const abs = n.absolute || n.absolutePosition || { x: layout.x, y: layout.y }
|
|
15426
|
+
const text = typeof n.text === 'string' && n.text.trim() ? n.text.trim() : undefined
|
|
15427
|
+
const base = {
|
|
15428
|
+
testID: n.testID || n.testId || undefined,
|
|
15429
|
+
role: n.accessibilityRole || n.role || undefined,
|
|
15430
|
+
type: typeof n.type === 'string' ? n.type : 'node',
|
|
15431
|
+
text,
|
|
15432
|
+
box: { x: round(abs.x), y: round(abs.y), w: round(layout.width), h: round(layout.height) },
|
|
15433
|
+
borderRadius: 0,
|
|
15434
|
+
padding: { t: 0, r: 0, b: 0, l: 0 },
|
|
15435
|
+
fontSize: 0,
|
|
15436
|
+
}
|
|
15437
|
+
if (!includeStyle) return base
|
|
15438
|
+
// computedStyle has the resolved values; style is the curated subset \u2014
|
|
15439
|
+
// fall back across both so radius/fontSize survive either shape.
|
|
15440
|
+
const style = Object.assign({}, n.style || {}, n.computedStyle || {})
|
|
15441
|
+
const pad = (n.boxModel && n.boxModel.padding) || {}
|
|
15442
|
+
return {
|
|
15443
|
+
...base,
|
|
15444
|
+
borderRadius: radiusOf(style),
|
|
15445
|
+
padding: { t: round(pad.top), r: round(pad.right), b: round(pad.bottom), l: round(pad.left) },
|
|
15446
|
+
fontSize: fontSizeOf(style),
|
|
15447
|
+
color: text ? colorStr(style.color) : undefined,
|
|
15448
|
+
bg: colorStr(style.backgroundColor),
|
|
15449
|
+
opacity: opacityOf(style),
|
|
15450
|
+
fontWeight: weightOf(style),
|
|
15451
|
+
textDecoration: decoOf(style),
|
|
15452
|
+
overflow: overflowOf(style),
|
|
15453
|
+
borderWidth: borderWOf(style),
|
|
15454
|
+
}
|
|
15455
|
+
})
|
|
15456
|
+
})()`;
|
|
15457
|
+
}
|
|
15458
|
+
function readyProbeHasContent(probe) {
|
|
15459
|
+
return probe.targets > 0 || probe.nodes >= READY_CONTENT_NODE_FLOOR;
|
|
15460
|
+
}
|
|
15461
|
+
function readyProbeHasTargetContent(probe) {
|
|
15462
|
+
return probe.targets > 0;
|
|
15463
|
+
}
|
|
15464
|
+
var LAYOUT_GET_NATIVE_EVAL, WAIT_READY_PROBE, READY_CONTENT_NODE_FLOOR, READY_NODE_STABLE_MS;
|
|
15465
|
+
var init_core = __esm({
|
|
15466
|
+
"cli/commands/inspect/core.ts"() {
|
|
15467
|
+
"use strict";
|
|
15468
|
+
LAYOUT_GET_NATIVE_EVAL = layoutGetNativeEval();
|
|
15469
|
+
WAIT_READY_PROBE = `(async () => {
|
|
15470
|
+
const t = window.__sootsimTest
|
|
15471
|
+
let nodes = 0
|
|
15472
|
+
try { nodes = (await t?.getNodeCount?.()) || 0 } catch {}
|
|
15473
|
+
let targets = 0
|
|
15474
|
+
let loadingText = ''
|
|
15475
|
+
try {
|
|
15476
|
+
if (typeof t?.listInspectable === 'function') {
|
|
15477
|
+
const list = await t.listInspectable({})
|
|
15478
|
+
if (Array.isArray(list)) {
|
|
15479
|
+
const screenW = window.innerWidth || 0
|
|
15480
|
+
const screenH = window.innerHeight || 0
|
|
15481
|
+
const isVisible = (n) => {
|
|
15482
|
+
const layout = n?.layout
|
|
15483
|
+
if (!layout || layout.width <= 0 || layout.height <= 0) return false
|
|
15484
|
+
const abs = n?.absolutePosition || n?.absolute
|
|
15485
|
+
if (!abs) return true
|
|
15486
|
+
const device = n?.device || {}
|
|
15487
|
+
const w = Number(device.width) || screenW
|
|
15488
|
+
const h = Number(device.height) || screenH
|
|
15489
|
+
return (
|
|
15490
|
+
abs.x + layout.width > 0 &&
|
|
15491
|
+
abs.y + layout.height > 0 &&
|
|
15492
|
+
abs.x < w &&
|
|
15493
|
+
abs.y < h
|
|
15494
|
+
)
|
|
15495
|
+
}
|
|
15496
|
+
const hasContentSignal = (n) => {
|
|
15497
|
+
const role = n?.accessibilityRole || n?.role
|
|
15498
|
+
const label = n?.accessibilityLabel || n?.label
|
|
15499
|
+
const handlers = Array.isArray(n?.handlers) ? n.handlers : []
|
|
15500
|
+
const text = typeof n?.text === 'string' ? n.text.trim() : ''
|
|
15501
|
+
const testID = typeof (n?.testID || n?.testId) === 'string' ? (n.testID || n.testId) : ''
|
|
15502
|
+
if (!loadingText && /^(opening app|loading|capturing|connecting)$/i.test(text)) {
|
|
15503
|
+
loadingText = text
|
|
15504
|
+
}
|
|
15505
|
+
if (handlers.length > 0) return true
|
|
15506
|
+
if (role) return true
|
|
15507
|
+
if (n?.isTextInput) return true
|
|
15508
|
+
if (text) return true
|
|
15509
|
+
if (label) return true
|
|
15510
|
+
if (testID && !/^splash|loading/i.test(testID)) return true
|
|
15511
|
+
return false
|
|
15512
|
+
}
|
|
15513
|
+
targets = list.filter(n => isVisible(n) && hasContentSignal(n)).length
|
|
15514
|
+
}
|
|
15515
|
+
}
|
|
15516
|
+
} catch {}
|
|
15517
|
+
let externalReady = null
|
|
15518
|
+
let externalStatus = ''
|
|
15519
|
+
let externalError = ''
|
|
15520
|
+
try {
|
|
15521
|
+
const getExternalAppState = t?.getExternalAppState
|
|
15522
|
+
const external = typeof getExternalAppState === 'function'
|
|
15523
|
+
? await Promise.race([
|
|
15524
|
+
getExternalAppState(),
|
|
15525
|
+
new Promise((resolve) => setTimeout(
|
|
15526
|
+
() => resolve({
|
|
15527
|
+
state: {
|
|
15528
|
+
ready: false,
|
|
15529
|
+
loading: true,
|
|
15530
|
+
status: 'waiting for tenant worker...',
|
|
15531
|
+
},
|
|
15532
|
+
}),
|
|
15533
|
+
1000,
|
|
15534
|
+
)),
|
|
15535
|
+
])
|
|
15536
|
+
: null
|
|
15537
|
+
const state = external?.state
|
|
15538
|
+
if (state && typeof state === 'object') {
|
|
15539
|
+
externalReady = state.ready === true
|
|
15540
|
+
if (typeof state.status === 'string') externalStatus = state.status
|
|
15541
|
+
if (typeof state.error === 'string') externalError = state.error
|
|
15542
|
+
}
|
|
15543
|
+
if (!externalError && Array.isArray(external?.entryErrors)) {
|
|
15544
|
+
const entry = external.entryErrors.find((item) => {
|
|
15545
|
+
return item && typeof item.message === 'string' && item.message.trim()
|
|
15546
|
+
})
|
|
15547
|
+
if (entry) externalError = entry.message
|
|
15548
|
+
}
|
|
15549
|
+
if (externalReady === false && externalStatus) loadingText = externalStatus
|
|
15550
|
+
} catch {}
|
|
15551
|
+
let errors = 0
|
|
15552
|
+
try { errors = window.__sootsimConsole?.count?.()?.errors ?? 0 } catch {}
|
|
15553
|
+
return {
|
|
15554
|
+
flag: (window).__sootsimExternalAppReady,
|
|
15555
|
+
at: (window).__sootsimExternalAppReadyAt || 0,
|
|
15556
|
+
nodes,
|
|
15557
|
+
targets,
|
|
15558
|
+
errors,
|
|
15559
|
+
loadingText,
|
|
15560
|
+
externalReady,
|
|
15561
|
+
externalStatus,
|
|
15562
|
+
externalError,
|
|
15563
|
+
}
|
|
15564
|
+
})()`;
|
|
15565
|
+
READY_CONTENT_NODE_FLOOR = 100;
|
|
15566
|
+
READY_NODE_STABLE_MS = 750;
|
|
15567
|
+
}
|
|
15568
|
+
});
|
|
15569
|
+
|
|
15345
15570
|
// cli/commands/inspect/settling.ts
|
|
15346
15571
|
async function waitForSootsimIdle({
|
|
15347
15572
|
bridge,
|
|
@@ -16108,6 +16333,7 @@ var init_bridge_flow_runner = __esm({
|
|
|
16108
16333
|
import_yaml = __toESM(require("yaml"), 1);
|
|
16109
16334
|
init_frame_compose();
|
|
16110
16335
|
init_app_state_reset();
|
|
16336
|
+
init_core();
|
|
16111
16337
|
init_settling();
|
|
16112
16338
|
init_maestro_js();
|
|
16113
16339
|
init_recording_access();
|
|
@@ -16210,40 +16436,32 @@ var init_bridge_flow_runner = __esm({
|
|
|
16210
16436
|
let lastError = null;
|
|
16211
16437
|
let consecutiveBridgeFailures = 0;
|
|
16212
16438
|
let lastProgressAt = 0;
|
|
16439
|
+
let lastNodes = -1;
|
|
16440
|
+
let nodeStableSince = startedAt;
|
|
16213
16441
|
while (Date.now() < deadline) {
|
|
16214
16442
|
try {
|
|
16215
|
-
const
|
|
16216
|
-
|
|
16217
|
-
const test = window.__sootsimTest
|
|
16218
|
-
if (!test) return { count: 0, loading: true }
|
|
16219
|
-
const count = (await test.getNodeCount?.()) || 0
|
|
16220
|
-
const external = globalThis.__sootsimExternalAppState
|
|
16221
|
-
if (external?.error) {
|
|
16222
|
-
return { count, loading: false, error: String(external.error) }
|
|
16223
|
-
}
|
|
16224
|
-
if (external) {
|
|
16225
|
-
return {
|
|
16226
|
-
count,
|
|
16227
|
-
loading: !external.ready,
|
|
16228
|
-
error: null,
|
|
16229
|
-
}
|
|
16230
|
-
}
|
|
16231
|
-
const loadingNode = await test.findByText?.('loading')
|
|
16232
|
-
const capturingNode = await test.findByText?.('capturing')
|
|
16233
|
-
const openingAppNode = await test.findByText?.('opening app')
|
|
16234
|
-
const isLoading = !!loadingNode || !!capturingNode || !!openingAppNode || count < 5
|
|
16235
|
-
return { count, loading: isLoading, error: null }
|
|
16236
|
-
})()`,
|
|
16443
|
+
const probe = await this.evaluate(
|
|
16444
|
+
WAIT_READY_PROBE,
|
|
16237
16445
|
// the readiness probe is cheap — cap it well under the bridge-wide
|
|
16238
16446
|
// command timeout so a non-responsive sim is detected in seconds,
|
|
16239
16447
|
// not after a full 15s-per-poll stall.
|
|
16240
16448
|
8e3
|
|
16241
16449
|
);
|
|
16242
16450
|
consecutiveBridgeFailures = 0;
|
|
16243
|
-
if (
|
|
16244
|
-
throw new Error(`app failed to load: ${
|
|
16451
|
+
if (probe?.externalError) {
|
|
16452
|
+
throw new Error(`app failed to load: ${probe.externalError}`);
|
|
16453
|
+
}
|
|
16454
|
+
if (probe) {
|
|
16455
|
+
const now = Date.now();
|
|
16456
|
+
if (probe.nodes !== lastNodes) {
|
|
16457
|
+
lastNodes = probe.nodes;
|
|
16458
|
+
nodeStableSince = now;
|
|
16459
|
+
}
|
|
16460
|
+
const hasReadySignal = probe.flag === true && readyProbeHasContent(probe);
|
|
16461
|
+
const hasRenderedContentWithoutReadySignal = probe.flag !== true && readyProbeHasTargetContent(probe);
|
|
16462
|
+
const ready = (hasReadySignal || hasRenderedContentWithoutReadySignal) && probe.externalReady !== false && !probe.externalError && !probe.loadingText && now - nodeStableSince >= READY_NODE_STABLE_MS;
|
|
16463
|
+
if (ready) return;
|
|
16245
16464
|
}
|
|
16246
|
-
if (state && state.count > 10 && !state.loading) return;
|
|
16247
16465
|
} catch (err) {
|
|
16248
16466
|
lastError = err instanceof Error ? err : new Error(String(err));
|
|
16249
16467
|
if (lastError.message.startsWith("app failed to load:")) {
|
package/dist-lib/vite.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.146 | (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
|
@@ -9,6 +9,7 @@ import {
|
|
|
9
9
|
type ComposeSlideSource,
|
|
10
10
|
} from './compose'
|
|
11
11
|
import { createFramedScreenshotComposer } from './frame-compose'
|
|
12
|
+
import { applyOrgDeckToPlan, type OrgDeckFrame } from './org-deck'
|
|
12
13
|
import { loadScreenshotsPlan, type NormalizedScreenshotsPlan } from './schema'
|
|
13
14
|
|
|
14
15
|
export interface RunScreenshotsOverrides {
|
|
@@ -17,6 +18,9 @@ export interface RunScreenshotsOverrides {
|
|
|
17
18
|
simId?: string | null
|
|
18
19
|
captureOnly?: boolean
|
|
19
20
|
composeOnly?: boolean
|
|
21
|
+
// copy/colors pulled from the team's org deck to overlay onto the plan's
|
|
22
|
+
// compose slides (sootsim screenshots --org … --repo …).
|
|
23
|
+
orgDeckFrames?: OrgDeckFrame[] | null
|
|
20
24
|
}
|
|
21
25
|
|
|
22
26
|
export interface CaptureResult {
|
|
@@ -186,6 +190,9 @@ export async function runScreenshotsPlan(
|
|
|
186
190
|
overrides: RunScreenshotsOverrides = {},
|
|
187
191
|
): Promise<ScreenshotsRunResult> {
|
|
188
192
|
const plan = loadScreenshotsPlan(planPath)
|
|
193
|
+
if (overrides.orgDeckFrames && overrides.orgDeckFrames.length > 0) {
|
|
194
|
+
applyOrgDeckToPlan(plan, overrides.orgDeckFrames)
|
|
195
|
+
}
|
|
189
196
|
const effectiveDeviceModel = overrides.deviceModel ?? plan.deviceModel
|
|
190
197
|
if (!overrides.composeOnly) {
|
|
191
198
|
await runCaptureStage(plan, overrides)
|