sootsim 0.1.243 → 0.1.245

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 (144) hide show
  1. package/dist-cli/bin.js +4 -4
  2. package/dist-cli/chunks/{agent-FXEWVX5T.js → agent-UMI3624H.js} +2 -2
  3. package/dist-cli/chunks/{agent-wrapper-GUN6VZ5X.js → agent-wrapper-32NCVUN3.js} +2 -2
  4. package/dist-cli/chunks/{app-fonts-QRKKOMUI.js → app-fonts-TBS2JXBD.js} +2 -2
  5. package/dist-cli/chunks/{assert-NM7TWETJ.js → assert-OMMFZ746.js} +2 -2
  6. package/dist-cli/chunks/{auth-HDYJCDMP.js → auth-WSMHQHRX.js} +2 -2
  7. package/dist-cli/chunks/beta-SF4DAISL.js +2 -0
  8. package/dist-cli/chunks/{camera-ZDSBFJL5.js → camera-PDBRIA46.js} +2 -2
  9. package/dist-cli/chunks/{chunk-FSKOS7WC.js → chunk-2BPZJTMF.js} +1 -1
  10. package/dist-cli/chunks/{chunk-3TYXB26Z.js → chunk-2JMGQZXX.js} +1 -1
  11. package/dist-cli/chunks/{chunk-D2AQJY2L.js → chunk-3DDBZ2FZ.js} +2 -2
  12. package/dist-cli/chunks/chunk-3FX4CPRD.js +1 -0
  13. package/dist-cli/chunks/{chunk-U3O2ZVZJ.js → chunk-3R74AUXP.js} +2 -2
  14. package/dist-cli/chunks/{chunk-6YFIKQI7.js → chunk-3ZCD72ZT.js} +2 -2
  15. package/dist-cli/chunks/{chunk-4ZRA4LSB.js → chunk-4QTQ7IB6.js} +2 -2
  16. package/dist-cli/chunks/{chunk-QNQJW3CU.js → chunk-4SFP6OAX.js} +2 -2
  17. package/dist-cli/chunks/{chunk-YGZYZ5PG.js → chunk-54VL33HG.js} +2 -2
  18. package/dist-cli/chunks/{chunk-GUFB26IN.js → chunk-5GUYHQTQ.js} +1 -1
  19. package/dist-cli/chunks/{chunk-4ET5SQJ7.js → chunk-76656NTC.js} +2 -2
  20. package/dist-cli/chunks/{chunk-SUJVPDRY.js → chunk-7YJ5YDCN.js} +3 -3
  21. package/dist-cli/chunks/{chunk-SZYSZKHI.js → chunk-AKT6TFRG.js} +2 -2
  22. package/dist-cli/chunks/{chunk-PYRQ46AN.js → chunk-C4HOGMXJ.js} +3 -3
  23. package/dist-cli/chunks/{chunk-J45AZS5J.js → chunk-CMGNS5BS.js} +3 -3
  24. package/dist-cli/chunks/{chunk-LRWFVZOL.js → chunk-DRU4THKE.js} +1 -1
  25. package/dist-cli/chunks/{chunk-3I6TOP3W.js → chunk-EADC2EO4.js} +69 -69
  26. package/dist-cli/chunks/{chunk-YJ2PDE4K.js → chunk-ECI6JGA5.js} +2 -2
  27. package/dist-cli/chunks/{chunk-JF4J3LFL.js → chunk-FJSEDCSJ.js} +1 -1
  28. package/dist-cli/chunks/{chunk-XZ2FVQMY.js → chunk-FTWJFLIX.js} +1 -1
  29. package/dist-cli/chunks/{chunk-5G3LJUYE.js → chunk-H5UF73ZY.js} +1 -1
  30. package/dist-cli/chunks/chunk-IRQ7AX6M.js +103 -0
  31. package/dist-cli/chunks/{chunk-4ZUKMTEH.js → chunk-JQOVMKKD.js} +2 -2
  32. package/dist-cli/chunks/{chunk-3SDYUIT5.js → chunk-JXVG6Q3C.js} +1 -1
  33. package/dist-cli/chunks/{chunk-SXIRWCAW.js → chunk-KJZI5667.js} +1 -1
  34. package/dist-cli/chunks/{chunk-GEJBVV4M.js → chunk-LJINY7Y4.js} +1 -1
  35. package/dist-cli/chunks/{chunk-QOE3DNO5.js → chunk-MBKGVLMH.js} +1 -1
  36. package/dist-cli/chunks/{chunk-HQTOG4X4.js → chunk-OR3BDGW6.js} +2 -2
  37. package/dist-cli/chunks/chunk-PFAHCNFB.js +2 -0
  38. package/dist-cli/chunks/{chunk-CBOYNMNP.js → chunk-RDXNAJED.js} +2 -2
  39. package/dist-cli/chunks/chunk-RPHRM35M.js +1 -0
  40. package/dist-cli/chunks/{chunk-TDA6GMMJ.js → chunk-SANCSFUC.js} +1 -1
  41. package/dist-cli/chunks/{chunk-6D4GB3TT.js → chunk-SVJJCPWT.js} +2 -2
  42. package/dist-cli/chunks/{chunk-SP2DEZXG.js → chunk-TJI5OFJV.js} +2 -2
  43. package/dist-cli/chunks/{chunk-MO2QVYFW.js → chunk-TOW7WQWO.js} +2 -2
  44. package/dist-cli/chunks/{chunk-EGQBLGHM.js → chunk-TUHXJKDI.js} +2 -2
  45. package/dist-cli/chunks/{chunk-RNBYQ5TF.js → chunk-UWQG2IZU.js} +1 -1
  46. package/dist-cli/chunks/{chunk-RWIXBCIJ.js → chunk-VOR45PVI.js} +2 -2
  47. package/dist-cli/chunks/{chunk-ED4PHTSN.js → chunk-WGEQ5ERO.js} +2 -2
  48. package/dist-cli/chunks/{chunk-TXGYN5YH.js → chunk-WU5OEQS2.js} +6 -6
  49. package/dist-cli/chunks/{chunk-HCE47EED.js → chunk-XN4CFIPA.js} +1 -1
  50. package/dist-cli/chunks/{chunk-IFIE63FU.js → chunk-XSFLFCHE.js} +2 -2
  51. package/dist-cli/chunks/{chunk-EHFPZFQE.js → chunk-XUA5QIEZ.js} +1 -1
  52. package/dist-cli/chunks/{chunk-FIDOMJXL.js → chunk-YTKWLW7X.js} +1 -1
  53. package/dist-cli/chunks/cli-version-VSVRSPXF.js +2 -0
  54. package/dist-cli/chunks/{compat-LYH3JXAH.js → compat-N54KQAGG.js} +3 -3
  55. package/dist-cli/chunks/{config-IORPXBOY.js → config-7ZXR72CY.js} +2 -2
  56. package/dist-cli/chunks/{control-IJVA52FL.js → control-QALBPKIH.js} +2 -2
  57. package/dist-cli/chunks/daemon-HLYIFX53.js +2 -0
  58. package/dist-cli/chunks/{debug-U7A5EU4C.js → debug-UYH3J6U3.js} +3 -3
  59. package/dist-cli/chunks/{desktop-55T7IQER.js → desktop-TM4MENZU.js} +3 -3
  60. package/dist-cli/chunks/{detox-MJIXMF2Z.js → detox-JOQJUBLP.js} +2 -2
  61. package/dist-cli/chunks/{device-PVRAGZPQ.js → device-FYMBNXT2.js} +2 -2
  62. package/dist-cli/chunks/{diagnose-4GDAZJTI.js → diagnose-7WJUXS4O.js} +2 -2
  63. package/dist-cli/chunks/drivers-MNRFJMBA.js +2 -0
  64. package/dist-cli/chunks/{film-P2LE6XM6.js → film-T7CLCOS2.js} +3 -3
  65. package/dist-cli/chunks/flow-UVSIUAFJ.js +2 -0
  66. package/dist-cli/chunks/help-I3LIJA4S.js +2 -0
  67. package/dist-cli/chunks/{hidden-runtime-alias-SS2MFPJT.js → hidden-runtime-alias-BRNXNJQG.js} +2 -2
  68. package/dist-cli/chunks/{home-paths-GE2WICB2.js → home-paths-HHCAAVCG.js} +2 -2
  69. package/dist-cli/chunks/inspect-354EP4YM.js +2 -0
  70. package/dist-cli/chunks/install-desktop-3BH6M4S3.js +2 -0
  71. package/dist-cli/chunks/{login-ZAKDNYE6.js → login-TQAT5LPH.js} +4 -4
  72. package/dist-cli/chunks/{logout-V5QL47PV.js → logout-GDQEZTKP.js} +2 -2
  73. package/dist-cli/chunks/{maestro-DUMTBJA3.js → maestro-QYA3C7DI.js} +3 -3
  74. package/dist-cli/chunks/{maestro-generate-2J36R5WJ.js → maestro-generate-K4MEYSBB.js} +3 -3
  75. package/dist-cli/chunks/{mode-LAVXTH3K.js → mode-SGYFVJ4F.js} +2 -2
  76. package/dist-cli/chunks/optional-demo-registry-FQRZRVLM.js +2 -0
  77. package/dist-cli/chunks/{perf-ZDLZ7WFT.js → perf-HZXIAQPN.js} +2 -2
  78. package/dist-cli/chunks/{record-B6BHP2KY.js → record-GET7EHCQ.js} +3 -3
  79. package/dist-cli/chunks/runtime-ZR4YFU7J.js +2 -0
  80. package/dist-cli/chunks/{screenshot-command-3OMBI6OQ.js → screenshot-command-DQ4SSPVJ.js} +9 -8
  81. package/dist-cli/chunks/{screenshots-capture-EIEG7WBP.js → screenshots-capture-I53ST6HQ.js} +2 -2
  82. package/dist-cli/chunks/{serve-UZE7D7I7.js → serve-F6ADSU46.js} +2 -2
  83. package/dist-cli/chunks/{setup-C7FLHLXZ.js → setup-VLD6A6KK.js} +3 -3
  84. package/dist-cli/chunks/{skills-3RPTVTZ7.js → skills-ZOUVVU2U.js} +2 -2
  85. package/dist-cli/chunks/{storage-MRXCZ5X7.js → storage-WAL7ICBS.js} +2 -2
  86. package/dist-cli/chunks/store-YVNWLTST.js +2 -0
  87. package/dist-cli/chunks/telemetry-HOTMJXDS.js +2 -0
  88. package/dist-cli/chunks/{timeline-6F5MN4BT.js → timeline-L3YLCXES.js} +2 -2
  89. package/dist-cli/chunks/{upgrade-USHBFEFD.js → upgrade-N7KMSLXU.js} +2 -2
  90. package/dist-cli/chunks/upload-GZR6SJIQ.js +2 -0
  91. package/dist-cli/chunks/{version-VK7TXLXO.js → version-BUJFV5ZF.js} +2 -2
  92. package/dist-cli/chunks/{web-5FXZSCMD.js → web-3UOCXNQ6.js} +2 -2
  93. package/dist-cli/chunks/{what-happened-GCE2WS2O.js → what-happened-JJZYWMHI.js} +2 -2
  94. package/dist-lib/agent-daemon-client.cjs +1 -1
  95. package/dist-lib/agent-events.cjs +1 -1
  96. package/dist-lib/agent-identity.cjs +1 -1
  97. package/dist-lib/agent-sessions.cjs +1 -1
  98. package/dist-lib/attached-projects.cjs +1 -1
  99. package/dist-lib/auth/shared-session.cjs +1 -1
  100. package/dist-lib/backend-origin.cjs +1 -1
  101. package/dist-lib/beta.cjs +1 -1
  102. package/dist-lib/beta.mjs +1 -1
  103. package/dist-lib/bridge-constants.cjs +1 -1
  104. package/dist-lib/cli-constants.cjs +1 -1
  105. package/dist-lib/config.cjs +1 -1
  106. package/dist-lib/detox/index.cjs +1 -1
  107. package/dist-lib/dev-bundle-resolution.cjs +1 -1
  108. package/dist-lib/home-paths.cjs +1 -1
  109. package/dist-lib/host/bridge-host.cjs +1 -1
  110. package/dist-lib/host/fetch-proxy-handler.cjs +1 -1
  111. package/dist-lib/host/fetch-proxy-overrides.cjs +1 -1
  112. package/dist-lib/host/fetch-proxy-overrides.mjs +1 -1
  113. package/dist-lib/host/websocket-proxy.cjs +1 -1
  114. package/dist-lib/index.cjs +1 -1
  115. package/dist-lib/jump-to-source-babel.cjs +1 -1
  116. package/dist-lib/menu.cjs +27 -3
  117. package/dist-lib/menu.mjs +27 -3
  118. package/dist-lib/metro.cjs +1 -1
  119. package/dist-lib/profiles.cjs +1 -1
  120. package/dist-lib/render-mode.cjs +1 -1
  121. package/dist-lib/scripts/dev-server-scanner.cjs +1 -1
  122. package/dist-lib/sdk.cjs +1 -1
  123. package/dist-lib/sdk.mjs +1 -1
  124. package/dist-lib/skills.cjs +1 -1
  125. package/dist-lib/vite.cjs +1 -1
  126. package/package.json +1 -1
  127. package/src/menu.ts +26 -0
  128. package/dist-cli/chunks/beta-FZWO5IHA.js +0 -2
  129. package/dist-cli/chunks/chunk-AUOXELFC.js +0 -89
  130. package/dist-cli/chunks/chunk-EP5524NT.js +0 -1
  131. package/dist-cli/chunks/chunk-JI4QHZWI.js +0 -2
  132. package/dist-cli/chunks/chunk-RK7C5U3G.js +0 -1
  133. package/dist-cli/chunks/cli-version-SF2RISK3.js +0 -2
  134. package/dist-cli/chunks/daemon-OOTI5UKF.js +0 -2
  135. package/dist-cli/chunks/drivers-ZFC7LCIG.js +0 -2
  136. package/dist-cli/chunks/flow-NNEJSUCZ.js +0 -2
  137. package/dist-cli/chunks/help-C6UYHCX7.js +0 -2
  138. package/dist-cli/chunks/inspect-QRU6GSC3.js +0 -2
  139. package/dist-cli/chunks/install-desktop-7Q3Q4EDN.js +0 -2
  140. package/dist-cli/chunks/optional-demo-registry-L4MJWR2U.js +0 -2
  141. package/dist-cli/chunks/runtime-PZRJDSB4.js +0 -2
  142. package/dist-cli/chunks/store-FP3OZ75R.js +0 -2
  143. package/dist-cli/chunks/telemetry-HV232CTG.js +0 -2
  144. package/dist-cli/chunks/upload-BKS77SNB.js +0 -2
