sootsim 0.1.173 → 0.1.175

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 (149) hide show
  1. package/dist-cli/bin.js +3 -3
  2. package/dist-cli/chunks/{agent-C2E22ESN.js → agent-A4WFJEFV.js} +2 -2
  3. package/dist-cli/chunks/{agent-wrapper-IQUZ3DT6.js → agent-wrapper-EOZBE6UT.js} +2 -2
  4. package/dist-cli/chunks/{app-fonts-EL3GCMOF.js → app-fonts-H2I7IV7N.js} +2 -2
  5. package/dist-cli/chunks/{assert-UFDQWVKU.js → assert-36QXQUCE.js} +2 -2
  6. package/dist-cli/chunks/beta-7FRVMDBH.js +2 -0
  7. package/dist-cli/chunks/{camera-YR4LF62J.js → camera-7HK2Y3PY.js} +2 -2
  8. package/dist-cli/chunks/{chunk-7O64AC44.js → chunk-2J67UJXT.js} +1 -1
  9. package/dist-cli/chunks/{chunk-M2GYHZES.js → chunk-2QTAUBZX.js} +3 -3
  10. package/dist-cli/chunks/chunk-3G5EE3ST.js +2 -0
  11. package/dist-cli/chunks/{chunk-7LCS6UB7.js → chunk-3SUIAUIY.js} +1 -1
  12. package/dist-cli/chunks/{chunk-GTIQVAJP.js → chunk-46S56FJJ.js} +1 -1
  13. package/dist-cli/chunks/{chunk-4NEHOYQH.js → chunk-4PQ36DTJ.js} +3 -3
  14. package/dist-cli/chunks/{chunk-KHMFZHHP.js → chunk-4UATZVHM.js} +2 -2
  15. package/dist-cli/chunks/{chunk-MJQCN4PS.js → chunk-4UGD4KJM.js} +2 -2
  16. package/dist-cli/chunks/{chunk-BUCN4NOE.js → chunk-5D4PHINP.js} +1 -1
  17. package/dist-cli/chunks/{chunk-RXB7KMHB.js → chunk-5QLWXLML.js} +2 -2
  18. package/dist-cli/chunks/{chunk-HGUPRH7F.js → chunk-7F2LH7U5.js} +2 -2
  19. package/dist-cli/chunks/{chunk-TYCNPLOA.js → chunk-DV6SWCY7.js} +1 -1
  20. package/dist-cli/chunks/{chunk-2IUYPQC6.js → chunk-EEIUS5AS.js} +2 -2
  21. package/dist-cli/chunks/{chunk-CO42HSYV.js → chunk-GJQGKFLY.js} +1 -1
  22. package/dist-cli/chunks/{chunk-FLKV4YHL.js → chunk-H2J4Z7LY.js} +2 -2
  23. package/dist-cli/chunks/{chunk-KBTADP77.js → chunk-HCKTFQLK.js} +1 -1
  24. package/dist-cli/chunks/{chunk-I3UUCR2A.js → chunk-HWJ52K4J.js} +1 -1
  25. package/dist-cli/chunks/{chunk-5RLVAUSR.js → chunk-HWUFW3IP.js} +2 -2
  26. package/dist-cli/chunks/{chunk-6PQ4KSCP.js → chunk-IISA6UXR.js} +1 -1
  27. package/dist-cli/chunks/{chunk-QYHBVPQH.js → chunk-IKJSGKUB.js} +2 -2
  28. package/dist-cli/chunks/{chunk-VQQVVMNO.js → chunk-JCQEG4R6.js} +2 -2
  29. package/dist-cli/chunks/{chunk-LOP35MNF.js → chunk-KSF72FPP.js} +2 -2
  30. package/dist-cli/chunks/{chunk-FX3YWIDK.js → chunk-LYZXARZO.js} +2 -2
  31. package/dist-cli/chunks/{chunk-MPJX3BCR.js → chunk-MLLINRL2.js} +1 -1
  32. package/dist-cli/chunks/{chunk-A43ZSZMJ.js → chunk-NPZPBSZD.js} +1 -1
  33. package/dist-cli/chunks/chunk-ODISDSXU.js +1 -0
  34. package/dist-cli/chunks/{chunk-HSACKNHS.js → chunk-OMJ2DTQJ.js} +2 -2
  35. package/dist-cli/chunks/{chunk-QGQSKDXQ.js → chunk-P2WO5LMI.js} +2 -2
  36. package/dist-cli/chunks/{chunk-ODWORXXD.js → chunk-QK76RK6J.js} +1 -1
  37. package/dist-cli/chunks/{chunk-6D2B6YM5.js → chunk-RAESCYIA.js} +1 -1
  38. package/dist-cli/chunks/{chunk-N7HUNHH6.js → chunk-RCPMRHTK.js} +1 -1
  39. package/dist-cli/chunks/{chunk-WS4M3ANJ.js → chunk-SV3SRWN5.js} +1 -1
  40. package/dist-cli/chunks/{chunk-WYGYIQOE.js → chunk-UMJDCX2P.js} +2 -2
  41. package/dist-cli/chunks/chunk-URQSBUTU.js +1 -0
  42. package/dist-cli/chunks/{chunk-DFP5BKYL.js → chunk-UXZRHPX6.js} +2 -2
  43. package/dist-cli/chunks/{chunk-X4A5YX56.js → chunk-V7AGBG2P.js} +2 -2
  44. package/dist-cli/chunks/{chunk-AOFD6E2Z.js → chunk-VW643HG5.js} +2 -2
  45. package/dist-cli/chunks/{chunk-HYCJ7HUJ.js → chunk-WM73SGMM.js} +2 -2
  46. package/dist-cli/chunks/{chunk-3N4T6ZCZ.js → chunk-XBK3XAKL.js} +2 -2
  47. package/dist-cli/chunks/{chunk-MPVUKE2L.js → chunk-XDDO46ZW.js} +1 -1
  48. package/dist-cli/chunks/{chunk-TAFDTRBK.js → chunk-Y3OHYOFS.js} +2 -2
  49. package/dist-cli/chunks/{chunk-PPDVP56P.js → chunk-YMBQBKKA.js} +12 -12
  50. package/dist-cli/chunks/{chunk-Q6VYTVCL.js → chunk-ZG2A6LCL.js} +2 -2
  51. package/dist-cli/chunks/{chunk-D5MW3FJE.js → chunk-ZPQY5DBY.js} +2 -2
  52. package/dist-cli/chunks/{chunk-HTCJBVQD.js → chunk-ZZWAHZ37.js} +1 -1
  53. package/dist-cli/chunks/cli-version-HCYSKPJO.js +2 -0
  54. package/dist-cli/chunks/{compat-K733FE26.js → compat-KWM6HXJD.js} +3 -3
  55. package/dist-cli/chunks/{control-PAVODRG5.js → control-PVZRPH57.js} +2 -2
  56. package/dist-cli/chunks/{cpu-profile-OGUUHMAT.js → cpu-profile-3YLLRNVG.js} +2 -2
  57. package/dist-cli/chunks/daemon-2DT4QAJ4.js +2 -0
  58. package/dist-cli/chunks/{debug-7DNEARGS.js → debug-TD4EVFT7.js} +3 -3
  59. package/dist-cli/chunks/{detox-JAIVH44U.js → detox-S7M5WN3L.js} +2 -2
  60. package/dist-cli/chunks/{device-DLTVU6ZI.js → device-WR7GA4RN.js} +2 -2
  61. package/dist-cli/chunks/{diagnose-3D5ISUJP.js → diagnose-JZMNR25X.js} +2 -2
  62. package/dist-cli/chunks/drivers-UMQTPEMU.js +2 -0
  63. package/dist-cli/chunks/{electron-HYOT74T7.js → electron-V2YDDVKJ.js} +3 -3
  64. package/dist-cli/chunks/flow-CKXTFJJ7.js +2 -0
  65. package/dist-cli/chunks/help-OEMLUQMD.js +2 -0
  66. package/dist-cli/chunks/{hints-5RUWD6KL.js → hints-OK373YOJ.js} +2 -2
  67. package/dist-cli/chunks/{home-paths-YXPZJSA5.js → home-paths-IFY5UTLL.js} +2 -2
  68. package/dist-cli/chunks/inspect-LRIJ7MQT.js +987 -0
  69. package/dist-cli/chunks/{install-desktop-AXOXLY57.js → install-desktop-ESQL2Q2T.js} +3 -3
  70. package/dist-cli/chunks/{keys-OS55YM3T.js → keys-IHG2YEL3.js} +2 -2
  71. package/dist-cli/chunks/{login-CE3ATU7H.js → login-CYIWYJGG.js} +4 -4
  72. package/dist-cli/chunks/{logout-55RMHZIG.js → logout-NALFLZWI.js} +2 -2
  73. package/dist-cli/chunks/{maestro-BWH4Y3OO.js → maestro-QKSXVPWG.js} +2 -2
  74. package/dist-cli/chunks/optional-demo-registry-CIEW2ET7.js +2 -0
  75. package/dist-cli/chunks/{preview-YZCH5SS4.js → preview-XCQGBN2I.js} +2 -2
  76. package/dist-cli/chunks/{profile-Q6CC3BOS.js → profile-RDAPVU7K.js} +2 -2
  77. package/dist-cli/chunks/{react-43Y6I63U.js → react-MM373YNE.js} +2 -2
  78. package/dist-cli/chunks/{record-OAW5IIQH.js → record-SQA376Z7.js} +4 -4
  79. package/dist-cli/chunks/runtime-CUNVH66R.js +2 -0
  80. package/dist-cli/chunks/{screenshot-JEXBD4GJ.js → screenshot-FCKW6JV6.js} +2 -2
  81. package/dist-cli/chunks/{screenshot-mode-AOS3ROPL.js → screenshot-mode-QVRUJXZ3.js} +2 -2
  82. package/dist-cli/chunks/{screenshots-CYTHIJ5W.js → screenshots-ITBCSBZS.js} +2 -2
  83. package/dist-cli/chunks/{screenshots-capture-YAEYGEHY.js → screenshots-capture-H4EAYFH3.js} +2 -2
  84. package/dist-cli/chunks/{serve-OYNG5IHK.js → serve-3GHYSGJR.js} +10 -10
  85. package/dist-cli/chunks/{setup-6O7GJF73.js → setup-ME5SRHWD.js} +2 -2
  86. package/dist-cli/chunks/skills-E5JE3SAI.js +48 -0
  87. package/dist-cli/chunks/{slides-DSY2GHZZ.js → slides-D37ML4LI.js} +2 -2
  88. package/dist-cli/chunks/store-UW5HH6DW.js +2 -0
  89. package/dist-cli/chunks/telemetry-KSBNWXNE.js +2 -0
  90. package/dist-cli/chunks/{test-DVS4LMCY.js → test-CWWQJG5K.js} +3 -3
  91. package/dist-cli/chunks/{three-mode-6KCLSSPS.js → three-mode-WESGARG5.js} +2 -2
  92. package/dist-cli/chunks/{timeline-ZWPBF46N.js → timeline-RUVZASG4.js} +2 -2
  93. package/dist-cli/chunks/{upgrade-ZV77D7SC.js → upgrade-DKWD6TSY.js} +2 -2
  94. package/dist-cli/chunks/upload-LYANGCPB.js +2 -0
  95. package/dist-cli/chunks/{version-WAJ3YX4U.js → version-G45RLONC.js} +2 -2
  96. package/dist-cli/chunks/{web-KVDTMF6L.js → web-X2HCJQQE.js} +2 -2
  97. package/dist-cli/chunks/{what-happened-GUIQ3GXK.js → what-happened-5DBVOXKC.js} +2 -2
  98. package/dist-cli/chunks/{whoami-U6J5UL6X.js → whoami-ZDT3RQOC.js} +2 -2
  99. package/dist-lib/agent-daemon-client.cjs +1 -1
  100. package/dist-lib/agent-events.cjs +1 -1
  101. package/dist-lib/agent-sessions.cjs +1 -1
  102. package/dist-lib/attached-projects.cjs +1 -1
  103. package/dist-lib/auth/shared-session.cjs +1 -1
  104. package/dist-lib/backend-origin.cjs +1 -1
  105. package/dist-lib/beta.cjs +1 -1
  106. package/dist-lib/beta.mjs +1 -1
  107. package/dist-lib/bridge-constants.cjs +1 -1
  108. package/dist-lib/cli-constants.cjs +1 -1
  109. package/dist-lib/config.cjs +1 -1
  110. package/dist-lib/detox/index.cjs +1 -1
  111. package/dist-lib/dev-bundle-resolution.cjs +1 -1
  112. package/dist-lib/home-paths.cjs +1 -1
  113. package/dist-lib/host/bridge-host.cjs +3 -2
  114. package/dist-lib/host/fetch-proxy-handler.cjs +1 -1
  115. package/dist-lib/host/fetch-proxy-overrides.cjs +1 -1
  116. package/dist-lib/host/fetch-proxy-overrides.mjs +1 -1
  117. package/dist-lib/host/websocket-proxy.cjs +1 -1
  118. package/dist-lib/index.cjs +1 -1
  119. package/dist-lib/jump-to-source-babel.cjs +1 -1
  120. package/dist-lib/menu.cjs +1 -1
  121. package/dist-lib/menu.mjs +1 -1
  122. package/dist-lib/metro.cjs +1 -1
  123. package/dist-lib/profiles.cjs +1 -1
  124. package/dist-lib/render-mode.cjs +1 -1
  125. package/dist-lib/scripts/dev-server-scanner.cjs +1 -1
  126. package/dist-lib/sdk.cjs +28 -1
  127. package/dist-lib/sdk.mjs +27 -1
  128. package/dist-lib/skills.cjs +4 -3
  129. package/dist-lib/vite.cjs +1 -1
  130. package/package.json +1 -1
  131. package/skills/soot.md +1 -1
  132. package/skills/sootsim-debug.md +23 -1
  133. package/src/host/bridge-host.ts +7 -4
  134. package/dist-cli/chunks/beta-3VFRMFCE.js +0 -2
  135. package/dist-cli/chunks/chunk-4UNCEOKE.js +0 -2
  136. package/dist-cli/chunks/chunk-F2VINQ62.js +0 -1
  137. package/dist-cli/chunks/chunk-M4TI3GFJ.js +0 -1
  138. package/dist-cli/chunks/cli-version-7EPWQ5XZ.js +0 -2
  139. package/dist-cli/chunks/daemon-ITK6NXMP.js +0 -2
  140. package/dist-cli/chunks/drivers-VFK56EQO.js +0 -2
  141. package/dist-cli/chunks/flow-AHIM2QYC.js +0 -2
  142. package/dist-cli/chunks/help-7JOCVVN6.js +0 -2
  143. package/dist-cli/chunks/inspect-D476ZLEK.js +0 -978
  144. package/dist-cli/chunks/optional-demo-registry-4IEF2MIB.js +0 -2
  145. package/dist-cli/chunks/runtime-C2EIPLM6.js +0 -2
  146. package/dist-cli/chunks/skills-XJOVDRCF.js +0 -40
  147. package/dist-cli/chunks/store-DSH2KPUH.js +0 -2
  148. package/dist-cli/chunks/telemetry-PJHHQYHR.js +0 -2
  149. package/dist-cli/chunks/upload-STOKBIDT.js +0 -2
