sootsim 0.1.142 → 0.1.144
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-NAAIMWH7.js → agent-2OYPRNUE.js} +2 -2
- package/dist-cli/chunks/{agent-wrapper-XTURYUNI.js → agent-wrapper-LPKFMZBN.js} +2 -2
- package/dist-cli/chunks/{app-fonts-RSEABY54.js → app-fonts-3F2X43ER.js} +2 -2
- package/dist-cli/chunks/{assert-FLKFAP5S.js → assert-MUUX2DJC.js} +2 -2
- package/dist-cli/chunks/auto-bootstrap-EYENX7BT.js +2 -0
- package/dist-cli/chunks/beta-2JIATCYM.js +2 -0
- package/dist-cli/chunks/{camera-YW7TIZMC.js → camera-TBW2MKRE.js} +2 -2
- package/dist-cli/chunks/{chunk-GCCVK7DE.js → chunk-2OWIXUFA.js} +2 -2
- package/dist-cli/chunks/{chunk-C3GZZTY2.js → chunk-2WPNYDSO.js} +1 -1
- package/dist-cli/chunks/chunk-3FFDAVGT.js +119 -0
- package/dist-cli/chunks/chunk-3LW4V4ZM.js +2 -0
- package/dist-cli/chunks/chunk-3ZNPJADG.js +1 -0
- package/dist-cli/chunks/{chunk-OI5YSYX2.js → chunk-4CPUNUJC.js} +1 -1
- package/dist-cli/chunks/{chunk-6J5EKBUF.js → chunk-6KI36NXX.js} +2 -2
- package/dist-cli/chunks/{chunk-PQFNHOPP.js → chunk-73DPWPZU.js} +1 -1
- package/dist-cli/chunks/{chunk-XNHS44BQ.js → chunk-7R3BK6IY.js} +1 -1
- package/dist-cli/chunks/{chunk-WHTKAFVO.js → chunk-A3E5QVUN.js} +1 -1
- package/dist-cli/chunks/{chunk-UUKLS7ZA.js → chunk-A72YS45Y.js} +1 -1
- package/dist-cli/chunks/chunk-AJKVXCHV.js +5 -0
- package/dist-cli/chunks/{chunk-3EETVUZK.js → chunk-AKHWKREF.js} +1 -1
- package/dist-cli/chunks/{chunk-ZWIFZAXU.js → chunk-AV2DSEYZ.js} +2 -2
- package/dist-cli/chunks/{chunk-BZO4BFHL.js → chunk-BBPSMK2D.js} +2 -2
- package/dist-cli/chunks/{chunk-D6V27NP5.js → chunk-BCIZZLCX.js} +1 -1
- package/dist-cli/chunks/{chunk-UCPLYSBA.js → chunk-FQBF5HG6.js} +1 -1
- package/dist-cli/chunks/{chunk-FSKCHXES.js → chunk-FZXVYC4D.js} +2 -2
- package/dist-cli/chunks/chunk-GJR32NCU.js +1 -0
- package/dist-cli/chunks/{chunk-3OPQ44BF.js → chunk-HC43FXK7.js} +2 -2
- package/dist-cli/chunks/{chunk-LTYJMDYI.js → chunk-HVB4FNBH.js} +2 -2
- package/dist-cli/chunks/{chunk-MO6Q4PLZ.js → chunk-IAWQFSZ2.js} +2 -2
- package/dist-cli/chunks/chunk-KABTL7PQ.js +406 -0
- package/dist-cli/chunks/{chunk-KOZ5XDC7.js → chunk-KF7TXHAG.js} +3 -3
- package/dist-cli/chunks/{chunk-P7FJ6IE4.js → chunk-LEWUJGFD.js} +1 -1
- package/dist-cli/chunks/{chunk-R42X5C7W.js → chunk-MX66P64S.js} +1 -1
- package/dist-cli/chunks/{chunk-JVDKRU4Y.js → chunk-PN4QXNKU.js} +2 -2
- package/dist-cli/chunks/{chunk-YG4V3MOQ.js → chunk-QHCI5TZ6.js} +1 -1
- package/dist-cli/chunks/{chunk-3ITFZJ7S.js → chunk-QMTPTQHG.js} +2 -2
- package/dist-cli/chunks/{chunk-QJ2H2D5V.js → chunk-S6OUYII6.js} +2 -2
- package/dist-cli/chunks/{chunk-RQPGGNZW.js → chunk-T5SF5UGY.js} +1 -1
- package/dist-cli/chunks/{chunk-TKNYTKLF.js → chunk-TE2SHQPT.js} +1 -1
- package/dist-cli/chunks/{chunk-W5FZTYVP.js → chunk-TJXJCYCS.js} +1 -1
- package/dist-cli/chunks/{chunk-AIS5XNOM.js → chunk-TKMTONCA.js} +3 -3
- package/dist-cli/chunks/{chunk-RNNX77AX.js → chunk-TONLJPNX.js} +1 -1
- package/dist-cli/chunks/chunk-TVLQMXWV.js +1 -0
- package/dist-cli/chunks/{chunk-CHTLYKGS.js → chunk-UGRHYJUA.js} +2 -2
- package/dist-cli/chunks/{chunk-WEDVFO7O.js → chunk-UZO6PMW3.js} +2 -2
- package/dist-cli/chunks/{chunk-VGCBZCSG.js → chunk-VFXS73Q6.js} +2 -2
- package/dist-cli/chunks/{chunk-2SUXNIRB.js → chunk-W4KCLE5O.js} +2 -2
- package/dist-cli/chunks/{chunk-HAUBNMGA.js → chunk-XJVBNNIB.js} +2 -2
- package/dist-cli/chunks/{chunk-HL3XSORU.js → chunk-YV6RWCPO.js} +2 -2
- package/dist-cli/chunks/{chunk-O4YHBU62.js → chunk-Z52XC4UA.js} +2 -2
- package/dist-cli/chunks/{chunk-YIWBIAVG.js → chunk-ZODKBHVK.js} +2 -2
- package/dist-cli/chunks/{chunk-HJ6M2MSA.js → chunk-ZRVCZZCT.js} +2 -2
- package/dist-cli/chunks/cli-version-YEX2XZ7G.js +2 -0
- package/dist-cli/chunks/{compat-HLFCOAFE.js → compat-P64DATYR.js} +3 -3
- package/dist-cli/chunks/{config-YFXVAWO3.js → config-TDDQXUS5.js} +2 -2
- package/dist-cli/chunks/{control-I4OAASMO.js → control-SNZMPDL7.js} +2 -2
- package/dist-cli/chunks/{cpu-profile-OKH4Y467.js → cpu-profile-FR47V42J.js} +2 -2
- package/dist-cli/chunks/daemon-LHJUCC7B.js +67 -0
- package/dist-cli/chunks/{debug-AEHF4WWI.js → debug-26NR6JCY.js} +3 -3
- package/dist-cli/chunks/{detox-HLZCQK7Z.js → detox-F2KTINZX.js} +2 -2
- package/dist-cli/chunks/{device-WDLN7VOT.js → device-O5COOPDN.js} +2 -2
- package/dist-cli/chunks/{diagnose-3KKIW2KV.js → diagnose-PQMLUCBO.js} +2 -2
- package/dist-cli/chunks/drivers-W4SBNM4V.js +2 -0
- package/dist-cli/chunks/{electron-XRQZK2WQ.js → electron-ZBL3TH2F.js} +3 -3
- package/dist-cli/chunks/flow-QREXGRFN.js +2 -0
- package/dist-cli/chunks/help-RE6HG3KD.js +2 -0
- package/dist-cli/chunks/{hints-B63I5SSR.js → hints-DWE4FKYR.js} +2 -2
- package/dist-cli/chunks/{home-paths-BDQIBV2V.js → home-paths-N2S32DRH.js} +2 -2
- package/dist-cli/chunks/{inspect-7XVNDGN4.js → inspect-J3BLUHGJ.js} +3 -3
- package/dist-cli/chunks/install-NLKZNPCO.js +2 -0
- package/dist-cli/chunks/{install-desktop-JBQQTH3I.js → install-desktop-73H4DAAH.js} +3 -3
- package/dist-cli/chunks/{keys-IMBTM4HL.js → keys-R42T6X3W.js} +2 -2
- package/dist-cli/chunks/{launch-XU64UAEQ.js → launch-QGDSUNDW.js} +3 -3
- package/dist-cli/chunks/{login-63BFWUJD.js → login-BYCX25K6.js} +5 -5
- package/dist-cli/chunks/{logout-RHE2W3WL.js → logout-TZJXACIH.js} +2 -2
- package/dist-cli/chunks/{maestro-4CAIVMXK.js → maestro-VPK6R5NN.js} +2 -2
- package/dist-cli/chunks/optional-demo-registry-UH3YM447.js +2 -0
- package/dist-cli/chunks/{preview-XZYX3SSZ.js → preview-GJ7MVSHM.js} +2 -2
- package/dist-cli/chunks/{profile-NNNFLZ6K.js → profile-2RAV3UZS.js} +2 -2
- package/dist-cli/chunks/{react-45J3NYF6.js → react-QE7UHEFS.js} +2 -2
- package/dist-cli/chunks/{record-QEON42UG.js → record-YYL4A7DO.js} +2 -2
- package/dist-cli/chunks/runtime-C4CLOL7U.js +2 -0
- package/dist-cli/chunks/{runtime-delivery-LGV6QPZS.js → runtime-delivery-2G4PGXGK.js} +2 -2
- package/dist-cli/chunks/{screenshot-SW2ZM723.js → screenshot-BIVF76SC.js} +2 -2
- package/dist-cli/chunks/{screenshot-mode-DSEJREME.js → screenshot-mode-OKAH3ZLK.js} +2 -2
- package/dist-cli/chunks/{screenshots-QWUZGYAS.js → screenshots-AVJANXAQ.js} +2 -2
- package/dist-cli/chunks/{server-6PTAPUIC.js → server-6SFAUUGK.js} +3 -3
- package/dist-cli/chunks/setup-repo-CRCQPW3Y.js +2 -0
- package/dist-cli/chunks/{skills-OAKG5VHJ.js → skills-7APKWTBO.js} +2 -2
- package/dist-cli/chunks/{start-3QVTLFG7.js → start-2GETTWND.js} +4 -4
- package/dist-cli/chunks/store-YFAIUHAS.js +2 -0
- package/dist-cli/chunks/telemetry-LUP4L5RW.js +2 -0
- package/dist-cli/chunks/{test-PYY6TAZF.js → test-V5HHXSKL.js} +3 -3
- package/dist-cli/chunks/{three-mode-4CJYCCE6.js → three-mode-UVIEP3CE.js} +2 -2
- package/dist-cli/chunks/{timeline-C4WE3FQZ.js → timeline-HVEKSWHF.js} +2 -2
- package/dist-cli/chunks/{upgrade-PY3F4JQ6.js → upgrade-FRHXNAYO.js} +2 -2
- package/dist-cli/chunks/upload-NWHZULFU.js +2 -0
- package/dist-cli/chunks/{version-CVDLRIWC.js → version-CBDBUHCC.js} +2 -2
- package/dist-cli/chunks/{web-DWUYDFQ3.js → web-DMUBG5QR.js} +2 -2
- package/dist-cli/chunks/{what-happened-6NQLDVJC.js → what-happened-3J4DEIRJ.js} +2 -2
- package/dist-cli/chunks/{whoami-WK3UUIOA.js → whoami-BSPU6JP4.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 +5 -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 +5 -1
- package/dist-lib/sdk.cjs +1 -1
- package/dist-lib/sdk.mjs +1 -1
- package/dist-lib/skills.cjs +85 -20
- package/dist-lib/vite.cjs +1 -1
- package/package.json +1 -1
- package/scripts/dev-server-scanner.ts +23 -0
- package/dist-cli/chunks/auto-bootstrap-UTDQXKT2.js +0 -2
- package/dist-cli/chunks/beta-WOG3OLTT.js +0 -2
- package/dist-cli/chunks/chunk-5PZ7JGND.js +0 -2
- package/dist-cli/chunks/chunk-BGIDIZGS.js +0 -1
- package/dist-cli/chunks/chunk-ITJU4NUU.js +0 -1
- package/dist-cli/chunks/chunk-QJKMMHUB.js +0 -406
- package/dist-cli/chunks/chunk-SM3OY52S.js +0 -119
- package/dist-cli/chunks/chunk-SN3MJYP7.js +0 -1
- package/dist-cli/chunks/chunk-XZHTKBH7.js +0 -5
- package/dist-cli/chunks/cli-version-IRAJSCVW.js +0 -2
- package/dist-cli/chunks/daemon-SI2HN567.js +0 -66
- package/dist-cli/chunks/drivers-G6Y3D5KN.js +0 -2
- package/dist-cli/chunks/flow-U2Y6PHQY.js +0 -2
- package/dist-cli/chunks/help-7TWUPXUX.js +0 -2
- package/dist-cli/chunks/install-UJ4KBTQ4.js +0 -2
- package/dist-cli/chunks/optional-demo-registry-BTUMTEBH.js +0 -2
- package/dist-cli/chunks/runtime-2LEYVXKV.js +0 -2
- package/dist-cli/chunks/setup-repo-3EBO7HQE.js +0 -2
- package/dist-cli/chunks/store-HKA3ET4T.js +0 -2
- package/dist-cli/chunks/telemetry-6ORWTXX5.js +0 -2
- package/dist-cli/chunks/upload-NFFWJLCQ.js +0 -2
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
2
|
-
import{B as T,C as A,D as y,O as _,P as b,Q as S}from"./chunk-
|
|
1
|
+
/*! sootsim v0.1.144 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
+
import{B as T,C as A,D as y,O as _,P as b,Q as S}from"./chunk-QHCI5TZ6.js";import{c as N,e as F}from"./chunk-2OWIXUFA.js";import{b as k}from"./chunk-4CPUNUJC.js";import"./chunk-LEWUJGFD.js";import"./chunk-MX66P64S.js";import"./chunk-TE2SHQPT.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.144 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
+
import{d as i}from"./chunk-W4KCLE5O.js";import{d as n}from"./chunk-6KI36NXX.js";import"./chunk-MX66P64S.js";import"./chunk-TE2SHQPT.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.144 | (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.144 | (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.144 | (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.144 | (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.144 | (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.144 | (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.144 | (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.144 | (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.144 | (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.144 | (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.144 | (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.144 | (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.144 | (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.144 | (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;
|
|
@@ -391,6 +391,10 @@ async function probePort(port, buildIconProxyUrl) {
|
|
|
391
391
|
buildIconProxyUrl
|
|
392
392
|
);
|
|
393
393
|
}
|
|
394
|
+
const looksLikeMetroPackager = statusRes && statusRes.statusCode === 200 || expoRes && expoRes.statusCode === 200 || manifestRes && manifestRes.statusCode === 200 && manifestParsed != null;
|
|
395
|
+
if (looksLikeMetroPackager) {
|
|
396
|
+
return null;
|
|
397
|
+
}
|
|
394
398
|
const oneRes = await httpGet(port, onePath, "HEAD");
|
|
395
399
|
if (oneRes && oneRes.statusCode > 0 && oneRes.statusCode < 400 && /application\/javascript/i.test(oneRes.contentType || "")) {
|
|
396
400
|
knownNonPatched.add(port);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.144 | (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.144 | (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.144 | (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.144 | (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.144 | (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.144 | (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.144 | (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.144 | (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.144 | (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;
|
|
@@ -382,6 +382,10 @@ async function probePort(port, buildIconProxyUrl) {
|
|
|
382
382
|
buildIconProxyUrl
|
|
383
383
|
);
|
|
384
384
|
}
|
|
385
|
+
const looksLikeMetroPackager = statusRes && statusRes.statusCode === 200 || expoRes && expoRes.statusCode === 200 || manifestRes && manifestRes.statusCode === 200 && manifestParsed != null;
|
|
386
|
+
if (looksLikeMetroPackager) {
|
|
387
|
+
return null;
|
|
388
|
+
}
|
|
385
389
|
const oneRes = await httpGet(port, onePath, "HEAD");
|
|
386
390
|
if (oneRes && oneRes.statusCode > 0 && oneRes.statusCode < 400 && /application\/javascript/i.test(oneRes.contentType || "")) {
|
|
387
391
|
knownNonPatched.add(port);
|
package/dist-lib/sdk.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.144 | (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.144 | (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;
|
|
@@ -10306,6 +10306,10 @@ async function probePort(port, buildIconProxyUrl) {
|
|
|
10306
10306
|
buildIconProxyUrl
|
|
10307
10307
|
);
|
|
10308
10308
|
}
|
|
10309
|
+
const looksLikeMetroPackager = statusRes && statusRes.statusCode === 200 || expoRes && expoRes.statusCode === 200 || manifestRes && manifestRes.statusCode === 200 && manifestParsed != null;
|
|
10310
|
+
if (looksLikeMetroPackager) {
|
|
10311
|
+
return null;
|
|
10312
|
+
}
|
|
10309
10313
|
const oneRes = await httpGet(port, onePath, "HEAD");
|
|
10310
10314
|
if (oneRes && oneRes.statusCode > 0 && oneRes.statusCode < 400 && /application\/javascript/i.test(oneRes.contentType || "")) {
|
|
10311
10315
|
knownNonPatched.add(port);
|
|
@@ -16063,6 +16067,31 @@ function parsePoint(value) {
|
|
|
16063
16067
|
y: parseCoord(rawY, SCREEN_H)
|
|
16064
16068
|
};
|
|
16065
16069
|
}
|
|
16070
|
+
function normalizeBareStringStep(verb) {
|
|
16071
|
+
switch (verb) {
|
|
16072
|
+
case "back":
|
|
16073
|
+
return { back: true };
|
|
16074
|
+
case "hideKeyboard":
|
|
16075
|
+
return { hideKeyboard: true };
|
|
16076
|
+
case "waitForAnimationToEnd":
|
|
16077
|
+
return { waitForAnimationToEnd: true };
|
|
16078
|
+
case "stopApp":
|
|
16079
|
+
return { stopApp: true };
|
|
16080
|
+
case "clearState":
|
|
16081
|
+
return { clearState: true };
|
|
16082
|
+
case "clearKeychain":
|
|
16083
|
+
return { clearKeychain: true };
|
|
16084
|
+
case "eraseText":
|
|
16085
|
+
return { eraseText: 50 };
|
|
16086
|
+
case "scroll":
|
|
16087
|
+
case "scrollDown":
|
|
16088
|
+
return { scroll: { direction: "DOWN" } };
|
|
16089
|
+
case "scrollUp":
|
|
16090
|
+
return { scroll: { direction: "UP" } };
|
|
16091
|
+
default:
|
|
16092
|
+
return { [verb]: true };
|
|
16093
|
+
}
|
|
16094
|
+
}
|
|
16066
16095
|
function parseFlowSteps(content) {
|
|
16067
16096
|
const parts = content.split(/^---$/m);
|
|
16068
16097
|
const candidate = parts.length > 1 ? parts[parts.length - 1] : content;
|
|
@@ -16444,18 +16473,26 @@ var init_bridge_flow_runner = __esm({
|
|
|
16444
16473
|
element = await this.findElement({ text: opts.text, id: opts.id });
|
|
16445
16474
|
}
|
|
16446
16475
|
if (element) {
|
|
16447
|
-
const
|
|
16448
|
-
|
|
16449
|
-
|
|
16450
|
-
|
|
16451
|
-
|
|
16452
|
-
|
|
16453
|
-
|
|
16454
|
-
|
|
16455
|
-
|
|
16456
|
-
|
|
16457
|
-
|
|
16458
|
-
|
|
16476
|
+
const tapInputAttempts = element.isTextInput ? 4 : 1;
|
|
16477
|
+
for (let attempt = 0; attempt < tapInputAttempts; attempt++) {
|
|
16478
|
+
const current = attempt === 0 ? element : await this.findElement({ text: opts.text, id: opts.id });
|
|
16479
|
+
if (!current) break;
|
|
16480
|
+
const tapTarget = typeof current.nodeId === "number" ? await this.resolveTapTarget(current.nodeId) : null;
|
|
16481
|
+
const cx = tapTarget?.cx ?? current.absolutePosition.x + current.layout.width / 2;
|
|
16482
|
+
const cy = tapTarget?.cy ?? current.absolutePosition.y + current.layout.height / 2;
|
|
16483
|
+
const hit = await this.tap(cx, cy, {
|
|
16484
|
+
id: opts.id ?? tapTarget?.target?.id ?? current.id ?? null,
|
|
16485
|
+
testID: opts.id ?? tapTarget?.target?.testID ?? current.testID ?? null,
|
|
16486
|
+
text: opts.text ?? tapTarget?.target?.text ?? tapTarget?.target?.accessibilityLabel ?? current.text ?? current.accessibilityLabel ?? null,
|
|
16487
|
+
type: tapTarget?.target?.type ?? current.type ?? null
|
|
16488
|
+
});
|
|
16489
|
+
if (hit?.hit === true) {
|
|
16490
|
+
await sleep(300);
|
|
16491
|
+
if (!current.isTextInput) return;
|
|
16492
|
+
if (await this.waitForFocusedTextInput(600)) return;
|
|
16493
|
+
continue;
|
|
16494
|
+
}
|
|
16495
|
+
break;
|
|
16459
16496
|
}
|
|
16460
16497
|
}
|
|
16461
16498
|
const direct = await this.activatePressTarget(opts);
|
|
@@ -16511,6 +16548,7 @@ var init_bridge_flow_runner = __esm({
|
|
|
16511
16548
|
return !!(element && element.absolutePosition.y + element.layout.height > 0 && element.absolutePosition.y < SCREEN_H);
|
|
16512
16549
|
}
|
|
16513
16550
|
async inputText(text) {
|
|
16551
|
+
await this.waitForFocusedTextInput();
|
|
16514
16552
|
await this.bridge.send({
|
|
16515
16553
|
type: "keyboard",
|
|
16516
16554
|
simId: this.opts.simId,
|
|
@@ -16519,6 +16557,23 @@ var init_bridge_flow_runner = __esm({
|
|
|
16519
16557
|
});
|
|
16520
16558
|
await sleep(200);
|
|
16521
16559
|
}
|
|
16560
|
+
// poll for a focused text input. returns true once getFocusedNode reports a
|
|
16561
|
+
// node (focus landed), false if the budget elapses. callers use it both as a
|
|
16562
|
+
// tap-focus confirmation (tapOn retry) and a pre-type barrier (inputText).
|
|
16563
|
+
async waitForFocusedTextInput(timeoutMs = 1500) {
|
|
16564
|
+
const deadline = Date.now() + timeoutMs;
|
|
16565
|
+
while (Date.now() < deadline) {
|
|
16566
|
+
try {
|
|
16567
|
+
const focused = await this.callTest(
|
|
16568
|
+
"getFocusedNode"
|
|
16569
|
+
);
|
|
16570
|
+
if (focused) return true;
|
|
16571
|
+
} catch {
|
|
16572
|
+
}
|
|
16573
|
+
await sleep(50);
|
|
16574
|
+
}
|
|
16575
|
+
return false;
|
|
16576
|
+
}
|
|
16522
16577
|
async pressKey(name) {
|
|
16523
16578
|
await this.bridge.send({
|
|
16524
16579
|
type: "keyboard",
|
|
@@ -17178,7 +17233,8 @@ var init_bridge_flow_runner = __esm({
|
|
|
17178
17233
|
const value = entry ? entry[1] : void 0;
|
|
17179
17234
|
return !!(value && typeof value === "object" && "optional" in value && value.optional);
|
|
17180
17235
|
}
|
|
17181
|
-
async runStep(
|
|
17236
|
+
async runStep(rawStepInput, stepIndex) {
|
|
17237
|
+
const rawStep = typeof rawStepInput === "string" ? normalizeBareStringStep(rawStepInput) : rawStepInput;
|
|
17182
17238
|
const stepName = Object.keys(rawStep).find((k) => k !== "when") || Object.keys(rawStep)[0];
|
|
17183
17239
|
console.log(`[flow] step ${stepIndex + 1}: ${stepName}`);
|
|
17184
17240
|
let step;
|
|
@@ -17303,15 +17359,24 @@ var init_bridge_flow_runner = __esm({
|
|
|
17303
17359
|
await this.assertTreeContains(step.assertTreeContains);
|
|
17304
17360
|
} else if (typeof step.eraseText === "number") {
|
|
17305
17361
|
await this.eraseText(step.eraseText);
|
|
17306
|
-
} else if (step.repeat) {
|
|
17307
|
-
const
|
|
17308
|
-
|
|
17309
|
-
|
|
17310
|
-
|
|
17311
|
-
|
|
17362
|
+
} else if (step.repeat && Array.isArray(step.repeat.commands)) {
|
|
17363
|
+
const rawTimes = step.repeat.times;
|
|
17364
|
+
const maxRuns = rawTimes === void 0 || rawTimes === null || rawTimes === "" ? Number.MAX_SAFE_INTEGER : Number(rawTimes);
|
|
17365
|
+
if (!Number.isFinite(maxRuns)) {
|
|
17366
|
+
throw new Error(`repeat.times is not a number: ${rawTimes}`);
|
|
17367
|
+
}
|
|
17368
|
+
const condition = step.repeat.when ?? step.repeat.condition;
|
|
17369
|
+
const checkCondition = async () => {
|
|
17370
|
+
if (!condition) return true;
|
|
17371
|
+
return this.evaluateWhen(condition);
|
|
17372
|
+
};
|
|
17373
|
+
const hardCap = condition ? maxRuns : Math.min(maxRuns, 1e3);
|
|
17374
|
+
let i = 0;
|
|
17375
|
+
while (i < hardCap && await checkCondition()) {
|
|
17312
17376
|
for (let j = 0; j < step.repeat.commands.length; j++) {
|
|
17313
17377
|
await this.runStep(step.repeat.commands[j], j);
|
|
17314
17378
|
}
|
|
17379
|
+
i++;
|
|
17315
17380
|
}
|
|
17316
17381
|
} else if (step.stopApp !== void 0) {
|
|
17317
17382
|
await this.stopApp();
|
package/dist-lib/vite.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.144 | (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
|
@@ -496,6 +496,29 @@ export async function probePort(
|
|
|
496
496
|
// it has the metro side-effect documented above. older One bare-dev-server
|
|
497
497
|
// setups that don't serve a manifest still resolve through this path; new
|
|
498
498
|
// expo/metro/one setups are caught above and never reach here.
|
|
499
|
+
//
|
|
500
|
+
// hard safety gate (the recurring "metro on 8081 crashes" regression): a
|
|
501
|
+
// plain expo/metro packager that is still BOOTING serves `/status`,
|
|
502
|
+
// `/_expo/status`, and the `/` manifest a few seconds apart, so during the
|
|
503
|
+
// boot window all three wave-1 catches above can miss (status body not yet
|
|
504
|
+
// `packager-status:running`, manifest not yet parseable). without this gate
|
|
505
|
+
// we then fire the lethal HEAD against a metro that IS a metro — and the
|
|
506
|
+
// engine, handed a bogus `one/metro-entry.bundle` URL, opens an HMR socket
|
|
507
|
+
// whose `register-entrypoints` throws UnableToResolveError inside
|
|
508
|
+
// HmrServer._registerEntryPoint → unhandledRejection → metro exits. a real
|
|
509
|
+
// legacy bare-One dev server answers NONE of these metro/expo endpoints, so
|
|
510
|
+
// skipping the HEAD here never hides a genuine One server — it just defers
|
|
511
|
+
// this port to the next scan, by which point wave 1 identifies it cleanly.
|
|
512
|
+
const looksLikeMetroPackager =
|
|
513
|
+
(statusRes && statusRes.statusCode === 200) ||
|
|
514
|
+
(expoRes && expoRes.statusCode === 200) ||
|
|
515
|
+
(manifestRes && manifestRes.statusCode === 200 && manifestParsed != null)
|
|
516
|
+
if (looksLikeMetroPackager) {
|
|
517
|
+
// do NOT cache as knownNonPatched — we want a fresh wave-1 pass next scan
|
|
518
|
+
// once the packager finishes booting and its manifest/status are ready.
|
|
519
|
+
return null
|
|
520
|
+
}
|
|
521
|
+
|
|
499
522
|
const oneRes = await httpGet(port, onePath, 'HEAD')
|
|
500
523
|
if (
|
|
501
524
|
oneRes &&
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
/*! sootsim v0.1.142 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
-
import{a,b,c,d}from"./chunk-AIS5XNOM.js";import"./chunk-GCCVK7DE.js";import"./chunk-OI5YSYX2.js";import"./chunk-P7FJ6IE4.js";import"./chunk-R42X5C7W.js";import"./chunk-TKNYTKLF.js";export{c as ensureDaemonRunning,a as ensureRuntimeInstalled,d as ensureSootsimReady,b as resolveBootstrapPort};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
/*! sootsim v0.1.142 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
/*! sootsim v0.1.142 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|