sootsim 0.1.218 → 0.1.220

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 (150) hide show
  1. package/README.md +5 -3
  2. package/detox/index.ts +6 -7
  3. package/dist-cli/bin.js +4 -4
  4. package/dist-cli/chunks/{agent-TQJDQNML.js → agent-LCKEPMVH.js} +2 -2
  5. package/dist-cli/chunks/{agent-wrapper-OAOFXHX2.js → agent-wrapper-ND5JHQSI.js} +2 -2
  6. package/dist-cli/chunks/{app-fonts-4VPAP3RZ.js → app-fonts-N2W5BQXE.js} +2 -2
  7. package/dist-cli/chunks/{assert-DKNRGH4M.js → assert-O3QO4ZFV.js} +2 -2
  8. package/dist-cli/chunks/{auth-ZYOAQEI2.js → auth-7VXPQOZP.js} +2 -2
  9. package/dist-cli/chunks/beta-ZIOECOJB.js +2 -0
  10. package/dist-cli/chunks/{camera-BJCRYG27.js → camera-OROQGFMH.js} +2 -2
  11. package/dist-cli/chunks/chunk-3HJXCSYI.js +119 -0
  12. package/dist-cli/chunks/{chunk-SXS5SPIZ.js → chunk-3ZWOQPLC.js} +1 -1
  13. package/dist-cli/chunks/{chunk-Q7U5TPQN.js → chunk-4JSQTD75.js} +1 -1
  14. package/dist-cli/chunks/{chunk-RZMI7IKL.js → chunk-64GMEXIP.js} +2 -2
  15. package/dist-cli/chunks/{chunk-JDCABF7Y.js → chunk-6HBN4KIM.js} +2 -2
  16. package/dist-cli/chunks/{chunk-B4KB5TBV.js → chunk-7TOHX4IF.js} +1 -1
  17. package/dist-cli/chunks/chunk-AMUOGO6F.js +1 -0
  18. package/dist-cli/chunks/{chunk-YMFQOXT4.js → chunk-BI3I5X3U.js} +1 -1
  19. package/dist-cli/chunks/{chunk-XB6FCXX3.js → chunk-BXNMPK4X.js} +2 -2
  20. package/dist-cli/chunks/{chunk-OTCJCVFR.js → chunk-EFLOJBBN.js} +3 -3
  21. package/dist-cli/chunks/{chunk-T2NAWDMZ.js → chunk-F5XBOFGK.js} +2 -2
  22. package/dist-cli/chunks/{chunk-FEMAFOUH.js → chunk-FRQOTDD6.js} +2 -2
  23. package/dist-cli/chunks/{chunk-F5H6XTMN.js → chunk-GBALEYV4.js} +1 -1
  24. package/dist-cli/chunks/{chunk-Q7K5GJR4.js → chunk-GWQWCFMR.js} +2 -2
  25. package/dist-cli/chunks/{chunk-IKZ4Z6ND.js → chunk-H7EGEWCF.js} +1 -1
  26. package/dist-cli/chunks/{chunk-AY5S4CWZ.js → chunk-HAXE5SZL.js} +1 -1
  27. package/dist-cli/chunks/{chunk-FAUOGIHF.js → chunk-J3QE2UZI.js} +1 -1
  28. package/dist-cli/chunks/{chunk-NN7XOWXY.js → chunk-JMXBQ4RD.js} +3 -3
  29. package/dist-cli/chunks/{chunk-CMGPYPUE.js → chunk-KJVNP5B5.js} +2 -2
  30. package/dist-cli/chunks/{chunk-24FHNNST.js → chunk-KZUGDZ3Q.js} +6 -6
  31. package/dist-cli/chunks/{chunk-MW3G72KG.js → chunk-NPK2TDEV.js} +91 -14
  32. package/dist-cli/chunks/{chunk-73WAFGRP.js → chunk-NRHZHQOH.js} +2 -2
  33. package/dist-cli/chunks/{chunk-6WWKUDWP.js → chunk-OBWXIGPP.js} +2 -2
  34. package/dist-cli/chunks/{chunk-AK4CONMS.js → chunk-OCEYXYKG.js} +2 -2
  35. package/dist-cli/chunks/{chunk-ZJI2JP7F.js → chunk-PJ76I3KZ.js} +1 -1
  36. package/dist-cli/chunks/{chunk-V64N734Y.js → chunk-PWLK4BGI.js} +2 -2
  37. package/dist-cli/chunks/{chunk-TGXLBFTC.js → chunk-RIB5CQ34.js} +1 -1
  38. package/dist-cli/chunks/{chunk-CRPOEKYT.js → chunk-RTZNRPD4.js} +3 -3
  39. package/dist-cli/chunks/{chunk-7NP5BWIH.js → chunk-RWJM23VH.js} +1 -1
  40. package/dist-cli/chunks/{chunk-EEUNNW2P.js → chunk-S6XSCI45.js} +1 -1
  41. package/dist-cli/chunks/{chunk-QWJG2WVA.js → chunk-TEFCJZH5.js} +1 -1
  42. package/dist-cli/chunks/{chunk-LIR2VPPJ.js → chunk-TH7ODXC5.js} +9 -9
  43. package/dist-cli/chunks/{chunk-4DLUGQXQ.js → chunk-U3OSSCTT.js} +3 -3
  44. package/dist-cli/chunks/{chunk-AHTGZMT4.js → chunk-UHEKB33X.js} +2 -2
  45. package/dist-cli/chunks/{chunk-DVZVP32W.js → chunk-UODAA57Q.js} +2 -2
  46. package/dist-cli/chunks/{chunk-Z4QP44SI.js → chunk-UXLMOEFU.js} +2 -2
  47. package/dist-cli/chunks/{chunk-TNEHHCMZ.js → chunk-VCLV5GYE.js} +2 -2
  48. package/dist-cli/chunks/chunk-VQ4VGI36.js +1 -0
  49. package/dist-cli/chunks/{chunk-2HJU3NAO.js → chunk-XHPOQKUA.js} +1 -1
  50. package/dist-cli/chunks/{chunk-VOZZ62OJ.js → chunk-XKOYH7ES.js} +1 -1
  51. package/dist-cli/chunks/{chunk-L5HYRG4P.js → chunk-YRHLQY6J.js} +2 -2
  52. package/dist-cli/chunks/{chunk-CJHPCUUV.js → chunk-ZU6ECPCC.js} +1 -1
  53. package/dist-cli/chunks/{chunk-KLBOD2JL.js → chunk-ZW5IAKXC.js} +2 -2
  54. package/dist-cli/chunks/cli-version-MY4N7YDM.js +2 -0
  55. package/dist-cli/chunks/{compat-IETPHSZ3.js → compat-NRYECFCC.js} +3 -3
  56. package/dist-cli/chunks/{config-BOOBJ25W.js → config-4KKKEHH2.js} +2 -2
  57. package/dist-cli/chunks/{control-U52Q4YES.js → control-ZH7X66II.js} +2 -2
  58. package/dist-cli/chunks/daemon-6QQWVRFD.js +2 -0
  59. package/dist-cli/chunks/{debug-X4AW6CXJ.js → debug-Z66GNDYA.js} +3 -3
  60. package/dist-cli/chunks/{desktop-HHREMDE2.js → desktop-DO2BQKM4.js} +3 -3
  61. package/dist-cli/chunks/{detox-AXETJDTZ.js → detox-66YMXFQ5.js} +2 -2
  62. package/dist-cli/chunks/{device-B7PBIMER.js → device-KPQXKN5R.js} +2 -2
  63. package/dist-cli/chunks/{diagnose-7YEDF42J.js → diagnose-OMCHVX2X.js} +2 -2
  64. package/dist-cli/chunks/drivers-T2AZY5KL.js +2 -0
  65. package/dist-cli/chunks/{film-XQMAOELQ.js → film-PV6DPBRX.js} +3 -3
  66. package/dist-cli/chunks/flow-BCJH7MUK.js +2 -0
  67. package/dist-cli/chunks/help-KRIPS56R.js +2 -0
  68. package/dist-cli/chunks/{home-paths-I3NOFS6P.js → home-paths-LGQZZOPD.js} +2 -2
  69. package/dist-cli/chunks/inspect-3XG2QTVU.js +2 -0
  70. package/dist-cli/chunks/install-desktop-SH73YM3O.js +2 -0
  71. package/dist-cli/chunks/{login-O4ZPWWEU.js → login-QQH2UU2S.js} +4 -4
  72. package/dist-cli/chunks/{logout-REEPRXWZ.js → logout-KMGAWWAS.js} +2 -2
  73. package/dist-cli/chunks/{maestro-OCUCS5DY.js → maestro-IKINYBBR.js} +3 -3
  74. package/dist-cli/chunks/{maestro-generate-VHUHJFHR.js → maestro-generate-NWVVHDBL.js} +3 -3
  75. package/dist-cli/chunks/{mode-T24V4RZ4.js → mode-T576L6ZK.js} +2 -2
  76. package/dist-cli/chunks/optional-demo-registry-2F3PLJXV.js +2 -0
  77. package/dist-cli/chunks/{perf-ZUER6TVQ.js → perf-TRPZNIQH.js} +2 -2
  78. package/dist-cli/chunks/{record-XDKPMUBK.js → record-O5HUQAK4.js} +3 -3
  79. package/dist-cli/chunks/runtime-RLXYAF2A.js +2 -0
  80. package/dist-cli/chunks/{screenshot-command-MMUGPJ4I.js → screenshot-command-5FI7RD5L.js} +3 -3
  81. package/dist-cli/chunks/screenshots-capture-RLEAPJ45.js +41 -0
  82. package/dist-cli/chunks/{serve-BCATAS4S.js → serve-4SIWGY4S.js} +3 -3
  83. package/dist-cli/chunks/{setup-LXPQLQ6I.js → setup-LDHVGPS2.js} +9 -9
  84. package/dist-cli/chunks/{skills-OOPLWNI2.js → skills-CCIOVHHV.js} +2 -2
  85. package/dist-cli/chunks/{storage-E7MGHPIG.js → storage-HV7PNB7R.js} +2 -2
  86. package/dist-cli/chunks/store-DF56QJJG.js +2 -0
  87. package/dist-cli/chunks/telemetry-OFJVUJ34.js +2 -0
  88. package/dist-cli/chunks/{timeline-4AN6A5CV.js → timeline-NZY4TIYS.js} +2 -2
  89. package/dist-cli/chunks/upgrade-3SRHX5MN.js +4 -0
  90. package/dist-cli/chunks/upload-ZKKGG3CU.js +2 -0
  91. package/dist-cli/chunks/{version-LI2X5HLA.js → version-EWVUUOUL.js} +2 -2
  92. package/dist-cli/chunks/web-OT6OKUVX.js +2 -0
  93. package/dist-cli/chunks/{what-happened-2NTKQ4AT.js → what-happened-K2NQG7LZ.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 +53 -7
  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 +14 -2
  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 +1 -1
  117. package/dist-lib/menu.mjs +1 -1
  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 +178 -22
  125. package/dist-lib/vite.cjs +1 -1
  126. package/package.json +1 -1
  127. package/src/host/bridge-host.ts +21 -1
  128. package/src/skills/builtin/a11y-review.ts +4 -1
  129. package/src/skills/builtin/perf-profile.ts +4 -1
  130. package/src/skills/builtin/screenshot-all.ts +4 -1
  131. package/src/skills/builtin/visual-diff.ts +4 -1
  132. package/dist-cli/chunks/beta-HL46FNX3.js +0 -2
  133. package/dist-cli/chunks/chunk-BZRIJJIK.js +0 -1
  134. package/dist-cli/chunks/chunk-FP3DRAKI.js +0 -119
  135. package/dist-cli/chunks/chunk-OUZAVYUG.js +0 -1
  136. package/dist-cli/chunks/cli-version-5FG6LIHX.js +0 -2
  137. package/dist-cli/chunks/daemon-EJDBU2UY.js +0 -2
  138. package/dist-cli/chunks/drivers-325S27FC.js +0 -2
  139. package/dist-cli/chunks/flow-V2SWGBAR.js +0 -2
  140. package/dist-cli/chunks/help-F4VH4LXF.js +0 -2
  141. package/dist-cli/chunks/inspect-NY5VGZNC.js +0 -2
  142. package/dist-cli/chunks/install-desktop-X7SXH7IN.js +0 -2
  143. package/dist-cli/chunks/optional-demo-registry-HPLGNZCO.js +0 -2
  144. package/dist-cli/chunks/runtime-4A24ALGX.js +0 -2
  145. package/dist-cli/chunks/screenshots-capture-OM6BE572.js +0 -41
  146. package/dist-cli/chunks/store-3DU64I7C.js +0 -2
  147. package/dist-cli/chunks/telemetry-AKRLP3AR.js +0 -2
  148. package/dist-cli/chunks/upgrade-FRBWFDPI.js +0 -4
  149. package/dist-cli/chunks/upload-XGUWNMYV.js +0 -2
  150. package/dist-cli/chunks/web-UDCVLGPU.js +0 -2
@@ -1,5 +1,5 @@
1
- /*! sootsim v0.1.218 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{a as g,b as k}from"./chunk-F5H6XTMN.js";import{b as S,c as x}from"./chunk-24FHNNST.js";import{a as w}from"./chunk-Q7K5GJR4.js";import"./chunk-TNEHHCMZ.js";import"./chunk-RZMI7IKL.js";import"./chunk-73WAFGRP.js";import"./chunk-FP3DRAKI.js";import"./chunk-XB6FCXX3.js";import"./chunk-Q7U5TPQN.js";import"./chunk-CJHPCUUV.js";import{H as v,M as f,O as m,l as b}from"./chunk-YMFQOXT4.js";import"./chunk-SXS5SPIZ.js";import"./chunk-TGXLBFTC.js";import"./chunk-IKZ4Z6ND.js";import"./chunk-EEUNNW2P.js";import{existsSync as r,mkdirSync as j,readFileSync as d,readdirSync as I,writeFileSync as D}from"fs";import{basename as p,dirname as y,join as i,relative as c,resolve as h}from"path";var T=["bun","pnpm","npm"];async function pe(n){(n.includes("--help")||n.includes("-h"))&&(console.log(`
1
+ /*! sootsim v0.1.220 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
+ import{a as g,b as k}from"./chunk-GBALEYV4.js";import{b as S,c as x}from"./chunk-KZUGDZ3Q.js";import{a as w}from"./chunk-GWQWCFMR.js";import"./chunk-VCLV5GYE.js";import"./chunk-64GMEXIP.js";import"./chunk-NRHZHQOH.js";import"./chunk-3HJXCSYI.js";import"./chunk-BXNMPK4X.js";import"./chunk-4JSQTD75.js";import"./chunk-ZU6ECPCC.js";import{H as v,M as f,O as m,l as b}from"./chunk-BI3I5X3U.js";import"./chunk-3ZWOQPLC.js";import"./chunk-RIB5CQ34.js";import"./chunk-H7EGEWCF.js";import"./chunk-S6XSCI45.js";import{existsSync as r,mkdirSync as j,readFileSync as d,readdirSync as I,writeFileSync as D}from"fs";import{basename as p,dirname as y,join as i,relative as c,resolve as h}from"path";var T=["bun","pnpm","npm"];async function pe(n){(n.includes("--help")||n.includes("-h"))&&(console.log(`
3
3
  sootsim setup \u2014 set up this machine for SootSim
4
4
 
5
5
  usage:
@@ -19,15 +19,15 @@ SootSim does not need to be installed in each app, and it does not need an iOS
19
19
  native build. Start Metro/Expo/One the way you already do, then run
20
20
  \`sootsim open\`.
21
21
 
22
- If you do not have the CLI installed yet, bootstrap with \`npx sootsim\` and
23
- follow the guided setup.
24
- `),process.exit(0));let e=_(n);r(e.appDir)||(console.error(` directory not found: ${e.appDir}`),process.exit(1)),V(e);let o=await L(e),t=await F(e);q(e.appDir);let s=await Z(e);return ee(o),w({event:"cli_setup_guided",properties:{package_manager:o,config_created_now:t,daemon_installed_now:s,node_pin_count:M(e.appDir).length,from_welcome:e.fromWelcome}}),await te(e,s),{daemonInstalledNow:s}}function E(){let n=S(),e=f(),o=v();return{daemonSupported:n.supported,daemonInstalled:n.installed,daemonRunning:!!(e&&m(e)),runtimeInstalled:!!(o&&r(b(o)))}}function de(n=E()){return!n.daemonInstalled}function _(n){let e=n.indexOf("--app");return{dryRun:n.includes("--dry-run"),yes:n.includes("--yes")||n.includes("-y"),fromWelcome:n.includes("--from-welcome"),appDir:e!==-1&&n[e+1]?h(n[e+1]):process.cwd()}}function V(n){let e=n.fromWelcome?"welcome to sootsim":"sootsim setup";console.log(`
22
+ If you do not have the CLI installed yet, bootstrap with:
23
+ \`curl -fsSL https://sootsim.com/install.sh | sh\`
24
+ `),process.exit(0));let e=_(n);r(e.appDir)||(console.error(` directory not found: ${e.appDir}`),process.exit(1)),L(e);let o=await V(e),t=await F(e);q(e.appDir);let s=await Z(e);return ee(o),w({event:"cli_setup_guided",properties:{package_manager:o,config_created_now:t,daemon_installed_now:s,node_pin_count:M(e.appDir).length,from_welcome:e.fromWelcome}}),await te(e,s),{daemonInstalledNow:s}}function E(){let n=S(),e=f(),o=v();return{daemonSupported:n.supported,daemonInstalled:n.installed,daemonRunning:!!(e&&m(e)),runtimeInstalled:!!(o&&r(b(o)))}}function de(n=E()){return!n.daemonInstalled}function _(n){let e=n.indexOf("--app");return{dryRun:n.includes("--dry-run"),yes:n.includes("--yes")||n.includes("-y"),fromWelcome:n.includes("--from-welcome"),appDir:e!==-1&&n[e+1]?h(n[e+1]):process.cwd()}}function L(n){let e=n.fromWelcome?"welcome to sootsim":"sootsim setup";console.log(`
25
25
  ${e}
26
26
 
27
27
  Recommended install path:
28
- npx sootsim
28
+ curl -fsSL https://sootsim.com/install.sh | sh
29
29
 
30
- Then install the global CLI so you can use bare \`sootsim\` everywhere:
30
+ Or install the CLI manually, then run \`sootsim setup\`:
31
31
  bun add -g sootsim
32
32
  pnpm add -g sootsim
33
33
  npm i -g sootsim
@@ -40,7 +40,7 @@ follow the guided setup.
40
40
 
41
41
  No iOS native build is needed. Run Metro, Expo, or One normally; SootSim
42
42
  loads that dev server directly.
43
- `)}async function L(n){let e=W(n.appDir),o=A(e);if(console.log(" package manager:"),n.yes)return console.log(` ${e} (detected)`),e;let t=await k("preferred package manager for app commands?",o.map(a=>a===e?`${a} (detected)`:a)),s=o[t]??e;return console.log(` using ${s} for examples only; SootSim stays outside the app`),s}function W(n){let e=h(n);for(;;){if(r(i(e,"bun.lock"))||r(i(e,"bun.lockb")))return"bun";if(r(i(e,"pnpm-lock.yaml")))return"pnpm";if(r(i(e,"package-lock.json")))return"npm";let o=y(e);if(o===e)return"npm";e=o}}function A(n){return[n,...T.filter(e=>e!==n)]}async function F(n){let e=B(n.appDir);if(e)return console.log(`
43
+ `)}async function V(n){let e=W(n.appDir),o=A(e);if(console.log(" package manager:"),n.yes)return console.log(` ${e} (detected)`),e;let t=await k("preferred package manager for app commands?",o.map(a=>a===e?`${a} (detected)`:a)),s=o[t]??e;return console.log(` using ${s} for examples only; SootSim stays outside the app`),s}function W(n){let e=h(n);for(;;){if(r(i(e,"bun.lock"))||r(i(e,"bun.lockb")))return"bun";if(r(i(e,"pnpm-lock.yaml")))return"pnpm";if(r(i(e,"package-lock.json")))return"npm";let o=y(e);if(o===e)return"npm";e=o}}function A(n){return[n,...T.filter(e=>e!==n)]}async function F(n){let e=B(n.appDir);if(e)return console.log(`
44
44
  config:`),console.log(` already present: ${c(process.cwd(),e)||e}`),!1;let o=J(n.appDir),t=i(n.appDir,`sootsim.config.${o}`);return console.log(`
45
45
  config:`),console.log(` recommended scaffold: ${c(process.cwd(),t)||t}`),console.log(` emits ${o==="ts"?"TypeScript":"plain JS"} so blank Expo apps do not need extra TypeScript dependencies.`),n.dryRun?(console.log(" would create the config scaffold"),!1):await R("create the config scaffold?",!0,n)?(K(t,o),console.log(` created ${c(process.cwd(),t)||t}`),!0):!1}function B(n){for(let e of["ts","js"]){let o=i(n,`sootsim.config.${e}`);if(r(o))return o}return null}function J(n){return G(n)?"ts":"js"}function G(n){let e=Y(n);if(e&&U(e))return!0;for(let o of["tsconfig.json","tsconfig.app.json","tsconfig.node.json","app.config.ts","app.config.tsx","metro.config.ts","metro.config.tsx","vite.config.ts","vite.config.tsx","babel.config.ts","expo-env.d.ts","index.ts","index.tsx","App.ts","App.tsx"])if(r(i(n,o)))return!0;for(let o of["app","src","pages"])if(C(i(n,o)))return!0;return!1}function Y(n){let e=i(n,"package.json");if(!r(e))return null;try{let o=JSON.parse(d(e,"utf8"));return o&&typeof o=="object"?o:null}catch{return null}}function U(n){return[l(n,"dependencies"),l(n,"devDependencies"),l(n,"peerDependencies")].some(o=>!!(u(o,"typescript")||u(o,"@types/react")||u(o,"@types/react-native")))}function C(n){if(!r(n))return!1;try{for(let e of I(n,{withFileTypes:!0})){let o=i(n,e.name);if(e.isDirectory()){if(e.name==="node_modules"||e.name.startsWith("."))continue;if(C(o))return!0;continue}if(e.isFile()&&(e.name.endsWith(".ts")||e.name.endsWith(".tsx")))return!0}}catch{return!1}return!1}function K(n,e){let o=e==="ts"?`import { defineConfig } from 'sootsim/config'
46
46
 
@@ -94,4 +94,4 @@ module.exports = {
94
94
  4. inspect and drive it:
95
95
  sootsim describe
96
96
  sootsim do tap-text "Sign in"
97
- `)}function N(n,e){switch(n){case"bun":return`bunx ${e}`;case"pnpm":return`pnpm exec ${e}`;case"npm":return`npx ${e}`}}function ne(n,e){switch(n){case"bun":return`bun run ${e}`;case"pnpm":return`pnpm run ${e}`;case"npm":return`npm run ${e}`}}function oe(n){switch(n){case"bun":return"bun add -g sootsim";case"pnpm":return"pnpm add -g sootsim";case"npm":return"npm i -g sootsim"}}async function te(n,e){if(!e||n.dryRun)return;if(console.log(" last step:"),!process.stdin.isTTY){console.log(" run `sootsim open` after your Metro/Expo/One server is up");return}if(!await g("I'll run `sootsim open` for you now?",!0)){console.log(" later: sootsim open");return}let{runOpenCommand:o}=await import("./control-U52Q4YES.js");await o([],{port:7668})}async function R(n,e,o){return o.yes?!0:process.stdin.isTTY?g(n,e):(console.log(` ${n} ${e?"[Y/n]":"[y/N]"} n (non-interactive; pass --yes to accept)`),!1)}export{J as detectConfigScaffoldExt,M as detectNodeVersionPins,W as detectPreferredPackageManager,E as readMachineSetupStatus,pe as runSetup,de as shouldRunSetupForBareCommand};
97
+ `)}function N(n,e){switch(n){case"bun":return`bunx ${e}`;case"pnpm":return`pnpm exec ${e}`;case"npm":return`npx ${e}`}}function ne(n,e){switch(n){case"bun":return`bun run ${e}`;case"pnpm":return`pnpm run ${e}`;case"npm":return`npm run ${e}`}}function oe(n){switch(n){case"bun":return"bun add -g sootsim";case"pnpm":return"pnpm add -g sootsim";case"npm":return"npm i -g sootsim"}}async function te(n,e){if(!e||n.dryRun)return;if(console.log(" last step:"),!process.stdin.isTTY){console.log(" run `sootsim open` after your Metro/Expo/One server is up");return}if(!await g("I'll run `sootsim open` for you now?",!0)){console.log(" later: sootsim open");return}let{runOpenCommand:o}=await import("./control-ZH7X66II.js");await o([],{port:7668})}async function R(n,e,o){return o.yes?!0:process.stdin.isTTY?g(n,e):(console.log(` ${n} ${e?"[Y/n]":"[y/N]"} n (non-interactive; pass --yes to accept)`),!1)}export{J as detectConfigScaffoldExt,M as detectNodeVersionPins,W as detectPreferredPackageManager,E as readMachineSetupStatus,pe as runSetup,de as shouldRunSetupForBareCommand};
@@ -1,5 +1,5 @@
1
- /*! sootsim v0.1.218 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import"./chunk-EEUNNW2P.js";import*as i from"fs";import*as I from"os";import*as a from"path";import{fileURLToPath as h}from"url";function $(){try{let t=h(import.meta.resolve("sootsim/package.json"));return a.join(a.dirname(t),"skills")}catch{let t=a.dirname(h(import.meta.url));return a.resolve(t,"../../skills")}}var d=$(),w=new Set(["all","codex","claude"]);function S(){console.log(`sootsim skill
1
+ /*! sootsim v0.1.220 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
+ import"./chunk-S6XSCI45.js";import*as i from"fs";import*as I from"os";import*as a from"path";import{fileURLToPath as h}from"url";function $(){try{let t=h(import.meta.resolve("sootsim/package.json"));return a.join(a.dirname(t),"skills")}catch{let t=a.dirname(h(import.meta.url));return a.resolve(t,"../../skills")}}var d=$(),w=new Set(["all","codex","claude"]);function S(){console.log(`sootsim skill
3
3
 
4
4
  install and inspect bundled SootSim agent skills.
5
5
 
@@ -1,5 +1,5 @@
1
- /*! sootsim v0.1.218 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{k as f}from"./chunk-NN7XOWXY.js";import"./chunk-V64N734Y.js";import"./chunk-L5HYRG4P.js";import"./chunk-FEMAFOUH.js";import"./chunk-OUZAVYUG.js";import"./chunk-AY5S4CWZ.js";import"./chunk-B4KB5TBV.js";import"./chunk-FAUOGIHF.js";import"./chunk-CMGPYPUE.js";import"./chunk-7NP5BWIH.js";import"./chunk-AHTGZMT4.js";import{a as t,b as n,c as l,d as c,e as a}from"./chunk-MW3G72KG.js";import"./chunk-2HJU3NAO.js";import"./chunk-ZJI2JP7F.js";import"./chunk-QWJG2WVA.js";import"./chunk-6WWKUDWP.js";import"./chunk-FP3DRAKI.js";import"./chunk-XB6FCXX3.js";import"./chunk-Q7U5TPQN.js";import"./chunk-CJHPCUUV.js";import"./chunk-YMFQOXT4.js";import"./chunk-IKZ4Z6ND.js";import"./chunk-EEUNNW2P.js";function p(){console.log(`
1
+ /*! sootsim v0.1.220 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
+ import{k as f}from"./chunk-JMXBQ4RD.js";import"./chunk-PWLK4BGI.js";import"./chunk-YRHLQY6J.js";import"./chunk-FRQOTDD6.js";import"./chunk-VQ4VGI36.js";import"./chunk-HAXE5SZL.js";import"./chunk-7TOHX4IF.js";import"./chunk-J3QE2UZI.js";import"./chunk-KJVNP5B5.js";import"./chunk-RWJM23VH.js";import"./chunk-UHEKB33X.js";import{a as t,b as n,c as l,d as c,e as a}from"./chunk-NPK2TDEV.js";import"./chunk-XHPOQKUA.js";import"./chunk-PJ76I3KZ.js";import"./chunk-TEFCJZH5.js";import"./chunk-OBWXIGPP.js";import"./chunk-3HJXCSYI.js";import"./chunk-BXNMPK4X.js";import"./chunk-4JSQTD75.js";import"./chunk-ZU6ECPCC.js";import"./chunk-BI3I5X3U.js";import"./chunk-H7EGEWCF.js";import"./chunk-S6XSCI45.js";function p(){console.log(`
3
3
  sootsim storage profile \u2014 manage isolated storage profiles
4
4
 
5
5
  usage:
@@ -0,0 +1,2 @@
1
+ /*! sootsim v0.1.220 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
+ import{a}from"./chunk-OBWXIGPP.js";import"./chunk-H7EGEWCF.js";import"./chunk-S6XSCI45.js";export{a as settingsStore};
@@ -0,0 +1,2 @@
1
+ /*! sootsim v0.1.220 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
+ import{a,b}from"./chunk-GWQWCFMR.js";import"./chunk-VCLV5GYE.js";import"./chunk-BI3I5X3U.js";import"./chunk-S6XSCI45.js";export{b as flushCliTelemetry,a as trackCliEvent};
@@ -1,5 +1,5 @@
1
- /*! sootsim v0.1.218 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{g as m,i as d,l as s}from"./chunk-AHTGZMT4.js";import"./chunk-Q7U5TPQN.js";import"./chunk-CJHPCUUV.js";import"./chunk-YMFQOXT4.js";import"./chunk-EEUNNW2P.js";import{writeFileSync as g}from"fs";function u(){console.log(`
1
+ /*! sootsim v0.1.220 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
+ import{g as m,i as d,l as s}from"./chunk-UHEKB33X.js";import"./chunk-4JSQTD75.js";import"./chunk-ZU6ECPCC.js";import"./chunk-BI3I5X3U.js";import"./chunk-S6XSCI45.js";import{writeFileSync as g}from"fs";function u(){console.log(`
3
3
  sootsim timeline \u2014 control the semantic event timeline
4
4
 
5
5
  usage:
@@ -0,0 +1,4 @@
1
+ /*! sootsim v0.1.220 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
+ import{a as d}from"./chunk-EFLOJBBN.js";import{e as m}from"./chunk-UODAA57Q.js";import"./chunk-UHEKB33X.js";import"./chunk-4JSQTD75.js";import"./chunk-ZU6ECPCC.js";import{K as a,g as r,h as l}from"./chunk-BI3I5X3U.js";import{a as c}from"./chunk-3ZWOQPLC.js";import"./chunk-S6XSCI45.js";import{spawn as g}from"node:child_process";import u from"node:fs";import p from"node:os";import e from"node:path";var f="https://registry.npmjs.org/sootsim/latest";async function j(o){let n=o.indexOf("--channel"),t=n>=0&&o[n+1]?o[n+1]:void 0;console.log(`sootsim upgrade
3
+ `),console.log("runtime:");let i=m();i&&(console.log(` pinned to ${i} \u2014 installing the pin, not channel latest`),console.log(" (run `sootsim runtime unpin` to follow latest again)")),await d(["install",...t?["--channel",t]:[]],{}),console.log(`
4
+ cli:`),await $()}function h(){if(l())return{kind:"dev"};let o=process.argv[1]??"";try{o=u.realpathSync(o)}catch{}let n=e.sep;if(o.includes(`${n}_npx${n}`)||o.includes(`${n}.bunx${n}`))return{kind:"npx"};if(o.includes(`${n}.bun${n}`))return{kind:"global",command:"bun",args:["add","-g","sootsim@latest"]};if(o.includes(`${n}pnpm${n}`))return{kind:"global",command:"pnpm",args:["add","-g","sootsim@latest"]};let t=e.join(r(),"cli");if(o.startsWith(`${t}${n}`))return{kind:"global",command:"npm",args:["i","-g","--prefix",t,"sootsim@latest"]};let i=e.resolve(process.env.SOOTSIM_CLI_PREFIX||e.join(p.homedir(),".local"));return o.startsWith(`${i}${n}`)?{kind:"global",command:"npm",args:["i","-g","--prefix",i,"sootsim@latest"]}:{kind:"global",command:"npm",args:["i","-g","sootsim@latest"]}}async function $(){let o=c(),n=await k();if(!n){console.log(` v${o} \u2014 couldn't reach the npm registry, skipped`);return}if(a(n,o)<=0){console.log(` v${o} (latest)`);return}let t=h();if(console.log(` v${o} \u2192 v${n}`),t.kind==="dev"){console.log(" running from the soot dev checkout \u2014 pull instead of upgrading");return}if(t.kind==="npx"){console.log(" running from the npx cache \u2014 get the latest with:"),console.log(" npx sootsim@latest");return}let i=`${t.command} ${t.args.join(" ")}`;console.log(` updating global install (${i})\u2026`),await v(t.command,t.args)?console.log(` updated to v${n}`):(console.log(" update failed \u2014 run it yourself:"),console.log(` ${i}`))}function v(o,n){return new Promise(t=>{let i=g(o,n,{stdio:"inherit"});i.on("error",()=>t(!1)),i.on("exit",s=>t(s===0))})}async function k(){try{let o=await fetch(f,{headers:{accept:"application/json"},signal:AbortSignal.timeout(8e3)});if(!o.ok)return null;let n=await o.json();return typeof n.version=="string"&&n.version?n.version:null}catch{return null}}export{j as runUpgrade};
@@ -0,0 +1,2 @@
1
+ /*! sootsim v0.1.220 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
+ import{a,b,c}from"./chunk-F5XBOFGK.js";import"./chunk-OCEYXYKG.js";import"./chunk-HAXE5SZL.js";import"./chunk-7TOHX4IF.js";import"./chunk-UHEKB33X.js";import"./chunk-PJ76I3KZ.js";import"./chunk-GWQWCFMR.js";import"./chunk-VCLV5GYE.js";import"./chunk-4JSQTD75.js";import"./chunk-ZU6ECPCC.js";import"./chunk-BI3I5X3U.js";import"./chunk-S6XSCI45.js";export{a as resolveDefaultUploadOrigin,b as resolvePublicPreviewOrigin,c as runUpload};
@@ -1,4 +1,4 @@
1
- /*! sootsim v0.1.218 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{b as s,d as l,i as r}from"./chunk-DVZVP32W.js";import{a as i}from"./chunk-73WAFGRP.js";import"./chunk-YMFQOXT4.js";import{a as t}from"./chunk-SXS5SPIZ.js";import"./chunk-EEUNNW2P.js";async function f(c){let{IS_BETA:m,BETA_LABEL:a}=await import("./beta-HL46FNX3.js"),u=m?` \xB7 ${a}`:"";console.log(`sootsim v${t()}${u}`);let o=i(),e=l();o.isDevBridge?(console.log(o.primary),o.installedRuntime&&console.log(`${o.installedRuntime} \xB7 ${e}`)):o.primary==="runtime not installed"?console.log("runtime not installed \u2014 run `sootsim runtime install`"):console.log(`${o.primary} \xB7 ${e}`);let n=await r({channel:e});n.pinned&&console.log(` runtime pinned to v${n.pinned} (\`sootsim runtime unpin\` to follow latest)`),n.outdated&&n.latest&&console.log(`
1
+ /*! sootsim v0.1.220 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
+ import{b as s,d as l,i as r}from"./chunk-UODAA57Q.js";import{a as i}from"./chunk-NRHZHQOH.js";import"./chunk-BI3I5X3U.js";import{a as t}from"./chunk-3ZWOQPLC.js";import"./chunk-S6XSCI45.js";async function f(c){let{IS_BETA:m,BETA_LABEL:a}=await import("./beta-ZIOECOJB.js"),u=m?` \xB7 ${a}`:"";console.log(`sootsim v${t()}${u}`);let o=i(),e=l();o.isDevBridge?(console.log(o.primary),o.installedRuntime&&console.log(`${o.installedRuntime} \xB7 ${e}`)):o.primary==="runtime not installed"?console.log("runtime not installed \u2014 run `sootsim runtime install`"):console.log(`${o.primary} \xB7 ${e}`);let n=await r({channel:e});n.pinned&&console.log(` runtime pinned to v${n.pinned} (\`sootsim runtime unpin\` to follow latest)`),n.outdated&&n.latest&&console.log(`
3
3
  \u2191 runtime v${n.latest} available \u2014 run \`sootsim upgrade\``),console.log(`
4
4
  what's new: ${s}`)}export{f as runVersion};