@@ -1,5 +1,5 @@
1
- /*! sootsim v0.1.173 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{C as N,D as F,E as y,P as T,Q as b,R as S}from"./chunk-PPDVP56P.js";import{c as A,e as _}from"./chunk-HSACKNHS.js";import"./chunk-KBTADP77.js";import{b as k}from"./chunk-6D2B6YM5.js";import"./chunk-7LCS6UB7.js";import"./chunk-HTCJBVQD.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=A(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.175 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
+ import{C as N,D as F,F as y,Q as T,R as b,S}from"./chunk-YMBQBKKA.js";import{c as A,e as _}from"./chunk-OMJ2DTQJ.js";import"./chunk-HCKTFQLK.js";import{b as k}from"./chunk-RAESCYIA.js";import"./chunk-3SUIAUIY.js";import"./chunk-ZZWAHZ37.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=A(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.173 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{d as i}from"./chunk-X4A5YX56.js";import{d as n}from"./chunk-VQQVVMNO.js";import"./chunk-7LCS6UB7.js";import"./chunk-HTCJBVQD.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.175 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
+ import{d as i}from"./chunk-V7AGBG2P.js";import{d as n}from"./chunk-JCQEG4R6.js";import"./chunk-3SUIAUIY.js";import"./chunk-ZZWAHZ37.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.173 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.175 | (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.173 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.175 | (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.173 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.175 | (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.173 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.175 | (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.173 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.175 | (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.173 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.175 | (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.173 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.175 | (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.173 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.175 | (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.173 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.175 | (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.173 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.175 | (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.173 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.175 | (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.173 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.175 | (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.173 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.175 | (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.173 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.175 | (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.173 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.175 | (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;
@@ -2707,6 +2707,7 @@ function handleWebSocketProxyUpgrade(req, socket, head) {
2707
2707
  }
2708
2708
 
2709
2709
  // src/host/bridge-host.ts
2710
+ var SOOTSIM_CROSS_ORIGIN_EMBEDDER_POLICY = "require-corp";
2710
2711
  var WRITE_COMMAND_TYPES = /* @__PURE__ */ new Set(["tap", "keyboard"]);
