sootsim 0.1.147 → 0.1.149

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 (154) hide show
  1. package/dist-cli/bin.js +3 -3
  2. package/dist-cli/chunks/{agent-COSQ2VSX.js → agent-DTREOLFP.js} +2 -2
  3. package/dist-cli/chunks/{agent-wrapper-J6LA36AT.js → agent-wrapper-LEZW2CEK.js} +2 -2
  4. package/dist-cli/chunks/{app-fonts-H4CXDIF6.js → app-fonts-EQ6CK5L6.js} +2 -2
  5. package/dist-cli/chunks/{assert-THSUXYWU.js → assert-UEVT3SCS.js} +2 -2
  6. package/dist-cli/chunks/auto-bootstrap-ZFEKV5N5.js +2 -0
  7. package/dist-cli/chunks/beta-FKWWIATG.js +2 -0
  8. package/dist-cli/chunks/{camera-4NINTJSC.js → camera-SHCRQWYG.js} +2 -2
  9. package/dist-cli/chunks/chunk-6HSKGTN3.js +1 -0
  10. package/dist-cli/chunks/{chunk-QGQRB6D2.js → chunk-AEKDLIFW.js} +2 -2
  11. package/dist-cli/chunks/{chunk-VZ7VB7HX.js → chunk-BYL2ZXSO.js} +2 -2
  12. package/dist-cli/chunks/{chunk-MCQIOGWG.js → chunk-CGBHDP72.js} +1 -1
  13. package/dist-cli/chunks/{chunk-OL7HTJVC.js → chunk-DEOS6HMP.js} +1 -1
  14. package/dist-cli/chunks/{chunk-ZO7E7WE5.js → chunk-DVANCABF.js} +1 -1
  15. package/dist-cli/chunks/{chunk-DO2Z5CNM.js → chunk-DYSZWMKF.js} +3 -3
  16. package/dist-cli/chunks/{chunk-BOU5OTEA.js → chunk-EKTBF3PU.js} +1 -1
  17. package/dist-cli/chunks/{chunk-SQBPTIVB.js → chunk-FCLKD5U3.js} +2 -2
  18. package/dist-cli/chunks/chunk-FE4WZMPN.js +1 -0
  19. package/dist-cli/chunks/{chunk-5MX2B2EO.js → chunk-FFPNLA27.js} +2 -2
  20. package/dist-cli/chunks/{chunk-FY4TSSMQ.js → chunk-GBWFT53N.js} +1 -1
  21. package/dist-cli/chunks/{chunk-TNCYQFCC.js → chunk-GG4I3SBM.js} +1 -1
  22. package/dist-cli/chunks/{chunk-5PKIU2SG.js → chunk-JDEZIU6A.js} +1 -1
  23. package/dist-cli/chunks/{chunk-HYVQAUD4.js → chunk-JMLOSEXB.js} +2 -2
  24. package/dist-cli/chunks/{chunk-VC7MRZW7.js → chunk-K6DR7C5H.js} +2 -2
  25. package/dist-cli/chunks/{chunk-PWGYVHEW.js → chunk-KQW5FXIA.js} +2 -2
  26. package/dist-cli/chunks/{chunk-4CLJIXM3.js → chunk-L4SMKJAF.js} +1 -1
  27. package/dist-cli/chunks/{chunk-HN2Q2ZWT.js → chunk-LEUPCPVX.js} +1 -1
  28. package/dist-cli/chunks/{chunk-L7SG7TDU.js → chunk-MLXZI2VU.js} +1 -1
  29. package/dist-cli/chunks/{chunk-SIGAKBUY.js → chunk-MPJTH4SZ.js} +2 -2
  30. package/dist-cli/chunks/{chunk-UODOGO3P.js → chunk-MQ4ES4QV.js} +2 -2
  31. package/dist-cli/chunks/{chunk-KAAYKAUG.js → chunk-NCTGR5CW.js} +2 -2
  32. package/dist-cli/chunks/{chunk-SAV6NL5J.js → chunk-NHWVFX3R.js} +3 -3
  33. package/dist-cli/chunks/chunk-ODLM2KEX.js +1 -0
  34. package/dist-cli/chunks/{chunk-UQGDJNV2.js → chunk-PO6ZZXU5.js} +2 -2
  35. package/dist-cli/chunks/{chunk-5CTOWZY4.js → chunk-PXDREKKK.js} +2 -2
  36. package/dist-cli/chunks/{chunk-TM6NU7CC.js → chunk-Q3MVIFGA.js} +2 -2
  37. package/dist-cli/chunks/{chunk-SK3UIUQL.js → chunk-Q6KGWTG3.js} +1 -1
  38. package/dist-cli/chunks/{chunk-ZU5S3Z7A.js → chunk-Q6QBFWIS.js} +2 -2
  39. package/dist-cli/chunks/{chunk-LWC2FLTG.js → chunk-QFNCCWKQ.js} +2 -2
  40. package/dist-cli/chunks/{chunk-54R6LIOF.js → chunk-QWHEYTUI.js} +2 -2
  41. package/dist-cli/chunks/{chunk-BDLFGAKU.js → chunk-SOGORN62.js} +1 -1
  42. package/dist-cli/chunks/chunk-UGMBWU7M.js +119 -0
  43. package/dist-cli/chunks/{chunk-T7ERR3Y2.js → chunk-UKIYBW22.js} +1 -1
  44. package/dist-cli/chunks/chunk-UM2U5JQE.js +2 -0
  45. package/dist-cli/chunks/{chunk-EJIK4ANI.js → chunk-UO5XXQ53.js} +2 -2
  46. package/dist-cli/chunks/{chunk-DXL23RFP.js → chunk-WKJ5NKXN.js} +2 -2
  47. package/dist-cli/chunks/{chunk-QCPYYZGR.js → chunk-WKSDGVRG.js} +2 -2
  48. package/dist-cli/chunks/{chunk-PZL2H5SD.js → chunk-WMMLJ7UY.js} +1 -1
  49. package/dist-cli/chunks/{chunk-V5TDYT4H.js → chunk-XCLGRBR7.js} +2 -2
  50. package/dist-cli/chunks/{chunk-QEC2WZAU.js → chunk-Y3BXVPQA.js} +2 -2
  51. package/dist-cli/chunks/{chunk-UPDZS7GX.js → chunk-YCZB7NKY.js} +3 -3
  52. package/dist-cli/chunks/{chunk-FOLNNKZG.js → chunk-YHLH2UZO.js} +1 -1
  53. package/dist-cli/chunks/{chunk-HENMFGLU.js → chunk-ZU3Y3JSR.js} +1 -1
  54. package/dist-cli/chunks/cli-version-XNIRTBJN.js +2 -0
  55. package/dist-cli/chunks/{compat-E5CN4JWN.js → compat-BLVO5WCI.js} +3 -3
  56. package/dist-cli/chunks/{config-H75A6KBX.js → config-3FJKPOWY.js} +2 -2
  57. package/dist-cli/chunks/{control-CYDNB7NS.js → control-VU5ZXVAD.js} +2 -2
  58. package/dist-cli/chunks/{cpu-profile-QUFYSFW2.js → cpu-profile-4MF47DGH.js} +2 -2
  59. package/dist-cli/chunks/{daemon-7GPY5B63.js → daemon-5WV3TEOV.js} +2 -2
  60. package/dist-cli/chunks/{debug-5WWA5QA3.js → debug-UJ5SRPFT.js} +3 -3
  61. package/dist-cli/chunks/{detox-O55BWRH7.js → detox-EI6UZQAT.js} +2 -2
  62. package/dist-cli/chunks/{device-AQRY7VKI.js → device-WGUF7AKG.js} +2 -2
  63. package/dist-cli/chunks/{diagnose-FDKSEQJ5.js → diagnose-P6MU3RU3.js} +2 -2
  64. package/dist-cli/chunks/drivers-ISZDFEMB.js +2 -0
  65. package/dist-cli/chunks/{electron-ZQBTU3QE.js → electron-OGUHFWUK.js} +3 -3
  66. package/dist-cli/chunks/flow-5WJLI3KM.js +2 -0
  67. package/dist-cli/chunks/help-25RH7GSX.js +2 -0
  68. package/dist-cli/chunks/{hints-7UYBREXC.js → hints-7N4GV3ZE.js} +2 -2
  69. package/dist-cli/chunks/{home-paths-2FGC73RX.js → home-paths-AANZCIZ5.js} +2 -2
  70. package/dist-cli/chunks/{inspect-DIBHPUVR.js → inspect-RII7IRDI.js} +3 -3
  71. package/dist-cli/chunks/install-LBOWGAGG.js +2 -0
  72. package/dist-cli/chunks/{install-desktop-JGMQYTE4.js → install-desktop-OO4TEBLO.js} +3 -3
  73. package/dist-cli/chunks/{keys-76ZYEU3L.js → keys-UOR7DA3Y.js} +2 -2
  74. package/dist-cli/chunks/{launch-73NGQKXM.js → launch-FEBSZFD3.js} +3 -3
  75. package/dist-cli/chunks/{login-6EFONAEU.js → login-RBLUCSMW.js} +4 -4
  76. package/dist-cli/chunks/{logout-C3W5XSSV.js → logout-YUX36SXZ.js} +2 -2
  77. package/dist-cli/chunks/{maestro-HVAORFSN.js → maestro-FACL5FAI.js} +2 -2
  78. package/dist-cli/chunks/optional-demo-registry-RIDIENLK.js +2 -0
  79. package/dist-cli/chunks/{preview-EC3BTC6H.js → preview-JHPF7LKC.js} +2 -2
  80. package/dist-cli/chunks/{profile-UAZ2OUJ4.js → profile-ADYZQ5J6.js} +2 -2
  81. package/dist-cli/chunks/{react-XQCVY4U2.js → react-LZQFPQ6B.js} +2 -2
  82. package/dist-cli/chunks/{record-IGGTUUYU.js → record-SAQPU2IQ.js} +2 -2
  83. package/dist-cli/chunks/runtime-TJT4YSOY.js +2 -0
  84. package/dist-cli/chunks/{runtime-delivery-NXMBF4CK.js → runtime-delivery-FZNUZSUT.js} +2 -2
  85. package/dist-cli/chunks/{screenshot-JTZJZCCX.js → screenshot-KXMYCKUF.js} +2 -2
  86. package/dist-cli/chunks/{screenshot-mode-WZ6ZO5CD.js → screenshot-mode-K7KP3GHW.js} +2 -2
  87. package/dist-cli/chunks/{screenshots-P5VB65PJ.js → screenshots-Z7YQYHGB.js} +2 -2
  88. package/dist-cli/chunks/{server-2BYQFJUM.js → server-RFPTQNPD.js} +8 -8
  89. package/dist-cli/chunks/setup-repo-UQXTC4PO.js +2 -0
  90. package/dist-cli/chunks/{skills-A2I5K4UQ.js → skills-AJQCRGJE.js} +2 -2
  91. package/dist-cli/chunks/{slides-O25XV2IB.js → slides-7SEKUGSB.js} +2 -2
  92. package/dist-cli/chunks/{start-HY4ZGAE2.js → start-3N2SXPTE.js} +4 -4
  93. package/dist-cli/chunks/store-BKCI7NRB.js +2 -0
  94. package/dist-cli/chunks/telemetry-H4J7ZTQF.js +2 -0
  95. package/dist-cli/chunks/{test-IVVOPKT5.js → test-BPVERVNB.js} +3 -3
  96. package/dist-cli/chunks/three-mode-5GSDNLD6.js +58 -0
  97. package/dist-cli/chunks/{timeline-R6M6EJQA.js → timeline-66ZJ4PFG.js} +2 -2
  98. package/dist-cli/chunks/{upgrade-CZQ6GK7Y.js → upgrade-SSG22SMA.js} +2 -2
  99. package/dist-cli/chunks/upload-ITKMHX55.js +2 -0
  100. package/dist-cli/chunks/{version-XVAS3GOH.js → version-VCIYUELO.js} +2 -2
  101. package/dist-cli/chunks/web-56FLXL2W.js +2 -0
  102. package/dist-cli/chunks/{what-happened-MYXKT7EW.js → what-happened-NW3U7BQM.js} +2 -2
  103. package/dist-cli/chunks/{whoami-J7EHW2UD.js → whoami-56CZBGT2.js} +2 -2
  104. package/dist-lib/agent-daemon-client.cjs +1 -1
  105. package/dist-lib/agent-events.cjs +1 -1
  106. package/dist-lib/agent-sessions.cjs +1 -1
  107. package/dist-lib/attached-projects.cjs +1 -1
  108. package/dist-lib/auth/shared-session.cjs +1 -1
  109. package/dist-lib/backend-origin.cjs +1 -1
  110. package/dist-lib/beta.cjs +1 -1
  111. package/dist-lib/beta.mjs +1 -1
  112. package/dist-lib/bridge-constants.cjs +1 -1
  113. package/dist-lib/cli-constants.cjs +1 -1
  114. package/dist-lib/config.cjs +1 -1
  115. package/dist-lib/detox/index.cjs +1 -1
  116. package/dist-lib/dev-bundle-resolution.cjs +1 -1
  117. package/dist-lib/home-paths.cjs +1 -1
  118. package/dist-lib/host/bridge-host.cjs +16 -1
  119. package/dist-lib/host/fetch-proxy-handler.cjs +1 -1
  120. package/dist-lib/host/fetch-proxy-overrides.cjs +1 -1
  121. package/dist-lib/host/fetch-proxy-overrides.mjs +1 -1
  122. package/dist-lib/host/websocket-proxy.cjs +1 -1
  123. package/dist-lib/index.cjs +1 -1
  124. package/dist-lib/metro.cjs +1 -1
  125. package/dist-lib/profiles.cjs +1 -1
  126. package/dist-lib/render-mode.cjs +1 -1
  127. package/dist-lib/scripts/dev-server-scanner.cjs +1 -1
  128. package/dist-lib/sdk.cjs +1 -1
  129. package/dist-lib/sdk.mjs +1 -1
  130. package/dist-lib/skills.cjs +20 -5
  131. package/dist-lib/vite.cjs +1 -1
  132. package/package.json +1 -1
  133. package/src/host/bridge-host.ts +22 -0
  134. package/src/vite-plugin.ts +24 -0
  135. package/dist-cli/chunks/auto-bootstrap-SPALBOGS.js +0 -2
  136. package/dist-cli/chunks/beta-U3V7RSRI.js +0 -2
  137. package/dist-cli/chunks/chunk-B46RT5KY.js +0 -119
  138. package/dist-cli/chunks/chunk-EWAA5DKR.js +0 -1
  139. package/dist-cli/chunks/chunk-KTCY7WJ2.js +0 -2
  140. package/dist-cli/chunks/chunk-QGWWRXSG.js +0 -1
  141. package/dist-cli/chunks/chunk-ZPDQ3S7P.js +0 -1
  142. package/dist-cli/chunks/cli-version-TJZ4JXUC.js +0 -2
  143. package/dist-cli/chunks/drivers-QDHVKRYQ.js +0 -2
  144. package/dist-cli/chunks/flow-H6MLEX2L.js +0 -2
  145. package/dist-cli/chunks/help-THQ2V5SE.js +0 -2
  146. package/dist-cli/chunks/install-R63X4FZO.js +0 -2
  147. package/dist-cli/chunks/optional-demo-registry-AJQV4MPG.js +0 -2
  148. package/dist-cli/chunks/runtime-ATNAKUCZ.js +0 -2
  149. package/dist-cli/chunks/setup-repo-7BUMPQZM.js +0 -2
  150. package/dist-cli/chunks/store-VXGE7SLD.js +0 -2
  151. package/dist-cli/chunks/telemetry-HGRYUILN.js +0 -2
  152. package/dist-cli/chunks/three-mode-TYAB3FVD.js +0 -54
  153. package/dist-cli/chunks/upload-NR4J3LM2.js +0 -2
  154. package/dist-cli/chunks/web-35EQF7J6.js +0 -2
