sootsim 0.1.52 → 0.1.53

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 (139) hide show
  1. package/dist-cli/bin.js +3 -3
  2. package/dist-cli/chunks/{agent-RUWGJCSS.js → agent-PA7ZGTHU.js} +2 -2
  3. package/dist-cli/chunks/{agent-wrapper-FBCGP5N7.js → agent-wrapper-CVZFXQKJ.js} +2 -2
  4. package/dist-cli/chunks/{assert-IOU2NWE2.js → assert-6LHIY63B.js} +2 -2
  5. package/dist-cli/chunks/auto-bootstrap-SVBAUCSM.js +2 -0
  6. package/dist-cli/chunks/beta-YEBFYYIB.js +2 -0
  7. package/dist-cli/chunks/{chunk-EYRQG47K.js → chunk-2ZBZCRN6.js} +1 -1
  8. package/dist-cli/chunks/{chunk-EJYVXNQL.js → chunk-5Q3XBH5M.js} +2 -2
  9. package/dist-cli/chunks/{chunk-MWGIKDXO.js → chunk-5U2BN4IU.js} +2 -2
  10. package/dist-cli/chunks/{chunk-H4G7IRXG.js → chunk-6A4CZMPO.js} +2 -2
  11. package/dist-cli/chunks/{chunk-HRIQRZX3.js → chunk-6JZNIGOQ.js} +1 -1
  12. package/dist-cli/chunks/{chunk-EQPRFEHH.js → chunk-7IYYIF5B.js} +2 -2
  13. package/dist-cli/chunks/{chunk-FPIJBBYW.js → chunk-7ZHWA3WD.js} +2 -2
  14. package/dist-cli/chunks/{chunk-UCCSXQ2P.js → chunk-AFXPU7YQ.js} +3 -3
  15. package/dist-cli/chunks/{chunk-I5WEW3ES.js → chunk-AYU6WUNF.js} +1 -1
  16. package/dist-cli/chunks/{chunk-Q2424XB2.js → chunk-AZYLZGRV.js} +1 -1
  17. package/dist-cli/chunks/{chunk-ABEYZDD7.js → chunk-BPXSSZJS.js} +2 -2
  18. package/dist-cli/chunks/chunk-CKZSGUTE.js +2 -0
  19. package/dist-cli/chunks/{chunk-PZJSYDQ7.js → chunk-CRUPWYHV.js} +3 -3
  20. package/dist-cli/chunks/{chunk-DNKB2V2W.js → chunk-CTDDR7HW.js} +2 -2
  21. package/dist-cli/chunks/{chunk-IQU56D6C.js → chunk-CTGH5SFH.js} +1 -1
  22. package/dist-cli/chunks/{chunk-IXITVIJV.js → chunk-CW2X4KRW.js} +2 -2
  23. package/dist-cli/chunks/{chunk-JPLTR6JM.js → chunk-E3S6U2QR.js} +1 -1
  24. package/dist-cli/chunks/{chunk-UXE5BFPK.js → chunk-E4JTYQVY.js} +2 -2
  25. package/dist-cli/chunks/chunk-ELEP2COQ.js +3 -0
  26. package/dist-cli/chunks/{chunk-U3UHXJNE.js → chunk-ERC46HTZ.js} +1 -1
  27. package/dist-cli/chunks/{chunk-4TSGUAV3.js → chunk-FDA2NX2E.js} +2 -2
  28. package/dist-cli/chunks/{chunk-MBH3NFBC.js → chunk-GWGF4J4Y.js} +2 -2
  29. package/dist-cli/chunks/chunk-H4C3WE3C.js +1 -0
  30. package/dist-cli/chunks/{chunk-BF7F45CZ.js → chunk-IS5ORPFW.js} +2 -2
  31. package/dist-cli/chunks/{chunk-6QDFLMJL.js → chunk-LELB2PV3.js} +1 -1
  32. package/dist-cli/chunks/chunk-LL3XAMKC.js +16 -0
  33. package/dist-cli/chunks/{chunk-MSKCUZ5B.js → chunk-LYHVX7TD.js} +3 -3
  34. package/dist-cli/chunks/{chunk-YDKXZS7D.js → chunk-MX5HFYST.js} +1 -1
  35. package/dist-cli/chunks/{chunk-USGUHWUJ.js → chunk-N3RWXMD3.js} +2 -2
  36. package/dist-cli/chunks/chunk-NIHI6NXE.js +1 -0
  37. package/dist-cli/chunks/chunk-QTVGSFY6.js +305 -0
  38. package/dist-cli/chunks/{chunk-T6RAXKVI.js → chunk-R3VVVXF3.js} +2 -2
  39. package/dist-cli/chunks/{chunk-JPX7OS7B.js → chunk-R5XV3WIE.js} +2 -2
  40. package/dist-cli/chunks/{chunk-3DDSYQHM.js → chunk-RBXJA2PW.js} +2 -2
  41. package/dist-cli/chunks/{chunk-7Y3FYPJH.js → chunk-SQZXAKBL.js} +2 -2
  42. package/dist-cli/chunks/{chunk-CTEXZ7BE.js → chunk-STWL7EXR.js} +1 -1
  43. package/dist-cli/chunks/{chunk-GNQSOQXZ.js → chunk-WBAIONOO.js} +2 -2
  44. package/dist-cli/chunks/{chunk-3MIWVHCX.js → chunk-WXOAHKCZ.js} +1 -1
  45. package/dist-cli/chunks/{chunk-FVBSPGBR.js → chunk-XBP7BBSF.js} +2 -2
  46. package/dist-cli/chunks/{chunk-PDZ4JVAW.js → chunk-XC3T7UDH.js} +1 -1
  47. package/dist-cli/chunks/chunk-XO4UV6EO.js +1 -0
  48. package/dist-cli/chunks/chunk-YCPH4ZTS.js +2 -0
  49. package/dist-cli/chunks/{chunk-MTE3DEWY.js → chunk-YEE4EO2P.js} +1 -1
  50. package/dist-cli/chunks/{chunk-EXQJSXDF.js → chunk-ZYITMTYD.js} +1 -1
  51. package/dist-cli/chunks/cli-version-NMWGV7OU.js +2 -0
  52. package/dist-cli/chunks/{compat-ZBLH6EWV.js → compat-CHBJ7TDK.js} +3 -3
  53. package/dist-cli/chunks/{config-DH2GG63H.js → config-XTZOLM5E.js} +2 -2
  54. package/dist-cli/chunks/control-XAZGNLFM.js +2 -0
  55. package/dist-cli/chunks/{cpu-profile-3PRCXZMV.js → cpu-profile-EQHKYVOF.js} +2 -2
  56. package/dist-cli/chunks/{daemon-XSFKUDKZ.js → daemon-K42MZR2E.js} +2 -2
  57. package/dist-cli/chunks/{debug-VAWCOXQ3.js → debug-ULTTL5L2.js} +3 -3
  58. package/dist-cli/chunks/demo-app-registry-SO43B5HW.js +2 -0
  59. package/dist-cli/chunks/{detox-UABOFTDQ.js → detox-LU3G3EBC.js} +2 -2
  60. package/dist-cli/chunks/{device-LCB4N66D.js → device-RYW4ZE4R.js} +2 -2
  61. package/dist-cli/chunks/{diagnose-MT3WMY4M.js → diagnose-5YQAXWFB.js} +2 -2
  62. package/dist-cli/chunks/drivers-SXP44QNY.js +2 -0
  63. package/dist-cli/chunks/{electron-WVNFRA4S.js → electron-ORBIXXTP.js} +3 -3
  64. package/dist-cli/chunks/flow-GP7GAXLT.js +2 -0
  65. package/dist-cli/chunks/{hints-PFAKBGFX.js → hints-V4SHPWCI.js} +2 -2
  66. package/dist-cli/chunks/{home-paths-X6RB72PF.js → home-paths-UYEDTYXU.js} +2 -2
  67. package/dist-cli/chunks/{inspect-UFYXDO6B.js → inspect-K2FN4JPL.js} +96 -124
  68. package/dist-cli/chunks/install-R4H47HDX.js +2 -0
  69. package/dist-cli/chunks/{install-desktop-W6QJX52Y.js → install-desktop-BDDNVONK.js} +3 -3
  70. package/dist-cli/chunks/{keys-ORDSAMP7.js → keys-QH5VOSUK.js} +2 -2
  71. package/dist-cli/chunks/{launch-NQZTWTPY.js → launch-K2LP5XFZ.js} +3 -3
  72. package/dist-cli/chunks/{login-J2NVLHK5.js → login-5AJTPRVD.js} +4 -4
  73. package/dist-cli/chunks/{logout-HI7A6PFH.js → logout-45VCRSXX.js} +2 -2
  74. package/dist-cli/chunks/{maestro-KIOOFK5M.js → maestro-5LDII3YE.js} +2 -2
  75. package/dist-cli/chunks/{preview-QUJO4B4G.js → preview-IA2UUMLO.js} +2 -2
  76. package/dist-cli/chunks/{profile-U6RWYQV2.js → profile-ZALUAYTJ.js} +2 -2
  77. package/dist-cli/chunks/{react-3V65RTQC.js → react-KJBOHVG7.js} +2 -2
  78. package/dist-cli/chunks/{record-476LFCQV.js → record-UI226Z7F.js} +2 -2
  79. package/dist-cli/chunks/runtime-JNHCYB5L.js +2 -0
  80. package/dist-cli/chunks/{runtime-delivery-BSRHUXJQ.js → runtime-delivery-Y4QVOPLO.js} +2 -2
  81. package/dist-cli/chunks/{screenshot-2S3BCN35.js → screenshot-SV5S4UGU.js} +2 -2
  82. package/dist-cli/chunks/{screenshot-mode-SZCHOYZV.js → screenshot-mode-NCISGI6W.js} +2 -2
  83. package/dist-cli/chunks/{screenshots-LGP7LA3M.js → screenshots-MQZDYKF5.js} +2 -2
  84. package/dist-cli/chunks/{server-G4BGS6GE.js → server-RLDTPMHN.js} +2 -2
  85. package/dist-cli/chunks/setup-repo-F4RNWTDL.js +2 -0
  86. package/dist-cli/chunks/{skills-2YOLQVV6.js → skills-NECP76E4.js} +2 -2
  87. package/dist-cli/chunks/{start-SF3I4SLN.js → start-K4ASMK7D.js} +4 -4
  88. package/dist-cli/chunks/store-TLB2YDDQ.js +2 -0
  89. package/dist-cli/chunks/telemetry-EXCKYRZL.js +2 -0
  90. package/dist-cli/chunks/{test-YYHXTVDI.js → test-YJLRC3IE.js} +3 -3
  91. package/dist-cli/chunks/three-mode-NAAIMEHL.js +54 -0
  92. package/dist-cli/chunks/{timeline-IOEIFEH2.js → timeline-BJXCTH7E.js} +2 -2
  93. package/dist-cli/chunks/{upgrade-YF2U5QJY.js → upgrade-NRJOML2W.js} +2 -2
  94. package/dist-cli/chunks/upload-BQTZTOJL.js +2 -0
  95. package/dist-cli/chunks/{web-GAOXH77P.js → web-P3IP7M5Q.js} +2 -2
  96. package/dist-cli/chunks/{what-happened-DBI2RQVE.js → what-happened-5Q2RBX5R.js} +2 -2
  97. package/dist-cli/chunks/{whoami-YDAMLYNA.js → whoami-7W6WPTVA.js} +2 -2
  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 +1 -1
  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 +1 -1
  116. package/dist-lib/vite.cjs +1 -1
  117. package/package.json +1 -1
  118. package/dist-cli/chunks/auto-bootstrap-OYBDYAZM.js +0 -2
  119. package/dist-cli/chunks/beta-D4OEPOSE.js +0 -2
  120. package/dist-cli/chunks/chunk-2QNHBNWB.js +0 -16
  121. package/dist-cli/chunks/chunk-A3YSGT76.js +0 -37
  122. package/dist-cli/chunks/chunk-DSJ7PGU3.js +0 -2
  123. package/dist-cli/chunks/chunk-DVCE2KQL.js +0 -108
  124. package/dist-cli/chunks/chunk-KVQWMXDV.js +0 -2
  125. package/dist-cli/chunks/chunk-SEETW74F.js +0 -1
  126. package/dist-cli/chunks/chunk-ULHAQFCE.js +0 -1
  127. package/dist-cli/chunks/chunk-YVGHAT6Q.js +0 -1
  128. package/dist-cli/chunks/cli-version-2VO66OZ6.js +0 -2
  129. package/dist-cli/chunks/control-W3BOP6AT.js +0 -2
  130. package/dist-cli/chunks/demo-app-registry-7GNP7WE4.js +0 -2
  131. package/dist-cli/chunks/drivers-YGVUWGMB.js +0 -2
  132. package/dist-cli/chunks/flow-OUOMEOSC.js +0 -2
  133. package/dist-cli/chunks/install-NBUHIXEP.js +0 -2
  134. package/dist-cli/chunks/runtime-4TK5DY5R.js +0 -2
  135. package/dist-cli/chunks/setup-repo-5LUDPPSI.js +0 -2
  136. package/dist-cli/chunks/store-LLUQKQB7.js +0 -2
  137. package/dist-cli/chunks/telemetry-RDTORLS2.js +0 -2
  138. package/dist-cli/chunks/three-mode-5U3H4QDF.js +0 -39
  139. package/dist-cli/chunks/upload-3DFSK4NV.js +0 -2
@@ -1,5 +1,5 @@
1
- /*! sootsim v0.1.52 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{E as F,r as S,s as k,t as g}from"./chunk-DVCE2KQL.js";import{c as b,e as y}from"./chunk-MBH3NFBC.js";import{b as w}from"./chunk-CTEXZ7BE.js";import"./chunk-DSJ7PGU3.js";import"./chunk-JPLTR6JM.js";import"./chunk-6QDFLMJL.js";function M(t){let e=[];for(let n=0;n<t.length;n++)if(t[n]==="--since"&&n+1<t.length){e.push(n,n+1);let s=t[n+1].trim(),a=/^(\d+(?:\.\d+)?)(ms|s|m)?$/.exec(s);if(a){let l=Number(a[1]),u=a[2]??"ms",r=u==="s"?l*1e3:u==="m"?l*6e4:l;return{since:Date.now()-r,consumed:e}}let o=Number(s);if(Number.isFinite(o)&&o>1e12)return{since:o,consumed:e}}return{consumed:e}}function E(t){let e=[];for(let n=0;n<t.length;n++)if(t[n]==="--kinds"&&n+1<t.length)return e.push(n,n+1),{kinds:t[n+1].split(",").map(s=>s.trim()).filter(Boolean),consumed:e};return{consumed:e}}function C(t){let e=[];for(let n=0;n<t.length;n++)if(t[n]==="--limit"&&n+1<t.length){e.push(n,n+1);let s=Number(t[n+1]);if(Number.isFinite(s)&&s>0)return{limit:s,consumed:e}}return{consumed:e}}function _(t,e){if(e===null)return new Date(t).toLocaleTimeString();let n=(t-e)/1e3;return`${n>=0?"+":""}${n.toFixed(2)}s`}function j(t,e){switch(t){case"app-launch":return e.phase==="launch"?`launch ${e.appName??e.toAppId??""}`:`dismiss ${e.appName??e.fromAppId??""} \u2192 ${e.toAppId??""}`;case"toast":return`"${e.text??""}"${e.durationMs?` (${e.durationMs}ms)`:""}`;case"keyboard":return`${e.phase??"?"}${e.heightPx?` h=${e.heightPx}`:""}${e.mode?` ${e.mode}`:""}`;case"screen":return`${e.phase??"?"} ${e.name??e.activeName??""}`;case"route":return`${e.phase??"?"} ${e.path??e.pathname??""}`;case"alert":case"actionsheet":case"picker":return`${e.phase??"?"} ${e.title??e.message??""}`;case"notification":return`${e.title??""}${e.body?` \u2014 ${e.body}`:""}`;case"fetch":return`${e.method??"GET"} ${e.url??""}${e.status?` -> ${e.status}`:""}`;case"console":return`${e.level??"log"}: ${(e.message??"").toString().slice(0,120)}`;case"shell":return`${e.event??e.type??e.phase??""}`;case"scroll":return`${e.phase??"?"} ${e.target??""}`;case"gesture":return`${e.phase??"?"} ${e.type??""}`;case"text-input":return`${e.phase??"?"}${e.value!==void 0?` "${String(e.value).slice(0,40)}"`:""}`;case"react-commit":{let n=e.slowest;return`${e.fiberCount??"?"} fibers ${e.durationMs??"?"}ms${n?.displayName?` \xB7 ${n.displayName} ${n.durationMs??"?"}ms`:""}`}case"reanimated":case"animation":return`${e.kind??""} ${e.target??""}${e.durationMs?` ${e.durationMs}ms`:""}`}}function N(t,e){let n=_(t.t,e).padStart(8),s=t.context.padEnd(6),a=`[${t.kind}]`.padEnd(15),o="",l=t.data;return l&&typeof l=="object"&&(o=j(t.kind,l)),` ${n} ${s} ${a} ${o}`}function T(t){let e=[],n={label:"initial state",events:[],startedAt:t[0]?.t??null};e.push(n);for(let s of t)if(n.events.push(s),s.kind==="screen"||s.kind==="route"){let a=s.data,o=a?.phase;if(!o||o==="enter"||o==="appear"||o==="active"){let l=a?.name||a?.activeName||a?.path||a?.pathname||s.kind;e.length===1&&n.events.length===1?n.label=`${s.kind}: ${l}`:(n={label:`${s.kind}: ${l}`,events:[],startedAt:s.t},e.push(n))}}return e}async function O(t,e){let n=b(t,{port:e.port,stripBooleanFlags:["--summary","--all","--json","--no-advance","--help","-h","--flow"],stripValueFlags:["--since","--kinds","--limit"]});(t.includes("--help")||t.includes("-h"))&&(console.log(`
1
+ /*! sootsim v0.1.53 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
+ import{J as F,w as S,x as k,y as g}from"./chunk-QTVGSFY6.js";import{c as b,e as y}from"./chunk-GWGF4J4Y.js";import{b as w}from"./chunk-STWL7EXR.js";import"./chunk-YCPH4ZTS.js";import"./chunk-E3S6U2QR.js";import"./chunk-LELB2PV3.js";function M(t){let e=[];for(let n=0;n<t.length;n++)if(t[n]==="--since"&&n+1<t.length){e.push(n,n+1);let s=t[n+1].trim(),a=/^(\d+(?:\.\d+)?)(ms|s|m)?$/.exec(s);if(a){let l=Number(a[1]),u=a[2]??"ms",r=u==="s"?l*1e3:u==="m"?l*6e4:l;return{since:Date.now()-r,consumed:e}}let o=Number(s);if(Number.isFinite(o)&&o>1e12)return{since:o,consumed:e}}return{consumed:e}}function E(t){let e=[];for(let n=0;n<t.length;n++)if(t[n]==="--kinds"&&n+1<t.length)return e.push(n,n+1),{kinds:t[n+1].split(",").map(s=>s.trim()).filter(Boolean),consumed:e};return{consumed:e}}function C(t){let e=[];for(let n=0;n<t.length;n++)if(t[n]==="--limit"&&n+1<t.length){e.push(n,n+1);let s=Number(t[n+1]);if(Number.isFinite(s)&&s>0)return{limit:s,consumed:e}}return{consumed:e}}function _(t,e){if(e===null)return new Date(t).toLocaleTimeString();let n=(t-e)/1e3;return`${n>=0?"+":""}${n.toFixed(2)}s`}function j(t,e){switch(t){case"app-launch":return e.phase==="launch"?`launch ${e.appName??e.toAppId??""}`:`dismiss ${e.appName??e.fromAppId??""} \u2192 ${e.toAppId??""}`;case"toast":return`"${e.text??""}"${e.durationMs?` (${e.durationMs}ms)`:""}`;case"keyboard":return`${e.phase??"?"}${e.heightPx?` h=${e.heightPx}`:""}${e.mode?` ${e.mode}`:""}`;case"screen":return`${e.phase??"?"} ${e.name??e.activeName??""}`;case"route":return`${e.phase??"?"} ${e.path??e.pathname??""}`;case"alert":case"actionsheet":case"picker":return`${e.phase??"?"} ${e.title??e.message??""}`;case"notification":return`${e.title??""}${e.body?` \u2014 ${e.body}`:""}`;case"fetch":return`${e.method??"GET"} ${e.url??""}${e.status?` -> ${e.status}`:""}`;case"console":return`${e.level??"log"}: ${(e.message??"").toString().slice(0,120)}`;case"shell":return`${e.event??e.type??e.phase??""}`;case"scroll":return`${e.phase??"?"} ${e.target??""}`;case"gesture":return`${e.phase??"?"} ${e.type??""}`;case"text-input":return`${e.phase??"?"}${e.value!==void 0?` "${String(e.value).slice(0,40)}"`:""}`;case"react-commit":{let n=e.slowest;return`${e.fiberCount??"?"} fibers ${e.durationMs??"?"}ms${n?.displayName?` \xB7 ${n.displayName} ${n.durationMs??"?"}ms`:""}`}case"reanimated":case"animation":return`${e.kind??""} ${e.target??""}${e.durationMs?` ${e.durationMs}ms`:""}`}}function N(t,e){let n=_(t.t,e).padStart(8),s=t.context.padEnd(6),a=`[${t.kind}]`.padEnd(15),o="",l=t.data;return l&&typeof l=="object"&&(o=j(t.kind,l)),` ${n} ${s} ${a} ${o}`}function T(t){let e=[],n={label:"initial state",events:[],startedAt:t[0]?.t??null};e.push(n);for(let s of t)if(n.events.push(s),s.kind==="screen"||s.kind==="route"){let a=s.data,o=a?.phase;if(!o||o==="enter"||o==="appear"||o==="active"){let l=a?.name||a?.activeName||a?.path||a?.pathname||s.kind;e.length===1&&n.events.length===1?n.label=`${s.kind}: ${l}`:(n={label:`${s.kind}: ${l}`,events:[],startedAt:s.t},e.push(n))}}return e}async function O(t,e){let n=b(t,{port:e.port,stripBooleanFlags:["--summary","--all","--json","--no-advance","--help","-h","--flow"],stripValueFlags:["--since","--kinds","--limit"]});(t.includes("--help")||t.includes("-h"))&&(console.log(`
3
3
  sootsim what-happened \u2014 show recent events from the semantic timeline
4
4
 
5
5
  usage:
@@ -1,2 +1,2 @@
1
- /*! sootsim v0.1.52 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{d as i}from"./chunk-BF7F45CZ.js";import{d as n}from"./chunk-DNKB2V2W.js";import"./chunk-JPLTR6JM.js";import"./chunk-6QDFLMJL.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
+ /*! sootsim v0.1.53 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
+ import{d as i}from"./chunk-IS5ORPFW.js";import{d as n}from"./chunk-CTDDR7HW.js";import"./chunk-E3S6U2QR.js";import"./chunk-LELB2PV3.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.52 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.53 | (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.52 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.53 | (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.52 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.53 | (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.52 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.53 | (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.52 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.53 | (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.52 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.53 | (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.52 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.53 | (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.52 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.53 | (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.52 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.53 | (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.52 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.53 | (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.52 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.53 | (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.52 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.53 | (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.52 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.53 | (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.52 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.53 | (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.52 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.53 | (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.52 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.53 | (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.52 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.53 | (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.52 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.53 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
package/dist-lib/vite.cjs CHANGED
@@ -1,4 +1,4 @@
1
- /*! sootsim v0.1.52 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.53 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sootsim",
3
- "version": "0.1.52",
3
+ "version": "0.1.53",
4
4
  "description": "sootsim CLI + vite/metro plugins + skills registry. bridge client for driving the proprietary sootsim-engine over WebSocket.",
5
5
  "author": "Tamagui LLC",
6
6
  "license": "MIT",
@@ -1,2 +0,0 @@
1
- /*! sootsim v0.1.52 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{a,b,c,d}from"./chunk-MSKCUZ5B.js";import"./chunk-MBH3NFBC.js";import"./chunk-CTEXZ7BE.js";import"./chunk-DSJ7PGU3.js";import"./chunk-JPLTR6JM.js";import"./chunk-6QDFLMJL.js";export{c as ensureDaemonRunning,a as ensureRuntimeInstalled,d as ensureSootsimReady,b as resolveBootstrapPort};
@@ -1,2 +0,0 @@
1
- /*! sootsim v0.1.52 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{a,b,c,d,e}from"./chunk-U3UHXJNE.js";import"./chunk-6QDFLMJL.js";export{e as BETA_ASK_HEADLINE,c as BETA_LABEL,d as BETA_TAGLINE,b as BETA_VERSION_TARGET,a as IS_BETA};
@@ -1,16 +0,0 @@
1
- /*! sootsim v0.1.52 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{c as l,e as d,h as c}from"./chunk-MBH3NFBC.js";function g(n){let e=n[0]?.toLowerCase()??"toggle";return e!=="on"&&e!=="off"&&e!=="toggle"&&(console.error(` unknown argument: "${e}" (expected on | off | toggle)`),process.exit(1)),e}async function u(n,e,o){let s=l(n,{port:e.port}),a=g(s.positional),r=d({...s,commandTimeoutMs:5e3});try{let i=!!(await c(r,"SootSim.bridges.settings.get"))?.[o.modeKey],t=a==="on"?!0:a==="off"?!1:!i;if(i===t){console.log(` ${o.displayName}: already ${t?"on":"off"}`);return}if(!await r.send({type:"evaluate",acquireLock:!0,code:`(async () => {
3
- const modeKey = ${JSON.stringify(o.modeKey)}
4
- const target = ${JSON.stringify(t)}
5
- window.dispatchEvent(new CustomEvent('sootsim:shell-command', {
6
- detail: { type: 'fire-action', id: ${JSON.stringify(o.actionId)} },
7
- }))
8
- const deadline = Date.now() + 1200
9
- while (Date.now() < deadline) {
10
- if (Boolean(window.SootSim?.bridges?.settings?.get?.()?.[modeKey]) === target) {
11
- return true
12
- }
13
- await new Promise((resolve) => setTimeout(resolve, 40))
14
- }
15
- return false
16
- })()`}))throw new Error(`${o.displayName} did not change to ${t?"on":"off"}; the live shell may not support this mode`);console.log(` ${o.displayName}: ${i?"on":"off"} -> ${t?"on":"off"}`)}finally{r.close()}}export{u as a};
@@ -1,37 +0,0 @@
1
- /*! sootsim v0.1.52 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{v as p}from"./chunk-DVCE2KQL.js";import{d as u,h as m,i as w}from"./chunk-MBH3NFBC.js";var y={timeoutMs:1800,settleMs:48,startWindowMs:64};function c(e){return new Promise(t=>setTimeout(t,e))}function h(e){return e.includes("--json")}function S(e){process.stdout.write(`${JSON.stringify(e??null,null,2)}
3
- `)}async function g(e,t,...r){return m(e,`__sootsimTest.${t}`,...r)}async function f(e,t,...r){return w(e,`SootSim.bridges.mainShell.${t}`,...r)}async function T(e,t={}){try{let r=await g(e,"waitForScreenTransitions",y);if(!t.verbose||!r?.started)return;if(r.timedOut){console.log(` screen transition still active after ${r.waitedMs}ms; continuing`);return}r.waitedMs>0&&console.log(` waited ${r.waitedMs}ms for screen transition settle`)}catch{}}async function v(e,t,r,...n){let o=Date.now()+Math.max(0,r);for(;;)try{return await f(e,t,...n)}catch(s){if(!p(s)||Date.now()>=o)throw s;await c(50)}}async function x(e,t,r,n={}){let o=n.attempts??30,s=n.intervalMs??500,i=n.minNodeCount??10;for(let a=0;a<o;a++){let l=u(e,{commandTimeoutMs:t,simId:r});try{let d=await l.send({type:"evaluate",code:"(async () => (await window.__sootsimTest?.getNodeCount()) || 0)()"});if(typeof d=="number"&&d>i)return{bridge:l,count:d}}catch{}l.close(),await c(s)}return null}async function _(e,t,r,n={}){let o=n.timeoutMs??8e3,s=n.intervalMs??250,i=Date.now()+o;for(;Date.now()<i;){let a=u(e,{commandTimeoutMs:t,simId:r});try{return await a.send({type:"evaluate",code:"1"}),a}catch{a.close()}await c(s)}return null}async function W(e,t={}){let r=t.timeoutMs??1e4,n=t.errorGraceMs??3e3,o=t.pollIntervalMs??200;return await e.send({type:"evaluate",code:`(async () => {
4
- const start = Date.now()
5
- const deadline = start + ${r}
6
- const errorGraceAt = start + ${n}
7
- const getNodes = async () => {
8
- try { return (await window.__sootsimTest?.getNodeCount?.()) || 0 } catch { return 0 }
9
- }
10
- const getErrors = () => {
11
- try { return window.__sootsimConsole?.count?.()?.errors ?? 0 } catch { return 0 }
12
- }
13
- let readyFired = window.__sootsimExternalAppReady === true
14
- const onReady = () => { readyFired = true }
15
- try { window.addEventListener('sootsim:externalAppReady', onReady, { once: true }) } catch {}
16
- try {
17
- while (Date.now() < deadline) {
18
- if (readyFired || window.__sootsimExternalAppReady === true) {
19
- return { ready: true, source: 'flag', elapsedMs: Date.now() - start, nodes: await getNodes(), errors: getErrors() }
20
- }
21
- if (Date.now() >= errorGraceAt) {
22
- const errors = getErrors()
23
- if (errors > 0 && window.__sootsimExternalAppReady !== true) {
24
- return { ready: false, source: 'error-bail', elapsedMs: Date.now() - start, nodes: await getNodes(), errors }
25
- }
26
- }
27
- await new Promise((r) => setTimeout(r, ${o}))
28
- }
29
- const nodes = await getNodes()
30
- if (nodes > 50) {
31
- return { ready: true, source: 'nodes-fallback', elapsedMs: Date.now() - start, nodes, errors: getErrors() }
32
- }
33
- return { ready: false, source: 'timeout', elapsedMs: Date.now() - start, nodes, errors: getErrors() }
34
- } finally {
35
- try { window.removeEventListener('sootsim:externalAppReady', onReady) } catch {}
36
- }
37
- })()`})??{ready:!1,source:"timeout",elapsedMs:0,nodes:0,errors:0}}export{c as a,h as b,S as c,g as d,T as e,v as f,x as g,_ as h,W as i};
@@ -1,2 +0,0 @@
1
- /*! sootsim v0.1.52 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- var O="sootsim close";export{O as a};
@@ -1,108 +0,0 @@
1
- /*! sootsim v0.1.52 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- async function y(e){let t=await e.send({type:"evaluate",code:"(async () => await window.__sootsimTest.getNodeCount())()"});return{nodes:typeof t=="number"?t:0}}async function p(e,t=5){let n=await e.send({type:"evaluate",code:`(async () => await window.__sootsimTest.dumpTree(${t}))()`});return{depth:t,tree:n}}async function m(e){let t=await e.send({type:"evaluate",code:"window.location.href"});return{url:typeof t=="string"?t:""}}async function g(e,t){let n=`(async () => {
3
- const t = window.__sootsimTest
4
- const mainShell = window.SootSim?.bridges?.mainShell
5
- const kb = window.__sootsimKeyboard
6
- if (!t) return { error: 'no test bridge' }
7
-
8
- let shell = null
9
- try {
10
- shell = typeof mainShell?.getState === 'function' ? await mainShell.getState() : null
11
- } catch {}
12
-
13
- const tree = await t.dumpTree(12, ${JSON.stringify(t)})
14
- const nodeCount = (await t.getNodeCount?.()) || 0
15
- const keyboard = kb && typeof kb.getLayout === 'function' ? kb.getLayout() : null
16
- return { tree, shell, nodeCount, keyboard }
17
- })()`;return await e.send({type:"evaluate",code:n})??{}}function l(e){return e.testId?{mode:"testid",code:`(async () => {
18
- const t = window.__sootsimTest
19
- return (await t.findByTestId(${JSON.stringify(e.testId)})) || (await t.findById(${JSON.stringify(e.testId)}))
20
- })()`}:e.role?{mode:"role",code:`(async () => await window.__sootsimTest.queryAll({ hasRole: ${JSON.stringify(e.role)}, pruneHidden: true }))()`}:e.type?{mode:"type",code:`(async () => await window.__sootsimTest.queryAll({ type: ${JSON.stringify(e.type)}, pruneHidden: true }))()`}:e.pressable?{mode:"pressable",code:`(async () => {
21
- const t = window.__sootsimTest
22
- const all = await t.queryAll({ pruneHidden: true })
23
- return all.filter(n => n.pressable)
24
- })()`}:e.interactive?{mode:"interactive-targets",code:`(async () => {
25
- const t = window.__sootsimTest
26
- const all = await t.queryAll({ pruneHidden: true })
27
- return all.filter(n => n.pressable && n.layout && n.layout.width > 0 && n.layout.height > 0)
28
- })()`}:e.visible?{mode:"visible",code:`(async () => {
29
- const all = await window.__sootsimTest.queryAll({ pruneHidden: true })
30
- return all.filter(n => n.layout && n.layout.width > 0 && n.layout.height > 0)
31
- })()`}:e.text?{mode:"text",code:`(async () => await window.__sootsimTest.findByText(${JSON.stringify(e.text)}))()`}:null}async function b(e,t){let n=l(t);if(!n)return null;let r=await e.send({type:"evaluate",code:n.code});return{mode:n.mode,result:r}}function f(e){return[...e].sort((t,n)=>i(n)-i(t))}function i(e){let t=0;e.testID&&(t+=100),typeof e.text=="string"&&e.text.trim().length>0&&(t+=60),typeof e.accessibilityLabel=="string"&&e.accessibilityLabel.trim().length>0&&(t+=30),e.accessibilityRole&&(t+=15);let n=e.layout?.width??0,r=e.layout?.height??0,o=n*r;return o>=400&&o<=6e4?t+=25:o>6e4&&(t-=20),(e.absolutePosition?.y??0)<0&&(t-=30),t}function w(e){if(e.testID)return`sootsim do tap-id ${a(e.testID)}`;let t=typeof e.text=="string"?e.text.trim():"";if(t.length>0&&t.length<=80)return`sootsim do tap-text ${a(t)}`;let n=Math.round(((e.absolutePosition?.x??0)+(e.layout?.width??0)/2)*10)/10,r=Math.round(((e.absolutePosition?.y??0)+(e.layout?.height??0)/2)*10)/10;return`sootsim do tap ${n} ${r}`}function a(e){return/^[A-Za-z0-9_./@:-]+$/.test(e)?e:`'${e.replace(/'/g,"'\\''")}'`}var u=`(async () => {
32
- const t = window.__sootsimTest
33
- let nodes = 0
34
- try { nodes = (await t?.getNodeCount?.()) || 0 } catch {}
35
- return {
36
- flag: (window).__sootsimExternalAppReady,
37
- at: (window).__sootsimExternalAppReadyAt || 0,
38
- nodes,
39
- }
40
- })()`;async function S(e,t=2e4){let n=Date.now(),r=n+t,o={flag:void 0,at:0,nodes:0};for(;Date.now()<r;){try{o=await e.send({type:"evaluate",code:u})??o}catch{}if(o.flag===!0)return{ready:!0,elapsedMs:Date.now()-n,nodes:o.nodes};await new Promise(s=>setTimeout(s,150))}return{ready:!1,elapsedMs:Date.now()-n,nodes:o.nodes}}async function h(e,t,n=5e3){return await e.send({type:"evaluate",code:`(async () => {
41
- const start = Date.now()
42
- const deadline = start + ${n}
43
- const t = window.__sootsimTest
44
- const find = async () => {
45
- try {
46
- return (await t?.findByTestId?.(${JSON.stringify(t)})) ||
47
- (await t?.findById?.(${JSON.stringify(t)})) || null
48
- } catch {}
49
- return null
50
- }
51
- while (Date.now() < deadline) {
52
- const node = await find()
53
- if (node && node.layout && node.layout.width > 0 && node.layout.height > 0) {
54
- return { found: true, node, elapsed: Date.now() - start }
55
- }
56
- await new Promise((r) => setTimeout(r, 80))
57
- }
58
- return { found: false, elapsed: Date.now() - start }
59
- })()`})??{found:!1,elapsed:n}}async function x(e,t=20){let n=await e.send({type:"evaluate",code:`window.__sootsimConsole?.getErrors(${t}) || []`});return Array.isArray(n)?n:[]}async function v(e,t=20){let n=await e.send({type:"evaluate",code:`window.__sootsimConsole?.getWarnings(${t}) || []`});return Array.isArray(n)?n:[]}async function _(e){await e.send({type:"evaluate",code:'window.__sootsimConsole?.clear(); "cleared"'})}async function k(e,t={}){let n=t.limit??20,r=t.failed===!1?"getRequests":"getFailedRequests",o=await e.send({type:"call",path:`__sootsimTest.${r}`,args:[n]});return Array.isArray(o)?o:[]}async function T(e){await e.send({type:"call",path:"__sootsimTest.clearRequests",args:[]})}async function I(e){let t=await e.send({type:"evaluate",code:`(() => {
60
- const obs = window.__sootsimObservability;
61
- if (!obs) return { ok: false };
62
- return { ok: true, entries: obs.logs.getSnapshot() };
63
- })()`});if(!t||!t.ok)throw new Error("observability bridge not installed \u2014 is the engine running?");return t.entries??[]}async function L(e){await e.send({type:"evaluate",code:'window.__sootsimObservability?.logs.clear(); "cleared"'})}function B(e,t={}){let n=e;if(t.showInternal||(n=n.filter(r=>{let o=r.args[0];return!(typeof o=="string"&&o.startsWith("[sootsim]"))})),t.level&&(n=n.filter(r=>t.level.has(r.level))),t.filter){let r=t.filter.toLowerCase();n=n.filter(o=>o.args.join(" ").toLowerCase().includes(r))}return n}async function P(e,t){return await e.send({type:"call",path:"SootSim.bridges.timeline.summary",args:[t]})}async function D(e,t){return await e.send({type:"call",path:"SootSim.bridges.timeline.recent",args:[t]})}async function R(e,t,n){await e.send({type:"call",path:"SootSim.bridges.timeline.cursorAdvance",args:[t,n]})}async function E(e){return await e.send({type:"evaluate",code:`(() => {
64
- const kb = window.__sootsimKeyboard
65
- if (!kb || typeof kb.getLayout !== 'function') {
66
- return { error: 'keyboard bridge getLayout() not available' }
67
- }
68
- return kb.getLayout()
69
- })()`})??{error:"keyboard bridge returned no result"}}function c(e){let t=e instanceof Error?e.message:String(e);return t.includes("call target not found: SootSim.bridges.mainShell")||t.includes("test bridge unavailable before app-in-worker boot")}async function d(e,t=0){let n=Date.now()+Math.max(0,t);for(;;)try{return await e.send({type:"call",path:"SootSim.bridges.mainShell.getState",args:[]})}catch(r){if(!c(r)||Date.now()>=n)throw r;await new Promise(o=>setTimeout(o,50))}}async function $(e){let t=await e.send({type:"evaluate",code:`(async () => {
70
- const test = window.__sootsimTest
71
- const kb = window.__sootsimKeyboard
72
- const navSnap =
73
- test && typeof test.getNavigationSnapshot === 'function'
74
- ? await test.getNavigationSnapshot()
75
- : null
76
- const keyboard =
77
- kb && typeof kb.getLayout === 'function'
78
- ? (() => {
79
- const layout = kb.getLayout()
80
- return layout ? {
81
- visible: layout.visible,
82
- mode: layout.mode,
83
- spec: layout.spec
84
- ? {
85
- keyboardType: layout.spec.keyboardType,
86
- returnKeyType: layout.spec.returnKeyType,
87
- }
88
- : null,
89
- } : null
90
- })()
91
- : null
92
- return { nav: navSnap, keyboard }
93
- })()`});return{shell:await d(e,500).catch(()=>null),nav:t?.nav??null,keyboard:t?.keyboard??null}}async function H(e){return e.send({type:"evaluate",code:"window.__sootsimDebug.status()"})}async function C(e){return e.send({type:"evaluate",code:"window.__sootsimDebug.flags()"})}async function N(e,t){let n=t==="sheets"?"findSheets":"findPortals";return e.send({type:"evaluate",code:`window.__sootsimDebug.${n}()`})}async function A(e,t,n=50){let r=t&&t!=="all"?`window.__sootsimDebug.recent(${JSON.stringify(t)}, ${n})`:`window.__sootsimDebug.recent(undefined, ${n})`;return e.send({type:"evaluate",code:r})}async function O(e,t,n){let r=n.length>0?n.map(o=>JSON.stringify(o)).join(", "):t==="disable"?"'all'":"";return e.send({type:"evaluate",code:`window.__sootsimDebug.${t}(${r})`})}async function K(e){return await e.send({type:"evaluate",code:`(async () => {
94
- const host = window.__sootsimRenderHost
95
- const stats = host?.queryStats ? await host.queryStats() : null
96
- const hostMem = performance.memory
97
- ? {
98
- usedJSHeapSize: performance.memory.usedJSHeapSize,
99
- totalJSHeapSize: performance.memory.totalJSHeapSize,
100
- jsHeapSizeLimit: performance.memory.jsHeapSizeLimit,
101
- }
102
- : null
103
- return {
104
- imageLoader: stats?.memory?.imageLoader ?? null,
105
- workerHeap: stats?.memory?.workerHeap ?? null,
106
- hostHeap: hostMem,
107
- }
108
- })()`})??{imageLoader:null,workerHeap:null,hostHeap:null}}function F(e){if(e.total===0)return"nothing recorded";let t=[],n=["error","warning","console","fetch","toast","alert","actionsheet","picker","notification","screen","route","keyboard","app-launch","shell","scroll","gesture","text-input","react-commit","animation","reanimated"],r=new Set;for(let o of n){let s=e.byKind[o];s&&(t.push(`${s} ${o}${s===1?"":"s"}`),r.add(o))}for(let[o,s]of Object.entries(e.byKind))!r.has(o)&&s&&t.push(`${s} ${o}${s===1?"":"s"}`);return t.join(" \xB7 ")}export{y as a,p as b,m as c,g as d,b as e,f,w as g,S as h,h as i,x as j,v as k,_ as l,k as m,T as n,I as o,L as p,B as q,P as r,D as s,R as t,E as u,c as v,d as w,$ as x,H as y,C as z,N as A,A as B,O as C,K as D,F as E};
@@ -1,2 +0,0 @@
1
- /*! sootsim v0.1.52 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- var t="http://localhost:5173/";export{t as a};
@@ -1 +0,0 @@
1
- /*! sootsim v0.1.52 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
@@ -1 +0,0 @@
1
- /*! sootsim v0.1.52 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
@@ -1 +0,0 @@
1
- /*! sootsim v0.1.52 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
@@ -1,2 +0,0 @@
1
- /*! sootsim v0.1.52 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{a}from"./chunk-IQU56D6C.js";import"./chunk-6QDFLMJL.js";export{a as getCliVersion};
@@ -1,2 +0,0 @@
1
- /*! sootsim v0.1.52 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{d as a,e as b,f as c,g as d,h as e,i as f,j as g,k as h,l as i,m as j,n as k,o as l,p as m}from"./chunk-ABEYZDD7.js";import"./chunk-3MIWVHCX.js";import"./chunk-HRIQRZX3.js";import"./chunk-H4G7IRXG.js";import"./chunk-I5WEW3ES.js";import"./chunk-YVGHAT6Q.js";import"./chunk-EQPRFEHH.js";import"./chunk-MTE3DEWY.js";import"./chunk-KVQWMXDV.js";import"./chunk-MBH3NFBC.js";import"./chunk-CTEXZ7BE.js";import"./chunk-DSJ7PGU3.js";import"./chunk-JPLTR6JM.js";import"./chunk-6QDFLMJL.js";export{d as buildOpenUrl,c as buildShellUrl,f as printConnectedSims,a as resolveBundleTarget,b as resolveDefaultShellBaseUrl,l as runClaimCommand,m as runCloseCommand,k as runFocusCommand,h as runListCommand,i as runOpenCommand,j as runUseCommand,e as summarizeSimUrl,g as waitForSimMatch};
@@ -1,2 +0,0 @@
1
- /*! sootsim v0.1.52 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{a}from"./chunk-JPX7OS7B.js";import"./chunk-6QDFLMJL.js";export{a as APPS};
@@ -1,2 +0,0 @@
1
- /*! sootsim v0.1.52 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import"./chunk-SEETW74F.js";import{a,b,c,d,e,f,g,h,i}from"./chunk-H4G7IRXG.js";import"./chunk-I5WEW3ES.js";import"./chunk-YVGHAT6Q.js";import"./chunk-EQPRFEHH.js";import"./chunk-MTE3DEWY.js";import"./chunk-JPLTR6JM.js";import"./chunk-6QDFLMJL.js";export{e as ALL_DRIVERS,i as buildDriverListRows,a as chromiumDriver,b as electronDriver,f as getAllDrivers,g as getDriver,c as playwrightDriver,h as resolveDriver,d as systemDriver};
@@ -1,2 +0,0 @@
1
- /*! sootsim v0.1.52 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{a as c,b as d,c as e,d as f}from"./chunk-UCCSXQ2P.js";import"./chunk-T6RAXKVI.js";import"./chunk-4TSGUAV3.js";import"./chunk-ULHAQFCE.js";import"./chunk-MWGIKDXO.js";import"./chunk-IXITVIJV.js";import"./chunk-BF7F45CZ.js";import{c as a,d as b}from"./chunk-FPIJBBYW.js";import"./chunk-ABEYZDD7.js";import"./chunk-3MIWVHCX.js";import"./chunk-HRIQRZX3.js";import"./chunk-H4G7IRXG.js";import"./chunk-I5WEW3ES.js";import"./chunk-YVGHAT6Q.js";import"./chunk-EQPRFEHH.js";import"./chunk-MTE3DEWY.js";import"./chunk-JPX7OS7B.js";import"./chunk-USGUHWUJ.js";import"./chunk-KVQWMXDV.js";import"./chunk-7Y3FYPJH.js";import"./chunk-DNKB2V2W.js";import"./chunk-GNQSOQXZ.js";import"./chunk-Q2424XB2.js";import"./chunk-MBH3NFBC.js";import"./chunk-CTEXZ7BE.js";import"./chunk-DSJ7PGU3.js";import"./chunk-JPLTR6JM.js";import"./chunk-6QDFLMJL.js";export{c as discoverSootsimUrl,e as hoistLeadingSimFlag,a as parseFlowFile,f as runFlow,d as runFlowPlayback,b as validateFlowFile};
@@ -1,2 +0,0 @@
1
- /*! sootsim v0.1.52 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{a as o}from"./chunk-FVBSPGBR.js";import"./chunk-YDKXZS7D.js";import"./chunk-MSKCUZ5B.js";import"./chunk-7Y3FYPJH.js";import"./chunk-DNKB2V2W.js";import"./chunk-MBH3NFBC.js";import"./chunk-CTEXZ7BE.js";import"./chunk-DSJ7PGU3.js";import"./chunk-JPLTR6JM.js";import"./chunk-6QDFLMJL.js";async function t(n){console.error(" note: `sootsim install` is now `sootsim setup-repo`. forwarding\u2026\n"),await o(n)}export{t as runInstall};
@@ -1,2 +0,0 @@
1
- /*! sootsim v0.1.52 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{a}from"./chunk-PZJSYDQ7.js";import"./chunk-MBH3NFBC.js";import"./chunk-CTEXZ7BE.js";import"./chunk-DSJ7PGU3.js";import"./chunk-UXE5BFPK.js";import"./chunk-JPLTR6JM.js";import"./chunk-6QDFLMJL.js";export{a as runRuntime};
@@ -1,2 +0,0 @@
1
- /*! sootsim v0.1.52 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{a}from"./chunk-FVBSPGBR.js";import"./chunk-YDKXZS7D.js";import"./chunk-MSKCUZ5B.js";import"./chunk-7Y3FYPJH.js";import"./chunk-DNKB2V2W.js";import"./chunk-MBH3NFBC.js";import"./chunk-CTEXZ7BE.js";import"./chunk-DSJ7PGU3.js";import"./chunk-JPLTR6JM.js";import"./chunk-6QDFLMJL.js";export{a as runSetupRepo};
@@ -1,2 +0,0 @@
1
- /*! sootsim v0.1.52 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{a}from"./chunk-GNQSOQXZ.js";import"./chunk-Q2424XB2.js";import"./chunk-6QDFLMJL.js";export{a as settingsStore};
@@ -1,2 +0,0 @@
1
- /*! sootsim v0.1.52 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{a,b}from"./chunk-7Y3FYPJH.js";import"./chunk-DNKB2V2W.js";import"./chunk-JPLTR6JM.js";import"./chunk-6QDFLMJL.js";export{b as flushCliTelemetry,a as trackCliEvent};
@@ -1,39 +0,0 @@
1
- /*! sootsim v0.1.52 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{a as k}from"./chunk-2QNHBNWB.js";import{c as b,e as v,i as w}from"./chunk-MBH3NFBC.js";import"./chunk-CTEXZ7BE.js";import"./chunk-DSJ7PGU3.js";import"./chunk-JPLTR6JM.js";import"./chunk-6QDFLMJL.js";async function z(e,o){if((e.includes("--help")||e.includes("-h"))&&(console.log(`
3
- sootsim three-mode \u2014 toggle the 3d device stage
4
-
5
- usage:
6
- sootsim three-mode [on|off|toggle]
7
- sootsim three-mode configure [options]
8
- sootsim 3d-mode [on|off|toggle]
9
-
10
- arguments:
11
- on enable 3d mode
12
- off disable 3d mode
13
- toggle flip the current state (default)
14
-
15
- configure options:
16
- --background <id> set the 3d background
17
- --colorway <id> set the phone colorway
18
- --script <id> apply a camera preset pose
19
- --progress <0..1> script progress to sample (default: 1)
20
- --animate run the script instead of sampling one frame
21
- --slow run the script slowly when --animate is set
22
- --environment on|off enable or disable environment objects
23
- --env-shape <id> orb | pill | diamond | pane
24
- --env-spread <id> tight | medium | wide
25
- --env-size <id> small | medium | large
26
- --env-color <id> peach | gold | mint | sky | violet
27
- --env-glow on|off enable or disable environment glow
28
- --env-plastic on|off enable or disable environment plastic material
29
- --room on|off enable or disable the room effect
30
- --bokeh on|off enable or disable bokeh
31
- --reset-pose return to the default hero pose before other changes
32
-
33
- examples:
34
- sootsim three-mode
35
- sootsim three-mode on
36
- sootsim three-mode configure --script hero-arc --background gradient-neon
37
- sootsim three-mode configure --environment on --env-shape pane --room on
38
- sootsim 3d-mode off
39
- `),process.exit(0)),y(e)){await M(e,o);return}await k(e,o,{modeKey:"threeMode",displayName:"three-mode",actionId:"toggle-three-mode"})}function y(e){return e[0]==="configure"||e.some(o=>["--background","--colorway","--script","--progress","--animate","--slow","--environment","--env-shape","--env-spread","--env-size","--env-color","--env-glow","--env-plastic","--room","--bokeh","--reset-pose"].includes(o))}async function M(e,o){let n=b(e,{port:o.port,stripBooleanFlags:["--animate","--slow","--reset-pose"],stripValueFlags:["--background","--colorway","--script","--progress","--environment","--env-shape","--env-spread","--env-size","--env-color","--env-glow","--env-plastic","--room","--bokeh"]}),a=B(e),t=v({...n,commandTimeoutMs:8e3});try{let d=await w(t,"SootSim.bridges.threeMode.configure",a);console.log(` three-mode: configured (${$(d)})`)}finally{t.close()}}function B(e){let o=r=>e.find((i,c)=>e[c-1]===r),n={},a=o("--colorway");a&&(n.colorway=a);let t=o("--background");t&&(n.background=t);let d=s(o("--room"),"--room");d!==void 0&&(n.room=d);let m=s(o("--bokeh"),"--bokeh");m!==void 0&&(n.bokeh=m),e.includes("--reset-pose")&&(n.resetPose=!0);let p=s(o("--environment"),"--environment"),f={},l={};for(let[r,i]of[["--env-shape","shape"],["--env-spread","spread"],["--env-size","size"],["--env-color","color"]]){let c=o(r);c&&(f[i]=c)}let u=s(o("--env-glow"),"--env-glow");u!==void 0&&(l.glow=u);let g=s(o("--env-plastic"),"--env-plastic");g!==void 0&&(l.plastic=g),(p!==void 0||Object.keys(f).length>0||Object.keys(l).length>0)&&(n.environment=p===!1?!1:{pins:f,effects:l});let h=o("--script");if(h){let r=o("--progress"),i=r===void 0?1:Number.parseFloat(r);if(!Number.isFinite(i))throw new Error(`--progress expects a number from 0 to 1, got "${r}"`);n.script={id:h,progress:i,animate:e.includes("--animate"),slow:e.includes("--slow")}}return n}function s(e,o){if(e===void 0)return;let n=e.toLowerCase();if(["on","true","yes","1"].includes(n))return!0;if(["off","false","no","0"].includes(n))return!1;throw new Error(`${o} expects on or off, got "${e}"`)}function $(e){return[`ready=${!!e.ready}`,`background=${String(e.background??"unknown")}`,`colorway=${String(e.colorway??"unknown")}`,`environment=${e.environmentActive?"on":"off"}`,`room=${e.room?"on":"off"}`,`bokeh=${e.bokeh?"on":"off"}`].join(", ")}export{z as runThreeMode};
@@ -1,2 +0,0 @@
1
- /*! sootsim v0.1.52 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{a,b,c}from"./chunk-IXITVIJV.js";import"./chunk-BF7F45CZ.js";import"./chunk-YVGHAT6Q.js";import"./chunk-MTE3DEWY.js";import"./chunk-7Y3FYPJH.js";import"./chunk-DNKB2V2W.js";import"./chunk-MBH3NFBC.js";import"./chunk-CTEXZ7BE.js";import"./chunk-DSJ7PGU3.js";import"./chunk-JPLTR6JM.js";import"./chunk-6QDFLMJL.js";export{a as resolveDefaultUploadOrigin,b as resolvePublicPreviewOrigin,c as runUpload};