sootsim 0.1.53 → 0.1.55

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 (137) hide show
  1. package/dist-cli/bin.js +3 -3
  2. package/dist-cli/chunks/{agent-PA7ZGTHU.js → agent-K3IFO5CV.js} +2 -2
  3. package/dist-cli/chunks/{agent-wrapper-CVZFXQKJ.js → agent-wrapper-QLSTAEJA.js} +2 -2
  4. package/dist-cli/chunks/{assert-6LHIY63B.js → assert-5YXZANCD.js} +2 -2
  5. package/dist-cli/chunks/auto-bootstrap-EXYDOLCY.js +2 -0
  6. package/dist-cli/chunks/beta-ER25Q3B4.js +2 -0
  7. package/dist-cli/chunks/chunk-2EGTJLOK.js +2 -0
  8. package/dist-cli/chunks/{chunk-R3VVVXF3.js → chunk-4GLNQZFI.js} +2 -2
  9. package/dist-cli/chunks/{chunk-R5XV3WIE.js → chunk-4OOZDIIQ.js} +2 -2
  10. package/dist-cli/chunks/{chunk-XBP7BBSF.js → chunk-6AEQVSS6.js} +2 -2
  11. package/dist-cli/chunks/{chunk-ERC46HTZ.js → chunk-6KGSLO4W.js} +1 -1
  12. package/dist-cli/chunks/{chunk-LL3XAMKC.js → chunk-7CET27Q3.js} +2 -2
  13. package/dist-cli/chunks/{chunk-QTVGSFY6.js → chunk-AO7LMODD.js} +10 -10
  14. package/dist-cli/chunks/chunk-APAO2IQW.js +1 -0
  15. package/dist-cli/chunks/{chunk-5U2BN4IU.js → chunk-ATJEMKBT.js} +2 -2
  16. package/dist-cli/chunks/{chunk-5Q3XBH5M.js → chunk-BNX3LAMN.js} +2 -2
  17. package/dist-cli/chunks/{chunk-7ZHWA3WD.js → chunk-BTP3PAIO.js} +2 -2
  18. package/dist-cli/chunks/{chunk-XC3T7UDH.js → chunk-CKNMXP6L.js} +1 -1
  19. package/dist-cli/chunks/{chunk-FDA2NX2E.js → chunk-CT3BVUCO.js} +2 -2
  20. package/dist-cli/chunks/{chunk-CTGH5SFH.js → chunk-DC7ANPA5.js} +1 -1
  21. package/dist-cli/chunks/{chunk-6A4CZMPO.js → chunk-DFNL55QN.js} +2 -2
  22. package/dist-cli/chunks/{chunk-2ZBZCRN6.js → chunk-DVPSMF32.js} +1 -1
  23. package/dist-cli/chunks/{chunk-6JZNIGOQ.js → chunk-EVARILGS.js} +1 -1
  24. package/dist-cli/chunks/{chunk-ZYITMTYD.js → chunk-ITS6IHOX.js} +1 -1
  25. package/dist-cli/chunks/{chunk-CTDDR7HW.js → chunk-JHZ6QH6V.js} +2 -2
  26. package/dist-cli/chunks/{chunk-AYU6WUNF.js → chunk-LB4RU4OV.js} +1 -1
  27. package/dist-cli/chunks/{chunk-YEE4EO2P.js → chunk-LBFWPKYG.js} +1 -1
  28. package/dist-cli/chunks/{chunk-WXOAHKCZ.js → chunk-LOUL5QVO.js} +1 -1
  29. package/dist-cli/chunks/chunk-LXDHH3TW.js +11 -0
  30. package/dist-cli/chunks/chunk-MTLPC2NY.js +2 -0
  31. package/dist-cli/chunks/{chunk-WBAIONOO.js → chunk-N5EKXLXC.js} +2 -2
  32. package/dist-cli/chunks/{chunk-CW2X4KRW.js → chunk-NCAKZ2QL.js} +2 -2
  33. package/dist-cli/chunks/{chunk-LELB2PV3.js → chunk-OP4ALEJL.js} +1 -1
  34. package/dist-cli/chunks/{chunk-AFXPU7YQ.js → chunk-PKYDQIBB.js} +3 -3
  35. package/dist-cli/chunks/{chunk-7IYYIF5B.js → chunk-Q3LSFKVP.js} +2 -2
  36. package/dist-cli/chunks/{chunk-RBXJA2PW.js → chunk-Q5MLOHVB.js} +2 -2
  37. package/dist-cli/chunks/{chunk-E4JTYQVY.js → chunk-RN2SMUS4.js} +2 -2
  38. package/dist-cli/chunks/{chunk-N3RWXMD3.js → chunk-SDUNLEAF.js} +2 -2
  39. package/dist-cli/chunks/{chunk-GWGF4J4Y.js → chunk-SPJQ6B6W.js} +2 -2
  40. package/dist-cli/chunks/chunk-T6NGCA35.js +1 -0
  41. package/dist-cli/chunks/{chunk-LYHVX7TD.js → chunk-UF27WZ7Q.js} +3 -3
  42. package/dist-cli/chunks/chunk-UNLFZUUU.js +1 -0
  43. package/dist-cli/chunks/{chunk-IS5ORPFW.js → chunk-VPYEMRIC.js} +2 -2
  44. package/dist-cli/chunks/{chunk-CRUPWYHV.js → chunk-VZH3VTOY.js} +3 -3
  45. package/dist-cli/chunks/{chunk-MX5HFYST.js → chunk-W3M6NG6B.js} +1 -1
  46. package/dist-cli/chunks/{chunk-E3S6U2QR.js → chunk-WZDVJFJX.js} +1 -1
  47. package/dist-cli/chunks/{chunk-AZYLZGRV.js → chunk-X46ROUJY.js} +1 -1
  48. package/dist-cli/chunks/chunk-X4VUDSXT.js +3 -0
  49. package/dist-cli/chunks/{chunk-SQZXAKBL.js → chunk-YDKX4GPS.js} +2 -2
  50. package/dist-cli/chunks/{chunk-STWL7EXR.js → chunk-ZNXPOJDD.js} +1 -1
  51. package/dist-cli/chunks/cli-version-FQQ7DWZU.js +2 -0
  52. package/dist-cli/chunks/{compat-CHBJ7TDK.js → compat-7EFQ4K63.js} +3 -3
  53. package/dist-cli/chunks/{config-XTZOLM5E.js → config-BXQ5RYP3.js} +2 -2
  54. package/dist-cli/chunks/control-J7H2HTKN.js +2 -0
  55. package/dist-cli/chunks/{cpu-profile-EQHKYVOF.js → cpu-profile-P2HBDYZ3.js} +2 -2
  56. package/dist-cli/chunks/{daemon-K42MZR2E.js → daemon-EMP5NFIK.js} +2 -2
  57. package/dist-cli/chunks/{debug-ULTTL5L2.js → debug-VG2EYIRM.js} +3 -3
  58. package/dist-cli/chunks/demo-app-registry-X3JPEPV6.js +2 -0
  59. package/dist-cli/chunks/{detox-LU3G3EBC.js → detox-6N2GHBJD.js} +2 -2
  60. package/dist-cli/chunks/{device-RYW4ZE4R.js → device-L4MPWY7S.js} +2 -2
  61. package/dist-cli/chunks/{diagnose-5YQAXWFB.js → diagnose-M7L2CKMA.js} +2 -2
  62. package/dist-cli/chunks/drivers-LCWLVDG3.js +2 -0
  63. package/dist-cli/chunks/{electron-ORBIXXTP.js → electron-TYPTY4Y7.js} +3 -3
  64. package/dist-cli/chunks/flow-IUMVR5GK.js +2 -0
  65. package/dist-cli/chunks/{hints-V4SHPWCI.js → hints-CLDM5YBJ.js} +2 -2
  66. package/dist-cli/chunks/{home-paths-UYEDTYXU.js → home-paths-CIRYHGNC.js} +2 -2
  67. package/dist-cli/chunks/{inspect-K2FN4JPL.js → inspect-IPLQLR2B.js} +94 -94
  68. package/dist-cli/chunks/install-3IBRZDCU.js +2 -0
  69. package/dist-cli/chunks/{install-desktop-BDDNVONK.js → install-desktop-DMIJXVAQ.js} +3 -3
  70. package/dist-cli/chunks/{keys-QH5VOSUK.js → keys-6NSIIG5W.js} +2 -2
  71. package/dist-cli/chunks/{launch-K2LP5XFZ.js → launch-WZPZT7QA.js} +3 -3
  72. package/dist-cli/chunks/{login-5AJTPRVD.js → login-DVAESD5E.js} +4 -4
  73. package/dist-cli/chunks/{logout-45VCRSXX.js → logout-ZPNORUPW.js} +2 -2
  74. package/dist-cli/chunks/{maestro-5LDII3YE.js → maestro-TCIBCLOE.js} +2 -2
  75. package/dist-cli/chunks/{preview-IA2UUMLO.js → preview-QXRUBXPI.js} +2 -2
  76. package/dist-cli/chunks/{profile-ZALUAYTJ.js → profile-YQMD5RSB.js} +2 -2
  77. package/dist-cli/chunks/{react-KJBOHVG7.js → react-TU4SHD4N.js} +2 -2
  78. package/dist-cli/chunks/{record-UI226Z7F.js → record-VWCIULWT.js} +2 -2
  79. package/dist-cli/chunks/runtime-AFEO53IB.js +2 -0
  80. package/dist-cli/chunks/{runtime-delivery-Y4QVOPLO.js → runtime-delivery-U65W6ABO.js} +2 -2
  81. package/dist-cli/chunks/{screenshot-SV5S4UGU.js → screenshot-2NP6RB6K.js} +2 -2
  82. package/dist-cli/chunks/{screenshot-mode-NCISGI6W.js → screenshot-mode-HTTJRZXJ.js} +2 -2
  83. package/dist-cli/chunks/{screenshots-MQZDYKF5.js → screenshots-YOGPCEDA.js} +2 -2
  84. package/dist-cli/chunks/{server-RLDTPMHN.js → server-ZTCVFCWZ.js} +2 -2
  85. package/dist-cli/chunks/setup-repo-ITPK57UJ.js +2 -0
  86. package/dist-cli/chunks/{skills-NECP76E4.js → skills-EC7Q2ISG.js} +2 -2
  87. package/dist-cli/chunks/{start-K4ASMK7D.js → start-MODFVXM3.js} +4 -4
  88. package/dist-cli/chunks/store-2EL3VFR5.js +2 -0
  89. package/dist-cli/chunks/telemetry-3CH4GAWO.js +2 -0
  90. package/dist-cli/chunks/{test-YJLRC3IE.js → test-QASBXD56.js} +3 -3
  91. package/dist-cli/chunks/{three-mode-NAAIMEHL.js → three-mode-ANW4NQAP.js} +2 -2
  92. package/dist-cli/chunks/{timeline-BJXCTH7E.js → timeline-NQUBPM67.js} +2 -2
  93. package/dist-cli/chunks/{upgrade-NRJOML2W.js → upgrade-A3TXVNAC.js} +2 -2
  94. package/dist-cli/chunks/upload-URNEXJIS.js +2 -0
  95. package/dist-cli/chunks/{web-P3IP7M5Q.js → web-DH4EW3I6.js} +2 -2
  96. package/dist-cli/chunks/{what-happened-5Q2RBX5R.js → what-happened-AWHOPBQ3.js} +2 -2
  97. package/dist-cli/chunks/{whoami-7W6WPTVA.js → whoami-ZZYOBY77.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-SVBAUCSM.js +0 -2
  119. package/dist-cli/chunks/beta-YEBFYYIB.js +0 -2
  120. package/dist-cli/chunks/chunk-BPXSSZJS.js +0 -11
  121. package/dist-cli/chunks/chunk-CKZSGUTE.js +0 -2
  122. package/dist-cli/chunks/chunk-ELEP2COQ.js +0 -3
  123. package/dist-cli/chunks/chunk-H4C3WE3C.js +0 -1
  124. package/dist-cli/chunks/chunk-NIHI6NXE.js +0 -1
  125. package/dist-cli/chunks/chunk-XO4UV6EO.js +0 -1
  126. package/dist-cli/chunks/chunk-YCPH4ZTS.js +0 -2
  127. package/dist-cli/chunks/cli-version-NMWGV7OU.js +0 -2
  128. package/dist-cli/chunks/control-XAZGNLFM.js +0 -2
  129. package/dist-cli/chunks/demo-app-registry-SO43B5HW.js +0 -2
  130. package/dist-cli/chunks/drivers-SXP44QNY.js +0 -2
  131. package/dist-cli/chunks/flow-GP7GAXLT.js +0 -2
  132. package/dist-cli/chunks/install-R4H47HDX.js +0 -2
  133. package/dist-cli/chunks/runtime-JNHCYB5L.js +0 -2
  134. package/dist-cli/chunks/setup-repo-F4RNWTDL.js +0 -2
  135. package/dist-cli/chunks/store-TLB2YDDQ.js +0 -2
  136. package/dist-cli/chunks/telemetry-EXCKYRZL.js +0 -2
  137. package/dist-cli/chunks/upload-BQTZTOJL.js +0 -2
@@ -1,5 +1,5 @@
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(`
1
+ /*! sootsim v0.1.55 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
+ import{J as F,w as S,x as k,y as g}from"./chunk-AO7LMODD.js";import{c as b,e as y}from"./chunk-SPJQ6B6W.js";import{b as w}from"./chunk-ZNXPOJDD.js";import"./chunk-2EGTJLOK.js";import"./chunk-WZDVJFJX.js";import"./chunk-OP4ALEJL.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.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
+ /*! sootsim v0.1.55 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
+ import{d as i}from"./chunk-VPYEMRIC.js";import{d as n}from"./chunk-JHZ6QH6V.js";import"./chunk-WZDVJFJX.js";import"./chunk-OP4ALEJL.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.53 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.55 | (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.53 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.55 | (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.53 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.55 | (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.53 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.55 | (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.53 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.55 | (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.53 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.55 | (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.53 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.55 | (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.53 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.55 | (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.53 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.55 | (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.53 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.55 | (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.53 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.55 | (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.53 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.55 | (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.53 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.55 | (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.53 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.55 | (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.53 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.55 | (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.53 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.55 | (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.53 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.55 | (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.53 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.55 | (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.53 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.55 | (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.53",
3
+ "version": "0.1.55",
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.53 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{a,b,c,d}from"./chunk-LYHVX7TD.js";import"./chunk-GWGF4J4Y.js";import"./chunk-STWL7EXR.js";import"./chunk-YCPH4ZTS.js";import"./chunk-E3S6U2QR.js";import"./chunk-LELB2PV3.js";export{c as ensureDaemonRunning,a as ensureRuntimeInstalled,d as ensureSootsimReady,b as resolveBootstrapPort};
@@ -1,2 +0,0 @@
1
- /*! sootsim v0.1.53 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{a,b,c,d,e}from"./chunk-ERC46HTZ.js";import"./chunk-LELB2PV3.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,11 +0,0 @@
1
- /*! sootsim v0.1.53 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{a as D,b as j,c as se}from"./chunk-WXOAHKCZ.js";import{b as L}from"./chunk-6JZNIGOQ.js";import{g as W}from"./chunk-6A4CZMPO.js";import{a as k,b as q}from"./chunk-AYU6WUNF.js";import{c as ie}from"./chunk-7IYYIF5B.js";import{d as ne}from"./chunk-YEE4EO2P.js";import{a as ee}from"./chunk-CKZSGUTE.js";import{b as re,c as x,d as b,e as C}from"./chunk-GWGF4J4Y.js";import{c as I,d as g,e as E}from"./chunk-STWL7EXR.js";import{E as te,F as oe}from"./chunk-E3S6U2QR.js";import xe from"node:fs";import Ce from"node:os";import J from"node:path";function he(t){return t.replace(/^\[|\]$/g,"").toLowerCase()}function G(t){let o=he(t);return o==="localhost"||o.endsWith(".localhost")||o==="0.0.0.0"||o==="::1"||/^127(?:\.\d{1,3}){3}$/.test(o)}function ae(t){return new Error(`could not resolve a native bundle for ${t}. pass an explicit bundle URL or open Connect and choose the app there.`)}function we(t,o){return t?.includes("/one/metro-entry.bundle")?"one":typeof o=="string"&&o?"expo":"unknown"}function le(t,o,e){return`${t}//${o}:${e}`}function ye(t){if(typeof window>"u")return!1;try{let o=new URL(t);return G(o.hostname)&&G(window.location.hostname)&&o.origin!==window.location.origin}catch{return!1}}async function ce(t,o){let e={...o,cache:o?.cache??"no-store"};return ye(t)?fetch(`/__fetch-proxy?url=${encodeURIComponent(t)}`,e):fetch(t,e)}function be(t){return t==="https:"?443:80}function Se(t){let o=t.pathname||"/";return(o==="/"||o==="")&&!t.search&&!t.hash}async function me(t,o){let e=t.replace(/\/+$/,"");try{let n=await ce(`${e}/`,{headers:{"expo-platform":"ios"}});if(n.ok){let r=await n.json(),i=r?.extra?.expoClient||r?.extra||{},s=typeof r?.launchAsset?.url=="string"?r.launchAsset.url:void 0;if(s||i.name)return{bundleUrl:se(s||`${e}${j}`),port:o,framework:we(s,i.sdkVersion),projectName:i.name}}}catch{}try{let n=await ce(`${e}/status`);if(n.ok&&(await n.text()).includes("packager-status:running"))return{bundleUrl:`${e}${j}`,port:o,framework:"metro"}}catch{}return null}async function $e(t){return me(le("http:","localhost",t),t)}async function Q(t){let o=t.trim();if(/^\d+$/.test(o)){let a=parseInt(o,10),l=await $e(a);if(l)return l;throw ae(`localhost:${a}`)}let e=o.startsWith("http")?o:`http://${o}`,n;try{n=new URL(e)}catch{throw new Error(`could not parse "${t}". pass a dev-server port, a dev-server base URL, or a full bundle URL.`)}let r=n.protocol||"http:",i=n.port?parseInt(n.port,10):be(r),s=le(r,n.hostname,i);if(Se(n)){let a=await me(s,i);if(a)return a;throw ae(s)}return{bundleUrl:n.toString(),port:i,framework:"unknown"}}function qe(){console.error(" no sootsim desktop companion found."),console.error(""),console.error(" install the desktop app:"),console.error(" sootsim install-desktop"),console.error(""),console.error(" or wire sootsim into your own project so your dev server hosts the bridge:"),console.error(" sootsim setup-repo"),console.error("")}function de(t){let o=k();if(console.log(` note: no sootsim bridge detected on port ${t}`),o){console.log(" launch the installed companion with:"),console.log(" sootsim electron");return}console.log(""),console.log(" to get a bridge running, either:"),console.log(" sootsim install-desktop # download the electron app"),console.log(" sootsim setup-repo # wire sootsim into your own project")}function ve(t){console.error(""),console.error(` no sim is connected to the sootsim bridge on port ${t}.`),console.error(""),console.error(" start your app dev server, then open it in sootsim:"),console.error(" npx expo start --localhost --port 8081"),console.error(" sootsim open 8081"),console.error(""),console.error(" then inspect the live app:"),console.error(" sootsim describe")}async function We(t,o,e){let n=[];try{n=await t.listSims()}catch{}if(console.error(""),n.length===0){ve(o);return}console.error(` no sim with id "${e}" is connected to the bridge on port ${o}.`),console.error(""),console.error(" connected sims:");for(let r of n){let i=[r.isPrimary?"primary":null,r.readyState].filter(Boolean).join(", ");console.error(` ${r.id} (${i})`)}console.error(""),console.error(" pass a valid --sim id, or run `sootsim list` to see all sessions.")}var Pe={rn:"/rn",connectrn:"/rn","connect-rn":"/rn",clock:"/app/clock","native-ui":"/app/native-ui",tamagui:"/app/tamagui",settings:"/app/settings",photos:"/app/photos",camera:"/app/camera"};function P(t){return new Promise(o=>setTimeout(o,t))}function V(t){return t.trim()}function K(t){try{let o=new URL(t),e=o.pathname.replace(/\/+$/,"")||"/";return o.searchParams.has("open")||o.searchParams.has("port")||o.searchParams.has("bundle")||o.searchParams.has("demo")||o.pathname.includes("/sootsim/index.html")||e==="/sootsim"||o.pathname==="/__soot"||o.pathname==="/__soot/"||e==="/rn"||/^\/rn\/[^/]+$/i.test(e)||/^\/app\/[^/]+$/i.test(e)||e==="/__soot/rn"||/^\/__soot\/rn\/[^/]+$/i.test(e)||/^\/__soot\/app\/[^/]+$/i.test(e)}catch{return!1}}async function ct(t){let o=V(t);return(await Q(o)).bundleUrl}function X(t){let o=t.replace(/\/+$/,"")||"/";return o==="/__soot"||o.startsWith("/__soot/")?"/__soot":""}function Ie(t,o){let e=V(t),n=new URL(o),r=X(n.pathname);return n.pathname=`${r}/rn`,n.searchParams.delete("bundle"),n.searchParams.delete("demo"),n.searchParams.delete("app"),n.searchParams.delete("open"),n.searchParams.delete("port"),/^\d+$/.test(e)?n.pathname=`${r}/rn/${e}`:(n.pathname=`${r}/rn`,n.searchParams.set("open",e)),n.toString()}function ke(t){let o=V(t);return/^\d+$/.test(o)||/^https?:\/\//i.test(o)?!0:/^(localhost|127\.0\.0\.1|\[::1\]|[^/]+\.localhost):\d+(?:\/.*)?$/i.test(o)}async function Me(t,o){let e=await Q(t),n=new URL(o),r=X(n.pathname);return n.pathname=`${r}/rn`,n.searchParams.delete("open"),n.searchParams.delete("port"),n.searchParams.delete("demo"),n.searchParams.delete("app"),n.searchParams.set("bundle",e.bundleUrl),n.toString()}function Te(t){return t.startsWith("~/")?J.join(Ce.homedir(),t.slice(2)):J.isAbsolute(t)?t:J.resolve(process.cwd(),t)}function Ue(t){let o={};for(let e=0;e<t.length;e++){if(t[e]!=="--replace")continue;let n=t[e+1];n||(console.error(" sootsim open: --replace expects <module>=<file>"),process.exit(1));let r=n.indexOf("=");(r<=0||r===n.length-1)&&(console.error(" sootsim open: --replace expects <module>=<file>"),process.exit(1));let i=n.slice(0,r).trim(),s=Te(n.slice(r+1).trim());xe.existsSync(s)||(console.error(` sootsim open: replacement file not found: ${s}`),process.exit(1)),o[i]={file:s},e++}return Object.keys(o).length>0?{modules:o}:void 0}function pe(){let t=te();return oe(t)&&t.runtimePort>0?`http://localhost:${t.runtimePort}/`:ee}async function N(t,o=pe()){if(!t)return new URL(o).toString();if(K(t))return new URL(t).toString();let e=Pe[t.toLowerCase()];if(e){let n=new URL(o),r=X(n.pathname);return n.pathname=`${r}${e}`,n.toString()}return ke(t)?Me(t,o):Ie(t,o)}function ue(t,o){let e=t?.url||t?.origin||o;try{let n=new URL(e);return n.searchParams.delete("bundle"),n.searchParams.delete("demo"),n.searchParams.delete("app"),n.searchParams.delete("open"),n.searchParams.delete("port"),n.searchParams.delete("inspectOpen"),n.toString()}catch{return o}}async function Be(t,o,e){let n=new URL(await N(t,o));return n.searchParams.set("inspectOpen",e),n.toString()}async function Oe(t,o,e,n={}){let r=n.attempts??30,i=n.intervalMs??500,s=n.minNodeCount??10;for(let a=0;a<r;a++){let l=b(t,{commandTimeoutMs:o,simId:e,simIdSource:"flag"});try{let c=await l.send({type:"evaluate",code:"(async () => (await window.__sootsimTest?.getNodeCount()) || 0)()"});if(typeof c=="number"&&c>s)return{bridge:l,count:c}}catch{}l.close(),await P(i)}return null}function _e(t){if(!t)return null;try{let o=new URL(t);if(o.searchParams.has("bundle")){let e=o.searchParams.get("bundle")||"";try{let n=new URL(e),r=n.pathname.length>36?`...${n.pathname.slice(-36)}`:n.pathname;return`bundle ${n.host}${r}`}catch{return"bundle"}}return o.searchParams.has("port")?`connect :${o.searchParams.get("port")||""}`:o.searchParams.has("open")?`connect ${o.searchParams.get("open")||""}`:o.searchParams.has("demo")?`demo ${o.searchParams.get("demo")||"default"}`:o.pathname.includes("/sootsim/index.html")||o.pathname==="/sootsim/"||o.pathname==="/sootsim"?"embedded sootsim":null}catch{return null}}function Re(t,o){if(t.length===0){console.log(" no sims connected");return}console.log(` connected sims (${t.length}):
3
- `);for(let e of t){let n=e.lockedBy&&e.lockExpiresAt?`locked by ${e.lockedBy} (${Math.max(0,Math.round((e.lockExpiresAt-Date.now())/1e3))}s)`:"",r=[e.isPrimary?"primary":"",e.id===o?"selected":"",e.readyState,e.attachedCliCount&&e.attachedCliCount>0?"in use":"",e.userFocused?"focused":"",n].filter(Boolean);console.log(` ${e.id}${r.length?` [${r.join(", ")}]`:""}`);let i=_e(e.url);if(i&&console.log(` loaded: ${i}`),e.url?console.log(` url: ${e.url}`):e.origin&&console.log(` origin: ${e.origin}`),e.title&&console.log(` title: ${e.title}`),console.log(` connected: ${new Date(e.connectedAt).toISOString()}`),e.lastActiveAt&&e.lastActiveAt>0){let s=Math.round((Date.now()-e.lastActiveAt)/1e3),a=s<60?`${s}s ago`:s<3600?`${Math.round(s/60)}m ago`:`${Math.round(s/3600)}h ago`;console.log(` last active: ${a}`)}}}async function A(t,o,e,n={}){let r=n.attempts??30,i=n.intervalMs??500;for(let s=0;s<r;s++){let a=b(t,{commandTimeoutMs:o});try{let c=(await a.listSims()).find(e);if(c)return c}catch{}finally{a.close()}await P(i)}return null}async function Ee(t,o,e,n={}){let r=n.attempts??20,i=n.intervalMs??250;for(let s=0;s<r;s++){let a=b(t,{commandTimeoutMs:o});try{let c=(await a.listSims()).find(f=>f.id===e);if(!c||c.readyState!=="open")return!0}catch{return!0}finally{a.close()}await P(i)}return!1}function U(t,o){if(o){let r=o.trim(),i=t.find(s=>s.id===r);if(!i)throw new Error(`no sim connected with id ${r}`);return i}let e=t.find(r=>r.isPrimary&&r.readyState==="open");if(e)return e;let n=t.find(r=>r.readyState==="open");if(n)return n;throw new Error("no sim connected")}function M(t,o,e){console.log(` ${e==="current sim"?"loaded":"opened"}: ${t} [${e}]`),console.log(` current sim: ${o.id}`),console.log(JSON.stringify({simId:o.id,url:o.url},null,2))}async function T(t,o,e){if(e.includes("--no-describe"))return;let n=process.env.SOOTSIM_QUIET_TARGET_NOTICE;process.env.SOOTSIM_QUIET_TARGET_NOTICE="1";try{await Le(t,o,{stableMs:150,maxMs:400});let r=b(t,{commandTimeoutMs:3e3,simId:o,cliLabel:"open --describe",simIdSource:"flag"});try{let s=`(async () => {
4
- const t = window.__sootsimTest
5
- const ms = window.SootSim?.bridges?.mainShell
6
- if (!t) return null
7
- let shell = null
8
- try { shell = ms?.getState ? await ms.getState() : null } catch {}
9
- const tree = await t.dumpTree(12, ${JSON.stringify({describe:!0,verbose:!1,filter:""})})
10
- return { tree, shell }
11
- })()`,a=await r.send({type:"evaluate",code:s});if(!a?.tree)return;if(console.log(""),a.shell?.state){let l=[`state=${a.shell.state}`,a.shell.activeApp?`app=${a.shell.activeApp}`:null].filter(Boolean);console.log(` shell: ${l.join(" ")}`)}console.log(a.tree)}finally{r.close()}}catch{}finally{n===void 0?delete process.env.SOOTSIM_QUIET_TARGET_NOTICE:process.env.SOOTSIM_QUIET_TARGET_NOTICE=n}}async function Le(t,o,e){let n=Date.now()+e.maxMs,r="(async () => (await window.__sootsimTest?.getNodeCount?.()) || 0)()",i=b(t,{commandTimeoutMs:2e3,simId:o,simIdSource:"flag"});try{let s=-1,a=0;for(;Date.now()<n;){let l=-1;try{let c=await i.send({type:"evaluate",code:r});typeof c=="number"&&(l=c)}catch{}if(l>=0&&l===s){if(Date.now()-a>=e.stableMs)return}else s=l,a=Date.now();await P(50)}}finally{i.close()}}async function lt(t,o={}){let e=x(t,{port:o.port,commandTimeoutMs:o.timeoutMs}),n=C(e);try{let r=await n.listSims();Re(r,e.simId)}finally{n.close()}}async function mt(t,o={}){let e=x(t,{port:o.port,commandTimeoutMs:o.timeoutMs,stripBooleanFlags:["--new","--headless","--ephemeral"],stripValueFlags:["--base-url","--replace","--driver","--profile"]}),n=t.find((m,d)=>t[d-1]==="--profile"),r=t.includes("--ephemeral");n&&r&&(console.error(" sootsim open: --profile cannot be combined with --ephemeral"),process.exit(1));let i=n?ie(n).id:void 0,s=!!i||r,a=t.includes("--new")||s,l=Ue(t);a&&e.simIdSource==="flag"&&(console.error(" sootsim open: --new, --profile, and --ephemeral cannot be combined with --sim"),process.exit(1));let c=e.positional[0]||"",f=t.find((m,d)=>t[d-1]==="--driver")||"",h=t.includes("--headless"),S=t.find((m,d)=>t[d-1]==="--base-url")||pe(),B=t.includes("--base-url"),$=I();if(!f&&!a&&(e.simIdSource==="flag"||e.simIdSource==="saved"&&!!$)){let m=C(e),d=e.simId?` --sim ${e.simId}`:"",u=!1;try{let p=null;try{let y=await m.listSims();if(e.simIdSource==="saved"?(p=y.find(v=>v.id===$&&v.readyState==="open")??null,p||E()):p=U(y,e.simId),!p)if(e.simIdSource==="saved")u=!0;else throw new Error("no sim connected");if(!u&&p){let v=B||K(c)?S:ue(p,S),R=await N(c,D(v,l));m.send({type:"evaluate",simId:p.id,code:`window.location.href = ${JSON.stringify(R)}`}).catch(()=>{})}}catch(y){console.error(` open failed: ${y instanceof Error?y.message:String(y)}`),await L(m,{errorsCommand:`sootsim get errors 5${d}`,warningsCommand:`sootsim get warnings 5${d}`,requestsCommand:`sootsim get requests 5${d}`}),process.exit(1)}if(!u&&p){await P(1500);let y=await Oe(e.wsPort,e.commandTimeoutMs,p.id);y||(console.error(" timed out waiting for current sim to load target"),process.exit(1)),y.bridge.close(),g(p.id);let v=B||K(c)?S:ue(p,S),R=await N(c,D(v,l));M(R,{...p,url:R},"current sim"),await T(e.wsPort,p.id,t);return}}finally{m.close()}}let Y=D(S,l),ge=await N(c,Y),Z=`cli-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`,w=await Be(c,Y,Z),F={newWindow:!0},O=m=>m.url?.includes(`inspectOpen=${Z}`)??!1;if(f){let m=W(f);m||(console.error(` unknown driver "${f}" \u2014 run \`sootsim list --drivers\``),process.exit(1));let d=await m.launch({url:w,headless:h,newWindow:F.newWindow,profileId:i,ephemeralProfile:r});d.launched||(console.error(` ${m.name} driver: ${d.message}`),process.exit(1));let u=await A(e.wsPort,e.commandTimeoutMs,O,{attempts:60,intervalMs:500});u||(console.error(" timed out waiting for opened sim to connect"),process.exit(1)),g(u.id),M(w,u,`${m.name} driver`),await T(e.wsPort,u.id,t);return}if(s){let m=k();m||(console.error(" profiles require electron or playwright; install the desktop companion or use `--driver playwright`"),process.exit(1));try{(await q(w,m,{profileId:i,ephemeralProfile:r})).launched||(console.error(" desktop companion failed to start"),process.exit(1))}catch(u){console.error(` desktop companion failed: ${u instanceof Error?u.message:String(u)}`),process.exit(1)}let d=await A(e.wsPort,e.commandTimeoutMs,O,{attempts:40,intervalMs:500});d||(console.error(" timed out waiting for profiled sim to connect"),process.exit(1)),g(d.id),M(w,d,"desktop companion"),await T(e.wsPort,d.id,t);return}let H=!1,z=!1;try{let m=b(e.wsPort,{commandTimeoutMs:2e3});try{await m.listSims(),H=!0}finally{m.close()}}catch{}if(H)try{let m=b(e.wsPort,{commandTimeoutMs:3e3});try{await m.openUrl(w,F),z=!0}finally{m.close()}}catch{}if(!z){let m=k();if(m)try{if((await q(w,m)).launched){let u=await A(e.wsPort,e.commandTimeoutMs,O,{attempts:20,intervalMs:500});if(u){g(u.id),M(w,u,"desktop companion"),await T(e.wsPort,u.id,t);return}}}catch{}try{await ne(w,F)}catch(d){console.error(` open failed: ${d instanceof Error?d.message:String(d)}`),W("playwright")?.availability().available?console.error(" no system browser found \u2014 retry with `sootsim open \u2026 --driver playwright` for a headless sim."):console.error(" run `sootsim list --drivers` to see available drivers."),process.exit(1)}if(!H){console.log(` opened: ${ge}`),de(e.wsPort);return}}let _=await A(e.wsPort,e.commandTimeoutMs,O,{attempts:30,intervalMs:500});_||(console.error(" timed out waiting for opened sim to connect"),process.exit(1)),g(_.id),M(w,_,z?"bridge":"direct shell open"),await T(e.wsPort,_.id,t)}async function fe(t,o={}){let e=x(t,{port:o.port,commandTimeoutMs:o.timeoutMs}),n=C(e),r=e.simId?` --sim ${e.simId}`:"";try{try{let i=await n.listSims(),s=U(i,e.positional[0]||e.simId);await n.focusSim(s.id),g(s.id),console.log(` using: ${s.id}`)}catch(i){console.error(` use failed: ${i instanceof Error?i.message:String(i)}`),await L(n,{errorsCommand:`sootsim get errors 5${r}`,warningsCommand:`sootsim get warnings 5${r}`,requestsCommand:`sootsim get requests 5${r}`}),process.exit(1)}}finally{n.close()}}async function dt(t,o={}){await fe(t,o)}async function ut(t,o={}){await fe(t,o)}async function pt(t,o={}){let e=x(t,{port:o.port,commandTimeoutMs:o.timeoutMs,stripBooleanFlags:["--force"]}),n=t.includes("--force"),r=C(e);try{try{let i=await r.listSims(),s=U(i,e.positional[0]||e.simId),a=n&&s.lockedBy&&s.lockedByKind!=="user-active"?s.lockedBy:null,l=await r.claim(s.id,{force:n});g(s.id);let c=Math.max(0,Math.round((l.lockExpiresAt-Date.now())/1e3)),f=l.bootedCount>0?` (booted ${l.bootedCount})`:"";console.log(` claimed: ${l.simId} [${c}s]${f}`),a&&console.log(` took over from: ${a}`)}catch(i){if(i instanceof re){let s=Math.max(0,Math.round(i.lock.expiresInMs/1e3));console.error(` claim failed: locked by ${i.lock.by} for ${s}s more`),console.error(" use --force to take it, or `sootsim open --new` for a fresh sim"),process.exit(1)}console.error(` claim failed: ${i instanceof Error?i.message:String(i)}`),process.exit(1)}}finally{r.close()}}async function De(t,o,e,n){if(n.length===0)return{closed:[],remaining:[]};await Promise.all(n.map(i=>t.closeSim(i).catch(()=>{})));let r=new Set(n);for(let i=0;i<40;i++){let s=[];try{let a=b(o,{commandTimeoutMs:e});try{s=(await a.listSims()).filter(c=>r.has(c.id)&&c.readyState==="open").map(c=>c.id)}finally{a.close()}}catch{s=[]}if(s.length===0)return{closed:[...r],remaining:[]};if(i===39)return{closed:[...r].filter(a=>!s.includes(a)),remaining:s};await P(250)}return{closed:[...r],remaining:[]}}async function ft(t,o={}){let e=x(t,{port:o.port,commandTimeoutMs:o.timeoutMs,stripBooleanFlags:["--all","--others"]}),n=C(e),r=e.simId?` --sim ${e.simId}`:"",i=t.includes("--all"),s=t.includes("--others");if(i||s){try{let a=await n.listSims(),l=a.filter($=>$.readyState==="open"),c=null;if(s)try{c=U(a,e.positional[0]||e.simId||I()||void 0).id}catch{c=null}let f=l.map($=>$.id).filter($=>$!==c);if(f.length===0){console.log(c?` nothing to close \u2014 only the kept sim ${c} is connected`:" nothing to close \u2014 no sims connected");return}let h=await De(n,e.wsPort,e.commandTimeoutMs,f),S=I();S&&h.closed.includes(S)&&(c?g(c):E());let B=` closed ${h.closed.length} sim(s)${c?` (kept ${c})`:""}`;console.log(B),h.remaining.length>0&&(console.error(` close failed: still connected: ${h.remaining.join(", ")}`),process.exit(1))}catch(a){console.error(` close failed: ${a instanceof Error?a.message:String(a)}`),process.exit(1)}finally{n.close()}return}try{try{let a=await n.listSims(),l=U(a,e.positional[0]||e.simId),c=a.find(h=>h.id!==l.id&&h.readyState==="open");await n.closeSim(l.id),await Ee(e.wsPort,e.commandTimeoutMs,l.id)||(console.error(` close failed: ${l.id} is still connected`),process.exit(1)),I()===l.id&&(c?g(c.id):E()),console.log(` closed: ${l.id}`)}catch(a){console.error(` close failed: ${a instanceof Error?a.message:String(a)}`),await L(n,{errorsCommand:`sootsim get errors 5${r}`,warningsCommand:`sootsim get warnings 5${r}`,requestsCommand:`sootsim get requests 5${r}`}),process.exit(1)}}finally{n.close()}}export{qe as a,ve as b,We as c,ct as d,pe as e,N as f,Be as g,_e as h,Re as i,A as j,lt as k,mt as l,dt as m,ut as n,pt as o,ft as p};
@@ -1,2 +0,0 @@
1
- /*! sootsim v0.1.53 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- var t="http://localhost:5173/";export{t as a};
@@ -1,3 +0,0 @@
1
- /*! sootsim v0.1.53 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{A as v,i as h,j as g,k as T,l as y}from"./chunk-QTVGSFY6.js";import{d as b,h as S,i as R}from"./chunk-GWGF4J4Y.js";var x={timeoutMs:1800,settleMs:48,startWindowMs:64};function f(e){return new Promise(t=>setTimeout(t,e))}function _(e){return e.includes("--json")}function C(e){process.stdout.write(`${JSON.stringify(e??null,null,2)}
3
- `)}async function W(e,t,...n){return S(e,`__sootsimTest.${t}`,...n)}async function B(e,t,...n){return R(e,`SootSim.bridges.mainShell.${t}`,...n)}async function E(e,t={}){try{let n=await W(e,"waitForScreenTransitions",x);if(!t.verbose||!n?.started)return;if(n.timedOut){console.log(` screen transition still active after ${n.waitedMs}ms; continuing`);return}n.waitedMs>0&&console.log(` waited ${n.waitedMs}ms for screen transition settle`)}catch{}}async function I(e,t,n,...o){let i=Date.now()+Math.max(0,n);for(;;)try{return await B(e,t,...o)}catch(r){if(!v(r)||Date.now()>=i)throw r;await f(50)}}async function P(e,t,n,o={}){let i=o.attempts??30,r=o.intervalMs??500,d=o.minNodeCount??10;for(let s=0;s<i;s++){let u=b(e,{commandTimeoutMs:t,simId:n});try{let a=await u.send({type:"evaluate",code:"(async () => (await window.__sootsimTest?.getNodeCount()) || 0)()"});if(typeof a=="number"&&a>d)return{bridge:u,count:a}}catch{}u.close(),await f(r)}return null}async function A(e,t,n,o={}){let i=o.timeoutMs??8e3,r=o.intervalMs??250,d=Date.now()+i;for(;Date.now()<d;){let s=b(e,{commandTimeoutMs:t,simId:n});try{return await s.send({type:"evaluate",code:"1"}),s}catch{s.close()}await f(r)}return null}async function F(e,t={}){let n=t.timeoutMs??1e4,o=t.errorGraceMs??3e3,i=t.pollIntervalMs??200,r=Date.now(),d=r+n,s=-1,u=r,a={ready:!1,source:"timeout",elapsedMs:0,nodes:0,targets:0,errors:0};for(;Date.now()<d;){try{let m=await e.send({type:"evaluate",code:h}),c=Date.now()-r,l=Number(m?.nodes)||0,w=Number(m?.targets)||0,p=Number(m?.errors)||0,M=m?.flag===!0;if(l!==s&&(s=l,u=c),a={ready:!1,source:"timeout",elapsedMs:c,nodes:l,targets:w,errors:p},M&&l>=g&&y({nodes:l,targets:w})&&c-u>=T)return{ready:!0,source:"flag",elapsedMs:c,nodes:l,targets:w,errors:p};if(c>=o&&p>0&&!M)return{ready:!1,source:"error-bail",elapsedMs:c,nodes:l,targets:w,errors:p}}catch{}await f(i)}return a.nodes>=g&&y(a)?{...a,ready:!0,source:"nodes-fallback"}:{...a,ready:!1,source:"timeout",elapsedMs:Date.now()-r}}export{f as a,_ as b,C as c,W as d,E as e,I as f,P as g,A as h,F as i};
@@ -1 +0,0 @@
1
- /*! sootsim v0.1.53 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
@@ -1 +0,0 @@
1
- /*! sootsim v0.1.53 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
@@ -1 +0,0 @@
1
- /*! sootsim v0.1.53 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
@@ -1,2 +0,0 @@
1
- /*! sootsim v0.1.53 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- var O="sootsim close";export{O as a};
@@ -1,2 +0,0 @@
1
- /*! sootsim v0.1.53 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{a}from"./chunk-CTGH5SFH.js";import"./chunk-LELB2PV3.js";export{a as getCliVersion};
@@ -1,2 +0,0 @@
1
- /*! sootsim v0.1.53 | (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-BPXSSZJS.js";import"./chunk-WXOAHKCZ.js";import"./chunk-6JZNIGOQ.js";import"./chunk-6A4CZMPO.js";import"./chunk-AYU6WUNF.js";import"./chunk-NIHI6NXE.js";import"./chunk-7IYYIF5B.js";import"./chunk-YEE4EO2P.js";import"./chunk-CKZSGUTE.js";import"./chunk-GWGF4J4Y.js";import"./chunk-STWL7EXR.js";import"./chunk-YCPH4ZTS.js";import"./chunk-E3S6U2QR.js";import"./chunk-LELB2PV3.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.53 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{a}from"./chunk-R5XV3WIE.js";import"./chunk-LELB2PV3.js";export{a as APPS};
@@ -1,2 +0,0 @@
1
- /*! sootsim v0.1.53 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import"./chunk-XO4UV6EO.js";import{a,b,c,d,e,f,g,h,i}from"./chunk-6A4CZMPO.js";import"./chunk-AYU6WUNF.js";import"./chunk-NIHI6NXE.js";import"./chunk-7IYYIF5B.js";import"./chunk-YEE4EO2P.js";import"./chunk-E3S6U2QR.js";import"./chunk-LELB2PV3.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.53 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{a as c,b as d,c as e,d as f}from"./chunk-AFXPU7YQ.js";import"./chunk-R3VVVXF3.js";import"./chunk-FDA2NX2E.js";import"./chunk-H4C3WE3C.js";import"./chunk-5U2BN4IU.js";import"./chunk-CW2X4KRW.js";import"./chunk-IS5ORPFW.js";import{c as a,d as b}from"./chunk-7ZHWA3WD.js";import"./chunk-BPXSSZJS.js";import"./chunk-WXOAHKCZ.js";import"./chunk-6JZNIGOQ.js";import"./chunk-6A4CZMPO.js";import"./chunk-AYU6WUNF.js";import"./chunk-NIHI6NXE.js";import"./chunk-7IYYIF5B.js";import"./chunk-YEE4EO2P.js";import"./chunk-R5XV3WIE.js";import"./chunk-N3RWXMD3.js";import"./chunk-CKZSGUTE.js";import"./chunk-SQZXAKBL.js";import"./chunk-CTDDR7HW.js";import"./chunk-WBAIONOO.js";import"./chunk-AZYLZGRV.js";import"./chunk-GWGF4J4Y.js";import"./chunk-STWL7EXR.js";import"./chunk-YCPH4ZTS.js";import"./chunk-E3S6U2QR.js";import"./chunk-LELB2PV3.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.53 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{a as o}from"./chunk-XBP7BBSF.js";import"./chunk-MX5HFYST.js";import"./chunk-LYHVX7TD.js";import"./chunk-SQZXAKBL.js";import"./chunk-CTDDR7HW.js";import"./chunk-GWGF4J4Y.js";import"./chunk-STWL7EXR.js";import"./chunk-YCPH4ZTS.js";import"./chunk-E3S6U2QR.js";import"./chunk-LELB2PV3.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.53 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{a}from"./chunk-CRUPWYHV.js";import"./chunk-GWGF4J4Y.js";import"./chunk-STWL7EXR.js";import"./chunk-YCPH4ZTS.js";import"./chunk-E4JTYQVY.js";import"./chunk-E3S6U2QR.js";import"./chunk-LELB2PV3.js";export{a as runRuntime};
@@ -1,2 +0,0 @@
1
- /*! sootsim v0.1.53 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{a}from"./chunk-XBP7BBSF.js";import"./chunk-MX5HFYST.js";import"./chunk-LYHVX7TD.js";import"./chunk-SQZXAKBL.js";import"./chunk-CTDDR7HW.js";import"./chunk-GWGF4J4Y.js";import"./chunk-STWL7EXR.js";import"./chunk-YCPH4ZTS.js";import"./chunk-E3S6U2QR.js";import"./chunk-LELB2PV3.js";export{a as runSetupRepo};
@@ -1,2 +0,0 @@
1
- /*! sootsim v0.1.53 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{a}from"./chunk-WBAIONOO.js";import"./chunk-AZYLZGRV.js";import"./chunk-LELB2PV3.js";export{a as settingsStore};
@@ -1,2 +0,0 @@
1
- /*! sootsim v0.1.53 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{a,b}from"./chunk-SQZXAKBL.js";import"./chunk-CTDDR7HW.js";import"./chunk-E3S6U2QR.js";import"./chunk-LELB2PV3.js";export{b as flushCliTelemetry,a as trackCliEvent};
@@ -1,2 +0,0 @@
1
- /*! sootsim v0.1.53 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{a,b,c}from"./chunk-CW2X4KRW.js";import"./chunk-IS5ORPFW.js";import"./chunk-NIHI6NXE.js";import"./chunk-YEE4EO2P.js";import"./chunk-SQZXAKBL.js";import"./chunk-CTDDR7HW.js";import"./chunk-GWGF4J4Y.js";import"./chunk-STWL7EXR.js";import"./chunk-YCPH4ZTS.js";import"./chunk-E3S6U2QR.js";import"./chunk-LELB2PV3.js";export{a as resolveDefaultUploadOrigin,b as resolvePublicPreviewOrigin,c as runUpload};