sootsim 0.1.56 → 0.1.58

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (139) hide show
  1. package/dist-cli/bin.js +3 -3
  2. package/dist-cli/chunks/{agent-IIJVE6DU.js → agent-3BDDHXQM.js} +2 -2
  3. package/dist-cli/chunks/{agent-wrapper-OQY272M7.js → agent-wrapper-DROXVOMM.js} +2 -2
  4. package/dist-cli/chunks/{assert-FRCDKKPT.js → assert-AOU2ZD7J.js} +2 -2
  5. package/dist-cli/chunks/auto-bootstrap-3IRQZ72F.js +2 -0
  6. package/dist-cli/chunks/beta-YT6MZYKB.js +2 -0
  7. package/dist-cli/chunks/{chunk-VZ5KDPE6.js → chunk-253H4P55.js} +2 -2
  8. package/dist-cli/chunks/{chunk-IPXFPPRG.js → chunk-463SH7ZZ.js} +2 -2
  9. package/dist-cli/chunks/{chunk-KHMTLKLZ.js → chunk-4PQJLJEY.js} +22 -22
  10. package/dist-cli/chunks/{chunk-4NKTT5B4.js → chunk-AEOY2DUB.js} +2 -2
  11. package/dist-cli/chunks/{chunk-YGI7WZRE.js → chunk-AITNV7L5.js} +2 -2
  12. package/dist-cli/chunks/{chunk-P4DDD6A2.js → chunk-APYPBMOA.js} +2 -2
  13. package/dist-cli/chunks/{chunk-SCDXUGOS.js → chunk-BOKT36T3.js} +2 -2
  14. package/dist-cli/chunks/{chunk-3YCH4QQF.js → chunk-BVQSANTO.js} +2 -2
  15. package/dist-cli/chunks/{chunk-DWO6DMIH.js → chunk-CHEHYP6Y.js} +1 -1
  16. package/dist-cli/chunks/{chunk-YJS6KGQF.js → chunk-E6FXRBQY.js} +2 -2
  17. package/dist-cli/chunks/chunk-FP6TIJCL.js +2 -0
  18. package/dist-cli/chunks/{chunk-VNDOK6BD.js → chunk-GPHJ6RWQ.js} +2 -2
  19. package/dist-cli/chunks/chunk-GTRNGWWM.js +1 -0
  20. package/dist-cli/chunks/{chunk-ZKXLSHI5.js → chunk-GVYPZSX3.js} +2 -2
  21. package/dist-cli/chunks/{chunk-UJNJD3LW.js → chunk-H3E3TTRU.js} +1 -1
  22. package/dist-cli/chunks/chunk-HSSCI52S.js +2 -0
  23. package/dist-cli/chunks/chunk-IA34CRQO.js +2 -0
  24. package/dist-cli/chunks/{chunk-Q7ULYW2K.js → chunk-IMLVQHFL.js} +1 -1
  25. package/dist-cli/chunks/{chunk-HWXHZA25.js → chunk-IMOF5JPS.js} +2 -2
  26. package/dist-cli/chunks/{chunk-YCZBVYHV.js → chunk-JU56H25L.js} +2 -2
  27. package/dist-cli/chunks/chunk-JYI74FY5.js +119 -0
  28. package/dist-cli/chunks/{chunk-YHSUAZDC.js → chunk-KGOAABLH.js} +1 -1
  29. package/dist-cli/chunks/{chunk-ZPBHVIAO.js → chunk-KHUMI2KX.js} +2 -2
  30. package/dist-cli/chunks/{chunk-4QN22PRF.js → chunk-KOJBRY23.js} +1 -1
  31. package/dist-cli/chunks/{chunk-MXFHXHST.js → chunk-KPLBV75X.js} +2 -2
  32. package/dist-cli/chunks/{chunk-4PRNTESQ.js → chunk-LGICMZNJ.js} +1 -1
  33. package/dist-cli/chunks/{chunk-3KICA3NQ.js → chunk-LVWOY73Y.js} +2 -2
  34. package/dist-cli/chunks/chunk-MAA6Z6MT.js +11 -0
  35. package/dist-cli/chunks/{chunk-TSLBKSUW.js → chunk-MXJ3IUS4.js} +2 -2
  36. package/dist-cli/chunks/{chunk-MEF4PHDJ.js → chunk-PKNUHCHD.js} +1 -1
  37. package/dist-cli/chunks/{chunk-7TQVFYXR.js → chunk-QUZVDUEK.js} +1 -1
  38. package/dist-cli/chunks/{chunk-YNBE4VAO.js → chunk-RYTJAEQU.js} +2 -2
  39. package/dist-cli/chunks/{chunk-2GBPEUTK.js → chunk-TFQ3YDFS.js} +3 -3
  40. package/dist-cli/chunks/{chunk-ZGV3WQ44.js → chunk-TKNYDQOU.js} +1 -1
  41. package/dist-cli/chunks/chunk-TKR473S6.js +1 -0
  42. package/dist-cli/chunks/{chunk-WA3IP5CW.js → chunk-TPL23F2S.js} +1 -1
  43. package/dist-cli/chunks/chunk-UG6BCVD3.js +1 -0
  44. package/dist-cli/chunks/{chunk-ZZ5UL5GN.js → chunk-V7SVZJDN.js} +1 -1
  45. package/dist-cli/chunks/{chunk-Z4JM7KAI.js → chunk-VCQZZT6G.js} +1 -1
  46. package/dist-cli/chunks/{chunk-AMAYSVH7.js → chunk-VDZIBJD5.js} +2 -2
  47. package/dist-cli/chunks/{chunk-PLVY6PSG.js → chunk-X4E3T5FQ.js} +1 -1
  48. package/dist-cli/chunks/{chunk-CJXQG5RY.js → chunk-YQL26DOY.js} +3 -3
  49. package/dist-cli/chunks/{chunk-EVTONFZK.js → chunk-ZIIN65FP.js} +2 -2
  50. package/dist-cli/chunks/{chunk-L5FS562P.js → chunk-ZPNUGF2B.js} +2 -2
  51. package/dist-cli/chunks/cli-version-5BIGFSRG.js +2 -0
  52. package/dist-cli/chunks/{compat-AIX2MYUB.js → compat-WWN2B6GB.js} +3 -3
  53. package/dist-cli/chunks/{config-DR2KFKXF.js → config-RQUB7R7X.js} +2 -2
  54. package/dist-cli/chunks/control-NHE3BU44.js +2 -0
  55. package/dist-cli/chunks/{cpu-profile-VQGM4EID.js → cpu-profile-SMJ6HWJI.js} +2 -2
  56. package/dist-cli/chunks/{daemon-FVB3BDAG.js → daemon-IOKHAHBN.js} +2 -2
  57. package/dist-cli/chunks/{debug-PLZFF5PR.js → debug-HBEVLB74.js} +3 -3
  58. package/dist-cli/chunks/demo-app-registry-XBVMGUJV.js +2 -0
  59. package/dist-cli/chunks/{detox-2YZWKYN6.js → detox-DG7BLEZR.js} +2 -2
  60. package/dist-cli/chunks/{device-3EFTXOLU.js → device-R5BM6MTL.js} +2 -2
  61. package/dist-cli/chunks/{diagnose-LBHLTKJP.js → diagnose-OMOEACEV.js} +2 -2
  62. package/dist-cli/chunks/drivers-RVEAM6HD.js +2 -0
  63. package/dist-cli/chunks/{electron-WMESIHM5.js → electron-WDVKF4WD.js} +3 -3
  64. package/dist-cli/chunks/flow-I47SBO2G.js +2 -0
  65. package/dist-cli/chunks/{hints-A6M4CFEI.js → hints-AQEYMAN7.js} +2 -2
  66. package/dist-cli/chunks/{home-paths-W2I555JQ.js → home-paths-SWAUAJK6.js} +2 -2
  67. package/dist-cli/chunks/{inspect-4K6T2TNB.js → inspect-MTQ4VXTU.js} +3 -3
  68. package/dist-cli/chunks/install-PF3SVMRG.js +2 -0
  69. package/dist-cli/chunks/{install-desktop-HTOGT4UM.js → install-desktop-J2JX2FWM.js} +3 -3
  70. package/dist-cli/chunks/{keys-DUXKPM7Z.js → keys-LMEJDEJT.js} +2 -2
  71. package/dist-cli/chunks/{launch-XYVVKRYH.js → launch-3MFII67G.js} +3 -3
  72. package/dist-cli/chunks/{login-ZE3UFAJW.js → login-BKQJUITV.js} +4 -4
  73. package/dist-cli/chunks/{logout-7VUOV4SX.js → logout-AQOAXUYE.js} +2 -2
  74. package/dist-cli/chunks/{maestro-LUAW5OKL.js → maestro-AYHUMC4R.js} +2 -2
  75. package/dist-cli/chunks/{preview-Q6AVBYLH.js → preview-7BC5II5C.js} +2 -2
  76. package/dist-cli/chunks/{profile-BWMZ63OG.js → profile-7425BUWV.js} +2 -2
  77. package/dist-cli/chunks/{react-TAFIH5NO.js → react-SHJTN3IA.js} +2 -2
  78. package/dist-cli/chunks/{record-FYP7UJCA.js → record-COIO2TZH.js} +2 -2
  79. package/dist-cli/chunks/runtime-PI74NVXC.js +2 -0
  80. package/dist-cli/chunks/{runtime-delivery-X5Y54HT4.js → runtime-delivery-2PJHSLBF.js} +2 -2
  81. package/dist-cli/chunks/{screenshot-HUBXBARE.js → screenshot-HCX4THCZ.js} +2 -2
  82. package/dist-cli/chunks/{screenshot-mode-UFAK33UH.js → screenshot-mode-ZALLQWBD.js} +2 -2
  83. package/dist-cli/chunks/{screenshots-3BABR2CG.js → screenshots-LPGDPQQI.js} +2 -2
  84. package/dist-cli/chunks/{server-5JF5CFEJ.js → server-XJMKY3QD.js} +14 -14
  85. package/dist-cli/chunks/setup-repo-ZUJJ5HWF.js +2 -0
  86. package/dist-cli/chunks/{skills-OTEBQZ35.js → skills-IMN7L26K.js} +2 -2
  87. package/dist-cli/chunks/{start-OW25BIG4.js → start-V36TN7IJ.js} +4 -4
  88. package/dist-cli/chunks/store-6AH44BL4.js +2 -0
  89. package/dist-cli/chunks/telemetry-WW662VJA.js +2 -0
  90. package/dist-cli/chunks/{test-Y5NE6FQV.js → test-THC765FS.js} +3 -3
  91. package/dist-cli/chunks/{three-mode-6K6PGR4Q.js → three-mode-HRLR7R5P.js} +2 -2
  92. package/dist-cli/chunks/{timeline-MHBDHG73.js → timeline-KHKZPDPA.js} +2 -2
  93. package/dist-cli/chunks/{upgrade-JGUBM72R.js → upgrade-JTT44DQY.js} +2 -2
  94. package/dist-cli/chunks/upload-7OMVFN4F.js +2 -0
  95. package/dist-cli/chunks/{web-NBDZYKYO.js → web-OIDQAE63.js} +2 -2
  96. package/dist-cli/chunks/{what-happened-GBFPL5MP.js → what-happened-HW3YVAGQ.js} +2 -2
  97. package/dist-cli/chunks/{whoami-FYB23YXO.js → whoami-JZP7QGTQ.js} +2 -2
  98. package/dist-lib/agent-daemon-client.cjs +1 -1
  99. package/dist-lib/agent-events.cjs +1 -1
  100. package/dist-lib/agent-sessions.cjs +1 -1
  101. package/dist-lib/attached-projects.cjs +1 -1
  102. package/dist-lib/auth/shared-session.cjs +1 -1
  103. package/dist-lib/backend-origin.cjs +1 -1
  104. package/dist-lib/bridge-constants.cjs +1 -1
  105. package/dist-lib/cli-constants.cjs +1 -1
  106. package/dist-lib/config.cjs +1 -1
  107. package/dist-lib/dev-bundle-resolution.cjs +8 -1
  108. package/dist-lib/home-paths.cjs +1 -1
  109. package/dist-lib/host/bridge-host.cjs +44 -5
  110. package/dist-lib/host/fetch-proxy-handler.cjs +37 -5
  111. package/dist-lib/host/fetch-proxy-overrides.cjs +59 -0
  112. package/dist-lib/index.cjs +1 -1
  113. package/dist-lib/metro.cjs +1 -1
  114. package/dist-lib/profiles.cjs +1 -1
  115. package/dist-lib/render-mode.cjs +1 -1
  116. package/dist-lib/vite-base.cjs +50 -6
  117. package/dist-lib/vite.cjs +1 -1
  118. package/package.json +2 -1
  119. package/dist-cli/chunks/auto-bootstrap-OQPDAFE7.js +0 -2
  120. package/dist-cli/chunks/beta-RENKQEGP.js +0 -2
  121. package/dist-cli/chunks/chunk-47MRDGBO.js +0 -1
  122. package/dist-cli/chunks/chunk-536PFUH2.js +0 -2
  123. package/dist-cli/chunks/chunk-6PETMYH5.js +0 -117
  124. package/dist-cli/chunks/chunk-CW4VKFVT.js +0 -2
  125. package/dist-cli/chunks/chunk-L6IO6AIM.js +0 -1
  126. package/dist-cli/chunks/chunk-P6PR5HII.js +0 -1
  127. package/dist-cli/chunks/chunk-W4OLFXNM.js +0 -2
  128. package/dist-cli/chunks/chunk-WC2FYRV2.js +0 -11
  129. package/dist-cli/chunks/cli-version-6AIKNZLK.js +0 -2
  130. package/dist-cli/chunks/control-TMDNAEON.js +0 -2
  131. package/dist-cli/chunks/demo-app-registry-K66NO33M.js +0 -2
  132. package/dist-cli/chunks/drivers-WX756GPG.js +0 -2
  133. package/dist-cli/chunks/flow-CZP54IPZ.js +0 -2
  134. package/dist-cli/chunks/install-6BBPMNLP.js +0 -2
  135. package/dist-cli/chunks/runtime-2KSGXO3M.js +0 -2
  136. package/dist-cli/chunks/setup-repo-GCZQFJUD.js +0 -2
  137. package/dist-cli/chunks/store-V7AAIP7W.js +0 -2
  138. package/dist-cli/chunks/telemetry-TN7IQO6M.js +0 -2
  139. package/dist-cli/chunks/upload-VRTQQAEJ.js +0 -2
