sootsim 0.1.40 → 0.1.42

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.
Files changed (146) hide show
  1. package/README.md +15 -15
  2. package/dist-cli/bin.js +4 -4
  3. package/dist-cli/chunks/{agent-3F5PO4NL.js → agent-4BBZUWD2.js} +2 -2
  4. package/dist-cli/chunks/{agent-wrapper-LVUUZRWL.js → agent-wrapper-TA5GG3MV.js} +2 -2
  5. package/dist-cli/chunks/{assert-4WMVS3WU.js → assert-7GHUOGLI.js} +2 -2
  6. package/dist-cli/chunks/auto-bootstrap-7BJDOYUU.js +2 -0
  7. package/dist-cli/chunks/beta-2LIEPFEJ.js +2 -0
  8. package/dist-cli/chunks/{chunk-QUULF2II.js → chunk-2GKZS2ZZ.js} +2 -2
  9. package/dist-cli/chunks/chunk-2XCCV7J3.js +2 -0
  10. package/dist-cli/chunks/{chunk-CCZHRBXJ.js → chunk-3PN6HIAM.js} +1 -1
  11. package/dist-cli/chunks/{chunk-W2XRHDQQ.js → chunk-4574AJAK.js} +2 -2
  12. package/dist-cli/chunks/chunk-543BSGQG.js +4 -0
  13. package/dist-cli/chunks/{chunk-FNIL6BYS.js → chunk-5EBERDK7.js} +1 -1
  14. package/dist-cli/chunks/{chunk-KGVH3YAG.js → chunk-5PZPKGUJ.js} +2 -2
  15. package/dist-cli/chunks/{chunk-QMBYRPRK.js → chunk-5TRJK5SO.js} +1 -1
  16. package/dist-cli/chunks/chunk-64AKKWVB.js +1 -0
  17. package/dist-cli/chunks/{chunk-YKEBL6GE.js → chunk-6MYXKMLG.js} +1 -1
  18. package/dist-cli/chunks/{chunk-WZE6T3GT.js → chunk-6R3CVNXC.js} +1 -1
  19. package/dist-cli/chunks/chunk-76WF7UIG.js +17 -0
  20. package/dist-cli/chunks/chunk-A2R42ONP.js +27 -0
  21. package/dist-cli/chunks/{chunk-LXR5EI74.js → chunk-BBRAYGDX.js} +2 -2
  22. package/dist-cli/chunks/{chunk-MLCBIX7O.js → chunk-BVCZIJ2X.js} +2 -2
  23. package/dist-cli/chunks/chunk-BZFKV7CT.js +56 -0
  24. package/dist-cli/chunks/{chunk-YJMXGTP4.js → chunk-CZZDYQBA.js} +1 -1
  25. package/dist-cli/chunks/{chunk-Y66CDFAT.js → chunk-D5TKAFJ3.js} +1 -1
  26. package/dist-cli/chunks/{chunk-OV5TY7M3.js → chunk-DNSKIJSB.js} +2 -2
  27. package/dist-cli/chunks/{chunk-EOWN4ZFJ.js → chunk-DUVJOJTP.js} +2 -2
  28. package/dist-cli/chunks/{chunk-6XI4VHIL.js → chunk-DXQKMDX2.js} +2 -2
  29. package/dist-cli/chunks/{chunk-Z3I2I4IO.js → chunk-EDXBJUHH.js} +3 -3
  30. package/dist-cli/chunks/chunk-EZGUKWD5.js +1 -0
  31. package/dist-cli/chunks/{chunk-DSTHAISO.js → chunk-FDB3P2GV.js} +1 -1
  32. package/dist-cli/chunks/{chunk-LCES5ZJI.js → chunk-I4LBW6ED.js} +2 -2
  33. package/dist-cli/chunks/chunk-IFY75LQ3.js +1 -0
  34. package/dist-cli/chunks/{chunk-553OZX4H.js → chunk-ITQGNQE3.js} +2 -2
  35. package/dist-cli/chunks/{chunk-5GK4YX7O.js → chunk-J6HT2ZJW.js} +1 -1
  36. package/dist-cli/chunks/{chunk-TK2IPNHL.js → chunk-KQN7OUQ6.js} +2 -2
  37. package/dist-cli/chunks/{chunk-Y5CFIRLN.js → chunk-L53QRCQZ.js} +1 -1
  38. package/dist-cli/chunks/{chunk-KVOMVYG6.js → chunk-LAOTVMTO.js} +2 -2
  39. package/dist-cli/chunks/chunk-LJLRHMLK.js +1 -0
  40. package/dist-cli/chunks/{chunk-WQXG4I5N.js → chunk-LXZK2TIS.js} +2 -2
  41. package/dist-cli/chunks/{chunk-6X5NQJT7.js → chunk-MQOJIYEY.js} +20 -20
  42. package/dist-cli/chunks/chunk-NLYIKZIF.js +62 -0
  43. package/dist-cli/chunks/{chunk-WPS3TIOB.js → chunk-Q26NNL4G.js} +1 -1
  44. package/dist-cli/chunks/chunk-QLGR4M5H.js +11 -0
  45. package/dist-cli/chunks/{chunk-U3JD6X75.js → chunk-QWGMNIWG.js} +2 -2
  46. package/dist-cli/chunks/chunk-R3KU3IBN.js +117 -0
  47. package/dist-cli/chunks/{chunk-5IAIIX7B.js → chunk-SGBD3EAX.js} +3 -3
  48. package/dist-cli/chunks/{chunk-DEBXVPIE.js → chunk-UY6HKNEV.js} +1 -1
  49. package/dist-cli/chunks/{chunk-4L45Q3YX.js → chunk-WSISSPE3.js} +2 -2
  50. package/dist-cli/chunks/{chunk-PKB6IEGM.js → chunk-WW4G4D4A.js} +2 -2
  51. package/dist-cli/chunks/{chunk-BZED27B2.js → chunk-Y4ENWAOJ.js} +2 -2
  52. package/dist-cli/chunks/{compat-NBFWHK5S.js → compat-GWIATWPP.js} +5 -5
  53. package/dist-cli/chunks/{config-JEDQ3NHA.js → config-OXHJXY6N.js} +2 -2
  54. package/dist-cli/chunks/control-HJ2RPHYO.js +2 -0
  55. package/dist-cli/chunks/cpu-profile-MBYPGUJH.js +2 -0
  56. package/dist-cli/chunks/{daemon-HOL7J3BI.js → daemon-3N3QWMFU.js} +2 -2
  57. package/dist-cli/chunks/{debug-LNVMIWD6.js → debug-POCRM56I.js} +3 -3
  58. package/dist-cli/chunks/demo-app-registry-XABEINTD.js +2 -0
  59. package/dist-cli/chunks/{detox-EEZPH3DZ.js → detox-4NXKQ2CS.js} +2 -2
  60. package/dist-cli/chunks/{device-GVLYQI7X.js → device-DURJHKK5.js} +2 -2
  61. package/dist-cli/chunks/diagnose-IMXDGRVA.js +41 -0
  62. package/dist-cli/chunks/drivers-VXSNI7K2.js +2 -0
  63. package/dist-cli/chunks/{electron-UDV6K3IH.js → electron-NGWA52N6.js} +3 -3
  64. package/dist-cli/chunks/flow-TCG5XPDK.js +2 -0
  65. package/dist-cli/chunks/{hints-46PJLATZ.js → hints-5UNZ7BR2.js} +2 -2
  66. package/dist-cli/chunks/{home-paths-XD7AOYU7.js → home-paths-TENEFM4L.js} +2 -2
  67. package/dist-cli/chunks/{inspect-EDIKZ6O2.js → inspect-IWMH6MUT.js} +94 -92
  68. package/dist-cli/chunks/install-IKBAY4PQ.js +2 -0
  69. package/dist-cli/chunks/{install-desktop-CX6ATQTR.js → install-desktop-ABAWCLFJ.js} +3 -3
  70. package/dist-cli/chunks/{keys-CXQIYEVW.js → keys-NET26VLH.js} +2 -2
  71. package/dist-cli/chunks/{launch-DCFRKVD3.js → launch-TKIA4RC4.js} +3 -3
  72. package/dist-cli/chunks/{login-HCIZL5GT.js → login-AWT3GU5M.js} +4 -4
  73. package/dist-cli/chunks/{logout-7X2YHJY3.js → logout-R2RUNXHO.js} +2 -2
  74. package/dist-cli/chunks/{maestro-TY622MIW.js → maestro-552237HC.js} +2 -2
  75. package/dist-cli/chunks/{preview-DYI6ESOK.js → preview-GKIGPZUO.js} +2 -2
  76. package/dist-cli/chunks/{profile-7SXJEJTG.js → profile-U64JPCPD.js} +2 -2
  77. package/dist-cli/chunks/{react-VGSDY766.js → react-FWSV5JH2.js} +2 -2
  78. package/dist-cli/chunks/record-FLWDPJIP.js +7 -0
  79. package/dist-cli/chunks/runtime-AGNC2TK6.js +2 -0
  80. package/dist-cli/chunks/{runtime-delivery-PWLODFCY.js → runtime-delivery-22PV7UED.js} +2 -2
  81. package/dist-cli/chunks/{screenshot-PTKY4UU4.js → screenshot-4P3TL7CN.js} +2 -2
  82. package/dist-cli/chunks/{screenshot-mode-HSV7VY4G.js → screenshot-mode-GX3Q3IZ6.js} +2 -2
  83. package/dist-cli/chunks/{screenshots-VY7VAGSV.js → screenshots-5HSLPDWZ.js} +2 -2
  84. package/dist-cli/chunks/server-Q3ZD4BEF.js +35 -0
  85. package/dist-cli/chunks/setup-repo-NQVN5PK7.js +2 -0
  86. package/dist-cli/chunks/{skills-KEPQLCMR.js → skills-M2CWX5ZC.js} +2 -2
  87. package/dist-cli/chunks/{start-5CJTBNRM.js → start-24EAF2KS.js} +4 -4
  88. package/dist-cli/chunks/store-GI3SJOKH.js +2 -0
  89. package/dist-cli/chunks/telemetry-73Z4FAUH.js +2 -0
  90. package/dist-cli/chunks/{test-REKHGKFE.js → test-AJBULIVR.js} +3 -3
  91. package/dist-cli/chunks/{three-mode-FZYHB4ZQ.js → three-mode-JBZSQQIQ.js} +2 -2
  92. package/dist-cli/chunks/{timeline-CWZAY52K.js → timeline-VVGWQSVU.js} +2 -2
  93. package/dist-cli/chunks/{upgrade-AIUJEF5F.js → upgrade-IOGHQT7J.js} +2 -2
  94. package/dist-cli/chunks/upload-Z4PPGOX6.js +2 -0
  95. package/dist-cli/chunks/web-XIMVN6KZ.js +2 -0
  96. package/dist-cli/chunks/{what-happened-JSQQVQGE.js → what-happened-STVD3KZ2.js} +2 -2
  97. package/dist-cli/chunks/whoami-L62IGS4U.js +2 -0
  98. package/dist-lib/agent-daemon-client.cjs +1 -1
  99. package/dist-lib/agent-events.cjs +1 -1
  100. package/dist-lib/agent-sessions.cjs +1 -1
  101. package/dist-lib/attached-projects.cjs +1 -1
  102. package/dist-lib/auth/shared-session.cjs +1 -1
  103. package/dist-lib/backend-origin.cjs +1 -1
  104. package/dist-lib/bridge-constants.cjs +1 -1
  105. package/dist-lib/cli-constants.cjs +1 -1
  106. package/dist-lib/config.cjs +1 -1
  107. package/dist-lib/dev-bundle-resolution.cjs +1 -1
  108. package/dist-lib/home-paths.cjs +1 -1
  109. package/dist-lib/host/bridge-host.cjs +14 -8
  110. package/dist-lib/host/fetch-proxy-handler.cjs +1 -1
  111. package/dist-lib/index.cjs +1 -1
  112. package/dist-lib/metro.cjs +1 -1
  113. package/dist-lib/profiles.cjs +1 -1
  114. package/dist-lib/render-mode.cjs +1 -1
  115. package/dist-lib/vite-base.cjs +14 -8
  116. package/dist-lib/vite.cjs +1 -1
  117. package/package.json +1 -1
  118. package/dist-cli/chunks/auto-bootstrap-Q4A3PTF5.js +0 -2
  119. package/dist-cli/chunks/beta-CLLKUB5X.js +0 -2
  120. package/dist-cli/chunks/chunk-4IAKB3C4.js +0 -117
  121. package/dist-cli/chunks/chunk-CAJ247SC.js +0 -2
  122. package/dist-cli/chunks/chunk-D2ZMP7G4.js +0 -61
  123. package/dist-cli/chunks/chunk-D4Z7MWQY.js +0 -11
  124. package/dist-cli/chunks/chunk-DHJIXXWG.js +0 -27
  125. package/dist-cli/chunks/chunk-DPZDTJVQ.js +0 -1
  126. package/dist-cli/chunks/chunk-FFR7EA4U.js +0 -1
  127. package/dist-cli/chunks/chunk-I7KXFJDK.js +0 -1
  128. package/dist-cli/chunks/chunk-J6BPROH4.js +0 -4
  129. package/dist-cli/chunks/chunk-PNGBWMQH.js +0 -17
  130. package/dist-cli/chunks/chunk-S4PJMUC7.js +0 -2
  131. package/dist-cli/chunks/chunk-XWXFUFB2.js +0 -1
  132. package/dist-cli/chunks/control-IMWZVYC3.js +0 -2
  133. package/dist-cli/chunks/cpu-profile-MQPUSRHG.js +0 -22
  134. package/dist-cli/chunks/demo-app-registry-4RFMJ4FM.js +0 -2
  135. package/dist-cli/chunks/diagnose-JQ7DPTSL.js +0 -41
  136. package/dist-cli/chunks/drivers-JUW6JBWH.js +0 -2
  137. package/dist-cli/chunks/flow-JOW23WNH.js +0 -2
  138. package/dist-cli/chunks/install-CCC3IF5S.js +0 -2
  139. package/dist-cli/chunks/record-7JX2SMVP.js +0 -37
  140. package/dist-cli/chunks/runtime-FTOQD7QK.js +0 -2
  141. package/dist-cli/chunks/server-EDB3EK4K.js +0 -35
  142. package/dist-cli/chunks/setup-repo-S2GFZR7F.js +0 -2
  143. package/dist-cli/chunks/store-SCRULNVS.js +0 -2
  144. package/dist-cli/chunks/telemetry-RC3OT67I.js +0 -2
  145. package/dist-cli/chunks/upload-UDA5ITTE.js +0 -2
  146. package/dist-cli/chunks/whoami-5WUUPIRN.js +0 -2
