sootsim 0.1.170 → 0.1.172
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-3C2BKQKX.js → agent-WQ7M46K4.js} +2 -2
- package/dist-cli/chunks/{agent-wrapper-OIKCYOXZ.js → agent-wrapper-PLQVHHZV.js} +2 -2
- package/dist-cli/chunks/{app-fonts-25O32NAP.js → app-fonts-COYEPFDN.js} +2 -2
- package/dist-cli/chunks/{assert-ONEP4NQU.js → assert-BK3NDOF2.js} +2 -2
- package/dist-cli/chunks/beta-F3BMUABH.js +2 -0
- package/dist-cli/chunks/{camera-RORW4MAA.js → camera-RU533SOI.js} +2 -2
- package/dist-cli/chunks/chunk-2NGGBDGA.js +2 -0
- package/dist-cli/chunks/{chunk-I4RV5I6V.js → chunk-42CB2PAE.js} +1 -1
- package/dist-cli/chunks/{chunk-6FAEORJ2.js → chunk-46UXO5SQ.js} +1 -1
- package/dist-cli/chunks/{chunk-ULV4PWN4.js → chunk-4BIG3MC7.js} +1 -1
- package/dist-cli/chunks/{chunk-NI3L4A65.js → chunk-4J3T7PQJ.js} +2 -2
- package/dist-cli/chunks/{chunk-S244IT4W.js → chunk-4LAKUGO7.js} +1 -1
- package/dist-cli/chunks/{chunk-GST4YSBO.js → chunk-53XIVSKW.js} +2 -2
- package/dist-cli/chunks/{chunk-XOTJD6PU.js → chunk-62W3D6EE.js} +1 -1
- package/dist-cli/chunks/{chunk-N4YCSOCR.js → chunk-6E2UB6LQ.js} +2 -2
- package/dist-cli/chunks/{chunk-DAXME77O.js → chunk-6GI3NZFP.js} +2 -2
- package/dist-cli/chunks/{chunk-SDHOM6ZG.js → chunk-6HZQNXH6.js} +2 -2
- package/dist-cli/chunks/chunk-72MDGPY7.js +1 -0
- package/dist-cli/chunks/{chunk-QPRF3UYX.js → chunk-7Q6G6GQQ.js} +2 -2
- package/dist-cli/chunks/{chunk-I5WXVKR6.js → chunk-AYNXI62J.js} +1 -1
- package/dist-cli/chunks/{chunk-WN7R4GL4.js → chunk-B23C5UYK.js} +1 -1
- package/dist-cli/chunks/{chunk-DGJTEFE7.js → chunk-BIWY73P5.js} +2 -2
- package/dist-cli/chunks/{chunk-RLKSLUNR.js → chunk-BMIRPWXB.js} +1 -1
- package/dist-cli/chunks/{chunk-3TM7DHWE.js → chunk-CMH3BW27.js} +2 -2
- package/dist-cli/chunks/{chunk-UDMJSFSH.js → chunk-DAIJBIM3.js} +2 -2
- package/dist-cli/chunks/{chunk-DKTC53HV.js → chunk-EJ76TW66.js} +1 -1
- package/dist-cli/chunks/{chunk-TXKOJ3P5.js → chunk-IEI42LDX.js} +1 -1
- package/dist-cli/chunks/chunk-JBGGTC5Z.js +1 -0
- package/dist-cli/chunks/{chunk-YVTWSC5Y.js → chunk-KHDX36G5.js} +3 -3
- package/dist-cli/chunks/{chunk-25RFZ6WP.js → chunk-LENELFGE.js} +3 -3
- package/dist-cli/chunks/{chunk-DWXC25XG.js → chunk-LGXEPAHS.js} +1 -1
- package/dist-cli/chunks/{chunk-4XVY5TUF.js → chunk-LHCRB57U.js} +2 -2
- package/dist-cli/chunks/{chunk-ODGEH6OW.js → chunk-MRVSPAIH.js} +2 -2
- package/dist-cli/chunks/{chunk-IO7KAVFK.js → chunk-N7PCRU6E.js} +2 -2
- package/dist-cli/chunks/{chunk-LMX7UB5T.js → chunk-NPWSQT6H.js} +2 -2
- package/dist-cli/chunks/{chunk-VUOCUCJ2.js → chunk-NVBBJ3G2.js} +2 -2
- package/dist-cli/chunks/{chunk-35GMFXVJ.js → chunk-PM4SIKKG.js} +2 -2
- package/dist-cli/chunks/{chunk-Q4NDYO2U.js → chunk-PTBDLOWI.js} +1 -1
- package/dist-cli/chunks/{chunk-V4HTQPMA.js → chunk-Q5L2HSIK.js} +1 -1
- package/dist-cli/chunks/{chunk-DIRDEKRW.js → chunk-RCN3YTNR.js} +2 -2
- package/dist-cli/chunks/{chunk-GQH3PD3W.js → chunk-RD6VD4EB.js} +2 -2
- package/dist-cli/chunks/{chunk-YMFSRCHL.js → chunk-RQWJY32F.js} +2 -2
- package/dist-cli/chunks/{chunk-EX6V4ZV6.js → chunk-SYAAEME6.js} +1 -1
- package/dist-cli/chunks/{chunk-E3FKMY5E.js → chunk-T47U5L2K.js} +1 -1
- package/dist-cli/chunks/chunk-TJGRGSYC.js +2 -0
- package/dist-cli/chunks/{chunk-6TSXXN2W.js → chunk-TLX7JDQK.js} +2 -2
- package/dist-cli/chunks/{chunk-5ZHUPPS5.js → chunk-TM5K4CCK.js} +1 -1
- package/dist-cli/chunks/{chunk-BP3EGFER.js → chunk-UJCUPX54.js} +2 -2
- package/dist-cli/chunks/{chunk-AUCNBB6Q.js → chunk-V2EE4PUL.js} +2 -2
- package/dist-cli/chunks/{chunk-VATHADSI.js → chunk-YUOZCM27.js} +1 -1
- package/dist-cli/chunks/{chunk-YV74D4MG.js → chunk-ZMY6B3ZC.js} +2 -2
- package/dist-cli/chunks/cli-version-TNUDIF5R.js +2 -0
- package/dist-cli/chunks/{compat-ZVZM5TML.js → compat-5DGHR45U.js} +3 -3
- package/dist-cli/chunks/{control-TWINYHMY.js → control-FNKKISVL.js} +2 -2
- package/dist-cli/chunks/{cpu-profile-RWGQTWLP.js → cpu-profile-JUAWGPGI.js} +2 -2
- package/dist-cli/chunks/daemon-IGYKJTV4.js +2 -0
- package/dist-cli/chunks/{debug-R7PL3MHF.js → debug-CW6DJ4JU.js} +3 -3
- package/dist-cli/chunks/{detox-UIJMKIGQ.js → detox-CWAWL7PV.js} +2 -2
- package/dist-cli/chunks/{device-7SRVX2PU.js → device-RWDY3QWG.js} +2 -2
- package/dist-cli/chunks/{diagnose-OXAKLLZT.js → diagnose-OHHX4L5I.js} +2 -2
- package/dist-cli/chunks/drivers-LM7U6WOI.js +2 -0
- package/dist-cli/chunks/{electron-CTCH4VOL.js → electron-OLREFRMH.js} +3 -3
- package/dist-cli/chunks/flow-MEQ4WJ2A.js +2 -0
- package/dist-cli/chunks/help-CLCZJBU5.js +2 -0
- package/dist-cli/chunks/{hints-P3ZIAP3Z.js → hints-MIKS44U2.js} +2 -2
- package/dist-cli/chunks/{home-paths-ZSCTLOYE.js → home-paths-GCXNBHYT.js} +2 -2
- package/dist-cli/chunks/{inspect-2ABU5WET.js → inspect-TIGJUGBG.js} +3 -3
- package/dist-cli/chunks/{install-desktop-4NOQ3YY4.js → install-desktop-MU56WK46.js} +3 -3
- package/dist-cli/chunks/{keys-RPVEUNUC.js → keys-PFIFN6C7.js} +2 -2
- package/dist-cli/chunks/{login-6D6DXBO3.js → login-PVVH5YUA.js} +4 -4
- package/dist-cli/chunks/{logout-T5OSWDTJ.js → logout-GNKIGKTW.js} +2 -2
- package/dist-cli/chunks/{maestro-MKCHEOKA.js → maestro-IGGZODE6.js} +2 -2
- package/dist-cli/chunks/optional-demo-registry-2F65QTQK.js +2 -0
- package/dist-cli/chunks/{preview-S52ZNGN2.js → preview-UF3NZLHQ.js} +2 -2
- package/dist-cli/chunks/{profile-IG5F3LTL.js → profile-XR7KRATW.js} +2 -2
- package/dist-cli/chunks/{react-275HCOFC.js → react-4VBBPTZN.js} +2 -2
- package/dist-cli/chunks/{record-YT63SUHO.js → record-35VQV7SI.js} +2 -2
- package/dist-cli/chunks/runtime-LDYJVDWV.js +2 -0
- package/dist-cli/chunks/{screenshot-5AZ4MY3A.js → screenshot-GUXVAMU4.js} +2 -2
- package/dist-cli/chunks/{screenshot-mode-4S4EX2XJ.js → screenshot-mode-NM3S5FUB.js} +2 -2
- package/dist-cli/chunks/{screenshots-UUJNZSG7.js → screenshots-XNVHV5OB.js} +2 -2
- package/dist-cli/chunks/{screenshots-capture-I66JD3AD.js → screenshots-capture-AL7NR7CG.js} +2 -2
- package/dist-cli/chunks/{serve-O46Q4WAD.js → serve-P4WR6SDD.js} +2 -2
- package/dist-cli/chunks/{setup-C44N54O7.js → setup-VFE6WRVA.js} +2 -2
- package/dist-cli/chunks/{skills-PPVS4XOQ.js → skills-ECYDZM76.js} +2 -2
- package/dist-cli/chunks/{slides-ZWSZJZUY.js → slides-TLMQ6CCP.js} +2 -2
- package/dist-cli/chunks/store-JX7O3YO6.js +2 -0
- package/dist-cli/chunks/telemetry-SS4OVJ4R.js +2 -0
- package/dist-cli/chunks/{test-362G4M5A.js → test-LDLES3IA.js} +3 -3
- package/dist-cli/chunks/{three-mode-JNVTM2UT.js → three-mode-NULZ5VY2.js} +2 -2
- package/dist-cli/chunks/{timeline-VKC6ULRK.js → timeline-4YNNQVMU.js} +2 -2
- package/dist-cli/chunks/{upgrade-SJPX4SPA.js → upgrade-MGCZ4SP7.js} +2 -2
- package/dist-cli/chunks/upload-RKYUNV4M.js +2 -0
- package/dist-cli/chunks/{version-4Z7AFNH3.js → version-BZC7W5V3.js} +2 -2
- package/dist-cli/chunks/web-GWHWLRGJ.js +2 -0
- package/dist-cli/chunks/{what-happened-KQCWMQJT.js → what-happened-5VQD3NPS.js} +2 -2
- package/dist-cli/chunks/{whoami-K76PXAD4.js → whoami-SF4NA5VN.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/menu.cjs +1 -1
- package/dist-lib/menu.mjs +1 -1
- package/dist-lib/metro.cjs +1 -1
- package/dist-lib/profiles.cjs +1 -1
- package/dist-lib/render-mode.cjs +1 -1
- package/dist-lib/scripts/dev-server-scanner.cjs +1 -1
- package/dist-lib/sdk.cjs +1 -1
- package/dist-lib/sdk.mjs +1 -1
- package/dist-lib/skills.cjs +5 -5
- package/dist-lib/vite.cjs +1 -1
- package/package.json +1 -1
- package/src/vite-plugin.ts +83 -0
- package/dist-cli/chunks/beta-4E5USTEI.js +0 -2
- package/dist-cli/chunks/chunk-AJF3QF4K.js +0 -1
- package/dist-cli/chunks/chunk-ER4GBJRY.js +0 -2
- package/dist-cli/chunks/chunk-QXJMXSQP.js +0 -2
- package/dist-cli/chunks/chunk-XUNPVF5K.js +0 -1
- package/dist-cli/chunks/cli-version-EKKWCHRX.js +0 -2
- package/dist-cli/chunks/daemon-AOSMNBD4.js +0 -2
- package/dist-cli/chunks/drivers-BPPG22VP.js +0 -2
- package/dist-cli/chunks/flow-KA2WCWDL.js +0 -2
- package/dist-cli/chunks/help-XBQIK2XY.js +0 -2
- package/dist-cli/chunks/optional-demo-registry-EYD2K3QH.js +0 -2
- package/dist-cli/chunks/runtime-WYZMDZAK.js +0 -2
- package/dist-cli/chunks/store-3SLGP5O3.js +0 -2
- package/dist-cli/chunks/telemetry-2XLLWARK.js +0 -2
- package/dist-cli/chunks/upload-MXOBV6RT.js +0 -2
- package/dist-cli/chunks/web-WB2I2AWL.js +0 -2
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
2
|
-
import{b as q}from"./chunk-
|
|
1
|
+
/*! sootsim v0.1.172 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
+
import{b as q}from"./chunk-LENELFGE.js";import{b as L}from"./chunk-ZMY6B3ZC.js";import"./chunk-72MDGPY7.js";import"./chunk-6E2UB6LQ.js";import{b as H}from"./chunk-V2EE4PUL.js";import"./chunk-BIWY73P5.js";import"./chunk-TLX7JDQK.js";import"./chunk-RQWJY32F.js";import"./chunk-PTBDLOWI.js";import"./chunk-AYNXI62J.js";import"./chunk-53XIVSKW.js";import"./chunk-4LAKUGO7.js";import"./chunk-NPWSQT6H.js";import"./chunk-RD6VD4EB.js";import{d as U,e as K}from"./chunk-UJCUPX54.js";import"./chunk-TJGRGSYC.js";import"./chunk-IEI42LDX.js";import"./chunk-RCN3YTNR.js";import"./chunk-46UXO5SQ.js";import"./chunk-4J3T7PQJ.js";import"./chunk-7Q6G6GQQ.js";import"./chunk-MRVSPAIH.js";import"./chunk-2NGGBDGA.js";import"./chunk-4BIG3MC7.js";import"./chunk-LGXEPAHS.js";import"./chunk-SYAAEME6.js";import"./chunk-NVBBJ3G2.js";import{a as y,b as A,c as E,d as O,e as v,f as C,g as _}from"./chunk-Q5L2HSIK.js";import"./chunk-B23C5UYK.js";import{mkdirSync as I,readFileSync as ye,writeFileSync as se}from"fs";import{tmpdir as We}from"os";import F from"path";import{mkdirSync as W,readFileSync as ae,writeFileSync as X}from"fs";import B from"path";function V(e){return e.replace(/\\/g,"/").replace(/\.png$/i,"").trim().split("/").filter(Boolean).join("--").replace(/[^A-Za-z0-9-]+/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"")||"slide"}function T(e){return e.replaceAll("&","&").replaceAll("<","<").replaceAll(">",">").replaceAll('"',""")}function ce(e){let t=e.trim();return/^#[0-9a-f]{3}$/i.test(t)?`#${t[1]}${t[1]}${t[2]}${t[2]}${t[3]}${t[3]}`:t}function D(e,t){let o=ce(e),i=Math.max(0,Math.min(1,t)),n=o.match(/^#([0-9a-f]{6})$/i);if(n){let s=n[1],r=Number.parseInt(s.slice(0,2),16),a=Number.parseInt(s.slice(2,4),16),c=Number.parseInt(s.slice(4,6),16);return`rgba(${r}, ${a}, ${c}, ${i})`}return o.startsWith("rgb(")?o.replace(/^rgb\((.+)\)$/i,`rgba($1, ${i})`):o}function le(e){if(e.type==="solid")return e.color||"#000000";let t=e.direction??180,o=e.stops?.map(i=>`${i.color} ${i.offset}%`).join(", ")||"#000000 0%, #111111 100%";return`linear-gradient(${t}deg, ${o})`}function pe(e){let t=e.glow;return t?`radial-gradient(circle at 50% 24%, ${D(t,.46)} 0%, ${D(t,.2)} 24%, rgba(0,0,0,0) 62%)`:"none"}function R(e){switch(e){case"tilted-left":return"perspective(2400px) rotateY(10deg) rotateZ(-2deg)";case"tilted-right":return"perspective(2400px) rotateY(-10deg) rotateZ(2deg)";case"cut-bottom":return"translateY(10%) scale(1.08)";case"cut-top":return"translateY(-16%) scale(1.08)";case"straight":default:return"none"}}function G(...e){let t=e.map(o=>o.trim()).filter(o=>o.length>0&&o!=="none");return t.length>0?t.join(" "):"none"}function j(e){let t=D(e.color,e.opacity),o=D(e.color,e.opacity*.52);return`drop-shadow(0 34px ${e.spread}px ${o}) drop-shadow(0 0 ${e.blur}px ${t})`}function Y(e,t){return!t.glow||e.color&&e.color!==y.color?e:{...e,color:t.glow}}function ue(e,t){if(e==="editorial-left"){let n=Math.round(t.height*.056),s=Math.round(t.height*.022);return{copyStyle:["position:absolute",`top:${Math.round(t.height*.12)}px`,`left:${Math.round(t.width*.085)}px`,`width:${Math.round(t.width*.42)}px`,"text-align:left","z-index:3"].join(";"),titleStyle:`font-size:${n}px;line-height:0.92;`,subStyle:`font-size:${s}px;line-height:1.36;max-width:${Math.round(t.width*.36)}px;`,eyebrowStyle:"align-items:flex-start;",deviceStyle:(r,a,c)=>{let p=Math.round(t.width*.68*(a.scale??r.scale)),l=Math.round(t.height*(.03+r.offsetY+(a.offsetY??0))),d=a.pose||r.pose||"tilted-right",h=Y(r.shadow,c);return["position:absolute",`top:${Math.round(t.height*.18)+l}px`,`left:${Math.round(t.width*.56)}px`,`width:${p}px`,"transform-origin:center center",`transform:${R(d)}`,`filter:${j(h)}`,"z-index:2"].join(";")}}}if(e==="minimal-bottom"){let n=Math.round(t.height*.041),s=Math.round(t.height*.019);return{copyStyle:["position:absolute",`left:${Math.round(t.width*.12)}px`,`right:${Math.round(t.width*.12)}px`,`bottom:${Math.round(t.height*.085)}px`,"text-align:center","z-index:3"].join(";"),titleStyle:`font-size:${n}px;line-height:0.96;`,subStyle:`font-size:${s}px;line-height:1.34;max-width:${Math.round(t.width*.56)}px;margin:0 auto;`,eyebrowStyle:"align-items:center;",deviceStyle:(r,a,c)=>{let p=Math.round(t.width*.84*(a.scale??r.scale)),l=Math.round(t.height*(r.offsetY+(a.offsetY??0))),d=a.pose||r.pose,h=Y(r.shadow,c);return["position:absolute",`top:${Math.round(t.height*.075)+l}px`,"left:50%",`width:${p}px`,"transform-origin:center center",`transform:${G("translateX(-50%)",R(d))}`,`filter:${j(h)}`,"z-index:2"].join(";")}}}let o=Math.round(t.height*.04),i=Math.round(t.height*.019);return{copyStyle:["position:absolute",`top:${Math.round(t.height*.084)}px`,"left:50%",`width:${Math.round(t.width*.88)}px`,"transform:translateX(-50%)","text-align:center","z-index:3"].join(";"),titleStyle:`font-size:${o}px;line-height:0.92;`,subStyle:`font-size:${i}px;line-height:1.34;max-width:${Math.round(t.width*.6)}px;margin:0 auto;`,eyebrowStyle:"align-items:center;",deviceStyle:(n,s,r)=>{let a=t.name==="ipad-13"?.54:.64,c=Math.round(t.width*a*(s.scale??n.scale)),p=Math.round(t.height*(n.offsetY+(s.offsetY??0))),l=s.pose||n.pose,d=Y(n.shadow,r);return["position:absolute",`top:${Math.round(t.height*(t.name==="ipad-13"?.25:.28))+p}px`,"left:50%",`width:${c}px`,"transform-origin:center top",`transform:${G("translateX(-50%)",R(l))}`,`filter:${j(d)}`,"z-index:2"].join(";")}}}function de({canvas:e,compose:t,slide:o,imageDataUrl:i}){let n=o.background??t.background,s=ue(t.text.preset,e),r=t.text.preset!=="none"&&!!(o.eyebrow||o.headline||o.subheadline),a=s.deviceStyle(t.frame,o,n),c=o.headline?`<div style="font-weight:780;white-space:pre-line;text-wrap:balance;${s.titleStyle}">${T(o.headline)}</div>`:"",p=o.subheadline?`<div style="margin-top:${Math.round(e.height*.018)}px;color:${t.text.subColor};white-space:pre-line;text-wrap:balance;${s.subStyle}">${T(o.subheadline)}</div>`:"",l=o.eyebrow?`<div style="display:flex;${s.eyebrowStyle}margin-bottom:${Math.round(e.height*.016)}px;"><div style="font-size:${Math.round(e.height*.014)}px;font-weight:700;letter-spacing:0.18em;text-transform:uppercase;color:${t.text.eyebrowColor};">${T(o.eyebrow)}</div></div>`:"";return`<!doctype html>
|
|
3
3
|
<html>
|
|
4
4
|
<head>
|
|
5
5
|
<meta charset="utf-8" />
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
2
|
-
import{d as I}from"./chunk-
|
|
1
|
+
/*! sootsim v0.1.172 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
+
import{d as I}from"./chunk-UJCUPX54.js";import"./chunk-7Q6G6GQQ.js";import"./chunk-SYAAEME6.js";import"./chunk-B23C5UYK.js";import{execSync as E}from"node:child_process";import{mkdirSync as L,mkdtempSync as W,rmSync as q,writeFileSync as z}from"node:fs";import{tmpdir as H}from"node:os";import{dirname as J,isAbsolute as K,join as A,resolve as V}from"node:path";import{chromium as Y}from"playwright-core";import{execSync as j}from"node:child_process";function N(o){let e=o;if(e&&typeof e.process=="function")try{let t=e.process();if(t&&typeof t.pid=="number"&&t.pid>0)return t.pid}catch{}if(e&&typeof e.browser=="function")try{let t=e.browser();if(t)return N(t)}catch{}return null}function x(o){let e=[];try{e=j(`pgrep -P ${o} || true`).toString().split(`
|
|
3
3
|
`).filter(Boolean)}catch{}for(let t of e)x(Number(t));try{process.kill(o,"SIGKILL")}catch{}}var C=new Set,M=!1;function B(){if(M)return;M=!0;let o=()=>{for(let e of C)x(e)};process.on("SIGTERM",()=>{o(),process.exit(0)}),process.on("SIGINT",()=>{o(),process.exit(0)}),process.on("exit",o)}async function U(o){let e=await o(),t=N(e),n=new Set;t!=null&&(n.add(t),C.add(t),B());let i=e;return typeof i.on=="function"&&i.on("disconnected",()=>{for(let c of n)C.delete(c)}),{browser:e,reapNow:()=>{for(let c of n)x(c),C.delete(c);n.clear()}}}var Q=`
|
|
4
4
|
sootsim screenshots capture \u2014 headlessly capture + upload App Store slides
|
|
5
5
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
2
|
-
import{b as oe,c as H,d as ae,e as F,f as ce,h as de,i as T,j as le,k as ue,l as pe,p as me,s as C,t as he,u as fe,v as ge,w as Se}from"./chunk-
|
|
1
|
+
/*! sootsim v0.1.172 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
+
import{b as oe,c as H,d as ae,e as F,f as ce,h as de,i as T,j as le,k as ue,l as pe,p as me,s as C,t as he,u as fe,v as ge,w as Se}from"./chunk-N7PCRU6E.js";import"./chunk-TM5K4CCK.js";import{g as ne}from"./chunk-6GI3NZFP.js";import{f as P}from"./chunk-TLX7JDQK.js";import"./chunk-AYNXI62J.js";import{a as se}from"./chunk-RD6VD4EB.js";import"./chunk-UJCUPX54.js";import"./chunk-TJGRGSYC.js";import"./chunk-IEI42LDX.js";import"./chunk-RCN3YTNR.js";import{d as re}from"./chunk-46UXO5SQ.js";import{a as Z,b as Q}from"./chunk-4J3T7PQJ.js";import"./chunk-7Q6G6GQQ.js";import{a as te,b as ie}from"./chunk-4BIG3MC7.js";import"./chunk-LGXEPAHS.js";import{C as E,D as $,E as J,F as M,H as K,I as V,K as G,M as q,N as z,O as X,P as U,Q as Y,y as N,z as j}from"./chunk-SYAAEME6.js";import{a as ee}from"./chunk-EJ76TW66.js";import"./chunk-B23C5UYK.js";import{spawn as Qe}from"child_process";import k from"fs";import{createServer as et}from"http";import S from"path";import{WebSocket as h,WebSocketServer as tt}from"ws";import ye from"node:fs";import R from"node:path";var _=1;function _e(){return[Number(process.env.VITE_PORT_WEB||process.env.PORT||3e3),Number(process.env.VITE_PORT_ZERO||7849),Number(process.env.VITE_PORT_POSTGRES||7432),Number(process.env.VITE_PORT_R2||9500)].filter(o=>Number.isFinite(o)&&o>0)}var O=class{subscriptions=new Map;sessionsBySocket=new Map;allSockets=new Set;pendingPromptEchoes=new Map;pendingTurns=new Map;opts;constructor(e={}){this.opts=e}registerSocket(e){this.allSockets.add(e)}unregisterSocket(e){let t=this.sessionsBySocket.get(e);if(t){for(let i of t)this.decrementSubscription(i);this.sessionsBySocket.delete(e)}this.allSockets.delete(e)}async handleMessage(e,t){let i=t?.type;if(typeof i!="string"||!i.startsWith("agent:"))return!1;let s=t.id;try{let n=await this.dispatch(e,i,t);this.respond(e,s,n)}catch(n){n instanceof C?this.respondError(e,s,n.message,n.code):this.respondError(e,s,n instanceof Error?n.message:String(n))}return!0}async seedOnBoot(){try{await pe()}catch(e){process.stderr.write(`[sootsim-agent] seedFromDemoAppRegistry failed: ${e instanceof Error?e.message:String(e)}
|
|
3
3
|
`)}}close(){for(let e of this.subscriptions.values())try{e.unsubscribe()}catch{}this.subscriptions.clear(),this.sessionsBySocket.clear(),this.allSockets.clear()}async dispatch(e,t,i){switch(t){case"agent:list-projects":return F();case"agent:upsert-project":return H(i.input??{});case"agent:delete-project":return de(String(i.projectId)),{ok:!0};case"agent:auto-attach-for-url":return this.autoAttachForUrl(i.input??{});case"agent:list-sessions":return le(i.projectId?String(i.projectId):void 0);case"agent:start-session":return this.doStartSession(i.input??{});case"agent:send-prompt":{let n=String(i.sessionId),a=T(n);if(!a)throw new C("NO_SESSION",`no session: ${n}`);let r=this.normalizePromptEnvelope(i);return await fe(n,r),this.notePromptAccepted(n,r,a.status==="working")}case"agent:end-session":this.dropSessionFanout(String(i.sessionId)),await ge(String(i.sessionId));let s=T(String(i.sessionId));return s&&this.broadcastSessionStatus(s),{ok:!0};case"agent:get-transcript":return this.getTranscript(String(i.sessionId));case"agent:get-paths":return this.getPaths();case"agent:subscribe-events":return this.subscribeSocket(e,String(i.sessionId));case"agent:unsubscribe-events":return this.unsubscribeSocket(e,String(i.sessionId));default:throw new C("UNKNOWN_AGENT_MSG",`unknown agent message: ${t}`)}}async doStartSession(e){if(!ae(e.projectId))throw new C("NO_PROJECT",`no project: ${e.projectId}`);let i=await he(e);return this.broadcastSessionStatus(i.session),i}async autoAttachForUrl(e){let t=e.bundleUrl??"",i=(()=>{try{return new URL(t).port||null}catch{return null}})();if(!i)return{project:null};let s=this.opts.getExcludePorts?.()??_e(),a=(await P({excludePorts:s})).find(d=>String(d.port)===i);if(!a||!a.cwd)return{project:null};let r=F().find(d=>d.cwd===a.cwd)??null,c=Array.from(new Set([...r?.knownBundleUrls??[],a.bundleUrl,t]));return{project:H({cwd:a.cwd,name:a.projectName??R.basename(a.cwd),preferredProvider:e.provider??r?.preferredProvider,sourceRoots:r?.sourceRoots??[a.cwd],knownBundleUrls:c,framework:r?.framework??Oe(a.framework),bundleId:a.bundleId??r?.bundleId})}}getTranscript(e){let t=me(e);return ye.existsSync(t)?ye.readFileSync(t,"utf8"):{error:"transcript not found",code:"NO_TRANSCRIPT"}}getPaths(){let e=oe();return{userDataDir:e,storeFile:R.join(e,"attached-projects.json"),sessionsDir:R.join(e,"sessions"),transcriptsDir:R.join(e,"transcripts")}}subscribeSocket(e,t){let i=this.sessionsBySocket.get(e);if(i||(i=new Set,this.sessionsBySocket.set(e,i)),i.has(t))return{ok:!0,refCount:this.subscriptions.get(t)?.refCount??1};i.add(t);let s=this.subscriptions.get(t);if(s)return s.refCount++,{ok:!0,refCount:s.refCount};let n=Se(t,a=>{let r=this.coalescePromptEcho(t,a);if(r&&(this.applySessionEvent(t,r),this.fanOutEvent(t,r)),a.type==="turn-completed"){let c=T(t);if(c)try{ce(c.projectId,{usd:a.costUsd,ts:a.ts})}catch(l){process.stderr.write(`[sootsim-agent] recordTurnTelemetry failed: ${l instanceof Error?l.message:String(l)}
|
|
4
4
|
`)}}});return this.subscriptions.set(t,{unsubscribe:n,refCount:1}),{ok:!0,refCount:1}}unsubscribeSocket(e,t){let i=this.sessionsBySocket.get(e);return!i||!i.has(t)?{ok:!0,refCount:0}:(i.delete(t),this.decrementSubscription(t))}decrementSubscription(e){let t=this.subscriptions.get(e);if(!t)return{ok:!0,refCount:0};if(t.refCount--,t.refCount<=0){try{t.unsubscribe()}catch{}return this.subscriptions.delete(e),{ok:!0,refCount:0}}return{ok:!0,refCount:t.refCount}}dropSessionFanout(e){let t=this.subscriptions.get(e);if(t){try{t.unsubscribe()}catch{}this.subscriptions.delete(e)}for(let i of this.sessionsBySocket.values())i.delete(e);this.clearPromptTracking(e)}normalizePromptEnvelope(e){if(e?.prompt&&typeof e.prompt=="object"){let t=e.prompt;return{text:String(t.text??""),...typeof t.displayText=="string"?{displayText:t.displayText}:{},...typeof t.inspectSummary=="string"?{inspectSummary:t.inspectSummary}:{},...typeof t.inspectTrace=="string"?{inspectTrace:t.inspectTrace}:{}}}return{text:String(e?.text??""),...typeof e?.displayText=="string"?{displayText:e.displayText}:{},...typeof e?.inspectSummary=="string"?{inspectSummary:e.inspectSummary}:{},...typeof e?.inspectTrace=="string"?{inspectTrace:e.inspectTrace}:{}}}notePromptAccepted(e,t,i){let s=Date.now(),n=this.pendingPromptEchoes.get(e)??[];n.push({sentAt:s}),this.pendingPromptEchoes.set(e,n);let a=Math.max(this.pendingTurns.get(e)??0,i?1:0)+1;this.pendingTurns.set(e,a);let r=t.displayText??t.text;return this.patchSession(e,{lastPrompt:r,status:"working",needsAttention:!1}),this.fanOutEvent(e,{type:"prompt-received",text:r,...t.inspectSummary?{inspectSummary:t.inspectSummary}:{},...t.inspectTrace?{inspectTrace:t.inspectTrace}:{},ts:s}),{ok:!0,queued:a>1,pendingTurns:a,queueDepth:Math.max(0,a-1)}}applySessionEvent(e,t){switch(t.type){case"prompt-received":case"turn-started":this.patchSession(e,{status:"working",needsAttention:!1});return;case"turn-completed":{let i=this.consumeSettledTurn(e);this.patchSession(e,{status:i>0?"working":"idle",needsAttention:!1,lastTurnFiles:t.filesTouched,currentlyEditing:void 0});return}case"approval-needed":this.patchSession(e,{status:"needs-attention",needsAttention:!0});return;case"error":{let i=this.consumeSettledTurn(e);this.patchSession(e,{status:i>0?"working":"needs-attention",needsAttention:i<=0,currentlyEditing:void 0});return}case"exited":this.clearPromptTracking(e),this.patchSession(e,{status:"ended",needsAttention:!1,wrapperPid:void 0,currentlyEditing:void 0});return;case"ready":case"turn-reasoning":case"turn-message":case"turn-plan":case"tool-call":case"file-edited":case"file-diff-delta":return}}patchSession(e,t){ue(e,t);let i=T(e);i&&this.broadcastSessionStatus(i)}coalescePromptEcho(e,t){if(t.type!=="prompt-received")return t;let i=this.pendingPromptEchoes.get(e);if(!i||i.length===0)return t;for(;i.length>0&&Date.now()-i[0].sentAt>15e3;)i.shift();return i.length===0?(this.pendingPromptEchoes.delete(e),t):(i.shift(),i.length===0?this.pendingPromptEchoes.delete(e):this.pendingPromptEchoes.set(e,i),null)}consumeSettledTurn(e){let t=Math.max(0,(this.pendingTurns.get(e)??1)-1);return t>0?this.pendingTurns.set(e,t):this.pendingTurns.delete(e),t}clearPromptTracking(e){this.pendingPromptEchoes.delete(e),this.pendingTurns.delete(e)}fanOutEvent(e,t){let i=JSON.stringify({type:"agent:event",sessionId:e,event:t});for(let[s,n]of this.sessionsBySocket)if(n.has(e)&&s.readyState===_)try{s.send(i)}catch{}}broadcastSessionStatus(e){let t=JSON.stringify({type:"agent:session-status",session:e});for(let i of this.allSockets)if(i.readyState===_)try{i.send(t)}catch{}}respond(e,t,i){if(e.readyState===_)try{e.send(JSON.stringify({id:t,result:i}))}catch{}}respondError(e,t,i,s){if(e.readyState===_)try{e.send(JSON.stringify({id:t,error:i,...s?{code:s}:{}}))}catch{}}};function Oe(o){return o==="expo"?"expo":o==="one"||o==="vxrn"?"one":"unknown"}import Be from"http";import De from"https";var W="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",xe=[{hostSuffix:"uniswap.org",headers:{origin:"https://app.uniswap.org",referer:"https://app.uniswap.org/"},suppressBrowserUserAgent:!0}];function Le(o){let e=o.toLowerCase();for(let t of xe)if(e===t.hostSuffix||e.endsWith(`.${t.hostSuffix}`))return t}function ve(o){let e=Le(o.hostname);return{"accept-encoding":"identity",...e?.suppressBrowserUserAgent?{}:{"user-agent":W},...e?.headers}}var Ne=new Set(["host","origin","referer","user-agent","accept-encoding","cookie","connection","keep-alive","transfer-encoding","upgrade","content-length","sec-fetch-site","sec-fetch-mode","sec-fetch-dest","sec-ch-ua","sec-ch-ua-mobile","sec-ch-ua-platform"]),Me={"access-control-allow-origin":"*","access-control-allow-methods":"GET,POST,PUT,DELETE,PATCH,OPTIONS","access-control-allow-headers":"*","access-control-expose-headers":"*","access-control-max-age":"3600"},Ue=new Set(["host","origin","referer","sec-fetch-site","sec-fetch-mode","sec-fetch-dest"]);function I(o){for(let[e,t]of Object.entries(Me))o.setHeader(e,t)}function He(o,e){let t=[],i=e;i?.code&&t.push(i.code),i?.message&&t.push(i.message),i?.cause?.code&&t.push(i.cause.code),i?.cause?.message&&t.push(i.cause.message);let n=[...new Set(t.filter(Boolean))].join(" | ")||String(e);return o.includes("stored-in-.env.local")?`${n} | upstream url still contains placeholder env values`:n}function Fe(o){let t=(Array.isArray(o)?o[0]:o)?.split(";",1)[0]?.trim().toLowerCase();return t?t.startsWith("text/")||t==="application/json"||t.endsWith("+json")||t==="application/x-www-form-urlencoded"||t==="application/xml"||t.endsWith("+xml")||t==="application/javascript"||t==="application/graphql":!1}function We(o,e){let t={};for(let[i,s]of Object.entries(o))s&&(Ne.has(i.toLowerCase())||(t[i]=Array.isArray(s)?s.join(", "):s));return Object.assign(t,e?ve(e):{"user-agent":W}),t}function je(o,e){let t={};for(let[i,s]of Object.entries(o))s&&(Ue.has(i.toLowerCase())||(t[i]=s));return t.host=e.host,t.origin=e.origin,t.referer=`${e.origin}/`,t}function be(o){return o?.startsWith("/__fetch-proxy?")||o?.startsWith("/__proxy?")||!1}function we(o){return o?!!(o.startsWith("/__app-api?")||o.startsWith("/__app-api/")):!1}async function Ae(o,e){if(o.method==="OPTIONS"){I(e),e.writeHead(204),e.end();return}let i=new URLSearchParams((o.url||"").split("?")[1]||"").get("url");if(!i){I(e),e.writeHead(400,{"Content-Type":"text/plain"}),e.end("missing url param");return}let s;try{s=new URL(i)}catch{I(e),e.writeHead(400,{"Content-Type":"text/plain"}),e.end("invalid url param");return}let n=We(o.headers,s),a;if(o.method!=="GET"&&o.method!=="HEAD"){let d=[];for await(let u of o)d.push(Buffer.isBuffer(u)?u:Buffer.from(u));if(d.length>0){let u=Buffer.concat(d);a=Fe(o.headers["content-type"])?u.toString("utf8"):u}}let r;try{r=await fetch(s.href,{method:o.method,headers:n,body:a,redirect:"follow"})}catch(d){I(e),e.writeHead(502,{"Content-Type":"text/plain"}),e.end(`fetch proxy error: ${He(s.href,d)}`);return}r.headers.forEach((d,u)=>{let p=u.toLowerCase();p==="content-encoding"||p==="transfer-encoding"||p==="content-length"||p==="set-cookie"||p.startsWith("access-control-")||e.setHeader(u,d)}),I(e);let c=r.headers.getSetCookie?.()??[];c.length>0&&e.setHeader("x-sootsim-set-cookie",c.join(", ")),e.statusCode=r.status;let l=Buffer.from(await r.arrayBuffer());e.end(l)}function ke(o,e){let t=o.url||"",i="",s="";if(t.startsWith("/__app-api?")){let l=new URL(t,"http://sootsim.local");i=l.searchParams.get("path")||"",s=l.searchParams.get("origin")?.trim()||""}else if(t.startsWith("/__app-api/"))i=t.slice(10);else return!1;if(!s)return e.writeHead(400,{"Content-Type":"text/plain"}),e.end("app-api: missing origin query param"),!0;if(o.method==="OPTIONS")return e.writeHead(204,{"Access-Control-Allow-Origin":o.headers.origin||"*","Access-Control-Allow-Methods":"GET,POST,PUT,PATCH,DELETE,OPTIONS","Access-Control-Allow-Headers":o.headers["access-control-request-headers"]||"*","Access-Control-Allow-Credentials":"true","Access-Control-Max-Age":"86400"}),e.end(),!0;let n;try{n=new URL(i,s)}catch{return e.writeHead(400,{"Content-Type":"text/plain"}),e.end("app-api: invalid origin or path"),!0}let a=n.protocol==="https:"?De:Be,r=je(o.headers,n),c=a.request({hostname:n.hostname,port:n.port||(n.protocol==="https:"?443:80),path:n.pathname+n.search,method:o.method,headers:r},l=>{let d=Object.keys(l.headers).filter(u=>{let p=u.toLowerCase();return!p.startsWith("access-control-")&&p!=="set-cookie"}).join(", ");e.writeHead(l.statusCode??502,{...l.headers,"access-control-allow-origin":o.headers.origin||"*","access-control-allow-credentials":"true","access-control-expose-headers":d}),l.pipe(e)});return c.on("error",l=>{e.statusCode=502,e.end(`app proxy error: ${l.message}`)}),o.pipe(c),!0}import{WebSocket as A,WebSocketServer as $e}from"ws";var Je="/__websocket-proxy",Ke=new Set(["host","connection","upgrade","transfer-encoding","content-length","sec-websocket-accept","sec-websocket-extensions","sec-websocket-key","sec-websocket-protocol","sec-websocket-version"]);function w(o,e,t){try{o.write(`HTTP/1.1 ${e} ${t}\r
|
|
5
5
|
Connection: close\r
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
2
|
-
import{b as M,c as $}from"./chunk-
|
|
1
|
+
/*! sootsim v0.1.172 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
+
import{b as M,c as $}from"./chunk-6HZQNXH6.js";import{a as j,b as D}from"./chunk-42CB2PAE.js";import{a as P}from"./chunk-4J3T7PQJ.js";import"./chunk-7Q6G6GQQ.js";import"./chunk-DAIJBIM3.js";import"./chunk-PM4SIKKG.js";import"./chunk-62W3D6EE.js";import"./chunk-CMH3BW27.js";import"./chunk-MRVSPAIH.js";import"./chunk-2NGGBDGA.js";import"./chunk-4BIG3MC7.js";import"./chunk-LGXEPAHS.js";import{I as b,K as v}from"./chunk-SYAAEME6.js";import"./chunk-EJ76TW66.js";import"./chunk-YUOZCM27.js";import"./chunk-Q5L2HSIK.js";import"./chunk-B23C5UYK.js";import{execSync as H}from"child_process";import{existsSync as g,readFileSync as I,writeFileSync as w}from"fs";import{join as K,relative as h,resolve as m}from"path";import{existsSync as c,readFileSync as d,readdirSync as W,statSync as A}from"fs";import{basename as N,dirname as V,join as i}from"path";function O(e){let o=e;for(;;){if(c(i(o,"turbo.json"))||c(i(o,"nx.json"))||c(i(o,"lerna.json"))||c(i(o,"pnpm-workspace.yaml")))return o;let n=i(o,"package.json");if(c(n))try{if(JSON.parse(d(n,"utf8")).workspaces)return o}catch{}let t=V(o);if(t===o)break;o=t}return e}function J(e){return c(i(e,"bun.lock"))||c(i(e,"bun.lockb"))?"bun":c(i(e,"pnpm-lock.yaml"))?"pnpm":c(i(e,"yarn.lock"))?"yarn":"npm"}function B(e){if(c(i(e,"turbo.json")))return"turbo";if(c(i(e,"nx.json")))return"nx";if(c(i(e,"pnpm-workspace.yaml")))return"pnpm";let o=i(e,"package.json");if(c(o))try{if(JSON.parse(d(o,"utf8")).workspaces)return"npm-workspaces"}catch{}return"single"}function G(e){return e.one?"one":e.expo?"expo":e["react-native"]?"bare":"unknown"}function S(e){let o=i(e,"package.json");if(!c(o))return null;let n;try{n=JSON.parse(d(o,"utf8"))}catch{return null}let t={...n.dependencies,...n.devDependencies},r=G(t);return r==="unknown"?null:{dir:e,name:n.name||N(e),framework:r,hasViteConfig:c(i(e,"vite.config.ts"))||c(i(e,"vite.config.js")),hasMetroConfig:c(i(e,"metro.config.js"))||c(i(e,"metro.config.ts")),hasSootsimDependency:!!t.sootsim,devCommand:n.scripts?.dev||null}}function U(e){let o=[],n=i(e,"pnpm-workspace.yaml");if(c(n)){let s=d(n,"utf8").match(/packages:\s*\n((?:\s+-\s+.+\n?)+)/);if(s){let p=s[1].split(`
|
|
3
3
|
`).filter(Boolean);for(let u of p){let a=u.replace(/^\s*-\s*['"]?/,"").replace(/['"]?\s*$/,"");a&&o.push(...C(e,a))}}return o}let t=i(e,"package.json");if(c(t))try{let r=JSON.parse(d(t,"utf8")),s=Array.isArray(r.workspaces)?r.workspaces:r.workspaces?.packages||[];for(let p of s)o.push(...C(e,p))}catch{}return o}function C(e,o){let n=o.replace(/\/\*\*?$/,"").replace(/\*$/,""),t=i(e,n);if(!c(t))return[];try{return W(t).map(s=>i(t,s)).filter(s=>{try{return A(s).isDirectory()&&c(i(s,"package.json"))}catch{return!1}})}catch{return[]}}function _(e){let o=B(e),n=J(e);if(o==="single"){let p=S(e);return{root:e,type:o,packageManager:n,apps:p?[p]:[]}}let t=U(e),r=[],s=S(e);s&&r.push(s);for(let p of t){if(p===e)continue;let u=S(p);u&&r.push(u)}return{root:e,type:o,packageManager:n,apps:r}}function R(e){switch(e){case"bun":return"bun add -d sootsim";case"pnpm":return"pnpm add -D sootsim";case"yarn":return"yarn add -D sootsim";case"npm":return"npm install -D sootsim"}}async function xe(e){(e.includes("--help")||e.includes("-h"))&&(console.log(`
|
|
4
4
|
sootsim setup \u2014 set up this machine and, optionally, this repo
|
|
5
5
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
2
|
-
import"./chunk-
|
|
1
|
+
/*! sootsim v0.1.172 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
+
import"./chunk-B23C5UYK.js";import*as r from"fs";import*as S from"os";import*as i from"path";import{fileURLToPath as g}from"url";function b(){try{let n=g(import.meta.resolve("sootsim/package.json"));return i.join(i.dirname(n),"skills")}catch{let n=i.dirname(g(import.meta.url));return i.resolve(n,"../../skills")}}var c=b(),$=new Set(["all","codex","claude"]);function k(){console.log(`sootsim skill
|
|
3
3
|
|
|
4
4
|
install and inspect bundled SootSim agent skills.
|
|
5
5
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
2
|
-
import{c as S,e as y,g as v,h as b,i as u}from"./chunk-
|
|
1
|
+
/*! sootsim v0.1.172 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
+
import{c as S,e as y,g as v,h as b,i as u}from"./chunk-RCN3YTNR.js";import"./chunk-4BIG3MC7.js";import"./chunk-LGXEPAHS.js";import"./chunk-SYAAEME6.js";import"./chunk-B23C5UYK.js";import{mkdirSync as $,writeFileSync as x}from"node:fs";import{dirname as k,isAbsolute as B,join as C,resolve as E}from"node:path";var z=`
|
|
3
3
|
sootsim slides \u2014 compose App Store screenshots in the live sim
|
|
4
4
|
|
|
5
5
|
usage:
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
2
|
-
import"./chunk-
|
|
1
|
+
/*! sootsim v0.1.172 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
+
import"./chunk-B23C5UYK.js";import{spawn as m}from"child_process";import{existsSync as h,readdirSync as w}from"fs";import{resolve as u,dirname as x}from"path";import{fileURLToPath as y}from"url";var d=x(y(import.meta.resolve("sootsim-engine/package.json")));async function v(t,r){let l=t.includes("--flows"),f=t.includes("--detox"),c=t.includes("--parallel"),i=t.includes("--watch"),a=t.find((e,o)=>t[o-1]==="--reporter")||"console";if((t.includes("--help")||t.includes("-h"))&&(console.log(`
|
|
3
3
|
sootsim test \u2014 run tests against sootsim
|
|
4
4
|
|
|
5
5
|
usage:
|
|
@@ -26,6 +26,6 @@ examples:
|
|
|
26
26
|
notes:
|
|
27
27
|
playwright is best for smoke and package-local debugging
|
|
28
28
|
--detox is the preferred parity lane for behavior that should match real RN
|
|
29
|
-
`),process.exit(0)),l)await b(t,r,c,a);else if(f){let{runDetox:e}=await import("./detox-
|
|
29
|
+
`),process.exit(0)),l)await b(t,r,c,a);else if(f){let{runDetox:e}=await import("./detox-CWAWL7PV.js");await e(t.filter(o=>o!=="--detox"),r)}else await g(t,r)}async function g(t,r){let l=["playwright","test"],f=t.find((e,o)=>t[o-1]==="-t")||t.find((e,o)=>t[o-1]==="--testNamePattern")||t.find((e,o)=>t[o-1]==="--grep");f&&l.push("-g",f),t.includes("--watch")&&l.push("--ui");let c=new Set(["--flows","--detox","--parallel","--watch","--reporter","-t","--testNamePattern","--grep"]);for(let e=0;e<t.length;e++){if(c.has(t[e])){(t[e]==="-t"||t[e]==="--testNamePattern"||t[e]==="--grep"||t[e]==="--reporter")&&e++;continue}l.push(t[e])}console.log(` running: npx ${l.join(" ")}`);let i=m("npx",l,{cwd:d,stdio:"inherit",env:{...process.env}}),a=await new Promise(e=>{i.on("exit",o=>e(o||0))});process.exit(a)}async function b(t,r,l,f){let c=["flows","test/flows","e2e/flows",".maestro","maestro"],i=[];for(let o of c){let s=u(d,o);if(h(s)){let p=w(s).filter(n=>n.endsWith(".yaml")||n.endsWith(".yml"));for(let n of p)i.push(u(s,n))}}for(let o of c){let s=u(process.cwd(),o);if(!s.startsWith(d)&&h(s)){let p=w(s).filter(n=>n.endsWith(".yaml")||n.endsWith(".yml"));for(let n of p)i.push(u(s,n))}}i.length===0&&(console.log(" no flow files found in flows/, test/flows/, or e2e/flows/"),process.exit(0)),console.log(` found ${i.length} flow(s)`);let a=0,e=0;for(let o of i)try{let{runFlowPlayback:s}=await import("./flow-MEQ4WJ2A.js"),p=r.port?`http://localhost:${r.port}`:"http://localhost:5173";if(await s([o,"--url",p,"--new"])!==0){e++;continue}a++}catch{e++}console.log(`
|
|
30
30
|
results: ${a} passed, ${e} failed (${i.length} total)
|
|
31
31
|
`),process.exit(e>0?1:0)}export{v as runTest};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
2
|
-
import{a as $}from"./chunk-
|
|
1
|
+
/*! sootsim v0.1.172 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
+
import{a as $}from"./chunk-LHCRB57U.js";import{c as p,e as h,i as R}from"./chunk-RCN3YTNR.js";import"./chunk-4BIG3MC7.js";import"./chunk-LGXEPAHS.js";import"./chunk-SYAAEME6.js";import"./chunk-B23C5UYK.js";var b=12e3;async function j(e,o){if((e.includes("--help")||e.includes("-h"))&&(console.log(`
|
|
3
3
|
sootsim three-mode \u2014 toggle the 3d device stage
|
|
4
4
|
|
|
5
5
|
usage:
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
2
|
-
import{c as m,e as d,h as s}from"./chunk-
|
|
1
|
+
/*! sootsim v0.1.172 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
+
import{c as m,e as d,h as s}from"./chunk-RCN3YTNR.js";import"./chunk-4BIG3MC7.js";import"./chunk-LGXEPAHS.js";import"./chunk-SYAAEME6.js";import"./chunk-B23C5UYK.js";import{writeFileSync as g}from"fs";function u(){console.log(`
|
|
3
3
|
sootsim timeline \u2014 control the semantic event timeline
|
|
4
4
|
|
|
5
5
|
usage:
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
2
|
-
import{a as s}from"./chunk-
|
|
1
|
+
/*! sootsim v0.1.172 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
+
import{a as s}from"./chunk-KHDX36G5.js";import"./chunk-6GI3NZFP.js";import"./chunk-RCN3YTNR.js";import"./chunk-4BIG3MC7.js";import"./chunk-LGXEPAHS.js";import{G as i}from"./chunk-SYAAEME6.js";import{a as e}from"./chunk-EJ76TW66.js";import"./chunk-B23C5UYK.js";import{spawn as r}from"node:child_process";var a="https://registry.npmjs.org/sootsim/latest";async function h(o){let n=o.indexOf("--channel"),t=n>=0&&o[n+1]?o[n+1]:void 0;console.log(`sootsim upgrade
|
|
3
3
|
`),await c(),console.log(`
|
|
4
4
|
runtime:`),await s(["install",...t?["--channel",t]:[]],{})}async function c(){let o=e(),n=await u();if(!n){console.log(` cli: v${o} \u2014 couldn't reach the npm registry, skipped`);return}if(i(n,o)<=0){console.log(` cli: v${o} (latest)`);return}console.log(` cli: v${o} \u2192 v${n} \u2014 installing globally\u2026`),await m(n)?console.log(` cli: installed v${n} \u2014 restart any running \`sootsim\` process to pick it up`):(console.log(" cli: automatic install failed \u2014 upgrade it yourself with:"),console.log(" npm install -g sootsim@latest"))}async function u(){try{let o=await fetch(a,{headers:{accept:"application/json"},signal:AbortSignal.timeout(8e3)});if(!o.ok)return null;let n=await o.json();return typeof n.version=="string"&&n.version?n.version:null}catch{return null}}function m(o){return new Promise(n=>{let t=r("npm",["install","-g",`sootsim@${o}`],{stdio:"inherit",shell:!0});t.on("error",()=>n(!1)),t.on("exit",l=>n(l===0))})}export{h as runUpgrade};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/*! sootsim v0.1.172 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
+
import{a,b,c}from"./chunk-RD6VD4EB.js";import"./chunk-UJCUPX54.js";import"./chunk-TJGRGSYC.js";import"./chunk-IEI42LDX.js";import"./chunk-RCN3YTNR.js";import"./chunk-46UXO5SQ.js";import"./chunk-4J3T7PQJ.js";import"./chunk-7Q6G6GQQ.js";import"./chunk-4BIG3MC7.js";import"./chunk-LGXEPAHS.js";import"./chunk-SYAAEME6.js";import"./chunk-B23C5UYK.js";export{a as resolveDefaultUploadOrigin,b as resolvePublicPreviewOrigin,c as runUpload};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
2
|
-
import{b as s,d as l,h as r}from"./chunk-
|
|
1
|
+
/*! sootsim v0.1.172 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
+
import{b as s,d as l,h as r}from"./chunk-6GI3NZFP.js";import{a as i}from"./chunk-PM4SIKKG.js";import"./chunk-SYAAEME6.js";import{a as t}from"./chunk-EJ76TW66.js";import"./chunk-B23C5UYK.js";async function d(u){let{IS_BETA:a,BETA_LABEL:m}=await import("./beta-F3BMUABH.js"),c=a?` \xB7 ${m}`:"";console.log(`sootsim v${t()}${c}`);let o=i(),e=l();o.isDevBridge?(console.log(o.primary),o.installedRuntime&&console.log(`${o.installedRuntime} \xB7 ${e}`)):o.primary==="runtime not installed"?console.log("runtime not installed \u2014 run `sootsim runtime install`"):console.log(`${o.primary} \xB7 ${e}`);let n=await r({channel:e});n.outdated&&n.latest&&console.log(`
|
|
3
3
|
\u2191 runtime v${n.latest} available \u2014 run \`sootsim upgrade\``),console.log(`
|
|
4
4
|
what's new: ${s}`)}export{d as runVersion};
|