@@ -1,5 +1,5 @@
1
- /*! sootsim v0.1.243 | (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-TXGYN5YH.js";import{g as A,i as _}from"./chunk-ED4PHTSN.js";import"./chunk-3SDYUIT5.js";import{c as k}from"./chunk-RNBYQ5TF.js";import"./chunk-GUFB26IN.js";import"./chunk-HCE47EED.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.245 | (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-WU5OEQS2.js";import{g as A,i as _}from"./chunk-WGEQ5ERO.js";import"./chunk-JXVG6Q3C.js";import{c as k}from"./chunk-UWQG2IZU.js";import"./chunk-5GUYHQTQ.js";import"./chunk-XN4CFIPA.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.243 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.245 | (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.243 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.245 | (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.243 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.245 | (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.243 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.245 | (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.243 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.245 | (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.243 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.245 | (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.243 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.245 | (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.243 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.245 | (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.243 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.245 | (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.243 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.245 | (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.243 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.245 | (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.243 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.245 | (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.243 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.245 | (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.243 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.245 | (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.243 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.245 | (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.243 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.245 | (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.243 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.245 | (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.243 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.245 | (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.243 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.245 | (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.243 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.245 | (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.243 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.245 | (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.243 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.245 | (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.243 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.245 | (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;
@@ -179,18 +179,42 @@ function debugMenu(state) {
179
179
  return {
180
180
  label: "Debug",
181
181
  items: [
182
+ // both toggles are stateful in the browser, where the open state lives
183
+ // in the same document. electron's menu process cannot see it, so it
184
+ // keeps the plain (stateless) items rather than a permanently
185
+ // unchecked checkbox — same reasoning as the screenshot/3d entries
186
+ // being hidden there. accelerators stay single-registered per surface.
182
187
  {
183
188
  label: "Toggle Devtools",
184
189
  accelerator: "Alt+I",
185
190
  action: "toggle-devtools",
191
+ showInShortcutDocs: true,
192
+ hiddenIn: "browser"
193
+ },
194
+ {
195
+ label: "Toggle Devtools",
196
+ type: "checkbox",
197
+ checked: state.devtoolsOpen,
198
+ accelerator: "Alt+I",
199
+ action: "toggle-devtools",
186
200
  browserAccelerator: true,
187
- showInShortcutDocs: true
201
+ showInShortcutDocs: true,
202
+ hiddenIn: "electron"
188
203
  },
189
204
  {
190
205
  label: "Inspect",
191
206
  accelerator: "CmdOrCtrl+I",
192
207
  action: "toggle-inspect",
193
- browserAccelerator: true
208
+ hiddenIn: "browser"
209
+ },
210
+ {
211
+ label: "Inspect",
212
+ type: "checkbox",
213
+ checked: state.inspectMode,
214
+ accelerator: "CmdOrCtrl+I",
215
+ action: "toggle-inspect",
216
+ browserAccelerator: true,
217
+ hiddenIn: "electron"
194
218
  },
195
219
  { type: "separator" },
196
220
  {
package/dist-lib/menu.mjs CHANGED
@@ -1,4 +1,4 @@
1
- /*! sootsim v0.1.243 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.245 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/menu.ts
4
4
  var SOOTSIM_ENGINE_EVENT_NAME = "sootsim:engine-event";
@@ -146,18 +146,42 @@ function debugMenu(state) {
146
146
  return {
147
147
  label: "Debug",
148
148
  items: [
149
+ // both toggles are stateful in the browser, where the open state lives
150
+ // in the same document. electron's menu process cannot see it, so it
151
+ // keeps the plain (stateless) items rather than a permanently
152
+ // unchecked checkbox — same reasoning as the screenshot/3d entries
153
+ // being hidden there. accelerators stay single-registered per surface.
149
154
  {
150
155
  label: "Toggle Devtools",
151
156
  accelerator: "Alt+I",
152
157
  action: "toggle-devtools",
158
+ showInShortcutDocs: true,
159
+ hiddenIn: "browser"
160
+ },
161
+ {
162
+ label: "Toggle Devtools",
163
+ type: "checkbox",
164
+ checked: state.devtoolsOpen,
165
+ accelerator: "Alt+I",
166
+ action: "toggle-devtools",
153
167
  browserAccelerator: true,
154
- showInShortcutDocs: true
168
+ showInShortcutDocs: true,
169
+ hiddenIn: "electron"
155
170
  },
156
171
  {
157
172
  label: "Inspect",
158
173
  accelerator: "CmdOrCtrl+I",
159
174
  action: "toggle-inspect",
160
- browserAccelerator: true
175
+ hiddenIn: "browser"
176
+ },
177
+ {
178
+ label: "Inspect",
179
+ type: "checkbox",
180
+ checked: state.inspectMode,
181
+ accelerator: "CmdOrCtrl+I",
182
+ action: "toggle-inspect",
183
+ browserAccelerator: true,
184
+ hiddenIn: "electron"
161
185
  },
162
186
  { type: "separator" },
163
187
  {
@@ -1,4 +1,4 @@
1
- /*! sootsim v0.1.243 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.245 | (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.243 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.245 | (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.243 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.245 | (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.243 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.245 | (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.243 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.245 | (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.243 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.245 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // cli/commands/inspect/core.ts
4
4
  function resolveMaxMsFlag(args, fallbackMs) {
@@ -1,4 +1,4 @@
1
- /*! sootsim v0.1.243 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.245 | (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/vite.cjs CHANGED
@@ -1,4 +1,4 @@
1
- /*! sootsim v0.1.243 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.245 | (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.243",
3
+ "version": "0.1.245",
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/src/menu.ts CHANGED
@@ -38,6 +38,8 @@ export interface SootSimMenuState {
38
38
  showTopBar: boolean
39
39
  screenshotMode: boolean
40
40
  threeMode: boolean
41
+ inspectMode: boolean
42
+ devtoolsOpen: boolean
41
43
  alwaysShowLiveWebViews: boolean
42
44
  stayOnTop: boolean
43
45
  scaleMode: SootSimScaleMode
@@ -232,18 +234,42 @@ function debugMenu(state: SootSimMenuState): SootSimMenuDef {
232
234
  return {
233
235
  label: 'Debug',
234
236
  items: [
237
+ // both toggles are stateful in the browser, where the open state lives
238
+ // in the same document. electron's menu process cannot see it, so it
239
+ // keeps the plain (stateless) items rather than a permanently
240
+ // unchecked checkbox — same reasoning as the screenshot/3d entries
241
+ // being hidden there. accelerators stay single-registered per surface.
235
242
  {
236
243
  label: 'Toggle Devtools',
237
244
  accelerator: 'Alt+I',
238
245
  action: 'toggle-devtools',
246
+ showInShortcutDocs: true,
247
+ hiddenIn: 'browser',
248
+ },
249
+ {
250
+ label: 'Toggle Devtools',
251
+ type: 'checkbox',
252
+ checked: state.devtoolsOpen,
253
+ accelerator: 'Alt+I',
254
+ action: 'toggle-devtools',
239
255
  browserAccelerator: true,
240
256
  showInShortcutDocs: true,
257
+ hiddenIn: 'electron',
241
258
  },
242
259
  {
243
260
  label: 'Inspect',
244
261
  accelerator: 'CmdOrCtrl+I',
245
262
  action: 'toggle-inspect',
263
+ hiddenIn: 'browser',
264
+ },
265
+ {
266
+ label: 'Inspect',
267
+ type: 'checkbox',
268
+ checked: state.inspectMode,
269
+ accelerator: 'CmdOrCtrl+I',
270
+ action: 'toggle-inspect',
246
271
  browserAccelerator: true,
272
+ hiddenIn: 'electron',
247
273
  },
248
274
  { type: 'separator' },
249
275
  {
@@ -1,2 +0,0 @@
1
- /*! sootsim v0.1.243 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{a,b,c,d}from"./chunk-QOE3DNO5.js";import"./chunk-HCE47EED.js";export{d as BETA_ASK_HEADLINE,b as BETA_LABEL,c as BETA_TAGLINE,a as IS_BETA};
@@ -1,89 +0,0 @@
1
- /*! sootsim v0.1.243 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{g as k,i as x,l as P,m as v}from"./chunk-ED4PHTSN.js";import{createHash as q}from"node:crypto";import{mkdirSync as G,readFileSync as J,readdirSync as H,unlinkSync as Y,writeFileSync as z}from"node:fs";import{dirname as Q,extname as X,resolve as T}from"node:path";function W(e){let t=e[0]?.toLowerCase()??"toggle";return t!=="on"&&t!=="off"&&t!=="toggle"&&(console.error(` unknown argument: "${t}" (expected on | off | toggle)`),process.exit(1)),t}async function D(e,t,o){let n=k(e,{port:t.port}),r=W(n.positional),d=x({...n,commandTimeoutMs:5e3});try{let l=!!(await P(d,"SootSim.bridges.settings.get"))?.[o.modeKey],m=r==="on"?!0:r==="off"?!1:!l;if(l===m)return console.log(` ${o.displayName}: already ${m?"on":"off"}`),{current:l,target:m,changed:!1};if(!await d.send({type:"evaluate",acquireLock:!0,code:`(async () => {
3
- const modeKey = ${JSON.stringify(o.modeKey)}
4
- const target = ${JSON.stringify(m)}
5
- window.dispatchEvent(new CustomEvent('sootsim:shell-command', {
6
- detail: { type: 'fire-action', id: ${JSON.stringify(o.actionId)} },
7
- }))
8
- const deadline = Date.now() + 1200
9
- while (Date.now() < deadline) {
10
- if (Boolean(window.SootSim?.bridges?.settings?.get?.()?.[modeKey]) === target) {
11
- return true
12
- }
13
- await new Promise((resolve) => setTimeout(resolve, 40))
14
- }
15
- return false
16
- })()`}))throw new Error(`${o.displayName} did not change to ${m?"on":"off"}; the live shell may not support this mode`);return console.log(` ${o.displayName}: ${l?"on":"off"} -> ${m?"on":"off"}`),{current:l,target:m,changed:!0}}finally{d.close()}}var A=12e3,Z=6e5,ee=new Set(["load","seek","play","pause","render"]);async function be(e,t){(e.includes("--help")||e.includes("-h"))&&(console.log(`
17
- sootsim mode three \u2014 toggle the 3d device stage
18
-
19
- usage:
20
- sootsim mode three [on|off|toggle]
21
- sootsim mode three configure [options]
22
- sootsim mode three load <timeline.json>
23
- sootsim mode three seek <time-ms>
24
- sootsim mode three play|pause
25
- sootsim mode three render <timeline.json> --output <dir> [options]
26
-
27
- arguments:
28
- on enable 3d mode
29
- off disable 3d mode
30
- toggle flip the current state (default)
31
-
32
- configure options:
33
- --background <id> set the 3d background
34
- --gradient <stops> custom gradient bg: comma-separated css hex stops,
35
- e.g. "#0a0e1a,#16243f,#05080f" (overrides --background;
36
- evenly spaced, or use "color@offset" for explicit %)
37
- --gradient-angle <deg> custom gradient angle (default 180 = top\u2192bottom)
38
- --colorway <id> set the phone colorway
39
- --script <id> apply a camera preset pose
40
- --progress <0..1> script progress to sample (default: 1)
41
- --animate run the script instead of sampling one frame
42
- --slow run the script slowly when --animate is set
43
- --environment on|off enable or disable environment objects
44
- --env-shape <id> orb | pill | diamond | pane
45
- --env-spread <id> tight | medium | wide
46
- --env-size <id> small | medium | large
47
- --env-color <id> peach | gold | mint | sky | violet
48
- --env-glow on|off enable or disable environment glow
49
- --env-plastic on|off enable or disable environment plastic material
50
- --setting <id> none | room | white-backdrop
51
- --focus on|off enable or disable Focus depth of field
52
- --focus-amount <id> subtle | medium | strong | dramatic
53
- --focus-range <id> tight | balanced | wide
54
- --reset-pose return to the default hero pose before other changes
55
-
56
- render options:
57
- --output <dir> write frame-%05d.png + timeline-render.json
58
- --fps <number> frames per second (default: 30)
59
- --width <px> exact output width (default: 1920)
60
- --height <px> exact output height (default: 1080)
61
- --from <ms> first timeline time (default: 0)
62
- --to <ms> exclusive end time (default: timeline duration)
63
- --overwrite replace this command's existing frames in the dir
64
-
65
- examples:
66
- sootsim mode three
67
- sootsim mode three on
68
- sootsim mode three configure --script hero-arc --background gradient-tide
69
- sootsim mode three configure --environment on --env-shape pane --setting room
70
- sootsim mode three render ./cinematic.json --output ./frames --fps 30
71
- sootsim mode three off
72
- `),process.exit(0));let o=re(e);if(o){await de(o,e,t);return}if(te(e)){await oe(e,t);return}(await D(e,t,{modeKey:"threeMode",displayName:"three-mode",actionId:"toggle-three-mode"})).target&&await ne(e,t)}function te(e){return e[0]==="configure"||e.some(t=>["--background","--gradient","--gradient-angle","--colorway","--script","--progress","--animate","--slow","--environment","--env-shape","--env-spread","--env-size","--env-color","--env-glow","--env-plastic","--setting","--focus","--focus-amount","--focus-range","--reset-pose"].includes(t))}async function oe(e,t){let o=k(e,{port:t.port,stripBooleanFlags:["--animate","--slow","--reset-pose"],stripValueFlags:["--background","--gradient","--gradient-angle","--colorway","--script","--progress","--environment","--env-shape","--env-spread","--env-size","--env-color","--env-glow","--env-plastic","--setting","--focus","--focus-amount","--focus-range"]}),n=le(e),r=x({...o,commandTimeoutMs:A+1e3});try{await j(r);let d=await v(r,"SootSim.bridges.threeMode.configure",n);console.log(` three-mode: configured (${ce(d)})`)}finally{r.close()}}async function ne(e,t){let o=k(e,{port:t.port}),n=x({...o,commandTimeoutMs:A+1e3});try{await j(n)}finally{n.close()}}async function j(e){let t=await e.send({type:"evaluate",code:`(async () => {
73
- const deadline = Date.now() + ${A}
74
- while (Date.now() < deadline) {
75
- const settings = window.SootSim?.bridges?.settings?.get?.()
76
- if (settings && settings.threeMode !== true) {
77
- return { ready: false, disabled: true }
78
- }
79
- const bridge = window.SootSim?.bridges?.threeMode
80
- const state = typeof bridge?.getState === 'function' ? bridge.getState() : null
81
- if (state?.ready === true) return state
82
- await new Promise((resolve) => setTimeout(resolve, 50))
83
- }
84
- const bridge = window.SootSim?.bridges?.threeMode
85
- const state = typeof bridge?.getState === 'function' ? bridge.getState() : null
86
- return state || { ready: false }
87
- })()`});if(t?.ready===!0)return t;throw t?.disabled?new Error("3d mode is off; run `sootsim mode three on` before configure"):new Error("3d mode runtime did not become ready")}function re(e){for(let t=0;t<e.length;t+=1){let o=e[t];if(o==="--sim"||o==="--port"||o==="-p"){t+=1;continue}if(!o.startsWith("-"))return ee.has(o)?o:null}return null}function K(e,t){let o=e.indexOf(t);return o>=0?e[o+1]:void 0}function F(e,t,o,n=0){let r=K(e,t);if(r===void 0)return o;let d=Number.parseFloat(r);if(!Number.isFinite(d)||d<n)throw new Error(`${t} expects a number greater than or equal to ${n}`);return d}function U(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function ie(e,t){let o=X(e).toLowerCase();return t==="recording"?o===".mp4"||o===".m4v"?"video/mp4":"video/webm":o===".jpg"||o===".jpeg"?"image/jpeg":o===".webp"?"image/webp":"image/png"}function C(e,t){if(Array.isArray(e))return e.map(n=>C(n,t));if(!U(e))return e;let o={};for(let[n,r]of Object.entries(e))o[n]=C(r,t);if((o.type==="recording"||o.type==="screenshot")&&typeof o.src=="string"&&!/^(?:blob:|data:|https?:)/i.test(o.src)){let n=T(t,o.src),r=J(n);o.src=`data:${ie(n,o.type)};base64,${r.toString("base64")}`}return o}function se(e){let t=T(e),o=JSON.parse(J(t,"utf8"));return{absolutePath:t,timeline:C(o,Q(t))}}async function ae(e){await v(e,"SootSim.bridges.settings.set","threeMode",!0),await j(e)}async function de(e,t,o){let n=k(t,{port:o.port,commandTimeoutMs:Z,stripBooleanFlags:["--overwrite"],stripValueFlags:["--output","--fps","--width","--height","--from","--to"]}),r=x(n);try{if(await ae(r),e==="seek"){let i=n.positional[1],u=i===void 0?Number.NaN:Number.parseFloat(i);if(!Number.isFinite(u))throw new Error("three-mode seek expects time in ms");let f=await v(r,"SootSim.bridges.threeMode.seek",u);console.log(` three-mode: ${Math.round(f.timeMs)}ms / ${Math.round(f.durationMs)}ms (${f.shotId??"no shot"})`);return}if(e==="play"||e==="pause"){let i=await v(r,`SootSim.bridges.threeMode.${e}`),u=U(i.timeline)?i.timeline:{};console.log(` three-mode: ${e} (${Math.round(Number(u.timeMs??0))}ms)`);return}let d=n.positional[1];if(!d)throw new Error(`three-mode ${e} expects a timeline JSON path`);let g=se(d),l=await v(r,"SootSim.bridges.threeMode.loadTimeline",g.timeline);if(e==="load"){console.log(` three-mode: loaded ${g.absolutePath} (${Math.round(l.durationMs)}ms)`);return}let m=K(t,"--output");if(!m)throw new Error("three-mode render requires --output <dir>");let p=T(m),b=F(t,"--fps",30,.001),y=Math.round(F(t,"--width",1920,1)),B=Math.round(F(t,"--height",1080,1)),M=F(t,"--from",0,0),h=F(t,"--to",l.durationMs,0);if(h<=M||h>l.durationMs)throw new Error(`--to must be greater than --from and at most ${l.durationMs}`);let s=1e3/b,a=Math.ceil((h-M)/s);G(p,{recursive:!0});let c=H(p).filter(i=>/^frame-\d{5}\.png$/.test(i)||i==="timeline-render.json");if(c.length>0&&!t.includes("--overwrite"))throw new Error(`${p} already has timeline frames; pass --overwrite to replace them`);for(let i of c)Y(T(p,i));let S=[],$=4;for(let i=0;i<a;i+=$){let u=Math.min($,a-i),f=M+i*s,V=Math.min(h,f+u*s),N=await v(r,"SootSim.bridges.threeMode.renderFrames",{fps:b,from:f,to:V,width:y,height:B,count:u});if(N.frames.length!==u)throw new Error(`3d renderer returned ${N.frames.length} frames for a ${u}-frame batch`);for(let w of N.frames){let L=i+w.index,I=`frame-${String(L).padStart(5,"0")}.png`,O=w.dataUrl.indexOf(",");if(O<0||!w.dataUrl.slice(0,O).includes("image/png;base64"))throw new Error(`3d renderer returned a non-PNG frame at ${w.timeMs}ms`);let _=Buffer.from(w.dataUrl.slice(O+1),"base64");z(T(p,I),_),S.push({file:I,timeMs:w.timeMs,sha256:q("sha256").update(_).digest("hex"),alpha:w.alpha,phoneCollision:w.phoneCollision})}process.stderr.write(`\r three-mode: rendered ${Math.min(i+u,a)}/${a}`)}process.stderr.write(`
88
- `);let R={version:2,timeline:g.absolutePath,fps:b,from:M,to:h,width:y,height:B,frameCount:a,transparent:S.every(i=>i.alpha.transparentPixels>0),frames:S};z(T(p,"timeline-render.json"),`${JSON.stringify(R,null,2)}
89
- `),console.log(` three-mode: wrote ${a} deterministic RGBA frames to ${p}`)}finally{r.close()}}function le(e){let t=s=>e.find((a,c)=>e[c-1]===s),o={},n=t("--colorway");n&&(o.colorway=n);let r=t("--background");r&&(o.background=r);let d=t("--gradient");if(d){let s=d.split(",").map($=>$.trim()).filter(Boolean),a=s.map(($,R)=>{let[i,u]=$.split("@"),f=u!==void 0?Number.parseFloat(u):s.length>1?R/(s.length-1):0;return f>1&&(f=f/100),Number.isFinite(f)||(f=s.length>1?R/(s.length-1):0),{color:i.trim(),offset:f}}),c=t("--gradient-angle"),S=c===void 0?void 0:Number.parseFloat(c);if(c!==void 0&&!Number.isFinite(S))throw new Error(`--gradient-angle expects a number, got "${c}"`);o.customGradient={stops:a,...S!==void 0?{angleDeg:S}:{}}}let g=t("--setting");if(g){if(g!=="none"&&g!=="room"&&g!=="white-backdrop")throw new Error(`--setting expects none, room, or white-backdrop, got "${g}"`);o.setting=g}let l={},m=E(t("--focus"),"--focus");m!==void 0&&(l.enabled=m);for(let[s,a]of[["--focus-amount","amount"],["--focus-range","range"]]){let c=t(s);c&&(l[a]=c)}Object.keys(l).length>0&&(o.focus=l),e.includes("--reset-pose")&&(o.resetPose=!0);let p=E(t("--environment"),"--environment"),b={},y={};for(let[s,a]of[["--env-shape","shape"],["--env-spread","spread"],["--env-size","size"],["--env-color","color"]]){let c=t(s);c&&(b[a]=c)}let B=E(t("--env-glow"),"--env-glow");B!==void 0&&(y.glow=B);let M=E(t("--env-plastic"),"--env-plastic");M!==void 0&&(y.plastic=M),(p!==void 0||Object.keys(b).length>0||Object.keys(y).length>0)&&(o.environment=p===!1?!1:{pins:b,effects:y});let h=t("--script");if(h){let s=t("--progress"),a=s===void 0?1:Number.parseFloat(s);if(!Number.isFinite(a))throw new Error(`--progress expects a number from 0 to 1, got "${s}"`);o.script={id:h,progress:a,animate:e.includes("--animate"),slow:e.includes("--slow")}}return o}function E(e,t){if(e===void 0)return;let o=e.toLowerCase();if(["on","true","yes","1"].includes(o))return!0;if(["off","false","no","0"].includes(o))return!1;throw new Error(`${t} expects on or off, got "${e}"`)}function ce(e){return[`ready=${!!e.ready}`,`background=${String(e.background??"unknown")}`,`colorway=${String(e.colorway??"unknown")}`,`environment=${e.environmentActive?"on":"off"}`,`setting=${String(e.setting??"none")}`,`focus=${e.focus&&typeof e.focus=="object"&&e.focus.enabled?"on":"off"}`].join(", ")}export{D as a,be as b,j as c,le as d};
@@ -1 +0,0 @@
1
- /*! sootsim v0.1.243 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
@@ -1,2 +0,0 @@
1
- /*! sootsim v0.1.243 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{h as w,j as u,k as m,l}from"./chunk-MO2QVYFW.js";var p="sootsim:settings",v=["errorReporting","colorScheme","reduceMotion","a11yMode","a11yDepth","screenshotCanvas","screenshotBackground","screenshotText","screenshotPose","screenshotDynamicSize","alwaysShowLiveWebViews","agentProvider","onboardingComplete","betaConsentVersion","detailedTelemetry"];function S(){if(typeof window>"u")return null;let e=window.sootsimElectron;return e&&typeof e=="object"?e:null}function g(e){let t={};for(let n of v){if(!(n in e))continue;let r=e[n],o=u[n];o.validate&&!o.validate(r)||o.options&&!o.options.includes(r)||(t[n]=r)}return t}function h(e){let t={};for(let n of v)t[n]=e[n];return t}function _(){if(typeof localStorage>"u")return{};try{let e=localStorage.getItem(p);return e?g(JSON.parse(e)):{}}catch{return{}}}function V(e){if(!(typeof localStorage>"u"))try{localStorage.setItem(p,JSON.stringify(h(e)))}catch{}}function E(){let t=S()?.sharedConfig?.settings;return!t||typeof t!="object"?{}:g(t)}function K(e){let t=S();if(t?.writeSharedConfig)try{t.writeSharedConfig({settings:h(e)})}catch{}}function b(){if(typeof window>"u")return null;let e=window.__sootsimSharedConfig;return e&&typeof e=="object"?e:null}function j(){let e=b()?.settings;return!e||typeof e!="object"?{}:g(e)}function D(e){if(!b())return;let t={settings:h(e)};try{if(globalThis.__sootsimBridgeRequest?.writeSharedConfig?.(t))return}catch{}if(!(typeof fetch>"u"))try{fetch("/__sootsim/shared-config",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t),keepalive:!0}).catch(()=>{})}catch{}}function k(){let e=_(),t=j(),n=E();return{...e,...t,...n}}function R(e){V(e),K(e),D(e)}function C(e){if(typeof window>"u")return()=>{};let t=i=>{if(!(i.key!==p||i.newValue==null))try{e(g(JSON.parse(i.newValue)))}catch{}};window.addEventListener("storage",t);let n=S(),r;n?.onSharedConfigChanged&&(r=n.onSharedConfigChanged(i=>{let d=i?.settings;!d||typeof d!="object"||e(g(d))}));let c=globalThis.__sootsimBridgeRequest?.subscribeSharedConfig?.(i=>{let d=i?.settings;!d||typeof d!="object"||e(g(d))});return()=>{window.removeEventListener("storage",t),r?.(),c?.()}}var M=l(),P=k();for(let e of Object.keys(m()))delete P[e];var s={...M,...P},f=[],a=null;function y(){for(let e of f)e();R(s)}C(e=>{let t={...s},n=!1;for(let[r,o]of Object.entries(e)){let c=r;t[c]!==o&&(t[c]=o,n=!0)}if(n){s=t,a=null;for(let r of f)r()}});var L={get(e){return s[e]},set(e,t){let n=u[e];n.validate&&!n.validate(t)||n.options&&!n.options.includes(t)||s[e]!==t&&(s={...s,[e]:t},e==="deviceModel"&&(a=null),y())},getAll(){return s},apply(e){let t=!1,n={...s};for(let[r,o]of Object.entries(e)){if(o===void 0)continue;let c=r,i=u[c];i&&(i.validate&&!i.validate(o)||i.options&&!i.options.includes(o)||n[c]!==o&&(n[c]=o,t=!0))}t&&(s=n,a=null,y())},reset(){s=l(),a=null,y()},subscribe(e){return f.push(e),()=>{f=f.filter(t=>t!==e)}},getDeviceSpec(){return a||(a=w(s.deviceModel)),a},getA11yMode(){return s.a11yMode},setA11yMode(e){this.set("a11yMode",e)},getInspectMode(){return s.inspectMode},setInspectMode(e){this.set("inspectMode",e)}};export{L as a};
@@ -1 +0,0 @@
1
- /*! sootsim v0.1.243 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
@@ -1,2 +0,0 @@
1
- /*! sootsim v0.1.243 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{a}from"./chunk-JF4J3LFL.js";import"./chunk-HCE47EED.js";export{a as getCliVersion};
@@ -1,2 +0,0 @@
1
- /*! sootsim v0.1.243 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{a,b,c,d,e}from"./chunk-D2AQJY2L.js";import"./chunk-4ZUKMTEH.js";import"./chunk-U3O2ZVZJ.js";import"./chunk-6YFIKQI7.js";import"./chunk-4ZRA4LSB.js";import"./chunk-YJ2PDE4K.js";import"./chunk-CBOYNMNP.js";import"./chunk-3SDYUIT5.js";import"./chunk-RNBYQ5TF.js";import"./chunk-FIDOMJXL.js";import"./chunk-GUFB26IN.js";import"./chunk-JF4J3LFL.js";import"./chunk-QOE3DNO5.js";import"./chunk-MO2QVYFW.js";import"./chunk-HCE47EED.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.243 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import"./chunk-RK7C5U3G.js";import{f as a,g as b,h as c,i as d,j as e,k as f,l as g,m as h,n as i}from"./chunk-RWIXBCIJ.js";import"./chunk-SXIRWCAW.js";import"./chunk-GEJBVV4M.js";import"./chunk-RNBYQ5TF.js";import"./chunk-GUFB26IN.js";import"./chunk-HCE47EED.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.243 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{c,d,e,f,g,h}from"./chunk-3I6TOP3W.js";import"./chunk-4ET5SQJ7.js";import"./chunk-TDA6GMMJ.js";import{c as a,d as b}from"./chunk-PYRQ46AN.js";import"./chunk-IFIE63FU.js";import"./chunk-SZYSZKHI.js";import"./chunk-6D4GB3TT.js";import"./chunk-HQTOG4X4.js";import"./chunk-SP2DEZXG.js";import"./chunk-EP5524NT.js";import"./chunk-RWIXBCIJ.js";import"./chunk-SXIRWCAW.js";import"./chunk-XZ2FVQMY.js";import"./chunk-3TYXB26Z.js";import"./chunk-GEJBVV4M.js";import"./chunk-5G3LJUYE.js";import"./chunk-EGQBLGHM.js";import"./chunk-TXGYN5YH.js";import"./chunk-ED4PHTSN.js";import"./chunk-LRWFVZOL.js";import"./chunk-4ZUKMTEH.js";import"./chunk-U3O2ZVZJ.js";import"./chunk-YJ2PDE4K.js";import"./chunk-CBOYNMNP.js";import"./chunk-3SDYUIT5.js";import"./chunk-RNBYQ5TF.js";import"./chunk-FIDOMJXL.js";import"./chunk-GUFB26IN.js";import"./chunk-JI4QHZWI.js";import"./chunk-MO2QVYFW.js";import"./chunk-HCE47EED.js";export{e as discoverSootsimUrl,c as getLastFlowPreviewUploadResult,d as getLastFlowTraceSteps,g as hoistLeadingSimFlag,a as parseFlowFile,f as runFlowPlayback,h as runMaestroAuthoring,b as validateFlowFile};
@@ -1,2 +0,0 @@
1
- /*! sootsim v0.1.243 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{a,b,c}from"./chunk-6YFIKQI7.js";import"./chunk-4ZRA4LSB.js";import"./chunk-YJ2PDE4K.js";import"./chunk-CBOYNMNP.js";import"./chunk-3SDYUIT5.js";import"./chunk-RNBYQ5TF.js";import"./chunk-FIDOMJXL.js";import"./chunk-GUFB26IN.js";import"./chunk-JF4J3LFL.js";import"./chunk-QOE3DNO5.js";import"./chunk-MO2QVYFW.js";import"./chunk-HCE47EED.js";export{c as printCommandHelp,b as printGroupHelp,a as printHelp};
@@ -1,2 +0,0 @@
1
- /*! sootsim v0.1.243 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{j as a,k as b}from"./chunk-PYRQ46AN.js";import"./chunk-IFIE63FU.js";import"./chunk-HQTOG4X4.js";import"./chunk-SP2DEZXG.js";import"./chunk-EP5524NT.js";import"./chunk-RWIXBCIJ.js";import"./chunk-SXIRWCAW.js";import"./chunk-XZ2FVQMY.js";import"./chunk-3TYXB26Z.js";import"./chunk-GEJBVV4M.js";import"./chunk-5G3LJUYE.js";import"./chunk-EGQBLGHM.js";import"./chunk-TXGYN5YH.js";import"./chunk-ED4PHTSN.js";import"./chunk-LRWFVZOL.js";import"./chunk-YJ2PDE4K.js";import"./chunk-CBOYNMNP.js";import"./chunk-3SDYUIT5.js";import"./chunk-RNBYQ5TF.js";import"./chunk-FIDOMJXL.js";import"./chunk-GUFB26IN.js";import"./chunk-JI4QHZWI.js";import"./chunk-MO2QVYFW.js";import"./chunk-HCE47EED.js";export{a as printShellPerfReport,b as runInspect};
@@ -1,2 +0,0 @@
1
- /*! sootsim v0.1.243 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{a}from"./chunk-J45AZS5J.js";import"./chunk-SXIRWCAW.js";import"./chunk-FSKOS7WC.js";import"./chunk-HCE47EED.js";export{a as runInstallDesktop};
@@ -1,2 +0,0 @@
1
- /*! sootsim v0.1.243 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{a,b}from"./chunk-5G3LJUYE.js";import"./chunk-HCE47EED.js";export{a as loadOptionalDemoApps,b as optionalDemoAppsSync};
@@ -1,2 +0,0 @@
1
- /*! sootsim v0.1.243 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{a}from"./chunk-SUJVPDRY.js";import"./chunk-YGZYZ5PG.js";import"./chunk-ED4PHTSN.js";import"./chunk-3SDYUIT5.js";import"./chunk-RNBYQ5TF.js";import"./chunk-GUFB26IN.js";import"./chunk-HCE47EED.js";export{a as runRuntime};
@@ -1,2 +0,0 @@
1
- /*! sootsim v0.1.243 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{a}from"./chunk-JI4QHZWI.js";import"./chunk-MO2QVYFW.js";import"./chunk-HCE47EED.js";export{a as settingsStore};
@@ -1,2 +0,0 @@
1
- /*! sootsim v0.1.243 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{a,b}from"./chunk-4ZUKMTEH.js";import"./chunk-U3O2ZVZJ.js";import"./chunk-GUFB26IN.js";import"./chunk-HCE47EED.js";export{b as flushCliTelemetry,a as trackCliEvent};
@@ -1,2 +0,0 @@
1
- /*! sootsim v0.1.243 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{e as a,f as b,g as c}from"./chunk-SZYSZKHI.js";import"./chunk-6D4GB3TT.js";import"./chunk-XZ2FVQMY.js";import"./chunk-3TYXB26Z.js";import"./chunk-GEJBVV4M.js";import"./chunk-ED4PHTSN.js";import"./chunk-4ZUKMTEH.js";import"./chunk-U3O2ZVZJ.js";import"./chunk-3SDYUIT5.js";import"./chunk-RNBYQ5TF.js";import"./chunk-GUFB26IN.js";import"./chunk-HCE47EED.js";export{a as resolveDefaultUploadOrigin,b as resolvePublicPreviewOrigin,c as runUpload};