@@ -0,0 +1,2 @@
1
+ /*! sootsim v0.1.42 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
+ import{c as I,e as N,i as S}from"./chunk-76WF7UIG.js";import"./chunk-D5TKAFJ3.js";import"./chunk-EZGUKWD5.js";import"./chunk-6MYXKMLG.js";import"./chunk-UY6HKNEV.js";import{createWriteStream as k,mkdirSync as v,writeFileSync as C}from"fs";import{dirname as T,resolve as w}from"path";import{Readable as F}from"stream";import{pipeline as y}from"stream/promises";import{createGzip as x}from"zlib";async function U(o,m){let t=Number(b(o,"--duration")??"5");if(!Number.isFinite(t)||t<=0)return console.error(" --duration must be a positive number (seconds)"),1;let a=Number(b(o,"--sample-interval")??"10");if(!Number.isFinite(a)||a<=0)return console.error(" --sample-interval must be a positive number (milliseconds)"),1;let s=Number(b(o,"--max-buffer")??"100000");if(!Number.isFinite(s)||s<=0)return console.error(" --max-buffer must be a positive number"),1;let p=b(o,"--output")??b(o,"-o"),u=w(process.cwd(),p??"/tmp/sootsim.cpuprofile"),g=u.endsWith(".gz"),h=I(o,{port:m.port,stripValueFlags:["--duration","--output","-o","--sample-interval","--max-buffer"]}),c=N({...h,commandTimeoutMs:Math.max(3e4,(t+20)*1e3)});try{let l=await S(c,"SootSim.bridges.workerCpuProfileStart",{sampleInterval:a,maxBufferSize:s});if(!l?.started)return console.error(" could not start tenant-worker profiler."),console.error(" is sootsim running? (try `bun sootsim list`)"),1;m.verbose&&console.error(` started: sampleInterval=${l.sampleInterval}ms buffer=${l.maxBufferSize}`),console.log(` recording for ${t}s\u2026`),await new Promise(r=>setTimeout(r,t*1e3));let n=await S(c,"SootSim.bridges.workerCpuProfileStop");if(!n||n.error||!n.trace)return n?.error?.includes("cpu-profile-unsupported")?(console.error(" cpu-profile is currently unsupported."),console.error(" the JS Self-Profiler API cannot profile a dedicated worker, and"),console.error(" sootsim runs the guest app in the tenant worker. a CDP-based"),console.error(" profiler is required \u2014 tracked as the F28 follow-up.")):console.error(` profile capture failed: ${n?.error??"no trace returned"}`),1;let P=B(n.trace),e=JSON.stringify(P);v(T(u),{recursive:!0}),g?await y(F.from([e]),x(),k(u)):C(u,e);let i=(Buffer.byteLength(e)/1024/1024).toFixed(2);return console.log(` samples: ${P.samples.length} (${i} MB uncompressed)`),console.log(` saved: ${u}`),console.log(" open in chrome devtools \u2192 Performance \u2192 Load profile to inspect."),0}catch(l){let n=l?.message??String(l);return console.error(` profile failed: ${n}`),/could not connect|ECONNREFUSED/i.test(n)&&console.error(" is sootsim running? (try `bun sootsim list`)"),1}finally{c.close()}}function B(o){let m=o.frames??[],t=o.resources??[],a=o.stacks??[],s=o.samples??[],p=1,u=[{id:p,callFrame:{functionName:"(root)",scriptId:"0",url:"",lineNumber:-1,columnNumber:-1},hitCount:0,children:[]}];for(let e=0;e<a.length;e++){let i=a[e],r=m[i.frameId]??{name:"(unknown)"},f=r.resource!==void 0?t[r.resource]??"":"";u.push({id:e+2,callFrame:{functionName:r.name||"(anonymous)",scriptId:r.resource!==void 0?String(r.resource):"0",url:f,lineNumber:typeof r.line=="number"?r.line-1:-1,columnNumber:typeof r.column=="number"?r.column-1:-1},hitCount:0,children:[]})}for(let e=0;e<a.length;e++){let i=a[e],r=e+2,f=i.parentId!==void 0?i.parentId+2:p,d=u[f-1];d&&!d.children.includes(r)&&d.children.push(r)}let g=[],h=[],c=s.length>0?s[0].timestamp:0,l=c;for(let e=0;e<s.length;e++){let i=s[e],r=i.stackId!==void 0?i.stackId+2:p;g.push(r);let f=u[r-1];f&&f.hitCount++;let d=e===0?0:i.timestamp-l;h.push(Math.max(0,Math.round(d*1e3))),l=i.timestamp}let n=Math.round(c*1e3),P=s.length>0?Math.round(s[s.length-1].timestamp*1e3):n;return{nodes:u,startTime:n,endTime:P,samples:g,timeDeltas:h}}function b(o,m){let t=o.indexOf(m);if(!(t<0||t===o.length-1))return o[t+1]}export{U as runCpuProfile};
@@ -1,5 +1,5 @@
1
- /*! sootsim v0.1.40 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{a as T,b as _}from"./chunk-W2XRHDQQ.js";import"./chunk-553OZX4H.js";import"./chunk-XWXFUFB2.js";import{g as I,o as C,p as w,q as B}from"./chunk-YKEBL6GE.js";import{a as W}from"./chunk-DEBXVPIE.js";import{execFileSync as tt,spawnSync as n}from"child_process";import{existsSync as a,mkdirSync as v,readFileSync as et,rmSync as S,writeFileSync as R}from"fs";import{homedir as $}from"os";import{dirname as U,resolve as m}from"path";import{execFileSync as Y}from"child_process";import{chmodSync as H,mkdirSync as D,rmSync as K,writeFileSync as L}from"fs";import{dirname as P}from"path";var X="dev.sootsim.daemon",N="SootSim Daemon",O="0.1.36";function F(t,e,r){let o=w(),s=B(),i=P(P(s)),f=P(s),u=`${i}/Resources`;K(o,{recursive:!0,force:!0}),D(C(),{recursive:!0}),D(f,{recursive:!0}),D(u,{recursive:!0}),L(`${i}/Info.plist`,Q()),L(`${i}/PkgInfo`,"APPL????"),L(s,z(t,e,r)),H(s,493);try{Y("codesign",["--force","--sign","-","--deep",o],{stdio:"pipe"})}catch(c){let g=c instanceof Error?c.message:String(c);console.warn(` warning: ad-hoc codesign of ${o} failed: ${g}
1
+ /*! sootsim v0.1.42 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
+ import{a as T,b as _}from"./chunk-4574AJAK.js";import"./chunk-ITQGNQE3.js";import"./chunk-EZGUKWD5.js";import{g as I,o as C,p as w,q as B}from"./chunk-6MYXKMLG.js";import{a as W}from"./chunk-UY6HKNEV.js";import{execFileSync as tt,spawnSync as n}from"child_process";import{existsSync as a,mkdirSync as v,readFileSync as et,rmSync as S,writeFileSync as R}from"fs";import{homedir as $}from"os";import{dirname as U,resolve as m}from"path";import{execFileSync as Y}from"child_process";import{chmodSync as H,mkdirSync as D,rmSync as K,writeFileSync as L}from"fs";import{dirname as P}from"path";var X="dev.sootsim.daemon",N="SootSim Daemon",O="0.1.36";function F(t,e,r){let o=w(),s=B(),i=P(P(s)),f=P(s),u=`${i}/Resources`;K(o,{recursive:!0,force:!0}),D(C(),{recursive:!0}),D(f,{recursive:!0}),D(u,{recursive:!0}),L(`${i}/Info.plist`,Q()),L(`${i}/PkgInfo`,"APPL????"),L(s,z(t,e,r)),H(s,493);try{Y("codesign",["--force","--sign","-","--deep",o],{stdio:"pipe"})}catch(c){let g=c instanceof Error?c.message:String(c);console.warn(` warning: ad-hoc codesign of ${o} failed: ${g}
3
3
  the daemon will still run, but Login Items may show a generic name.`)}return{bundlePath:o,launcherPath:s}}function Q(){return`<?xml version="1.0" encoding="UTF-8"?>
4
4
  <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
5
5
  <plist version="1.0">
@@ -1,5 +1,5 @@
1
- /*! sootsim v0.1.40 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{d as f}from"./chunk-KVOMVYG6.js";import{A as x,B as T,C as v,y as D,z as O}from"./chunk-FNIL6BYS.js";import{b as A}from"./chunk-QMBYRPRK.js";import{c as S,e as $,g as N}from"./chunk-PNGBWMQH.js";import"./chunk-Y66CDFAT.js";import"./chunk-XWXFUFB2.js";import"./chunk-YKEBL6GE.js";import"./chunk-DEBXVPIE.js";var H=["portals","sheets","layout","onlayout","animated","render","touch","yoga","all"],R="__sootsimShellAnimationTrace",q="__sootsimDebugAnimation";function L(){console.log(`
1
+ /*! sootsim v0.1.42 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
+ import{d as f}from"./chunk-LAOTVMTO.js";import{A as x,B as T,C as v,y as D,z as O}from"./chunk-5EBERDK7.js";import{b as A}from"./chunk-5TRJK5SO.js";import{c as S,e as $,g as N}from"./chunk-76WF7UIG.js";import"./chunk-D5TKAFJ3.js";import"./chunk-EZGUKWD5.js";import"./chunk-6MYXKMLG.js";import"./chunk-UY6HKNEV.js";var H=["portals","sheets","layout","onlayout","animated","render","touch","yoga","all"],R="__sootsimShellAnimationTrace",q="__sootsimDebugAnimation";function L(){console.log(`
3
3
  sootsim debug \u2014 drive __sootsimDebug from the terminal
4
4
 
5
5
  usage:
@@ -167,7 +167,7 @@ examples:
167
167
  } : null,
168
168
  samples,
169
169
  }
170
- })()`}async function c(i,l){return N(i,l)}async function Y(i,l){let g=S(i,{port:l.port,stripBooleanFlags:["--pretty","--json","--help","-h"]}),u=g.positional;(!u[0]||i.includes("--help")||i.includes("-h"))&&(L(),process.exit(0));let P=g.wsPort,_=g.simId,n=!i.includes("--json"),y=_?` --sim ${_}`:"",k=u[0],r=u.slice(1);if(new Set(["state","js","eval","perf","sample-color"]).has(k)){let{runInspect:e}=await import("./inspect-EDIKZ6O2.js");await e(["debug",...i],{port:l.port,verbose:l.verbose});return}let t=$(g);try{switch(k){case"enable":{let e=B(r[0]);e.length===0&&(console.error(` usage: sootsim debug enable <channel[,channel,...]>
170
+ })()`}async function c(i,l){return N(i,l)}async function Y(i,l){let g=S(i,{port:l.port,stripBooleanFlags:["--pretty","--json","--help","-h"]}),u=g.positional;(!u[0]||i.includes("--help")||i.includes("-h"))&&(L(),process.exit(0));let P=g.wsPort,_=g.simId,n=!i.includes("--json"),y=_?` --sim ${_}`:"",k=u[0],r=u.slice(1);if(new Set(["state","js","eval","perf","sample-color"]).has(k)){let{runInspect:e}=await import("./inspect-IWMH6MUT.js");await e(["debug",...i],{port:l.port,verbose:l.verbose});return}let t=$(g);try{switch(k){case"enable":{let e=B(r[0]);e.length===0&&(console.error(` usage: sootsim debug enable <channel[,channel,...]>
171
171
  known: ${H.join(", ")}`),process.exit(1));let o=await v(t,"enable",e);console.log(a({active:o},n));break}case"disable":{let e=B(r[0]),o=await v(t,"disable",e);console.log(a({active:o},n));break}case"toggle":{let e=r[0];e||(console.error(" usage: sootsim debug toggle <channel>"),process.exit(1));let o=await c(t,`window.__sootsimDebug.toggle(${JSON.stringify(e)})`);console.log(a({[e]:o},n));break}case"status":{let e=await D(t);console.log(a(e,n));break}case"channels":{let e=await c(t,"window.__sootsimDebug.channels()");console.log(a(e,n));break}case"flags":{let e=await O(t);console.log(a(e,n));break}case"snapshot":{let e=r[0],o=e?`window.__sootsimDebug.snapshot(${JSON.stringify(e)})`:"window.__sootsimDebug.snapshot()",s=await c(t,`(() => { const s = ${o}; if (!s) return null; return { label: s.label, at: s.at, size: s.nodes.size }; })()`);console.log(a(s,n));break}case"snapshots":{let e=await c(t,"window.__sootsimDebug.snapshots()");console.log(a(e,n));break}case"diff":{let e=r[0],o=r[1];(!e||!o)&&(console.error(" usage: sootsim debug diff <labelA> <labelB>"),process.exit(1));let s=`(() => {
172
172
  const d = window.__sootsimDebug.diff(${JSON.stringify(e)}, ${JSON.stringify(o)});
173
173
  if (!d) return null;
@@ -0,0 +1,2 @@
1
+ /*! sootsim v0.1.42 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
+ import{a}from"./chunk-I4LBW6ED.js";import"./chunk-UY6HKNEV.js";export{a as APPS};
@@ -1,5 +1,5 @@
1
- /*! sootsim v0.1.40 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{b as S}from"./chunk-6X5NQJT7.js";import"./chunk-4L45Q3YX.js";import"./chunk-6XI4VHIL.js";import"./chunk-FFR7EA4U.js";import"./chunk-DHJIXXWG.js";import"./chunk-KGVH3YAG.js";import"./chunk-D4Z7MWQY.js";import"./chunk-CCZHRBXJ.js";import"./chunk-QMBYRPRK.js";import"./chunk-CAJ247SC.js";import"./chunk-WZE6T3GT.js";import"./chunk-TK2IPNHL.js";import"./chunk-LCES5ZJI.js";import"./chunk-LXR5EI74.js";import"./chunk-QUULF2II.js";import"./chunk-I7KXFJDK.js";import"./chunk-EOWN4ZFJ.js";import"./chunk-WQXG4I5N.js";import"./chunk-S4PJMUC7.js";import"./chunk-PKB6IEGM.js";import"./chunk-Y5CFIRLN.js";import"./chunk-PNGBWMQH.js";import"./chunk-Y66CDFAT.js";import"./chunk-W2XRHDQQ.js";import"./chunk-553OZX4H.js";import"./chunk-XWXFUFB2.js";import"./chunk-YKEBL6GE.js";import"./chunk-DEBXVPIE.js";import{spawn as D}from"child_process";import{existsSync as u,mkdirSync as _,writeFileSync as f,unlinkSync as I}from"fs";import{tmpdir as P}from"os";import{dirname as $,resolve as n,join as M}from"path";function E(){try{let e=import.meta.resolve("sootsim/detox");return $(e.startsWith("file://")?e.slice(7):e)}catch{return n(import.meta.dirname,"..","..","detox")}}var F=`
1
+ /*! sootsim v0.1.42 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
+ import{b as S}from"./chunk-MQOJIYEY.js";import"./chunk-WSISSPE3.js";import"./chunk-DXQKMDX2.js";import"./chunk-64AKKWVB.js";import"./chunk-A2R42ONP.js";import"./chunk-5PZPKGUJ.js";import"./chunk-QLGR4M5H.js";import"./chunk-3PN6HIAM.js";import"./chunk-5TRJK5SO.js";import"./chunk-BZFKV7CT.js";import"./chunk-6R3CVNXC.js";import"./chunk-KQN7OUQ6.js";import"./chunk-I4LBW6ED.js";import"./chunk-BBRAYGDX.js";import"./chunk-2GKZS2ZZ.js";import"./chunk-LJLRHMLK.js";import"./chunk-DUVJOJTP.js";import"./chunk-LXZK2TIS.js";import"./chunk-2XCCV7J3.js";import"./chunk-WW4G4D4A.js";import"./chunk-L53QRCQZ.js";import"./chunk-76WF7UIG.js";import"./chunk-D5TKAFJ3.js";import"./chunk-4574AJAK.js";import"./chunk-ITQGNQE3.js";import"./chunk-EZGUKWD5.js";import"./chunk-6MYXKMLG.js";import"./chunk-UY6HKNEV.js";import{spawn as D}from"child_process";import{existsSync as u,mkdirSync as _,writeFileSync as f,unlinkSync as I}from"fs";import{tmpdir as P}from"os";import{dirname as $,resolve as n,join as M}from"path";function E(){try{let e=import.meta.resolve("sootsim/detox");return $(e.startsWith("file://")?e.slice(7):e)}catch{return n(import.meta.dirname,"..","..","detox")}}var F=`
3
3
  sootsim detox \u2014 run detox-style tests against a sootsim shell
4
4
 
5
5
  usage:
@@ -1,5 +1,5 @@
1
- /*! sootsim v0.1.40 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import"./chunk-FFR7EA4U.js";import"./chunk-WQXG4I5N.js";import"./chunk-PKB6IEGM.js";import{f as c,g as r,h as g}from"./chunk-Y5CFIRLN.js";import{c as d,e as l,h as a}from"./chunk-PNGBWMQH.js";import"./chunk-Y66CDFAT.js";import"./chunk-XWXFUFB2.js";import"./chunk-YKEBL6GE.js";import"./chunk-DEBXVPIE.js";function h(){console.log(`
1
+ /*! sootsim v0.1.42 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
+ import"./chunk-64AKKWVB.js";import"./chunk-LXZK2TIS.js";import"./chunk-WW4G4D4A.js";import{f as c,g as r,h as g}from"./chunk-L53QRCQZ.js";import{c as d,e as l,h as a}from"./chunk-76WF7UIG.js";import"./chunk-D5TKAFJ3.js";import"./chunk-EZGUKWD5.js";import"./chunk-6MYXKMLG.js";import"./chunk-UY6HKNEV.js";function h(){console.log(`
3
3
  sootsim device \u2014 inspect or change the live device preset for a sim
4
4
 
5
5
  usage:
@@ -0,0 +1,41 @@
1
+ /*! sootsim v0.1.42 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
+ import{c as v,e as E,h as b}from"./chunk-76WF7UIG.js";import{b as $}from"./chunk-D5TKAFJ3.js";import"./chunk-EZGUKWD5.js";import"./chunk-6MYXKMLG.js";import"./chunk-UY6HKNEV.js";function j(e){return e.ts??e.t??0}function F(e){return typeof e.message=="string"&&e.message.length>0?e.message:Array.isArray(e.args)?e.args.map(r=>typeof r=="string"?r:JSON.stringify(r)).join(" "):""}var W=new Set(["timeline","network","react","console","screen"]);function P(){console.log(`
3
+ sootsim diagnose \u2014 compact "what just went wrong?" report
4
+
5
+ usage:
6
+ sootsim diagnose recent [--since <duration>] [--include <csv>] [--json]
7
+
8
+ options:
9
+ --since <d> absolute window for timeline + network (e.g. 90s, 2m, 500ms; default 90s)
10
+ --include <csv> comma-separated dimensions: timeline, network, react, console, screen
11
+ (default: all)
12
+ --slow-threshold <n> network slow-request threshold in ms (default 1000)
13
+ --limit <n> rows to print per react table (default 8)
14
+ --json emit a single structured JSON document
15
+
16
+ the diagnose report runs every dimension in parallel against the same
17
+ sim and returns a grouped summary. use \`sootsim what-happened\`
18
+ for chronological events, \`sootsim network\` for full request inspection,
19
+ \`sootsim react summary\` for the React tables on their own.
20
+
21
+ examples:
22
+ sootsim diagnose recent
23
+ sootsim diagnose recent --since 30s --include network,react
24
+ sootsim diagnose recent --json > /tmp/diagnose.json
25
+ `)}function A(e,r){if(!e)return r;let o=/^(\d+(?:\.\d+)?)(ms|s|m)?$/.exec(e.trim());if(!o)return r;let s=Number(o[1]),t=o[2]??"ms";return t==="s"?s*1e3:t==="m"?s*6e4:s}function D(e){if(!e)return W;let r=new Set;for(let o of e.split(",")){let s=o.trim().toLowerCase();s&&r.add(s)}return r}function k(e,r){let o=e.indexOf(r);if(o>=0&&o+1<e.length)return e[o+1];let s=`${r}=`;return e.find(t=>t.startsWith(s))?.slice(s.length)}function R(e,r,o){let s=k(e,r);if(s===void 0)return o;let t=Number(s);return Number.isFinite(t)&&t>0?Math.round(t):o}async function O(e,r){let o={limit:500,since:Date.now()-r},t=(await b(e,"SootSim.bridges.timeline.recent",o)).events??[],i={},c=[],d=[],p=[];for(let m of t){i[m.kind]=(i[m.kind]??0)+1;let l=m.data,u=l&&typeof l=="object"?l.level:void 0;m.kind==="console"&&(u==="error"||u==="warn")&&c.push(m),(m.kind==="alert"||m.kind==="actionsheet"||m.kind==="picker")&&d.push(m),(m.kind==="screen"||m.kind==="route")&&p.push(m)}return{events:t,byKind:i,total:t.length,errors:c,alerts:d,screens:p}}async function B(e,r,o){let s=await e.send({type:"evaluate",code:`(() => {
26
+ const obs = window.__sootsimObservability;
27
+ if (!obs) return { ok: false };
28
+ return { ok: true, entries: obs.network.getSnapshot() };
29
+ })()`});if(!s||!s.ok)return{error:"observability bridge not installed"};let t=s.entries??[],i=Date.now()-r,c=t.filter(l=>(l.startTs??l.startedAt??0)>=i),d=c.filter(l=>!!l.error||l.status!=null&&l.status>=400),p=c.filter(l=>l.durationMs!=null&&l.durationMs>=o).sort((l,u)=>(u.durationMs??0)-(l.durationMs??0)),m=c.filter(l=>l.durationMs==null).length;return{total:c.length,failed:d,slow:p,inFlight:m,slowThresholdMs:o}}async function L(e,r){let[o,s]=await Promise.all([b(e,"SootSim.bridges.reactProfile.slow",{limit:r}),b(e,"SootSim.bridges.reactProfile.rerenders",{limit:r})]);return{commits:o.commits??s.commits??0,slow:o.rows??[],rerenders:s.rows??[],durationWarning:o.durationWarning,error:o.error??s.error}}async function C(e,r){let o=await e.send({type:"evaluate",code:`(() => {
30
+ const obs = window.__sootsimObservability;
31
+ if (!obs) return { ok: false };
32
+ return { ok: true, entries: obs.logs.getSnapshot() };
33
+ })()`});if(!o||!o.ok)return{error:"observability bridge not installed"};let s=Date.now()-r,i=(o.entries??[]).filter(c=>j(c)>=s&&(c.level==="error"||c.level==="warn"));return{entries:i.slice(-20),total:i.length}}function T(e){let r=e.error?"err":e.status!=null?String(e.status):"...",o=(e.method??"GET").padEnd(6),s=e.durationMs!=null?`${e.durationMs.toFixed(0)}ms`:"...",t=e.displayUrl??e.url,i=t.length>96?`${t.slice(0,92)}\u2026`:t;return` ${r.padStart(3)} ${o} ${s.padStart(7)} ${i} (${e.id})`}function N(e,r){let o=((e.t-r)/1e3).toFixed(2),s=e.t>=r?"-":"+",t=e.data,i="";if(t&&typeof t=="object"){let c=(t.message??"").toString().slice(0,120),d=(t.title??t.name??t.path??t.url??"").toString();i=[(t.phase??"").toString(),d,c].filter(Boolean).join(" \xB7 ")}return` -${o.padStart(5)}s [${e.kind}] ${i}`}function M(e,r,o){if(r.length===0)return`${o}(no rows)`;let s=e.map((i,c)=>Math.max(i.length,...r.map(d=>d[c]?.length??0))),t=i=>i.map((c,d)=>c.padEnd(s[d])).join(" ").trimEnd();return[t(e),t(e.map(i=>"-".repeat(i.length))),...r.map(t)].map(i=>`${o}${i}`).join(`
34
+ `)}async function q(e,r){if(e.includes("--help")||e.includes("-h"))return P(),0;let o=v(e,{port:r.port,stripBooleanFlags:["--json","--help","-h"],stripValueFlags:["--since","--include","--limit","--slow-threshold"]}),s=o.positional[0]??"recent";if(s!=="recent")return console.error(` unknown subcommand: ${s}`),console.error(" did you mean: sootsim diagnose recent ?"),1;let t=A(k(e,"--since"),9e4),i=D(k(e,"--include")),c=R(e,"--limit",8),d=R(e,"--slow-threshold",1e3),p=e.includes("--json"),m=E(o);try{let l=[],u=[];(i.has("timeline")||i.has("screen")||i.has("alert"))&&(u.push("timeline"),l.push(O(m,t))),(i.has("network")||i.has("fetch"))&&(u.push("network"),l.push(B(m,t,d))),i.has("react")&&(u.push("react"),l.push(L(m,c))),i.has("console")&&(u.push("console"),l.push(C(m,t)));let x=await Promise.all(l),w={};for(let n=0;n<u.length;n++)w[u[n]]=x[n];if(p)return console.log(JSON.stringify({generatedAt:Date.now(),sinceMs:t,include:Array.from(i),slices:w},null,2)),0;let S=Date.now();if(console.log(` diagnose recent (last ${(t/1e3).toFixed(0)}s, include: ${Array.from(i).sort().join(",")}):`),w.timeline){let n=w.timeline;console.log(`
35
+ timeline \u2014 ${n.total} event(s) in window`);let f=Object.entries(n.byKind).sort((a,g)=>g[1]-a[1]).map(([a,g])=>`${g} ${a}`).join(" \xB7 ");if(f&&console.log(` summary: ${f}`),n.screens.length){let g=n.screens[n.screens.length-1].data,h=g?g.name??g.activeName??g.path??"?":"?";console.log(` last screen: ${String(h)}`)}if(n.alerts.length){console.log(` alerts (${n.alerts.length}):`);for(let a of n.alerts.slice(-5))console.log(N(a,S))}if(n.errors.length){console.log(` console errors/warns from timeline (${n.errors.length}):`);for(let a of n.errors.slice(-5))console.log(N(a,S))}}if(w.network){let n=w.network;if("error"in n)console.log(`
36
+ network \u2014 ${n.error}`);else{if(console.log(`
37
+ network \u2014 ${n.total} request(s), ${n.failed.length} failed, ${n.slow.length} slow (>${n.slowThresholdMs}ms), ${n.inFlight} in-flight`),n.failed.length){console.log(" failed:");for(let f of n.failed.slice(-8))console.log(T(f))}if(n.slow.length){console.log(" slowest:");for(let f of n.slow.slice(0,5))console.log(T(f))}}}if(w.react){let n=w.react;console.log(`
38
+ react \u2014 ${n.commits} commit(s)`),n.error&&console.log(` warning: ${n.error}`),n.durationWarning&&console.log(` warning: ${n.durationWarning}`),n.slow.length>0&&n.slow.every(a=>a.totalMs<=0&&a.slowestMs<=0)&&!n.durationWarning&&console.log(" warning: every commit reports actualDuration=0ms \u2014 bundle has React profiler timer disabled"),n.slow.length&&(console.log(" slowest:"),console.log(M(["component","total","commits","slowest"],n.slow.slice(0,c).map(a=>[a.displayName,`${a.totalMs.toFixed(2)}ms`,String(a.commitCount),`${a.slowestMs.toFixed(2)}ms`])," "))),n.rerenders.length&&(console.log(" most rerenders:"),console.log(M(["component","renders","top causes"],n.rerenders.slice(0,c).map(a=>{let g=Object.entries(a.causes??{}).filter(([,h])=>h>0).sort((h,y)=>y[1]-h[1]).slice(0,3).map(([h,y])=>`${h}:${y}`).join(", ");return[a.displayName,String(a.renders??a.count??0),g||"-"]})," ")))}if(w.console){let n=w.console;if("error"in n)console.log(`
39
+ console \u2014 ${n.error}`);else{console.log(`
40
+ console errors/warns \u2014 ${n.total} in window`);for(let f of n.entries.slice(-8)){let a=((j(f)-S)/1e3).toFixed(2),g=F(f).slice(0,160);console.log(` -${a.padStart(5)}s [${f.level}] ${g}`)}}}return $()&&console.log(`
41
+ next: sootsim what-happened (cursor advances) \xB7 sootsim network get <id> \xB7 sootsim react why <fiber-id>`),0}catch(l){let u=l instanceof Error?l.message:String(l);return/no sim connected/i.test(u)?console.error(" no sim connected \u2014 open one first: sootsim open <metroPort>"):console.error(` diagnose failed: ${u}`),1}finally{m.close()}}export{q as runDiagnose};
@@ -0,0 +1,2 @@
1
+ /*! sootsim v0.1.42 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
+ import"./chunk-IFY75LQ3.js";import{a,b,c,d,e,f,g,h,i}from"./chunk-BZFKV7CT.js";import"./chunk-6R3CVNXC.js";import"./chunk-KQN7OUQ6.js";import"./chunk-LJLRHMLK.js";import"./chunk-DUVJOJTP.js";import"./chunk-6MYXKMLG.js";import"./chunk-UY6HKNEV.js";export{e as ALL_DRIVERS,i as buildDriverListRows,a as chromiumDriver,b as electronDriver,f as getAllDrivers,g as getDriver,c as playwrightDriver,h as resolveDriver,d as systemDriver};
@@ -1,5 +1,5 @@
1
- /*! sootsim v0.1.40 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{a as g}from"./chunk-J6BPROH4.js";import"./chunk-DPZDTJVQ.js";import{a as v,e as h}from"./chunk-D4Z7MWQY.js";import"./chunk-CCZHRBXJ.js";import"./chunk-QMBYRPRK.js";import{b as f,g as u}from"./chunk-CAJ247SC.js";import{a as p}from"./chunk-WZE6T3GT.js";import{c as m}from"./chunk-TK2IPNHL.js";import"./chunk-I7KXFJDK.js";import"./chunk-EOWN4ZFJ.js";import"./chunk-S4PJMUC7.js";import"./chunk-PNGBWMQH.js";import"./chunk-Y66CDFAT.js";import"./chunk-XWXFUFB2.js";import"./chunk-YKEBL6GE.js";import"./chunk-DEBXVPIE.js";function b(e){let r=e.indexOf("--port");if(r<0)return;let o=e[r+1],i=o?Number(o):Number.NaN;return(!Number.isInteger(i)||i<=0)&&(console.error(` invalid --port value: ${o||"(missing)"}`),process.exit(1)),i}async function O(e,r){let o=b(e)??r.port;return o?h(String(o)):void 0}async function $(e,r){(e.includes("--help")||e.includes("-h"))&&(console.log(`
1
+ /*! sootsim v0.1.42 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
+ import{a as g}from"./chunk-543BSGQG.js";import"./chunk-IFY75LQ3.js";import{a as v,f as h}from"./chunk-QLGR4M5H.js";import"./chunk-3PN6HIAM.js";import"./chunk-5TRJK5SO.js";import{b as f,g as u}from"./chunk-BZFKV7CT.js";import{a as p}from"./chunk-6R3CVNXC.js";import{c as m}from"./chunk-KQN7OUQ6.js";import"./chunk-LJLRHMLK.js";import"./chunk-DUVJOJTP.js";import"./chunk-2XCCV7J3.js";import"./chunk-76WF7UIG.js";import"./chunk-D5TKAFJ3.js";import"./chunk-EZGUKWD5.js";import"./chunk-6MYXKMLG.js";import"./chunk-UY6HKNEV.js";function b(e){let r=e.indexOf("--port");if(r<0)return;let o=e[r+1],i=o?Number(o):Number.NaN;return(!Number.isInteger(i)||i<=0)&&(console.error(` invalid --port value: ${o||"(missing)"}`),process.exit(1)),i}async function O(e,r){let o=b(e)??r.port;return o?h(String(o)):void 0}async function $(e,r){(e.includes("--help")||e.includes("-h"))&&(console.log(`
3
3
  sootsim electron \u2014 launch the desktop companion
4
4
 
5
5
  usage:
@@ -15,4 +15,4 @@ examples:
15
15
  sootsim electron
16
16
  sootsim electron --port 5173
17
17
  sootsim electron --profile qa
18
- `),process.exit(0));let o=e.indexOf("--driver"),i=o>=0?e[o+1]:void 0,t=e.find((n,a)=>e[a-1]==="--profile"),d=e.includes("--ephemeral");t&&d&&(console.error(" sootsim electron: --profile cannot be combined with --ephemeral"),process.exit(1));let x=t?m(t).id:void 0,s=i||r.driver,l=f;if(s){let n=u(s);n||(console.error(` unknown driver "${s}" \u2014 run \`sootsim list --drivers\``),process.exit(1)),l=n}if(l.id==="electron"){let n=p();if(!n){if(v(),process.stdin.isTTY&&process.env.CI!=="1"&&process.env.SOOTSIM_NO_PROMPT!=="1"&&await g("run sootsim install-desktop now?",!0)){console.log();let{runInstallDesktop:I}=await import("./install-desktop-CX6ATQTR.js");await I(["--yes"]),n=p()}n||process.exit(1)}console.log(` launching ${n.path}`)}let w=await O(e,r),c=await l.launch({url:w,device:r.device,profileId:x,ephemeralProfile:d});c.launched||(console.error(` ${c.message}`),process.exit(1)),console.log(` ${c.message}`)}export{O as resolveElectronLaunchUrl,$ as runElectron};
18
+ `),process.exit(0));let o=e.indexOf("--driver"),i=o>=0?e[o+1]:void 0,t=e.find((n,a)=>e[a-1]==="--profile"),d=e.includes("--ephemeral");t&&d&&(console.error(" sootsim electron: --profile cannot be combined with --ephemeral"),process.exit(1));let x=t?m(t).id:void 0,s=i||r.driver,l=f;if(s){let n=u(s);n||(console.error(` unknown driver "${s}" \u2014 run \`sootsim list --drivers\``),process.exit(1)),l=n}if(l.id==="electron"){let n=p();if(!n){if(v(),process.stdin.isTTY&&process.env.CI!=="1"&&process.env.SOOTSIM_NO_PROMPT!=="1"&&await g("run sootsim install-desktop now?",!0)){console.log();let{runInstallDesktop:I}=await import("./install-desktop-ABAWCLFJ.js");await I(["--yes"]),n=p()}n||process.exit(1)}console.log(` launching ${n.path}`)}let w=await O(e,r),c=await l.launch({url:w,device:r.device,profileId:x,ephemeralProfile:d});c.launched||(console.error(` ${c.message}`),process.exit(1)),console.log(` ${c.message}`)}export{O as resolveElectronLaunchUrl,$ as runElectron};
@@ -0,0 +1,2 @@
1
+ /*! sootsim v0.1.42 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
+ import{a,b,c,d}from"./chunk-MQOJIYEY.js";import"./chunk-WSISSPE3.js";import"./chunk-DXQKMDX2.js";import"./chunk-64AKKWVB.js";import"./chunk-A2R42ONP.js";import"./chunk-5PZPKGUJ.js";import"./chunk-QLGR4M5H.js";import"./chunk-3PN6HIAM.js";import"./chunk-5TRJK5SO.js";import"./chunk-BZFKV7CT.js";import"./chunk-6R3CVNXC.js";import"./chunk-KQN7OUQ6.js";import"./chunk-I4LBW6ED.js";import"./chunk-BBRAYGDX.js";import"./chunk-2GKZS2ZZ.js";import"./chunk-LJLRHMLK.js";import"./chunk-DUVJOJTP.js";import"./chunk-LXZK2TIS.js";import"./chunk-2XCCV7J3.js";import"./chunk-WW4G4D4A.js";import"./chunk-L53QRCQZ.js";import"./chunk-76WF7UIG.js";import"./chunk-D5TKAFJ3.js";import"./chunk-4574AJAK.js";import"./chunk-ITQGNQE3.js";import"./chunk-EZGUKWD5.js";import"./chunk-6MYXKMLG.js";import"./chunk-UY6HKNEV.js";export{b as discoverSootsimUrl,a as parseFlowFile,d as runFlow,c as runFlowPlayback};
@@ -1,2 +1,2 @@
1
- /*! sootsim v0.1.40 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{b as n,c as r,d as l}from"./chunk-MLCBIX7O.js";import"./chunk-Y66CDFAT.js";import"./chunk-DEBXVPIE.js";function a(t){let s=t[0]??"list";if(s==="reset"){t[1]==="global"?(r(),console.log(" cleared global hint state")):(n(),console.log(" cleared hint state for this CLI identity"));return}if(s==="list"){let e=l();if(!e.length){console.log(" no hints registered");return}let i=Math.max(...e.map(o=>o.id.length));console.log(" registered hints:");for(let o of e){let c=typeof o.frequency=="string"?o.frequency:`cooldown ${o.frequency.cooldownMs}ms`;console.log(` ${o.id.padEnd(i)} ${c}`)}console.log(""),console.log(" env overrides:"),console.log(" SOOTSIM_HINTS=off suppress all hints"),console.log(" SOOTSIM_HINTS=always show every hint every time");return}console.error(` unknown subcommand: ${s}`),console.error(" usage:"),console.error(" sootsim hints list show registered hints"),console.error(" sootsim hints reset [global] clear shown-state"),process.exit(1)}export{a as runHints};
1
+ /*! sootsim v0.1.42 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
+ import{b as n,c as r,d as l}from"./chunk-BVCZIJ2X.js";import"./chunk-D5TKAFJ3.js";import"./chunk-UY6HKNEV.js";function a(t){let s=t[0]??"list";if(s==="reset"){t[1]==="global"?(r(),console.log(" cleared global hint state")):(n(),console.log(" cleared hint state for this CLI identity"));return}if(s==="list"){let e=l();if(!e.length){console.log(" no hints registered");return}let i=Math.max(...e.map(o=>o.id.length));console.log(" registered hints:");for(let o of e){let c=typeof o.frequency=="string"?o.frequency:`cooldown ${o.frequency.cooldownMs}ms`;console.log(` ${o.id.padEnd(i)} ${c}`)}console.log(""),console.log(" env overrides:"),console.log(" SOOTSIM_HINTS=off suppress all hints"),console.log(" SOOTSIM_HINTS=always show every hint every time");return}console.error(` unknown subcommand: ${s}`),console.error(" usage:"),console.error(" sootsim hints list show registered hints"),console.error(" sootsim hints reset [global] clear shown-state"),process.exit(1)}export{a as runHints};
@@ -1,2 +1,2 @@
1
- /*! sootsim v0.1.40 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{A,B,C,D,E,F,G,H,I,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z}from"./chunk-YKEBL6GE.js";import"./chunk-DEBXVPIE.js";export{b as ACTIVE_RUNTIME_FILE,d as CONFIG_FILE,e as DAEMON_HEARTBEAT_STALE_MS,c as DAEMON_LOCKFILE,a as SOOTSIM_HOME_ENV,D as activeRuntimeDir,j as activeRuntimeFile,r as cacheDir,H as claimDaemonLockfile,C as compareSemver,t as configFilePath,p as daemonAppBundlePath,o as daemonAppDir,q as daemonAppLauncherPath,s as daemonLockfilePath,k as electronDir,l as electronUserDataDir,m as electronVersionDir,y as ensureSootsimHome,F as isDaemonLockfileFresh,g as isSootsimDevCheckout,B as listInstalledRuntimes,n as profilesDir,z as readActiveRuntime,E as readDaemonLockfile,u as readSharedConfig,w as readTelemetryEnabled,I as removeDaemonLockfile,i as runtimeDir,h as runtimesDir,f as sootsimHomeDir,A as writeActiveRuntime,G as writeDaemonLockfile,v as writeSharedConfig,x as writeTelemetryEnabled};
1
+ /*! sootsim v0.1.42 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
+ import{A,B,C,D,E,F,G,H,I,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z}from"./chunk-6MYXKMLG.js";import"./chunk-UY6HKNEV.js";export{b as ACTIVE_RUNTIME_FILE,d as CONFIG_FILE,e as DAEMON_HEARTBEAT_STALE_MS,c as DAEMON_LOCKFILE,a as SOOTSIM_HOME_ENV,D as activeRuntimeDir,j as activeRuntimeFile,r as cacheDir,H as claimDaemonLockfile,C as compareSemver,t as configFilePath,p as daemonAppBundlePath,o as daemonAppDir,q as daemonAppLauncherPath,s as daemonLockfilePath,k as electronDir,l as electronUserDataDir,m as electronVersionDir,y as ensureSootsimHome,F as isDaemonLockfileFresh,g as isSootsimDevCheckout,B as listInstalledRuntimes,n as profilesDir,z as readActiveRuntime,E as readDaemonLockfile,u as readSharedConfig,w as readTelemetryEnabled,I as removeDaemonLockfile,i as runtimeDir,h as runtimesDir,f as sootsimHomeDir,A as writeActiveRuntime,G as writeDaemonLockfile,v as writeSharedConfig,x as writeTelemetryEnabled};