sootsim 0.1.142 → 0.1.144

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (153) hide show
  1. package/dist-cli/bin.js +3 -3
  2. package/dist-cli/chunks/{agent-NAAIMWH7.js → agent-2OYPRNUE.js} +2 -2
  3. package/dist-cli/chunks/{agent-wrapper-XTURYUNI.js → agent-wrapper-LPKFMZBN.js} +2 -2
  4. package/dist-cli/chunks/{app-fonts-RSEABY54.js → app-fonts-3F2X43ER.js} +2 -2
  5. package/dist-cli/chunks/{assert-FLKFAP5S.js → assert-MUUX2DJC.js} +2 -2
  6. package/dist-cli/chunks/auto-bootstrap-EYENX7BT.js +2 -0
  7. package/dist-cli/chunks/beta-2JIATCYM.js +2 -0
  8. package/dist-cli/chunks/{camera-YW7TIZMC.js → camera-TBW2MKRE.js} +2 -2
  9. package/dist-cli/chunks/{chunk-GCCVK7DE.js → chunk-2OWIXUFA.js} +2 -2
  10. package/dist-cli/chunks/{chunk-C3GZZTY2.js → chunk-2WPNYDSO.js} +1 -1
  11. package/dist-cli/chunks/chunk-3FFDAVGT.js +119 -0
  12. package/dist-cli/chunks/chunk-3LW4V4ZM.js +2 -0
  13. package/dist-cli/chunks/chunk-3ZNPJADG.js +1 -0
  14. package/dist-cli/chunks/{chunk-OI5YSYX2.js → chunk-4CPUNUJC.js} +1 -1
  15. package/dist-cli/chunks/{chunk-6J5EKBUF.js → chunk-6KI36NXX.js} +2 -2
  16. package/dist-cli/chunks/{chunk-PQFNHOPP.js → chunk-73DPWPZU.js} +1 -1
  17. package/dist-cli/chunks/{chunk-XNHS44BQ.js → chunk-7R3BK6IY.js} +1 -1
  18. package/dist-cli/chunks/{chunk-WHTKAFVO.js → chunk-A3E5QVUN.js} +1 -1
  19. package/dist-cli/chunks/{chunk-UUKLS7ZA.js → chunk-A72YS45Y.js} +1 -1
  20. package/dist-cli/chunks/chunk-AJKVXCHV.js +5 -0
  21. package/dist-cli/chunks/{chunk-3EETVUZK.js → chunk-AKHWKREF.js} +1 -1
  22. package/dist-cli/chunks/{chunk-ZWIFZAXU.js → chunk-AV2DSEYZ.js} +2 -2
  23. package/dist-cli/chunks/{chunk-BZO4BFHL.js → chunk-BBPSMK2D.js} +2 -2
  24. package/dist-cli/chunks/{chunk-D6V27NP5.js → chunk-BCIZZLCX.js} +1 -1
  25. package/dist-cli/chunks/{chunk-UCPLYSBA.js → chunk-FQBF5HG6.js} +1 -1
  26. package/dist-cli/chunks/{chunk-FSKCHXES.js → chunk-FZXVYC4D.js} +2 -2
  27. package/dist-cli/chunks/chunk-GJR32NCU.js +1 -0
  28. package/dist-cli/chunks/{chunk-3OPQ44BF.js → chunk-HC43FXK7.js} +2 -2
  29. package/dist-cli/chunks/{chunk-LTYJMDYI.js → chunk-HVB4FNBH.js} +2 -2
  30. package/dist-cli/chunks/{chunk-MO6Q4PLZ.js → chunk-IAWQFSZ2.js} +2 -2
  31. package/dist-cli/chunks/chunk-KABTL7PQ.js +406 -0
  32. package/dist-cli/chunks/{chunk-KOZ5XDC7.js → chunk-KF7TXHAG.js} +3 -3
  33. package/dist-cli/chunks/{chunk-P7FJ6IE4.js → chunk-LEWUJGFD.js} +1 -1
  34. package/dist-cli/chunks/{chunk-R42X5C7W.js → chunk-MX66P64S.js} +1 -1
  35. package/dist-cli/chunks/{chunk-JVDKRU4Y.js → chunk-PN4QXNKU.js} +2 -2
  36. package/dist-cli/chunks/{chunk-YG4V3MOQ.js → chunk-QHCI5TZ6.js} +1 -1
  37. package/dist-cli/chunks/{chunk-3ITFZJ7S.js → chunk-QMTPTQHG.js} +2 -2
  38. package/dist-cli/chunks/{chunk-QJ2H2D5V.js → chunk-S6OUYII6.js} +2 -2
  39. package/dist-cli/chunks/{chunk-RQPGGNZW.js → chunk-T5SF5UGY.js} +1 -1
  40. package/dist-cli/chunks/{chunk-TKNYTKLF.js → chunk-TE2SHQPT.js} +1 -1
  41. package/dist-cli/chunks/{chunk-W5FZTYVP.js → chunk-TJXJCYCS.js} +1 -1
  42. package/dist-cli/chunks/{chunk-AIS5XNOM.js → chunk-TKMTONCA.js} +3 -3
  43. package/dist-cli/chunks/{chunk-RNNX77AX.js → chunk-TONLJPNX.js} +1 -1
  44. package/dist-cli/chunks/chunk-TVLQMXWV.js +1 -0
  45. package/dist-cli/chunks/{chunk-CHTLYKGS.js → chunk-UGRHYJUA.js} +2 -2
  46. package/dist-cli/chunks/{chunk-WEDVFO7O.js → chunk-UZO6PMW3.js} +2 -2
  47. package/dist-cli/chunks/{chunk-VGCBZCSG.js → chunk-VFXS73Q6.js} +2 -2
  48. package/dist-cli/chunks/{chunk-2SUXNIRB.js → chunk-W4KCLE5O.js} +2 -2
  49. package/dist-cli/chunks/{chunk-HAUBNMGA.js → chunk-XJVBNNIB.js} +2 -2
  50. package/dist-cli/chunks/{chunk-HL3XSORU.js → chunk-YV6RWCPO.js} +2 -2
  51. package/dist-cli/chunks/{chunk-O4YHBU62.js → chunk-Z52XC4UA.js} +2 -2
  52. package/dist-cli/chunks/{chunk-YIWBIAVG.js → chunk-ZODKBHVK.js} +2 -2
  53. package/dist-cli/chunks/{chunk-HJ6M2MSA.js → chunk-ZRVCZZCT.js} +2 -2
  54. package/dist-cli/chunks/cli-version-YEX2XZ7G.js +2 -0
  55. package/dist-cli/chunks/{compat-HLFCOAFE.js → compat-P64DATYR.js} +3 -3
  56. package/dist-cli/chunks/{config-YFXVAWO3.js → config-TDDQXUS5.js} +2 -2
  57. package/dist-cli/chunks/{control-I4OAASMO.js → control-SNZMPDL7.js} +2 -2
  58. package/dist-cli/chunks/{cpu-profile-OKH4Y467.js → cpu-profile-FR47V42J.js} +2 -2
  59. package/dist-cli/chunks/daemon-LHJUCC7B.js +67 -0
  60. package/dist-cli/chunks/{debug-AEHF4WWI.js → debug-26NR6JCY.js} +3 -3
  61. package/dist-cli/chunks/{detox-HLZCQK7Z.js → detox-F2KTINZX.js} +2 -2
  62. package/dist-cli/chunks/{device-WDLN7VOT.js → device-O5COOPDN.js} +2 -2
  63. package/dist-cli/chunks/{diagnose-3KKIW2KV.js → diagnose-PQMLUCBO.js} +2 -2
  64. package/dist-cli/chunks/drivers-W4SBNM4V.js +2 -0
  65. package/dist-cli/chunks/{electron-XRQZK2WQ.js → electron-ZBL3TH2F.js} +3 -3
  66. package/dist-cli/chunks/flow-QREXGRFN.js +2 -0
  67. package/dist-cli/chunks/help-RE6HG3KD.js +2 -0
  68. package/dist-cli/chunks/{hints-B63I5SSR.js → hints-DWE4FKYR.js} +2 -2
  69. package/dist-cli/chunks/{home-paths-BDQIBV2V.js → home-paths-N2S32DRH.js} +2 -2
  70. package/dist-cli/chunks/{inspect-7XVNDGN4.js → inspect-J3BLUHGJ.js} +3 -3
  71. package/dist-cli/chunks/install-NLKZNPCO.js +2 -0
  72. package/dist-cli/chunks/{install-desktop-JBQQTH3I.js → install-desktop-73H4DAAH.js} +3 -3
  73. package/dist-cli/chunks/{keys-IMBTM4HL.js → keys-R42T6X3W.js} +2 -2
  74. package/dist-cli/chunks/{launch-XU64UAEQ.js → launch-QGDSUNDW.js} +3 -3
  75. package/dist-cli/chunks/{login-63BFWUJD.js → login-BYCX25K6.js} +5 -5
  76. package/dist-cli/chunks/{logout-RHE2W3WL.js → logout-TZJXACIH.js} +2 -2
  77. package/dist-cli/chunks/{maestro-4CAIVMXK.js → maestro-VPK6R5NN.js} +2 -2
  78. package/dist-cli/chunks/optional-demo-registry-UH3YM447.js +2 -0
  79. package/dist-cli/chunks/{preview-XZYX3SSZ.js → preview-GJ7MVSHM.js} +2 -2
  80. package/dist-cli/chunks/{profile-NNNFLZ6K.js → profile-2RAV3UZS.js} +2 -2
  81. package/dist-cli/chunks/{react-45J3NYF6.js → react-QE7UHEFS.js} +2 -2
  82. package/dist-cli/chunks/{record-QEON42UG.js → record-YYL4A7DO.js} +2 -2
  83. package/dist-cli/chunks/runtime-C4CLOL7U.js +2 -0
  84. package/dist-cli/chunks/{runtime-delivery-LGV6QPZS.js → runtime-delivery-2G4PGXGK.js} +2 -2
  85. package/dist-cli/chunks/{screenshot-SW2ZM723.js → screenshot-BIVF76SC.js} +2 -2
  86. package/dist-cli/chunks/{screenshot-mode-DSEJREME.js → screenshot-mode-OKAH3ZLK.js} +2 -2
  87. package/dist-cli/chunks/{screenshots-QWUZGYAS.js → screenshots-AVJANXAQ.js} +2 -2
  88. package/dist-cli/chunks/{server-6PTAPUIC.js → server-6SFAUUGK.js} +3 -3
  89. package/dist-cli/chunks/setup-repo-CRCQPW3Y.js +2 -0
  90. package/dist-cli/chunks/{skills-OAKG5VHJ.js → skills-7APKWTBO.js} +2 -2
  91. package/dist-cli/chunks/{start-3QVTLFG7.js → start-2GETTWND.js} +4 -4
  92. package/dist-cli/chunks/store-YFAIUHAS.js +2 -0
  93. package/dist-cli/chunks/telemetry-LUP4L5RW.js +2 -0
  94. package/dist-cli/chunks/{test-PYY6TAZF.js → test-V5HHXSKL.js} +3 -3
  95. package/dist-cli/chunks/{three-mode-4CJYCCE6.js → three-mode-UVIEP3CE.js} +2 -2
  96. package/dist-cli/chunks/{timeline-C4WE3FQZ.js → timeline-HVEKSWHF.js} +2 -2
  97. package/dist-cli/chunks/{upgrade-PY3F4JQ6.js → upgrade-FRHXNAYO.js} +2 -2
  98. package/dist-cli/chunks/upload-NWHZULFU.js +2 -0
  99. package/dist-cli/chunks/{version-CVDLRIWC.js → version-CBDBUHCC.js} +2 -2
  100. package/dist-cli/chunks/{web-DWUYDFQ3.js → web-DMUBG5QR.js} +2 -2
  101. package/dist-cli/chunks/{what-happened-6NQLDVJC.js → what-happened-3J4DEIRJ.js} +2 -2
  102. package/dist-cli/chunks/{whoami-WK3UUIOA.js → whoami-BSPU6JP4.js} +2 -2
  103. package/dist-lib/agent-daemon-client.cjs +1 -1
  104. package/dist-lib/agent-events.cjs +1 -1
  105. package/dist-lib/agent-sessions.cjs +1 -1
  106. package/dist-lib/attached-projects.cjs +1 -1
  107. package/dist-lib/auth/shared-session.cjs +1 -1
  108. package/dist-lib/backend-origin.cjs +1 -1
  109. package/dist-lib/beta.cjs +1 -1
  110. package/dist-lib/beta.mjs +1 -1
  111. package/dist-lib/bridge-constants.cjs +1 -1
  112. package/dist-lib/cli-constants.cjs +1 -1
  113. package/dist-lib/config.cjs +1 -1
  114. package/dist-lib/detox/index.cjs +1 -1
  115. package/dist-lib/dev-bundle-resolution.cjs +1 -1
  116. package/dist-lib/home-paths.cjs +1 -1
  117. package/dist-lib/host/bridge-host.cjs +5 -1
  118. package/dist-lib/host/fetch-proxy-handler.cjs +1 -1
  119. package/dist-lib/host/fetch-proxy-overrides.cjs +1 -1
  120. package/dist-lib/host/fetch-proxy-overrides.mjs +1 -1
  121. package/dist-lib/host/websocket-proxy.cjs +1 -1
  122. package/dist-lib/index.cjs +1 -1
  123. package/dist-lib/metro.cjs +1 -1
  124. package/dist-lib/profiles.cjs +1 -1
  125. package/dist-lib/render-mode.cjs +1 -1
  126. package/dist-lib/scripts/dev-server-scanner.cjs +5 -1
  127. package/dist-lib/sdk.cjs +1 -1
  128. package/dist-lib/sdk.mjs +1 -1
  129. package/dist-lib/skills.cjs +85 -20
  130. package/dist-lib/vite.cjs +1 -1
  131. package/package.json +1 -1
  132. package/scripts/dev-server-scanner.ts +23 -0
  133. package/dist-cli/chunks/auto-bootstrap-UTDQXKT2.js +0 -2
  134. package/dist-cli/chunks/beta-WOG3OLTT.js +0 -2
  135. package/dist-cli/chunks/chunk-5PZ7JGND.js +0 -2
  136. package/dist-cli/chunks/chunk-BGIDIZGS.js +0 -1
  137. package/dist-cli/chunks/chunk-ITJU4NUU.js +0 -1
  138. package/dist-cli/chunks/chunk-QJKMMHUB.js +0 -406
  139. package/dist-cli/chunks/chunk-SM3OY52S.js +0 -119
  140. package/dist-cli/chunks/chunk-SN3MJYP7.js +0 -1
  141. package/dist-cli/chunks/chunk-XZHTKBH7.js +0 -5
  142. package/dist-cli/chunks/cli-version-IRAJSCVW.js +0 -2
  143. package/dist-cli/chunks/daemon-SI2HN567.js +0 -66
  144. package/dist-cli/chunks/drivers-G6Y3D5KN.js +0 -2
  145. package/dist-cli/chunks/flow-U2Y6PHQY.js +0 -2
  146. package/dist-cli/chunks/help-7TWUPXUX.js +0 -2
  147. package/dist-cli/chunks/install-UJ4KBTQ4.js +0 -2
  148. package/dist-cli/chunks/optional-demo-registry-BTUMTEBH.js +0 -2
  149. package/dist-cli/chunks/runtime-2LEYVXKV.js +0 -2
  150. package/dist-cli/chunks/setup-repo-3EBO7HQE.js +0 -2
  151. package/dist-cli/chunks/store-HKA3ET4T.js +0 -2
  152. package/dist-cli/chunks/telemetry-6ORWTXX5.js +0 -2
  153. package/dist-cli/chunks/upload-NFFWJLCQ.js +0 -2