@@ -1,5 +1,5 @@
1
- /*! sootsim v0.1.147 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{C as T,D as A,E as y,P as _,Q as b,R as S}from"./chunk-T7ERR3Y2.js";import{c as N,e as F}from"./chunk-VC7MRZW7.js";import{b as k}from"./chunk-SK3UIUQL.js";import"./chunk-4CLJIXM3.js";import"./chunk-MCQIOGWG.js";import"./chunk-ZO7E7WE5.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.149 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
+ import{C as T,D as A,E as y,P as _,Q as b,R as S}from"./chunk-UKIYBW22.js";import{c as N,e as F}from"./chunk-K6DR7C5H.js";import{b as k}from"./chunk-Q6KGWTG3.js";import"./chunk-L4SMKJAF.js";import"./chunk-CGBHDP72.js";import"./chunk-DVANCABF.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.147 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{d as i}from"./chunk-TM6NU7CC.js";import{d as n}from"./chunk-QEC2WZAU.js";import"./chunk-MCQIOGWG.js";import"./chunk-ZO7E7WE5.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.149 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
+ import{d as i}from"./chunk-Q3MVIFGA.js";import{d as n}from"./chunk-Y3BXVPQA.js";import"./chunk-CGBHDP72.js";import"./chunk-DVANCABF.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.147 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.149 | (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.147 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.149 | (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.147 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.149 | (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.147 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.149 | (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.147 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.149 | (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.147 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.149 | (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.147 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.149 | (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.147 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.149 | (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.147 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.149 | (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.147 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.149 | (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.147 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.149 | (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.147 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.149 | (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.147 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.149 | (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.147 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.149 | (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.147 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.149 | (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;
@@ -3845,6 +3845,20 @@ var SootSimBridgeHost = class _SootSimBridgeHost {
3845
3845
  isAutomationSim(sim) {
3846
3846
  return sim.meta?.sootsimHostDriver === "playwright";
3847
3847
  }
3848
+ // an automation sim whose spawning playwright host process is still alive is
3849
+ // an ACTIVE run, not an abandoned tab. mirrors the cli's playwrightHostPidForSim
3850
+ // (control.ts): extract the host pid from meta, then check liveness so the
3851
+ // host-side idle GC never kills a live capture/factory sim mid-run.
3852
+ automationSimOwnerAlive(sim) {
3853
+ const pid = Number(sim.meta?.sootsimHostPid);
3854
+ if (!Number.isInteger(pid) || pid <= 1 || pid === process.pid) return false;
3855
+ try {
3856
+ process.kill(pid, 0);
3857
+ return true;
3858
+ } catch (err) {
3859
+ return err.code === "EPERM";
3860
+ }
3861
+ }
3848
3862
  reapIdleSims(now = Date.now()) {
3849
3863
  const attachedSimIds = new Set(this.cliSimBySocket.values());
3850
3864
  const automationLive = [];
@@ -3855,6 +3869,7 @@ var SootSimBridgeHost = class _SootSimBridgeHost {
3855
3869
  const lastTouched = Math.max(sim.lastActiveAt, sim.connectedAt);
3856
3870
  const idleMs = now - lastTouched;
3857
3871
  const automation = this.isAutomationSim(sim);
3872
+ if (automation && this.automationSimOwnerAlive(sim)) continue;
3858
3873
  const ttl = automation ? this.automationSimIdleReapTtlMs : this.simIdleReapTtlMs;
3859
3874
  if (idleMs >= ttl) {
3860
3875
  this.closeSimSocketFromHost(sim.ws);
@@ -1,4 +1,4 @@
1
- /*! sootsim v0.1.147 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.149 | (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.147 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.149 | (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.147 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.149 | (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.147 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.149 | (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.147 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.149 | (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.147 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.149 | (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.147 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.149 | (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.147 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.149 | (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.147 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.149 | (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/sdk.cjs CHANGED
@@ -1,4 +1,4 @@
1
- /*! sootsim v0.1.147 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.149 | (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.147 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.149 | (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.147 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.149 | (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;
@@ -678,10 +678,10 @@ var init_registry = __esm({
678
678
  versions: [
679
679
  {
680
680
  range: ">=0.1.0",
681
- coverage: 0.92,
682
- note: "all SwiftUI-bridged components stubbed with HTML/RN equivalents",
683
- working: "Button, Switch, Picker, Slider, SegmentedControl, TextField, Checkbox, ColorPicker, ProgressView, Section, Label, ContextMenu (Trigger/Items/Root)",
684
- missing: "native SwiftUI animations, haptic feedback, platform-specific visual styling fidelity"
681
+ coverage: 0.93,
682
+ note: "all SwiftUI-bridged components stubbed with pixel-faithful RN/canvas equivalents, plus iOS 26 Liquid Glass (glassEffect material)",
683
+ working: "Host, Form/Section/List, Button (default/bordered/borderedProminent/destructive via buttonStyle modifier), Toggle, Slider, Stepper, Picker (segmented/menu/inline via selection + tag children), ColorPicker, ProgressView, Gauge, DatePicker, TextField/SecureField, LabeledContent, Label, Image (SF Symbols), HStack/VStack/ZStack, DisclosureGroup, ContentUnavailableView, ContextMenu/Menu, glassEffect (regular/clear), GlassEffectContainer",
684
+ missing: "native SwiftUI spring animations, haptic feedback, real Liquid Glass refraction of backdrop content (sootsim renders a flat translucent material)"
685
685
  }
686
686
  ]
687
687
  },
@@ -13885,6 +13885,20 @@ var init_bridge_host = __esm({
13885
13885
  isAutomationSim(sim) {
13886
13886
  return sim.meta?.sootsimHostDriver === "playwright";
13887
13887
  }
13888
+ // an automation sim whose spawning playwright host process is still alive is
13889
+ // an ACTIVE run, not an abandoned tab. mirrors the cli's playwrightHostPidForSim
13890
+ // (control.ts): extract the host pid from meta, then check liveness so the
13891
+ // host-side idle GC never kills a live capture/factory sim mid-run.
13892
+ automationSimOwnerAlive(sim) {
13893
+ const pid = Number(sim.meta?.sootsimHostPid);
13894
+ if (!Number.isInteger(pid) || pid <= 1 || pid === process.pid) return false;
13895
+ try {
13896
+ process.kill(pid, 0);
13897
+ return true;
13898
+ } catch (err) {
13899
+ return err.code === "EPERM";
13900
+ }
13901
+ }
13888
13902
  reapIdleSims(now = Date.now()) {
13889
13903
  const attachedSimIds = new Set(this.cliSimBySocket.values());
13890
13904
  const automationLive = [];
@@ -13895,6 +13909,7 @@ var init_bridge_host = __esm({
13895
13909
  const lastTouched = Math.max(sim.lastActiveAt, sim.connectedAt);
13896
13910
  const idleMs = now - lastTouched;
13897
13911
  const automation = this.isAutomationSim(sim);
13912
+ if (automation && this.automationSimOwnerAlive(sim)) continue;
13898
13913
  const ttl = automation ? this.automationSimIdleReapTtlMs : this.simIdleReapTtlMs;
13899
13914
  if (idleMs >= ttl) {
13900
13915
  this.closeSimSocketFromHost(sim.ws);
package/dist-lib/vite.cjs CHANGED
@@ -1,4 +1,4 @@
1
- /*! sootsim v0.1.147 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.149 | (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.147",
3
+ "version": "0.1.149",
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",
@@ -1666,6 +1666,21 @@ export class SootSimBridgeHost {
1666
1666
  return sim.meta?.sootsimHostDriver === 'playwright'
1667
1667
  }
1668
1668
 
1669
+ // an automation sim whose spawning playwright host process is still alive is
1670
+ // an ACTIVE run, not an abandoned tab. mirrors the cli's playwrightHostPidForSim
1671
+ // (control.ts): extract the host pid from meta, then check liveness so the
1672
+ // host-side idle GC never kills a live capture/factory sim mid-run.
1673
+ private automationSimOwnerAlive(sim: BridgeSimConnection): boolean {
1674
+ const pid = Number(sim.meta?.sootsimHostPid)
1675
+ if (!Number.isInteger(pid) || pid <= 1 || pid === process.pid) return false
1676
+ try {
1677
+ process.kill(pid, 0) // ESRCH → dead; EPERM → alive but unsignalable
1678
+ return true
1679
+ } catch (err) {
1680
+ return (err as NodeJS.ErrnoException).code === 'EPERM'
1681
+ }
1682
+ }
1683
+
1669
1684
  private reapIdleSims(now = Date.now()) {
1670
1685
  const attachedSimIds = new Set(this.cliSimBySocket.values())
1671
1686
  // automation sims that pass every "someone cares" gate but are still under
@@ -1680,6 +1695,13 @@ export class SootSimBridgeHost {
1680
1695
  const lastTouched = Math.max(sim.lastActiveAt, sim.connectedAt)
1681
1696
  const idleMs = now - lastTouched
1682
1697
  const automation = this.isAutomationSim(sim)
1698
+ // a live-owner automation sim is an ACTIVE run (its spawning playwright host
1699
+ // process is still alive) — never reap it. the host keeps Chrome alive
1700
+ // intentionally and tears it down itself when ITS owner driver dies; only
1701
+ // orphaned/host-dead autos are the leak this reaper targets. (2026-06: the
1702
+ // 10-min automation TTL was reaping live capture + factory sims mid-run —
1703
+ // too aggressive.) continue skips both the TTL reap and the cap pass below.
1704
+ if (automation && this.automationSimOwnerAlive(sim)) continue
1683
1705
  const ttl = automation ? this.automationSimIdleReapTtlMs : this.simIdleReapTtlMs
1684
1706
  if (idleMs >= ttl) {
1685
1707
  // terminal close → client closes the window, does not reconnect; the
@@ -122,6 +122,22 @@ const reactNativeHapticFeedbackTouchablePath = (() => {
122
122
  }
123
123
  })()
124
124
 
125
+ // `@expo/ui/swift-ui/modifiers` is pure JS (every modifier just returns a
126
+ // ModifierConfig via createModifier) and runs from the real bundle unchanged —
127
+ // the runtime stub-registry intentionally does NOT intercept it. but the
128
+ // `@expo/ui/swift-ui` stub alias is a vite PREFIX match, so without an explicit
129
+ // longer alias it captures `.../modifiers` and rewrites it to
130
+ // `<stubs>/expo-ui.ts/modifiers` ("Not a directory"). resolve the real subpath
131
+ // here and alias it first (stubAliases are sorted longest-first, and this is
132
+ // longer than `@expo/ui/swift-ui`, so it wins).
133
+ const expoUiSwiftUiModifiersRealPath = (() => {
134
+ try {
135
+ return sootsimPluginRequire.resolve('@expo/ui/swift-ui/modifiers')
136
+ } catch {
137
+ return null
138
+ }
139
+ })()
140
+
125
141
  const compatWrapperRealPackageAliases: Array<{
126
142
  find: string
127
143
  replacement: string
@@ -701,6 +717,14 @@ function sootsimConfigPlugin(appDir: string, extraSources: string[]): Plugin {
701
717
  ]
702
718
  : []),
703
719
  ...compatWrapperRealPackageAliases,
720
+ ...(expoUiSwiftUiModifiersRealPath
721
+ ? [
722
+ {
723
+ find: '@expo/ui/swift-ui/modifiers',
724
+ replacement: expoUiSwiftUiModifiersRealPath,
725
+ },
726
+ ]
727
+ : []),
704
728
  ...stubAliases,
705
729
  ],
706
730
  },
@@ -1,2 +0,0 @@
1
- /*! sootsim v0.1.147 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{a,b,c,d}from"./chunk-DO2Z5CNM.js";import"./chunk-VC7MRZW7.js";import"./chunk-SK3UIUQL.js";import"./chunk-4CLJIXM3.js";import"./chunk-MCQIOGWG.js";import"./chunk-ZO7E7WE5.js";export{c as ensureDaemonRunning,a as ensureRuntimeInstalled,d as ensureSootsimReady,b as resolveBootstrapPort};
@@ -1,2 +0,0 @@
1
- /*! sootsim v0.1.147 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{a,b,c,d,e}from"./chunk-HENMFGLU.js";import"./chunk-ZO7E7WE5.js";export{e as BETA_ASK_HEADLINE,c as BETA_LABEL,d as BETA_TAGLINE,b as BETA_VERSION_TARGET,a as IS_BETA};