@@ -1,5 +1,5 @@
1
- /*! sootsim v0.1.56 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{J as F,w as S,x as k,y as g}from"./chunk-MEF4PHDJ.js";import{c as b,e as y}from"./chunk-VNDOK6BD.js";import{b as w}from"./chunk-Z4JM7KAI.js";import"./chunk-CW4VKFVT.js";import"./chunk-DWO6DMIH.js";import"./chunk-UJNJD3LW.js";function M(t){let e=[];for(let n=0;n<t.length;n++)if(t[n]==="--since"&&n+1<t.length){e.push(n,n+1);let s=t[n+1].trim(),a=/^(\d+(?:\.\d+)?)(ms|s|m)?$/.exec(s);if(a){let l=Number(a[1]),u=a[2]??"ms",r=u==="s"?l*1e3:u==="m"?l*6e4:l;return{since:Date.now()-r,consumed:e}}let o=Number(s);if(Number.isFinite(o)&&o>1e12)return{since:o,consumed:e}}return{consumed:e}}function E(t){let e=[];for(let n=0;n<t.length;n++)if(t[n]==="--kinds"&&n+1<t.length)return e.push(n,n+1),{kinds:t[n+1].split(",").map(s=>s.trim()).filter(Boolean),consumed:e};return{consumed:e}}function C(t){let e=[];for(let n=0;n<t.length;n++)if(t[n]==="--limit"&&n+1<t.length){e.push(n,n+1);let s=Number(t[n+1]);if(Number.isFinite(s)&&s>0)return{limit:s,consumed:e}}return{consumed:e}}function _(t,e){if(e===null)return new Date(t).toLocaleTimeString();let n=(t-e)/1e3;return`${n>=0?"+":""}${n.toFixed(2)}s`}function j(t,e){switch(t){case"app-launch":return e.phase==="launch"?`launch ${e.appName??e.toAppId??""}`:`dismiss ${e.appName??e.fromAppId??""} \u2192 ${e.toAppId??""}`;case"toast":return`"${e.text??""}"${e.durationMs?` (${e.durationMs}ms)`:""}`;case"keyboard":return`${e.phase??"?"}${e.heightPx?` h=${e.heightPx}`:""}${e.mode?` ${e.mode}`:""}`;case"screen":return`${e.phase??"?"} ${e.name??e.activeName??""}`;case"route":return`${e.phase??"?"} ${e.path??e.pathname??""}`;case"alert":case"actionsheet":case"picker":return`${e.phase??"?"} ${e.title??e.message??""}`;case"notification":return`${e.title??""}${e.body?` \u2014 ${e.body}`:""}`;case"fetch":return`${e.method??"GET"} ${e.url??""}${e.status?` -> ${e.status}`:""}`;case"console":return`${e.level??"log"}: ${(e.message??"").toString().slice(0,120)}`;case"shell":return`${e.event??e.type??e.phase??""}`;case"scroll":return`${e.phase??"?"} ${e.target??""}`;case"gesture":return`${e.phase??"?"} ${e.type??""}`;case"text-input":return`${e.phase??"?"}${e.value!==void 0?` "${String(e.value).slice(0,40)}"`:""}`;case"react-commit":{let n=e.slowest;return`${e.fiberCount??"?"} fibers ${e.durationMs??"?"}ms${n?.displayName?` \xB7 ${n.displayName} ${n.durationMs??"?"}ms`:""}`}case"reanimated":case"animation":return`${e.kind??""} ${e.target??""}${e.durationMs?` ${e.durationMs}ms`:""}`}}function N(t,e){let n=_(t.t,e).padStart(8),s=t.context.padEnd(6),a=`[${t.kind}]`.padEnd(15),o="",l=t.data;return l&&typeof l=="object"&&(o=j(t.kind,l)),` ${n} ${s} ${a} ${o}`}function T(t){let e=[],n={label:"initial state",events:[],startedAt:t[0]?.t??null};e.push(n);for(let s of t)if(n.events.push(s),s.kind==="screen"||s.kind==="route"){let a=s.data,o=a?.phase;if(!o||o==="enter"||o==="appear"||o==="active"){let l=a?.name||a?.activeName||a?.path||a?.pathname||s.kind;e.length===1&&n.events.length===1?n.label=`${s.kind}: ${l}`:(n={label:`${s.kind}: ${l}`,events:[],startedAt:s.t},e.push(n))}}return e}async function O(t,e){let n=b(t,{port:e.port,stripBooleanFlags:["--summary","--all","--json","--no-advance","--help","-h","--flow"],stripValueFlags:["--since","--kinds","--limit"]});(t.includes("--help")||t.includes("-h"))&&(console.log(`
1
+ /*! sootsim v0.1.58 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
+ import{J as F,w as S,x as k,y as g}from"./chunk-PKNUHCHD.js";import{c as b,e as y}from"./chunk-GPHJ6RWQ.js";import{b as w}from"./chunk-VCQZZT6G.js";import"./chunk-IA34CRQO.js";import"./chunk-CHEHYP6Y.js";import"./chunk-H3E3TTRU.js";function M(t){let e=[];for(let n=0;n<t.length;n++)if(t[n]==="--since"&&n+1<t.length){e.push(n,n+1);let s=t[n+1].trim(),a=/^(\d+(?:\.\d+)?)(ms|s|m)?$/.exec(s);if(a){let l=Number(a[1]),u=a[2]??"ms",r=u==="s"?l*1e3:u==="m"?l*6e4:l;return{since:Date.now()-r,consumed:e}}let o=Number(s);if(Number.isFinite(o)&&o>1e12)return{since:o,consumed:e}}return{consumed:e}}function E(t){let e=[];for(let n=0;n<t.length;n++)if(t[n]==="--kinds"&&n+1<t.length)return e.push(n,n+1),{kinds:t[n+1].split(",").map(s=>s.trim()).filter(Boolean),consumed:e};return{consumed:e}}function C(t){let e=[];for(let n=0;n<t.length;n++)if(t[n]==="--limit"&&n+1<t.length){e.push(n,n+1);let s=Number(t[n+1]);if(Number.isFinite(s)&&s>0)return{limit:s,consumed:e}}return{consumed:e}}function _(t,e){if(e===null)return new Date(t).toLocaleTimeString();let n=(t-e)/1e3;return`${n>=0?"+":""}${n.toFixed(2)}s`}function j(t,e){switch(t){case"app-launch":return e.phase==="launch"?`launch ${e.appName??e.toAppId??""}`:`dismiss ${e.appName??e.fromAppId??""} \u2192 ${e.toAppId??""}`;case"toast":return`"${e.text??""}"${e.durationMs?` (${e.durationMs}ms)`:""}`;case"keyboard":return`${e.phase??"?"}${e.heightPx?` h=${e.heightPx}`:""}${e.mode?` ${e.mode}`:""}`;case"screen":return`${e.phase??"?"} ${e.name??e.activeName??""}`;case"route":return`${e.phase??"?"} ${e.path??e.pathname??""}`;case"alert":case"actionsheet":case"picker":return`${e.phase??"?"} ${e.title??e.message??""}`;case"notification":return`${e.title??""}${e.body?` \u2014 ${e.body}`:""}`;case"fetch":return`${e.method??"GET"} ${e.url??""}${e.status?` -> ${e.status}`:""}`;case"console":return`${e.level??"log"}: ${(e.message??"").toString().slice(0,120)}`;case"shell":return`${e.event??e.type??e.phase??""}`;case"scroll":return`${e.phase??"?"} ${e.target??""}`;case"gesture":return`${e.phase??"?"} ${e.type??""}`;case"text-input":return`${e.phase??"?"}${e.value!==void 0?` "${String(e.value).slice(0,40)}"`:""}`;case"react-commit":{let n=e.slowest;return`${e.fiberCount??"?"} fibers ${e.durationMs??"?"}ms${n?.displayName?` \xB7 ${n.displayName} ${n.durationMs??"?"}ms`:""}`}case"reanimated":case"animation":return`${e.kind??""} ${e.target??""}${e.durationMs?` ${e.durationMs}ms`:""}`}}function N(t,e){let n=_(t.t,e).padStart(8),s=t.context.padEnd(6),a=`[${t.kind}]`.padEnd(15),o="",l=t.data;return l&&typeof l=="object"&&(o=j(t.kind,l)),` ${n} ${s} ${a} ${o}`}function T(t){let e=[],n={label:"initial state",events:[],startedAt:t[0]?.t??null};e.push(n);for(let s of t)if(n.events.push(s),s.kind==="screen"||s.kind==="route"){let a=s.data,o=a?.phase;if(!o||o==="enter"||o==="appear"||o==="active"){let l=a?.name||a?.activeName||a?.path||a?.pathname||s.kind;e.length===1&&n.events.length===1?n.label=`${s.kind}: ${l}`:(n={label:`${s.kind}: ${l}`,events:[],startedAt:s.t},e.push(n))}}return e}async function O(t,e){let n=b(t,{port:e.port,stripBooleanFlags:["--summary","--all","--json","--no-advance","--help","-h","--flow"],stripValueFlags:["--since","--kinds","--limit"]});(t.includes("--help")||t.includes("-h"))&&(console.log(`
3
3
  sootsim what-happened \u2014 show recent events from the semantic timeline
4
4
 
5
5
  usage:
@@ -1,2 +1,2 @@
1
- /*! sootsim v0.1.56 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{d as i}from"./chunk-4NKTT5B4.js";import{d as n}from"./chunk-3YCH4QQF.js";import"./chunk-DWO6DMIH.js";import"./chunk-UJNJD3LW.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.58 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
+ import{d as i}from"./chunk-AEOY2DUB.js";import{d as n}from"./chunk-BVQSANTO.js";import"./chunk-CHEHYP6Y.js";import"./chunk-H3E3TTRU.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.56 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.58 | (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.56 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.58 | (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.56 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.58 | (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.56 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.58 | (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.56 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.58 | (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.56 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.58 | (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.56 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.58 | (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.56 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.58 | (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.56 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.58 | (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.56 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.58 | (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;
@@ -46,6 +46,12 @@ function isAbsoluteHttpUrl(url) {
46
46
  function isNativeDevBundlePath(pathname) {
47
47
  return pathname.endsWith(".bundle");
48
48
  }
49
+ function applyPreviewProdBundle(parsed) {
50
+ if (!process.env.SOOTSIM_PREVIEW_PROD_BUNDLE) return;
51
+ parsed.searchParams.set("dev", "false");
52
+ parsed.searchParams.set("minify", "true");
53
+ if (parsed.searchParams.has("hot")) parsed.searchParams.set("hot", "false");
54
+ }
49
55
  function normalizeNativeDevBundleUrl(bundleUrl) {
50
56
  try {
51
57
  const isAbsolute = isAbsoluteHttpUrl(bundleUrl);
@@ -53,6 +59,7 @@ function normalizeNativeDevBundleUrl(bundleUrl) {
53
59
  parsed.pathname = parsed.pathname.replace(/\.\.bundle$/, ".bundle");
54
60
  if (!isNativeDevBundlePath(parsed.pathname)) return bundleUrl;
55
61
  parsed.searchParams.delete("transform.bytecode");
62
+ applyPreviewProdBundle(parsed);
56
63
  if (isAbsolute) return parsed.toString();
57
64
  return `${parsed.pathname}${parsed.search}${parsed.hash}`;
58
65
  } catch {
@@ -1,4 +1,4 @@
1
- /*! sootsim v0.1.56 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.58 | (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.56 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.58 | (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;
@@ -73,6 +73,12 @@ function isAbsoluteHttpUrl(url) {
73
73
  function isNativeDevBundlePath(pathname) {
74
74
  return pathname.endsWith(".bundle");
75
75
  }
76
+ function applyPreviewProdBundle(parsed) {
77
+ if (!process.env.SOOTSIM_PREVIEW_PROD_BUNDLE) return;
78
+ parsed.searchParams.set("dev", "false");
79
+ parsed.searchParams.set("minify", "true");
80
+ if (parsed.searchParams.has("hot")) parsed.searchParams.set("hot", "false");
81
+ }
76
82
  function normalizeNativeDevBundleUrl(bundleUrl) {
77
83
  try {
78
84
  const isAbsolute = isAbsoluteHttpUrl(bundleUrl);
@@ -80,6 +86,7 @@ function normalizeNativeDevBundleUrl(bundleUrl) {
80
86
  parsed.pathname = parsed.pathname.replace(/\.\.bundle$/, ".bundle");
81
87
  if (!isNativeDevBundlePath(parsed.pathname)) return bundleUrl;
82
88
  parsed.searchParams.delete("transform.bytecode");
89
+ applyPreviewProdBundle(parsed);
83
90
  if (isAbsolute) return parsed.toString();
84
91
  return `${parsed.pathname}${parsed.search}${parsed.hash}`;
85
92
  } catch {
@@ -2833,7 +2840,36 @@ function mapFrameworkToProjectFramework(fw) {
2833
2840
  // src/host/fetch-proxy-handler.ts
2834
2841
  var import_http2 = __toESM(require("http"), 1);
2835
2842
  var import_https = __toESM(require("https"), 1);
2836
- var FETCH_PROXY_USER_AGENT = "sootsim";
2843
+
2844
+ // src/host/fetch-proxy-overrides.ts
2845
+ 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";
2846
+ var HOST_HEADER_OVERRIDES = [
2847
+ {
2848
+ hostSuffix: "uniswap.org",
2849
+ headers: {
2850
+ origin: "https://app.uniswap.org",
2851
+ referer: "https://app.uniswap.org/"
2852
+ }
2853
+ }
2854
+ ];
2855
+ function headerOverridesFor(hostname) {
2856
+ const host = hostname.toLowerCase();
2857
+ for (const override of HOST_HEADER_OVERRIDES) {
2858
+ if (host === override.hostSuffix || host.endsWith(`.${override.hostSuffix}`)) {
2859
+ return override.headers;
2860
+ }
2861
+ }
2862
+ return {};
2863
+ }
2864
+ function getFetchProxyTargetHeaders(targetUrl) {
2865
+ return {
2866
+ "user-agent": FETCH_PROXY_BROWSER_USER_AGENT,
2867
+ origin: `${targetUrl.protocol}//${targetUrl.host}`,
2868
+ ...headerOverridesFor(targetUrl.hostname)
2869
+ };
2870
+ }
2871
+
2872
+ // src/host/fetch-proxy-handler.ts
2837
2873
  var STRIP_FETCH_PROXY_HEADERS = /* @__PURE__ */ new Set([
2838
2874
  "host",
2839
2875
  "origin",
@@ -2878,14 +2914,17 @@ function formatFetchProxyError(targetUrl, err) {
2878
2914
  }
2879
2915
  return message;
2880
2916
  }
2881
- function buildFetchProxyHeaders(reqHeaders) {
2917
+ function buildFetchProxyHeaders(reqHeaders, targetUrl) {
2882
2918
  const headers = {};
2883
2919
  for (const [key, value] of Object.entries(reqHeaders)) {
2884
2920
  if (!value) continue;
2885
2921
  if (STRIP_FETCH_PROXY_HEADERS.has(key.toLowerCase())) continue;
2886
2922
  headers[key] = Array.isArray(value) ? value.join(", ") : value;
2887
2923
  }
2888
- headers["user-agent"] = FETCH_PROXY_USER_AGENT;
2924
+ Object.assign(
2925
+ headers,
2926
+ targetUrl ? getFetchProxyTargetHeaders(targetUrl) : { "user-agent": FETCH_PROXY_BROWSER_USER_AGENT }
2927
+ );
2889
2928
  return headers;
2890
2929
  }
2891
2930
  function isFetchProxyRequestUrl(rawUrl) {
@@ -2921,7 +2960,7 @@ async function handleFetchProxyRequest(req, res) {
2921
2960
  res.end("invalid url param");
2922
2961
  return;
2923
2962
  }
2924
- const headers = buildFetchProxyHeaders(req.headers);
2963
+ const headers = buildFetchProxyHeaders(req.headers, upstreamUrl);
2925
2964
  let body;
2926
2965
  if (req.method !== "GET" && req.method !== "HEAD") {
2927
2966
  const chunks = [];
@@ -1,4 +1,4 @@
1
- /*! sootsim v0.1.56 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.58 | (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;
@@ -41,7 +41,36 @@ __export(fetch_proxy_handler_exports, {
41
41
  module.exports = __toCommonJS(fetch_proxy_handler_exports);
42
42
  var import_http = __toESM(require("http"), 1);
43
43
  var import_https = __toESM(require("https"), 1);
44
- var FETCH_PROXY_USER_AGENT = "sootsim";
44
+
45
+ // src/host/fetch-proxy-overrides.ts
46
+ 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";
47
+ var HOST_HEADER_OVERRIDES = [
48
+ {
49
+ hostSuffix: "uniswap.org",
50
+ headers: {
51
+ origin: "https://app.uniswap.org",
52
+ referer: "https://app.uniswap.org/"
53
+ }
54
+ }
55
+ ];
56
+ function headerOverridesFor(hostname) {
57
+ const host = hostname.toLowerCase();
58
+ for (const override of HOST_HEADER_OVERRIDES) {
59
+ if (host === override.hostSuffix || host.endsWith(`.${override.hostSuffix}`)) {
60
+ return override.headers;
61
+ }
62
+ }
63
+ return {};
64
+ }
65
+ function getFetchProxyTargetHeaders(targetUrl) {
66
+ return {
67
+ "user-agent": FETCH_PROXY_BROWSER_USER_AGENT,
68
+ origin: `${targetUrl.protocol}//${targetUrl.host}`,
69
+ ...headerOverridesFor(targetUrl.hostname)
70
+ };
71
+ }
72
+
73
+ // src/host/fetch-proxy-handler.ts
45
74
  var STRIP_FETCH_PROXY_HEADERS = /* @__PURE__ */ new Set([
46
75
  "host",
47
76
  "origin",
@@ -86,14 +115,17 @@ function formatFetchProxyError(targetUrl, err) {
86
115
  }
87
116
  return message;
88
117
  }
89
- function buildFetchProxyHeaders(reqHeaders) {
118
+ function buildFetchProxyHeaders(reqHeaders, targetUrl) {
90
119
  const headers = {};
91
120
  for (const [key, value] of Object.entries(reqHeaders)) {
92
121
  if (!value) continue;
93
122
  if (STRIP_FETCH_PROXY_HEADERS.has(key.toLowerCase())) continue;
94
123
  headers[key] = Array.isArray(value) ? value.join(", ") : value;
95
124
  }
96
- headers["user-agent"] = FETCH_PROXY_USER_AGENT;
125
+ Object.assign(
126
+ headers,
127
+ targetUrl ? getFetchProxyTargetHeaders(targetUrl) : { "user-agent": FETCH_PROXY_BROWSER_USER_AGENT }
128
+ );
97
129
  return headers;
98
130
  }
99
131
  function isFetchProxyRequestUrl(rawUrl) {
@@ -129,7 +161,7 @@ async function handleFetchProxyRequest(req, res) {
129
161
  res.end("invalid url param");
130
162
  return;
131
163
  }
132
- const headers = buildFetchProxyHeaders(req.headers);
164
+ const headers = buildFetchProxyHeaders(req.headers, upstreamUrl);
133
165
  let body;
134
166
  if (req.method !== "GET" && req.method !== "HEAD") {
135
167
  const chunks = [];
@@ -0,0 +1,59 @@
1
+ /*! sootsim v0.1.58 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
+ let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
3
+ "use strict";
4
+ var __defProp = Object.defineProperty;
5
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
21
+
22
+ // src/host/fetch-proxy-overrides.ts
23
+ var fetch_proxy_overrides_exports = {};
24
+ __export(fetch_proxy_overrides_exports, {
25
+ FETCH_PROXY_BROWSER_USER_AGENT: () => FETCH_PROXY_BROWSER_USER_AGENT,
26
+ getFetchProxyTargetHeaders: () => getFetchProxyTargetHeaders
27
+ });
28
+ module.exports = __toCommonJS(fetch_proxy_overrides_exports);
29
+ 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";
30
+ var HOST_HEADER_OVERRIDES = [
31
+ {
32
+ hostSuffix: "uniswap.org",
33
+ headers: {
34
+ origin: "https://app.uniswap.org",
35
+ referer: "https://app.uniswap.org/"
36
+ }
37
+ }
38
+ ];
39
+ function headerOverridesFor(hostname) {
40
+ const host = hostname.toLowerCase();
41
+ for (const override of HOST_HEADER_OVERRIDES) {
42
+ if (host === override.hostSuffix || host.endsWith(`.${override.hostSuffix}`)) {
43
+ return override.headers;
44
+ }
45
+ }
46
+ return {};
47
+ }
48
+ function getFetchProxyTargetHeaders(targetUrl) {
49
+ return {
50
+ "user-agent": FETCH_PROXY_BROWSER_USER_AGENT,
51
+ origin: `${targetUrl.protocol}//${targetUrl.host}`,
52
+ ...headerOverridesFor(targetUrl.hostname)
53
+ };
54
+ }
55
+ // Annotate the CommonJS export names for ESM import in node:
56
+ 0 && (module.exports = {
57
+ FETCH_PROXY_BROWSER_USER_AGENT,
58
+ getFetchProxyTargetHeaders
59
+ });
@@ -1,4 +1,4 @@
1
- /*! sootsim v0.1.56 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.58 | (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.56 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.58 | (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.56 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.58 | (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.56 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.58 | (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.56 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.58 | (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;
@@ -75,6 +75,12 @@ function isAbsoluteHttpUrl(url) {
75
75
  function isNativeDevBundlePath(pathname) {
76
76
  return pathname.endsWith(".bundle");
77
77
  }
78
+ function applyPreviewProdBundle(parsed) {
79
+ if (!process.env.SOOTSIM_PREVIEW_PROD_BUNDLE) return;
80
+ parsed.searchParams.set("dev", "false");
81
+ parsed.searchParams.set("minify", "true");
82
+ if (parsed.searchParams.has("hot")) parsed.searchParams.set("hot", "false");
83
+ }
78
84
  function normalizeNativeDevBundleUrl(bundleUrl) {
79
85
  try {
80
86
  const isAbsolute = isAbsoluteHttpUrl(bundleUrl);
@@ -82,6 +88,7 @@ function normalizeNativeDevBundleUrl(bundleUrl) {
82
88
  parsed.pathname = parsed.pathname.replace(/\.\.bundle$/, ".bundle");
83
89
  if (!isNativeDevBundlePath(parsed.pathname)) return bundleUrl;
84
90
  parsed.searchParams.delete("transform.bytecode");
91
+ applyPreviewProdBundle(parsed);
85
92
  if (isAbsolute) return parsed.toString();
86
93
  return `${parsed.pathname}${parsed.search}${parsed.hash}`;
87
94
  } catch {
@@ -2902,6 +2909,40 @@ var init_agent_host = __esm({
2902
2909
  }
2903
2910
  });
2904
2911
 
2912
+ // src/host/fetch-proxy-overrides.ts
2913
+ function headerOverridesFor(hostname) {
2914
+ const host = hostname.toLowerCase();
2915
+ for (const override of HOST_HEADER_OVERRIDES) {
2916
+ if (host === override.hostSuffix || host.endsWith(`.${override.hostSuffix}`)) {
2917
+ return override.headers;
2918
+ }
2919
+ }
2920
+ return {};
2921
+ }
2922
+ function getFetchProxyTargetHeaders(targetUrl) {
2923
+ return {
2924
+ "user-agent": FETCH_PROXY_BROWSER_USER_AGENT,
2925
+ origin: `${targetUrl.protocol}//${targetUrl.host}`,
2926
+ ...headerOverridesFor(targetUrl.hostname)
2927
+ };
2928
+ }
2929
+ var FETCH_PROXY_BROWSER_USER_AGENT, HOST_HEADER_OVERRIDES;
2930
+ var init_fetch_proxy_overrides = __esm({
2931
+ "src/host/fetch-proxy-overrides.ts"() {
2932
+ "use strict";
2933
+ 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";
2934
+ HOST_HEADER_OVERRIDES = [
2935
+ {
2936
+ hostSuffix: "uniswap.org",
2937
+ headers: {
2938
+ origin: "https://app.uniswap.org",
2939
+ referer: "https://app.uniswap.org/"
2940
+ }
2941
+ }
2942
+ ];
2943
+ }
2944
+ });
2945
+
2905
2946
  // src/host/fetch-proxy-handler.ts
2906
2947
  function applyFetchProxyCors(res) {
2907
2948
  for (const [key, value] of Object.entries(FETCH_PROXY_CORS_HEADERS)) {
@@ -2922,14 +2963,17 @@ function formatFetchProxyError(targetUrl, err) {
2922
2963
  }
2923
2964
  return message;
2924
2965
  }
2925
- function buildFetchProxyHeaders(reqHeaders) {
2966
+ function buildFetchProxyHeaders(reqHeaders, targetUrl) {
2926
2967
  const headers = {};
2927
2968
  for (const [key, value] of Object.entries(reqHeaders)) {
2928
2969
  if (!value) continue;
2929
2970
  if (STRIP_FETCH_PROXY_HEADERS.has(key.toLowerCase())) continue;
2930
2971
  headers[key] = Array.isArray(value) ? value.join(", ") : value;
2931
2972
  }
2932
- headers["user-agent"] = FETCH_PROXY_USER_AGENT;
2973
+ Object.assign(
2974
+ headers,
2975
+ targetUrl ? getFetchProxyTargetHeaders(targetUrl) : { "user-agent": FETCH_PROXY_BROWSER_USER_AGENT }
2976
+ );
2933
2977
  return headers;
2934
2978
  }
2935
2979
  function isFetchProxyRequestUrl(rawUrl) {
@@ -2965,7 +3009,7 @@ async function handleFetchProxyRequest(req, res) {
2965
3009
  res.end("invalid url param");
2966
3010
  return;
2967
3011
  }
2968
- const headers = buildFetchProxyHeaders(req.headers);
3012
+ const headers = buildFetchProxyHeaders(req.headers, upstreamUrl);
2969
3013
  let body;
2970
3014
  if (req.method !== "GET" && req.method !== "HEAD") {
2971
3015
  const chunks = [];
@@ -3074,13 +3118,13 @@ function handleAppApiRequest(req, res) {
3074
3118
  req.pipe(proxyReq);
3075
3119
  return true;
3076
3120
  }
3077
- var import_http2, import_https, FETCH_PROXY_USER_AGENT, STRIP_FETCH_PROXY_HEADERS, FETCH_PROXY_CORS_HEADERS;
3121
+ var import_http2, import_https, STRIP_FETCH_PROXY_HEADERS, FETCH_PROXY_CORS_HEADERS;
3078
3122
  var init_fetch_proxy_handler = __esm({
3079
3123
  "src/host/fetch-proxy-handler.ts"() {
3080
3124
  "use strict";
3081
3125
  import_http2 = __toESM(require("http"), 1);
3082
3126
  import_https = __toESM(require("https"), 1);
3083
- FETCH_PROXY_USER_AGENT = "sootsim";
3127
+ init_fetch_proxy_overrides();
3084
3128
  STRIP_FETCH_PROXY_HEADERS = /* @__PURE__ */ new Set([
3085
3129
  "host",
3086
3130
  "origin",
package/dist-lib/vite.cjs CHANGED
@@ -1,4 +1,4 @@
1
- /*! sootsim v0.1.56 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.58 | (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.56",
3
+ "version": "0.1.58",
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",
@@ -85,6 +85,7 @@
85
85
  "default": "./dist-lib/host/bridge-host.cjs"
86
86
  },
87
87
  "./host/fetch-proxy-handler": "./src/host/fetch-proxy-handler.ts",
88
+ "./host/fetch-proxy-overrides": "./src/host/fetch-proxy-overrides.ts",
88
89
  "./scripts/dev-server-scanner": "./scripts/dev-server-scanner.ts",
89
90
  "./scripts/demo-app-registry": "./scripts/demo-app-registry.ts",
90
91
  "./detox": "./detox/index.ts",
@@ -1,2 +0,0 @@
1
- /*! sootsim v0.1.56 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{a,b,c,d}from"./chunk-2GBPEUTK.js";import"./chunk-VNDOK6BD.js";import"./chunk-Z4JM7KAI.js";import"./chunk-CW4VKFVT.js";import"./chunk-DWO6DMIH.js";import"./chunk-UJNJD3LW.js";export{c as ensureDaemonRunning,a as ensureRuntimeInstalled,d as ensureSootsimReady,b as resolveBootstrapPort};
@@ -1,2 +0,0 @@
1
- /*! sootsim v0.1.56 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{a,b,c,d,e}from"./chunk-4QN22PRF.js";import"./chunk-UJNJD3LW.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 +0,0 @@
1
- /*! sootsim v0.1.56 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
@@ -1,2 +0,0 @@
1
- /*! sootsim v0.1.56 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- var t="http://localhost:5173/";export{t as a};