@@ -1,5 +1,5 @@
1
- /*! sootsim v0.1.142 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{B as T,C as A,D as y,O as _,P as b,Q as S}from"./chunk-YG4V3MOQ.js";import{c as N,e as F}from"./chunk-GCCVK7DE.js";import{b as k}from"./chunk-OI5YSYX2.js";import"./chunk-P7FJ6IE4.js";import"./chunk-R42X5C7W.js";import"./chunk-TKNYTKLF.js";function O(n){let t=[];for(let e=0;e<n.length;e++)if(n[e]==="--since"&&e+1<n.length){t.push(e,e+1);let s=n[e+1].trim(),l=/^(\d+(?:\.\d+)?)(ms|s|m)?$/.exec(s);if(l){let r=Number(l[1]),u=l[2]??"ms",v=u==="s"?r*1e3:u==="m"?r*6e4:r;return{since:Date.now()-v,consumed:t}}let i=Number(s);if(Number.isFinite(i)&&i>1e12)return{since:i,consumed:t}}return{consumed:t}}function B(n){let t=[];for(let e=0;e<n.length;e++)if(n[e]==="--kinds"&&e+1<n.length)return t.push(e,e+1),{kinds:n[e+1].split(",").map(s=>s.trim()).filter(Boolean),consumed:t};return{consumed:t}}function D(n){let t=[];for(let e=0;e<n.length;e++)if(n[e]==="--limit"&&e+1<n.length){t.push(e,e+1);let s=Number(n[e+1]);if(Number.isFinite(s)&&s>0)return{limit:s,consumed:t}}return{consumed:t}}function x(n){let t=[],e={label:"initial state",events:[],startedAt:n[0]?.t??null};t.push(e);for(let s of n)if(e.events.push(s),s.kind==="screen"||s.kind==="route"){let l=s.data,i=l?.phase;if(!i||i==="enter"||i==="appear"||i==="active"){let r=l?.name||l?.activeName||l?.path||l?.pathname||s.kind;t.length===1&&e.events.length===1?e.label=`${s.kind}: ${r}`:(e={label:`${s.kind}: ${r}`,events:[],startedAt:s.t},t.push(e))}}return t}async function J(n,t){let e=N(n,{port:t.port,stripBooleanFlags:["--summary","--all","--json","--no-advance","--help","-h","--flow","--noisy"],stripValueFlags:["--since","--kinds","--limit"]});(n.includes("--help")||n.includes("-h"))&&(console.log(`
1
+ /*! sootsim v0.1.144 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
+ import{B as T,C as A,D as y,O as _,P as b,Q as S}from"./chunk-QHCI5TZ6.js";import{c as N,e as F}from"./chunk-2OWIXUFA.js";import{b as k}from"./chunk-4CPUNUJC.js";import"./chunk-LEWUJGFD.js";import"./chunk-MX66P64S.js";import"./chunk-TE2SHQPT.js";function O(n){let t=[];for(let e=0;e<n.length;e++)if(n[e]==="--since"&&e+1<n.length){t.push(e,e+1);let s=n[e+1].trim(),l=/^(\d+(?:\.\d+)?)(ms|s|m)?$/.exec(s);if(l){let r=Number(l[1]),u=l[2]??"ms",v=u==="s"?r*1e3:u==="m"?r*6e4:r;return{since:Date.now()-v,consumed:t}}let i=Number(s);if(Number.isFinite(i)&&i>1e12)return{since:i,consumed:t}}return{consumed:t}}function B(n){let t=[];for(let e=0;e<n.length;e++)if(n[e]==="--kinds"&&e+1<n.length)return t.push(e,e+1),{kinds:n[e+1].split(",").map(s=>s.trim()).filter(Boolean),consumed:t};return{consumed:t}}function D(n){let t=[];for(let e=0;e<n.length;e++)if(n[e]==="--limit"&&e+1<n.length){t.push(e,e+1);let s=Number(n[e+1]);if(Number.isFinite(s)&&s>0)return{limit:s,consumed:t}}return{consumed:t}}function x(n){let t=[],e={label:"initial state",events:[],startedAt:n[0]?.t??null};t.push(e);for(let s of n)if(e.events.push(s),s.kind==="screen"||s.kind==="route"){let l=s.data,i=l?.phase;if(!i||i==="enter"||i==="appear"||i==="active"){let r=l?.name||l?.activeName||l?.path||l?.pathname||s.kind;t.length===1&&e.events.length===1?e.label=`${s.kind}: ${r}`:(e={label:`${s.kind}: ${r}`,events:[],startedAt:s.t},t.push(e))}}return t}async function J(n,t){let e=N(n,{port:t.port,stripBooleanFlags:["--summary","--all","--json","--no-advance","--help","-h","--flow","--noisy"],stripValueFlags:["--since","--kinds","--limit"]});(n.includes("--help")||n.includes("-h"))&&(console.log(`
3
3
  sootsim what-happened \u2014 show recent events from the semantic timeline
4
4
 
5
5
  usage:
@@ -1,2 +1,2 @@
1
- /*! sootsim v0.1.142 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{d as i}from"./chunk-2SUXNIRB.js";import{d as n}from"./chunk-6J5EKBUF.js";import"./chunk-R42X5C7W.js";import"./chunk-TKNYTKLF.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.144 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
+ import{d as i}from"./chunk-W4KCLE5O.js";import{d as n}from"./chunk-6KI36NXX.js";import"./chunk-MX66P64S.js";import"./chunk-TE2SHQPT.js";async function u(){let o=i();if(o||(console.log(" not signed in"),console.log(" set SOOTSIM_API_KEY=sk_sootsim_\u2026 or run `sootsim login`"),process.exit(1)),o.kind==="api-key"){let r=`${o.secret.slice(0,14)}\u2026`,t=o.source==="env"?"SOOTSIM_API_KEY env var":"saved key (~/.config/sootsim/credentials.json)";console.log(` api key ${r}`),console.log(` source: ${t}`);return}if(o.kind==="github"){console.log(` github token (${o.source})`),console.log(` repo: ${o.repoId}`);return}let e=await n(),s=e?.user;console.log(` ${s?.email||s?.name||s?.id||"signed in"}`),console.log(` origin: ${e?.origin??o.origin}`),e?.updatedAt&&console.log(` updated: ${e.updatedAt}`)}export{u as runWhoami};
@@ -1,4 +1,4 @@
1
- /*! sootsim v0.1.142 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.144 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -1,4 +1,4 @@
1
- /*! sootsim v0.1.142 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.144 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! sootsim v0.1.142 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.144 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -1,4 +1,4 @@
1
- /*! sootsim v0.1.142 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.144 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -1,4 +1,4 @@
1
- /*! sootsim v0.1.142 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.144 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -1,4 +1,4 @@
1
- /*! sootsim v0.1.142 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.144 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
package/dist-lib/beta.cjs CHANGED
@@ -1,4 +1,4 @@
1
- /*! sootsim v0.1.142 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.144 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
package/dist-lib/beta.mjs CHANGED
@@ -1,4 +1,4 @@
1
- /*! sootsim v0.1.142 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.144 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/beta.ts
4
4
  var IS_BETA = true;
@@ -1,4 +1,4 @@
1
- /*! sootsim v0.1.142 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.144 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! sootsim v0.1.142 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.144 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! sootsim v0.1.142 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.144 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! sootsim v0.1.142 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.144 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -1,4 +1,4 @@
1
- /*! sootsim v0.1.142 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.144 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! sootsim v0.1.142 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.144 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -1,4 +1,4 @@
1
- /*! sootsim v0.1.142 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.144 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -391,6 +391,10 @@ async function probePort(port, buildIconProxyUrl) {
391
391
  buildIconProxyUrl
392
392
  );
393
393
  }
394
+ const looksLikeMetroPackager = statusRes && statusRes.statusCode === 200 || expoRes && expoRes.statusCode === 200 || manifestRes && manifestRes.statusCode === 200 && manifestParsed != null;
395
+ if (looksLikeMetroPackager) {
396
+ return null;
397
+ }
394
398
  const oneRes = await httpGet(port, onePath, "HEAD");
395
399
  if (oneRes && oneRes.statusCode > 0 && oneRes.statusCode < 400 && /application\/javascript/i.test(oneRes.contentType || "")) {
396
400
  knownNonPatched.add(port);
@@ -1,4 +1,4 @@
1
- /*! sootsim v0.1.142 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.144 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -1,4 +1,4 @@
1
- /*! sootsim v0.1.142 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.144 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! sootsim v0.1.142 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.144 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/host/fetch-proxy-overrides.ts
4
4
  var FETCH_PROXY_BROWSER_USER_AGENT = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36";
@@ -1,4 +1,4 @@
1
- /*! sootsim v0.1.142 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.144 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! sootsim v0.1.142 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.144 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -1,4 +1,4 @@
1
- /*! sootsim v0.1.142 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.144 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -1,4 +1,4 @@
1
- /*! sootsim v0.1.142 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.144 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -1,4 +1,4 @@
1
- /*! sootsim v0.1.142 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.144 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! sootsim v0.1.142 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.144 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -382,6 +382,10 @@ async function probePort(port, buildIconProxyUrl) {
382
382
  buildIconProxyUrl
383
383
  );
384
384
  }
385
+ const looksLikeMetroPackager = statusRes && statusRes.statusCode === 200 || expoRes && expoRes.statusCode === 200 || manifestRes && manifestRes.statusCode === 200 && manifestParsed != null;
386
+ if (looksLikeMetroPackager) {
387
+ return null;
388
+ }
385
389
  const oneRes = await httpGet(port, onePath, "HEAD");
386
390
  if (oneRes && oneRes.statusCode > 0 && oneRes.statusCode < 400 && /application\/javascript/i.test(oneRes.contentType || "")) {
387
391
  knownNonPatched.add(port);
package/dist-lib/sdk.cjs CHANGED
@@ -1,4 +1,4 @@
1
- /*! sootsim v0.1.142 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.144 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
package/dist-lib/sdk.mjs CHANGED
@@ -1,4 +1,4 @@
1
- /*! sootsim v0.1.142 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.144 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // cli/commands/inspect/core.ts
4
4
  function resolveMaxMsFlag(args, fallbackMs) {
@@ -1,4 +1,4 @@
1
- /*! sootsim v0.1.142 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.144 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -10306,6 +10306,10 @@ async function probePort(port, buildIconProxyUrl) {
10306
10306
  buildIconProxyUrl
10307
10307
  );
10308
10308
  }
10309
+ const looksLikeMetroPackager = statusRes && statusRes.statusCode === 200 || expoRes && expoRes.statusCode === 200 || manifestRes && manifestRes.statusCode === 200 && manifestParsed != null;
10310
+ if (looksLikeMetroPackager) {
10311
+ return null;
10312
+ }
10309
10313
  const oneRes = await httpGet(port, onePath, "HEAD");
10310
10314
  if (oneRes && oneRes.statusCode > 0 && oneRes.statusCode < 400 && /application\/javascript/i.test(oneRes.contentType || "")) {
10311
10315
  knownNonPatched.add(port);
@@ -16063,6 +16067,31 @@ function parsePoint(value) {
16063
16067
  y: parseCoord(rawY, SCREEN_H)
16064
16068
  };
16065
16069
  }
16070
+ function normalizeBareStringStep(verb) {
16071
+ switch (verb) {
16072
+ case "back":
16073
+ return { back: true };
16074
+ case "hideKeyboard":
16075
+ return { hideKeyboard: true };
16076
+ case "waitForAnimationToEnd":
16077
+ return { waitForAnimationToEnd: true };
16078
+ case "stopApp":
16079
+ return { stopApp: true };
16080
+ case "clearState":
16081
+ return { clearState: true };
16082
+ case "clearKeychain":
16083
+ return { clearKeychain: true };
16084
+ case "eraseText":
16085
+ return { eraseText: 50 };
16086
+ case "scroll":
16087
+ case "scrollDown":
16088
+ return { scroll: { direction: "DOWN" } };
16089
+ case "scrollUp":
16090
+ return { scroll: { direction: "UP" } };
16091
+ default:
16092
+ return { [verb]: true };
16093
+ }
16094
+ }
16066
16095
  function parseFlowSteps(content) {
16067
16096
  const parts = content.split(/^---$/m);
16068
16097
  const candidate = parts.length > 1 ? parts[parts.length - 1] : content;
@@ -16444,18 +16473,26 @@ var init_bridge_flow_runner = __esm({
16444
16473
  element = await this.findElement({ text: opts.text, id: opts.id });
16445
16474
  }
16446
16475
  if (element) {
16447
- const tapTarget = typeof element.nodeId === "number" ? await this.resolveTapTarget(element.nodeId) : null;
16448
- const cx = tapTarget?.cx ?? element.absolutePosition.x + element.layout.width / 2;
16449
- const cy = tapTarget?.cy ?? element.absolutePosition.y + element.layout.height / 2;
16450
- const hit = await this.tap(cx, cy, {
16451
- id: opts.id ?? tapTarget?.target?.id ?? element.id ?? null,
16452
- testID: opts.id ?? tapTarget?.target?.testID ?? element.testID ?? null,
16453
- text: opts.text ?? tapTarget?.target?.text ?? tapTarget?.target?.accessibilityLabel ?? element.text ?? element.accessibilityLabel ?? null,
16454
- type: tapTarget?.target?.type ?? element.type ?? null
16455
- });
16456
- if (hit?.hit === true) {
16457
- await sleep(300);
16458
- return;
16476
+ const tapInputAttempts = element.isTextInput ? 4 : 1;
16477
+ for (let attempt = 0; attempt < tapInputAttempts; attempt++) {
16478
+ const current = attempt === 0 ? element : await this.findElement({ text: opts.text, id: opts.id });
16479
+ if (!current) break;
16480
+ const tapTarget = typeof current.nodeId === "number" ? await this.resolveTapTarget(current.nodeId) : null;
16481
+ const cx = tapTarget?.cx ?? current.absolutePosition.x + current.layout.width / 2;
16482
+ const cy = tapTarget?.cy ?? current.absolutePosition.y + current.layout.height / 2;
16483
+ const hit = await this.tap(cx, cy, {
16484
+ id: opts.id ?? tapTarget?.target?.id ?? current.id ?? null,
16485
+ testID: opts.id ?? tapTarget?.target?.testID ?? current.testID ?? null,
16486
+ text: opts.text ?? tapTarget?.target?.text ?? tapTarget?.target?.accessibilityLabel ?? current.text ?? current.accessibilityLabel ?? null,
16487
+ type: tapTarget?.target?.type ?? current.type ?? null
16488
+ });
16489
+ if (hit?.hit === true) {
16490
+ await sleep(300);
16491
+ if (!current.isTextInput) return;
16492
+ if (await this.waitForFocusedTextInput(600)) return;
16493
+ continue;
16494
+ }
16495
+ break;
16459
16496
  }
16460
16497
  }
16461
16498
  const direct = await this.activatePressTarget(opts);
@@ -16511,6 +16548,7 @@ var init_bridge_flow_runner = __esm({
16511
16548
  return !!(element && element.absolutePosition.y + element.layout.height > 0 && element.absolutePosition.y < SCREEN_H);
16512
16549
  }
16513
16550
  async inputText(text) {
16551
+ await this.waitForFocusedTextInput();
16514
16552
  await this.bridge.send({
16515
16553
  type: "keyboard",
16516
16554
  simId: this.opts.simId,
@@ -16519,6 +16557,23 @@ var init_bridge_flow_runner = __esm({
16519
16557
  });
16520
16558
  await sleep(200);
16521
16559
  }
16560
+ // poll for a focused text input. returns true once getFocusedNode reports a
16561
+ // node (focus landed), false if the budget elapses. callers use it both as a
16562
+ // tap-focus confirmation (tapOn retry) and a pre-type barrier (inputText).
16563
+ async waitForFocusedTextInput(timeoutMs = 1500) {
16564
+ const deadline = Date.now() + timeoutMs;
16565
+ while (Date.now() < deadline) {
16566
+ try {
16567
+ const focused = await this.callTest(
16568
+ "getFocusedNode"
16569
+ );
16570
+ if (focused) return true;
16571
+ } catch {
16572
+ }
16573
+ await sleep(50);
16574
+ }
16575
+ return false;
16576
+ }
16522
16577
  async pressKey(name) {
16523
16578
  await this.bridge.send({
16524
16579
  type: "keyboard",
@@ -17178,7 +17233,8 @@ var init_bridge_flow_runner = __esm({
17178
17233
  const value = entry ? entry[1] : void 0;
17179
17234
  return !!(value && typeof value === "object" && "optional" in value && value.optional);
17180
17235
  }
17181
- async runStep(rawStep, stepIndex) {
17236
+ async runStep(rawStepInput, stepIndex) {
17237
+ const rawStep = typeof rawStepInput === "string" ? normalizeBareStringStep(rawStepInput) : rawStepInput;
17182
17238
  const stepName = Object.keys(rawStep).find((k) => k !== "when") || Object.keys(rawStep)[0];
17183
17239
  console.log(`[flow] step ${stepIndex + 1}: ${stepName}`);
17184
17240
  let step;
@@ -17303,15 +17359,24 @@ var init_bridge_flow_runner = __esm({
17303
17359
  await this.assertTreeContains(step.assertTreeContains);
17304
17360
  } else if (typeof step.eraseText === "number") {
17305
17361
  await this.eraseText(step.eraseText);
17306
- } else if (step.repeat) {
17307
- const times = Number(step.repeat.times);
17308
- if (!Number.isFinite(times)) {
17309
- throw new Error(`repeat.times is not a number: ${step.repeat.times}`);
17310
- }
17311
- for (let i = 0; i < times; i++) {
17362
+ } else if (step.repeat && Array.isArray(step.repeat.commands)) {
17363
+ const rawTimes = step.repeat.times;
17364
+ const maxRuns = rawTimes === void 0 || rawTimes === null || rawTimes === "" ? Number.MAX_SAFE_INTEGER : Number(rawTimes);
17365
+ if (!Number.isFinite(maxRuns)) {
17366
+ throw new Error(`repeat.times is not a number: ${rawTimes}`);
17367
+ }
17368
+ const condition = step.repeat.when ?? step.repeat.condition;
17369
+ const checkCondition = async () => {
17370
+ if (!condition) return true;
17371
+ return this.evaluateWhen(condition);
17372
+ };
17373
+ const hardCap = condition ? maxRuns : Math.min(maxRuns, 1e3);
17374
+ let i = 0;
17375
+ while (i < hardCap && await checkCondition()) {
17312
17376
  for (let j = 0; j < step.repeat.commands.length; j++) {
17313
17377
  await this.runStep(step.repeat.commands[j], j);
17314
17378
  }
17379
+ i++;
17315
17380
  }
17316
17381
  } else if (step.stopApp !== void 0) {
17317
17382
  await this.stopApp();
package/dist-lib/vite.cjs CHANGED
@@ -1,4 +1,4 @@
1
- /*! sootsim v0.1.142 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.144 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
  let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sootsim",
3
- "version": "0.1.142",
3
+ "version": "0.1.144",
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",
@@ -496,6 +496,29 @@ export async function probePort(
496
496
  // it has the metro side-effect documented above. older One bare-dev-server
497
497
  // setups that don't serve a manifest still resolve through this path; new
498
498
  // expo/metro/one setups are caught above and never reach here.
499
+ //
500
+ // hard safety gate (the recurring "metro on 8081 crashes" regression): a
501
+ // plain expo/metro packager that is still BOOTING serves `/status`,
502
+ // `/_expo/status`, and the `/` manifest a few seconds apart, so during the
503
+ // boot window all three wave-1 catches above can miss (status body not yet
504
+ // `packager-status:running`, manifest not yet parseable). without this gate
505
+ // we then fire the lethal HEAD against a metro that IS a metro — and the
506
+ // engine, handed a bogus `one/metro-entry.bundle` URL, opens an HMR socket
507
+ // whose `register-entrypoints` throws UnableToResolveError inside
508
+ // HmrServer._registerEntryPoint → unhandledRejection → metro exits. a real
509
+ // legacy bare-One dev server answers NONE of these metro/expo endpoints, so
510
+ // skipping the HEAD here never hides a genuine One server — it just defers
511
+ // this port to the next scan, by which point wave 1 identifies it cleanly.
512
+ const looksLikeMetroPackager =
513
+ (statusRes && statusRes.statusCode === 200) ||
514
+ (expoRes && expoRes.statusCode === 200) ||
515
+ (manifestRes && manifestRes.statusCode === 200 && manifestParsed != null)
516
+ if (looksLikeMetroPackager) {
517
+ // do NOT cache as knownNonPatched — we want a fresh wave-1 pass next scan
518
+ // once the packager finishes booting and its manifest/status are ready.
519
+ return null
520
+ }
521
+
499
522
  const oneRes = await httpGet(port, onePath, 'HEAD')
500
523
  if (
501
524
  oneRes &&
@@ -1,2 +0,0 @@
1
- /*! sootsim v0.1.142 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{a,b,c,d}from"./chunk-AIS5XNOM.js";import"./chunk-GCCVK7DE.js";import"./chunk-OI5YSYX2.js";import"./chunk-P7FJ6IE4.js";import"./chunk-R42X5C7W.js";import"./chunk-TKNYTKLF.js";export{c as ensureDaemonRunning,a as ensureRuntimeInstalled,d as ensureSootsimReady,b as resolveBootstrapPort};
@@ -1,2 +0,0 @@
1
- /*! sootsim v0.1.142 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{a,b,c,d,e}from"./chunk-UCPLYSBA.js";import"./chunk-TKNYTKLF.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,2 +0,0 @@
1
- /*! sootsim v0.1.142 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- var t="http://localhost:5173/";export{t as a};
@@ -1 +0,0 @@
1
- /*! sootsim v0.1.142 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
@@ -1 +0,0 @@
1
- /*! sootsim v0.1.142 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */