sootsim 0.1.200 → 0.1.202

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 (151) hide show
  1. package/dist-cli/bin.js +5 -4
  2. package/dist-cli/chunks/{agent-RJBLYNGF.js → agent-SP6EE5XV.js} +2 -2
  3. package/dist-cli/chunks/{agent-wrapper-E6WLI6L3.js → agent-wrapper-PWZVJ3OK.js} +2 -2
  4. package/dist-cli/chunks/{app-fonts-O3VYBYQW.js → app-fonts-EMJB6QLM.js} +2 -2
  5. package/dist-cli/chunks/{assert-VFBTT2JB.js → assert-H2B6TDXT.js} +2 -2
  6. package/dist-cli/chunks/{auth-DQ6AJU2X.js → auth-SOHXBYLQ.js} +2 -2
  7. package/dist-cli/chunks/beta-CCNQQ73A.js +2 -0
  8. package/dist-cli/chunks/{camera-C2OFA3JA.js → camera-ULLCBM5H.js} +2 -2
  9. package/dist-cli/chunks/{chunk-UGJFYNMX.js → chunk-2CID4LNK.js} +3 -3
  10. package/dist-cli/chunks/chunk-2V43M57C.js +2 -0
  11. package/dist-cli/chunks/{chunk-GKXPIE6X.js → chunk-3ZENZOIX.js} +2 -2
  12. package/dist-cli/chunks/{chunk-6RHOWIGL.js → chunk-4KT2BGQE.js} +1 -1
  13. package/dist-cli/chunks/{chunk-P4PCUR4Y.js → chunk-4KVSVFRF.js} +1 -1
  14. package/dist-cli/chunks/{chunk-VACKEJ3E.js → chunk-4NM6JBYH.js} +1 -1
  15. package/dist-cli/chunks/chunk-5J63S2NM.js +1 -0
  16. package/dist-cli/chunks/{chunk-7BS4AKZT.js → chunk-5SKKMM7E.js} +1 -1
  17. package/dist-cli/chunks/chunk-6FZ6SNVP.js +4 -0
  18. package/dist-cli/chunks/{chunk-3BEGOL5T.js → chunk-6QFVYLX6.js} +2 -2
  19. package/dist-cli/chunks/{chunk-IJ6DRL7N.js → chunk-AAQVPSIV.js} +2 -2
  20. package/dist-cli/chunks/{chunk-XF3JBBPU.js → chunk-B6JB4THC.js} +2 -2
  21. package/dist-cli/chunks/{chunk-JJOS6L5H.js → chunk-BZ7AW7ZB.js} +2 -2
  22. package/dist-cli/chunks/{chunk-OCA5CK4S.js → chunk-CB7LDZKJ.js} +3 -3
  23. package/dist-cli/chunks/{chunk-6JKBWHIO.js → chunk-CGJ2U6ST.js} +1 -1
  24. package/dist-cli/chunks/chunk-DKBKU55D.js +2 -0
  25. package/dist-cli/chunks/{chunk-QSWT3OVG.js → chunk-DRJ4YWUG.js} +1 -1
  26. package/dist-cli/chunks/{chunk-XAIDHR55.js → chunk-EMOZJ773.js} +2 -2
  27. package/dist-cli/chunks/{chunk-KFGBNAV3.js → chunk-ENXHZGSL.js} +1 -1
  28. package/dist-cli/chunks/{chunk-I6DJFJQ6.js → chunk-F2LLN4U7.js} +2 -2
  29. package/dist-cli/chunks/{chunk-3PAUJH34.js → chunk-GUYKLSTX.js} +1 -1
  30. package/dist-cli/chunks/chunk-GZKT53SA.js +7 -0
  31. package/dist-cli/chunks/{chunk-DWFS6IIT.js → chunk-HZYHSLNH.js} +2 -2
  32. package/dist-cli/chunks/chunk-I6O7NBPZ.js +1 -0
  33. package/dist-cli/chunks/{chunk-U5O3F3NB.js → chunk-JP7J325R.js} +2 -2
  34. package/dist-cli/chunks/{chunk-5SB3N45C.js → chunk-K3UBHPVP.js} +1 -1
  35. package/dist-cli/chunks/{chunk-VFSOKG53.js → chunk-KRGHRSKY.js} +2 -2
  36. package/dist-cli/chunks/{chunk-VP4Y767U.js → chunk-KYGUR727.js} +2 -2
  37. package/dist-cli/chunks/{chunk-2E4DUZEV.js → chunk-LNDRRZP3.js} +2 -2
  38. package/dist-cli/chunks/{chunk-NEQRFWA3.js → chunk-OG6TFGYF.js} +2 -2
  39. package/dist-cli/chunks/{chunk-PJAKGC4A.js → chunk-PL4GXELT.js} +1 -1
  40. package/dist-cli/chunks/{chunk-MZLG4WVE.js → chunk-RJVIUQK4.js} +1 -1
  41. package/dist-cli/chunks/{chunk-4RUK2YSF.js → chunk-ROYBEBG2.js} +1 -1
  42. package/dist-cli/chunks/{chunk-42G5ZRQR.js → chunk-RS7QLHEH.js} +2 -2
  43. package/dist-cli/chunks/{chunk-LSDJTPOY.js → chunk-RWXCSRNE.js} +2 -2
  44. package/dist-cli/chunks/{chunk-NX4VSQD5.js → chunk-RZQO4Q7E.js} +1 -1
  45. package/dist-cli/chunks/{chunk-SFUQJU5Q.js → chunk-SQBX2HS7.js} +6 -6
  46. package/dist-cli/chunks/{chunk-NK4FF37S.js → chunk-TANTCV45.js} +2 -2
  47. package/dist-cli/chunks/chunk-W4Y3JJX6.js +29 -0
  48. package/dist-cli/chunks/chunk-WILIVPUU.js +567 -0
  49. package/dist-cli/chunks/{chunk-GMBG6JLV.js → chunk-WVDWIXPH.js} +2 -2
  50. package/dist-cli/chunks/{chunk-HGBMGQGP.js → chunk-Z5VMWFCY.js} +1 -1
  51. package/dist-cli/chunks/cli-version-Z4NGLJLH.js +2 -0
  52. package/dist-cli/chunks/{compat-L2E3OQW3.js → compat-YW3OJ7RX.js} +3 -3
  53. package/dist-cli/chunks/{config-K4IMJRHG.js → config-ZGOXFEX4.js} +2 -2
  54. package/dist-cli/chunks/{control-OXJ7S7UG.js → control-75JRFOYV.js} +2 -2
  55. package/dist-cli/chunks/daemon-SHFBQRHD.js +2 -0
  56. package/dist-cli/chunks/{debug-ZPKRTLGX.js → debug-4APEP64L.js} +3 -3
  57. package/dist-cli/chunks/{desktop-YA2UL7Q4.js → desktop-CS7S4CXK.js} +3 -3
  58. package/dist-cli/chunks/detox-7R7DOKQM.js +50 -0
  59. package/dist-cli/chunks/{device-M6YG7TKY.js → device-EIDKLBEK.js} +2 -2
  60. package/dist-cli/chunks/{diagnose-3OUFTELV.js → diagnose-J2F7MJAJ.js} +2 -2
  61. package/dist-cli/chunks/drivers-55L7BHDF.js +2 -0
  62. package/dist-cli/chunks/flow-AHWVTHJP.js +2 -0
  63. package/dist-cli/chunks/help-C4BTMPEE.js +2 -0
  64. package/dist-cli/chunks/home-paths-WVCREWI7.js +2 -0
  65. package/dist-cli/chunks/inspect-M4Z4SSSB.js +2 -0
  66. package/dist-cli/chunks/install-desktop-PVRUAEMA.js +2 -0
  67. package/dist-cli/chunks/{login-RNYBOMNF.js → login-EOBJ7CZ4.js} +4 -4
  68. package/dist-cli/chunks/{logout-XBW3BXL4.js → logout-RL7D66VQ.js} +2 -2
  69. package/dist-cli/chunks/maestro-F66ZIJKA.js +96 -0
  70. package/dist-cli/chunks/{mode-E353E6HN.js → mode-R2VIW66U.js} +2 -2
  71. package/dist-cli/chunks/optional-demo-registry-ILX5YV34.js +2 -0
  72. package/dist-cli/chunks/{perf-CIOBGFHU.js → perf-PGYO5BBR.js} +2 -2
  73. package/dist-cli/chunks/{record-I626AYJ5.js → record-IGDVHC67.js} +3 -3
  74. package/dist-cli/chunks/runtime-43RJGUGS.js +2 -0
  75. package/dist-cli/chunks/{screenshot-command-TTB5OOL2.js → screenshot-command-HX4GVUJM.js} +2 -2
  76. package/dist-cli/chunks/{serve-AEBEXTTW.js → serve-3TFVHYLY.js} +18 -18
  77. package/dist-cli/chunks/{setup-7QCI53ZK.js → setup-JSPPRVET.js} +3 -3
  78. package/dist-cli/chunks/{skills-7LHL5KHW.js → skills-LK3B76W7.js} +2 -2
  79. package/dist-cli/chunks/{storage-BVWLYY23.js → storage-NC5RNBUA.js} +2 -2
  80. package/dist-cli/chunks/store-3XMEKA6H.js +2 -0
  81. package/dist-cli/chunks/telemetry-CVJ5YZNS.js +2 -0
  82. package/dist-cli/chunks/test-2CXPLH5N.js +69 -0
  83. package/dist-cli/chunks/{timeline-BVR4E6PY.js → timeline-WDTEVELN.js} +2 -2
  84. package/dist-cli/chunks/upgrade-TT2IJSNJ.js +4 -0
  85. package/dist-cli/chunks/upload-4HMNB4HA.js +2 -0
  86. package/dist-cli/chunks/version-JUNH4FOR.js +4 -0
  87. package/dist-cli/chunks/{web-HYLNFAXS.js → web-BWCW26ZA.js} +2 -2
  88. package/dist-cli/chunks/{what-happened-YGRE2NFG.js → what-happened-L6EEB6MB.js} +2 -2
  89. package/dist-lib/agent-daemon-client.cjs +1 -1
  90. package/dist-lib/agent-events.cjs +1 -1
  91. package/dist-lib/agent-identity.cjs +1 -1
  92. package/dist-lib/agent-sessions.cjs +1 -1
  93. package/dist-lib/attached-projects.cjs +1 -1
  94. package/dist-lib/auth/shared-session.cjs +1 -1
  95. package/dist-lib/backend-origin.cjs +1 -1
  96. package/dist-lib/beta.cjs +1 -1
  97. package/dist-lib/beta.mjs +1 -1
  98. package/dist-lib/bridge-constants.cjs +1 -1
  99. package/dist-lib/cli-constants.cjs +1 -1
  100. package/dist-lib/config.cjs +1 -1
  101. package/dist-lib/detox/index.cjs +1 -1
  102. package/dist-lib/dev-bundle-resolution.cjs +1 -1
  103. package/dist-lib/home-paths.cjs +32 -1
  104. package/dist-lib/host/bridge-host.cjs +51 -2
  105. package/dist-lib/host/fetch-proxy-handler.cjs +1 -1
  106. package/dist-lib/host/fetch-proxy-overrides.cjs +1 -1
  107. package/dist-lib/host/fetch-proxy-overrides.mjs +1 -1
  108. package/dist-lib/host/websocket-proxy.cjs +1 -1
  109. package/dist-lib/index.cjs +1 -1
  110. package/dist-lib/jump-to-source-babel.cjs +1 -1
  111. package/dist-lib/menu.cjs +1 -1
  112. package/dist-lib/menu.mjs +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/scripts/dev-server-scanner.cjs +1 -1
  117. package/dist-lib/sdk.cjs +1 -1
  118. package/dist-lib/sdk.mjs +1 -1
  119. package/dist-lib/skills.cjs +115 -36
  120. package/dist-lib/vite.cjs +1 -1
  121. package/package.json +1 -1
  122. package/src/home-paths.ts +48 -1
  123. package/src/host/bridge-host.ts +12 -0
  124. package/src/runtime-delivery.ts +59 -9
  125. package/src/screenshots/frame-compose.ts +21 -13
  126. package/dist-cli/chunks/beta-ZXPAAXGE.js +0 -2
  127. package/dist-cli/chunks/chunk-CB3I3VQT.js +0 -6
  128. package/dist-cli/chunks/chunk-EY2OMKPT.js +0 -1
  129. package/dist-cli/chunks/chunk-M3AUV33V.js +0 -4
  130. package/dist-cli/chunks/chunk-RJ6WD7XJ.js +0 -567
  131. package/dist-cli/chunks/chunk-TMXLUWD2.js +0 -27
  132. package/dist-cli/chunks/chunk-USDJA22M.js +0 -1
  133. package/dist-cli/chunks/chunk-VXBWUAYL.js +0 -2
  134. package/dist-cli/chunks/cli-version-E3OGD447.js +0 -2
  135. package/dist-cli/chunks/daemon-G5GBYBJ4.js +0 -2
  136. package/dist-cli/chunks/detox-LKEZBGH5.js +0 -49
  137. package/dist-cli/chunks/drivers-CTSUKCFK.js +0 -2
  138. package/dist-cli/chunks/flow-R5GJJLLW.js +0 -2
  139. package/dist-cli/chunks/help-CSSCFOBR.js +0 -2
  140. package/dist-cli/chunks/home-paths-4V6CGISP.js +0 -2
  141. package/dist-cli/chunks/inspect-NIBEAJND.js +0 -2
  142. package/dist-cli/chunks/install-desktop-7TYE6TTP.js +0 -2
  143. package/dist-cli/chunks/maestro-3EBOG357.js +0 -96
  144. package/dist-cli/chunks/optional-demo-registry-BEUP6OEZ.js +0 -2
  145. package/dist-cli/chunks/runtime-254BNZHB.js +0 -2
  146. package/dist-cli/chunks/store-6KAKNNCL.js +0 -2
  147. package/dist-cli/chunks/telemetry-EZ42CD35.js +0 -2
  148. package/dist-cli/chunks/test-BK4GZZR2.js +0 -69
  149. package/dist-cli/chunks/upgrade-AY5XC5QI.js +0 -4
  150. package/dist-cli/chunks/upload-HOF4XBAG.js +0 -2
  151. package/dist-cli/chunks/version-WQM34S4E.js +0 -4
@@ -1,5 +1,5 @@
1
- /*! sootsim v0.1.200 | (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-4RUK2YSF.js";import{g as A,i as _}from"./chunk-VFSOKG53.js";import"./chunk-PJAKGC4A.js";import{b as k}from"./chunk-NX4VSQD5.js";import"./chunk-CB3I3VQT.js";import"./chunk-6RHOWIGL.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.202 | (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-ROYBEBG2.js";import{g as A,i as _}from"./chunk-KRGHRSKY.js";import"./chunk-PL4GXELT.js";import{b as k}from"./chunk-RZQO4Q7E.js";import"./chunk-GZKT53SA.js";import"./chunk-4KT2BGQE.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,4 +1,4 @@
1
- /*! sootsim v0.1.200 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.202 | (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.200 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.202 | (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.200 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.202 | (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.200 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.202 | (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.200 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.202 | (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.200 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.202 | (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.200 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.202 | (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.200 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.202 | (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.200 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.202 | (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.200 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.202 | (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.200 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.202 | (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.200 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.202 | (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.200 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.202 | (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.200 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.202 | (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.200 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.202 | (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;
@@ -44,6 +44,7 @@ __export(home_paths_exports, {
44
44
  claimDaemonLockfile: () => claimDaemonLockfile,
45
45
  compareSemver: () => compareSemver,
46
46
  configFilePath: () => configFilePath,
47
+ consumeRuntimeUpgradeNotice: () => consumeRuntimeUpgradeNotice,
47
48
  daemonAppBundlePath: () => daemonAppBundlePath,
48
49
  daemonAppDir: () => daemonAppDir,
49
50
  daemonAppLauncherPath: () => daemonAppLauncherPath,
@@ -68,12 +69,14 @@ __export(home_paths_exports, {
68
69
  removeDaemonLockfile: () => removeDaemonLockfile,
69
70
  removeDevBridgeLockfile: () => removeDevBridgeLockfile,
70
71
  runtimeDir: () => runtimeDir,
72
+ runtimeUpgradeNoticePath: () => runtimeUpgradeNoticePath,
71
73
  runtimesDir: () => runtimesDir,
72
74
  shouldSkipPersistentDaemon: () => shouldSkipPersistentDaemon,
73
75
  sootsimHomeDir: () => sootsimHomeDir,
74
76
  writeActiveRuntime: () => writeActiveRuntime,
75
77
  writeDaemonLockfile: () => writeDaemonLockfile,
76
78
  writeDevBridgeLockfile: () => writeDevBridgeLockfile,
79
+ writeRuntimeUpgradeNotice: () => writeRuntimeUpgradeNotice,
77
80
  writeSharedConfig: () => writeSharedConfig,
78
81
  writeTelemetryEnabled: () => writeTelemetryEnabled
79
82
  });
@@ -194,6 +197,31 @@ function readOrCreateAnonymousId() {
194
197
  function writeTelemetryEnabled(enabled) {
195
198
  writeSharedConfig({ telemetry: enabled });
196
199
  }
200
+ function runtimeUpgradeNoticePath() {
201
+ return import_node_path.default.join(sootsimHomeDir(), "runtime-upgraded.json");
202
+ }
203
+ function writeRuntimeUpgradeNotice(notice) {
204
+ ensureSootsimHome();
205
+ const tmp = `${runtimeUpgradeNoticePath()}.tmp`;
206
+ import_node_fs.default.writeFileSync(tmp, `${JSON.stringify(notice)}
207
+ `, "utf8");
208
+ import_node_fs.default.renameSync(tmp, runtimeUpgradeNoticePath());
209
+ }
210
+ function consumeRuntimeUpgradeNotice() {
211
+ try {
212
+ const raw = import_node_fs.default.readFileSync(runtimeUpgradeNoticePath(), "utf8");
213
+ import_node_fs.default.unlinkSync(runtimeUpgradeNoticePath());
214
+ const parsed = JSON.parse(raw);
215
+ if (typeof parsed?.to !== "string" || !parsed.to) return null;
216
+ return {
217
+ from: typeof parsed.from === "string" ? parsed.from : null,
218
+ to: parsed.to,
219
+ at: typeof parsed.at === "number" ? parsed.at : 0
220
+ };
221
+ } catch {
222
+ return null;
223
+ }
224
+ }
197
225
  function ensureSootsimHome() {
198
226
  import_node_fs.default.mkdirSync(sootsimHomeDir(), { recursive: true });
199
227
  import_node_fs.default.mkdirSync(runtimesDir(), { recursive: true });
@@ -360,6 +388,7 @@ function removeDevBridgeLockfile() {
360
388
  claimDaemonLockfile,
361
389
  compareSemver,
362
390
  configFilePath,
391
+ consumeRuntimeUpgradeNotice,
363
392
  daemonAppBundlePath,
364
393
  daemonAppDir,
365
394
  daemonAppLauncherPath,
@@ -384,12 +413,14 @@ function removeDevBridgeLockfile() {
384
413
  removeDaemonLockfile,
385
414
  removeDevBridgeLockfile,
386
415
  runtimeDir,
416
+ runtimeUpgradeNoticePath,
387
417
  runtimesDir,
388
418
  shouldSkipPersistentDaemon,
389
419
  sootsimHomeDir,
390
420
  writeActiveRuntime,
391
421
  writeDaemonLockfile,
392
422
  writeDevBridgeLockfile,
423
+ writeRuntimeUpgradeNotice,
393
424
  writeSharedConfig,
394
425
  writeTelemetryEnabled
395
426
  });
@@ -1,4 +1,4 @@
1
- /*! sootsim v0.1.200 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.202 | (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;
@@ -662,6 +662,16 @@ function writeSharedConfig(patch) {
662
662
  import_node_fs2.default.renameSync(tmp, configFilePath());
663
663
  return next;
664
664
  }
665
+ function runtimeUpgradeNoticePath() {
666
+ return import_node_path.default.join(sootsimHomeDir(), "runtime-upgraded.json");
667
+ }
668
+ function writeRuntimeUpgradeNotice(notice) {
669
+ ensureSootsimHome();
670
+ const tmp = `${runtimeUpgradeNoticePath()}.tmp`;
671
+ import_node_fs2.default.writeFileSync(tmp, `${JSON.stringify(notice)}
672
+ `, "utf8");
673
+ import_node_fs2.default.renameSync(tmp, runtimeUpgradeNoticePath());
674
+ }
665
675
  function ensureSootsimHome() {
666
676
  import_node_fs2.default.mkdirSync(sootsimHomeDir(), { recursive: true });
667
677
  import_node_fs2.default.mkdirSync(runtimesDir(), { recursive: true });
@@ -825,6 +835,7 @@ var import_promises = require("stream/promises");
825
835
  var DEFAULT_RUNTIME_CDN_ORIGIN = "https://sootbean.com";
826
836
  var RUNTIME_CDN_ORIGIN_ENV = "SOOTSIM_CDN_ORIGIN";
827
837
  var RUNTIME_CHANNEL_ENV = "SOOTSIM_RUNTIME_CHANNEL";
838
+ var RUNTIME_PIN_ENV = "SOOTSIM_RUNTIME_VERSION";
828
839
  function readConfig() {
829
840
  try {
830
841
  const parsed = JSON.parse(import_fs2.default.readFileSync(configFilePath(), "utf8"));
@@ -842,6 +853,12 @@ function resolveRuntimeChannel(input) {
842
853
  const config = readConfig();
843
854
  return input || process.env[RUNTIME_CHANNEL_ENV] || config.runtimeChannel || "stable";
844
855
  }
856
+ function resolveRuntimePin() {
857
+ const env = process.env[RUNTIME_PIN_ENV];
858
+ if (env && env.trim()) return env.trim();
859
+ const config = readConfig();
860
+ return typeof config.runtimeVersion === "string" && config.runtimeVersion.trim() ? config.runtimeVersion.trim() : null;
861
+ }
845
862
  function runtimeManifestUrl(cdnOrigin) {
846
863
  const url = new URL(`${resolveRuntimeCdnOrigin(cdnOrigin)}/runtimes/manifest.json`);
847
864
  url.searchParams.set("t", String(Date.now()));
@@ -860,7 +877,7 @@ async function fetchRuntimeManifest(cdnOrigin) {
860
877
  }
861
878
  function resolveRuntimeVersion(manifest, opts = {}) {
862
879
  const channel = resolveRuntimeChannel(opts.channel);
863
- const version = opts.version || manifest.channels[channel]?.latest;
880
+ const version = opts.version || resolveRuntimePin() || manifest.channels[channel]?.latest;
864
881
  if (!version) {
865
882
  throw new Error(
866
883
  `no version specified and channel '${channel}' has no latest entry in the manifest`
@@ -936,6 +953,29 @@ async function updateRuntimeToLatest(opts = {}) {
936
953
  ensureSootsimHome();
937
954
  const cdnOrigin = resolveRuntimeCdnOrigin(opts.cdnOrigin);
938
955
  const channel = resolveRuntimeChannel(opts.channel);
956
+ const pin = resolveRuntimePin();
957
+ if (pin) {
958
+ const activeVersion2 = readActiveRuntime();
959
+ const pinInstalled = import_fs2.default.existsSync(import_path2.default.join(runtimeDir(pin), "index.html"));
960
+ if (activeVersion2 === pin && pinInstalled) {
961
+ return {
962
+ checked: true,
963
+ updated: false,
964
+ reason: `runtime is pinned to ${pin}`,
965
+ activeVersion: activeVersion2,
966
+ latestVersion: pin
967
+ };
968
+ }
969
+ const install2 = await installRuntime({ version: pin, channel, cdnOrigin, setActive: false });
970
+ return {
971
+ checked: true,
972
+ updated: true,
973
+ reason: `runtime is pinned to ${pin}`,
974
+ activeVersion: pin,
975
+ latestVersion: pin,
976
+ install: install2
977
+ };
978
+ }
939
979
  const manifest = await fetchRuntimeManifest(cdnOrigin);
940
980
  const latestVersion = manifest.channels[channel]?.latest;
941
981
  if (!latestVersion) {
@@ -3745,9 +3785,18 @@ var SootSimBridgeHost = class _SootSimBridgeHost {
3745
3785
  }
3746
3786
  return;
3747
3787
  }
3788
+ const previousVersion = this.activeRuntimeVersion;
3748
3789
  const active = this.setActiveRuntime(result.latestVersion);
3749
3790
  process.stderr.write(`sootsim runtime updated to ${active.version} (${reason})
3750
3791
  `);
3792
+ try {
3793
+ writeRuntimeUpgradeNotice({
3794
+ from: previousVersion,
3795
+ to: active.version,
3796
+ at: Date.now()
3797
+ });
3798
+ } catch {
3799
+ }
3751
3800
  } catch (err) {
3752
3801
  process.stderr.write(
3753
3802
  `sootsim runtime update failed (${reason}): ${err instanceof Error ? err.message : String(err)}
@@ -1,4 +1,4 @@
1
- /*! sootsim v0.1.200 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.202 | (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.200 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.202 | (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.200 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.202 | (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.200 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.202 | (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.200 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.202 | (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.200 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.202 | (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.200 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.202 | (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.200 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.202 | (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.200 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.202 | (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.200 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.202 | (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.200 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.202 | (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.200 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.202 | (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.200 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.202 | (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.200 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.202 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // cli/commands/inspect/core.ts
4
4
  function resolveMaxMsFlag(args, fallbackMs) {