2711
2712
  var FORCE_CLOSE_GRACE_MS = 2e3;
2712
2713
  var FORCE_CLOSE_TERMINATE_MS = 1e3;
@@ -3615,7 +3616,7 @@ var SootSimBridgeHost = class _SootSimBridgeHost {
3615
3616
  * electron's webContents can navigate freely inside the runtime. */
3616
3617
  handleHttpRequest(req, res) {
3617
3618
  res.setHeader("Cross-Origin-Opener-Policy", "same-origin");
3618
- res.setHeader("Cross-Origin-Embedder-Policy", "credentialless");
3619
+ res.setHeader("Cross-Origin-Embedder-Policy", SOOTSIM_CROSS_ORIGIN_EMBEDDER_POLICY);
3619
3620
  res.setHeader("Cross-Origin-Resource-Policy", "cross-origin");
3620
3621
  res.setHeader("Document-Policy", "js-profiling");
3621
3622
  if (isFetchProxyRequestUrl(req.url)) {
@@ -1,4 +1,4 @@
1
- /*! sootsim v0.1.173 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.175 | (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.173 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.175 | (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.173 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.175 | (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.173 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.175 | (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.173 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.175 | (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.173 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.175 | (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/menu.cjs CHANGED
@@ -1,4 +1,4 @@
1
- /*! sootsim v0.1.173 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.175 | (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/menu.mjs CHANGED
@@ -1,4 +1,4 @@
1
- /*! sootsim v0.1.173 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.175 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/menu.ts
4
4
  var SOOTSIM_ENGINE_EVENT_NAME = "sootsim:engine-event";
@@ -1,4 +1,4 @@
1
- /*! sootsim v0.1.173 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.175 | (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.173 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.175 | (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.173 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.175 | (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.173 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.175 | (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.173 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.175 | (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;
@@ -33,6 +33,7 @@ __export(sdk_exports, {
33
33
  clearConsole: () => clearConsole,
34
34
  clearLogs: () => clearLogs,
35
35
  clearRequests: () => clearRequests,
36
+ detectOpenNativeUI: () => detectOpenNativeUI,
36
37
  filterLogEntries: () => filterLogEntries,
37
38
  formatLayoutElements: () => formatLayoutElements,
38
39
  formatTimelineEvent: () => formatTimelineEvent,
@@ -1059,6 +1060,31 @@ async function inspectTimelineRecent(bridge, query) {
1059
1060
  args: [query]
1060
1061
  });
1061
1062
  }
1063
+ async function detectOpenNativeUI(bridge) {
1064
+ let events;
1065
+ try {
1066
+ const res = await inspectTimelineRecent(bridge, {
1067
+ kinds: ["alert", "actionsheet"],
1068
+ limit: 80
1069
+ });
1070
+ events = res.events;
1071
+ } catch {
1072
+ return [];
1073
+ }
1074
+ const latest = /* @__PURE__ */ new Map();
1075
+ for (const ev of events) latest.set(ev.kind, ev);
1076
+ const out = [];
1077
+ const check = (kind, label) => {
1078
+ const ev = latest.get(kind);
1079
+ if (!ev || !ev.data || typeof ev.data !== "object") return;
1080
+ const d = ev.data;
1081
+ if (d.phase !== "show") return;
1082
+ out.push({ label, title: typeof d.title === "string" ? d.title : null });
1083
+ };
1084
+ check("alert", "Alert");
1085
+ check("actionsheet", "ActionSheet");
1086
+ return out;
1087
+ }
1062
1088
  async function inspectTimelineAdvanceCursor(bridge, cursorKey, watermark) {
1063
1089
  await bridge.send({
1064
1090
  type: "call",
@@ -1804,6 +1830,7 @@ async function tapBest(bridge, query, opts = {}) {
1804
1830
  clearConsole,
1805
1831
  clearLogs,
1806
1832
  clearRequests,
1833
+ detectOpenNativeUI,
1807
1834
  filterLogEntries,
1808
1835
  formatLayoutElements,
1809
1836
  formatTimelineEvent,
package/dist-lib/sdk.mjs CHANGED
@@ -1,4 +1,4 @@
1
- /*! sootsim v0.1.173 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.175 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // cli/commands/inspect/core.ts
4
4
  function resolveMaxMsFlag(args, fallbackMs) {
@@ -970,6 +970,31 @@ async function inspectTimelineRecent(bridge, query) {
970
970
  args: [query]
971
971
  });
972
972
  }
973
+ async function detectOpenNativeUI(bridge) {
974
+ let events;
975
+ try {
976
+ const res = await inspectTimelineRecent(bridge, {
977
+ kinds: ["alert", "actionsheet"],
978
+ limit: 80
979
+ });
980
+ events = res.events;
981
+ } catch {
982
+ return [];
983
+ }
984
+ const latest = /* @__PURE__ */ new Map();
985
+ for (const ev of events) latest.set(ev.kind, ev);
986
+ const out = [];
987
+ const check = (kind, label) => {
988
+ const ev = latest.get(kind);
989
+ if (!ev || !ev.data || typeof ev.data !== "object") return;
990
+ const d = ev.data;
991
+ if (d.phase !== "show") return;
992
+ out.push({ label, title: typeof d.title === "string" ? d.title : null });
993
+ };
994
+ check("alert", "Alert");
995
+ check("actionsheet", "ActionSheet");
996
+ return out;
997
+ }
973
998
  async function inspectTimelineAdvanceCursor(bridge, cursorKey, watermark) {
974
999
  await bridge.send({
975
1000
  type: "call",
@@ -1714,6 +1739,7 @@ export {
1714
1739
  clearConsole,
1715
1740
  clearLogs,
1716
1741
  clearRequests,
1742
+ detectOpenNativeUI,
1717
1743
  filterLogEntries,
1718
1744
  formatLayoutElements,
1719
1745
  formatTimelineEvent,
@@ -1,4 +1,4 @@
1
- /*! sootsim v0.1.173 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.175 | (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;
@@ -12822,7 +12822,7 @@ function unrefTimer(timer) {
12822
12822
  timer.unref();
12823
12823
  }
12824
12824
  }
12825
- var import_child_process4, import_fs3, import_http3, import_path3, import_ws2, WRITE_COMMAND_TYPES, FORCE_CLOSE_GRACE_MS, FORCE_CLOSE_TERMINATE_MS, DAEMON_HEARTBEAT_INTERVAL_MS, DEFAULT_RUNTIME_UPDATE_INTERVAL_MS, RUNTIME_UPDATE_INTERVAL_ENV, HTTP_MIME_TYPES, SootSimBridgeHost;
12825
+ var import_child_process4, import_fs3, import_http3, import_path3, import_ws2, SOOTSIM_CROSS_ORIGIN_EMBEDDER_POLICY, WRITE_COMMAND_TYPES, FORCE_CLOSE_GRACE_MS, FORCE_CLOSE_TERMINATE_MS, DAEMON_HEARTBEAT_INTERVAL_MS, DEFAULT_RUNTIME_UPDATE_INTERVAL_MS, RUNTIME_UPDATE_INTERVAL_ENV, HTTP_MIME_TYPES, SootSimBridgeHost;
12826
12826
  var init_bridge_host = __esm({
12827
12827
  "src/host/bridge-host.ts"() {
12828
12828
  "use strict";
@@ -12840,6 +12840,7 @@ var init_bridge_host = __esm({
12840
12840
  init_fetch_proxy_handler();
12841
12841
  init_open_url();
12842
12842
  init_websocket_proxy();
12843
+ SOOTSIM_CROSS_ORIGIN_EMBEDDER_POLICY = "require-corp";
12843
12844
  WRITE_COMMAND_TYPES = /* @__PURE__ */ new Set(["tap", "keyboard"]);
12844
12845
  FORCE_CLOSE_GRACE_MS = 2e3;
12845
12846
  FORCE_CLOSE_TERMINATE_MS = 1e3;
@@ -13719,7 +13720,7 @@ var init_bridge_host = __esm({
13719
13720
  * electron's webContents can navigate freely inside the runtime. */
13720
13721
  handleHttpRequest(req, res) {
13721
13722
  res.setHeader("Cross-Origin-Opener-Policy", "same-origin");
13722
- res.setHeader("Cross-Origin-Embedder-Policy", "credentialless");
13723
+ res.setHeader("Cross-Origin-Embedder-Policy", SOOTSIM_CROSS_ORIGIN_EMBEDDER_POLICY);
13723
13724
  res.setHeader("Cross-Origin-Resource-Policy", "cross-origin");
13724
13725
  res.setHeader("Document-Policy", "js-profiling");
13725
13726
  if (isFetchProxyRequestUrl(req.url)) {
package/dist-lib/vite.cjs CHANGED
@@ -1,4 +1,4 @@
1
- /*! sootsim v0.1.173 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.175 | (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.173",
3
+ "version": "0.1.175",
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",
package/skills/soot.md CHANGED
@@ -99,7 +99,7 @@ skills for working with the SootSim native preview engine:
99
99
 
100
100
  | skill | description |
101
101
  | --- | --- |
102
- | `/sootsim-debug` | Debug rendering, performance, and accessibility issues in your React Native app under sootsim |
102
+ | `/sootsim-debug` | Debug rendering, animation, gesture, performance, and accessibility issues in a React Native app running under sootsim. Reach for this whenever an animation looks wrong (janky, stutters, snaps, only updates once, or doesn't move at all), a swipe/transition/gesture misbehaves or feels broken, scrolling drops frames or feels slow, the UI renders the wrong tree/props, or a screen reader can't reach something — and drive the sootsim CLI debug tooling first, not screenshots or ad-hoc logging. |
103
103
  | `/sootsim-setup` | Get sootsim connected to your React Native app — from `npm install sootsim` to a driveable sim |
104
104
  | `/sootsim-test` | Run automated tests against your React Native app under sootsim — native YAML flows, Maestro drop-in, or Detox drop-in |
105
105
  | `/sootsim-visual` | Pixel-level rendering comparison between sootsim and native iOS — fonts, gradients, shadows, image fidelity |
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: sootsim-debug
3
- description: Debug rendering, performance, and accessibility issues in your React Native app under sootsim
3
+ description: Debug rendering, animation, gesture, performance, and accessibility issues in a React Native app running under sootsim. Reach for this whenever an animation looks wrong (janky, stutters, snaps, only updates once, or doesn't move at all), a swipe/transition/gesture misbehaves or feels broken, scrolling drops frames or feels slow, the UI renders the wrong tree/props, or a screen reader can't reach something — and drive the sootsim CLI debug tooling first, not screenshots or ad-hoc logging.
4
4
  ---
5
5
 
6
6
  # sootsim debug
@@ -15,6 +15,28 @@ load `/sootsim-visual` instead.
15
15
  > needs a connected, pinned sim. if `sootsim describe` errors, load
16
16
  > `/sootsim-setup` first.
17
17
 
18
+ ## principle — drive the CLI, don't probe by hand
19
+
20
+ for any rendering, animation, gesture, or interaction bug, reach for the
21
+ sootsim CLI debug tooling **first** — `describe` and `find` to read the
22
+ tree, `debug snapshot` + `debug diff` to capture before/after, `debug
23
+ recent` on a channel and `debug perf` for frame-by-frame stats, and the
24
+ timeline for "what just happened". **do not** debug these by eye with
25
+ screenshots, sprinkle `console.log` through the render path, or spin up a
26
+ one-off browser-automation script. the canvas has no DOM to inspect, and a
27
+ CLI capture is reproducible, diffable, and shareable in a way a screenshot
28
+ never is.
29
+
30
+ if the existing CLI tools don't capture the issue cleanly — the animation
31
+ is too fast to read, the signal you need isn't on any channel, the
32
+ interaction spans a boundary the timeline doesn't section — the right move
33
+ is to **improve the debug tooling**, not to paper over it with throwaway
34
+ probes. add a durable, channel-gated, start/stop instrument that's off by
35
+ default (so baseline performance is untouched) and emits exactly the signal
36
+ you're chasing. a good capture command is one-shot reproducible, every
37
+ agent after you benefits from it, and the same capture can become a
38
+ regression test. a pile of ad-hoc logs helps no one and gets deleted.
39
+
18
40
  ## route in
19
41
 
20
42
  - "my app renders wrong / wrong props / wrong tree" → [debugging](#branch--debugging)
@@ -41,6 +41,8 @@ import {
41
41
  import { openUrl as openUrlInBrowser, type OpenUrlOptions } from './open-url.ts'
42
42
  import { handleWebSocketProxyUpgrade } from './websocket-proxy'
43
43
 
44
+ const SOOTSIM_CROSS_ORIGIN_EMBEDDER_POLICY = 'require-corp'
45
+
44
46
  export interface BridgeSimInfo {
45
47
  id: string
46
48
  origin?: string
@@ -1341,11 +1343,12 @@ export class SootSimBridgeHost {
1341
1343
  // sootbean.com app/_middleware.ts (prod) so the cli daemon serves the
1342
1344
  // same surface those two already enforce. set via setHeader so subsequent
1343
1345
  // writeHead() calls preserve them (writeHead only overrides keys it
1344
- // explicitly passes). credentialless lets cross-origin sub-resources
1345
- // (metro bundles, font files) load without requiring CORP from every
1346
- // upstream same trade-off prod already accepts.
1346
+ // explicitly passes). Safari/iOS WebKit does not isolate documents for
1347
+ // COEP=credentialless, so use require-corp and keep bridge-served/proxied
1348
+ // resources same-origin with CORP where needed. mirrors the SootSim shell
1349
+ // dev server and the /sootsim production override.
1347
1350
  res.setHeader('Cross-Origin-Opener-Policy', 'same-origin')
1348
- res.setHeader('Cross-Origin-Embedder-Policy', 'credentialless')
1351
+ res.setHeader('Cross-Origin-Embedder-Policy', SOOTSIM_CROSS_ORIGIN_EMBEDDER_POLICY)
1349
1352
  res.setHeader('Cross-Origin-Resource-Policy', 'cross-origin')
1350
1353
  res.setHeader('Document-Policy', 'js-profiling')
1351
1354
 
@@ -1,2 +0,0 @@
1
- /*! sootsim v0.1.173 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{a,b,c,d}from"./chunk-MPVUKE2L.js";import"./chunk-HTCJBVQD.js";export{d as BETA_ASK_HEADLINE,b as BETA_LABEL,c as BETA_TAGLINE,a as IS_BETA};
@@ -1,2 +0,0 @@
1
- /*! sootsim v0.1.173 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- var t="http://localhost:5173/";export{t as a};
@@ -1 +0,0 @@
1
- /*! sootsim v0.1.173 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
@@ -1 +0,0 @@
1
- /*! sootsim v0.1.173 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
@@ -1,2 +0,0 @@
1
- /*! sootsim v0.1.173 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{a}from"./chunk-WS4M3ANJ.js";import"./chunk-HTCJBVQD.js";export{a as getCliVersion};
@@ -1,2 +0,0 @@
1
- /*! sootsim v0.1.173 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{a,b,c,d,e}from"./chunk-3N4T6ZCZ.js";import"./chunk-TAFDTRBK.js";import"./chunk-VQQVVMNO.js";import"./chunk-RXB7KMHB.js";import"./chunk-5RLVAUSR.js";import"./chunk-TYCNPLOA.js";import"./chunk-WYGYIQOE.js";import"./chunk-HGUPRH7F.js";import"./chunk-4UNCEOKE.js";import"./chunk-KBTADP77.js";import"./chunk-6D2B6YM5.js";import"./chunk-7LCS6UB7.js";import"./chunk-WS4M3ANJ.js";import"./chunk-MPVUKE2L.js";import"./chunk-ODWORXXD.js";import"./chunk-HTCJBVQD.js";export{c as daemonInstall,b as getDaemonServiceStatus,a as runDaemon,d as teardownDaemonService,e as teardownSootsimHome};
@@ -1,2 +0,0 @@
1
- /*! sootsim v0.1.173 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import"./chunk-F2VINQ62.js";import{a,b,c,d,e,f,g,h,i}from"./chunk-KHMFZHHP.js";import"./chunk-A43ZSZMJ.js";import"./chunk-AOFD6E2Z.js";import"./chunk-I3UUCR2A.js";import"./chunk-6D2B6YM5.js";import"./chunk-7LCS6UB7.js";import"./chunk-HTCJBVQD.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.173 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{a as c,b as d,c as e,d as f}from"./chunk-4NEHOYQH.js";import"./chunk-D5MW3FJE.js";import"./chunk-M4TI3GFJ.js";import"./chunk-DFP5BKYL.js";import{c as a,d as b}from"./chunk-MJQCN4PS.js";import"./chunk-2IUYPQC6.js";import"./chunk-LOP35MNF.js";import"./chunk-FLKV4YHL.js";import"./chunk-PPDVP56P.js";import"./chunk-GTIQVAJP.js";import"./chunk-KHMFZHHP.js";import"./chunk-A43ZSZMJ.js";import"./chunk-AOFD6E2Z.js";import"./chunk-FX3YWIDK.js";import"./chunk-X4A5YX56.js";import"./chunk-7O64AC44.js";import"./chunk-N7HUNHH6.js";import"./chunk-HSACKNHS.js";import"./chunk-I3UUCR2A.js";import"./chunk-TAFDTRBK.js";import"./chunk-VQQVVMNO.js";import"./chunk-HGUPRH7F.js";import"./chunk-4UNCEOKE.js";import"./chunk-KBTADP77.js";import"./chunk-6D2B6YM5.js";import"./chunk-7LCS6UB7.js";import"./chunk-QGQSKDXQ.js";import"./chunk-ODWORXXD.js";import"./chunk-HTCJBVQD.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.173 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{a,b,c}from"./chunk-RXB7KMHB.js";import"./chunk-5RLVAUSR.js";import"./chunk-TYCNPLOA.js";import"./chunk-WYGYIQOE.js";import"./chunk-HGUPRH7F.js";import"./chunk-4UNCEOKE.js";import"./chunk-KBTADP77.js";import"./chunk-6D2B6YM5.js";import"./chunk-7LCS6UB7.js";import"./chunk-WS4M3ANJ.js";import"./chunk-MPVUKE2L.js";import"./chunk-ODWORXXD.js";import"./chunk-HTCJBVQD.js";export{c as printCommandHelp,b as printGroupHelp,a as printHelp};